build: add support for various version in OCI based package build.
This commit is contained in:
parent
49a2a21c11
commit
b9ec70b8bb
3 changed files with 27 additions and 17 deletions
12
Justfile
12
Justfile
|
|
@ -166,9 +166,15 @@ package dist:
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -eu -o pipefail
|
set -eu -o pipefail
|
||||||
dist="{{dist}}"
|
dist="{{dist}}"
|
||||||
[[ $dist =~ ubuntu* ]] && dist=ubuntu
|
version=""
|
||||||
[[ $dist =~ debian* ]] && dist=debian
|
if [[ $dist =~ ubuntu([0-9]+) ]]; then
|
||||||
bash dists/docker.sh $dist
|
version="${BASH_REMATCH[1]}.04"
|
||||||
|
dist="ubuntu"
|
||||||
|
elif [[ $dist =~ debian([0-9]+) ]]; then
|
||||||
|
version="${BASH_REMATCH[1]}"
|
||||||
|
dist="debian"
|
||||||
|
fi
|
||||||
|
bash dists/docker.sh $dist $version
|
||||||
|
|
||||||
[doc('Build the image')]
|
[doc('Build the image')]
|
||||||
img dist flavor: (package dist)
|
img dist flavor: (package dist)
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ func init() {
|
||||||
|
|
||||||
case "debian":
|
case "debian":
|
||||||
switch prebuild.Release["VERSION_CODENAME"] {
|
switch prebuild.Release["VERSION_CODENAME"] {
|
||||||
case "bookworm":
|
case "bullseye", "bookworm":
|
||||||
prebuild.ABI = 3
|
prebuild.ABI = 3
|
||||||
prebuild.Version = 3.0
|
prebuild.Version = 3.0
|
||||||
case "trixie", "sid":
|
case "trixie", "sid":
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# Copyright (C) 2022-2024 Alexandre Pujol <alexandre@pujol.io>
|
# Copyright (C) 2022-2024 Alexandre Pujol <alexandre@pujol.io>
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
# Usage: make package dist=<distribution>
|
# Usage: make package dist=<distribution> version=<version>
|
||||||
|
|
||||||
set -eu -o pipefail
|
set -eu -o pipefail
|
||||||
|
|
||||||
|
|
@ -14,7 +14,8 @@ readonly VOLUME=/tmp/build
|
||||||
readonly BUILDIR=/home/build/tmp
|
readonly BUILDIR=/home/build/tmp
|
||||||
readonly OUTDIR=".pkg"
|
readonly OUTDIR=".pkg"
|
||||||
readonly OUTPUT="$PWD/$OUTDIR"
|
readonly OUTPUT="$PWD/$OUTDIR"
|
||||||
readonly COMMAND="${1:-}"
|
readonly DISTRIBUTION="${1:-}"
|
||||||
|
readonly RELEASE="${2:-}"
|
||||||
VERSION="0.$(git rev-list --count HEAD)"
|
VERSION="0.$(git rev-list --count HEAD)"
|
||||||
PACKAGER="$(git config user.name) <$(git config user.email)>"
|
PACKAGER="$(git config user.name) <$(git config user.email)>"
|
||||||
readonly VERSION PACKAGER
|
readonly VERSION PACKAGER
|
||||||
|
|
@ -68,21 +69,24 @@ build_in_docker_makepkg() {
|
||||||
}
|
}
|
||||||
|
|
||||||
build_in_docker_dpkg() {
|
build_in_docker_dpkg() {
|
||||||
local dist="$1" target="$1"
|
local img dist="$1" target="$1" release="$2"
|
||||||
local img="$PREFIX$dist"
|
|
||||||
|
|
||||||
[[ "$dist" == whonix ]] && dist=debian
|
[[ "$dist" == whonix ]] && dist=debian
|
||||||
|
[[ "$release" == "13" ]] && release=trixie
|
||||||
|
img="$PREFIX$dist$release"
|
||||||
if _exist "$img"; then
|
if _exist "$img"; then
|
||||||
if ! _is_running "$img"; then
|
if ! _is_running "$img"; then
|
||||||
_start "$img"
|
_start "$img"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
docker pull "$BASEIMAGE/$dist"
|
docker pull "$BASEIMAGE/$dist:$release"
|
||||||
docker run -tid --name "$img" --volume "$VOLUME:$BUILDIR" \
|
docker run -tid --name "$img" --volume "$VOLUME:$BUILDIR" \
|
||||||
--env DISTRIBUTION="$target" "$BASEIMAGE/$dist"
|
--env DISTRIBUTION="$target" "$BASEIMAGE/$dist:$release"
|
||||||
docker exec "$img" sudo apt-get update -q
|
docker exec "$img" sudo apt-get update -q
|
||||||
docker exec "$img" sudo apt-get install -y config-package-dev lsb-release libdistro-info-perl
|
docker exec "$img" sudo apt-get install -y config-package-dev lsb-release libdistro-info-perl
|
||||||
[[ "$dist" == debian ]] && aptopt=(-t bookworm-backports)
|
if [[ "$dist" == debian && "$release" == "12" ]]; then
|
||||||
|
aptopt=(-t bookworm-backports)
|
||||||
|
fi
|
||||||
docker exec "$img" sudo apt-get install -y "${aptopt[@]}" golang-go
|
docker exec "$img" sudo apt-get install -y "${aptopt[@]}" golang-go
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -110,7 +114,7 @@ build_in_docker_rpm() {
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
case "$COMMAND" in
|
case "$DISTRIBUTION" in
|
||||||
archlinux)
|
archlinux)
|
||||||
# build_in_docker_makepkg "$COMMAND"
|
# build_in_docker_makepkg "$COMMAND"
|
||||||
PKGDEST="$OUTPUT" makepkg -Cf
|
PKGDEST="$OUTPUT" makepkg -Cf
|
||||||
|
|
@ -118,12 +122,12 @@ main() {
|
||||||
|
|
||||||
debian | ubuntu | whonix)
|
debian | ubuntu | whonix)
|
||||||
sync
|
sync
|
||||||
build_in_docker_dpkg "$COMMAND"
|
build_in_docker_dpkg "$DISTRIBUTION" "$RELEASE"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
opensuse)
|
opensuse)
|
||||||
sync
|
sync
|
||||||
build_in_docker_rpm "$COMMAND"
|
build_in_docker_rpm "$DISTRIBUTION"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*) ;;
|
*) ;;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue