1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
#!/bin/sh
set -e
if [ "$#" -lt 3 ]; then
echo "Usage: $0 <name> <path> <config>"
exit 1
fi
NAME="$1"
BASE="$2"
CONFIG="$3"
THIS="$(readlink -f "$(dirname "$0")/..")"
if ! [ -f "$THIS/README.md" ]; then
echo "$THIS/README.md does not exist"
echo "You should call this script without relying on PATH"
exit 1
fi
if ! [ -d "$CONFIG" ]; then
echo "$CONFIG does not exist or is not a directory"
exit 1
fi
CONFIG="$(readlink -f "$CONFIG")"
. "$CONFIG/config.sh"
mkdir -p "$BASE"
cd "$BASE"
mkdir -p ben build pool override
ln -sfT "$THIS" usr
ln -sfT "usr/lib/Makefile.index" Makefile
: ${ARCH:="$(dpkg-architecture -q DEB_BUILD_ARCH)"}
save_env () {
local v
v="$(eval "echo \$$1")"
if [ -n "$v" ]; then
echo "$1=\"$v\"" >> ben/env.sh
else
echo "$1 is empty"
exit 1
fi
}
rm -f ben/env.sh
save_env MIRROR
save_env ORIGIN
save_env LABEL
save_env SUITE
save_env ARCH
save_env SUFFIX
save_env NAME
save_env BASE_SUITE
save_env SOURCE_SUITE
save_env URL_PREFIX
cat > ben/apt-ftparchive.conf <<EOF
APT::FTPArchive::Release {
Origin "$ORIGIN";
Label "$LABEL";
Suite "$SUITE";
Architectures "source $ARCH";
Description "Debian packages rebuilt for transition $NAME";
};
EOF
cat > ben/download.ben <<EOF
mirror = "$MIRROR";
suite = "$SOURCE_SUITE";
components = auto;
architectures = [
"$ARCH"
];
EOF
cat > ben/rebuild.ben <<EOF
architectures = [ "$ARCH" ];
EOF
cat "$CONFIG/rebuild.ben" >> ben/rebuild.ben
if [ -f "$CONFIG/filter.txt" ]; then
cp "$CONFIG/filter.txt" ben
fi
cp "$CONFIG/index.html.in" ben
touch pool/stamp
make pool
if ! [ -f ben/rootfs.tar.zst ]; then
usr/lib/create-rootfs.sh
fi
|