diff options
author | Allan McRae <allan@archlinux.org> | 2019-01-30 01:40:09 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2019-01-30 04:39:35 +0100 |
commit | 6cf0548128d6d1a839ba93997b017661520395be (patch) | |
tree | 06c453355c38ec3b8a71e1a4fc35e4934d3363f2 | |
parent | 776fbe1cde58739d0469d3efbc76cb13b80f18b3 (diff) | |
download | pacman-6cf0548128d6d1a839ba93997b017661520395be.tar.gz pacman-6cf0548128d6d1a839ba93997b017661520395be.tar.xz |
makepkg: use --unneeded for pacman call in remove_deps()
This patch was inspired by FS#32723 which asks makepkg to install makedepends
before depends. The use case is to build a package depending on a virtual
package that is only provided by other packages (e.g. java-runtime in Arch
Linux), but wanting to build against a specific version. Installing makedepends
first (but not at the same time as depends) would allow specifying the version
to build against, instead of pacman resolving to the default version when
installing depends.
It turns out, we can already achieve installing makedepends first by specifying
dependencies only in the package function (and making sure makedepends includes
everything needed). The only issue is that if we use makepkg to install the
built package with the --install flag and along with the --rmdeps flag, we will
try to remove any installed dependencies that are specified in the depends
array in the package function. To counter this, we need to use the --unneeded
flag for the pacman call.
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | scripts/makepkg.sh.in | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index c81dc801..749d074a 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -336,7 +336,7 @@ remove_deps() { msg "Removing installed dependencies..." # exit cleanly on failure to remove deps as package has been built successfully - if ! run_pacman -Rn ${deplist[@]}; then + if ! run_pacman -Rnu ${deplist[@]}; then warning "$(gettext "Failed to remove installed dependencies.")" return $E_REMOVE_DEPS_FAILED fi |