I have a small headless server that does not have X11 installed, but does have dev-perl/perlmagick. Up to, and including, version 6.0.7.1 this has been fine. Starting with version 6.1.3.2 the ebuild fails with what appears to be a dependency on the X11 headers. While this might be solved with the addition of X11 as a base dependency, I believe that perlmagick should compile without any dependency on X11 (with the appropriate loss of X11-related capability). I'll attach a copy of my world file and the output of the failed build. Many thanks, Stuart
Created attachment 43600 [details] Copy of my world file
Created attachment 43601 [details] Copy of my failed build output
I can confirm this bug. Same problem. X11 isn't installed on my server, nor will it be ;) Wendall
perlmagick-6.1.3.4 is broken in the same way, so upgrading to the most current masked package won't help.
OK; I think I have found the problem and I'm working on a solution. The issue is the perlmagick ebuild does not run the imagemagick configure process; it just goes to the PerlMagick subdirectory and runs "perl Makefile.PL" (through the perl-module_src_prep command). The problem is that the "stock" Makefile.PL has this LIBS directive: 'LIBS' => ['-L/usr/local/lib -L../magick/.libs -lMagick -L/usr/X11R6/lib -L/usr/lib/graphviz -lfreetype -lz -L/usr/lib -llcms -ltiff -lfreetype -ljpeg -lpng -ldpstk -ldps -lXext -lXt -lSM -lICE -lX11 -lbz2 -lxml2 -ldotneato -lz -lp thread -lm -lpthread'], which clearly has a lot of X stuff. Makefile.PL is actually generated when you run the top level configure script; if X is not defined then the LIBS line will be regenerated without that dependency. This completely cures the problem. I've tested taking the imagemagick ebuild, running the imagemagick configure process and then building and installing the PerlMagick sub directory. I'll attach that ebuild to this bug. I tested 6.1.3.4 (which is still masked) but the ebuild file is identitical to 6.1.3.2. If you want to test 6.1.3.4 you'll need to add these three lines to your /etc/portage/package.keywords file: =media-gfx/imagemagick-6.1.3.4 ~x86 =dev-perl/perlmagick-6.1.3.4 ~x86 =sys-devel/libtool-1.5.2-r7 ~x86 It would be nice if Stuart or Wendall or one of the perl folks could confirm that this works for them.
Created attachment 44026 [details] ebuild that fixed the build problem for me
I still have the same failure with dev-perl/perlmagick-6.1.3 I'll add my failure messages, world file, etc for review. Wendall
Created attachment 44087 [details] Emerge info for Wendall
I'm trying to verify it, but I think I fail to understand how to try the suggested ebuild. I've modified my packages.keywords and that works OK (the right versions become available), and I've created the local portage overlay for the package and generated the manifest (OK, I think), but when I try the ebuild for imagemagick I get: /usr/lib/portage/bin/ebuild.sh: line 75: perl-module_src_prep: command not found /usr/lib/portage/bin/ebuild.sh: line 76: perl-module_src_compile: command not found This occurs after the configure step. I think it's nearly there, though, as it seems to detect OK that X11 isn't there, and shows a LIBS that *doesn't* include -lX11. I suspect that I've just not applied the modified ebuild correctly. If anyone has any suggestions I'm more than willing to try some more.
Created attachment 44088 [details] Wendall's world file
Created attachment 44091 [details] Wendall's emerge output
Created attachment 44096 [details] Fixes bug for me I attached a new version of the ebuild; I had named the old one the same as what was in the tree; that was clearly wrong. I bumped the version number to -r1 to make it clear that it is different. Otherwise the bits are identical.
This is a reply to comment #9. Thanks Stuart for trying the patch. Here is more explicit directions: Make a portage overlay directory (it sounds like you have that). I'm assuming that directory is /usr/local/portage. Copy the new ebuild file into /usr/local/portage/dev-perl/perlmagick/perlmagick-6.1.3.4-r1.ebuild. Add "dev-perl/perlmagick ~x86" to your /etc/portage/package.keywords. Emerge perlmagick. (I had thought bugzilla would preserve the filename of the attachment, but I guess it doesn't for text/plain attachments...)
The attatched "Fixes bug for me" compiles and installs. I didn't test to see if perlmagick actually works or not. Wendall
Hmmm... I still get those errors from ebuild.sh: /usr/lib/portage/bin/ebuild.sh: line 75: perl-module_src_prep: command not found /usr/lib/portage/bin/ebuild.sh: line 76: perl-module_src_compile: command not found /usr/lib/portage/bin/ebuild.sh: line 81: perl-module_src_install: command not found I've attached the output from "emerge perlmagick", which shows the full perlmagick emerge process. There's some improvement, however, as you can see that the configure is definitely taking place and regenerating the Makefile, and that it's correctly spotted that X11 isn't there.
Created attachment 44102 [details] StuartH's updated failed emerge output
Created attachment 44113 [details] perlmagick-6.1.3.4-r1.ebuild Oops, sorry Stuart. I see what the problem was: thanks for attaching the output. Here's a new version that should work better. Thanks for your patience.
That last update has done the trick. Thanks very much for all the effort - very much appreciated. It now emerges fine.
Emerges without errors now for me as well. Wendall
*** Bug 71764 has been marked as a duplicate of this bug. ***
*** Bug 70229 has been marked as a duplicate of this bug. ***
works like a champ for me as well... Thank you! :)
Many thanks to Neil. I've taken the existing imagemagick ebuild's config/use sequence to rebuild the perlmagick ebuild (6.2.0.4-r1) so that it is compatible with how imagemagick is built, and just as importantly to this bug, so that if you do not have X enabled it shouldn't be enabled in perlmagick either. This ebuild differs from Neil's only in the evolution of use flags in imagemagick - otherwise it follows the same formula. Thank you all for your patience, Mike