From owner-svn-src-projects@FreeBSD.ORG  Sun Dec 16 21:13:41 2012
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
 by hub.freebsd.org (Postfix) with ESMTP id 2953EB49;
 Sun, 16 Dec 2012 21:13:41 +0000 (UTC)
 (envelope-from linimon@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org
 [IPv6:2001:1900:2254:2068::e6a:0])
 by mx1.freebsd.org (Postfix) with ESMTP id E7C238FC0A;
 Sun, 16 Dec 2012 21:13:40 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
 by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBGLDevE052684;
 Sun, 16 Dec 2012 21:13:40 GMT (envelope-from linimon@svn.freebsd.org)
Received: (from linimon@localhost)
 by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBGLDeHp052681;
 Sun, 16 Dec 2012 21:13:40 GMT (envelope-from linimon@svn.freebsd.org)
Message-Id: <201212162113.qBGLDeHp052681@svn.freebsd.org>
From: Mark Linimon <linimon@FreeBSD.org>
Date: Sun, 16 Dec 2012 21:13:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject: svn commit: r244314 - projects/portbuild/scripts
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 16 Dec 2012 21:13:41 -0000

Author: linimon (doc,ports committer)
Date: Sun Dec 16 21:13:40 2012
New Revision: 244314
URL: http://svnweb.freebsd.org/changeset/base/244314

Log:
  Further work to parameterize uid and gid.

Modified:
  projects/portbuild/scripts/build
  projects/portbuild/scripts/buildproxy

Modified: projects/portbuild/scripts/build
==============================================================================
--- projects/portbuild/scripts/build	Sun Dec 16 21:10:22 2012	(r244313)
+++ projects/portbuild/scripts/build	Sun Dec 16 21:13:40 2012	(r244314)
@@ -166,7 +166,7 @@ do_create() {
     fi
 
     # create the links for the webserver under ../errorlogs/.  Note
-    # non ports-<arch> ownership of this directory!
+    # possibly different ownership of this directory!
     errorlogs=${pbd}/errorlogs
     portbuild_uid=${PORTBUILD_USER}
     if [ ! -d ${errorlogs} ]; then
@@ -583,7 +583,11 @@ pbab=${pbd}/${arch}/${branch}
 
 validate_env ${arch} ${branch} || exit 1
 
-uid=ports-${arch}
+if [ ! -z "${PORTBUILD_USER}" ]; then
+    uid=${PORTBUILD_USER}
+else
+    uid=ports-${arch}
+fi
 if [ ! -z "${PORTBUILD_GROUP}" ]; then
     gid=${PORTBUILD_GROUP}
 else

Modified: projects/portbuild/scripts/buildproxy
==============================================================================
--- projects/portbuild/scripts/buildproxy	Sun Dec 16 21:10:22 2012	(r244313)
+++ projects/portbuild/scripts/buildproxy	Sun Dec 16 21:13:40 2012	(r244314)
@@ -25,7 +25,7 @@ def validate(uid, arch):
     if uid == 0:
         return True
 
-    if getuidbyname("ports-%s" % arch) == uid:
+    if getuidbyname(portbuild_uid) == uid:
         return True
 
     return False
@@ -58,17 +58,24 @@ def process(cmd, sockfile):
 
 config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME )
 BUILDPROXY_SOCKET_FILE = config.get( 'BUILDPROXY_SOCKET_FILE' )
+PORTBUILD_USER = config.get( 'PORTBUILD_USER' )
 PORTBUILD_GROUP = config.get( 'PORTBUILD_GROUP' )
 
+portbuild_uid = PORTBUILD_USER
+if not portbuild_uid:
+    portbuild_uid = "ports-" + arch
+
 if os.path.exists(BUILDPROXY_SOCKET_FILE):
     os.unlink(BUILDPROXY_SOCKET_FILE)
 s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
 s.bind(BUILDPROXY_SOCKET_FILE)
-if not PORTBUILD_GROUP:
-    os.chmod(BUILDPROXY_SOCKET_FILE, 0600)
-else:
-    os.chmod(BUILDPROXY_SOCKET_FILE, 0660)
-    os.chown(BUILDPROXY_SOCKET_FILE, -1, getgidbyname(PORTBUILD_GROUP))
+os.chmod(BUILDPROXY_SOCKET_FILE, 0600)
+if PORTBUILD_USER:
+    if PORTBUILD_GROUP:
+        os.chown(BUILDPROXY_SOCKET_FILE, getuidbyname(PORTBUILD_USER), getgidbyname(PORTBUILD_GROUP))
+        os.chmod(BUILDPROXY_SOCKET_FILE, 0660)
+    else:
+        os.chown(BUILDPROXY_SOCKET_FILE, getuidbyname(PORTBUILD_USER), -1)
 
 s.listen(10)