1
0
mirror of https://git.freebsd.org/ports.git synced 2026-06-02 11:08:52 +00:00

www/forgejo-lts: Convert to metaport and bump to 15

This commit is contained in:
Dag-Erling Smørgrav
2026-05-02 13:49:39 +00:00
parent aae925f47e
commit b85c66dda4
6 changed files with 4 additions and 296 deletions
+4 -87
View File
@@ -1,97 +1,14 @@
PORTNAME= forgejo
DISTVERSIONPREFIX= v
DISTVERSION= 11.0.13
CATEGORIES= www
MASTER_SITES= https://codeberg.org/forgejo/forgejo/releases/download/${DISTVERSIONFULL}/
PKGNAMESUFFIX= -lts
DISTNAME= forgejo-src-${DISTVERSION}
PATCHFILES= 9762f9ea2041d4eaf38e47415ea0692fa60cf0a7.patch:-p1
PATCH_SITES= https://codeberg.org/forgejo/forgejo/commit/
PORTVERSION= 15
CATEGORIES= www
MAINTAINER= des@FreeBSD.org
COMMENT= Compact self-hosted Git forge
WWW= https://forgejo.org/
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= forgejo${PORTVERSION}>=0:www/forgejo${PORTVERSION}
RUN_DEPENDS= git:devel/git
USES= cpe gmake go:1.25+,no_targets
USE_RC_SUBR= forgejo
PIE_UNSAFE= yes
CONFLICTS_INSTALL= forgejo forgejo7
EXTRACT_AFTER_ARGS= --strip-components 1
DBDIR= /var/db/forgejo
LOGDIR= /var/log/forgejo
SUB_FILES= app.ini.sample pkg-message
SUB_LIST= GITUSER=${USERS} DBDIR=${DBDIR} LOGDIR=${LOGDIR}
PLIST_SUB= DBDIR=${DBDIR} LOGDIR=${LOGDIR}
NO_WRKSUBDIR= yes
USERS= git
GROUPS= git
PORTDATA= *
OPTIONS_DEFINE= BINDATA GIT_LFS PAM SQLITE
OPTIONS_DEFAULT= BINDATA GIT_LFS PAM SQLITE
OPTIONS_SUB= yes
BINDATA_DESC= Build a single monolithic binary, with all assets included
GIT_LFS_DESC= Support for Git Large File Storage (LFS)
PAM_DESC= Enable support for PAM
BINDATA_VARS= GO_TAGS+=bindata
GIT_LFS_RUN_DEPENDS= git-lfs:devel/git-lfs
PAM_VARS= GO_TAGS+=pam
SQLITE_VARS= GO_TAGS+="sqlite sqlite_unlock_notify"
SSP_UNSAFE= true
LDFLAGS= "'-X "forgejo.org/modules/setting.CustomPath=${PREFIX}/etc/forgejo"'" \
"'-X "forgejo.org/modules/setting.StaticRootPath=${DATADIR}"'" \
"'-X "forgejo.org/modules/setting.AppWorkPath=${DBDIR}"'"
MAKE_ARGS= GOFLAGS="-buildvcs=false" \
GOPATH=${WRKDIR} \
TAGS="${GO_TAGS}"
ALL_TARGET= backend
MAKE_JOBS_UNSAFE= yes
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD
DAEMONARGS= -S -l \$${forgejo_facility} -s \$${forgejo_priority} -T \
\$${name}
.else
DAEMONARGS= -f
.endif
SUB_LIST+= DAEMONARGS="${DAEMONARGS}"
# Too lazy to figure out why go install won't work.
do-install:
# Go binary is statically linked and cannot be stripped, so use
# INSTALL_SCRIPT.
${INSTALL_SCRIPT} ${WRKSRC}/gitea \
${STAGEDIR}${PREFIX}/sbin/forgejo
@${MKDIR} ${STAGEDIR}${ETCDIR}/conf
${INSTALL_DATA} ${WRKDIR}/app.ini.sample \
${STAGEDIR}${ETCDIR}/conf/app.ini.sample
${INSTALL_DATA} ${WRKSRC}/custom/conf/app.example.ini \
${STAGEDIR}${ETCDIR}/conf/app.ini.defaults
.if ! ${PORT_OPTIONS:MBINDATA}
${MKDIR} ${STAGEDIR}${DATADIR}
.endif
${MKDIR} ${STAGEDIR}${DBDIR}/data
${MKDIR} ${STAGEDIR}${DBDIR}/forgejo-repositories
${MKDIR} ${STAGEDIR}${LOGDIR}
do-install-BINDATA-off:
cd ${WRKSRC} && \
${COPYTREE_SHARE} "options public templates" ${STAGEDIR}${DATADIR}
USES= metaport
.include <bsd.port.mk>
-5
View File
@@ -1,5 +0,0 @@
TIMESTAMP = 1777479827
SHA256 (forgejo-src-11.0.13.tar.gz) = aa3d0f3c95a73dc031ebc7140b48ea745d74c416632e48870cadfada0fb2b6de
SIZE (forgejo-src-11.0.13.tar.gz) = 54353217
SHA256 (9762f9ea2041d4eaf38e47415ea0692fa60cf0a7.patch) = 2d7452de27f0f88c2fd1a713363e10b1fdc201c12522200202923e7739db6440
SIZE (9762f9ea2041d4eaf38e47415ea0692fa60cf0a7.patch) = 3840
-94
View File
@@ -1,94 +0,0 @@
#
# Sample Configuration for Forgejo using SQLite
#
# For information on the available settings, consult the online
# documentation, or see the accompanying file app.ini.defaults, which
# contains the settings incorporated into the forgejo binary.
#
# This sample configuration runs Forgejo with a local database. Before
# running this configuration, make sure to change the INTERNAL_TOKEN,
# JWT_SECRET, and SECRET_KEY variables. SECRET_KEY is a password of your
# choosing, INTERNAL_TOKEN is a 64-byte random number in BASE64 encoding,
# JWT_SECRET is a 32-byte random number in BASE64 encoding.
#
# You can generate appropriate values using:
# gitea generate secret [INTERNAL_TOKEN|JWT_SECRET|LFS_JWT_SECRET|SECRET_KEY]
# and then copy that output to the appropriate place in this file.
#
# You can let Forgejo add these to the config for you; you need to make
# app.ini writeable by the git user.
#
# There are no pre-configured users; the first user to register becomes an
# admin. In this sample configuration, the HTTP server only listens on
# localhost.
#
# If you'd rather use the web-based installer, remove this conf/app.ini file
# and make %%ETCDIR%%/conf writeable to the git user.
APP_NAME = Forgejo: A self-hosted lightweight software forge
RUN_MODE = prod
RUN_USER = %%GITUSER%%
[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = forgejo
PASSWD =
PATH = %%DBDIR%%/forgejo.db
SSL_MODE = disable
USER = root
[indexer]
ISSUE_INDEXER_PATH = %%DBDIR%%/indexers/issues.bleve
[log]
LEVEL = Info
MODE = file
ROOT_PATH = %%LOGDIR%%
[mailer]
ENABLED = false
[oauth2]
JWT_SECRET = CHANGE_ME
[picture]
AVATAR_UPLOAD_PATH = %%DBDIR%%/data/avatars
DISABLE_GRAVATAR = true
ENABLE_FEDERATED_AVATAR = false
[repository]
ROOT = %%DBDIR%%/forgejo-repositories
# Forgejo's default is 'bash', so if you have bash installed, you can comment
# this out.
SCRIPT_TYPE = sh
[repository.upload]
TEMP_PATH = %%DBDIR%%/data/tmp/uploads
[security]
INSTALL_LOCK = true
INTERNAL_TOKEN = CHANGE_ME
SECRET_KEY = CHANGE_ME
[session]
PROVIDER = file
PROVIDER_CONFIG = %%DBDIR%%/data/sessions
[server]
APP_DATA_PATH = %%DBDIR%%/data
DISABLE_SSH = false
DOMAIN = localhost
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
OFFLINE_MODE = false
ROOT_URL = http://localhost:3000/
SSH_DOMAIN = %(DOMAIN)s
SSH_PORT = 22
[service]
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
ENABLE_NOTIFY_MAIL = false
REGISTER_EMAIL_CONFIRM = false
REQUIRE_SIGNIN_VIEW = false
-67
View File
@@ -1,67 +0,0 @@
#!/bin/sh
# PROVIDE: forgejo
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable forgejo:
#
#forgejo_enable="YES"
. /etc/rc.subr
name="forgejo"
rcvar="forgejo_enable"
load_rc_config $name
: ${forgejo_user:="%%GITUSER%%"}
: ${forgejo_enable:="NO"}
: ${forgejo_configcheck_enable:="YES"}
: ${forgejo_facility:="daemon"}
: ${forgejo_priority:="info"}
: ${forgejo_custom:="%%PREFIX%%/etc/${name}"}
command="%%PREFIX%%/sbin/${name} web"
procname="%%PREFIX%%/sbin/${name}"
githome="$(eval echo ~${forgejo_user})"
pidfile="/var/run/${name}.pid"
start_cmd="${name}_start"
start_precmd="${name}_prestart"
forgejo_start() {
for d in %%DBDIR%% %%LOGDIR%%; do
if [ ! -e "$d" ]; then
mkdir "$d"
chown ${forgejo_user} "$d"
fi
done
/usr/sbin/daemon %%DAEMONARGS%% \
-u ${forgejo_user} -p ${pidfile} \
/usr/bin/env -i \
"FORGEJO_CUSTOM=${forgejo_custom}" \
"HOME=${githome}" \
"PATH=%%PREFIX%%/bin:${PATH}" \
"USER=${forgejo_user}" \
$command
}
forgejo_prestart() {
if checkyesno forgejo_configcheck_enable; then
if ! errstr=$(/usr/bin/env -i \
"FORGEJO_CUSTOM=${forgejo_custom}" \
"HOME=${githome}" \
"PATH=%%PREFIX%%/bin:${PATH}" \
"USER=${forgejo_user}" \
/usr/bin/su -m ${forgejo_user} -c \
"%%PREFIX%%/sbin/${name} doctor check" 2>&1); then
rc=$?
echo "$errstr" >&2
return $rc
fi
fi
}
run_rc_command "$1"
-35
View File
@@ -1,35 +0,0 @@
[
{ type: install
message: <<EOM
Before starting forgejo for the first time, you must set a number of
secrets in the configuration file. For your convenience, a sample file
has been copied to %%PREFIX%%/etc/forgejo/conf/app.ini.
You need to replace every occurence of CHANGE_ME in the file with
sensible values. Please refer to the official documentation at
https://forgejo.org for details.
You will also likely need to create directories for persistent storage.
Run
su -m git -c 'forgejo doctor check'
to check if all prerequisites have been met.
EOM
}
{ type: upgrade
maximum_version: "1.21"
message: <<EOM
Since forgejo version 7, the startup script will run forgejo doctor check
to verify that forgejo can be started successfully. If you are sure that
forgejo will start even if doctor has identified an issue, you can disable
the check by setting forgejo_configcheck_enabled=NO in rc.conf.
EOM
}
{ type: upgrade
maximum_version: "8.0.2"
message: <<EOM
Breaking changes: upgrading from Forgejo 8 changes the semantics of some
authentication, breaking previously working API calls. Please see the
release notes for details: https://codeberg.org/forgejo/forgejo/milestone/7235
EOM
}
]
-8
View File
@@ -1,8 +0,0 @@
@sample %%ETCDIR%%/conf/app.ini.sample
%%ETCDIR%%/conf/app.ini.defaults
sbin/forgejo
%%NO_BINDATA%%@dir %%DATADIR%%
@dir(git,git,755) %%DBDIR%%
@dir(git,git,755) %%DBDIR%%/data
@dir(git,git,755) %%DBDIR%%/forgejo-repositories
@dir(git,git,755) %%LOGDIR%%