Skip to content

Instantly share code, notes, and snippets.

@oversider-kosma
Last active March 12, 2020 13:16
Show Gist options
  • Save oversider-kosma/2839639151a8f67307069adcd467b122 to your computer and use it in GitHub Desktop.
Save oversider-kosma/2839639151a8f67307069adcd467b122 to your computer and use it in GitHub Desktop.
Builds inside buster-chroot superkaramba and fetch buided package out of chroot
#!/bin/bash
#
# - create a buster-chroot,
# - Build supercaramba there,
# - fetch builded binary and required libraries to package
# - fetch package out of chroot
# - remove chroot
set -e
CHROOT_DIR='/opt/chroot'
ARCH='amd64'
if [[ ! -e $CHROOT_DIR/etc/os-release || $(cat $CHROOT_DIR/etc/os-release | grep -c 'buster') -eq 0 ]];
then
mkdir $CHROOT_DIR
debootstrap --arch=$ARCH --variant=minbase --include=bash buster $CHROOT_DIR
cat << EOF > $CHROOT_DIR/root/pre-install.sh
#!/bin/bash
set -e
export LANG=C
cat /etc/apt/sources.list | grep "buster main" | sed -e 's/buster/buster-backports/g' >> /etc/apt/sources.list
apt-get update
export DEBIAN_FRONTEND=noninteractive
apt-get install -yq grc wget libpython2.7 checkinstall libxrender-dev libqimageblitz-dev libqimageblitz4 kdelibs5-dev kdelibs5-data kdelibs5-plugins cmake make unzip qt4-qmake
EOF
mount --bind /proc $CHROOT_DIR/proc
mount --bind /dev $CHROOT_DIR/dev
chroot $CHROOT_DIR bash /root/pre-install.sh
umount $CHROOT_DIR/proc
umount $CHROOT_DIR/dev
fi
cat << EOF1 > $CHROOT_DIR/root/build.sh
rm -rf /usr/local/src/superkaramba-15.08.3 || echo 'SRC dir is clear'
set -e
cd /usr/local/src
wget https://github.com/KDE/superkaramba/archive/v15.08.3.zip -O /usr/local/src/v15.08.3.zip
unzip -o v15.08.3.zip
cd /usr/local/src/superkaramba-15.08.3
cmake .
grc make -j $(nproc)
echo "Making .deb package"
checkinstall -D --install=no --backup=no --default --pkgname=superkaramba --pkgversion=15.08.3~backported > /dev/null
mv superkaramba_15.08.3~backported-1_amd64.deb superkaramba_15.08.3~backported-1_amd64_orig.deb
set +e
rm -rf .DEB || echo '' > /dev/null
set -e
dpkg-deb -R superkaramba_15.08.3~backported-1_amd64_orig.deb ./DEB
mkdir -p ./DEB/usr/lib/x86_64-linux-gnu
echo 'Adding libraries to the package'
cp -L /usr/lib/libknewstuff2.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libkio.so.5 ./DEB/usr/lib/
cp -L /usr/lib/libkdeui.so.5 ./DEB/usr/lib/
cp -L /usr/lib/libkdecore.so.5 ./DEB/usr/lib/
cp -L /usr/lib/libkrosscore.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libkde3support.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libplasma.so.3 ./DEB/usr/lib/
cp -L /usr/lib/libqimageblitz.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libkpty.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libsolid.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libdlrestrictions.so.1 ./DEB/usr/lib/
cp -L /usr/lib/libkparts.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libkdnssd.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libthreadweaver.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libkdewebkit.so.5 ./DEB/usr/lib/
cp -L /usr/lib/libknewstuff3.so.4 ./DEB/usr/lib/
cp -L /usr/lib/libkcmutils.so.4 ./DEB/usr/lib/
cp -L /usr/lib/x86_64-linux-gnu/libQtNetwork.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtXml.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtSvg.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtDBus.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtCore.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtGui.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtScript.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQt3Support.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libattica.so.0.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libdbusmenu-qt.so.2 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtSql.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtDeclarative.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libqca.so.2 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libphonon.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
cp -L /usr/lib/x86_64-linux-gnu/libQtXmlPatterns.so.4 ./DEB/usr/lib/x86_64-linux-gnu/
dpkg-deb -b ./DEB superkaramba_15.08.3~backported-1_amd64.deb
EOF1
mount --bind /proc $CHROOT_DIR/proc
mount --bind /dev $CHROOT_DIR/dev
chroot $CHROOT_DIR bash /root/build.sh
umount $CHROOT_DIR/proc
umount $CHROOT_DIR/dev
cp $CHROOT_DIR/usr/local/src/superkaramba-15.08.3/superkaramba_15.08.3~backported-1_amd64.deb ./
USER=$(ls -ld . | awk '{print $3}')
chown $USER:$USER ./superkaramba_15.08.3~backported-1_amd64.deb
rm -rf $CHROOT_DIR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment