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:

NetBSD Home
NetBSD PR Database Search

(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.