[pacman-dev] [PATCH v2] makepkg --packagelist: just list the built package files we will build
Eli Schwartz
eschwartz at archlinux.org
Tue Feb 6 02:47:04 UTC 2018
Currently this seems to be only theoretically useful. The most likely
reason for wanting a packagelist is in order to script makepkg and
derive the filenames for the packages we want to install or repo-add,
but in the current implementation this requires a lot of additional
post-processing which must be duplicated in every utility to wrap
makepkg.
- It is of minimal use to know what packages might get created on some
other device utilizing a different CPU/OS architecture, so don't list
them.
- It is non-trivial to reimplement makepkg's logic for sourcing any of
several makepkg.conf configuration files, then applying environment
overrides in order to get the PKGDEST and PKGEXT, so include them
directly in the returned filenames.
- Output is null-delimited, in order that the filenames can be reliably
parsed.
Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
---
v2: use null delimited text, update manpage with the effects of the
patch.
doc/makepkg.8.txt | 4 ++--
scripts/libmakepkg/util/pkgbuild.sh.in | 13 ++++++-------
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index 460c4e26..aed46eb2 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -200,8 +200,8 @@ Options
useful if you are redirecting makepkg output to file.
*\--packagelist*::
- List the packages that would be produced without building. Listed
- package names do not include PKGEXT.
+ List the package filenames that would be produced without building. Listed
+ package filenames are null-delimited and include PKGDEST and PKGEXT.
*\--printsrcinfo*::
Generate and print the SRCINFO file to stdout.
diff --git a/scripts/libmakepkg/util/pkgbuild.sh.in b/scripts/libmakepkg/util/pkgbuild.sh.in
index 2a4bd3af..58e67380 100644
--- a/scripts/libmakepkg/util/pkgbuild.sh.in
+++ b/scripts/libmakepkg/util/pkgbuild.sh.in
@@ -149,15 +149,14 @@ print_all_package_names() {
local version=$(get_full_version)
local architecture pkg opts a
for pkg in ${pkgname[@]}; do
- get_pkgbuild_attribute "$pkg" 'arch' 1 architecture
+ architecture=$(get_pkg_arch $pkg)
get_pkgbuild_attribute "$pkg" 'options' 1 opts
- for a in ${architecture[@]}; do
- printf "%s-%s-%s\n" "$pkg" "$version" "$a"
- if in_opt_array "debug" ${opts[@]} && in_opt_array "strip" ${opts[@]}; then
- printf "%s-%s-%s-%s\n" "$pkg" "@DEBUGSUFFIX@" "$version" "$a"
- fi
- done
+ printf "%s/%s-%s-%s%s\0" "$PKGDEST" "$pkg" "$version" "$architecture" "$PKGEXT"
+ if in_opt_array "debug" ${opts[@]} && in_opt_array "strip" ${opts[@]}; then
+ printf "%s/%s-%s-%s-%s%s\0" "$PKGDEST" "$pkg" "@DEBUGSUFFIX@" "$version" "$architecture" "$PKGEXT"
+ fi
done
+ printf '\n'
}
get_all_sources() {
--
2.16.1
More information about the pacman-dev
mailing list