简体   繁体   中英

Debian package creation with debhelper: change dependency version

I'm creating a Debian package using DebHelper, under the latest stable version of Debian.

The "debian/control" file comprises these lines:

Depends:
 ${shlibs:Depends},
 ${misc:Depends}

The dependencies are thus automatically set in the created package. However, the version required of libstdc++ is too strict. The package requires libstdc++6 ( >= 4.9 ) and I want it to be set as libstdc++6 ( >= 4.8 ).

For this purpose and at the reading of this page and this page , I edited the "debian/rules" file which now looks like:

#!/usr/bin/make -f

DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

%:
    dh $@ 

override_dh_makeshlibs:
    dh_makeshlibs -V 'libstdc++6 (>= 4.8)'

The last two lines however did not make the job. Has anyone already did this kind of customization on a Debian package?

Thanks

In general, debhelper does a very good job at detecting dependencies.

If it says that your packages requires libstdc++6 (>= 4.9) , than your package most likely does require this specific version and will fail with eg libstdc++6-4.8 . (If you don't believe me, try it out; force-install your package on a system that has only libstdc++6-4.8 installed, and see whether everything works)

If some people claim that it can be build with libstd++6-4.8 (or rather gcc-4.8 ), then I see to possibilities:

  • either those people are mistaken
  • OR the binary (in your package) will be slightly different, depending on whether it was built against libstdc++6-4.8 or 4.9

Most likely the second point is the case.

This can have numerous reasons, eg: - your package automatically enables features if it detects libstdc++6-4.9 - some implementation detail in libstdc++6 has changed which makes the resulting binaries incompatible (or at least: not backwards compatible)

If you want a package that can be used with libstdc++6 == 4.8, than you should use libstdc++6-4.8 (or most likely: the entire g++4.8 toolchain) for building the package.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM