Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git

2019-08-31 Thread Michał Górny
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



signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git

2019-08-17 Thread Michael Orlitzky
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.




Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git

2019-08-17 Thread Michał Górny
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



signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git

2019-08-17 Thread Michael Orlitzky
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?



Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git

2019-08-17 Thread Michał Górny
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



signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git

2019-08-17 Thread Ulrich Mueller
> 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


signature.asc
Description: PGP signature


[gentoo-dev] [PATCH 3/5] www-apps/gitea: Use acct-{group,user}/git

2019-08-17 Thread Michał Górny
Signed-off-by: Michał Górny 
---
 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 ..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