From 7108707913963db1e42200ae184d2c6289480c0b Mon Sep 17 00:00:00 2001 From: Akira Ohgaki <akiraohgaki@gmail.com> Date: Tue, 7 Mar 2017 07:35:11 +0900 Subject: [PATCH] Add build-docker.sh --- scripts/build-docker.sh | 105 ++++++++++++++++++++++++++++++++++++++++ scripts/scripts.pri | 1 + 2 files changed, 106 insertions(+) create mode 100644 scripts/build-docker.sh diff --git a/scripts/build-docker.sh b/scripts/build-docker.sh new file mode 100644 index 0000000..bffee55 --- /dev/null +++ b/scripts/build-docker.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +################################################################################ +# This is wrapper script for build.sh use from inside docker container +################################################################################ + +PKGUSER='pkgbuilder' + +BUILDTYPE='' +if [ "${1}" ]; then + BUILDTYPE="${1}" +fi + +PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)" + +BUILDSCRIPT="${PROJDIR}/scripts/build.sh" + +build_ubuntu() { + # docker-image: ubuntu:14.04 + apt update -qq + apt -y install git curl + apt -y install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev + apt -y install devscripts debhelper fakeroot + + useradd -m ${PKGUSER} + export HOME="/home/${PKGUSER}" + chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}" + + su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER} +} + +build_fedora() { + # docker-image: fedora:20 + yum -y install git curl + yum -y install make automake gcc gcc-c++ libtool qt5-qtbase-devel qt5-qtsvg-devel qt5-qtdeclarative-devel + yum -y install rpm-build + # docker-image: fedora:22 + #dnf -y install git curl + #dnf -y install make automake gcc gcc-c++ libtool qt5-qtbase-devel qt5-qtsvg-devel qt5-qtdeclarative-devel + #dnf -y install rpm-build + + useradd -m ${PKGUSER} + export HOME="/home/${PKGUSER}" + chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}" + + su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER} +} + +build_archlinux() { + # docker-image: base/archlinux:latest + pacman -Syu --noconfirm + pacman -S --noconfirm git curl + pacman -S --noconfirm base-devel qt5-base qt5-svg qt5-declarative qt5-quickcontrols + + useradd -m ${PKGUSER} + export HOME="/home/${PKGUSER}" + chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}" + + su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER} +} + +build_snap() { + # docker-image: ubuntu:16.04 + apt update -qq + apt -y install git curl + apt -y install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev + apt -y install snapcraft + + useradd -m ${PKGUSER} + export HOME="/home/${PKGUSER}" + chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}" + + su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER} +} + +build_appimage() { + # docker-image: ubuntu:14.04 + apt update -qq + apt -y install git curl + apt -y install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev + apt -y install fuse zsync desktop-file-utils + + modprobe fuse + + useradd -m ${PKGUSER} + export HOME="/home/${PKGUSER}" + chown -R ${PKGUSER}:${PKGUSER} "${PROJDIR}" + + su -c "sh ${BUILDSCRIPT} ${BUILDTYPE}" ${PKGUSER} +} + +if [ "${BUILDTYPE}" = 'ubuntu' ]; then + build_ubuntu +elif [ "${BUILDTYPE}" = 'fedora' ]; then + build_fedora +elif [ "${BUILDTYPE}" = 'archlinux' ]; then + build_archlinux +elif [ "${BUILDTYPE}" = 'snap' ]; then + build_snap +elif [ "${BUILDTYPE}" = 'appimage' ]; then + build_appimage +else + echo "sh $(basename "${0}") [ubuntu|fedora|archlinux|snap|appimage]" + exit 1 +fi diff --git a/scripts/scripts.pri b/scripts/scripts.pri index d8d9163..a4a1c60 100644 --- a/scripts/scripts.pri +++ b/scripts/scripts.pri @@ -1,3 +1,4 @@ DISTFILES += \ + $${PWD}/build-docker.sh \ $${PWD}/build.sh \ $${PWD}/import.sh -- GitLab