From swell.k@gmail.com  Fri Jul  9 17:01:00 2010
Return-Path: <swell.k@gmail.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 040581065679
	for <FreeBSD-gnats-submit@freebsd.org>; Fri,  9 Jul 2010 17:01:00 +0000 (UTC)
	(envelope-from swell.k@gmail.com)
Received: from mail-vw0-f54.google.com (mail-vw0-f54.google.com [209.85.212.54])
	by mx1.freebsd.org (Postfix) with ESMTP id ADF078FC18
	for <FreeBSD-gnats-submit@freebsd.org>; Fri,  9 Jul 2010 17:00:59 +0000 (UTC)
Received: by vws6 with SMTP id 6so3416836vws.13
        for <FreeBSD-gnats-submit@freebsd.org>; Fri, 09 Jul 2010 10:00:55 -0700 (PDT)
Received: by 10.220.60.204 with SMTP id q12mr5392323vch.160.1278694855170;
        Fri, 09 Jul 2010 10:00:55 -0700 (PDT)
Received: from localhost (anonymizer2.torservers.net [173.244.197.210])
        by mx.google.com with ESMTPS id d12sm1234452vcn.38.2010.07.09.10.00.51
        (version=SSLv3 cipher=RC4-MD5);
        Fri, 09 Jul 2010 10:00:54 -0700 (PDT)
Message-Id: <867hl4619c.fsf@gmail.com>
Date: Fri, 09 Jul 2010 20:58:07 +0400
From: Anonymous <swell.k@gmail.com>
To: FreeBSD-gnats-submit@freebsd.org
Subject: [patch] Mk/bsd.gecko.mk: use tar(1) for copying trees

>Number:         148475
>Category:       ports
>Synopsis:       [patch] Mk/bsd.gecko.mk: use tar(1) for copying trees
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    gecko
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 09 17:10:04 UTC 2010
>Closed-Date:    Mon Feb 14 09:04:57 UTC 2011
>Last-Modified:  Mon Feb 14 09:04:57 UTC 2011
>Originator:     Anonymous
>Release:        FreeBSD 9.0-CURRENT amd64
>Organization:
>Environment:
>Description:
- use tar(1), it's more tested; instead of following links use relative
  path in them using `-s' option[1]; rather than relying on LIB{OWN,GRP}
  inherit owner from do-install target, it's more correct in
  INSTALL_AS_USER case

- don't try to outsmart user with chmod(1), rely on check-umask target

[1] I'm referring to links created with below commands in packager.mk

  ln -s $(sdkdir)/sdk/lib $(DESTDIR)$(sdkdir)/lib
  ln -s $(installdir) $(DESTDIR)$(sdkdir)/bin
  ln -s $(includedir) $(DESTDIR)$(sdkdir)/include
  ln -s $(idldir) $(DESTDIR)$(sdkdir)/idl

>How-To-Repeat:
>Fix:
--- a.diff begins here ---
Index: Mk/bsd.gecko.mk
===================================================================
RCS file: /a/.cvsup/ports/Mk/bsd.gecko.mk,v
retrieving revision 1.20
diff -u -p -r1.20 bsd.gecko.mk
--- Mk/bsd.gecko.mk	28 Mar 2010 06:30:26 -0000	1.20
+++ Mk/bsd.gecko.mk	9 Jul 2010 11:43:33 -0000
@@ -619,10 +640,9 @@ gecko-do-install:
 .for dir in ${MOZILLA_PLIST_DIRS}
 .if !exists(${PREFIX}/${dir})
 	${MKDIR} ${PREFIX}/${dir}
-	${CHMOD} 755 ${PREFIX}/${dir}
 .endif
-	cd ${FAKEDIR}/${dir} && ${FIND} . | \
-		${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/${dir}
+	${TAR} cf - -C${FAKEDIR}/${dir} -s'|${FAKEDIR}/|../../|s' . | \
+		${TAR} xof - -C${PREFIX}/${dir}
 .endfor
 .for pcfile in ${MOZ_PKGCONFIG_FILES}
 	${INSTALL_DATA} ${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc \
--- a.diff ends here ---
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->gecko 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Fri Jul 9 17:10:15 UTC 2010 
Responsible-Changed-Why:  
bsd.gecko.mk is gecko territory (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=148475 

From: Anonymous <swell.k@gmail.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/148475: [patch] Mk/bsd.gecko.mk: use tar(1) for copying trees
Date: Mon, 19 Jul 2010 00:43:39 +0400

 BTW, for some odd reason cpio(1) here on /head@{i386,amd64} doesn't set
 ownership and doesn't follow symlinks. So, after building as non-root
 installed files retain owner despite `-R ${LIBOWN}:${LIBGRP}'.
 
 Looking at pointyhat log[1] I don't see following symlinks followed
 
   ln -s /work/a/ports/www/firefox/work/fake/lib/firefox3/sdk/lib /work/a/ports/www/firefox/work/fake/lib/firefox3/lib
   ln -s /work/a/ports/www/firefox/work/fake/lib/firefox3 /work/a/ports/www/firefox/work/fake/lib/firefox3/bin
   ln -s /work/a/ports/www/firefox/work/fake/include/firefox3 /work/a/ports/www/firefox/work/fake/lib/firefox3/include
   ln -s /work/a/ports/www/firefox/work/fake/share/idl/firefox3 /work/a/ports/www/firefox/work/fake/lib/firefox3/idl
 
 This leads me to suspect that `-L' doesn't work there either because
 there is no such directories in package[2] but they're in PLIST. And
 using tar's `-L' makes it hang because of endless following
 FAKEDIR/lib/firefox3/bin -> FAKEDIR/lib/firefox3.
 
 [1] http://pointyhat.freebsd.org/errorlogs/i386-9-full-logs/firefox-3.6.4,1.log.bz2
 [2] ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-current/Latest/firefox.tbz

From: Anonymous <swell.k@gmail.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/148475: [patch] Mk/bsd.gecko.mk: use tar(1) for copying trees
Date: Mon, 30 Aug 2010 15:18:30 +0400

 Looks like `-L' behaviour is expected[1]. And the `-R' bug was fixed[2], too.
 
 [1] http://docs.freebsd.org/cgi/mid.cgi?AC6D94B5-2401-42ED-B96D-A18873671A46
 [2] http://svn.freebsd.org/changeset/base/211054

From: Anonymous <swell.k@gmail.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/148475: [patch] Mk/bsd.gecko.mk: use tar(1) for copying trees
Date: Mon, 14 Feb 2011 08:57:04 +0300

 Please, close the PR. It was because of confusion and the bug in
 bsdcpio(1) which is fixed now.
State-Changed-From-To: open->closed 
State-Changed-By: beat 
State-Changed-When: Mon Feb 14 09:04:55 UTC 2011 
State-Changed-Why:  
Closed on submitters request. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=148475 
>Unformatted:
