diff options
-rw-r--r-- | .SRCINFO | 44 | ||||
-rw-r--r-- | .gitignore | 18 | ||||
-rw-r--r-- | PKGBUILD | 170 | ||||
-rw-r--r-- | README.md | 26 | ||||
-rw-r--r-- | app.ini.patch | 36 | ||||
-rw-r--r-- | app_new.ini | 373 | ||||
-rw-r--r-- | app_old.ini | 373 | ||||
-rw-r--r-- | gogs.install | 87 | ||||
-rw-r--r-- | gogs.service | 16 | ||||
-rw-r--r-- | gogs.service.patch | 14 | ||||
-rw-r--r-- | gogs.tmpfiles | 2 | ||||
-rw-r--r-- | gogs_new.service | 26 | ||||
-rw-r--r-- | gogs_old.service | 26 |
13 files changed, 193 insertions, 1018 deletions
@@ -1,10 +1,9 @@ # Generated by mksrcinfo v8 -# Thu Jun 2 18:02:58 UTC 2016 -pkgbase = gogs-git-dev - pkgdesc = Gogs(Go Git Service) is a Self Hosted Git Service in the Go Programming Language. This is the current git version from branch develop. - pkgver = 3889.e9ae926 - pkgrel = 8 - epoch = 1 +# Fri Feb 17 22:02:06 UTC 2017 +pkgbase = gogs-dev-git + pkgdesc = Self Hosted Git Service in the Go Programming Language. This is the current git version from branch develop. + pkgver = 0.9.154.0217+3+81e74858 + pkgrel = 1 url = http://gogs.io/ install = gogs.install arch = i686 @@ -12,31 +11,30 @@ pkgbase = gogs-git-dev arch = armv6h arch = armv7h license = MIT - makedepends = go>=1.3 - makedepends = git>=1.7.1 - makedepends = patch - makedepends = glide>=0.10 - depends = git>=1.7.1 - optdepends = sqlite: SQLite support + makedepends = go + makedepends = git + makedepends = nodejs-less + depends = git + depends = sqlite + depends = bash optdepends = mariadb: MariaDB support optdepends = postgresql: PostgreSQL support optdepends = redis: Redis support optdepends = memcached: MemCached support optdepends = openssh: GIT over SSH support - optdepends = tidb-git: TiDB support provides = gogs - conflicts = gogs-bin conflicts = gogs - conflicts = gogs-git + options = !buildflags options = !strip - options = !emptydirs - backup = srv/gogs/conf/app.ini - source = gogs.service.patch - source = app.ini.patch - source = gogs::git+https://github.com/gogits/gogs.git#branch=develop - sha512sums = db36fd44c29de387b066e52a71a61214aa876a27574eb054ec9517a175b5a47db9a7de01be2dd635023a11d5e1224772a66accc4b63b6936f7c58e6314555a66 - sha512sums = 43c8971b0b4e8ea8d5aa0ed15610e9737605dc46a626d3d578bb1c97c9f90912966f59b452e9f4ea7974e4e3beaa5dd40bc597b03319afed3358432ab6e59c7d + backup = etc/gogs/app.ini + source = git+https://github.com/gogits/gogs.git#branch=develop + source = git+https://github.com/jteeuwen/go-bindata.git + source = gogs.service + source = gogs.tmpfiles sha512sums = SKIP + sha512sums = SKIP + sha512sums = 9d97d63fb74f9dc824875755e165f6fd11f2529b73b09020f62936a4d3f494102c018444429a20286dc287ad5d301e4e7f4000312ab82e382cd4635ebb0007cf + sha512sums = 658935dc129d41b4bfc205ea8e9c225122862431f8b96932942ec345bc23cc7b55644247a8844c1f66bfd16ee35fc9da766f62f07603cbe6d573102edb4222f8 -pkgname = gogs-git-dev +pkgname = gogs-dev-git diff --git a/.gitignore b/.gitignore index b0b42a850abe..6b2f8a43fcf0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,5 @@ -* -!.gitignore -!app_ini.patch -!app_old.ini -!gogs.changelog -!gogs.install -!gogs.service.patch -!gogs_new.service -!gogs_old.service -!helper.sh -!PKGBUILD -!README.md -!.SRCINFO +pkg/ +src/ +gogs/ +go-bindata/ +*.pkg.tar.* @@ -1,103 +1,103 @@ # Contributor: Thomas Laroche <tho.laroche@gmail.com> -# Maintainer: Thomas Fanninger <thomas@fanninger.at> +# Contributor: Thomas Fanninger <thomas@fanninger.at> +# Contributor surefire@cryptomile.net +# Maintainer: Edvinas Valatka <edacval@gmail.com> -pkgname=gogs-git-dev -_pkgname=gogs _branch=develop -pkgver=3889.e9ae926 -pkgrel=8 -epoch=1 -pkgdesc="Gogs(Go Git Service) is a Self Hosted Git Service in the Go Programming Language. This is the current git version from branch ${_branch}." +_pkgname=gogs +_team=github.com/gogits +_gogsdir="src/${_team}/${_pkgname}" +pkgname=${_pkgname}-dev-git +pkgver=0.9.154.0217+3+81e74858 +pkgrel=1 +pkgdesc="Self Hosted Git Service in the Go Programming Language. This is the current git version from branch ${_branch}." arch=('i686' 'x86_64' 'armv6h' 'armv7h') -url="http://gogs.io/" +url="http://${_pkgname}.io/" license=('MIT') -provides=('gogs') -depends=('git>=1.7.1') -optdepends=('sqlite: SQLite support' - 'mariadb: MariaDB support' - 'postgresql: PostgreSQL support' - 'redis: Redis support' - 'memcached: MemCached support' - 'openssh: GIT over SSH support' - 'tidb-git: TiDB support') -makedepends=('go>=1.3' 'git>=1.7.1' 'patch' 'glide>=0.10') -conflicts=('gogs-bin' 'gogs' 'gogs-git') -options=('!strip' '!emptydirs') -backup=('srv/gogs/conf/app.ini') - -install=gogs.install - -_gourl=github.com/gogits/$_pkgname -source=('gogs.service.patch' - 'app.ini.patch' - "$_pkgname::git+https://${_gourl}.git#branch=${_branch}") - -sha512sums=(db36fd44c29de387b066e52a71a61214aa876a27574eb054ec9517a175b5a47db9a7de01be2dd635023a11d5e1224772a66accc4b63b6936f7c58e6314555a66 - 43c8971b0b4e8ea8d5aa0ed15610e9737605dc46a626d3d578bb1c97c9f90912966f59b452e9f4ea7974e4e3beaa5dd40bc597b03319afed3358432ab6e59c7d - 'SKIP') - -_goroot="/usr/lib/go" - -pkgver(){ - cd "$srcdir/../$_pkgname" - echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD) +depends=('git' 'sqlite' 'bash') +conflicts=("${_pkgname}") +provides=("${_pkgname}") +options=('!buildflags' '!strip') +optdepends=( +"mariadb: MariaDB support" +"postgresql: PostgreSQL support" +"redis: Redis support" +"memcached: MemCached support" +"openssh: GIT over SSH support" +) +makedepends=('go' 'git' 'nodejs-less') +backup=("etc/${_pkgname}/app.ini") +install=${_pkgname}.install + +source=( +"git+https://${_team}/${_pkgname}.git#branch=${_branch}" +"git+https://github.com/jteeuwen/go-bindata.git" #Because сommunity package is very outdated +"${_pkgname}.service" +"${_pkgname}.tmpfiles" +) + +pkgver() { + cd "$_gogsdir" + printf '%s+%s+%s' \ + $(<templates/.VERSION) \ + $(git rev-list --count HEAD...$(git log --pretty=format:%H -n 1 -- templates/.VERSION)) \ + $(git rev-parse --short HEAD) \ + ; } prepare() { - export GOROOT=/usr/lib/go - - msg2 "Prepare GO build enviroment" - rm -rf build - mkdir -p build/go - cd build/go - - for f in "$GOROOT/"*; do - ln -s "$f" - done - - rm pkg - mkdir pkg - cd pkg - - for f in "$GOROOT/pkg/"*; do - ln -s "$f" - done - - export GOROOT="$srcdir/build/go" - export GOPATH="$srcdir/build" - - mkdir -p "$GOPATH/src/github.com/gogits" - - mv "$srcdir/$_pkgname" $GOPATH/src/${_gourl} - - # Glide - msg2 "Download dependencies via Glide" - cd $GOPATH/src/${_gourl} - glide install - - # Execute patch - msg2 "Execute patches" - patch -Np1 -i "$srcdir/app.ini.patch" "$GOPATH/src/${_gourl}/conf/app.ini" - patch -Np1 -i "$srcdir/gogs.service.patch" "$GOPATH/src/${_gourl}/scripts/systemd/gogs.service" + export GOPATH="$srcdir" + + mkdir -p ./src/${_team} + mv -t ./src/${_team} ./${_pkgname} + + mkdir -p ./src/github.com/jteeuwen + mv -t ./src/github.com/jteeuwen ./go-bindata + + cd "$_gogsdir" + + sed -E -i conf/app.ini \ + -e '0, /^\[/ s/^(RUN_USER)\W.*$/\1 = gogs/' \ + -e '/^\[server\]/, /^\[/ s/^(STATIC_ROOT_PATH)\W.*$/\1 = \/usr\/share\/gogs/' \ + -e '/^\[log\]/, /^\[/ s/^(ROOT_PATH)\W.*$/\1 = \/var\/log\/gogs/' \ + ; + + ## Dirty hack + #sed -i vendor/github.com/go-xorm/xorm/logger.go \ + # -e '/DEFAULT_LOG_LEVEL/ s/core\.LOG_DEBUG/core.LOG_WARNING/' vendor/github.com/go-xorm/xorm/logger.go \ + # ; } + build() { - cd $GOPATH/src/${_gourl} + export GOPATH="$srcdir" - msg2 "Build program" - go fix - go build -x -tags='sqlite tidb pam cert' + cd "$srcdir/src/github.com/jteeuwen/go-bindata/go-bindata" + go install -v + + cd "$srcdir/$_gogsdir" + + LDFLAGS='-s -w' make PATH="$GOPATH/bin:$PATH" TAGS='libsqlite3 sqlite pam cert' build } package() { - install -Dm0755 "$srcdir/build/src/${_gourl}/$_pkgname" "$pkgdir/usr/share/$_pkgname/$_pkgname" + cd "$_gogsdir" + + rm -rf ./public/{less,config.codekit} + + install -d "$pkgdir/usr/share/${_pkgname}" + cp -rt "$pkgdir/usr/share/${_pkgname}" ./{templates,public} - cp -r "$srcdir/build/src/${_gourl}/conf" "$pkgdir/usr/share/$_pkgname" - mkdir -p "$pkgdir/usr/share/themes/gogs/default/" - cp -r "$srcdir/build/src/${_gourl}/public" "$pkgdir/usr/share/themes/gogs/default" - cp -r "$srcdir/build/src/${_gourl}/templates" "$pkgdir/usr/share/themes/gogs/default" + install -Dm0755 -t "$pkgdir/usr/bin" ./${_pkgname} + + install -Dm0644 -t "$pkgdir/usr/lib/systemd/system" "$srcdir/${_pkgname}.service" + + install -Dm0644 "$srcdir/${_pkgname}.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/${_pkgname}.conf" + install -Dm064 -t "$pkgdir/etc/${_pkgname}" ./conf/app.ini - install -Dm0644 "$pkgdir/usr/share/$_pkgname/conf/app.ini" "$pkgdir/srv/$_pkgname/conf/app.ini" - install -Dm0644 "$srcdir/build/src/${_gourl}/scripts/systemd/gogs.service" "$pkgdir/usr/lib/systemd/system/gogs.service" - install -Dm0644 "$srcdir/build/src/${_gourl}/LICENSE" "$pkgdir/usr/share/licenses/$_pkgname" } + +sha512sums=('SKIP' + 'SKIP' + '9d97d63fb74f9dc824875755e165f6fd11f2529b73b09020f62936a4d3f494102c018444429a20286dc287ad5d301e4e7f4000312ab82e382cd4635ebb0007cf' + '658935dc129d41b4bfc205ea8e9c225122862431f8b96932942ec345bc23cc7b55644247a8844c1f66bfd16ee35fc9da766f62f07603cbe6d573102edb4222f8') diff --git a/README.md b/README.md deleted file mode 100644 index 71030be05689..000000000000 --- a/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# Gogs -PKGBUILD files for different versions of Gogs (Go Git Service). - -## Open points - -## Install -``` -$ wget https://aur.archlinux.org/packages/go/gogs-*/gogs-*.tar.gz -$ tar -xvzf /<path to Tarball>/gogs-*.tar.gz -$ cd <package-name> -$ makepkg -$ pacman -U gogs-*.tgz -``` - -## Configuration -Enable and start systemd servicd -``` -$ systemctl enable gogs.service -$ systemctl start gogs.service -``` - -## Logging -After start of the service every log entry is over journalctl displayable. -``` -$ journalctl -f -u gogs.service -``` diff --git a/app.ini.patch b/app.ini.patch deleted file mode 100644 index f695409d1b18..000000000000 --- a/app.ini.patch +++ /dev/null @@ -1,36 +0,0 @@ -7c7 -< RUN_USER = git ---- -> RUN_USER = gogs -12c12 -< ROOT = ---- -> ROOT = /srv/gogs/repo -95c95 -< STATIC_ROOT_PATH = ---- -> STATIC_ROOT_PATH = /usr/share/themes/gogs/default -97c97 -< APP_DATA_PATH = data ---- -> APP_DATA_PATH = /srv/gogs/data -120c120 -< PATH = data/gogs.db ---- -> PATH = /srv/gogs/sqlite/gogs.db -207c207 -< PROVIDER_CONFIG = data/sessions ---- -> PROVIDER_CONFIG = /srv/gogs/sessions -220c220 -< AVATAR_UPLOAD_PATH = data/avatars ---- -> AVATAR_UPLOAD_PATH = /srv/gogs/data/avatars -230c230 -< PATH = data/attachments ---- -> PATH = /srv/gogs/data/attachments -245c245 -< ROOT_PATH = ---- -> ROOT_PATH = /var/log/gogs diff --git a/app_new.ini b/app_new.ini deleted file mode 100644 index 6e3a8d3d1de4..000000000000 --- a/app_new.ini +++ /dev/null @@ -1,373 +0,0 @@ -# NEVER EVER MODIFY THIS FILE -# PLEASE MAKE CHANGES ON CORRESPONDING CUSTOM CONFIG FILE - -; App name that shows on every page title -APP_NAME = Gogs: Go Git Service -; Change it if you run locally -RUN_USER = gogs -; Either "dev", "prod" or "test", default is "dev" -RUN_MODE = dev - -[repository] -ROOT = /srv/gogs/repo -SCRIPT_TYPE = bash -; Default ANSI charset -ANSI_CHARSET = -; Force every new repository to be private -FORCE_PRIVATE = false -; Global maximum creation limit of repository per user, -1 means no limit -MAX_CREATION_LIMIT = -1 -; Patch test queue length, make it as large as possible -PULL_REQUEST_QUEUE_LENGTH = 10000 - -[ui] -; Number of repositories that are showed in one explore page -EXPLORE_PAGING_NUM = 20 -; Number of issues that are showed in one page -ISSUE_PAGING_NUM = 10 -; Number of maximum commits showed in one activity feed -FEED_MAX_COMMIT_NUM = 5 -; Value of `theme-color` meta tag, used by Android >= 5.0 -; An invalid color like "none" or "disable" will have the default style -; More info: https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android -THEME_COLOR_META_TAG = `#ff5343` - -[ui.admin] -; Number of users that are showed in one page -USER_PAGING_NUM = 50 -; Number of repos that are showed in one page -REPO_PAGING_NUM = 50 -; Number of notices that are showed in one page -NOTICE_PAGING_NUM = 25 -; Number of organization that are showed in one page -ORG_PAGING_NUM = 50 - -[markdown] -; Enable hard line break extension -ENABLE_HARD_LINE_BREAK = false -; List of custom URL-Schemes that are allowed as links when rendering Markdown -; for example git,magnet -CUSTOM_URL_SCHEMES = - -[server] -PROTOCOL = http -DOMAIN = localhost -ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/ -HTTP_ADDR = -HTTP_PORT = 3000 -; Local (DMZ) URL for Gogs workers (such as SSH update) accessing web service. -; In most cases you do not need to change the default value. -; Alter it only if your SSH server node is not the same as HTTP node. -LOCAL_ROOT_URL = http://localhost:%(HTTP_PORT)s/ -; Disable SSH feature when not available -DISABLE_SSH = false -; Whether use builtin SSH server or not. -START_SSH_SERVER = false -; Domain name to be exposed in clone URL -SSH_DOMAIN = %(DOMAIN)s -; Port number to be exposed in clone URL -SSH_PORT = 22 -; Port number builtin SSH server listens on -SSH_LISTEN_PORT = %(SSH_PORT)s -; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'. -SSH_ROOT_PATH = -; Directory to create temporary files when test publick key using ssh-keygen, -; default is system temporary directory. -SSH_KEY_TEST_PATH = -; Path to ssh-keygen, default is 'ssh-keygen' and let shell find out which one to call. -SSH_KEYGEN_PATH = ssh-keygen -; Indicate whether to check minimum key size with corresponding type -MINIMUM_KEY_SIZE_CHECK = false -; Disable CDN even in "prod" mode -OFFLINE_MODE = false -DISABLE_ROUTER_LOG = false -; Generate steps: -; $ ./gogs cert -ca=true -duration=8760h0m0s -host=myhost.example.com -; -; Or from a .pfx file exported from the Windows certificate store (do -; not forget to export the private key): -; $ openssl pkcs12 -in cert.pfx -out cert.pem -nokeys -; $ openssl pkcs12 -in cert.pfx -out key.pem -nocerts -nodes -CERT_FILE = custom/https/cert.pem -KEY_FILE = custom/https/key.pem -; Upper level of template and static file path -; default is the path where Gogs is executed -STATIC_ROOT_PATH = /usr/share/themes/gogs/default -; Default path for App data -APP_DATA_PATH = /srv/gogs/data -; Application level GZIP support -ENABLE_GZIP = false -; Landing page for non-logged users, can be "home" or "explore" -LANDING_PAGE = home - -; Define allowed algorithms and their minimum key length (use -1 to disable a type) -[ssh.minimum_key_sizes] -ED25519 = 256 -ECDSA = 256 -RSA = 2048 -DSA = 1024 - -[database] -; Either "mysql", "postgres" or "sqlite3", it's your choice -DB_TYPE = mysql -HOST = 127.0.0.1:3306 -NAME = gogs -USER = root -PASSWD = -; For "postgres" only, either "disable", "require" or "verify-full" -SSL_MODE = disable -; For "sqlite3" and "tidb", use absolute path when you start as service -PATH = /srv/gogs/sqlite/gogs.db - -[admin] - -[security] -INSTALL_LOCK = false -; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!! -SECRET_KEY = !#@FDEWREWR&*( -; Auto-login remember days -LOGIN_REMEMBER_DAYS = 7 -COOKIE_USERNAME = gogs_awesome -COOKIE_REMEMBER_NAME = gogs_incredible -; Reverse proxy authentication header name of user name -REVERSE_PROXY_AUTHENTICATION_USER = X-WEBAUTH-USER - -[service] -ACTIVE_CODE_LIVE_MINUTES = 180 -RESET_PASSWD_CODE_LIVE_MINUTES = 180 -; User need to confirm e-mail for registration -REGISTER_EMAIL_CONFIRM = false -; Does not allow register and admin create account only -DISABLE_REGISTRATION = false -; User must sign in to view anything. -REQUIRE_SIGNIN_VIEW = false -; Mail notification -ENABLE_NOTIFY_MAIL = false -; More detail: https://github.com/gogits/gogs/issues/165 -ENABLE_REVERSE_PROXY_AUTHENTICATION = false -ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false -; Enable captcha validation for registration -ENABLE_CAPTCHA = true - -[webhook] -; Hook task queue length -QUEUE_LENGTH = 1000 -; Deliver timeout in seconds -DELIVER_TIMEOUT = 5 -; Allow insecure certification -SKIP_TLS_VERIFY = false -; Number of history information in each page -PAGING_NUM = 10 - -[mailer] -ENABLED = false -; Buffer length of channel, keep it as it is if you don't know what it is. -SEND_BUFFER_LEN = 100 -; Name displayed in mail title -SUBJECT = %(APP_NAME)s -; Mail server -; Gmail: smtp.gmail.com:587 -; QQ: smtp.qq.com:25 -; Note, if the port ends with "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409. If the server supports STARTTLS it will always be used. -HOST = -; Disable HELO operation when hostname are different. -DISABLE_HELO = -; Custom hostname for HELO operation, default is from system. -HELO_HOSTNAME = -; Do not verify the certificate of the server. Only use this for self-signed certificates -SKIP_VERIFY = -; Use client certificate -USE_CERTIFICATE = false -CERT_FILE = custom/mailer/cert.pem -KEY_FILE = custom/mailer/key.pem -; Mail from address, RFC 5322. This can be just an email address, or the `"Name" <email@example.com>` format -FROM = -; Mailer user name and password -USER = -PASSWD = - -[cache] -; Either "memory", "redis", or "memcache", default is "memory" -ADAPTER = memory -; For "memory" only, GC interval in seconds, default is 60 -INTERVAL = 60 -; For "redis" and "memcache", connection host address -; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180 -; memcache: `127.0.0.1:11211` -HOST = - -[session] -; Either "memory", "file", "redis" or "mysql", default is "memory" -PROVIDER = memory -; Provider config options -; memory: not have any config yet -; file: session file path, e.g. `data/sessions` -; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180 -; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table` -PROVIDER_CONFIG = /srv/gogs/sessions -; Session cookie name -COOKIE_NAME = i_like_gogits -; If you use session in https only, default is false -COOKIE_SECURE = false -; Enable set cookie, default is true -ENABLE_SET_COOKIE = true -; Session GC time interval, default is 86400 -GC_INTERVAL_TIME = 86400 -; Session life time, default is 86400 -SESSION_LIFE_TIME = 86400 - -[picture] -AVATAR_UPLOAD_PATH = /srv/gogs/data/avatars -; Chinese users can choose "duoshuo" -; or a custom avatar source, like: http://cn.gravatar.com/avatar/ -GRAVATAR_SOURCE = gravatar -DISABLE_GRAVATAR = false - -[attachment] -; Whether attachments are enabled. Defaults to `true` -ENABLE = true -; Path for attachments. Defaults to `data/attachments` -PATH = /srv/gogs/data/attachments -; One or more allowed types, e.g. image/jpeg|image/png -ALLOWED_TYPES = image/jpeg|image/png -; Max size of each file. Defaults to 32MB -MAX_SIZE = 4 -; Max number of files per upload. Defaults to 10 -MAX_FILES = 5 - -[time] -; Specifies the format for fully outputed dates. Defaults to RFC1123 -; Special supported values are ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano -; For more information about the format see http://golang.org/pkg/time/#pkg-constants -FORMAT = - -[log] -ROOT_PATH = /var/log/gogs -; Either "console", "file", "conn", "smtp" or "database", default is "console" -; Use comma to separate multiple modes, e.g. "console, file" -MODE = console -; Buffer length of channel, keep it as it is if you don't know what it is. -BUFFER_LEN = 10000 -; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace" -LEVEL = Trace - -; For "console" mode only -[log.console] -LEVEL = - -; For "file" mode only -[log.file] -LEVEL = -; This enables automated log rotate(switch of following options), default is true -LOG_ROTATE = true -; Max line number of single file, default is 1000000 -MAX_LINES = 1000000 -; Max size shift of single file, default is 28 means 1 << 28, 256MB -MAX_SIZE_SHIFT = 28 -; Segment log daily, default is true -DAILY_ROTATE = true -; Expired days of log file(delete after max days), default is 7 -MAX_DAYS = 7 - -; For "conn" mode only -[log.conn] -LEVEL = -; Reconnect host for every single message, default is false -RECONNECT_ON_MSG = false -; Try to reconnect when connection is lost, default is false -RECONNECT = false -; Either "tcp", "unix" or "udp", default is "tcp" -PROTOCOL = tcp -; Host address -ADDR = - -; For "smtp" mode only -[log.smtp] -LEVEL = -; Name displayed in mail title, default is "Diagnostic message from server" -SUBJECT = Diagnostic message from server -; Mail server -HOST = -; Mailer user name and password -USER = -PASSWD = -; Receivers, can be one or more, e.g. ["1@example.com","2@example.com"] -RECEIVERS = - -; For "database" mode only -[log.database] -LEVEL = -; Either "mysql" or "postgres" -DRIVER = -; Based on xorm, e.g.: root:root@localhost/gogs?charset=utf8 -CONN = - -[cron] -; Enable running cron tasks periodically. -ENABLED = true -; Run cron tasks when Gogs starts. -RUN_AT_START = false - -; Update mirrors -[cron.update_mirrors] -SCHEDULE = @every 1h - -; Repository health check -[cron.repo_health_check] -SCHEDULE = @every 24h -TIMEOUT = 60s -; Arguments for command 'git fsck', e.g. "--unreachable --tags" -; see more on http://git-scm.com/docs/git-fsck/1.7.5 -ARGS = - -; Check repository statistics -[cron.check_repo_stats] -RUN_AT_START = true -SCHEDULE = @every 24h - -[git] -MAX_GIT_DIFF_LINES = 10000 -; Arguments for command 'git gc', e.g. "--aggressive --auto" -; see more on http://git-scm.com/docs/git-gc/1.7.5 -GC_ARGS = - -; Operation timeout in seconds -[git.timeout] -MIGRATE = 600 -MIRROR = 300 -CLONE = 300 -PULL = 300 - -[i18n] -LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ -NAMES = English,简体中文,繁體中文(香港),繁體中文(台湾),Deutsch,Français,Nederlands,Latviešu,Русский,日本語,Español,Português do Brasil,Polski,български,Italiano,Suomalainen,Türk,čeština - -; Used for datetimepicker -[i18n.datelang] -en-US = en -zh-CN = zh -zh-HK = zh-TW -zh-TW = zh-TW -de-DE = de -fr-FR = fr -nl-NL = nl -lv-LV = lv -ru-RU = ru -ja-JP = ja -es-ES = es -pt-BR = pt-BR -pl-PL = pl -bg-BG = bg -it-IT = it -fi-FI = fi -tr-TR = tr -cs-CZ = cs-CZ - -; Extension mapping to highlight class -; e.g. .toml=ini -[highlight.mapping] - -[other] -SHOW_FOOTER_BRANDING = false -; Show version information about gogs and go in the footer -SHOW_FOOTER_VERSION = true
\ No newline at end of file diff --git a/app_old.ini b/app_old.ini deleted file mode 100644 index 325c1caba2ba..000000000000 --- a/app_old.ini +++ /dev/null @@ -1,373 +0,0 @@ -# NEVER EVER MODIFY THIS FILE -# PLEASE MAKE CHANGES ON CORRESPONDING CUSTOM CONFIG FILE - -; App name that shows on every page title -APP_NAME = Gogs: Go Git Service -; Change it if you run locally -RUN_USER = git -; Either "dev", "prod" or "test", default is "dev" -RUN_MODE = dev - -[repository] -ROOT = -SCRIPT_TYPE = bash -; Default ANSI charset -ANSI_CHARSET = -; Force every new repository to be private -FORCE_PRIVATE = false -; Global maximum creation limit of repository per user, -1 means no limit -MAX_CREATION_LIMIT = -1 -; Patch test queue length, make it as large as possible -PULL_REQUEST_QUEUE_LENGTH = 10000 - -[ui] -; Number of repositories that are showed in one explore page -EXPLORE_PAGING_NUM = 20 -; Number of issues that are showed in one page -ISSUE_PAGING_NUM = 10 -; Number of maximum commits showed in one activity feed -FEED_MAX_COMMIT_NUM = 5 -; Value of `theme-color` meta tag, used by Android >= 5.0 -; An invalid color like "none" or "disable" will have the default style -; More info: https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android -THEME_COLOR_META_TAG = `#ff5343` - -[ui.admin] -; Number of users that are showed in one page -USER_PAGING_NUM = 50 -; Number of repos that are showed in one page -REPO_PAGING_NUM = 50 -; Number of notices that are showed in one page -NOTICE_PAGING_NUM = 25 -; Number of organization that are showed in one page -ORG_PAGING_NUM = 50 - -[markdown] -; Enable hard line break extension -ENABLE_HARD_LINE_BREAK = false -; List of custom URL-Schemes that are allowed as links when rendering Markdown -; for example git,magnet -CUSTOM_URL_SCHEMES = - -[server] -PROTOCOL = http -DOMAIN = localhost -ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/ -HTTP_ADDR = -HTTP_PORT = 3000 -; Local (DMZ) URL for Gogs workers (such as SSH update) accessing web service. -; In most cases you do not need to change the default value. -; Alter it only if your SSH server node is not the same as HTTP node. -LOCAL_ROOT_URL = http://localhost:%(HTTP_PORT)s/ -; Disable SSH feature when not available -DISABLE_SSH = false -; Whether use builtin SSH server or not. -START_SSH_SERVER = false -; Domain name to be exposed in clone URL -SSH_DOMAIN = %(DOMAIN)s -; Port number to be exposed in clone URL -SSH_PORT = 22 -; Port number builtin SSH server listens on -SSH_LISTEN_PORT = %(SSH_PORT)s -; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'. -SSH_ROOT_PATH = -; Directory to create temporary files when test publick key using ssh-keygen, -; default is system temporary directory. -SSH_KEY_TEST_PATH = -; Path to ssh-keygen, default is 'ssh-keygen' and let shell find out which one to call. -SSH_KEYGEN_PATH = ssh-keygen -; Indicate whether to check minimum key size with corresponding type -MINIMUM_KEY_SIZE_CHECK = false -; Disable CDN even in "prod" mode -OFFLINE_MODE = false -DISABLE_ROUTER_LOG = false -; Generate steps: -; $ ./gogs cert -ca=true -duration=8760h0m0s -host=myhost.example.com -; -; Or from a .pfx file exported from the Windows certificate store (do -; not forget to export the private key): -; $ openssl pkcs12 -in cert.pfx -out cert.pem -nokeys -; $ openssl pkcs12 -in cert.pfx -out key.pem -nocerts -nodes -CERT_FILE = custom/https/cert.pem -KEY_FILE = custom/https/key.pem -; Upper level of template and static file path -; default is the path where Gogs is executed -STATIC_ROOT_PATH = -; Default path for App data -APP_DATA_PATH = data -; Application level GZIP support -ENABLE_GZIP = false -; Landing page for non-logged users, can be "home" or "explore" -LANDING_PAGE = home - -; Define allowed algorithms and their minimum key length (use -1 to disable a type) -[ssh.minimum_key_sizes] -ED25519 = 256 -ECDSA = 256 -RSA = 2048 -DSA = 1024 - -[database] -; Either "mysql", "postgres" or "sqlite3", it's your choice -DB_TYPE = mysql -HOST = 127.0.0.1:3306 -NAME = gogs -USER = root -PASSWD = -; For "postgres" only, either "disable", "require" or "verify-full" -SSL_MODE = disable -; For "sqlite3" and "tidb", use absolute path when you start as service -PATH = data/gogs.db - -[admin] - -[security] -INSTALL_LOCK = false -; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!! -SECRET_KEY = !#@FDEWREWR&*( -; Auto-login remember days -LOGIN_REMEMBER_DAYS = 7 -COOKIE_USERNAME = gogs_awesome -COOKIE_REMEMBER_NAME = gogs_incredible -; Reverse proxy authentication header name of user name -REVERSE_PROXY_AUTHENTICATION_USER = X-WEBAUTH-USER - -[service] -ACTIVE_CODE_LIVE_MINUTES = 180 -RESET_PASSWD_CODE_LIVE_MINUTES = 180 -; User need to confirm e-mail for registration -REGISTER_EMAIL_CONFIRM = false -; Does not allow register and admin create account only -DISABLE_REGISTRATION = false -; User must sign in to view anything. -REQUIRE_SIGNIN_VIEW = false -; Mail notification -ENABLE_NOTIFY_MAIL = false -; More detail: https://github.com/gogits/gogs/issues/165 -ENABLE_REVERSE_PROXY_AUTHENTICATION = false -ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false -; Enable captcha validation for registration -ENABLE_CAPTCHA = true - -[webhook] -; Hook task queue length -QUEUE_LENGTH = 1000 -; Deliver timeout in seconds -DELIVER_TIMEOUT = 5 -; Allow insecure certification -SKIP_TLS_VERIFY = false -; Number of history information in each page -PAGING_NUM = 10 - -[mailer] -ENABLED = false -; Buffer length of channel, keep it as it is if you don't know what it is. -SEND_BUFFER_LEN = 100 -; Name displayed in mail title -SUBJECT = %(APP_NAME)s -; Mail server -; Gmail: smtp.gmail.com:587 -; QQ: smtp.qq.com:25 -; Note, if the port ends with "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409. If the server supports STARTTLS it will always be used. -HOST = -; Disable HELO operation when hostname are different. -DISABLE_HELO = -; Custom hostname for HELO operation, default is from system. -HELO_HOSTNAME = -; Do not verify the certificate of the server. Only use this for self-signed certificates -SKIP_VERIFY = -; Use client certificate -USE_CERTIFICATE = false -CERT_FILE = custom/mailer/cert.pem -KEY_FILE = custom/mailer/key.pem -; Mail from address, RFC 5322. This can be just an email address, or the `"Name" <email@example.com>` format -FROM = -; Mailer user name and password -USER = -PASSWD = - -[cache] -; Either "memory", "redis", or "memcache", default is "memory" -ADAPTER = memory -; For "memory" only, GC interval in seconds, default is 60 -INTERVAL = 60 -; For "redis" and "memcache", connection host address -; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180 -; memcache: `127.0.0.1:11211` -HOST = - -[session] -; Either "memory", "file", "redis" or "mysql", default is "memory" -PROVIDER = memory -; Provider config options -; memory: not have any config yet -; file: session file path, e.g. `data/sessions` -; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180 -; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table` -PROVIDER_CONFIG = data/sessions -; Session cookie name -COOKIE_NAME = i_like_gogits -; If you use session in https only, default is false -COOKIE_SECURE = false -; Enable set cookie, default is true -ENABLE_SET_COOKIE = true -; Session GC time interval, default is 86400 -GC_INTERVAL_TIME = 86400 -; Session life time, default is 86400 -SESSION_LIFE_TIME = 86400 - -[picture] -AVATAR_UPLOAD_PATH = data/avatars -; Chinese users can choose "duoshuo" -; or a custom avatar source, like: http://cn.gravatar.com/avatar/ -GRAVATAR_SOURCE = gravatar -DISABLE_GRAVATAR = false - -[attachment] -; Whether attachments are enabled. Defaults to `true` -ENABLE = true -; Path for attachments. Defaults to `data/attachments` -PATH = data/attachments -; One or more allowed types, e.g. image/jpeg|image/png -ALLOWED_TYPES = image/jpeg|image/png -; Max size of each file. Defaults to 32MB -MAX_SIZE = 4 -; Max number of files per upload. Defaults to 10 -MAX_FILES = 5 - -[time] -; Specifies the format for fully outputed dates. Defaults to RFC1123 -; Special supported values are ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano -; For more information about the format see http://golang.org/pkg/time/#pkg-constants -FORMAT = - -[log] -ROOT_PATH = -; Either "console", "file", "conn", "smtp" or "database", default is "console" -; Use comma to separate multiple modes, e.g. "console, file" -MODE = console -; Buffer length of channel, keep it as it is if you don't know what it is. -BUFFER_LEN = 10000 -; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace" -LEVEL = Trace - -; For "console" mode only -[log.console] -LEVEL = - -; For "file" mode only -[log.file] -LEVEL = -; This enables automated log rotate(switch of following options), default is true -LOG_ROTATE = true -; Max line number of single file, default is 1000000 -MAX_LINES = 1000000 -; Max size shift of single file, default is 28 means 1 << 28, 256MB -MAX_SIZE_SHIFT = 28 -; Segment log daily, default is true -DAILY_ROTATE = true -; Expired days of log file(delete after max days), default is 7 -MAX_DAYS = 7 - -; For "conn" mode only -[log.conn] -LEVEL = -; Reconnect host for every single message, default is false -RECONNECT_ON_MSG = false -; Try to reconnect when connection is lost, default is false -RECONNECT = false -; Either "tcp", "unix" or "udp", default is "tcp" -PROTOCOL = tcp -; Host address -ADDR = - -; For "smtp" mode only -[log.smtp] -LEVEL = -; Name displayed in mail title, default is "Diagnostic message from server" -SUBJECT = Diagnostic message from server -; Mail server -HOST = -; Mailer user name and password -USER = -PASSWD = -; Receivers, can be one or more, e.g. ["1@example.com","2@example.com"] -RECEIVERS = - -; For "database" mode only -[log.database] -LEVEL = -; Either "mysql" or "postgres" -DRIVER = -; Based on xorm, e.g.: root:root@localhost/gogs?charset=utf8 -CONN = - -[cron] -; Enable running cron tasks periodically. -ENABLED = true -; Run cron tasks when Gogs starts. -RUN_AT_START = false - -; Update mirrors -[cron.update_mirrors] -SCHEDULE = @every 1h - -; Repository health check -[cron.repo_health_check] -SCHEDULE = @every 24h -TIMEOUT = 60s -; Arguments for command 'git fsck', e.g. "--unreachable --tags" -; see more on http://git-scm.com/docs/git-fsck/1.7.5 -ARGS = - -; Check repository statistics -[cron.check_repo_stats] -RUN_AT_START = true -SCHEDULE = @every 24h - -[git] -MAX_GIT_DIFF_LINES = 10000 -; Arguments for command 'git gc', e.g. "--aggressive --auto" -; see more on http://git-scm.com/docs/git-gc/1.7.5 -GC_ARGS = - -; Operation timeout in seconds -[git.timeout] -MIGRATE = 600 -MIRROR = 300 -CLONE = 300 -PULL = 300 - -[i18n] -LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ -NAMES = English,简体中文,繁體中文(香港),繁體中文(台湾),Deutsch,Français,Nederlands,Latviešu,Русский,日本語,Español,Português do Brasil,Polski,български,Italiano,Suomalainen,Türk,čeština - -; Used for datetimepicker -[i18n.datelang] -en-US = en -zh-CN = zh -zh-HK = zh-TW -zh-TW = zh-TW -de-DE = de -fr-FR = fr -nl-NL = nl -lv-LV = lv -ru-RU = ru -ja-JP = ja -es-ES = es -pt-BR = pt-BR -pl-PL = pl -bg-BG = bg -it-IT = it -fi-FI = fi -tr-TR = tr -cs-CZ = cs-CZ - -; Extension mapping to highlight class -; e.g. .toml=ini -[highlight.mapping] - -[other] -SHOW_FOOTER_BRANDING = false -; Show version information about gogs and go in the footer -SHOW_FOOTER_VERSION = true
\ No newline at end of file diff --git a/gogs.install b/gogs.install index c016f01831e6..c7819d81c41d 100644 --- a/gogs.install +++ b/gogs.install @@ -1,39 +1,80 @@ +_start_if_enabled() { + if systemctl -q is-enabled gogs.service ;then + echo "Starting gogs service" + systemctl start gogs.service + fi +} + +_stop_if_active() { + if systemctl -q is-active gogs.service ;then + echo "Stoping gogs service" + systemctl stop gogs.service + fi +} + +_disable_if_enabled() { + if systemctl -q is-enabled gogs.service 2>/dev/null ;then + echo "Disabling gogs service" + systemctl disable gogs.service + fi +} + pre_install() { - if ! getent group gogs >/dev/null; then - groupadd --system gogs - fi - if ! getent passwd gogs >/dev/null; then - useradd -m --system -c 'gogs daemon users' -g gogs -s /bin/false gogs - fi - chsh gogs -s /bin/bash + if ! getent group gogs >/dev/null; then + groupadd --system gogs + fi + if ! getent passwd gogs >/dev/null; then + useradd -r -c 'Gogs service user' -g gogs -d /srv/gogs -s /bin/bash gogs + passwd -l gogs + else + local _OldHome="$( getent passwd gogs | cut -d: -f6 )" + if [ ${_OldHome} != "/srv/gogs" ]; then + echo + echo "Setting gogs home directory to /srv/gogs" + _disable_if_enabled + echo "You must migrate from ${_OldHome}" + echo "before starting or re-enabling service" + echo + fi + usermod -c 'Gogs service user' -g gogs -d /srv/gogs -L -s /bin/bash gogs + fi } post_install(){ - mkdir -p /var/log/gogs - chown -R gogs:gogs /var/log/gogs - chown -R gogs:gogs /srv/gogs - - systemctl daemon-reload + systemctl daemon-reload } -pre_upgrade(){ - pre_install $1 +pre_upgrade() { + _stop_if_active + pre_install } + post_upgrade() { - post_install $1 + post_install + if ! [[ -f /etc/gogs/app.ini.pacnew ]] ; then + _start_if_enabled + else + echo + _disable_if_enabled + echo "/etc/gogs/app.ini{,.pacnew} needs merge" + echo "before starting or re-enabling service" + echo + fi } pre_remove() { - systemctl stop gogs.service - systemctl disable gogs.service + _stop_if_active + _disable_if_enabled } post_remove() { - if getent passwd gogs >/dev/null; then - userdel -r gogs - fi - if getent group gogs >/dev/null; then - groupdel gogs - fi + if getent passwd gogs >/dev/null; then + userdel gogs + fi + if getent group gogs >/dev/null; then + groupdel gogs + fi + systemctl daemon-reload + echo "You will need to delete the directory /srv/gogs manually" } diff --git a/gogs.service b/gogs.service new file mode 100644 index 000000000000..29da7b879d33 --- /dev/null +++ b/gogs.service @@ -0,0 +1,16 @@ +[Unit] +Description=Gogs (Go Git Service) +After=syslog.target +After=network.target + +[Service] +Type=simple +User=gogs +Group=gogs +Environment="GOGS_WORK_DIR=/srv/gogs USER=gogs HOME=/srv/gogs" +ExecStart=/usr/bin/gogs web --config /etc/gogs/app.ini +WorkingDirectory=/srv/gogs +Restart=always + +[Install] +WantedBy=default.target diff --git a/gogs.service.patch b/gogs.service.patch deleted file mode 100644 index 862e0e888503..000000000000 --- a/gogs.service.patch +++ /dev/null @@ -1,14 +0,0 @@ -18,21c18,21 -< User=git -< Group=git -< WorkingDirectory=/home/git/gogs -< ExecStart=/home/git/gogs/gogs web ---- -> User=gogs -> Group=gogs -> WorkingDirectory=/srv/gogs/ -> ExecStart=/usr/share/gogs/gogs web --config /srv/gogs/conf/app.ini -23c23 -< Environment=USER=git HOME=/home/git ---- -> Environment=USER=gogs HOME=/home/gogs diff --git a/gogs.tmpfiles b/gogs.tmpfiles new file mode 100644 index 000000000000..545bb8560f77 --- /dev/null +++ b/gogs.tmpfiles @@ -0,0 +1,2 @@ +d /srv/gogs 0750 gogs gogs - +d /var/log/gogs 0750 gogs log - diff --git a/gogs_new.service b/gogs_new.service deleted file mode 100644 index ec68c13e46d3..000000000000 --- a/gogs_new.service +++ /dev/null @@ -1,26 +0,0 @@ -[Unit] -Description=Gogs (Go Git Service) -After=syslog.target -After=network.target -#After=mysqld.service -#After=postgresql.service -#After=memcached.service -#After=redis.service - -[Service] -# Modify these two values and uncomment them if you have -# repos with lots of files and get an HTTP error 500 because -# of that -### -#LimitMEMLOCK=infinity -#LimitNOFILE=65535 -Type=simple -User=gogs -Group=gogs -WorkingDirectory=/srv/gogs/ -ExecStart=/usr/share/gogs/gogs web --config /srv/gogs/conf/app.ini -Restart=always -Environment=USER=gogs HOME=/home/gogs - -[Install] -WantedBy=multi-user.target
\ No newline at end of file diff --git a/gogs_old.service b/gogs_old.service deleted file mode 100644 index 9ae9209c24fd..000000000000 --- a/gogs_old.service +++ /dev/null @@ -1,26 +0,0 @@ -[Unit] -Description=Gogs (Go Git Service) -After=syslog.target -After=network.target -#After=mysqld.service -#After=postgresql.service -#After=memcached.service -#After=redis.service - -[Service] -# Modify these two values and uncomment them if you have -# repos with lots of files and get an HTTP error 500 because -# of that -### -#LimitMEMLOCK=infinity -#LimitNOFILE=65535 -Type=simple -User=git -Group=git -WorkingDirectory=/home/git/gogs -ExecStart=/home/git/gogs/gogs web -Restart=always -Environment=USER=git HOME=/home/git - -[Install] -WantedBy=multi-user.target
\ No newline at end of file |