Giter Site home page Giter Site logo

Comments (5)

plicease avatar plicease commented on June 16, 2024

Indeed %s used to default to the final install location, but that could be overridden in 0.16 with the alien_stage_install option, and then in 0.17 alien_stage_install became the default. I've got a PR that updated the documentation.

To get the original behavior you can set alien_stage_install to 0. However, be aware that relies on so called blib detection; a method of determining if the Alien is being installed using a long list of blib paths in PERL5LIB, which is common in cpantesters. This detection is unfortunately inherently unreliable, and apparently buggy because I also fixed a bug in it when I was looking into this issue.

The recommend route if you need to run ./configure with the final install path is to use Alien::Build which has a more reliable system by which it stages files for install. Alien::Build also has other advantages and fewer prereqs so it isn't a bad upgrade to make anyway. Both ABMB and Alien::Build use the same runtime (Alien::Base) so the interface once the alien is installed wouldn't change.

from alien-base-modulebuild.

plicease avatar plicease commented on June 16, 2024

1.07 has both the documentation and the bug fix.

from alien-base-modulebuild.

plicease avatar plicease commented on June 16, 2024

This alienfile does at least some of what the Build.PL for Alien::ImageMagick is doing. I'm not sure that it should be setting --exec-prefix so I took that out. It's not patching anything, but it might be a start.

use alienfile;
use Config;

plugin 'PkgConfig' => (
  pkg_name => 'MagickWand',
);

share {

  start_url 'http://www.imagemagick.org/download/ImageMagick.tar.gz';
  plugin 'Download';
  plugin 'Extract' => format => 'tar.gz';

  my $use_threads = $Config{usethreads} ? '' : '--without-threads';
  my $enable_shared = ( ( $Config{useshrplib} || '' ) eq 'false' ) ? '' : '--enable-shared';

  meta->prop->{env_interpolate} = 1;
  meta->prop->{env}->{LDFLAGS} = "-L%{perl.config.archlib}/CORE";

  plugin 'Build::Autoconf';

  build [
    "%{configure} --with-perl=%{perl} $enable_shared $use_threads",
    '%{make}',
    '%{make} install',
  ];

};

from alien-base-modulebuild.

ambs avatar ambs commented on June 16, 2024

Hi.
I understand the reason of using %s as blib, but in fact that was not clear. To have two different variables might be useful? Well, its an idea.
ImageMagick has a flag to configure the datadir, and for the bug I was trying to solve, it did the trick.
Thank you for your time and help.
Best,
Alberto

from alien-base-modulebuild.

plicease avatar plicease commented on June 16, 2024

I understand the reason of using %s as blib, but in fact that was not clear. To have two different variables might be useful? Well, its an idea.

I suppose different variable name would have been possible, and might have been a little more clear. It's really change in behavior though, and the old behavior was problematic. The fact that that part of the documentation didn't get updated was an oversight.

ImageMagick has a flag to configure the datadir, and for the bug I was trying to solve, it did the trick.

👍 great.

from alien-base-modulebuild.

Related Issues (12)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.