>>>>> "Ben" == Ben Hines <[EMAIL PROTECTED]> writes:

Ben> Actually, my bad, you can use "Type: bundle" to get around that. So
Ben> with Type: bundle you don't need the compilescript/installscript, etc.

OK, here's what I now end up invoking routinely between "fink selfupdate-cvs"
and "fink update-all"...

    #!/usr/local/bin/perl
    use strict;
    $|++;

    my $INFO_FILE = "/sw/fink/10.2/local/main/finkinfo/system-perlmodules-1.info";

    my %packages = ();

    @ARGV = glob "/sw/fink/10.2/*/*/finkinfo/libs/perlmods/*.info";
    while (<>) {
      die unless /Package:\s+(.*\S)\s*\z/;
      close ARGV;
      $packages{$1}++;
    }

    delete $packages{"storable-pm"}; # special case

    my $PACKAGELIST = join ", ", sort keys %packages;

    @ARGV = $INFO_FILE;
    while (<>) {
      next unless /^Provides:\s+(.*\S)\s*\z/;
      exit 0 if $1 eq $PACKAGELIST; # nothing to do
    }

    warn "updating $INFO_FILE...\n";

    open INFO_FILE, ">$INFO_FILE.tmp" or die "Cannot create $INFO_FILE.tmp: $!";

    print INFO_FILE <<"END";
    Package: system-perlmodules
    Version: 1.0
    Revision: @{[time]}
    Description: Placeholder for self-installed Perl Modules
    Maintainer: Randal L. Schwartz <merlyn\@stonehenge.com>
    Provides: $PACKAGELIST
    Conflicts: $PACKAGELIST
    Replaces: $PACKAGELIST
    Type: bundle
    END

    close INFO_FILE;
    rename "$INFO_FILE.tmp", $INFO_FILE
     or die "Cannot rename $INFO_FILE.tmp to $INFO_FILE: $!";

I then "fink install system-perlmodules" and "sudo rm -rf
/sw/lib/perl5/darwin" and anything else that has crept into there.

The provides/conflicts/replaces is probably overkill, but there it is.

Actually, on second thought, I should "conflicts: (everything)" but
"provides: (only the modules I actually have installed)".

Maybe for version 2. :)

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!


-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to