Initial revision

This commit is contained in:
joey
1999-09-05 06:03:10 +00:00
parent ad046046f0
commit e546405fae
25 changed files with 2751 additions and 0 deletions

1
TODO Normal file
View File

@@ -0,0 +1 @@
* handling postinst script when converting to/from .slp packages.

15
gendiff.txt Normal file
View File

@@ -0,0 +1,15 @@
Alien can use special diff files to help make alien packages conform to
debian policy. This is only used when you are converting to deb format. This
documents breifly explains how to make them. It assumes you are familiar with
working with debian source packages.
* Use "alien -g file.rpm" to generate a "source" directory tree.
* Make whatever changes you need to make to debian/rules, add other files,
whatever.
* Use dpkg-buildpackage to generate a standard debian .diff.gz file, and
stick it in /var/lib/alien.
* Test "alien file.rpm" - it should use your diff. If it works properly,
(it's best if lintian is happy with the resulting .deb too), send the
.diff.gz file to me for inclusion in alien.
-- Joey Hess <joeyh@master.debian.org>

175
lib/Alien.pm Normal file
View File

@@ -0,0 +1,175 @@
#!/usr/bin/perl
#
# Misc. functions used by alien.
package Alien;
use strict;
# Print out a status line.
sub Status { my $message=shift;
print "-- $message\n";
}
# Print out an error message and exit the program.
sub Error { my $message=shift;
print STDERR "alien: $message\n";
exit 1;
}
# Run a system command, and print an error message if it fails.
# The errormessage parameter is optional.
sub SafeSystem { my ($command,$errormessage)=@_;
my $ret=system $command;
if (int($ret/256) > 0) {
$errormessage="Error running: $command" if !$errormessage;
Error($errormessage);
}
}
# Make the passed directory. Exits with error if the directory already
# exists.
sub SafeMkdir { my ($dir)=@_;
if (-e $dir) {
Error("Directory $dir already exists.\nRemove it and re-run alien.");
}
mkdir $dir,0755 || Error("Unable to make directory, \"$dir\": $!");
}
# Pass the filename of a package.
# Returns "rpm" or "tgz" or "deb", depending on what it thinks the file type
# is, based on the filename.
# Perhaps this should call file(1), instead?
#
# Note that the file type this returns corresponds to directories in
# $libdir.
sub FileType { my $file=shift;
if ($file=~m/.*\.rpm/ ne undef) {
return 'rpm';
}
elsif ($file=~m/.*\.(tgz|tar\.gz)/ ne undef) {
return 'tgz';
}
elsif ($file=~m/.*\.deb/ ne undef) {
return 'deb';
}
else {
Error("Format of filename bad: $file");
}
}
# Pass this the name and version and revision of a package, it will return the
# filename of a patch file for the package or undef if there is none.
sub GetPatch { my ($name,$version,$revision)=@_;
my @patches=glob("$main::patchdir/$name\_$version-$revision*.diff.gz");
if ($#patches < 0) {
# try not matching the revision, see if that helps.
@patches=glob("$main::patchdir/$name\_$version*.diff.gz");
if ($#patches < 0) {
# fallback to anything that matches the name.
@patches=glob("$main::patchdir/$name\_*.diff.gz");
}
}
# If we ended up with multiple matches, return the first.
return $patches[0];
}
# Apply the given patch file to the given subdirectory.
sub Patch { my ($patchfile,$subdir)=@_;
Status("Patching in $patchfile");
chdir $subdir;
# cd .. here in case the patchfile's name was a relative path.
# The -f passed to zcat makes it pass uncompressed files through
# without error.
SafeSystem("(cd ..;zcat -f $patchfile) | patch -p1","Patch error.\n");
# look for .rej files
if (`find . -name "*.rej"`) {
Error("Patch failed: giving up.");
}
SafeSystem('find . -name \'*.orig\' -exec rm {} \\;',"Error removing .orig files");
chdir "..";
}
# Returns the 822-date.
sub GetDate {
my $date=`822-date`;
chomp $date;
if (!$date) {
Error("822-date did not return a valid result.\n");
}
return $date;
}
# Returns a email address for the current user.
sub GetEmail {
if (!$ENV{EMAIL}) {
my $login = getlogin || (getpwuid($<))[0] || $ENV{USER};
open (MAILNAME,"</etc/mailname");
my $mailname=<MAILNAME>;
chomp $mailname;
close MAILNAME;
if (!$mailname) {
$mailname=`hostname -f`;
chomp $mailname;
}
return "$login\@$mailname";
}
else {
return $ENV{EMAIL};
}
}
# Returns the user name of the user who is running this.
sub GetUserName {
my $username;
my $username_in_passwd=undef;
my $login = getlogin || (getpwuid($<))[0] || $ENV{USER};
open (PASSWD,"</etc/passwd");
while (<PASSWD>) {
my (@fields)=split(/:/,$_);
if ($fields[0] eq $login) {
$username=$fields[4];
$username_in_passwd=1; # don't try NIS, no matter what.
close PASSWD;
}
}
close PASSWD;
if (!$username_in_passwd && !$username && -x "/usr/bin/ypmatch") {
# Give NIS a try.
open (YPMATCH,"ypmatch $login passwd.byname |");
my (@fields)=split(/:/,<YPMATCH>);
$username=$fields[4];
close YPMATCH;
}
# Remove GECOS(?) fields from username.
$username=~s/,.*//g;
# The ultimate fallback.
if (!$username) {
$username=$login;
}
return $username;
}
# Fill out a template, and save it to the passed location.
# The hash that is passed to this function lists the tags that can be onthe
# template, and the values to fill in for those tags.
sub FillOutTemplate { my ($fn,$destfn,%fields)=@_;
open (IN,"<$fn") || Error("$fn: $!");
open (OUT,">$destfn") || Error("$destfn: $!");
while (<IN>) {
s/#(.*?)#/$fields{$1}/g;
print OUT $_;
}
close OUT;
close IN;
}
1

131
lib/Fromdeb.pm Normal file
View File

@@ -0,0 +1,131 @@
#!/usr/bin/perl
#
# Package for converting from a .deb file.
package From::deb;
use strict;
# Global variable initialization.
# This is set to 1 if dpkg-deb is in the path.
my $dpkg_deb=undef;
my $dir;
foreach $dir (split(/:/,$ENV{PATH})) {
if (-x "$dir/dpkg-deb") {
$dpkg_deb=1;
last;
}
}
# 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 ($self,$file)=@_;
my %fields;
# Extract the control file from the deb file.
my @control;
if ($dpkg_deb) {
@control = `dpkg-deb --info $file control`;
}
else {
@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;
} else {
$fields{RELEASE} = '1';
}
# Just get rid of epochs for now.
if ($fields{VERSION} =~ /\d+:(.*)/) {
$fields{VERSION} = $1;
}
# Read in the list of conffiles, if any.
if ($dpkg_deb) {
$fields{CONFFILES}=`dpkg-deb --info $file conffiles 2>/dev/null`;
}
else {
$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;
if ($dpkg_deb) {
my $fn;
foreach $fn (`dpkg-deb --fsys-tarfile $file | tar tf -`) {
$fields{FILELIST}.="/$fn";
}
}
else {
my $fn;
foreach $fn (`ar p $file data.tar.gz | tar tzf -`) {
$fields{FILELIST}.="/$fn";
}
}
if ($main::scripts) {
# Read in the scripts, if any.
my $field;
for $field ('postinst', 'postrm', 'preinst', 'prerm') {
if ($dpkg_deb) {
$fields{uc($field)}=`dpkg-deb --info $file $field 2>/dev/null`;
}
else {
$fields{uc($field)}=
`ar p $file control.tar.gz | tar Oxzf - $field 2>/dev/null`;
}
}
}
$fields{RELEASE}++ unless $main::keep_version;
return %fields;
}
# Handles unpacking of debs.
sub Unpack { my ($self,$file,%fields)=@_;
if ($dpkg_deb) {
Alien::SafeSystem ("(cd ..;dpkg-deb -x $file $fields{NAME}-$fields{VERSION})",
"Error unpacking $file\n");
}
else {
Alien::SafeSystem ("(cd ..;ar p $file data.tar.gz) | tar zxpf -",
"Error unpacking $file\n");
}
}
1

128
lib/Fromrpm.pm Normal file
View File

@@ -0,0 +1,128 @@
#!/usr/bin/perl
#
# Package for converting from a .rpm file.
package From::rpm;
use strict;
# 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 ($self,$file)=@_;
my %fields;
# This maps rpm fields (the keys) to the name we want
# for each field (the values).
my %fieldtrans;
# Get the scripts fields too?
if ($main::scripts) {
%fieldtrans=(
'PREIN' => 'PREINST',
'POSTIN' => 'POSTINST',
'PREUN' => 'PRERM',
'POSTUN' => 'POSTRM',
);
}
# These fields need no translation.
my $field;
foreach $field ('NAME','VERSION','RELEASE','ARCH','CHANGELOGTEXT','SUMMARY',
'DESCRIPTION', 'COPYRIGHT', 'DEFAULTPREFIX') {
$fieldtrans{$field}=$field;
}
# Use --queryformat to pull out all the fields we need.
foreach $field (keys(%fieldtrans)) {
$_=`rpm -qp $file --queryformat \%{$field}`;
$fields{$fieldtrans{$field}}=$_ if $_ ne '(none)';
}
if ($main::scripts) {
# Fix up the scripts - they are always shell scripts, so make them so.
foreach $field ('PREINST','POSTINST','PRERM','POSTRM') {
$fields{$field}="#!/bin/sh\n$fields{$field}" if $fields{$field};
}
}
# Get the conffiles list.
# TOCHECK: if this is a relocatable package and DEFAULTPREFIX is set,
# do we need to prepend DEFAULTPREFIX to each of these filenames?
$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';
}
elsif ($fields{ARCH} eq "noarch") { # noarch = all
$fields{ARCH}='all';
}
if ($fields{RELEASE} eq undef || $fields{VERSION} eq undef|| !$fields{NAME}) {
Alien::Error("Error querying rpm file.");
}
$fields{RELEASE}++ unless $main::keep_version;
$fields{DISTRIBUTION}="Red Hat";
return %fields;
}
# Unpack a rpm file.
sub Unpack { my ($self,$file,%fields)=@_;
Alien::SafeSystem("(cd ..;rpm2cpio $file) | cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time",
"Error unpacking $file\n");
if ($fields{DEFAULTPREFIX} ne undef) {
print "Moving unpacked files into $fields{DEFAULTPREFIX}\n";
# We have extracted the package, but it's in the wrong place. Move it
# to be under the DEFAULTPREFIX directory.
# First, get a list of files to move.
my $filelist=join ' ',glob('*');
# Now, make the destination directory.
my $collect=undef;
foreach (split(m:/:,$fields{DEFAULTPREFIX})) {
if ($_ ne undef) { # this keeps us from using anything but relative paths.
$collect.="$_/";
mkdir $collect,0755 || Alien::Error("Unable to make directory: $collect: $!");
}
}
# Now move all files in the package to the directory we made.
Alien::SafeSystem("mv $filelist ./$fields{DEFAULTPREFIX}",
"Error moving unpacked files into the default prefix directory\n");
}
}
1

139
lib/Fromslp.pm Normal file
View File

@@ -0,0 +1,139 @@
#!/usr/bin/perl
#
# Package for converting from a .slp (Stampede) file.
package From::slp;
use strict;
# Becuase .slp files are a binary format we parse by hand, I need to code in
# the details of the structure here.
# Complete sizeof(slpformat) from slp.h in the stampede package manager source.
$From::slp::footer_size=3784;
# This is the pack format string for the footer.
$From::slp::footer_packstring="A756IIIIA128A128A80A1536A512A512A30A30IA20A20III";
# What package format are we up to now? (Lowest one this is still compatable
# with.)
$From::slp::footer_version=5;
# Pass it a chunk of footer, it will attempt a decode and spit back the result
# in a hash, %fields.
sub DecodeFooter { my $footer=shift;
my %fields;
($fields{CONFFILES},
$fields{PRIORITY},
$fields{COMPRESSTYPE},
$fields{RELEASE},
$fields{COPYRIGHT},
$fields{CONFLICTS},
$fields{SETUPSCRIPT},
$fields{SUMMARY},
$fields{DESCRIPTION},
$fields{DEPENDS},
$fields{PROVIDES},
$fields{AUTHOR},
$fields{DATE},
$fields{COMPILER},
$fields{VERSION},
$fields{NAME},
$fields{ARCH},
$fields{GROUP},
$fields{SLPKGVERSION},
)=unpack($From::slp::footer_packstring,$footer);
# A simple sanity check.
if (! $fields{SLPKGVERSION} || $fields{SLPKGVERSION} < $From::slp::footer_version) {
Alien::Error("This is not a V$From::slp::footer_version or greater Stampede package");
}
return %fields;
}
# Pass it a filename of a .slp file, it will pull out a footer and return it
# in a scalar.
sub GetFooter { my ($filename)=@_;
open (SLP,"<$filename") || Alien::Error("unable to read $filename: $!");
seek SLP,(-1 * $From::slp::footer_size),2; # position at beginning of footer (2 = seek from EOF)
read SLP,$_,$From::slp::footer_size;
close SLP;
return $_;
}
# Query a slp file for fields, and return a hash of the fields found.
# Pass the filename of the slp file to query.
sub GetFields { my ($self,$file)=@_;
my %fields=DecodeFooter(GetFooter($file));
# Massage the fields into appropriate formats.
if ($fields{CONFFILES}) {
$fields{CONFFILES}=~s/:/\n/g;
$fields{CONFFILES}.="\n";
}
if ($fields{COPYRIGHT} == 0) {
$fields{COPYRIGHT}="GPL";
}
elsif ($fields{COPYRIGHT} == 1) {
$fields{COPYRIGHT}="BSD";
}
elsif ($fields{COPYRIGHT} == 2) {
$fields{COPYRIGHT}="LGPL";
}
elsif ($fields{COPYRIGHT} == 3) {
$fields{COPYRIGHT}="unknown";
}
else {
Alien::Warning("I don't know what copyright type \"$fields{COPYRIGHT}\" is.");
$fields{COPYRIGHT}="unknown";
}
if ($fields{ARCH} == 0) {
$fields{ARCH}='all';
}
elsif ($fields{ARCH} == 1) {
$fields{ARCH}='i386';
}
elsif ($fields{ARCH} == 2) {
$fields{ARCH}='sparc';
}
elsif ($fields{ARCH} == 3) {
$fields{ARCH}='alpha';
}
elsif ($fields{ARCH} == 4) {
$fields{ARCH}='powerpc';
}
elsif ($fields{ARCH} == 5) {
$fields{ARCH}='m68k';
}
else {
Alien::Error("An unknown architecture of \"$fields{ARCH}\" was specified.");
}
$fields{RELEASE}++ unless $main::keep_version;
$fields{DISTRIBUTION}="Stampede";
# Read in the list of all files.
# Note that they will have a leading "." we don't want.
$fields{FILELIST}=undef;
my $fn;
foreach $fn (`tar -Itf $file`) {
$fn=~s/^\.//;
$fields{FILELIST}.="$fn\n";
}
# TODO: read in postinst script.
return %fields;
}
# Unpack a slp file.
sub Unpack { my ($self,$file,%fields)=@_;
# Note it's a .tar.bz2, this the -I
Alien::SafeSystem ("(cd ..;cat $file) | tar Ixpf -","Error unpacking $file\n");
}
1

96
lib/Fromtgz.pm Normal file
View File

@@ -0,0 +1,96 @@
#!/usr/bin/perl
#
# Package for converting from a tgz file.
package From::tgz;
use strict;
# 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 ($self,$file)=@_;
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';
if ($main::tgzdescription eq undef) {
$fields{SUMMARY}='Converted Slackware tgz package';
}
else {
$fields{SUMMARY}=$main::tgzdescription;
}
$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/ |")
|| Alien::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.
# We have to ignore all files under /install/
$fields{FILELIST}='';
open (FILELIST, "tar ztf $file |");
while (<FILELIST>) {
if ($_=~m:^install/: eq undef) {
$fields{FILELIST}.="/$_";
}
}
close FILELIST;
# Now get the scripts.
if ($main::scripts) {
my %scripttrans=(
'doinst.sh' => 'POSTINST',
'delete.sh' => 'POSTRM',
'predelete.sh' => 'PRERM',
'predoinst.sh' => 'PREINST',
);
my $script;
foreach $script (keys(%scripttrans)) {
$fields{$scripttrans{$script}}=
`tar Oxzf $file install/$script 2>/dev/null`;
}
}
return %fields;
}
# Handles unpacking of tgz's.
sub Unpack { my ($self,$file)=@_;
Alien::SafeSystem ("(cd ..;cat $file) | tar zxpf -","Error unpacking $file\n");
# Delete this install directory that has slackware info in it.
Alien::SafeSystem ("rm -rf install");
}
1

41
lib/Slp.pm Normal file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/perl
# Becuase .slp files are a binary format we parse by hand, I need to code in
# the details of the structure here.
package slp;
use strict;
# Complete sizeof(slpformat) from slp.h in the stampede package manager source.
$slp::footer_size=3784;
# This is the pack format string for the footer.
# (A=space terminated character, I=unsigned integer.)
$slp::footer_packstring="A756IIIIA128A128A80A1536A512A512A30A30IA20A20III";
# What package format are we up to now? (Lowest one this is still compatable
# with.)
$slp::footer_version=5;
# This is a translation table between architectures and the number
# that represents them in a slp package.
$slp::archtrans={
0 => 'all',
1 => 'i386',
2 => 'sparc',
3 => 'alpha',
4 => 'powerpc',
5 => 'm68k',
};
# This is a translation table between copyrights and the number that
# represents them in a slp package
$slp::copyrighttrans={
0 => 'GPL',
1 => 'BSD',
2 => 'LGPL',
3 => 'unknown',
254 => 'unknown',
};
1

113
lib/Todeb.pm Normal file
View File

@@ -0,0 +1,113 @@
#!/usr/bin/perl
#
# Package for converting to .deb file.
package To::deb;
use strict;
# Mangle the fields to fit debian standards.
sub FixFields { my ($self,%fields)=@_;
# Make sure package name is all lower case.
$fields{NAME}=lc($fields{NAME});
# Make sure the package name contains no invalid characters.
$fields{NAME} =~ tr/_/-/;
$fields{NAME} =~ s/[^a-z0-9-\.\+]//g;
# Fix up the description field to Debian standards (indented at
# least one space, no empty lines.)
my $description=undef;
my $line;
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";
return %fields;
}
# Create debian/* files, either from a patch, or automatically.
sub Convert { my ($self,$workdir,%fields)=@_;
if ($main::generate && !$main::single) {
Alien::SafeSystem("cp -fa $workdir $workdir.orig", "Error creating $workdir.orig");
}
# Do the actual conversion here.
mkdir "$fields{NAME}-$fields{VERSION}/debian",0755
|| Alien::Error("Unable to make debian directory");
my $patchfile=$main::patchfile;
$patchfile=Alien::GetPatch($fields{NAME},$fields{VERSION},$fields{RELEASE}) if !$patchfile;
if ($patchfile) {
Alien::Patch($patchfile,$workdir);
}
else {
$self->AutoDebianize($workdir,%fields);
}
chmod 0755,"$workdir/debian/rules";
# Make the .orig directory if we were instructed to do so.
if ($main::single) {
print "Directory $workdir prepared.\n";
}
elsif ($main::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 ($self,$workdir,%fields)=@_;
Alien::Status("Automatic package debianization");
# Generate some more fields we need.
$fields{DATE}=Alien::GetDate();
$fields{EMAIL}=Alien::GetEmail();
$fields{USERNAME}=Alien::GetUserName();
# Fill out all the templates.
my $fn;
foreach $fn (glob("$main::libdir/to-$main::desttype/$main::filetype/*")) {
my $destfn=$fn;
$destfn=~s#^$main::libdir/to-$main::desttype/$main::filetype/##;
Alien::FillOutTemplate($fn,"$main::workdir/debian/$destfn",%fields);
}
# Autogenerate the scripts without templates, so the scripts
# only exist if they need to.
my $script;
foreach $script ('postinst','postrm','preinst','prerm') {
if ($fields{uc($script)}) {
open (OUT,">$workdir/debian/$script") ||
Alien::Error("$workdir/debian/$script: $!");;
print OUT $fields{uc($script)};
close OUT;
}
}
}
# Passed the available info about the package in a hash, return the name of
# the debian package that will be made.
sub GetPackageName { my ($self,%fields)=@_;
return "$fields{NAME}_$fields{VERSION}-$fields{RELEASE}_$fields{ARCH}.deb";
}
# Build the debian package.
sub Build { my ($self)=@_;
Alien::SafeSystem("debian/rules binary","Package build failed.\n");
}
# Install the debian package that is passed.
sub Install { my ($self,$package)=@_;
Alien::SafeSystem("dpkg --no-force-overwrite -i $package");
}
1

109
lib/Torpm.pm Normal file
View File

@@ -0,0 +1,109 @@
#!/usr/bin/perl
#
# Package for converting to .rpm file.
package To::rpm;
use strict;
# Mangle the fields to make rpm happy with them.
sub FixFields { my ($self,%fields)=@_;
# Make sure the version has no dashes in it.
$fields{VERSION} =~ tr/-/_/;
# Fix up the scripts. Since debian/slackware scripts can be anything, even
# perl programs or binary files, and redhat is limited to only shell scripts,
# we need to encode the files and add a scrap of shell script to make it
# unextract and run on the fly.
my $field;
foreach $field ('POSTINST', 'POSTRM', 'PREINST', 'PRERM') {
if ($fields{$field}) {
$fields{$field}=
"rm -f /tmp/alien.$field\n".
qq{perl -pe '\$_=unpack("u",\$_)' << '__EOF__' > /tmp/alien.$field\n}.
pack("u",$fields{$field}).
"__EOF__\n".
"sh /tmp/alien.$field \"\$@\"\n".
"rm -f /tmp/alien.$field\n";
}
}
return %fields;
}
# Generate the spec file.
sub Convert { my ($self,$workdir,%fields)=@_;
Alien::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;
my $fn;
foreach $fn (split(/\n/,$fields{FILELIST})) {
if ($fn=~m:/$: eq undef) { # not a directory
my $efn=quotemeta($fn);
if (grep(m:^$efn$:,@conffiles)) { # it's a conffile
$filelist.="%config $fn\n";
}
else { # normal file
$filelist.="$fn\n";
}
}
}
$fields{FILELIST}=$filelist;
Alien::FillOutTemplate("$main::libdir/to-$main::desttype/$main::filetype/spec",
"$workdir/$fields{NAME}-$fields{VERSION}-$fields{RELEASE}.spec",%fields);
if ($main::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 ($self,%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) {
Alien::Error("rpm --showrc failed.");
}
# Debian's "all" architecture is a special case, and the output rpm will
# be a noarch rpm.
if ($fields{ARCH} eq 'all') { $rpmarch='noarch' }
return "$rpmdir/$rpmarch/$fields{NAME}-$fields{VERSION}-$fields{RELEASE}.$rpmarch.rpm";
}
# Build a rpm file.
sub Build { my ($self,%fields)=@_;
# Debian's "all" architecture is a special case where we make noarch rpms.
my $buildarch;
if ($fields{ARCH} eq 'all') { $buildarch="--buildarch noarch" }
Alien::SafeSystem("rpm $buildarch -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 ($self,$package)=shift;
Alien::SafeSystem("rpm -ivh $ENV{RPMINSTALLOPT} $package");
}
1

132
lib/Toslp.pm Normal file
View File

@@ -0,0 +1,132 @@
#!/usr/bin/perl
#
# Package for converting to stampede package format.
# Pull in details on the binary footer.
use Slp;
package To::slp;
use strict;
# Mangle the fields as necessary for a stampede package.
sub FixFields { my ($self,%fields)=@_;
# Mangle conffiles to the format they want.
$fields{CONFFILES}=~s/\n/:/g;
$fields{CONFFILES}=~s/:$//;
# Use priority optional for alien packages.
$fields{PRIORITY}=2;
# I always use bzip2 as the compression type.
$fields{COMPRESSTYPE}=0;
# Their version of release is a unsigned integer, so I need to
# convert anythnig more compilcated.
$fields{RELEASE}=int($fields{RELEASE});
# I don't try to guess copyright, just use unknown.
$fields{COPYRIGHT}=254;
# I don't try to fill these in with meaningful values.
$fields{CONFLICTS}="";
$fields{DEPENDS}="";
$fields{PROVIDES}="";
# TODO:
$fields{SETUPSTRIPT}=undef;
# Let's use the current date for this.
$fields{DATE}=`date`;
chomp $fields{DATE};
# Pick a compiler version.
if ($fields{ARCH} eq 'all') {
$fields{COMPILER}=253; # No compiler
}
else {
$fields{COMPILER}=252; # Unknown compiler
}
# Pick a binary format from the translation table.
$fields{BINFORMAT}=undef;
my $archnum;
foreach $archnum (keys %$slp::archtrans) {
if ($$slp::archtrans{$archnum} eq $fields{ARCH}) {
$fields{BINFORMAT} = $archnum;
last;
}
}
if ($fields{BINFORMAT} eq undef) {
Alien::Error("Stampede does not appear to support architecure $fields{ARCH} packages.");
}
# This is really the software category; use unknown.
$fields{GROUP}=252;
$fields{SLPKGVERSION}=$slp::footer_version;
return %fields;
}
# Do any necessary conversions on the file tree.
sub Convert { my ($self,$workdir,%fields)=@_;
}
# Passed the available info about the package in a hash, return the name of
# the slp package that will be made.
sub GetPackageName { my ($self,%fields)=@_;
return "$fields{NAME}-$fields{VERSION}.slp";
}
# Returns a slp footer in a scalar.
sub MakeFooter { my %fields=@_;
# We cannot use the actual $slp::footer_packstring, becuase it uses
# space terminated strings (A) instead of null terminated strings (a).
# This is good for decoding, but not for encoding.
$_=$slp::footer_packstring;
tr/A/a/;
return pack($_,(
$fields{CONFFILES},
$fields{PRIORITY},
$fields{COMPRESSTYPE},
$fields{RELEASE},
$fields{COPYRIGHT},
$fields{CONFLICTS},
$fields{SETUPSCRIPT},
$fields{SUMMARY},
$fields{DESCRIPTION},
$fields{DEPENDS},
$fields{PROVIDES},
$fields{AUTHOR},
$fields{DATE},
$fields{COMPILER},
$fields{VERSION},
$fields{NAME},
$fields{ARCH},
$fields{GROUP},
$fields{SLPKGVERSION},
));
}
# Build a slp file.
# This consists of first generating a .tar.bz2 file, and then appending the
# footer to it.
sub Build { my ($self,%fields)=@_;
# Note the -I is for making a .bzip2 file.
Alien::SafeSystem("tar cIf ../".$self->GetPackageName(%fields)." .");
# Now append the footer to that.
open (OUT,">>../".$self->GetPackageName(%fields)) ||
Alien::Error("Unable to append footer.");
print OUT MakeFooter(%fields);
close OUT;
}
# Install the passed slp file.
sub Install { my ($self,$package)=shift;
Alien::SafeSystem("slpi $package");
}
1

67
lib/Totgz.pm Normal file
View File

@@ -0,0 +1,67 @@
#!/usr/bin/perl
#
# Package for converting to .tgz file.
package To::tgz;
use strict;
sub FixFields { my ($self,%fields)=@_;
# Nothing to do.
return %fields;
}
sub Convert { my ($self,$workdir,%fields)=@_;
if ($main::scripts) {
my $install_made=undef;
my %scripttrans=(
'doinst.sh' => 'POSTINST',
'delete.sh' => 'POSTRM',
'predelete.sh' => 'PRERM',
'predoinst.sh' => 'PREINST',
);
my $script;
foreach $script (keys(%scripttrans)) {
if ($fields{$scripttrans{$script}}) {
if (!$install_made) {
Alien::Status("Setting up scripts.");
mkdir "$fields{NAME}-$fields{VERSION}/install",0755
|| Alien::Error("Unable to make install directory");
$install_made=1;
}
open (OUT,">$workdir/install/$script") ||
Alien::Error("$workdir/install/$script: $!");;
print OUT $fields{$scripttrans{$script}};
close OUT;
chmod 0755,"$workdir/install/$script";
}
}
}
}
# Passed the available info about the package in a hash, return the name of
# the tgz package that will be made.
sub GetPackageName { my ($self,%fields)=@_;
return "$fields{NAME}-$fields{VERSION}-$fields{RELEASE}.tgz";
}
# Build a tgz file.
sub Build { my ($self,%fields)=@_;
Alien::SafeSystem("tar czf ../".$self->GetPackageName(%fields)." .");
}
# Install the passed tgz file.
sub Install { my ($self,$package)=shift;
if (-x "/sbin/installpkg") {
Alien::SafeSystem("/sbin/installpkg $package");
}
else {
print STDERR "Sorry, I cannot install the generated .tgz file,\n";
print STDERR "\"$package\" because /sbin/installpkg is not\n";
print STDERR "present. You can use tar to install it yourself.\n";
exit 1; # otherwise alien will delete the package file on us.
}
}
1

4
lib/test Normal file
View File

@@ -0,0 +1,4 @@
use Alien;
use Fromslp;
%fields=From::slp::DecodeFooter(From::slp::GetFooter(shift));

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

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

54
lib/to-deb/rpm/rules Executable 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

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

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

10
lib/to-deb/slp/control Normal file
View File

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

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

@@ -0,0 +1,4 @@
This package was debianized by the alien program by converting
a Stampede linux Package on #DATE#.
Copyright: #COPYRIGHT#

View File

@@ -0,0 +1,104 @@
--- apxeng-4.4.1.orig/debian/changelog
+++ apxeng-4.4.1/debian/changelog
@@ -0,0 +1,9 @@
+apxeng (4.4.1-14) unstable; urgency=low
+
+ * Converted from RPM binary format to debian
+
+ -- Joey Hess <joey@kitenet.net> Wed, 7 Apr 1999 20:26:33 -0700
+
+Local variables:
+mode: debian-changelog
+End:
--- apxeng-4.4.1.orig/debian/control
+++ apxeng-4.4.1/debian/control
@@ -0,0 +1,9 @@
+Source: apxeng
+Section: alien
+Priority: extra
+Maintainer: Joey Hess <joey@kitenet.net>
+
+Package: apxeng
+Architecture: i386
+Description: ApplixWare Office (english)
+ This package contains the english version of ApplixWare Office.
--- apxeng-4.4.1.orig/debian/copyright
+++ apxeng-4.4.1/debian/copyright
@@ -0,0 +1,21 @@
+This package was debianized by the alien program by converting
+a binary RPM Package on Wed, 7 Apr 1999 20:26:33 -0700.
+
+Copyright: 1990-1998 Applix, Inc.
+
+Information from the binary Package:
+Name : apxeng Distribution: SuSE Linux 6.0-BETA (i386)
+Version : 4.4.1 Vendor: SuSE GmbH, Nuernberg, Germany
+Release : 13 Build Date: Tue Dec 1 01:36:41 1998
+Install date: (not installed) Build Host: neumann.suse.de
+Group : unsorted Source RPM: axbase-4.4.1-13.src.rpm
+Size : 17025358 License: 1990-1998 Applix, Inc.
+Packager : feedback@suse.de
+Summary : ApplixWare Office (english)
+Description :
+This package contains the english version of ApplixWare Office.
+
+Authors:
+--------
+ Eric Ding <ericding@applix.com>
+
--- apxeng-4.4.1.orig/debian/rules
+++ apxeng-4.4.1/debian/rules
@@ -0,0 +1,53 @@
+#!/usr/bin/make -f
+# debian/rules that uses debhelper and alien
+# GNU copyright 1997 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build:
+ dh_testdir
+ # Nothing to do.
+
+clean:
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+# Build architecture-independent files here.
+binary-indep: build
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build
+# dh_testversion
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ install -d debian/tmp/usr/X11R6/lib/X11
+ cp -a opt/* debian/tmp/usr/X11R6/lib/X11
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installinit
+ dh_installcron
+# dh_installmanpages
+# dh_undocumented
+ dh_installchangelogs
+# dh_strip
+ dh_compress
+ dh_fixperms
+ dh_suidregister
+ dh_installdeb
+ -dh_shlibdeps
+ dh_gencontrol
+ dh_makeshlibs
+ dh_md5sums
+ dh_builddeb
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary

View File

@@ -0,0 +1,150 @@
--- axbase-4.4.1.orig/usr/X11R6/bin/applixware
+++ axbase-4.4.1/usr/X11R6/bin/applixware
@@ -6,7 +6,7 @@
#
DBROOT=/dev/null
-APPLIX=/opt/applix/applix
+APPLIX=/usr/X11R6/lib/X11/applix/applix
#
# embedded jre is buggy
@@ -29,8 +29,8 @@
#
if [ ! -e ~/.odbc.ini ]; then
echo "Copying .odbc.ini to $HOME"
- test -f /usr/doc/packages/axbase/.odbc.ini && \
- cp /usr/doc/packages/axbase/.odbc.ini ${HOME}/.odbc.ini
+ test -f /usr/doc/axbase/.odbc.ini && \
+ cp /usr/doc/axbase/.odbc.ini ${HOME}/.odbc.ini
fi
#
--- axbase-4.4.1.orig/debian/changelog
+++ axbase-4.4.1/debian/changelog
@@ -0,0 +1,10 @@
+axbase (4.4.1-14) unstable; urgency=low
+
+ * Converted from RPM binary format to debian.
+ * Made it not use /opt at all.
+
+ -- Joey Hess <joey@kitenet.net> Wed, 7 Apr 1999 19:44:25 -0700
+
+Local variables:
+mode: debian-changelog
+End:
--- axbase-4.4.1.orig/debian/control
+++ axbase-4.4.1/debian/control
@@ -0,0 +1,12 @@
+Source: axbase
+Section: alien
+Priority: extra
+Maintainer: Joey Hess <joey@kitenet.net>
+
+Package: axbase
+Architecture: i386
+Depends: apxeng | apxgrm | apxfrn, axfont, ${shlibs:Depends}
+Description: base system of ApplixWare Office
+ This is the language independent part of ApplixWare Office for
+ linux. The language dependend part has to be installed in any
+ case. This package also contains Applix Builder and Applix Data.
--- axbase-4.4.1.orig/debian/copyright
+++ axbase-4.4.1/debian/copyright
@@ -0,0 +1,23 @@
+This package was debianized by the alien program by converting
+a binary RPM Package on Wed, 7 Apr 1999 19:44:25 -0700.
+
+Copyright: 1990-1998 Applix, Inc.
+
+Information from the binary Package:
+Name : axbase Distribution: SuSE Linux 6.0-BETA (i386)
+Version : 4.4.1 Vendor: SuSE GmbH, Nuernberg, Germany
+Release : 13 Build Date: Tue Dec 1 01:36:41 1998
+Install date: (not installed) Build Host: neumann.suse.de
+Group : unsorted Source RPM: axbase-4.4.1-13.src.rpm
+Size : 72974144 License: 1990-1998 Applix, Inc.
+Packager : feedback@suse.de
+Summary : base system of ApplixWare Office
+Description :
+This is the language independent part of ApplixWare Office for
+linux. The language dependend part has to be installed in any
+case. This package also contains Applix Builder and Applix Data.
+
+Authors:
+--------
+ Eric Ding <ericding@applix.com>
+
--- axbase-4.4.1.orig/debian/rules
+++ axbase-4.4.1/debian/rules
@@ -0,0 +1,57 @@
+#!/usr/bin/make -f
+# debian/rules that uses debhelper and alien
+# GNU copyright 1997 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build:
+ dh_testdir
+ # Nothing to do.
+
+clean:
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+# Build architecture-independent files here.
+binary-indep: build
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build
+# dh_testversion
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs usr/X11R6/bin 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
+ cp -a usr/X11R6/bin/* debian/tmp/usr/X11R6/bin/
+ dh_installdocs usr/doc/packages/axbase/.*
+ dh_installexamples usr/doc/packages/axbase/contrib
+ dh_installmenu
+# dh_installinit
+ dh_installcron
+# dh_installmanpages
+# dh_undocumented
+ dh_installchangelogs
+# dh_strip
+ dh_compress
+ dh_fixperms
+ dh_suidregister
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_makeshlibs
+ dh_md5sums
+ dh_builddeb
+ # Undo the move.
+ mv debian/tmp/usr/X11R6/lib/X11/applix opt
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary
--- axbase-4.4.1.orig/debian/README.Debian
+++ axbase-4.4.1/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
--- axbase-4.4.1.orig/debian/menu
+++ axbase-4.4.1/debian/menu
@@ -0,0 +1 @@
+?package(applix):needs="x11" section="Apps/Editors" title="Applixware" command="applixware"

View File

@@ -0,0 +1,114 @@
--- axfont-4.4.1.orig/debian/changelog
+++ axfont-4.4.1/debian/changelog
@@ -0,0 +1,9 @@
+axfont (4.4.1-14) unstable; urgency=low
+
+ * Converted from RPM binary format to debian.
+
+ -- Joey Hess <joey@kitenet.net> Wed, 7 Apr 1999 20:34:59 -0700
+
+Local variables:
+mode: debian-changelog
+End:
--- axfont-4.4.1.orig/debian/control
+++ axfont-4.4.1/debian/control
@@ -0,0 +1,10 @@
+Source: axfont
+Section: alien
+Priority: extra
+Maintainer: Joey Hess <joey@kitenet.net>
+
+Package: axfont
+Architecture: i386
+Depends: ${shlibs:Depends}
+Description: Applixware Fonts
+ This package contains the fonts for Applixware Office.
--- axfont-4.4.1.orig/debian/copyright
+++ axfont-4.4.1/debian/copyright
@@ -0,0 +1,21 @@
+This package was debianized by the alien program by converting
+a binary RPM Package on Wed, 7 Apr 1999 20:34:59 -0700.
+
+Copyright: 1990-1998 Applix, Inc.
+
+Information from the binary Package:
+Name : axfont Distribution: SuSE Linux 6.0-BETA (i386)
+Version : 4.4.1 Vendor: SuSE GmbH, Nuernberg, Germany
+Release : 13 Build Date: Tue Dec 1 01:36:41 1998
+Install date: (not installed) Build Host: neumann.suse.de
+Group : unsorted Source RPM: axbase-4.4.1-13.src.rpm
+Size : 17723034 License: 1990-1998 Applix, Inc.
+Packager : feedback@suse.de
+Summary : Applixware Fonts
+Description :
+This package contains the fonts for Applixware Office.
+
+Authors:
+--------
+ Eric Ding <ericding@applix.com>
+
--- axfont-4.4.1.orig/debian/rules
+++ axfont-4.4.1/debian/rules
@@ -0,0 +1,55 @@
+#!/usr/bin/make -f
+# debian/rules that uses debhelper and alien
+# GNU copyright 1997 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build:
+ dh_testdir
+ # Nothing to do.
+
+clean:
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+# Build architecture-independent files here.
+binary-indep: build
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build
+# dh_testversion
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ install -d debian/tmp/usr/X11R6/lib/X11
+ cp -a opt/* debian/tmp/usr/X11R6/lib/X11
+ # These cause applix to crash.
+ rm -rf debian/tmp/usr/X11R6/lib/X11/applix/axdata/fontmetrics/gallium
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installinit
+ dh_installcron
+# dh_installmanpages
+# dh_undocumented
+ dh_installchangelogs
+# dh_strip
+ dh_compress
+ dh_fixperms
+ dh_suidregister
+ dh_installdeb
+ -dh_shlibdeps
+ dh_gencontrol
+ dh_makeshlibs
+ dh_md5sums
+ dh_builddeb
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary
--- axfont-4.4.1.orig/debian/README.Debian
+++ axfont-4.4.1/debian/README.Debian
@@ -0,0 +1,4 @@
+Note that the truetype fonts have been removed from this package because
+they cause applix to crash for some reason.
+
+-- Joey Hess

View File

@@ -0,0 +1,107 @@
--- axlang-4.4.1.orig/debian/changelog
+++ axlang-4.4.1/debian/changelog
@@ -0,0 +1,9 @@
+axlang (4.4.1-14) unstable; urgency=low
+
+ * Converted from RPM binary format to debian
+
+ -- Joey Hess <joey@kitenet.net> Wed, 7 Apr 1999 21:55:48 -0700
+
+Local variables:
+mode: debian-changelog
+End:
--- axlang-4.4.1.orig/debian/control
+++ axlang-4.4.1/debian/control
@@ -0,0 +1,11 @@
+Source: axlang
+Section: alien
+Priority: extra
+Maintainer: Joey Hess <joey@kitenet.net>
+
+Package: axlang
+Architecture: i386
+Depends: ${shlibs:Depends}
+Description: Thesaurus and spell-checker for ApplixWare Office
+ This package contains the spell-checker as well as a thesaurus for
+ ApplixWare Office for Linux.
--- axlang-4.4.1.orig/debian/copyright
+++ axlang-4.4.1/debian/copyright
@@ -0,0 +1,22 @@
+This package was debianized by the alien program by converting
+a binary RPM Package on Wed, 7 Apr 1999 21:55:48 -0700.
+
+Copyright: 1990-1998 Applix, Inc.
+
+Information from the binary Package:
+Name : axlang Distribution: SuSE Linux 6.0-BETA (i386)
+Version : 4.4.1 Vendor: SuSE GmbH, Nuernberg, Germany
+Release : 13 Build Date: Tue Dec 1 01:36:41 1998
+Install date: (not installed) Build Host: neumann.suse.de
+Group : unsorted Source RPM: axbase-4.4.1-13.src.rpm
+Size : 20793103 License: 1990-1998 Applix, Inc.
+Packager : feedback@suse.de
+Summary : Thesaurus and spell-checker for ApplixWare Office
+Description :
+This package contains the spell-checker as well as a thesaurus for
+ApplixWare Office for Linux.
+
+Authors:
+--------
+ Eric Ding <ericding@applix.com>
+
--- axlang-4.4.1.orig/debian/rules
+++ axlang-4.4.1/debian/rules
@@ -0,0 +1,53 @@
+#!/usr/bin/make -f
+# debian/rules that uses debhelper and alien
+# GNU copyright 1997 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build:
+ dh_testdir
+ # Nothing to do.
+
+clean:
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+# Build architecture-independent files here.
+binary-indep: build
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build
+# dh_testversion
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ install -d debian/tmp/usr/X11R6/lib/X11
+ cp -a opt/* debian/tmp/usr/X11R6/lib/X11
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installinit
+ dh_installcron
+# dh_installmanpages
+# dh_undocumented
+ dh_installchangelogs
+# dh_strip
+ dh_compress
+ dh_fixperms
+ dh_suidregister
+ dh_installdeb
+ -dh_shlibdeps
+ dh_gencontrol
+ dh_makeshlibs
+ dh_md5sums
+ dh_builddeb
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary

View File

@@ -0,0 +1,636 @@
--- xbf-i740-glibc-1.0.0.orig/usr/doc/XBF-i740-glibc-1.0.0/README.i740
+++ xbf-i740-glibc-1.0.0/usr/doc/XBF-i740-glibc-1.0.0/README.i740
@@ -0,0 +1,313 @@
+ XBF_i740, Version 1.0.0, 21 December 1998
+
+
+This FREE (see the license below) full featured X Server contains:
+
+ * Full support for 8, 15, 16, 24 and 32 bit per pixel depths.
+ * Hardware cursor support to reduce sprite flicker.
+ * Hardware accelerated 2D drawing engine support for 8, 15, 16 and 24
+ bit per pixel depths.
+ * Support for high resolution video modes up to 1600x1200.
+ * Support for doublescan video modes (e.g., 320x200 and 320x240).
+ * Support for gamma correction at all pixel depths.
+ * Fully programmable clock supported.
+ * Robust text mode restore for VT switching.
+
+
+Tested Video Cards
+
+ * Real3D Starfighter AGP
+ * Diamond Stealth II/G460 AGP
+
+Reported Working Video Cards:
+
+ * 3DVision-i740 AGP
+ * ABIT G740 8MB SDRAM
+ * AGP 2D/3D V. 1N, AGP-740D
+ * ARISTO i740 AGP (ART-i740-G)
+ * ASUS AGP-V2740
+ * Chaintech AGP-740D
+ * EliteGroup(ECS) 3DVision-i740 AGP
+ * EONtronics Picasso 740
+ * EONtronics Van Gogh
+ * Everex MVGA i740/AG
+ * Flagpoint Shocker i740 8MB
+ * Gainward CardExpert 740 8MB
+ * Gigabyte Predator i740 8MB AGP
+ * Hercules Terminator 128 2X/i AGP
+ * Intel Express 3D AGP
+ * Jaton Video-740 AGP 3D
+ * Joymedia Apollo 7400
+ * Leadtek Winfast S900
+ * Machspeed Raptor i740 AGP 4600
+ * Magic-Pro MP-740DVD
+ * MAXI Gamer AGP 8 MB
+ * Palit Daytona AGP740
+ * QDI Amazing I
+ * Soyo AGP (SY-740 AGP)
+ * VideoExcel AGP 740
+ * ViewTop ZeusL 8MB
+ * Winfast S900 i740 AGP 8MB
+
+
+CAUTION: Running this server on untested video cards poses a potential
+risk of damaging your video card and display. You assume all risks in
+using this X server on untested video cards; however, if you
+successfully run this server on a video card not listed here, we would
+like to hear from you. Please e-mail your video card make and model
+to us at "xbf_support@redhat.com".
+
+Red Hat and Precision Insight, Inc. disclaim all warranties with
+regard to this X server. In no event shall Red Hat or Precision
+Insight, Inc. be liable for any damages whatsoever resulting from the
+use of this X server.
+
+This commercial quality X Server has been tested with only the Real3D
+Starfighter AGP and the Diamond Stealth II/G460 AGP card at this time.
+
+This Free server is distributed in binary form only to conform with
+the Non Disclosure Agreement required by Intel. If and when this non
+disclosure requirement is removed by Intel, all of the source code for
+this driver will be contributed to the XFree86 project.
+
+
+Download and Installation Instructions
+
+Although you can place the downloaded .rpm file in any directory of
+your choosing, we suggest you ftp the file into the /tmp directory and
+then execute the appropriate RPM command from that directory to
+install the .rpm file. When the RPM command runs, it will
+automatically place the component files of the X Server into the
+correct locations in your system.
+
+
+Red Hat 5.x (glibc) systems:-
+ 1) get the file to your system
+ cd /tmp
+ ftp://ftp.redhat.com/pub/XBF/XBF-i740-glibc-1.0.0-1.i386.rpm
+ 2) install the files using RPM
+ rpm -ivh XBF-i740-glibc-1.0.0-1.i386.rpm
+ 3) after installing, run (as root):
+ ln -sf /usr/X11R6/bin/XBF_i740 /etc/X11/X
+
+Red Hat 4.x (libc5 systems):-
+ 1) get the file to your system
+ cd /tmp
+ ftp://ftp.redhat.com/pub/XBF/XBF-i740-libc5-1.0.0-1.i386.rpm
+ 2) install the files using RPM
+ rpm -ivh XBF-i740-libc5-1.0.0-1.i386.rpm
+ 3) after installing, run (as root):
+ ln -sf /usr/X11R6/bin/XBF_i740 /etc/X11/X
+ chmod 4711 /usr/X11R6/bin/XBF_i740
+
+IMPORTANT NOTE:
+
+After installing the X server, an XF86Config file needs to be set up
+for your computer. For Red Hat 4.x and 5.x systems, this file is in
+"/etc/X11/XF86Config". See the manual page for XF86Config for more
+information on how to properly setup this file for your computer. For
+a description of the supported device configuration options, see the
+README file included in this release.
+
+To ease the setting up of the XF86Config file, a new "xf86config"
+program that has support for the XBF_i740 X server can be found in the
+same directory as the X server. To use this program:
+
+Red Hat 5.x (glibc) systems:-
+ 1) get the file to your system
+ cd /tmp
+ ftp://ftp.redhat.com/pub/XBF/xf86config-glibc-1.0.0.i386.tgz
+ 2) install the files (as root):
+ cd /
+ tar xvzf /tmp/xf86config-glibc-1.0.0.i386.tgz
+ 3) run "xf86config" as root
+
+
+Red Hat 4.x (libc5 systems):-
+ 1) get the file to your system
+ cd /tmp
+ ftp://ftp.redhat.com/pub/XBF/xf86config-libc5-1.0.0.i386.tgz
+ 2) install the files (as root):
+ cd /
+ tar xvzf /tmp/xf86config-libc5-1.0.0.i386.tgz
+ 3) run "xf86config" as root
+
+
+Here are some hints as to how to use xf86config:
+
+1) While running xf86config, you will need to answer several questions
+ about your mouse, monitor and video card. This information should
+ be found in the manuals that came with your system.
+
+2) When you reach the section to choose a particular video card,
+ xf86config will ask you:
+
+ Do you want to look at the card database?
+
+ Answer, "yes" and choose the number of the video card that most
+ closely matches your system. The cards that have been tested or
+ have been reported to work (see above) are included in this list.
+
+3) Next, xf86config will ask you:
+
+ Which one of these screen types do you intend to run by default (1-5)?
+
+ Answer, "5" since that is the one that corresponds to the card
+ definition you just choose (from hint #2, above).
+
+4) Since you have already set the symbolic link (above), you do not
+ want xf86config to set it again, so answer "no" to this question.
+
+5) No special RAMDAC is needed with the XBF_i740 X server, so when
+ xf86config asks you to choose a RAMDAC, you can enter "q" to safely
+ quit without selecting a RAMDAC.
+
+6) No special Clockchip setting is required with the XBF_i740 X
+ server, so you can simply press Enter, when xf86config asks you
+ what Clockchip setting you want.
+
+7) It is not necessary to probe the clocks with the XBF_i740 X server,
+ so you do not need to have xf86config run 'X -probeonly'.
+
+8) For RedHat 4.x and RedHat 5.x systems, the XF86Config file should
+ be written to /etc/X11/XF86Config. For other systems, it should be
+ written to /etc/XF86Config.
+
+
+If you have any questions or problems with this X server:
+
+PLEASE CHECK THE FAQ AT http://www.precisioninsight.com/faq.html BEFORE
+SENDING EMAIL TO THE SUPPORT EMAIL ADDRESS
+
+If the FAQ does not help you solve the problem, you may send email to
+"xbf_support@redhat.com". Please do NOT send any email to XFree86
+regarding this X server.
+
+
+Please note that this software is released under the XBF License below.
+
+
+
+
+End User License Agreement for the XBF X server ("Software")
+
+
+
+I. PREAMBLE
+
+
+This License Agreement ("License") sets forth the terms and conditions
+under which Red Hat Software, Inc. grants you certain rights and
+licenses with respect to the Software. Please review this agreement
+carefully before you use the Software or install it on a computer.
+
+
+This License generally allows you to copy, sublicense and distribute
+the Software, subject to the following terms and conditions. However,
+nothing in this License grants you any right, license or interest with
+respect to the source code for the Software.
+
+
+
+II. GRANT OF RIGHTS:
+
+
+A. The rights stated in this License are non-exclusive and are granted
+to you without fee.
+
+
+B. You may install and/or use the Software on as many computers as you
+wish at any time.
+
+
+C. You may copy, sublicense and distribute the Software in its entirety
+provided that you:
+
+1. Conspicuously publish on each copy of the Software the appropriate
+copyright notice and the complete terms and conditions of this License;
+
+2. Keep intact all notices that refer to this License and to the
+absence of any warranty; and
+
+3. Give any other recipients and sublicensees of the Software a copy of
+this License along with the Software, and make it clear to any and all
+recipients and sublicensees that the terms and conditions of this
+License shall govern their use of the Software.
+
+
+D. You may, but are not required to, charge a fee to persons to whom
+you copy and redistribute the Software, and you may at your option
+offer warranty protection for a fee to any person to whom you
+distribute the Software. Each person or entity to whom you sublicense
+the Software must receive it under no more restrictive terms and
+conditions than set forth in this License.
+
+
+
+III. YOU MAY NOT:
+
+
+A. Modify, decompile, reverse assemble or otherwise reverse engineer
+the Software, or create derivative works based on the Software, or
+authorize any third party to do any of the above; and
+
+
+B. Copy, sublicense, or distribute the Software except as expressly
+permitted in this License. Any attempt to copy, sublicense or
+distribute the Program in a manner inconsistent with this License is
+void, and will automatically terminate your rights under this License.
+
+
+
+IV. TITLE
+
+
+The Software is protected by copyright and other laws. Title,
+ownership rights, and intellectual property rights in the Software
+shall remain with Red Hat Software, Inc. and/or its suppliers. You
+acknowledge these ownership and intellectual property rights, and agree
+not to take any action to jeopardize or infringe upon any of these
+rights with respect to the Software. The rights granted to you in this
+License do not include any interest in any intellectual property rights
+in the Software.
+
+
+
+V. NO WARRANTY
+
+
+THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT AS OTHERWISE STATED IN WRITING, THE SOFTWARE IS
+PROVIDED AND LICENSED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+
+VI. LIMITATION OF LIABILITY
+
+
+TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL RED
+HAT SOFTWARE, INC. OR ITS SUPPLIERS BE LIABLE TO YOU FOR ANY DAMAGES,
+INCLUDING LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR
+CONSEQUENTIAL DAMAGES, ARISING OUT OF THE USE OR INABILITY TO USE THE
+SOFTWARE, EVEN IF RED HAT SOFTWARE, INC. OR A DEALER AUTHORIZED BY RED
+HAT SOFTWARE, INC. HAD BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+
+
+VII. GENERAL
+
+
+This License represents the complete agreement concerning the rights
+granted in this License, and may be amended only in a writing signed by
+both parties. If any provision of this Agreement is held to be
+unenforceable, the enforceability of the remaining provisions shall in
+no way be affected or impaired. This Agreement shall be governed by
+the laws of the United States.
+
+
+
+
+
+Copyright © 1998 Red Hat Software, Inc. All rights reserved.
--- xbf-i740-glibc-1.0.0.orig/debian/changelog
+++ xbf-i740-glibc-1.0.0/debian/changelog
@@ -0,0 +1,19 @@
+xbf-i740-glibc (1.0.0-3) unstable; urgency=low
+
+ * Added README.i740 from redhat mirror to the doc directory
+ * debian/rules: Modified doc directory from XBF-i740-glibc-VERSION to xbf-i740-glibc
+ * Added [pre|post][inst|rm] shamelessly borrowed from xserver-svga
+
+ -- Agustín Martín Domingo <agmartin@aq.upm.es> Thu, 15 Apr 1999 16:36:31 +0200
+
+xbf-i740-glibc (1.0.0-2) unstable; urgency=low
+
+ * Converted from RPM binary format to debian
+
+ -- Agustín Martín Domingo <agmartin@aq.upm.es> Thu, 15 Apr 1999 15:47:07 +0200
+
+
+
+Local variables:
+mode: debian-changelog
+End:
--- xbf-i740-glibc-1.0.0.orig/debian/control
+++ xbf-i740-glibc-1.0.0/debian/control
@@ -0,0 +1,16 @@
+Source: xbf-i740-glibc
+Section: alien
+Priority: extra
+Maintainer: Agustín Martín Domingo <agmartin@aq.upm.es>
+
+Package: xbf-i740-glibc
+Architecture: i386
+Recommends: xf86config-i740g
+Provides: xserver
+Depends: ${shlibs:Depends}
+Description: Binary-only X server for i740 on glibc systems
+ X server for the Intel i740 base graphics cards.
+ .
+ Details on installing this server are available at
+ /usr/doc/xbf-i740-glibc (From ftp://ftp.redhat.com/pub/XBF/README.i740)
+
--- xbf-i740-glibc-1.0.0.orig/debian/copyright
+++ xbf-i740-glibc-1.0.0/debian/copyright
@@ -0,0 +1,19 @@
+This package was debianized by the alien program by converting
+a binary RPM Package on Thu, 15 Apr 1999 15:47:07 +0200.
+
+Copyright: XBF
+
+Information from the binary Package:
+Name : XBF-i740-glibc Distribution: (none)
+Version : 1.0.0 Vendor: (none)
+Release : 1 Build Date: Sun Dec 20 02:12:52 1998
+Install date: (not installed) Build Host: audrey.kem.org
+Group : X11/XFree86/Servers Source RPM: XBF-i740-glibc-1.0.0-1.src.rpm
+Size : 2136768
+Summary : Binary-only X server for i740 on glibc systems
+Description :
+X server for the Intel i740 base graphics cards.
+
+Details on installing this server are available at
+ftp://ftp.redhat.com/pub/XBF/README.i740
+
--- xbf-i740-glibc-1.0.0.orig/debian/rules
+++ xbf-i740-glibc-1.0.0/debian/rules
@@ -0,0 +1,58 @@
+#!/usr/bin/make -f
+# debian/rules that uses debhelper and alien
+# GNU copyright 1997 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build:
+ dh_testdir
+ # Nothing to do.
+
+clean:
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+# Build architecture-independent files here.
+binary-indep: build
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build
+# dh_testversion
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ 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
+#
+ ( cd `pwd`/debian/tmp/usr/doc ; mv XBF* xbf-i740-glibc )
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installinit
+ dh_installcron
+ dh_installmanpages
+# dh_undocumented
+ dh_installchangelogs
+# dh_strip
+ dh_compress
+ dh_fixperms
+ dh_suidregister
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_makeshlibs
+ dh_md5sums
+ dh_builddeb
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary
--- xbf-i740-glibc-1.0.0.orig/debian/preinst
+++ xbf-i740-glibc-1.0.0/debian/preinst
@@ -0,0 +1,34 @@
+#!/bin/sh
+# Debian xserver-xserver-i740 package pre-installation script
+# Modifications to the original xserver-svga preinst script
+# Copyright 1999 A. Martín. Licensed under the GNU GPL.
+# (Very) Mostly from
+# Debian xserver-svga package pre-installation script
+# Copyright 1998 Branden Robinson. Licensed under the GNU GPL.
+# Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava.
+
+set -e
+
+trap "echo ;\
+ echo 'Received signal. Aborting installation of xserver-xserver-i740 package.' ;\
+ echo ;\
+ exit 1" 1 2 3 15
+
+package=xbf-i740-glibc
+
+case "$1" in
+ install) touch /etc/X11/newxserver.$package ;;
+ upgrade) ;;
+ abort-upgrade) exit 0 ;;
+ *)
+ echo "ERROR: xserver-xserver-i740 preinst called with unknown argument \"$1\"."
+ echo "Aborting installation of xserver-xserver-i740 package."
+ exit 1 ;;
+esac
+
+# clean up a mess made in 3.3.2.2-4
+if [ "$2" = "3.3.2.2-4" ]; then
+ rm -f /etc/X11/newxserver.[0-9A-Z]*
+fi
+
+exit
--- xbf-i740-glibc-1.0.0.orig/debian/postinst
+++ xbf-i740-glibc-1.0.0/debian/postinst
@@ -0,0 +1,119 @@
+#!/bin/sh
+# Debian xserver-xserver-i740 package post-installation script
+# Modifications to the original xserver-svga preinst script
+# Copyright 1999 A. Martín. Licensed under the GNU GPL.
+# (Very) Mostly from
+# Debian xserver-svga package post-installation script
+# Copyright 1998 Branden Robinson. Licensed under the GNU GPL.
+# Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava.
+
+set -e
+
+package=xbf-i740-glibc
+xserver=i740
+serverbin=XBF_i740
+
+cleanup () {
+ # unroll changes in xserver-i740 preinst
+ for file in /etc/X11/newxserver.$package; do
+ if [ -e $file ]; then
+ rm $file
+ fi
+ done;
+}
+
+trap "echo ;\
+ echo 'Received signal. Aborting configuration of xserver-i740 package.' ;\
+ echo -n 'Cleaning up...' ;\
+ cleanup ;\
+ echo 'done.' ;\
+ echo ;\
+ exit 1" 1 2 3 15
+
+case "$1" in
+ configure) ;;
+ abort-upgrade|abort-remove|abort-deconfigure)
+ cleanup
+ exit 0 ;;
+ *)
+ echo "ERROR: xserver-i740 postinst called with unknown argument \"$1\"."
+ echo "Aborting configuration of xserver-i740 package."
+ echo -n "Cleaning up..."
+ cleanup
+ echo "done."
+ exit 1 ;;
+esac
+
+# I know there is redundant logic in some of the following, I'll rewrite it
+# pretty someday
+
+# while I'm at it, switch to string variables instead of numeric ones
+
+fixname=0
+prompt=0
+oldxserverpresent=0
+oldxserver=`head -1 /etc/X11/Xserver`
+servername=`echo $oldxserver | sed 's/X11R6\/bin/bin\/X11/'`
+if [ -x $oldxserver ]; then
+ oldxserverpresent=1
+fi
+if [ $oldxserverpresent = 1 ]; then
+ # case 1: we're just upgrading the existing server
+ if [ "$oldxserver" = "/usr/bin/X11/$serverbin" ]; then
+ prompt=0
+ # case 2: we're just upgrading, but need to canonicalize the pathname
+ elif [ "$servername" = "/usr/bin/X11/$serverbin" ]; then
+ fixname=1
+ # case 3: we're installing a new X server
+ elif [ -e /etc/X11/newxserver.$package ]; then
+ rm /etc/X11/newxserver.$package
+ prompt=1
+ $condecho
+ echo "Current default X server $oldxserver found."
+ echo -n "Do you want to make $xserver the default instead? (y/n) [n] "
+ default=n
+ # case 4: we're upgrading an alternative X server already installed
+ else
+ prompt=0
+ fi
+else # old server not present
+ prompt=1
+ $condecho
+ echo -n "No default X server previously set, or previous default has been "
+ echo "removed."
+ echo -n "Do you want to make the $xserver X server the default? (y/n) [y] "
+ default=y
+fi
+
+if [ $prompt = 1 ]; then
+ condecho=echo
+ read input
+ case "$input" in
+ Y|y) input=y ;;
+ N|n) input=n ;;
+ '') input=$default ;;
+ *)
+ echo "'$input' not understood. Using default of '$default'."
+ input=$default
+ ;;
+ esac
+fi
+
+if [ "$input" = "y" -o $fixname = 1 ]; then
+ mv /etc/X11/Xserver /etc/X11/Xserver.debian.$$
+ sed -e "1s/^.*$/\\/usr\\/bin\\/X11\\/$serverbin/" \
+ /etc/X11/Xserver.debian.$$ > /etc/X11/Xserver
+ rm /etc/X11/Xserver.debian.$$
+ if [ $fixname = 0 ]; then
+ $condecho
+ echo "The $xserver X server is now the default."
+ condecho=echo
+ fi
+fi
+
+# invoke xserver-configure
+if [ -x /usr/sbin/xserver-configure ]; then
+ . /usr/sbin/xserver-configure
+fi
+
+exit
--- xbf-i740-glibc-1.0.0.orig/debian/postrm
+++ xbf-i740-glibc-1.0.0/debian/postrm
@@ -0,0 +1,34 @@
+#!/bin/sh
+# Debian xserver-xserver-i740 package post-removal script
+# Modifications to the original xserver-svga postrm script
+# Copyright 1999 A. Martín. Licensed under the GNU GPL.
+# (Very) Mostly from
+# Debian xserver-svga package post-removal script
+# Copyright 1998 Branden Robinson. Licensed under the GNU GPL.
+# Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava.
+
+set -e
+
+package=xbf-i740-glibc
+serverbin=XBF_i740
+
+trap "echo ;\
+ echo 'Received signal. Aborting removal of xserver-xserver-i740 package.' ;\
+ echo ;\
+ exit 1" 1 2 3 15
+
+case "$1" in
+ remove) ;;
+ purge) ;;
+ upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) exit 0 ;;
+ *)
+ echo "ERROR: xserver-xserver-i740 postrm called with unknown argument \"$1\"."
+ echo "Aborting removal of xserver-xserver-i740 package."
+ exit 1 ;;
+esac
+
+sed "1s:/usr/bin/X11/$serverbin:/usr/bin/X11/XF86_NONE:" /etc/X11/Xserver > \
+ /etc/X11/Xserver.debian.$$
+mv /etc/X11/Xserver.debian.$$ /etc/X11/Xserver
+
+exit

View File

@@ -0,0 +1,115 @@
--- xf86config-glibc-1.0.0.i386.orig/debian/changelog
+++ xf86config-glibc-1.0.0.i386/debian/changelog
@@ -0,0 +1,10 @@
+xf86config-glibc (1.0.0.i386-1) unstable; urgency=low
+
+ * Added preinst and postrm for xf86config and Card files diversion
+ * Converted from Slackware .tgz binary format to debian
+
+ -- Agustín Martín Domingo <agmartin@aq.upm.es> Thu, 15 Apr 1999 15:47:14 +0200
+
+Local variables:
+mode: debian-changelog
+End:
--- xf86config-glibc-1.0.0.i386.orig/debian/control
+++ xf86config-glibc-1.0.0.i386/debian/control
@@ -0,0 +1,10 @@
+Source: xf86config-glibc
+Section: unknown
+Priority: extra
+Maintainer: Agustín Martín Domingo <agmartin@aq.upm.es>
+
+Package: xf86config-i740g
+Architecture: any
+Depends: ${shlibs:Depends}, xbf-i740-glibc
+Description: xf86config for Intel i740 based graphics cards
+ xf86 configuration tool for Intel i740 chipset based graphic cards
--- xf86config-glibc-1.0.0.i386.orig/debian/copyright
+++ xf86config-glibc-1.0.0.i386/debian/copyright
@@ -0,0 +1,4 @@
+This package was debianized by the alien program by converting
+a binary Slackware tgz Package on Thu, 15 Apr 1999 15:47:14 +0200.
+
+Copyright: Unknown
--- xf86config-glibc-1.0.0.i386.orig/debian/rules
+++ xf86config-glibc-1.0.0.i386/debian/rules
@@ -0,0 +1,57 @@
+#!/usr/bin/make -f
+# debian/rules that uses debhelper and alien
+# GNU copyright 1997 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build:
+ dh_testdir
+ # Nothing to do.
+
+clean:
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+# Build architecture-independent files here.
+binary-indep: build
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build
+# dh_testversion
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ 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
+#
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installinit
+ dh_installcron
+ dh_installmanpages
+# dh_undocumented
+ dh_installchangelogs
+# dh_strip
+ dh_compress
+ dh_fixperms
+ dh_suidregister
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_makeshlibs
+ dh_md5sums
+ dh_builddeb
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary
--- xf86config-glibc-1.0.0.i386.orig/debian/preinst
+++ xf86config-glibc-1.0.0.i386/debian/preinst
@@ -0,0 +1,8 @@
+#!/bin/sh -e
+
+if [ install = "$1" ]; then
+ dpkg-divert --package xf86config-i740g --add --rename \
+ --divert /usr/X11R6/bin/xf86config.dpkg-old /usr/X11R6/bin/xf86config
+ dpkg-divert --package xf86config-i740g --add --rename \
+ --divert /usr/X11R6/lib/X11/Cards.dpkg-old /usr/X11R6/lib/X11/Cards
+fi
--- xf86config-glibc-1.0.0.i386.orig/debian/postrm
+++ xf86config-glibc-1.0.0.i386/debian/postrm
@@ -0,0 +1,8 @@
+#!/bin/sh -e
+
+if [ remove = "$1" ]; then
+ dpkg-divert --package xf86config-i740g --remove --rename \
+ --divert /usr/X11R6/bin/xf86config.dpkg-old /usr/X11R6/bin/xf86config
+ dpkg-divert --package xf86config-i740g --remove --rename \
+ --divert /usr/X11R6/lib/X11/Cards.dpkg-old /usr/X11R6/lib/X11/Cards
+fi

View File

@@ -0,0 +1,296 @@
--- xf86config-glibc-1.0.0.i386.orig/debian/changelog
+++ xf86config-glibc-1.0.0.i386/debian/changelog
@@ -0,0 +1,30 @@
+xf86config-glibc (1.0.0.i386-3) unstable; urgency=low
+
+ * postrm: Old diversions code moved to preinst
+ * preinst: Force the user to remove previous package if is (1.0.0.i386-1)
+
+ -- Agustín Martín Domingo <agmartin@aq.upm.es> Wed, 5 May 1999 15:03:25 +0200
+
+xf86config-glibc (1.0.0.i386-2) unstable; urgency=low
+
+ * Changed section from unknown to alien
+ * Cards: renamed to Ci740 to avoid diversion
+ * xf86config: patched to look for Ci740 and renamed to xf86config-i740
+ * Added xf86config wrapper script to warn about xf86config diversion
+ * postrm: Cleared old diversions if existing and renamed the remaining
+ to xf86config.xfree86
+ * preinst: removed diversion of Cards and renamed that of xf86config
+ to xf86conig.xfree86
+
+ -- Agustín Martín Domingo <agmartin@aq.upm.es> Wed, 5 May 1999 12:00:06 +0200
+
+xf86config-glibc (1.0.0.i386-1) unstable; urgency=low
+
+ * Added preinst and postrm for xf86config and Card files diversion
+ * Converted from Slackware .tgz binary format to debian
+
+ -- Agustín Martín Domingo <agmartin@aq.upm.es> Thu, 15 Apr 1999 15:47:14 +0200
+
+Local variables:
+mode: debian-changelog
+End:
--- xf86config-glibc-1.0.0.i386.orig/debian/control
+++ xf86config-glibc-1.0.0.i386/debian/control
@@ -0,0 +1,14 @@
+Source: xf86config-glibc
+Section: alien
+Priority: extra
+Maintainer: Agustín Martín Domingo <agmartin@aq.upm.es>
+
+Package: xf86config-i740g
+Architecture: any
+Depends: ${shlibs:Depends}, xbf-i740-glibc
+Description: xf86config for XBF-i740 binary-only X server
+ xf86 configuration tool for the binary-only XBF-i740 X server
+ for Intel i740 chipset based graphic cards
+ .
+ Diverts the XFree86 xf86config to xf86config.xfree86
+
--- xf86config-glibc-1.0.0.i386.orig/debian/copyright
+++ xf86config-glibc-1.0.0.i386/debian/copyright
@@ -0,0 +1,4 @@
+This package was debianized by the alien program by converting
+a binary Slackware tgz Package on Thu, 15 Apr 1999 15:47:14 +0200.
+
+Copyright: Unknown
--- xf86config-glibc-1.0.0.i386.orig/debian/rules
+++ xf86config-glibc-1.0.0.i386/debian/rules
@@ -0,0 +1,64 @@
+#!/usr/bin/make -f
+# debian/rules that uses debhelper and alien
+# GNU copyright 1997 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+build:
+ dh_testdir
+ # Nothing to do.
+
+clean:
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+# Build architecture-independent files here.
+binary-indep: build
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build
+# dh_testversion
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ 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
+#
+# Patching the binary to look for /usr/X11R6/lib/X11/Ci740 instead of
+# /usr/X11R6/lib/X11/Cards
+ ( cd debian/tmp/usr/X11R6/bin ; sed 's/\/X11\/Cards/\/X11\/Ci740/g' xf86config > xf86config-i740 ; chmod +x xf86config-i740 ; rm xf86config )
+# Renaming /usr/X11R6/lib/X11/Cards to /usr/X11R6/lib/X11/Ci740
+ ( cd debian/tmp/usr/X11R6/lib/X11/ ; mv Cards Ci740 )
+ ( install debian/xf86config debian/tmp/usr/X11R6/bin/xf86config )
+#
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installinit
+ dh_installcron
+ dh_installmanpages
+# dh_undocumented
+ dh_installchangelogs
+# dh_strip
+ dh_compress
+ dh_fixperms
+ dh_suidregister
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_makeshlibs
+ dh_md5sums
+ dh_builddeb
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary
--- xf86config-glibc-1.0.0.i386.orig/debian/preinst
+++ xf86config-glibc-1.0.0.i386/debian/preinst
@@ -0,0 +1,30 @@
+#!/bin/sh -e
+
+# Fixing some previous mess
+
+if [ upgrade = "$1" ]; then
+ if [ -e /usr/X11R6/lib/X11/Ci740 -a -e /usr/X11R6/bin/xf86config-i740 ]; then
+ echo "OK, preserving old diversions"
+ else
+ echo "--------------------------------------------------------------"
+ echo " /usr/X11R6/lib/X11/Ci740 or /usr/X11R6/bin/xf86config-i740"
+ echo "do not exist."
+ echo "That means you are upgrading xf86config-i740g_1.0.0.i386-1.deb"
+ echo ""
+ echo " Due to changes in the diversions YOU HAVE FIRST TO REMOVE"
+ echo " PREVIOUS PACKAGE with dpkg -r xf86config-i740g"
+ echo "--------------------------------------------------------------"
+ exit 1
+ fi
+fi
+
+if [ install = "$1" ]; then
+ dpkg-divert --package xf86config-i740g --add --rename \
+ --divert /usr/X11R6/bin/xf86config.xfree86 /usr/X11R6/bin/xf86config
+fi
+
+
+
+
+
+
--- xf86config-glibc-1.0.0.i386.orig/debian/patch-xf86config
+++ xf86config-glibc-1.0.0.i386/debian/patch-xf86config
@@ -0,0 +1 @@
+sed 's/\/X11\/Cards/\/X11\/Ci740/g' xf86config > xf86config-i740
--- xf86config-glibc-1.0.0.i386.orig/debian/postrm
+++ xf86config-glibc-1.0.0.i386/debian/postrm
@@ -0,0 +1,9 @@
+#!/bin/sh -e
+
+
+# Now the real diversion
+
+if [ remove = "$1" ]; then
+ dpkg-divert --package xf86config-i740g --remove --rename \
+ --divert /usr/X11R6/bin/xf86config.xfree86 /usr/X11R6/bin/xf86config
+fi
--- xf86config-glibc-1.0.0.i386.orig/debian/preinst.0
+++ xf86config-glibc-1.0.0.i386/debian/preinst.0
@@ -0,0 +1,32 @@
+#!/bin/sh -e
+
+# Fixing some previous mess
+
+if [ upgrade = "$1" ]; then
+ if [ -e /usr/X11R6/lib/X11/Ci740 ]; then
+ echo "OK, preserving old diversions"
+ else
+ echo "Removing obsolete diversion of Cards to Cards.dpkg-old"
+ rm /usr/X11R6/lib/X11/Cards
+ dpkg-divert --package xf86config-i740g --remove --rename \
+ --divert /usr/X11R6/lib/X11/Cards.dpkg-old /usr/X11R6/lib/X11/Cards
+ fi
+
+ if [ -x /usr/X11R6/bin/xf86config-i740 ]; then
+ echo "OK, preserving old diversions"
+ else
+ echo "Removing obsolete diversion of xf86config to xf86config.dpkg-old"
+ rm /usr/X11R6/bin/xf86config
+ dpkg-divert --package xf86config-i740g --remove --rename \
+ --divert /usr/X11R6/bin/xf86config.dpkg-old /usr/X11R6/bin/xf86config
+ dpkg-divert --package xf86config-i740g --add --rename \
+ --divert /usr/X11R6/bin/xf86config.xfree86 /usr/X11R6/bin/xf86config
+ fi
+fi
+
+if [ install = "$1" ]; then
+ dpkg-divert --package xf86config-i740g --add --rename \
+ --divert /usr/X11R6/bin/xf86config.xfree86 /usr/X11R6/bin/xf86config
+fi
+
+
--- xf86config-glibc-1.0.0.i386.orig/debian/xf86config
+++ xf86config-glibc-1.0.0.i386/debian/xf86config
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# A wrapper to warn about the diversion of xf86config
+
+
+message="\
+This is a wrapper script to remind you that you are using the
+xf86config-i740 script provided by RedHat when XBF-i740 was a
+binary-only server. The original XFree86 xf86config has been
+diverted to xf86config.xfree86 by the package xfree86-i740g.
+
+Since Intel has released the i740 specs to the XFree team, there
+will probably be native support for this card in the next XFree86
+release (XFree86 4), and this script will only be valid if you want
+to configure the binary-only XBF-i740 server, with the Card database
+probably outdated.
+
+For any other use you will need to use the script
+xf86config.xfree86 or XF86Setup.
+"
+warning_msg="WARNING!"
+
+if [ "$LANG" ]; then
+ LINGUA=`echo $LANG | sed -e 's/_.*//'`
+ if [ "$LINGUA" = "es" ]; then
+message="\
+Este es un script filtro para recordar que se está utilizando el
+script xf86config-i740 suministrado por RedHat cuando XBF-i740 era
+un servidor sólo-binario. El xf86config original de las XFree86
+ha sido redirigido a xf86config.xfree86 por el paquete xfree86-i740g.
+
+Ya que Intel ha suministrado las especificaciones de las i740 al equipo
+de las XFree, probablemente haya soporte nativo para esta tarjeta en la
+siguiente edición de las XFree86 (XFree86 4), y este script tendrá
+sentido únicamente para configurar el servidor sólo-binario XBF-i740,
+con la base de datos de tarjetas i740 posiblemente anticuada.
+
+Para cualquier otro uso será necesario utilizar
+xf86config.xfree86 o XF86Setup
+"
+warning_msg="¡ATENCIÓN!"
+ fi
+fi
+
+if [ -x /usr/bin/whiptail ]; then
+ whiptail --clear --title "$warning_msg" --msgbox "$message" 0 0
+ echo "Using whiptail"
+elif [ -x /usr/bin/dialog ]; then
+ dialog --clear --title "$warning_msg" --msgbox "$message" 0 0
+ echo "Using dialog"
+else
+ echo $warning_msg
+ echo "---------------------------------"
+ echo $message | fmt
+ echo "---------------------------------"
+ echo "Press enter to continue"
+ read reply
+fi
+
+xf86config-i740
--- xf86config-glibc-1.0.0.i386.orig/debian/preinst.pruebas
+++ xf86config-glibc-1.0.0.i386/debian/preinst.pruebas
@@ -0,0 +1,22 @@
+#!/bin/sh -e
+
+action="$1"
+divext="dpkg-old"
+
+default_divert ()
+{
+if [ install = "$action" -o ! -e "$1" ]; then
+ dpkg-divert --package $package --add --rename \
+ --divert $1.$divext $1
+fi
+}
+
+default_divert /usr/X11R6/bin/xf86config
+default_divert /usr/X11R6/lib/X11/Cards
+
+#if [ install = "$1" ]; then
+# dpkg-divert --package xf86config-i740g --add --rename \
+# --divert /usr/X11R6/bin/xf86config.dpkg-old /usr/X11R6/bin/xf86config
+# dpkg-divert --package xf86config-i740g --add --rename \
+# --divert /usr/X11R6/lib/X11/Cards.dpkg-old /usr/X11R6/lib/X11/Cards
+#fi