13 Commits

Author SHA1 Message Date
b9c55b9786 fix: bash_profile path
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 17:57:55 +02:00
5fdb221abc fix: export gitea home dir variable
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 17:44:07 +02:00
46df78d59e fix: add work dir variable
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 17:17:20 +02:00
0188b0cb2f fix: unxz does already remove file automatically
All checks were successful
Continuous Delivery / build_n_upload (push) Successful in 22s
2026-04-06 16:45:33 +02:00
c2b680c6df fix: typo in token generate command
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 11:01:33 +02:00
545898493c fix: add logos to files
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 10:47:25 +02:00
1f91ec0de9 fix: typo in wget command
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 10:43:24 +02:00
8805f6cddd fix: typo in wget
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 10:24:35 +02:00
9f31148f46 fix: remove cd command
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 10:08:19 +02:00
4d85b2a212 fix: change directory to tmppath
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 09:59:52 +02:00
3048ea2716 fix: use postgres drop commands
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 09:24:18 +02:00
d04bdce2f7 fix: delete users only if exist
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 09:05:27 +02:00
b91099579e fix: syntax error in for
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-04-06 08:45:21 +02:00

View File

@@ -22,6 +22,9 @@ Install the Git server called Gitea.
%make_install %make_install
%post %post
# Display commands and exit on error
set -xe
# Create gitea user # Create gitea user
if ! id gitea >/dev/null 2>&1; then if ! id gitea >/dev/null 2>&1; then
useradd --base-dir %{_sharedstatedir} --create-home --shell $SHELL --system gitea useradd --base-dir %{_sharedstatedir} --create-home --shell $SHELL --system gitea
@@ -29,35 +32,40 @@ fi
runuser --user=gitea -- mkdir --parents %{_sharedstatedir}/gitea/{custom,data,log} %{_sharedstatedir}/gitea/custom/conf runuser --user=gitea -- mkdir --parents %{_sharedstatedir}/gitea/{custom,data,log} %{_sharedstatedir}/gitea/custom/conf
runuser --user=gitea -- ln --symbolic --force %{_sysconfdir}/gitea/app.ini %{_sharedstatedir}/gitea/custom/conf/app.ini runuser --user=gitea -- ln --symbolic --force %{_sysconfdir}/gitea/app.ini %{_sharedstatedir}/gitea/custom/conf/app.ini
usermod --groups postgres,valkey --append gitea usermod --groups postgres,valkey --append gitea
printf 'export GITEA_WORK_DIR=%{_sharedstatedir}/gitea\n' >> %{_sharedstatedir}/gitea/.bash_profile
# Download and install gitea binary # Download and install gitea binary
export ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') export ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
export GITEA_BINARY=gitea-1.25.5-linux-$ARCH export GITEA_BINARY=gitea-1.25.5-linux-$ARCH
wget --directory-prefix %{_tmppath} https://dl.gitea.com/gitea/1.25.5/$GITEA_BINARY wget --output-document $GITEA_BINARY https://dl.gitea.com/gitea/1.25.5/$GITEA_BINARY
wget --directory-prefix %{_tmppath} https://dl.gitea.com/gitea/1.25.5/$GITEA_BINARY.asc wget --output-document $GITEA_BINARY.asc https://dl.gitea.com/gitea/1.25.5/$GITEA_BINARY.asc
gpg --keyserver hkps://keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2 gpg --keyserver hkps://keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify %{_tmppath}/$GITEA_BINARY.asc %{_tmppath}/$GITEA_BINARY gpg --verify $GITEA_BINARY.asc $GITEA_BINARY
rm %{_tmppath}/$GITEA_BINARY.asc rm $GITEA_BINARY.asc
chmod 755 %{_tmppath}/$GITEA_BINARY chmod 755 $GITEA_BINARY
mv %{_tmppath}/$GITEA_BINARY.asc %{_sbindir}/gitea mv $GITEA_BINARY %{_sbindir}/gitea
# Replace secrets in app.ini # Replace secrets in app.ini
export INTERNAL_TOKEN=$(runuser --user=gitea -- gitea generate secret INTERNAL_TOKEN) export INTERNAL_TOKEN=$(runuser --user=gitea -- gitea generate secret INTERNAL_TOKEN)
export JWT_SECRET=$(runuser --user=gitea -- gitea generate secret JWT_SECRET) export JWT_SECRET=$(runuser --user=gitea -- gitea generate secret JWT_SECRET)
export SECRET_KEY=$(runuser --user=gitea -- gitea generate secret SECRET_TOKEN) export SECRET_KEY=$(runuser --user=gitea -- gitea generate secret SECRET_KEY)
envsubst < %{_sysconfdir}/gitea/app.ini > %{_sysconfdir}/gitea/.app.ini.new envsubst < %{_sysconfdir}/gitea/app.ini > %{_sysconfdir}/gitea/.app.ini.new
mv %{_sysconfdir}/gitea/.app.ini.new %{_sysconfdir}/gitea/app.ini mv %{_sysconfdir}/gitea/.app.ini.new %{_sysconfdir}/gitea/app.ini
chmod 640 %{_sysconfdir}/gitea/app.ini
chown root:gitea %{_sysconfdir}/gitea/app.ini chown root:gitea %{_sysconfdir}/gitea/app.ini
# Add lugit theme # Add lugit theme
wget --directory-prefix %{_tmppath} https://github.com/lucas-labs/gitea-lugit-theme/releases/download/v1.0.1/gitea-lugit-theme.tar.gz export GITEA_LUGIT_THEME=gitea-lugit-theme
runuser --user=gitea -- tar --extract --gzip --overwrite --directory=%{_sharedstatedir}/gitea/custom --file %{_tmppath}/gitea-lugit-theme.tar.gz wget --output-document %{_tmppath}/$GITEA_LUGIT_THEME.tar.gz https://github.com/lucas-labs/gitea-lugit-theme/releases/download/v1.0.1/$GITEA_LUGIT_THEME.tar.gz
runuser --user=gitea -- mv %{_tmppath}/gitea_images/* %{_sharedstatedir}/gitea/custom/public/assets/img runuser --user=gitea -- tar --extract --gzip --overwrite --directory=%{_sharedstatedir}/gitea/custom --file %{_tmppath}/$GITEA_LUGIT_THEME.tar.gz
rm --recursive %{_tmppath}/gitea_images rm %{_tmppath}/$GITEA_LUGIT_THEME.tar.gz
runuser --user=gitea -- cp %{_tmppath}/gitea_images/* %{_sharedstatedir}/gitea/custom/public/assets/img
# Create postgres user and db # Create postgres user and db
if ! runuser --user=postgres -- psql --quiet --tuples-only --command='\du' | grep --quiet gitea; then if ! runuser --user=postgres -- psql --quiet --tuples-only --command='\du' | grep --quiet gitea; then
runuser --user=postgres -- createuser gitea runuser --user=postgres -- createuser gitea
fi
if ! runuser --user=postgres -- psql --quiet --tuples-only --command='\l' | grep --quiet gitea; then
runuser --user=postgres -- createdb --owner=gitea gitea runuser --user=postgres -- createdb --owner=gitea gitea
fi fi
@@ -69,16 +77,16 @@ fi
# Download and install act_runner binary # Download and install act_runner binary
export ACTRUNNER_BINARY=act_runner-0.3.0-linux-$ARCH export ACTRUNNER_BINARY=act_runner-0.3.0-linux-$ARCH
wget --directory-prefix %{_tmppath} https://gitea.com/gitea/act_runner/releases/download/v0.3.0/$ACTRUNNER_BINARY.xz wget --output-document $ACTRUNNER_BINARY.xz https://gitea.com/gitea/act_runner/releases/download/v0.3.0/$ACTRUNNER_BINARY.xz
wget --directory-prefix %{_tmppath} https://gitea.com/gitea/act_runner/releases/download/v0.3.0/$ACTRUNNER_BINARY.xz.sha256 wget --output-document $ACTRUNNER_BINARY.xz.sha256 https://gitea.com/gitea/act_runner/releases/download/v0.3.0/$ACTRUNNER_BINARY.xz.sha256
cat %{_tmppath}/$ACTRUNNER_BINARY.xz.sha256 | sha256sum --check --status cat $ACTRUNNER_BINARY.xz.sha256 | sha256sum --check --status
unxz %{_tmppath}/$ACTRUNNER_BINARY.xz rm $ACTRUNNER_BINARY.xz.sha256
unxz $ACTRUNNER_BINARY.xz
chmod 755 $ACTRUNNER_BINARY chmod 755 $ACTRUNNER_BINARY
mv $ACTRUNNER_BINARY %{_sbindir}/act_runner mv $ACTRUNNER_BINARY %{_sbindir}/act_runner
rm %{_tmppath}/$ACTRUNNER_BINARY.*
# Create 4 actrunner users # Create 4 actrunner users
export ACTRUNNER_TOKEN=$(runuser --user=gitea -- gitea actions generate-token-runner --scope samuel) export ACTRUNNER_TOKEN=$(runuser --user=gitea -- gitea actions generate-runner-token)
for i in $(seq 1 4); do for i in $(seq 1 4); do
if ! id actrunner$i >/dev/null 2>&1; then if ! id actrunner$i >/dev/null 2>&1; then
useradd --base-dir %{_sharedstatedir} --create-home --shell $SHELL --system actrunner$i useradd --base-dir %{_sharedstatedir} --create-home --shell $SHELL --system actrunner$i
@@ -95,13 +103,30 @@ systemctl reenable gitea.service
systemctl restart gitea.service nginx.service systemctl restart gitea.service nginx.service
%postun %postun
# If removing, delete users and db # Display commands and exit on error
set -xe
# If uninstalling, then delete users and db
if [ $1 == 0 ]; then if [ $1 == 0 ]; then
userdel --force --remove gitea # Remove gitea user if existing
runuser --user=postgres -- psql --command='DROP DATABASE gitea; DROP USER gitea;' if id gitea >/dev/null 2>&1; then
for i in $(seq 1 4); then userdel --force --remove gitea
userdel --force --remove actrunner$i fi
fi
# Remove gitea database if existing
if runuser --user=postgres -- psql --quiet --tuples-only --command='\l' | grep --quiet gitea; then
runuser --user=postgres -- dropdb gitea
fi
if runuser --user=postgres -- psql --quiet --tuples-only --command='\du' | grep --quiet gitea; then
runuser --user=postgres -- dropuser gitea
fi
# Remove actrunner users if existing
for i in $(seq 1 4); do
if id actrunner$i >/dev/null 2>&1; then
userdel --force --remove actrunner$i
fi
done
fi fi
%files %files
@@ -115,7 +140,9 @@ fi
%ghost %attr(755, root, root) %{_sbindir}/gitea %ghost %attr(755, root, root) %{_sbindir}/gitea
%ghost %attr(755, root, root) %{_sbindir}/act_runner %ghost %attr(755, root, root) %{_sbindir}/act_runner
%exclude %{_tmppath}/gitea_images/*
%dir %attr(755, root, root) %{_tmppath}/gitea_images
%attr(644, root, root) %{_tmppath}/gitea_images/{favicon,logo}.{png,svg}
%changelog %changelog
%autochangelog %autochangelog