[pacman-dev] [PATCH 1/1] Split prepare_buildenv() to libmakepkg scripts
From: Que Quotion
On 11/3/18 12:54 PM, Que Quotion wrote:
From: Que Quotion
As Eli Schwartz has pointed out: https://lists.archlinux.org/pipermail/pacman-dev/2018-May/022501.html
It would be beneficial to makepkg to have this function ported to libmakepkg and split into individual scripts.
Supersedes: https://patchwork.archlinux.org/patch/540/
Thanks for putting in the work to (re)do this.
Signed-off-by: Que Quotion
--- scripts/Makefile.am | 6 ++ scripts/libmakepkg/buildenv.sh.in | 55 ++++++++++++++++++ scripts/libmakepkg/buildenv/buildflags.sh.in | 34 +++++++++++ scripts/libmakepkg/buildenv/ccache.sh.in | 45 +++++++++++++++ scripts/libmakepkg/buildenv/distcc.sh.in | 47 +++++++++++++++ scripts/libmakepkg/buildenv/makeflags.sh.in | 34 +++++++++++ scripts/libmakepkg/buildenv/meson.build | 20 +++++++ scripts/libmakepkg/meson.build | 1 + scripts/makepkg.sh.in | 60 +------------------- 9 files changed, 243 insertions(+), 59 deletions(-) create mode 100644 scripts/libmakepkg/buildenv.sh.in create mode 100644 scripts/libmakepkg/buildenv/buildflags.sh.in create mode 100644 scripts/libmakepkg/buildenv/ccache.sh.in create mode 100644 scripts/libmakepkg/buildenv/distcc.sh.in create mode 100644 scripts/libmakepkg/buildenv/makeflags.sh.in create mode 100644 scripts/libmakepkg/buildenv/meson.build diff --git a/scripts/Makefile.am b/scripts/Makefile.am index c6b6220e..8e669f71 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -41,6 +41,7 @@ LIBRARY = \ libmakepkgdir = $(datarootdir)/makepkg
LIBMAKEPKGDIRS = \ + buildenv \ integrity \ lint_config \ lint_package \ @@ -50,6 +51,11 @@ LIBMAKEPKGDIRS = \ util
LIBMAKEPKG_IN = \ + libmakepkg/buildenv.sh \ + libmakepkg/buildenv/buildflags.sh \ + libmakepkg/buildenv/ccache.sh \ + libmakepkg/buildenv/distcc.sh \ + libmakepkg/buildenv/makeflags.sh \ libmakepkg/integrity.sh \ libmakepkg/integrity/generate_checksum.sh \ libmakepkg/integrity/generate_signature.sh \ diff --git a/scripts/libmakepkg/buildenv.sh.in b/scripts/libmakepkg/buildenv.sh.in new file mode 100644 index 00000000..a14a3a9a --- /dev/null +++ b/scripts/libmakepkg/buildenv.sh.in @@ -0,0 +1,55 @@ +#!/bin/bash +# +# buildenv.sh - functions for altering the build environment before +# compiliation +# +# Copyright (c) 2018 Pacman Development Team
+# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# + +[[ -n "$LIBMAKEPKG_BUILDENV_SH" ]] && return +LIBMAKEPKG_BUILDENV_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/message.sh" +source "$LIBRARY/util/option.sh" + + +declare -a build_options + +for lib in "$LIBRARY/buildenv/"*.sh; do + source "$lib" +done + +readonly -a build_options + +prepare_buildenv() { + msg "$(gettext "Preparing build environment...")" + + for func in ${build_options[@]}; do + $func + done + + if check_option "debug" "y"; then + DEBUG_CFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}" + DEBUG_CXXFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}" + CFLAGS+=" $DEBUG_CFLAGS" + CXXFLAGS+=" $DEBUG_CXXFLAGS" + fi + + # ensure all necessary build variables are exported + export CPPFLAGS CFLAGS CXXFLAGS LDFLAGS MAKEFLAGS CHOST +}
Why is this on its own, not in a dropin?
diff --git a/scripts/libmakepkg/buildenv/buildflags.sh.in b/scripts/libmakepkg/buildenv/buildflags.sh.in new file mode 100644 index 00000000..fb49a85c --- /dev/null +++ b/scripts/libmakepkg/buildenv/buildflags.sh.in @@ -0,0 +1,34 @@ +#!/usr/bin/bash +# +# buildflags.sh - Clear user-specified buildflags if requested +# +# Copyright (c) 2018 Pacman Development Team
+# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# + +[[ -n "$LIBMAKEPKG_BUILDENV_BUILDFLAGS_SH" ]] && return +LIBMAKEPKG_BUILDENV_BUILDFLAGS_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/option.sh" + +build_options+=('buildflags')
If you look at the way we do this in other sections, this should probably be namespaced as buildenv_buildflags
+buildflags() { + if check_option "buildflags" "n"; then + unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS + fi +} diff --git a/scripts/libmakepkg/buildenv/ccache.sh.in b/scripts/libmakepkg/buildenv/ccache.sh.in new file mode 100644 index 00000000..122033a9 --- /dev/null +++ b/scripts/libmakepkg/buildenv/ccache.sh.in @@ -0,0 +1,45 @@ +#!/usr/bin/bash +# +# ccache.sh - Cache compiliations and recycle them to save time on repititions +# +# Copyright (c) 2018 Pacman Development Team
+# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# + +[[ -n "$LIBMAKEPKG_BUILDENV_CCACHE_SH" ]] && return +LIBMAKEPKG_BUILDENV_CCACHE_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/message.sh" +source "$LIBRARY/util/option.sh" + +build_options+=('ccache') + +local ccache=0 + +ccache() { + if check_buildoption "ccache" "y"; then + if ! type -p ccache >/dev/null; then + error "$(gettext "Cannot find the %s binary required for compiler cache usage.")" "ccache" + return 1 + fi + + if [ -d /usr/lib/ccache/bin ]; then + export PATH="/usr/lib/ccache/bin:$PATH" + ccache=1 + fi + fi +}
ccache is now both a function name and a variable name... And the variable is declared as local, but outside of a function -- instead, it's relying on the fact that libmakepkg typically sources this file while inside another function. I don't know whether we should be doing this... I'm inclined to think that at least ccache and distcc should be in the same dropin file and parsed as the same buildenv function as a result. Maybe buildenv_compiler.
diff --git a/scripts/libmakepkg/buildenv/distcc.sh.in b/scripts/libmakepkg/buildenv/distcc.sh.in new file mode 100644 index 00000000..f7580705 --- /dev/null +++ b/scripts/libmakepkg/buildenv/distcc.sh.in @@ -0,0 +1,47 @@ +#!/usr/bin/bash +# +# distcc.sh - Distribute compliation to reduce compilation time +# +# Copyright (c) 2018 Pacman Development Team
+# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# + +[[ -n "$LIBMAKEPKG_BUILDENV_DISTCC_SH" ]] && return +LIBMAKEPKG_BUILDENV_DISTCC_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/message.sh" +source "$LIBRARY/util/option.sh" + +build_options+=('distcc') + +distcc() { + if check_buildoption "distcc" "y"; then + if ! type -p distcc >/dev/null; then + error "$(gettext "Cannot find the %s binary required for distributed compilation.")" "distcc" + return 1 + fi + + if (( ccache )); then + export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc" + export CCACHE_BASEDIR="$srcdir" + elif [[ -d /usr/lib/distcc/bin ]]; then + export PATH="/usr/lib/distcc/bin:$PATH" + fi + + export DISTCC_HOSTS + fi +} diff --git a/scripts/libmakepkg/buildenv/makeflags.sh.in b/scripts/libmakepkg/buildenv/makeflags.sh.in new file mode 100644 index 00000000..53ac1e4c --- /dev/null +++ b/scripts/libmakepkg/buildenv/makeflags.sh.in @@ -0,0 +1,34 @@ +#!/usr/bin/bash +# +# makeflags.sh - Clear user-specified makeflags if requested +# +# Copyright (c) 2018 Pacman Development Team +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# + +[[ -n "$LIBMAKEPKG_BUILDENV_MAKEFLAGS_SH" ]] && return +LIBMAKEPKG_BUILDENV_MAKEFLAGS_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/option.sh" + +build_options+=('makeflags') + +makeflags() { + if check_option "makeflags" "n"; then + unset MAKEFLAGS + fi +} diff --git a/scripts/libmakepkg/buildenv/meson.build b/scripts/libmakepkg/buildenv/meson.build new file mode 100644 index 00000000..e0d07287 --- /dev/null +++ b/scripts/libmakepkg/buildenv/meson.build @@ -0,0 +1,20 @@ +libmakepkg_module = 'buildenv' + +sources = [ + 'buildflags.sh.in', + 'ccache.sh.in', + 'distcc.sh.in', + 'makeflags.sh.in', +] + +foreach src : sources + output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) + + custom_target( + libmakepkg_module + '_' + src.underscorify(), + command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], + input : src, + output : '@BASENAME@', + install : true, + install_dir : output_dir) +endforeach diff --git a/scripts/libmakepkg/meson.build b/scripts/libmakepkg/meson.build index 07475b4d..3a487f0d 100644 --- a/scripts/libmakepkg/meson.build +++ b/scripts/libmakepkg/meson.build @@ -1,4 +1,5 @@ libmakepkg_modules = [ + { 'name' : 'buildenv', 'has_subdir' : true }, { 'name' : 'integrity', 'has_subdir' : true }, { 'name' : 'lint_config', 'has_subdir' : true }, { 'name' : 'lint_package', 'has_subdir' : true }, diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 3ac03d11..8ce006fb 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -48,11 +48,10 @@ declare -r startdir="$(pwd -P)" LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
-build_options=('ccache' 'distcc' 'buildflags' 'makeflags') splitpkg_overrides=('pkgdesc' 'arch' 'url' 'license' 'groups' 'depends' 'optdepends' 'provides' 'conflicts' 'replaces' 'backup' 'options' 'install' 'changelog') -readonly -a build_options splitpkg_overrides +readonly -a splitpkg_overrides
known_hash_algos=('md5' 'sha1' 'sha224' 'sha256' 'sha384' 'sha512')
@@ -380,47 +379,6 @@ source_buildfile() { source_safe "$@" }
-prepare_buildenv() { - # clear user-specified buildflags if requested - if check_option "buildflags" "n"; then - unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS - fi - - if check_option "debug" "y"; then - DEBUG_CFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}" - DEBUG_CXXFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}" - CFLAGS+=" $DEBUG_CFLAGS" - CXXFLAGS+=" $DEBUG_CXXFLAGS" - fi - - # clear user-specified makeflags if requested - if check_option "makeflags" "n"; then - unset MAKEFLAGS - fi - - # ensure all necessary build variables are exported - export CPPFLAGS CFLAGS CXXFLAGS LDFLAGS MAKEFLAGS CHOST - - local ccache=0 - - # use ccache if it is requested (check buildenv and PKGBUILD opts) - if check_buildoption "ccache" "y" && [[ -d /usr/lib/ccache/bin ]]; then - export PATH="/usr/lib/ccache/bin:$PATH" - ccache=1 - fi - - # use distcc if it is requested (check buildenv and PKGBUILD opts) - if check_buildoption "distcc" "y"; then - if (( ccache )); then - export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc" - export CCACHE_BASEDIR="$srcdir" - elif [[ -d /usr/lib/distcc/bin ]]; then - export PATH="/usr/lib/distcc/bin:$PATH" - fi - export DISTCC_HOSTS - fi -} - run_function_safe() { local restoretrap restoreshopt
@@ -1029,22 +987,6 @@ check_software() { done fi
- # distcc - compilation with distcc - if check_buildoption "distcc" "y"; then - if ! type -p distcc >/dev/null; then - error "$(gettext "Cannot find the %s binary required for distributed compilation.")" "distcc" - ret=1 - fi - fi - - # ccache - compilation with ccache - if check_buildoption "ccache" "y"; then - if ! type -p ccache >/dev/null; then - error "$(gettext "Cannot find the %s binary required for compiler cache usage.")" "ccache" - ret=1 - fi - fi - # strip - strip symbols from binaries/libraries if check_option "strip" "y"; then if ! type -p strip >/dev/null; then
-- Eli Schwartz Bug Wrangler and Trusted User
+ if check_option "debug" "y"; then + DEBUG_CFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}" + DEBUG_CXXFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}" + CFLAGS+=" $DEBUG_CFLAGS" + CXXFLAGS+=" $DEBUG_CXXFLAGS" + fi + + # ensure all necessary build variables are exported + export CPPFLAGS CFLAGS CXXFLAGS LDFLAGS MAKEFLAGS CHOST +}
Why is this on its own, not in a dropin?
I needed feedback on this; since the debugflags don't have a corresponding build_option I wasn't sure what to do with them. Your feedback on the ccache/distcc section gave me an idea.
+build_options+=('buildflags')
If you look at the way we do this in other sections, this should probably be namespaced as buildenv_buildflags
I've kept the name as it was in the original implementation to avoid upsetting anyone who might be using this flag in a PKGBUILD or makepkg.conf.
+ccache() { + if check_buildoption "ccache" "y"; then + if ! type -p ccache >/dev/null; then + error "$(gettext "Cannot find the %s binary required for compiler cache usage.")" "ccache" + return 1 + fi + + if [ -d /usr/lib/ccache/bin ]; then + export PATH="/usr/lib/ccache/bin:$PATH" + ccache=1 + fi + fi +}
ccache is now both a function name and a variable name...
And the variable is declared as local, but outside of a function -- instead, it's relying on the fact that libmakepkg typically sources this file while inside another function. I don't know whether we should be doing this...
I'm inclined to think that at least ccache and distcc should be in the same dropin file and parsed as the same buildenv function as a result. Maybe buildenv_compiler.
I'd rather have them separate, as they may be used separately, but then I don't know how to ensure the ccache macro would be called before the distcc macro, so I put them into compiler.sh.in Attached patch is succesive, and should be applied after the previous. I can resubmit if you want a single patch.
From: Que Quotion
On 5/11/18 12:35 am, Que Quotion wrote:
From: Que Quotion
Being misled by git's documentation, my attempt to attach this patch to the previous mail was foiled. That's really, really frustrating.
Put comments like this under the "---" line. Also, it is useful to provide some context to the patch in the commit message.
Signed-off-by: Que Quotion
--- scripts/Makefile.am | 4 +-- scripts/libmakepkg/buildenv.sh.in | 13 ++------ scripts/libmakepkg/buildenv/buildflags.sh.in | 1 + .../buildenv/{ccache.sh.in => compiler.sh.in} | 27 +++++++++++++--- .../{distcc.sh.in => debugflags.sh.in} | 31 +++++++------------ scripts/libmakepkg/buildenv/makeflags.sh.in | 1 + scripts/libmakepkg/buildenv/meson.build | 4 +-- 7 files changed, 43 insertions(+), 38 deletions(-) rename scripts/libmakepkg/buildenv/{ccache.sh.in => compiler.sh.in} (69%) rename scripts/libmakepkg/buildenv/{distcc.sh.in => debugflags.sh.in} (56%) diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 8e669f71..adced908 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -53,8 +53,8 @@ LIBMAKEPKGDIRS = \ LIBMAKEPKG_IN = \ libmakepkg/buildenv.sh \ libmakepkg/buildenv/buildflags.sh \ - libmakepkg/buildenv/ccache.sh \ - libmakepkg/buildenv/distcc.sh \ + libmakepkg/buildenv/compiler.sh \ + libmakepkg/buildenv/debugflags.sh \ libmakepkg/buildenv/makeflags.sh \ libmakepkg/integrity.sh \ libmakepkg/integrity/generate_checksum.sh \ diff --git a/scripts/libmakepkg/buildenv.sh.in b/scripts/libmakepkg/buildenv.sh.in index a14a3a9a..9c1f02f4 100644 --- a/scripts/libmakepkg/buildenv.sh.in +++ b/scripts/libmakepkg/buildenv.sh.in @@ -28,28 +28,21 @@ source "$LIBRARY/util/message.sh" source "$LIBRARY/util/option.sh"
-declare -a build_options +declare -a build_options build_macros
I just figure out why you are doing this and then the next patch has: -declare -a build_options build_macros +declare -a buildenv_options I'm not doing any further review. A
From: Que Quotion
From: Que Quotion
From: Que Quotion
From: Que Quotion
From: Que Quotion
From: Que Quotion
On 5/11/18 11:27 pm, Que Quotion wrote:
From: Que Quotion
^ this is where context goes. It will help me to understand why this patch is needed.
Signed-off-by: Que Quotion
--- scripts/libmakepkg/executable/gpg.sh.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/libmakepkg/executable/gpg.sh.in b/scripts/libmakepkg/executable/gpg.sh.in index f53f186d..8b6b8aa2 100644 --- a/scripts/libmakepkg/executable/gpg.sh.in +++ b/scripts/libmakepkg/executable/gpg.sh.in @@ -28,8 +28,8 @@ source "$LIBRARY/util/option.sh" executable_functions+=('executable_gpg')
executable_gpg() { - if { [[ $SIGNPKG == 'y' ]] || { [[ -z $SIGNPKG ]] && check_buildenv "sign" "y"; } } || \ - { (( ! SKIPPGPCHECK )) && source_has_signatures }; then + if { [[ $SIGNPKG == 'y' ]] || { [[ -z $SIGNPKG ]] && check_buildenv "sign" "y"; }; } || \ + { (( ! SKIPPGPCHECK )) && source_has_signatures; }; then if ! type -p gpg >/dev/null; then error "$(gettext "Cannot find the %s binary required for signing packages.")" "gpg" ret=1
From: Que Quotion
On 5/11/18 11:50 pm, Que Quotion wrote:
From: Que Quotion
Should have done this a when putting the two functions together
Signed-off-by: Que Quotion
--- scripts/libmakepkg/buildenv/compiler.sh.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/libmakepkg/buildenv/compiler.sh.in b/scripts/libmakepkg/buildenv/compiler.sh.in index 38399269..e2b31916 100644 --- a/scripts/libmakepkg/buildenv/compiler.sh.in +++ b/scripts/libmakepkg/buildenv/compiler.sh.in @@ -25,13 +25,12 @@ LIBMAKEPKG_BUILDENV_COMPILER_SH=1
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
-source "$LIBRARY/util/message.sh" source "$LIBRARY/util/option.sh"
Extra change unrelated to the patch.
build_options+=('ccache' 'distcc') buildenv_functions+=('buildenv_ccache' 'buildenv_distcc')
-using_ccache=0 +local using_ccache=0
This variable is set in a previous patch (I assume). Fix it by submitting a v2.
buildenv_ccache() { if check_buildoption "ccache" "y"; then
From: Que Quotion
From: Que Quotion
On 6/11/18 2:23 am, Que Quotion wrote:
From: Que Quotion
Signed-off-by: Que Quotion
--- scripts/libmakepkg/executable.sh.in | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/libmakepkg/executable.sh.in b/scripts/libmakepkg/executable.sh.in index 57953600..6328effc 100644 --- a/scripts/libmakepkg/executable.sh.in +++ b/scripts/libmakepkg/executable.sh.in @@ -36,8 +36,6 @@ done readonly -a executable_functions
check_software() { - msg "$(gettext "Checking for needed software...")" -
This is a patch for a string I assume is added earlier in your patch series. Don't submit an additional patch. Fix the previous one. A
From: Que Quotion
On 6/11/18 12:27 pm, Que Quotion wrote:
From: Que Quotion
This version is inclusive of all previous patches.
Split prepare_builenv() and check_software() out of makepkg and into individual .sh.in scripts for libmakepkg. Creates two new libmakepkg modules: 'buildenv' and 'executable'.
This further simplifies makepkg and allows for third-party drop-in scripts to add extentions (see makepkg-optimize on AUR).
Third parties providing an extention that relies on some program should also provide an executable/program.sh to confirm its presence.
And now we have one big-ass patch [1] that combines two quite unrelated changes. What I need to see is: - one patch for check_software(). - one patch for prepare_buildenv() extensions. The prepare_biuldenv() extensions may even be two separate patches but the looks of things. Allan [1] https://xkcd.com/37/
From: Que Quotion
On 27/11/18 7:23 pm, Que Quotion wrote:
From: Que Quotion
This opens the door for third parties who provide extensions to libmakepkg to supply scripts that confirm the presence of their dependant executables.
See makepkg-optimize in the AUR for examples.
Signed-off-by: Que Quotion
--- Split v2 patch into two patches as requested. First, split check_software() out so that we can split prepare_buildenv() out as a separate patch later.
I had reviewed this offline. A couple of issues crept in while doing the latest revisions (truncated copyright year, indenting in copyright notice for one file), but I have fixed these and pulled the patch. Thanks, Allan
From: Que Quotion
On 27/11/18 7:23 pm, Que Quotion wrote:
From: Que Quotion
This opens the door for third parties to provide libmakepkg extentions for the purpose of altering the build environment.
See makepkg-optimize in the AUR for examples.
Signed-off-by: Que Quotion
---
OK. Caught a couple of typos. Also, some of these options have been around forever... I see some of them originating in 2007 at the latest. I suspect they may go back further, but just started the copyright year on the split files from then. Allan
From: Que Quotion
participants (3)
-
Allan McRae
-
Eli Schwartz
-
Que Quotion