Add linux-all.tar.gz & systemd service (#366)

* Update my email address

* Add systemd configs to debian package

* Add systemd configs

* Tidy up

* Add linux-all.tar.gz

* Rename Tachidesk.jar to tachidesk-server.jar

* Fix typo

* Fix typo
This commit is contained in:
Mahor
2022-06-16 13:28:31 +00:00
committed by GitHub
parent 5b0426a94c
commit 7195a30d55
17 changed files with 123 additions and 72 deletions

View File

@@ -72,8 +72,9 @@ jobs:
cd master/scripts cd master/scripts
./windows-bundler.sh win32 ./windows-bundler.sh win32
./windows-bundler.sh win64 ./windows-bundler.sh win64
./unix-bundler.sh linux-x64
./debian-packager.sh ./debian-packager.sh
./unix-bundler.sh linux-all
./unix-bundler.sh linux-x64
./unix-bundler.sh macOS-x64 ./unix-bundler.sh macOS-x64
./unix-bundler.sh macOS-arm64 ./unix-bundler.sh macOS-arm64

View File

@@ -63,8 +63,9 @@ jobs:
cd master/scripts cd master/scripts
./windows-bundler.sh win32 ./windows-bundler.sh win32
./windows-bundler.sh win64 ./windows-bundler.sh win64
./unix-bundler.sh linux-x64
./debian-packager.sh ./debian-packager.sh
./unix-bundler.sh linux-all
./unix-bundler.sh linux-x64
./unix-bundler.sh macOS-x64 ./unix-bundler.sh macOS-x64
./unix-bundler.sh macOS-arm64 ./unix-bundler.sh macOS-arm64

View File

@@ -23,15 +23,16 @@ mkdir "$srcdir/"
cp "$jar" "$srcdir/$pkgname.jar" cp "$jar" "$srcdir/$pkgname.jar"
cp "resources/$pkgname-browser-launcher.sh" "$srcdir/" cp "resources/$pkgname-browser-launcher.sh" "$srcdir/"
cp "resources/$pkgname-debug-launcher.sh" "$srcdir/" cp "resources/$pkgname-debug-launcher.sh" "$srcdir/"
cp "resources/$pkgname-electron-launcher-debian.sh" "$srcdir/$pkgname-electron-launcher.sh" cp "resources/$pkgname-electron-launcher.sh" "$srcdir/"
cp "resources/$pkgname.desktop" "$srcdir/" cp "resources/$pkgname.desktop" "$srcdir/"
cp "../server/src/main/resources/icon/faviconlogo.png" "$srcdir/$pkgname.png" cp "../server/src/main/resources/icon/faviconlogo.png" "$srcdir/$pkgname.png"
cp "resources/systemd"/* "$srcdir/"
GZIP=-9 tar -cvzf "$srctgz" "$srcdir/" GZIP=-9 tar -cvzf "$srctgz" "$srcdir/"
cp -r "resources/debian" "$srcdir/" cp -r "resources/debian" "$srcdir/"
sed -i "s/\${pkgver}/$pkgver/" "$srcdir/debian/changelog" sed -i "s/\$pkgver/$pkgver/" "$srcdir/debian/changelog"
sed -i "s/\${pkgrel}/$pkgrel/" "$srcdir/debian/changelog" sed -i "s/\$pkgrel/$pkgrel/" "$srcdir/debian/changelog"
# Build # Build
mkdir "debuild/" mkdir "debuild/"

View File

@@ -1,5 +1,5 @@
tachidesk-server (${pkgver}-${pkgrel}) unstable; urgency=medium tachidesk-server ($pkgver-$pkgrel) unstable; urgency=medium
* See CHANGELOG.md on https://github.com/Suwayomi/Tachidesk-Server * See CHANGELOG.md on https://github.com/Suwayomi/Tachidesk-Server
-- Mahor Foruzesh <mahorforuzesh@pm.me> Fri, 14 Jan 2022 00:00:00 +0000 -- Mahor1221 <mahor1221@pm.me> Fri, 14 Jan 2022 00:00:00 +0000

2
scripts/resources/debian/control Executable file → Normal file
View File

@@ -1,7 +1,7 @@
Source: tachidesk-server Source: tachidesk-server
Section: web Section: web
Priority: optional Priority: optional
Maintainer: Mahor Foruzesh <mahorforuzesh@pm.me> Maintainer: Mahor1221 <mahor1221@pm.me>
Build-Depends: debhelper-compat (= 12), dh-exec Build-Depends: debhelper-compat (= 12), dh-exec
Standards-Version: 4.5.1 Standards-Version: 4.5.1
Homepage: https://github.com/Suwayomi/Tachidesk-Server Homepage: https://github.com/Suwayomi/Tachidesk-Server

0
scripts/resources/debian/copyright Executable file → Normal file
View File

View File

@@ -1,8 +1,12 @@
#!/usr/bin/dh-exec #!/usr/bin/dh-exec
tachidesk-server-browser-launcher.sh => usr/bin/tachidesk-server-browser tachidesk-server.jar usr/share/java/tachidesk-server/
tachidesk-server-debug-launcher.sh => usr/bin/tachidesk-server-debug tachidesk-server.png usr/share/pixmaps/
tachidesk-server-electron-launcher.sh => usr/bin/tachidesk-server-electron tachidesk-server.desktop usr/share/applications/
tachidesk-server.jar usr/share/java/tachidesk-server/ tachidesk-server.service usr/lib/systemd/system/
tachidesk-server.png usr/share/pixmaps/ tachidesk-server.sysusers => usr/lib/sysusers.d/tachidesk-server.conf
tachidesk-server.desktop usr/share/applications/ tachidesk-server.tmpfiles => usr/lib/tmpfiles.d/tachidesk-server.conf
tachidesk-server.conf => etc/tachidesk/server.conf
tachidesk-server-browser-launcher.sh => usr/bin/tachidesk-server-browser
tachidesk-server-debug-launcher.sh => usr/bin/tachidesk-server-debug
tachidesk-server-electron-launcher.sh => usr/bin/tachidesk-server-electron

0
scripts/resources/debian/source/format Executable file → Normal file
View File

0
scripts/resources/debian/source/include-binaries Executable file → Normal file
View File

View File

@@ -0,0 +1,5 @@
TACHIDESK_ROOT_DIR="/var/lib/tachidesk"
# Extra arguments passed to the java command
# The default value disables the system tray icon, and launching a browser on service start.
JAVA_ARGS=-Dsuwayomi.tachidesk.config.server.initialOpenInBrowserEnabled=false -Dsuwayomi.tachidesk.config.server.systemTrayEnabled=false

View File

@@ -0,0 +1,31 @@
[Unit]
Description=A free and open source manga reader server that runs extensions built for Tachiyomi.
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=tachidesk
Group=tachidesk
SyslogIdentifier=tachidesk
EnvironmentFile=/etc/tachidesk/server.conf
ExecStart=/usr/bin/java $JAVA_ARGS -Dsuwayomi.tachidesk.config.server.rootDir="${TACHIDESK_ROOT_DIR}" -jar /usr/share/java/tachidesk-server/tachidesk-server.jar
Restart=on-failure
ProtectSystem=full
ProtectHome=true
PrivateTmp=yes
PrivateDevices=yes
ProtectClock=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectKernelLogs=yes
ProtectControlGroups=yes
RestrictSUIDSGID=yes
RestrictRealtime=yes
RestrictNamespaces=yes
NoNewPrivileges=yes
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
#Type Name ID GECOS Home directory Shell
u tachidesk - "Tachidesk Manga Server" /var/lib/tachidesk

View File

@@ -0,0 +1,2 @@
#Type Path Mode User Group Age Argument
d /var/lib/tachidesk 0755 tachidesk tachidesk

View File

@@ -1,2 +1,4 @@
#!/bin/sh #!/bin/sh
exec /usr/bin/java -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true -jar /usr/share/java/tachidesk-server/tachidesk-server.jar exec /usr/bin/java \
-Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true \
-jar /usr/share/java/tachidesk-server/tachidesk-server.jar

View File

@@ -1,12 +0,0 @@
#!/bin/sh
if [ ! -f /usr/bin/electron ]; then
echo "Electron executable was not found
In order to run this launcher, you need Electron installed.
You can install it with these commands:
sudo apt install npm
sudo npm install electron -g"
exit 1
fi
exec /usr/bin/java -Dsuwayomi.tachidesk.config.server.webUIInterface=electron -Dsuwayomi.tachidesk.config.server.electronPath=/usr/bin/electron -jar /usr/share/java/tachidesk-server/tachidesk-server.jar

View File

@@ -1,3 +1,12 @@
#!/bin/sh #!/bin/sh
exec /usr/bin/java -Dsuwayomi.tachidesk.config.server.webUIInterface=electron -Dsuwayomi.tachidesk.config.server.electronPath=/usr/bin/electron -jar /usr/share/java/tachidesk-server/tachidesk-server.jar if [ ! -f /usr/bin/electron ]; then
echo "Electron executable was not found!
In order to run this launcher, you need Electron installed."
exit 1
fi
exec /usr/bin/java \
-Dsuwayomi.tachidesk.config.server.webUIInterface=electron \
-Dsuwayomi.tachidesk.config.server.electronPath=/usr/bin/electron \
-jar /usr/share/java/tachidesk-server/tachidesk-server.jar

View File

@@ -8,80 +8,85 @@
electron_version="v14.0.0" electron_version="v14.0.0"
if [ $1 = "linux-x64" ]; then arch="$1"
os="$(echo $arch | cut -d '-' -f1)"
if [ "$arch" = "linux-all" ]; then
continue
elif [ "$arch" = "linux-x64" ]; then
jre="OpenJDK8U-jre_x64_linux_hotspot_8u302b08.tar.gz" jre="OpenJDK8U-jre_x64_linux_hotspot_8u302b08.tar.gz"
jre_release="jdk8u302-b08" jre_release="jdk8u302-b08"
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre" jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
jre_dir="$jre_release-jre" jre_dir="$jre_release-jre"
electron="electron-$electron_version-linux-x64.zip" electron="electron-$electron_version-linux-x64.zip"
elif [ $1 = "macOS-x64" ]; then elif [ "$arch" = "macOS-x64" ]; then
jre="OpenJDK8U-jre_x64_mac_hotspot_8u302b08.tar.gz" jre="OpenJDK8U-jre_x64_mac_hotspot_8u302b08.tar.gz"
jre_release="jdk8u302-b08" jre_release="jdk8u302-b08"
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre" jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
jre_dir="$jre_release-jre" jre_dir="$jre_release-jre"
electron="electron-$electron_version-darwin-x64.zip" electron="electron-$electron_version-darwin-x64.zip"
elif [ $1 = "macOS-arm64" ]; then elif [ "$arch" = "macOS-arm64" ]; then
jre="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64.tar.gz" jre="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64.tar.gz"
jre_release="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64" jre_release="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64"
jre_url="https://cdn.azul.com/zulu/bin/$jre" jre_url="https://cdn.azul.com/zulu/bin/$jre"
jre_dir="$jre_release/zulu-8.jre" jre_dir="$jre_release/zulu-8.jre"
electron="electron-$electron_version-darwin-arm64.zip" electron="electron-$electron_version-darwin-arm64.zip"
else else
echo "Unsupported arch value: $1" echo "Unsupported arch value: $arch"
exit 1 exit 1
fi fi
arch="$1"
os=$(echo $arch | cut -d '-' -f1)
echo "creating $arch bundle" echo "creating $arch bundle"
jar="$(ls ../server/build/*.jar | tail -n1)"
jar_name="$(echo $jar | cut -d'/' -f4)"
release_name="$(echo $jar_name | sed 's/.jar//')-$arch"
mkdir "$release_name"
jar=$(ls ../server/build/*.jar | tail -n1) # download jre and electron
jar_name=$(echo $jar | cut -d'/' -f4) if [ "$arch" != "linux-all" ]; then
release_name=$(echo $jar_name | sed 's/.jar//')-$arch echo "Dealing with jre..."
if [ ! -f "$jre" ]; then
curl -L "$jre_url" -o "$jre"
fi
tar xvf "$jre"
mv "$jre_dir" "$release_name/jre"
# make release dir echo "Dealing with electron"
mkdir $release_name if [ ! -f "$electron" ]; then
curl -L "https://github.com/electron/electron/releases/download/$electron_version/$electron" -o "$electron"
echo "Dealing with jre..." fi
if [ ! -f $jre ]; then unzip "$electron" -d "$release_name/electron"
curl -L $jre_url -o $jre
fi fi
tar xvf $jre
mv $jre_dir $release_name/jre
echo "Dealing with electron"
if [ ! -f $electron ]; then
curl -L "https://github.com/electron/electron/releases/download/$electron_version/$electron" -o $electron
fi
unzip $electron -d $release_name/electron
# copy artifacts # copy artifacts
cp $jar $release_name/Tachidesk-Server.jar if [ "$os" = "linux" ]; then
if [ $os = linux ]; then cp "$jar" "$release_name/tachidesk-server.jar"
cp "resources/tachidesk-server-browser-launcher.sh" $release_name cp "resources/tachidesk-server-browser-launcher.sh" "$release_name"
cp "resources/tachidesk-server-debug-launcher.sh" $release_name cp "resources/tachidesk-server-debug-launcher.sh" "$release_name"
cp "resources/tachidesk-server-electron-launcher.sh" $release_name cp "resources/tachidesk-server-electron-launcher.sh" "$release_name"
elif [ $os = macOS ]; then cp "resources/tachidesk-server.desktop" "$release_name"
cp "resources/Tachidesk Browser Launcher.command" $release_name cp "../server/src/main/resources/icon/faviconlogo.png" "$release_name/tachidesk-server.png"
cp "resources/Tachidesk Debug Launcher.command" $release_name cp "resources/systemd"/* "$release_name"
cp "resources/Tachidesk Electron Launcher.command" $release_name elif [ "$os" = "macOS" ]; then
cp "$jar" "$release_name/Tachidesk.jar"
cp "resources/Tachidesk Browser Launcher.command" "$release_name"
cp "resources/Tachidesk Debug Launcher.command" "$release_name"
cp "resources/Tachidesk Electron Launcher.command" "$release_name"
fi fi
# archive then compress
archive_name="" archive_name=""
if [ $os = linux ]; then if [ "$os" = "linux" ]; then
archive_name=$release_name.tar.gz archive_name="$release_name.tar.gz"
GZIP=-9 tar cvzf $archive_name $release_name GZIP=-9 tar cvzf "$archive_name" "$release_name"
elif [ $os = macOS ]; then elif [ "$os" = "macOS" ]; then
archive_name=$release_name.zip archive_name="$release_name.zip"
zip -9 -r $archive_name $release_name zip -9 -r "$archive_name" "$release_name"
fi fi
rm -rf $release_name
# clean up from possible previous runs # clean up from possible previous runs
if [ -f ../server/build/$archive_name ]; then if [ -f "../server/build/$archive_name" ]; then
rm ../server/build/$archive_name rm "../server/build/$archive_name"
fi fi
mv $archive_name ../server/build/ rm -rf "$release_name"
mv "$archive_name" "../server/build/"