www/forgejo: New port
This commit is contained in:
parent
8f6ae14563
commit
00770786d8
8 changed files with 251 additions and 0 deletions
|
|
@ -186,6 +186,7 @@
|
|||
SUBDIR += flexget
|
||||
SUBDIR += flickcurl
|
||||
SUBDIR += foreign-cdm
|
||||
SUBDIR += forgejo
|
||||
SUBDIR += formication
|
||||
SUBDIR += foswiki
|
||||
SUBDIR += free-sa-devel
|
||||
|
|
|
|||
82
www/forgejo/Makefile
Normal file
82
www/forgejo/Makefile
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
PORTNAME= forgejo
|
||||
DISTVERSIONPREFIX= v
|
||||
DISTVERSION= 1.21.7-0
|
||||
CATEGORIES= www
|
||||
MASTER_SITES= https://codeberg.org/forgejo/forgejo/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/
|
||||
DISTNAME= forgejo-src-${DISTVERSION}
|
||||
|
||||
MAINTAINER= stb@lassitu.de
|
||||
COMMENT= Compact self-hosted Git service
|
||||
WWW= https://forgejo.org/
|
||||
|
||||
LICENSE= MIT
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||
|
||||
RUN_DEPENDS= git:devel/git
|
||||
|
||||
USES= cpe gmake go:1.21,no_targets
|
||||
USE_RC_SUBR= forgejo
|
||||
|
||||
EXTRACT_AFTER_ARGS= --strip-components 1
|
||||
SUB_FILES+= app.ini.sample
|
||||
SUB_LIST+= GITUSER=${USERS}
|
||||
|
||||
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"
|
||||
|
||||
.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}"
|
||||
|
||||
SSP_UNSAFE= true
|
||||
# Default LDFLAGS are incompatible with build
|
||||
MAKE_ENV= LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS}"
|
||||
MAKE_ARGS= GOPATH=${WRKDIR} \
|
||||
TAGS="${GO_TAGS}"
|
||||
ALL_TARGET= backend
|
||||
MAKE_JOBS_UNSAFE= yes
|
||||
|
||||
post-patch:
|
||||
${ECHO_CMD} ${DISTVERSION} >${WRKSRC}/VERSION
|
||||
|
||||
# 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
|
||||
|
||||
do-install-BINDATA-off:
|
||||
cd ${WRKSRC} && \
|
||||
${COPYTREE_SHARE} "options public templates" ${STAGEDIR}${DATADIR}
|
||||
|
||||
.include <bsd.port.mk>
|
||||
3
www/forgejo/distinfo
Normal file
3
www/forgejo/distinfo
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
TIMESTAMP = 1709747919
|
||||
SHA256 (forgejo-src-1.21.7-0.tar.gz) = 9c0148995288839f685d887f7d1c5f4c6f89511d60d6262ae500e2991803eb5c
|
||||
SIZE (forgejo-src-1.21.7-0.tar.gz) = 58802779
|
||||
93
www/forgejo/files/app.ini.sample.in
Normal file
93
www/forgejo/files/app.ini.sample.in
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
#
|
||||
# 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 the token using for example:
|
||||
# openssl rand -base64 64
|
||||
#
|
||||
# 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 %%PREFIX%%/etc/forgejo/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 = /var/db/forgejo/forgejo.db
|
||||
SSL_MODE = disable
|
||||
USER = root
|
||||
|
||||
[indexer]
|
||||
ISSUE_INDEXER_PATH = /var/db/forgejo/indexers/issues.bleve
|
||||
|
||||
[log]
|
||||
LEVEL = Info
|
||||
MODE = file
|
||||
ROOT_PATH = /var/log/forgejo
|
||||
|
||||
[mailer]
|
||||
ENABLED = false
|
||||
|
||||
[oauth2]
|
||||
JWT_SECRET = CHANGE_ME
|
||||
|
||||
[picture]
|
||||
AVATAR_UPLOAD_PATH = /var/db/forgejo/data/avatars
|
||||
DISABLE_GRAVATAR = true
|
||||
ENABLE_FEDERATED_AVATAR = false
|
||||
|
||||
[repository]
|
||||
ROOT = /var/db/forgejo/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 = /var/db/forgejo/data/tmp/uploads
|
||||
|
||||
[security]
|
||||
INSTALL_LOCK = true
|
||||
INTERNAL_TOKEN = CHANGE_ME
|
||||
SECRET_KEY = CHANGE_ME
|
||||
|
||||
[session]
|
||||
PROVIDER = file
|
||||
PROVIDER_CONFIG = /var/db/forgejo/data/sessions
|
||||
|
||||
[server]
|
||||
APP_DATA_PATH = /var/db/forgejo/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
|
||||
51
www/forgejo/files/forgejo.in
Normal file
51
www/forgejo/files/forgejo.in
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#!/bin/sh
|
||||
|
||||
# PROVIDE: forgejo
|
||||
# REQUIRE: NETWORKING SYSLOG
|
||||
# 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_facility:="daemon"}
|
||||
: ${forgejo_priority:="debug"}
|
||||
: ${forgejo_shared:="%%PREFIX%%/share/${name}"}
|
||||
: ${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"
|
||||
|
||||
forgejo_start() {
|
||||
for d in /var/db/forgejo /var/log/forgejo; 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 \
|
||||
"GITEA_WORK_DIR=${forgejo_shared}" \
|
||||
"GITEA_CUSTOM=${forgejo_custom}" \
|
||||
"HOME=${githome}" \
|
||||
"PATH=%%PREFIX%%/bin:${PATH}" \
|
||||
"USER=${forgejo_user}" \
|
||||
$command
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
||||
5
www/forgejo/pkg-descr
Normal file
5
www/forgejo/pkg-descr
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
A self-hosted Git service.
|
||||
|
||||
Forgejo is a community managed soft-fork of Gitea, which is a fork of Gogs,
|
||||
lightweight code hosting solution written in Go and published under the MIT
|
||||
license.
|
||||
13
www/forgejo/pkg-message
Normal file
13
www/forgejo/pkg-message
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[
|
||||
{ type: install
|
||||
message: <<EOM
|
||||
Before starting forgejo you must create the main configuration file.
|
||||
|
||||
cp /usr/local/etc/forgejo/conf/app.ini.sample /usr/local/etc/forgejo/conf/app.ini
|
||||
${EDITOR} /usr/local/etc/forgejo/conf/app.ini
|
||||
|
||||
You need to replace every occurence of CHANGE_ME in the file with sensitive
|
||||
values. Please refer to the official documentation for details.
|
||||
EOM
|
||||
}
|
||||
]
|
||||
3
www/forgejo/pkg-plist
Normal file
3
www/forgejo/pkg-plist
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
@sample %%ETCDIR%%/conf/app.ini.sample
|
||||
%%ETCDIR%%/conf/app.ini.defaults
|
||||
sbin/forgejo
|
||||
Loading…
Add table
Add a link
Reference in a new issue