Bug 117916 - Mk/bsd.port.mk: Reversed condition for setting --no-same-owner in extract
Summary: Mk/bsd.port.mk: Reversed condition for setting --no-same-owner in extract
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Port Management Team
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-11-08 10:00 UTC by Anton Berezin
Modified: 2008-03-11 23:50 UTC (History)
0 users

See Also:


Attachments
file.diff (445 bytes, patch)
2007-11-08 10:00 UTC, Anton Berezin
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Berezin freebsd_committer freebsd_triage 2007-11-08 10:00:07 UTC
I've got a report from Michael R. Wayne <wayne@staff.msen.com> about problems
building perl.  Specifically, he had the following errors:

  perl-5.8.8: Can't set user=1013/group=1013 for perl-5.8.8: Disc quota exceeded

repeated multiple times.  He happened to have a user with uid 1013 on his
system which was out of quota.

A little joint investigation revealed that although FreeBSD ports
infrastructure is meant to do the right thing in those conditions,
it in fact does not do that due to a reversed condition in bsd.port.mk.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2007-11-08 10:00:19 UTC
Responsible Changed
From-To: freebsd-ports-bugs->portmgr

bsd.port.mk is portmgr territory (via the GNATS Auto Assign Tool)
Comment 2 Anton Berezin freebsd_committer freebsd_triage 2007-11-08 10:40:51 UTC
I would like to add that fixing this will probably make unnecessary code in
do-extract that does chmod/chown after extracting:

--- bsd.port.mk.orig2	2007-11-08 11:38:11.000000000 +0100
+++ bsd.port.mk	2007-11-08 11:38:17.000000000 +0100
@@ -3503,12 +3503,6 @@ do-extract:
 			exit 1; \
 		fi; \
 	done
-.if !defined(EXTRACT_PRESERVE_OWNERSHIP)
-	@if [ `${ID} -u` = 0 ]; then \
-		${CHMOD} -R ug-s ${WRKDIR}; \
-		${CHOWN} -R 0:0 ${WRKDIR}; \
-	fi
-.endif
 .endif
 
 # Patch

-- 
We're going for 'working' here. 'clean' is for people with skills...
-- Flemming Jacobsen
Comment 3 Pav Lucistnik freebsd_committer freebsd_triage 2008-03-10 23:42:35 UTC
The chmod/chown snippet is still required - --no-same-owner only
prevents extracting owner, the group is still set according to the
content of the tar archive.

I see no --no-same-group switch.

-- 
Pav Lucistnik <pav@oook.cz>
              <pav@FreeBSD.org>
Pain clots and unformed lice pat this train.
Comment 4 Anton Berezin freebsd_committer freebsd_triage 2008-03-11 09:16:52 UTC
On Tue, Mar 11, 2008 at 12:42:35AM +0100, Pav Lucistnik wrote:
> The chmod/chown snippet is still required - --no-same-owner only
> prevents extracting owner, the group is still set according to the
> content of the tar archive.
> 
> I see no --no-same-group switch.

You are too trustful of the documentation, it would seem.
Tested on 6.3-PRERELEASE and 8.0-CURRENT.

# mkdir x ; cd x
# touch u-avahi u-postfix
# chown avahi:avahi u-avahi ; chown postfix:postfix u-postfix ; ls -l
-rw-r--r--  1 avahi    avahi    0 Mar 11 10:09 u-avahi
-rw-r--r--  1 postfix  postfix  0 Mar 11 10:09 u-postfix
# cd .. ; tar cf x.tar x
# mkdir y z
# cd y ; tar xf ../x.tar ; ls -l x
-rw-r--r--  1 avahi    avahi    0 Mar 11 10:09 u-avahi
-rw-r--r--  1 postfix  postfix  0 Mar 11 10:09 u-postfix
# cd ../z ; tar xof ../x.tar ; ls -l x
-rw-r--r--  1 root  staff  0 Mar 11 10:09 u-avahi
-rw-r--r--  1 root  staff  0 Mar 11 10:09 u-postfix

That said, I do not mind if the chmod/chown snippet stays.  The main point
was to ensure correctness, not to speed things up.

Cheers,
\Anton.
-- 
We're going for 'working' here. 'clean' is for people with skills...
-- Flemming Jacobsen
Comment 5 Pav Lucistnik freebsd_committer freebsd_triage 2008-03-11 09:22:34 UTC
> You are too trustful of the documentation, it would seem.

It's not about my trust in documentation - it failed in pointyhat run.

> # cd ../z ; tar xof ../x.tar ; ls -l x
> -rw-r--r--  1 root  staff  0 Mar 11 10:09 u-avahi
> -rw-r--r--  1 root  staff  0 Mar 11 10:09 u-postfix

I guess the problem here that the group moved to 'staff', while we need
it to be 'wheel'. staff is not GID 0. So the snippet is still needed,
IMHO.

-- 
Pav Lucistnik <pav@oook.cz>
              <pav@FreeBSD.org>

I am a shrubber. My name is Roger the Shrubber. I arrange, design and
sell shrubberies.
Comment 6 Anton Berezin freebsd_committer freebsd_triage 2008-03-11 09:54:30 UTC
On Tue, Mar 11, 2008 at 10:22:34AM +0100, Pav Lucistnik wrote:
> > You are too trustful of the documentation, it would seem.
> 
> It's not about my trust in documentation - it failed in pointyhat run.
> 
> > # cd ../z ; tar xof ../x.tar ; ls -l x
> > -rw-r--r--  1 root  staff  0 Mar 11 10:09 u-avahi
> > -rw-r--r--  1 root  staff  0 Mar 11 10:09 u-postfix
> 
> I guess the problem here that the group moved to 'staff', while we need
> it to be 'wheel'. staff is not GID 0. So the snippet is still needed,
> IMHO.

Fair enough, although come to think of it, it sounds suspiciously like a bug
in tar, since either one of "no change of group" and "reset to current
primary egid" would be consistent, while "reset to staff" is not, whatever
it came from (in case in question "staff" is my user's primary group and I
was using sudo to get root).

\Anton.
-- 
We're going for 'working' here. 'clean' is for people with skills...
-- Flemming Jacobsen
Comment 7 Pav Lucistnik freebsd_committer freebsd_triage 2008-03-11 23:40:58 UTC
State Changed
From-To: open->closed

Committed, thanks!
Comment 8 dfilter service freebsd_committer freebsd_triage 2008-03-11 23:45:11 UTC
pav         2008-03-11 23:45:04 UTC

  FreeBSD ports repository

  Modified files:
    Mk                   bsd.port.mk bsd.port.subdir.mk 
                         bsd.xorg.mk 
  Log:
  - Automatically append -fno-strict-aliasing to CFLAGS when -O2 or higher
    optimizations are enabled.
  
  PR:             ports/121363
  Submitted by:   obrien
  
  - Change USE_XPM variable to use USE_XORG framework, and lose implied USE_XLIB
  
  PR:             ports/113799
  Submitted by:   des (based on)
  Patch by:       pav
  
  - Teach USE_LDCONFIG to do the right thing when used with USE_LINUX_PREFIX
  
  PR:             ports/118212
  Original patch: vd
  Patch by:       pav
  
  - Allow tab as well as space in param.h for OSVERSION determination
  
  PR:             ports/117507
  Submitted by:   erwin
  
  - Reverse the condition so EXTRACT_PRESERVE_OWNERSHIP now work as advertised
  
  PR:             ports/117916
  Submitted by:   tobez
  
  - Assorted comment fixes
  
  PR:             ports/118054
  Submitted by:   linimon
  
  - Style nit ($@ -> ${.TARGET})
  
  PR:             ports/120276
  Submitted by:   obrien
  
  Revision  Changes    Path
  1.591     +38 -14    ports/Mk/bsd.port.mk
  1.73      +3 -3      ports/Mk/bsd.port.subdir.mk
  1.5       +2 -8      ports/Mk/bsd.xorg.mk
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"