public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 1/5] acct-group/git: Add git group, GID 196
@ 2019-08-17  7:06 Michał Górny
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 2/5] acct-user/git: Add git user, UID 196 Michał Górny
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17  7:06 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Add 'git' group.  UID 196 is used on Arch Linux for gitolite which
serves the same purpose as 'git' in Gentoo.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 acct-group/git/git-0.ebuild | 8 ++++++++
 acct-group/git/metadata.xml | 8 ++++++++
 2 files changed, 16 insertions(+)
 create mode 100644 acct-group/git/git-0.ebuild
 create mode 100644 acct-group/git/metadata.xml

diff --git a/acct-group/git/git-0.ebuild b/acct-group/git/git-0.ebuild
new file mode 100644
index 000000000000..15d83cb050a0
--- /dev/null
+++ b/acct-group/git/git-0.ebuild
@@ -0,0 +1,8 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit acct-group
+
+ACCT_GROUP_ID=196
diff --git a/acct-group/git/metadata.xml b/acct-group/git/metadata.xml
new file mode 100644
index 000000000000..0319eec4c8be
--- /dev/null
+++ b/acct-group/git/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>mgorny@gentoo.org</email>
+		<name>Michał Górny</name>
+	</maintainer>
+</pkgmetadata>
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH 2/5] acct-user/git: Add git user, UID 196
  2019-08-17  7:06 [gentoo-dev] [PATCH 1/5] acct-group/git: Add git group, GID 196 Michał Górny
@ 2019-08-17  7:06 ` Michał Górny
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git Michał Górny
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17  7:06 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Add 'git' user.  UID 196 is used on Arch Linux for gitolite which serves
the same purpose as 'git' in Gentoo.

Note that since we have multiple git hosting providers in Gentoo,
and they use disjoint home directories, we need to use USE flags to
control the provider used.  Upon switching flags, the home directory
for git user will be updated accordingly to permit SSH access.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 acct-user/git/git-0.ebuild | 29 +++++++++++++++++++++++++++++
 acct-user/git/metadata.xml | 15 +++++++++++++++
 2 files changed, 44 insertions(+)
 create mode 100644 acct-user/git/git-0.ebuild
 create mode 100644 acct-user/git/metadata.xml

diff --git a/acct-user/git/git-0.ebuild b/acct-user/git/git-0.ebuild
new file mode 100644
index 000000000000..384b3bd703e6
--- /dev/null
+++ b/acct-user/git/git-0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit acct-user
+
+DESCRIPTION="Git repository hosting user"
+
+IUSE="gitea gitolite"
+REQUIRED_USE="^^ ( gitea gitolite )"
+
+ACCT_USER_ID=196
+ACCT_USER_HOME_OWNER=git:git
+ACCT_USER_HOME_PERMS=750
+ACCT_USER_SHELL=/bin/sh
+ACCT_USER_GROUPS=( git )
+
+acct-user_add_deps
+
+pkg_setup() {
+	if use gitea; then
+		ACCT_USER_HOME=/var/lib/gitea
+	elif use gitolite; then
+		ACCT_USER_HOME=/var/lib/gitolite
+	else
+		die "Incorrect USE flag combination"
+	fi
+}
diff --git a/acct-user/git/metadata.xml b/acct-user/git/metadata.xml
new file mode 100644
index 000000000000..159d766b8251
--- /dev/null
+++ b/acct-user/git/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>mgorny@gentoo.org</email>
+		<name>Michał Górny</name>
+	</maintainer>
+	<use>
+		<flag name="gitea">Set home directory for git hosting
+			via <pkg>www-apps/gitea</pkg>.</flag>
+		<flag name="gitolite">Set home directory for git hosting
+			via <pkg>dev-vcs/gitolite</pkg>
+			or <pkg>dev-vcs/gitolite-gentoo</pkg>.</flag>
+	</use>
+</pkgmetadata>
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git
  2019-08-17  7:06 [gentoo-dev] [PATCH 1/5] acct-group/git: Add git group, GID 196 Michał Górny
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 2/5] acct-user/git: Add git user, UID 196 Michał Górny
@ 2019-08-17  7:06 ` Michał Górny
  2019-08-17  8:52   ` Ulrich Mueller
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 4/5] dev-vcs/gitolite: " Michał Górny
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 17+ messages in thread
From: Michał Górny @ 2019-08-17  7:06 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 www-apps/gitea/gitea-1.8.3-r1.ebuild | 102 +++++++++++++++++++++++++++
 1 file changed, 102 insertions(+)
 create mode 100644 www-apps/gitea/gitea-1.8.3-r1.ebuild

diff --git a/www-apps/gitea/gitea-1.8.3-r1.ebuild b/www-apps/gitea/gitea-1.8.3-r1.ebuild
new file mode 100644
index 000000000000..e78e0438b47a
--- /dev/null
+++ b/www-apps/gitea/gitea-1.8.3-r1.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit golang-vcs-snapshot systemd user
+
+EGO_PN="code.gitea.io/gitea"
+
+DESCRIPTION="A painless self-hosted Git service"
+HOMEPAGE="https://gitea.io"
+SRC_URI="https://github.com/go-gitea/gitea/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64"
+IUSE="pam sqlite"
+
+COMMON_DEPEND="
+	acct-group/git
+	acct-user/git[gitea]
+	pam? ( sys-libs/pam )"
+DEPEND="${COMMON_DEPEND}
+	dev-go/go-bindata"
+RDEPEND="${COMMON_DEPEND}
+	dev-vcs/git"
+
+DOCS=( custom/conf/app.ini.sample CONTRIBUTING.md README.md )
+S="${WORKDIR}/${P}/src/${EGO_PN}"
+
+gitea_make() {
+	local my_tags=(
+		bindata
+		$(usev pam)
+		$(usex sqlite 'sqlite sqlite_unlock_notify' '')
+	)
+	local my_makeopt=(
+		DRONE_TAG=${PV}
+		TAGS="${my_tags[@]}"
+	)
+	GOPATH=${WORKDIR}/${P}:$(get_golibdir_gopath) emake "${my_makeopt[@]}" "$@"
+}
+
+src_prepare() {
+	default
+	sed -i \
+		-e "s#^RUN_MODE = dev#RUN_MODE = prod#"                                     \
+		-e "s#^ROOT =#ROOT = ${EPREFIX}/var/lib/gitea/gitea-repositories#"          \
+		-e "s#^ROOT_PATH =#ROOT_PATH = ${EPREFIX}/var/log/gitea#"                   \
+		-e "s#^APP_DATA_PATH = data#APP_DATA_PATH = ${EPREFIX}/var/lib/gitea/data#" \
+		-e "s#^HTTP_ADDR = 0.0.0.0#HTTP_ADDR = 127.0.0.1#"                          \
+		-e "s#^MODE = console#MODE = file#"                                         \
+		-e "s#^LEVEL = Trace#LEVEL = Info#"                                         \
+		-e "s#^LOG_SQL = true#LOG_SQL = false#"                                     \
+		-e "s#^DISABLE_ROUTER_LOG = false#DISABLE_ROUTER_LOG = true#"               \
+		-e "s#^APP_ID =#;APP_ID =#"                                                 \
+		-e "s#^TRUSTED_FACETS =#;TRUSTED_FACETS =#"                                 \
+		custom/conf/app.ini.sample || die
+	if use sqlite ; then
+		sed -i -e "s#^DB_TYPE = .*#DB_TYPE = sqlite3#" custom/conf/app.ini.sample || die
+	fi
+
+	gitea_make generate
+}
+
+src_compile() {
+	gitea_make build
+}
+
+src_test() {
+	gitea_make test
+}
+
+src_install() {
+	dobin gitea
+
+	einstalldocs
+
+	newconfd "${FILESDIR}"/gitea.confd-r1 gitea
+	newinitd "${FILESDIR}"/gitea.initd-r3 gitea
+	systemd_newunit "${FILESDIR}"/gitea.service-r2 gitea.service
+
+	insinto /etc/gitea
+	newins custom/conf/app.ini.sample app.ini
+	fowners root:git /etc/gitea/{,app.ini}
+	fperms g+w,o-rwx /etc/gitea/{,app.ini}
+
+	diropts -m0750 -o git -g git
+	keepdir /var/lib/gitea/custom /var/lib/gitea/data
+	keepdir /var/log/gitea
+}
+
+pkg_postinst() {
+	if [[ -e "${EROOT}/var/lib/gitea/conf/app.ini" ]]; then
+		ewarn "The configuration path has been changed to ${EROOT}/etc/gitea/app.ini."
+		ewarn "Please move your configuration from ${EROOT}/var/lib/gitea/conf/app.ini"
+		ewarn "and adapt the gitea-repositories hooks and ssh authorized_keys."
+		ewarn "Depending on your configuration you should run something like:"
+		ewarn "sed -i -e 's#${EROOT}/var/lib/gitea/conf/app.ini#${EROOT}/etc/gitea/app.ini#' \\"
+		ewarn "  /var/lib/gitea/gitea-repositories/*/*/hooks/*/* \\"
+		ewarn "  /var/lib/gitea/.ssh/authorized_keys"
+	fi
+}
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH 4/5] dev-vcs/gitolite: Use acct-{group,user}/git
  2019-08-17  7:06 [gentoo-dev] [PATCH 1/5] acct-group/git: Add git group, GID 196 Michał Górny
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 2/5] acct-user/git: Add git user, UID 196 Michał Górny
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git Michał Górny
@ 2019-08-17  7:06 ` Michał Górny
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 5/5] dev-vcs/gitolite-gentoo: " Michał Górny
  2019-08-17 20:48 ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
  4 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17  7:06 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild | 90 ++++++++++++++++++++++
 dev-vcs/gitolite/gitolite-9999.ebuild      | 22 ++----
 2 files changed, 95 insertions(+), 17 deletions(-)
 create mode 100644 dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild

diff --git a/dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild b/dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild
new file mode 100644
index 000000000000..39e318eef01b
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="https://github.com/sitaramc/${PN}.git"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="https://github.com/sitaramc/gitolite"
+if [[ ${PV} != *9999 ]]; then
+	SRC_URI="https://github.com/sitaramc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~x86"
+else
+	SRC_URI=""
+	KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux tools"
+
+DEPEND="
+	acct-group/git
+	acct-user/git[gitolite]
+	dev-lang/perl
+	virtual/perl-File-Path
+	virtual/perl-File-Temp
+	>=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+	!app-vim/gitolite-syntax
+	!dev-vcs/gitolite-gentoo
+	selinux? ( sec-policy/selinux-gitosis )
+	dev-perl/JSON"
+
+PATCHES=( )
+
+src_prepare() {
+	default
+	echo $PF > src/VERSION || die
+}
+
+src_install() {
+	local uexec=/usr/libexec/${PN}
+
+	rm -rf src/lib/Gitolite/Test{,.pm}
+	insinto $VENDOR_LIB
+	doins -r src/lib/Gitolite
+
+	dodoc README.markdown CHANGELOG
+	# These are meant by upstream as examples, you are strongly recommended to
+	# customize them for your needs.
+	dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+	insinto /usr/share/vim/vimfiles
+	doins -r contrib/vim/*
+
+	insopts -m0755
+	insinto $uexec
+	doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+	doins -r contrib/{commands,triggers,hooks}
+
+	insopts -m0644
+	doins src/VERSION
+
+	exeinto $uexec
+	doexe src/gitolite{,-shell}
+
+	dodir /usr/bin
+	for bin in gitolite{,-shell}; do
+		dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+	done
+
+	if use tools; then
+		dobin check-g2-compat convert-gitosis-conf
+		dobin contrib/utils/rc-format-v3.4
+	fi
+
+	fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+	if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+		ewarn
+		elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+		elog "Please read http://gitolite.com/gitolite/migr/index.html first!"
+	fi
+}
diff --git a/dev-vcs/gitolite/gitolite-9999.ebuild b/dev-vcs/gitolite/gitolite-9999.ebuild
index 928bbe83926c..c97712af0d4f 100644
--- a/dev-vcs/gitolite/gitolite-9999.ebuild
+++ b/dev-vcs/gitolite/gitolite-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -22,7 +22,10 @@ LICENSE="GPL-2"
 SLOT="0"
 IUSE="selinux tools vim-syntax"
 
-DEPEND="dev-lang/perl
+DEPEND="
+	acct-group/git
+	acct-user/git[gitolite]
+	dev-lang/perl
 	virtual/perl-File-Path
 	virtual/perl-File-Temp
 	>=dev-vcs/git-1.6.6"
@@ -32,11 +35,6 @@ RDEPEND="${DEPEND}
 	vim-syntax? ( app-vim/gitolite-syntax )
 	dev-perl/JSON"
 
-pkg_setup() {
-	enewgroup git
-	enewuser git -1 /bin/sh /var/lib/gitolite git
-}
-
 src_prepare() {
 	echo $PF > src/VERSION
 }
@@ -74,10 +72,6 @@ src_install() {
 		dobin contrib/utils/rc-format-v3.4
 	fi
 
-	keepdir /var/lib/gitolite
-	fowners git:git /var/lib/gitolite
-	fperms 750 /var/lib/gitolite
-
 	fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
 }
 
@@ -87,10 +81,4 @@ pkg_postinst() {
 		elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
 		elog "Please read http://gitolite.com/gitolite/migr/index.html first!"
 	fi
-
-	# bug 352291
-	ewarn
-	elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
-	elog "Especially if you're migrating from gitosis."
-	ewarn
 }
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH 5/5] dev-vcs/gitolite-gentoo: Use acct-{group,user}/git
  2019-08-17  7:06 [gentoo-dev] [PATCH 1/5] acct-group/git: Add git group, GID 196 Michał Górny
                   ` (2 preceding siblings ...)
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 4/5] dev-vcs/gitolite: " Michał Górny
@ 2019-08-17  7:06 ` Michał Górny
  2019-08-17 20:48 ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
  4 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17  7:06 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 .../gitolite-gentoo-3.6.6.1-r2.ebuild         | 93 +++++++++++++++++++
 .../gitolite-gentoo-9999.ebuild               | 25 +----
 2 files changed, 98 insertions(+), 20 deletions(-)
 create mode 100644 dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.6.1-r2.ebuild

diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.6.1-r2.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.6.1-r2.ebuild
new file mode 100644
index 000000000000..79f26e40c16f
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.6.1-r2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="https://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+	SRC_URI="mirror://gentoo/${P}.tar.bz2"
+	KEYWORDS="~amd64 ~x86"
+else
+	SRC_URI=""
+	KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux tools vim-syntax"
+
+DEPEND="
+	acct-group/git
+	acct-user/git[gitolite]
+	dev-lang/perl
+	virtual/perl-File-Path
+	virtual/perl-File-Temp
+	>=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+	!dev-vcs/gitolite
+	vim-syntax? ( app-vim/gitolite-syntax )
+	selinux? ( sec-policy/selinux-gitosis )
+	>=dev-perl/Net-SSH-AuthorizedKeysFile-0.17
+	dev-perl/JSON"
+
+PATCHES=( )
+
+src_prepare() {
+	default
+	echo "${PF}-gentoo" > src/VERSION || die
+}
+
+src_install() {
+	local uexec=/usr/libexec/${PN}
+
+	rm -rf src/lib/Gitolite/Test{,.pm}
+	insinto $VENDOR_LIB
+	doins -r src/lib/Gitolite
+
+	dodoc README.markdown CHANGELOG
+	# These are meant by upstream as examples, you are strongly recommended to
+	# customize them for your needs.
+	dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+	insopts -m0755
+	insinto $uexec
+	doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+	doins -r contrib/{commands,triggers,hooks}
+
+	insopts -m0644
+	doins src/VERSION
+
+	exeinto $uexec
+	doexe src/gitolite{,-shell}
+
+	dodir /usr/bin
+	for bin in gitolite{,-shell}; do
+		dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+	done
+
+	if use tools; then
+		dobin check-g2-compat convert-gitosis-conf
+		dobin contrib/utils/rc-format-v3.4
+	fi
+
+	fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+	if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+		ewarn
+		elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+		elog "Please read http://gitolite.com/gitolite/migr.html first!"
+		ewarn
+		elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+		elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+		elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+		ewarn
+	fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild
index 7120a4c7c21d..325697741407 100644
--- a/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -22,7 +22,10 @@ LICENSE="GPL-2"
 SLOT="0"
 IUSE="selinux tools vim-syntax"
 
-DEPEND="dev-lang/perl
+DEPEND="
+	acct-group/git
+	acct-user/git[gitolite]
+	dev-lang/perl
 	virtual/perl-File-Path
 	virtual/perl-File-Temp
 	>=dev-vcs/git-1.6.6"
@@ -33,11 +36,6 @@ RDEPEND="${DEPEND}
 	>=dev-perl/Net-SSH-AuthorizedKeysFile-0.17
 	dev-perl/JSON"
 
-pkg_setup() {
-	enewgroup git
-	enewuser git -1 /bin/sh /var/lib/gitolite git
-}
-
 src_prepare() {
 	echo "${PF}-gentoo" > src/VERSION
 }
@@ -75,10 +73,6 @@ src_install() {
 		dobin contrib/utils/rc-format-v3.4
 	fi
 
-	keepdir /var/lib/gitolite
-	fowners git:git /var/lib/gitolite
-	fperms 750 /var/lib/gitolite
-
 	fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
 }
 
@@ -93,13 +87,4 @@ pkg_postinst() {
 		elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
 		ewarn
 	fi
-
-	# bug 352291
-	gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
-	if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
-		ewarn
-		elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
-		elog "Especially if you're migrating from gitosis."
-		ewarn
-	fi
 }
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git Michał Górny
@ 2019-08-17  8:52   ` Ulrich Mueller
  2019-08-17  8:54     ` Michał Górny
  0 siblings, 1 reply; 17+ messages in thread
From: Ulrich Mueller @ 2019-08-17  8:52 UTC (permalink / raw
  To: Michał Górny; +Cc: gentoo-dev, xdch47, nemunaire, idl0r

[-- Attachment #1: Type: text/plain, Size: 370 bytes --]

>>>>> On Sat, 17 Aug 2019, Michał Górny wrote:

> +RDEPEND="${COMMON_DEPEND}
> +	dev-vcs/git"

Shouldn't there be a blocker against dev-vcs/gitolite{,-gentoo}
(and vice versa)? These packages cannot be installed at the same time,
and I guess that a direct blocker would result in a friendlier error
message than REQUIRED_USE magic in acct-user/git.

Ulrich

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git
  2019-08-17  8:52   ` Ulrich Mueller
@ 2019-08-17  8:54     ` Michał Górny
  2019-08-17 13:42       ` Michael Orlitzky
  0 siblings, 1 reply; 17+ messages in thread
From: Michał Górny @ 2019-08-17  8:54 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r

[-- Attachment #1: Type: text/plain, Size: 567 bytes --]

On Sat, 2019-08-17 at 10:52 +0200, Ulrich Mueller wrote:
> > > > > > On Sat, 17 Aug 2019, Michał Górny wrote:
> > +RDEPEND="${COMMON_DEPEND}
> > +	dev-vcs/git"
> 
> Shouldn't there be a blocker against dev-vcs/gitolite{,-gentoo}
> (and vice versa)? These packages cannot be installed at the same time,
> and I guess that a direct blocker would result in a friendlier error
> message than REQUIRED_USE magic in acct-user/git.
> 

You're probably right.  I'll update the patches to add mutual blockers
everywhere.

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git
  2019-08-17  8:54     ` Michał Górny
@ 2019-08-17 13:42       ` Michael Orlitzky
  2019-08-17 20:43         ` Michał Górny
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Orlitzky @ 2019-08-17 13:42 UTC (permalink / raw
  To: gentoo-dev

On 8/17/19 4:54 AM, Michał Górny wrote:
> On Sat, 2019-08-17 at 10:52 +0200, Ulrich Mueller wrote:
>>
>> Shouldn't there be a blocker against dev-vcs/gitolite{,-gentoo}
>> (and vice versa)? These packages cannot be installed at the same time,
>> and I guess that a direct blocker would result in a friendlier error
>> message than REQUIRED_USE magic in acct-user/git.
>>
> 
> You're probably right.  I'll update the patches to add mutual blockers
> everywhere.
> 

I discovered on the pull request that "git" is just the name that the
upstream examples use, but isn't required for either gitolite or gitea:

  * https://docs.gitea.io/en-us/install-from-binary/

  * https://gitolite.com/gitolite/concepts#the-hosting-user

For example, on Fedora and Debian, gitolite uses a "gitolite" user. We
should also be able to use "gitea" for gitea, meaning that the two
packages don't have to block each other, and that they don't have to
fight over the same username.

I realize we'd have to tell people how to rename the account to support
upgrades -- but is there some other reason to keep the shared "git" name?


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git
  2019-08-17 13:42       ` Michael Orlitzky
@ 2019-08-17 20:43         ` Michał Górny
  2019-08-17 21:29           ` Michael Orlitzky
  0 siblings, 1 reply; 17+ messages in thread
From: Michał Górny @ 2019-08-17 20:43 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1459 bytes --]

On Sat, 2019-08-17 at 09:42 -0400, Michael Orlitzky wrote:
> On 8/17/19 4:54 AM, Michał Górny wrote:
> > On Sat, 2019-08-17 at 10:52 +0200, Ulrich Mueller wrote:
> > > Shouldn't there be a blocker against dev-vcs/gitolite{,-gentoo}
> > > (and vice versa)? These packages cannot be installed at the same time,
> > > and I guess that a direct blocker would result in a friendlier error
> > > message than REQUIRED_USE magic in acct-user/git.
> > > 
> > 
> > You're probably right.  I'll update the patches to add mutual blockers
> > everywhere.
> > 
> 
> I discovered on the pull request that "git" is just the name that the
> upstream examples use, but isn't required for either gitolite or gitea:
> 
>   * https://docs.gitea.io/en-us/install-from-binary/
> 
>   * https://gitolite.com/gitolite/concepts#the-hosting-user
> 
> For example, on Fedora and Debian, gitolite uses a "gitolite" user. We
> should also be able to use "gitea" for gitea, meaning that the two
> packages don't have to block each other, and that they don't have to
> fight over the same username.
> 
> I realize we'd have to tell people how to rename the account to support
> upgrades -- but is there some other reason to keep the shared "git" name?

The argument I've been told is that users expect 'git@...' to work
as remote URI on their boxes.  They don't want users to bind the URI to
specific implementation.

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196
  2019-08-17  7:06 [gentoo-dev] [PATCH 1/5] acct-group/git: Add git group, GID 196 Michał Górny
                   ` (3 preceding siblings ...)
  2019-08-17  7:06 ` [gentoo-dev] [PATCH 5/5] dev-vcs/gitolite-gentoo: " Michał Górny
@ 2019-08-17 20:48 ` Michał Górny
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 2/5] acct-user/git: Add git user, UID 196 Michał Górny
                     ` (4 more replies)
  4 siblings, 5 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17 20:48 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Add 'git' group.  UID 196 is used on Arch Linux for gitolite which
serves the same purpose as 'git' in Gentoo.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 acct-group/git/git-0.ebuild | 8 ++++++++
 acct-group/git/metadata.xml | 8 ++++++++
 2 files changed, 16 insertions(+)
 create mode 100644 acct-group/git/git-0.ebuild
 create mode 100644 acct-group/git/metadata.xml

diff --git a/acct-group/git/git-0.ebuild b/acct-group/git/git-0.ebuild
new file mode 100644
index 000000000000..15d83cb050a0
--- /dev/null
+++ b/acct-group/git/git-0.ebuild
@@ -0,0 +1,8 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit acct-group
+
+ACCT_GROUP_ID=196
diff --git a/acct-group/git/metadata.xml b/acct-group/git/metadata.xml
new file mode 100644
index 000000000000..0319eec4c8be
--- /dev/null
+++ b/acct-group/git/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>mgorny@gentoo.org</email>
+		<name>Michał Górny</name>
+	</maintainer>
+</pkgmetadata>
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH v2 2/5] acct-user/git: Add git user, UID 196
  2019-08-17 20:48 ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
@ 2019-08-17 20:48   ` Michał Górny
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 3/5] www-apps/gitea: Use acct-{group,user}/git Michał Górny
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17 20:48 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Add 'git' user.  UID 196 is used on Arch Linux for gitolite which serves
the same purpose as 'git' in Gentoo.

Note that since we have multiple git hosting providers in Gentoo,
and they use disjoint home directories, we need to use USE flags to
control the provider used.  Upon switching flags, the home directory
for git user will be updated accordingly to permit SSH access.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 acct-user/git/git-0.ebuild | 29 +++++++++++++++++++++++++++++
 acct-user/git/metadata.xml | 15 +++++++++++++++
 2 files changed, 44 insertions(+)
 create mode 100644 acct-user/git/git-0.ebuild
 create mode 100644 acct-user/git/metadata.xml

diff --git a/acct-user/git/git-0.ebuild b/acct-user/git/git-0.ebuild
new file mode 100644
index 000000000000..384b3bd703e6
--- /dev/null
+++ b/acct-user/git/git-0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit acct-user
+
+DESCRIPTION="Git repository hosting user"
+
+IUSE="gitea gitolite"
+REQUIRED_USE="^^ ( gitea gitolite )"
+
+ACCT_USER_ID=196
+ACCT_USER_HOME_OWNER=git:git
+ACCT_USER_HOME_PERMS=750
+ACCT_USER_SHELL=/bin/sh
+ACCT_USER_GROUPS=( git )
+
+acct-user_add_deps
+
+pkg_setup() {
+	if use gitea; then
+		ACCT_USER_HOME=/var/lib/gitea
+	elif use gitolite; then
+		ACCT_USER_HOME=/var/lib/gitolite
+	else
+		die "Incorrect USE flag combination"
+	fi
+}
diff --git a/acct-user/git/metadata.xml b/acct-user/git/metadata.xml
new file mode 100644
index 000000000000..159d766b8251
--- /dev/null
+++ b/acct-user/git/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>mgorny@gentoo.org</email>
+		<name>Michał Górny</name>
+	</maintainer>
+	<use>
+		<flag name="gitea">Set home directory for git hosting
+			via <pkg>www-apps/gitea</pkg>.</flag>
+		<flag name="gitolite">Set home directory for git hosting
+			via <pkg>dev-vcs/gitolite</pkg>
+			or <pkg>dev-vcs/gitolite-gentoo</pkg>.</flag>
+	</use>
+</pkgmetadata>
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH v2 3/5] www-apps/gitea: Use acct-{group,user}/git
  2019-08-17 20:48 ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 2/5] acct-user/git: Add git user, UID 196 Michał Górny
@ 2019-08-17 20:48   ` Michał Górny
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 4/5] dev-vcs/gitolite: " Michał Górny
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17 20:48 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 www-apps/gitea/gitea-1.8.3-r1.ebuild | 104 +++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)
 create mode 100644 www-apps/gitea/gitea-1.8.3-r1.ebuild

diff --git a/www-apps/gitea/gitea-1.8.3-r1.ebuild b/www-apps/gitea/gitea-1.8.3-r1.ebuild
new file mode 100644
index 000000000000..1ea27d61e47f
--- /dev/null
+++ b/www-apps/gitea/gitea-1.8.3-r1.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit golang-vcs-snapshot systemd user
+
+EGO_PN="code.gitea.io/gitea"
+
+DESCRIPTION="A painless self-hosted Git service"
+HOMEPAGE="https://gitea.io"
+SRC_URI="https://github.com/go-gitea/gitea/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64"
+IUSE="pam sqlite"
+
+COMMON_DEPEND="
+	acct-group/git
+	acct-user/git[gitea]
+	pam? ( sys-libs/pam )"
+DEPEND="${COMMON_DEPEND}
+	dev-go/go-bindata"
+RDEPEND="${COMMON_DEPEND}
+	dev-vcs/git
+	!dev-vcs/gitolite
+	!dev-vcs/gitolite-gentoo"
+
+DOCS=( custom/conf/app.ini.sample CONTRIBUTING.md README.md )
+S="${WORKDIR}/${P}/src/${EGO_PN}"
+
+gitea_make() {
+	local my_tags=(
+		bindata
+		$(usev pam)
+		$(usex sqlite 'sqlite sqlite_unlock_notify' '')
+	)
+	local my_makeopt=(
+		DRONE_TAG=${PV}
+		TAGS="${my_tags[@]}"
+	)
+	GOPATH=${WORKDIR}/${P}:$(get_golibdir_gopath) emake "${my_makeopt[@]}" "$@"
+}
+
+src_prepare() {
+	default
+	sed -i \
+		-e "s#^RUN_MODE = dev#RUN_MODE = prod#"                                     \
+		-e "s#^ROOT =#ROOT = ${EPREFIX}/var/lib/gitea/gitea-repositories#"          \
+		-e "s#^ROOT_PATH =#ROOT_PATH = ${EPREFIX}/var/log/gitea#"                   \
+		-e "s#^APP_DATA_PATH = data#APP_DATA_PATH = ${EPREFIX}/var/lib/gitea/data#" \
+		-e "s#^HTTP_ADDR = 0.0.0.0#HTTP_ADDR = 127.0.0.1#"                          \
+		-e "s#^MODE = console#MODE = file#"                                         \
+		-e "s#^LEVEL = Trace#LEVEL = Info#"                                         \
+		-e "s#^LOG_SQL = true#LOG_SQL = false#"                                     \
+		-e "s#^DISABLE_ROUTER_LOG = false#DISABLE_ROUTER_LOG = true#"               \
+		-e "s#^APP_ID =#;APP_ID =#"                                                 \
+		-e "s#^TRUSTED_FACETS =#;TRUSTED_FACETS =#"                                 \
+		custom/conf/app.ini.sample || die
+	if use sqlite ; then
+		sed -i -e "s#^DB_TYPE = .*#DB_TYPE = sqlite3#" custom/conf/app.ini.sample || die
+	fi
+
+	gitea_make generate
+}
+
+src_compile() {
+	gitea_make build
+}
+
+src_test() {
+	gitea_make test
+}
+
+src_install() {
+	dobin gitea
+
+	einstalldocs
+
+	newconfd "${FILESDIR}"/gitea.confd-r1 gitea
+	newinitd "${FILESDIR}"/gitea.initd-r3 gitea
+	systemd_newunit "${FILESDIR}"/gitea.service-r2 gitea.service
+
+	insinto /etc/gitea
+	newins custom/conf/app.ini.sample app.ini
+	fowners root:git /etc/gitea/{,app.ini}
+	fperms g+w,o-rwx /etc/gitea/{,app.ini}
+
+	diropts -m0750 -o git -g git
+	keepdir /var/lib/gitea/custom /var/lib/gitea/data
+	keepdir /var/log/gitea
+}
+
+pkg_postinst() {
+	if [[ -e "${EROOT}/var/lib/gitea/conf/app.ini" ]]; then
+		ewarn "The configuration path has been changed to ${EROOT}/etc/gitea/app.ini."
+		ewarn "Please move your configuration from ${EROOT}/var/lib/gitea/conf/app.ini"
+		ewarn "and adapt the gitea-repositories hooks and ssh authorized_keys."
+		ewarn "Depending on your configuration you should run something like:"
+		ewarn "sed -i -e 's#${EROOT}/var/lib/gitea/conf/app.ini#${EROOT}/etc/gitea/app.ini#' \\"
+		ewarn "  /var/lib/gitea/gitea-repositories/*/*/hooks/*/* \\"
+		ewarn "  /var/lib/gitea/.ssh/authorized_keys"
+	fi
+}
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH v2 4/5] dev-vcs/gitolite: Use acct-{group,user}/git
  2019-08-17 20:48 ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 2/5] acct-user/git: Add git user, UID 196 Michał Górny
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 3/5] www-apps/gitea: Use acct-{group,user}/git Michał Górny
@ 2019-08-17 20:48   ` Michał Górny
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 5/5] dev-vcs/gitolite-gentoo: " Michał Górny
  2019-09-08  9:24   ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
  4 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17 20:48 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild | 91 ++++++++++++++++++++++
 dev-vcs/gitolite/gitolite-9999.ebuild      | 23 ++----
 2 files changed, 97 insertions(+), 17 deletions(-)
 create mode 100644 dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild

diff --git a/dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild b/dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild
new file mode 100644
index 000000000000..5ee33241a771
--- /dev/null
+++ b/dev-vcs/gitolite/gitolite-3.6.11-r1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="https://github.com/sitaramc/${PN}.git"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker"
+HOMEPAGE="https://github.com/sitaramc/gitolite"
+if [[ ${PV} != *9999 ]]; then
+	SRC_URI="https://github.com/sitaramc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~x86"
+else
+	SRC_URI=""
+	KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux tools"
+
+DEPEND="
+	acct-group/git
+	acct-user/git[gitolite]
+	dev-lang/perl
+	virtual/perl-File-Path
+	virtual/perl-File-Temp
+	>=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+	!app-vim/gitolite-syntax
+	!dev-vcs/gitolite-gentoo
+	!www-apps/gitea
+	selinux? ( sec-policy/selinux-gitosis )
+	dev-perl/JSON"
+
+PATCHES=( )
+
+src_prepare() {
+	default
+	echo $PF > src/VERSION || die
+}
+
+src_install() {
+	local uexec=/usr/libexec/${PN}
+
+	rm -rf src/lib/Gitolite/Test{,.pm}
+	insinto $VENDOR_LIB
+	doins -r src/lib/Gitolite
+
+	dodoc README.markdown CHANGELOG
+	# These are meant by upstream as examples, you are strongly recommended to
+	# customize them for your needs.
+	dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+	insinto /usr/share/vim/vimfiles
+	doins -r contrib/vim/*
+
+	insopts -m0755
+	insinto $uexec
+	doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+	doins -r contrib/{commands,triggers,hooks}
+
+	insopts -m0644
+	doins src/VERSION
+
+	exeinto $uexec
+	doexe src/gitolite{,-shell}
+
+	dodir /usr/bin
+	for bin in gitolite{,-shell}; do
+		dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+	done
+
+	if use tools; then
+		dobin check-g2-compat convert-gitosis-conf
+		dobin contrib/utils/rc-format-v3.4
+	fi
+
+	fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+	if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+		ewarn
+		elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+		elog "Please read http://gitolite.com/gitolite/migr/index.html first!"
+	fi
+}
diff --git a/dev-vcs/gitolite/gitolite-9999.ebuild b/dev-vcs/gitolite/gitolite-9999.ebuild
index 928bbe83926c..ba689d0e780b 100644
--- a/dev-vcs/gitolite/gitolite-9999.ebuild
+++ b/dev-vcs/gitolite/gitolite-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -22,21 +22,20 @@ LICENSE="GPL-2"
 SLOT="0"
 IUSE="selinux tools vim-syntax"
 
-DEPEND="dev-lang/perl
+DEPEND="
+	acct-group/git
+	acct-user/git[gitolite]
+	dev-lang/perl
 	virtual/perl-File-Path
 	virtual/perl-File-Temp
 	>=dev-vcs/git-1.6.6"
 RDEPEND="${DEPEND}
 	!dev-vcs/gitolite-gentoo
+	!www-apps/gitea
 	selinux? ( sec-policy/selinux-gitosis )
 	vim-syntax? ( app-vim/gitolite-syntax )
 	dev-perl/JSON"
 
-pkg_setup() {
-	enewgroup git
-	enewuser git -1 /bin/sh /var/lib/gitolite git
-}
-
 src_prepare() {
 	echo $PF > src/VERSION
 }
@@ -74,10 +73,6 @@ src_install() {
 		dobin contrib/utils/rc-format-v3.4
 	fi
 
-	keepdir /var/lib/gitolite
-	fowners git:git /var/lib/gitolite
-	fperms 750 /var/lib/gitolite
-
 	fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
 }
 
@@ -87,10 +82,4 @@ pkg_postinst() {
 		elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
 		elog "Please read http://gitolite.com/gitolite/migr/index.html first!"
 	fi
-
-	# bug 352291
-	ewarn
-	elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
-	elog "Especially if you're migrating from gitosis."
-	ewarn
 }
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [gentoo-dev] [PATCH v2 5/5] dev-vcs/gitolite-gentoo: Use acct-{group,user}/git
  2019-08-17 20:48 ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
                     ` (2 preceding siblings ...)
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 4/5] dev-vcs/gitolite: " Michał Górny
@ 2019-08-17 20:48   ` Michał Górny
  2019-09-08  9:24   ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
  4 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-08-17 20:48 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r, Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 .../gitolite-gentoo-3.6.6.1-r2.ebuild         | 94 +++++++++++++++++++
 .../gitolite-gentoo-9999.ebuild               | 26 ++---
 2 files changed, 100 insertions(+), 20 deletions(-)
 create mode 100644 dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.6.1-r2.ebuild

diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.6.1-r2.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.6.1-r2.ebuild
new file mode 100644
index 000000000000..56d7d2a3d0b2
--- /dev/null
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-3.6.6.1-r2.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.gentoo.org/proj/gitolite-gentoo"
+EGIT_MASTER=master
+
+inherit perl-module user versionator ${SCM}
+
+DESCRIPTION="Highly flexible server for git directory version tracker, Gentoo fork"
+HOMEPAGE="https://cgit.gentoo.org/proj/gitolite-gentoo.git"
+if [[ ${PV} != *9999 ]]; then
+	SRC_URI="mirror://gentoo/${P}.tar.bz2"
+	KEYWORDS="~amd64 ~x86"
+else
+	SRC_URI=""
+	KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux tools vim-syntax"
+
+DEPEND="
+	acct-group/git
+	acct-user/git[gitolite]
+	dev-lang/perl
+	virtual/perl-File-Path
+	virtual/perl-File-Temp
+	>=dev-vcs/git-1.6.6"
+RDEPEND="${DEPEND}
+	!dev-vcs/gitolite
+	!www-apps/gitea
+	vim-syntax? ( app-vim/gitolite-syntax )
+	selinux? ( sec-policy/selinux-gitosis )
+	>=dev-perl/Net-SSH-AuthorizedKeysFile-0.17
+	dev-perl/JSON"
+
+PATCHES=( )
+
+src_prepare() {
+	default
+	echo "${PF}-gentoo" > src/VERSION || die
+}
+
+src_install() {
+	local uexec=/usr/libexec/${PN}
+
+	rm -rf src/lib/Gitolite/Test{,.pm}
+	insinto $VENDOR_LIB
+	doins -r src/lib/Gitolite
+
+	dodoc README.markdown CHANGELOG
+	# These are meant by upstream as examples, you are strongly recommended to
+	# customize them for your needs.
+	dodoc contrib/utils/ipa_groups.pl contrib/utils/ldap_groups.sh
+
+	insopts -m0755
+	insinto $uexec
+	doins -r src/{commands,syntactic-sugar,triggers,VREF}/
+	doins -r contrib/{commands,triggers,hooks}
+
+	insopts -m0644
+	doins src/VERSION
+
+	exeinto $uexec
+	doexe src/gitolite{,-shell}
+
+	dodir /usr/bin
+	for bin in gitolite{,-shell}; do
+		dosym /usr/libexec/${PN}/${bin} /usr/bin/${bin}
+	done
+
+	if use tools; then
+		dobin check-g2-compat convert-gitosis-conf
+		dobin contrib/utils/rc-format-v3.4
+	fi
+
+	fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
+}
+
+pkg_postinst() {
+	if [[ "$(get_major_version $REPLACING_VERSIONS)" == "2" ]]; then
+		ewarn
+		elog "***NOTE*** This is a major upgrade and will likely break your existing gitolite-2.x setup!"
+		elog "Please read http://gitolite.com/gitolite/migr.html first!"
+		ewarn
+		elog "***NOTE*** If you're using the \"umask\" feature of ${PN}-2.x:"
+		elog "You'll have to replace each \"umask = ...\" option by \"option umask = ...\""
+		elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
+		ewarn
+	fi
+}
diff --git a/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild b/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild
index 7120a4c7c21d..edc904c8d94a 100644
--- a/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild
+++ b/dev-vcs/gitolite-gentoo/gitolite-gentoo-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -22,22 +22,21 @@ LICENSE="GPL-2"
 SLOT="0"
 IUSE="selinux tools vim-syntax"
 
-DEPEND="dev-lang/perl
+DEPEND="
+	acct-group/git
+	acct-user/git[gitolite]
+	dev-lang/perl
 	virtual/perl-File-Path
 	virtual/perl-File-Temp
 	>=dev-vcs/git-1.6.6"
 RDEPEND="${DEPEND}
 	!dev-vcs/gitolite
+	!www-apps/gitea
 	vim-syntax? ( app-vim/gitolite-syntax )
 	selinux? ( sec-policy/selinux-gitosis )
 	>=dev-perl/Net-SSH-AuthorizedKeysFile-0.17
 	dev-perl/JSON"
 
-pkg_setup() {
-	enewgroup git
-	enewuser git -1 /bin/sh /var/lib/gitolite git
-}
-
 src_prepare() {
 	echo "${PF}-gentoo" > src/VERSION
 }
@@ -75,10 +74,6 @@ src_install() {
 		dobin contrib/utils/rc-format-v3.4
 	fi
 
-	keepdir /var/lib/gitolite
-	fowners git:git /var/lib/gitolite
-	fperms 750 /var/lib/gitolite
-
 	fperms 0644 ${uexec}/VREF/MERGE-CHECK # It's meant as example only
 }
 
@@ -93,13 +88,4 @@ pkg_postinst() {
 		elog "And you'll also have to enable the \"RepoUmask\" module in your .gitolite.rc"
 		ewarn
 	fi
-
-	# bug 352291
-	gitolite_home=$(awk -F: '$1 == "git" { print $6 }' /etc/passwd)
-	if [ -n "${gitolite_home}" -a "${gitolite_home}" != "/var/lib/gitolite" ]; then
-		ewarn
-		elog "Please make sure that your 'git' user has the correct homedir (/var/lib/gitolite)."
-		elog "Especially if you're migrating from gitosis."
-		ewarn
-	fi
 }
-- 
2.23.0.rc2



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git
  2019-08-17 20:43         ` Michał Górny
@ 2019-08-17 21:29           ` Michael Orlitzky
  2019-09-01  5:54             ` Michał Górny
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Orlitzky @ 2019-08-17 21:29 UTC (permalink / raw
  To: gentoo-dev

On 8/17/19 4:43 PM, Michał Górny wrote:
>>
>> I realize we'd have to tell people how to rename the account to support
>> upgrades -- but is there some other reason to keep the shared "git" name?
> 
> The argument I've been told is that users expect 'git@...' to work
> as remote URI on their boxes.  They don't want users to bind the URI to
> specific implementation.
> 

It's not really a URI... it's a username on a remote machine. And these
"users" are programmers =P

But, I can understand not wanting to tell a bunch of strangers to edit
all of their ~/.git/config files at this point.

Instead of configuring both packages to use different users, could we
configure them to share a working directory? If we give the "git" user a
home directory of /var/lib/git [0], then as far as I can tell, both
gitolite and gitea will be happy with that. They use different
configuration file names and repository locations, and wouldn't need to
block each other.


[0] This doesn't violate the guidelines that I posted since real humans
log in as this account to clone repos out of $HOME. Moreover, I don't
think that either gitolite or gitea references this path itself -- it
really belongs to the user.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git
  2019-08-17 21:29           ` Michael Orlitzky
@ 2019-09-01  5:54             ` Michał Górny
  0 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-09-01  5:54 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1778 bytes --]

On Sat, 2019-08-17 at 17:29 -0400, Michael Orlitzky wrote:
> On 8/17/19 4:43 PM, Michał Górny wrote:
> > > I realize we'd have to tell people how to rename the account to support
> > > upgrades -- but is there some other reason to keep the shared "git" name?
> > 
> > The argument I've been told is that users expect 'git@...' to work
> > as remote URI on their boxes.  They don't want users to bind the URI to
> > specific implementation.
> > 
> 
> It's not really a URI... it's a username on a remote machine. And these
> "users" are programmers =P
> 
> But, I can understand not wanting to tell a bunch of strangers to edit
> all of their ~/.git/config files at this point.
> 
> Instead of configuring both packages to use different users, could we
> configure them to share a working directory? If we give the "git" user a
> home directory of /var/lib/git [0], then as far as I can tell, both
> gitolite and gitea will be happy with that. They use different
> configuration file names and repository locations, and wouldn't need to
> block each other.

It is an interesting concept.  However, it assumes that all existing
installations need to be migrated to the new directory, and I don't
think it's safe to try to do it automatically.

So it really sounds like we're a. adding extra work on sysadmins,
and b. breaking stuff on upgrade, on the vast majority of production
systems that only care about having one of them installed.

> 
> 
> [0] This doesn't violate the guidelines that I posted since real humans
> log in as this account to clone repos out of $HOME. Moreover, I don't
> think that either gitolite or gitea references this path itself -- it
> really belongs to the user.
> 
> 

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196
  2019-08-17 20:48 ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
                     ` (3 preceding siblings ...)
  2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 5/5] dev-vcs/gitolite-gentoo: " Michał Górny
@ 2019-09-08  9:24   ` Michał Górny
  4 siblings, 0 replies; 17+ messages in thread
From: Michał Górny @ 2019-09-08  9:24 UTC (permalink / raw
  To: gentoo-dev; +Cc: xdch47, nemunaire, idl0r

[-- Attachment #1: Type: text/plain, Size: 314 bytes --]

On Sat, 2019-08-17 at 22:48 +0200, Michał Górny wrote:
> Add 'git' group.  UID 196 is used on Arch Linux for gitolite which
> serves the same purpose as 'git' in Gentoo.
> 

I have merged acct-{group,user}/git now but left specific provider
packages alone for now.

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2019-09-08  9:24 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-17  7:06 [gentoo-dev] [PATCH 1/5] acct-group/git: Add git group, GID 196 Michał Górny
2019-08-17  7:06 ` [gentoo-dev] [PATCH 2/5] acct-user/git: Add git user, UID 196 Michał Górny
2019-08-17  7:06 ` [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git Michał Górny
2019-08-17  8:52   ` Ulrich Mueller
2019-08-17  8:54     ` Michał Górny
2019-08-17 13:42       ` Michael Orlitzky
2019-08-17 20:43         ` Michał Górny
2019-08-17 21:29           ` Michael Orlitzky
2019-09-01  5:54             ` Michał Górny
2019-08-17  7:06 ` [gentoo-dev] [PATCH 4/5] dev-vcs/gitolite: " Michał Górny
2019-08-17  7:06 ` [gentoo-dev] [PATCH 5/5] dev-vcs/gitolite-gentoo: " Michał Górny
2019-08-17 20:48 ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny
2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 2/5] acct-user/git: Add git user, UID 196 Michał Górny
2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 3/5] www-apps/gitea: Use acct-{group,user}/git Michał Górny
2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 4/5] dev-vcs/gitolite: " Michał Górny
2019-08-17 20:48   ` [gentoo-dev] [PATCH v2 5/5] dev-vcs/gitolite-gentoo: " Michał Górny
2019-09-08  9:24   ` [gentoo-dev] [PATCH v2 1/5] acct-group/git: Add git group, GID 196 Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox