Re: [pacman-dev] [PATCH] Add makepkg option --printproducts; fix bug #42150
On 21.03.2015 01:23, Ivy Foster wrote: > On 20 Mar 2015, at 9:29 pm +0100, Florian Pritz wrote: >> >> > From: Ivy Foster >> >> I'm not really sure why that is here. Did you set the envelope sender in >> git (git config --global sendemail.envelopesender) or am I missing some >> difference between the two addresses? > > You're right, it's from envelopesender. Without that, msmtp > clobbered my From line and changed the sender to my other > email address, which isn't subscribed. Sorry. If you also set it in git you should be able to get rid of that extra From line in the mail body (at least I don't have it and I'm pretty sure I did just that). Not that it's bad, but it looks a bit weird. signature.asc Description: OpenPGP digital signature
Re: [pacman-dev] [PATCH] Add makepkg option --printproducts; fix bug #42150
On 20 Mar 2015, at 9:29 pm +0100, Florian Pritz wrote: > >> > From: Ivy Foster > > I'm not really sure why that is here. Did you set the envelope sender in > git (git config --global sendemail.envelopesender) or am I missing some > difference between the two addresses? You're right, it's from envelopesender. Without that, msmtp clobbered my From line and changed the sender to my other email address, which isn't subscribed. Sorry. > >> New contributor - yay! > >> > [patch] > >> [notes] > > > > Thanks! I'll fix it up as you've suggested. When that's > > done, should I send the changes as a patch that's a > > sequel to the first, or should I create a unified patch > > with everything? > [very thorough reply] Thank you very much! pgpeGnjtOIoyq.pgp Description: PGP signature
[pacman-dev] [PATCH v3 1/2] Make get_pkg_arch treat arch as an array
From: Ivy Foster Signed-off-by: Ivy Foster --- v3: Separate change to get_pkg_arch into separate commit scripts/makepkg.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 scripts/makepkg.sh.in diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in old mode 100644 new mode 100755 index 168f334..5b3bffd --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -879,7 +879,7 @@ get_pkg_arch() { fi else local arch_override - pkgbuild_get_attribute "$1" arch 0 arch_override + pkgbuild_get_attribute "$1" arch 1 arch_override (( ${#arch_override[@]} == 0 )) && arch_override=("${arch[@]}") if [[ $arch_override = "any" ]]; then printf "%s\n" "any" -- 2.3.3
[pacman-dev] [PATCH v3 2/2] Add makepkg option --packagelist; fix bug #42150
From: Ivy Foster makepkg --packagelist prints the name of each package that would normally be produced, minus $PKGEXT, and exits. Signed-off-by: Ivy Foster --- v3: Separate change to get_pkg_arch into another commit doc/makepkg.8.txt | 3 +++ scripts/makepkg.sh.in | 26 +++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt index 31a2ef7..ce4364b 100644 --- a/doc/makepkg.8.txt +++ b/doc/makepkg.8.txt @@ -203,6 +203,9 @@ Options (Passed to pacman) Prevent pacman from displaying a progress bar; useful if you are redirecting makepkg output to file. +*\--packagelist*:: + Instead of building, list packages that would be produced. Listed + package names do not include PKGEXT. Additional Features --- diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 5b3bffd..3c2e381 100755 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -2834,6 +2834,19 @@ run_split_packaging() { pkgname=${pkgname_backup[@]} } +print_all_package_names() { + local version=$(get_full_version) + local architecture pkg opts + for pkg in ${pkgname[@]}; do + architecture=$(get_pkg_arch $pkg) + pkgbuild_get_attribute "$pkg" 'options' 1 opts + printf "%s-%s-%s\n" "$pkg" "$version" "$architecture" + if in_opt_array "debug" ${opts[@]} && in_opt_array "strip" ${opts[@]}; then + printf "%s-%s-%s-%s\n" "$pkg" "@DEBUGSUFFIX@" "$pkgver" "$architecture" + fi + done +} + # Canonicalize a directory path if it exists canonicalize_path() { local path="$1"; @@ -2893,6 +2906,7 @@ usage() { printf -- "$(gettext " --nocheckDo not run the %s function in the %s")\n" "check()" "$BUILDSCRIPT" printf -- "$(gettext " --noprepare Do not run the %s function in the %s")\n" "prepare()" "$BUILDSCRIPT" printf -- "$(gettext " --nosign Do not create a signature for the package")\n" + printf -- "$(gettext " --packagelistOnly list packages that would be produced, without PKGEXT")\n" printf -- "$(gettext " --pkg Only build listed packages from a split package")\n" printf -- "$(gettext " --sign Sign the resulting package with %s")\n" "gpg" printf -- "$(gettext " --skipchecksums Do not verify checksums of the source files")\n" @@ -2938,9 +2952,9 @@ ARGLIST=("$@") OPT_SHORT="AcCdefFghiLmop:rRsSV" OPT_LONG=('allsource' 'check' 'clean' 'cleanbuild' 'config:' 'force' 'geninteg' 'help' 'holdver' 'ignorearch' 'install' 'key:' 'log' 'noarchive' 'nobuild' - 'nocolor' 'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'pkg:' 'repackage' - 'rmdeps' 'sign' 'skipchecksums' 'skipinteg' 'skippgpcheck' 'source' 'syncdeps' - 'verifysource' 'version') + 'nocolor' 'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'packagelist' + 'pkg:' 'repackage' 'rmdeps' 'sign' 'skipchecksums' 'skipinteg' + 'skippgpcheck' 'source' 'syncdeps' 'verifysource' 'version') # Pacman Options OPT_LONG+=('asdeps' 'noconfirm' 'needed' 'noprogressbar') @@ -2983,6 +2997,7 @@ while true; do -o|--nobuild) NOBUILD=1 ;; -p) shift; BUILDFILE=$1 ;; --pkg)shift; IFS=, read -ra p <<<"$1"; PKGLIST+=("${p[@]}"); unset p ;; + --packagelist)PACKAGELIST=1 ;; -r|--rmdeps) RMDEPS=1 ;; -R|--repackage) REPKG=1 ;; --sign) SIGNPKG='y' ;; @@ -3264,6 +3279,11 @@ if { [[ -z $SIGNPKG ]] && check_buildenv "sign" "y"; } || [[ $SIGNPKG == 'y' ]]; fi fi +if (( PACKAGELIST )); then + print_all_package_names + exit 0 +fi + if (( ! PKGVERFUNC )); then check_build_status fi -- 2.3.3
Re: [pacman-dev] [PATCH v2] Add makepkg option --packagelist; fix bug #42150
On 21 Mar 2015, at 12:54 am +0100, Johannes Löthberg wrote: > On 20/03, joyfulg...@archlinux.us wrote: > >Also fixed get_pkg_arch to treat arch as an array when querying > >pkgbuild_get_attribute. > That is an unrelated change that doesn’t really belong in the same commit. I'll redo the patch(es) and resubmit, then. My rationale for including it, if it helps, is that it would always return $CARCH rather than "any" in cases where arch=("any"). Thanks! pgpfqsLYXoTCE.pgp Description: PGP signature
Re: [pacman-dev] [PATCH v2] Add makepkg option --packagelist; fix bug #42150
On 20/03, joyfulg...@archlinux.us wrote: Also fixed get_pkg_arch to treat arch as an array when querying pkgbuild_get_attribute. That is an unrelated change that doesn’t really belong in the same commit. -- Sincerely, Johannes Löthberg PGP Key ID: 0x50FB9B273A9D0BB5 https://theos.kyriasis.com/~kyrias/ signature.asc Description: PGP signature
[pacman-dev] [PATCH v2] Add makepkg option --packagelist; fix bug #42150
From: Ivy Foster makepkg --packagelist prints the name of each package that would normally be produced, minus $PKGEXT, and exits. Also fixed get_pkg_arch to treat arch as an array when querying pkgbuild_get_attribute. Signed-off-by: Ivy Foster --- Changes from v1: - renamed option to --packagelist - Rephrased description in manpage - Cleaned up variables - Don't set NOEXTRACT, NOBUILD, SKIPCHECKSUMS, SKIPPGPCHECK, FORCE, or IGNOREARCH - Move up check to see whether to run print_all_package_names and exit - Make get_pkg_arch treat arch as an array. According to my grepping of abs, there are no official packages that still use a non-array arch. doc/makepkg.8.txt | 3 +++ scripts/makepkg.sh.in | 28 2 files changed, 27 insertions(+), 4 deletions(-) mode change 100644 => 100755 scripts/makepkg.sh.in diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt index 31a2ef7..ce4364b 100644 --- a/doc/makepkg.8.txt +++ b/doc/makepkg.8.txt @@ -203,6 +203,9 @@ Options (Passed to pacman) Prevent pacman from displaying a progress bar; useful if you are redirecting makepkg output to file. +*\--packagelist*:: + Instead of building, list packages that would be produced. Listed + package names do not include PKGEXT. Additional Features --- diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in old mode 100644 new mode 100755 index 168f334..3c2e381 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -879,7 +879,7 @@ get_pkg_arch() { fi else local arch_override - pkgbuild_get_attribute "$1" arch 0 arch_override + pkgbuild_get_attribute "$1" arch 1 arch_override (( ${#arch_override[@]} == 0 )) && arch_override=("${arch[@]}") if [[ $arch_override = "any" ]]; then printf "%s\n" "any" @@ -2834,6 +2834,19 @@ run_split_packaging() { pkgname=${pkgname_backup[@]} } +print_all_package_names() { + local version=$(get_full_version) + local architecture pkg opts + for pkg in ${pkgname[@]}; do + architecture=$(get_pkg_arch $pkg) + pkgbuild_get_attribute "$pkg" 'options' 1 opts + printf "%s-%s-%s\n" "$pkg" "$version" "$architecture" + if in_opt_array "debug" ${opts[@]} && in_opt_array "strip" ${opts[@]}; then + printf "%s-%s-%s-%s\n" "$pkg" "@DEBUGSUFFIX@" "$pkgver" "$architecture" + fi + done +} + # Canonicalize a directory path if it exists canonicalize_path() { local path="$1"; @@ -2893,6 +2906,7 @@ usage() { printf -- "$(gettext " --nocheckDo not run the %s function in the %s")\n" "check()" "$BUILDSCRIPT" printf -- "$(gettext " --noprepare Do not run the %s function in the %s")\n" "prepare()" "$BUILDSCRIPT" printf -- "$(gettext " --nosign Do not create a signature for the package")\n" + printf -- "$(gettext " --packagelistOnly list packages that would be produced, without PKGEXT")\n" printf -- "$(gettext " --pkg Only build listed packages from a split package")\n" printf -- "$(gettext " --sign Sign the resulting package with %s")\n" "gpg" printf -- "$(gettext " --skipchecksums Do not verify checksums of the source files")\n" @@ -2938,9 +2952,9 @@ ARGLIST=("$@") OPT_SHORT="AcCdefFghiLmop:rRsSV" OPT_LONG=('allsource' 'check' 'clean' 'cleanbuild' 'config:' 'force' 'geninteg' 'help' 'holdver' 'ignorearch' 'install' 'key:' 'log' 'noarchive' 'nobuild' - 'nocolor' 'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'pkg:' 'repackage' - 'rmdeps' 'sign' 'skipchecksums' 'skipinteg' 'skippgpcheck' 'source' 'syncdeps' - 'verifysource' 'version') + 'nocolor' 'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'packagelist' + 'pkg:' 'repackage' 'rmdeps' 'sign' 'skipchecksums' 'skipinteg' + 'skippgpcheck' 'source' 'syncdeps' 'verifysource' 'version') # Pacman Options OPT_LONG+=('asdeps' 'noconfirm' 'needed' 'noprogressbar') @@ -2983,6 +2997,7 @@ while true; do -o|--nobuild) NOBUILD=1 ;; -p) shift; BUILDFILE=$1 ;; --pkg)shift; IFS=, read -ra p <<<"$1"; PKGLIST+=("${p[@]}"); unset p ;; + --packagelist)PACKAGELIST=1 ;; -r|--rmdeps) RMDEPS=1 ;; -R|--repackage) REPKG=1 ;; --sign) SIGNPKG='y' ;; @@ -3264,6 +3279,11 @@ if { [[ -z $SIGNPKG ]] && check_buildenv "sign" "y"; } || [[ $SIGNPKG == 'y' ]]; fi fi +if (( PACKAGELIST )); then + print_all_package_names + exit
Re: [pacman-dev] [PATCH] Add makepkg option --printproducts; fix bug #42150
>> > From: Ivy Foster I'm not really sure why that is here. Did you set the envelope sender in git (git config --global sendemail.envelopesender) or am I missing some difference between the two addresses? >> New contributor - yay! >> > [patch] >> [notes] > > Thanks! I'll fix it up as you've suggested. When that's > done, should I send the changes as a patch that's a sequel > to the first, or should I create a unified patch with > everything? Send the updated patch with subject [PATCH v2] instead of [PATCH] (use the -v2 option of git format-patch) and list the changes after the "---" marker. That list of changes is mainly a habit of mine, but it allows the readers to easily check if all of their concerns should have been addressed. Not so much an issue here so feel free to omit it. I'm not sure how others on this list feel about it. Also use --in-reply-to with the Message-ID of your initial patch (or write In-Reply-To: <...> in the generated email's headers). You can find the id in the email source and you can probably configure your client to display additional headers instead of simply From/To/CC/Subject/... . With that header we get proper threading so it's easy to review discussion and previous versions of the patch. Of course those options also work with git send-email if you use that. Be sure to use --annotate to be able to add the comment after the marker though. Florian signature.asc Description: OpenPGP digital signature
Re: [pacman-dev] [PATCH] Add makepkg option --printproducts; fix bug #42150
On 20 Mar 2015, at 4:19 pm +1000, Allan McRae wrote: > On 20/03/15 11:00, joyfulg...@archlinux.us wrote: > > From: Ivy Foster > New contributor - yay! > > [patch] > [notes] Thanks! I'll fix it up as you've suggested. When that's done, should I send the changes as a patch that's a sequel to the first, or should I create a unified patch with everything?