[CDRIVER-2610] Debian package for libmongoc 1.9.-0+ should require libresolv Created: 12/Apr/18 Updated: 27/Oct/23 Resolved: 13/Apr/18 |
|
| Status: | Closed |
| Project: | C Driver |
| Component/s: | debian |
| Affects Version/s: | 1.9.0 |
| Fix Version/s: | 1.9.5 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | A. Jesse Jiryu Davis | Assignee: | Roberto Sanchez |
| Resolution: | Works as Designed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Description |
|
Roberto I noticed while reading |
| Comments |
| Comment by A. Jesse Jiryu Davis [ 13/Apr/18 ] | |||||||||||||||||||||||||||
|
Thanks very much! | |||||||||||||||||||||||||||
| Comment by Roberto Sanchez [ 13/Apr/18 ] | |||||||||||||||||||||||||||
|
jesse, the short answer here is, "yes, the RPM build system properly handles library dependencies like this" (though it does so in a different way). The bottom line is that this bug ( The wording of the bug report (linked from The bug report further lists the specific items which are missing from the Requires section of the mongo-c-driver-devel RPM. Comparing the two most recent RPM versions (1.9.3-1 and 1.9.4-1), you can see the change that was made: 1.9.3-1: https://koji.fedoraproject.org/koji/rpminfo?rpmID=13434394
1.9.4-1: https://koji.fedoraproject.org/koji/rpminfo?rpmID=13681137
You can see that all that was done was to add openssl-devel, libsasl2, snappy, and zlib. That addition was made in the Requires section of the mongo-c-driver-devel package, so that when someone installs mongo-c-driver-devel those additional packages will also be installed if they are not already. That sort of thing is normal as the packaging systems for neither Debian nor RPM packages handle automatically figuring out which development package dependencies any given development package requires. Specifying hat has always been the responsibility of the package maintainer. For example, if you look at the Package: libmongoc-dev entry in debian/control, you will see that libssl-dev, zlib1g-dev, and libsnappy-dev are all explicitly listed there. Compare that with Package: libmongoc-1.0-0 which uses the special shlibs:Depends substitution variable to allow the packaging system to compute the necessary library dependencies. | |||||||||||||||||||||||||||
| Comment by A. Jesse Jiryu Davis [ 13/Apr/18 ] | |||||||||||||||||||||||||||
|
Great, thanks! Do you happen to know if the same automatic dependency tracking is implemented for RPMs? If not, that would explain | |||||||||||||||||||||||||||
| Comment by Roberto Sanchez [ 12/Apr/18 ] | |||||||||||||||||||||||||||
|
jesse, the short answer is, "no." The Debian packaging scripts automatically create dependencies on appropriate library packages based on the symbols present in a packages binaries and libraries. It is only necessary to specify a manual dependency if the package uses a library in a way that the scripts can determine, as might be the case with a library used via dlopen(). In our case, libresolv is part of libc6 (which is a required package).
In any event, I am relatively certain that if an important library dependency were missing that someone would have filed a big about it by this point. |