diff --git a/.ci-make.sh b/.ci-make.sh index 5e537e4..a1dfce0 100755 --- a/.ci-make.sh +++ b/.ci-make.sh @@ -8,6 +8,10 @@ CI_VERIFY_RETRY_COUNT=30 # How many times to retry before giving up if the pipel case "$1" in "submodule-build") cd "$2" + LDFLAGS="$LDFLAGS -X \"code.gitea.io/gitea/modules/setting.StaticRootPath=/usr/share/forgejo\"" + LDFLAGS="$LDFLAGS -X \"code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/forgejo\"" + LDFLAGS="$LDFLAGS -X \"code.gitea.io/gitea/modules/setting.CustomConf=/etc/forgejo/app.ini\"" + export LDFLAGS make build EXIT_STATUS=$? mv gitea ../"$3" @@ -145,11 +149,14 @@ case "$1" in mkdir deb/forgejo-sqlite-bin mv forgejo-bin deb/forgejo-bin/forgejo mv forgejo-sqlite-bin deb/forgejo-sqlite-bin/forgejo + cp -r forgejo/public deb/public + cp -r forgejo/templates deb/templates + cp -r forgejo/options deb/options if [ -x forgejo-bin-dl ] ; then mkdir deb/forgejo-bin-dl mv forgejo-bin-dl deb/forgejo-bin-dl/forgejo mv deb/.forgejo-bin.install deb/debian/forgejo-bin.install - ln -s forgejo.preinst deb/debian/forgejo-bin.preinst + ln -s forgejo-common.preinst deb/debian/forgejo-bin.preinst ln -s forgejo.postinst deb/debian/forgejo-bin.postinst ln -s forgejo.prerm deb/debian/forgejo-bin.prerm echo >> deb/debian/control @@ -192,13 +199,27 @@ case "$1" in "install-run-test") export DEBIAN_FRONTEND=noninteractive apt update - apt install -y ./"$2" - [ -f "/etc/default/forgejo" ] && . /etc/default/forgejo - [ -z "$FORGEJO_HOME" ] && FORGEJO_HOME=/var/lib/forgejo - [ -z "$FORGEJO_USER" ] && FORGEJO_USER=forgejo - sudo -u $FORGEJO_USER USER=$FORGEJO_USER \ - HOME=$FORGEJO_HOME FORGEJO_WORK_DIR=$FORGEJO_HOME \ - forgejo web -q --config /etc/forgejo/app.ini & + if [ "$2" = "${2#"./forgejo-bin_"}" ] ; then + APT_FORGEJO_COMMON_RESOLVE="$(ls -1 ./forgejo-common_*_all.deb)" + if [ -f "$APT_FORGEJO_COMMON_RESOLVE" ] ; then + APT_FORGEJO_COMMON="./$APT_FORGEJO_COMMON_RESOLVE" + else + echo "ERR! Unable to find the necessary forgejo-common package!" + exit 96 + fi + fi + apt install -y $APT_FORGEJO_COMMON ./"$2" + if [ -f "/etc/default/forgejo" ] || [ "$2" != "${2#"./forgejo-bin_"}" ] ; then + [ -f "/etc/default/forgejo" ] && . /etc/default/forgejo + [ -z "$FORGEJO_HOME" ] && FORGEJO_HOME=/var/lib/forgejo + [ -z "$FORGEJO_USER" ] && FORGEJO_USER=forgejo + sudo -u $FORGEJO_USER USER=$FORGEJO_USER \ + HOME=$FORGEJO_HOME FORGEJO_WORK_DIR=$FORGEJO_HOME \ + forgejo web -q --config /etc/forgejo/app.ini & + else + echo "No env setup! Run testing defaults using hardcoded vars..." + sudo -u forgejo USER=forgejo forgejo web -q & + fi sleep 10 curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo" exit $? diff --git a/.forgejo/workflows/forgejo-deb.yml b/.forgejo/workflows/forgejo-deb.yml index 7567e04..1031a38 100644 --- a/.forgejo/workflows/forgejo-deb.yml +++ b/.forgejo/workflows/forgejo-deb.yml @@ -59,13 +59,11 @@ jobs: - name: Build Forgejo for amd64 run: ./.ci-make.sh submodule-build forgejo forgejo-bin - env: - TAGS: bindata - name: Build Forgejo (with SQLite) for amd64 run: ./.ci-make.sh submodule-build forgejo forgejo-sqlite-bin env: - TAGS: bindata sqlite sqlite_unlock_notify + TAGS: sqlite sqlite_unlock_notify - run: ./.ci-make.sh package-prep - run: ./.ci-make.sh package-build-deps diff --git a/deb/.forgejo-bin.control b/deb/.forgejo-bin.control index 5c093a2..ead2966 100644 --- a/deb/.forgejo-bin.control +++ b/deb/.forgejo-bin.control @@ -1,8 +1,8 @@ Package: forgejo-bin Architecture: amd64 Priority: optional -Provides: forgejo,gitea +Provides: forgejo, gitea Depends: adduser (>= 3.11), git -Conflicts: forgejo,forgejo-sqlite,forgejo-common +Conflicts: forgejo, forgejo-sqlite, forgejo-common Description: Forgejo: Beyond Coding. We Forge. (binary) The official Forgejo release binary in a Debian package diff --git a/deb/debian/NEWS b/deb/debian/NEWS index ef3b3ff..e24bf94 100644 --- a/deb/debian/NEWS +++ b/deb/debian/NEWS @@ -1,4 +1,4 @@ -forgejo (7.0.1-1) unstable; urgency=medium +forgejo (7.0.1-2) unstable; urgency=medium WARNING: Forgejo will be upgraded to v7.0.1 LTS diff --git a/deb/debian/changelog b/deb/debian/changelog index f383adc..da71ac3 100644 --- a/deb/debian/changelog +++ b/deb/debian/changelog @@ -2,13 +2,15 @@ forgejo (7.0.5-1) unstable; urgency=medium * Forgejo version 7.0.5 * See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#7-0-5 + * Split `forgejo-common` package for extra data - -- mkobel Fri, 05 July 2024 22:03:00 +0200 + -- crystal Sun, 07 July 2024 17:22:00 +0000 forgejo (7.0.1-1) unstable; urgency=medium * Forgejo version 7.0.1 * See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#7-0-1 + * Forgejo Actions based build process -- crystal Sat, 27 Apr 2024 15:35:00 +0000 diff --git a/deb/debian/control b/deb/debian/control index 323d688..ae16460 100644 --- a/deb/debian/control +++ b/deb/debian/control @@ -8,16 +8,24 @@ Package: forgejo Architecture: amd64 Priority: optional Provides: gitea -Depends: adduser (>= 3.11),git -Conflicts: forgejo-sqlite,forgejo-bin +Depends: forgejo-common (= ${source:Version}), adduser (>= 3.11), git +Conflicts: forgejo-sqlite, forgejo-bin Description: Forgejo: Beyond Coding. We Forge. Forgejo with bindata ONLY - Use this package for MySQL or PostgreSQL setup Package: forgejo-sqlite Architecture: amd64 Priority: optional -Provides: forgejo,gitea -Depends: adduser (>= 3.11),git -Conflicts: forgejo,forgejo-bin +Provides: forgejo, gitea +Depends: forgejo-common (= ${source:Version}), adduser (>= 3.11), git +Conflicts: forgejo, forgejo-bin Description: Forgejo: Beyond Coding. We Forge. (SQLite) Forgejo with bindata and SQLite support - Use this package to get started immediately + +Package: forgejo-common +Architecture: all +Priority: optional +Depends: forgejo | forgejo-sqlite (= ${source:Version}) +Conflicts: forgejo-bin +Description: Common files for Forgejo + Common data used for all Forgejo packages and architectures. diff --git a/deb/debian/forgejo-common.install b/deb/debian/forgejo-common.install new file mode 100644 index 0000000..5904930 --- /dev/null +++ b/deb/debian/forgejo-common.install @@ -0,0 +1,5 @@ +public/ /usr/share/forgejo +templates/ /usr/share/forgejo +options/ /usr/share/forgejo +forgejo.service /usr/lib/systemd/system +app.ini /etc/forgejo diff --git a/deb/debian/forgejo.preinst b/deb/debian/forgejo-common.preinst similarity index 100% rename from deb/debian/forgejo.preinst rename to deb/debian/forgejo-common.preinst diff --git a/deb/debian/forgejo-sqlite.install b/deb/debian/forgejo-sqlite.install index 7a55675..106c3c8 100644 --- a/deb/debian/forgejo-sqlite.install +++ b/deb/debian/forgejo-sqlite.install @@ -1,3 +1 @@ forgejo-sqlite-bin/forgejo /usr/bin -forgejo.service /usr/lib/systemd/system -app.ini /etc/forgejo diff --git a/deb/debian/forgejo-sqlite.preinst b/deb/debian/forgejo-sqlite.preinst deleted file mode 120000 index c9dce9a..0000000 --- a/deb/debian/forgejo-sqlite.preinst +++ /dev/null @@ -1 +0,0 @@ -forgejo.preinst \ No newline at end of file diff --git a/deb/debian/forgejo.install b/deb/debian/forgejo.install index 6440cb3..db18dc4 100644 --- a/deb/debian/forgejo.install +++ b/deb/debian/forgejo.install @@ -1,3 +1 @@ forgejo-bin/forgejo /usr/bin -forgejo.service /usr/lib/systemd/system -app.ini /etc/forgejo