FS#38414 - [makepkg] --rmdeps fails when old dependencies are replaced by new make dependencies
Attached to Project:
Pacman
Opened by tim (sudokode) - Wednesday, 08 January 2014, 01:57 GMT
Last edited by Allan McRae (Allan) - Saturday, 08 February 2014, 12:10 GMT
Opened by tim (sudokode) - Wednesday, 08 January 2014, 01:57 GMT
Last edited by Allan McRae (Allan) - Saturday, 08 February 2014, 12:10 GMT
|
Details
Summary and Info:
When using makepkg's --rmdeps option, if an old dependency required by package A is replaced by a valid make dependency of package B, makepkg will tell pacman to remove the make dependency of package B and fail because it is a required dependency of package A, resulting in no make dependencies being removed at all. [blackarch@bender test]$ makepkg -sirp another-pkg.pkg |& tee makepkg.log ==> Making package: another-pkg 1.0-1 (Wed Jan 8 01:40:38 UTC 2014) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for inter-conflicts... :: new-foo and old-foo are in conflict. Remove old-foo? [y/N] y Packages (3): old-foo-1.0-1 [removal] another-foo-1.0-1 new-foo-1.0-1 Total Download Size: 0.00 MiB Total Installed Size: 0.00 MiB Net Upgrade Size: 0.00 MiB :: Proceed with installation? [Y/n] :: Retrieving packages ... downloading another-foo-1.0-1-any.pkg.tar.xz... checking keyring... checking package integrity... loading package files... checking for file conflicts... checking available disk space... removing old-foo... installing new-foo... installing another-foo... ==> Retrieving sources... ==> Extracting sources... ==> Removing existing pkg/ directory... ==> Entering fakeroot environment... ==> Starting package()... ==> Tidying install... -> Purging unwanted files... -> Removing libtool files... -> Removing static library files... -> Compressing man and info pages... -> Stripping unneeded symbols from binaries and libraries... ==> Creating package "another-pkg"... -> Generating .PKGINFO file... -> Generating .MTREE file... -> Compressing package... ==> Leaving fakeroot environment. ==> Finished making: another-pkg 1.0-1 (Wed Jan 8 01:40:41 UTC 2014) ==> Installing package another-pkg with pacman -U... loading packages... resolving dependencies... looking for inter-conflicts... Packages (1): another-pkg-1.0-1 Total Installed Size: 0.00 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... checking available disk space... installing another-pkg... ==> Removing installed dependencies... checking dependencies... error: failed to prepare transaction (could not satisfy dependencies) :: some-pkg: requires foo ==> WARNING: Failed to remove installed dependencies. [blackarch@bender test]$ pacman -Q another-foo another-foo 1.0-1 Steps to Reproduce: 1. Build the attached packages: old-foo, new-foo, another-foo and some-pkg 2. Install old-foo 3. Add new-foo and another-foo to a repo and add that in pacman.conf 4. Run pacman -Syyu 5. Install some-pkg 6. Attempt to build and install another-pkg via `makepkg -sirp another-pkg.pkg` This results in any make dependencies of another-pkg (e.g. another-foo) not being removed as expected. And while new-foo should not be removed, another-foo should. A real world test of this can be seen when the base-devel group is installed but not the multilib-devel group and a package like lib32-smpeg (https://aur.archlinux.org/packages/lib32-smpeg/) is installed. The make dependency lib32-glu is still installed and required by nothing, but it not removed because gcc-libs (provided by gcc-libs-multilib) is required by a number of other packages. A log is attached for that scenario. |
This task depends upon
Closed by Allan McRae (Allan)
Saturday, 08 February 2014, 12:10 GMT
Reason for closing: Fixed
Additional comments about closing: git commit b449878f
Saturday, 08 February 2014, 12:10 GMT
Reason for closing: Fixed
Additional comments about closing: git commit b449878f
Comment by Allan McRae (Allan) -
Wednesday, 08 January 2014, 02:23 GMT
I was sure makepkg did not even try to remove any
make-dependencies in this case...
Comment by tim (sudokode) -
Wednesday, 08 January 2014, 03:56 GMT
Sorry to disappoint, Allan. :P
Comment by Allan McRae (Allan) -
Sunday, 02 February 2014, 07:28 GMT
Introduced by Dave in a521cea9
Comment by Allan McRae (Allan) -
Sunday, 02 February 2014, 07:33 GMT
https://patchwork.archlinux.org/patch/1927/
old-foo.pkg