From d210079037d34fd32fc9a84e490655204bae103a Mon Sep 17 00:00:00 2001 From: Levente Polyak Date: Tue, 9 Jan 2024 00:39:43 +0100 Subject: feat(util): add library function to generate source packages --- src/lib/util/makepkg.sh | 35 +++++++++++++++++++++++++++++++++++ src/offload-build.in | 11 +++++++---- 2 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 src/lib/util/makepkg.sh diff --git a/src/lib/util/makepkg.sh b/src/lib/util/makepkg.sh new file mode 100644 index 0000000..adb3af6 --- /dev/null +++ b/src/lib/util/makepkg.sh @@ -0,0 +1,35 @@ +#!/hint/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +[[ -z ${DEVTOOLS_INCLUDE_UTIL_MAKEPKG_SH:-} ]] || return 0 +DEVTOOLS_INCLUDE_UTIL_MAKEPKG_SH=1 + +_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@} +# shellcheck source=src/lib/common.sh +source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh +# shellcheck source=src/lib/util/srcinfo.sh +source "${_DEVTOOLS_LIBRARY_DIR}"/lib/util/srcinfo.sh + + +set -e + +makepkg_source_package() { + if (( EUID != 0 )); then + [[ -z ${WORKDIR:-} ]] && setup_workdir + export WORKDIR DEVTOOLS_INCLUDE_COMMON_SH + fakeroot -- bash -$- -c "source '${BASH_SOURCE[0]}' && ${FUNCNAME[0]}" + return + fi + ( + export LIBMAKEPKG_LINT_PKGBUILD_SH=1 + lint_pkgbuild() { :; } + + export LIBMAKEPKG_SRCINFO_SH=1 + write_srcinfo() { print_srcinfo; } + + set +e -- -F --source + # shellcheck source=/usr/bin/makepkg + source "$(command -v makepkg)" + ) +} diff --git a/src/offload-build.in b/src/offload-build.in index 0aa2e38..5238129 100644 --- a/src/offload-build.in +++ b/src/offload-build.in @@ -6,11 +6,16 @@ # # SPDX-License-Identifier: GPL-3.0-or-later +_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@} +# shellcheck source=src/lib/common.sh +source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh +# shellcheck source=src/lib/util/makepkg.sh +source "${_DEVTOOLS_LIBRARY_DIR}"/lib/util/makepkg.sh + source /usr/share/makepkg/util/config.sh # Deprecation warning if [[ -z $_DEVTOOLS_COMMAND ]]; then - colorize warning "${0##*/} is deprecated and will be removed. Use 'pkgctl build --offload' instead" fi @@ -19,8 +24,6 @@ repo=extra arch=x86_64 server=build.archlinux.org -die() { printf "error: $1\n" "${@:2}"; exit 1; } - usage() { cat <<- _EOF_ Usage: ${BASH_SOURCE[0]##*/} [--repo REPO] [--arch ARCHITECTURE] [--server SERVER] -- [ARCHBUILD_ARGS] @@ -84,7 +87,7 @@ load_makepkg_config # transferred, including local sources, install scripts, and changelogs. export TEMPDIR=$(mktemp -d --tmpdir offload-build.XXXXXXXXXX) export SRCPKGDEST=${TEMPDIR} -makepkg --source || die "unable to make source package" +makepkg_source_package || die "unable to make source package" # Temporary cosmetic workaround makepkg if SRCDEST is set somewhere else # but an empty src dir is created in PWD. Remove once fixed in makepkg. -- cgit v1.2.3-70-g09d2