From 16332a190ff56ef3e38fad7350b9dda741b83759 Mon Sep 17 00:00:00 2001 From: Philippe Caseiro Date: Tue, 30 Oct 2018 16:38:14 +0100 Subject: [PATCH 1/3] Adding debian packaging --- debian/compat | 1 + debian/control | 16 ++++++++++++ debian/copyright | 44 +++++++++++++++++++++++++++++++++ debian/eole-gitea.forge.service | 1 + debian/gbp.conf | 3 +++ debian/rules | 18 ++++++++++++++ debian/source/format | 1 + 7 files changed, 84 insertions(+) create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 120000 debian/eole-gitea.forge.service create mode 100644 debian/gbp.conf create mode 100755 debian/rules create mode 100644 debian/source/format diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..f0bfa0f --- /dev/null +++ b/debian/control @@ -0,0 +1,16 @@ +Source: eole-gitea +Section: web +Priority: optional +Maintainer: Cadoles +Build-Depends: debhelper (>= 9) +Standards-Version: 3.9.3 +Homepage: https://forge.cadoles.com/Cadoles/eole-gitea +Vcs-Git: https://forge.cadoles.com/Cadoles/eole-gitea.git +Vcs-Browser: https://forge.cadoles.com/Cadoles/eole-redis + +Package: eole-redis +Architecture: all +Depends: ${misc:Depends}, git-core, eole-db, eole-mysql +Description: Dictionnaires et templates pour la configuration d'un serveur Gitea, testée uniquement avec eolebase + . + Pour toute information complémentaire, veuillez vous rendre sur la forge Cadoles. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..655a069 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,44 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: {PROJECT} +Source: {URL} + +Files: * +Copyright: YEAR {UPSTREAM} {AUTHOR} <{MAIL}> +License: {UPSTREAM LICENSE} + +Files: debian/* +Copyright: 2012 Équipe EOLE +License: CeCILL-2 + +License: {UPSTREAM LICENSE} + {TEXT OF THE LICENSE} + +License: CeCILL-2 + This software is governed by the CeCILL-2 license under French law and + abiding by the rules of distribution of free software. You can use, + modify and or redistribute the software under the terms of the CeCILL-2 + license as circulated by CEA, CNRS and INRIA at the following URL + "http://www.cecill.info";. + . + As a counterpart to the access to the source code and rights to copy, + modify and redistribute granted by the license, users are provided only + with a limited warranty and the software's author, the holder of the + economic rights, and the successive licensors have only limited + liability. + . + In this respect, the user's attention is drawn to the risks associated + with loading, using, modifying and/or developing or reproducing the + software by the user in light of its specific status of free software, + that may mean that it is complicated to manipulate, and that also + therefore means that it is reserved for developers and experienced + professionals having in-depth computer knowledge. Users are therefore + encouraged to load and test the software's suitability as regards their + requirements in conditions enabling the security of their systems and/or + data to be ensured and, more generally, to use and operate it in the + same conditions as regards security. + . + The fact that you are presently reading this means that you have had + knowledge of the CeCILL-2 license and that you accept its terms. + . + On Eole systems, the complete text of the CeCILL-2 License can be found + in '/usr/share/common-licenses/CeCILL-2-en'. diff --git a/debian/eole-gitea.forge.service b/debian/eole-gitea.forge.service new file mode 120000 index 0000000..a437cdc --- /dev/null +++ b/debian/eole-gitea.forge.service @@ -0,0 +1 @@ +../systemd/forge.service \ No newline at end of file diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..18f2d64 --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,3 @@ +# Set per distribution debian tag +[DEFAULT] +debian-tag = debian/eole/%(version)s diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..9d4ca2c --- /dev/null +++ b/debian/rules @@ -0,0 +1,18 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +%: + dh $@ + +# Force init script name +override_dh_installinit: + dh_installinit --noscripts -peole-redis --name=redis2-server $@ + +override_dh_systemd_enable: + dh_systemd_enable -peole-redis --name=redis2-server + +override_dh_systemd_start: + dh_systemd_start -peole-server --no-start --no-restart-on-upgrade redis2-server diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) From 272f206d8524af29271202a4133b88ec14e0f15a Mon Sep 17 00:00:00 2001 From: Philippe Caseiro Date: Wed, 31 Oct 2018 09:18:03 +0100 Subject: [PATCH 2/3] Updating package name --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index f0bfa0f..2e5d9aa 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Homepage: https://forge.cadoles.com/Cadoles/eole-gitea Vcs-Git: https://forge.cadoles.com/Cadoles/eole-gitea.git Vcs-Browser: https://forge.cadoles.com/Cadoles/eole-redis -Package: eole-redis +Package: eole-gitea Architecture: all Depends: ${misc:Depends}, git-core, eole-db, eole-mysql Description: Dictionnaires et templates pour la configuration d'un serveur Gitea, testée uniquement avec eolebase From 11a467a98e6c1289a1dba361881e6a6d07d25ef8 Mon Sep 17 00:00:00 2001 From: William Petit Date: Mon, 17 Jun 2019 17:01:44 +0200 Subject: [PATCH 3/3] Handle Gitea version upgrade in pretemplate script Check for version update with script expected version versus installed version --- pretemplate/01-gitea-init | 162 ++++++++++++++++++++++++-------------- 1 file changed, 103 insertions(+), 59 deletions(-) diff --git a/pretemplate/01-gitea-init b/pretemplate/01-gitea-init index 730b07a..56e4219 100755 --- a/pretemplate/01-gitea-init +++ b/pretemplate/01-gitea-init @@ -21,76 +21,120 @@ APPNAME="gitea" APPBINARY="gitea" APPSIG="7C9E68152594688862D62AF62D9AE806EC1592E2" APPASC="${APPNAME}-${APPVERSION}-${OS}-${ARCH}.asc" -KEYSERV="pgp.mit.edu" +KEYSERV="hkp://p80.pool.sks-keyservers.net:80" DLSERV="dl.gitea.io" APPDIR="${WKDIR}/gitea" APPBINDIR="${APPDIR}/bin" APPCONFDIR="/etc/${APPNAME}" -if [[ -d ${APPCONFDIR} ]] -then - exit 0 -fi +function configure_proxy { + proxy=$(CreoleGet activer_proxy_client non) + if [[ ${proxy} == "oui" ]] + then + prAddr=$(CreoleGet proxy_client_adresse) + prPort=$(CreoleGet proxy_client_port) + export HTTP_PROXY=http://${prAddr}:${prPort} + export http_proxy=http://${prAddr}:${prPort} + export HTTPS_PROXY=http://${prAddr}:${prPort} + export https_proxy=http://${prAddr}:${prPort} + fi +} -proxy=$(CreoleGet activer_proxy_client non) +function create_app_dir { + + if [[ ! -d ${APPDIR} ]] + then + mkdir -p ${APPDIR} + chown ${USER}:${GROUP} ${APPDIR} -R + fi -if [[ ${proxy} == "oui" ]] -then - prAddr=$(CreoleGet proxy_client_adresse) - prPort=$(CreoleGet proxy_client_port) - export HTTP_PROXY=http://${prAddr}:${prPort} - export http_proxy=http://${prAddr}:${prPort} - export HTTPS_PROXY=http://${prAddr}:${prPort} - export https_proxy=http://${prAddr}:${prPort} -fi + # Create app structure + mkdir -p ${APPDIR}/{custom,data,indexers,public,log} + chown ${USER}:${GROUP} ${APPDIR}/{data,indexers,log} + chmod 750 ${APPDIR}/{data,indexers,log} + mkdir -p ${APPCONFDIR} + chown root:${GROUP} ${APPCONFDIR} + chmod 770 ${APPCONFDIR} -if [[ ! -d ${APPDIR} ]] -then - mkdir -p ${APPDIR} - chown ${USER}:${GROUP} ${APPDIR} -R -fi + if [[ ! -d ${APPBINDIR} ]] + then + mkdir -p ${APPBINDIR} + chown ${USER}:${GROUP} ${APPBINDIR} + fi +} -# Create app user and group -groupadd ${GROUP} -adduser \ - --shell ${USERSHELL} \ - --gecos "${GECOS}" \ - --ingroup ${GROUP} \ - --disabled-password \ - --home ${HOMEDIR} \ - ${USER} +function create_user_and_group { + local existing_group=$(getent group ${GROUP}) + if [ -z "${existing_group}" ]; then + groupadd ${GROUP} + fi -# Create app structure -mkdir -p ${APPDIR}/{custom,data,indexers,public,log} -chown ${USER}:${GROUP} ${APPDIR}/{data,indexers,log} -chmod 750 ${APPDIR}/{data,indexers,log} -mkdir ${APPCONFDIR} -chown root:${GROUP} ${APPCONFDIR} -chmod 770 ${APPCONFDIR} + local existing_user=$(getent passwd ${USER}) + if [ -z "${existing_user}" ]; then + adduser \ + --shell ${USERSHELL} \ + --gecos "${GECOS}" \ + --ingroup ${GROUP} \ + --disabled-password \ + --home ${HOMEDIR} \ + ${USER} + fi +} -if [[ ! -d ${APPBINDIR} ]] -then - mkdir -p ${APPBINDIR} - chown ${USER}:${GROUP} ${APPBINDIR} -fi +function download_binary { + local temp_bin=$(mktemp) -cd $APPBINDIR -if [[ ! -f ${APPBINARY} ]] -then - wget -O ${APPBINARY} https://${DLSERV}/${APPNAME}/${APPVERSION}/${APPNAME}-${APPVERSION}-${OS}-${ARCH} - if [[ $? -eq 0 ]] - then - chmod +x ${APPBINARY} - else - echo "Error downloading binary for ${APPNAME}" - return 123 - fi -fi + wget -O "${temp_bin}" https://${DLSERV}/${APPNAME}/${APPVERSION}/${APPNAME}-${APPVERSION}-${OS}-${ARCH} + if [[ $? -ne 0 ]] + then + echo "Error downloading binary for ${APPNAME}" + return 123 + fi -if [[ ! -f ${APPASC} ]] -then - wget -O ${APPASC} https://${DLSERV}/${APPNAME}/${APPVERSION}/${APPASC} + wget -O "${temp_bin}.asc" https://${DLSERV}/${APPNAME}/${APPVERSION}/${APPASC} gpg --keyserver ${KEYSERV} --recv ${APPSIG} - gpg --verify ${APPNAME}-${APPVERSION}-${OS}-${ARCH}.asc ${APPBINARY} -fi -cd - + gpg --verify "${temp_bin}.asc" "${temp_bin}" + + if [[ $? -ne 0 ]] + then + echo "Error downloading binary for ${APPNAME}" + return 123 + fi + + cd $APPBINDIR + chmod +x "${temp_bin}" + mv -f "${temp_bin}" ${APPBINARY} + cd - +} + +function current_gitea_version { + if [[ ! -f "${APPBINDIR}/${APPBINARY}" ]] + then + return + fi + "${APPBINDIR}/${APPBINARY}" --version | cut -d' ' -f 3 +} + +function main { + + # Check that installed version if ok + local current_version=$(current_gitea_version) + if [ "$current_version" == "$APPVERSION" ]; then + exit 0 + fi + + if [ -z "$current_version" ] + then + echo "Installing Gitea ${APPVERSION}..." + else + echo "Upgrade Gitea from ${current_version} to ${APPVERSION}..." + fi + + configure_proxy + create_user_and_group + create_app_dir + download_binary + +} + +main \ No newline at end of file