fixup! Add ports to the Sortix repository.

This commit is contained in:
Jonas 'Sortie' Termansen 2022-02-01 23:30:15 +01:00
parent 846cc82eaa
commit df79b04194
2 changed files with 105 additions and 23 deletions

View File

@ -242,6 +242,7 @@ download_archive_from_url() {(
fi fi
fi fi
if ! echo "$SHA256SUM $SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE.untrusted" | sha256sum -c; then if ! echo "$SHA256SUM $SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE.untrusted" | sha256sum -c; then
sha256sum "$SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE.untrusted"
echo "warning: Wrong sha256sum after downloading $ARCHIVE from $URL" >&2 echo "warning: Wrong sha256sum after downloading $ARCHIVE from $URL" >&2
exit 1 exit 1
fi fi
@ -288,9 +289,11 @@ download_package() {(
)} )}
desired_version() {( desired_version() {(
#unset ARCHIVE PACKAGE="$1"
#unset ARCHIVE_2 unset DEVELOPMENT
#. "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.info" unset ARCHIVE
unset ARCHIVE_2
. "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.info"
VERSION_STAMP="$NAME" VERSION_STAMP="$NAME"
if [ -n "$ARCHIVE" ]; then if [ -n "$ARCHIVE" ]; then
VERSION_STAMP="$VERSION_STAMP.$VERSION.$SHA256SUM" VERSION_STAMP="$VERSION_STAMP.$VERSION.$SHA256SUM"
@ -307,44 +310,105 @@ desired_version() {(
if [ -f "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize" ]; then if [ -f "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize" ]; then
VERSION_STAMP="$VERSION_STAMP.$(cat "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize" | sha256sum | grep -Eo '^[^ ]*')" VERSION_STAMP="$VERSION_STAMP.$(cat "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize" | sha256sum | grep -Eo '^[^ ]*')"
fi fi
if [ "$DEVELOPMENT" = true ]; then
VERSION_STAMP="$VERSION_STAMP.development"
fi
echo "$VERSION_STAMP" echo "$VERSION_STAMP"
)} )}
diff_package() {(
# TODO: Only do this once the port is known to be cleaned.
cd "$SORTIX_PORTS_DIR/$1"
if [ -e "$1.normalized" ]; then
diff --no-dereference -Naur -- "$1.normalized" "$1" > "$1.patch" || true
if [ ! -s "$1.patch" ]; then rm "$1.patch"; fi
tix-execdiff -- "$1.normalized" "$1" > "$1.execpatch"
if [ ! -s "$1.execpatch" ]; then rm "$1.execpatch"; fi
# TODO: tix-rmpatch
fi
)}
extract_package() {( extract_package() {(
PACKAGE="$1" PACKAGE="$1"
VERSION_STAMP="$2" unset DEVELOPMENT
unset ARCHIVE unset ARCHIVE
unset ARCHIVE_2 unset ARCHIVE_2
unset NEED_WRITABLE unset NEED_WRITABLE
. "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.info" . "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.info"
VERSION_STAMP="$(desired_version)" VERSION_STAMP="$(desired_version "$PACKAGE")"
OLD_VERSION_STAMP="$(cat "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" || true)"
if [ ! -e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" ] || if [ ! -e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" ] ||
[ "$(cat "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version")" != "$VERSION_STAMP" ] || [ "$(cat "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version")" != "$VERSION_STAMP" ] ||
[ ! -e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" ]; then [ ! -e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" ]; then
if [ -e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" ]; then
OLD_VERSION_STAMP="$(cat "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version")"
case "$OLD_VERSION_STAMP" in
*.development)
if [ "$DEVELOPMENT" = true ]; then
echo "error: $PACKAGE: Refusing to delete port in development"
echo "error: $PACKAGE: .version is currently: $OLD_VERSION_STAMP"
echo "error: $PACKAGE: .version should be: $VERSION_STAMP"
exit 1
fi
diff_package "$PACKAGE"
esac
fi
echo "$VERSION_STAMP" > "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version.new" echo "$VERSION_STAMP" > "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version.new"
rm -rf "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" rm -rf "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE"
rm -rf "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalized"
mkdir "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" mkdir "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE"
if [ "$DEVELOPMENT" = true ]; then
mkdir "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalized"
fi
if [ -n "$ARCHIVE" ]; then if [ -n "$ARCHIVE" ]; then
announce "Extracting $1: $ARCHIVE" announce "Extracting $1: $ARCHIVE"
tar -C "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" -xf "$SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE" --strip-components=1 tar -C "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" -xf "$SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE" --strip-components=1
if [ "$DEVELOPMENT" = true ]; then
tar -C "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalized" -xf "$SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE" --strip-components=1
fi
if [ -n "$ARCHIVE_2" ]; then if [ -n "$ARCHIVE_2" ]; then
announce "Extracting $1: $ARCHIVE_2" announce "Extracting $1: $ARCHIVE_2"
tar -C "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" -xf "$SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE_2" --strip-components=1 tar -C "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" -xf "$SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE_2" --strip-components=1
if [ "$DEVELOPMENT" = true ]; then
tar -C "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalized" -xf "$SORTIX_MIRROR_DIR/$PACKAGE/$ARCHIVE_2" --strip-components=1
fi
fi fi
fi fi
if [ -f "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.patch" ]; then if [ -f "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.patch" ]; then
patch -d "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" -p1 < "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.patch" if [ "$DEVELOPMENT" = true ]; then
# TODO: .rej .orig etc.
patch -d "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" -p1 < "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.patch" || true
# .orig files aren't useful unless part of the patch got rejected.
find "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" \
-name '*.orig' \
-exec sh -c 'test ! -e "$(echo "$0" | sed -E "s,\\.orig$,.rej,")"' \
'{}' ';' -delete
else
patch -d "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" -p1 < "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.patch"
fi
fi fi
if [ -f "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.execpatch" ]; then if [ -f "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.execpatch" ]; then
tix-execpatch --directory "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.execpatch" tix-execpatch --directory "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.execpatch"
fi fi
if [ -f "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize" ]; then if [ -f "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize" ]; then
tix-rmpatch --directory "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize" tix-rmpatch --directory "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize"
if [ "$DEVELOPMENT" = true ]; then
tix-rmpatch --directory "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalized" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.normalize"
fi
fi fi
if [ "$NEED_WRITABLE" != true ]; then if [ "$DEVELOPMENT" != true -a "$NEED_WRITABLE" != true ]; then
find "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" '!' -type d -exec chmod -w '{}' + find "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" '!' -type d -exec chmod -w '{}' +
fi fi
mv "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version.new" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" mv "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version.new" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version"
if [ "$DEVELOPMENT" = true ]; then
REJECTS="$(find "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" \
-name '*.rej' -o -name '*.orig' | sort)"
if [ -n "$REJECTS" ]; then
echo "$REJECTS"
echo "error: $PACKAGE: The above patch hunks were rejected"
exit 1
fi
fi
fi fi
)} )}
@ -353,26 +417,29 @@ for PACKAGE in $PACKAGES; do
SOURCE_PACKAGE=$( (SOURCE_PACKAGE= && SOURCE_PACKAGE=$( (SOURCE_PACKAGE= &&
. $SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.info && . $SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.info &&
echo "$SOURCE_PACKAGE") ) echo "$SOURCE_PACKAGE") )
DEVELOPMENT=$( (DEVELOPMENT= &&
. $SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.info &&
echo "$DEVELOPMENT") )
# TODO: clean support. # TODO: clean support.
if [ ! -f "$SORTIX_REPOSITORY_DIR/$PACKAGE.tix.tar.xz" ] || # download
[ "$OPERATION" != build ] ; then if [ -n "$SOURCE_PACKAGE" ]; then
download_package "$SOURCE_PACKAGE"
fi
download_package "$PACKAGE"
if [ "$OPERATION" = download ]; then continue; fi
# download # extract
if [ -n "$SOURCE_PACKAGE" ]; then if [ -n "$SOURCE_PACKAGE" ]; then
download_package "$SOURCE_PACKAGE" extract_package "$SOURCE_PACKAGE"
fi fi
download_package "$PACKAGE" extract_package "$PACKAGE"
if [ "$OPERATION" = download ]; then continue; fi if [ "$OPERATION" = extract ]; then continue; fi
# extract # build
if [ -n "$SOURCE_PACKAGE" ]; then if [ ! -f "$SORTIX_REPOSITORY_DIR/$PACKAGE.tix.tar.xz" -o \
extract_package "$SOURCE_PACKAGE" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" -nt \
fi "$SORTIX_REPOSITORY_DIR/$PACKAGE.tix.tar.xz" ]; then
extract_package "$PACKAGE"
if [ "$OPERATION" = extract ]; then continue; fi
# build
announce "Building $PACKAGE" announce "Building $PACKAGE"
tix-build \ tix-build \
--sysroot="$SYSROOT" \ --sysroot="$SYSROOT" \
@ -383,6 +450,10 @@ for PACKAGE in $PACKAGES; do
${SOURCE_PACKAGE:+--source-package "$SORTIX_PORTS_DIR/$SOURCE_PACKAGE/$SOURCE_PACKAGE"} \ ${SOURCE_PACKAGE:+--source-package "$SORTIX_PORTS_DIR/$SOURCE_PACKAGE/$SOURCE_PACKAGE"} \
"$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE"
strip_tix "$SORTIX_REPOSITORY_DIR/$PACKAGE.tix.tar.xz" strip_tix "$SORTIX_REPOSITORY_DIR/$PACKAGE.tix.tar.xz"
if [ "$DEVELOPMENT" = true ]; then
# TODO: .rej .orig etc.
diff_package "$PACKAGE"
fi
fi fi
announce "Installing $PACKAGE" announce "Installing $PACKAGE"
tix-install \ tix-install \

View File

@ -34,6 +34,9 @@ get_all_packages() {
# Clean all the packages. # Clean all the packages.
for PACKAGE in $(get_all_packages); do for PACKAGE in $(get_all_packages); do
DEVELOPMENT=$( (DEVELOPMENT= &&
. $SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.info &&
echo "$DEVELOPMENT") )
if [ -e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" -o \ if [ -e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" -o \
-e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version.new" ]; then -e "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version.new" ]; then
tix-build \ tix-build \
@ -44,6 +47,14 @@ for PACKAGE in $(get_all_packages); do
--start=clean \ --start=clean \
--end=clean \ --end=clean \
"$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE"
if [ "$DEVELOPMENT" = true ]; then
case "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE.version" in
*.development)
echo "Port is in development: '$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE'"
continue
;;
esac
fi
# TODO: New top-level makefile target for this. # TODO: New top-level makefile target for this.
echo "Removing '$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE'" echo "Removing '$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE'"
rm -rf "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE" rm -rf "$SORTIX_PORTS_DIR/$PACKAGE/$PACKAGE"