Historical bug tracker for the Pacman package manager.
The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues
This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues
This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
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
|
DetailsSummary 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