[MacPorts] #46057: p5-sgmlspm @1.03ii.0 remove old versions of perl5

MacPorts noreply at macports.org
Tue Dec 30 10:35:24 PST 2014


#46057: p5-sgmlspm @1.03ii.0 remove old versions of perl5
------------------------------+----------------------------------
  Reporter:  tlockhart1976@…  |      Owner:  macports-tickets@…
      Type:  enhancement      |     Status:  new
  Priority:  Normal           |  Milestone:
 Component:  ports            |    Version:  2.3.3
Resolution:                   |   Keywords:  haspatch, maintainer
      Port:  p5-sgmlspm       |
------------------------------+----------------------------------

Comment (by devans@…):

 As stated in [https://trac.macports.org/ticket/46057#comment:5 comment5],
 the use of variants to try and resolve activation conflicts between the
 various subports is inappropriate.  In addition, the specification of a
 perl default is redundant as this is already handled by the perl5
 portgroup.

 The more traditional way to resolve the conflicts is to fix the port to
 install any binaries in ${perl5.bindir}.  This variable defaults is set by
 the perl5 portgroup to the versioned directory
 ${prefix}/libexec/perl${perl5.major}.  When binaries exist in this
 directory, the portgroup automatically creates versioned symbolic links to
 them in ${prefix}/bin resolving possible conflicts.

 In addition, there are some miscellaneous issues with the port's Makefile
 that can be handled more simply by patching the Makefile directly.  These
 include the creation of required installation directories in ${destroot}
 and enabling the installation of html documentation which is
 currently comment out in the distributed Makefile.

 The attached patch (relative to svn r130129), uses this approach to
 simplify the Portfile and use the perl5 portgroup to greatest advantage.

 The included patch-Makefile.diff, patches the Makefile to replace the
 various hard coded user options with symbols that can be uniquely replaced
 with the desired values during the post-patch phase.  In addition, the
 commented install-html target is enabled as a dependency of the install
 target and fixups to the various install rules are made so that they
 behave as originally intended when installing into $destroot, including
 installing necessary installation directories where required.

 The post-patch phase then replaces the patched symbolic values with
 appropriate paths expected by the perl5 port group.  Attempts to fixup
 DOC/Makefile have been removed because, although this Makefile is invoked
 during the install target, it does nothing because pre-generated copies of
 the HTML documentation are included in the distributed tarball.

 Since everything that is done in the Makefile occurs during the execution
 of the install target, the build phase is disabled by replacing it
 with a dummy version.  Note that previous attempts to set the various user
 options by passing them as command line arguments in the build phase were
 ineffective since the Makefile hard codes these values and ignores any
 command line arguments.  The complete install process now is invoked
 during the destroot phase only, using the user options specified during
 post-patch.

 Because the installed file layout is changed from previous versions, the
 port revision is incremented.

 This patch works for me and allows the installation of the various
 subports simultaneously without conflict.  If this works for you, I'd be
 glad to commit it and close the ticket.  The issue of removing old
 subports has already been accomplished by mojca in r130129.

-- 
Ticket URL: <https://trac.macports.org/ticket/46057#comment:8>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list