Compare commits

...

4 Commits

Author SHA1 Message Date
thomas dd50775655 Update README.MD 2022-02-20 23:39:01 +01:00
thomas b69d1ee47f Add gotify
optimize apt without recommends packages
add package dpkg fakeroot when needed
2022-02-20 23:33:43 +01:00
thomas a340b7db22 New process using mount point 2022-02-20 15:06:59 +01:00
thomas 5d14cf2985 New process using mount point 2022-02-20 15:02:18 +01:00
33 changed files with 301 additions and 327 deletions

View File

@ -1,5 +1,5 @@
## DEBMAKER ## DEBMAKER
The main goal of this repository is allow to create application from source without install all compilation utility directly on the main system. The main goal of this repository is allow to create application from source without install compilation utility directly on the main system.
All package are install in folder in chroot environnement with only one script. All package are install in folder in chroot environnement with only one script.
### Requirement ### Requirement
@ -10,14 +10,15 @@ All package are install in folder in chroot environnement with only one script.
```bash ```bash
. vaultwarden2deb . vaultwarden2deb
allstep debmake_runAllStep
``` ```
### package are available without compilation ### package are available without compilation
- [joplin-server](#joplin-server) - [joplin-server](#joplin-server)
- [gotify](#gotify)
- [rss-bridge](#rss-bridge) - [rss-bridge](#rss-bridge)
- [vaultwarden](#vaultwarden) - [vaultwarden and vaultwarden-web](#vaultwarden-and-vaultwarden-web)
- [zigbee2mqtt](#zigbee2mqtt) - [zigbee2mqtt](#zigbee2mqtt)
- [element-web](#element-web) - [element-web](#element-web)
@ -35,6 +36,18 @@ apt-get install -y joplin-server
systemctl enable --now 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 #### rss-bridge
@ -54,7 +67,7 @@ systemctl restart apache2
``` ```
#### vaultwarden #### vaultwarden and vaultwarden-web
```bash ```bash
wget -qO - https://deb.lgy.fr/install.sh | bash wget -qO - https://deb.lgy.fr/install.sh | bash

View File

@ -5,5 +5,6 @@ VERSION=4.33.2
GIT_VERSION=v$VERSION GIT_VERSION=v$VERSION
DEB_VERSION=$VERSION-4 DEB_VERSION=$VERSION-4
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=4
source ./lib/function.sh source ./lib/function.sh

View File

@ -1,9 +1,10 @@
#!/bin/bash #!/bin/bash
APP=element-web APP=element-web
VERSION=1.10.2 VERSION=1.10.4
GIT_VERSION=v$VERSION GIT_VERSION=v$VERSION
DEB_VERSION=$VERSION-2 DEB_VERSION=$VERSION-1
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh

View File

@ -3,8 +3,9 @@
APP=gotify APP=gotify
VERSION=2.1.4 VERSION=2.1.4
GIT_VERSION=v$VERSION GIT_VERSION=v$VERSION
DEB_VERSION=$VERSION-1 DEB_VERSION=$VERSION-2
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=4
source ./lib/function.sh source ./lib/function.sh

View File

@ -4,5 +4,6 @@ VERSION=3.2.0
GIT_VERSION=v$VERSION GIT_VERSION=v$VERSION
DEB_VERSION=$VERSION-5 DEB_VERSION=$VERSION-5
DEBIAN_VERSION_CODENAME=sid DEBIAN_VERSION_CODENAME=sid
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh

View File

@ -1,9 +1,11 @@
#!/bin/bash #!/bin/bash
APP=joplin-server APP=joplin-server
VERSION=2.7.4 VERSION=2.7.4
GIT_VERSION=server-v$VERSION GIT_VERSION=server-v$VERSION
DEB_VERSION=$VERSION-2 DEB_VERSION=$VERSION-2
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=6
source ./lib/function.sh source ./lib/function.sh

View File

@ -5,5 +5,6 @@ VERSION=2.7.12
GIT_VERSION=$VERSION GIT_VERSION=$VERSION
DEB_VERSION=$VERSION-1 DEB_VERSION=$VERSION-1
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh

9
lib/exec_in_chroot.sh Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
if [ ! "$1" == "" ];
then
source /tmp/dist/$1
shift
FUNC=$1
shift
${FUNC} $*
fi

View File

@ -1,133 +1,108 @@
#!/bin/bash #!/bin/bash
source ressources/${APP}/${APP}
CACHE_APP=cache/${APP}/ CACHE_APP=cache/${APP}/
CACHE_STEP1=cache/${DEBIAN_VERSION_CODENAME} MOUNT_APP=/mnt/debmaker/${APP}/
CACHE_STEP2=cache/${APP}/envinit
CACHE_STEP3=cache/${APP}/prebuild
CACHE_STEP4=cache/${APP}/build
#DownloadOs [ -d ${CACHE_APP} ] || mkdir -p ${CACHE_APP}
step1() {
if [ ! -e ${CACHE_STEP1} ] ########################## SUB FUNCTION ##########################
then valideStep(){
mkdir -p ${CACHE_STEP1}/proc CURRENT_STEP=$1
mount -t proc proc ${CACHE_STEP1}/proc RESULT=0
sleep 2 for tmp in ${STEP}
debootstrap ${DEBIAN_VERSION_CODENAME} ${CACHE_STEP1} do
umount ${CACHE_STEP1}/proc if [ $tmp == ${CURRENT_STEP} ] ; then
RESULT=1
break
fi
done
if [ $RESULT -eq 0 ]
then
echo invalid step
fi fi
} }
#InstallOs getSizeImage(){
step2(){ [ "${IMAGE_SIZE}" == "" ] && IMAGE_SIZE=2
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
} }
#ConfigureBeforeBuild createImage(){
step3(){ dd if=/dev/zero of=${CACHE_APP}/os bs=1G count=${IMAGE_SIZE}
if [ ! -e ${CACHE_STEP3} ]; then sudo mkfs.ext4 ${CACHE_APP}/os
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
} }
#Build previousStep(){
step4(){ CURRENT_STEP=$1
if [ ! -e ${CACHE_STEP4} ] ; then TMP_STEP=os;
cp -a ${CACHE_STEP3} ${CACHE_STEP4} for tmp in ${STEP}
cp ressources/${APP}/${APP} ${CACHE_STEP4}/tmp/make do
mount -t proc proc ${CACHE_STEP4}/proc/ PREV=${TMP_STEP}
sleep 2 TMP_STEP=$tmp
chroot ${CACHE_STEP4} /tmp/make build if [ $tmp == $CURRENT_STEP ] ; then
umount ${CACHE_STEP4}/proc/ break
rm ${CACHE_STEP4}/tmp/make fi
fi done
echo $PREV
} }
#PackageDeb ########################## FUNCTION ##########################
step5(){
rm -fr dist/${APP} debmake_mountStep(){
mkdir dist/${APP} CURRENT_STEP=$1
cp -pfr ressources/${APP}/rootfs/* dist/$APP/ [ -d ${MOUNT_APP}/${CURRENT_STEP} ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}
bash ressources/${APP}/${APP} makedeb ${CACHE_STEP4} dist/${APP} ${GIT_VERSION} sudo mount ${CACHE_APP}/${CURRENT_STEP} ${MOUNT_APP}/${CURRENT_STEP}
sed -i "s/%VERSION%/$DEB_VERSION/" dist/${APP}/DEBIAN/control [ -d ${MOUNT_APP}/${CURRENT_STEP}/proc ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/proc
fakeroot dpkg-deb -Z gzip --build dist/${APP} dist sudo mount -t proc proc ${MOUNT_APP}/${CURRENT_STEP}/proc
rm -fr dist/${APP} [ -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
} }
allstep(){ debmake_umountStep(){
step1 CURRENT_STEP=$1
step2 sudo umount ${MOUNT_APP}/${CURRENT_STEP}/sys
step3 sudo umount ${MOUNT_APP}/${CURRENT_STEP}/proc
step4 sudo umount ${MOUNT_APP}/${CURRENT_STEP}
step5
} }
DeleteStep1(){ debmake_chrootStep(){
rm -fr ${CACHE_STEP1} ${CACHE_STEP2} ${CACHE_STEP3} ${CACHE_STEP4} CURRENT_STEP=$1
} debmake_mountStep ${CURRENT_STEP}
DeleteStep2(){ [ -d ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist/${APP} ] && sudo rm -rf ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist/
rm -fr ${CACHE_STEP2} ${CACHE_STEP3} ${CACHE_STEP4} sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
} sudo cp -fr ressources/${APP}/* ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
DeleteStep3(){ sudo cp -fr lib/exec_in_chroot.sh ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
rm -fr ${CACHE_STEP3} ${CACHE_STEP4} shift
} sudo chroot ${MOUNT_APP}${CURRENT_STEP}/ $*
DeleteStep4(){ find ${MOUNT_APP}${CURRENT_STEP}/tmp/dist/ -name *.deb -exec cp {} dist/ \;
rm -fr ${CACHE_STEP4} debmake_umountStep ${CURRENT_STEP}
} }
StartFromStep1(){ ########################## FUNCTION ##########################
DeleteStep1
allstep debmake_runStepOS() {
CURRENT_STEP=os
getSizeImage
createImage
debmake_mountStep ${CURRENT_STEP}
sudo debootstrap ${DEBIAN_VERSION_CODENAME} ${MOUNT_APP}/os/
debmake_umountStep ${CURRENT_STEP}
} }
StartFromStep2(){ debmake_runStepCustom() {
DeleteStep2 CURRENT_STEP=$1
allstep 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}
} }
StartFromStep3(){ debmake_runAllStep(){
DeleteStep3 debmake_runStepOS
allstep for tmp in ${STEP}
} do
debmake_runStepCustom $tmp
StartFromStep4(){ done
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/*
} }

View File

@ -5,5 +5,6 @@ VERSION=0.2.4
GIT_VERSION=v$VERSION GIT_VERSION=v$VERSION
DEB_VERSION=$VERSION-3 DEB_VERSION=$VERSION-3
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh

View File

@ -1,40 +1,34 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git wget ca-certificates apt install -y --no-install-recommends build-essential git wget ca-certificates dpkg fakeroot
wget -qO - https://deb.nodesource.com/setup_16.x | bash 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 update
apt-get install -y nodejs apt-get install -y nodejs
wget -qO - https://go.dev/dl/go1.17.3.linux-amd64.tar.gz | tar -C /usr/local -xz wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz
wget -qO - https://get.pnpm.io/install.sh | sh - wget -qO - https://get.pnpm.io/install.sh | sh -
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/authelia/authelia.git /tmp/authelia
git clone https://github.com/authelia/authelia.git
cd authelia/
git checkout $VERSION
} }
build() { build() {
cd /tmp/authelia/ cd /tmp/authelia/
. /root/.bashrc PATH=$PATH:/usr/local/go/bin:/root/.local/share/pnpm
PATH=$PATH:/usr/local/go/bin bash bootstrap.sh ./cmd/authelia-scripts/authelia-scripts build
PATH=$PATH:/usr/local/go/bin ./cmd/authelia-scripts/authelia-scripts build
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp ${PATH_BUILD}/tmp/authelia/dist/authelia ${PATH_DEB}/usr/bin/authelia cp /tmp/authelia/dist/authelia ${PATH_DEB}/usr/bin/authelia
cp ${PATH_BUILD}/tmp/authelia/config.template.yml ${PATH_DEB}/etc/authelia/configuration.yml 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/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,7 +1,9 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git python wget ca-certificates apt install -y --no-install-recommends build-essential git python wget ca-certificates
wget -qO - https://deb.nodesource.com/setup_16.x | bash 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 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 echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list
@ -10,11 +12,8 @@ envinit() {
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/vector-im/element-web.git /tmp/element-web
git clone https://github.com/vector-im/element-web.git
cd element-web/
git checkout $VERSION
} }
build() { build() {
@ -24,14 +23,12 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
tar -zxf ${PATH_BUILD}/tmp/element-web/dist/element-${GIT_VERSION}-dirty.tar.gz --strip-components=1 -C ${PATH_DEB}/usr/lib/element-web/ tar -zxf /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 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/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,38 +1,40 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git wget ca-certificates apt install -y --no-install-recommends build-essential git wget ca-certificates dpkg fakeroot
wget -qO - https://deb.nodesource.com/setup_16.x | bash 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 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 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 update
apt-get install -y nodejs yarn apt-get install -y nodejs yarn
wget -qO - https://go.dev/dl/go1.17.6.linux-amd64.tar.gz | tar -C /usr/local -xz wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/gotify/server.git /tmp/server
git clone https://github.com/gotify/server.git
cd server/
git checkout ${VERSION}
} }
build() { build() {
cd /tmp/server/ cd /tmp/server/
. /root/.bashrc PATH=${PATH}:/usr/local/go/bin
PATH=${PATH}:/usr/local/go/bin make 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
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp ${PATH_BUILD}/tmp/gotify/dist/gotify ${PATH_DEB}/usr/bin/gotify cp /tmp/server/gotify-server ${PATH_DEB}/usr/bin/
cp ${PATH_BUILD}/tmp/authelia/config.template.yml ${PATH_DEB}/etc/authelia/configuration.yml 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/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1 +1 @@
/etc/authelia/configuration.yml /etc/gotify/config.yml

View File

@ -1,7 +1,7 @@
Package: gotify Package: gotify-server
Version: %VERSION% Version: %VERSION%
Section: base Section: base
Priority: optional Priority: optional
Architecture: all Architecture: all
Maintainer: Thomas Legay <thomas@syngate.fr> Maintainer: Thomas Legay <thomas@syngate.fr>
Description: gotify Description: gotify-server

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
id authelia &> /dev/null || useradd authelia -r -s /bin/false id gotify &> /dev/null || useradd gotify -r -s /bin/false -md /var/lib/gotify

View File

@ -6,8 +6,8 @@ After=network.target
[Service] [Service]
User=gotify User=gotify
Group=gotify Group=gotify
ExecStart=/usr/bin/gotify-linux-amd64 ExecStart=/usr/bin/gotify-server
WorkingDirectory=/usr/lib/gotify WorkingDirectory=/var/lib/gotify-server
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -1,7 +1,9 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt-get install -y wget ca-certificates gnupg2 composer git php-simplexml php-gd apt-get install -y --no-install-recommends wget ca-certificates gnupg2 composer git php-simplexml php-gd fakeroot dpkg
wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg 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 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 update
@ -9,10 +11,8 @@ envinit() {
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
git clone https://github.com/grocy/grocy.git /tmp/grocy git clone --depth 1 -b ${GIT_VERSION} https://github.com/grocy/grocy.git /tmp/grocy/
cd /tmp/grocy/
git checkout $VERSION
} }
build() { build() {
@ -23,18 +23,17 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
find ${PATH_BUILD}/tmp/grocy -name .gitignore -exec rm {} \; find /tmp/grocy -name .gitignore -exec rm {} \;
cp -fr ${PATH_BUILD}/tmp/grocy/* ${PATH_DEB}/usr/share/grocy/ cp -fr /tmp/grocy/* ${PATH_DEB}/usr/share/grocy/
cp ${PATH_DEB}/usr/share/grocy/config-dist.php ${PATH_DEB}/etc/grocy/config.php 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/ 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 /var/lib/grocy/data/ ${PATH_DEB}/usr/share/grocy/data
ln -s /etc/grocy/config.php ${PATH_DEB}/usr/share/grocy/config.php 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} $*

View File

@ -1,7 +1,9 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git python wget ca-certificates apt install -y --no-install-recommends build-essential git python wget ca-certificates
wget -qO - https://deb.nodesource.com/setup_16.x | bash 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 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 echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list
@ -10,11 +12,9 @@ envinit() {
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/laurent22/joplin.git /tmp/joplin
git clone https://github.com/laurent22/joplin.git cd /tmp/joplin
cd joplin/
git checkout $VERSION
rm -fr packages/app* rm -fr packages/app*
rm -fr packages/generator-joplin rm -fr packages/generator-joplin
rm -fr packages/plugin-repo-cli rm -fr packages/plugin-repo-cli
@ -27,13 +27,12 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/joplin/packages/* ${PATH_DEB}/usr/lib/joplin-server/ 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/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,26 +1,20 @@
#!/bin/bash #!/bin/bash
STEP="envinit makedeb"
envinit() { envinit() {
ls apt-get install -y wget ca-certificates fakeroot dpkg
} }
prebuild(){
ls
}
build() {
ls
}
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
wget https://github.com/laurent22/joplin/releases/download/v${GIT_VERSION}/Joplin-${GIT_VERSION}.AppImage -qO ${PATH_DEB}/usr/share/joplin/Joplin.AppImage 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 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} $*

View File

@ -1,33 +1,29 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y ca-certificates git libolm3 libolm-dev build-essential wget apt install -y --no-install-recommends 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 wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/mautrix/whatsapp.git /tmp/whatsapp
git clone https://github.com/mautrix/whatsapp.git
cd whatsapp/
git checkout $VERSION
} }
build() { build() {
cd /tmp/whatsapp/ cd /tmp/whatsapp/
git checkout $1
PATH=$PATH:/usr/local/go/bin ./build.sh PATH=$PATH:/usr/local/go/bin ./build.sh
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp ${PATH_BUILD}/tmp/whatsapp/mautrix-whatsapp ${PATH_DEB}/usr/lib/mautrix-whatsapp/mautrix-whatsapp cp /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 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/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,27 +1,22 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild makedeb"
envinit() { envinit() {
apt install -y git apt install -y --no-install-recommends git fakeroot dpkg
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/RSS-Bridge/rss-bridge.git /tmp/rss-bridge
git clone https://github.com/RSS-Bridge/rss-bridge.git
cd rss-bridge/
git checkout $VERSION
}
build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/rss-bridge ${PATH_DEB}/usr/share/ cp -fr /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/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 cp ${PATH_DEB}/usr/share/rss-bridge/whitelist.default.txt ${PATH_DEB}/etc/rss-bridge/whitelist.txt
@ -32,8 +27,7 @@ makedeb(){
mkdir -p ${PATH_DEB}/var/cache/rss-bridge/cache/ mkdir -p ${PATH_DEB}/var/cache/rss-bridge/cache/
rm ${PATH_DEB}/usr/share/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 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} $*

View File

@ -1,7 +1,9 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y git build-essential python2 wget ruby-dev libxml2 libz-dev apt install -y --no-install-recommends git build-essential python2 wget ruby-dev libxml2 libz-dev
wget -qO - https://deb.nodesource.com/setup_16.x | bash 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 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 echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list
@ -10,11 +12,8 @@ envinit() {
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/standardnotes/web.git /tmp/web
git clone https://github.com/standardnotes/web.git
cd web/
git checkout $VERSION
} }
build() { build() {
@ -25,13 +24,9 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/web/* ${PATH_DEB}/usr/lib/standardnotes/web/ cp -fr /tmp/web/* ${PATH_DEB}/usr/lib/standardnotes/web/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,7 +1,9 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git python wget ca-certificates apt install -y --no-install-recommends build-essential git python wget ca-certificates
wget -qO - https://deb.nodesource.com/setup_16.x | bash 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 #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 #echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list
@ -37,13 +39,11 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/web-vault/build/* ${PATH_DEB}/usr/share/vaultwarden-web 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/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y --no-install-recommends build-essential git wget ca-certificates libmariadb-dev libpq-dev pkg-config libmysql++-dev apt install -y --no-install-recommends build-essential git wget ca-certificates libmariadb-dev libpq-dev pkg-config libmysql++-dev
cd /tmp cd /tmp
@ -9,11 +11,8 @@ envinit() {
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/dani-garcia/vaultwarden.git /tmp/vaultwarden
git clone https://github.com/dani-garcia/vaultwarden.git
cd vaultwarden/
git checkout $VERSION
} }
build() { build() {
@ -23,13 +22,11 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/vaultwarden/target/release/vaultwarden ${PATH_DEB}/usr/lib/vaultwarden/ 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/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,12 +1,14 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
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 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
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
git clone --depth 1 -b $VERSION https://github.com/wallabag/wallabag.git /tmp/wallabag git clone --depth 1 -b ${GIT_VERSION} https://github.com/wallabag/wallabag.git /tmp/wallabag
} }
build() { build() {
@ -15,27 +17,24 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/wallabag/app ${PATH_DEB}/usr/share/wallabag/app cp -fr /tmp/wallabag/app ${PATH_DEB}/usr/share/wallabag/app
cp -fr ${PATH_BUILD}/tmp/wallabag/src ${PATH_DEB}/usr/share/wallabag/src cp -fr /tmp/wallabag/src ${PATH_DEB}/usr/share/wallabag/src
cp -fr ${PATH_BUILD}/tmp/wallabag/vendor ${PATH_DEB}/usr/share/wallabag/vendor cp -fr /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/web ${PATH_DEB}/usr/share/wallabag/web
cp -fr ${PATH_BUILD}/tmp/wallabag/data ${PATH_DEB}/var/lib/wallabag/data cp -fr /tmp/wallabag/data ${PATH_DEB}/var/lib/wallabag/data
cp -fr ${PATH_BUILD}/tmp/wallabag/var ${PATH_DEB}/var/lib/wallabag/var cp -fr /tmp/wallabag/var ${PATH_DEB}/var/lib/wallabag/var
cp ${PATH_BUILD}/tmp/wallabag/app/config/parameters.yml.dist ${PATH_DEB}/etc/wallabag/parameters.yml cp /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/data ${PATH_DEB}/usr/share/wallabag/data
ln -s /var/lib/wallabag/var ${PATH_DEB}/usr/share/wallabag/var 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 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} $*

View File

@ -1,15 +1,14 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y wget ca-certificates nodejs npm git make g++ gcc apt install -y --no-install-recommends wget ca-certificates nodejs npm git make g++ gcc fakeroot dpkg
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone --depth 1 -b ${GIT_VERSION} https://github.com/Koenkk/zigbee2mqtt.git /tmp/zigbee2mqtt
git clone https://github.com/Koenkk/zigbee2mqtt.git
cd zigbee2mqtt/
git checkout $VERSION
} }
build() { build() {
@ -19,15 +18,13 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/zigbee2mqtt/data/configuration.yaml ${PATH_DEB}/etc/zigbee2mqtt/configuration.yaml cp -fr /tmp/zigbee2mqtt/data/configuration.yaml ${PATH_DEB}/etc/zigbee2mqtt/configuration.yaml
cp -fr ${PATH_BUILD}/tmp/zigbee2mqtt/* ${PATH_DEB}/usr/lib/zigbee2mqtt/ 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/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -5,5 +5,6 @@ VERSION=2022-01-20
GIT_VERSION=$VERSION GIT_VERSION=$VERSION
DEB_VERSION=$VERSION-3 DEB_VERSION=$VERSION-3
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=1
source ./lib/function.sh source ./lib/function.sh

View File

@ -5,5 +5,6 @@ VERSION=10.9.0
GIT_VERSION=$VERSION GIT_VERSION=$VERSION
DEB_VERSION=$VERSION-1 DEB_VERSION=$VERSION-1
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh

View File

@ -5,5 +5,6 @@ VERSION=2.25.1
GIT_VERSION=v$VERSION GIT_VERSION=v$VERSION
DEB_VERSION=$VERSION-2 DEB_VERSION=$VERSION-2
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh

View File

@ -5,5 +5,6 @@ VERSION=1.24.0
GIT_VERSION=$VERSION GIT_VERSION=$VERSION
DEB_VERSION=$VERSION-1 DEB_VERSION=$VERSION-1
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh

View File

@ -5,5 +5,6 @@ VERSION=2.4.3
GIT_VERSION=$VERSION GIT_VERSION=$VERSION
DEB_VERSION=$VERSION-1 DEB_VERSION=$VERSION-1
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh

View File

@ -5,5 +5,6 @@ VERSION=1.23.0
GIT_VERSION=$VERSION GIT_VERSION=$VERSION
DEB_VERSION=$VERSION-3 DEB_VERSION=$VERSION-3
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=
source ./lib/function.sh source ./lib/function.sh