Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Nov 2013 00:25:26 -0800
From:      "Ronald F. Guilmette" <rfg@tristatelogic.com>
To:        freebsd-ports@freebsd.org
Subject:   Upgrading Perl... Somebody just shoot me and put me out of my misery!
Message-ID:  <97331.1385108726@server1.tristatelogic.com>

next in thread | raw e-mail | index | archive | help

Short Preface:
-------------

I am a user of portupgrade.  (Please do not tell me that there is
something better I should be using.  That is what I use.  I like it
and aI am familiar with it.  If it is no longer functional then
SOMEBODY should get off their ass and remove it from the ports tree.
Until then I plan to keep on using it.)

Now, the real question:
-----------------------

I am attempting to simply upgrade all my installed ports.  As usual,
large numbers of things are failing horribly.  (It would be nice if
someday maintainers stopped dreaming up new ways to break existing
ports, but I'm not holding my breath.)

Anyway, the specific broken port I'm trying to fix at the moment is
net/p5-Socket, which is failing thusly:

========================================================================
# make
===>  License ART10 GPLv1 accepted by the user
===> Fetching all distfiles required by p5-Socket-2.013 for building
===>  Extracting for p5-Socket-2.013
=> SHA256 Checksum OK for Socket-2.013.tar.gz.
===>  Patching for p5-Socket-2.013
===>   p5-Socket-2.013 depends on file: /usr/local/bin/perl5.14.4 - found
===>  Configuring for p5-Socket-2.013
Bareword "AF_UNIX" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 739.
Bareword "SOCK_STREAM" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 739.
Bareword "PF_UNSPEC" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 739.
Bareword "AF_UNIX" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 741.
Bareword "SOCK_STREAM" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 741.
Bareword "PF_UNSPEC" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 741.
Bareword "AF_UNIX" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 743.
Bareword "SOCK_STREAM" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 743.
Bareword "PF_UNSPEC" not allowed while "strict subs" in use at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 743.
BEGIN not safe after errors--compilation aborted at /usr/local/lib/perl5/5.14/IPC/Cmd.pm line 1205.
Compilation failed in require at /usr/local/lib/perl5/5.14/ExtUtils/CBuilder/Base.pm line 11.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.14/ExtUtils/CBuilder/Base.pm line 11.
Compilation failed in require at /usr/local/lib/perl5/5.14/ExtUtils/CBuilder/Platform/Unix.pm line 4.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.14/ExtUtils/CBuilder/Platform/Unix.pm line 4.
Compilation failed in require at (eval 11) line 2.
BEGIN failed--compilation aborted at (eval 11) line 2.
Compilation failed in require at ./Makefile.PL line 19.
*** [do-configure] Error code 2

Stop in /usr/ports/net/p5-Socket.
========================================================================

There is no clear reason for this failure at all, and googling for the
first error message above provides nothing of any value or insight.

OK, so now I look at the UPDATING file and see that there have been two
recent changes to Perl, both of which are likely to cause general breakage.
i.e. one dated 20131023 and a more recent one 20131120.  So I figure that
I ought to pay attention to these two in proper chronlogical order, and
do what the UPDATING file tells me to do in each case (and then just pray,
as usual, that any of this has a damn thing to do with the build errors
I'm getting for net/p5-Socket... which they probably don't).

OK so I'm looking at these instructions from UPDATING which are clear and
specific:

==========================================================================
20131023:
  AFFECTS: users of lang/perl5.12 lang/perl5.14
  AUTHOR: mat@FreeBSD.org

  The default Perl has been switched to lang/perl5.16.  These examples
  are for switching from lang/perl5.14, if you are running another
  version, replace lang/perl5.14 with the origin of the Perl you have
  installed.

  ...

  Portupgrade users:
    0) Fix pkgdb.db (for safety):
        pkgdb -Ff

    1) Reinstall new version of Perl (5.16):
        portupgrade -o lang/perl5.16 -f perl-5.14.\*

    2) Reinstall everything that depends on Perl:
        portupgrade -fr perl

   ...

==========================================================================

I performed step 0.  Nothing happened... which is a good thing, right?

I performed step 1, exactly as written.  Again *nothing* happened.  I just
got anothwer command prompt, essentially immediately.

So, um, WTF??

pkg_info says that at present I have perl5.14-5.14.4_3 installed.  So excuse
my french, but why the fuck didn't the command:

   portupgrade -o lang/perl5.16 -f perl-5.14.\*

actually *DO* anything?

And more to the point WHAT THE HELL DO I DO NOW?

Any clue would be appreciated.


Regards,
rfg


P.S. If it sounds like I'm unhappy, well, that's correct.  It's late, I'm
tired, and I don't see why I should have to go through all of this same
kind of stupidity each and every time I try to simply upgrade my ports.

P.P.S.  Seriously folks, am I the only person who dreams of the day when
I might just be able to do:

	portsnap fetch update
	portupgrade -a

and have it all just plain WORK, you know, without a shitload of tedious
manual intervention?

Let me state my question a different way... Is there any group, or even
any single person on the planet who has *every* single currently available
FfreeBSD port installed and who routinely does these two simple and obvious
steps, while looking for problems?

	portsnap fetch update
	portupgrade -a

And if not, why not?  Is it really the case that nobody in the whole
FreeBSD community gives a shit if various ports routinely get broken and/or
cause breakage in other things?

And if there *is* someone doing that, then why is it that port maintainers
are allowed to check in changes to ports that, quite obviously, just break
stuff... based upon doing the simple, straightforward, and obviously testing
steps described just above?

I just know that *somebody* is going to pipe up and say "Oh, but it
isn't that simple, because you would also have to MANUALLY do the various
things called for in the UPDATING file." to which I would respond "Yea,
well somebody ought to fix THAT problem too!"  I means seriously, what
is preventing all of this shit from being COMPLETELY automated... other
that sheer laziness and a lack of ernest crafstmanship?

I upgrade my installed ports every month or two and each and every time
I do, at least a half dozen of them or so require some manual fiddling,
just to get the newer versions built and installed.  This is not merely
tedious.  It is idiotic.  And I say that as a person who *likes* FreeBSD,
and who is a fan.  To FreeBSD's detractors, this all must look pretty
ad hoc, hackish, and downright pathetic.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?97331.1385108726>