Initial rework of (svn) java-package 0.42
authorCédric Pineau <cedric.pineau@gmail.com>
Tue, 10 Jan 2012 17:57:52 +0000 (18:57 +0100)
committerCédric Pineau <cedric.pineau@gmail.com>
Tue, 10 Jan 2012 17:57:52 +0000 (18:57 +0100)
35 files changed:
.gitignore [new file with mode: 0644]
Makefile [new file with mode: 0644]
TODO [new file with mode: 0644]
debian/README.Debian [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/dirs [new file with mode: 0644]
debian/java-package.docs [new file with mode: 0644]
debian/rules [new file with mode: 0755]
lib/common.sh [new file with mode: 0644]
lib/install-common [new file with mode: 0644]
lib/j2re.sh [new file with mode: 0644]
lib/j2sdk-doc.sh [new file with mode: 0644]
lib/j2sdk.sh [new file with mode: 0644]
lib/j2se.sh [new file with mode: 0644]
lib/oracle-j2re.sh [new file with mode: 0644]
lib/oracle-j2sdk-doc.sh [new file with mode: 0644]
lib/oracle-j2sdk.sh [new file with mode: 0644]
lib/remove-common [new file with mode: 0644]
make-jpkg [new file with mode: 0755]
make-jpkg.1 [new file with mode: 0644]
oracle-j2re1.6/install [new file with mode: 0644]
oracle-j2re1.6/remove [new file with mode: 0644]
oracle-j2re1.7/install [new file with mode: 0644]
oracle-j2re1.7/remove [new file with mode: 0644]
oracle-j2sdk1.6-doc/install [new file with mode: 0644]
oracle-j2sdk1.6-doc/remove [new file with mode: 0644]
oracle-j2sdk1.6/install [new file with mode: 0644]
oracle-j2sdk1.6/remove [new file with mode: 0644]
oracle-j2sdk1.7-doc/install [new file with mode: 0644]
oracle-j2sdk1.7-doc/remove [new file with mode: 0644]
oracle-j2sdk1.7/install [new file with mode: 0644]
oracle-j2sdk1.7/remove [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..b25c15b
--- /dev/null
@@ -0,0 +1 @@
+*~
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..e0afbfc
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,29 @@
+DESTDIR=
+
+.PHONY: default
+default: build
+
+.PHONY: build
+build:
+       echo "java-package currently supports the following binary packages:" \
+               > SUPPORTED
+       echo >> SUPPORTED
+       echo "(This list is automatically generated, do not edit)" >> SUPPORTED
+       echo >> SUPPORTED
+       grep -h "SUPPORTED$$" $(wildcard lib/*-*.sh) | sed 's/"//g;s/).*//' \
+               >> SUPPORTED
+
+.PHONY: clean
+clean:
+       rm -f SUPPORTED
+
+.PHONY: install
+install:
+       install -d -m 755 $(DESTDIR)/usr/bin
+       install -m 755 make-jpkg.out $(DESTDIR)/usr/bin/make-jpkg
+       install -d -m 755 $(DESTDIR)/usr/share/man/man1
+       install -m 644 make-jpkg.1 $(DESTDIR)/usr/share/man/man1/
+       install -d -m 755 $(DESTDIR)/usr/share/java-package
+       for file in lib/*.sh; do \
+           install -m 644 $$file $(DESTDIR)/usr/share/java-package/ ; \
+       done
diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..121db83
--- /dev/null
+++ b/TODO
@@ -0,0 +1,11 @@
+
+From old java-pakage :
+Move repeated code in install/remove scripts to a single point; apply the DRY (don't repeat yourself) principle.
+Change handling of alternatives to allow for multiple directories, i.e. when you have executables in both bin and jre/bin in a JDK.
+Remove use of dpkg --print-architecture from plugin alternatives installation in install/remove scripts.
+
+From Matthias Klose <doko@ubuntu.com> :
+
+Support the .jinfo files (update-java-alternatives)
+Install into a multiarch location to allow installing the i386 client vm on amd64 and ia64. 
+
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644 (file)
index 0000000..74551da
--- /dev/null
@@ -0,0 +1,25 @@
+java-package
+------------
+
+This package can be used to install various non-free external Java packages
+under Debian.
+
+It includes the 'make-jpkg' command to do this, see 'man make-jpkg' for more
+information about generating java packages.
+
+Supported packages currently include:
+
+ * Oracle :
+   - The J2SE Development Kit (JDK), version 6 (update >= 10), 7
+   - The J2SE Runtime Environment (JRE), version 6 (update >= 10), 7
+   - The J2SE API Javadoc, version 6 (update >= 10), 7
+
+   Download: 
+   http://www.oracle.com/technetwork/java/javase/downloads
+   
+   (Choose tar.gz archives, i586 or amd64, do _not_ choose the RPM!)
+
+All other previously supported jvm (Blackdown, IBM, ..) have been removed and
+will only be added back on users demand
+
+ -- Cédric Pineau <cedric.pineau@gmail.com>  Thu, 22 Dec 2011 11:42:13 +0100
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..2ad6cdb
--- /dev/null
@@ -0,0 +1,437 @@
+java-package (0.50) UNRELEASED; urgency=low
+
+  * Java-package reset for reintroduction in debian (removal of all
+    previously supported jvm).
+  * Add support for Oracle Java 6 (update >= 10)
+  * Add support for Oracle Java 7
+
+ -- Cédric Pineau <cedric.pineau@gmail.com>  Thu, 22 Dec 2011 11:42:13 +0100
+
+java-package (0.43) UNRELEASED; urgency=low
+
+  * Remove Java plugins for all browsers (Closes: #367887).
+  * Add support for Sun Java 6 Update XX (Closes: #514364).
+
+ -- Michael Koch <konqueror@gmx.de>  Thu, 17 Sep 2009 13:15:55 +0200
+
+java-package (0.42) unstable; urgency=low
+
+  * Provide java*-runtime-headless and java*-sdk names for generated
+    packages.
+  * Recommend dpkg-dev and gcc. Closes: #281766, #405814.
+
+ -- Matthias Klose <doko@debian.org>  Sat, 02 Aug 2008 12:10:52 +0200
+
+java-package (0.41) unstable; urgency=low
+
+  * Added support for new SUN JDK/JRE for amd64 downloads. Thanks to
+    Artyom Gavrichenkov for the initial patch.
+
+ -- Michael Koch <konqueror@gmx.de>  Fri, 21 Mar 2008 17:20:35 +0100
+
+java-package (0.40) unstable; urgency=low
+
+  * Add support for ibm-java2-sdk-5.0-6.0-linux-$arch.tgz. Closes: #462399
+    Thanks to Evgeni Dobrev for the patch.
+  * Fixed spelling error in long description: debian -> Debian.
+
+ -- Michael Koch <konqueror@gmx.de>  Thu, 24 Jan 2008 22:48:46 +0100
+
+java-package (0.39) unstable; urgency=low
+
+  * Added support for IBM JDK 6.0 final release.
+  * Updated Standard-Version to 3.7.3.
+  * Updated debhelper level to 5.
+
+ -- Michael Koch <konqueror@gmx.de>  Tue, 18 Dec 2007 07:38:34 +0100
+
+java-package (0.38) unstable; urgency=low
+
+  * Mention SUN JDK 6 in REAME.Debian. Closes: #448258.
+  * Fixed typo when creating version number for SUN JDK 6. Closes: #451935.
+  * Fix handling of symlinks for ControlPanel, HtmlConverter and java-rmi.cgi
+    from SUN JDK 6. Closes: #448351.
+
+ -- Michael Koch <konqueror@gmx.de>  Fri, 30 Nov 2007 00:03:50 +0100
+
+java-package (0.37) unstable; urgency=low
+
+  * Added libstdc++5 to Recommends of generated package. Closes: #446334.
+
+ -- Michael Koch <konqueror@gmx.de>  Thu, 25 Oct 2007 22:45:42 +0200
+
+java-package (0.36) unstable; urgency=low
+
+  * Fixed package description to include more supported JDKs.
+    Closes: #447615, #447617.
+
+ -- Michael Koch <konqueror@gmx.de>  Wed, 24 Oct 2007 09:56:52 +0200
+
+java-package (0.35) unstable; urgency=low
+
+  * Use 'date -R' instead of the deprecated '822-date'. Closes: #441229.
+  * Fix generation of .changes file. Closes: #332643.
+    Thanks to Christoph Goehre for the patch.
+  * Add possibility to add a configured revision to the version.
+    Closes: #442246. Thanks to Christoph Goehre again for the patch.
+
+ -- Michael Koch <konqueror@gmx.de>  Fri, 14 Sep 2007 17:28:13 +0200
+
+java-package (0.34) unstable; urgency=low
+
+  * Fixed SUN JDK on amd64. Closes: #439221.
+
+ -- Michael Koch <konqueror@gmx.de>  Fri, 24 Aug 2007 00:41:54 +0200
+
+java-package (0.33) unstable; urgency=low
+
+  * Fixed postinst scripts for SUN JDK 1.4, 5 and 6. Closes: #435632.
+
+ -- Michael Koch <konqueror@gmx.de>  Thu, 02 Aug 2007 18:43:40 +0200
+
+java-package (0.32) unstable; urgency=low
+
+  * Added support for iceweasel. Closes: #433445.
+  * Fix dangling links for SUN Java 5. Closes: #305053.
+  * Depend on libx11-6 and libasound2. Closes: #289004.
+  * Fix building on ia64. Closes: #355465.
+
+ -- Michael Koch <konqueror@gmx.de>  Thu, 19 Jul 2007 22:51:31 +0200
+
+java-package (0.31) unstable; urgency=low
+
+  * Reapplied changes from 0.28 to 0.29. Closes: 322843.
+
+ -- Michael Koch <konqueror@gmx.de>  Tue, 10 Jul 2007 08:16:14 +0200
+
+java-package (0.30) unstable; urgency=low
+
+  * Added support for SUN JDK 6u2 (and following updates).
+  * Added support for ibm-java2-jre-5.0-5.0-linux-ppc.tgz.
+    Thanks to B. Zhang.
+
+ -- Michael Koch <konqueror@gmx.de>  Sun, 08 Jul 2007 09:33:29 +0200
+
+java-package (0.29) unstable; urgency=low
+
+  * Added support for SUN Java 6 and IBM Java 6.
+    Closes: #322843, #402642, #418592, #425508, #430026.
+  * Added myself to Uploaders.
+
+ -- Michael Koch <konqueror@gmx.de>  Tue, 26 Jun 2007 17:40:04 -0100
+
+java-package (0.28) unstable; urgency=low
+
+  * Modified to reflect migration to Subversion
+  * Bumped standards to version 3.7.2, no changes
+  * Corrected test for AMD64 architecture during plug-in detection
+  * Corrected detected version for IBM Java 5 JDK on AMD64 (Closes: #345775)
+  * Repaired alternatives handling for IBM Java 5 JREs and JDKs
+    (Closes: #338569)
+  * Corrected pathing for alternatives installation for Mozilla and
+    Firefox plugins (Closes: #341751)
+  * Relaxed architectural restrictions on plugin alternative 
+    installation for IBM Java 5 JREs and JDKs (Closes: #343837)
+  * Added plugin installation for the new packaging of Firefox 1.5 and
+    later (Closes: #341749)
+  * Modified warning suppression for dh_shlibdeps to accommodate 
+    changes in dpkg-dev (Closes: #354427)
+  * Added quotes to variable tests for maintainer name and email 
+    (Closes: #342623)
+  * Refactored architecture evaluation to eliminate repetition and
+    evaluate DEB_BUILD_GNU_TYPE correctly for i486-linux-gnu
+  * Removed dependency on 'coreutils | stat' from control file, as
+    the dependency is satisfied within essential (Closes: #370002)
+
+ -- Barry Hawkins <barry@alltc.com>  Mon, 26 Jun 2006 11:19:08 -0400
+
+java-package (0.27) unstable; urgency=low
+
+  * Added support for IBM Java2 5.0 JREs and JDKs (Closes: #337129)
+  * Corrected missing alternatives links for all JREs and JDKs
+    (Closes: #317492)
+  * Added conditional wrapping around dh_compress to account for
+    JRE/JDKs that do not ship manpages (Closes: 301738)
+  * Removed java-common from Provides: for JRE and JDK packages.
+
+ -- Barry Hawkins <barry@bytemason.org>  Tue, 08 Nov 2005 12:16:24 -0500
+
+java-package (0.26) unstable; urgency=low
+
+  * Update standards version to 3.6.2
+  * Resolve issues with powerpc-linux support detection (Closes: #317671)
+  * Added support for Blackdown 1.4.2+02 release (Closes: #316831)
+  * Added support for packaging Sun JDK documentation (Closes: #272971)
+  * Modified make-jpkg behavior to default the generated packages' 
+    name and email address for the maintainer to Debian Java Maintainers
+    (Closes: #325554)
+
+ -- Barry Hawkins <barry@bytemason.org>  Thu, 18 Aug 2005 00:43:17 -0400
+
+java-package (0.25) unstable; urgency=low
+
+  * Cope with dpkg's new way of expressing architectures (Closes: #313555)
+  * Re-exec with fakeroot if needed (Closes: #310132)
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl>  Sun, 10 Jul 2005 18:50:40 +0200
+
+java-package (0.24) unstable; urgency=low
+
+  * Added plugin alternatives support for i386 IBM JREs and JDKs
+  * Corrected pathing for plugin alternatives to reflect difference in 
+    layout between JREs and JDKs for Sun and Blackdown (Closes: #305219,
+    #301806)
+
+ -- Barry Hawkins <barry@bytemason.org>  Wed, 21 Apr 2005 01:02:03 -0400
+
+java-package (0.23.1) experimental; urgency=low
+
+  * Added architecture-specific pathing for plugin alternatives for 
+    Blackdown 1.3 and 1.4 JREs and JDKs
+
+ -- Barry Hawkins <barry@bytemason.org>  Wed, 06 Apr 2005 00:03:40 -0500
+
+java-package (0.23) unstable; urgency=low
+
+  * Further expanded 1.3.1 Blackdown JRE/JDK support for i386
+  * Added architecture-specific pathing for plugin alternatives for 
+    Sun 1.4 and 1.5 JREs and JDKs (Closes: #301806)
+  * Added recommends for system elements required by applets and 
+    graphical user interface elements (Closes: #300817)
+  * Jeroen van Wolffelaar:
+    + Fixed packages description to not have too long lines, and make the 3
+      items an enumeration
+
+ -- Barry Hawkins <barry@bytemason.org>  Fri, 01 Apr 2005 00:36:40 -0500
+
+java-package (0.22.1) experimental; urgency=low
+
+  * Corrected IBM and Blackdown JRE/JDK file size specifications
+  * Added support for additional 1.3.1 Blackdown JREs and JDKs for i386,
+    powerpc (Closes: #301092)
+  * Added installation of javaws alternative for Sun 1.5 JREs and JDKs 
+    (Closes: #300303)
+
+ -- Barry Hawkins <barry@bytemason.org>  Thu, 24 Mar 2005 13:20:18 -0500
+
+java-package (0.22) unstable; urgency=low
+
+  * Corrected IBM JRE/JDK scripts to accurately reflect the supported 
+    IBM JDKs and JREs in the generated SUPPORTED file
+
+ -- Barry Hawkins <barry@alltc.com>  Fri, 18 Mar 2005 10:21:53 -0500
+
+java-package (0.21) unstable; urgency=low
+
+  * Enable support for IBM JDKs and JREs for x86, amd64, powerpc, 
+    powerpc64, and s390 architectures, based upon a patch by Rico 
+    Schiekel (Closes: #264137)
+  * Enable suppport for Blackdown 1.3.1 JDK and JRE for PowerPC 
+    architecture. (Closes: #296205)
+  * Update documentation and to reflect current supported JDKs and JREs
+
+ -- Barry Hawkins <barry@alltc.com>  Mon, 14 Mar 2005 03:18:39 -0500
+
+java-package (0.20) unstable; urgency=low
+
+  * Make the postinst & rm for generated packages #!/bin/bash, as we use
+    bash-specific features (Closes: #292179)
+  * Drop the df output parsing, use '/usr/bin/stat' instead (Closes: #293487,
+    #289006, #293350)
+  * Drop the now obsolete peer stuff from the source package
+  * Change priorities, 313 for 1.3, 314 for 1.4, etc (Closes: #292451)
+  * Don't dh_strip, fiddling with upstream's binaries apparantly breaks stuff
+    (Closes: #291238)
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl>  Tue, 08 Feb 2005 15:04:51 +0100
+
+java-package (0.19) unstable; urgency=low
+
+  The "Joshua Kwan <joshk@debian.org> rocks!" release.
+
+  Joshua Kwan:
+  * Unclutter Debian build system and rework package slightly so that
+    *debian packages are not needed anymore. The necessary files will be
+    included in the generated packages. (Closes: #291145, #289245, #284779)
+  * Add support for Blackdown 1.4.2+01 build. (Closes: #285405)
+  * Fix support for Sun 1.5.0 amd64 builds due to typo. (Closes: #290879)
+  * Mozilla browser plugin name changed in 1.4.2 versions. Detect and correct.
+    (Closes: #273730)
+  * Use --block-size=1M instead of -BM. (Closes: #289005, #291161)
+  * Disable support for Sun JDK 1.3 due to its dependencies on libraries
+    that are simply not available anymore. (Closes: #272972)
+  * Fix up short description a little bit.
+  * Bump Standards-Version to 3.6.1 (no changes)
+  * Be a bit more conservative with the real-root test.
+  * Remove last j2se-package references.
+  * Change Suggests on fakeroot to a Depends because it is worthless both
+    as real root and as a normal user without fakeroot.
+
+  Jeroen van Wolffelaar:
+  * Use DEBFULLNAME, DEBNAME and DEBEMAIL if available, and don't ask for
+    those values in that case. (Closes: #279653)
+  * Updated documentation regarding dropped Sun 1.3 support
+  * Work around multiline df output caused by long device names
+    (Closes: #289006)
+  * Add Replaces: for the generated packages on their *debian counterparts
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl>  Tue, 25 Jan 2005 00:05:06 +0100
+
+java-package (0.18) unstable; urgency=low
+
+  * Added myself to Uploaders
+  * Fix security hole (inscure temp file creation) plus lots of needless I/O
+    in free disk checking function
+  * Added support for Sun's JDK/JRE 1.5 patch levels, based on a patch by
+    Peter Marschall <peter@adpm.de> (Closes: #286718, #287857)
+  * Bail out if running as real root (works around the evil parts of Sun's
+    install script that unconditionally writes to /etc, see #266273, #280707)
+  * Fix typo in j2re.sh that apparantly with some versions of
+    bash/dpkg/whatever cause package build failure (Closes: #281780, #282902)
+  * Reduce minimum expected size a bit Sun's 1.5.0 amd64 package, it was set
+    too high (Closes: #284033)
+  * Substitute package version number at build time in the make-jpkg
+    executable (Closes: #282221)
+  * Added a README.Debian explaining the existance of make-jpkg and what
+    binary packages are supported and where to get them. Thanks Thijs
+    Kinkhorst for the draft (Closes: #283362)
+  * Added automatically-generated file SUPPORTED that lists all binary
+    filenames that are supported, thanks Alex Owen <owen@cus.org.uk> for the
+    idea (Closes: #275296)
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl>  Mon,  3 Jan 2005 18:47:47 +0100
+
+java-package (0.17) unstable; urgency=low
+
+  * added a patch for detecting the architecture (Closes: #274844,
+    #270949, #271846). This patch should also close this one (Closes:
+    #280685).
+
+ -- Arnaud Vandyck <avdyk@debian.org>  Fri, 12 Nov 2004 17:28:38 +0100
+
+java-package (0.16) unstable; urgency=low
+
+  * added myself as an uploader.
+  * Carlos already closed the support for 1.5 request but it seems he did
+    not upload the package (Closes: #277088).
+
+ -- Arnaud Vandyck <avdyk@debian.org>  Wed, 10 Nov 2004 16:38:44 +0100
+
+java-package (0.15) unstable; urgency=low
+
+  * lib/sun-j2re.sh: Added support for JRE 1.5.0 (aka "Java 5.0").
+  * lib/sun-j2sdk.sh: Added support for Java SDK 1.5.0.
+
+ -- Carlos Laviola <claviola@debian.org>  Mon, 11 Oct 2004 21:08:59 -0300
+
+java-package (0.14) unstable; urgency=low
+
+  * debian/control: Commented out the lines that generate the Debian-specific
+    packages, thus making alternatives available.
+    - Also made all of the generated packages depend on their Debian-specific
+    counterparts by default.  (Closes: #266671)
+
+ -- Carlos Laviola <claviola@debian.org>  Mon, 13 Sep 2004 03:38:31 -0300
+
+java-package (0.13) unstable; urgency=low
+
+  * References to j2se-package are gone.  (Closes: #267642)
+  * Added support for Blackdown Java 1.4.2 RC1 JRE/SDK.  (Closes: #267643)
+
+ -- Carlos Laviola <claviola@debian.org>  Mon, 13 Sep 2004 03:17:54 -0300
+
+java-package (0.12) unstable; urgency=low
+
+  * remove to contrib because this package depend on non-free J2SE.
+
+ -- Takashi Okamoto <tora@debian.org>  Tue,  3 Aug 2004 00:37:13 +0900
+
+java-package (0.11) unstable; urgency=low
+
+  * change package name java-package and the command build package is 
+    make-jpkg.
+
+ -- Takashi Okamoto <tora@debian.org>  Sat, 31 Jul 2004 15:07:36 +0900
+
+java-package (0.10) unstable; urgency=low
+
+  * change package name mpkg-j2se.
+  * not use *-j2[re|sdk]debian package. Instead of this, add package 
+    dependency to generated package. This reduce the installation for 
+    such extra package. 
+  * SUN's jdk1.5 beta2 support.
+
+ -- Takashi Okamoto <tora@debian.org>  Sun, 18 Jul 2004 13:53:36 +0900
+
+java-package (0.9) unstable; urgency=low
+
+  * more generic support for j2re1.3.1/j2sdk1.3.1 from SUN.
+
+  * add alternative for jarsigner (in j2sdk1.4 and j2sdk1.5 from SUN).
+
+ -- Hubert Schmid <ude2@z42.de>  Sun, 23 May 2004 23:35:14 +0200
+
+java-package (0.8) unstable; urgency=low
+
+  * java plugin: support for mozilla-firefox.
+
+ -- Hubert Schmid <ude2@z42.de>  Tue,  4 May 2004 22:39:39 +0200
+
+java-package (0.7) unstable; urgency=low
+
+  * Optionally create .changes file.
+
+  * Add command line options: --help, --version, --full-name,
+    --email, --changes.
+
+  * Add environment variables: J2SE_PACKAGE_FULL_NAME,
+    J2SE_PACKAGE_EMAIL.
+
+ -- Hubert Schmid <ude2@z42.de>  Sat, 27 Mar 2004 23:01:08 +0100
+
+java-package (0.6) unstable; urgency=low
+
+  * More generic support for Java2 1.4.2 from SUN.
+
+ -- Hubert Schmid <ude2@z42.de>  Thu, 11 Mar 2004 20:39:51 +0100
+
+java-package (0.5) unstable; urgency=low
+
+  * NEW: build Blackdown J2RE 1.4.1 (gcc-2.95) and J2SDK 1.4.1 (gcc-2.95).
+
+  * NEW: support for SUN J2RE 1.5.0 beta, SUN J2SDK 1.5.0 beta.
+
+ -- Hubert Schmid <ude2@z42.de>  Sat,  7 Feb 2004 21:57:09 +0100
+
+java-package (0.4) unstable; urgency=low
+
+  * Added support for: SUN J2RE 1.4.2_03, SUN J2SDK 1.4.2_03
+
+ -- Hubert Schmid <ude2@z42.de>  Thu, 15 Jan 2004 22:27:52 +0100
+
+java-package (0.3) unstable; urgency=low
+
+  * Added support for: Blackdown J2RE 1.3, 1.4, J2SDK 1.3, 1.4
+
+  * Removed usage of "du --apparent-size". This should fix a problem
+    with old fileutils.
+
+ -- Hubert Schmid <ude2@z42.de>  Sun,  9 Nov 2003 21:13:38 +0100
+
+java-package (0.2) unstable; urgency=low
+
+  * Added support for: Sun J2RE 1.3, Sun J2SDK 1.3, Sun J2SDK 1.4
+
+  * Moved peer packages into this source package.
+
+ -- Hubert Schmid <ude2@z42.de>  Thu, 30 Oct 2003 00:10:01 +0100
+
+java-package (0.1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Hubert Schmid <j2se-package@z42.de>  Sun, 26 Oct 2003 20:06:57 +0100
+
+Local variables:
+mode: debian-changelog
+End:
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..1831fb7
--- /dev/null
@@ -0,0 +1,20 @@
+Source: java-package
+Section: contrib/misc
+Priority: optional
+Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
+Uploaders: Carlos Laviola <claviola@debian.org>, Arnaud Vandyck <avdyk@debian.org>, Jeroen van Wolffelaar <jeroen@wolffelaar.nl>, Barry Hawkins <barry@alltc.com>, Michael Koch <konqueror@gmx.de>
+Build-Depends: debhelper (>= 5)
+Standards-Version: 3.7.3
+
+Package: java-package
+Architecture: all
+Depends: debhelper, fakeroot, unzip, libx11-6, libasound2
+Recommends: dpkg-dev, gcc
+Description: utility for building Java(TM) 2 related Debian packages
+ This package provides the capability to create a Debian package from
+ a Java(TM) 2 distribution by just running make-jpkg <filename>.
+ .
+ This program currently works with the following Java(TM) 2 Runtime
+ Environments and Development Kits:
+ .
+  * Oracle(TM) 7 Standard Edition
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..3021fbb
--- /dev/null
@@ -0,0 +1,29 @@
+This is java-package, maintained by Jeroen van Wolffelaar
+<jeroen@wolffelaar.nl> and Barry Hawkins <barry@bytemason.org>.
+It is based upon the j2se-package application originally 
+written by Hubert Schmid.
+
+The original source can always be found at:
+http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/java-package/?cvsroot=pkg-java
+
+Copyright (C) 2005  Barry Hawkins
+Copyright (C) 2004-2005  Jeroen van Wolffelaar
+Copyright (C) 2003  Hubert Schmid
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this package; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  
+  02110-1301  USA.
+
+On Debian systems, the complete text of the GNU General Public License
+can be found in `/usr/share/common-licenses/GPL'.
diff --git a/debian/dirs b/debian/dirs
new file mode 100644 (file)
index 0000000..083cb35
--- /dev/null
@@ -0,0 +1,2 @@
+/usr/bin
+/usr/share/java-package
diff --git a/debian/java-package.docs b/debian/java-package.docs
new file mode 100644 (file)
index 0000000..366b3a5
--- /dev/null
@@ -0,0 +1 @@
+SUPPORTED
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..c6f6e22
--- /dev/null
@@ -0,0 +1,68 @@
+#!/usr/bin/make -f
+# debian/rules for java-package
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# Extract source package version number from changelog
+VERSION := $(shell head -n 1 $(CURDIR)/debian/changelog | sed 's/.*(//;s/).*//')
+B := $(CURDIR)/debian/java-package
+
+build: build-stamp 
+
+build-stamp:
+       dh_testdir
+       # Add here commands to compile the indep part of the package.
+       sed s/@VERSION@/$(VERSION)/ make-jpkg > make-jpkg.out
+       touch $@
+
+clean:
+       dh_testdir
+       dh_testroot
+       rm -f build-stamp SUPPORTED make-jpkg.out debian/semantic.cache
+       dh_clean
+
+install: build
+       dh_testdir
+       dh_testroot
+       dh_clean -k
+       dh_installdirs
+
+       install -m 755 make-jpkg.out $(B)/usr/bin/make-jpkg
+       cp lib/*.sh lib/*-common $(B)/usr/share/java-package/
+       for dir in $(wildcard oracle-j2*); do \
+               cp -a $$dir $(B)/usr/share/java-package/; \
+       done
+       find $(B) -type d -name .svn | xargs -r rm -r
+
+# Generate SUPPORTED
+       echo "java-package currently supports the following binary packages:" > SUPPORTED
+       echo >> SUPPORTED
+       echo "(This list is automatically generated, do not edit)" >> SUPPORTED
+       echo >> SUPPORTED
+       grep -h "SUPPORTED$$" $(wildcard $(CURDIR)/lib/*-*.sh) | sed 's/"//g;s/).*//' >> SUPPORTED
+
+       dh_install
+
+binary: binary-indep
+
+binary-arch:
+
+binary-indep: build install
+       dh_testdir
+       dh_testroot
+       dh_installchangelogs 
+       dh_installdocs
+       dh_installman make-jpkg.1
+       dh_link
+#      dh_strip
+       dh_compress 
+       dh_fixperms
+       dh_makeshlibs
+       dh_installdeb
+       dh_shlibdeps
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+.PHONY: build clean binary-indep binary install
diff --git a/lib/common.sh b/lib/common.sh
new file mode 100644 (file)
index 0000000..60c2852
--- /dev/null
@@ -0,0 +1,194 @@
+# read_yn <prompt>
+function read_yn() {
+    local prompt="$1"
+    while true; do
+       read -e -n 1 -p "$prompt" reply
+       case "$reply" in
+           "" | "y" | "Y")
+               return 0
+               ;;
+           "N" | "n")
+               return 1
+               ;;
+       esac
+    done
+}
+
+
+# diskusage <path>: prints size in MB
+function diskusage() {
+    local path="$1"
+    read size dummy < <( du -sm "$path" )
+    echo "$size"
+}
+
+
+# diskfree <minimum size in MB>
+function diskfree() {
+    local size="$1"
+    echo -n "Checking free diskspace:"
+       (( free = `stat -f -c '%a / 2048 * ( %s / 512 )' $tmp ` ))
+
+    if [ "$free" -ge "$size" ]; then
+       echo " done."
+    else
+       cat >&2 << EOF
+
+
+WARNING: Possibly not enough free disk space in "$tmp".
+
+You need at least $size MB, but only $free MB seems free. Note: You
+can specify an alternate directory by setting the environment variable
+
+Press Ctrl+C to interrupt, or return to try to continue anyway.
+
+TMPDIR.
+
+EOF
+       read
+    fi
+}
+
+
+# extract_bin <file> <expected_min_size> <dest>
+function extract_bin() {
+    local file="$1"
+    local expected_min_size="$2"
+    local dest="$3"
+    cat << EOF
+
+In the next step, the binary file will be extracted. Probably a
+license agreement will be displayed. Please read this agreement
+carefully. If you do not agree to the displayed license terms, the
+package will not be built.
+
+EOF
+    read -e -p "Press [Return] to continue: " dummy
+    echo
+    local extract_dir="$tmp/extract"
+    mkdir "$extract_dir"
+    cd "$extract_dir"
+    echo
+
+    local extract_cmd
+    case "$archive_path" in
+       *.tar)
+           extract_cmd="tar xf";;
+       *.tar.bz2)
+           extract_cmd="tar --bzip2 -xf";;
+       *.tgz|*.tar.gz)
+           extract_cmd="tar xfz";;
+       *.zip)
+           extract_cmd="unzip -q";;
+       *)
+           extract_cmd=sh
+    esac
+
+    if ! $extract_cmd "$archive_path"; then
+       cat << EOF
+
+WARNING: The package installation script exited with an error
+value. Usually, this means, that the installation failed for some
+reason. But in some cases there is no problem and you can continue
+creating the Debian package.
+
+Please check if there are any error messages. Press [Return] to
+continue or Ctrl-C to abort.
+
+EOF
+       read
+    fi
+    echo
+    echo -n "Testing extracted archive..."
+    local size="$( diskusage "$extract_dir" )"
+    if [ "$size" -lt "$expected_min_size" ]; then
+       cat << EOF
+
+Invalid size ($size MB) of extracted archive. Probably you have not
+enough free disc space in the temporary directory. Note: You can
+specify an alternate directory by setting the environment variable
+TMPDIR.
+
+EOF
+       error_exit
+    else
+       cd "$extract_dir"
+       files=(*)
+       if [ "${#files[*]}" -ne 1 ]; then
+           cat << EOF
+
+Expected one file, but found the following ${#files[*]} files:
+    ${files[*]}
+
+EOF
+           error_exit
+       fi
+       mv "$files" "$dest"
+       echo -e " okay.\n"
+    fi
+}
+
+
+function read_maintainer_info() {
+    if [ -z "$maintainer_name" ]; then
+       if [ -n "$DEBFULLNAME" ]; then
+               maintainer_name="$DEBFULLNAME"
+       elif [ -n "$DEBNAME" ]; then
+               maintainer_name="$DEBNAME"
+       else
+               default_name="$(getent passwd $(id -run) | cut -d: -f5| cut -d, -f1)"
+       
+       cat << EOF
+
+Please enter your full name. This value will be used in the maintainer
+field of the created package.
+
+EOF
+
+       # gecos can be null
+       while [ -z "$maintainer_name" ]; do
+               read -e -p "Full name [$default_name]:" maintainer_name
+               if [ -z "$maintainer_name" ] && [ -n "$default_name" ]; then
+                       maintainer_name="$default_name"
+               fi
+       done
+       fi
+    fi
+    if [ -z "$maintainer_email" ]; then
+       local default_email=
+       if [ -n "$DEBEMAIL" ]; then
+           maintainer_email="$DEBEMAIL"
+       else 
+       if [ -r "/etc/mailname" ]; then
+           default_email="$( id -run )@$( cat /etc/mailname )"
+       else
+           default_email="$( id -run )@$( hostname --fqdn )"
+       fi
+       cat << EOF
+
+Please enter a valid email address or press return to accept the
+default value. This address will be used in the maintainer field of
+the created package.
+
+EOF
+       read -e -p "Email [$default_email]: " maintainer_email
+       if [ -z "$maintainer_email" ]; then
+           maintainer_email="$default_email"
+       fi
+       fi
+    fi
+}
+
+# provide the architecture for evaluation by plugins
+function get_architecture() {
+    echo
+
+    export DEB_BUILD_ARCH=$(dpkg-architecture -qDEB_BUILD_ARCH)
+
+    export DEB_BUILD_GNU_TYPE=$(dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+    
+    echo "Detected Debian build architecture: ${DEB_BUILD_ARCH:-N/A}"
+    
+    echo "Detected Debian GNU type: ${DEB_BUILD_GNU_TYPE:-N/A}"
+}
diff --git a/lib/install-common b/lib/install-common
new file mode 100644 (file)
index 0000000..5819844
--- /dev/null
@@ -0,0 +1,22 @@
+    # Common functions for all install scripts
+
+    # install_alternative -- add an alternative
+    #
+    # install_alternative program
+    function install_alternative() {
+        local program="$1"
+        update-alternatives \
+           --install "/usr/bin/$program" "$program" \
+           "$j2se_base/bin/$program" "$priority" \
+           --slave "/usr/share/man/man1/$program.1.gz" "$program.1.gz" \
+           "$j2se_base/man/man1/$program.1.gz"
+    }
+
+    # install_java_plugin -- add an alternative for a browser plugin
+    #
+    # install_java_plugin browser_plugin_path java_plugin_path priority
+    function install_java_plugin() {
+        [ -d "$1" ] || install -d -m 755 "$1"
+        update-alternatives \
+           --install "$1/$2" "$3" "$4" "$5"
+    }
diff --git a/lib/j2re.sh b/lib/j2re.sh
new file mode 100644 (file)
index 0000000..bbeb10d
--- /dev/null
@@ -0,0 +1,66 @@
+function j2re_readme() {
+    j2se_readme
+}
+
+function j2re_changelog() {
+    j2se_changelog
+}
+
+function j2re_control() {
+    j2se_control
+    cat << EOF
+Package: $j2se_package
+Architecture: any
+Depends: \${shlibs:Depends}
+Recommends: netbase, libx11-6 | xlibs, libasound2, libgtk1.2
+Provides: java-virtual-machine, java-runtime, java2-runtime, java-runtime-headless, java2-runtime-headless, java-browser-plugin, j2re${j2se_release}
+Replaces: ${j2se_package}debian
+Description: $j2se_title
+ The Java(TM) 2 Runtime Environment contains the Java virtual machine,
+ runtime class libraries, and Java application launcher that are
+ necessary to run programs written in the Java progamming language
+ (this includes the Java 2 Plug-In for Netscape and Mozilla
+ browsers). It is not a development environment and doesn't contain
+ development tools such as compilers or debuggers. For development
+ tools, see the Java 2 SDK, Standard Edition.
+ .
+ This package has been automatically created with java-package ($version).
+EOF
+}
+
+function j2re_copyright() {
+    j2se_copyright
+}
+
+function j2re_install_scripts() {
+    j2se_install_scripts
+}
+
+function j2re_info() {
+    j2se_info
+}
+
+function j2re_build() {
+    j2se_build
+}
+
+# build debian package
+function j2re_run() {
+    echo
+    diskfree "$j2se_required_space"
+    read_maintainer_info
+    j2se_package="$j2se_vendor-j2re$j2se_release"
+    j2se_base="/usr/lib/jvm/j2re$j2se_release-$j2se_vendor"
+    local target="$install_dir$j2se_base"
+    install -d -m 755 "$( dirname "$target" )"
+    extract_bin "$archive_path" "$j2se_expected_min_size" "$target"
+    rm -rf "$target/.systemPrefs"
+    j2re_readme > "$debian_dir/README.Debian"
+    j2re_changelog > "$debian_dir/changelog"
+    j2re_control > "$debian_dir/control"
+    j2re_copyright > "$debian_dir/copyright"
+    j2re_install_scripts
+    install -d "$target/debian"
+    j2re_info > "$target/debian/info"
+    j2re_build
+}
diff --git a/lib/j2sdk-doc.sh b/lib/j2sdk-doc.sh
new file mode 100644 (file)
index 0000000..42b723b
--- /dev/null
@@ -0,0 +1,81 @@
+function j2sdk_doc_readme() {
+    j2se_readme
+}
+
+function j2sdk_doc_changelog() {
+    j2se_changelog
+}
+
+function j2sdk_doc_control() {
+    j2se_control
+    cat << EOF
+Package: $j2se_package
+Architecture: any
+Depends: 
+Recommends: 
+Provides: 
+Replaces: 
+Description: $j2se_title
+ The Java(TM) 2 SDK is a development environment for building
+ applications, applets, and components that can be deployed on the
+ Java(TM) platform.
+ .
+ This package provides the official API documentation published
+ by Sun Microsystems.
+ .
+ This package has been automatically created with java-package ($version).
+EOF
+}
+
+function j2sdk_doc_copyright() {
+    j2se_copyright
+}
+
+function j2sdk_doc_install_scripts() {
+    j2se_install_scripts
+}
+
+function j2sdk_doc_info() {
+    j2se_info
+}
+
+function j2sdk_doc_doc-base() {
+    cat << EOF
+Document: $j2se_package
+Title: $j2se_title
+Author: $maintainer_name
+Abstract: This is the API Javadoc provided by the vendor
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/j2sdk$j2se_release-$j2se_vendor-doc/index.html
+Files: /usr/share/doc/j2sdk$j2se_release-$j2se_vendor-doc/*.html
+
+EOF
+}
+
+function j2sdk_doc_build() {
+    j2se_build
+}
+
+# build debian package
+function j2sdk_doc_run() {
+    echo
+    diskfree "$j2se_required_space"
+    read_maintainer_info
+    j2se_package="$j2se_vendor-j2sdk$j2se_release-doc"
+    j2se_base="/usr/share/doc/j2sdk$j2se_release-$j2se_vendor-doc"
+    local target="$install_dir$j2se_base"
+    install -d -m 755 "$( dirname "$target" )"
+    extract_bin "$archive_path" "$j2se_expected_min_size" "$target"
+    rm -rf "$target/.systemPrefs"
+    j2sdk_doc_readme > "$debian_dir/README.Debian"
+    j2sdk_doc_changelog > "$debian_dir/changelog"
+    j2sdk_doc_control > "$debian_dir/control"
+    j2sdk_doc_copyright > "$debian_dir/copyright"
+    j2sdk_doc_doc-base > "$debian_dir/$j2se_package.doc-base"
+    j2sdk_doc_install_scripts
+    install -d "$target/debian"
+    j2sdk_doc_info > "$target/debian/info"
+    j2sdk_doc_build
+}
diff --git a/lib/j2sdk.sh b/lib/j2sdk.sh
new file mode 100644 (file)
index 0000000..0947c25
--- /dev/null
@@ -0,0 +1,68 @@
+function j2sdk_readme() {
+    j2se_readme
+}
+
+function j2sdk_changelog() {
+    j2se_changelog
+}
+
+function j2sdk_control() {
+    j2se_control
+    cat << EOF
+Package: $j2se_package
+Architecture: any
+Depends: \${shlibs:Depends}
+Recommends: netbase, libx11-6 | xlibs, libasound2, libgtk1.2, libstdc++5
+Provides: java-virtual-machine, java-runtime, java2-runtime, java-browser-plugin, java-compiler, java2-compiler, java-runtime-headless, java2-runtime-headless, java-sdk, java2-sdk, j2sdk$j2se_release, j2re$j2se_release
+Replaces: ${j2se_package}debian
+Description: $j2se_title
+ The Java(TM) 2 SDK is a development environment for building
+ applications, applets, and components that can be deployed on the
+ Java(TM) platform.
+ .
+ The Java(TM) 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.
+ .
+ This package has been automatically created with java-package ($version).
+EOF
+}
+
+function j2sdk_copyright() {
+    j2se_copyright
+}
+
+function j2sdk_install_scripts() {
+    j2se_install_scripts
+}
+
+function j2sdk_info() {
+    j2se_info
+}
+
+function j2sdk_build() {
+    j2se_build
+}
+
+# build debian package
+function j2sdk_run() {
+    echo
+    diskfree "$j2se_required_space"
+    read_maintainer_info
+    j2se_package="$j2se_vendor-j2sdk$j2se_release"
+    j2se_base="/usr/lib/jvm/j2sdk$j2se_release-$j2se_vendor"
+    local target="$install_dir$j2se_base"
+    install -d -m 755 "$( dirname "$target" )"
+    extract_bin "$archive_path" "$j2se_expected_min_size" "$target"
+    rm -rf "$target/.systemPrefs"
+    j2sdk_readme > "$debian_dir/README.Debian"
+    j2sdk_changelog > "$debian_dir/changelog"
+    j2sdk_control > "$debian_dir/control"
+    j2sdk_copyright > "$debian_dir/copyright"
+    j2sdk_install_scripts
+    install -d "$target/debian"
+    j2sdk_info > "$target/debian/info"
+    j2sdk_build
+}
diff --git a/lib/j2se.sh b/lib/j2se.sh
new file mode 100644 (file)
index 0000000..a02a117
--- /dev/null
@@ -0,0 +1,184 @@
+function j2se_readme() {
+    cat << EOF
+Package for $j2se_title
+---
+
+This package has been automatically created with java-package ($version). 
+All files from the original distribution should have been installed in
+the directory $j2se_base. Please take a look at this directory for
+further information.
+
+EOF
+}
+
+function j2se_changelog() {
+    cat << EOF
+$j2se_package ($j2se_version) unstable; urgency=low
+
+  * This package was created with java-package ($version).
+
+ -- $maintainer_name <$maintainer_email>  $( date -R )
+
+EOF
+}
+
+function j2se_control() {
+    cat << EOF
+Source: $j2se_package
+Section: non-free/devel
+Priority: optional
+Maintainer: $maintainer_name <$maintainer_email>
+Build-Depends: debhelper (>= 4.0.0)
+Standards-Version: 3.7.2
+
+EOF
+}
+
+function j2se_copyright() {
+    cat << EOF
+----------------------------------------------------------------------
+
+This file contains a copy of all copyright files found in the original
+distribution. The original copyright files and further information can
+be found in the directory $j2se_base and its
+subdirectories.
+
+----------------------------------------------------------------------
+EOF
+    ( 
+    cd "$install_dir"
+    find * -type f -iname copyright |
+    while read file; do
+        cat << EOF
+
+File: /$file
+
+----------------------------------------------------------------------
+
+EOF
+        cat "$file"
+        cat << EOF
+
+----------------------------------------------------------------------
+EOF
+    done
+    )
+}
+
+function j2se_install_scripts() {
+    cat > "$debian_dir/postinst" << EOF
+#!/bin/bash
+
+set -e
+
+if [ "\$1" = configure ]; then
+EOF
+    cat "$lib_dir/install-common" >> "$debian_dir/postinst"
+
+    cat "$lib_dir/$j2se_package/install" >> "$debian_dir/postinst"
+
+    cat >> "$debian_dir/postinst" << EOF
+fi
+
+#DEBHELPER#
+
+exit 0
+EOF
+    chmod 755 "$debian_dir/postinst"
+    
+    cat > "$debian_dir/prerm" << EOF
+#!/bin/bash
+
+set -e
+
+case "\$1" in
+    remove | deconfigure)
+EOF
+    cat "$lib_dir/remove-common" >> "$debian_dir/prerm"
+
+    cat "$lib_dir/$j2se_package/remove" >> "$debian_dir/prerm"
+
+    cat >> "$debian_dir/prerm" << EOF
+    ;;
+esac
+
+#DEBHELPER#
+
+exit 0
+EOF
+    chmod 755 "$debian_dir/prerm"
+}
+
+function j2se_info() {
+    cat << EOF
+version="$version"
+j2se_version="$j2se_version"
+maintainer_name="$maintainer_name"
+maintainer_email="$maintainer_email"
+date="$( date +%Y/%m/%d )"
+EOF
+}
+
+function j2se_build() {
+    cd "$tmp"
+    echo "Create debian package:"
+    
+    #export DH_VERBOSE=1
+    export DH_COMPAT=4
+    export DH_OPTIONS=--tmpdir="$install_dir"
+
+    echo "    dh_testdir"
+    dh_testdir
+    echo "    dh_testroot"
+    dh_testroot
+    echo "    dh_installchangelogs"
+    dh_installchangelogs
+    # Problem: dh_installchangelogs thinks this is a native package.
+    echo "    dh_installdocs"
+    dh_installdocs
+    # dh_install
+    # dh_link
+    # Conditionally wrapping this as not all JRE/JDKs have man directories
+    if [ -e "$install_dir/$j2se_base/man" ]; then
+        echo "    dh_compress"
+        dh_compress $( find "$install_dir/$j2se_base/man" -type f ! -name "*.gz" )
+    fi
+    echo "    dh_fixperms"
+    dh_fixperms
+    echo "    dh_installdeb"
+    dh_installdeb
+    echo "    dh_shlibdeps"
+    ldpath=
+    for dir in $( find "$install_dir" -type f -name "*.so*" -printf "%h\n" | sort -u ); do
+        if [[ -z "$ldpath" ]]; then
+            ldpath="$dir"
+        else
+            ldpath="$ldpath:$dir"
+        fi
+    done
+    # suppress some warnings
+    dh_shlibdeps -l"$ldpath" 2>&1 | 
+    { grep -v "warning: format of \`NEEDED lib.*\.so' not recognized" >&2 || true; }
+    echo "    dh_gencontrol"
+    dh_gencontrol
+    echo "    dh_md5sums"
+    dh_md5sums
+    echo "    dh_builddeb"
+    dh_builddeb --destdir="$tmp"
+    local deb_filename="$( echo "${j2se_package}_"*.deb )"
+    echo "    copy $deb_filename into directory $working_dir/"
+    cp "$deb_filename" "$working_dir/"
+    if [ -n "$genchanges" ]; then 
+        echo "    dpkg-genchanges"
+        local changes_filename="${deb_filename%.deb}.changes"
+        dpkg-genchanges -b -u. > "$changes_filename"
+        echo "    copy $changes_filename into directory $working_dir/"
+        cp "$changes_filename" "$working_dir/"
+    fi
+    cat << EOF
+
+The Debian package has been created in the current directory. You can
+install the package as root (e.g. dpkg -i $deb_filename). 
+
+EOF
+}
diff --git a/lib/oracle-j2re.sh b/lib/oracle-j2re.sh
new file mode 100644 (file)
index 0000000..5b4480e
--- /dev/null
@@ -0,0 +1,54 @@
+# Detect product
+function oracle_j2re_detect() {
+  local found=
+  
+  case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in
+    i386|i486-linux-gnu)
+      case "$archive_name" in
+       "jre-6u"[0-9][0-9]"-linux-i586.bin") # SUPPORTED
+           j2se_version=1.6.0+update${archive_name:6:2}${revision}
+           j2se_expected_min_size=16 #Mb
+           found=true
+           ;;
+       "jre-7u"[0-9]"-linux-i586.tar.gz") # SUPPORTED
+           j2se_version=1.7.0+update${archive_name:6:1}${revision}
+           j2se_expected_min_size=94 #Mb
+           found=true
+           ;;
+      esac
+      ;;
+    amd64|x86_64-linux-gnu)
+      case "$archive_name" in
+       "jre-6u"[0-9][0-9]"-linux-x64.bin") # SUPPORTED
+           j2se_version=1.6.0+update${archive_name:6:2}${revision}
+           j2se_expected_min_size=16 #Mb
+           found=true
+           ;;
+       "jre-7u"[0-9]"-linux-x64.tar.gz") # SUPPORTED
+           j2se_version=1.7.0+update${archive_name:6:1}${revision}
+           j2se_expected_min_size=88 #Mb
+           found=true
+           ;;
+      esac
+      ;;
+  esac
+  if [[ -n "$found" ]]; then
+       cat << EOF
+
+Detected product:
+    Java(TM) Runtime Environment (JRE)
+    Standard Edition, Version $j2se_version
+    Oracle Microsystems(TM), Inc.
+EOF
+       if read_yn "Is this correct [Y/n]: "; then
+           j2se_found=true
+           j2se_release="${j2se_version:0:3}"
+           j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
+           j2se_vendor="oracle"
+           j2se_title="Java(TM) JRE, Standard Edition, Oracle Microsystems(TM)"
+           j2re_run
+       fi
+    fi
+}
+
+j2se_detect_oracle_j2re=oracle_j2re_detect
diff --git a/lib/oracle-j2sdk-doc.sh b/lib/oracle-j2sdk-doc.sh
new file mode 100644 (file)
index 0000000..5fa8026
--- /dev/null
@@ -0,0 +1,35 @@
+# Detect product
+function oracle_j2sdk_doc_detect() {
+  local found=
+      case "$archive_name" in
+       "jdk-6u"[0-9][0-9]"-apidocs.zip") # SUPPORTED
+           j2se_version=1.6.0+update${archive_name:6:2}${revision}
+           j2se_expected_min_size=44 #Mb
+           found=true
+           ;;
+       "jdk-7u"[0-9]"-apidocs.zip") # SUPPORTED
+           j2se_version=1.7.0+update${archive_name:6:1}${revision}
+           j2se_expected_min_size=290 #Mb
+           found=true
+           ;;
+      esac
+  if [[ -n "$found" ]]; then
+       cat << EOF
+
+Detected product:
+    Java(TM) Development Kit (JDK) Documentation
+    Standard Edition, Version $j2se_version
+    Oracle(TM), Inc.
+EOF
+       if read_yn "Is this correct [Y/n]: "; then
+           j2se_found=true
+           j2se_release="${j2se_version:0:3}"
+           j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
+           j2se_vendor="oracle"
+           j2se_title="Java(TM) JDK, Standard Edition, Oracle(TM) Documentation"
+           j2sdk_doc_run
+       fi
+    fi
+}
+
+j2se_detect_j2sdk_doc_oracle=oracle_j2sdk_doc_detect
diff --git a/lib/oracle-j2sdk.sh b/lib/oracle-j2sdk.sh
new file mode 100644 (file)
index 0000000..1e525e3
--- /dev/null
@@ -0,0 +1,54 @@
+# Detect product
+function oracle_j2sdk_detect() {
+  local found=
+  
+  case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in
+    i386|i486-linux-gnu)
+      case "$archive_name" in
+       "jdk-6u"[0-9][0-9]"-linux-i586.bin") # SUPPORTED
+           j2se_version=1.6.0+update${archive_name:6:2}${revision}
+           j2se_expected_min_size=130 #Mb
+           found=true
+           ;;
+       "jdk-7u"[0-9]"-linux-i586.tar.gz") # SUPPORTED
+           j2se_version=1.7.0+update${archive_name:6:1}${revision}
+           j2se_expected_min_size=190 #Mb
+           found=true
+           ;;
+      esac
+      ;;
+    amd64|x86_64-linux-gnu)
+      case "$archive_name" in
+       "jdk-6u"[0-9][0-9]"-linux-x64.bin") # SUPPORTED
+           j2se_version=1.6.0+update${archive_name:6:2}${revision}
+           j2se_expected_min_size=130 #Mb
+           found=true
+           ;;
+       "jdk-7u"[0-9]"-linux-x64.tar.gz") # SUPPORTED
+           j2se_version=1.7.0+update${archive_name:6:1}${revision}
+           j2se_expected_min_size=180 #Mb
+           found=true
+           ;;
+      esac
+      ;;
+  esac
+  if [[ -n "$found" ]]; then
+       cat << EOF
+
+Detected product:
+    Java(TM) Development Kit (JDK)
+    Standard Edition, Version $j2se_version
+    Oracle(TM), Inc.
+EOF
+       if read_yn "Is this correct [Y/n]: "; then
+           j2se_found=true
+           j2se_release="${j2se_version:0:3}"
+           j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
+           j2se_vendor="oracle"
+           j2se_title="Java(TM) JDK, Standard Edition, Oracle(TM)"
+           j2sdk_run
+       fi
+    fi
+}
+
+j2se_detect_oracle_j2sdk=oracle_j2sdk_detect
diff --git a/lib/remove-common b/lib/remove-common
new file mode 100644 (file)
index 0000000..f775324
--- /dev/null
@@ -0,0 +1,20 @@
+    # Common functions for all install scripts
+
+    # remove_alternative -- remove an alternative
+    #
+    # remove_alternative program
+    function remove_alternative() {
+        local program="$1"
+        update-alternatives \
+            --remove "$program" "/usr/bin/$program-$suffix"
+        rm "/usr/bin/$program-$suffix"
+    }
+
+    # remove_java_plugin -- add an alternative for a browser plugin
+    #
+    # remove_java_plugin plugins_path
+    function remove_java_plugin() {
+        local program="$1"
+        update-alternatives \
+            --remove "$program" "$plugin_dir/libjavaplugin_oji.so"
+    }
diff --git a/make-jpkg b/make-jpkg
new file mode 100755 (executable)
index 0000000..2c82962
--- /dev/null
+++ b/make-jpkg
@@ -0,0 +1,231 @@
+#! /bin/bash -e
+
+shopt -s nullglob
+
+### global variables
+
+# version of this package
+version="@VERSION@"
+
+working_dir="$( pwd )"
+program_name="$( basename "$0" )"
+program_dir="$( cd "$( dirname "$( type -p "$0" )" )" ; pwd )"
+
+lib_dir="/usr/share/java-package"
+[ "$J2SE_PACKAGE_LIBDIR" ] && lib_dir="$J2SE_PACKAGE_LIBDIR"
+
+# If a default has been set for either of the
+# environment variables, use it; otherwise, 
+# default to the name and email used by the 
+# Debian Java Maintainers project.
+if [ -z "$J2SE_PACKAGE_FULL_NAME" ]; then
+    maintainer_name="Debian Java Maintainers"
+else
+    maintainer_name="$J2SE_PACKAGE_FULL_NAME"
+fi
+
+if [ -z "$J2SE_PACKAGE_EMAIL" ]; then
+    maintainer_email="pkg-java-maintainers@lists.alioth.debian.org"
+else
+    maintainer_email="$J2SE_PACKAGE_EMAIL"
+fi
+
+genchanges=""
+
+### check for run in fakeroot
+
+# are we running as fakeroot
+if ! dh_testroot >/dev/null 2>&1; then
+    if [ -n "$FAKEROOTKEY" ]; then
+        echo "Internal error, fakeroot seems to fail faking root" >&2
+        exit 1
+    fi
+       exec fakeroot "$0" "$@"
+fi
+
+# check whether I'm real root, and bail out if so... ugly, but needed
+if touch /lib/.test 2>/dev/null; then
+       rm -f /lib/.test
+       echo "You are real root -- unfortunately, some Java distributions have" >&2
+       echo "install scripts that directly manipulate /etc, and may cause some" >&2
+       echo "inconsistencies on your system. Instead, you should become a" >&2
+       echo "non-root user and run:" >&2
+       echo >&2
+       echo "fakeroot make-jpkg $@" >&2
+       echo >&2
+       echo "which will allow no damage to be done to your system files and" >&2
+       echo "still permit the Java distribution to successfully extract." >&2
+       echo >&2
+       echo "Aborting." >&2
+       exit 1
+fi
+
+
+### Parse options
+
+function print_usage() {
+       cat << EOF
+Usage: $program_name [OPTION]... FILE
+
+$program_name builds Debian packages from Java(TM) 2 binary distributions.
+
+  --full-name NAME   full name used in the maintainer field of the package
+  --email EMAIL      email address used in the maintainer field of the package
+  --changes          create a .changes file
+  --revision         add debian revision
+
+  --help             display this help and exit
+  --version          output version information and exit
+
+EOF
+}
+
+function unrecognized_option() {
+    cat >&2 << EOF
+$program_name: unrecognized option \`$1'
+Try \`$program_name --help' for more information.
+EOF
+    exit 1
+}
+
+function missing_argument() {
+    cat >&2 << EOF
+$program_name: missing argument for option \`$1'
+Try \`$program_name --help' for more information.
+EOF
+    exit 1
+}
+
+# options
+while [[ $# -gt 0 && "x$1" == x--* ]]; do
+    if [[ "x$1" == x--version ]]; then
+       echo "make-jpkg $version"
+       exit 0
+    elif [[ "x$1" == x--help ]]; then
+       print_usage
+       exit 0
+    elif [[ "x$1" == x--full-name ]]; then
+       [ $# -le 1 ] && missing_argument "$1"
+       shift
+       maintainer_name="$1"
+    elif [[ "x$1" == x--email ]]; then
+       [ $# -le 1 ] && missing_argument "$1"
+       shift
+       maintainer_email="$1"
+    elif [[ "x$1" == x--revision ]]; then
+       [ $# -le 1 ] && missing_argument "$1"
+       shift
+       revision="-${1}"
+    elif [[ "x$1" == x--changes ]]; then
+       genchanges="true"
+    else
+       unrecognized_option "$1"
+    fi
+    shift
+done
+
+# last argument
+if [[ $# -ne 1 ]]; then
+    cat >&2 << EOF
+$program_name: missing pathname
+Try \`$program_name --help' for more information.
+EOF
+    exit 1
+fi
+archive="$1"
+
+if [[ ! -e "$archive" ]]; then
+    echo "Error: The file \"$archive\" does not exist."
+    exit 1
+elif [[ ! -r "$archive" ]]; then
+    echo "Error: The file \"$archive\" is not readable."
+    exit 1
+fi
+
+archive_name="$( basename "$archive" )"
+archive_dir="$( cd "$( dirname "$archive" )" ; pwd )"
+archive_path="$archive_dir/$archive_name"
+
+
+# error handling
+
+success=
+failed=
+tmp=
+
+# function is called when script terminates
+function on_exit() {
+    lastcmd="$_"
+    if [[ -z "$success" && -z "$failed" ]]; then
+       cat >&2 << EOF
+
+Aborted ($lastcmd).
+
+EOF
+    fi
+    # remove temporary directory
+    if [ -n "$tmp" -a -d "$tmp" ]; then
+       echo -n "Removing temporary directory: "
+       rm -rf "$tmp"
+       echo "done"
+    fi
+}
+trap on_exit EXIT
+
+# print error message and terminate
+function error_exit() {
+    cat >&2 << EOF
+
+Aborted.
+
+EOF
+    failed=true
+    exit 1
+}
+
+
+
+# The environment variable tmp points to a secure temporary directory.
+# There should be enough free disk space.
+echo -n "Creating temporary directory: "
+tmp="$( mktemp -d -t "$program_name.XXXXXXXXXX" )"
+echo "$tmp"
+
+debian_dir="$tmp/debian"
+install -d -m 755 "$debian_dir"
+
+install_dir="$tmp/install"
+install -d -m 755 "$install_dir"
+
+# load and execute plugins
+echo -n "Loading plugins:"
+cd "$lib_dir"
+files=(*.sh)
+for file in "${files[@]}"; do
+    echo -n " $file"
+    source "$lib_dir/$file"
+done
+
+echo
+
+# get architecture information
+get_architecture
+
+j2se_found=
+for var in ${!j2se_detect_*}; do 
+    eval "\$$var"
+    if [[ "$j2se_found" == "true" ]]; then
+       break;
+    fi
+done
+echo
+
+if [[ -z "$j2se_found" ]]; then
+    echo "No matching plugin was found."
+fi
+
+
+
+### exit
+success=true
+exit 0
diff --git a/make-jpkg.1 b/make-jpkg.1
new file mode 100644 (file)
index 0000000..dee5358
--- /dev/null
@@ -0,0 +1,82 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH MAKE-JPKG 1 "November 04, 2005"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+make-jpkg \- build Debian packages from Java(TM) 2 binary distributions
+.SH SYNOPSIS
+.B make-jpkg
+[\fIOPTION\fR]... [\fIFILE\fR]
+.SH DESCRIPTION
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+.PP
+\fBmake-jpkg\fP creates a Debian package from a Java(TM) 2
+distribution. This program works currently with the following Java(TM) 2 REs, SDKs and APIs:
+ Oracle(TM) 1.6 Standard Edition (starting with update 10)
+ Oracle(TM) 1.7 Standard Edition
+.PP
+The following options are recognized:
+.TP
+.B --full-name \fINAME\fR
+full name used in the maintainer field of the package
+.TP
+.B --email \fIEMAIL\fR
+email address used in the maintainer field of the package
+.TP
+.B --changes
+create a .changes file
+.TP
+.B --revision
+add debian revision
+.TP
+.B --help
+display help text and exit
+.TP
+.B --version
+output version information and exit
+.PP
+Download a supported Java(TM) 2 RE or SDK or API tar.gz or self-extracting archive from
+.B http://www.oracle.com/technetwork/java/javase/downloads
+and execute
+.B make-jpkg
+.I file
+with the downloaded file. The program asks the user for additional
+information and creates a Debian binary package in the current
+directory.
+.PP
+The program requires about 200 MB free disk space in a temporary
+directory. The temporary directory defaults to 
+.I /tmp
+but you can specify an alternate directory by setting the environment
+variable \fITMPDIR\fR.
+.SH ENVIRONMENT
+.TP
+.SM TMPDIR
+base directory used for temporary files (defaults to /tmp)
+.TP
+.SM J2SE_PACKAGE_FULL_NAME
+full name used in the maintainer field of the package; if none is supplied
+then the default of "Debian Java Maintainers" is used.
+.TP
+.SM J2SE_PACKAGE_EMAIL
+email address used in the maintainer field of the package; if none is supplied
+the default of "pkg-java-maintainers@lists.alioth.debian.org" is used.
+.SH AUTHOR
+This manual page was written by Hubert Schmid <j2se-package@z42.de>.
+
+It is now maintained by the Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>.
diff --git a/oracle-j2re1.6/install b/oracle-j2re1.6/install
new file mode 100644 (file)
index 0000000..fa9151e
--- /dev/null
@@ -0,0 +1,56 @@
+suffix=j2re1.6-oracle
+j2se_base="/usr/lib/jvm/$suffix"
+priority=316
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# alternative <program>
+function program_alternative() {
+    local program="$1"
+    update-alternatives \
+       --install "/usr/bin/$program" "$program" \
+       "$j2se_base/bin/$program" "$priority" \
+       --slave "/usr/share/man/man1/$program.1.gz" "$program.1.gz" \
+       "$j2se_base/man/man1/$program.1.gz"
+}
+
+# kinit, klist, and ktab not installed at this
+# time; handling of /etc/krb5.conf not addressed
+program_alternative ControlPanel
+program_alternative java
+program_alternative javaws
+program_alternative keytool
+program_alternative orbd
+program_alternative pack200
+program_alternative policytool
+program_alternative rmid
+program_alternative rmiregistry
+program_alternative servertool
+program_alternative tnameserv
+program_alternative unpack200
+
+# derive the architecture-specific 
+# directory for the plugin
+arch_dir="$(dpkg --print-architecture)"
+
+# assemble the plugin path
+plugin_dir="$j2se_base/lib/$arch_dir"
+
+# iceweasel
+iceweasel_dir="/usr/lib/iceweasel/plugins"
+[ -d "$iceweasel_dir" ] || install -d -m 755 "$iceweasel_dir"
+update-alternatives \
+    --install "$iceweasel_dir/libjavaplugin.so" \
+       "iceweasel-javaplugin.so" \
+       "$plugin_dir/libnpjp2.so" "$priority"
+
+# chromium
+chromium_dir="/usr/lib/chromium/plugins"
+[ -d "$chromium_dir" ] || install -d -m 755 "$chromium_dir"
+update-alternatives \
+    --install "$chromium_dir/libjavaplugin.so" \
+       "chromium-javaplugin.so" \
+       "$plugin_dir/libnpjp2.so" "$priority"
+
diff --git a/oracle-j2re1.6/remove b/oracle-j2re1.6/remove
new file mode 100644 (file)
index 0000000..889ce94
--- /dev/null
@@ -0,0 +1,41 @@
+suffix=j2re1.6-oracle
+j2se_base="/usr/lib/jre/$suffix"
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# alternative <program>
+function program_alternative() {
+    local program="$1"
+    update-alternatives \
+       --remove "$program" "$j2se_base/bin/$program"
+}
+
+program_alternative ControlPanel
+program_alternative java
+program_alternative javaws
+program_alternative keytool
+program_alternative orbd
+program_alternative pack200
+program_alternative policytool
+program_alternative rmid
+program_alternative rmiregistry
+program_alternative servertool
+program_alternative tnameserv
+program_alternative unpack200
+
+# derive the architecture-specific 
+# directory for the plugin
+arch_dir="$(dpkg --print-architecture)"
+
+# assemble the plugin path
+plugin_dir="$j2se_base/lib/$arch_dir"
+
+# iceweasel
+update-alternatives \
+    --remove "iceweasel-javaplugin.so" "$plugin_dir/libnpjp2.so"
+
+# chromium
+update-alternatives \
+    --remove "chromium-javaplugin.so" "$plugin_dir/libnpjp2.so"
diff --git a/oracle-j2re1.7/install b/oracle-j2re1.7/install
new file mode 100644 (file)
index 0000000..8f31b56
--- /dev/null
@@ -0,0 +1,56 @@
+suffix=j2re1.7-oracle
+j2se_base="/usr/lib/jvm/$suffix"
+priority=316
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# alternative <program>
+function program_alternative() {
+    local program="$1"
+    update-alternatives \
+       --install "/usr/bin/$program" "$program" \
+       "$j2se_base/bin/$program" "$priority" \
+       --slave "/usr/share/man/man1/$program.1.gz" "$program.1.gz" \
+       "$j2se_base/man/man1/$program.1.gz"
+}
+
+# kinit, klist, and ktab not installed at this
+# time; handling of /etc/krb5.conf not addressed
+program_alternative ControlPanel
+program_alternative java
+program_alternative javaws
+program_alternative keytool
+program_alternative orbd
+program_alternative pack200
+program_alternative policytool
+program_alternative rmid
+program_alternative rmiregistry
+program_alternative servertool
+program_alternative tnameserv
+program_alternative unpack200
+
+# derive the architecture-specific 
+# directory for the plugin
+arch_dir="$(dpkg --print-architecture)"
+
+# assemble the plugin path
+plugin_dir="$j2se_base/lib/$arch_dir"
+
+# iceweasel
+iceweasel_dir="/usr/lib/iceweasel/plugins"
+[ -d "$iceweasel_dir" ] || install -d -m 755 "$iceweasel_dir"
+update-alternatives \
+    --install "$iceweasel_dir/libjavaplugin.so" \
+       "iceweasel-javaplugin.so" \
+       "$plugin_dir/libnpjp2.so" "$priority"
+
+# chromium
+chromium_dir="/usr/lib/chromium/plugins"
+[ -d "$chromium_dir" ] || install -d -m 755 "$chromium_dir"
+update-alternatives \
+    --install "$chromium_dir/libjavaplugin.so" \
+       "chromium-javaplugin.so" \
+       "$plugin_dir/libnpjp2.so" "$priority"
+
diff --git a/oracle-j2re1.7/remove b/oracle-j2re1.7/remove
new file mode 100644 (file)
index 0000000..d0526c8
--- /dev/null
@@ -0,0 +1,41 @@
+suffix=j2re1.7-oracle
+j2se_base="/usr/lib/jre/$suffix"
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# alternative <program>
+function program_alternative() {
+    local program="$1"
+    update-alternatives \
+       --remove "$program" "$j2se_base/bin/$program"
+}
+
+program_alternative ControlPanel
+program_alternative java
+program_alternative javaws
+program_alternative keytool
+program_alternative orbd
+program_alternative pack200
+program_alternative policytool
+program_alternative rmid
+program_alternative rmiregistry
+program_alternative servertool
+program_alternative tnameserv
+program_alternative unpack200
+
+# derive the architecture-specific 
+# directory for the plugin
+arch_dir="$(dpkg --print-architecture)"
+
+# assemble the plugin path
+plugin_dir="$j2se_base/lib/$arch_dir"
+
+# iceweasel
+update-alternatives \
+    --remove "iceweasel-javaplugin.so" "$plugin_dir/libnpjp2.so"
+
+# chromium
+update-alternatives \
+    --remove "chromium-javaplugin.so" "$plugin_dir/libnpjp2.so"
diff --git a/oracle-j2sdk1.6-doc/install b/oracle-j2sdk1.6-doc/install
new file mode 100644 (file)
index 0000000..f4d1134
--- /dev/null
@@ -0,0 +1,16 @@
+j2se_base="/usr/share/doc/j2sdk1.6-oracle-doc"
+priority=316
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# Register the documentation with the various 
+# documentation systems, i.e. dhelp and dwww.
+
+if [ "$1" = configure ] ; then
+    if which install-docs >/dev/null 2>&1; then
+        install-docs -i /usr/share/doc-base/oracle-j2sdk1.6-doc
+    fi
+fi
+
diff --git a/oracle-j2sdk1.6-doc/remove b/oracle-j2sdk1.6-doc/remove
new file mode 100644 (file)
index 0000000..a1e2e9d
--- /dev/null
@@ -0,0 +1,7 @@
+j2se_base="/usr/share/doc/j2sdk1.6-oracle-doc"
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+
diff --git a/oracle-j2sdk1.6/install b/oracle-j2sdk1.6/install
new file mode 100644 (file)
index 0000000..8cf335f
--- /dev/null
@@ -0,0 +1,87 @@
+suffix=j2sdk1.6-oracle
+j2se_base="/usr/lib/jvm/$suffix"
+priority=315
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# alternative <program>
+function program_alternative() {
+    local program="$1"
+    update-alternatives \
+       --install "/usr/bin/$program" "$program" \
+       "$j2se_base/bin/$program" "$priority" \
+       --slave "/usr/share/man/man1/$program.1.gz" "$program.1.gz" \
+       "$j2se_base/man/man1/$program.1.gz"
+}
+
+# alternative <program> without man page
+function program_alternative_no_man() {
+    local program="$1"
+    update-alternatives \
+        --install "/usr/bin/$program" "$program" \
+        "$j2se_base/bin/$program" "$priority"
+}
+
+# kinit, klist, and ktab not installed at this
+# time; handling of /etc/krb5.conf not addressed
+# JRE-specific alternatives with JDKs cannot be 
+# handled by our current approach
+program_alternative appletviewer
+program_alternative_no_man ControlPanel
+program_alternative extcheck
+program_alternative idlj
+program_alternative jar
+program_alternative jarsigner
+program_alternative java
+program_alternative javac
+program_alternative javadoc
+program_alternative javah
+program_alternative javap
+program_alternative javaws
+program_alternative jconsole
+program_alternative jdb
+program_alternative jinfo
+program_alternative jmap
+program_alternative jps
+program_alternative jsadebugd
+program_alternative jstack
+program_alternative jstat
+program_alternative jstatd
+program_alternative keytool
+program_alternative native2ascii
+program_alternative orbd
+program_alternative pack200
+program_alternative policytool
+program_alternative rmic
+program_alternative rmid
+program_alternative rmiregistry
+program_alternative serialver
+program_alternative servertool
+program_alternative tnameserv
+program_alternative unpack200
+
+# derive the architecture-specific 
+# directory for the plugin
+arch_dir="$(dpkg --print-architecture)"
+
+# assemble the plugin path
+plugin_dir="$j2se_base/jre/lib/$arch_dir"
+
+# iceweasel
+iceweasel_dir="/usr/lib/iceweasel/plugins"
+[ -d "$iceweasel_dir" ] || install -d -m 755 "$iceweasel_dir"
+update-alternatives \
+    --install "$iceweasel_dir/libjavaplugin.so" \
+       "iceweasel-javaplugin.so" \
+       "$plugin_dir/libnpjp2.so" "$priority"
+
+# chromium
+chromium_dir="/usr/lib/chromium/plugins"
+[ -d "$chromium_dir" ] || install -d -m 755 "$chromium_dir"
+update-alternatives \
+    --install "$chromium_dir/libjavaplugin.so" \
+       "chromium-javaplugin.so" \
+       "$plugin_dir/libnpjp2.so" "$priority"
+
diff --git a/oracle-j2sdk1.6/remove b/oracle-j2sdk1.6/remove
new file mode 100644 (file)
index 0000000..02badc3
--- /dev/null
@@ -0,0 +1,63 @@
+suffix=j2sdk1.6-oracle
+j2se_base="/usr/lib/jvm/$suffix"
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# alternative <program>
+function program_alternative() {
+    local program="$1"
+    update-alternatives \
+       --remove "$program" "$j2se_base/bin/$program"
+}
+
+program_alternative appletviewer
+program_alternative ControlPanel
+program_alternative extcheck
+program_alternative idlj
+program_alternative jar
+program_alternative jarsigner
+program_alternative java
+program_alternative javac
+program_alternative javadoc
+program_alternative javah
+program_alternative javap
+program_alternative java-rmi.cgi
+program_alternative javaws
+program_alternative jconsole
+program_alternative jdb
+program_alternative jinfo
+program_alternative jmap
+program_alternative jps
+program_alternative jsadebugd
+program_alternative jstack
+program_alternative jstat
+program_alternative jstatd
+program_alternative keytool
+program_alternative native2ascii
+program_alternative orbd
+program_alternative pack200
+program_alternative policytool
+program_alternative rmic
+program_alternative rmid
+program_alternative rmiregistry
+program_alternative serialver
+program_alternative servertool
+program_alternative tnameserv
+program_alternative unpack200
+
+# derive the architecture-specific 
+# directory for the plugin
+arch_dir="$(dpkg --print-architecture)"
+
+# assemble the plugin path
+plugin_dir="$j2se_base/jre/lib/$arch_dir"
+
+# iceweasel
+update-alternatives \
+    --remove "iceweasel-javaplugin.so" "$plugin_dir/libnpjp2.so"
+
+# chromium
+update-alternatives \
+    --remove "chromium-javaplugin.so" "$plugin_dir/libnpjp2.so"
diff --git a/oracle-j2sdk1.7-doc/install b/oracle-j2sdk1.7-doc/install
new file mode 100644 (file)
index 0000000..3813af3
--- /dev/null
@@ -0,0 +1,16 @@
+j2se_base="/usr/share/doc/j2sdk1.7-oracle-doc"
+priority=316
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# Register the documentation with the various 
+# documentation systems, i.e. dhelp and dwww.
+
+if [ "$1" = configure ] ; then
+    if which install-docs >/dev/null 2>&1; then
+        install-docs -i /usr/share/doc-base/oracle-j2sdk1.7-doc
+    fi
+fi
+
diff --git a/oracle-j2sdk1.7-doc/remove b/oracle-j2sdk1.7-doc/remove
new file mode 100644 (file)
index 0000000..0119a79
--- /dev/null
@@ -0,0 +1,7 @@
+j2se_base="/usr/share/doc/j2sdk1.7-oracle-doc"
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+
diff --git a/oracle-j2sdk1.7/install b/oracle-j2sdk1.7/install
new file mode 100644 (file)
index 0000000..42d44d7
--- /dev/null
@@ -0,0 +1,88 @@
+suffix=j2sdk1.7-oracle
+j2se_base="/usr/lib/jvm/$suffix"
+priority=315
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# alternative <program>
+function program_alternative() {
+    local program="$1"
+    update-alternatives \
+       --install "/usr/bin/$program" "$program" \
+       "$j2se_base/bin/$program" "$priority" \
+       --slave "/usr/share/man/man1/$program.1.gz" "$program.1.gz" \
+       "$j2se_base/man/man1/$program.1.gz"
+}
+
+# alternative <program> without man page
+function program_alternative_no_man() {
+    local program="$1"
+    update-alternatives \
+        --install "/usr/bin/$program" "$program" \
+        "$j2se_base/bin/$program" "$priority"
+}
+
+# kinit, klist, and ktab not installed at this
+# time; handling of /etc/krb5.conf not addressed
+# JRE-specific alternatives with JDKs cannot be 
+# handled by our current approach
+program_alternative appletviewer
+program_alternative_no_man ControlPanel
+program_alternative extcheck
+program_alternative idlj
+program_alternative jar
+program_alternative jarsigner
+program_alternative java
+program_alternative javac
+program_alternative javadoc
+program_alternative javah
+program_alternative javap
+program_alternative_no_man java-rmi.cgi
+program_alternative javaws
+program_alternative jconsole
+program_alternative jdb
+program_alternative jinfo
+program_alternative jmap
+program_alternative jps
+program_alternative jsadebugd
+program_alternative jstack
+program_alternative jstat
+program_alternative jstatd
+program_alternative keytool
+program_alternative native2ascii
+program_alternative orbd
+program_alternative pack200
+program_alternative policytool
+program_alternative rmic
+program_alternative rmid
+program_alternative rmiregistry
+program_alternative serialver
+program_alternative servertool
+program_alternative tnameserv
+program_alternative unpack200
+
+# derive the architecture-specific 
+# directory for the plugin
+arch_dir="$(dpkg --print-architecture)"
+
+# assemble the plugin path
+plugin_dir="$j2se_base/jre/lib/$arch_dir"
+
+# iceweasel
+iceweasel_dir="/usr/lib/iceweasel/plugins"
+[ -d "$iceweasel_dir" ] || install -d -m 755 "$iceweasel_dir"
+update-alternatives \
+    --install "$iceweasel_dir/libjavaplugin.so" \
+       "iceweasel-javaplugin.so" \
+       "$plugin_dir/libnpjp2.so" "$priority"
+
+# chromium
+chromium_dir="/usr/lib/chromium/plugins"
+[ -d "$chromium_dir" ] || install -d -m 755 "$chromium_dir"
+update-alternatives \
+    --install "$chromium_dir/libjavaplugin.so" \
+       "chromium-javaplugin.so" \
+       "$plugin_dir/libnpjp2.so" "$priority"
+
diff --git a/oracle-j2sdk1.7/remove b/oracle-j2sdk1.7/remove
new file mode 100644 (file)
index 0000000..5e23e7c
--- /dev/null
@@ -0,0 +1,63 @@
+suffix=j2sdk1.7-oracle
+j2se_base="/usr/lib/jvm/$suffix"
+
+if [ ! -e "$j2se_base/debian/info" ]; then
+    exit 0
+fi
+
+# alternative <program>
+function program_alternative() {
+    local program="$1"
+    update-alternatives \
+       --remove "$program" "$j2se_base/bin/$program"
+}
+
+program_alternative appletviewer
+program_alternative ControlPanel
+program_alternative extcheck
+program_alternative idlj
+program_alternative jar
+program_alternative jarsigner
+program_alternative java
+program_alternative javac
+program_alternative javadoc
+program_alternative javah
+program_alternative javap
+program_alternative java-rmi.cgi
+program_alternative javaws
+program_alternative jconsole
+program_alternative jdb
+program_alternative jinfo
+program_alternative jmap
+program_alternative jps
+program_alternative jsadebugd
+program_alternative jstack
+program_alternative jstat
+program_alternative jstatd
+program_alternative keytool
+program_alternative native2ascii
+program_alternative orbd
+program_alternative pack200
+program_alternative policytool
+program_alternative rmic
+program_alternative rmid
+program_alternative rmiregistry
+program_alternative serialver
+program_alternative servertool
+program_alternative tnameserv
+program_alternative unpack200
+
+# derive the architecture-specific 
+# directory for the plugin
+arch_dir="$(dpkg --print-architecture)"
+
+# assemble the plugin path
+plugin_dir="$j2se_base/jre/lib/$arch_dir"
+
+# iceweasel
+update-alternatives \
+    --remove "iceweasel-javaplugin.so" "$plugin_dir/libnpjp2.so"
+
+# chromium
+update-alternatives \
+    --remove "chromium-javaplugin.so" "$plugin_dir/libnpjp2.so"