diff --git a/README.MD b/README.MD index 9c7ccda..4318b7c 100644 --- a/README.MD +++ b/README.MD @@ -1,5 +1,5 @@ ## DEBMAKER -The main goal of this repository is allow to create application from source without install compilation utility directly on the main system. +The main goal of this repository is allow to create application from source without install all compilation utility directly on the main system. All package are install in folder in chroot environnement with only one script. ### Requirement @@ -10,15 +10,14 @@ All package are install in folder in chroot environnement with only one script. ```bash . vaultwarden2deb -debmake_runAllStep +allstep ``` ### package are available without compilation - [joplin-server](#joplin-server) - - [gotify](#gotify) - [rss-bridge](#rss-bridge) - - [vaultwarden and vaultwarden-web](#vaultwarden-and-vaultwarden-web) + - [vaultwarden](#vaultwarden) - [zigbee2mqtt](#zigbee2mqtt) - [element-web](#element-web) @@ -36,18 +35,6 @@ apt-get install -y joplin-server systemctl enable --now joplin-server ``` -#### gotify - -```bash -apt install -y python wget ca-certificates -wget -qO - https://deb.lgy.fr/install.sh | bash -apt-get update -apt-get install -y gotify-server - -#Edit /etc/gotify/config.yml - -systemctl enable --now gotify -``` #### rss-bridge @@ -67,7 +54,7 @@ systemctl restart apache2 ``` -#### vaultwarden and vaultwarden-web +#### vaultwarden ```bash wget -qO - https://deb.lgy.fr/install.sh | bash diff --git a/authelia2deb b/authelia2deb index 4db1ad9..f2dab32 100755 --- a/authelia2deb +++ b/authelia2deb @@ -5,6 +5,5 @@ VERSION=4.33.2 GIT_VERSION=v$VERSION DEB_VERSION=$VERSION-4 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE=4 source ./lib/function.sh diff --git a/element-web2deb b/element-web2deb index 5a2bb75..431ec79 100755 --- a/element-web2deb +++ b/element-web2deb @@ -1,10 +1,9 @@ #!/bin/bash APP=element-web -VERSION=1.10.4 +VERSION=1.10.2 GIT_VERSION=v$VERSION -DEB_VERSION=$VERSION-1 +DEB_VERSION=$VERSION-2 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= source ./lib/function.sh diff --git a/gotify2deb b/gotify2deb index ac5a7e2..abd9b61 100755 --- a/gotify2deb +++ b/gotify2deb @@ -3,9 +3,8 @@ APP=gotify VERSION=2.1.4 GIT_VERSION=v$VERSION -DEB_VERSION=$VERSION-2 +DEB_VERSION=$VERSION-1 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE=4 source ./lib/function.sh diff --git a/grocy2deb b/grocy2deb index 19baa6d..c61d25e 100644 --- a/grocy2deb +++ b/grocy2deb @@ -4,6 +4,5 @@ VERSION=3.2.0 GIT_VERSION=v$VERSION DEB_VERSION=$VERSION-5 DEBIAN_VERSION_CODENAME=sid -IMAGE_SIZE= source ./lib/function.sh diff --git a/joplin-server2deb b/joplin-server2deb index 76ee72c..6932790 100755 --- a/joplin-server2deb +++ b/joplin-server2deb @@ -1,11 +1,9 @@ #!/bin/bash - APP=joplin-server VERSION=2.7.4 GIT_VERSION=server-v$VERSION DEB_VERSION=$VERSION-2 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE=6 source ./lib/function.sh diff --git a/joplin2deb b/joplin2deb index d7ede49..e5d7ead 100755 --- a/joplin2deb +++ b/joplin2deb @@ -5,6 +5,5 @@ VERSION=2.7.12 GIT_VERSION=$VERSION DEB_VERSION=$VERSION-1 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= source ./lib/function.sh diff --git a/lib/exec_in_chroot.sh b/lib/exec_in_chroot.sh deleted file mode 100755 index 8aa289c..0000000 --- a/lib/exec_in_chroot.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -if [ ! "$1" == "" ]; -then - source /tmp/dist/$1 - shift - FUNC=$1 - shift - ${FUNC} $* -fi diff --git a/lib/function.sh b/lib/function.sh index 414fc56..7f910d9 100644 --- a/lib/function.sh +++ b/lib/function.sh @@ -1,108 +1,133 @@ #!/bin/bash -source ressources/${APP}/${APP} CACHE_APP=cache/${APP}/ -MOUNT_APP=/mnt/debmaker/${APP}/ +CACHE_STEP1=cache/${DEBIAN_VERSION_CODENAME} +CACHE_STEP2=cache/${APP}/envinit +CACHE_STEP3=cache/${APP}/prebuild +CACHE_STEP4=cache/${APP}/build -[ -d ${CACHE_APP} ] || mkdir -p ${CACHE_APP} - -########################## SUB FUNCTION ########################## -valideStep(){ - CURRENT_STEP=$1 - RESULT=0 - for tmp in ${STEP} - do - if [ $tmp == ${CURRENT_STEP} ] ; then - RESULT=1 - break - fi - done - if [ $RESULT -eq 0 ] - then - echo invalid step +#DownloadOs +step1() { + if [ ! -e ${CACHE_STEP1} ] + then + mkdir -p ${CACHE_STEP1}/proc + mount -t proc proc ${CACHE_STEP1}/proc + sleep 2 + debootstrap ${DEBIAN_VERSION_CODENAME} ${CACHE_STEP1} + umount ${CACHE_STEP1}/proc fi } -getSizeImage(){ - [ "${IMAGE_SIZE}" == "" ] && IMAGE_SIZE=2 +#InstallOs +step2(){ + if [ ! -e ${CACHE_STEP2} ] ; then + mkdir -p ${CACHE_APP} + cp -a ${CACHE_STEP1}/ ${CACHE_STEP2} + cp ressources/${APP}/${APP} ${CACHE_STEP2}/tmp/make + mount -t proc proc ${CACHE_STEP2}/proc + sleep 2 + chroot ${CACHE_STEP2} /tmp/make envinit + umount ${CACHE_STEP2}/proc + rm ${CACHE_STEP2}/tmp/${APP} + fi } -createImage(){ - dd if=/dev/zero of=${CACHE_APP}/os bs=1G count=${IMAGE_SIZE} - sudo mkfs.ext4 ${CACHE_APP}/os +#ConfigureBeforeBuild +step3(){ + if [ ! -e ${CACHE_STEP3} ]; then + cp -a ${CACHE_STEP2} ${CACHE_STEP3} + cp ressources/${APP}/${APP} ${CACHE_STEP3}/tmp/make + chroot ${CACHE_STEP3} /tmp/make prebuild ${GIT_VERSION} + rm ${CACHE_STEP3}/tmp/make + fi } -previousStep(){ - CURRENT_STEP=$1 - TMP_STEP=os; - for tmp in ${STEP} - do - PREV=${TMP_STEP} - TMP_STEP=$tmp - if [ $tmp == $CURRENT_STEP ] ; then - break - fi - done - echo $PREV +#Build +step4(){ + if [ ! -e ${CACHE_STEP4} ] ; then + cp -a ${CACHE_STEP3} ${CACHE_STEP4} + cp ressources/${APP}/${APP} ${CACHE_STEP4}/tmp/make + mount -t proc proc ${CACHE_STEP4}/proc/ + sleep 2 + chroot ${CACHE_STEP4} /tmp/make build + umount ${CACHE_STEP4}/proc/ + rm ${CACHE_STEP4}/tmp/make + fi } -########################## FUNCTION ########################## - -debmake_mountStep(){ - CURRENT_STEP=$1 - [ -d ${MOUNT_APP}/${CURRENT_STEP} ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP} - sudo mount ${CACHE_APP}/${CURRENT_STEP} ${MOUNT_APP}/${CURRENT_STEP} - [ -d ${MOUNT_APP}/${CURRENT_STEP}/proc ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/proc - sudo mount -t proc proc ${MOUNT_APP}/${CURRENT_STEP}/proc - [ -d ${MOUNT_APP}/${CURRENT_STEP}/sys ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/sys - sudo mount -t sysfs sys ${MOUNT_APP}/${CURRENT_STEP}/sys - sleep 2 +#PackageDeb +step5(){ + rm -fr dist/${APP} + mkdir dist/${APP} + cp -pfr ressources/${APP}/rootfs/* dist/$APP/ + bash ressources/${APP}/${APP} makedeb ${CACHE_STEP4} dist/${APP} ${GIT_VERSION} + sed -i "s/%VERSION%/$DEB_VERSION/" dist/${APP}/DEBIAN/control + fakeroot dpkg-deb -Z gzip --build dist/${APP} dist + rm -fr dist/${APP} } -debmake_umountStep(){ - CURRENT_STEP=$1 - sudo umount ${MOUNT_APP}/${CURRENT_STEP}/sys - sudo umount ${MOUNT_APP}/${CURRENT_STEP}/proc - sudo umount ${MOUNT_APP}/${CURRENT_STEP} +allstep(){ + step1 + step2 + step3 + step4 + step5 } -debmake_chrootStep(){ - CURRENT_STEP=$1 - debmake_mountStep ${CURRENT_STEP} - [ -d ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist/${APP} ] && sudo rm -rf ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist/ - sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist - sudo cp -fr ressources/${APP}/* ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist - sudo cp -fr lib/exec_in_chroot.sh ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist - shift - sudo chroot ${MOUNT_APP}${CURRENT_STEP}/ $* - find ${MOUNT_APP}${CURRENT_STEP}/tmp/dist/ -name *.deb -exec cp {} dist/ \; - debmake_umountStep ${CURRENT_STEP} +DeleteStep1(){ + rm -fr ${CACHE_STEP1} ${CACHE_STEP2} ${CACHE_STEP3} ${CACHE_STEP4} +} +DeleteStep2(){ + rm -fr ${CACHE_STEP2} ${CACHE_STEP3} ${CACHE_STEP4} +} +DeleteStep3(){ + rm -fr ${CACHE_STEP3} ${CACHE_STEP4} +} +DeleteStep4(){ + rm -fr ${CACHE_STEP4} } -########################## FUNCTION ########################## - -debmake_runStepOS() { - CURRENT_STEP=os - getSizeImage - createImage - debmake_mountStep ${CURRENT_STEP} - sudo debootstrap ${DEBIAN_VERSION_CODENAME} ${MOUNT_APP}/os/ - debmake_umountStep ${CURRENT_STEP} +StartFromStep1(){ + DeleteStep1 + allstep } -debmake_runStepCustom() { - CURRENT_STEP=$1 - valideStep ${CURRENT_STEP} - PREVIOUS=$(previousStep ${CURRENT_STEP}) - echo -n copy PREVIOUS in $PREVIOUS ... - cp ${CACHE_APP}/${PREVIOUS} ${CACHE_APP}/${CURRENT_STEP} - echo ": OK" - debmake_chrootStep $1 /tmp/dist/exec_in_chroot.sh ${APP} ${CURRENT_STEP} ${GIT_VERSION} ${DEB_VERSION} +StartFromStep2(){ + DeleteStep2 + allstep } -debmake_runAllStep(){ - debmake_runStepOS - for tmp in ${STEP} - do - debmake_runStepCustom $tmp - done +StartFromStep3(){ + DeleteStep3 + allstep +} + +StartFromStep4(){ + DeleteStep4 + allstep +} + +GotoStep1(){ + chroot ${CACHE_STEP1} +} + +GotoStep2(){ + chroot ${CACHE_STEP2} +} + +GotoStep3(){ + chroot ${CACHE_STEP3} +} + +GotoStep4(){ + mount -t proc proc ${CACHE_STEP4}/proc/ + chroot ${CACHE_STEP4} + umount ${CACHE_STEP4}/proc/ +} + +Clean(){ + rm -fr cache/* +} + +CleanAll(){ + rm -fr cache/* } diff --git a/mautrix-whatsapp2deb b/mautrix-whatsapp2deb index a974010..3d66234 100755 --- a/mautrix-whatsapp2deb +++ b/mautrix-whatsapp2deb @@ -5,6 +5,5 @@ VERSION=0.2.4 GIT_VERSION=v$VERSION DEB_VERSION=$VERSION-3 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= source ./lib/function.sh diff --git a/ressources/authelia/authelia b/ressources/authelia/authelia index 1e40f98..352860c 100755 --- a/ressources/authelia/authelia +++ b/ressources/authelia/authelia @@ -1,34 +1,40 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt install -y --no-install-recommends build-essential git wget ca-certificates dpkg fakeroot + apt install -y build-essential git wget ca-certificates wget -qO - https://deb.nodesource.com/setup_16.x | bash + #wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg + #echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list apt-get update apt-get install -y nodejs - wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz + wget -qO - https://go.dev/dl/go1.17.3.linux-amd64.tar.gz | tar -C /usr/local -xz wget -qO - https://get.pnpm.io/install.sh | sh - } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/authelia/authelia.git /tmp/authelia + VERSION=$1 + cd /tmp/ + git clone https://github.com/authelia/authelia.git + cd authelia/ + git checkout $VERSION } build() { cd /tmp/authelia/ - PATH=$PATH:/usr/local/go/bin:/root/.local/share/pnpm - ./cmd/authelia-scripts/authelia-scripts build + . /root/.bashrc + PATH=$PATH:/usr/local/go/bin bash bootstrap.sh + PATH=$PATH:/usr/local/go/bin ./cmd/authelia-scripts/authelia-scripts build } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp /tmp/authelia/dist/authelia ${PATH_DEB}/usr/bin/authelia - cp /tmp/authelia/config.template.yml ${PATH_DEB}/etc/authelia/configuration.yml - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ + cp ${PATH_BUILD}/tmp/authelia/dist/authelia ${PATH_DEB}/usr/bin/authelia + cp ${PATH_BUILD}/tmp/authelia/config.template.yml ${PATH_DEB}/etc/authelia/configuration.yml } +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/element-web/element-web b/ressources/element-web/element-web index 28a6431..09eb636 100755 --- a/ressources/element-web/element-web +++ b/ressources/element-web/element-web @@ -1,9 +1,7 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt install -y --no-install-recommends build-essential git python wget ca-certificates + apt install -y build-essential git python wget ca-certificates wget -qO - https://deb.nodesource.com/setup_16.x | bash wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list @@ -12,8 +10,11 @@ envinit() { } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/vector-im/element-web.git /tmp/element-web + VERSION=$1 + cd /tmp/ + git clone https://github.com/vector-im/element-web.git + cd element-web/ + git checkout $VERSION } build() { @@ -23,12 +24,14 @@ build() { } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs - - tar -zxf /tmp/element-web/dist/element-${GIT_VERSION}-dirty.tar.gz --strip-components=1 -C ${PATH_DEB}/usr/lib/element-web/ - cp /tmp/element-web/config.sample.json ${PATH_DEB}/etc/element-web/config.json - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 + + tar -zxf ${PATH_BUILD}/tmp/element-web/dist/element-${GIT_VERSION}-dirty.tar.gz --strip-components=1 -C ${PATH_DEB}/usr/lib/element-web/ + cp ${PATH_DEB}/usr/lib/element-web/config.sample.json ${PATH_DEB}/etc/element-web/config.json } +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/gotify/gotify b/ressources/gotify/gotify index 689ebbc..b3d373e 100755 --- a/ressources/gotify/gotify +++ b/ressources/gotify/gotify @@ -1,40 +1,38 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt install -y --no-install-recommends build-essential git wget ca-certificates dpkg fakeroot + apt install -y build-essential git wget ca-certificates wget -qO - https://deb.nodesource.com/setup_16.x | bash wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list apt-get update apt-get install -y nodejs yarn - wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz + wget -qO - https://go.dev/dl/go1.17.6.linux-amd64.tar.gz | tar -C /usr/local -xz } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/gotify/server.git /tmp/server + VERSION=$1 + cd /tmp/ + git clone https://github.com/gotify/server.git + cd server/ + git checkout ${VERSION} } build() { cd /tmp/server/ - PATH=${PATH}:/usr/local/go/bin - export GO111MODULE=on - make download-tools - go get -d - (cd ui && yarn && yarn build) - go run hack/packr/packr.go - go build -ldflags="$LD_FLAGS" -o gotify-server + . /root/.bashrc + PATH=${PATH}:/usr/local/go/bin make } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs - - cp /tmp/server/gotify-server ${PATH_DEB}/usr/bin/ - cp /tmp/server/config.example.yml ${PATH_DEB}/etc/gotify/config.yml - sed -i "s/%VERSION%/$DEB_VERSION/" ${PATH_DEB}/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build ${PATH_DEB}/ /tmp/dist/ + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 + + cp ${PATH_BUILD}/tmp/gotify/dist/gotify ${PATH_DEB}/usr/bin/gotify + cp ${PATH_BUILD}/tmp/authelia/config.template.yml ${PATH_DEB}/etc/authelia/configuration.yml } +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/gotify/rootfs/DEBIAN/conffiles b/ressources/gotify/rootfs/DEBIAN/conffiles index 040c32f..2bde2fd 100644 --- a/ressources/gotify/rootfs/DEBIAN/conffiles +++ b/ressources/gotify/rootfs/DEBIAN/conffiles @@ -1 +1 @@ -/etc/gotify/config.yml +/etc/authelia/configuration.yml diff --git a/ressources/gotify/rootfs/DEBIAN/control b/ressources/gotify/rootfs/DEBIAN/control index b548845..c0e0f13 100644 --- a/ressources/gotify/rootfs/DEBIAN/control +++ b/ressources/gotify/rootfs/DEBIAN/control @@ -1,7 +1,7 @@ -Package: gotify-server +Package: gotify Version: %VERSION% Section: base Priority: optional Architecture: all Maintainer: Thomas Legay -Description: gotify-server +Description: gotify diff --git a/ressources/gotify/rootfs/DEBIAN/postinst b/ressources/gotify/rootfs/DEBIAN/postinst index 9644513..7783fc1 100755 --- a/ressources/gotify/rootfs/DEBIAN/postinst +++ b/ressources/gotify/rootfs/DEBIAN/postinst @@ -1,4 +1,4 @@ #!/bin/bash -id gotify &> /dev/null || useradd gotify -r -s /bin/false -md /var/lib/gotify +id authelia &> /dev/null || useradd authelia -r -s /bin/false diff --git a/ressources/gotify/rootfs/etc/systemd/system/gotify.service b/ressources/gotify/rootfs/etc/systemd/system/gotify.service index a347207..2b2f4e6 100644 --- a/ressources/gotify/rootfs/etc/systemd/system/gotify.service +++ b/ressources/gotify/rootfs/etc/systemd/system/gotify.service @@ -6,8 +6,8 @@ After=network.target [Service] User=gotify Group=gotify -ExecStart=/usr/bin/gotify-server -WorkingDirectory=/var/lib/gotify-server +ExecStart=/usr/bin/gotify-linux-amd64 +WorkingDirectory=/usr/lib/gotify [Install] WantedBy=multi-user.target diff --git a/ressources/grocy/grocy b/ressources/grocy/grocy index 2f3efcf..3f983b9 100755 --- a/ressources/grocy/grocy +++ b/ressources/grocy/grocy @@ -1,9 +1,7 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt-get install -y --no-install-recommends wget ca-certificates gnupg2 composer git php-simplexml php-gd fakeroot dpkg + apt-get install -y wget ca-certificates gnupg2 composer git php-simplexml php-gd wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list apt-get update @@ -11,8 +9,10 @@ envinit() { } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/grocy/grocy.git /tmp/grocy/ + VERSION=$1 + git clone https://github.com/grocy/grocy.git /tmp/grocy + cd /tmp/grocy/ + git checkout $VERSION } build() { @@ -23,17 +23,18 @@ build() { } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - find /tmp/grocy -name .gitignore -exec rm {} \; - cp -fr /tmp/grocy/* ${PATH_DEB}/usr/share/grocy/ + find ${PATH_BUILD}/tmp/grocy -name .gitignore -exec rm {} \; + cp -fr ${PATH_BUILD}/tmp/grocy/* ${PATH_DEB}/usr/share/grocy/ cp ${PATH_DEB}/usr/share/grocy/config-dist.php ${PATH_DEB}/etc/grocy/config.php mv ${PATH_DEB}/usr/share/grocy/data ${PATH_DEB}/var/lib/grocy/ ln -s /var/lib/grocy/data/ ${PATH_DEB}/usr/share/grocy/data ln -s /etc/grocy/config.php ${PATH_DEB}/usr/share/grocy/config.php - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ } - +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/joplin-server/joplin-server b/ressources/joplin-server/joplin-server index 471904f..743a230 100755 --- a/ressources/joplin-server/joplin-server +++ b/ressources/joplin-server/joplin-server @@ -1,9 +1,7 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt install -y --no-install-recommends build-essential git python wget ca-certificates + apt install -y build-essential git python wget ca-certificates wget -qO - https://deb.nodesource.com/setup_16.x | bash wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list @@ -12,9 +10,11 @@ envinit() { } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/laurent22/joplin.git /tmp/joplin - cd /tmp/joplin + VERSION=$1 + cd /tmp/ + git clone https://github.com/laurent22/joplin.git + cd joplin/ + git checkout $VERSION rm -fr packages/app* rm -fr packages/generator-joplin rm -fr packages/plugin-repo-cli @@ -27,12 +27,13 @@ build() { } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp -fr /tmp/joplin/packages/* ${PATH_DEB}/usr/lib/joplin-server/ - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ + cp -fr ${PATH_BUILD}/tmp/joplin/packages/* ${PATH_DEB}/usr/lib/joplin-server/ } - +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/joplin/joplin b/ressources/joplin/joplin index 024e0d1..d6b76d6 100755 --- a/ressources/joplin/joplin +++ b/ressources/joplin/joplin @@ -1,20 +1,26 @@ #!/bin/bash -STEP="envinit makedeb" - envinit() { - apt-get install -y wget ca-certificates fakeroot dpkg + ls } +prebuild(){ + ls +} + +build() { + ls +} makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 wget https://github.com/laurent22/joplin/releases/download/v${GIT_VERSION}/Joplin-${GIT_VERSION}.AppImage -qO ${PATH_DEB}/usr/share/joplin/Joplin.AppImage chmod +x ${PATH_DEB}/usr/share/joplin/Joplin.AppImage - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ } - +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/mautrix-whatsapp/mautrix-whatsapp b/ressources/mautrix-whatsapp/mautrix-whatsapp index d25deba..d8512c4 100755 --- a/ressources/mautrix-whatsapp/mautrix-whatsapp +++ b/ressources/mautrix-whatsapp/mautrix-whatsapp @@ -1,29 +1,33 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt install -y --no-install-recommends ca-certificates git libolm3 libolm-dev build-essential wget - wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz + apt install -y ca-certificates git libolm3 libolm-dev build-essential wget + wget -qO - https://go.dev/dl/go1.17.3.linux-amd64.tar.gz | tar -C /usr/local -xz } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/mautrix/whatsapp.git /tmp/whatsapp + VERSION=$1 + cd /tmp/ + git clone https://github.com/mautrix/whatsapp.git + cd whatsapp/ + git checkout $VERSION } build() { cd /tmp/whatsapp/ + git checkout $1 PATH=$PATH:/usr/local/go/bin ./build.sh } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp /tmp/whatsapp/mautrix-whatsapp ${PATH_DEB}/usr/lib/mautrix-whatsapp/mautrix-whatsapp - cp /tmp/whatsapp/example-config.yaml ${PATH_DEB}/etc/mautrix-whatsapp/config.yaml - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ + cp ${PATH_BUILD}/tmp/whatsapp/mautrix-whatsapp ${PATH_DEB}/usr/lib/mautrix-whatsapp/mautrix-whatsapp + cp ${PATH_BUILD}/tmp/whatsapp/example-config.yaml ${PATH_DEB}/etc/mautrix-whatsapp/config.yaml } +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/rss-bridge/rss-bridge b/ressources/rss-bridge/rss-bridge index d23eb21..b55e97a 100755 --- a/ressources/rss-bridge/rss-bridge +++ b/ressources/rss-bridge/rss-bridge @@ -1,22 +1,27 @@ #!/bin/bash -STEP="envinit prebuild makedeb" - envinit() { - apt install -y --no-install-recommends git fakeroot dpkg + apt install -y git } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/RSS-Bridge/rss-bridge.git /tmp/rss-bridge + VERSION=$1 + cd /tmp/ + git clone https://github.com/RSS-Bridge/rss-bridge.git + cd rss-bridge/ + git checkout $VERSION +} + +build() { + } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp -fr /tmp/rss-bridge ${PATH_DEB}/usr/share/ + cp -fr ${PATH_BUILD}/tmp/rss-bridge ${PATH_DEB}/usr/share/ cp ${PATH_DEB}/usr/share/rss-bridge/config.default.ini.php ${PATH_DEB}/etc/rss-bridge/config.ini.php cp ${PATH_DEB}/usr/share/rss-bridge/whitelist.default.txt ${PATH_DEB}/etc/rss-bridge/whitelist.txt @@ -27,7 +32,8 @@ makedeb(){ mkdir -p ${PATH_DEB}/var/cache/rss-bridge/cache/ rm ${PATH_DEB}/usr/share/rss-bridge/cache ln -s /var/cache/rss-bridge/cache/ ${PATH_DEB}/usr/share/rss-bridge/cache - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ } - +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/standardnotes-web/standardnotes-web b/ressources/standardnotes-web/standardnotes-web index 55f9abe..fe668cd 100755 --- a/ressources/standardnotes-web/standardnotes-web +++ b/ressources/standardnotes-web/standardnotes-web @@ -1,9 +1,7 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt install -y --no-install-recommends git build-essential python2 wget ruby-dev libxml2 libz-dev + apt install -y git build-essential python2 wget ruby-dev libxml2 libz-dev wget -qO - https://deb.nodesource.com/setup_16.x | bash wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list @@ -12,8 +10,11 @@ envinit() { } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/standardnotes/web.git /tmp/web + VERSION=$1 + cd /tmp/ + git clone https://github.com/standardnotes/web.git + cd web/ + git checkout $VERSION } build() { @@ -24,9 +25,13 @@ build() { } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp -fr /tmp/web/* ${PATH_DEB}/usr/lib/standardnotes/web/ + cp -fr ${PATH_BUILD}/tmp/web/* ${PATH_DEB}/usr/lib/standardnotes/web/ } +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/vaultwarden-web/vaultwarden-web b/ressources/vaultwarden-web/vaultwarden-web index 185022b..0ceb1ba 100755 --- a/ressources/vaultwarden-web/vaultwarden-web +++ b/ressources/vaultwarden-web/vaultwarden-web @@ -1,9 +1,7 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt install -y --no-install-recommends build-essential git python wget ca-certificates + apt install -y build-essential git python wget ca-certificates wget -qO - https://deb.nodesource.com/setup_16.x | bash #wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg #echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list @@ -39,11 +37,13 @@ build() { } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp -fr /tmp/web-vault/build/* ${PATH_DEB}/usr/share/vaultwarden-web - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ + cp -fr ${PATH_BUILD}/tmp/web-vault/build/* ${PATH_DEB}/usr/share/vaultwarden-web } +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/vaultwarden/vaultwarden b/ressources/vaultwarden/vaultwarden index f009539..a23a9c3 100755 --- a/ressources/vaultwarden/vaultwarden +++ b/ressources/vaultwarden/vaultwarden @@ -1,7 +1,5 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { apt install -y --no-install-recommends build-essential git wget ca-certificates libmariadb-dev libpq-dev pkg-config libmysql++-dev cd /tmp @@ -11,8 +9,11 @@ envinit() { } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/dani-garcia/vaultwarden.git /tmp/vaultwarden + VERSION=$1 + cd /tmp/ + git clone https://github.com/dani-garcia/vaultwarden.git + cd vaultwarden/ + git checkout $VERSION } build() { @@ -22,11 +23,13 @@ build() { } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp -fr /tmp/vaultwarden/target/release/vaultwarden ${PATH_DEB}/usr/lib/vaultwarden/ - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ + cp -fr ${PATH_BUILD}/tmp/vaultwarden/target/release/vaultwarden ${PATH_DEB}/usr/lib/vaultwarden/ } +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/wallabag/wallabag b/ressources/wallabag/wallabag index 565864a..e14f33b 100755 --- a/ressources/wallabag/wallabag +++ b/ressources/wallabag/wallabag @@ -1,14 +1,12 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt-get install -y --no-install-recommends wget ca-certificates composer git php-common php-xml php-json php-gd php-mbstring php-xml php-tidy php-curl php-tokenizer php-bcmath php-intl php-fpm unzip fakeroot dpkg + apt-get install -y wget ca-certificates composer git php-common php-xml php-json php-gd php-mbstring php-xml php-tidy php-curl php-tokenizer php-bcmath php-intl php-fpm unzip } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/wallabag/wallabag.git /tmp/wallabag + VERSION=$1 + git clone --depth 1 -b $VERSION https://github.com/wallabag/wallabag.git /tmp/wallabag } build() { @@ -17,24 +15,27 @@ build() { } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp -fr /tmp/wallabag/app ${PATH_DEB}/usr/share/wallabag/app - cp -fr /tmp/wallabag/src ${PATH_DEB}/usr/share/wallabag/src - cp -fr /tmp/wallabag/vendor ${PATH_DEB}/usr/share/wallabag/vendor - cp -fr /tmp/wallabag/web ${PATH_DEB}/usr/share/wallabag/web + cp -fr ${PATH_BUILD}/tmp/wallabag/app ${PATH_DEB}/usr/share/wallabag/app + cp -fr ${PATH_BUILD}/tmp/wallabag/src ${PATH_DEB}/usr/share/wallabag/src + cp -fr ${PATH_BUILD}/tmp/wallabag/vendor ${PATH_DEB}/usr/share/wallabag/vendor + cp -fr ${PATH_BUILD}/tmp/wallabag/web ${PATH_DEB}/usr/share/wallabag/web - cp -fr /tmp/wallabag/data ${PATH_DEB}/var/lib/wallabag/data - cp -fr /tmp/wallabag/var ${PATH_DEB}/var/lib/wallabag/var + cp -fr ${PATH_BUILD}/tmp/wallabag/data ${PATH_DEB}/var/lib/wallabag/data + cp -fr ${PATH_BUILD}/tmp/wallabag/var ${PATH_DEB}/var/lib/wallabag/var - cp /tmp/wallabag/app/config/parameters.yml.dist ${PATH_DEB}/etc/wallabag/parameters.yml + cp ${PATH_BUILD}/tmp/wallabag/app/config/parameters.yml.dist ${PATH_DEB}/etc/wallabag/parameters.yml ln -s /var/lib/wallabag/data ${PATH_DEB}/usr/share/wallabag/data ln -s /var/lib/wallabag/var ${PATH_DEB}/usr/share/wallabag/var ln -s /etc/wallabag/parameters.yml ${PATH_DEB}/usr/share/wallabag/app/config/parameters.yml - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ } + +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/ressources/zigbee2mqtt/zigbee2mqtt b/ressources/zigbee2mqtt/zigbee2mqtt index 3bd6430..2ad950c 100755 --- a/ressources/zigbee2mqtt/zigbee2mqtt +++ b/ressources/zigbee2mqtt/zigbee2mqtt @@ -1,14 +1,15 @@ #!/bin/bash -STEP="envinit prebuild build makedeb" - envinit() { - apt install -y --no-install-recommends wget ca-certificates nodejs npm git make g++ gcc fakeroot dpkg + apt install -y wget ca-certificates nodejs npm git make g++ gcc } prebuild(){ - GIT_VERSION=$1 - git clone --depth 1 -b ${GIT_VERSION} https://github.com/Koenkk/zigbee2mqtt.git /tmp/zigbee2mqtt + VERSION=$1 + cd /tmp/ + git clone https://github.com/Koenkk/zigbee2mqtt.git + cd zigbee2mqtt/ + git checkout $VERSION } build() { @@ -18,13 +19,15 @@ build() { } makedeb(){ - GIT_VERSION=$1 - DEB_VERSION=$2 - PATH_DEB=/tmp/dist/rootfs + PATH_BUILD=$1 + PATH_DEB=$2 + GIT_VERSION=$3 - cp -fr /tmp/zigbee2mqtt/data/configuration.yaml ${PATH_DEB}/etc/zigbee2mqtt/configuration.yaml - cp -fr /tmp/zigbee2mqtt/* ${PATH_DEB}/usr/lib/zigbee2mqtt/ - - sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control - fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ + cp -fr ${PATH_BUILD}/tmp/zigbee2mqtt/data/configuration.yaml ${PATH_DEB}/etc/zigbee2mqtt/configuration.yaml + cp -fr ${PATH_BUILD}/tmp/zigbee2mqtt/* ${PATH_DEB}/usr/lib/zigbee2mqtt/ } + +echo $1 +FUNC=$1 +shift +${FUNC} $* diff --git a/rss-bridge2deb b/rss-bridge2deb index e8e096f..613d7fc 100755 --- a/rss-bridge2deb +++ b/rss-bridge2deb @@ -5,6 +5,5 @@ VERSION=2022-01-20 GIT_VERSION=$VERSION DEB_VERSION=$VERSION-3 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE=1 source ./lib/function.sh diff --git a/standardnotes-web2deb b/standardnotes-web2deb index ef6836d..434e126 100755 --- a/standardnotes-web2deb +++ b/standardnotes-web2deb @@ -5,6 +5,5 @@ VERSION=10.9.0 GIT_VERSION=$VERSION DEB_VERSION=$VERSION-1 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= source ./lib/function.sh diff --git a/vaultwarden-web2deb b/vaultwarden-web2deb index cdeea93..cc702ee 100755 --- a/vaultwarden-web2deb +++ b/vaultwarden-web2deb @@ -5,6 +5,5 @@ VERSION=2.25.1 GIT_VERSION=v$VERSION DEB_VERSION=$VERSION-2 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= source ./lib/function.sh diff --git a/vaultwarden2deb b/vaultwarden2deb index 5f98da6..2510225 100755 --- a/vaultwarden2deb +++ b/vaultwarden2deb @@ -5,6 +5,5 @@ VERSION=1.24.0 GIT_VERSION=$VERSION DEB_VERSION=$VERSION-1 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= source ./lib/function.sh diff --git a/wallabag2deb b/wallabag2deb index 56fb4c0..9038b13 100755 --- a/wallabag2deb +++ b/wallabag2deb @@ -5,6 +5,5 @@ VERSION=2.4.3 GIT_VERSION=$VERSION DEB_VERSION=$VERSION-1 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= source ./lib/function.sh diff --git a/zigbee2mqtt2deb b/zigbee2mqtt2deb index f564f5d..f639839 100755 --- a/zigbee2mqtt2deb +++ b/zigbee2mqtt2deb @@ -5,6 +5,5 @@ VERSION=1.23.0 GIT_VERSION=$VERSION DEB_VERSION=$VERSION-3 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= source ./lib/function.sh