Emerge qcad starts out okay, but then it starts to generate multiple error messages when it tries writing to the qt directory. Eventually it fails without writing any files into the normal PATH or LIBPATH locations. Reproducible: Always Steps to Reproduce: 1.emerge -v qcad Actual Results: sabre local # emerge -v qcad Calculating dependencies ...done! >>> emerge (1 of 1) app-sci/qcad-2.0.1.0 to / >>> md5 src_uri ;-) qcad-2.0.1.0-1.src.tar.gz >>> Unpacking source... >>> Unpacking qcad-2.0.1.0-1.src.tar.gz to /var/tmp/portage/qcad-2.0.1.0/work * Applying qcad-2.0.1.0-1.src-gentoo.patch... [ ok ] >>> Source unpacked. Building fparser, dxflib, qcadlib, qcadcmd, qcadactions, qcadguiqt, qcad.. ... make ./lib/libqcadguiqt.a make[1]: Entering directory `/var/tmp/portage/qcad-2.0.1.0/work/qcad-2.0.1.0-1.src/qcadguiqt' cd src && make CXXFLAGS="-O3 -march=athlon-xp -funroll-loops -pipe -Wall -DQT_NO_DEBUG" make[2]: Entering directory `/var/tmp/portage/qcad-2.0.1.0/work/qcad-2.0.1.0-1.src/qcadguiqt/src' /usr/qt/3/bin/uic ui/qg_libraryinsertoptions.ui -o ui/qg_libraryinsertoptions.h g++ -c -O3 -march=athlon-xp -funroll-loops -pipe -Wall -DQT_NO_DEBUG -I/usr/qt/3/mkspecs/linux-g++ -I. -I../include -I../../qcadlib/include -I../../qcadcmd/include -I../../qcadactions/include -I../../dxflib/include -I../../fparser/include -I/usr/qt/3/include -Imoc/ -o obj/qg_actionfactory.o qg_actionfactory.cpp ... g++ -c -O3 -march=athlon-xp -funroll-loops -pipe -Wall -DQT_NO_DEBUG -I/usr/qt/3/mkspecs/linux-g++ -I. -I../include -I../../qcadlib/include -I../../qcadcmd/include -I../../qcadactions/include -I../../dxflib/include -I../../fparser/include -I/usr/qt/3/include -Imoc/ -o obj/qg_widthbox.o qg_widthbox.cpp /usr/qt/3/bin/uic ui/qg_commandwidget.ui -i qg_commandwidget.h -o ui/qg_commandwidget.cpp ACCESS DENIED mkdir: /usr/qt/3/etc/settings QSettings::sync: failed to open '/root/.qt/qt_plugins_3.2rc.tmp' for writing ACCESS DENIED mkdir: /usr/qt/3/etc/settings QSettings::sync: failed to open '/root/.qt/qt_plugins_3.2rc.tmp' for writing ... This error repeats multiple times each time uic is run. Eventually the build terminates and this is printed to the terminal several hundred times: mkdir: /usr/qt/3/etc/settings Expected Results: The qcad application should have built and installed correctly. emerge qcad worked okay one or two months ago, but I removed the app because it didn't have the capabilities I was hoping for at that time. uic works properly when running on files earlier in the build: make[1]: Entering directory `/var/tmp/portage/qcad-2.0.1.0/work/qcad-2.0.1.0-1.src/qcadguiqt/src' /usr/qt/3/bin/uic ui/qg_cadtoolbararcs.ui -o ui/qg_cadtoolbararcs.h /usr/qt/3/bin/uic ui/qg_cadtoolbarcircles.ui -o ui/qg_cadtoolbarcircles.h The /usr/qt/3/etc/settings directory does not exist, but there are no unusual file permissions in the first part of the tree. Each part of /usr/qt/3 has "drwxr-xr-x root root" permissions. If I create the /usr/qt/3/etc/settings directory by hand and then emerge qcad, the repeated error messages change to: g++ -c -O3 -march=athlon-xp -funroll-loops -pipe -Wall -DQT_NO_DEBUG -I/usr/qt/3/mkspecs/linux-g++ -I. -I../include -I../../qcadlib/include -I../../qcadcmd/include -I../../qcadactions/include -I../../dxflib/include -I../../fparser/include -I/usr/qt/3/include -Imoc/ -o obj/qg_widthbox.o qg_widthbox.cpp /usr/qt/3/bin/uic ui/qg_commandwidget.ui -i qg_commandwidget.h -o ui/qg_commandwidget.cpp ACCESS DENIED open_wr: /usr/qt/3/etc/settings/.qt_plugins_3.2rc.lock ACCESS DENIED open_wr: /usr/qt/3/etc/settings/qt_plugins_3.2rc.tmp QSettings::sync: failed to open '/usr/qt/3/etc/settings/qt_plugins_3.2rc.tmp' for writing ACCESS DENIED open_wr: /usr/qt/3/etc/settings/.qt_plugins_3.2rc.lock ACCESS DENIED open_wr: /usr/qt/3/etc/settings/qt_plugins_3.2rc.tmp QSettings::sync: failed to open '/usr/qt/3/etc/settings/qt_plugins_3.2rc.tmp' for writing Checking the directory /usr/qt/3/etc/settings during the emerge shows that nothing is being written to that location while uic is running. In this case when the build terminates, this is printed to the terminal several hundred times: open_wr: /usr/qt/3/etc/settings/.qt_plugins_3.2rc.lock open_wr: /usr/qt/3/etc/settings/qt_plugins_3.2rc.tmp I downloaded the qcad tarball, unpacked it into my home directory, and then built it using the qcad supplied script. This built okay as myself (i.e. not root) in my home directory, but of course it didn't install anything. The executable does run from its build directory. The compiler gets different CFLAGS and include directories in this case. emerge example: g++ -c -O3 -march=athlon-xp -funroll-loops -pipe -Wall -DQT_NO_DEBUG -I/usr/qt/3/mkspecs/linux-g++ -I. -I../include -I../../qcadlib/include -I../../qcadcmd/include -I../../qcadactions/include -I../../dxflib/include -I../../fparser/include -I/usr/qt/3/include -Imoc/ -o obj/qg_widthbox.o qg_widthbox.cpp hand built example: g++ -c -pipe -Wall -W -O2 -DQT_NO_DEBUG -I/usr/qt/3/mkspecs/linux-g++ -I. -I../include -I../../qcadlib/include -I../../qcadcmd/include -I../../qcadactions/include -I../../dxflib/include -I../../fparser/include -I/usr/qt/3/include -Imoc/ -o obj/qg_widthbox.o qg_widthbox.cpp sabre local # emerge info Portage 2.0.49-r20 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r9, 2.4.20-gentoo-r9) ================================================================= System uname: 2.4.20-gentoo-r9 i686 AMD Athlon(tm) XP 1700+ Gentoo Base System version 1.4.3.10 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=athlon-xp -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O3 -march=athlon-xp -funroll-loops -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://128.213.5.34/gentoo/ http://cudlug.cudenver.edu/gentoo/ http://gentoo.noved.org/ http://mirror.tucdemonic.org/gentoo/ http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X alsa apache2 apm arts avi berkdb bonobo cdr cjk crypt cups curl dga directfb doc dvd emacs encode esd ethereal fastcgi fbcon foomaticdb gb gd gdbm gif gnome gpm gtk gtk2 gtkhtml guile imap imlib innodb java jpeg kde libg++ libwww mad maildir mikmod mmx motif mozilla mpeg mysql ncurses nls odbc ofx oggvorbis opengl oss pam pda pdflib perl png python qt quicktime readline samba sasl sdl slang slp spell sse ssl svga tcltk tcpd tetex tiff truetype unicode usb wmf x86 xml xml2 xmms xv zeo zlib"
Created attachment 25265 [details] qcad-2.0.2.0.ebuild Would you try this ebuild, please?
Yes, this ebuild works. The manual does not come up when Help -> Manual is selected. Nothing shows up in the console when Manual is selected. Running under strace doesn't show that qcad is even attempting to open a manual. I can't find a manual installed anywhere on the system, but the tarball does contain one. It looks like the Makefile and src/qcad.pro don't refer to the manual though. Would it be worthwhile to include the part library in the ebuild?
Please try if 2.0.1.0 (Version in the Header: 1.5) works again - there were some "fixes" to the ebuild which seemed to break the build.
The ebuild completes the compile and installation, but I got several hundred error/warning messages: QSettings::sync: failed to open '/root/.qt/qt_plugins_3.2rc.tmp' for writing There may have been other error/warning messages that scrolled off the top of my xterm (only 5000 lines of history). The resulting application runs and can load up example DXF files.
Using the hint from the ebuild attachment I added a qcad-2.0.2.0 ebuild to CVS. It installs the html documentation, but the manual browser seems to be dysfunctional (the source doesn't look like it can work at all) - just use your normal web browser. I think the part library should better be put in a seperate ebuild since it's not that small, may have different update cycles and is not necessary for running the program.
The new build looks good. No strange error or warning messages. The application looks okay, ignoring the previously mentioned problem with the manual. It's nice having the manual installed. Thanks.