From: Mathieu Baudier Date: Sun, 9 Feb 2025 18:35:25 +0000 (+0100) Subject: Make packaging harness more portable X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=98df9f6113f2b27773ab0981582d73095cadded6;p=pkg%2Fggml Make packaging harness more portable --- diff --git a/README.md b/README.md index 0a28154..e816d3e 100644 --- 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 + sources/create-pbuilder 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 [] + ../build-pbuilder [] 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 + + diff --git a/sources/.gitignore b/sources/.gitignore index dec70b1..fd0b246 100644 --- a/sources/.gitignore +++ b/sources/.gitignore @@ -1,3 +1,4 @@ +/*.settings /*.buildinfo /*.changes /*.deb diff --git a/sources/build-dev b/sources/build-dev new file mode 100755 index 0000000..52a676a --- /dev/null +++ b/sources/build-dev @@ -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 index 52a676a..0000000 --- a/sources/build-dev.sh +++ /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 index 0000000..e591df9 --- /dev/null +++ b/sources/build-pbuilder @@ -0,0 +1,23 @@ +#!/bin/sh + +if [ -z "$1" ] || [ -z "$2" ]; then + echo "Usage: $0 []" + 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 index e591df9..0000000 --- a/sources/build-pbuilder.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -if [ -z "$1" ] || [ -z "$2" ]; then - echo "Usage: $0 []" - 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 index 0000000..6ac0bb3 --- /dev/null +++ b/sources/create-pbuilder @@ -0,0 +1,16 @@ +#!/bin/sh + +if [ -z "$1" ] || [ -z "$2" ]; then + echo "Usage: $0 " + 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 index 72b3ce6..0000000 --- a/sources/create-pbuilder-non-free.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -if [ -z "$1" ] || [ -z "$2" ]; then - echo "Usage: $0 " - 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 index 5664f1a..0000000 --- a/sources/create-pbuilder.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -if [ -z "$1" ] || [ -z "$2" ]; then - echo "Usage: $0 " - 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