# Group not found during compile - but in /usr/ports/GIDs



## mix_room (Sep 27, 2014)

I am trying to port the newest version 10 of gitlab, and since it depends on gitlab-shell, also gitlab-shell. However, it fails during the staging process due to an illegal group name in a chown operation.

In the Makefile:

```
USERS=          git
GROUPS=         git
```

The compile log, with added output of /usr/ports/GIDs and /usr/ports/UIDs:

```
=======================<phase: build          >============================
===>  Building for gitlab-shell-1.9.6
cat: /wrkdirs/usr/ports/devel/gitlab-shell/work/gitlabhq-gitlab-shell-ca42556: Is a directory
cat: /wrkdirs/usr/ports/devel/gitlab-shell/work/gitlabhq-gitlab-shell-ca42556/bin: Is a directory
cat: /wrkdirs/usr/ports/devel/gitlab-shell/work/gitlabhq-gitlab-shell-ca42556/lib: Is a directory
cat: /wrkdirs/usr/ports/devel/gitlab-shell/work/gitlabhq-gitlab-shell-ca42556/hooks: Is a directory
cat: /wrkdirs/usr/ports/devel/gitlab-shell/work/gitlabhq-gitlab-shell-ca42556/support: Is a directory
cat: /wrkdirs/usr/ports/devel/gitlab-shell/work/gitlabhq-gitlab-shell-ca42556/spec: Is a directory
cat: /wrkdirs/usr/ports/devel/gitlab-shell/work/gitlabhq-gitlab-shell-ca42556/spec/vcr_cassettes: Is a directory
/bin/cat /usr/ports/UIDs | grep git
git:*:211:211::0:0:gitosis user:/usr/local/git:/bin/sh
git_daemon:*:964:964::0:0:git daemon:/nonexistent:/usr/sbin/nologin
/bin/cat /usr/ports/GIDs | grep git
git:*:211:
git_daemon:*:964:
===========================================================================
=======================<phase: run-depends    >============================
===>   gitlab-shell-1.9.6 depends on file: /usr/local/bin/ruby20 - found
===========================================================================
=======================<phase: stage          >============================
===>  Staging for gitlab-shell-1.9.6
===>   Generating temporary packing list
===> Creating users and/or groups.
/bin/mkdir -p /wrkdirs/usr/ports/devel/gitlab-shell/work/stage/usr/home/git/gitlab
chown: git: illegal group name
*** Error code 1
```

Has anybody seen a similar issue before?


----------



## mix_room (Oct 5, 2014)

This problem still persists. I think it seems very odd, using "GROUPS=" is the method suggested in the porters handbook, and the git group is in the default /usr/ports/GIDs group


----------



## junovitch@ (Oct 5, 2014)

Since it's not in the ports system yet, I would say the port hasn't been updated to handle building as non-root and building in a clean stage directory.  The port shouldn't be handling changing permissions since non-root builds don't have that ability.


----------



## mix_room (Oct 6, 2014)

The port is obviously not in the ports-tree, that is why I am attempting to port it. 

I use portshaker to feed it into my poudriere build, which works wonderfully for other ports where I want to do some local patching.

I might give it a try with NO_STAGE though, see if that makes a difference.


----------



## junovitch@ (Oct 11, 2014)

I think NO_STAGE  was removed and the ports tree is stage only.  To start, where is the working copy of the port?  Let's take a look at it and see if we can get it fixed.


----------



## dpejesh (Oct 11, 2014)

Just a shot in the dark, but are you by chance using `nscd` and cache in your /etc/nsswitch.conf?  I want to say I've run into something like this before because a negative cache hit would happen when the port build would check for the user, add the user/group since they weren't found, and then get the negative cache hit later when trying to install the package.

If so then the fix is to use the file database before cache in your /etc/nsswitch.conf config.  This way libc will always check the local files before going to the cache.


----------



## mix_room (Oct 11, 2014)

dpejesh said:
			
		

> Just a shot in the dark, but are you by chance using `nscd` and cache in your /etc/nsswitch.conf?  I want to say I've run into something like this before because a negative cache hit would happen when the port build would check for the user, add the user/group since they weren't found, and then get the negative cache hit later when trying to install the package.


Nope, nothing wierd in my /etc/nsswitch.conf, just the standard settings there. 



			
				junovitch said:
			
		

> I think NO_STAGE  was removed and the ports tree is stage only.  To start, where is the working copy of the port?  Let's take a look at it and see if we can get it fixed.


Yep, I found that out when I tried it. 
My copy is in a svn-repository, which gets checked out by portshaker, and is then copied into the poudriere ports tree. This method is not the problem. I do the same for several other ports.

I found out which part of the make process that fails. I think that it is due to a wierd way of doing things in the post-install process.


----------

