Bug 180220 - net-mgmt/p5-NetAddr-IP won't make package
Summary: net-mgmt/p5-NetAddr-IP won't make package
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Anton Berezin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-03 00:40 UTC by Dave Hayes
Modified: 2013-07-10 14:50 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dave Hayes 2013-07-03 00:40:00 UTC
Something is wrong with the plist.

# make package
===> Fetching all distfiles required by p5-NetAddr-IP-4.069 for building
===>  Extracting for p5-NetAddr-IP-4.069
=> SHA256 Checksum OK for NetAddr-IP-4.069.tar.gz.
===>   p5-NetAddr-IP-4.069 depends on file: /usr/local/bin/perl5.14.4 - found
===>  Patching for p5-NetAddr-IP-4.069
===>   p5-NetAddr-IP-4.069 depends on file: /usr/local/bin/perl5.14.4 - found
/usr/local/bin/perl -ni -e 'print unless /^=head1/../^=cut/' /rw/usr/ports/net-mgmt/p5-NetAddr-IP/work/NetAddr-IP-4.069/Lite/Util/Makefile.PL
===>   p5-NetAddr-IP-4.069 depends on file: /usr/local/bin/perl5.14.4 - found
===>  Configuring for p5-NetAddr-IP-4.069

This build requires a C compiler by default except on Windows where
the Pure Perl version is mandatory. The Pure Perl version, which does
not require compilation of XS code, can be used by invoking this as:

  perl Makefile.PL -noxs


======================================================================
W A R N I N G - Please do read below if you have legacy code
======================================================================

Versions 3.21 and above of NetAddr::IP, include hooks for the Storable
class that are incompatible with the old (automatic) method of storing
data. To regain backwards compatibility, the module must be use()d as

    use NetAddr::IP ':old_storable';

which will disable the new hooks and revert back to the old ways.

If you do not use Storable along with NetAddr::IP, or just don't know
what this all means, most likely you're safe to go ahead.

Versions before 3.25 recognized by default IP addresses as returned by
inet_aton. This is no longer the default. To enable this behavior
again, the module must be use()d as

    use NetAddr::IP ':aton';

Versions before 4.008 recognized the above syntax. This behavior is
fundamentally broken, is DEPRECATED and WILL BE REMOVED in version 5.0
Use this method to create new objects from 'aton's

    $ip = new_from_aton NetAddr::IP(inet_aton('1.2.3.4'))

Checking if your kit is complete...
Looks good
Checking if your kit is complete...
Looks good
building for freebsd
Testing if you have a C compiler and the needed header files....
gcc compile.c -o compile.output

I cannot determine if you have a C compiler. I will install the
perl-only implementation.

You can force installation of the XS version with:

        perl Makefile.PL --xs
Checking if your kit is complete...
Looks good
Writing Makefile for NetAddr::IP::Util
Writing MYMETA.yml
Writing Makefile for NetAddr::IP::Lite
Writing MYMETA.yml
Writing Makefile for NetAddr::IP
Writing MYMETA.yml
===>  Building for p5-NetAddr-IP-4.069
cp IP.pm blib/lib/NetAddr/IP.pm
AutoSplitting blib/lib/NetAddr/IP.pm (blib/lib/auto/NetAddr/IP)
cp Lite.pm ../blib/lib/NetAddr/IP/Lite.pm
cp lib/NetAddr/IP/UtilPP.pm ../../blib/lib/NetAddr/IP/UtilPP.pm
AutoSplitting ../../blib/lib/NetAddr/IP/UtilPP.pm (../../blib/lib/auto/NetAddr/IP/UtilPP)
cp Util.pm ../../blib/lib/NetAddr/IP/Util.pm
AutoSplitting ../../blib/lib/NetAddr/IP/Util.pm (../../blib/lib/auto/NetAddr/IP/Util)
cp Util_IS.pm ../../blib/lib/NetAddr/IP/Util_IS.pm
cp lib/NetAddr/IP/InetBase.pm ../../blib/lib/NetAddr/IP/InetBase.pm
AutoSplitting ../../blib/lib/NetAddr/IP/InetBase.pm (../../blib/lib/auto/NetAddr/IP/InetBase)
Manifying ../../blib/man3/NetAddr::IP::UtilPP.3
Manifying ../../blib/man3/NetAddr::IP::Util.3
Manifying ../../blib/man3/NetAddr::IP::InetBase.3
Manifying ../blib/man3/NetAddr::IP::Lite.3
Manifying blib/man3/NetAddr::IP.3
===>  Installing for p5-NetAddr-IP-4.069
===>   p5-NetAddr-IP-4.069 depends on file: /usr/local/bin/perl5.14.4 - found
===>   Generating temporary packing list
===>  Checking if net-mgmt/p5-NetAddr-IP already installed
Installing /usr/local/lib/perl5/site_perl/5.14/NetAddr/IP.pm
Installing /usr/local/lib/perl5/site_perl/5.14/NetAddr/IP/Util.pm
Installing /usr/local/lib/perl5/site_perl/5.14/NetAddr/IP/UtilPP.pm
Installing /usr/local/lib/perl5/site_perl/5.14/NetAddr/IP/Util_IS.pm
Installing /usr/local/lib/perl5/site_perl/5.14/NetAddr/IP/Lite.pm
Installing /usr/local/lib/perl5/site_perl/5.14/NetAddr/IP/InetBase.pm
===>   Compressing manual pages for p5-NetAddr-IP-4.069
===>   Registering installation for p5-NetAddr-IP-4.069
===>  Building package for p5-NetAddr-IP-4.069
tar: lib/perl5/site_perl/5.14/mach/NetAddr/IP.pm: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/NetAddr/IP/InetBase.pm: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/NetAddr/IP/Lite.pm: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/NetAddr/IP/Util.pm: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/NetAddr/IP/UtilPP.pm: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/NetAddr/IP/Util_IS.pm: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/_inet_ntop.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/_inet_pton.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/_packzeros.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/autosplit.ix: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/inet_any2n.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/inet_n2ad.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/inet_n2dx.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/inet_ntoa.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/ipv6_aton.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/InetBase/ipv6_ntoa.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/Util/Util.bs: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/Util/Util.so: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/Util/autosplit.ix: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/_128x10.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/_128x2.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/_bcd2bin.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/_bcdcheck.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/_bin2bcdn.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/_deadlen.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/_sa128.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/add128.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/addconst.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/autosplit.ix: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/bcd2bin.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/bcdn2bin.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/bcdn2txt.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/bin2bcd.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/bin2bcdn.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/comp128.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/hasbits.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/ipanyto6.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/ipv4to6.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/ipv6to4.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/mask4to6.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/maskanyto6.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/notcontiguous.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/shiftleft.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/simple_pack.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/slowadd128.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/UtilPP/sub128.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/_compV6.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/_compact_v6.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/_splitplan.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/_splitref.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/autosplit.ix: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/coalesce.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/compactref.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/do_prefix.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/hostenum.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/mod_version.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/nprefix.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/prefix.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/re.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/re6.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/short.al: Cannot stat: No such file or directory
tar: lib/perl5/site_perl/5.14/mach/auto/NetAddr/IP/wildcard.al: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.
pkg_create: make_dist: tar command failed with code 256
*** [do-package] Error code 1

Stop in /rw/usr/ports/net-mgmt/p5-NetAddr-IP.
zfsraid#

How-To-Repeat: # cd /usr/ports/net-mgmt/p5-NetAddr-IP
# make package
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-07-03 00:40:18 UTC
Responsible Changed
From-To: freebsd-ports-bugs->tobez

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Anton Berezin 2013-07-09 10:40:31 UTC
On Tue, Jul 02, 2013 at 11:39:18PM +0000, Dave Hayes wrote:
> Something is wrong with the plist.
> 
> # make package
> Testing if you have a C compiler and the needed header files....
> gcc compile.c -o compile.output
> 
> I cannot determine if you have a C compiler. I will install the
> perl-only implementation.

I am unable to reproduce this.  Something is wrong with your C compiler.

What happens if you manually recreate a file called compile.c,
put the following in there:

----------8<-----------8<-----------8<-----------8<-----------8<------
int main() { return 0; }
----------8<-----------8<-----------8<-----------8<-----------8<------

and then run

$ gcc compile.c -o compile.output ; echo $?

?

The module compilation fails at this stage.

\Anton.
-- 
Our society can survive even a large amount of irrational regulation.
  -- John McCarthy
Comment 3 Dave Hayes 2013-07-09 21:37:45 UTC
On 07/09/13 02:40, Anton Berezin wrote:
> On Tue, Jul 02, 2013 at 11:39:18PM +0000, Dave Hayes wrote:
>> Something is wrong with the plist.
>>
>> # make package
>> Testing if you have a C compiler and the needed header files....
>> gcc compile.c -o compile.output
>>
>> I cannot determine if you have a C compiler. I will install the
>> perl-only implementation.
>
> I am unable to reproduce this.  Something is wrong with your C compiler.
>
> What happens if you manually recreate a file called compile.c,
> put the following in there:
>
> ----------8<-----------8<-----------8<-----------8<-----------8<------
> int main() { return 0; }
> ----------8<-----------8<-----------8<-----------8<-----------8<------
>
> and then run
>
> $ gcc compile.c -o compile.output ; echo $?
>
> ?
>
> The module compilation fails at this stage.

# cc -v
FreeBSD clang version 3.2 (tags/RELEASE_32/final 170710) 20121221
Target: x86_64-unknown-freebsd9.1
Thread model: posix
# cat compile.c
int main() { return 0; }
# cc compile.c -o compile.output ; echo $?
0

Just for grins:

# ./compile.output ; echo $?
0

Does this help? It's unexpected to me that a compiler failure would 
affect the package stage...I'd have thought it would affect the build 
stage.
-- 
Dave Hayes - Consultant - Altadena CA, USA - dave@jetcafe.org
 >>>> *The opinions expressed above are entirely my own* <<<<

We do not stumble over mountains, but over molehills.
Comment 4 Anton Berezin 2013-07-09 21:56:45 UTC
On Tue, Jul 09, 2013 at 01:37:45PM -0700, Dave Hayes wrote:
> On 07/09/13 02:40, Anton Berezin wrote:
> > On Tue, Jul 02, 2013 at 11:39:18PM +0000, Dave Hayes wrote:
> >> Something is wrong with the plist.
> >>
> >> # make package
> >> Testing if you have a C compiler and the needed header files....
> >> gcc compile.c -o compile.output
> >>
> >> I cannot determine if you have a C compiler. I will install the
> >> perl-only implementation.
> >
> > I am unable to reproduce this.  Something is wrong with your C compiler.
> >
> > What happens if you manually recreate a file called compile.c,
> > put the following in there:
> >
> > ----------8<-----------8<-----------8<-----------8<-----------8<------
> > int main() { return 0; }
> > ----------8<-----------8<-----------8<-----------8<-----------8<------
> >
> > and then run
> >
> > $ gcc compile.c -o compile.output ; echo $?
> >
> > ?
> >
> > The module compilation fails at this stage.
> 
> # cc -v
> FreeBSD clang version 3.2 (tags/RELEASE_32/final 170710) 20121221
> Target: x86_64-unknown-freebsd9.1
> Thread model: posix
> # cat compile.c
> int main() { return 0; }
> # cc compile.c -o compile.output ; echo $?
> 0
> 
> Just for grins:
> 
> # ./compile.output ; echo $?
> 0
> 
> Does this help? It's unexpected to me that a compiler failure would 
> affect the package stage...I'd have thought it would affect the build 
> stage.

You perl was compiled with gcc, not clang.  During configuration of the
module, it tries to make a choice between a faster "XS" code, which requires
C compiler, or to use a pure Perl version, which does not.  It so happens,
that the XS version installs a lot more files than the pure Perl does.

In the ports collection, we assume that the C compiler is available and
works, and thus, for this module, totally discount the possibility of not
having the XS portion available.

This is what you see happening, and what we'd like to find out, is why
a simple "gcc compile.c" fails on your box, and then we should be able to
fix it one way or another.

\Anton.
-- 
Our society can survive even a large amount of irrational regulation.
  -- John McCarthy
Comment 5 Dave Hayes 2013-07-09 22:03:52 UTC
On 07/09/13 13:56, Anton Berezin wrote:
> On Tue, Jul 09, 2013 at 01:37:45PM -0700, Dave Hayes wrote:
>> On 07/09/13 02:40, Anton Berezin wrote:
>>> On Tue, Jul 02, 2013 at 11:39:18PM +0000, Dave Hayes wrote:
>>>> Something is wrong with the plist.
>>>>
>>>> # make package
>>>> Testing if you have a C compiler and the needed header files....
>>>> gcc compile.c -o compile.output
>>>>
>>>> I cannot determine if you have a C compiler. I will install the
>>>> perl-only implementation.
>>>
>>> I am unable to reproduce this.  Something is wrong with your C compiler.
>>>
>>> What happens if you manually recreate a file called compile.c,
>>> put the following in there:
>>>
>>> ----------8<-----------8<-----------8<-----------8<-----------8<------
>>> int main() { return 0; }
>>> ----------8<-----------8<-----------8<-----------8<-----------8<------
>>>
>>> and then run
>>>
>>> $ gcc compile.c -o compile.output ; echo $?
>>>
>>> ?
>>>
>>> The module compilation fails at this stage.
>>
>> # cc -v
>> FreeBSD clang version 3.2 (tags/RELEASE_32/final 170710) 20121221
>> Target: x86_64-unknown-freebsd9.1
>> Thread model: posix
>> # cat compile.c
>> int main() { return 0; }
>> # cc compile.c -o compile.output ; echo $?
>> 0
>>
>> Just for grins:
>>
>> # ./compile.output ; echo $?
>> 0
>>
>> Does this help? It's unexpected to me that a compiler failure would
>> affect the package stage...I'd have thought it would affect the build
>> stage.
>
> You perl was compiled with gcc, not clang.

Actually I believe it was, in fact, compiled with clang:

# perl -V
Summary of my perl5 (revision 5 version 14 subversion 4) configuration:

   Platform:
     osname=freebsd, osvers=9.1-stable, archname=amd64-freebsd
     uname='freebsd zfsraid 9.1-stable freebsd 9.1-stable #0 r251391m: 
tue jun 4 17:17:33 pdt 2013 
unixwiz@cdbuilder:usrobj.1.8r1-amd64usrsrc.amd64sysfbcd64 amd64 '
     config_args='-sde -Dprefix=/usr/local 
-Darchlib=/usr/local/lib/perl5/5.14/mach 
-Dprivlib=/usr/local/lib/perl5/5.14 
-Dman3dir=/usr/local/lib/perl5/5.14/perl/man/man3 
-Dman1dir=/usr/local/man/man1 
-Dsitearch=/usr/local/lib/perl5/site_perl/5.14/mach 
-Dsitelib=/usr/local/lib/perl5/site_perl/5.14 -Dscriptdir=/usr/local/bin 
-Dsiteman3dir=/usr/local/lib/perl5/5.14/man/man3 
-Dsiteman1dir=/usr/local/man/man1 -Ui_malloc -Ui_iconv 
-Uinstallusrbinperl -Dcc=cc -Duseshrplib -Dinc_version_list=none 
-Dccflags=-DAPPLLIB_EXP="/usr/local/lib/perl5/5.14/BSDPAN" 
-Doptimize=-O2 -pipe -fno-strict-aliasing -Ui_gdbm -Dusethreads=n 
-Dusemymalloc=n -Duse64bitint'
     hint=recommended, useposix=true, d_sigaction=define
     useithreads=undef, usemultiplicity=undef
     useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
     use64bitint=define, use64bitall=define, uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
   Compiler:
     cc='cc', ccflags ='-DAPPLLIB_EXP="/usr/local/lib/perl5/5.14/BSDPAN" 
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe 
-fstack-protector -I/usr/local/include',
     optimize='-O2 -pipe -fno-strict-aliasing',
     cppflags='-DAPPLLIB_EXP="/usr/local/lib/perl5/5.14/BSDPAN" 
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe 
-fstack-protector -I/usr/local/include'
     ccversion='', gccversion='4.2.1 Compatible FreeBSD Clang 3.2 
(tags/RELEASE_32/final 170710)', gccosandvers=''
     intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
     ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
     alignbytes=8, prototype=define
   Linker and Libraries:
     ld='cc', ldflags ='-pthread -Wl,-E  -fstack-protector -L/usr/local/lib'
     libpth=/usr/lib /usr/local/lib
     libs=-lm -lcrypt -lutil
     perllibs=-lm -lcrypt -lutil
     libc=, so=so, useshrplib=true, libperl=libperl.so
     gnulibc_version=''
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' 
-Wl,-R/usr/local/lib/perl5/5.14/mach/CORE'
     cccdlflags='-DPIC -fPIC', lddlflags='-shared  -L/usr/local/lib 
-fstack-protector'


Characteristics of this binary (from libperl):
   Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                         PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT
                         USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
   Built under freebsd
   Compiled at Jun 27 2013 17:07:53
   @INC:
     /usr/local/lib/perl5/5.14/BSDPAN
     /usr/local/lib/perl5/site_perl/5.14/mach
     /usr/local/lib/perl5/site_perl/5.14
     /usr/local/lib/perl5/5.14/mach
     /usr/local/lib/perl5/5.14


> During configuration of the
> module, it tries to make a choice between a faster "XS" code, which requires
> C compiler, or to use a pure Perl version, which does not.  It so happens,
> that the XS version installs a lot more files than the pure Perl does.
>
> In the ports collection, we assume that the C compiler is available and
> works, and thus, for this module, totally discount the possibility of not
> having the XS portion available.
>
> This is what you see happening, and what we'd like to find out, is why
> a simple "gcc compile.c" fails on your box, and then we should be able to
> fix it one way or another.

Heh. The "why" is because it's not there:

# gcc
gcc: Command not found.

This is a box with clang as cc, so there is no gcc.
-- 
Dave Hayes - Consultant - Altadena CA, USA - dave@jetcafe.org
 >>>> *The opinions expressed above are entirely my own* <<<<

Love thy neighbor as thyself, but choose your neighborhood.
Comment 6 Anton Berezin 2013-07-09 22:35:49 UTC
On Tue, Jul 09, 2013 at 02:03:52PM -0700, Dave Hayes wrote:

> > You perl was compiled with gcc, not clang.
> 
> Actually I believe it was, in fact, compiled with clang:

Right.  The relevant configuration used by NetAddr::IP is:

  my $CC = $ENV{CC} || $Config{ccname};
  my $command = qq|$CC compile.c -o compile.output|;

%Config comes from Config.pm;  what happens if you run

$ perl -MConfig -le 'print $Config{ccname}'

?

Same question for

$ perl -MConfig -le 'print $Config{cc}'

I cannot imagine your system having CC=gcc set in the environment, right?

If ccname is gcc, and cc is cc, then congratulations, you have found a bug
in NetAddr::IP, which should be reported.  According to Config.pm's
documentation:

       "cc"
           This variable holds the name of a command to execute a C compiler
           which can resolve multiple global references that happen to have
           the same name.  Usual values are "cc" and "gcc".  Fervent "ANSI"
           compilers may be called "c89".  "AIX" has xlc.


       "ccname"
           This can set either by hints files or by Configure.  If using gcc,
           this is gcc, and if not, usually equal to cc, unimpressive, no?
           Some platforms, however, make good use of this by storing the
           flavor of the C compiler being used here.  For example if using the
           Sun WorkShop suite, ccname will be "workshop".

While these descriptions do not answer the question "which one should be
used" exactly, the Sun WorkShop suite example kinda hints that using ccname
is wrongish.

Additionally, perlembed(1) tells us to use cc:

       You'll have to choose the appropriate compiler (cc, gcc, et al.) for
       your machine: "perl -MConfig -e 'print $Config{cc}'" will tell you what
       to use.

I'll see about patching the port, and reporting the bug to the module
author.  In the meantime, as a workaround, set CC=cc in your environment.

\Anton.
-- 
Our society can survive even a large amount of irrational regulation.
  -- John McCarthy
Comment 7 Dave Hayes 2013-07-09 23:26:09 UTC
On 07/09/13 14:35, Anton Berezin wrote:
> On Tue, Jul 09, 2013 at 02:03:52PM -0700, Dave Hayes wrote:
>
>>> You perl was compiled with gcc, not clang.
>>
>> Actually I believe it was, in fact, compiled with clang:
>
> Right.  The relevant configuration used by NetAddr::IP is:
>
>    my $CC = $ENV{CC} || $Config{ccname};
>    my $command = qq|$CC compile.c -o compile.output|;
>
> %Config comes from Config.pm;  what happens if you run
>
> $ perl -MConfig -le 'print $Config{ccname}'
>
> ?

Ah ha. Look:

# perl -MConfig -le 'print $Config{ccname}'
gcc
# perl -MConfig -le 'print $Config{cc}'
cc

You are in luck for debugging here because I am using poudriere and I 
have two jails, one is 9.1 with clang and one is 9.1 with stock cc. The
9.1 stock cc succeeds fine. The 9.1. with clang does not. Inside the 9.1 
clang jail:

# perl -MConfig -le 'print $Config{ccname}'
gcc
# perl -MConfig -le 'print $Config{cc}'
cc
# cc -v
FreeBSD clang version 3.2 (tags/RELEASE_32/final 170710) 20121221
Target: x86_64-unknown-freebsd9.1
Thread model: posix
# gcc
gcc: Command not found.

> Same question for
>
> $ perl -MConfig -le 'print $Config{cc}'
>
> I cannot imagine your system having CC=gcc set in the environment, right?

Not exactly. I found this tidbit on a mailing list and altered it for my 
ports. In /etc/make.conf just for the clang jail I have:

For ports that don't build with clang
_MANUAL_USE_GCC_49_PORTS_LIST+= \

_MANUAL_USE_GCC_46_PORTS_LIST+= \
	emulators/virtualbox-ose-additions \
	devel/kBuild

.if defined(_MANUAL_USE_GCC_49_PORTS_LIST)
. for _DIR in ${_MANUAL_USE_GCC_49_PORTS_LIST}
.  if empty(${_PORTSDIR:M/${_DIR}})
_USE_GCC_49_ON_PORT_=YES
.  endif
. endfor
.endif

.if defined(_MANUAL_USE_GCC_46_PORTS_LIST)
. for _DIR in ${_MANUAL_USE_GCC_49_PORTS_LIST}
.  if empty(${_PORTSDIR:M/${_DIR}})
_USE_GCC_46_ON_PORT_=YES
.  endif
. endfor
.endif

.if defined(_USE_GCC_49_ON_PORT_)
CC=gcc49
CXX=g++49
CPP=cpp49
CFLAGS+=-mssse3
.endif

.if defined(_USE_GCC_46_ON_PORT_)
CC=gcc46
CXX=g++46
CPP=cpp46
CFLAGS+=-mssse3
.endif

# added by use.perl 2013-06-27 17:11:38
PERL_VERSION=5.14.4

This should not ever cause CC to be "gcc" but to be "gcc46" or "gcc49", 
even if there is a bug in the above. Right?

Additionally, I built the NetAddr port both on the clang jail and the 
main machine just to check. The main machine is just like the clang jail 
machine except that I've installed various ports manually so as to be 
able to use the machine to build ports from poudriere.

Here's further evidence no CC=gcc is in the environment. When I grep 
through the build logs created by trying to build NetAddr:

# grep CC p5-NetAddr-IP-4.069.log
INSTALLDIRS="site" CC="cc" CCFLAGS="-O2 -pipe -fno-strict-aliasing" 
PREFIX="/usr/local"  INSTALLPRIVLIB="/usr/local/lib" 
INSTALLARCHLIB="/usr/local/lib"
TMPDIR="/tmp" SHELL=/bin/sh CONFIG_SHELL=/bin/sh 
PERL_EXTUTILS_AUTOINSTALL="--skipdeps" PERL_MM_USE_DEFAULT="YES" 
PATH=/usr/local/libexec/ccache:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin 
CCACHE_DIR="/root/.ccache"
TMPDIR="/tmp" SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local 
LOCALBASE=/usr/local  MOTIFLIB="-L/usr/local/lib -lXm -lXp" 
LIBDIR="/usr/lib"  CC="cc" CFLAGS="-O2 -pipe -fno-strict-aliasing" 
CPP="cpp" CPPFLAGS=""  LDFLAGS=""  CXX="c++" CXXFLAGS="-O2 -pipe 
-fno-strict-aliasing"  MANPREFIX="/usr/local" 
PATH=/usr/local/libexec/ccache:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin 
CCACHE_DIR="/root/.ccache" BSD_INSTALL_PROGRAM="install  -s -o root -g 
wheel -m 555"  BSD_INSTALL_LIB="install  -s -o root -g wheel -m 444" 
BSD_INSTALL_SCRIPT="install  -o root -g wheel -m 555" 
BSD_INSTALL_DATA="install  -o root -g wheel -m 444" 
BSD_INSTALL_MAN="install  -o root -g wheel -m 444"
WITH_CCACHE_BUILD=yes
CCACHE_DIR=/root/.ccache

I think, if anything, that CC=cc.

> I'll see about patching the port, and reporting the bug to the module
> author.  In the meantime, as a workaround, set CC=cc in your environment.

This already appears to be the case from the above, sadly.

My canonical workaround for these issues is to copy the package that 
builds in the gcc'd 9.1 to the list of packages for the clang'd 9.1. I'd 
imagine that is kind of naive, but it's working so far. Do you see any 
problems with this?
-- 
Dave Hayes - Consultant - Altadena CA, USA - dave@jetcafe.org
 >>>> *The opinions expressed above are entirely my own* <<<<

A philosopher called on Nasrudin and found him away from
home. Infuriated, he wrote 'Stupid Oaf' on his door. As soon
as Nasrudin got home and saw this, he rushed to the
philosopher's house. "I'd forgotten", he said, "that you
were to call. And I apologize for not having been at home. I
remembered our appointment as soon as I saw that you'd left
your name on my door..."
Comment 8 dfilter service freebsd_committer freebsd_triage 2013-07-10 14:42:53 UTC
Author: tobez
Date: Wed Jul 10 13:42:41 2013
New Revision: 322696
URL: http://svnweb.freebsd.org/changeset/ports/322696

Log:
  Make it package correctly on clang-only boxes.
  
  PR:			180220
  Submitted by:	Dave Hayes <dave@jetcafe.org>

Added:
  head/net-mgmt/p5-NetAddr-IP/files/
  head/net-mgmt/p5-NetAddr-IP/files/patch-Lite-Util-Makefile.PL   (contents, props changed)
Modified:
  head/net-mgmt/p5-NetAddr-IP/Makefile

Modified: head/net-mgmt/p5-NetAddr-IP/Makefile
==============================================================================
--- head/net-mgmt/p5-NetAddr-IP/Makefile	Wed Jul 10 13:40:57 2013	(r322695)
+++ head/net-mgmt/p5-NetAddr-IP/Makefile	Wed Jul 10 13:42:41 2013	(r322696)
@@ -3,6 +3,7 @@
 
 PORTNAME=	NetAddr-IP
 PORTVERSION=	4.069
+PORTREVISION=	1
 CATEGORIES=	net-mgmt perl5
 MASTER_SITES=	CPAN
 PKGNAMEPREFIX=	p5-

Added: head/net-mgmt/p5-NetAddr-IP/files/patch-Lite-Util-Makefile.PL
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/p5-NetAddr-IP/files/patch-Lite-Util-Makefile.PL	Wed Jul 10 13:42:41 2013	(r322696)
@@ -0,0 +1,11 @@
+--- ./Lite/Util/Makefile.PL.orig	2013-07-10 15:38:50.000000000 +0200
++++ ./Lite/Util/Makefile.PL	2013-07-10 15:38:55.000000000 +0200
+@@ -205,7 +205,7 @@ sub test_cc {
+     return;
+   }
+ 
+-  my $CC = $ENV{CC} || $Config{ccname};
++  my $CC = $ENV{CC} || $Config{cc};
+   my $command = qq|$CC compile.c -o compile.output|;
+ 
+   print F <<'EOF';
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 9 Anton Berezin freebsd_committer freebsd_triage 2013-07-10 14:43:14 UTC
State Changed
From-To: open->closed

The fix has been committed. Thank you for your submission.