Update of /cvsroot/fink/dists/10.7/stable/main/finkinfo/devel
In directory vz-cvs-3.sog:/tmp/cvs-serv11461/devel

Added Files:
        autoconf.info automake1.11.info bison.info 
        fink-package-precedence.info fink-package-precedence.patch 
        flex.info intltool40-10.7.info m4.info pkgconfig.info 
        pkgconfig.patch xmkmf.info xmkmf.patch 
Log Message:
builds on 10.7


--- NEW FILE: m4.info ---
Package: m4
Version: 1.4.16
Revision: 1
Source: mirror:gnu:%n/%n-%v.tar.bz2
Source-MD5: 8a7cef47fecab6272eb86a6be6363b2f 
SetCFLAGS: -Os
BuildDepends: fink (>= 0.24.12), texinfo, libsigsegv2
Depends: libsigsegv2-shlibs
ConfigureParams: --disable-dependency-tracking 
# CVS log for the CPP= ./configure says "distcc friendly", I have my
# doubts about its necessity, but meh.
CompileScript: <<
  CPP= ./configure %c
  make
<<
# Avoid the gnulib tests (one fails without libsigsegv).
InfoTest: TestScript: make check || exit 2
InstallScript: <<
 make install DESTDIR=%d 
 (cd %i/bin ; ln -s m4 gm4)
# libdir only contains charset.alias
 rm -rf %i/lib
 mkdir -p %i/share/doc/%n
<<
DocFiles: README COPYING NEWS THANKS
InfoDocs: m4.info
#
Description: Advanced macro processing language
License: GPL
Homepage: http://www.gnu.org/software/m4
Maintainer: Peter O'Gorman <pe...@pogma.com> 

--- NEW FILE: automake1.11.info ---
Package: automake1.11
Version: 1.11.1
Revision: 3
Source: mirror:gnu:automake/automake-%v.tar.bz2
Source-MD5: c2972c4d9b3e29c03d5f2af86249876f
BuildDepends: fink (>= 0.24.12)
Depends: autoconf (>= 1:2.63-1) | autoconf2.6
Conflicts: automake, automake1.4, automake15, automake1.5, automake1.6, 
automake1.7, automake1.8, automake1.9, automake1.10
Replaces: automake, automake1.4, automake15, automake1.5, automake1.6, 
automake1.7, automake1.8, automake1.9, automake1.10
Provides: automaken
ConfigureParams: --infodir=%p/share/info
CompileScript: <<
  ./configure %c ac_cv_path_PERL=/usr/bin/perl
  make
<<
InstallScript: make install DESTDIR=%d

InfoTest: TestScript: make check || :
# testsuite fails one test with Apple's sed installed. Reported issue
# to upstream autoconf -
# http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/7085
DocFiles: COPYING README AUTHORS NEWS THANKS
InfoDocs: automake.info

Description: GNU Standards-compliant Makefile generator
DescDetail: <<
Automake is a tool for automatically generating `Makefile.in's from files 
called `Makefile.am'.

The goal of Automake is to remove the burden of Makefile maintenance from the 
back of the individual GNU maintainer (and put it on the back of the Automake 
maintainer).

The `Makefile.am' is basically a series of `make' macro definitions (with 
rules being thrown in occasionally). The generated `Makefile.in's are 
compliant with the GNU Makefile standards.
<<
DescPackaging: <<
Apple's Python returns /Library/Python for 
python -c "import sys; from distutils import sysconfig;
sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='/a/prefix'));"

Which causes a test failure (it should return a directory starting with
/a/prefix).

Filed as rdar://problem/6903801 which was duped to
rdar://problem/6132558 

Patch that was applied to upstream automake to work around this issue
is included in this package. Unless --prefix=/usr or below /System,
the python directory is chosen to be below --prefix, as an exception
to this (for the vendor) --prefix=/usr or below /System respects the
pythondir that python returns.

Previous versions by Christoph Pfisterer, Max Horn.
Desc adapted from debian :-)
<<
License: GPL
Maintainer: Chris Zubrzycki <bere...@users.sourceforge.net>
Homepage: http://www.gnu.org/software/automake/

--- NEW FILE: flex.info ---
Package: flex
Version: 2.5.4a
Revision: 4
Epoch: 1
BuildDependsOnly: true
Source: mirror:gnu:non-gnu/%n/%n-%v.tar.gz
SourceDirectory: %n-2.5.4
NoSetMAKEFLAGS: true
SetMAKEFLAGS: -j1
InstallScript: <<
 make install prefix=%i mandir=%i/share/man/man1
 mkdir -p %i/share/info
 install -c -p -m 644 MISC/texinfo/flex.info %i/share/info/
 (cd %i/bin && ln -s flex lex)
 (cd %i/lib && ln -s libfl.a libl.a)
<<
DocFiles: README COPYING NEWS
InfoDocs: flex.info
#
Description: Fast lexical analyser generator
DescDetail: <<
Flex is a tool for generating programs that require pattern-matching
on text. It is usually used together with yacc/bison to automatically
generate a parser for a language grammar, e.g. the syntax of a
configuration file.
<<
DescPackaging: <<
There are newer versions of flex by now, but these are not fully
compatible in various ways. The latest flex versions are hence
packaged as flex-devel.
<<
License: BSD
Homepage: http://www.gnu.org/software/flex/flex.html



Maintainer: None <fink-de...@lists.sourceforge.net>
Source-MD5: bd8753d0b22e1f4ec87a553a73021adf

--- NEW FILE: xmkmf.patch ---
diff -ruN xorg-cf-files-1.0.2/Imake.cf xorg-cf-files-1.0.2-patched/Imake.cf
--- xorg-cf-files-1.0.2/Imake.cf        2005-11-07 22:33:24.000000000 -0800
+++ xorg-cf-files-1.0.2-patched/Imake.cf        2009-04-07 13:48:13.000000000 
-0700
@@ -33,6 +33,9 @@
 #  define i386DarwinArchitecture
 #  undef __i386__
 # endif
+# ifdef __x86_64__
+#  define x86_64DarwinArchitecture
+# endif
 #endif
 
 #if defined(clipper) || defined(__clipper__)
diff -ruN xorg-cf-files-1.0.2/darwin.cf xorg-cf-files-1.0.2-patched/darwin.cf
--- xorg-cf-files-1.0.2/darwin.cf       2005-03-31 17:22:07.000000000 -0800
+++ xorg-cf-files-1.0.2-patched/darwin.cf       2009-04-07 13:49:24.000000000 
-0700
@@ -230,6 +230,16 @@
 # define ByteOrder              X_LITTLE_ENDIAN
 #endif /* i386DarwinArchitecture */
 
+#ifdef x86_64DarwinArchitecture
+# define DarwinMachineDefines   -D__x86_64__
+# if HasGcc3
+#  define OptimizedCDebugFlags  -Os
+# else
+#  define OptimizedCDebugFlags  -O2 -fno-strength-reduce
+# endif
+# define ByteOrder              X_LITTLE_ENDIAN
+#endif /* x86_64DarwinArchitecture */
+
 #if OSMajorVersion < 7
 # define DarwinLocaleDefines    -DX_LOCALE
 #else

--- NEW FILE: xmkmf.info ---
Package: xmkmf
Version: 1.0.2
Revision: 1002
Distribution: 10.5, 10.6, 10.7
Description: X11 legacy build tools
License: BSD
Maintainer: Dave Morrison  <d...@finkproject.org>
BuildDepends: pkgconfig, fink (>= 0.24.12)
Source:  mirror:sourceforge:fink/imake-%v.tar.bz2
Source2: mirror:sourceforge:fink/xorg-cf-files-%v.tar.bz2
Source-MD5:  02fea5a02ba2857c7d81820c8e8b8e6f
Source2-MD5: 5f62dd5545b782c74f6e4e70d0e6552c 
PatchFile: %n.patch
PatchFile-MD5: 3b545f4c727b37e41a8e861e42f65cd4
PatchScript: <<
#! /bin/sh -ev
  perl -pi -e 's|/usr/local|/usr/X11|' ../xorg-cf-files-%v/site.def
  if [ "%m" == "x86_64" ] ; then
    cd ..
    patch -p0 < %{PatchFile}
  fi
<<
NoSetMAKEFLAGS: true
SetMAKEFLAGS: -j1
ConfigureParams: --mandir=%p/share/man
CompileScript: <<
#!/bin/sh -ev
  ./configure %c
  make 
  cd ../xorg-cf-files-%v
  ./configure %c 
  perl -pi -e 's|%p|/usr/X11|' site.def 
<<
InstallScript: <<
#!/bin/sh -ev
  make install DESTDIR=%d
  cd ../xorg-cf-files-%v
  make install DESTDIR=%d
  mkdir %i/lib/%n
  mv %i/bin %i/lib/%n
<<
DocFiles: COPYING ChangeLog README
Homepage: http://xorg.freedesktop.org/
DescDetail: <<
 Under 10.5, this package provides the xmkmf script and the imake executable
 and their supporting config files that are no longer supplied with the
 X11R7 release from x.org.

 Under 10.4, this package simply gives symlinks to the appropriate files in 
 /usr/X11R6 (so that .info files which work in both 10.4 and 10.5 can easily 
 be constructed).

 Thanks to Martin Costabel and Benjamin Reed for earlier versions.
<<
DescUsage: <<
 In order to use xmkmf and imake to compile legacy packages (under 10.4
 or 10.5), one should have a BuildDepends on the present package, and supply
    export PATH=%p/lib/xmkmf/bin:$PATH 
    export IMAKEINCLUDE=-I%p/lib/X11/config
 in the CompileScript and InstallScript of the packages.

 Failing to do this runs the risk that some users may not have xmkmf and/or
 imake (or the necessary config files) available at build time.
<<
DescPackaging: <<
 The revision number of the 10.5 version is kept higher than that of the 10.4
 version so that users who are upgrading from 10.4 to 10.5 will have this
 package replaced by the correct, new version.
<<


--- NEW FILE: intltool40-10.7.info ---
Package: intltool40

# do not upgrade %n=intltool to >=0.40 without test-building pkgs that use it
# (or at least making sure they BDep on it)
# See: http://bugzilla.gnome.org/show_bug.cgi?id=537352
Version: 0.41.1

Revision: 201
Distribution: 10.7
Depends: <<
        gettext-tools,
        system-perl5123,
        xml-parser-pm5123
<<
BuildDepends: <<
        fink (>= 0.26.0-1),
        gettext-tools,
        system-perl5123,
        xml-parser-pm5123
<<
Conflicts: intltool
Replaces: intltool
Source: http://edge.launchpad.net/intltool/trunk/%v/+download/intltool-%v.tar.gz
Source-MD5: d6c91bf06681919ccfdf3624035b75dc
NoSetMAKEFLAGS: true
SetMAKEFLAGS: -j1
RuntimeVars: ac_cv_path_INTLTOOL_PERL: /usr/bin/perl
ConfigureParams: --mandir=%p/share/man
CompileScript: <<
        PERL=/usr/bin/perl ./configure %c
        make
<<
InfoTest: TestScript: make check || exit 2
InstallScript: <<
        make install DESTDIR=%d
<<
DocFiles: AUTHORS COPYING README TODO doc/I18N-HOWTO
Description: Internationalize various kinds of data files
DescDetail: <<
Automatically extracts translatable strings from oaf, glade, bonobo
ui, nautilus theme and other files into the po files.

Automatically merges translations from po files back into .oaf files
(encoding to be 7-bit clean). Also merges into other kinds of files.

This is the new 4.0 major-version release, which apparently has some
compatibility problems vs the older 0.36 series. Use the "intltool"
package if you need the older version for now.
<<
DescPort: <<
        Use Dep:system-perlXXX,xml-parser-pmXXX to correspond to what Apple
        ships as /usr/bin/perl. Unfortunately ./configure doesn't allow PERL
        to be versioned (perlX.X.X), so that's the best we can figure to try
        to force things to be self-consistent and likely-to-be-present with
        a minimum of additional packages needed.
<<
DescPackaging: <<
        The ac_cv_path_INTLTOOL_PERL shell variable is automatically set to
        the system perl interpretter, so any package that uses intltool and
        has ./configure checks for "perl" and "XML::Parser" will get the
        correct perl interpretter that is used by intltool and thus test for
        the matched perl version of xml-parser-pmXXX that is needed, even if
        there are other perl interpretters in PATH.
<<
License: GPL
Maintainer: The Gnome Core Team <fink-gnome-c...@lists.sourceforge.net>
Homepage: http://www.freedesktop.org/wiki/Software/intltool

--- NEW FILE: autoconf.info ---
Package: autoconf
Version: 2.63
Revision: 4
Epoch: 1
Depends: m4 (>= 1.4.11)
BuildDepends: texi2html, fink (>= 0.24.12)
Conflicts: autoconf2.13, autoconf25 (<= 2.54-1), autoconf2.5, autoconf2.6
Replaces: autoconf2.13, autoconf25 (<= 2.54-1), autoconf2.5, autoconf2.6
Source: mirror:gnu:autoconf/autoconf-%v.tar.bz2
Source-MD5: 7565809ed801bb5726da0631ceab3699
ConfigureParams: --infodir='${prefix}/share/info' 
--mandir='${prefix}/share/man' --program-suffix=-%v
NoSetMAKEFLAGS: true
SetMAKEFLAGS: -j1
CompileScript: <<
        PERL=/usr/bin/perl ./configure %c
        make
<<
# Tests failed for me due to ls reporting 2 testsuite.log files in the
# same directory. wtf? Anyway, let's run the tests with -m, but ignore
# failures.
# Second time, no test failures :(
InfoTest: TestScript: make check || :
InstallScript: <<
#!/bin/sh -ev
 install -d -m 755 %i/share/doc/installed-packages
 touch %i/share/doc/installed-packages/autoconf2.5
 make install DESTDIR=%d
 pushd doc && make html && popd
 install -d -m 755 %i/share/doc/%n/html
 install -m 644 doc/*.html %i/share/doc/%n/html/

 # for backwards compatibility with stuff that expects "autoconf-2.5" to be the
 # "new" autoconf...  (*cough* KDE *cough*)
 for bin in autoconf autoheader autom4te autoreconf autoscan autoupdate 
ifnames; do
  ln -sf $bin-%v %i/bin/$bin
  ln -sf $bin %i/bin/$bin-2.59
 done

 rm -f %i/share/emacs/site-lisp/*.elc
 rm -f %i/share/emacs/site-lisp/*.el
<<

DocFiles: README COPYING AUTHORS NEWS THANKS
InfoDocs: autoconf.info standards.info
#
Description: System for generating configure scripts
DescDetail: <<
GNU Autoconf is a package for generating configure scripts. These scripts are 
present in a large number of free software packages and are used to detect 
system features at compilation time.

This package installs Autoconf version 2.63. It has some compatibility 
problems with older packages. If you want to work on a package that requires 
Autoconf 2.13, install the autoconf2.13 package instead. Because of
some major improvements in autoconf-2.64, that version is not
compatible either, for latest autoconf, please install the autoconf2.6
package.

Previously by Christoph Pfisterer <chr...@users.sourceforge.net>
also by Chris Zubrzycki <bere...@users.sourceforge.net>
<<
License: GPL
Homepage: http://www.gnu.org/software/autoconf/
Maintainer: Peter O'Gorman <pe...@pogma.com>

--- NEW FILE: bison.info ---
Package: bison
Version: 2.3
Revision: 1003
Source: gnu
Maintainer: Darian Lanx <dmal...@users.sourceforge.net>
BuildDepends: gawk, libiconv-dev, gettext-bin, gettext-tools, libgettext8-dev, 
m4
Depends: libgettext8-shlibs, libiconv, m4
ConfigureParams: --with-libiconv-prefix=%p --with-libintl-prefix=%p 
--mandir=%p/share/man --infodir=%p/share/info --disable-dependency-tracking
NoSetMAKEFLAGS: true
SetMAKEFLAGS: -j1
InfoTest: TestScript: make check || exit 2
InstallScript: <<
 cp INSTALL INSTALL.txt
 make install DESTDIR=%d
 rm -f %i/share/locale/locale.alias
 rm -f %i/lib/charset.alias
<<
DocFiles: INSTALL.txt README COPYING AUTHORS NEWS THANKS TODO PACKAGING
InfoDocs: bison.info
#
Description: Parser generator
DescDetail: <<
Bison is a general-purpose parser generator that converts a grammar
description for an LALR context-free grammar into a C program to parse
that grammar. Once you are proficient with Bison, you can use it to
develop a wide range of language parsers, from those used in simple
desk calculators to complex programming languages.
<<
DescPackaging: <<
Previous versions by Christoph Pfisterer.

locale.alias is deleted because it is already provided by gettext which
is an essential package, hence we can rely on the file to be always present.

The only C++ is in the self-test suite
<<
License: GPL/GFDL
Homepage: http://www.gnu.org/software/bison/bison.html
Source-MD5: 22327efdd5080e2b1acb6e560a04b43a
Source-Checksum: SHA1(4df84c2c5971946111ff1982fb830b3c78d7c57e)

--- NEW FILE: pkgconfig.info ---
Package: pkgconfig
Version: 0.25
Revision: 2
#Source: mirror:gnome:sources/%n/0.18/%n-%v.tar.bz2
Source: http://pkgconfig.freedesktop.org/releases/pkg-config-%v.tar.gz
Source-MD5: a3270bab3f4b69b7dc6dbdacbcae9745
SourceDirectory: pkg-config-%v
BuildDepends: fink (>= 0.24.12-1)
PatchFile: %n.patch
PatchFile-MD5: 4c7e05de2183a55ce7306bda425ffe7f
PatchScript: <<
        sed 's,@PREFIX@,%p,' < %{PatchFile} | patch -p1
<<
SetCFLAGS: -Os
ConfigureParams: --mandir=%p/share/man 
--with-pc-path=%p/lib/pkgconfig:%p/share/pkgconfig:/usr/X11/lib/pkgconfig:/usr/X11/share/pkgconfig:/usr/X11R6/lib/pkgconfig:/usr/X11R6/share/pkgconfig:/usr/lib/pkgconfig
 --enable-dependency-tracking --disable-shared
# --enable-indirect-deps
CompileScript: <<
  ./configure %c
  make
<<
InfoTest: TestScript: make check || exit 2
InstallScript: <<
        make install DESTDIR=%d
        mv %i/bin/pkg-config %i/bin/pkg-config.real
        install -m 755 pc-resort %i/bin/pkg-config
<<
DocFiles: AUTHORS COPYING ChangeLog NEWS README
Description: Manager for library compile/link flags
DescDetail: <<
pkg-config is a script to make putting together all the build
flags when compiling/linking a lot easier.
<<
DescUsage: <<
Version 0.20 adds support for *.private fields in .pc files. Older
versions ignore them and most fink packages that use pkg-config do not
need them. However, packages supplying .pc that have them should take
steps to ensure users who might need them don't accidentally use a
lower version of pkgconfig and thus get deficient flags.

Fink only adds support for the %p/share/pkgconfig directory in 0.20.
Packages supplying .pc there should take steps to ensure users don't
accidentally use a lower version of pkgconfig.

Current (as of 0.22-4) precedence of .pc searching is:
  1. fink arch-dependent
  2. fink arch-independent
  3. system X11 (recent-version location) arch-dependent
  4. system X11 (recent-version location) arch-independent
  5. system X11 (older-version location) arch-dependent
  6. system X11 (older-version location) arch-independent
  7. system itself
pkg-config uses a strict "first match" search scheme.

As of 0.22-4, lists of -I and -L flags are re-sorted to place all
fink paths before any system (/usr or X11) paths; other paths come
first, so PKG_CONFIG_PATH should allow users to over-ride fink, but fink
always over-rides system-supplied paths).
<<
DescPort: <<
# Starting with 0.17.2, Link to Fink's glib pkg instead of static-link
# to included glib-1.2.8 since we have newer and better-OSX-tweaked
# glib than that now.
^-As of 0.23-2, go back to included static glib1, since glib1 is no
  longer being developed and not many other pkgs share the dep.

  Omitting --enable-indirect-deps gives a binary that gives identical
  results for --libs and --cflags for the fink-supplied pkgconfig/*.pc
  collection as 0.17.2-2 (with --enable-indirect-deps), including ones
  that have Requires and ones that have .private fields. The binary
  still fails some tests (appears to do depth-first recursing through
  Requires but expects breadth-first), so we disable those.

  Not bothering to fix autodetection of indirect-deps (failure to
  generate ./libool) because we get the same results even if file
  existed, so why bother regenerating the autotools? See:
  https://bugs.freedesktop.org/show_bug.cgi?id=31699

  Using onboard popt because that's the default mode and may as well
  use the one presumably matched to the same source tarball. Using
  fink's supplied libpopt has prototype mismatch warnings. See:
  https://bugs.freedesktop.org/show_bug.cgi?id=31700

        Make sure we get correct inline function semantics (glib1
        doesn't know about modern compiler toolchains)
<<
License: GPL
Maintainer: Daniel Macks <dma...@netspace.org>
DescPackaging: <<
  Originally packaged by Masanori Sekino (until 0.15.0).
<<
Homepage: http://pkgconfig.freedesktop.org

--- NEW FILE: fink-package-precedence.patch ---
diff -Nurd -x'*~' fink-package-precedence-0.9.orig/fink-package-precedence 
fink-package-precedence-0.9/fink-package-precedence
--- fink-package-precedence-0.9.orig/fink-package-precedence    1969-12-31 
19:00:00.000000000 -0500
+++ fink-package-precedence-0.9/fink-package-precedence 2010-07-01 
19:26:44.000000000 -0400
@@ -0,0 +1,281 @@
+#!/usr/bin/perl
+# -*- mode: Perl; tab-width: 4; -*-
+
+# A dirty hack by Daniel Macks
+
+use warnings;
+use strict;
+
+use File::Find;
+use Getopt::Long;
+use Cwd qw/ abs_path /;
+
+my %opts = (
+       'headers' => 1,                         # scan .h in -M dependency 
files?
+       'depfile-ext' => [],            # extensions for header-dep scan
+       'prohibit-bdep' => [],          # whine if .h supplied by these packages
+       'libs' => 1,                            # scan otool -L of compiled 
binaries?
+       'help' => 0,                            # print usage msg?
+       );
+
+GetOptions(
+       \%opts,
+       'headers!',
+       'depfile-ext=s@',
+       'prohibit-bdep=s@',
+       'libs!',
+       'help|?',
+       ) or $opts{'help'} = 1;
+if (!$opts{'headers'} && !$opts{'libs'}) {
+       # must specify at least one mode
+       $opts{'help'} = 1;
+};
+if (@{$opts{'prohibit-bdep'}}) {
+       # handle comma-separated list like multiply-passed flag
+       $opts{'prohibit-bdep'} = [ split /,/, join ',', 
@{$opts{'prohibit-bdep'}} ];
+
+       if (!$opts{'headers'}) {
+               # can't disallow bdep based on header scan if not scanning 
headers
+               $opts{'help'} = 1;
+       }
+}
+if (@{$opts{'depfile-ext'}}) {
+       # handle comma-separated list like multiply-passed flag
+       $opts{'depfile-ext'} = [ split /,/, join ',', @{$opts{'depfile-ext'}} ];
+
+       if (!$opts{'headers'}) {
+               # can't specify header depfile extensions if not scanning 
headers
+               $opts{'help'} = 1;
+       }
+} else {
+       $opts{'depfile-ext'} = ['\.Plo', '\.Po'];
+}
+if (!@ARGV) {
+       # must specify at least one location
+       $opts{'help'} = 1;
+}
+if ($opts{'help'}) {
+       my $msg = <<EOMSG;
+
+Usage: $0 [options] <list of locations>
+
+Options:
+
+  --headers/--no-headers  Scan dependency files (*1) for:
+                          * Use of system headers that should be
+                            masked by fink ones (*2)
+                            (bad -I ordering or missing BuildDepends)
+                          * Fink packages that supply headers used
+                            (packages to list in BuildDepends)
+
+  --depfile-ext=<pkg>     Which files to scan for --headers scan
+                          * Defaults to {\.Plo,\.Po} if not specified
+                          * Left-truncated regex for full pathname
+                            (beware of regex-quoting and shell-quoting)
+
+  --prohibit-bdep=<pkg>   Test if --headers finds a .h that is supplied
+                          by installed fink package <pkg> (*2)
+                          (comma-separated list or multiple use of this
+                          flag is allowed)
+
+  --libs/--no-libs        Scan compiled binaries for:
+                          * System libraries that should be masked by
+                            fink ones (*2)
+                            (bad -L ordering or missing BuildDepends)
+
+  --help                  Display this help message and exit
+
+  *1 For example, generated by gcc -M flags as activated by
+     ./configure --enable-dependency-tracking
+
+  *2 error-code on exit if this condition occurs
+
+  <list of locations> can be dependency filenames, compiled-
+  binary filenames, or directories to scan for these files.
+
+EOMSG
+
+       die $msg;
+}
+# /  <-- this slash keeps emacs syntax-highlighting less confused
+
+if ($opts{'headers'}) {
+
+print "Scanning /", join( ",", @{$opts{'depfile-ext'}} ), "\$/ dependency 
files...\n";
+
+my $dep_re = '(' . join( '|', @{$opts{'depfile-ext'}} ) . ')$';
+$dep_re = qr/$dep_re/;
+
+my %deps;                                              # key=included file
+                                                               # value=first 
dependencies file where it's listed
+
+my $plo_count = 0;
+foreach my $argv (@ARGV) {
+       my $argv_abs_dir_regex;
+       if (-d $argv) {
+               $argv_abs_dir_regex = abs_path($argv);
+               $argv_abs_dir_regex = qr/^\Q$argv_abs_dir_regex\E/;
+       }
+
+find sub {
+       return unless $File::Find::name =~ /$dep_re/;   # skip files that 
aren't our dependency lists
+
+       print "\t$File::Find::name\n";
+       $plo_count++;
+       open my $plo, '<', $_ or die "Could not read $_: $!\n";
+       while ( defined ( $_ = <$plo> ) ) {
+               next if /^\s*$/;                # usually lots of blank lines
+               s/^[^:]*://;                            # only care deps; 
filename is key dependant
+               foreach (split) {
+                       next unless /^\//;              # skip continuation 
markers and
+                                                                       # 
build-dir local files
+                       next if /$argv_abs_dir_regex/; # alt format of 
build-dir local
+                       $deps{$_} = $File::Find::name if ! exists $deps{$_};
+               }
+       }
+       close $plo;
+}, $argv;
+}
+
+if (! $plo_count) {
+       die "No dependency files found.\n";
+}
+
+print "Looking for incorrect headers in ", $plo_count, " dependency 
files...\n";
+
+# regexes for headers to disallow.
+# * /usr/local is bad news!
+# * OSX or X11 files for which fink has replacements
+my $repl_regex = '^' . join '|', (
+       '/usr/local/include',
+       '/usr/include/iconv\.h',
+       '/usr/include/libxml2',
+       '/usr/include/libxslt',
+       '/usr/include/pcap',
+       '/usr/.*/ft2build\.h',
+       '/usr/.*/freetype2',
+       '/usr/.*/fontconfig',
+       '/usr/.*/expat\.h',
+       '/usr/.*/Xft',
+       '/usr/.*/cairo',
+       '/usr/.*/glitz',
+       '/usr/.*/pixman',
+       '/usr/.*/png.h',
+       '/usr/.*/pngconf.h',
+);
+$repl_regex = qr/$repl_regex/; # pre-compile (will use many times)
+my $fink_prefix = '@PREFIX@';
+my $fink_prefix_regex = qr/^\Q$fink_prefix\E/;
+
+my @fink_headers;
+
+my $bad_system = 0;
+foreach (sort keys %deps) {
+       if (/$repl_regex/) {
+               print "\t $deps{$_} uses $_\n";
+               $bad_system = 1;
+       } elsif (/$fink_prefix_regex/) {
+               push @fink_headers, $_;
+       }
+}
+if ($bad_system) {
+       die "Please fix build process to get consistent use of fink's 
headers.\n";
+}
+
+
+my %fink_pkgs;
+my @not_found;
+my $dpkg_S = "$fink_prefix/bin/dpkg -S";
+my $progress = 1;
+print "Determining fink providers of ", scalar(@fink_headers), " headers...\n";
+while (@fink_headers) {
+       # do in blocks of files using heuristic to avoid shell cmd-line limit
+       # ('dpkg -S' is expensive!)
+       my @chunk = splice @fink_headers, 0, 100;
+       print "\t$progress - ", ($progress+=@chunk)-1, "\n";
+
+       open my $dpkg_S_fh, "$dpkg_S @chunk 2>&1 |" or die "Could not fork 
$dpkg_S: $!\n";
+       while (<$dpkg_S_fh>) {
+               if (/^dpkg: (.*\.)$/) {
+                       # 'dpkg: $filename not found.' but "not found" may be 
localized
+                       push @not_found, $1;
+               } elsif (/^([^:]+):/) {
+                       $fink_pkgs{$1} = 1;
+               }
+       }
+       close $dpkg_S_fh;                # or die "Error reading $dpkg_S: $! 
$?\n";
+       # must not trap close() error, since that is expected if a file is
+       # not found in dpkh -S database
+}
+
+print "Found use of headers from ", scalar(keys %fink_pkgs), " fink 
packages:\n";
+map { print "\t$_\n" } sort keys %fink_pkgs;
+if (@not_found) {
+       print "Could not determine fink package for ", scalar(@not_found), " 
headers:\n";
+       map { print "\t$_\n" } sort @not_found;
+}
+
+my @bad_bdep = grep { exists $fink_pkgs{$_} } @{$opts{'prohibit-bdep'}};
+if (@bad_bdep) {
+       print "Use of headers from prohibited installed packages:\n";
+       map { print "\t$_\n" } sort @bad_bdep;
+       die "Please fix build process to avoid seeing them.\n";
+}
+
+}
+
+if ($opts{'libs'}) {
+       my $otool = '/usr/bin/otool';
+       if (!-x $otool) {
+               die "Cannot scan binary linking without $otool\n";
+       }
+
+print "Scanning binaries for incorrect dyld linking...\n";
+
+my %deps;                                              # key=linked lib
+                                                               # value=first 
binary that links against it
+
+find sub {
+       return unless -f;
+       return if /\.class$/;
+       open my $otool_L_fh, '-|', $otool, '-L', $_ or die "Could not fork 
$otool -L $_: $!\n";
+       while ( defined ( $_ = <$otool_L_fh> ) ) {
+               next unless /^\t(.+) \(/;       # only read dyld links
+               $deps{$1} = $File::Find::name if ! exists $deps{$1};
+       }
+       close $otool_L_fh or die "Error reading $otool -L: $! $?\n";
+}, @ARGV;
+
+# regexes for libraries to disallow.
+# * /usr/local is bad news!
+# * OSX or X11 files for which fink has replacements
+my $repl_regex = '^' . join '|', (
+       '/usr/local/lib',
+       '/usr/lib/libiconv',
+       '/usr/lib/liblibxml',
+       '/usr/lib/libxslt',
+       '/usr/lib/libpcap',
+       '/usr/X11.*/libfreetype',
+       '/usr/X11.*/libfontconfig',
+       '/usr/.*/libexpat',
+       '/usr/X11.*/libXft',
+       '/usr/X11.*/libcairo',
+       '/usr/X11.*/libglitz',
+       '/usr/X11.*/libpixman',
+       '/usr/X11.*/libpng',
+);
+$repl_regex = qr/$repl_regex/; # pre-compile (will use many times)
+
+my $bad_system = 0;
+foreach (sort keys %deps) {
+       if (/$repl_regex/) {
+               print "\t $deps{$_} uses $_\n";
+               $bad_system = 1;
+       }
+}
+if ($bad_system) {
+       die "Please fix build process to get consistent use of fink's 
libraries.\n";
+}
+
+
+}

--- NEW FILE: fink-package-precedence.info ---
Package: fink-package-precedence
Version: 0.9
Revision: 1

BuildDepends: fink (>= 0.24.12-1)

Source: none
PatchFile: %n.patch
PatchFile-MD5: cf0b25f11b3cb9035a8ed29d49c07980
PatchScript: sed 's,@PREFIX@,%p,' < %{PatchFile} | patch -p1

CompileScript: #
InstallScript: <<
        mkdir -p %i/bin
        install -m755 fink-package-precedence %i/bin
<<

Description: Check fink masking of system libs
DescUsage: <<
fink-package-precedence [options] <list of locations>

See 'fink-package-precedence --help' for details
<<
#Homepage: 
License: GPL
Maintainer: Daniel Macks <dma...@netspace.org>

--- NEW FILE: pkgconfig.patch ---
diff -Nurd -x'*~' pkg-config-0.25.orig/glib-1.2.10/glib.h 
pkg-config-0.25/glib-1.2.10/glib.h
--- pkg-config-0.25.orig/glib-1.2.10/glib.h     2001-02-26 22:44:38.000000000 
-0500
+++ pkg-config-0.25/glib-1.2.10/glib.h  2011-05-12 22:40:21.000000000 -0400
@@ -182,10 +182,14 @@
 #  define G_CAN_INLINE 1
 #endif
 #ifdef G_HAVE_INLINE
+#if defined(__APPLE_CC__) && (__APPLE_CC__ >= 5400)
+#  define G_INLINE_FUNC static inline
+#else
 #  if defined (__GNUC__) && defined (__STRICT_ANSI__)
 #    undef inline
 #    define inline __inline__
 #  endif
+#endif
 #else /* !G_HAVE_INLINE */
 #  undef inline
 #  if defined (G_HAVE___INLINE__)
diff -Nurd -x'*~' pkg-config-0.25.orig/pc-resort pkg-config-0.25/pc-resort
--- pkg-config-0.25.orig/pc-resort      1969-12-31 19:00:00.000000000 -0500
+++ pkg-config-0.25/pc-resort   2010-11-18 01:22:59.000000000 -0500
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+use constant FINK_PREFIX => '@PREFIX@';
+use constant PKG_CONFIG => '@PREFIX@/bin/pkg-config.real';
+
+open my $pc_program, '-|', PKG_CONFIG, @ARGV
+    or die "$0: failed to open actual pkg-config process (".PKG_CONFIG."): 
$!\n";
+while (defined ($_=<$pc_program>) ) {
+    print &resort($_);
+}
+close $pc_program;
+my $rc = $? >> 8;
+exit $rc;
+
+sub resort {
+    my $line = shift;
+
+    # skip obvious pkg-config diagnostics (iff --errors-to-stdout)
+    return $line if /^\s/;
+
+    # if no flags, then nothing to resort
+    return $line unless /(\a|\s)-/;
+
+    chomp $line;
+
+    # for teasing apart the -I nd -L flag lists
+    my @flags_special;         # unusual places that mask fink
+    my @flags_fink;            # %p (masks apple and x11)
+    my @flags_system;          # apple and x11
+    my @flags_other;           # flags other than -I or -L
+
+    #for now, don't try to handle quotes/embedded-whitespace paths
+    foreach (split /\s+/, $line) {
+       # figure out the priority of each -I or -L flag
+       if (/^-[IL]FINK_PREFIX/) {
+           push @flags_fink, $_;
+       } elsif (/^-[IL](\/usr\/lib|\/usr\/include|\/usr\/X11)/) {
+           push @flags_system, $_;
+       } elsif (/^-[IL]/) {
+           push @flags_special, $_;
+       } else {
+           push @flags_other, $_;
+       }
+    }
+ 
+    my $sane_line = join ' ', @flags_special, @flags_fink, @flags_system, 
@flags_other;
+    return $sane_line . "\n";
+}


------------------------------------------------------------------------------
10 Tips for Better Web Security
Learn 10 ways to better secure your business today. Topics covered include:
Web security, SSL, hacker attacks & Denial of Service (DoS), private keys,
security Microsoft Exchange, secure Instant Messaging, and much more.
http://www.accelacomm.com/jaw/sfnl/114/51426210/
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.cvs

Reply via email to