]> git.djapps.eu Git - pkg/ggml/commitdiff
Make packaging harness more portable
authorMathieu Baudier <redacted>
Sun, 9 Feb 2025 18:35:25 +0000 (19:35 +0100)
committerMathieu Baudier <redacted>
Sun, 9 Feb 2025 18:35:25 +0000 (19:35 +0100)
README.md
sources/.gitignore
sources/build-dev [new file with mode: 0755]
sources/build-dev.sh [deleted file]
sources/build-pbuilder [new file with mode: 0755]
sources/build-pbuilder.sh [deleted file]
sources/create-pbuilder [new file with mode: 0755]
sources/create-pbuilder-non-free.sh [deleted file]
sources/create-pbuilder.sh [deleted file]

index 0a28154fbcdd57630967cf5610a62abb069499a1..e816d3e955759c054d4b21946309b43607e52c03 100644 (file)
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ The software layers are configured as git submodules under the `sources/` subdir
  These git repositories follow Debian's [DEP-14](https://dep-team.pages.debian.net/deps/dep14/) layout
  and can be used independently of this harness.
 
-# Quick start ####
+## Quick start ##
 To use, clone recursively, for example:
 
        git clone --recurse-submodules --branch unstable https://git.djapps.eu/pkg/ggml
@@ -15,27 +15,53 @@ Make sure that you have the necessary packages installed:
        
 Make sure you have a base for the distribution and arch that you are targeting:
 
-       sudo sh sources/create-pbuilder.sh <dist> <arch>
+       sources/create-pbuilder <dist> <arch>
        
 For example:
 
-       sudo sh sources/create-pbuilder.sh bookworm amd64
+       sources/create-pbuilder bookworm amd64
 
 To build a layer, cd to its directory and run:
 
-       sh ../build-pbuilder.sh <dist> <arch> [<branch>]
+       ../build-pbuilder <dist> <arch> [<branch>]
 
 For example:
 
        cd sources/ggml
-       sh ../build-pbuilder.sh sid amd64
+       ../build-pbuilder sid amd64
        
 or:
 
        cd sources/llama.cpp
-       sh ../build-pbuilder.sh bullseye amd64 debian/bullseye
+       ../build-pbuilder bullseye amd64 debian/bullseye
 
+## Using locally built packages ##
 Except for `ggml` itself, pbuilder/cowbuilder needs to be configured appropriately
  in order to use either a local repository with the `ggml` packages you just built,
  or a remote repository with the required `ggml`-related packages.
 
+To configure a local repository, update `/etc/pbuilderrc`. For example:
+
+       ...
+       BINDMOUNTS="/srv/repo/deb/bullseye/ml/1.1 /srv/repo/deb/bookworm/ml/1.1 /srv/repo/deb/sid/ml/1.1"
+       ...
+
+and create a `create-pbuilder.settings` file which will be sourced by the script:
+
+       export GIT_PBUILDER_OPTIONS="--aptcache /var/cache/pbuilder/aptcache --othermirror 'deb [trusted=yes] file:/srv/repo/deb/$1/ml/1.1/ ./'"
+
+The `Packages` file needs to be generated after each build. For example:
+
+       cd /srv/repo/deb/sid/ml/1.1
+       apt-ftparchive packages . > Packages
+
+(Or [hooks](https://wiki.debian.org/PbuilderTricks#How_to_include_local_packages_in_the_build) can be used.)
+
+## Development ##
+When developing the packaging, cd to a layer directory and [use git-buildpackage as usual](https://honk.sigxcpu.org/projects/git-buildpackage/manual-html/).
+
+A shortcut is provided (which requires the dependent packages to be installed locally):
+
+       ../build.dev
+
+
index dec70b174fbe7603116464d27fe0760b2cc22446..fd0b246e29fe42f60607a8171e6c7ff478bf5562 100644 (file)
@@ -1,3 +1,4 @@
+/*.settings
 /*.buildinfo
 /*.changes
 /*.deb
diff --git a/sources/build-dev b/sources/build-dev
new file mode 100755 (executable)
index 0000000..52a676a
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+gbp buildpackage \
+--git-ignore-new \
+--git-submodules \
+--git-debian-branch="debian/latest" \
+--git-builder="debuild -i -I --no-sign" \
+--git-cleaner="git clean -d -x -f"
diff --git a/sources/build-dev.sh b/sources/build-dev.sh
deleted file mode 100644 (file)
index 52a676a..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-gbp buildpackage \
---git-ignore-new \
---git-submodules \
---git-debian-branch="debian/latest" \
---git-builder="debuild -i -I --no-sign" \
---git-cleaner="git clean -d -x -f"
diff --git a/sources/build-pbuilder b/sources/build-pbuilder
new file mode 100755 (executable)
index 0000000..e591df9
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+if [ -z "$1" ] || [ -z "$2" ];  then
+    echo "Usage: $0 <dist> <arch> [<branch>]"
+    exit 1
+fi
+
+DIST=$1
+ARCH=$2
+
+if [ -z "$3" ];  then
+    DEBIAN_BRANCH=debian/latest
+else
+    DEBIAN_BRANCH=$3
+fi
+
+gbp buildpackage \
+--git-submodules \
+--git-debian-branch="$DEBIAN_BRANCH" \
+--git-pbuilder \
+--git-arch="$ARCH" \
+--git-dist="$DIST" \
+--git-pbuilder-options="--aptcache /var/cache/pbuilder/aptcache --buildresult $HOME/qa/git/argeo-qa-unstable/build/repo/deb/$DIST/ml/1.1"
diff --git a/sources/build-pbuilder.sh b/sources/build-pbuilder.sh
deleted file mode 100644 (file)
index e591df9..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-if [ -z "$1" ] || [ -z "$2" ];  then
-    echo "Usage: $0 <dist> <arch> [<branch>]"
-    exit 1
-fi
-
-DIST=$1
-ARCH=$2
-
-if [ -z "$3" ];  then
-    DEBIAN_BRANCH=debian/latest
-else
-    DEBIAN_BRANCH=$3
-fi
-
-gbp buildpackage \
---git-submodules \
---git-debian-branch="$DEBIAN_BRANCH" \
---git-pbuilder \
---git-arch="$ARCH" \
---git-dist="$DIST" \
---git-pbuilder-options="--aptcache /var/cache/pbuilder/aptcache --buildresult $HOME/qa/git/argeo-qa-unstable/build/repo/deb/$DIST/ml/1.1"
diff --git a/sources/create-pbuilder b/sources/create-pbuilder
new file mode 100755 (executable)
index 0000000..6ac0bb3
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+if [ -z "$1" ] || [ -z "$2" ];  then
+    echo "Usage: $0 <dist> <arch>"
+    exit 1
+fi
+
+export DIST=$1
+export ARCH=$2
+
+if [ -f "$(dirname $0)/$(basename $0).settings" ]; then
+. $(dirname $0)/$(basename $0).settings
+fi
+
+sudo rm -rf "/var/cache/pbuilder/base-$DIST-$ARCH.cow"
+git-pbuilder create
diff --git a/sources/create-pbuilder-non-free.sh b/sources/create-pbuilder-non-free.sh
deleted file mode 100644 (file)
index 72b3ce6..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-if [ -z "$1" ] || [ -z "$2" ];  then
-    echo "Usage: $0 <dist> <arch>"
-    exit 1
-fi
-
-export DIST=$1
-export ARCH=$2
-
-sudo rm -rf "/var/cache/pbuilder/base-$DIST-$ARCH.cow"
-GIT_PBUILDER_OPTIONS="--aptcache /var/cache/pbuilder/aptcache --components 'main contrib non-free' --othermirror 'deb [trusted=yes] file:/home/mbaudier/qa/git/argeo-qa-unstable/build/repo/deb/$1/ml/1.1/ ./'" git-pbuilder create
diff --git a/sources/create-pbuilder.sh b/sources/create-pbuilder.sh
deleted file mode 100644 (file)
index 5664f1a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-if [ -z "$1" ] || [ -z "$2" ];  then
-    echo "Usage: $0 <dist> <arch>"
-    exit 1
-fi
-
-export DIST=$1
-export ARCH=$2
-
-sudo rm -rf "/var/cache/pbuilder/base-$DIST-$ARCH.cow"
-GIT_PBUILDER_OPTIONS="--aptcache /var/cache/pbuilder/aptcache --othermirror 'deb [trusted=yes] file:/home/mbaudier/qa/git/argeo-qa-unstable/build/repo/deb/$1/ml/1.1/ ./'" git-pbuilder create