X-Git-Url: http://git.sven.stormbind.net/?p=sven%2Fjava-package.git;a=blobdiff_plain;f=lib%2Fjavase.sh;h=fd025ca4f1a4afb10fc3fa764f6fa5d57aed8bd4;hp=4285bd559f8f1bad81aeaabc350b93e5be417dd4;hb=a87614986d49e2eac20bd8fa0b8df85a5419fa46;hpb=f0ddad846249c2e3a76fdc6f3b03ecd467281dc0 diff --git a/lib/javase.sh b/lib/javase.sh index 4285bd5..fd025ca 100644 --- a/lib/javase.sh +++ b/lib/javase.sh @@ -7,29 +7,30 @@ This package has been automatically created with java-package ($version). All files from the original distribution should have been installed in the directory $jvm_base$j2se_name. Please take a look at this directory for further information. - EOF } j2se_changelog() { cat << EOF -$j2se_package ($j2se_version) unstable; urgency=low +$j2se_package ($j2se_version) $target_distribution; urgency=medium * This package was created with java-package ($version). -- $maintainer_name <$maintainer_email> $( date -R ) - EOF } j2se_control() { + if test -n "$build_depends"; then + build_depends=", $build_depends" + fi cat << EOF Source: $j2se_package Section: non-free/devel Priority: optional Maintainer: $maintainer_name <$maintainer_email> -Build-Depends: debhelper (>= 9) -Standards-Version: 3.9.5 +Build-Depends: debhelper (>= 9)${build_depends} +Standards-Version: 3.9.8 EOF } @@ -56,7 +57,7 @@ File: $jvm_base$file ---------------------------------------------------------------------- EOF - cat "$file" + iconv -f ISO-8859-15 -t UTF-8 "$file" | sed 's/[ \t]*$//' cat << EOF ---------------------------------------------------------------------- @@ -69,6 +70,18 @@ j2se_rules() { cat << EOF #!/usr/bin/make -f +# Exclude libraries that pull in ALSA or OpenGL which are not needed in normal operation +EXCLUDE_LIBS = \\ + --exclude=avplugin \\ + --exclude=fxavcodecplugin \\ + --exclude=libjsoundalsa.so \\ +EOF + for lib in $exlude_libs; do + printf '\t--exclude=%s \\\n' "$lib" + done + cat << EOF + \$(NULL) + %: dh \$@ @@ -76,10 +89,26 @@ override_dh_compress: dh_compress \$(shell find $j2se_name/man/ -type f ! -name '*.gz' -printf '${jvm_base##/}/%p\n') override_dh_shlibdeps: - dh_shlibdeps --exclude=fxavcodecplugin -l\$(shell find $j2se_name -type f -name '*.so*' -printf '${jvm_base##/}/%h\n' | sort -u | tr '\n' ':' | sed 's/:\$\$//') + dh_shlibdeps \$(EXCLUDE_LIBS) -l\$(shell find $j2se_name -type f -name '*.so*' -printf '${jvm_base##/}/%h\n' | sort -u | tr '\n' ':' | sed 's/:\$\$//') + +override_dh_strip_nondeterminism: + # Disable dh_strip_nondeterminism to speed up the build +EOF +} + +j2se_doc_rules() { + cat << EOF +#!/usr/bin/make -f + +%: + dh \$@ + +override_dh_strip_nondeterminism: + # Disable dh_strip_nondeterminism to speed up the build EOF } + j2se_install_scripts() { cat > "$debian_dir/postinst" << EOF #!/bin/bash @@ -97,7 +126,7 @@ if [ "\$1" = configure ]; then for program in \$*; do if [[ -f "\$program_base/\$program" ]]; then update-alternatives \\ - --install "/usr/bin/\$program" "\$program" "\$program_base/\$program" $j2se_priority \\ + --install "/usr/bin/\$program" "\$program" "\$program_base/\$program" ${priority_override:-$j2se_priority} \\ --slave "/usr/share/man/man1/\$program.1.gz" "\$program.1.gz" "$jvm_base$j2se_name/man/man1/\$program.1.gz" fi done @@ -109,7 +138,7 @@ if [ "\$1" = configure ]; then shift for program in \$*; do if [[ -f "\$program_base/\$program" ]]; then - update-alternatives --install "/usr/bin/\$program" "\$program" "\$program_base/\$program" $j2se_priority + update-alternatives --install "/usr/bin/\$program" "\$program" "\$program_base/\$program" ${priority_override:-$j2se_priority} fi done } @@ -122,11 +151,19 @@ if [ "\$1" = configure ]; then local plugin="\$4" [ -d "\$link_path" ] || install -d -m 755 "\$link_path" if [[ -f "\$plugin" ]]; then - update-alternatives --install "\$link_path/\$link_name" "\$plugin_name" "\$plugin" $j2se_priority + update-alternatives --install "\$link_path/\$link_name" "\$plugin_name" "\$plugin" ${priority_override:-$j2se_priority} fi } - EOF + if [ "$create_cert_softlinks" == "true" ];then + cat >> "$debian_dir/postinst" << EOF + for subdir in lib/security jre/lib/security;do + if [ -f $jvm_base$j2se_name/\$subdir/cacerts ]; then + ln -sf /etc/ssl/certs/java/cacerts $jvm_base$j2se_name/\$subdir/cacerts + fi + done +EOF + fi eval "$j2se_install" >> "$debian_dir/postinst" cat >> "$debian_dir/postinst" << EOF @@ -199,21 +236,36 @@ jinfos() { } j2se_build() { - cd "$package_dir" - echo "Create debian package:" + if [ -n "$build_source" ]; then + local source_dir=${j2se_package}-${j2se_version} + echo " copy ${source_dir} into directory $working_dir/" + rm -rf "$working_dir/${source_dir}" + cp -r "$package_dir" "$working_dir/${source_dir}" + cat << EOF +The Debian source package has been created in the current directory. +You can build the package with: + + cd ${source_dir} dpkg-buildpackage -b -uc -us - cd "$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" - echo " copy $changes_filename into directory $working_dir/" - cp "$changes_filename" "$working_dir/" - fi - cat << EOF + +EOF + else + cd "$package_dir" + echo "Create debian package:" + + dpkg-buildpackage -b -uc -us + cd "$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" + 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 with: @@ -221,4 +273,43 @@ You can install the package as root with: dpkg -i $deb_filename EOF + fi +} + +# build debian package +j2se_run() { + echo + diskfree "$j2se_required_space" + read_maintainer_info + get_distribution + case "${j2se_arch}" in + i586) + j2se_debian_arch=i386 + ;; + amd64|x64) + j2se_debian_arch=amd64 + ;; + esac + j2se_name="$j2se_package-$j2se_debian_arch" + local target="$package_dir/$j2se_name" + install -d -m 755 "$( dirname "$target" )" + extract_bin "$archive_path" "$j2se_expected_min_size" "$target" + if [[ -n "$jce_archive" ]]; then + extract_jce "$jce_path" "$target/jre/lib/security" + fi + rm -rf "$target/.systemPrefs" + echo "9" > "$debian_dir/compat" + j2se_readme > "$debian_dir/README.Debian" + j2se_changelog > "$debian_dir/changelog" + eval "$j2se_control" > "$debian_dir/control" + j2se_copyright > "$debian_dir/copyright" + j2se_rules > "$debian_dir/rules" + chmod +x "$debian_dir/rules" + j2se_install_scripts + install -d "$target/debian" + j2se_info > "$target/debian/info" + eval "$j2se_jinfo" > "$package_dir/.$j2se_name.jinfo" + echo ".$j2se_name.jinfo $jvm_base" > "$debian_dir/install" + echo "$j2se_name $jvm_base" >> "$debian_dir/install" + j2se_build }