[MacPorts] #34495: subversion-perlbindings 1.7.5 ignores +threads for Perl
MacPorts
noreply at macports.org
Mon May 21 16:39:40 PDT 2012
#34495: subversion-perlbindings 1.7.5 ignores +threads for Perl
-------------------------------+--------------------------------------------
Reporter: cmc@… | Owner: macports-tickets@…
Type: defect | Status: reopened
Priority: Normal | Milestone:
Component: ports | Version: 2.1.0
Resolution: | Keywords:
Port: |
-------------------------------+--------------------------------------------
Changes (by cmc@…):
* status: closed => reopened
* resolution: worksforme =>
Comment:
Aha—yes, that appears to be what was happening. It seems like many or
most things still build from source, enough that I had no idea that
MacPorts was pulling binary archives (and there is no clear indication
that you're installing an archive rather than building it locally; for
something like a Perl package that might just consist of some Perl code
(and not need compilation), you'd be hard pressed to see a difference
unless you were familiar with the build process for that particular
package). (If you look closely at the output of the install command you
can see that `port` fetches an archive rather than distfiles, and the
install lines start with `x` rather than `a`.)
So there are actually two different bugs here:
1. Given that the binary archive builds don't cover every possible
variation of the Perl package (at least), `port` should verify that the
binary archive was built against a Perl with the same variants as the
locally installed Perl port, and build from source if it wasn't.
2. The `-s` flag is not passed along to any dependency builds, so if you
build, say, `git-core +svn`, which depends on `p5.12-svn-simple`, which
depends on `subversion-perlbindings`, only `git-core` will be built with
the `-s` flag, and the dependents will be installed from the broken
archives.
and maybe even
3. MacPorts installation behavior changes to use binary archives without
telling the end user.
For anyone else with this issue, I had to uninstall several packages, then
clean, then reinstall each package in the dependency chain separately with
the `-s` flag to force a build from source.
Specifically,
{{{
sudo port -v uninstall subversion @1.7.5_0+bash_completion+tools
sudo port -v uninstall git-core
sudo port -v uninstall p5.12-svn-simple
sudo port -v uninstall subversion-perlbindings
sudo port clean subversion subversion-perlbindings git-core p5.12-svn-
simple
sudo port -v -s install subversion +bash_completion+tools
sudo port -v -s install subversion-perlbindings
sudo port -v -s uninstall p5.12-svn-simple
sudo port -v -s install git-core
+credential_osxkeychain+doc+pcre+python27+svn
}}}.
To stop this sort of problem from happening again, I compared
`/opt/local/etc/macports/macports.conf.default` to
`/opt/local/etc/macports/macports.conf`, and ended up copying
`macports.conf.default` to `macports.conf`, then edited `macports.conf` to
change
{{{
# When to build ports from source. Default is 'ifneeded', which downloads
an
# archive if available or builds from source otherwise. 'always' has the
same
# effect as -s on the command line, and 'never' is likewise the same as
-b.
#buildfromsource ifneeded
}}}
to
{{{
buildfromsource always
}}}
to force builds from source even if a binary archive is available.
--
Ticket URL: <https://trac.macports.org/ticket/34495#comment:2>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list