From 68c741d54d2baf3611349a5dcef4546ca1b5f839 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 25 Aug 2026 01:01:56 +0300 Subject: [PATCH] BuildSystem: Allow packaging ports into xbps packages if you build a package, you can build a port with `PACKAGE=1 ./build.sh` --- ports/install.sh | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/ports/install.sh b/ports/install.sh index 2485a8df..0e2e5adc 100755 --- a/ports/install.sh +++ b/ports/install.sh @@ -54,6 +54,8 @@ MAKE_INSTALL_TARGETS=('install') CONFIG_SUB=() +REVISION=1 + clean() { find . -mindepth 1 -maxdepth 1 -not -name 'patches' -not -name 'build.sh' -exec rm -rf {} + } @@ -111,12 +113,16 @@ post_install() { install() { for target in "${MAKE_INSTALL_TARGETS[@]}"; do - make $target "DESTDIR=$BANAN_SYSROOT" || exit 1 + make $target "DESTDIR=$DESTDIR" || exit 1 done } source $1 +if [ -z $DESCRIPTION ]; then + DESCRIPTION="TODO description for $NAME" +fi + if [ -z $NAME ] || [ -z $VERSION ] || [ -z $DOWNLOAD_URL ]; then echo "Port does not set needed environment variables" >&2 exit 1 @@ -255,6 +261,33 @@ fi DESTDIR="$BANAN_SYSROOT" pre_install install -grep -qsxF "$NAME-$VERSION" "$installed_file" || echo "$NAME-$VERSION" >> "$installed_file" post_install find "$BANAN_SYSROOT/usr/lib" -name '*.la' -delete +grep -qsxF "$NAME-$VERSION" "$installed_file" || echo "$NAME-$VERSION" >> "$installed_file" + +if (( $PACKAGE )); then + PACKAGE_DIR="$BANAN_PORT_DIR/package" + + version="$VERSION" + if [[ "$version" = 'git' ]]; then + version=0.0 + fi + + package_dir="${PACKAGE_DIR}/${NAME}-${version}_${REVISION}-${BANAN_ARCH}" + mkdir "$package_dir" &>/dev/null || exit 0 + + dependencies='' + for dep in "${DEPENDENCIES[@]}"; do + dependencies+="$dep>=0 " + done + echo $dependencies > "$package_dir.deps" + + DESTDIR="$package_dir" + pre_install + install + post_install + + mkdir -p "$PACKAGE_DIR/repo" + cd "$PACKAGE_DIR/repo" + xbps-create -A $BANAN_ARCH -n "$NAME-${version}_$REVISION" -s "$DESCRIPTION" -D "$dependencies" "$package_dir" +fi