diff options
author | tnut <thierryn1 at hispeed dot ch> | 2010-08-21 23:31:37 +0200 |
---|---|---|
committer | tnut <thierryn1 at hispeed dot ch> | 2010-08-21 23:31:37 +0200 |
commit | 09766988a1beadf9a575bcfc201bdc78ba7ac72f (patch) | |
tree | e46635e0878a53278ca5aece36a903f323e03076 /base | |
parent | 279501b0e316fc761530e119ef74cdfe3431ce26 (diff) | |
download | nutyx-pakxe-09766988a1beadf9a575bcfc201bdc78ba7ac72f.tar.gz nutyx-pakxe-09766988a1beadf9a575bcfc201bdc78ba7ac72f.tar.bz2 nutyx-pakxe-09766988a1beadf9a575bcfc201bdc78ba7ac72f.tar.xz nutyx-pakxe-09766988a1beadf9a575bcfc201bdc78ba7ac72f.zip |
maj pkg-get#0.5.0-1
Diffstat (limited to 'base')
-rw-r--r-- | base/pkg-get/.md5sum | 6 | ||||
-rw-r--r-- | base/pkg-get/Pkgfile | 22 | ||||
-rw-r--r-- | base/pkg-get/pkg-get | 1208 | ||||
-rw-r--r-- | base/pkg-get/pkg-get-0.4.5-NuTyX-02.patch | 287 | ||||
-rw-r--r-- | base/pkg-get/pkg-repgen.patch | 11 | ||||
-rw-r--r-- | base/pkg-get/syn | 2 |
6 files changed, 10 insertions, 1526 deletions
diff --git a/base/pkg-get/.md5sum b/base/pkg-get/.md5sum index afee64b02..87ec09358 100644 --- a/base/pkg-get/.md5sum +++ b/base/pkg-get/.md5sum @@ -1,5 +1,3 @@ -638354d5e6acbd9143efafcf03c54acf pkg-get-0.4.5-NuTyX-02.patch -5ee169f2f99fc501387219b6b96ca9ef pkg-get-0.4.5.tar.gz +8480d62c05191ecd44249fe583bcc70c pkg-get-0.5.0.tar.gz a28fcf9580524d8865e05b223afa738f pkg-get.conf -c4cca630bfcc85a3f3b13497aff01310 pkg-repgen.patch -ecdd60fc1c1e3d725402dc271885689a syn +1d8f66bd8d6ff3ac4f3486efdbc453dd syn diff --git a/base/pkg-get/Pkgfile b/base/pkg-get/Pkgfile index 4281addb7..bf2384cd2 100644 --- a/base/pkg-get/Pkgfile +++ b/base/pkg-get/Pkgfile @@ -1,29 +1,21 @@ # Description: Outil de gestion de paquets binaires pour NuTyX -# URL: http://www.varlock.com -# Maintainer: Simone Rota, sip at crux dot nu -# Packager: Simone Rota, sip at crux dot nu +# URL: http://www.varlock.com et nutyx.org +# Maintainer: thierryn1 at hispeed dot ch +# Packager: thierryn1 at hispeed dot ch name=pkg-get -version=0.4.5 -release=13 -source=(http://www.varlock.com/files/$name-$version.tar.gz \ - pkg-get-0.4.5-NuTyX-02.patch pkg-get.conf pkg-repgen.patch syn) +version=0.5.0 +release=1 +source=(http://kiao.no-ip.info/NuTyX/files/$name-$version.tar.gz \ + pkg-get.conf syn) build() { ARCH_=`uname -m` cd $name-$version - patch -Np1 -i ../pkg-repgen.patch - patch -Np1 -i ../pkg-get-$version-NuTyX-02.patch make PREFIX=$PKG/usr CFGDIR=$PKG/etc install mkdir -p $PKG/usr/share mv $PKG/usr/{man,share/man} install -m 755 ../syn $PKG/usr/bin/syn - sed -i "s|CRUX Packages|Paquets NuTyX Architecture $ARCH_|g" $PKG/usr/bin/pkg-repgen - sed -i "s|Generated by|Généré par|g" $PKG/usr/bin/pkg-repgen - sed -i "s|Port|Nom|" $PKG/usr/bin/pkg-repgen - sed -i "s|Last modified|Dernière compilation|" $PKG/usr/bin/pkg-repgen - sed -i "s| package| paquet|g" $PKG/usr/bin/pkg-repgen - sed -i "s| on | le |" $PKG/usr/bin/pkg-repgen install -m644 ../pkg-get.conf $PKG/etc/pkg-get.conf sed -i "s/uname-m/$ARCH_/" $PKG/etc/pkg-get.conf sed -i "s/uname-m/$ARCH_/" $PKG/usr/bin/syn diff --git a/base/pkg-get/pkg-get b/base/pkg-get/pkg-get deleted file mode 100644 index a9ffe3384..000000000 --- a/base/pkg-get/pkg-get +++ /dev/null @@ -1,1208 +0,0 @@ -#!/usr/bin/env perl -# -*- coding: utf-8 -*- -# -# pkg-get - A binary package management utility for CRUX Linux -# Copyright (C) 2004-06 Simone Rota <sip@varlock.com> -# Modified by Arnaud Fernandés <ferarduansednan@laposte.net> 2009-10 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. - -use warnings; -use strict; -use Getopt::Long; - -my $VERSION = "0.4.5"; -my $CFGFILE = "/etc/pkg-get.conf"; -my $LOCKFILE = "/var/lib/pkg/pkg-get.locker"; -my $PKGDB = "/var/lib/pkg/db" ; - -$SIG{HUP} = \&trap; $SIG{INT} = \&trap; $SIG{QUIT} = \&trap; $SIG{TERM} = \&trap; - -# Global vars -my @repos = (); # package repositories -my @donetasks; my @failtasks; my @prevtasks; my %pptasks; my %readmetasks; -my $curraction = ""; my %installed; my %deps; my @dependencies; my %missingdeps; - -# CL Options -my $download_only; my $pre_install; my $post_install; -my $install_scripts; my $filter = ""; my $all; my $unused; -my $aargs=""; my $ignore_md5sum; my $force; my $root; -GetOptions("do"=>\$download_only, - "pre-install"=>\$pre_install, "post-install"=>\$post_install, - "install-scripts"=>\$install_scripts, "all"=>\$all, - "filter=s"=>\$filter, "config=s"=>\$CFGFILE, "aargs=s"=>\$aargs, - "f"=>\$force, "im"=>\$ignore_md5sum, "margs=s"=>\$unused, - "rargs=s"=>\$unused, "r=s"=>\$root); - -if ($root) { - $LOCKFILE = $root.$LOCKFILE ; - $PKGDB = $root.$PKGDB; -} - -# Get command, verify it's valid -my $command = getcommand(@ARGV); -if (index($command,"Error: ") eq 0 ) { - $command =~ s/Error\: //; - exiterr($command); -} -readconfig(); - -my $exitcode = 0; # 2009-10 - -SWITCH: { - if ($command eq "version") { version(); last SWITCH; } - if ($command eq "sync") { sync(); last SWITCH; } - if ($command eq "info") { info(); last SWITCH; } - if ($command eq "help") { help(); last SWITCH; } - if ($command eq "readme") { readme(); last SWITCH; } - if ($command eq "search") { search(); last SWITCH; } - if ($command eq "dsearch") { dsearch(); last SWITCH; } - if ($command eq "list") { list(); last SWITCH; } - if ($command eq "path") { path(); last SWITCH; } - if ($command eq "remove") { remove(); last SWITCH; } - if ($command eq "listinst") { listinst(); last SWITCH; } - if ($command eq "lock") { dolock(); last SWITCH; } - if ($command eq "unlock") { unlock(); last SWITCH; } - if ($command eq "listlocked") { listlocked(); last SWITCH; } - if ($command eq "printf") { doprintf(); last SWITCH; } - if ($command eq "isinst") { isinst(); last SWITCH; } - if ($command eq "diff") { diff(); last SWITCH; } - if ($command eq "quickdiff") { quickdiff(); last SWITCH; } - if ($command eq "dup") { dup(); last SWITCH; } - if ($command eq "depends") { depends(); last SWITCH; } - if ($command eq "quickdep") { quickdep(); last SWITCH; } - if ($command eq "install") { install(@ARGV); last SWITCH; } - if ($command eq "update") { update(@ARGV); last SWITCH; } - if ($command eq "sysup") { sysup(); last SWITCH; } - if ($command eq "dependent") { dependent(); last SWITCH; } - if ($command eq "depinst") { $exitcode = depinst(); last SWITCH; } # 2009-10 - if ($command eq "current") { current(); last SWITCH; } -} - -exit($exitcode); # 2009-10 - -############################################################################ -# Support functions -############################################################################ - -# Exit with error -sub exiterr { - my ($msg) = @_; - print "pkg-get: $msg\n"; - exit 1; -} - -sub trap { - printresults(1); - die("\npkg-get: interrupted\n"); -} - -# Get command, return an error if not in the list of allowed commands -sub getcommand { - my @args = @_; - my $givencmd = $args[0]; - my $givenarg = $args[1]; - if (not $givenarg){$givenarg = ""}; - if (not $givencmd){$givencmd = ""}; - my @allowed = ("depinst:", "install:", "sysup", "diff", "update:", "depends:", "info:", "sync", - "version", "help", "quickdep:", "dependent:", "list", "listinst", "isinst:", - "search:", "dsearch:", "lock:", "unlock:", "listlocked", "quickdiff", "printf:", - "remove:", "readme:", "dup", "path:", "current:"); - - foreach my $valid(@allowed) { - if ($givencmd eq ""){ - return "Error: no command given. try pkg-get help for more information"; - } - if ($givencmd eq $valid) { - return $givencmd; - } elsif ($givencmd.":" eq $valid) { - if ($givenarg ne "") { - return $givencmd; - } else { - return "Error: '$givencmd' requires an argument"; - } - } - } - return "Error: unknown command '$givencmd'. try pkg-get help for more information"; -} - -# Parses the configuration file -sub readconfig { - open(CFG, $CFGFILE) - or exiterr("could not open $CFGFILE"); - while (<CFG>) { - chomp; - if ( /^pkgdir\s+/ ) { - my $repo = $_; - $repo =~ s/^pkgdir\s+//; - $repo =~ s/#(.*)$//; - $repo =~ s/\s+$//; - push @repos, $repo; - } elsif (/^runscripts\s+/) { - my $rs = $_; - $rs =~ s/^runscripts\s+//; - $rs =~ s/#(.*)$//; - $rs =~ s/\s+$//; - if ($rs eq "yes") {$install_scripts = 1}; - } - } - close(CFG); -} - -# Parse a line describing a package -sub parsepackage { - my @p = split(/\:/, $_[0]); - if ($#p != 6) {exiterr("$_[1]/PKGREPO appears to be in wrong format!\nAborting.")}; - my %pkg; - my $name = $p[0]; - $name =~ s/\#.*$//; - my $version = $p[0]; - $version =~ s/^.*\#//; - $version =~ s/-\w*\.pkg\.tar\.gz//; - my $release = $p[0]; - $release =~ s/^.*-//; - $release =~ s/\.pkg\.tar\.gz//; - if (not $_[2]) {$_[2] = $_[1]}; - $pkg{'name'} = $name; - $pkg{'version'} = $version; - $pkg{'release'} = $release; - $pkg{'path'} = $_[1]; - $pkg{'url'} = $_[2] . "/$p[0]"; - $pkg{'size'} = $p[1]; - $pkg{'md5sum'} = $p[2]; - $pkg{'description'} = $p[3]; - $pkg{'pre_install'} = $p[4]; - $pkg{'post_install'} = $p[5]; - $pkg{'readme'} = $p[6]; - if ($_[3] == 1) { - getinstalled(); - $pkg{'instversion'} = $installed{$name}; - } - return %pkg; -} - -# Parse a line describing a package (just the name) -sub parsepackagelight { - my @p = split(/\:/, $_[0]); - if ($#p != 6) {exiterr("$_[1]/PKGREPO appears to be in wrong format!\nAborting.")}; - my %pkg; - my $name = $p[0]; - $name =~ s/\#.*$//; - $pkg{'name'} = $name; - return %pkg; -} - -# Print info about the given package -sub printinfo { - my %pkg = @_; - print "Name : " . $pkg{'name'} . "\n"; - print "Version : " . $pkg{'version'} . "\n"; - print "Release : " . $pkg{'release'} . "\n"; - print "Description : " . $pkg{'description'} . "\n"; - print "URL : " . $pkg{'url'} . "\n"; - print "Md5sum : " . $pkg{'md5sum'} . "\n"; - print "Size : " . $pkg{'size'} . "\n"; - my $deps = getdirectdeps($pkg{'name'}, $pkg{'path'}); - if ($deps ne "") { print "Depends on : $deps\n";}; - my $files = ""; - if ($pkg{'readme'} eq "yes") {$files .= "README,"}; - if ($pkg{'pre_install'} eq "yes") {$files .= "pre-install,"}; - if ($pkg{'post_install'} eq "yes") {$files .= "post-install,"}; - $files =~ s/\,$//; - if ($files ne "") { print "Files : $files\n";}; -} - -# Get direct dependencies for package -sub getdirectdeps { - my $pkgname = $_[0]; - my $dir = $_[1]; - open(DEPS, "$dir/PKGDEPS") - or exiterr("could not open $dir/PKGDEPS"); - while (<DEPS>) { - chomp; - if ( /^\Q$pkgname\E\s+/ ) { - my $dep = $_; - $dep =~ s/^.*\: //; - close(DEPS); - return $dep; - } - } - close(DEPS); - return ""; -} - -# Prints the README file to stdout -sub printreadme { - my %pkg = @_; - my $dir = $pkg{'path'}; - my $pkgname = $pkg{'name'}; - my $found = 0; - my $finished = 0; - open(READ, "$dir/PKGREAD") - or exiterr("could not open $dir/PKGREAD"); - while (<READ>) { - if ($finished eq 1) {return;}; - chomp; - if ($found eq 1) { - if ( /PKGREADME\:/ ) { - $finished = 1; - close(READ); - return; - } else { - print "$_\n"; - } - } - if ($finished eq 0) { - if ( /PKGREADME: $pkgname$/ ) { - $found = 1; - } - } - } - close(READ); -} - -# Print results for multiple package operations -sub printresults { - my $okaction = $curraction; - my $curr = ""; - my $action; - my $pkg; - my @t; - my @readme; - my $goterror = 0; - if (@donetasks) { - print "\n-- Packages $okaction\n"; - foreach my $task(@donetasks) { - if ($readmetasks{$task}) {push(@readme, $task)} - print "$task" . $pptasks{$task}."\n"; - } - } - if (@prevtasks) { - if ($okaction eq "installed") { - print "\n-- Packages installed before this run (ignored)\n"; - } else { - print "\n-- Packages not previously installed (ignored)\n"; - } - foreach my $task(@prevtasks) { - print "$task\n"; - } - } - if (@failtasks) { - @failtasks = sort(@failtasks); - foreach my $task(@failtasks) { - @t = split(/,/,$task); - $action = $t[0]; - $pkg = $t[1]; - if ($curr ne $action) { - print "\n-- Packages $action\n"; - $curr = $action; - } - print "$pkg\n"; - } - } - if (@readme) { - print "\n-- $okaction packgages with README file\n"; - foreach my $task(@readme) { - print "$task" . $pptasks{$task}."\n"; - } - } - if(@donetasks and not @failtasks and not $_[0]) { - print "\npkg-get: $okaction successfully\n" - } -} - -# Get the list of installed packages -sub getinstalled { - if (%installed) { - return; - } - my $name; - my $version; - my $sec = 0; - open(DB, $PKGDB) - or exiterr("could not open ".$PKGDB); - while (<DB>) { - chomp; - if ($_ ne "") { - if ($sec == 0) { - $name = $_; - $sec = 1; - } elsif ($sec == 1) { - $version = $_; - $sec = 3; - } - } - if ($sec == 3) { - if ($_ eq "") { - $sec = 0; - $installed{$name} = $version; - } - } - } - close(DB); -} - -# Lock the given pkgname -sub lockadd { - my $pkg = $_[0]; - my @locked = (); - if (not -e $LOCKFILE) { - open(LCK, "+>> $LOCKFILE") or exiterr("could not write to lock file"); - close(LCK); - } - open(LCK, $LOCKFILE); - while (<LCK>) { - chomp; - if ($_ eq $pkg) { - print "Already locked: $pkg\n"; - close(LCK); - return; - } else { - push (@locked, $_); - } - } - close(LCK); - push(@locked, $pkg); - @locked = sort(@locked); - open(LCK, "> $LOCKFILE") or exiterr("could not write to lock file"); - foreach my $lock(@locked) { - print LCK "$lock\n"; - } - close(LCK); -} - -# Rrint formatted info for given package -sub formattedprint { - my %pkg = @_; - my $fmt = $ARGV[1]; - $fmt =~ s|%n|$pkg{'name'}|; - $fmt =~ s|%p|$pkg{'path'}|; - $fmt =~ s|%v|$pkg{'version'}|; - $fmt =~ s|%r|$pkg{'release'}|; - $fmt =~ s|%d|$pkg{'description'}|; - $fmt =~ s|%u|$pkg{'url'}|; - $fmt =~ s|%R|$pkg{'readme'}|; - $fmt =~ s|%E|$pkg{'pre_install'}|; - $fmt =~ s|%O|$pkg{'post_install'}|; - $fmt =~ s|%M|Nobody|; # for prt-get compatibility - $fmt =~ s|%P|Nobody|; # for prt-get compatibility - $fmt =~ s|\\n|\n|; - $fmt =~ s|\\t|\t|; - if (index($fmt,"%e") >=0) { - my $deps = getdirectdeps($pkg{'name'}, $pkg{'path'}); - $fmt =~ s|%e|$deps|; - } - if (index($fmt,"%l") >=0) { - my $locked = islocked($pkg{'name'}); - $fmt =~ s|%l|$locked|; - } - if (index($fmt,"%i") >=0) { - my $inst = "no"; - if ($pkg{'instversion'}) { - if ($pkg{'instversion'} eq $pkg{'version'}."-".$pkg{'release'}) { - $inst = "yes"; - } else { - $inst = "diff"; - } - } - $fmt =~ s|%i|$inst|; - } - print "$fmt"; -} - -# See if package is currently locked -sub islocked { - my $pkg = $_[0]; - open(LCK, $LOCKFILE) or return "no"; - while (<LCK>) { - chomp; - if ($_ eq $pkg) { - close(LCK); - return "yes"; - } - } - close(LCK); - return "no"; -} - -# Get package from the repo(s) -sub getpackage { - my $pkgname = $_[0]; - my $checkver = $_[1]; - my %found; - my %res; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg = parsepackage($_, $dir, $url, $checkver); - if ($pkg{'name'} eq $pkgname) { - close (REPO); - return %pkg; - } - } - close (REPO); - } - return %res; -} - -# Get short status for package, ie [i] -sub getshortstatus { - my %pkg = @_; - if ($pkg{'instversion'}) { - if ($pkg{'instversion'} eq $pkg{'version'}."-".$pkg{'release'}) { - return "[i]"; - } else { - return "[u]"; - } - } - return "[ ]"; -} - -# Get (recursive) dependencies for pkgname -sub getdependencies { - my $pkgname = $_[0]; - my $checkver = $_[1]; - my $pkgparent = $_[2]; - my $depstring = ""; - if ($pkgparent eq "") { - #%deps = (); - }; - if (not $deps{$pkgname}) { - my %pkg = getpackage($pkgname, 1); - if (%pkg) { - my $ddeps = getdirectdeps($pkg{'name'}, $pkg{'path'}); - my @d = split(/,/, $ddeps); - foreach my $dep(@d) { - getdependencies($dep, $checkver, $pkgname); - } - if ($checkver) { - $depstring = getshortstatus(%pkg) . " $pkgname"; - } else { - $depstring = $pkgname; - } - $deps{$pkgname} = $depstring; - push(@dependencies, $depstring); - } else { - if ($pkgparent eq "") { - return 0; - } else { - $missingdeps{$pkgname} = $pkgparent; - } - } - } -} - -# Download given package (if needed), check md5sum -sub downloadpkg { - my %pkg = @_; - my $fullpath = $pkg{'path'}."/".$pkg{'name'}."#".$pkg{'version'}."-".$pkg{'release'}.".pkg.tar.gz"; - if (-f $fullpath) { - my $md5 = `md5sum $fullpath`; chomp; - $md5 =~ s/\s+.*$//; - $md5 =~ chop($md5); - if ($md5 ne $pkg{'md5sum'} and not $ignore_md5sum) { - print STDERR "=======> ERROR: md5sum mismatch for $pkg{'name'}:\n"; - print STDERR "required : $pkg{'md5sum'}\n"; - print STDERR "found : $md5\n"; - return 0; - } - return 1; - } else { - if ($pkg{'url'} eq "") {return 1}; # repo is local and pkg does not exist. - my $url = $pkg{'url'}; - $url =~ s/\#/\%23/; - system ("wget --no-directories --tries=3 --waitretry=3 --directory-prefix=$pkg{'path'} $url") == 0 or return 0; - my $md5 = `md5sum $fullpath`; chomp; - $md5 =~ s/\s+.*$//; - $md5 =~ chop($md5); - if ($md5 ne $pkg{'md5sum'} and not $ignore_md5sum) { - print STDERR "=======> ERROR: md5sum mismatch for $pkg{'name'}:\n"; - print STDERR "required : $pkg{'md5sum'}\n"; - print STDERR "found : $md5\n"; - return 0; - } - } - return 1; -} - -# Install given package -sub installpkg { - my $upgrade = shift(@_); - my %pkg = @_; - my $aa = $aargs." "; - if ($pkg{'readme'} eq "yes") {$readmetasks{$pkg{'name'}} = 1}; - $pptasks{$pkg{'name'}} = ""; - if ($download_only) {return 1}; - if ($force){$aa = $aa."-f "}; - if ($root) {$aa = $aa."-r ".$root." "}; - if ($pkg{'pre_install'} eq "yes" and ($install_scripts or $pre_install)) {dopre(%pkg)}; - my $fullpath = $pkg{'path'}."/".$pkg{'name'}."#".$pkg{'version'}."-".$pkg{'release'}.".pkg.tar.gz"; - print "pkg-get: /usr/bin/pkgadd $upgrade$aa$fullpath\n"; - system ("/usr/bin/pkgadd $upgrade$aa$fullpath") == 0 or return 0; - if ($pkg{'post_install'} eq "yes" and ($install_scripts or $post_install)) {dopost(%pkg)}; - return 1; -} - -# Execute pre-install script -sub dopre { - my %pkg = @_; - my $cmd = "/bin/bash $pkg{'path'}/PKGINST $pkg{name}_pre_install"; - if (system($cmd) == 0){ - $pptasks{$pkg{'name'}} .= " [pre: ok]"; - } else { - $pptasks{$pkg{'name'}} .= " [pre: failed]"; - } -} - -# Execute post-install script -sub dopost { - my %pkg = @_; - my $cmd = "/bin/bash $pkg{'path'}/PKGINST $pkg{name}_post_install"; - if (system($cmd) == 0){ - $pptasks{$pkg{'name'}} .= " [post: ok]"; - } else { - $pptasks{$pkg{'name'}} .= " [post: failed]"; - } -} - -############################################################################ -# Main functions (commands) -############################################################################ - -# No pun intended ########################################################## -sub version { - print "pkg-get $VERSION "; - print "by Simone Rota <sip\@varlock.com>\n"; -} - -# Show brief help ########################################################## -sub help { - print "Usage: pkg-get command <package1> [package2 ... packageN] [options] - -Some command: - sync synchronize with the repository - depinst install package and its dependencies; - info info about package - sysup updates all outdated packages - diff list all outdated packages - -Some option: - -do download only - --install-scripts use install scripts - -r <root> use <root> for pkgadd - -Example: - pkg-get install sqlite pysqlite - -For other commands and samples, see the pkg-get(8) man page\n"; -} - -# Sync with the remote server(s) ########################################### -sub sync { - my @r; - my $dir; - my $url; - my $dlerror = 0; - foreach my $repo(@repos) { - @r = split(/\|/, $repo); - $dir = $r[0]; - $url = $r[1]; - if (not $url){$url = ""}; - print "Updating collection $dir\n"; - if (not -d $dir) { - mkdir($dir) or exiterr("cannot create $dir"); - } - if ($url ne "") { - for my $f ("PKGREPO", "PKGDEPS", "PKGREAD", "PKGINST") { - if (-f "$dir/$f") {rename("$dir/$f", "$dir/$f.old") or exiterr("cannot write to $dir")}; - if (system("wget -q -P $dir $url/$f") != 0) { - print " cannot retrieve $f\n"; - $dlerror=1; - } - } - if ($dlerror) { # restore backup repo - for my $f ("PKGREPO", "PKGDEPS", "PKGREAD", "PKGINST") { - if (-f "$dir/$f.old") {rename("$dir/$f.old", "$dir/$f") or exiterr("cannot write to $dir")};}; - } else { # remove backup repo - for my $f ("PKGREPO", "PKGDEPS", "PKGREAD", "PKGINST") { - if (-f "$dir/$f.old") {unlink("$dir/$f.old") or exiterr("cannot write to $dir")};}; - } - } - } -} - -# Show info about the package ############################################## -sub info { - my $arg = $ARGV[1]; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg = parsepackage($_, $dir, $url, 0); - if ($pkg{'name'} eq $arg) { - printinfo(%pkg); - close(REPO); - return; - } - } - close(REPO); - } - print "Package '$arg' not found\n"; -} - -# List packages containing given string in their name ###################### -sub search { - my $arg = $ARGV[1]; - my %found; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg = parsepackage($_, $dir, $url, 0); - if (index($pkg{'name'}, $arg) > -1 and not $found{$pkg{'name'}}) { - $found{$pkg{'name'}} = 1; - } - } - close(REPO); - } - foreach my $key (sort keys %found) { - print "$key\n"; - } - if (not %found) {print "No matching packages found\n"}; -} - -# List packages containing given string (name / description) ############### -sub dsearch { - my $arg = $ARGV[1]; - my %found; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg = parsepackage($_, $dir, $url, 0); - if ((index($pkg{'name'}, $arg) > -1 or index($pkg{'description'}, $arg) > -1) - and not $found{$pkg{'name'}}) { - $found{$pkg{'name'}} = 1; - } - } - close(REPO); - } - foreach my $key (sort keys %found) { - print "$key\n"; - } - if (not %found) {print "No matching packages found\n";}; -} - -# List all available packages ############################################## -sub list { - my $arg = $ARGV[1]; - my %found; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg = parsepackage($_, $dir, $url, 0); - $found{$pkg{'name'}} = 1; - } - close(REPO); - } - foreach my $key (sort keys %found) { - print "$key\n"; - } -} - -# Show path for a package ################################################## -sub path { - my $arg = $ARGV[1]; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg = parsepackage($_, $dir, $url, 0); - if ($pkg{'name'} eq $arg) { - print $pkg{'path'} . "\n"; - close(REPO); - return; - } - } - close(REPO); - } - print "Package '$arg' not found\n"; -} - -# Show current installed version of a package ############################## -sub current { - my $pkgname = $ARGV[1]; - getinstalled(); - if ($installed{$pkgname}) { - print "$installed{$pkgname}\n"; - } else { - print "Package $pkgname not installed\n"; - } -} - -# Print the README file for a package ###################################### -sub readme { - my $arg = $ARGV[1]; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg = parsepackage($_, $dir, $url, 0); - if ($pkg{'name'} eq $arg) { - printreadme(%pkg); - close(REPO); - return; - } - } - close(REPO); - } - print "Package '$arg' not found\n"; -} - -# Remove given packages #################################################### -sub remove { - $curraction = "removed"; - shift(@ARGV); - foreach my $pkg(@ARGV) { - $pptasks{$pkg} = ""; - if (system("/usr/bin/pkgrm $pkg") ==0) { - push(@donetasks, $pkg); - } else { - push(@failtasks, "where removal failed,$pkg"); - } - } - printresults(); -} - -# List installed packages ################################################## -sub listinst { - getinstalled(); - foreach my $key (sort keys %installed) { - print "$key\n"; - } -} - -# Print if package is installed ########################################### -sub isinst { - getinstalled(); - shift(@ARGV); - foreach my $pkg(@ARGV) { - if ($installed{$pkg}) { - print "package $pkg is installed\n"; - } else { - print "package $pkg is not installed\n"; - } - } -} - - -# Lock given packages ###################################################### -sub dolock { - shift(@ARGV); - foreach my $arg(@ARGV) { - my $found = 0; - foreach my $repo(@repos) { - if ($found == 0) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg = parsepackagelight($_); - if ($pkg{'name'} eq $arg) { - $found = 1; - lockadd($arg); - } - } - close(REPO); - } - } - if ($found == 0) {print "Package '$arg' not found\n"}; - } -} - -# Unlock given packages #################################################### -sub unlock { - shift(@ARGV); - my @locked; - my $found; - foreach my $arg(@ARGV) { - $found = 0; - @locked = (); - open(LCK, $LOCKFILE) or exiterr("could not open lock file"); - while (<LCK>) { - chomp; - if ($_ eq $arg) { - push (@locked, "-"); - $found = 1; - } else { - push (@locked, $_); - } - } - close(LCK); - if ($found == 1) { - @locked = sort(@locked); - open(LCK, ">$LOCKFILE") or exiterr("could not write to lock file"); - foreach my $lock(@locked) { - if ($lock ne "-") {print LCK "$lock\n"}; - } - close(LCK); - } else { - print "Not locked previously: $arg\n"; - } - } -} - -# List locked packages ##################################################### -sub listlocked { - open(LCK, $LOCKFILE) - or exit; - while (<LCK>) { - chomp; - print "$_\n"; - } - close(LCK); -} - -# Print formatted info ##################################################### -sub doprintf { - my %found; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg; - if (index($ARGV[1], "%i") >=0 ) { - %pkg = parsepackage($_, $dir, $url, 1); - } else { - %pkg = parsepackage($_, $dir, $url, 0); - } - if (not $found{$pkg{'name'}}) { - if ($filter ne "") { - my $match = $pkg{'name'}; - my $cfilter = $filter; - $cfilter =~ s/\*/\.\*/; - if ($match =~ /^$cfilter$/) { - formattedprint(%pkg); - $found{$pkg{'name'}} = 1; - } - } else { - formattedprint(%pkg); - $found{$pkg{'name'}} = 1; - } - } - } - close(REPO); - } -} - -# Show differences between installed and available packages ################ -sub diff { - my %found; - my $gotdiff = 0; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg; - %pkg = parsepackage($_, $dir, $url, 1); - if (not $found{$pkg{'name'}}) { - if ($pkg{'instversion'}) { - if ($pkg{'instversion'} ne $pkg{'version'}."-".$pkg{'release'}) { - if (islocked($pkg{'name'}) eq "no") { - if ($gotdiff == 0){ - print "Differences between installed packages and packages repo:\n\n"; - printf("%-19s %-19s %-19s\n\n","Package","Installed","Available in the repositories"); - $gotdiff = 1; - } - printf("%-19s %-19s %-19s\n", $pkg{'name'}, $pkg{'instversion'}, $pkg{'version'}."-".$pkg{'release'}); - } elsif ($all) { # yeah, it blows, at least avoid to read the locked state twice. - if ($gotdiff == 0){ - print "Differences between installed packages and packages repo:\n\n"; - printf("%-19s %-19s %-19s\n\n","Package","Installed","Available in the repositories"); - $gotdiff = 1; - } - printf("%-19s %-19s %-19s %-19s\n", $pkg{'name'}, $pkg{'instversion'}, $pkg{'version'}."-".$pkg{'release'}, "locked"); - } - } - } - $found{$pkg{'name'}} = 1; - } - } - close(REPO); - } - if ($gotdiff ==0) {print "No differences found\n"}; -} - -# Show differences between installed and available packages ################ -sub quickdiff { - my %found; - my $gotdiff = 0; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg; - %pkg = parsepackage($_, $dir, $url, 1); - if (not $found{$pkg{'name'}}) { - if ($pkg{'instversion'}) { - if ($pkg{'instversion'} ne $pkg{'version'}."-".$pkg{'release'} and islocked($pkg{'name'}) eq "no") { - if ($gotdiff == 0){ - print $pkg{'name'}; - $gotdiff = 1; - } else { - print " " . $pkg{'name'}; - } - } - } - $found{$pkg{'name'}} = 1; - } - } - close(REPO); - } - if ($gotdiff != 0) {print "\n"}; -} - -# Display duplicate packages (found in more than one repo) ################# -sub dup { - my %found; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg; - %pkg = parsepackage($_, $dir, $url, 0); - $found{$pkg{'name'}} .= "###" . $pkg{'path'}."/". $pkg{'name'}.$pkg{'version'}."-".$pkg{'release'}; - } - close(REPO); - } - my $curr = ""; - foreach my $key (sort keys %found) { - my $value = $found{$key}; - $value =~ s/^\#\#\#//; - if (rindex($value, "###") >=0){ - print "* $key\n"; - my @d = split(/\#\#\#/, $value); - foreach my $dup(@d){ - print " $dup\n"; - } - } - } -} - -# Show list of dependencies for package #################################### -sub depends { - getdependencies($ARGV[1], 1, "") or exiterr("package '$ARGV[1]' not found"); - if (@dependencies) {print "-- dependencies ([i] = installed, [u] = updatable)\n"} - foreach my $dep(@dependencies) { - print "$dep\n"; - } - if (%missingdeps) { - print "\n-- missing packages\n"; - foreach my $dep(sort keys %missingdeps) { - print "$dep from $missingdeps{$dep}\n"; - } - } -} - -# Show compact list of dependencies for package ############################ -sub quickdep { - getdependencies($ARGV[1], 0, "") or exiterr("package '$ARGV[1]' not found"); - foreach my $dep(@dependencies) { - print "$dep "; - } - print "\n"; -} - -# Show packages directly depending from given package ###################### -sub dependent { - my $arg = $ARGV[1]; - my %dp; - if (not $all) { getinstalled(); } - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(DEPS, "$dir/PKGDEPS") - or exiterr("could not open $dir/PKGDEPS"); - while (<DEPS>) { - chomp; - my $dep = $_; - $dep =~ s/\s+\:.*$//; - s/^.*\: /\,/; - s/$/\,\$/; - if ( /\,\Q$arg\E\,/ ) { - if (not $all) { - if ($installed{$dep}) { - $dp{$dep} = 1; - } - } else { - $dp{$dep} = 1; - } - } - } - close(DEPS); - } - foreach my $res(keys %dp) { - print "$res\n"; - } -} - -# Install given package #################################################### -sub install { - $curraction = "installed"; - my @args = @_; shift(@args); - getinstalled(); - foreach my $pkgname(@args) { - my %pkg = getpackage($pkgname, 1); - if (not %pkg ) { - push(@failtasks, "not found,$pkgname"); - } elsif (getshortstatus(%pkg) ne "[ ]") { - push(@prevtasks, "$pkgname"); - } elsif (downloadpkg(%pkg) and installpkg("", %pkg)) { - push(@donetasks, $pkgname); - } else { - push(@failtasks, "where install failed,$pkgname"); - } - } - printresults(); -} - -# Update given package ##################################################### -sub update { - $curraction = "updated"; - my @args = @_; shift(@args); - getinstalled(); - foreach my $pkgname(@args) { - my %pkg = getpackage($pkgname, 1); - if (not %pkg) { - push(@failtasks, "not found,$pkgname"); - } elsif (getshortstatus(%pkg) eq "[ ]") { - push(@prevtasks, "$pkgname"); - } elsif (downloadpkg(%pkg) and installpkg("-u ", %pkg)) { - push(@donetasks, $pkgname); - } else { - push(@failtasks, "where update failed,$pkgname"); - } - } - printresults(); -} - -# Update out of date packages ############################################## -sub sysup { - my %found; - my @diff; - foreach my $repo(@repos) { - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; - open(REPO, "$dir/PKGREPO") or exiterr("could not open $dir/PKGREPO"); - while (<REPO>) { - chomp; - my %pkg; - %pkg = parsepackage($_, $dir, $url, 1); - if (not $found{$pkg{'name'}}) { - if ($pkg{'instversion'}) { - if ($pkg{'instversion'} ne $pkg{'version'}."-".$pkg{'release'} and islocked($pkg{'name'}) eq "no") { - push(@diff, $pkg{'name'}); - } - } - $found{$pkg{'name'}} = 1; - } - } - close(REPO); - } - if (@diff) { - unshift(@diff, "dummy"); # is shifted later in update sub; - update(@diff); - } -} - -# 2009-10 -sub depinst { - my @toinst; my %seen; - $curraction = "installed"; - my @args = @ARGV; shift(@args); - getinstalled(); - - #~ Pour chaque paquet dans les arguments - foreach my $pkgname(@args) { - - #~ Si déjà installé retourne la valeur 55 - if($installed{$pkgname}){ - print "pkg-get : Le paquet $pkgname est déjà installé.\n"; - return 55; - } - #~ Si n'est pas dans les dépots, retourne la valeur 56 - if(not getpackage($pkgname, 1)){ - print "pkg-get : Le paquet $pkgname n'est pas disponible en binaire.\n"; - return 56; - } - - #~ Recherche des dépendances (tableau associatif @dependencies) - getdependencies($pkgname, 0, ""); - - #~ Pour chaque dépendances - foreach my $dep(@dependencies) { - - #~ Si on ne l'a pas déjà traitée - if (not $seen{$dep}) { - - #~ Prends le paquet des dépots - my %pkg = getpackage($dep, 1); - if (%pkg) { - #~ L'ajoute à la liste des paquets à installer - if (getshortstatus(%pkg) eq "[ ]"){ - push(@toinst, $pkg{'name'}); - } - } - #~ Marque la dépendance comme déjà traitée - $seen{$dep} = 1; - } - } - } - #~ Si des paquets sont marqués comme étant à installer, on lance l'installation - if (@toinst) { - unshift(@toinst, "dummy"); # is shifted later in install sub; - install(@toinst); - } -} diff --git a/base/pkg-get/pkg-get-0.4.5-NuTyX-02.patch b/base/pkg-get/pkg-get-0.4.5-NuTyX-02.patch deleted file mode 100644 index 465dafd24..000000000 --- a/base/pkg-get/pkg-get-0.4.5-NuTyX-02.patch +++ /dev/null @@ -1,287 +0,0 @@ ---- pkg-get-0.4.5/scripts/pkg-get.pl 2009-10-17 20:20:51.000000000 +0000 -+++ /usr/ports/base/pkg-get/pkg-get 2009-10-17 16:42:23.000000000 +0000 -@@ -1,7 +1,9 @@ - #!/usr/bin/env perl -+# -*- coding: utf-8 -*- - # - # pkg-get - A binary package management utility for CRUX Linux - # Copyright (C) 2004-06 Simone Rota <sip@varlock.com> -+# Modified by Arnaud Fernandés <ferarduansednan@laposte.net> 2009-10 - # - # This program is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by -@@ -48,6 +50,8 @@ - } - readconfig(); - -+my $exitcode = 0; # 2009-10 -+ - SWITCH: { - if ($command eq "version") { version(); last SWITCH; } - if ($command eq "sync") { sync(); last SWITCH; } -@@ -74,10 +78,11 @@ - if ($command eq "update") { update(@ARGV); last SWITCH; } - if ($command eq "sysup") { sysup(); last SWITCH; } - if ($command eq "dependent") { dependent(); last SWITCH; } -- if ($command eq "depinst") { depinst(); last SWITCH; } -+ if ($command eq "depinst") { $exitcode = depinst(); last SWITCH; } # 2009-10 - if ($command eq "current") { current(); last SWITCH; } - } - -+exit($exitcode); # 2009-10 - - ############################################################################ - # Support functions -@@ -104,7 +109,7 @@ - if (not $givencmd){$givencmd = ""}; - my @allowed = ("depinst:", "install:", "sysup", "diff", "update:", "depends:", "info:", "sync", - "version", "help", "quickdep:", "dependent:", "list", "listinst", "isinst:", -- "search:", "dsearch:", "lock:", "unlock:", "listlocked", "quickdiff", "printf:", -+ "search:", "dsearch:", "lock:", "unlock:", "listlocked", "quickdiff", "printf:", - "remove:", "readme:", "dup", "path:", "current:"); - - foreach my $valid(@allowed) { -@@ -126,7 +131,7 @@ - - # Parses the configuration file - sub readconfig { -- open(CFG, $CFGFILE) -+ open(CFG, $CFGFILE) - or exiterr("could not open $CFGFILE"); - while (<CFG>) { - chomp; -@@ -160,7 +165,7 @@ - my $release = $p[0]; - $release =~ s/^.*-//; - $release =~ s/\.pkg\.tar\.gz//; -- if (not $_[2]) {$_[2] = $_[1]}; -+ if (not $_[2]) {$_[2] = $_[1]}; - $pkg{'name'} = $name; - $pkg{'version'} = $version; - $pkg{'release'} = $release; -@@ -214,7 +219,7 @@ - sub getdirectdeps { - my $pkgname = $_[0]; - my $dir = $_[1]; -- open(DEPS, "$dir/PKGDEPS") -+ open(DEPS, "$dir/PKGDEPS") - or exiterr("could not open $dir/PKGDEPS"); - while (<DEPS>) { - chomp; -@@ -236,7 +241,7 @@ - my $pkgname = $pkg{'name'}; - my $found = 0; - my $finished = 0; -- open(READ, "$dir/PKGREAD") -+ open(READ, "$dir/PKGREAD") - or exiterr("could not open $dir/PKGREAD"); - while (<READ>) { - if ($finished eq 1) {return;}; -@@ -312,12 +317,12 @@ - # Get the list of installed packages - sub getinstalled { - if (%installed) { -- return; -+ return; - } - my $name; - my $version; - my $sec = 0; -- open(DB, $PKGDB) -+ open(DB, $PKGDB) - or exiterr("could not open ".$PKGDB); - while (<DB>) { - chomp; -@@ -447,7 +452,7 @@ - return %res; - } - --# Get short status for package, ie [i] -+# Get short status for package, ie [i] - sub getshortstatus { - my %pkg = @_; - if ($pkg{'instversion'}) { -@@ -503,9 +508,9 @@ - $md5 =~ s/\s+.*$//; - $md5 =~ chop($md5); - if ($md5 ne $pkg{'md5sum'} and not $ignore_md5sum) { -- print STDERR "=======> ERROR: md5sum mismatch for $pkg{'name'}:\n"; -- print STDERR "required : $pkg{'md5sum'}\n"; -- print STDERR "found : $md5\n"; -+ print STDERR "=======> ERROR: md5sum mismatch for $pkg{'name'}:\n"; -+ print STDERR "required : $pkg{'md5sum'}\n"; -+ print STDERR "found : $md5\n"; - return 0; - } - return 1; -@@ -518,9 +523,9 @@ - $md5 =~ s/\s+.*$//; - $md5 =~ chop($md5); - if ($md5 ne $pkg{'md5sum'} and not $ignore_md5sum) { -- print STDERR "=======> ERROR: md5sum mismatch for $pkg{'name'}:\n"; -- print STDERR "required : $pkg{'md5sum'}\n"; -- print STDERR "found : $md5\n"; -+ print STDERR "=======> ERROR: md5sum mismatch for $pkg{'name'}:\n"; -+ print STDERR "required : $pkg{'md5sum'}\n"; -+ print STDERR "found : $md5\n"; - return 0; - } - } -@@ -537,11 +542,11 @@ - if ($download_only) {return 1}; - if ($force){$aa = $aa."-f "}; - if ($root) {$aa = $aa."-r ".$root." "}; -- if ($pkg{'pre_install'} eq "yes" and ($install_scripts or $pre_install)) {dopre(%pkg)}; -+ if ($pkg{'pre_install'} eq "yes" and ($install_scripts or $pre_install)) {dopre(%pkg)}; - my $fullpath = $pkg{'path'}."/".$pkg{'name'}."#".$pkg{'version'}."-".$pkg{'release'}.".pkg.tar.gz"; - print "pkg-get: /usr/bin/pkgadd $upgrade$aa$fullpath\n"; - system ("/usr/bin/pkgadd $upgrade$aa$fullpath") == 0 or return 0; -- if ($pkg{'post_install'} eq "yes" and ($install_scripts or $post_install)) {dopost(%pkg)}; -+ if ($pkg{'post_install'} eq "yes" and ($install_scripts or $post_install)) {dopost(%pkg)}; - return 1; - } - -@@ -675,7 +680,7 @@ - } - foreach my $key (sort keys %found) { - print "$key\n"; -- } -+ } - if (not %found) {print "No matching packages found\n"}; - } - -@@ -691,7 +696,7 @@ - while (<REPO>) { - chomp; - my %pkg = parsepackage($_, $dir, $url, 0); -- if ((index($pkg{'name'}, $arg) > -1 or index($pkg{'description'}, $arg) > -1) -+ if ((index($pkg{'name'}, $arg) > -1 or index($pkg{'description'}, $arg) > -1) - and not $found{$pkg{'name'}}) { - $found{$pkg{'name'}} = 1; - } -@@ -700,7 +705,7 @@ - } - foreach my $key (sort keys %found) { - print "$key\n"; -- } -+ } - if (not %found) {print "No matching packages found\n";}; - } - -@@ -722,7 +727,7 @@ - } - foreach my $key (sort keys %found) { - print "$key\n"; -- } -+ } - } - - # Show path for a package ################################################## -@@ -800,7 +805,7 @@ - getinstalled(); - foreach my $key (sort keys %installed) { - print "$key\n"; -- } -+ } - } - - # Print if package is installed ########################################### -@@ -877,7 +882,7 @@ - - # List locked packages ##################################################### - sub listlocked { -- open(LCK, $LOCKFILE) -+ open(LCK, $LOCKFILE) - or exit; - while (<LCK>) { - chomp; -@@ -1021,7 +1026,7 @@ - print " $dup\n"; - } - } -- } -+ } - } - - # Show list of dependencies for package #################################### -@@ -1057,7 +1062,7 @@ - my @r = split(/\|/, $repo); - my $dir = $r[0]; - my $url = $r[1]; -- open(DEPS, "$dir/PKGDEPS") -+ open(DEPS, "$dir/PKGDEPS") - or exiterr("could not open $dir/PKGDEPS"); - while (<DEPS>) { - chomp; -@@ -1089,7 +1094,7 @@ - getinstalled(); - foreach my $pkgname(@args) { - my %pkg = getpackage($pkgname, 1); -- if (not %pkg) { -+ if (not %pkg ) { - push(@failtasks, "not found,$pkgname"); - } elsif (getshortstatus(%pkg) ne "[ ]") { - push(@prevtasks, "$pkgname"); -@@ -1152,25 +1157,50 @@ - } - } - -+# 2009-10 - sub depinst { - my @toinst; my %seen; - $curraction = "installed"; - my @args = @ARGV; shift(@args); - getinstalled(); -+ -+ #~ Pour chaque paquet dans les arguments - foreach my $pkgname(@args) { -+ -+ #~ Si déjà installé retourne la valeur 55 -+ if($installed{$pkgname}){ -+ print "pkg-get : Le paquet $pkgname est déjà installé.\n"; -+ return 55; -+ } -+ #~ Si n'est pas dans les dépots, retourne la valeur 56 -+ if(not getpackage($pkgname, 1)){ -+ print "pkg-get : Le paquet $pkgname n'est pas disponible en binaire.\n"; -+ return 56; -+ } -+ -+ #~ Recherche des dépendances (tableau associatif @dependencies) - getdependencies($pkgname, 0, ""); -- foreach my $dep(@dependencies) { -+ -+ #~ Pour chaque dépendances -+ foreach my $dep(@dependencies) { -+ -+ #~ Si on ne l'a pas déjà traitée - if (not $seen{$dep}) { -+ -+ #~ Prends le paquet des dépots - my %pkg = getpackage($dep, 1); - if (%pkg) { -+ #~ L'ajoute à la liste des paquets à installer - if (getshortstatus(%pkg) eq "[ ]"){ - push(@toinst, $pkg{'name'}); - } - } -+ #~ Marque la dépendance comme déjà traitée - $seen{$dep} = 1; - } - } - } -+ #~ Si des paquets sont marqués comme étant à installer, on lance l'installation - if (@toinst) { - unshift(@toinst, "dummy"); # is shifted later in install sub; - install(@toinst); ---- pkg-get-0.4.5/scripts/pkg-get.pl.orig 2009-10-17 20:20:51.000000000 +0000 -+++ pkg-get-0.4.5/scripts/pkg-get.pl 2009-10-17 16:42:23.000000000 +0000 -@@ -948,7 +948,7 @@ - printf("%-19s %-19s %-19s\n\n","Package","Installed","Available in the repositories"); - $gotdiff = 1; - } -- printf("%-19s %-19s %-19s %-19s\n", $pkg{'name'}, $pkg{'instversion'}, $pkg{'version'}."-".$pkg{'release'}); -+ printf("%-19s %-19s %-19s\n", $pkg{'name'}, $pkg{'instversion'}, $pkg{'version'}."-".$pkg{'release'}); - } elsif ($all) { # yeah, it blows, at least avoid to read the locked state twice. - if ($gotdiff == 0){ - print "Differences between installed packages and packages repo:\n\n"; diff --git a/base/pkg-get/pkg-repgen.patch b/base/pkg-get/pkg-repgen.patch deleted file mode 100644 index 8fd93c56b..000000000 --- a/base/pkg-get/pkg-repgen.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- pkg-get-0.4.5/scripts/pkg-repgen.pl.original 2009-08-19 11:44:55.000000000 +0000 -+++ pkg-get-0.4.5/scripts/pkg-repgen.pl 2009-08-19 11:47:59.000000000 +0000 -@@ -198,7 +198,7 @@ - my $path = `prt-get path $package`; - $path =~ s/\n//g; - my $normal= $package; -- $normal =~ s/[^[:alnum:]]/_/g; -+ $normal =~ s/[^[:alnum:]]/-/g; - if (-f "$path/pre-install"){ - print $fh "${normal}_pre_install() {\n"; - open(my $pre, "$path/pre-install"); diff --git a/base/pkg-get/syn b/base/pkg-get/syn index 6f2eb78f8..70beace61 100644 --- a/base/pkg-get/syn +++ b/base/pkg-get/syn @@ -34,7 +34,7 @@ if [ ! -L /depot ]; then else for i in `cat /etc/pkg-get.conf |grep -v ^#|grep http|cut -d "|" -f 1|cut -d" " -f2|cut -d"/" -f4` do - rsync -avuz --delete-before rsync://nutyx.meticul.eu/nutyx/2009.3/i686/$i/ $Depot/$i/ + rsync -avuz --delete-before rsync://nutyx.meticul.eu/nutyx/attapu/i686/$i/ $Depot/$i/ done fi |