mirror of
https://github.com/YunoHost/vinaigrette.git
synced 2024-09-03 20:06:11 +02:00
Merge pull request #5 from YunoHost/simplify-the-madness
WIP: simplify the madness
This commit is contained in:
commit
f5915fbcf2
27 changed files with 87 additions and 701 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,3 +1,3 @@
|
||||||
chroots/*
|
.chroots
|
||||||
config/keys/*
|
config/keys/*
|
||||||
gitrepos/*
|
gitrepos/*
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# For some reason, building chroots for buster from stretch requires libdebian-installer4 0.119 instead of 0.110
|
|
||||||
# c.f. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=904699 ... installed it by manually downloading and dpkg -i the .deb
|
|
||||||
|
|
||||||
readonly DISTRIB=bullseye
|
|
||||||
readonly INIT_DIR=$PWD
|
|
||||||
readonly ARCHS="amd64"
|
|
||||||
#readonly ARCHS="i386 armhf armel arm64"
|
|
||||||
#readonly ARCHS="arm64"
|
|
||||||
|
|
||||||
function main()
|
|
||||||
{
|
|
||||||
for ARCH in $ARCHS
|
|
||||||
do
|
|
||||||
build_chroot $ARCH
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function build_chroot()
|
|
||||||
{
|
|
||||||
local ARCH=$1
|
|
||||||
local CHROOT=chroot-${DISTRIB}-${ARCH}
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Starting build for $ARCH"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
cd /tmp/
|
|
||||||
cdebootstrap --arch=${ARCH} --foreign ${DISTRIB} ./$CHROOT http://deb.debian.org/debian/
|
|
||||||
cp /usr/bin/qemu-arm-static $CHROOT/usr/bin/
|
|
||||||
cp /usr/bin/qemu-aarch64-static $CHROOT/usr/bin/
|
|
||||||
cp /etc/resolv.conf $CHROOT/etc/resolv.conf
|
|
||||||
|
|
||||||
chroot $CHROOT apt update
|
|
||||||
chroot $CHROOT apt dist-upgrade
|
|
||||||
chroot $CHROOT apt install -y build-essential debhelper cmake wget devscripts git aptitude
|
|
||||||
|
|
||||||
# Install build depends for yunohost etc
|
|
||||||
chroot $CHROOT apt install -y debhelper devscripts dh-python python3-all python3-yaml python3-jinja2 python3-setuptools python3-psutil
|
|
||||||
chroot $CHROOT apt install -y lua5.1 liblua5.1-dev libidn11-dev libssl-dev txt2man quilt
|
|
||||||
|
|
||||||
if [ "$ARCH" == "amd64" ];
|
|
||||||
then
|
|
||||||
# This is for building yunohost-admin
|
|
||||||
chroot $CHROOT apt install -y npm nodejs
|
|
||||||
# Don't ask me why, but stupid nodejs wants to look for stuff inside /lib instead of /usr/lib ...
|
|
||||||
# This only happens when building those chroot ... I don't know why ...
|
|
||||||
chroot $CHROOT ln -s /usr/lib/nodejs /lib/nodejs
|
|
||||||
chroot $CHROOT npm install -g npm@latest
|
|
||||||
fi
|
|
||||||
|
|
||||||
chroot $CHROOT apt clean
|
|
||||||
|
|
||||||
cd $CHROOT
|
|
||||||
echo "Now creating tarball with the filesystem ..."
|
|
||||||
tar -czf $INIT_DIR/${DISTRIB}-${ARCH}.tgz ./*
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Output chroot archive should be available as $INIT_DIR/${DISTRIB}-${ARCH}.tgz"
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
|
@ -1,38 +1,13 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Identity
|
|
||||||
|
|
||||||
DEBSIGN_KEYID=59A3E6FF
|
|
||||||
DEBFULLNAME="YunoHost Contributors"
|
|
||||||
DEBEMAIL="contrib@yunohost.org"
|
|
||||||
MAIL="rebuildd@yunohost.org"
|
MAIL="rebuildd@yunohost.org"
|
||||||
REPO_URL="forge.yunohost.org"
|
|
||||||
|
|
||||||
# Codenames, components and architectures
|
|
||||||
|
|
||||||
AVAILABLE_CODENAMES="buster bullseye"
|
|
||||||
AVAILABLE_COMPONENTS="stable testing unstable extra"
|
|
||||||
AVAILABLE_ARCH="amd64 i386 armel armhf arm64"
|
|
||||||
|
|
||||||
DEFAULT_COMPONENT="unstable"
|
|
||||||
DEFAULT_ARCH="amd64"
|
|
||||||
|
|
||||||
# Folders...
|
|
||||||
|
|
||||||
HOME_VINAIGRETTE="/home/vinaigrette"
|
HOME_VINAIGRETTE="/home/vinaigrette"
|
||||||
GIT_REPOS="$HOME_VINAIGRETTE/gitrepos/"
|
GIT_REPOS="$HOME_VINAIGRETTE/gitrepos/"
|
||||||
REPO_DIR="/var/www/repo/debian"
|
|
||||||
|
|
||||||
PBUILDER_HOME="$HOME_VINAIGRETTE/scripts/pbuilder/"
|
|
||||||
PBUILDER_CHROOTS="$HOME_VINAIGRETTE/chroots/"
|
|
||||||
PBUILDER_RESULTS="$PBUILDER_HOME/result"
|
|
||||||
DAILY_PACKAGES="$PBUILDER_HOME/packages/"
|
|
||||||
PBUILDER_CONF="$HOME_VINAIGRETTE/config/pbuilder/"
|
|
||||||
|
|
||||||
# Scripts
|
|
||||||
|
|
||||||
BUILD_SOURCES="$PBUILDER_HOME/build-sources"
|
|
||||||
BUILD_DEB="$HOME_VINAIGRETTE/scripts/build_deb"
|
BUILD_DEB="$HOME_VINAIGRETTE/scripts/build_deb"
|
||||||
INCLUDE_CHANGES="$HOME_VINAIGRETTE/scripts/repo/include-changes"
|
|
||||||
|
|
||||||
|
REPO_URL="forge.yunohost.org"
|
||||||
|
REPO_DIR="/var/www/repo/debian"
|
||||||
|
REPO_CONFIG=$REPO_DIR/conf/distributions
|
||||||
|
REPO_ARCHS="$(grep "Architectures" $REPO_CONFIG | head -n 1 | awk -F: '{print $2}' | sed 's/source//g')"
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@ Description: YunoHost repository for Debian Buster
|
||||||
SignWith: 59A3E6FF
|
SignWith: 59A3E6FF
|
||||||
Tracking: all includechanges keepsources
|
Tracking: all includechanges keepsources
|
||||||
Log: logfile
|
Log: logfile
|
||||||
--changes --via=include /home/vinaigrette/scripts/repo/process-include
|
|
||||||
|
|
||||||
Origin: YunoHost
|
Origin: YunoHost
|
||||||
Label: YunoHost for Bullseye
|
Label: YunoHost for Bullseye
|
||||||
|
@ -24,4 +23,3 @@ Description: YunoHost repository for Debian Bullseye
|
||||||
SignWith: 83BD9E70
|
SignWith: 83BD9E70
|
||||||
Tracking: all includechanges keepsources
|
Tracking: all includechanges keepsources
|
||||||
Log: logfile
|
Log: logfile
|
||||||
--changes --via=include /home/vinaigrette/scripts/repo/process-include
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
# this is your configuration file for pbuilder.
|
|
||||||
# the file in /usr/share/pbuilder/pbuilderrc is the default template.
|
|
||||||
# /etc/pbuilderrc is the one meant for overwriting defaults in
|
|
||||||
# the default template
|
|
||||||
#
|
|
||||||
# read pbuilderrc.5 document for notes on specific options.
|
|
||||||
|
|
||||||
# default distribution
|
|
||||||
DISTRIBUTION="buster"
|
|
||||||
|
|
||||||
# default location for the user hooks directory
|
|
||||||
HOOKDIR="/home/vinaigrette/scripts/pbuilder/hooks/"
|
|
||||||
|
|
||||||
# main mirror site for Debian
|
|
||||||
MIRRORSITE="http://cdn.debian.net/debian"
|
|
||||||
|
|
||||||
# extra packages which the system should install
|
|
||||||
EXTRAPACKAGES="lintian"
|
|
|
@ -1,21 +0,0 @@
|
||||||
[build]
|
|
||||||
check_every = 30
|
|
||||||
max_threads = 1
|
|
||||||
max_jobs = 5
|
|
||||||
kill_timeout = 90
|
|
||||||
source_cmd = /home/vinaigrette/scripts/rebuildd/get-sources ${d} ${p} ${v}
|
|
||||||
build_cmd = /home/vinaigrette/scripts/rebuildd/build-binaries ${d} ${p} ${v} ${a}
|
|
||||||
post_build_cmd = /home/vinaigrette/scripts/rebuildd/upload-binaries ${d} ${p} ${v} ${a} ${j}
|
|
||||||
dists = buster bullseye
|
|
||||||
work_dir = /var/cache/rebuildd/build
|
|
||||||
database_uri = sqlite:///var/lib/rebuildd/rebuildd.db
|
|
||||||
build_more_recent = 1
|
|
||||||
more_archs = i386 armel armhf arm64 all any
|
|
||||||
no_system_arch = 0
|
|
||||||
|
|
||||||
[log]
|
|
||||||
file = /var/log/rebuildd/rebuildd.log
|
|
||||||
time_format = %Y-%m-%d %H:%M:%S
|
|
||||||
logs_dir = /var/log/rebuildd/build_logs
|
|
||||||
mail_failed = 0
|
|
||||||
mail_successful = 0
|
|
|
@ -1,8 +0,0 @@
|
||||||
START_REBUILDD=1
|
|
||||||
START_REBUILDD_HTTPD=0
|
|
||||||
PBUILDER_BIN=/usr/sbin/pbuilder
|
|
||||||
PBUILDER_CACHE_PATH="/var/cache/pbuilder"
|
|
||||||
PBUILDER_MIRROR=https://ftp.debian.org/debian
|
|
||||||
ARCHS="amd64 i386 armel armhf arm64"
|
|
||||||
DISTS="buster bullseye"
|
|
||||||
ENABLE_BUILDER_MAINT=1
|
|
|
@ -1 +0,0 @@
|
||||||
deb-src http://__REPO_URL__/debian stretch stable testing unstable extra
|
|
37
init.sh
37
init.sh
|
@ -1,22 +1,16 @@
|
||||||
|
|
||||||
apt-get install nginx pbuilder reprepro rebuildd gawk sendxmpp -y
|
apt-get install nginx sbuild schroot reprepro gawk sendxmpp -y
|
||||||
apt-get install qemu-system-arm debootstrap cdebootstrap qemu-user-static -y
|
|
||||||
apt-get install python-virtualenv python3-pip -y
|
apt-get install python-virtualenv python3-pip -y
|
||||||
apt-get install boxes -y
|
apt-get install boxes -y
|
||||||
|
|
||||||
# Fix the damn pbuilder-satistydepends (aptitude causes segfault on ARM)
|
|
||||||
cd /usr/lib/pbuilder
|
|
||||||
rm pbuilder-satisfydepends
|
|
||||||
ln -s pbuilder-satisfydepends-apt pbuilder-satisfydepends
|
|
||||||
|
|
||||||
VINAIGRETTE_HOME="/home/vinaigrette"
|
VINAIGRETTE_HOME="/home/vinaigrette"
|
||||||
|
|
||||||
cd $VINAIGRETTE_HOME
|
cd $VINAIGRETTE_HOME
|
||||||
source config/config
|
source config/config
|
||||||
|
|
||||||
ln -s /root/keys config/keys
|
#ln -s /root/keys config/keys
|
||||||
gpg --import config/keys/$DEBSIGN_KEYID.key
|
#gpg --import config/keys/$DEBSIGN_KEYID.key
|
||||||
gpg --import config/keys/$DEBSIGN_KEYID.pub
|
#gpg --import config/keys/$DEBSIGN_KEYID.pub
|
||||||
|
|
||||||
mkdir gitrepos
|
mkdir gitrepos
|
||||||
cd gitrepos/
|
cd gitrepos/
|
||||||
|
@ -25,32 +19,13 @@ git clone https://github.com/yunohost/yunohost-admin
|
||||||
git clone https://github.com/yunohost/ssowat SSOwat
|
git clone https://github.com/yunohost/ssowat SSOwat
|
||||||
git clone https://github.com/yunohost/moulinette
|
git clone https://github.com/yunohost/moulinette
|
||||||
git clone https://github.com/yunohost/metronome
|
git clone https://github.com/yunohost/metronome
|
||||||
git clone https://github.com/YunoHost/rspamd
|
#git clone https://github.com/YunoHost/rspamd
|
||||||
git clone https://git.donarmstrong.com/unscd.git
|
#git clone https://git.donarmstrong.com/unscd.git
|
||||||
|
|
||||||
mkdir -p /var/www/repo/debian/conf/
|
mkdir -p /var/www/repo/debian/conf/
|
||||||
ln -s $VINAIGRETTE_HOME/config/distributions /var/www/repo/debian/conf/distributions
|
ln -s $VINAIGRETTE_HOME/config/distributions /var/www/repo/debian/conf/distributions
|
||||||
|
|
||||||
rm /etc/rebuildd/rebuilddrc
|
|
||||||
ln -s $VINAIGRETTE_HOME/config/rebuildd.conf /etc/rebuildd/rebuilddrc
|
|
||||||
rm /etc/default/rebuildd
|
|
||||||
ln -s $VINAIGRETTE_HOME/config/rebuildd.default /etc/default/rebuildd
|
|
||||||
|
|
||||||
ln -s $VINAIGRETTE_HOME/chroots /var/cache/pbuilder/chroots
|
|
||||||
ln -s /var/cache/pbuilder/result $PBUILDER_RESULTS
|
|
||||||
|
|
||||||
rm -f /etc/pbuilderrc
|
|
||||||
ln -s $PBUILDER_CONF/pbuilder.conf /etc/pbuilderrc
|
|
||||||
|
|
||||||
cp $VINAIGRETTE_HOME/config/nginx.conf /etc/nginx/sites-enabled/repo.conf
|
cp $VINAIGRETTE_HOME/config/nginx.conf /etc/nginx/sites-enabled/repo.conf
|
||||||
|
|
||||||
cat $VINAIGRETTE_HOME/config/keys/$DEBSIGN_KEYID.pub | apt-key add
|
|
||||||
cat $VINAIGRETTE_HOME/config/sources.list > /etc/apt/sources.list.d/vinaigrette.list
|
|
||||||
|
|
||||||
sed -i "s/__REPO_URL__/$REPO_URL/g" /etc/nginx/sites-enabled/repo.conf
|
sed -i "s/__REPO_URL__/$REPO_URL/g" /etc/nginx/sites-enabled/repo.conf
|
||||||
sed -i "s/__REPO_URL__/$REPO_URL/g" /etc/apt/sources.list.d/vinaigrette.list
|
|
||||||
|
|
||||||
echo "127.0.0.1 $REPO_URL" >> /etc/hosts
|
echo "127.0.0.1 $REPO_URL" >> /etc/hosts
|
||||||
service nginx reload
|
service nginx reload
|
||||||
|
|
||||||
rebuildd init
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
Version: GnuPG v1
|
|
||||||
Comment: GPGTools - https://gpgtools.org
|
|
||||||
|
|
||||||
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
|
|
||||||
=CLGF
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
|
@ -4,16 +4,11 @@ readonly THISSCRIPT=$0
|
||||||
readonly DISTRIB=$1
|
readonly DISTRIB=$1
|
||||||
readonly BRANCH=$2
|
readonly BRANCH=$2
|
||||||
readonly FOLDER=$3
|
readonly FOLDER=$3
|
||||||
|
readonly ARCHS=$4
|
||||||
|
|
||||||
source /home/vinaigrette/config/config
|
source /home/vinaigrette/config/config
|
||||||
source /home/vinaigrette/scripts/common.sh
|
source /home/vinaigrette/scripts/common.sh
|
||||||
|
|
||||||
export DEBSIGN_KEYID
|
|
||||||
export DEBFULLNAME
|
|
||||||
export DEBEMAIL
|
|
||||||
|
|
||||||
readonly IMG="${PBUILDER_CHROOTS}/${DISTRIB}-amd64.tgz"
|
|
||||||
|
|
||||||
# ##### #
|
# ##### #
|
||||||
# Usage #
|
# Usage #
|
||||||
# ##### #
|
# ##### #
|
||||||
|
@ -29,62 +24,87 @@ Arguments:
|
||||||
<distrib> buster or bullseye
|
<distrib> buster or bullseye
|
||||||
<branch> stable, testing, or unstable
|
<branch> stable, testing, or unstable
|
||||||
<folder> the folder in which to build...
|
<folder> the folder in which to build...
|
||||||
|
<archs> list of archs to build (or empty for autodetect). For example: amd63,armhf
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function main()
|
function main()
|
||||||
{
|
{
|
||||||
validate_arguments
|
grep -q "^Codename: $DISTRIB$" $REPO_CONFIG || critical "Invalid distribution $DISTRIB"
|
||||||
retrieve_package_info
|
grep -q "^Components: .*$BRANCH.*$" $REPO_CONFIG || critical "Invalid branch $BRANCH"
|
||||||
build_sources
|
[[ -n "$FOLDER" ]] || critical "Need a folder in which to build"
|
||||||
add_to_reprepro
|
|
||||||
|
|
||||||
success "Build will start soon. See 'rebuildd-job list | tail'"
|
|
||||||
sendxmpppy "➕ Added build for ${PACKAGE}/${VERSION} for ${DISTRIB}/${BRANCH} ..."
|
|
||||||
}
|
|
||||||
|
|
||||||
# ################# #
|
|
||||||
# Check user inputs #
|
|
||||||
# ################# #
|
|
||||||
|
|
||||||
function validate_arguments()
|
|
||||||
{
|
|
||||||
[[ $DISTRIB =~ ^buster|bullseye$ ]] || critical "Invalid distribution $DISTRIB"
|
|
||||||
[[ $BRANCH =~ ^testing|stable|unstable$ ]] || critical "Invalid branch $BRANCH"
|
|
||||||
[[ ! -z "$FOLDER" ]] || critical "Need a folder in which to build"
|
|
||||||
}
|
|
||||||
|
|
||||||
function retrieve_package_info()
|
|
||||||
{
|
|
||||||
readonly PKG_DIR=$(readlink -fn $FOLDER)
|
readonly PKG_DIR=$(readlink -fn $FOLDER)
|
||||||
readonly ROOT_DIR=$(readlink -fn ${PKG_DIR}/../)
|
readonly ROOT_DIR=$(readlink -fn ${PKG_DIR}/../)
|
||||||
cd $PKG_DIR
|
cd $PKG_DIR
|
||||||
|
|
||||||
readonly PACKAGE=$(dpkg-parsechangelog | awk '/^Source: / {print $2}')
|
readonly PACKAGE=$(dpkg-parsechangelog | awk '/^Source: / {print $2}')
|
||||||
readonly VERSION=$(dpkg-parsechangelog | awk '/^Version: / {print $2}')
|
readonly VERSION=$(dpkg-parsechangelog | awk '/^Version: / {print $2}')
|
||||||
readonly CHANGES_FILE=${ROOT_DIR}/${PACKAGE}_${VERSION}_source.changes
|
|
||||||
|
boxed "Building ${PACKAGE} ${VERSION} ..."
|
||||||
|
|
||||||
|
if [[ -n "$ARCHS" ]]
|
||||||
|
then
|
||||||
|
archs="$(echo $ARCHS | tr ',' ' ')"
|
||||||
|
# Architecture-agnostic packages have 'architecture: all' in their control files
|
||||||
|
# others have 'architecture: any'
|
||||||
|
elif grep -q "Architecture: all" $PKG_DIR/debian/control
|
||||||
|
then
|
||||||
|
archs="all"
|
||||||
|
else
|
||||||
|
archs="$REPO_ARCHS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for arch in $archs
|
||||||
|
do
|
||||||
|
sendxmpppy "⏳ Starting build for ${PACKAGE}/${VERSION} for $DISTRIB/$BRANCH/$arch ..."
|
||||||
|
if ! build $arch
|
||||||
|
then
|
||||||
|
sendxmpppy "❌ Failed build for ${PACKAGE}/${VERSION} for $DISTRIB/$BRANCH/$arch ?!"
|
||||||
|
critical "Failed to build ${PACKAGE}/${VERSION} for $DISTRIB/$BRANCH/$arch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $arch == "all" ]]
|
||||||
|
then
|
||||||
|
changearch="amd64"
|
||||||
|
else
|
||||||
|
changearch=$arch
|
||||||
|
fi
|
||||||
|
|
||||||
|
if reprepro --waitforlock 6 -b $REPO_DIR -C $BRANCH include $DISTRIB ${ROOT_DIR}/${PACKAGE}_${VERSION}_$changearch.changes
|
||||||
|
then
|
||||||
|
sendxmpppy "✔️ Completed build for ${PACKAGE}/${VERSION} for $DISTRIB/$BRANCH/$arch."
|
||||||
|
else
|
||||||
|
sendxmpppy "❌ Failed to include change of ${PACKAGE}/${VERSION} for $DISTRIB/$BRANCH/$arch ?!"
|
||||||
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# ######################################## #
|
|
||||||
# Invoke pbuilder to build the sources ... #
|
|
||||||
# ######################################## #
|
|
||||||
|
|
||||||
function build_sources()
|
function build()
|
||||||
{
|
{
|
||||||
boxed "Building source package of ${PACKAGE} ${VERSION} ..."
|
local arch=$1
|
||||||
|
|
||||||
pbuilder execute --bindmounts ${ROOT_DIR} --basetgz ${IMG} -- ${BUILD_SOURCES} $PKG_DIR \
|
local opts=""
|
||||||
|| { sendxmpppy "❌ Failed to build source package for $PACKAGE"; critical "An error occured while building source package"; }
|
|
||||||
|
|
||||||
[[ -f ${CHANGES_FILE} ]] || { sendxmpppy "❌ Failed to build source package for $PACKAGE"; critical "An error occured while building source package (no change file available)"; }
|
opts+=" -d $DISTRIB"
|
||||||
|
opts+=" --no-run-lintian"
|
||||||
|
opts+=" --no-run-piuparts"
|
||||||
|
opts+=" --no-run-autopkgtest"
|
||||||
|
|
||||||
|
if [[ "$arch" != "all" ]]
|
||||||
|
then
|
||||||
|
opts+=" --host=$arch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$DEBUG" ]]
|
||||||
|
then
|
||||||
|
opts+="--anything-failed-commands='%s'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sbuild $opts
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_to_reprepro()
|
|
||||||
{
|
|
||||||
boxed "Adding ${PACKAGE}_${VERSION} to ${DISTRIB}/${BRANCH}..."
|
|
||||||
|
|
||||||
$INCLUDE_CHANGES $DISTRIB $BRANCH $CHANGES_FILE || { sendxmpppy "❌ Failed to include changes for source package $PACKAGE"; critical "An error occured while including source package"; }
|
|
||||||
}
|
|
||||||
|
|
||||||
[[ "$1" =~ ^-h|--help$ ]] && (usage; exit 0) || main
|
[[ "$1" =~ ^-h|--help$ ]] && (usage; exit 0) || main
|
||||||
|
|
8
scripts/make-chroots
Executable file
8
scripts/make-chroots
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DIST=$1
|
||||||
|
PREINSTALL="eatmydata,ccache,build-essential,perl-openssl-defaults,debhelper,cmake,wget,devscripts,git,aptitude,debhelper,dh-python,python3-all,python3-yaml,python3-jinja2,python3-setuptools,python3-psutil,lua5.1,liblua5.1-0-dev,libidn11-dev,libssl-dev,txt2man,quilt,npm,nodejs"
|
||||||
|
|
||||||
|
mkdir -p /home/vinaigrette/.chroots/
|
||||||
|
|
||||||
|
sbuild-createchroot --include=$PREINSTALL $DIST /home/vinaigrette/.chroots/$DIST-all
|
|
@ -1,60 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Get Files entries from a given .changes or .dsc file
|
|
||||||
get_files()
|
|
||||||
{
|
|
||||||
file=$(readlink -fn $1)
|
|
||||||
echo $(awk '/^Files:/,EOF' $file | gawk '/^ [a-z0-9]{32} / {print $5}')
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get Distribution entry from a given .changes or .dsc file
|
|
||||||
get_distribution()
|
|
||||||
{
|
|
||||||
file=$(readlink -fn $1)
|
|
||||||
echo $(awk '/^Distribution:/ {print $2}' $file)
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get Architecture entry from a given .changes or .dsc file
|
|
||||||
get_architecture()
|
|
||||||
{
|
|
||||||
file=$(readlink -fn $1)
|
|
||||||
echo $(awk '/^Architecture:/ {print $2}' $file)
|
|
||||||
}
|
|
||||||
|
|
||||||
# Extract Debian codename and YunoHost distribution if present.
|
|
||||||
# It should be something like wheezy-stable
|
|
||||||
extract_codename_distribution()
|
|
||||||
{
|
|
||||||
if [[ $1 = *-* ]]; then
|
|
||||||
[[ $1 = "old-stable" ]] && return 0
|
|
||||||
|
|
||||||
i=0
|
|
||||||
for p in `echo "$1" | tr "-" "\n"`; do
|
|
||||||
case $i in
|
|
||||||
0)
|
|
||||||
if [[ $p =~ ^stretch$ ]]; then
|
|
||||||
CODENAME=$p
|
|
||||||
else
|
|
||||||
echo "invalid Debian codename $p"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
1)
|
|
||||||
if [[ $p =~ ^stable|testing|unstable$ ]]; then
|
|
||||||
DISTRIBUTION=$p
|
|
||||||
else
|
|
||||||
echo "invalid distribution $p"
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "unexpected string '$p' (i=$i)"
|
|
||||||
return 3
|
|
||||||
esac
|
|
||||||
i=`expr $i + 1`
|
|
||||||
done
|
|
||||||
elif ! [[ $1 =~ ^stable|testing|unstable$ ]]; then
|
|
||||||
echo "invalid distribution '$1'"
|
|
||||||
return 4
|
|
||||||
fi
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
PKG_PATH=$1
|
|
||||||
|
|
||||||
apt-get -q update --allow-releaseinfo-change
|
|
||||||
|
|
||||||
cd $PKG_PATH
|
|
||||||
|
|
||||||
echo "--------------------------------"
|
|
||||||
echo "Installing build-dependencies..."
|
|
||||||
|
|
||||||
LOG="/var/log/mk-build-deps.log"
|
|
||||||
mk-build-deps -i -t "apt-get --no-install-recommends -y" >> $LOG 2>&1 \
|
|
||||||
|| { echo "mk-build-deps failed, logs are in $LOG"; exit 1; }
|
|
||||||
rm -f *build-deps*_all.deb
|
|
||||||
|
|
||||||
echo "--------------------------------"
|
|
||||||
echo "Creating source package..."
|
|
||||||
|
|
||||||
# Creating source package without signing it
|
|
||||||
debuild --no-lintian -S -sa -uc
|
|
||||||
|
|
||||||
# Be sure to clean directory
|
|
||||||
debclean
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
#install_packages() {
|
|
||||||
# apt-get -y "${APTGETOPT[@]}" install "$@"
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#install_packages lintian
|
|
||||||
|
|
||||||
echo "+++ lintian output +++"
|
|
||||||
|
|
||||||
#su -c "lintian -I --show-overrides /tmp/buildd/*.changes" - pbuilder
|
|
||||||
# use this version if you don't want lintian to fail the build
|
|
||||||
su -c "lintian -i -I --show-overrides /tmp/buildd/*.changes; :" - pbuilder
|
|
||||||
|
|
||||||
echo "+++ end of lintian output +++"
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
/usr/bin/apt-get update --allow-releaseinfo-change
|
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Dirty hook to npm install, because I have no idea how this
|
|
||||||
# is supposed to be done properly
|
|
||||||
# (no network during the actual build)
|
|
||||||
#
|
|
||||||
|
|
||||||
if ls -d /build/yunohost-admin* >dev/null 2>&1
|
|
||||||
then
|
|
||||||
echo "========================"
|
|
||||||
echo "Starting npm install ..."
|
|
||||||
echo "========================"
|
|
||||||
mkdir /nonexistent
|
|
||||||
chown pbuilder:pbuilder /nonexistent
|
|
||||||
cd /build/yunohost-admin*/app
|
|
||||||
su pbuilder -c "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin npm --progress false ci"
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
Version: GnuPG v1
|
|
||||||
Comment: GPGTools - https://gpgtools.org
|
|
||||||
|
|
||||||
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
|
|
||||||
=CLGF
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
|
@ -1,71 +0,0 @@
|
||||||
#!/usr/bin/python
|
|
||||||
from rebuildd.Rebuildd import Rebuildd
|
|
||||||
from rebuildd.RebuilddConfig import RebuilddConfig
|
|
||||||
from rebuildd.Package import Package
|
|
||||||
from rebuildd.JobStatus import JobStatus
|
|
||||||
from rebuildd.Job import Job
|
|
||||||
from tabulate import tabulate
|
|
||||||
import sys, os.path
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
def main():
|
|
||||||
|
|
||||||
actions = {
|
|
||||||
"list": list_,
|
|
||||||
"add": add_
|
|
||||||
}
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='A simple script to list and add rebuildd jobs, not shit like the original rebuildd-job :|.',
|
|
||||||
usage='''rebuildd-job <command> <args>
|
|
||||||
|
|
||||||
The available commands are :
|
|
||||||
list - Lists the most recent jobs
|
|
||||||
add - Add a specific job (for example to requeue a job that failed ...)
|
|
||||||
''')
|
|
||||||
|
|
||||||
parser.add_argument('action', help="Action to run")
|
|
||||||
if len(sys.argv) < 2:
|
|
||||||
parser.print_help()
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
args = parser.parse_args(sys.argv[1:2])
|
|
||||||
|
|
||||||
if not args.action in actions.keys():
|
|
||||||
print "Unrecognized action"
|
|
||||||
parser.print_help()
|
|
||||||
exit(1)
|
|
||||||
else:
|
|
||||||
Rebuildd()
|
|
||||||
actions[args.action]()
|
|
||||||
|
|
||||||
|
|
||||||
def list_():
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Lists the most recent jobs')
|
|
||||||
parser.add_argument('N', nargs="?", help="Number of jobs to list (10 by default)", default=10)
|
|
||||||
args = parser.parse_args(sys.argv[2:])
|
|
||||||
|
|
||||||
try:
|
|
||||||
args.N = int(args.N)
|
|
||||||
except:
|
|
||||||
raise AssertionError("Invalid value for N, not an integer ?")
|
|
||||||
|
|
||||||
jobs = Job.selectBy()[-args.N:]
|
|
||||||
|
|
||||||
headers = [ "id", "package", "version", "dist", "arch", "status" ]
|
|
||||||
data = [ [ job.id, job.package.name, job.package.version, job.dist, job.arch, JobStatus.whatis(job.status)] for job in jobs ]
|
|
||||||
|
|
||||||
print tabulate(data, headers=headers)
|
|
||||||
|
|
||||||
|
|
||||||
def add_():
|
|
||||||
parser = argparse.ArgumentParser(description='Lists the most recent jobs')
|
|
||||||
parser.add_argument('package')
|
|
||||||
parser.add_argument('version')
|
|
||||||
parser.add_argument('dist')
|
|
||||||
parser.add_argument('arch')
|
|
||||||
args = parser.parse_args(sys.argv[2:])
|
|
||||||
|
|
||||||
Rebuildd().add_job(args.package, args.version, "10", args.dist, mailto=None, arch=args.arch)
|
|
||||||
|
|
||||||
main()
|
|
|
@ -1,43 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
codename=$1
|
|
||||||
package=$2
|
|
||||||
version=$3
|
|
||||||
arch=$4
|
|
||||||
|
|
||||||
sendxmpppy "⏳ Starting build for ${package}/${version} for arch=$arch ..."
|
|
||||||
|
|
||||||
source /home/vinaigrette/config/config
|
|
||||||
source /home/vinaigrette/scripts/package_helpers.sh
|
|
||||||
|
|
||||||
if [[ $arch == all ]]; then arch=$DEFAULT_ARCH; fi
|
|
||||||
|
|
||||||
if [[ $arch == $DEFAULT_ARCH ]]; then
|
|
||||||
# Build architecture independent packages too
|
|
||||||
DEBBUILDOPTS="-b"
|
|
||||||
else
|
|
||||||
# Build only binary-only limited to architecture dependent packages
|
|
||||||
DEBBUILDOPTS="-B"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format needed pbuilder arguments
|
|
||||||
DSC_FILE="${package}_${version}.dsc"
|
|
||||||
BASE_TGZ="${PBUILDER_CHROOTS}/${codename}-${arch}.tgz"
|
|
||||||
|
|
||||||
echo "######################"
|
|
||||||
echo " Starting build ... "
|
|
||||||
echo "######################"
|
|
||||||
|
|
||||||
echo "Running 'pbuilder build --basetgz $BASE_TGZ --debbuildopts $DEBBUILDOPTS $DSC_FILE"
|
|
||||||
|
|
||||||
pbuilder build \
|
|
||||||
--basetgz "$BASE_TGZ" \
|
|
||||||
--architecture $arch \
|
|
||||||
--debbuildopts "$DEBBUILDOPTS" \
|
|
||||||
$DSC_FILE
|
|
||||||
|
|
||||||
exit_code=$?
|
|
||||||
|
|
||||||
[[ $exit_code == 0 ]] || sendxmpppy "❌ Failed build for ${package}/${version} for arch=$arch ?!"
|
|
||||||
|
|
||||||
exit $exit_code
|
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
codename=$1
|
|
||||||
package=$2
|
|
||||||
version=$3
|
|
||||||
|
|
||||||
apt-get update --allow-releaseinfo-change > /dev/null 1>&1
|
|
||||||
apt-get -q --download-only --only-source \
|
|
||||||
source ${package}=${version}
|
|
|
@ -1,54 +0,0 @@
|
||||||
#!/bin/bash -p
|
|
||||||
|
|
||||||
codename=$1
|
|
||||||
CODENAME=$1
|
|
||||||
package=$2
|
|
||||||
version=$3
|
|
||||||
arch=$4
|
|
||||||
job=$5
|
|
||||||
|
|
||||||
source /home/vinaigrette/config/config
|
|
||||||
source /home/vinaigrette/scripts/package_helpers.sh
|
|
||||||
|
|
||||||
# Architecture independent packages are built on default arch
|
|
||||||
ARCH=$arch
|
|
||||||
[[ $arch == all ]] && ARCH=$DEFAULT_ARCH
|
|
||||||
|
|
||||||
# Resulting changes file
|
|
||||||
CHANGES_FILE=$PBUILDER_RESULTS/${package}_${version}_${ARCH}.changes
|
|
||||||
|
|
||||||
# Retrieve distribution/component
|
|
||||||
DISTRIBUTION=$(get_distribution $CHANGES_FILE)
|
|
||||||
|
|
||||||
# Attempt to extract Debian codename from Distribution
|
|
||||||
extract_codename_distribution $DISTRIBUTION || exit 1
|
|
||||||
|
|
||||||
# Retrieving component from source package
|
|
||||||
get_source_component() {
|
|
||||||
reprepro -b $REPO_DIR -T dsc --list-max 1 --list-format '${$component}' \
|
|
||||||
listfilter $CODENAME "\$Source (==${package}), \$SourceVersion (==${version})"
|
|
||||||
}
|
|
||||||
COMPONENT=$(get_source_component)
|
|
||||||
[ -n "$COMPONENT" ] || echo "Unable to retrieve source package component"
|
|
||||||
|
|
||||||
echo "#########################"
|
|
||||||
echo " Adding binary package..."
|
|
||||||
echo "#########################"
|
|
||||||
|
|
||||||
# Include changes to the given repo (waiting 1m max)
|
|
||||||
echo "Adding to $CODENAME/$COMPONENT..."
|
|
||||||
|
|
||||||
reprepro --waitforlock 6 -b $REPO_DIR -C $COMPONENT include $CODENAME $CHANGES_FILE > /dev/null
|
|
||||||
|
|
||||||
status=$?
|
|
||||||
if [ $status -eq 0 ]; then
|
|
||||||
# Clean pbuilder results
|
|
||||||
for f in $(get_files $CHANGES_FILE); do
|
|
||||||
rm -f /var/cache/pbuilder/result/$f
|
|
||||||
done
|
|
||||||
sendxmpppy "✔️ Completed build for ${package}/${version} for ${CODENAME}/${COMPONENT}/${arch}."
|
|
||||||
else
|
|
||||||
sendxmpppy "❌ Failed to include change of ${package}/${version} for ${CODENAME}/${COMPONENT}/${arch} ?!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit $status
|
|
|
@ -1,30 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
codename=$1
|
|
||||||
distribution=$2
|
|
||||||
changes_file=$3
|
|
||||||
|
|
||||||
source /home/vinaigrette/config/config
|
|
||||||
source /home/vinaigrette/scripts/package_helpers.sh
|
|
||||||
|
|
||||||
# Fucking ugly manual patch because when building packages for buster, the Binary: field is missing...
|
|
||||||
if ! grep -q "Binary:" $changes_file
|
|
||||||
then
|
|
||||||
# We take is from the .dsc file
|
|
||||||
DSC=$(echo $changes_file | sed 's/_source.changes/.dsc/g')
|
|
||||||
echo $(grep "Binary:" $DSC) >> $changes_file
|
|
||||||
fi
|
|
||||||
|
|
||||||
reprepro -C $distribution -V -b $REPO_DIR include $codename $changes_file
|
|
||||||
RET=$?
|
|
||||||
|
|
||||||
# Cleaning files
|
|
||||||
if [ $RET -eq 0 ]; then
|
|
||||||
dir=$(cd `dirname $changes_file` && pwd)
|
|
||||||
for f in $(get_files ${changes_file}); do
|
|
||||||
! [[ $f =~ \.orig\.tar\.(gz|xz)$ ]] && rm -f ${dir}/$f
|
|
||||||
done
|
|
||||||
rm -f $changes_file
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit $RET
|
|
|
@ -1,44 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
action=$1
|
|
||||||
codename=$2
|
|
||||||
package=$3
|
|
||||||
version=$4
|
|
||||||
changes_file=$5
|
|
||||||
|
|
||||||
source /home/vinaigrette/config/config
|
|
||||||
source /home/vinaigrette/scripts/package_helpers.sh
|
|
||||||
|
|
||||||
# Only care about packages being added
|
|
||||||
if [[ $action != accepted ]]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Only care about source packages
|
|
||||||
arch=$(get_architecture $changes_file)
|
|
||||||
if [[ $arch != source ]]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Retrieve the .dsc file
|
|
||||||
dsc_file=$(dirname ${changes_file})/${package}_${version}.dsc
|
|
||||||
if [ ! -f $dsc_file ]; then
|
|
||||||
echo "Unable to find the .dsc file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Retrieve architecture from the .dsc
|
|
||||||
arch=$(awk '/^Architecture: / {print $2}' ${dsc_file})
|
|
||||||
if [[ $arch =~ -?any ]]; then
|
|
||||||
source /etc/default/rebuildd
|
|
||||||
|
|
||||||
# Add all architectures supported by rebuildd
|
|
||||||
arch=$ARCHS
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Kick off the job
|
|
||||||
for a in $arch; do
|
|
||||||
/home/vinaigrette/scripts/rebuildd-job add $package $version $codename $a
|
|
||||||
done
|
|
||||||
|
|
||||||
exit 0
|
|
|
@ -73,7 +73,7 @@ function tweak_gevent-websocket()
|
||||||
|
|
||||||
function tweak_metronome()
|
function tweak_metronome()
|
||||||
{
|
{
|
||||||
readonly VERSION="$(dpkg-parsechangelog -S Version 2>/dev/null)+ynh$DISTRIB_N-1"
|
readonly VERSION="$(dpkg-parsechangelog -S Version 2>/dev/null)+ynh$DISTRIB_N"
|
||||||
}
|
}
|
||||||
|
|
||||||
function build()
|
function build()
|
||||||
|
|
|
@ -36,8 +36,8 @@ EOF
|
||||||
function validate_arguments()
|
function validate_arguments()
|
||||||
{
|
{
|
||||||
[[ $PROJECT =~ ^yunohost|yunohost-admin|moulinette|SSOwat$ ]] || critical "Invalid project $PROJECT"
|
[[ $PROJECT =~ ^yunohost|yunohost-admin|moulinette|SSOwat$ ]] || critical "Invalid project $PROJECT"
|
||||||
[[ $BRANCH =~ ^testing|stable|unstable$ ]] || critical "Invalid branch $BRANCH"
|
grep -q "^Codename: $DISTRIB$" $REPO_CONFIG || critical "Invalid distribution $DISTRIB"
|
||||||
[[ $DISTRIB =~ ^stretch|buster$ ]] || critical "Invalid distribution $DISTRIB"
|
grep -q "^Components: .*$BRANCH.*$" $REPO_CONFIG || critical "Invalid branch $BRANCH"
|
||||||
[[ ! -z "$VERSION" ]] || critical "Invalid version $VERSION"
|
[[ ! -z "$VERSION" ]] || critical "Invalid version $VERSION"
|
||||||
[[ "$(tty)" != "not a tty" ]] || critical "You aint in a tty (are you in a 'lxc exec' ?) The script can't run because pbuilder won't be happy :|"
|
[[ "$(tty)" != "not a tty" ]] || critical "You aint in a tty (are you in a 'lxc exec' ?) The script can't run because pbuilder won't be happy :|"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue