[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