Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Debian package erros. Change arch from "amd64" to "all" #288

Merged
merged 10 commits into from
Jan 17, 2022
2 changes: 1 addition & 1 deletion .github/workflows/build_push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
./windows-bundler.sh win32
./windows-bundler.sh win64
./unix-bundler.sh linux-x64
./unix-bundler.sh debian-x64
./debian-packager.sh
./unix-bundler.sh macOS-x64
./unix-bundler.sh macOS-arm64

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
./windows-bundler.sh win32
./windows-bundler.sh win64
./unix-bundler.sh linux-x64
./unix-bundler.sh debian-x64
./debian-packager.sh
./unix-bundler.sh macOS-x64
./unix-bundler.sh macOS-arm64

Expand Down
48 changes: 48 additions & 0 deletions scripts/debian-packager.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

# Copyright (C) Contributors to the Suwayomi project
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.

echo "creating debian package"
jar=$(ls ../server/build/*.jar | tail -n1)
release_ver=$(tmp="${jar%-*}" && echo "${tmp##*-}" | tr -d v)
orig_dir="tachidesk-$release_ver" # dir uses hyphen "-"
orig_tar_gz="tachidesk_$release_ver.orig.tar.gz" # orig file uses underscore "_"
package_name="tachidesk_$release_ver-1_all.deb"

# copy artifacts
mkdir "$orig_dir"
cp "$jar" "$orig_dir/Tachidesk.jar"
cp -r "resources/debian" "$orig_dir"
cp "resources/tachidesk-browser-launcher-standalone.sh" "$orig_dir/debian"
cp "resources/tachidesk-debug-launcher-standalone.sh" "$orig_dir/debian"
cp "resources/tachidesk-electron-launcher-standalone.sh" "$orig_dir/debian"
cp "resources/tachidesk.desktop" "$orig_dir/debian"
cp "../server/src/main/resources/icon/faviconlogo.png" "$orig_dir/debian"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cp "../server/src/main/resources/icon/faviconlogo.png" "$orig_dir/debian/tachidesk.png"


# prepare
tar cvzf "$orig_tar_gz" "$orig_dir/Tachidesk.jar"
sed -i "s/\${version}/$release_ver/" "$orig_dir/debian/changelog"

# build
mkdir "build"
mv $orig_dir $orig_tar_gz "build/"
cd "build/$orig_dir/debian"
sudo apt install devscripts build-essential dh-exec
# --lintian-opts --profile debian: build Debian packages on Ubuntu
debuild -uc -us --lintian-opts --profile debian
cd -

# clean build directory
mv "build/$package_name" "./"
rm -rf "build"

# clean up from possible previous runs
if [ -f "../server/build/$package_name" ]; then
rm "../server/build/$package_name"
fi

mv "$package_name" "../server/build/"
3 changes: 3 additions & 0 deletions scripts/resources/debian/changelog
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
tachidesk (${version}-1) unstable; urgency=medium

* See CHANGELOG.md on https://github.com/Suwayomi/Tachidesk-Server

-- Mahor Foruzesh <mahorforuzesh@pm.me> Fri, 14 Jan 2022 00:00:00 +0000
2 changes: 1 addition & 1 deletion scripts/resources/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Standards-Version: 4.5.1
Homepage: https://github.com/Suwayomi/Tachidesk-Server

Package: tachidesk
Architecture: amd64
Architecture: all
Depends: ${misc:Depends}, default-jre-headless (>= 8)
Description: Manga Reader
A free and open source manga reader server that runs extensions built for Tachiyomi.
Expand Down
12 changes: 6 additions & 6 deletions scripts/resources/debian/install
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/usr/bin/dh-exec

debian/tachidesk.png usr/share/pixmaps/
debian/tachidesk.desktop usr/share/applications/
tachidesk-browser-launcher.sh => usr/bin/tachidesk
tachidesk-browser-launcher.sh => usr/bin/tachidesk-browser
tachidesk-debug-launcher.sh => usr/bin/tachidesk-debug
tachidesk-electron-launcher.sh => usr/bin/tachidesk-electron
debian/tachidesk-browser-launcher-standalone.sh => usr/bin/tachidesk
debian/tachidesk-browser-launcher-standalone.sh => usr/bin/tachidesk-browser
debian/tachidesk-debug-launcher-standalone.sh => usr/bin/tachidesk-debug
debian/tachidesk-electron-launcher-standalone.sh => usr/bin/tachidesk-electron
Tachidesk.jar => usr/share/java/tachidesk/tachidesk.jar
debian/faviconlogo.png => usr/share/pixmaps/tachidesk.png
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

debian/tachidesk.png usr/share/pixmaps

debian/tachidesk.desktop usr/share/applications/
2 changes: 1 addition & 1 deletion scripts/resources/debian/source/include-binaries
Original file line number Diff line number Diff line change
@@ -1 +1 @@
debian/tachidesk.png
debian/faviconlogo.png
mahor1221 marked this conversation as resolved.
Show resolved Hide resolved
2 changes: 2 additions & 0 deletions scripts/resources/tachidesk-browser-launcher-standalone.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
exec /usr/bin/java -jar /usr/share/java/tachidesk/tachidesk.jar
2 changes: 2 additions & 0 deletions scripts/resources/tachidesk-debug-launcher-standalone.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
exec /usr/bin/java -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true -jar /usr/share/java/tachidesk/tachidesk.jar
14 changes: 14 additions & 0 deletions scripts/resources/tachidesk-electron-launcher-standalone.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/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/tachidesk.jar
32 changes: 2 additions & 30 deletions scripts/unix-bundler.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

electron_version="v14.0.0"

if [ $1 = "linux-x64" ] || [ $1 = "debian-x64" ]; then
if [ $1 = "linux-x64" ]; then
jre="OpenJDK8U-jre_x64_linux_hotspot_8u302b08.tar.gz"
jre_release="jdk8u302-b08"
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
Expand Down Expand Up @@ -58,7 +58,7 @@ unzip $electron -d $release_name/electron

# copy artifacts
cp $jar $release_name/Tachidesk.jar
if [ $os = linux ] || [ $os = debian ]; then
if [ $os = linux ]; then
cp "resources/tachidesk-browser-launcher.sh" $release_name
cp "resources/tachidesk-debug-launcher.sh" $release_name
cp "resources/tachidesk-electron-launcher.sh" $release_name
Expand All @@ -75,34 +75,6 @@ if [ $os = linux ]; then
elif [ $os = macOS ]; then
archive_name=$release_name.zip
zip -9 -r $archive_name $release_name
elif [ $os = debian ]; then
release_ver=$(tmp="${jar%-*}" && echo "${tmp##*-}" | tr -d v)
archive_name="tachidesk_$release_ver-1_amd64.deb"
orig_dir="tachidesk-$release_ver" # dir uses hyphen "-"
orig_tar_gz="tachidesk_$release_ver.orig.tar.gz" # orig file uses underscore "_"
icon="../server/src/main/resources/icon/faviconlogo.png"

# prepare required resources
mv "$release_name" "$orig_dir"
tar cvzf $orig_tar_gz $orig_dir

cp -r "resources/debian" "$orig_dir/"
cp "resources/tachidesk.desktop" "$orig_dir/debian/tachidesk.desktop"
cp "$icon" "$orig_dir/debian/tachidesk.png"
sed -i "s/\${version}/$release_ver/" "$orig_dir/debian/changelog"

# build deb package
mkdir -p "build"
mv $orig_dir $orig_tar_gz "build/"
cd "build/$orig_dir/debian"
sudo apt install devscripts build-essential dh-exec
debuild -uc -us
cd -

# clean up debuild outouts
mv "build/$archive_name" "./"
mv "build/$orig_dir" $release_name
rm -rf "build"
fi

rm -rf $release_name
Expand Down