* Corrected precidence problem that made alien not catch mkdir of the work

directory failing if the directory already existed (and let it delete the
     existing directory). Closes: #181061
   * Fixed several other instances of the same precidence problem in the code.
This commit is contained in:
joey
2003-02-15 20:46:09 +00:00
parent 8b6a5ed7f8
commit 40e12efe45
9 changed files with 365 additions and 29 deletions

View File

@@ -260,7 +260,7 @@ sub unpack {
my $this=shift;
my $workdir = $this->name."-".$this->version;
mkdir $workdir, 0755 ||
mkdir($workdir, 0755) ||
die "unable to mkdir $workdir: $!";
# If the parent directory is suid/sgid, mkdir will make the root
# directory of the package inherit those bits. That is a bad thing,
@@ -327,7 +327,7 @@ sub DESTROY {
if ($this->unpacked_tree eq '/') {
die "alien internal error: unpacked_tree is set to `/'. Please file a bug report!";
}
system('rm', '-rf', $this->unpacked_tree) == 0
(system('rm', '-rf', $this->unpacked_tree) == 0)
or die "unable to delete temporary directory `".$this->unpacked_tree."`: $!";
$this->unpacked_tree('');
}

View File

@@ -87,7 +87,7 @@ sub install {
my $this=shift;
my $deb=shift;
system("dpkg", "--no-force-overwrite", "-i", $deb) == 0
(system("dpkg", "--no-force-overwrite", "-i", $deb) == 0)
or die "Unable to install";
}
@@ -237,11 +237,11 @@ sub unpack {
my $file=$this->filename;
if ($this->have_dpkg_deb) {
system("dpkg-deb", "-x", $file, $this->unpacked_tree) == 0
(system("dpkg-deb", "-x", $file, $this->unpacked_tree) == 0)
or die "Unpacking of `$file' failed: $!";
}
else {
system("ar -p $file data.tar.gz | gzip -dc | (cd ".$this->unpacked_tree."; tar xpf -)") == 0
(system("ar -p $file data.tar.gz | gzip -dc | (cd ".$this->unpacked_tree."; tar xpf -)") == 0)
or die "Unpacking of `$file' failed: $!";
}
@@ -293,14 +293,14 @@ sub prep {
my $this=shift;
my $dir=$this->unpacked_tree || die "The package must be unpacked first!";
mkdir "$dir/debian", 0755 ||
mkdir("$dir/debian", 0755) ||
die "mkdir $dir/debian failed: $!";
# Use a patch file to debianize?
if (defined $this->patchfile) {
# The -f passed to zcat makes it pass uncompressed files
# through without error.
system("zcat -f ".$this->patchfile." | (cd $dir; patch -p1)") == 0
(system("zcat -f ".$this->patchfile." | (cd $dir; patch -p1)") == 0)
or die "patch error: $!";
# Look for .rej files.
die "patch failed with .rej files; giving up"

View File

@@ -104,7 +104,7 @@ sub install {
my $pkg=shift;
if (-x "/usr/sbin/pkgadd") {
system("/usr/sbin/pkgadd", "-d .", "$pkg") == 0
(system("/usr/sbin/pkgadd", "-d .", "$pkg") == 0)
or die "Unable to install";
}
else {
@@ -124,7 +124,7 @@ sub scan {
my $file=$this->filename;
my $tdir="pkg-scan-tmp.$$";
mkdir $tdir, 0755 || die "Error making $tdir: $!\n";
mkdir($tdir, 0755) || die "Error making $tdir: $!\n";
my $pkgname;
if (-x "/usr/bin/pkginfo" && -x "/usr/bin/pkgtrans") {
@@ -137,7 +137,7 @@ sub scan {
close INFO;
# Extract the files
system("/usr/bin/pkgtrans -i $file $tdir $pkgname") == 0
(system("/usr/bin/pkgtrans -i $file $tdir $pkgname") == 0)
|| die "Error running pkgtrans: $!\n";
open(INFO, "$tdir/$pkgname/pkginfo")
@@ -230,13 +230,13 @@ sub unpack {
if (-x "/usr/bin/pkgtrans") {
my $workdir = $this->name."-".$this->version;;
mkdir $workdir, 0755 || die "unable to mkdir $workdir: $!\n";
system("/usr/bin/pkgtrans $file $workdir $pkgname") == 0
mkdir($workdir, 0755) || die "unable to mkdir $workdir: $!\n";
(system("/usr/bin/pkgtrans $file $workdir $pkgname") == 0)
|| die "unable to extract $file: $!\n";
rename "$workdir/$pkgname", "$ {workdir}_1"
rename("$workdir/$pkgname", "$ {workdir}_1")
|| die "unable rename $workdir/$pkgname: $!\n";
rmdir $workdir;
rename "$ {workdir}_1", $workdir
rename("$ {workdir}_1", $workdir)
|| die "unable to rename $ {workdir}_1: $!\n";
$this->unpacked_tree($workdir);
}
@@ -257,7 +257,7 @@ sub prep {
# grep {/^\./} readdir DIR;
# closedir DIR;
system("cd $dir; find . -print | pkgproto > ./prototype") == 0
(system("cd $dir; find . -print | pkgproto > ./prototype") == 0)
|| die "error during pkgproto: $!\n";
open(PKGPROTO, ">>$dir/prototype")
@@ -280,7 +280,7 @@ sub prep {
close PKGINFO;
print PKGPROTO "i pkginfo=./pkginfo\n";
mkdir "$dir/install", 0755;
mkdir("$dir/install", 0755) || die "unable to mkdir $dir/install: $!";
open(COPYRIGHT, ">$dir/install/copyright")
|| die "error creating copyright: $!\n";
print COPYRIGHT $this->copyright;
@@ -311,12 +311,12 @@ sub build {
my $this = shift;
my $dir = $this->unpacked_tree;
system("cd $dir; pkgmk -r / -d .") == 0
(system("cd $dir; pkgmk -r / -d .") == 0)
|| die "Error during pkgmk: $!\n";
my $pkgname = $this->converted_name;
my $name = $this->name."-".$this->version.".pkg";
system("pkgtrans $dir $name $pkgname") == 0
(system("pkgtrans $dir $name $pkgname") == 0)
|| die "Error during pkgtrans: $!\n";
rename "$dir/$name", $name;
return $name;

View File

@@ -51,7 +51,7 @@ sub install {
my $this=shift;
my $rpm=shift;
system("rpm -ivh ".(exists $ENV{RPMINSTALLOPT} ? $ENV{RPMINSTALLOPT} : '').$rpm) == 0
(system("rpm -ivh ".(exists $ENV{RPMINSTALLOPT} ? $ENV{RPMINSTALLOPT} : '').$rpm) == 0)
or die "Unable to install";
}
@@ -145,7 +145,7 @@ sub unpack {
$this->SUPER::unpack(@_);
my $workdir=$this->unpacked_tree;
system("rpm2cpio ".$this->filename." | (cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>/dev/null") == 0
(system("rpm2cpio ".$this->filename." | (cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>/dev/null") == 0)
or die "Unpacking of `".$this->filename."' failed";
# If the package is relocatable. We'd like to move it to be under
@@ -168,11 +168,11 @@ sub unpack {
foreach (split m:/:, $this->prefixes) {
if ($_ ne '') { # this keeps us from using anything but relative paths.
$collect.="/$_";
mkdir $collect,0755 || die "unable to mkdir $collect: $!";
mkdir($collect,0755) || die "unable to mkdir $collect: $!";
}
}
# Now move all files in the package to the directory we made.
system("mv", @filelist, "$workdir/".$this->prefixes) == 0
(system("mv", @filelist, "$workdir/".$this->prefixes) == 0)
or die "error moving unpacked files into the default prefix directory: $!";
}

View File

@@ -114,7 +114,7 @@ sub install {
my $this=shift;
my $slp=shift;
system("slpi", $slp) == 0
(system("slpi", $slp) == 0)
or die "Unable to install";
}
@@ -250,7 +250,7 @@ sub build {
# something like that, becuase it results in a tar file where all
# the files in it start with "./", which is consitent with how
# normal stampede files look.
system("(cd ".$this->unpacked_tree."; tar cf - ./*) | bzip2 - > $slp") == 0
(system("(cd ".$this->unpacked_tree."; tar cf - ./*) | bzip2 - > $slp") == 0)
or die "package build failed: $!";
# Now append the footer.

View File

@@ -66,7 +66,7 @@ sub install {
my $tgz=shift;
if (-x "/sbin/installpkg") {
system("/sbin/installpkg", "$tgz") == 0
(system("/sbin/installpkg", "$tgz") == 0)
or die "Unable to install";
}
else {
@@ -162,7 +162,7 @@ sub unpack {
$this->SUPER::unpack(@_);
my $file=$this->filename;
system("cat $file | (cd ".$this->unpacked_tree."; tar zxpf -)") == 0
(system("cat $file | (cd ".$this->unpacked_tree."; tar zxpf -)") == 0)
or die "Unpacking of `$file' failed: $!";
# Delete the install directory that has slackware info in it.
system("cd ".$this->unpacked_tree."; rm -rf ./install");
@@ -187,7 +187,8 @@ sub prep {
my $out=$this->unpacked_tree."/install/".${scripttrans()}{$script};
next if ! defined $data || $data =~ m/^\s*$/;
if (!$install_made) {
mkdir $this->unpacked_tree."/install", 0755;
mkdir($this->unpacked_tree."/install", 0755)
|| die "unable to mkdir ".$this->unpacked_tree."/install: $!";
$install_made=1;
}
open (OUT, ">$out") || die "$out: $!";
@@ -208,7 +209,7 @@ sub build {
my $this=shift;
my $tgz=$this->name."-".$this->version.".tgz";
system("cd ".$this->unpacked_tree."; tar czf ../$tgz .") == 0
(system("cd ".$this->unpacked_tree."; tar czf ../$tgz .") == 0)
or die "Package build failed";
return $tgz;

View File

@@ -450,7 +450,7 @@ foreach my $file (@ARGV) {
# Make .orig.tar.gz directory?
if ($format eq 'deb' && ! $single && $generate) {
# Make .orig.tar.gz directory.
system("cp", "-fa", "--", $package->unpacked_tree, $package->unpacked_tree.".orig") == 0
(system("cp", "-fa", "--", $package->unpacked_tree, $package->unpacked_tree.".orig") == 0)
or die "cp -fa failed";
}

15
debian/changelog vendored
View File

@@ -1,3 +1,18 @@
alien (8.24) unstable; urgency=low
* Corrected precidence problem that made alien not catch mkdir of the work
directory failing if the directory already existed (and let it delete the
existing directory). Closes: #181061
* Fixed several other instances of the same precidence problem in the code.
-- Joey Hess <joeyh@debian.org> Sat, 15 Feb 2003 14:18:44 -0500
alien (8.23) unstable; urgency=low
* Updated j2sdk patch again.
-- Joey Hess <joeyh@debian.org> Mon, 3 Feb 2003 22:51:11 -0500
alien (8.22) unstable; urgency=low
* Use rpmbuild -bb instead of rpm -bb, as it seems that rpm -bb has stopped

View File

@@ -0,0 +1,320 @@
--- j2sdk-1.4.1_01.orig/debian/dirs
+++ j2sdk-1.4.1_01/debian/dirs
@@ -0,0 +1,4 @@
+usr/share/doc
+usr/share/man
+usr/lib/netscape/plugins-libc6
+usr/lib/mozilla/plugins
--- j2sdk-1.4.1_01.orig/debian/control
+++ j2sdk-1.4.1_01/debian/control
@@ -0,0 +1,31 @@
+Source: j2sdk
+Section: alien
+Priority: extra
+Maintainer: Gerald Turner <gturner@newedgenetworks.com>
+
+Package: j2sdk1.4
+Architecture: i386
+Depends: java-common, ${shlibs:Depends}
+Provides: j2sdk1.4, j2re1.4, java-virtual-machine, java2-runtime, java-compiler, java2-compiler
+Suggests: netscape | mozilla (>= 0.9.3+0-1)
+Description: Java(TM) 2 Software Development Kit, Standard Edition
+ The Java 2 SDK, Standard Edition includes the Java
+ Virtual Machine, core class libraries and tools used
+ by programmers to develop Java software applets and
+ applications. The SDK also provides the foundation
+ for IDE (Integrated Development Environment) tools
+ such as Sun's Forte for Java, Community Edition,
+ the Java(TM) 2 Platform, Enterprise Edition (J2EE),
+ Java-based application servers and more.
+ The Java 2 Software Development Kit, SDK, is a
+ development environment for building applications,
+ applets, and components that can be deployed on
+ the Java platform. The Java 2 SDK software includes
+ tools useful for developing and testing programs
+ written in the Java programming language and running
+ on the Java platform. These tools are designed to
+ be used from the command line. Except for
+ appletviewer, these tools do not provide a
+ graphical user interface.
+ .
+ (Converted from a rpm package by alien.)
--- j2sdk-1.4.1_01.orig/debian/prerm
+++ j2sdk-1.4.1_01/debian/prerm
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+case "`uname -m`" in
+ i[3-7]86 | ia32 | ia64)
+ ARCH=i386
+ ;;
+ sparc*)
+ ARCH=sparc
+ ;;
+ *)
+ ARCH="`uname -m`"
+ ;;
+esac
+
+if [ $1 = remove ]
+then
+ for i in appletviewer extcheck idlj jar jarsigner java javac javadoc \
+ javah javap jdb keytool kinit klist ktab native2ascii orbd \
+ policytool rmic rmid rmiregistry serialver servertool \
+ tnameserv ControlPanel HtmlConverter
+ do
+ update-alternatives --remove $i /usr/lib/j2sdk1.4/bin/$i
+ done
+
+ update-alternatives \
+ --remove \
+ javaplugin.so \
+ /usr/lib/j2sdk1.4/jre/plugin/${ARCH}/ns4/javaplugin.so
+
+ update-alternatives \
+ --remove \
+ javaplugin_oji.so \
+ /usr/lib/j2sdk1.4/jre/plugin/${ARCH}/ns610/libjavaplugin_oji.so
+fi
--- j2sdk-1.4.1_01.orig/debian/rules
+++ j2sdk-1.4.1_01/debian/rules
@@ -0,0 +1,76 @@
+#!/usr/bin/make -f
+# debian/rules for alien
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+# Use v3 compatability mode, so ldconfig gets added to maint scripts.
+export DH_COMPAT=3
+
+PACKAGE=$(shell dh_listpackages)
+
+build:
+ dh_testdir
+
+clean:
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+binary-indep: build
+
+binary-arch: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+# Copy the packages's files.
+ find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \
+ xargs -0 -r -i cp -a {} debian/$(PACKAGE)
+
+#
+# If you need to move files around in debian/$(PACKAGE) or do some
+# binary patching, do it here
+#
+
+ mv debian/$(PACKAGE)/usr/java/j2sdk1.4.1_01 \
+ debian/$(PACKAGE)/usr/lib/j2sdk1.4
+ rmdir debian/$(PACKAGE)/usr/java
+
+ mv debian/$(PACKAGE)/usr/lib/j2sdk1.4/man/* \
+ debian/$(PACKAGE)/usr/share/man
+ rmdir debian/$(PACKAGE)/usr/lib/j2sdk1.4/man
+
+ rm debian/$(PACKAGE)/usr/share/man/ja
+ mv debian/$(PACKAGE)/usr/share/man/ja_JP.eucJP \
+ debian/$(PACKAGE)/usr/share/man/ja
+
+ for i in `find debian/$(PACKAGE)/usr/share/man -type f` ; \
+ do mv $$i `echo $$i | sed 's/\.\([^.]*\)$$/.j2sdk14.\1/'` ; \
+ done
+
+ if [ -f ../j2sdk-1_4_1-doc.zip ] ; then \
+ unzip -q -d debian/$(PACKAGE)/usr/share/doc \
+ ../j2sdk-1_4_1-doc.zip ; \
+ mv debian/$(PACKAGE)/usr/share/doc/docs \
+ debian/$(PACKAGE)/usr/share/doc/$(PACKAGE) ; \
+ else \
+ echo j2sdk-1_4_1-doc.zip not found, skipping documentation ; \
+ fi
+
+ dh_installdocs
+ dh_installchangelogs
+# This has been known to break on some wacky binaries.
+# dh_strip
+ dh_compress
+ dh_fixperms
+ dh_makeshlibs
+ dh_installdeb
+ -dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary
--- j2sdk-1.4.1_01.orig/debian/changelog
+++ j2sdk-1.4.1_01/debian/changelog
@@ -0,0 +1,44 @@
+j2sdk (1.4.1_01-4) experimental; urgency=low
+
+ * New upstream release
+
+ -- Gerald Turner <gturner@newedgenetworks.com> Tue, 14 Jan 2003 17:03:09 -0800
+
+j2sdk (1.4.1-3) experimental; urgency=low
+
+ * New upstream release
+ * Detection and installation of j2sdk-1_4_1-doc.zip (must be downloaded
+ and copied to the same directory where alien is executed)
+
+ -- Gerald Turner <gturner@newedgenetworks.com> Wed, 2 Oct 2002 16:41:24 -0700
+
+j2sdk (1.4.1-2) experimental; urgency=low
+
+ * Added java-common Depends
+ * Added java-virtual-machine, java2-runtime, java-compiler, and
+ java2-compiler Provides
+ * Added netscape and mozilla Suggests
+
+ -- Gerald Turner <gturner@newedgenetworks.com> Thu, 23 Aug 2002 09:07:09 -0700
+
+j2sdk (1.4.1-1) experimental; urgency=low
+
+ * New upstream release
+ * Detection and installation of j2sdk-1_4_1-rc-doc.zip (must be downloaded
+ and copied to the same directory where alien is executed)
+
+ -- Gerald Turner <gturner@newedgenetworks.com> Thu, 22 Aug 2002 16:22:33 -0700
+
+j2sdk (1.4.0_01-1) experimental; urgency=low
+
+ * New upstream release
+ * Detection and installation of j2sdk-1_4_0-doc.zip (must be downloaded
+ and copied to the same directory where alien is executed)
+
+ -- Gerald Turner <gturner@newedgenetworks.com> Thu, 22 Aug 2002 15:44:54 -0700
+
+j2sdk (1.4.0-1) experimental; urgency=low
+
+ * Converted from .rpm format to .deb
+
+ -- Gerald Turner <gturner@newedgenetworks.com> Wed, 22 May 2002 12:46:34 -0700
--- j2sdk-1.4.1_01.orig/debian/postinst
+++ j2sdk-1.4.1_01/debian/postinst
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+case "`uname -m`" in
+ i[3-7]86 | ia32 | ia64)
+ ARCH=i386
+ ;;
+ sparc*)
+ ARCH=sparc
+ ;;
+ *)
+ ARCH="`uname -m`"
+ ;;
+esac
+
+if [ $1 = configure ]
+then
+ for i in appletviewer extcheck idlj jar jarsigner java javac javadoc \
+ javah javap jdb keytool kinit klist ktab native2ascii orbd \
+ policytool rmic rmid rmiregistry serialver servertool \
+ tnameserv ControlPanel HtmlConverter
+ do
+ if [ -e /usr/share/man/man1/$i.j2sdk14.1.gz ]
+ then
+ if [ -e /usr/share/man/ja/man1/$i.j2sdk14.1.gz ]
+ then
+ update-alternatives \
+ --install \
+ /usr/bin/$i \
+ $i \
+ /usr/lib/j2sdk1.4/bin/$i \
+ 1401 \
+ --slave \
+ /usr/share/man/man1/$i.1.gz \
+ $i.1.gz \
+ /usr/share/man/man1/$i.j2sdk14.1.gz \
+ --slave \
+ /usr/share/man/ja/man1/$i.1.gz \
+ $i.ja.1.gz \
+ /usr/share/man/ja/man1/$i.j2sdk14.1.gz
+ else
+ update-alternatives \
+ --install \
+ /usr/bin/$i \
+ $i \
+ /usr/lib/j2sdk1.4/bin/$i \
+ 1401 \
+ --slave \
+ /usr/share/man/man1/$i.1.gz \
+ $i.1.gz \
+ /usr/share/man/man1/$i.j2sdk14.1.gz
+ fi
+ else
+ update-alternatives \
+ --install \
+ /usr/bin/$i \
+ $i \
+ /usr/lib/j2sdk1.4/bin/$i \
+ 1401
+ fi
+ done
+
+ update-alternatives \
+ --install \
+ /usr/lib/netscape/plugins-libc6/javaplugin.so \
+ javaplugin.so \
+ /usr/lib/j2sdk1.4/jre/plugin/${ARCH}/ns4/javaplugin.so \
+ 1401
+
+ update-alternatives \
+ --install \
+ /usr/lib/mozilla/plugins/javaplugin_oji.so \
+ javaplugin_oji.so \
+ /usr/lib/j2sdk1.4/jre/plugin/${ARCH}/ns610/libjavaplugin_oji.so \
+ 1401
+fi
--- j2sdk-1.4.1_01.orig/debian/copyright
+++ j2sdk-1.4.1_01/debian/copyright
@@ -0,0 +1,35 @@
+This package was debianized by the alien program by converting
+a binary .rpm package on Tue, 14 Jan 2003 17:03:09 -0800
+
+Copyright: 1994-2001 Sun Microsystems, Inc.
+
+Information from the binary package:
+Name : j2sdk Relocations: (not relocateable)
+Version : 1.4.1_01 Vendor: Sun Microsystems
+Release : fcs Build Date: Mon Sep 30 03:18:37 2002
+Install date: (not installed) Build Host: localhost.localdomain
+Group : Development/Tools Source RPM: j2sdk-1.4.1_01-fcs.src.rpm
+Size : 83017072 License: 1994-2001 Sun Microsystems, Inc.
+Packager : Java Software <j2se-comments@java.sun.com>
+URL : http://java.sun.com/linux
+Summary : Java(TM) 2 Software Development Kit, Standard Edition
+Description :
+The Java 2 SDK, Standard Edition includes the Java
+Virtual Machine, core class libraries and tools used
+by programmers to develop Java software applets and
+applications. The SDK also provides the foundation
+for IDE (Integrated Development Environment) tools
+such as Sun's Forte for Java, Community Edition,
+the Java(TM) 2 Platform, Enterprise Edition (J2EE),
+Java-based application servers and more.
+The Java 2 Software Development Kit, SDK, is a
+development environment for building applications,
+applets, and components that can be deployed on
+the Java platform. The Java 2 SDK software includes
+tools useful for developing and testing programs
+written in the Java programming language and running
+on the Java platform. These tools are designed to
+be used from the command line. Except for
+appletviewer, these tools do not provide a
+graphical user interface.
+