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