<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/index.php?title=Regeneratepkg&amp;feed=atom&amp;action=history</id>
		<title>Regeneratepkg - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/index.php?title=Regeneratepkg&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Regeneratepkg&amp;action=history"/>
		<updated>2013-05-19T08:45:30Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Regeneratepkg&amp;diff=2452&amp;oldid=prev</id>
		<title>L1q1d il 09:50, 12 set 2006</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Regeneratepkg&amp;diff=2452&amp;oldid=prev"/>
				<updated>2006-09-12T09:50:23Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Script]]&lt;br /&gt;
= Descrizione =&lt;br /&gt;
Regeneratepkg genera un pacchetto compatibile Slackware basandosi sui log di un dato pacchetto installo sul vostro sistema. Questo è molto utile quando installate un programma con pkgtool o checkinstall e perdete il pacchetto. Copyright 2003 Massimo Bruno and Bernardo Damele (IT)&lt;br /&gt;
= Readme =&lt;br /&gt;
Muovi lo script in &lt;br /&gt;
 /sbin &lt;br /&gt;
 chmod +x script&lt;br /&gt;
e prova a rigenerare un pacchetto.&lt;br /&gt;
es.&lt;br /&gt;
 # regeneratepkg xine-ui-0.99.1-athlon&lt;br /&gt;
 The package xine-ui-0.99.1-athlon-1sl.tgz has been created successfully&lt;br /&gt;
= Script =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Copyright 2003 Massimo Bruno and Bernardo Damele (IT)&lt;br /&gt;
# All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
# Redistribution and use of this script, with or without modification, is&lt;br /&gt;
# permitted provided that the following conditions are met:&lt;br /&gt;
#&lt;br /&gt;
# 1. Redistributions of this script must retain the above copyright&lt;br /&gt;
#    notice, this list of conditions and the following disclaimer.&lt;br /&gt;
#&lt;br /&gt;
#  THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR IMPLIED&lt;br /&gt;
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO&lt;br /&gt;
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,&lt;br /&gt;
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;&lt;br /&gt;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,&lt;br /&gt;
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR&lt;br /&gt;
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF&lt;br /&gt;
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
&lt;br /&gt;
if [ ! &amp;quot;$UID&amp;quot; = &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;You need to be root to run this script.&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
              	&lt;br /&gt;
TAR=tar-1.13	&lt;br /&gt;
$TAR --help 1&amp;gt; /dev/null 2&amp;gt; /dev/null&lt;br /&gt;
if [ ! $? = 0 ]; then&lt;br /&gt;
  TAR=tar&lt;br /&gt;
fi&lt;br /&gt;
if [ ! &amp;quot;`LC_MESSAGES=C $TAR --version`&amp;quot; = &amp;quot;tar (GNU tar) 1.13&lt;br /&gt;
&lt;br /&gt;
Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.&lt;br /&gt;
This is free software; see the source for copying conditions.  There is NO&lt;br /&gt;
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
&lt;br /&gt;
Written by John Gilmore and Jay Fenlason.&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;WARNING: pkgtools are unstable with tar &amp;gt; 1.13.&amp;quot;&lt;br /&gt;
  echo &amp;quot;         You should provide a \&amp;quot;tar-1.13\&amp;quot; in your \$PATH.&amp;quot;&lt;br /&gt;
  sleep 5&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
usage() {&lt;br /&gt;
  cat &amp;lt;&amp;lt; EOF&lt;br /&gt;
&lt;br /&gt;
Regeneratepkg generates a compatible Slackware package that includes the files&lt;br /&gt;
that a given package installs onto your system.&lt;br /&gt;
It can be useful if the program has been installed onto your system by pkgtool&lt;br /&gt;
(or checkinstall), but you lose the original package and you need to build it&lt;br /&gt;
again.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
   To generate the 'nmap' package run: regeneratepkg [options] nmap&lt;br /&gt;
   To list the packages that begin with 'a' run: regeneratepkg [options] a&lt;br /&gt;
&lt;br /&gt;
options:      -l, --list     - list all installed packages&lt;br /&gt;
              -d, --date     - print installation date near package name&lt;br /&gt;
              -v  --verbose  - print progress information&lt;br /&gt;
              -h, --help     - print this message&lt;br /&gt;
              -V, --version  - print version&lt;br /&gt;
EOF&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ $# = 0 ]; then&lt;br /&gt;
  usage&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Parse options&lt;br /&gt;
while [ 0 ]; do&lt;br /&gt;
  if [ &amp;quot;$1&amp;quot; = &amp;quot;-l&amp;quot; -o &amp;quot;$1&amp;quot; = &amp;quot;--list&amp;quot; ]; then&lt;br /&gt;
    LIST=y&lt;br /&gt;
    shift 1&lt;br /&gt;
  elif [ &amp;quot;$1&amp;quot; = &amp;quot;-d&amp;quot; -o &amp;quot;$1&amp;quot; = &amp;quot;--date&amp;quot; ]; then&lt;br /&gt;
    if [ &amp;quot;$LIST&amp;quot; = &amp;quot;y&amp;quot; -o ! -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
      DATE=y&lt;br /&gt;
      shift 1&lt;br /&gt;
    else&lt;br /&gt;
      usage&lt;br /&gt;
      exit 1&lt;br /&gt;
    fi&lt;br /&gt;
  elif [ &amp;quot;$1&amp;quot; = &amp;quot;-v&amp;quot; -o &amp;quot;$1&amp;quot; = &amp;quot;--verbose&amp;quot; ]; then&lt;br /&gt;
    if [ &amp;quot;$LIST&amp;quot; = &amp;quot;y&amp;quot; -o ! -z &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
      VERBOSE=y&lt;br /&gt;
      shift 1&lt;br /&gt;
    else&lt;br /&gt;
      usage&lt;br /&gt;
      exit 1&lt;br /&gt;
    fi&lt;br /&gt;
  elif [ &amp;quot;$1&amp;quot; = &amp;quot;-h&amp;quot; -o &amp;quot;$1&amp;quot; = &amp;quot;--help&amp;quot; ]; then&lt;br /&gt;
    usage&lt;br /&gt;
    exit 0&lt;br /&gt;
  elif [ &amp;quot;$1&amp;quot; = &amp;quot;-V&amp;quot; -o &amp;quot;$1&amp;quot; = &amp;quot;--version&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Slackware package regenerator, version 0.1.4.&amp;quot;&lt;br /&gt;
    exit 0&lt;br /&gt;
  elif [ &amp;quot;`echo $1 | cut -c 1`&amp;quot; != &amp;quot;-&amp;quot; ]; then&lt;br /&gt;
    NAME=&amp;quot;$1&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
  else&lt;br /&gt;
    usage&lt;br /&gt;
    exit 1&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Check session&lt;br /&gt;
if [ ! -f &amp;quot;`ls -1 /var/log/packages/$NAME* 2&amp;gt; /dev/null | head -1`&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;Sorry, I can't locate any package name that start with $NAME prefix.&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Check for temp directory and make it&lt;br /&gt;
if [ -d /tmp/regeneratepkg ]; then&lt;br /&gt;
  rm -rf /tmp/regeneratepkg&lt;br /&gt;
fi&lt;br /&gt;
mkdir /tmp/regeneratepkg&lt;br /&gt;
mkdir /tmp/regeneratepkg/pkg&lt;br /&gt;
mkdir /tmp/regeneratepkg/pkg/install&lt;br /&gt;
echo &amp;quot;install&amp;quot; &amp;gt; /tmp/regeneratepkg/dontadd&lt;br /&gt;
echo &amp;quot;install/doinst.sh&amp;quot; &amp;gt;&amp;gt; /tmp/regeneratepkg/dontadd&lt;br /&gt;
echo &amp;quot;install/slack-desc&amp;quot; &amp;gt;&amp;gt; /tmp/regeneratepkg/dontadd&lt;br /&gt;
&lt;br /&gt;
# Main session&lt;br /&gt;
if [ &amp;quot;$LIST&amp;quot; = &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;List of all installed packages:&amp;quot;&lt;br /&gt;
  echo&lt;br /&gt;
  if [ &amp;quot;$DATE&amp;quot; = &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
    ls -l --full-time /var/log/packages/* | cut -c 44- | sed s/'\/var\/log\/packages\/'// | awk '{print &amp;quot;[&amp;quot;$2&amp;quot; &amp;quot;$3&amp;quot; &amp;quot;$5&amp;quot;] &amp;quot;$6}' | sed s/^\ *// | nl | more -d&lt;br /&gt;
  else&lt;br /&gt;
    ls -1 /var/log/packages/ | nl | more -d&lt;br /&gt;
  fi&lt;br /&gt;
  echo&lt;br /&gt;
  echo &amp;quot;Please insert the number corresponding to the package&amp;quot;&lt;br /&gt;
  echo -n &amp;quot;you want to regenerate (ENTER to quit): &amp;quot;&lt;br /&gt;
  read NUMBER&lt;br /&gt;
  if [ -z &amp;quot;$NUMBER&amp;quot; ]; then&lt;br /&gt;
    echo&lt;br /&gt;
    echo &amp;quot;Script halted by user.&amp;quot;&lt;br /&gt;
    exit 0&lt;br /&gt;
  fi&lt;br /&gt;
  MAXNUM=`ls -1 /var/log/packages/* | wc -l | sed s/^\ *//`&lt;br /&gt;
  I=&amp;quot;1&amp;quot;&lt;br /&gt;
  for A in `seq 1 $MAXNUM`; do&lt;br /&gt;
    if [ $NUMBER != $A ]; then&lt;br /&gt;
      I=`expr $I + 1`&lt;br /&gt;
    fi&lt;br /&gt;
  done&lt;br /&gt;
  if [ $I -ne $MAXNUM ]; then&lt;br /&gt;
    echo&lt;br /&gt;
    echo &amp;quot;The value must be a number between 1 and $MAXNUM.&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
  fi&lt;br /&gt;
  NAMETGZ=`ls -1 /var/log/packages/* | cut -c 19- | nl | grep &amp;quot;^ *$NUMBER\b&amp;quot; | awk '{print $2}'`&lt;br /&gt;
  NAME=`ls -1 /var/log/packages/* | cut -c 19- | nl | grep &amp;quot;^ *$NUMBER\b&amp;quot; | sed s/-[0-9]-*/\ /g | awk '{print $2}'`&lt;br /&gt;
elif [ `ls -1 /var/log/packages/$NAME* | wc -l` -gt 1 ]; then&lt;br /&gt;
  echo &amp;quot;There are more than one package name that start with $NAME prefix.&amp;quot;&lt;br /&gt;
  echo &amp;quot;Make your choice from the list below:&amp;quot;&lt;br /&gt;
  echo&lt;br /&gt;
  if [ &amp;quot;$DATE&amp;quot; = &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
    ls -l --full-time /var/log/packages/$NAME* | cut -c 44- | sed s/'\/var\/log\/packages\/'// | awk '{print &amp;quot;[&amp;quot;$2&amp;quot; &amp;quot;$3&amp;quot; &amp;quot;$5&amp;quot;] &amp;quot;$6}' | sed s/^\ *// | nl&lt;br /&gt;
  else&lt;br /&gt;
    ls -1 /var/log/packages/$NAME* | cut -c 19- | nl&lt;br /&gt;
  fi&lt;br /&gt;
  echo&lt;br /&gt;
  echo &amp;quot;Please insert the number corresponding to the package&amp;quot;&lt;br /&gt;
  echo -n &amp;quot;you want to regenerate (ENTER to quit): &amp;quot;&lt;br /&gt;
  read NUMBER&lt;br /&gt;
  if [ -z &amp;quot;$NUMBER&amp;quot; ]; then&lt;br /&gt;
    echo&lt;br /&gt;
    echo &amp;quot;Script halted by user.&amp;quot;&lt;br /&gt;
    exit 0&lt;br /&gt;
  fi&lt;br /&gt;
  MAXNUM=`ls -1 /var/log/packages/$NAME* | wc -l | sed s/^\ *//`&lt;br /&gt;
  I=&amp;quot;1&amp;quot;&lt;br /&gt;
  for A in `seq 1 $MAXNUM`; do&lt;br /&gt;
    if [ $NUMBER != $A ]; then&lt;br /&gt;
      I=`expr $I + 1`&lt;br /&gt;
    fi&lt;br /&gt;
  done&lt;br /&gt;
  if [ $I -ne $MAXNUM ]; then&lt;br /&gt;
    echo&lt;br /&gt;
    echo &amp;quot;The value must be a number between 1 and $MAXNUM.&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
  fi&lt;br /&gt;
  NAMETGZ=`ls -1 /var/log/packages/$NAME* | cut -c 19- | nl | grep &amp;quot;^ *$NUMBER\b&amp;quot; | awk '{print $2}'`&lt;br /&gt;
  NAME=`ls -1 /var/log/packages/$NAME* | cut -c 19- | nl | grep &amp;quot;^ *$NUMBER\b&amp;quot; | sed s/-[0-9]-*/\ /g | awk '{print $2}'`&lt;br /&gt;
else&lt;br /&gt;
  NAMETGZ=`ls -1 /var/log/packages/$NAME* | cut -c 19- | nl | awk '{print $2}'`&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Creating /tmp/regeneratepkg/$NAMETGZ&lt;br /&gt;
LINES=`cat /var/log/packages/$NAMETGZ | wc -l | sed s/^\ *//`&lt;br /&gt;
tail -n `expr $LINES - 17` /var/log/packages/$NAMETGZ &amp;gt; /tmp/regeneratepkg/$NAMETGZ&lt;br /&gt;
&lt;br /&gt;
# Making /tmp/regeneratepkg/pkg/install/slack-desc&lt;br /&gt;
CHAR=`echo &amp;quot;$NAME&amp;quot; | wc -c | sed s/^\ *//`&lt;br /&gt;
COUNTER=&amp;quot;1&amp;quot;&lt;br /&gt;
cat &amp;lt;&amp;lt; COMMENT &amp;gt; /tmp/regeneratepkg/pkg/install/slack-desc&lt;br /&gt;
# HOW TO EDIT THIS FILE:&lt;br /&gt;
# The &amp;quot;handy ruler&amp;quot; below makes it easier to edit a package description.  Line&lt;br /&gt;
# up the first '|' above the ':' following the base package name, and the '|' on&lt;br /&gt;
# the right side marks the last column you can put a character in.  You must make&lt;br /&gt;
# exactly 11 lines for the formatting to be correct.  It's also customary to&lt;br /&gt;
# leave one space after the ':'.&lt;br /&gt;
&lt;br /&gt;
COMMENT&lt;br /&gt;
while [ $COUNTER -lt $CHAR ]; do&lt;br /&gt;
  echo -n &amp;quot; &amp;quot; &amp;gt;&amp;gt; /tmp/regeneratepkg/pkg/install/slack-desc&lt;br /&gt;
  COUNTER=`expr $COUNTER + 1`&lt;br /&gt;
done&lt;br /&gt;
echo &amp;quot;|-----handy-ruler------------------------------------------------------|&amp;quot; &amp;gt;&amp;gt; /tmp/regeneratepkg/pkg/install/slack-desc&lt;br /&gt;
grep &amp;quot;^$NAME:&amp;quot; /var/log/packages/$NAMETGZ | head -11 &amp;gt;&amp;gt; /tmp/regeneratepkg/pkg/install/slack-desc&lt;br /&gt;
&lt;br /&gt;
# Making /tmp/regeneratepkg/pkg/install/doinst.sh&lt;br /&gt;
if [ -f /var/log/scripts/$NAMETGZ ]; then&lt;br /&gt;
  cp /var/log/scripts/$NAMETGZ /tmp/regeneratepkg/pkg/install/doinst.sh&lt;br /&gt;
  chmod -x /tmp/regeneratepkg/pkg/install/doinst.sh&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Creating the package&lt;br /&gt;
DIRNOW=`pwd`&lt;br /&gt;
cd /&lt;br /&gt;
if [ &amp;quot;$VERBOSE&amp;quot; = &amp;quot;y&amp;quot; ]; then&lt;br /&gt;
  echo&lt;br /&gt;
  tar -cvf /tmp/regeneratepkg/pkg/tmp.tar -pP --no-recursion --ignore-failed-read -T /tmp/regeneratepkg/$NAMETGZ -X /tmp/regeneratepkg/dontadd 2&amp;gt; /tmp/regeneratepkg/stderr&lt;br /&gt;
  echo &amp;quot;install/&amp;quot;&lt;br /&gt;
  echo &amp;quot;install/slack-desc&amp;quot;&lt;br /&gt;
  if [ -f /tmp/regeneratepkg/pkg/install/doinst.sh ]; then&lt;br /&gt;
    echo &amp;quot;install/doinst.sh&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  cut -c 5- /tmp/regeneratepkg/stderr | sed s/://g | awk '{print &amp;quot;I can`t locate: &amp;quot;$1 }'&lt;br /&gt;
else&lt;br /&gt;
  tar -cf /tmp/regeneratepkg/pkg/tmp.tar -pP --no-recursion --ignore-failed-read -T /tmp/regeneratepkg/$NAMETGZ -X /tmp/regeneratepkg/dontadd 2&amp;gt; /dev/null&lt;br /&gt;
fi&lt;br /&gt;
cd /tmp/regeneratepkg/pkg&lt;br /&gt;
tar xf tmp.tar&lt;br /&gt;
rm tmp.tar&lt;br /&gt;
makepkg -l y -c n $DIRNOW/$NAMETGZ.tgz 1&amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
# Removing temporary directory&lt;br /&gt;
rm -rf /tmp/regeneratepkg&lt;br /&gt;
&lt;br /&gt;
# Stopping the script successfully&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;The package $NAMETGZ.tgz has been created successfully!&amp;quot;&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Data:    	03 Jun 2006&lt;br /&gt;
* Autore:    	Massimo Bruno &amp;amp; Bernardo Damele&lt;br /&gt;
* Versione:    	0.1&lt;/div&gt;</summary>
		<author><name>L1q1d</name></author>	</entry>

	</feed>