Initial revision

This commit is contained in:
joey
1999-09-05 05:50:40 +00:00
commit ad046046f0
44 changed files with 4582 additions and 0 deletions

1024
CHANGES Normal file

File diff suppressed because it is too large Load Diff

339
COPYING Normal file
View File

@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

15
INSTALL Normal file
View File

@@ -0,0 +1,15 @@
To install alien, become root and type "make install".
To use alien, you will need several other programs. Alien is a perl program,
and requires perl version 5 or greater. You must also have the Getopt::Long
perl module installed on your system, I believe this is a standard part of
perl.
To convert packages to rpms, you need the rpm package manager; get it from
Red Hat's ftp site.
If you want to convert packages to debian packages, you will need the dpkg,
dpkg-dev, and debmake packages, which are available on the Debian ftp site.
You'll also need gcc, and make.
Please report any bugs to the author: Joey Hess <joey@kite.ml.org>

13
Makefile Normal file
View File

@@ -0,0 +1,13 @@
# This makefile is really small. Most of the
# intelligence is in debian/debstd
all:
clean:
-rm build
install:
install -d $(DESTDIR)/usr/bin
install alien $(DESTDIR)/usr/bin
install -d $(DESTDIR)/usr/lib/alien $(DESTDIR)/var/lib/alien
cp -a lib/* $(DESTDIR)/usr/lib/alien

43
README Normal file
View File

@@ -0,0 +1,43 @@
Alien is a program that converts rpm, dpkg, or slackware tgz packages into
rpm or dpkg packages. If you're using Debian or Red Hat and you want to
install a package from one of the other distributions, you can use alien to
convert it to your preferred package format and install it.
Despite the high version number, alien is still (and will probably always
be) rather experimental software. It has been used and tested by Debian
users for many months, but there are still many limitations. For one thing,
Alien only handles binary packages, not source packages. It also doesn't try
to convert the scripts that should be run when the package installs.
Alien should not be used to replace important system packages, like sysvinit,
shared libraries, or other things that are essential for the functioning of
your system. Many of these packages are set up differently by Debian and
Red Hat, and packages from the different distributions cannot be used
interchangably. In general, if you can't uninstall the package without
breaking your system, don't try to replace it with an alien version.
Alien has successfully been used for converting add on software, such as
Applixware, Metro X, and many other packages.
Getting alien:
Alien will be available on Sunsite, but it hasn't moved out of Incoming yet.
For now, you can get it at the alien home page:
http://kite.ml.org/programs/alien/
You can also get rpm or deb packages of alien:
deb: ftp://master.debian.org/debian/unstable/binary-all/admin/alien_5.0.deb
rpm: ftp://ftp.redhat.com/pub/contrib/RPMS/alien-5.0-1.i386.rpm
Other things you'll need:
To use alien, you will need several other programs. Alien is a perl program,
and requires perl version 5 or greater. You must also have the Getopt::Long
perl module installed on your system. I believe this is a standard part of
perl.
To convert packages to or from rpms, you need the Red Hat Package Manager;
get it from Red Hat's ftp site.
If you want to convert packages into debian packages, you will need the dpkg,
dpkg-dev, and debmake packages, which are available on the Debian ftp site.

220
alien Executable file
View File

@@ -0,0 +1,220 @@
#!/bin/sh
# Script to handle alien packages under Debian
#
# Options:
# -p<Patch> Manually specify a patch
# -n Install an alien package using heuristics
# -g Prepare directories for development
#
# Christoph Lameter, <clameter@debian.org> October 30, 1996
set -e
LIB=/usr/lib/alien
while expr "$1" : '-.*' >/dev/null; do
case $1 in
-n) NOPATCH=1
;;
-g) GENERATE=1
;;
-p*) PATCHFILE=`expr "$1" : '-p\(.*\)'`
if [ ! -f "$PATCHFILE" ]; then
echo "$PATCHFILE not found"
exit 1
fi
;;
*) echo "Bad option $1"
exit 1
;;
esac
shift
done
if [ "$NOPATCH" -a "$PATCHFILE" ]; then
echo "Cannot handle -n and -p options simultaneously"
exit 1
fi
FILE=$1
if [ "$FILE" = "" ]; then
echo "Usage: alien [-n] [-g] [-p<patchfile>] <filename>"
exit 1
fi
if [ ! -f $FILE ]; then
echo "File $FILE not found"
exit 1
fi
DATE="`822-date`"
# Cut off the directory name
if echo $FILE|grep -q "/"; then
X=`expr $FILE : '.*/\(.*\)'`
else
X="$FILE"
fi
if expr $X : '.*\.rpm' >/dev/null; then
RPM=1
if [ ! -f /etc/rpmrc ]; then
echo "RPM Package Manager not installed"
exit 1
fi
X=`expr $X : '\(.*\)\.rpm'`
else
case $X in
*.tgz) X=`expr $X : '\(.*\).tgz'` ;;
*.tar.gz) X=`expr $X : '\(.*\).tar.gz'` ;;
*) echo "Format of filename bad $FILE" ;;
esac
fi
if [ "$NOPATCH" = "" ]; then
if [ "$PATCHFILE" = "" ]; then
PATCHFILE=/var/lib/alien/$X.diff.gz
fi
if [ ! -f $PATCHFILE -a "$GENERATE" = "" ]; then
echo "Patchfile $PATCHFILE not found."
exit 1
fi
if [ ! -f $PATCHFILE ]; then
PATCHFILE=
fi
fi
if [ "$RPM" ]; then
# Analyze the FILE name
PACKAGE=`expr $X : '\(.*\)-.*-.*\..*'`
VERSION=`expr $X : '.*-\(.*\)-.*\..*'`
DELTA=`expr $X : '.*-.*-\(.*\)\..*'`
ARCHIT=`expr $X : '.*-.*-.*\..\(.*\)'`
if [ "$DELTA" = "" -o "$VERSION" = "" -o "$PACKAGE" = "" ]; then
echo "Filename must have the form Package-Version-Release.Architecture.rpm"
exit 1
fi
if [ "$ARCHIT" = "386" ]; then
ARCHIT=i386
fi
CDIR=rpm
else
# Generic handling for slackware and tar.gz packages
if echo $X | grep -q "-"; then
PACKAGE=`expr $X : '\(.*\)-.*'`
VERSION=`expr $X : '.*-\(.*\)'`
else
PACKAGE=$X
VERSION=1
fi
if [ "$VERSION" = "" -o "$PACKAGE" = "" ]; then
echo "Filename must have the form Package-Version.tgz"
exit 1
fi
ARCHIT=i386
DELTA=1
CDIR=tgz
fi
mkdir $PACKAGE-$VERSION
cd $PACKAGE-$VERSION
mkdir debian
echo "-- Unpacking $FILE"
if [ "$RPM" ]; then
(cd ..;rpm2cpio $FILE) | cpio --extract --make-directories --no-absolute-filenames
# install script could be located here.
else
# Must be a tar file
tar zxpf ../$FILE
# Make install script to postinst
if [ -e install/doinst.sh ]; then
mv install/doinst.sh debian/postinst
if ! rmdir install; then
echo "Other files besides doinst.sh present in install directory"
echo "Install script cannot be used as postinst script!"
mv debian/postinst install/doinst.sh
fi
fi
fi
if [ "$GENERATE" ]; then
cd ..
cp -a $PACKAGE-$VERSION $PACKAGE-$VERSION.orig
echo "Directories $PACKAGE-$VERSION.orig + $PACKAGE-$VERSION prepared."
cd $PACKAGE-$VERSION
fi
# Now lets patch it!
if [ "$PATCHFILE" ]; then
echo "-- Patching in $PATCHFILE"
zcat $PATCHFILE | patch -p1
X=`find . -name "*.rej"`
if [ "$X" ]; then
echo "Patch failed: giving up"
exit 1
fi
rm `find . -name "*.orig"`
else
echo "-- Automatic package debianization"
# Generate all the values we need
if [ "$EMAIL" = "" ]; then
EMAIL="$USER@`cat /etc/mailname`"
fi
USERNAME=`awk -F: -vUSER=$USER '$1 == USER { print $5; }' /etc/passwd`
if [ "$USERNAME" = "" -a -x /usr/bin/ypmatch ]; then
# Give NIS a try
USERNAME=`ypmatch $USER passwd.byname|awk -F: '{ print $5; }'`
fi
if echo $USERNAME | grep -q "\,"; then
X=`expr index "$USERNAME" ","`
X=`expr $X - 1`
USERNAME=`expr substr "$USERNAME" 1 $X`
fi
cd debian
X=`(cd $LIB/$CDIR;ls)`
for i in $X; do
sed <$LIB/$CDIR/$i >$i -e "s/#PACKAGE#/$PACKAGE/g" \
-e "s/#VERSION#/$VERSION/g" \
-e "s/#DELTA#/$DELTA/g" \
-e "s/#ARCHIT#/$ARCHIT/g" \
-e "s/#EMAIL#/$EMAIL/g" \
-e "s/#USERNAME#/$USERNAME/g" \
-e "s/#DATE#/$DATE/g"
done
if [ "$RPM" ]; then
(cd ../..;rpm -qpi $FILE) >>copyright
fi
cd ..
# Assume all files in etc are conffiles
if [ -d etc ]; then
find etc -type f -printf "/%p\n" >debian/conffiles
fi
fi
chmod a+x debian/rules
if [ "$GENERATE" = "" ]; then
echo "-- Building the package $PACKAGE-$VERSION-$DELTA.deb"
debian/rules binary
cd ..
rm -rf $PACKAGE-$VERSION
echo "-- Installing generated .deb package"
dpkg -i $PACKAGE*.deb
rm $PACKAGE\_$VERSION-$DELTA*.deb
fi
echo "-- Successfully finished"
exit 0

68
alien.1 Normal file
View File

@@ -0,0 +1,68 @@
.TH alien 1L "Debian Utilities" "DEBIAN" \" -*- nroff -*-
.SH NAME
alien \- Install / Patch an alien binary package
.SH SYNOPSIS
\fBalien\fP [\fB\-n\fP] \fBalien-package-file\fP
.br
\fBalien\fP \fB\-ppatch\fP \fBalien-package-file\fP
.br
\fBalien\fP \fB\-g\fP [\fB\-ppatch\fP] \fBalien-package-file\fP
.SH DESCRIPTION
alien allows foreign packages to be installed under the debian package
manager.
.br
Commonly alien is simply called with a parameter giving the alien packagename
to be installed. A look up will then be done in
.B /var/lib/alien/packagename*.diff.gz .
If such a diff exists then the alien
package is unpacked, the patch is applied, a temporary .deb package
generated and finally installed. If there is no such diff then alien will
fail (unless the -n option is given).
.PP
With the -n option the optimistic assumption is made that the alien package
will work without any changes under the Debian scheme of things. If things
break then you can simply uninstall the package using the debian package
manager.
.PP
With the -g option a package layout suitable for the development of patches
is created from the alien package. A directory packagename.orig and a
directory <packagename> is generated. Changes can be made to the packagename
directory and all commonly used tools for sourcepackages will work on the
packet. For example a .deb file can be generated using
.B debian/rules binary
and can then be installed in a regular way. Even
.B dpkg-buildpackage
will generate the usual files.
.PP
This tool probably needs to be run as superuser. Make sure that there is
enough room in the current directory since
.B alien
will build a debian package in that location.
.SH ALIEN PACKAGE FORMATS
alien supports the Red Hat .rpm format, Slackware .tgz formant and the
generic .tar.gz format. For the rpm format the Red Hat Package Manager must
be installed (See
.B rpm(8)
).
.SH LIMITATIONS
Installation scripts for rpm packages are not supported.
.PP
You must specify a full path for the -p option.
.PP
All files in /etc are assumed to be configuration files.
.SH OPTIONS
.TP
.I -n
Assume the alien package can be installed without any patches.
.TP
.I -g
Generate a source package suitable for patching and moving binaries around
.TP
.I -ppatch
Specify the patch to be used instead of automatically looking the patch up
in
.B /var/lib/alien
.SS AUTHOR
Alien was written by Christoph Lameter <clameter@debian.org>
It is now being maintained by Joey Hess <joeyh@master.debian.org>

13
alien.lsm Normal file
View File

@@ -0,0 +1,13 @@
Begin3
Title: alien
Version: 4.00
Entered-date: 31MAR97
Description: Alien converts Slackware .tgz packages, Red Hat .rpm packages
and Debian .deb packages. It can convert these formats to
either .deb or .rpm. It works only on binary packages.
Keywords: dpkg rpm tgz convert
Author: joey@kite.ml.org
Primary-site: sunsite.unc.edu /pub/Linux/utils/scripts
32 alien-4.00.tar.gz
Copying-policy: GPL
End

13
alien.lsm.in Normal file
View File

@@ -0,0 +1,13 @@
Begin3
Title: alien
Version: @version@
Entered-date: 31MAR97
Description: Alien converts Slackware .tgz packages, Red Hat .rpm packages
and Debian .deb packages. It can convert these formats to
either .deb or .rpm. It works only on binary packages.
Keywords: dpkg rpm tgz convert
Author: joey@kite.ml.org
Primary-site: sunsite.unc.edu /pub/Linux/utils/scripts
32 alien-@version@.tar.gz
Copying-policy: GPL
End

295
alien.sh Executable file
View File

@@ -0,0 +1,295 @@
#!/bin/sh
# Script to handle alien packages under Debian
#
# Options:
# -p<Patch> Manually specify a patch
# -n Build an alien package using heuristics
# -g Prepare directories for development
# -s Like -g, but prepare single directory for debian-only package
# -i Do not install package after building it.
#
# Christoph Lameter, <clameter@debian.org> October 30, 1996
set -e
#set -v
LIB=/usr/lib/alien
while expr "$1" : '-.*' >/dev/null; do
case $1 in
--auto|--nopatch|-n)
NOPATCH=1
;;
--generate|-g)
GENERATE=1
;;
--noinstall|-i)
NOINSTALL=1
;;
--single|-s)
SINGLE=1
NOPATCH=1
NOBUILD=1
NOINSTALL=1
;;
--patch=*)
PATCHFILE=`expr "$1" : '--patch=\(.*\)'`
if [ ! -f "$PATCHFILE" ]; then
echo "$PATCHFILE not found"
exit 1
fi
;;
-p*) PATCHFILE=`expr "$1" : '-p\(.*\)'`
if [ ! -f "$PATCHFILE" ]; then
echo "$PATCHFILE not found"
exit 1
fi
;;
*) echo "Bad option $1"
exit 1
;;
esac
shift
done
if [ "$NOPATCH" -a "$PATCHFILE" ]; then
echo "Cannot handle -n and -p options simultaneously"
exit 1
fi
FILE=$1
if [ "$FILE" = "" ]; then
echo "Usage: alien [-n] [-i] [-g] [-s] [-p<patchfile>] <filename>"
exit 1
fi
if [ ! -f $FILE ]; then
echo "File $FILE not found"
exit 1
fi
DATE="`822-date`"
# Cut off the directory name
if echo $FILE|grep -q "/"; then
X=`expr $FILE : '.*/\(.*\)'`
else
X="$FILE"
fi
if expr $X : '.*\.rpm' >/dev/null; then
RPM=1
if [ ! -f /usr/bin/rpm ]; then
echo "RPM Package Manager not installed"
exit 1
fi
X=`expr $X : '\(.*\)\.rpm'`
else
case $X in
*.tgz) X=`expr $X : '\(.*\).tgz'` ;;
*.tar.gz) X=`expr $X : '\(.*\).tar.gz'` ;;
*) echo "Format of filename bad $FILE" ;;
esac
fi
if [ "$RPM" ]; then
# Use --queryformat to pull out all the values we need.
eval `rpm -qp $FILE --queryformat '
PACKAGE="%{NAME}"
VERSION="%{VERSION}"
DELTA="%{RELEASE}"
ARCHNUM="%{ARCH}"
CHANGELOG="%{CHANGELOGTEXT}"
SUMMARY="%{SUMMARY}"
DESCRIPTION="%{DESCRIPTION}"
COPYRIGHT="%{COPYRIGHT}"
'`
if [ "$SUMMARY" = "" -o "$SUMMARY" = "(none)" ] ; then
SUMMARY="Converted RPM package"
fi
if [ "$COPYRIGHT" = "" -o "$COPYRIGHT" = "(none)" ] ; then
COPYRIGHT="unknown"
fi
if [ "$CHANGELOG" = "(none)" ] ; then
CHANGELOG=""
fi
# Fix up the description field to debian standards (indented at
# least one space, no empty lines in it.)
DESCRIPTION=" $SUMMARY"
# Convert ARCH number into string, if it isn't already a string.
case $ARCHNUM in
1) ARCHIT=i386
;;
2) ARCHIT=alpha
;;
3) ARCHIT=sparc
;;
6) ARCHIT=m68k
;;
i386|alpha|sparc|m68k)
# Seems that some rpms have the actual arch in them.
ARCHIT=$ARCHNUM
;;
esac
if [ "$DELTA" = "" -o "$VERSION" = "" -o "$PACKAGE" = "" ]; then
echo "Error querying rpm file."
exit 1
fi
if [ "$ARCHIT" = "" ]; then
echo "Unable to determine architecture: arch number is $ARCHNUM."
echo "Please report this as a bug to the maintainer of alien."
exit 1
fi
CDIR=rpm
else
# Generic handling for slackware and tar.gz packages
if echo $X | grep -q "-"; then
PACKAGE=`expr $X : '\(.*\)-.*'`
VERSION=`expr $X : '.*-\(.*\)'`
else
PACKAGE=$X
VERSION=1
fi
if [ "$VERSION" = "" -o "$PACKAGE" = "" ]; then
echo "Filename must have the form Package-Version.tgz"
exit 1
fi
ARCHIT=i386
DELTA=1
CDIR=tgz
fi
if [ "$NOPATCH" = "" ]; then
if [ "$PATCHFILE" = "" ]; then
PATCHFILE=/var/lib/alien/$PACKAGE*.diff.gz
fi
if [ ! -f $PATCHFILE -a "$GENERATE" = "" ]; then
echo "Patchfile $PATCHFILE not found."
echo "You may need to rerun this command with -n added to the command line."
exit 1
fi
if [ ! -f $PATCHFILE ]; then
PATCHFILE=
fi
fi
mkdir $PACKAGE-$VERSION
cd $PACKAGE-$VERSION
mkdir debian
echo "-- Unpacking $FILE"
if [ "$RPM" ]; then
(cd ..;rpm2cpio $FILE) | cpio --extract --make-directories --no-absolute-filenames
# install script could be located here.
else
# Must be a tar file
tar zxpf ../$FILE
# Make install script to postinst
if [ -e install/doinst.sh ]; then
mv install/doinst.sh debian/postinst
if ! rmdir install; then
echo "Other files besides doinst.sh present in install directory"
echo "Install script cannot be used as postinst script!"
mv debian/postinst install/doinst.sh
fi
fi
fi
if [ "$GENERATE" ]; then
cd ..
cp -a $PACKAGE-$VERSION $PACKAGE-$VERSION.orig
echo "Directories $PACKAGE-$VERSION.orig + $PACKAGE-$VERSION prepared."
cd $PACKAGE-$VERSION
elif [ "$SINGLE" ]; then
echo "Directory $PACKAGE-$VERSION prepared."
fi
# Now lets patch it!
if [ "$PATCHFILE" ]; then
echo "-- Patching in $PATCHFILE"
# cd .. here in case the patchfile's name was a relative path.
(cd .. && zcat $PATCHFILE) | patch -p1
X=`find . -name "*.rej"`
if [ "$X" ]; then
echo "Patch failed: giving up"
exit 1
fi
rm `find . -name "*.orig"`
else
echo "-- Automatic package debianization"
# Generate all the values we need
if [ "$EMAIL" = "" ]; then
EMAIL="$USER@`cat /etc/mailname`"
fi
USERNAME=`awk -F: -vUSER=$USER '$1 == USER { print $5; }' /etc/passwd`
if [ "$USERNAME" = "" -a -x /usr/bin/ypmatch ]; then
# Give NIS a try
USERNAME=`ypmatch $USER passwd.byname|awk -F: '{ print $5; }'`
fi
if echo $USERNAME | grep -q "\,"; then
X=`expr index "$USERNAME" ","`
X=`expr $X - 1`
USERNAME=`expr substr "$USERNAME" 1 $X`
fi
cd debian
X=`(cd $LIB/$CDIR;ls)`
for i in $X; do
sed <$LIB/$CDIR/$i >$i -e "s/#PACKAGE#/$PACKAGE/g" \
-e "s/#VERSION#/$VERSION/g" \
-e "s/#DELTA#/$DELTA/g" \
-e "s/#ARCHIT#/$ARCHIT/g" \
-e "s/#EMAIL#/$EMAIL/g" \
-e "s/#USERNAME#/$USERNAME/g" \
-e "s/#CHANGELOG#/$CHANGELOG/g" \
-e "s/#SUMMARY#/$SUMMARY/g" \
-e "s/#DESCRIPTION#/$DESCRIPTION/g" \
-e "s/#COPYRIGHT#/$COPYRIGHT/g" \
-e "s/#DATE#/$DATE/g"
done
if [ "$RPM" ]; then
(cd ../..;rpm -qpi $FILE) >>copyright
fi
cd ..
# Assume all files in etc are conffiles
if [ -d etc ]; then
find etc -type f -printf "/%p\n" >debian/conffiles
fi
fi
chmod a+x debian/rules
if [ "$GENERATE" = "" -a "$NOBUILD" = "" ]; then
echo "-- Building the package $PACKAGE-$VERSION-$DELTA.deb"
debian/rules binary
cd ..
rm -rf $PACKAGE-$VERSION
fi
if [ "$NOINSTALL" = "" -a "$GENERATE" = "" ]; then
echo "-- Installing generated .deb package"
dpkg -i $PACKAGE*.deb
rm $PACKAGE\_$VERSION-$DELTA*.deb
fi
echo "-- Successfully finished"
exit 0

26
alien.spec Normal file
View File

@@ -0,0 +1,26 @@
Summary: Install Debian and Slackware Packages with dpkg.
Name: alien
Packager: Joey Hess <joey@kite.ml.org>
Version: 4.00
Release: 1
Source: ftp://kite.ml.org/pub/code/debian/alien_4.00.tar.gz
Copyright: GPL
Group: Utilities/File
Buildroot: /tmp/alien-4.00.build
%description
Alien allows you to convert Debian and Slackware Packages into Red Hat
packages, which can be installed with rpm.
It can also convert Red Hat and Slackware packages into Debian packages.
This is a tool only suitable for binary packages.
%prep
%setup
%install
make DESTDIR=$RPM_BUILD_ROOT install
find $RPM_BUILD_ROOT -type f -printf "/%P\n" > manifest
%files -f manifest

26
alien.spec.in Normal file
View File

@@ -0,0 +1,26 @@
Summary: Install Debian and Slackware Packages with dpkg.
Name: alien
Packager: Joey Hess <joey@kite.ml.org>
Version: @version@
Release: 1
Source: ftp://kite.ml.org/pub/code/debian/alien_@version@.tar.gz
Copyright: GPL
Group: Utilities/File
Buildroot: /tmp/alien-@version@.build
%description
Alien allows you to convert Debian and Slackware Packages into Red Hat
packages, which can be installed with rpm.
It can also convert Red Hat and Slackware packages into Debian packages.
This is a tool only suitable for binary packages.
%prep
%setup
%install
make DESTDIR=$RPM_BUILD_ROOT install
find $RPM_BUILD_ROOT -type f -printf "/%P\n" > manifest
%files -f manifest

6
debian/README.debian vendored Normal file
View File

@@ -0,0 +1,6 @@
alien for DEBIAN
----------------
Please read the manpage for the alien command.
Christoph Lameter <clameter@waterf.org>

884
debian/changelog vendored Normal file
View File

@@ -0,0 +1,884 @@
alien (2.79) unstable; urgency=low
* New maintainer.
* Updated man page with new author info.
* Changes to debian/rules to make current maintainer more comfortable.
* Improvements to follow when I find the time..
-- Joey Hess <joeyh@master.debian.org> Mon, 27 Jan 1997 20:54:47 -0500
alien (2.78) unstable; urgency=low
* Corrected Priority
* Cleanup debmake remnants
-- Christoph Lameter <clameter@debian.org> Sat, 25 Jan 1997 10:51:48 -0800
alien (2.77) unstable; urgency=low
* alien source package completely split off from debmake. Looking for a
new maintainer to provide some fresh ideas.
-- Christoph Lameter <clameter@debian.org> Sat, 25 Jan 1997 10:23:21 -0800
debmake (2.76) unstable; urgency=low
* debstd: Multi-binary support: Generate necessary subdirectories on the
fly from files names subpackage.filename (if such files exist) to comply
with Policy. This results in an alternate way of storing files for
sub-package generation. Remember to erase those directories in the
rules file if using this scheme!
-- Christoph Lameter <clameter@debian.org> Sat, 25 Jan 1997 09:04:21 -0800
debmake (2.75) unstable; urgency=low
* debchange: Fix bug introduced in 2.74
* debstd: support for configure script
* adpkg: support for package configuration before installation
-- Christoph Lameter <clameter@debian.org> Fri, 24 Jan 1997 13:17:49 -0800
debmake (2.74) unstable; urgency=low
* debstd: Output warning if scripts do not use /bin/sh as its interpreter
#6062
* bug: default to ae editor if joe is not present #5675, #6811
* debchange: default to ae editor if joe is not present #6794
-- Christoph Lameter <clameter@debian.org> Thu, 23 Jan 1997 21:47:39 -0800
debmake (2.73) unstable; urgency=low
* made dependant on perl
* Description in control file updated
* debchange: automatically rename native debian package directories on generating
the next version. Fixes some problems with warnings at package
generation time.
* alien: some minor fixes update of manpage.
* Document nodeps option of debstd
* Fixes to the way uupdate recognizes new version numbers (again!)
-- Christoph Lameter <clameter@debian.org> Mon, 20 Jan 1997 19:51:11 -0800
debmake (2.72) unstable; urgency=low
* Fix Bug #6690: release not able to handle multiple bug numbers.
* Fix Bug #6669
* debstd: check for debian/changelog and abort if not found
-- Christoph Lameter <clameter@debian.org> Sat, 18 Jan 1997 09:24:43 -0800
debmake (2.71) unstable; urgency=low
* adpkg: support for virtual package recognition
* lots of fixes to adpkg. Add functionality to figure out which installed
packages need to be updated. Rudimentary replacement for dselect.
* Fix to init.d template
-- Christoph Lameter <clameter@debian.org> Fri, 17 Jan 1997 20:24:11 -0800
debmake (2.70) unstable; urgency=low
* new tool: adpkg a front end to dpkg which will install all depending
packages, locate packages on its own and install packages one by one in order
to insure minimum downtime for daemons on mission critical servers.
* bug: give a correct errormessage if packagename not specified instead of
failing with a shell error.
-- Christoph Lameter <clameter@debian.org> Fri, 17 Jan 1997 15:40:01 -0800
debmake (2.62) unstable; urgency=low
* Sue Campbell contributes a HOWTO.first_time
* new tools: todo and done by Hakan Ardo
* Automatically install a debian/TODO if present
-- Christoph Lameter <clameter@debian.org> Thu, 16 Jan 1997 22:07:10 -0800
debmake (2.61) unstable; urgency=low
* debstd: fix recognition of .so in manpages
-- Christoph Lameter <clameter@debian.org> Thu, 16 Jan 1997 09:18:26 -0800
debmake (2.60) unstable; urgency=low
* new tools: deb2asc, asc2deb and asc2debinst allowing the conversion
and easy modification of already packed up debian packages. Also
allows writing of packages with an editor. asc2debinst does not yet
work as intended.
* release: change Bug number matching to match #[0-9]{4,5}.
-- Christoph Lameter <clameter@debian.org> Tue, 14 Jan 1997 10:02:07 -0800
debmake (2.59) unstable; urgency=low
* release: update manpage.
* release: bug clearing did not work right... sigh....
-- Christoph Lameter <clameter@debian.org> Mon, 13 Jan 1997 22:28:59 -0800
debmake (2.58) unstable; urgency=low
* release: Check for Bug# in changes files and ask maintainer if these
bugs ought to be cleared. (Test Bug#4711)
* debstd: 2.57 broke library scan functionality
* uupdate: allow + characters in upstream packagename
-- Christoph Lameter <clameter@debian.org> Mon, 13 Jan 1997 21:08:03 -0800
debmake (2.57) unstable; urgency=low
* bug: Bug#5619 treat conffiles without \n at the end correctly
* debstd: install maintainer generated shlibs file. Skip Library scan for
that case
* better directory name matching when looking for undocumented binaries.
* link to undocumented.7.gz instead of undoc.7
-- Christoph Lameter <clameter@debian.org> Sat, 11 Jan 1997 21:15:27 -0800
debmake (2.56) unstable; urgency=low
* bug: -z option added to forbid removal of comments and empty lines from
configfiles.
* debstd: look for manpages also in /usr/X11R6/man
-- Christoph Lameter <clameter@debian.org> Thu, 9 Jan 1997 07:35:10 -0800
debmake (2.55) unstable; urgency=low
* deb-make: Support specialities for native packages (such as copyright
file for example)
* debstd: reverse function of the -u option. Default is now no symlinks
for undocumented binaries.
* build: allow passing of options to dpkg-buildpackage
* patch of Roman Hodek for some problems in debstd
-- Christoph Lameter <clameter@debian.org> Tue, 7 Jan 1997 10:49:19 -0800
debmake (2.54) unstable; urgency=low
* debstd: Wrong warnings about a package not having executables fixed
* two packages bug and alien split out from debmake. Dependencies
reworked.
* debstd: recognize games as a valid location for binaries and
put links into section 6 for those binaries.
* deb-make: fix to package name parsing
* bug: Christian Schwarz: Ability to redirect bug report to stdout.
* deb-make: Fix to document recognition by Christian Schwarz
* uupdate: Diagnostics for existing original archives
-- Christoph Lameter <clameter@debian.org> Sun, 5 Jan 1997 21:17:23 -0800
debmake (2.53) unstable; urgency=low
* made a template from Lars example manpage for debian. Thanks!
template will be customized with packagename, emailname, maintainername
* uupdate: Fix version number recognition for tar files.
-- Christoph Lameter <clameter@debian.org> Sun, 5 Jan 1997 18:46:16 -0800
debmake (2.52) unstable; urgency=low
* uupdate: Fixes to the way the upstream version is recognized
* uupdate: Figure out the new upstream version from patchname.
* uupdate: Fixes to allow using a patch rather than a new archive.
* uupdate: clean archive before patching it.
-- Christoph Lameter <clameter@debian.org> Thu, 2 Jan 1997 20:14:41 -0800
debmake (2.51) unstable; urgency=low
* debstd: sometimes the associated manpage to a binary was not found
and an undocumented.7 link installed despite of the presence of a manpage!
* debstd: if first parameter was not the package name that documentation
file was not installed.
* deb-make: Better matching for documentation
-- Christoph Lameter <clameter@debian.org> Wed, 1 Jan 1997 17:40:54 -0800
debmake (2.50) unstable; urgency=low
* deb-make: probe for common forms of documentation in a sourcecode
package and generate a rules file to install those by default.
* debian/rules templates updated to reflect changes.
* debstd: generate /usr/doc/package/changelog for native packages
* debstd: does not need packagename anymore on invocation
* debstd: Generate manpage symlinks for executables without corresponding
manpages.
* debchange: Fix bug #6380.
* changelog fixed to spell Santiago's name correctly etc.
-- Christoph Lameter <clameter@debian.org> Wed, 1 Jan 1997 13:12:11 -0800
debmake (2.41) unstable; urgency=low
* Check for /etc/suid.conf instead for /usr/bin/suidregister for suid
binaries to avoid pre-dependency problems for suidmanager.
* strip -g only for libraries instead of a full strip (Santiago Vila)
* Changes to the rules template according to suggestion by Santiago Vila.
-- Christoph Lameter <clameter@debian.org> Sun, 29 Dec 1996 12:43:11 -0800
debmake (2.40) unstable; urgency=low
* uscan watch template provided.
* new tool uscan: Scan upstream ftp sites for new releases and then
dowload upstream releases, perform upstream update (using "uupdate"),
rebuild package(s) (using "build") and upload new package (using
"release") (Actions customizable, full automatic operation discouraged).
Experimental status right now.
-- Christoph Lameter <clameter@debian.org> Wed, 25 Dec 1996 12:06:32 -0800
debmake (2.30) unstable; urgency=low
* debchange: -v option to set the version number provided
* new tool uupdate: automatize upstream updates for sourcecode packages
-- Christoph Lameter <clameter@debian.org> Tue, 24 Dec 1996 22:33:02 -0800
debmake (2.21) unstable; urgency=low
* debstd: shlib generation: .shlibs file does not belong into -dev
package as previously claimed. .shlibs file put into library package
restoring what previous versions of debmake did. The versions 2.17-2.20
produced unusable .shlibs files!
-- Christoph Lameter <clameter@debian.org> Mon, 23 Dec 1996 19:59:16 -0800
debmake (2.20) unstable; urgency=low
* debstd: examples / docs documents were moved with directory.
* Bug in inetd.conf postrm handling
-- Christoph Lameter <clameter@debian.org> Sun, 22 Dec 1996 16:26:32 -0800
debmake (2.19) unstable; urgency=low
* example .forward file for the exim mailer provided
* debstd: diversions set the wrong package name
* build: use gid=0 when building packages to avoid generating wrong
ownerships.
-- Christoph Lameter <clameter@debian.org> Thu, 19 Dec 1996 10:17:33 -0800
debmake (2.18) unstable; urgency=low
* check dependencies of provided sharable libraries in addition to
executables when calling dpkg-shlibdeps for a package.
* info.ex: wrong spelling
* debstd: manpage updated.
* debstd: generate a changelog entry if debian/RELEASED is present.
* shlibs management cleaned up.
-- Christoph Lameter <clameter@debian.org> Mon, 16 Dec 1996 22:21:56 -0800
debmake (2.17) unstable; urgency=low
* deb-make: add capability to copy sample libraries. Samples for
multi-binary and library revised.
* If first documentation file for debstd has "change" in its name install
that file as changelog.upstream (according to standard).
Please be sure in the future to list the upstream changelog first after
the package name
* Changed Library Templates according to Guy's advice
-- Christoph Lameter <clameter@debian.org> Mon, 16 Dec 1996 21:14:56 -0800
debmake (2.16) unstable; urgency=low
* Library link for library.so was not generated.
* Message regarding tar of debstd cleaned up.
-- Christoph Lameter <clameter@debian.org> Mon, 16 Dec 1996 10:02:40 -0800
debmake (2.15) unstable; urgency=low
* added instruction regarding tar problem
* .shlibs file not correctly generated (Major Number screwed up)
-- Christoph Lameter <clameter@debian.org> Mon, 16 Dec 1996 08:01:43 -0800
debmake (2.14) unstable; urgency=low
* deb-make asks for the type of package (single,multi,library) to generate
and does not clutter the debian directory so much with .ex files.
* Templates updated to use easier method for generating directories
through a "dirs" file in the debian directory listing all necessary
directories.
* Incorrect menu template
* Update Standards number to current
-- Christoph Lameter <clameter@debian.org> Sat, 14 Dec 1996 18:08:03 -0800
debmake (2.13) unstable; urgency=low
* debstd: bug in processing of menus
* deb-make gave an errormessage about not finding a file. Did not
affect functionality.
-- Christoph Lameter <clameter@debian.org> Sat, 14 Dec 1996 10:04:50 -0800
debmake (2.12) unstable; urgency=low
* Prototype for library rules simplified
* debstd: strip static libraries
* debstd: automatically generate symlinks for sharable elf libraries
-- Christoph Lameter <clameter@debian.org> Sat, 14 Dec 1996 04:25:14 -0800
debmake (2.11) unstable; urgency=low
* Automatically strip libraries found.
* Prototypes provided for ELF Library development
-- Christoph Lameter <clameter@debian.org> Fri, 13 Dec 1996 21:08:32 -0800
debmake (2.10) unstable; urgency=low
* menu package support: deb-make installs an template for the menu
package.
* debstd: Clean up package by removing empty directories if a file "clean" exists.
* Joey: Support for Joost's menu package.
-- Christoph Lameter <clameter@debian.org> Fri, 13 Dec 1996 18:24:35 -0800
debmake (2.09) unstable; urgency=low
* debstd: bug in info file processing
* debstd multi-binary support: package tmp directory was not created.
The control file "files" used to fail.
* debstd manpage revised .
-- Christoph Lameter <clameter@debian.org> Fri, 13 Dec 1996 10:42:40 -0800
debmake (2.08) unstable; urgency=low
* template inetd.conf.ex updated with example how to place an entry in a
section
* release: post the processed control file from debian/tmp/DEBIAN instead
of the one from the debian directory when announcing packages.
* debstd: warn if empty /usr/info
-- Christoph Lameter <clameter@debian.org> Thu, 12 Dec 1996 05:24:39 -0800
debmake (2.07) unstable; urgency=low
* debstd: manpage updated
* inetd.conf processor added (allows specification of sections and multiple entries)
-- Christoph Lameter <clameter@debian.org> Wed, 11 Dec 1996 21:01:19 -0800
debmake (2.06) unstable; urgency=low
* debstd: support for adding sections to /etc/aliases
* bug: manpage + errormessage updated for filing bug reports as root
-- Christoph Lameter <clameter@debian.org> Wed, 11 Dec 1996 08:43:48 -0800
debmake (2.05) unstable; urgency=low
* debstd: Dont install copyright file if already installed by maintainer
* debstd: Do not compress .gif and .html.
New switch -c to switch off all compression for docs since there might
be other html stuff not to be compressed.
* release: Check environment variable DEBIAN_RELEASE_DESTINATION and
uploads to that site. Default to master.
* release: Consults a database of possible upload sites in
/usr/lib/deb-make/upload.sites. Need to have the data for chiark!
-- Christoph Lameter <clameter@debian.org> Sun, 8 Dec 1996 20:18:29 -0800
debmake (2.04) unstable; urgency=low
* bug: set -v was accidentally left in the script
-- Christoph Lameter <clameter@debian.org> Sun, 8 Dec 1996 19:16:01 -0800
debmake (2.03) unstable; urgency=low
* added the possibility to upload to other hosts using scp
(ftp.fuller.edu and lalug.org available right now. Could someone sent me
the data on chiark?)
* depend on package file
* debstd: info files not in main distribution directory were not installed.
-- Christoph Lameter <clameter@debian.org> Wed, 4 Dec 1996 20:56:35 -0800
debmake (2.02) unstable; urgency=low
* bug: some more changes to the way subject lines are handled
* debstd: some bugfixes relating to suid processing pointed out by Johnie Ingram
* bug: Follow symlinks when trying to figure out the type of configfile
* bug: Subject line can be edited when in the editor.
* bug: debug switch (-d) added to send mail to postmaster@localhost
* bug: manpage updated
* fix some issues with multi-binary packages in debstd
* template rules.multi updated
-- Christoph Lameter <clameter@debian.org> Sat, 23 Nov 1996 07:01:17 -0800
debmake (2.01) experimental; urgency=low
* debstd manpage updated regarding suidmanager processing.
-- Christoph Lameter <clameter@debian.org> Fri, 22 Nov 1996 16:22:19 -0800
debmake (2.00) experimental; urgency=low
* Support for suidmanager (Generated scripts will check for presence of
suidmanager and not use it if no suidmanager exists).
A package can simply be rebuild and will use suidmanager if any
setsid or setgid binaries are present. (ppp 2.3 is an example)
Not documented yet.
* debmake uses suidmanager to register build and debpkg with REGULAR
permissions so that they can be changed in /etc/suid.conf
* deb-make: Message on completion of debmake did not display intended text
* bug: allow maintonly (-m) or quiet (-q) bug reports
* bug: wrong matches on dependency parenthesis
* bug: check if called with UID=0 and abort
* control files reworked
* Manual Pages updated
* Multi-Binary capabilities now available from debstd. debmstd ceases to
exist.
-- Christoph Lameter <clameter@debian.org> Tue, 19 Nov 1996 11:28:38 -0800
debmake (1.99) unstable; urgency=low
* procmail examples for filtering debian mailing lists included
* README.debian revised: Made it clearer that debmake does not
install any setuid programs.
* build: include path for X11 binaries
* bug: check if options given AFTER the packagename and give an
errormessage if this is the case
-- Christoph Lameter <clameter@debian.org> Fri, 15 Nov 1996 12:18:45 -0800
debmake (1.98) unstable; urgency=low
* bug: artistics to figure out versions of virtual packages (Thanks to the
support by Joey + Guy). Not sure if this will work for all packages though.
* debmstd: add analysis of executable formats and warn if unknown.
* bug: add options to suppress config files and supply a subject
* bug: dont list configfiles that are binaries
-- Christoph Lameter <clameter@waterf.org> Thu, 14 Nov 1996 18:02:16 -0800
debmake (1.97) unstable; urgency=low
* bug: speedup (circumvents dpkg now)
* bug: allows filing a bug report against anything
-- Christoph Lameter <clameter@waterf.org> Tue, 12 Nov 1996 20:51:37 -0800
debmake (1.96) unstable; urgency=low
* release: use dupload if installed
(One always needs to specify the host to upload to though.)
* bug: removed some lines from the bugreports that were not really
essential.
-- Christoph Lameter <clameter@waterf.org> Tue, 12 Nov 1996 13:22:14 -0800
debmake (1.95) unstable; urgency=low
* release: Changes file was not uploaded (why is it not listed in the
changesfile itself if it is to be uploaded ????)
-- Christoph Lameter <clameter@waterf.org> Mon, 11 Nov 1996 21:30:20 -0800
debmake (1.94) unstable; urgency=low
* alien: bug when building rpm packages
* deb-make does no longer accept strange characters in directorynames.
-- Christoph Lameter <clameter@waterf.org> Fri, 8 Nov 1996 19:41:30 -0800
debmake (1.93) unstable; urgency=low
* bug: Depends: field was required in the description of the package
processed.
* debstd: bug in info processing. copied from debian instead of the main
sourcedirectory.
-- Christoph Lameter <clameter@waterf.org> Fri, 8 Nov 1996 15:44:33 -0800
debmake (1.92) unstable; urgency=low
* build: manpage updated
* build: add support for targets binary-indep and binary-arch
-- Christoph Lameter <clameter@waterf.org> Fri, 8 Nov 1996 06:12:18 -0800
debmake (1.91) unstable; urgency=low
* suidwrappers will be disabled on installation/upgrade. Instructions are
provided on how to use these wrappers from sudo, super or directly in
README.debian.
-- Christoph Lameter <clameter@waterf.org> Thu, 7 Nov 1996 13:39:50 -0800
debmake (1.90) unstable; urgency=low
* depend on dpkg and dpkg-dev
* debmstd: New command for experimental support of multi-binary packages
(debmstd will replace debstd when tested and found stable)
* debmake: Generates templates for multi-binary packages
* release: improved handling of files for multi-binary support
* Example setup for multi-binary support included (mgetty)
-- Christoph Lameter <clameter@waterf.org> Wed, 6 Nov 1996 10:06:41 -0800
debmake (1.23) unstable; urgency=low
* release: add an option "announce" to manually specify that
debian/control should be posted.
* bug in release: Announcement generated for releases
-- Christoph Lameter <clameter@waterf.org> Tue, 5 Nov 1996 10:54:34 -0800
debmake (1.22) unstable; urgency=low
* New directive in init scripts: NO_RESTART_ON_UPGRADE
* Location of check for conffiles moved in debstd
-- Christoph Lameter <clameter@waterf.org> Tue, 5 Nov 1996 06:26:27 -0800
debmake (1.21) unstable; urgency=low
* control prototype: standards made current
* rules prototype chmod changed (Brian C. White)
-- Christoph Lameter <clameter@waterf.org> Mon, 4 Nov 1996 09:13:54 -0800
debmake (1.20) unstable; urgency=low
* debclean: can be called as a regular user
* build: Added clean option
-- Christoph Lameter <clameter@waterf.org> Mon, 4 Nov 1996 05:42:37 -0800
debmake (1.19) unstable; urgency=low
* build: Fixed behavior in case invoked in the wrong directory
* debstd: Build /usr/doc/package/buildinfo.Debian with information
regarding the system it was build on. (Chris Fearnley)
* rules prototype revised
* Removed junk from changelog prototype
-- Christoph Lameter <clameter@waterf.org> Sun, 3 Nov 1996 16:54:09 -0800
debmake (1.18) unstable; urgency=low
* debc does both dpkg -I and dpkg -c
-- Christoph Lameter <clameter@waterf.org> Sun, 3 Nov 1996 16:04:35 -0800
debmake (1.17) unstable; urgency=low
* deb-make + alien: Username lookup now possible via NIS
-- Christoph Lameter <clameter@waterf.org> Sat, 2 Nov 1996 17:29:14 -0800
debmake (1.16) unstable; urgency=low
* Some fixes to README.debian
* Fixed bugs in the way debian/changelog is located in debi,debc,release
-- Christoph Lameter <clameter@waterf.org> Sat, 2 Nov 1996 09:52:59 -0800
debmake (1.15) unstable; urgency=low
* New: "debi" installs generated .deb file (convenience script)
* New: "debc" views contents of generated .deb file (convenience script)
* Typical developmental cycle documented in README.debian
* release: print scp error message and the e-mail address the announcement goes to
-- Christoph Lameter <clameter@waterf.org> Sat, 2 Nov 1996 08:48:25 -0800
debmake (1.14) unstable; urgency=low
* New: "build" a suid wrapper for dpkg-buildpackage and "debian/rules binary"
* New: "debpkg" a suid wrapper for dpkg.
* debmake includes C code now and thus is architecture dependent
* Suid wrappers accessible for users of group "root" only.
* Complete development cycle possible from a regular account without
having to "su".
* Added check for the presence of ssh to "release" before trying
do to an upload to master.
* bug: filters comments and empty lines out of conffiles so that the
included conffiles are not that long anymore.
-- Christoph Lameter <clameter@waterf.org> Sat, 2 Nov 1996 06:27:15 -0800
debmake (1.13) unstable; urgency=low
* Bug in release: Announce to wrong mailing list+ Bruces suggestions
-- Christoph Lameter <clameter@waterf.org> Fri, 1 Nov 1996 15:54:08 -0800
debmake (1.12) unstable; urgency=low
* debchange: RELEASED file not erased
* More errorchecking in release
* Removed creation of /etc from prototype
* Updated docs
-- Christoph Lameter <clameter@waterf.org> Fri, 1 Nov 1996 11:21:24 -0800
debmake (1.11) unstable; urgency=low
* release script was not included
-- Christoph Lameter <clameter@waterf.org> Fri, 1 Nov 1996 11:15:23 -0800
debmake (1.10) unstable; urgency=low
* Added a new tool "release" which will upload to master announce changes
and record the fact that a release has been done in debian/RELEASED.
* debchange: Generate a new release without specifically told so if
the software has been released and a debian/RELEASED file is present.
* debmake now takes the "Did I already upload this or not?" worry from you.
and manages releases on its own.
-- Christoph Lameter <clameter@waterf.org> Fri, 1 Nov 1996 11:03:53 -0800
debmake (1.09) unstable; urgency=low
* bug tool reworked: It now automatically includes Debian Version, Kernel
version, a list of the version numbers of packages this package depends
on and includes all modified conffiles.
-- Christoph Lameter <clameter@waterf.org> Fri, 1 Nov 1996 09:58:11 -0800
debmake (1.08) unstable; urgency=low
* Bug in etc.postrm
* Made sure that documentation is installed mode 644 owned by root.
* Updated Docs
-- Christoph Lameter <clameter@waterf.org> Thu, 31 Oct 1996 15:06:22 -0800
debmake (1.07) unstable; urgency=low
* check for EDITOR environment variable
* debstd warn on /etc files not in conffiles and conffiles not
provided in /etc and on having files in /etc but no conffile (Bruce)
* exceptions for library dependencies possible
-- Christoph Lameter <clameter@waterf.org> Thu, 31 Oct 1996 10:32:26 -0800
debmake (1.06) unstable; urgency=low
* structure of alien .orig file changes to be more or less conformant with
the way source .orig files are done. Diffs better readable now and the
customization includes the generators e-mail and name into the control
files.
-- Christoph Lameter <clameter@waterf.org> Thu, 31 Oct 1996 06:08:50 -0800
debmake (1.05) unstable; urgency=low
* rpminstall, tgzinstall replaced by alien command
* alien structure allows moving around of binaries and patching them
in debian/rules.
* alien command needs testing and some real life experiences
-- Christoph Lameter <clameter@waterf.org> Wed, 30 Oct 1996 21:43:35 -0800
debmake (1.04) unstable; urgency=low
* bug in generation of modifications for files in /etc
-- Christoph Lameter <clameter@waterf.org> Wed, 30 Oct 1996 17:46:35 -0800
debmake (1.03) unstable; urgency=low
* debchange: no output in batch mode anymore
* rpminstall, tgzinstall: -d option switches of calling debian/rules binary
* debstd bug when giving the -m option.
* On Bruces advice: advanced stripping of all binaries
-- Christoph Lameter <clameter@waterf.org> Wed, 30 Oct 1996 08:02:30 -0800
debmake (1.02) unstable; urgency=low
* Revised description in control
* If the package provides libraries those are detected, appropriate
information is generated for dpkg in "DEBIAN/shlibs" and a call to ldconfig
is placed into the automatically generated postinst script.
-- Christoph Lameter <clameter@waterf.org> Mon, 28 Oct 1996 09:23:05 -0800
debmake (1.01) unstable; urgency=low
* new command tgzinstall: Converts / installs a Slackware .tgz package
with dpkg using the same technique as rpminstall.
* rpminstall: diverse fixes
* Bug: debmake installed X11 manpages twice and did not compress them
* rpminstall generated .deb not erased
-- Christoph Lameter <clameter@waterf.org> Sun, 27 Oct 1996 14:20:25 -0800
debmake (1.00) unstable; urgency=low
* rpminstall : convert a package to debian (semi)sourcepackage, build it
and install with dpkg. Does not do installation scripts right now.
I was able to install gated like a debian package.
* rpminstall enables a direct installation of Red Hat packages into the
debian package maintenance system! All dpkg commands will work on it!
* rpminstall uses debstd and thus compresses manpages + documentation and
computes dependencies according to the libraries referenced by the
ELF binaries in the Red Hat package.
-- Christoph Lameter <clameter@waterf.org> Sun, 27 Oct 1996 12:17:51 -0800
debmake (0.99) unstable; urgency=low
* debstd gives message for unstripped binaries and strips them
-- Christoph Lameter <clameter@waterf.org> Sat, 26 Oct 1996 19:20:58 -0700
debmake (0.98) unstable; urgency=low
* New command bug to assist in sending bug reports
* debchange: added batch mode f.e. : dch -n Bug fixed
reults in generating a new release number and putting "bug fixed" in
the correct place in changelog
-- Christoph Lameter <clameter@waterf.org> Sat, 26 Oct 1996 09:42:00 -0700
debmake (0.97) unstable; urgency=low
* Example file for inetd.conf configuration provided
* Recognize package names with a -
* Manpages reworked. Manpage for debclean added
-- Christoph Lameter <clameter@waterf.org> Fri, 25 Oct 1996 09:37:17 -0700
debmake (0.96) unstable; urgency=low
* debstd seaches for all executable binaries in package and runs
dpkg-shlibdeps on all ELF binaries. No need to separately run
dpkg-shlibdeps anymore.
-- Christoph Lameter <clameter@waterf.org> Thu, 24 Oct 1996 19:45:44 -0700
debmake (0.95) unstable; urgency=low
* bugs in deb-make fixed. Checks for existing .orig archive
-- Christoph Lameter <clameter@waterf.org> Thu, 24 Oct 1996 14:33:07 -0700
debmake (0.94) unstable; urgency=low
* Set executable bit on debian/rules
-- Christoph Lameter <clameter@waterf.org> Wed, 23 Oct 1996 17:57:51 -0700
debmake (0.93) unstable; urgency=low
* bug in deb-make. Failed with cannot find X
-- Christoph Lameter <clameter@waterf.org> Wed, 23 Oct 1996 10:39:11 -0700
debmake (0.92) unstable; urgency=low
* backup files removed
* use /etc/mailname to figure out e-mail address
-- Christoph Lameter <clameter@waterf.org> Tue, 22 Oct 1996 20:06:46 -0700
debmake (0.91) unstable; urgency=low
* inetd.conf script generation added
* Got rid of all temp files to speed up debstd
* Updated debstd manpage
* Fixed diversions so that they really work.
* Added -m option to switch of the automatic installation of manpages
-- Christoph Lameter <clameter@waterf.org> Tue, 22 Oct 1996 16:29:17 -0700
debmake (0.9) unstable; urgency=low
* Generate scripts for diversions (not sure if the code is up to standard)
* Cleanup debstd
* 822-date instead of date used to generate the date info.
* Ability to generate scripts to add to config files in /etc included
* example files and documentation files can be listed in file in debian
-- Christoph Lameter <clameter@waterf.org> Tue, 22 Oct 1996 00:41:08 -0800
debmake (0.8) unstable; urgency=low
* Generates maintenance scripts for info files, init.d scripts, purging of
files.
-- Christoph Lameter <clameter@waterf.org> Mon, 21 Oct 1996 09:20:23 -0800
debmake (0.7) unstable; urgency=low
* Updated documentation
* Progress indicator
* Some errormessages from gzip avoided
* converts manpages just having .so <othermanpage> in it to symlinks
* Gzipping separated for manpages (all), info (all) and docs (>4K)
so we can easily adapt in case of future changes of policies.
-- Christoph Lameter <clameter@waterf.org> Sun, 20 Oct 1996 14:51:06 -0800
debmake (0.6) unstable; urgency=low
* debmake did not install scripts in debian directory!
-- Christoph Lameter <clameter@waterf.org> Thu, 17 Oct 1996 06:47:16 -0800
debmake (0.5) unstable; urgency=low
* Manpages were installed as executables
* Display of redirected links was not correct
-- Christoph Lameter <clameter@waterf.org> Wed, 16 Oct 1996 22:12:56 -0800
debmake (0.4) unstable; urgency=low
* Added automatic compression of documentation in /usr/man and /usr/doc
if files are >1K.
* Checks for dangling symlinks and redirects symlinks to filenames that
were changed due to compression.
* Added rc.boot handling
* Permissions for documentation were set to executable when debstd was
used.
-- Christoph Lameter <clameter@waterf.org> Wed, 16 Oct 1996 08:44:26 -0800
debmake (0.3) unstable; urgency=low
* Added a perl script debchanges which does maintenance of
debian/changelog
* Added manpage for debchanges and an alias "dch" since it is frequently
used.
-- Christoph Lameter <clameter@waterf.org> Fri, 11 Oct 1996 14:00:15 -0800
debmake (0.2) unstable; urgency=low
* Added a native mode to have a package that does not need an .orig directory
* Put debstd into /usr/bin so that it does not have to be included in the
source archives.
* Added manpages for debstd and deb-make
-- Christoph Lameter <clameter@waterf.org> Thu, 10 Oct 1996 13:21:48 -0800
debmake (0.1) experimental; urgency=low
* Initial Release.
-- Christoph Lameter <clameter@waterf.org> Thu, 10 Oct 1996 13:21:48 -0800
Local variables:
mode: debian-changelog
End:

61
debian/config vendored Normal file
View File

@@ -0,0 +1,61 @@
# Edit this file to configure debian/rules to build a package.
# No modification of debian/rules should be neccessary. (Famous last words!)
#
# File by Joey Hess <joeyh@master.debian.org>
# What is the name of this package?
package=alien
# Files that go in directories under /doc.
docs=
# What file must exist in the current directory if the package is
# properly unpacked here?
test_file=$(package)
# Does this package build from an Imakefile?
# If so, uncomment the line below.
#use_imakefile=y
# Does this package build from a Configure script?
# If so, uncomment the line below and enter the command to run to run the
# Configure script (ie: "./Configure")
#use_configure=./Configure
# What commands to run to build the package?
define build_command
endef
# What commands to run to clean up after a build?
define clean_command
endef
# List here any files that must be removed during "debian/rules clean"
# that clean_command doesn't take care of.
clean_files=
# List here any files that should be preserved during a build, and restored
# to their original state during a clean. For example, if the package comes
# with both an Imakefile and a Makefile, and xmkmf is run, list the original
# Makefile here so it will be backed up before it is overwritten my xmkmf.
preserve_files=
# What command to run to install the package into debian/tmp?
# You might want to edit the package's Makefile and add $(PREFIX)
# to all the paths it installs files to. or, you can just write
# your own install commands here instead.
#
# Note that debian/* and the files in /usr/doc will be installed
# properly for you, you don't need to do that here.
#
define install_command
$(MAKE) DESTDIR=debian/tmp install
endef
# After being installed in debian/tmp, everything is chowned to root.root,
# and chmod g-ws is run on everything. Enter below any chmod commands you
# need to run to set files to the proper permissions. This is where you
# can make programs be suid, etc.
# (Note that these commands will be run as root.)
define ch_commands
endef

14
debian/control vendored Normal file
View File

@@ -0,0 +1,14 @@
Source: alien
Section: admin
Priority: extra
Maintainer: Christoph Lameter <clameter@waterf.org>
Standards-Version: 2.1.2.2
Package: alien
Architecture: all
Section: admin
Depends: debmake
Recommends: rpm
Description: Install RedHat and Slackware Packages with dpkg.
Allows the integration of packages from other sources (Red Hat, Slackware etc)
called "Aliens". This is a tool only suitable for binary packages.

6
debian/copyright vendored Normal file
View File

@@ -0,0 +1,6 @@
This is a package written by Christoph Lameter <clameter@debian.org>.
It is now being maintained by Joey Hess <joeyh@master.debian.org>.
Copyright: Most recent version of the GPL.

126
debian/rules vendored Executable file
View File

@@ -0,0 +1,126 @@
#!/usr/bin/make -f
##############################################################################
# Generic debian/rules file. Based on:
#
#> Sample debian.rules file - for GNU Hello (1.3).
#> Copyright 1994,1995 by Ian Jackson.
#> I hereby give you perpetual unlimited permission to copy,
#> modify and relicense this file, provided that you do not remove
#> my name from the file itself. (I assert my moral right of
#> paternity under the Copyright, Designs and Patents Act 1988.)
#
# Heavily modified by Joey Hess <joeyh@master.debian.org>
#
##############################################################################
#
# NOTE: You shouldn't have to edit this file. Edit debian/config instead.
# If you must edit this file to get your package to build properly, then
# I have failed. Let me know; mail me.
#
# (Currently not handled: multiple binary packages from 1 source package,
# and binary-indep rule.)
#
# NOTE: This file is designed so it doesn't need to be run as root. For
# actions that require that the user be root, the root password will be
# prompted for, if you're not already root.
#
##############################################################################
#
# Changelog:
# * Use build-stamp instead of build.
# * New email address.
# * Added changelog.
#
##############################################################################
# Include config file.
include debian/config
# Generate a makefile (via configure scriopt or xmkmf).
makefile-stamp:
ifeq ($(strip $(use_imakefile)),y)
xmkmf -a
endif
$(use_configure)
touch makefile-stamp
# Preserve some files that may get deleted/overwritten/modified otherwise.
preserve-stamp:
ifneq ($(strip $(preserve_files)),)
$(foreach file,$(preserve_files),-cp $(file) $(file).preserved)
endif
touch preserve-stamp
build-stamp: preserve-stamp makefile-stamp
$(checkdir)
$(build_command)
touch build-stamp
build: build-stamp
clean: preserve-stamp makefile-stamp
$(checkdir)
# Do actual cleaning up here.
-rm -f build-stamp
$(clean_command)
-rm -rf *~ debian/*~ debian/files* $(clean_files)
$(clean_tmp)
# Remove Makefile that xmkmf creates.
ifeq ($(strip $(use_imakefile)),y)
-rm -f Makefile
endif
# If we preserved some files, we need to restore them now.
ifneq ($(strip $(preserve_files)),)
$(foreach file,$(preserve_files),-mv -f $(file).preserved $(file))
endif
-rm -f preserve-stamp makefile-stamp
# Build architecture-independent files here.
# (not yet set up to be used)
binary-indep: build
$(checkdir)
# Build architecture-dependent files here.
binary-arch: build
$(checkdir)
$(clean_tmp)
$(install_command)
# Debstd handles lots of nasty details. This requires that the debmake
# package is installed.
debstd $(package) $(docs)
# Generate control file.
dpkg-gencontrol
# Set permissions.
@[ "`whoami`" != root ] && \
echo -e "\n ** Enter root password to set file permissions."; \
sudo debian/rules setperms
# Actually build the .deb file.
dpkg --build debian/tmp ..
# This must be run suid root, it sets the file permissions in debian/tmp
setperms:
chown -R root.root debian/tmp
chmod -R g-ws debian/tmp
$(ch_commands)
define checkdir
@test -f $(test_file) -a -f debian/rules || (echo -e "\n\
** \"$(test_file)\" or \"debian/rules\" does not exist.\n\
** Either \"$(package)\" is not unpacked in this directory, or\n\
** an incorrect test_file is specified in debian/config.\n" && false)
endef
# This rm's the debian/tmp directory.
define clean_tmp
-rm -rf debian/tmp >/dev/null 2>&1
@if [ -d debian/tmp ]; then \
if [ "`whoami`" != root ]; then \
echo -e "\n ** Enter root password to remove debian/tmp."; \
fi; \
sudo rm -rf debian/tmp; \
fi
endef
binary: binary-indep binary-arch
.PHONY: clean setperms binary

378
foo Normal file
View File

@@ -0,0 +1,378 @@
execve("/sbin/taper", ["taper"], [/* 34 vars */]) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40007000
mprotect(0x40000000, 20301, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x8048000, 154781, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=7705, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 6
mmap(0, 7705, PROT_READ, MAP_SHARED, 6, 0) = 0x40008000
close(6) = 0
stat("/etc/ld.so.preload", 0xbffff948) = -1 ENOENT (No such file or directory)
open("/usr/lib/libform.so.3.0", O_RDONLY) = 6
read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 40960, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4000a000
mmap(0x4000a000, 35349, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 6, 0) = 0x4000a000
mmap(0x40013000, 3928, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x8000) = 0x40013000
close(6) = 0
mprotect(0x4000a000, 35349, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
open("/lib/libncurses.so.3.0", O_RDONLY) = 6
read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 249856, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
mmap(0x40014000, 198134, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 6, 0) = 0x40014000
mmap(0x40045000, 30592, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x30000) = 0x40045000
mmap(0x4004d000, 13444, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4004d000
close(6) = 0
mprotect(0x40014000, 198134, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
open("/lib/libc.so.5", O_RDONLY) = 6
read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 761856, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40051000
mmap(0x40051000, 528723, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 6, 0) = 0x40051000
mmap(0x400d3000, 19388, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x81000) = 0x400d3000
mmap(0x400d8000, 205344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400d8000
close(6) = 0
mprotect(0x40051000, 528723, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x40008000, 7705) = 0
mprotect(0x8048000, 154781, PROT_READ|PROT_EXEC) = 0
mprotect(0x4000a000, 35349, PROT_READ|PROT_EXEC) = 0
mprotect(0x40014000, 198134, PROT_READ|PROT_EXEC) = 0
mprotect(0x40051000, 528723, PROT_READ|PROT_EXEC) = 0
mprotect(0x40000000, 20301, PROT_READ|PROT_EXEC) = 0
personality(PER_LINUX) = 0
geteuid() = 0
getuid() = 0
getgid() = 0
getegid() = 0
brk(0x80c1cb0) = 0x80c1cb0
brk(0x80c2000) = 0x80c2000
open("/root/taper_prefs", O_RDONLY) = 6
close(6) = 0
open("/root/taper_prefs", O_RDONLY) = 6
fstat(6, {st_mode=S_IFREG|0664, st_size=1248, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(6, "append = yes\ncompress-type = 1\n"..., 4096) = 1248
read(6, "", 4096) = 0
close(6) = 0
munmap(0x40008000, 4096) = 0
brk(0x80cb000) = 0x80cb000
shmget(IPC_PRIVATE, 60, IPC_CREAT|IPC_EXCL|0x1b6|0666) = 8448
shmat(8448, 0, 0) = 0x40008000
shmget(IPC_PRIVATE, 65536, IPC_CREAT|IPC_EXCL|0x1b6|0666) = 8449
shmat(8449, 0, 0) = 0x4010b000
shmget(IPC_PRIVATE, 65536, IPC_CREAT|IPC_EXCL|0x1b6|0666) = 8450
shmat(8450, 0, 0) = 0x4011b000
mmap(0, 151552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4012b000
shmget(IPC_PRIVATE, 32768, IPC_CREAT|IPC_EXCL|0x1b6|0666) = 8451
shmat(8451, 0, 0) = 0x40150000
open("/root/.terminfo/x/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/root/.terminfo/x", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/terminfo/x/xterm", O_RDONLY) = 6
read(6, "\32\1:\0\25\0\3\0d\0013\2", 12) = 12
read(6, "xterm|vs100|xterm terminal emula"..., 58) = 58
read(6, "\0\1\0\0\1\0\0\0\1\0\0\0\0\1\1\0"..., 21) = 21
read(6, "\0", 1) = 1
read(6, "P\0\10\0A\0", 6) = 6
read(6, "\377\377\0\0\2\0\4\0\25\0\32\0\""..., 712) = 712
read(6, "\7\0\r\0\33[%i%p1%d;%p2%dr\0\33["..., 563) = 563
close(6) = 0
ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=28, ws_col=80, ws_xpixel=503, ws_ypixel=368}) = 0
brk(0x80cc000) = 0x80cc000
brk(0x80cd000) = 0x80cd000
brk(0x80ce000) = 0x80ce000
brk(0x80cf000) = 0x80cf000
brk(0x80d0000) = 0x80d0000
brk(0x80d1000) = 0x80d1000
brk(0x80d2000) = 0x80d2000
brk(0x80d3000) = 0x80d3000
ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
sigaction(SIGINT, NULL, {SIG_DFL}) = 0
sigaction(SIGINT, {0x40037750, [], SA_RESTART}, NULL) = 0
sigaction(SIGTERM, NULL, {SIG_DFL}) = 0
sigaction(SIGTERM, {0x40037750, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, NULL, {SIG_DFL}) = 0
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_START, {B9600 opost isig icanon -echo ...}) = 0
ioctl(1, TCGETS, {B9600 opost isig icanon -echo ...}) = 0
ioctl(1, SNDCTL_TMR_START, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(1, SNDCTL_TMR_START, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(1, SNDCTL_TMR_START, {B9600 -opost isig -icanon -echo ...}) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33(B\33)0\0337\33[?47h\33[H\33["..., 2408) = 2408
write(1, " "..., 150) = 150
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
brk(0x80d4000) = 0x80d4000
brk(0x80d5000) = 0x80d5000
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[2;1H\16lqqqqqqqqqqqqqqqqqqqq"..., 185) = 185
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[1;80H", 7) = 7
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[27B", 5) = 5
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
write(1, "\33[?1h\33=", 7) = 7
write(1, "\33[?1h\33=", 7) = 7
sigaction(SIGINT, {0x8060590, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}, {0x40037750, [], SA_RESTART}) = 0
sigaction(SIGSEGV, {0x80605b0, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}, {SIG_DFL}) = 0
sigaction(SIGABRT, {0x80605b0, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}, {SIG_DFL}) = 0
lstat(".", {st_mode=S_IFDIR|0775, st_size=1024, ...}) = 0
lstat("/", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat("..", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
stat("..", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
open("..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
brk(0x80d7000) = 0x80d7000
getdents(6, /* 17 entries */, 4096) = 416
lstat("../alien-3.2", {st_mode=S_IFDIR|0775, st_size=1024, ...}) = 0
close(6) = 0
lstat("../..", {st_mode=S_IFDIR|S_ISUID|0775, st_size=2048, ...}) = 0
stat("../..", {st_mode=S_IFDIR|S_ISUID|0775, st_size=2048, ...}) = 0
open("../..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 13 entries */, 4096) = 232
lstat("../../build", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
close(6) = 0
lstat("../../..", {st_mode=S_IFDIR|0755, st_size=3072, ...}) = 0
stat("../../..", {st_mode=S_IFDIR|0755, st_size=3072, ...}) = 0
open("../../..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 58 entries */, 4096) = 1184
lstat("../../../debian", {st_mode=S_IFDIR|S_ISUID|0775, st_size=2048, ...}) = 0
close(6) = 0
lstat("../../../..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
stat("../../../..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
open("../../../..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 34 entries */, 4096) = 596
lstat("../../../../joey", {st_mode=S_IFDIR|0755, st_size=3072, ...}) = 0
close(6) = 0
lstat("../../../../..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
stat("../../../../..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
open("../../../../..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 30 entries */, 4096) = 576
lstat("../../../../../lost+found", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("../../../../../usr", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat("../../../../../System.old", {st_mode=S_IFREG|0664, st_size=71282, ...}) = 0
lstat("../../../../../etc", {st_mode=S_IFDIR|0755, st_size=6144, ...}) = 0
lstat("../../../../../root", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
lstat("../../../../../dev", {st_mode=S_IFDIR|0755, st_size=16384, ...}) = 0
lstat("../../../../../sbin", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
lstat("../../../../../var", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat("../../../../../tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=204800, ...}) = 0
lstat("../../../../../bin", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
lstat("../../../../../proc", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
lstat("../../../../../floppy", {st_mode=S_IFDIR|S_ISGID|0775, st_size=1024, ...}) = 0
lstat("../../../../../boot", {st_mode=S_IFDIR|S_ISGID|0775, st_size=1024, ...}) = 0
lstat("../../../../../lib", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
lstat("../../../../../mnt", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat("../../../../../home", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
close(6) = 0
lstat(".", {st_mode=S_IFDIR|0775, st_size=1024, ...}) = 0
lstat("/", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat("..", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
stat("..", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
open("..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 17 entries */, 4096) = 416
lstat("../alien-3.2", {st_mode=S_IFDIR|0775, st_size=1024, ...}) = 0
close(6) = 0
lstat("../..", {st_mode=S_IFDIR|S_ISUID|0775, st_size=2048, ...}) = 0
stat("../..", {st_mode=S_IFDIR|S_ISUID|0775, st_size=2048, ...}) = 0
open("../..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 13 entries */, 4096) = 232
lstat("../../build", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
close(6) = 0
lstat("../../..", {st_mode=S_IFDIR|0755, st_size=3072, ...}) = 0
stat("../../..", {st_mode=S_IFDIR|0755, st_size=3072, ...}) = 0
open("../../..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 58 entries */, 4096) = 1184
lstat("../../../debian", {st_mode=S_IFDIR|S_ISUID|0775, st_size=2048, ...}) = 0
close(6) = 0
lstat("../../../..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
stat("../../../..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
open("../../../..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 34 entries */, 4096) = 596
lstat("../../../../joey", {st_mode=S_IFDIR|0755, st_size=3072, ...}) = 0
close(6) = 0
lstat("../../../../..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
stat("../../../../..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
open("../../../../..", O_RDONLY) = 6
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
getdents(6, /* 30 entries */, 4096) = 576
lstat("../../../../../lost+found", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("../../../../../usr", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat("../../../../../System.old", {st_mode=S_IFREG|0664, st_size=71282, ...}) = 0
lstat("../../../../../etc", {st_mode=S_IFDIR|0755, st_size=6144, ...}) = 0
lstat("../../../../../root", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
lstat("../../../../../dev", {st_mode=S_IFDIR|0755, st_size=16384, ...}) = 0
lstat("../../../../../sbin", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
lstat("../../../../../var", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat("../../../../../tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=204800, ...}) = 0
lstat("../../../../../bin", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
lstat("../../../../../proc", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
lstat("../../../../../floppy", {st_mode=S_IFDIR|S_ISGID|0775, st_size=1024, ...}) = 0
lstat("../../../../../boot", {st_mode=S_IFDIR|S_ISGID|0775, st_size=1024, ...}) = 0
lstat("../../../../../lib", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
lstat("../../../../../mnt", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat("../../../../../home", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
close(6) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[28;15HTaper 6.7.4 by Yusuf N"..., 60) = 60
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[1;26HTaper - Linux Backup fo"..., 37) = 37
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[27;80H", 8) = 8
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[7;35H\33[7mBackup Module\33["..., 182) = 182
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
read(0, "\r", 1) = 1
open("/root/taper_log", O_RDWR|O_APPEND|O_CREAT, 0600) = 6
time(NULL) = 859232262
open("/usr/lib/zoneinfo/localtime", O_RDONLY) = 7
read(7, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 6460) = 1410
close(7) = 0
time(NULL) = 859232262
write(6, "Mon Mar 24 14:37:22 1997: Start"..., 50) = 50
brk(0x80d8000) = 0x80d8000
write(1, "\33[?1h\33=", 7) = 7
write(1, "\33[?1h\33=", 7) = 7
write(1, "\33[?1h\33=", 7) = 7
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[2;49H\16l\17\n\10\16x\17\n\10"..., 124) = 124
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[2;48H\16k\17\n\10\16x\17\n\10"..., 229) = 229
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\r\n\16lqqqqqqqqqqqqqqqqqqqqqqqq"..., 128) = 128
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
stat("/mnt/home-and-etc.taper", 0xbffff814) = -1 ENOENT (No such file or directory)
stat("/etc/locale/C/libc.cat", 0xbffff304) = -1 ENOENT (No such file or directory)
stat("/usr/share/locale/C/libc.cat", 0xbffff304) = -1 ENOENT (No such file or directory)
stat("/usr/share/locale/libc/C", 0xbffff304) = -1 ENOENT (No such file or directory)
stat("/usr/share/locale/C/libc.cat", 0xbffff304) = -1 ENOENT (No such file or directory)
stat("/usr/local/share/locale/C/libc.cat", 0xbffff304) = -1 ENOENT (No such file or directory)
time(NULL) = 859232262
write(6, "Mon Mar 24 14:37:22 1997: No su"..., 81) = 81
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[10;9H\16lqqqqqqqqqqqqqqqqqqq"..., 515) = 515
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
write(1, "\33[?1h\33=", 7) = 7
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[12;14HNo such file or direct"..., 78) = 78
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
read(0, "\r", 1) = 1
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\10\10\33[1mOK\33[m", 11) = 11
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[2;48H\16qq\17\33[3;48H \33["..., 749) = 749
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
fsync(6) = 0
fstat(6, {st_mode=S_IFREG|0600, st_size=2097334, ...}) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[11;21H\16lqqqqqqqqqqqqqqqqqq"..., 354) = 354
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[14;24HLog file too big - mak"..., 41) = 41
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
lseek(6, 182, SEEK_SET) = 182
getpid() = 3550
stat("/usr/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=12288, ...}) = 0
geteuid() = 0
stat("/usr/tmp/taper03550aaa", 0xbffff66c) = -1 ENOENT (No such file or directory)
open("/usr/tmp/taper03550aaa", O_RDWR|O_APPEND|O_CREAT, 0600) = 7
read(6, "Thu Mar 20 16:21:20 1997: Backi"..., 150000) = 150000
write(7, "Thu Mar 20 16:21:20 1997: Backi"..., 150000) = 150000
read(6, "ory /home/joey/mail/\nFri Mar 21"..., 150000) = 150000
write(7, "ory /home/joey/mail/\nFri Mar 21"..., 150000) = 150000
read(6, "5/\nFri Mar 21 16:22:50 1997: S"..., 150000) = 150000
write(7, "5/\nFri Mar 21 16:22:50 1997: S"..., 150000) = 150000
read(6, "lib/dwww/dwww.html; actual size "..., 150000) = 150000
write(7, "lib/dwww/dwww.html; actual size "..., 150000) = 150000
read(6, "\nSun Mar 23 16:16:14 1997: Bac"..., 150000) = 150000
write(7, "\nSun Mar 23 16:16:14 1997: Bac"..., 150000) = 150000
read(6, "shift.prp; actual size 776, on t"..., 150000) = 150000
write(7, "shift.prp; actual size 776, on t"..., 150000) = 150000
read(6, "esk/FileTags; actual size 2180, "..., 150000) = 150000
write(7, "esk/FileTags; actual size 2180, "..., 150000) = 150000
read(6, "rs/GIFEncoder.java; actual size "..., 150000) = 150000
write(7, "rs/GIFEncoder.java; actual size "..., 150000) = 150000
read(6, "tape size 3187.\nSun Mar 23 16:2"..., 150000) = 150000
write(7, "tape size 3187.\nSun Mar 23 16:2"..., 150000) = 150000
read(6, "ssion/Blood0.db; actual size 393"..., 150000) = 150000
write(7, "ssion/Blood0.db; actual size 393"..., 150000) = 150000
read(6, "3937, on tape size 23937.\nSun M"..., 150000) = 150000
write(7, "3937, on tape size 23937.\nSun M"..., 150000) = 150000
read(6, "n tape size 355.\nSun Mar 23 16:"..., 150000) = 150000
write(7, "n tape size 355.\nSun Mar 23 16:"..., 150000) = 150000
read(6, ".d/lambdamoo]\nSun Mar 23 17:13:"..., 150000) = 150000
write(7, ".d/lambdamoo]\nSun Mar 23 17:13:"..., 150000) = 150000
read(6, "size 1453, on tape size 812.\nSu"..., 150000) = 147152
write(7, "size 1453, on tape size 812.\nSu"..., 147152) = 147152
read(6, "", 150000) = 0
close(6) = 0
unlink("/root/taper_log") = 0
time(NULL) = 859232263
write(7, "Mon Mar 24 14:37:23 1997: Backu"..., 44) = 44
write(7, "\n\n", 2) = 2
close(7) = 0
rename("/usr/tmp/taper03550aaa", "/root/taper_log") = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[28;67H", 8) = 8
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[1;56H", 7) = 7
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[11;21H "..., 337) = 337
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[7;35H\33[7mBackup Module\33["..., 182) = 182
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
read(0, "\33", 1) = 1
oldselect(1, [0], NULL, NULL, {1, 0}) = 1 (in [0], left {1, 0})
read(0, "O", 1) = 1
oldselect(1, [0], NULL, NULL, {1, 0}) = 1 (in [0], left {1, 0})
read(0, "A", 1) = 1
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[13DBackup Module\33[21;39H\33"..., 37) = 37
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
read(0, "\r", 1) = 1
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[2;1H\33[K\n\33[K\n\33[K\n\33"..., 115) = 115
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[H\33[K", 6) = 6
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
sigaction(SIGTSTP, {SIG_IGN}, {0x40037680, [], SA_RESTART}) = 0
write(1, "\33[27B\33[J", 8) = 8
sigaction(SIGTSTP, {0x40037680, [], SA_RESTART}, NULL) = 0
write(1, "\33[28;1H\0337\33[1;28r\0338\33["..., 30) = 30
write(1, "\33[?1l\33>", 7) = 7
ioctl(1, SNDCTL_TMR_START, {B9600 opost isig icanon echo ...}) = 0
munmap(0x4012b000, 151552) = 0
shmdt(0x40150000) = 0
shmdt(0x4010b000) = 0
shmdt(0x4011b000) = 0
shmdt(0x40008000) = 0
shmctl(8448, IPC_RMID, 0) = 0
shmctl(8451, IPC_RMID, 0) = 0
shmctl(8449, IPC_RMID, 0) = 0
shmctl(8450, IPC_RMID, 0) = 0
sigaction(SIGINT, {SIG_DFL}, {0x8060590, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}) = 0
sigaction(SIGSEGV, {SIG_DFL}, {0x80605b0, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}) = 0
sigaction(SIGABRT, {SIG_DFL}, {0x80605b0, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT}) = 0
_exit(0) = ?

67
lib/fromdeb.pl Normal file
View File

@@ -0,0 +1,67 @@
#!/usr/bin/perl
#
# Package for converting from a .deb file.
# Query a deb file for fields, and return a hash of the fields found.
# Pass the filename of the deb file to query.
sub GetFields { my $file=shift;
my %fields;
# Extract the control file from the deb file.
my @control = `ar p $file control.tar.gz | tar Oxzf - control`;
# Parse control file and extract fields.
my $i=0;
while ($i<=$#control) {
$_ = $control[$i];
chomp;
$fields{NAME} = $1 if (/^Package: (.+)/i);
$fields{VERSION} = $1 if (/^Version: (.+)/i);
$fields{ARCH} = $1 if (/^Architecture: (.+)/i);
$fields{MAINTAINER} = $1 if (/^Maintainer: (.+)/i);
$fields{DEPENDS} = $1 if (/^Depends: (.+)/i);
$fields{REQUIRES} = $1 if (/^Requires: (.+)/i);
$fields{GROUP} = $1 if (/^Section: (.+)/i);
if (/^Description: (.+)/i) {
$fields{SUMMARY} = "$1";
$i++;
while (($i<=$#control) && ($control[$i])) {
$control[$i] =~ s/^ //g; #remove leading space
$control[$i] = "\n" if ($control[$i] eq ".\n");
$fields{DESCRIPTION}.=$control[$i];
$i++;
}
$i--;
}
$i++;
}
$fields{COPYRIGHT}="see /usr/doc/$fields{NAME}/copyright";
$fields{GROUP}="unknown" if (!$fields{GROUP});
$fields{DISTRIBUTION}="Debian";
if ($fields{VERSION} =~ /(.+)-(.+)/) {
$fields{VERSION} = $1;
$fields{RELEASE} = $2 + 1;
} else {
$fields{RELEASE} = '1';
}
# Read in the list of conffiles, if any.
$fields{CONFFILES}=`ar p $file control.tar.gz | tar Oxzf - conffiles 2>/dev/null`;
# Read in the list of all files.
# Note that tar doesn't supply a leading `/', so we have to add that.
$fields{FILELIST}=undef;
foreach $fn (`ar p $file data.tar.gz | tar tzf -`) {
$fields{FILELIST}.="/$fn";
}
return %fields;
}
# Handles unpacking of debs.
sub Unpack { my ($file)=@_;
SafeSystem ("(cd ..;ar p $file data.tar.gz) | tar zxpf -","Error unpacking $file\n");
}
1

72
lib/fromrpm.pl Normal file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/perl
#
# Package for converting from a .rpm file.
# Query a rpm file for fields, and return a hash of the fields found.
# Pass the filename of the rpm file to query.
sub GetFields { my $file=shift;
my %fields;
# Use --queryformat to pull out all the fields we need.
foreach $field ('NAME','VERSION','RELEASE','ARCH','CHANGELOGTEXT',
'SUMMARY','DESCRIPTION','COPYRIGHT') {
$_=`rpm -qp $file --queryformat \%{$field}`;
$fields{$field}=$_ if $_ ne '(none)';
}
# Get the conffiles list.
$fields{CONFFILES}=`rpm -qcp $file`;
# Include the output of rpm -qi in the copyright file.
$fields{COPYRIGHT_EXTRA}=`rpm -qpi $file`;
# Sanity check fields.
if (!$fields{SUMMARY}) {
# Older rpms will have no summary, but will have a
# description. We'll take the 1st line out of the
# description, and use it for the summary.
($fields{SUMMARY})=($fields{DESCRIPTION}."\n")=~m/(.*?)\n/m;
# Fallback.
if (!$fields{SUMMARY}) {
$fields{SUMMARY}="Converted RPM package";
}
}
if (!$fields{COPYRIGHT}) {
$fields{COPYRIGHT}="unknown";
}
if (!$fields{DESCRIPTION}) {
$fields{DESCRIPTION}=$fields{SUMMARY};
}
# Convert ARCH into string, if it isn't already a string.
if ($fields{ARCH} eq 1) {
$fields{ARCH}='i386';
}
elsif ($fields{ARCH} eq 2) {
$fields{ARCH}='alpha';
}
elsif ($fields{ARCH} eq 3) {
$fields{ARCH}='sparc';
}
elsif ($fields{ARCH} eq 6) {
$fields{ARCH}='m68k';
}
if (!$fields{RELEASE} || !$fields{VERSION} || !$fields{NAME}) {
Error("Error querying rpm file.");
}
$fields{RELEASE}=$fields{RELEASE}+1;
$fields{DISTRIBUTION}="Red Hat";
return %fields;
}
# Unpack a rpm file.
sub Unpack { my ($file)=@_;
SafeSystem("(cd ..;rpm2cpio $file) | cpio --extract --make-directories --no-absolute-filenames",
"Error unpacking $file\n");
}
1

65
lib/fromtgz.pl Normal file
View File

@@ -0,0 +1,65 @@
#!/usr/bin/perl
#
# Package for converting from a tgz file.
# Query a tgz file for fields, and return a hash of the fields found.
# Pass the filename of the tgz file to query.
sub GetFields { my $file=shift;
my %fields;
# Get basename of the filename.
my ($basename)=('/'.$file)=~m#^/?.*/(.*?)$#;
# Strip out any tar extentions.
$basename=~s/\.(tgz|tar\.gz)$//;
if ($basename=~m/(.*)-(.*)/ ne undef) {
$fields{NAME}=$1;
$fields{VERSION}=$2;
}
else {
$fields{NAME}=$basename;
$fields{VERSION}=1;
}
$fields{ARCH}='i386';
$fields{SUMMARY}='Converted Slackware tgz package';
$fields{DESCRIPTION}=$fields{SUMMARY};
$fields{COPYRIGHT}="unknown";
$fields{RELEASE}=1;
$fields{DISTRIBUTION}="Slackware";
# Now figure out the conffiles. Assume anything in etc/ is a conffile.
# It's a little nasty to do it here, but it's much cleaner than waiting
# until the tar file is unpacked and then doing it.
$fields{CONFFILES}='';
open (FILELIST,"tar zvtf $file | grep etc/ |") || Error("Getting filelist: $!");
while (<FILELIST>) {
# Make sure it's a normal file. This is looking at the
# permissions, and making sure the first character is '-'.
# Ie: -rw-r--r--
if (m:^-:) {
# Strip it down to the filename.
m/^(.*) (.*)$/;
$fields{CONFFILES}.="/$2\n";
}
}
close FILELIST;
# Now get the whole filelist. We have to add leading /'s to the filenames.
$fields{FILELIST}='';
open (FILELIST, "tar ztf $file |");
while (<FILELIST>) {
$fields{FILELIST}.="/$_";
}
close FILELIST;
return %fields;
}
# Handles unpacking of tgz's.
sub Unpack { my ($file)=@_;
SafeSystem ("(cd ..;cat $file) | tar zxpf -","Error unpacking $file\n");
}
1

9
lib/rpm/changelog Normal file
View File

@@ -0,0 +1,9 @@
#PACKAGE# (#VERSION#-#DELTA#) unstable; urgency=low
* Converted from RPM binary format to debian
-- #USERNAME# <#EMAIL#> #DATE#
Local variables:
mode: debian-changelog
End:

11
lib/rpm/control Normal file
View File

@@ -0,0 +1,11 @@
Source: #PACKAGE#
Section: unknown
Priority: extra
Maintainer: #USERNAME# <#EMAIL#>
Standards-Version: 2.1.1.0
Package: #PACKAGE#
Architecture: #ARCHIT#
Depends: ${shlibs:Depends}
Description: Converted RPM package
Not available

6
lib/rpm/copyright Normal file
View File

@@ -0,0 +1,6 @@
This package was debianized by the alien program by converting
a binary RPM Package on #DATE#.
Copyright: Unknown
Information from the binary Package:

9
lib/tgz/changelog Normal file
View File

@@ -0,0 +1,9 @@
#PACKAGE# (#VERSION#-#DELTA#) unstable; urgency=low
* Converted from Slackware .tgz binary format to debian
-- #USERNAME# <#EMAIL#> #DATE#
Local variables:
mode: debian-changelog
End:

11
lib/tgz/control Normal file
View File

@@ -0,0 +1,11 @@
Source: #PACKAGE#
Section: unknown
Priority: extra
Maintainer: #USERNAME# <#EMAIL#>
Standards-Version: 2.1.1.0
Package: #PACKAGE#
Architecture: #ARCHIT#
Depends: ${shlibs:Depends}
Description: Converted Slackware tgz package
Not available

4
lib/tgz/copyright Normal file
View File

@@ -0,0 +1,4 @@
This package was debianized by the alien program by converting
a binary Slackware tgz Package on #DATE#.
Copyright: Unknown

54
lib/tgz/rules Normal file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/make -f
#
# This is a special rules files for handling alien or binary packages
# Christoph Lameter, October 30, 1996
package=#PACKAGE#
debian/build:
$(checkdir)
touch debian/build
clean:
$(checkdir)
-rm -f debian/build
-rm -rf *~ debian/tmp debian/*~ debian/files*
binary-indep: checkroot debian/build
$(checkdir)
# There are no architecture-independent files to be uploaded
# generated by this package. If there were any they would be
# made here.
binary-arch: checkroot debian/build
$(checkdir)
-rm -rf debian/tmp
# Install binary package
install -d debian/tmp
cp -a `ls | grep -v debian` debian/tmp
#
# If you need to move files around in debian/tmp or do some
# binary patching ... Insert it here
#
debstd $(package)
dpkg-gencontrol
dpkg --build debian/tmp ..
define checkdir
test -f debian/rules
endef
# Below here is fairly generic really
binary: binary-indep binary-arch
build: debian/build
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
checkroot:
$(checkdir)
test root = "`whoami`"
.PHONY: binary binary-arch binary-indep clean checkroot

11
lib/to-deb/rpm/changelog Normal file
View File

@@ -0,0 +1,11 @@
#NAME# (#VERSION#-#RELEASE#) unstable; urgency=low
* Converted from RPM binary format to debian
-- #USERNAME# <#EMAIL#> #DATE#
#CHANGELOGTEXT#
Local variables:
mode: debian-changelog
End:

11
lib/to-deb/rpm/control Normal file
View File

@@ -0,0 +1,11 @@
Source: #NAME#
Section: unknown
Priority: extra
Maintainer: #USERNAME# <#EMAIL#>
Standards-Version: 2.1.1.0
Package: #NAME#
Architecture: #ARCH#
Depends: ${shlibs:Depends}
Description: #SUMMARY#
#DESCRIPTION#

7
lib/to-deb/rpm/copyright Normal file
View File

@@ -0,0 +1,7 @@
This package was debianized by the alien program by converting
a binary RPM Package on #DATE#.
Copyright: #COPYRIGHT#
Information from the binary Package:
#COPYRIGHT_EXTRA#

9
lib/to-deb/tgz/changelog Normal file
View File

@@ -0,0 +1,9 @@
#NAME# (#VERSION#-#RELEASE#) unstable; urgency=low
* Converted from Slackware .tgz binary format to debian
-- #USERNAME# <#EMAIL#> #DATE#
Local variables:
mode: debian-changelog
End:

1
lib/to-deb/tgz/conffiles Normal file
View File

@@ -0,0 +1 @@
#CONFFILES#

11
lib/to-deb/tgz/control Normal file
View File

@@ -0,0 +1,11 @@
Source: #NAME#
Section: unknown
Priority: extra
Maintainer: #USERNAME# <#EMAIL#>
Standards-Version: 2.1.1.0
Package: #NAME#
Architecture: #ARCH#
Depends: ${shlibs:Depends}
Description: Converted Slackware tgz package
Converted Slackware tgz package

4
lib/to-deb/tgz/copyright Normal file
View File

@@ -0,0 +1,4 @@
This package was debianized by the alien program by converting
a binary Slackware tgz Package on #DATE#.
Copyright: Unknown

54
lib/to-deb/tgz/rules Normal file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/make -f
#
# This is a special rules files for handling alien or binary packages
# Christoph Lameter, October 30, 1996
package=#NAME#
debian/build:
$(checkdir)
touch debian/build
clean:
$(checkdir)
-rm -f debian/build
-rm -rf *~ debian/tmp debian/*~ debian/files*
binary-indep: checkroot debian/build
$(checkdir)
# There are no architecture-independent files to be uploaded
# generated by this package. If there were any they would be
# made here.
binary-arch: checkroot debian/build
$(checkdir)
-rm -rf debian/tmp
# Install binary package
install -d debian/tmp
cp -a `ls | grep -v debian` debian/tmp
#
# If you need to move files around in debian/tmp or do some
# binary patching ... Insert it here
#
debstd
dpkg-gencontrol
dpkg --build debian/tmp ..
define checkdir
test -f debian/rules
endef
# Below here is fairly generic really
binary: binary-indep binary-arch
build: debian/build
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
checkroot:
$(checkdir)
test root = "`whoami`"
.PHONY: binary binary-arch binary-indep clean checkroot

14
lib/to-rpm/deb/spec Normal file
View File

@@ -0,0 +1,14 @@
Buildroot: #BUILDROOT#
Name: #NAME#
Version: #VERSION#
Release: #RELEASE#
Summary: #SUMMARY#
Copyright: #COPYRIGHT#
Distribution: #DISTRIBUTION#
Group: Converted/#DISTRIBUTION#
%description
#DESCRIPTION#
%files
#FILELIST#

86
lib/todeb.pl Normal file
View File

@@ -0,0 +1,86 @@
#!/usr/bin/perl
#
# Package for converting to .deb file.
# Create debian/* files, either from a patch, or automatically.
sub Convert { my ($workdir,%fields)=@_;
if ($generate && !$single) {
SafeSystem("cp -fa $workdir $workdir.orig", "Error creating $workdir.orig");
}
# Make sure package name is all lower case.
$fields{NAME}=lc($fields{NAME});
# Fix up the description field to Debian standards (indented at
# least one space, no empty lines.)
my $description=undef;
foreach $line (split(/\n/,$fields{DESCRIPTION})) {
$line=~s/\t/ /g; # change tabs to spaces.
$line=~s/\s+$//g; # remove trailing whitespace.
if (!$line) { # empty lines
$line=" .";
}
else { # normal lines
$line=" $line";
}
$description.=$line."\n";
}
chomp $description;
$fields{DESCRIPTION}=$description."\n";
# Do the actual conversion here.
mkdir "$fields{NAME}-$fields{VERSION}/debian",0755
|| Error("Unable to make debian directory");
$patchfile=GetPatch($fields{NAME}) if !$patchfile;
if ($patchfile) {
Patch($patchfile,$workdir);
}
else {
AutoDebianize($workdir,%fields);
}
chmod 0755,"$workdir/debian/rules";
# Make the .orig directory if we were instructed to do so.
if ($single) {
print "Directory $workdir prepared.\n";
}
elsif ($generate) {
print "Directories $workdir and $workdir.orig prepared.\n";
}
}
# Fill out templates to create debian/* files.
# Pass it the work directory, and the type of package we are debianizing.
sub AutoDebianize { my ($workdir,%fields)=@_;
Status("Automatic package debianization");
# Generate some more fields we need.
$fields{DATE}=GetDate();
$fields{EMAIL}=GetEmail();
$fields{USERNAME}=GetUserName();
# Fill out all the templates.
foreach $fn (glob("$libdir/to-$desttype/$filetype/*")) {
my $destfn=$fn;
$destfn=~s#^$libdir/to-$desttype/$filetype/##;
FillOutTemplate($fn,"$workdir/debian/$destfn",%fields);
}
}
# Passed the available info about the package in a hash, return the name of
# the debian package that will be made.
sub GetPackageName { my %fields=@_;
return "$fields{NAME}_$fields{VERSION}-$fields{RELEASE}_$fields{ARCH}.deb";
}
# Build the debian package.
sub Build {
SafeSystem("debian/rules binary","Package build failed.\n");
}
# Install the debian package that is passed.
sub Install { my $package=shift;
SafeSystem("dpkg -i $package");
}
1

72
lib/torpm.pl Normal file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/perl
#
# Package for converting to .rpm file.
# Generate the spec file.
sub Convert { my ($workdir,%fields)=@_;
Status("Automatic spec file generation");
# Create some more fields we will need.
my $pwd=`pwd`;
chomp $pwd;
$fields{BUILDROOT}="$pwd/$workdir"; # must be absolute filename.
# Remove directories from the filelist. Place %config in front of files
# that are conffiles.
my @conffiles=split(/\n/,$fields{CONFFILES});
my $filelist;
foreach $fn (split(/\n/,$fields{FILELIST})) {
if ($fn=~m:/$: eq undef) { # not a directory
if (grep(m:^$fn$:,@conffiles)) { # it's a conffile
$filelist.="%config $fn\n";
}
else { # normal file
$filelist.="$fn\n";
}
}
}
$fields{FILELIST}=$filelist;
FillOutTemplate("$libdir/to-$desttype/$filetype/spec",
"$workdir/$fields{NAME}-$fields{VERSION}-$fields{RELEASE}.spec",%fields);
if ($generate) {
print "Directory $workdir prepared.\n";
}
}
# Passed the available info about the package in a hash, return the name of
# the rpm package that will be made.
sub GetPackageName { my %fields=@_;
# Ask rpm how it's set up. We want to know what architecture it will output,
# and where it will place rpms.
my $rpmarch, $rpmdir;
foreach (`rpm --showrc`) {
chomp;
if (/^build arch\s+:\s(.*)$/) {
$rpmarch=$1;
}
elsif (/^rpmdir\s+:\s(.*)$/) {
$rpmdir=$1;
}
}
if (!$rpmarch || !$rpmdir) {
Error("rpm --showrc failed.");
}
return "$rpmdir/$rpmarch/$fields{NAME}-$fields{VERSION}-$fields{RELEASE}.$rpmarch.rpm";
}
# Build a rpm file.
sub Build { my (%fields)=@_;
SafeSystem("rpm -bb $ENV{RPMBUILDOPT} $fields{NAME}-$fields{VERSION}-$fields{RELEASE}.spec",
"Error putting together the RPM package.\n");
}
# Install the passed rpm file.
sub Install { my $package=shift;
SafeSystem("rpm -ivh $ENV{RPMINSTALLOPT} $package");
}
1

27
lib/totgz.pl Normal file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/perl
#
# Package for converting to .tgz file.
sub Convert { my ($workdir,%fields)=@_;
# Nothing to do.
}
# Passed the available info about the package in a hash, return the name of
# the tgz package that will be made.
sub GetPackageName { my %fields=@_;
return "$fields{NAME}.tgz";
}
# Build a tgz file.
sub Build { my (%fields)=@_;
SafeSystem("tar czf ../".GetPackageName(%fields)." .");
}
# Install the passed tgz file.
sub Install { my $package=shift;
# Not yet supported. (I really don't like unpacking tgz files into the
# root directory. :-)
print STDERR "Sorry, installing generated .tgz files in not yet supported.\n";
}
1

View File

@@ -0,0 +1,108 @@
--- applix-english-4.3.orig/debian/changelog
+++ applix-english-4.3/debian/changelog
@@ -0,0 +1,10 @@
+applix-english (4.3-2) unstable; urgency=low
+
+ * Converted from RPM binary format to debian
+
+ -- Joey Hess <joey@kite.ml.org> Fri, 16 May 1997 00:40:39 -0400
+
+
+Local variables:
+mode: debian-changelog
+End:
--- applix-english-4.3.orig/debian/control
+++ applix-english-4.3/debian/control
@@ -0,0 +1,14 @@
+Source: applix-english
+Section: unknown
+Priority: extra
+Maintainer: Joey Hess <joey@kite.ml.org>
+Standards-Version: 2.1.1.0
+
+Package: applix-english
+Architecture: i386
+Depends: applix
+Description: Applixware Menus and Help in English
+ This is a Converted RPM package.
+ .
+ The English versions of the menu structure and some of the
+ basic help documents, for applixware.
--- applix-english-4.3.orig/debian/copyright
+++ applix-english-4.3/debian/copyright
@@ -0,0 +1,17 @@
+This package was debianized by the alien program by converting
+a binary RPM Package on Fri, 16 May 1997 00:40:39 -0400.
+
+Copyright: Commercial software. Do not distribute.
+
+Information from the binary Package:
+Name : applix-english Distribution: Applixware for Red Hat Linux
+Version : 4.3 Vendor: Red Hat Software
+Release : 1 Build Date: Thu Mar 20 15:25:05 1997
+Install date: (none) Build Host: imp.redhat.com
+Group : X11/Applications Source RPM: applix-4.3-1.nosrc.rpm
+Size : 53181805
+Summary : Applixware Menus and Help in English
+Description :
+The English versions of the menu structure and some of the
+basic help documents.
+
--- applix-english-4.3.orig/debian/rules
+++ applix-english-4.3/debian/rules
@@ -0,0 +1,55 @@
+#!/usr/bin/make -f
+#
+# This is a special rules files for handling alien or binary packages
+# Christoph Lameter, October 30, 1996
+
+package=applix-english
+
+debian/build:
+ $(checkdir)
+ touch debian/build
+
+clean:
+ $(checkdir)
+ -rm -f debian/build
+ -rm -rf *~ debian/tmp debian/*~ debian/files*
+
+binary-indep: checkroot debian/build
+ $(checkdir)
+# There are no architecture-independent files to be uploaded
+# generated by this package. If there were any they would be
+# made here.
+
+binary-arch: checkroot debian/build
+ $(checkdir)
+ -rm -rf debian/tmp
+# Install binary package
+ install -d debian/tmp
+ install -d debian/tmp/usr/X11R6/lib/X11
+ # Moving the files like this is a little nasty, but this way we
+ # need far less disk space to build the package..
+ mv opt/applix debian/tmp/usr/X11R6/lib/X11
+ chmod +rx debian/tmp/usr/X11R6/lib/X11/applix debian/tmp/usr/X11R6/lib/X11/applix/axdata debian/tmp/usr/X11R6/lib/X11/applix/axdata/elflib
+ debstd
+ dpkg-gencontrol
+ dpkg --build debian/tmp ..
+ mv debian/tmp/usr/X11R6/lib/X11/applix opt
+
+define checkdir
+ test -f debian/rules
+endef
+
+# Below here is fairly generic really
+
+binary: binary-indep binary-arch
+
+build: debian/build
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+checkroot:
+ $(checkdir)
+ test root = "`whoami`"
+
+.PHONY: binary binary-arch binary-indep clean checkroot

126
patches/applix_4.2-2.diff Normal file
View File

@@ -0,0 +1,126 @@
--- applix-4.2.orig/debian/changelog
+++ applix-4.2/debian/changelog
@@ -0,0 +1,9 @@
+applix (4.2-2) unstable; urgency=low
+
+ * Converted from RPM binary format to debian
+
+ -- Joey Hess <joey@kite.ml.org> Fri, 31 Jan 1997 22:50:29 -0500
+
+Local variables:
+mode: debian-changelog
+End:
--- applix-4.2.orig/debian/control
+++ applix-4.2/debian/control
@@ -0,0 +1,12 @@
+Source: applix
+Section: unknown
+Priority: extra
+Maintainer: Joey Hess <joey@kite.ml.org>
+Standards-Version: 2.1.1.0
+
+Package: applix
+Architecture: i386
+Depends: ${shlibs:Depends}
+Description: A Complete X Windows based Office Suite
+ Redhat's Applixware, a Office Suite for X.
+ This is a Converted RPM package.
--- applix-4.2.orig/debian/copyright
+++ applix-4.2/debian/copyright
@@ -0,0 +1,15 @@
+This package was debianized by the alien program by converting
+a binary RPM Package on Fri, 31 Jan 1997 22:50:29 -0500.
+
+Copyright: Commercial software. Do not distribute.
+
+Information from the binary Package:
+Name : applix Distribution: Red Hat Linux Rembrandt
+Version : 4.2 Vendor: Red Hat Software
+Release : 2 Build Date: Wed Jul 03 12:13:21 1996
+Install date: (none) Build Host: porky.redhat.com
+Group : X11/Applications Source RPM: applix-4.2-2.src.rpm
+Size : 150073902
+Summary : (none)
+Description :
+A Complete X Windows based Office Suite
--- applix-4.2.orig/debian/rules
+++ applix-4.2/debian/rules
@@ -0,0 +1,57 @@
+#!/usr/bin/make -f
+#
+# This is a special rules files for handling alien or binary packages
+# Christoph Lameter, October 30, 1996
+
+package=applix
+
+debian/build:
+ $(checkdir)
+ touch debian/build
+
+clean:
+ $(checkdir)
+ -rm -f debian/build
+ -rm -rf *~ debian/tmp debian/*~ debian/files*
+
+binary-indep: checkroot debian/build
+ $(checkdir)
+# There are no architecture-independent files to be uploaded
+# generated by this package. If there were any they would be
+# made here.
+
+binary-arch: checkroot debian/build
+ $(checkdir)
+ -rm -rf debian/tmp
+# Install binary package
+ install -d debian/tmp
+ install -d debian/tmp/usr/X11R6/bin
+ install opt/bin/applix debian/tmp/usr/X11R6/bin
+ install -d debian/tmp/usr/X11R6/lib/X11
+ # Moving the files like this is a little nasty, but this way we
+ # need far less disk space to build the package..
+ mv opt/applix debian/tmp/usr/X11R6/lib/X11
+ chmod +rx debian/tmp/usr/X11R6/lib/X11/applix
+ debstd
+ dpkg-gencontrol
+ dpkg --build debian/tmp ..
+ mv debian/tmp//usr/X11R6/lib/X11/applix opt
+
+define checkdir
+ test -f debian/rules
+endef
+
+# Below here is fairly generic really
+
+binary: binary-indep binary-arch
+
+build: debian/build
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+checkroot:
+ $(checkdir)
+ test root = "`whoami`"
+
+.PHONY: binary binary-arch binary-indep clean checkroot
--- applix-4.2.orig/debian/README.debian
+++ applix-4.2/debian/README.debian
@@ -0,0 +1,7 @@
+This is a converted RPM package.
+
+I decided to move the files out of /opt, since debian doesn't have an /opt
+yet. If the applix manual talks about files in /opt, look in
+/usr/X11R6/lib/X11/applix, instead.
+
+-- Joey Hess
--- applix-4.2.orig/debian/menu
+++ applix-4.2/debian/menu
@@ -0,0 +1 @@
+x11 Apps/Editors applix none "Applixware" applix
--- applix-4.2.orig/opt/bin/applix
+++ applix-4.2/opt/bin/applix
@@ -1,3 +1,3 @@
#!/bin/sh
-/opt/applix/applix $*
+/usr/X11R6/lib/X11/applix/applix $*

163
patches/applix_4.3-2.diff Normal file
View File

@@ -0,0 +1,163 @@
--- applix-4.3.orig/debian/changelog
+++ applix-4.3/debian/changelog
@@ -0,0 +1,9 @@
+applix (4.3-2) unstable; urgency=low
+
+ * Converted from RPM binary format to debian
+
+ -- Joey Hess <joey@kite.ml.org> Thu, 15 May 1997 21:32:19 -0400
+
+Local variables:
+mode: debian-changelog
+End:
--- applix-4.3.orig/debian/control
+++ applix-4.3/debian/control
@@ -0,0 +1,18 @@
+Source: applix
+Section: unknown
+Priority: extra
+Maintainer: Joey Hess <joey@kite.ml.org>
+Standards-Version: 2.1.1.0
+
+Package: applix
+Architecture: i386
+Depends: ${shlibs:Depends}
+Description: A Complete X Windows based Office Suite
+ Redhat's Applixware, a Office Suite for X.
+ This is a Converted RPM package.
+ .
+ Applixware is a complete X-Window-based Office Suite which provides
+ word processing, spreadsheet, presentation graphics, and more.
+ Applixware also includes Applix Builder, a graphical application builder
+ that allows you to build new applications that reuse Applixware
+ components.
--- applix-4.3.orig/debian/copyright
+++ applix-4.3/debian/copyright
@@ -0,0 +1,20 @@
+This package was debianized by the alien program by converting
+a binary RPM Package on Thu, 15 May 1997 21:33:36 -0400
+
+Copyright: Commercial software. Do not distribute.
+
+Information from the binary Package:
+
+Name : applix Distribution: Applixware for Red Hat Linux
+Version : 4.3 Vendor: Red Hat Software
+Release : 1 Build Date: Thu Mar 20 15:25:05 1997
+Install date: (none) Build Host: imp.redhat.com
+Group : X11/Applications Source RPM: applix-4.3-1.nosrc.rpm
+Size : 57787719
+Summary : A Complete X-Window-based Office Suite
+Description :
+Applixware is a complete X-Window-based Office Suite which provides
+word processing, spreadsheet, presentation graphics, and more.
+Applixware also includes Applix Builder, a graphical application builder
+that allows you to build new applications that reuse Applixware
+components.
--- applix-4.3.orig/debian/rules
+++ applix-4.3/debian/rules
@@ -0,0 +1,57 @@
+#!/usr/bin/make -f
+#
+# This is a special rules files for handling alien or binary packages
+# Christoph Lameter, October 30, 1996
+
+package=applix
+
+debian/build:
+ $(checkdir)
+ touch debian/build
+
+clean:
+ $(checkdir)
+ -rm -f debian/build
+ -rm -rf *~ debian/tmp debian/*~ debian/files*
+
+binary-indep: checkroot debian/build
+ $(checkdir)
+# There are no architecture-independent files to be uploaded
+# generated by this package. If there were any they would be
+# made here.
+
+binary-arch: checkroot debian/build
+ $(checkdir)
+ -rm -rf debian/tmp
+# Install binary package
+ install -d debian/tmp
+ install -d debian/tmp/usr/X11R6/bin
+ cd debian/tmp/usr/X11R6/bin && ln -sf ../lib/X11/applix/bin/applix
+ install -d debian/tmp/usr/X11R6/lib/X11
+ # Moving the files like this is a little nasty, but this way we
+ # need far less disk space to build the package..
+ mv opt/applix debian/tmp/usr/X11R6/lib/X11
+ chmod +rx debian/tmp/usr/X11R6/lib/X11/applix debian/tmp/usr/X11R6/lib/X11/applix/axdata/elflib
+ debstd
+ dpkg-gencontrol
+ dpkg --build debian/tmp ..
+ mv debian/tmp/usr/X11R6/lib/X11/applix opt
+
+define checkdir
+ test -f debian/rules
+endef
+
+# Below here is fairly generic really
+
+binary: binary-indep binary-arch
+
+build: debian/build
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+checkroot:
+ $(checkdir)
+ test root = "`whoami`"
+
+.PHONY: binary binary-arch binary-indep clean checkroot
--- applix-4.3.orig/debian/README.debian
+++ applix-4.3/debian/README.debian
@@ -0,0 +1,7 @@
+This is a converted RPM package.
+
+I decided to move the files out of /opt, since debian doesn't have an /opt
+yet. If the applix manual talks about files in /opt, look in
+/usr/X11R6/lib/X11/applix, instead.
+
+-- Joey Hess
--- applix-4.3.orig/debian/menu
+++ applix-4.3/debian/menu
@@ -0,0 +1 @@
+?package(applix):needs="x11" section="Apps/Editors" title="Applixware" command="applix"
--- applix-4.3.orig/opt/applix/bin/applix
+++ applix-4.3/opt/applix/bin/applix
@@ -1,11 +1,8 @@
#!/bin/bash
# Get the current prefix for the applix package:
-if PRE=$(rpm -q --qf '%{INSTALLPREFIX}' applix 2>/dev/null) ; then : ; else
- # applix has not been installed with RPM on this system. Assume that
- # it is in /opt
- PRE=/opt
-fi
+# Mod for debian:
+PRE=/usr/X11R6/lib/X11
# Choose a default language: Set one of these variables before running
# this script and you will choose the language you want. Otherwise,
@@ -32,11 +29,12 @@
# We'll enforce 5.3.12 for greatest stability
ldd $PRE/applix/applix | grep "5\.3\.12" >/dev/null 2>&1 || {
[ -d $PRE/applix/lib ] || {
- echo "Please install the applix-libs package; applix may not" >&2
+ # mod for debian: just warn, don't force them to hit enter.
+ echo "You should condsider installing the applix-libs package; applix may not" >&2
echo "work with your current C library. " >&2
- echo >&2
- echo "Press enter to continue and try to run Applix anyway," >&2
- echo -n "or press control-c to abort:" >&2
+# echo >&2
+# echo "Press enter to continue and try to run Applix anyway," >&2
+# echo -n "or press control-c to abort:" >&2
}
export LD_LIBRARY_PATH=$PRE/applix/lib/:$LD_LIBRARY_PATH
}