Bug 129122

Summary: editors/openoffice.org-3: building OpenOffice.org-3.0.0 fails
Product: Ports & Packages Reporter: jau
Component: Individual Port(s)Assignee: freebsd-openoffice (Nobody) <openoffice>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description jau 2008-11-24 08:50:00 UTC
When running make in the ports directory the build suddenly fails without
any warning in advance producing the following error message...

cp -f /tmp/mkuLn22f.dict-zu_.oxt  ../unxfbsdi.pro/bin/dict-zu.oxt 
rm -f /tmp/mkuLn22f.dict-zu_.oxt
-------------
Running processes: 0
deliver -- version: 1.130
Module 'dictionaries' delivered successfully. 25 files copied, 0 files unchanged

1 module(s): 
        moz
need(s) to be rebuilt

Reason(s):

ERROR: error 65280 occurred while making /usr/ports/editors/openoffice.org-3/work/OOO300_m9/moz

Attention: if you build and deliver the above module(s) you may prolongue your the build issuing command "build --from moz"

rmdir /tmp/52931
*** Error code 1

Stop in /usr/ports/editors/openoffice.org-3.

For more information see the bzip2 compressed typescript file at...

http://www.oxit.fi/~jau/typescript-OOo3.bz2

Fix: 

None known yet.
How-To-Repeat: In case you fail to repeat the problem try building OOo3 in a system which has
ACLs enabled for the file system containing the ports tree...

/dev/mirror/gm0f     /usr     ufs     multilabel,acls        2 2
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2008-11-24 10:05:21 UTC
Responsible Changed
From-To: freebsd-ports-bugs->openoffice

Over to maintainer(s).
Comment 2 roberthuff 2008-11-26 02:35:52 UTC
	Confirming this bug on

  FreeBSD 7.0-CURRENT #2: Wed Nov 19 06:02:02 EST 2008
Comment 3 jau 2008-11-29 10:26:33 UTC
	The root cause seems to be quite obvious in this case.

	GNU cp (gcp) still fails miserably when ACLs are enabled.
	It assumes that it can set default ACLs for files other than
	directories. Linux quietly accepts and ignores a default ACL
	for files other than directories. FreeBSD OTOH quite correctly
	returns an error.

	This leaves some intermediate targets non-existent during the
	build when ACLs are enable.

	The correct solution would be fixing gcp of course.

	To make the ports build successful on ACL enabled systems
	while waiting for the real fix you can...

	1) either make the build phase use the native cp in place of
	gcp (labour intensive),

	2) or emulate gcp on top of the native cp (simple),

	*) and remove the stupid test for the real gcp being used
	during the configure phase, because it is a guaranteed way
	to make the build process fail.
	With that pointless test in place it becomes hard to emulate
	gcp on top of the native cp.

	Even better would be simply turning the ACLs on in the FreeBSD
	ports build environments to make this sort of problems stick
	out in a way that they just have to be fixed.


	Cheers,
		// jau
.---  ..-  -.-  -.-  .-    .-  .-.-.-    ..-  -.-  -.-  ---  -.  .  -.
  /    Jukka A. Ukkonen,                             Oxit Ltd, Finland
 /__   M.Sc. (sw-eng & cs)                    (Phone) +358-500-606-671
   /   Internet: Jukka.Ukkonen(a)Oxit.Fi        (Home) +358-9-6215-280
  /    Internet: jau(a)iki.fi
 v
        .---  .-  ..-  ...-.-  ..  -.-  ..  .-.-.-  ..-.  ..
+ + + + My opinions are mine and mine alone, not my employers. + + + +
Comment 4 roberthuff 2008-12-01 06:19:21 UTC
Jukka A. Ukkonen writes:

>  	To make the ports build successful on ACL enabled systems
>  	while waiting for the real fix you can...
>  
>  	1) either make the build phase use the native cp in place of
>  	gcp (labour intensive),
>  
>  	2) or emulate gcp on top of the native cp (simple),

	Simple for /you/ maybe; not so much for many others.  Care to
share the wisdom?


				Robert Huff
Comment 5 NAKATA Maho 2008-12-05 10:20:53 UTC
Hi,

I welcome patches and patch submitters should sign to SCA...
Best,

From: Robert Huff <roberthuff@rcn.com>
Subject: Re: ports/129122: Building OpenOffice.org-3.0.0 fails
Date: Mon, 01 Dec 2008 01:19:21 -0500

> 
> Jukka A. Ukkonen writes:
> 
> >  	To make the ports build successful on ACL enabled systems
> >  	while waiting for the real fix you can...
> >  
> >  	1) either make the build phase use the native cp in place of
> >  	gcp (labour intensive),
> >  
> >  	2) or emulate gcp on top of the native cp (simple),
> 
> 	Simple for /you/ maybe; not so much for many others.  Care to
> share the wisdom?
> 
> 
> 				Robert Huff
> 
> _______________________________________________
> freebsd-openoffice@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-openoffice
> To unsubscribe, send any mail to "freebsd-openoffice-unsubscribe@freebsd.org"
>
Comment 6 jau 2008-12-06 09:20:04 UTC
Quoting Maho NAKATA:
> 
> I welcome patches and patch submitters should sign to SCA...
> Best,
> 
> From: Robert Huff <roberthuff@rcn.com>
> Subject: Re: ports/129122: Building OpenOffice.org-3.0.0 fails
> Date: Mon, 01 Dec 2008 01:19:21 -0500
> 
> > 
> > Jukka A. Ukkonen writes:
> > 
> > >  	To make the ports build successful on ACL enabled systems
> > >  	while waiting for the real fix you can...
> > >  
> > >  	1) either make the build phase use the native cp in place of
> > >  	gcp (labour intensive),
> > >  
> > >  	2) or emulate gcp on top of the native cp (simple),
> > 
> > 	Simple for /you/ maybe; not so much for many others.  Care to
> > share the wisdom?


	Since patches and sharing of wisdom have been requested...

	My approach has been simply overriding the true (broken) gcp
	using a wrapper script to convert gcp command line options to
	those used by the native cp.
	This of course is not so much a patch but simply a workaround.
	See my replacement gcp script at the end.

	I have put this gcp replacement in my own ~/bin directory and
	inserted my own ~/bin in the PATH before /usr/local/bin, which
	is the location of the real gcp.

	Additionally I have manually edited the configure script to
	remove the test for real gcp.
	Another means to the same result is running "make configure"
	while the replacement gcp is not yet in the PATH.
	Either way this part has always taken some manual action.

	As I already have pointed out, the actual patch should go into
	gcp anyhow.
	So, I think a workaround is exactly what is needed to get OOo
	successfully built while gcp remains broken.

	I hope this helps.


	Cheers,
		// jau
.---  ..-  -.-  -.-  .-    .-  .-.-.-    ..-  -.-  -.-  ---  -.  .  -.
  /    Jukka A. Ukkonen,                             Oxit Ltd, Finland
 /__   M.Sc. (sw-eng & cs)                    (Phone) +358-500-606-671
   /   Internet: Jukka.Ukkonen(a)Oxit.Fi        (Home) +358-9-6215-280
  /    Internet: jau(a)iki.fi
 v
        .---  .-  ..-  ...-.-  ..  -.-  ..  .-.-.-  ..-.  ..
+ + + + My opinions are mine and mine alone, not my employers. + + + +


 o
  \ /
-  X ------------------------- clip clip ------------------------------
  / \
 O


#!/bin/sh
#debug=echo

GCP_EMULATION_VERSION='cp (GNU coreutils) 6.9'
COPYRIGHT_MESSAGE='Copyright (C) 2007-2008 Jukka Ukkonen / Thunderbolt Ltd.'

newopts=""

_prog=`basename $0`

usage()
{
	echo	'usage: '"${_prog}" \
		'[-abdfiHlLPpRrstTuvx]' \
		'[-t destdir] [-S backup_suffix]' \
		'src ... [dest]'
	echo ''
	return 0
}
	

while getopts "abdfiHlLPpRrsS:t:Tuvx-:" opt ; do
	case "$opt" in
	\?)
		usage
		exit 255
		;;

	-)	case "$OPTARG" in
			"version")
				echo "$GCP_EMULATION_VERSION"
				echo "$COPYRIGHT_MESSAGE"
				exit 0
				;;
			"help")
				usage
				exit 0
				;;
			"")
				break
				;;
			*)
				echo 'Option "'"$OPTARG"'" currently unsupported.'
				exit 255
				;;
		esac
		;;

	a)	# same as -dpPR in GNU
		# In a modern BSD -a works.
		# We assume an old system.

		newopts="$newopts -pPR"
		;;

	b)	# BSD cp currently has no backup mode
		;;

	d)	# -P --preserve=link
		# emulate as -Pp
		# -p == --preserve=mode,ownership,timestamps
		newopts="$newopts -Pp"
		;;

	f)	newopts="$newopts -f"
		;;

	i)	newopts="$newopts -i"
		;;

	H)	newopts="$newopts -H"
		;;

	l)	newopts="$newopts -l"
		;;

	L)	newopts="$newopts -L"
		;;

	P)	newopts="$newopts -P"
		;;

	p)	newopts="$newopts -p"
		;;

	R|r)	newopts="$newopts -R"
		;;

	s)	# BSD cp currently does not create symlinks -> hard-link
		newopts="$newopts -l"
		;;

	S)	# BSD cp currently has no backup mode
		;;

	t)	target_dir="$OPTARG"
		;;

	T)	# in GNU: treat DEST as a normal file
		;;

	u)	# BSD cp currently supports no update mode
		# Emulate using no overwrite.
		newopts="$newopts -n"
		;;

	v)	newopts="$newopts -v"
		;;

	x)	# in GNU: stay on this file system
		# Not currently supported by BSD.
		;;

	esac
done

shift `expr $OPTIND - 1`

if [ X"${target_dir}" = "X" ] ; then
	$debug /bin/cp $newopts "$@"
else
	$debug /bin/cp $newopts "$@" "${target_dir}"
fi
Comment 7 Martin Wilke freebsd_committer freebsd_triage 2011-02-13 04:26:14 UTC
State Changed
From-To: open->closed

ooo 3.0.X is no linger present.