Update of /cvsroot/fink/fink/perlmod/Fink
In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv9043

Modified Files:
      Tag: branch_0_28
        ChangeLog PkgVersion.pm Validation.pm VirtPackage.pm 
Log Message:
backport fixes from HEAD


Index: VirtPackage.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/VirtPackage.pm,v
retrieving revision 1.141
retrieving revision 1.141.2.1
diff -u -d -r1.141 -r1.141.2.1
--- VirtPackage.pm      2 Jan 2008 05:48:53 -0000       1.141
+++ VirtPackage.pm      10 Mar 2008 17:33:57 -0000      1.141.2.1
@@ -1011,7 +1011,7 @@
                if (opendir(PKGCONFIG_DIR, $dir)) {
                        while (my $file = readdir(PKGCONFIG_DIR)) {
                                next unless ($file =~ /\.pc$/);
-                               my $hash = package_from_pkgconfig($dir . '/' . 
$file);
+                               next unless my $hash = 
package_from_pkgconfig($dir . '/' . $file);
                                $self->{$hash->{package}} = $hash;
                        }
                } else {

Index: PkgVersion.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/PkgVersion.pm,v
retrieving revision 1.606
retrieving revision 1.606.2.1
diff -u -d -r1.606 -r1.606.2.1
--- PkgVersion.pm       2 Jan 2008 05:48:51 -0000       1.606
+++ PkgVersion.pm       10 Mar 2008 17:33:55 -0000      1.606.2.1
@@ -4277,14 +4277,7 @@
                        die $error . "\n";
                };
 
-               my ($shlibsfile, $privateshlibsfile);
-               $shlibsfile = IO::Handle->new();
-               $privateshlibsfile = IO::Handle->new();
-
-               open ($shlibsfile, ">$destdir/DEBIAN/shlibs") or 
&{$shlibs_error}($self, 'shlibs');
-               open ($privateshlibsfile, ">$destdir/DEBIAN/private-shlibs") or 
&{$shlibs_error}($self, 'private shlibs');
-
-               print "Writing shlibs files...\n";
+               print "Creating shlibs files...\n";
 
 # FIXME-dmacks:
 #    * Make sure each file is actually present in $destdir
@@ -4294,19 +4287,30 @@
 #    * Rejoin wrap continuation lines
 #      (use \ not heredoc multiline-field)
 
+               my (@shlibslines, @privateshlibslines);
                for my $line (split(/\n/, $shlibsbody)) {
                        if ($line =~ /^\s*\!/) {
-                               print $privateshlibsfile $line, "\n";
+                               push @privateshlibslines, $line."\n";
                        } else {
-                               print $shlibsfile $line, "\n";
+                               push @shlibslines, $line."\n";
                        }
                }
 
-               close($shlibsfile) or &{$shlibs_error}($self, 'shlibs');
-               close($privateshlibsfile) or &{$shlibs_error}($self, 'private 
shlibs');
+               if (@shlibslines) {
+                       my $shlibsfile = IO::Handle->new();
+                       open $shlibsfile, ">$destdir/DEBIAN/shlibs" or 
&{$shlibs_error}($self, 'shlibs');
+                       print $shlibsfile @shlibslines;
+                       close $shlibsfile or &{$shlibs_error}($self, 'shlibs');
+                       chmod 0644, "$destdir/DEBIAN/shlibs";
+               }
+               if (@privateshlibslines) {
+                       my $shlibsfile = IO::Handle->new();
+                       open $shlibsfile, ">$destdir/DEBIAN/private-shlibs" or 
&{$shlibs_error}($self, 'private shlibs');
+                       print $shlibsfile @privateshlibslines;
+                       close $shlibsfile  or &{$shlibs_error}($self, 'private 
shlibs');
+                       chmod 0644, "$destdir/DEBIAN/private-shlibs";
+               }
 
-               chmod 0644, "$destdir/DEBIAN/shlibs";
-               chmod 0644, "$destdir/DEBIAN/private-shlibs";
        }
 
        ### config file list

Index: Validation.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/Validation.pm,v
retrieving revision 1.277
retrieving revision 1.277.2.1
diff -u -d -r1.277 -r1.277.2.1
--- Validation.pm       14 Jan 2008 06:02:23 -0000      1.277
+++ Validation.pm       10 Mar 2008 17:33:56 -0000      1.277.2.1
@@ -727,6 +727,10 @@
                                        print "Warning: Field \"files\" of 
\"$splitoff_field\" contains entries that end in \"/\" ($filename)\n";
                                        $looks_good = 0;
                                }
+                               if ($value =~ /[?*]\W*\//) {
+                                       print "Error: Field \"files\" of 
\"$splitoff_field\" contains wildcard directories ($filename)\n";
+                                       $looks_good = 0;
+                               }
                        }
                } # end of SplitOff field validation
        };
@@ -818,7 +822,7 @@
                # strip directory if info is simple filename (in $PWD)
                map {s/\%a\///} @patchfiles unless $pkgpatchpath;
                if (@patchfiles and exists $properties->{patchfile}) {
-                       print "Error: Cannot use %a if using PatchFile. 
($filename)\n";
+                       print "Error: Cannot use %a if using PatchFile, use 
\%\{PatchFile\} to reference the patch. ($filename)\n";
                        $looks_good = 0;
                }                       
        }
@@ -1219,7 +1223,7 @@
                }
 
                        if (/^\!\s*(.*)/) {
-                               $looks_good = 0 unless 
_min_fink_version($options{builddepends}, '0.27.99', 'private-library entry in 
Shlibs', $filename);
+                               $looks_good = 0 unless 
_min_fink_version($options{builddepends}, '0.28', 'private-library entry in 
Shlibs', $filename);
                                if ($1 =~ /\s/) {
                                        print "Warning: Malformed line in field 
\"shlibs\"$splitoff_field.\n  $_\n";
                                        $looks_good = 0;
@@ -1822,8 +1826,11 @@
        foreach (qw/ preinst postinst prerm postrm /) {
                next if $deb_control->{package} eq "scrollkeeper"; # circular 
dep
                next if $deb_control->{package} eq "rarian-compat"; # circular 
dep (new-world scrollkeeper)
-               if (grep { /^\s*scrollkeeper-update/ } @{$dpkg_script->{$_}} 
and not exists $control_processed->{depends_pkgs}->{scrollkeeper}) {
-                       print "Error: Calling scrollkeeper-update in $_ 
requires \"Depends:scrollkeeper\"\n";
+               if (grep { /^\s*scrollkeeper-update/ } @{$dpkg_script->{$_}} 
and not (
+                               exists 
$control_processed->{depends_pkgs}->{'rarian-compat'} or
+                               exists 
$control_processed->{depends_pkgs}->{'scrollkeeper'}
+                       )) {
+                       print "Error: Calling scrollkeeper-update in $_ 
requires \"Depends:rarian-compat\" or \"Depends:scrollkeeper\" \n";
                        $looks_good = 0;
                }
        }

Index: ChangeLog
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/ChangeLog,v
retrieving revision 1.1524.2.2
retrieving revision 1.1524.2.3
diff -u -d -r1.1524.2.2 -r1.1524.2.3
--- ChangeLog   18 Feb 2008 00:02:58 -0000      1.1524.2.2
+++ ChangeLog   10 Mar 2008 17:33:55 -0000      1.1524.2.3
@@ -1,3 +1,8 @@
+2008-03-10  Daniel Macks  <[EMAIL PROTECTED]>
+
+       * PkgVersion.pm, Validation.pm, VirtPackage.pm: backport some
+       bugfixes and pangocairo groundwork from HEAD
+
 2008-02-17  Dave Morrison  <[EMAIL PROTECTED]>
 
        * Bootstrap.pm: recognize 10.5.2


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Fink-commits mailing list
[email protected]
http://news.gmane.org/gmane.os.apple.fink.cvs

Reply via email to