Difference between revisions of "Fink:Policy:Trees"
(→Tree Modularity: make it a one-liner) |
(fix tag-balance problem) |
||
(One intermediate revision by the same user not shown) | |||
Line 24: | Line 24: | ||
<pre>fink --trees=stable/main list -t | grep -v '\[' | cut -f2 > pkgs</pre> |
<pre>fink --trees=stable/main list -t | grep -v '\[' | cut -f2 > pkgs</pre> |
||
edit <code>pkgs</code> to remove any known blockers: |
edit <code>pkgs</code> to remove any known blockers: |
||
− | * <code>libgems-rb*</code> and <code>rubygems-rb*<code> (-rb16 and -rb18 cannot be built concurrently) |
+ | * <code>libgems-rb*</code> and <code>rubygems-rb*</code> (-rb16 and -rb18 cannot be built concurrently) |
<pre>cat pkgs | xargs fink --trees=stable/main,virtual rebuild</pre> |
<pre>cat pkgs | xargs fink --trees=stable/main,virtual rebuild</pre> |
||
Line 31: | Line 31: | ||
<pre>fink --trees=stable,virtual list --format=dotty | perl -n -e 'if (/"(.*?)" -> "(.*?)"/) { push @{$need{$2}}, $1} elsif (/"(.*?)" \[/) {$have{$1}++}} END {foreach (sort keys %need) {print "missing $_ for ".join(" ",@{$need{$_}})."\n" unless $have{$_}}'</pre> |
<pre>fink --trees=stable,virtual list --format=dotty | perl -n -e 'if (/"(.*?)" -> "(.*?)"/) { push @{$need{$2}}, $1} elsif (/"(.*?)" \[/) {$have{$1}++}} END {foreach (sort keys %need) {print "missing $_ for ".join(" ",@{$need{$_}})."\n" unless $have{$_}}'</pre> |
||
+ | For complete diagnosis, that one-liner also needs to be run with <code>--format=dotty-build</code> in place of <code>--format=dotty</code> (to get <code>BuildDepends</code>) and both times as <code>fink -m</code> (to get <code>TestDepends</code> included). |
||
{{Fink_Header}} |
{{Fink_Header}} |
Latest revision as of 06:53, 16 July 2017
Linking Against OpenSSL
If the package currently has to be marked "License: Restrictive" because it links against OpenSSL, there is a workaround. The GPL specifies that it is OK to link against non-GPL software if it is a system-provided library. Since Apple includes OpenSSL as part of the base Mac OS X install, it can be linked against without license issues.
To do so, use the system-openssl-dev package.
Tree Modularity
Any package in the stable tree must have all its (Build)Depends be satisfiable by packages in the stable tree. The idea is that a user could use only the stable tree and still still have a self-contained fink installation with no missing dependent packages.
Prior to July 1, 2010, any package that had a (Build)Depends that can only be satisfied by package(s) in section:crypto was required to itself be in section:crypto. This requirement was dropped when crypto was moved into the main tree.
You can pipe the output of 'fink list' into 'fink rebuild' to see if there are any packages with broken dependencies. The subsets are:
- stable/main
- unstable/main stable/main
(There used to be two more subsets, involving the crypto tree.)
Because some users might only have unstable/main, every package in the stable tree should also appear in the unstable tree, in either the same or a more recent version.
You can use fink's --trees flag instead of having to alter the Trees
line in your fink.conf
file for each subset of the distro, for example:
fink --trees=stable/main list -t | grep -v '\[' | cut -f2 > pkgs
edit pkgs
to remove any known blockers:
libgems-rb*
andrubygems-rb*
(-rb16 and -rb18 cannot be built concurrently)
cat pkgs | xargs fink --trees=stable/main,virtual rebuild
An alternative way to test for modularity and find all unsatisfied dependencies is:
fink --trees=stable,virtual list --format=dotty | perl -n -e 'if (/"(.*?)" -> "(.*?)"/) { push @{$need{$2}}, $1} elsif (/"(.*?)" \[/) {$have{$1}++}} END {foreach (sort keys %need) {print "missing $_ for ".join(" ",@{$need{$_}})."\n" unless $have{$_}}'
For complete diagnosis, that one-liner also needs to be run with --format=dotty-build
in place of --format=dotty
(to get BuildDepends
) and both times as fink -m
(to get TestDepends
included).