Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#39185 closed defect (wontfix)

ImageMagick: Using the +perl variant should not stop the installation

Reported by: jozef.mojzis@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.1.3
Keywords: Cc: cooljeanius (Eric Gallager)
Port: ImageMagick

Description

When the /opt/local/etc/macports/variants.conf containing the +perl, the ImageMagick stops with error:

Error: org.macports.configure for port ImageMagick returned: The +perl variant is no longer used; use the separate p5-perlmagick port instead.

Yes, i know the workaround, remove the "+perl" from the variants.conf, bulld ImageMagick a add the +perl again into variants.conf.

But this is an Bad Design. The variants.conf should accept ANY VALID +thing, e.g. +perl too, and the ImageMagick SHOULD IGNORE it if does'nt support the given +variant -- like any other port.

Change History (6)

comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to ryandesign@…
Summary: Bad practiceImageMagick: Using the +perl variant should not stop the installation

The reason I made the ImageMagick port do that is so that users who previously indicated they wanted perlmagick by using the +perl variant would be informed why they don't have it anymore after upgrading. After a time (after most users can be assumed to have upgraded) I will remove the +perl variant.

The alternative is to make the ImageMagick port display the message but continue with the installation. But users often upgrade all outdated ports at once, which frequently produces more output than fits in their terminal window, and they frequently don't bother scrolling up to see messages, leading to user surprise.

Note that you don't need to remove +perl from variants.conf to overcome this issue. You can instead specifically disable the perl variant when installing ImageMagick:

sudo port install ImageMagick -perl

comment:2 Changed 11 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:3 in reply to:  1 ; Changed 11 years ago by cooljeanius (Eric Gallager)

Replying to ryandesign@…:

But users often upgrade all outdated ports at once, which frequently produces more output than fits in their terminal window, and they frequently don't bother scrolling up to see messages, leading to user surprise.

I'm trying to find the other ticket that was about this issue, but can't seem to find it... do you remember which one it was?

comment:4 in reply to:  3 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to egall@…:

Replying to ryandesign@…:

But users often upgrade all outdated ports at once, which frequently produces more output than fits in their terminal window, and they frequently don't bother scrolling up to see messages, leading to user surprise.

I'm trying to find the other ticket that was about this issue, but can't seem to find it... do you remember which one it was?

It's been brought up several times on the lists and probably in other tickets. I don't recall a specific "other ticket" though.

comment:5 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: wontfix
Status: newclosed

Replying to jozef.mojzis@... (from non-Trac email):

The reason I made the ImageMagick port do that is so that users who previously indicated they wanted perlmagick by using the +perl variant would be informed why they don't have it anymore after upgrading. After a time (after most users can be assumed to have upgraded) I will remove the +perl variant.

The alternative is to make the ImageMagick port display the message but continue with the installation. But users often upgrade all outdated ports at once, which frequently produces more output than fits in their terminal window, and they frequently don't bother scrolling up to see messages, leading to user surprise.

Only one idea. When I specify some variants, e.g. +jpeg2 for ImageMagick,

  • with the +jpeg2 will install the jasper package too.
  • without the +jpeg2 will not install the jasper

in the portfile:

variant jpeg2 description {Support JPEG-2000 using JasPer} {
  depends_lib-append      port:jasper
  archcheck.files-append  lib/libjasper.dylib
  configure.args-delete   --without-jp2
  configure.args-append   --with-jp2
}

Isn't possible to do the same with the +perl? Something like:

variant perl description {Install p5-perlmagick too} {
  depends_lib-append      port:p5-perlmagick
...
  configure.args-delete   --without-perl
  configure.args-append   --with-perl
}

So when someone add the +perl, to ImageMagick simply will install the p5-perlmagick package. Done. The users get one more installed package, but the problem is solved, the functionality remains and and don't bother. ;)

The port used to have pretty much exactly that perl variant. It was added in r22391. But we already had the separate p5-perlmagick port, added in r15323. They are the same software; it didn't make sense to have two ways to install the same software. I deleted the functional perl variant in r105938, replacing it with the message you encountered, so that users realize that p5-perlmagick is the correct way in MacPorts to install perlmagick.

Note that you don't need to remove +perl from variants.conf to overcome this issue. You can instead specifically disable the perl variant when installing ImageMagick:

sudo port install ImageMagick -perl

Nice suggestion, good to know. ;)

thank you.
jm.

The macports are excellent and the best !!! - only simply has TOO MUCH variants. :) The only flaw with macports is the outdated default perl 5.12 (and the HARDCODED 5.12 deps in some ports - like in the /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/textproc/help2man/Portfile :( But this is off-topic.... ;)

Right: ImageMagick is a great example of a port with too many variants. That is why I recently removed several of them: mpeg (r105936); no_plus_plus (r105937); perl (r105938); q8, q16, q32, hdri (r106049).

It is necessary to hardcode a specific perl version in ports that use perl, to guarantee that they function correctly. If you would like to petition that the default perl in MacPorts be changed from 5.12 to something else, like say 5.16, please make your case for that on the macports-users mailing list, since as you say it's off-topic in this ticket.

comment:6 in reply to:  5 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign@…:

Replying to jozef.mojzis@... (from non-Trac email):

Isn't possible to do the same with the +perl? Something like:

variant perl description {Install p5-perlmagick too} {
  depends_lib-append      port:p5-perlmagick
...
  configure.args-delete   --without-perl
  configure.args-append   --with-perl
}

Sorry, I misread. You're suggesting declaring a dependency on p5-perlmagick in the perl variant. No, that's not possible, because p5-perlmagick depends on ImageMagick. That would create a circular dependency, which is not possible in MacPorts.

Note: See TracTickets for help on using tickets.