[122521] trunk/dports/_resources/port1.0/group

Mojca Miklavec mojca at macports.org
Wed Jul 23 22:43:42 PDT 2014


On Thu, Jul 24, 2014 at 3:18 AM, Ryan Schmidt <ryandesign at macports.org> wrote:
>
> On Jul 23, 2014, at 9:31 AM, mojca at macports.org wrote:
>
>> Revision
>> 122521
>> Author
>> mojca at macports.org
>> Date
>> 2014-07-23 07:31:40 -0700 (Wed, 23 Jul 2014)
>> Log Message
>>
>> perl5-1.0.tcl: ask perl for location of perl5.lib instead of hardcoding it (#43480)
>
>
>> --- trunk/dports/_resources/port1.0/group/crossgcc-1.0.tcl    2014-07-23 14:29:55 UTC (rev 122520)
>> +++ trunk/dports/_resources/port1.0/group/crossgcc-1.0.tcl    2014-07-23 14:31:40 UTC (rev 122521)
>> @@ -235,6 +235,7 @@
>>                  configure.args-append --with-newlib
>>              }
>>          }
>> +        ignore {}
>>          default {
>>              pre-fetch {
>>                  ui_error "libc $libc_name is not supported by port group crossgcc"
>
> This seems to be unrelated? I'm also not sure what it does!

Thank you for noticing. It slipped my radar. I did use "svn diff", but
failed to notice something else was there. Also, I have no clue how
that piece of code got there in the first place and I don't know what
it was supposed to do either.

Reverted in r122564.

>> --- trunk/dports/_resources/port1.0/group/perl5-1.0.tcl       2014-07-23 14:29:55 UTC (rev 122520)
>> +++ trunk/dports/_resources/port1.0/group/perl5-1.0.tcl       2014-07-23 14:31:40 UTC (rev 122521)
>> @@ -73,7 +73,7 @@
>>  default perl5.bin {${prefix}/bin/perl${perl5.major}}
>>
>>  # define installation libraries as vendor location
>> -default perl5.lib {${prefix}/lib/perl5/vendor_perl/${perl5.version}}
>> +default perl5.lib {[perl5.extract_config vendorlib]}
>>  default perl5.bindir {${prefix}/libexec/perl${perl5.major}}
>>  default perl5.archlib {${perl5.lib}/${perl5.arch}}
>
> This would require perl to be installed in order to work.

Before that we had

default perl5.version {[perl5.extract_config version]}

So I guess that we had the same problem earlier then? Since
perl5.version had to be properly set in order to have a working
perl5.lib?

> Are you sure no port references ${perl5.lib} in the global part of the portfile, i.e. before perl has necessarily been installed? For example, what about p5-sgmlspm, which uses ${perl5.lib} in build.args? What happens if you try to install e.g. p5.16-sgmlspm before perl5.16 is installed (which is what will happen on the buildbot)?

> sudo port -v install p5.16-sgmlspm
--->  Computing dependencies for p5.16-sgmlspm..
--->  Dependencies to be installed: perl5.16
--->  Activating perl5.16 @5.16.3_0
x ./
[...]
-->  Verifying checksums for p5.16-sgmlspm
--->  Checksumming SGMLSpm-1.03ii.tar.gz
--->  Extracting p5.16-sgmlspm
--->  Extracting SGMLSpm-1.03ii.tar.gz
--->  Patching Makefile:
s|/usr/local/|/path/to/p5.16-sgmlspm/work/destroot/opt/local/|
--->  Patching Makefile:
s|/usr/local/|/path/to/p5.16-sgmlspm/work/destroot/opt/local/|
xinstall: mkdir /path/to/p5.16-sgmlspm/work/destroot
xinstall: mkdir /path/to/p5.16-sgmlspm/work/destroot/opt
xinstall: mkdir /path/to/p5.16-sgmlspm/work/destroot/opt/local
xinstall: mkdir /path/to/p5.16-sgmlspm/work/destroot/opt/local/bin
xinstall: mkdir /path/to/p5.16-sgmlspm/work/destroot/opt/local/lib
xinstall: mkdir /path/to/p5.16-sgmlspm/work/destroot/opt/local/lib/perl5
xinstall: mkdir
/path/to/p5.16-sgmlspm/work/destroot/opt/local/lib/perl5/vendor_perl
xinstall: mkdir
/path/to/p5.16-sgmlspm/work/destroot/opt/local/lib/perl5/vendor_perl/5.16.3
xinstall: mkdir
/path/to/p5.16-sgmlspm/work/destroot/opt/local/lib/perl5/vendor_perl/5.16.3/SGMLS
[...]
Warning: violation by /SGMLS
Warning: violation by /SGMLS.pm
Warning: violation by /skel.pl
Warning: p5.16-sgmlspm violates the layout of the ports-filesystems!
Warning: Please fix or indicate this misbehavior (if it is intended),
it will be an error in future releases!
--->  Installing p5.16-sgmlspm @1.03ii.0_0
a .
a ./+COMMENT
a ./+CONTENTS
a ./+DESC
a ./+PORTFILE
a ./+STATE
a ./opt
a ./SGMLS
a ./SGMLS.pm
a ./skel.pl
a ./SGMLS/Output.pm
a ./SGMLS/Refs.pm
a ./opt/local
a ./opt/local/bin
a ./opt/local/lib
a ./opt/local/lib/perl5
a ./opt/local/lib/perl5/SGMLS
a ./opt/local/lib/perl5/SGMLS.pm
a ./opt/local/lib/perl5/skel.pl
a ./opt/local/lib/perl5/SGMLS/Output.pm
a ./opt/local/lib/perl5/SGMLS/Refs.pm
a ./opt/local/bin/sgmlspl

So xinstall works properly, but the files are not installed to the proper place.

I can test, but I'm almost sure that it failed to work properly earlier as well.

I would say that the port needs to be revised in either case. It does
weird things. I mean ... things like this shouldn't be necessary:
    reinplace "s|/usr/local/|${destroot}${prefix}/|" ${worksrcpath}/Makefile
in a nicely working module. "All other" modules do that automatically
and properly.

Mojca


More information about the macports-dev mailing list