Unser Paketmanager...
authorms <ms@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Fri, 4 May 2007 13:09:57 +0000 (13:09 +0000)
committerms <ms@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Fri, 4 May 2007 13:09:57 +0000 (13:09 +0000)
git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@525 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8

22 files changed:
doc/language_issues.de
doc/language_issues.en
html/cgi-bin/pakfire.cgi
lfs/pakfire
src/pakfire/installed/BASE [deleted file]
src/pakfire/lib/check_pak.sh [deleted file]
src/pakfire/lib/functions.pl [new file with mode: 0644]
src/pakfire/lib/get_base.sh [deleted file]
src/pakfire/lib/get_conf.sh [deleted file]
src/pakfire/lib/get_list.sh [deleted file]
src/pakfire/lib/get_mirror.sh [deleted file]
src/pakfire/lib/get_pak.sh [deleted file]
src/pakfire/lib/get_pakname.sh [deleted file]
src/pakfire/lib/get_upgrade.sh [deleted file]
src/pakfire/lib/install_pak.sh [deleted file]
src/pakfire/lib/resolv_deps.sh [deleted file]
src/pakfire/lib/test.sh [deleted file]
src/pakfire/lib/test_host.sh [deleted file]
src/pakfire/lib/unpak_pak.sh [deleted file]
src/pakfire/lib/url_zerl.sh [deleted file]
src/pakfire/pakfire
src/pakfire/pakfire.conf

index 80f7f95..478b1ed 100644 (file)
@@ -321,6 +321,7 @@ WARNING: untranslated string: dial profile
 WARNING: untranslated string: down
 WARNING: untranslated string: firewall graphs
 WARNING: untranslated string: help
+WARNING: untranslated string: install
 WARNING: untranslated string: intrusion detection system rules
 WARNING: untranslated string: invalid input for keepalive 1:2
 WARNING: untranslated string: openvpn log
index 6cc7bcf..34c1846 100644 (file)
@@ -324,6 +324,7 @@ WARNING: untranslated string: down
 WARNING: untranslated string: firewall logs ip
 WARNING: untranslated string: firewall logs port
 WARNING: untranslated string: help
+WARNING: untranslated string: install
 WARNING: untranslated string: intrusion detection system rules
 WARNING: untranslated string: openvpn log
 WARNING: untranslated string: otherip
index 733b3e9..83a0524 100644 (file)
 use strict;
 
 # enable only the following on debugging purpose
-#use warnings;
-#use CGI::Carp 'fatalsToBrowser';
+use warnings;
+use CGI::Carp 'fatalsToBrowser';
 
 require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
+require "/opt/pakfire/lib/functions.pl";
 
 my %pakfiresettings=();
 my $errormessage = '';
@@ -29,15 +30,37 @@ my $errormessage = '';
 $pakfiresettings{'ACTION'} = '';
 $pakfiresettings{'VALID'} = '';
 
-$pakfiresettings{'INSTALLED'} = '';
-$pakfiresettings{'AVAIL'} = '';
-$pakfiresettings{'AUTOUPD'} = '';
+$pakfiresettings{'INSPAKS'} = '';
+$pakfiresettings{'DELPAKS'} = '';
+$pakfiresettings{'AUTOUPDATE'} = '';
 
 &Header::getcgihash(\%pakfiresettings);
 
-if ($pakfiresettings{'ACTION'} eq $Lang::tr{'save'})
-{
+&Header::openpage($Lang::tr{'pakfire configuration'}, 1);
+&Header::openbigbox('100%', 'left', '', $errormessage);
 
+if ($pakfiresettings{'ACTION'} eq 'install')
+{
+       my @inspaks = split(/\|/, "$pakfiresettings{'INSPAKS'}");
+       &General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings);
+       my @deps = "";
+       foreach (@inspaks) {
+               push(@deps, $_);
+               my @add = split(/ /, `/usr/local/bin/pakfire resolvedeps $_`);
+               foreach (@add) { push(@deps, $_); }
+       }
+       &Header::openbox("100%", "center", "Pakfire");
+       print "Wenn sie die Pakete @inspaks installieren wollen müssen sie auch folgende Pakete installieren: @deps";
+       &Header::closebox();
+       exit 0;
+}
+elsif ($pakfiresettings{'ACTION'} eq 'remove')
+{
+       $errormessage = "$pakfiresettings{'DELPAKS'}";
+       &General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings);
+} elsif ($pakfiresettings{'ACTION'} eq "$Lang::tr{'save'}")
+{
+       &General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings);
 }
 
 &General::readhash("${General::swroot}/pakfire/settings", \%pakfiresettings);
@@ -46,13 +69,9 @@ if ($pakfiresettings{'ACTION'} eq $Lang::tr{'save'})
 my %selected=();
 my %checked=();
 
-$checked{'AUTOUPD'}{'off'} = '';
-$checked{'AUTOUPD'}{'on'} = '';
-$checked{'AUTOUPD'}{$pakfiresettings{'AUTOUPD'}} = "checked='checked'";
-
-&Header::openpage($Lang::tr{'pakfire configuration'}, 1);
-
-&Header::openbigbox('100%', 'left', '', $errormessage);
+$checked{'AUTOUPDATE'}{'off'} = '';
+$checked{'AUTOUPDATE'}{'on'} = '';
+$checked{'AUTOUPDATE'}{$pakfiresettings{'AUTOUPDATE'}} = "checked='checked'";
 
 # DPC move error message to top so it is seen!
 if ($errormessage) {
@@ -61,6 +80,49 @@ if ($errormessage) {
        &Header::closebox();
        }
 
+&Header::openbox("100%", "center", "Pakfire");
+
+print <<END;
+       <table width='100%'>
+               <tr><td width='40%' align="center">Verfuegbare Addons:<br />
+                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                               <select name="INSPAKS" size="10" multiple>
+END
+                       &Pakfire::dblist("notinstalled", "forweb");
+               
+print <<END;
+                               </select>
+               </td>
+               <td width='20%' align="center">
+                               <input type='hidden' name='ACTION' value='install' />
+                               <input type='image' alt='$Lang::tr{'install'}' src='/images/list-add.png' />
+                       </form><br />
+                       
+                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                               <input type='submit' value='Liste aktualisieren' /><br />
+                       </form>
+                       
+                       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                               <input type='hidden' name='ACTION' value='remove' />
+                               <input type='image' alt='$Lang::tr{'remove'}' src='/images/list-remove.png' />
+               </td>
+               <td width='40%' align="center">Installierte Addons:<br />
+                       <select name="DELPAKS" size="10" multiple>
+                       <option value="postfix">Postfix v2.4.0-1</option>
+               </select>
+       </table></form>
+               <br /><hr /><br />
+       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+               <table width='100%'>
+                       <tr><td width='40%' align="right">Automatische Updates taeglich ausfuehren:
+                                       <td width='10%' align="left"><input type="checkbox" name="AUTOUPDATE" $checked{'AUTOUPDATE'}{'on'} />
+                                       <td width='40%' align="right">Test:
+                                       <td width='10%' align="left"><input type="checkbox" name="AUTOUPDATE" $checked{'AUTOUPDATE'}{'on'} />
+                       <tr><td width='100%' colspan="4" align="right"><input type="submit" name="ACTION" value="$Lang::tr{'save'}" />                                  
+               </table>
+       </form>
+END
+
 &Header::closebox();
 
 &Header::closebigbox();
index 14c34f7..d7a15ab 100644 (file)
@@ -51,9 +51,10 @@ md5 :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP)
+       -mkdir -p /opt/pakfire/{cache,db/{meta,lists,rootfiles},etc,lib,logs,tmp}
        cd $(DIR_SRC) && cp -fRv src/pakfire $(DIR_APP)
-       cd $(DIR_APP) && mv -vf pakfire.conf /etc
-       cd $(DIR_APP) && chown root.root $(DIR_APP) -R && chmod 755 pakfire lib/*
+       cd $(DIR_APP) && mv -vf pakfire.conf /opt/pakfire/etc
+       cd $(DIR_APP) && chown root.root $(DIR_APP) -R
        -cd $(DIR_APP) && find $(DIR_APP) -name .svn -exec rm -rf {} \;
        @$(POSTBUILD)
 
diff --git a/src/pakfire/installed/BASE b/src/pakfire/installed/BASE
deleted file mode 100644 (file)
index f438661..0000000
+++ /dev/null
@@ -1 +0,0 @@
-VER=0
diff --git a/src/pakfire/lib/check_pak.sh b/src/pakfire/lib/check_pak.sh
deleted file mode 100644 (file)
index 3f5c083..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/sh
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-check_pak() {
-
-#if [ ! -f $PAKHOME/cache/$PACKAGES_LIST ]; then 
-#      exit 1
-#fi
-
-# Zerlegte Listen
-ZERL_PATCH=$TMP_DIR/zerl_
-
-# Zerlegen der Liste erst jede Zeile fuer sich bei maximal 9998 Einträgen
-for (( i=1 ; i<9999 ; i++))
-do
-
- patch=$(head -${i} $PAKHOME/cache/${PACKAGE_LIST} | tail -1)
- echo $patch >${ZERL_PATCH}$i
-
- if [ "${patch}" = "###EOF###" ]
-  then
-   rm ${ZERL_PATCH}$i
-   break
- fi
-
- if [ $i -ge 9999 ]
-  then
-   echo "Defektes Patchfile!!!"
-   /bin/rm -f ${ZERL_PATCH}*
-   return 1
- fi
-
-done
-
-# Errechnen wieviele Patches eingetragen sind
-(( i-- ))
-
-# Jedes Paket nach Name zerlegen
-for list in $(find $TMP_DIR -type f -name "zerl_*")
-do
- # Zeile lesen Zeile
- zeile=$(cat $list)
- # Auf Namen reduzieren
- name=${zeile%%-*}
- # Auf Version reduzieren
- vers=${zeile#*-}
- vers=${vers%%_*}
- vers=${vers%% *}
- ipfver=${zeile#*_*}
- /bin/rm -f $DB_DIR/${name}
- /bin/echo -e VER=\"${vers}\" > $DB_DIR/${name}
- /bin/echo -e IPFVER=\"${ipfver}\" >> $DB_DIR/${name}
- cat $DB_DIR/${name} | tr -d "\015" > $DB_DIR/${name}
-done
-
-# Löschen der Hilfslisten
-/bin/rm -f ${ZERL_PATCH}* >/dev/null 2>&1
-
-}
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl
new file mode 100644 (file)
index 0000000..aa609cb
--- /dev/null
@@ -0,0 +1,464 @@
+#!/usr/bin/perl -w
+
+require "/opt/pakfire/etc/pakfire.conf";
+
+use File::Basename;
+use File::Copy;
+use LWP::UserAgent;
+use Net::Ping;
+
+package Pakfire;
+
+sub message {
+       my $message = shift;
+       print "$message\n";
+       logger("$message");
+}
+
+sub logger {
+       my $log = shift;
+       system("logger -t pakfire \"$log\"");
+}
+
+sub pinghost {
+       my $host = shift;
+       
+       $p = Net::Ping->new();
+  if ($p->ping($host)) {
+       logger("$host is alive.");
+       return 1;
+  } else {
+               logger("$host is dead.");
+               return 0;
+       }
+  $p->close();
+}
+
+sub fetchfile {
+       my $file = shift;
+       my $host = shift;
+       my (@server, $proto);
+       
+       use File::Basename;
+       
+       if ("$host" eq "") {
+               @server = selectmirror();
+               $proto = $server[0];
+               $host = $server[1];
+               $file = "$server[2]/$file";
+       }
+       
+       logger("Trying to get $file from $host ($proto).");
+
+       $bfile = basename("$file");
+       
+       my $ua = LWP::UserAgent->new;
+       $ua->agent('Pakfire/2.1');
+       #$ua->timeout(5);
+       #$ua->env_proxy;
+       my $response = $ua->get("http://$host/$file");
+       if ($response->is_success) {
+               if (open(FILE, ">$Conf::cachedir/$bfile")) {
+                       print FILE $response->content;
+                       close(FILE);
+               } else {
+                       message("Could not open $Conf::cachedir/$bfile for writing.");
+               }
+               logger("$host sends file: $file.");
+               return 1;
+       }
+       else {
+               my $log = $response->status_line;
+               logger("$log");
+               return 0;
+       }
+}
+
+sub testhost {
+       my $host = shift;
+       my $ua = LWP::UserAgent->new;
+       $ua->agent('Pakfire/2.1');
+       $ua->timeout(5);
+       # $ua->env_proxy;
+       my $response = $ua->get("http://$host/dummy");
+       if ($response->is_success) {
+               logger("$host answers my request.");
+               return 1;
+       }
+       else {
+               my $log = $response->status_line;
+               logger("Server does not work properly: $log");
+               return 0;
+       }
+}
+
+sub getmirrors {
+       use File::Copy;
+
+       logger("Try to get a mirror list.");
+       
+       fetchfile("lists/$Conf::version-server-list", "$Conf::mainserver");
+       move("$Conf::cachedir/$Conf::version-server-list", "$Conf::dbdir/lists/$Conf::version-server-list");
+}
+
+sub selectmirror {
+       ### Check if there is a current server list and read it.
+       #   If there is no list try to get one.
+       my $count = 0;
+       while (!(open(FILE, "<$Conf::dbdir/lists/$Conf::version-server-list")) && ($count lt 5)) {
+               $count++;
+               getmirrors();
+       }
+       if ($count == 5) {
+               message("Could not find or download a server list.");
+               exit 1;
+       }
+       my @lines = <FILE>;
+       close(FILE);
+
+       ### Count the number of the servers in the list
+       my $scount = 0;
+       foreach (@lines) {
+               $scount++;
+       }
+       logger("$scount servers found in list.");
+       
+       ### Choose a random server and test if it is online
+       #   If the check fails try a new server.
+       #   This will never give up.
+       my $found = 0;
+       my $servers = 0;
+       while ($found == 0) {
+               $server = int(rand($scount) + 1);
+               $servers = 0;
+               my ($line, $proto, $path, $host);
+               my @templine;
+               foreach $line (@lines) {
+                       $servers++;
+                       if ($servers eq $server) {
+                               @templine = split(/\;/, $line);
+                               $proto = $templine[0];
+                               $host = $templine[1];
+                               $path = $templine[2];
+                               if ((pinghost("$host")) && testhost("$host") ) {
+                                       $found = 1;
+                                       return ($proto, $host, $path);
+                               }
+                       }
+               }
+       }       
+}
+
+sub dbgetlist {
+       ### Update the database if the file is older than one day.
+       #   If you pass &Pakfire::dbgetlist(force) the list will be downloaded.
+       #   Usage is always with an argument.
+       my $force = shift;
+       my $age;
+       
+       use File::Copy;
+       
+       if ( -e "$Conf::dbdir/lists/packages_list.db" ) {
+               my @stat = stat("$Conf::dbdir/lists/packages_list.db");
+               my $time = time();
+               $age = $time - $stat[9];
+       } else {
+               # Force an update.
+               $age = "86401";
+       }
+       
+       if (("$age" gt 86400) || ("$force" eq "force")) {
+               cleanup();
+               fetchfile("lists/packages_list.db", "");
+               move("$Conf::cachedir/packages_list.db", "$Conf::dbdir/lists/packages_list.db");
+       }
+}
+
+sub dblist {
+       ### This subroutine lists the packages.
+       #   You may also pass a filter: &Pakfire::dblist(filter) 
+       #   Usage is always with two arguments.
+       #   filter may be: all, notinstalled, installed
+       my $filter = shift;
+       my $forweb = shift;
+       
+       ### Make sure that the list is not outdated. 
+       dbgetlist("noforce");
+
+       open(FILE, "<$Conf::dbdir/lists/packages_list.db");
+       my @db = <FILE>;
+       close(FILE);
+       
+       my $line;
+       my @templine;
+       foreach $line (sort @db) {
+               @templine = split(/\;/,$line);
+               ### filter here...
+               if ("$forweb" eq "forweb") {
+                       print "<option value=\"$templine[0]\">$templine[1]</option>\n";
+               } else {
+                       print "$templine[0] $templine[1]\n";
+               }
+       }
+}
+
+sub resolvedeps {
+       my $pak = shift;
+       
+       getmetafile("$pak");
+       
+       message("\n## Resolving dependencies for $pak...");
+       
+       open(FILE, "<$Conf::dbdir/meta/meta-$pak");
+       my @file = <FILE>;
+       close(FILE);
+       
+       my $line;
+       my (@templine, @deps, @tempdeps);
+       foreach $line (@file) {
+               @templine = split(/\: /,$line);
+               if ("$templine[0]" eq "Dependencies") {
+                       @deps = split(/ /, $templine[1]);
+               }
+       }
+       chomp (@deps);
+       foreach (@deps) {
+               if ($_) {
+                 message("### Found dependency: $_");
+                 push(@tempdeps,$_);
+               }
+       }
+       
+       #my @tempdeps = @deps;
+       foreach (@tempdeps) {
+               if ($_) {
+                       my @newdeps = resolvedeps("$_");
+                       foreach(@newdeps) {
+                               unless (($_ eq " ") || ($_ eq "")) {
+                                 message("### Found dependency: $_");
+                                       push(@deps,$_);
+                               }
+                       }
+               }
+       }
+       chomp (@deps);
+       return @deps;
+}
+
+sub cleanup {
+       my $dir = shift;
+       my $path;
+       
+       if ( "$dir" eq "meta" ) {
+               $path = "$Conf::dbdir/meta";
+       } elsif ( "$dir" eq "tmp" ) {
+               $path = "$Conf::tmpdir";
+       }
+       chdir("$path");
+       opendir(DIR,".");
+       my @files = readdir(DIR);
+       closedir(DIR);
+       foreach (@files) {
+         unless (($_ eq ".") || ($_ eq "..")) {
+                  system("rm -rf $_");
+               }
+       }
+}
+
+sub getmetafile {
+       my $pak = shift;
+       
+       logger("Going to download meta-$pak.");
+       
+       unless ( -e "$Conf::dbdir/meta/meta-$pak") {
+               fetchfile("meta/meta-$pak", "");
+               move("$Conf::cachedir/meta-$pak", "$Conf::dbdir/meta/meta-$pak");
+       }
+       
+       open(FILE, "<$Conf::dbdir/meta/meta-$pak");
+       my @line = <FILE>;
+       close(FILE);
+       
+       open(FILE, ">$Conf::dbdir/meta/meta-$pak");
+       foreach (@line) {
+               my $string = $_;
+               $string =~ s/\r\n/\n/g;
+               print FILE $string;
+       }
+       close(FILE);
+       return 1;
+}
+
+sub getsize {
+       my $pak = shift;
+       
+       getmetafile("$pak");
+       
+       open(FILE, "<$Conf::dbdir/meta/meta-$pak");
+       my @file = <FILE>;
+       close(FILE);
+       
+       my $line;
+       my @templine;
+       foreach $line (@file) {
+               @templine = split(/\: /,$line);
+               if ("$templine[0]" eq "Size") {
+                       chomp($templine[1]);
+                       return $templine[1];
+               }
+       }
+}
+
+sub addsizes {
+       my @paks = shift;
+       
+       my @sizes;
+       foreach (@paks) {
+               my $paksize = getsize("$_");
+               push(@sizes, $paksize);
+       }
+       
+       my $totalsize = 0;
+       foreach (@sizes) {
+               $totalsize += $_;
+       }
+       return $totalsize;
+}
+
+sub decryptpak {
+       my $pak = shift;
+       
+       cleanup("tmp");
+       
+       my $file = getpak("$pak", "noforce");
+       
+       my $return = system("gpg -d < $Conf::cachedir/$file | tar xj -C $Conf::tmpdir/");
+       
+       logger("Decryption process returned the following: $return");
+       if ($return == 1) { exit 1; }
+}
+
+sub getpak {
+       my $pak = shift;
+       my $force = shift;
+
+       getmetafile("$pak");
+       
+       open(FILE, "<$Conf::dbdir/meta/meta-$pak");
+       my @file = <FILE>;
+       close(FILE);
+       
+       my $line;
+       my $file;
+       my @templine;
+       foreach $line (@file) {
+               @templine = split(/\: /,$line);
+               if ("$templine[0]" eq "File") {
+                       chomp($templine[1]);
+                       $file = $templine[1];
+               }
+       }
+       
+       unless ($file) {
+               message("No filename given in meta-file. Please phone the developers.");
+               exit 1;
+       }
+       
+       message("\n## Downloading $file...");
+       
+       unless ( "$force" eq "force" ) {
+               if ( -e "$Conf::cachedir/$file" ) {
+                       message("$file is already there. Skipping download.");
+                       return $file;
+               }
+       }
+       
+       fetchfile("paks/$file", "");
+       return $file;
+}
+
+sub setuppak {
+       my $pak = shift;
+       
+       message("We are going to install: $pak");
+       
+       decryptpak("$pak");
+       
+       my $return = system("cd $Conf::tmpdir && ./install.sh >> $Conf::logdir/install-$pak.log 2>&1");
+       if ($return == 0) {
+         move("$Conf::tmpdir/ROOTFILES", "$Conf::dbdir/rootfiles/$pak");
+         cleanup("tmp");
+               message("Setup completed. Congratulations!");
+       } else {
+               message("Setup returned: $return. Sorry. Please search our forum to find a solution for this problem.");
+               exit $return;
+       }
+       
+       exit $return;
+}
+
+sub updatepak {
+       my $pak = shift;
+
+       message("We are going to update: $pak");
+
+       decryptpak("$pak");
+
+       my $return = system("cd $Conf::tmpdir && ./update.sh >> $Conf::logdir/update-$pak.log 2>&1");
+       if ($return == 0) {
+         move("$Conf::tmpdir/ROOTFILES", "$Conf::dbdir/rootfiles/$pak");
+         cleanup("tmp");
+               message("Update completed. Congratulations!");
+       } else {
+               message("Setup returned: $return. Sorry. Please search our forum to find a solution for this problem.");
+               exit $return;
+       }
+
+       exit $return;
+}
+
+sub removepak {
+       my $pak = shift;
+
+       message("We are going to uninstall: $pak");
+
+       decryptpak("$pak");
+
+       my $return = system("cd $Conf::tmpdir && ./uninstall.sh >> $Conf::logdir/uninstall-$pak.log 2>&1");
+       if ($return == 0) {
+         open(FILE, "<$Conf::dbdir/rootfiles/$pak");
+               my @file = <FILE>;
+               close(FILE);
+               foreach (@file) {
+                 my $line = $_;
+                 chomp($line);
+                       system("echo \"Removing: $line\" >> $Conf::logdir/uninstall-$pak.log 2>&1");
+                       system("cd / && rm -rf $line >> $Conf::logdir/uninstall-$pak.log 2>&1");
+               }
+         unlink("$Conf::dbdir/rootfiles/$pak");
+         cleanup("tmp");
+               message("Uninstall completed. Congratulations!");
+       } else {
+               message("Setup returned: $return. Sorry. Please search our forum to find a solution for this problem.");
+               exit $return;
+       }
+
+       exit $return;
+}
+
+sub beautifysize {
+       my $size = shift;
+       
+       if ($size > 1023) {
+         my $newsize = $size / 1024;
+         return "$newsize MB";
+       } else {
+         return "$size KB";
+       }
+}
+
+
+1;
diff --git a/src/pakfire/lib/get_base.sh b/src/pakfire/lib/get_base.sh
deleted file mode 100644 (file)
index f51dac9..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-get_base() {
-
-. $IP_DIR/BASE
-
- OLD_VER=$VER
-
- VER=""
- . $DB_DIR/BASE
-
- if [ "$OLD_VER" -lt "$VER" ]; then
-  pakfire_logger "There is one ore more updates for the base system!"
-  for i in `seq $(($OLD_VER+1)) $VER`
-   do
-    $PAKHOME/pakfire install BASE-$i
-   done
- fi
-
-}
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/get_conf.sh b/src/pakfire/lib/get_conf.sh
deleted file mode 100644 (file)
index 0d61f1a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-# Conf File festlegen
-CONF_FILE=/etc/pakfire.conf
-
-if [ -r $CONF_FILE ]
-then 
- STRI=$(grep $1 $CONF_FILE)
- STRI=${STRI#*=}
-fi
-
-if [ -z $2 ]
- then echo "$STRI"
- else cat $STRI
-fi
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/get_list.sh b/src/pakfire/lib/get_list.sh
deleted file mode 100644 (file)
index 6277550..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-get_list () {
-
-PURL=`cat ${CACHE_DIR}$SERVERS_LIST`
-
-if [ "$PURL" ]; then
-  url=$(. $HOST_TEST "$PURL")
-  if [ -n $url ]
-   then URL=${url}
-  fi
-else
-  echo "No server-address available. Exiting..."
-  exit 1
-fi
-
-if [ -z $URL ]
- then pakfire_logger "Cannot find a working mirror."
-  return 1
-fi
-
-cd $PAKHOME/cache
-
-if [ -f $PACKAGE_LIST ]
- then rm $PACKAGE_LIST
-fi
-
-if /usr/bin/wget $URL/$PACKAGE_LIST > /dev/null 2>&1
- then
-  cd -
-  pakfire_logger "Updateliste heruntergeladen von $URL"
-  return 0
- else
-  cd -
-  pakfire_logger "Updateliste konnnte nicht heruntergeladen werden von $URL"
-  return 1
-fi
-
-}
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/get_mirror.sh b/src/pakfire/lib/get_mirror.sh
deleted file mode 100644 (file)
index bf90268..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-get_mirror() {
-
-cd $PAKHOME/cache
-
-if [ -e $PAKHOME/cache/$SERVERS_LIST ]
- then rm -f $PAKHOME/cache/$SERVERS_LIST
-fi
-
-if /usr/bin/wget $H_MIRROR >$LOG 2>&1
- then
-  pakfire_logger "Got servers!"
-  cd -
-  return 0
- else
-  pakfire_logger "Got no servers!"
-  cd -
-  return 1
-fi
-
-}
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/get_pak.sh b/src/pakfire/lib/get_pak.sh
deleted file mode 100644 (file)
index 13b4920..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-get_pak() {
-
-URL=$(. $HOST_TEST "$PURL")
-
-if [ -z $URL ]
- then pakfire_logger "Cannot find a mirror."
-  exit 1
-fi
-
-. $DB_DIR/$1
-
-FILE="$1-${VER}_${IPFVER}.ipfire"
-
-if [ ! -f $CACHE_DIR/$FILE ]; then
-  cd /var/tmp
-  pakfire_logger "Downloading $FILE from $URL..."
-  if /usr/bin/wget $URL/packages/$FILE{,.md5} >> $LOG 2>&1
-   then
-      if [ "`md5sum $FILE`" = "`cat ${FILE}.md5`" ]; then
-      mv -f /var/tmp/$FILE{,.md5} $CACHE_DIR
-      pakfire_logger "MD5 sum OK in $FILE!"
-    else
-      pakfire_logger "Wrong MD5 sum in $FILE."
-      rm -f /var/tmp/$FILE{,.md5}
-      exit 1
-    fi
-    cd -
-   else
-    cd -
-    pakfire_logger "Cannot download $URL/packages/$FILE"
-    exit 1
-  fi
-else
-  pakfire_logger "No need to download $FILE."
-fi
-
-}
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/get_pakname.sh b/src/pakfire/lib/get_pakname.sh
deleted file mode 100644 (file)
index f78dbd7..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-# Update Verzeichnis
-UP_DIR=$(get_conf.sh UP_DIR)
-
-# Installierten Verzeichnis
-IP_DIR=$(get_conf.sh IP_DIR)
-
-# Nicht Installierten Verzeichnis
-NIP_DIR=$(get_conf.sh NIP_DIR)
-
-# $1 = update|install|uninstall|reinstall
-# $2 = paketname
-
-case "$1" in
-
-       update)
-               if /bin/ls ${UP_DIR}${2}* >/dev/null 2>&1
-               then name=$(/bin/ls ${UP_DIR}${2}*)
-                    name=$(/bin/basename $name)
-                    echo $name
-                    exit 0
-               else exit 1
-               fi
-               ;;
-       install)
-               if /bin/ls ${NIP_DIR}${2}* >/dev/null 2>&1
-                then name=$(/bin/ls ${NIP_DIR}${2}*)
-                     name=$(/bin/basename $name)
-                     echo $name
-                     exit 0
-                else exit 1
-                fi
-               ;;
-       uninstall)
-               if /bin/ls ${IP_DIR}${2}* >/dev/null 2>&1
-                then name=$(/bin/ls ${IP_DIR}${2}*)
-                     name=$(/bin/basename $name)
-                     echo $name
-                     exit 0
-                else exit 1
-                fi
-               ;;
-       reinstall)
-                if /bin/ls ${IP_DIR}${2}* >/dev/null 2>&1
-                then name=$(/bin/ls ${IP_DIR}${2}*)
-                     name=$(/bin/basename $name)
-                     echo $name
-                     exit 0
-                else exit 1
-                fi
-               ;;
-       *)      exit 2
-esac
-
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/get_upgrade.sh b/src/pakfire/lib/get_upgrade.sh
deleted file mode 100644 (file)
index 8d72a55..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-get_upgrade() {
-
-updates=""
-
-for list in $(find $IP_DIR -type f -name "*")
-do
- list=$(basename $list)
- . $IP_DIR/$list
- OLD_VER=$VER
- OLD_IPFVER=$IPFVER
-
- VER=""
- IPFVER=""
- . $DB_DIR/$list
-
- if [ "$OLD_IPFVER" -lt "$IPFVER" ]; then
-  updates="$list $updates"
- fi
-
-done
-
-for i in $updates
-do
- pakfire_logger "New version of $i available."
-done
-}
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/install_pak.sh b/src/pakfire/lib/install_pak.sh
deleted file mode 100644 (file)
index d716b33..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-install_pak() {
-
-cd $CACHE_DIR
-
-. $DB_DIR/$1
-FILE="$1-${VER}_${IPFVER}.tar.gz"
-
-pakfire_logger "Unpaking $FILE..."
-mkdir $TMP_DIR/$1
-tar xfz $CACHE_DIR/$FILE -C $TMP_DIR/$1
-
-$PAKHOME/lib/resolv_deps.sh $TMP_DIR/$1/$DEPS
-
-cd $TMP_DIR/$1
-$TMP_DIR/$1/$INSTALL
-
-cp -f ROOTFILES $IP_DIR/$1
-
-}
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/resolv_deps.sh b/src/pakfire/lib/resolv_deps.sh
deleted file mode 100644 (file)
index be0417f..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-. /etc/pakfire.conf
-
-for i in `cat $1`; do
-       if [ ! -f $IP_DIR/$i ]; then
-               pakfire_logger "Dependency $i is not installed yet. Trying..."
-               $PAKHOME/pakfire install $i
-       else
-               pakfire_logger "Dependency $i is already installed."
-       fi
-done
diff --git a/src/pakfire/lib/test.sh b/src/pakfire/lib/test.sh
deleted file mode 100644 (file)
index c7f6763..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-echo $?
-echo $$
-echo $0
-echo $1
-echo $#
-echo $%
diff --git a/src/pakfire/lib/test_host.sh b/src/pakfire/lib/test_host.sh
deleted file mode 100644 (file)
index 237dfa7..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-# Zählen wie viele Hosts übergeben wurden
-i=0
-for host in $PURL
-do
- ((i++))
-done
-
-# Random Zahl auslesen
-rand=$RANDOM
-
-# Random Zahl herunterbrechen
-while [ $rand -gt $i ]
-do ((rand=rand/2))
-done
-
-# Versuche Randomserver zu erreichen
-i=0
-for host in $1
-do
- ((i++))
- if [ $i -eq $rand ]
-  then
-   if ping $($PAKHOME/lib/url_zerl.sh $host get_host) -c 1 -s 0 >/dev/null 2>&1
-    then echo $host
-     return 0
-   fi
- fi
- if [ $i -gt $rand ]
-  then
-   break
- fi
-done
-
-for host in $1
-do
- if ping $($PAKHOME/lib/url_zerl.sh $host get_host) -c 1 -s 0 >/dev/null 2>&1
-  then
-   echo $host
-   return 0
- fi
-done
-
-return 1
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/unpak_pak.sh b/src/pakfire/lib/unpak_pak.sh
deleted file mode 100644 (file)
index 8140c9e..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-# Source Verzeichnis
-DOWN_DEST=$(get_conf.sh DOWN_DEST)
-
-# Logfile festlegen
-LOG_file=$(get_conf.sh LOG)
-
-# Programmpaket
-PAK_PROG=$(get_conf.sh PAK_PROG)
-
-# Abhängigkeitsliste
-PAK_ABH=$(get_conf.sh PAK_ABH)
-
-# Installations Script
-PAK_INST=$(get_conf.sh PAK_INST)
-
-# Uninstallations Script
-PAK_UNINST=$(get_conf.sh PAK_UNINST)
-
-# Cache Verzeichnis
-CACHE_DIR=$(get_conf.sh CACHE_DIR)
-
-# Überprüfen ob Hauptpaket angegeben wurde
-if [ -z $1  ]
- then 
-  echo "$(/bin/date) | $0 | kein Paketnamen angegeben">>$LOG_file
-  exit 1
-fi
-
-# Überprüfe ob Paket vorhanden
-if [ ! -e ${DOWN_DEST}${1}.tar.gz  ]
- then
-  echo "$(/bin/date) | $0 | Paket nicht vorhanden">>$LOG_file
-  exit 1
-fi
-
-# Überprüfe ob das Paket richtig geschnürt wurde
-tester=$(/bin/tar -tzf ${DOWN_DEST}${1}.tar.gz)
-if [ ! 0 -lt $(echo $tester | grep $PAK_PROG | wc -l) ]
- then
-  echo "$(/bin/date) | $0 | Programm im Paket nichtvorhanden">>$LOG_file
-  exit 1
-fi
-if [ ! 0 -lt $(echo $tester | grep $PAK_ABH | wc -l) ]
- then
-  echo "$(/bin/date) | $0 | Abhängigkeit im Paket nichtvorhanden">>$LOG_file
-  exit 1
-fi
-if [ ! 0 -lt $(echo $tester | grep $PAK_INST | wc -l) ]
- then
-  echo "$(/bin/date) | $0 | Installations-Script im Paket nichtvorhanden">>$LOG_file
-  exit 1
-fi
-if [ ! 0 -lt $(echo $tester | grep $PAK_UNINST | wc -l) ]
- then
-  echo "$(/bin/date) | $0 | Uninstallatoins-Script im Paket nichtvorhanden">>$LOG_file
-  exit 1
-fi
-
-# Cache leeren
-rm -f ${CACHE_DIR}$PAK_PROG
-rm -f ${CACHE_DIR}$PAK_ABH
-rm -f ${CACHE_DIR}$PAK_INST
-rm -f ${CACHE_DIR}$PAK_UNINST
-
-# Entpaken des Hauptpaketes
-/bin/tar -xzf ${DOWN_DEST}${1}.tar.gz -C $CACHE_DIR
-
-# Files neu benennen
-/bin/mv ${CACHE_DIR}$PAK_PROG ${CACHE_DIR}${1}_$PAK_PROG
-/bin/mv ${CACHE_DIR}$PAK_ABH ${CACHE_DIR}${1}_$PAK_ABH
-/bin/mv ${CACHE_DIR}$PAK_INST ${CACHE_DIR}${1}_$PAK_INST
-/bin/mv ${CACHE_DIR}$PAK_UNINST ${CACHE_DIR}${1}_$PAK_UNINST
-
-################################### EOF ####################################################
diff --git a/src/pakfire/lib/url_zerl.sh b/src/pakfire/lib/url_zerl.sh
deleted file mode 100644 (file)
index 91db43d..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
-
-protokoll=${1%%:*}
-
-rest=${1#*'//'}
-
-if grep @ <<EOF >/dev/null
-$rest
-EOF
-then
-# User heraus suchen
-user=${rest%%:*}
-rest=${rest#*:}
-pass=${rest%%@*}
-rest=${rest#*@}
-fi
-
-host=${rest%%/*}
-rest=${rest#*/}
-
-if grep / <<EOF >/dev/null
-$rest
-EOF
-then
-dir=${rest%/*}
-rest=${rest##*/}
-fi
-
-file=$rest
-
-case "$2" in
-       get_proto)
-               echo $protokoll
-               ;;
-       get_user)
-               echo $user
-               ;;
-       get_pass)
-               echo $pass
-               ;;
-       get_host)
-               echo $host
-               ;;
-       get_dir)
-               echo $dir
-               ;;
-       get_file)
-               echo $file
-               ;;
-       *) exit 1
-esac
-
-################################### EOF ####################################################
index f0ef46e..8a00c7c 100644 (file)
@@ -1,67 +1,82 @@
-#!/bin/bash
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  by IPFire.org                                                #
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.      #
-############################################################################################
+#!/usr/bin/perl -w
 
-. /etc/pakfire.conf
+       require "/opt/pakfire/lib/functions.pl";
+       
+       my $interactive = 1;
+       
+       &Pakfire::message("### Welcome to IPFire Pakfire $Conf::version!");
 
-case "$1" in
-       update)
-                       . $PAKHOME/lib/get_mirror.sh
-                       . $PAKHOME/lib/get_list.sh
-                       . $PAKHOME/lib/check_pak.sh
-                       get_mirror
-                       get_list
-                       check_pak
-       ;;
+       ### Check if we are running as root
+       #
+       my $user = qx(whoami);
+       chomp($user);
+       unless ( "$user" eq "root" ) {
+         &Pakfire::message("You must run pakfire as user root!");
+         exit 1;
+       }
+       
+       unless (@ARGV) {
+         &Pakfire::message("Usage: pakfire <install|remove> <pak(s)>");
+         &Pakfire::message("               <update>");
+         &Pakfire::message("               <upgrade>");
+         exit 1;
+       }
 
-       upgrade)
-                       . $PAKHOME/lib/get_upgrade.sh
-                       . $PAKHOME/lib/get_base.sh
-                       get_upgrade
-                       get_base
-       ;;
+       if ("$ARGV[0]" eq "install") {
+               shift;
+               my @deps = ();
+               my @paks = @ARGV;
+               foreach (@ARGV) {
+                       @deps = &Pakfire::resolvedeps("$_");
+               }
+               
+               my @all = ();
+               foreach (@paks) {
+                 push(@all,$_);
+               }
+               foreach (@deps) {
+                 push(@all,$_);
+               }
 
-       install)
-               . $PAKHOME/lib/get_pak.sh
-               . $PAKHOME/lib/install_pak.sh
-               case "$2" in
-                       "")
-                               pakfire_logger "No package name given. Exiting..."
-                       ;;
-                       BASE-*)
-                               echo $2
-                       ;;
-                       *)
-                               if [ -e $DB_DIR/$2 ]; then
-                                       if [ -e $IP_DIR/$2 ]; then
-                                               pakfire_logger "$2 is already installed on this system."
-                                       else
-                                               get_pak $2
-                                               install_pak $2
-                                               rm -rf $TMP_DIR/*
-                                       fi
-                               else
-                                       pakfire_logger "There is no paket with this name: $2"
-                               fi
-                       ;;
-               esac
-       ;;
+               &Pakfire::message("\n\n### Packages to install:");
+               foreach (@paks) {
+                 my $size = &Pakfire::getsize("$_");
+                       $size = &Pakfire::beautifysize($size);
+                 &Pakfire::message("# $_  \t\t - $size");
+               }
+               
+               &Pakfire::message("\n### Packages to install for dependencies:");
+               foreach (@deps) {
+                 my $size = &Pakfire::getsize("$_");
+                       $size = &Pakfire::beautifysize($size);
+                 &Pakfire::message("# $_  \t\t - $size");
+               }
 
-       clean)
-               rm -rf $CACHE_DIR/* $TMP_DIR/* $DB_DIR/*
-       ;;
-       *)
-               echo -e "IPFire - Pakfire $PAKVER:"
-               echo -e "===\t===\t===\t===\t===\t===\t===\t==="
-               echo -e "pakfire install [packet]\t- Installs a new packet."
-               echo -e "pakfire remove [paket]\t\t- Uninstalls a paket."
-               echo -e "pakfire update\t\t\t- Reloads the package list."
-               echo -e "pakfire upgrade\t\t\t- Searches for new updates."
-               echo -e "===\t===\t===\t===\t===\t===\t===\t==="
-       ;;
+               my $totalsize = &Pakfire::addsizes(@all);
+               $totalsize = &Pakfire::beautifysize($totalsize);
+               &Pakfire::message("\n### Download size: \t ~ $totalsize");
+               
+               if ($interactive) {
+                 &Pakfire::message("Is this okay? [y/N]");
+                       my $ret = <STDIN>;
+                       chomp($ret);
+                       &Pakfire::logger("Answer: $ret");
+                       if ( $ret ne "y" ) {
+                         &Pakfire::message("Installation aborted.");
+                         exit 1;
+                       }
+               }
+               
+               &Pakfire::message("### Installing all packages:");
 
-esac
+               foreach (@all) {
+                       &Pakfire::setuppak("$_");
+               }
 
-################################### EOF ####################################################
+               
+       } elsif ("$ARGV[0]" eq "remove") {
+       
+       
+       } elsif ("$ARGV[0]" eq "update") {
+       
+       }
index 2cb9c5d..e3f0286 100644 (file)
@@ -1,61 +1,14 @@
-############################################################################################
-# Version 0.1a, Copyright (C) 2006  Peter Schaelchli Für IPFire besteht KEINERLEI GARANTIE;#
-# IPFire ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen;      #
-############################################################################################
+#!/usr/bin/perl -w
 
-PAKVER=2.0beta
+package Conf;
 
-# Home Verzeichnis von Pakman
-PAKHOME=/opt/pakfire
+$version = "2.0b1";
 
-SERVERS_LIST=servers.list_$PAKVER
-PACKAGE_LIST=packages_list.txt
+$mainserver = "pakfire.ipfire.org";
 
-# Haupt-Mirrorliste
-H_MIRROR=http://download.ipfire.eu/servers/$SERVERS_LIST
+$cachedir = "/opt/pakfire/cache";
+$dbdir = "/opt/pakfire/db";
+$tmpdir = "/opt/pakfire/tmp";
+$logdir = "/opt/pakfire/logs";
 
-# URL Mirrorfile
-PURL=`cat /opt/pakfire/cache/$SERVERS_LIST 2>/dev/null`
-
-# LOG_file
-LOG=/var/log/pakfire.log
-
-# Datenbank
-DB_DIR=/opt/pakfire/database
-
-# Update Verzeichnis
-UP_DIR=/opt/pakfire/updates/
-
-# temp directory
-TMP_DIR=$PAKHOME/tmp
-
-# Verzeichnis mit Installierten Paketen
-IP_DIR=/opt/pakfire/installed/
-
-# Download Zielverzeichnis
-DOWN_DEST=/opt/pakfire/download/
-
-# URL Zerlegungs- Script
-URL_ZERL=/opt/pakfire/url_zerl.sh
-
-# Host Tester
-HOST_TEST=$PAKHOME/lib/test_host.sh
-
-# Paket Filenamen festlegen
-# Das eigentliche Paket
-PAK_FILES=files.tgz
-# Abhängigkeits Liste
-DEPS=depends.txt
-# Installer Script
-INSTALL=install.sh
-# Uninstaller Script
-UNINSTALL=uninstall.sh
-
-# Cacheverzeichnis
-CACHE_DIR=/opt/pakfire/cache/
-
-### DO NOT CHANGE ANYTHING AFTER THIS LINE!!! ###
-
-pakfire_logger() {
-       echo "`date -u '+%b %e %T'` $*" | tee -a $LOG
-}
\ No newline at end of file
+1;