NetBSD Problem Report #43859
From rhialto@falu.nl Thu Sep 9 19:57:21 2010
Return-Path: <rhialto@falu.nl>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by www.NetBSD.org (Postfix) with ESMTP id AB2C063BC7C
for <gnats-bugs@gnats.NetBSD.org>; Thu, 9 Sep 2010 19:57:21 +0000 (UTC)
Message-Id: <201009091957.o89JvHY7020561@radl.falu.nl>
Date: Thu, 9 Sep 2010 21:57:17 +0200 (CEST)
From: rhialto@falu.nl
Reply-To: rhialto@falu.nl
To: gnats-bugs@gnats.NetBSD.org
Cc: rhialto@falu.nl
Subject: Some permission problems with misc/calibre and print/podofo
X-Send-Pr-Version: 3.95
>Number: 43859
>Category: pkg
>Synopsis: Some permission problems with misc/calibre and print/podofo
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Sep 09 20:00:01 +0000 2010
>Originator: Rhialto
>Release: NetBSD 5.0.1
>Organization:
>Environment:
System: NetBSD radl.falu.nl 5.0.1 NetBSD 5.0.1 (Radl-s_Pervasion_of_the_Incorrect_Chord) #0: Tue Aug 4 20:57:29 CEST 2009 root@radl.falu.nl:/usr/src/sys/arch/amd64/compile/RADL5.0.1 amd64
Architecture: x86_64
Machine: amd64
>Description:
I built misc/calibre inside a pkg_comp started with sudo, and found 3
problems; I could "fix" the first one. Then I found a workaround with
its own problems.
- misc/podofo depends "optionally" on lua, but apparently the configure
script detects it anyway, even if its buildlink3.mk is not included.
Then the build fails. So I added
.include "../../lang/lua/buildlink3.mk"
to pkgsrc/print/podofo/Makefile
- After that, misc/calibre proper started building, but when making the
package ("make package") it failed like this:
####### Building extension fontconfig #######
####### Building extension msdes #######
####### Building extension cPalmdoc #######
####### Building extension podofo #######
####### Building extension pictureflow #######
*
* Running gui
*
Compiling form /pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/src/calibre/gui2/main.ui
Traceback (most recent call last):
File "setup.py", line 99, in <module>
sys.exit(main())
File "setup.py", line 85, in main
command.run_all(opts)
File "/pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/setup/__init__.py", line 158, in run_all
self.run_cmd(self, opts)
File "/pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/setup/__init__.py", line 151, in run_cmd
self.run_cmd(scmd, opts)
File "/pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/setup/__init__.py", line 154, in run_cmd
cmd.run(opts)
File "/pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/setup/gui.py", line 36, in run
self.build_forms()
File "/pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/setup/gui.py", line 60, in build_forms
build_forms(self.SRC, info=self.info)
File "/pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/src/calibre/gui2/__init__.py", line 597, in build_forms
open(compiled_form, 'wb').write(dat)
IOError: [Errno 13] Permission denied: '/pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/src/calibre/gui2/main_ui.py'
*** Error code 1
Stop.
make: stopped in /usr/pkgsrc/misc/calibre
*** Error code 1
Stop.
make: stopped in /usr/pkgsrc/misc/calibre
*** Error code 1
Stop.
make: stopped in /usr/pkgsrc/misc/calibre
isc/calibre/default/calibre/src/calibre/gui2/main_ui.py <
-rw-r--r-- 1 root wheel 21246 Oct 11 2009 /pkg_comp/obj/pkgsrc/misc/calibre/default/calibre/src/calibre/gui2/main_ui.py
pkg_comp:default.conf#
Running a GUI while making a package? Whoever thought of that? Anyway, I
don't immediately see how/if that is the actual failure. The traceback
seems to suggest writing to some file which fails, but it the build runs
as root inside the chroot so that doesn't make immediate sense either.
Later...:
Another problem with calibre. I am now trying outside pkg_comp, but the
work directory ends up on NFS in my case. Maybe that causes this error:
c++ /mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre/work/calibre/build/pyqt/pictureflow/qt/pictureflow.o /mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre/work/calibre/build/pyqt/pictureflow/qt/moc_pictureflow.o -L/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib/python2.6/config -Wl,-R/usr/pkg/lib/python2.6/config -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -L/usr/pkg/qt4/lib -Wl,-R/usr/pkg/qt4/lib -L/usr/pkg/qt4/lib -shared -Wl,-R/usr/pkg/qt4/lib -o pictureflow.so sippictureflowcmodule.o sippictureflowPictureFlow.o sippictureflowFlowImages.o -L/usr/pkg/lib -L/usr/pkg/qt4/lib -L/usr/X11R7/lib -lQtCore -lQtGui -lXext -lX11 -lm -pthread
Traceback (most recent call last):
File "setup.py", line 99, in <module>
sys.exit(main())
File "setup.py", line 85, in main
command.run_all(opts)
File "/mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre/work/calibre/setup/__init__.py", line 158, in run_all
self.run_cmd(self, opts)
File "/mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre/work/calibre/setup/__init__.py", line 154, in run_cmd
cmd.run(opts)
File "/mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre/work/calibre/setup/extensions.py", line 235, in run
self.build(ext, dest)
File "/mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre/work/calibre/setup/extensions.py", line 255, in build
return self.build_pyqt_extension(ext, dest)
File "/mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre/work/calibre/setup/extensions.py", line 359, in build_pyqt_extension
shutil.copy2(module, dest)
File "/usr/pkg/lib/python2.6/shutil.py", line 100, in copy2
copystat(src, dst)
File "/usr/pkg/lib/python2.6/shutil.py", line 77, in copystat
os.chflags(dst, st.st_flags)
OSError: [Errno 45] Operation not supported: '/mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre/work/calibre/src/calibre/plugins/pictureflow.so'
*** Error code 1
Stop.
make: stopped in /mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre
*** Error code 1
Stop.
make: stopped in /mnt/vol1/rhialto/cvs/pkgsrc/misc/calibre
Then, the workaround for #2:
looking closely at the output, I saw that the install process (inside
pkg_comp, started with sudo) was dropping privileges back to "rhialto".
I found out that it looked at the typical environment variables from
sudo, SUDO_UID, SUDO_GID, and SUDO_USER. When I unset these inside
pkg_comp before building (** how to automate that from the Makefile?? **)
problem #2 went away: now it could write the files it wanted.
However, installing calibre includes running it. It is a Python program,
so running it means compiling it, and if possible saving the compiled
modules. This meant that the modules from the py26-qt4 package were
compiled. The PLIST check detected these extra files and flagged this as
an error.
I haven't found a way to solve that one properly.
>How-To-Repeat:
see above
>Fix:
partly known.
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- There's no point being grown-up if you
\X/ rhialto/at/xs4all.nl -- can't be childish sometimes. -The 4th Doctor
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.