Forum > Linux
Creating .deb packages for Lazarus applications?
Bandbaz:
Thanks
--- Quote ---Depends: libgtk2.0-0 (>= 2.0), libgtk2.0-bin (>= 2.0), apt, apt-file
--- End quote ---
How you find Dependencies?
Is it always the same for Lazarus applications?
This link is also very useful to get professional on it and making high quality packages:
http://www.debian.org/doc/maint-guide/
Troodon:
--- Quote from: Bandbaz on September 15, 2011, 01:50:04 pm ---How you find Dependencies?
Is it always the same for Lazarus applications?
--- End quote ---
Not necessarily, it depends on the libraries that your application uses. Finding the dependencies is not obvious and creating a .deb package "the Debian way" is (I would say) unnecessarily complicated, particularly if all you need is to package some binaries and data files for distribution. Unless you can find a good tutorial on the Web, I will explain this soon, perhaps next month. Writing that book takes longer than I thought... ;)
felipemdc:
--- Quote from: Bandbaz on September 15, 2011, 01:50:04 pm ---How you find Dependencies?
--- End quote ---
If you wrote the application, you should know. It is any LCL dependencies + anything you added yourself.
It also depends on the LCL widgetset which you are using. For LCL-Gtk2 you should depend on .... gtk2, gdk2 and cairo (no idea about the exact Debian package names)
You can use the command line tool ldd to find all libraries which your app uses, but note that almost all of them are added by gtk2, so you can simply depend on just gtk2 most of the time.
Bandbaz:
--- Quote ---If you wrote the application, you should know.
--- End quote ---
well.. I wrote the application, but I just know which units I used in uses parts! %)
if everything is in gtk2, it should be libgtk2.0-0 debian package. but how can I be sure?
ldd gives me a long list of .so files. not the name of packages.
I can search one by one in debian website (packages.debian.org) and see which package it belongs to.
but is this really the right way?
flames:
ldd output:
--- Code: ---linux-gate.so.1 => (0x006ad000)
libpthread.so.0 => /lib/libpthread.so.0 (0x4e351000)
libdl.so.2 => /lib/libdl.so.2 (0x4e36d000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x4e6cc000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x41ad2000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x42310000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x428ea000)
libgobject-2.0.so.0 => /lib/libgobject-2.0.so.0 (0x41c4f000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x4e403000)
libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x4e51e000)
libgmodule-2.0.so.0 => /lib/libgmodule-2.0.so.0 (0x4e591000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x41d5d000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x41da8000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x4eaf5000)
libc.so.6 => /lib/libc.so.6 (0x4e1c3000)
/lib/ld-linux.so.2 (0x4e1a2000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x4e807000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4e3c3000)
libgio-2.0.so.0 => /lib/libgio-2.0.so.0 (0x427ba000)
librt.so.1 => /lib/librt.so.1 (0x4e374000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x4e864000)
libm.so.6 => /lib/libm.so.6 (0x4e37f000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x42110000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x4eae0000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x420e1000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x4e948000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x4e851000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x4e93c000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x4e9dc000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x41c9f000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x4eaa9000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x4ead4000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x4e9d7000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x4e9d2000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x4ea2c000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x4e88f000)
libz.so.1 => /lib/libz.so.1 (0x4e3ab000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x4e6c7000)
libresolv.so.2 => /lib/libresolv.so.2 (0x4e525000)
libselinux.so.1 => /lib/libselinux.so.1 (0x4e3e2000)
libexpat.so.1 => /lib/libexpat.so.1 (0x4e827000)
--- End code ---
I would add following to Depends:
--- Code: ---libc6, libgdk-pixbuf2.0-0, libglib2.0-0, libgtk2.0-0, libatk1.0-0, libcairo2, libfreetype6, libpango1.0-0, libssl0.9.8
--- End code ---
This app. uses synapse "openssl_lib" unit for optional SSL, so i know i need to add "libssl0.9.8" to "Depends" or "Recommends" aswell.
You can add more or less, most packages are likely to be already present on the system, because they are common.
Navigation
[0] Message Index
[#] Next page
[*] Previous page