From efb42c60adc94fa23838d48d06bc197a3e8c2f31 Mon Sep 17 00:00:00 2001 From: chenhongyu Date: Fri, 24 Dec 2021 06:30:05 +0000 Subject: [PATCH 1/8] add firefox.spec. --- firefox.spec | 860 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 860 insertions(+) create mode 100644 firefox.spec diff --git a/firefox.spec b/firefox.spec new file mode 100644 index 0000000..3ab3f5d --- /dev/null +++ b/firefox.spec @@ -0,0 +1,860 @@ +%global release_build 1 +%global debug_build 0 +%global build_with_clang 0 +%global build_with_asan 0 +%global enable_mozilla_crashreporter 0 +%ifarch x86_64 %{ix86} +%global enable_mozilla_crashreporter 1 +%endif +%if %{build_with_asan} +%global enable_mozilla_crashreporter 0 +%endif +%if 0%{?flatpak} +%global enable_mozilla_crashreporter 0 +%endif +%global system_nss 1 +%global system_ffi 1 +%ifarch armv7hl +%global system_libvpx 1 +%else +%global system_libvpx 0 +%endif +%global hardened_build 1 +%global system_jpeg 1 +%global run_tests 0 +%global disable_elfhack 1 +%global use_bundled_cbindgen 1 +%ifarch x86_64 aarch64 +%if %{release_build} +%global build_with_pgo 0 +%else +%global build_with_pgo 0 +%endif +%global pgo_wayland 0 +%endif +%global wayland_backend_default 0 +%if 0%{?flatpak} +%global wayland_backend_default 0 +%global build_with_pgo 0 +%endif +%ifarch ppc64 s390x +%global big_endian 1 +%endif +%ifarch armv7hl +%define _unpackaged_files_terminate_build 0 +%global debug_package %{nil} +%endif +%if 0%{?build_with_pgo} +%global use_xvfb 1 +%global build_tests 1 +%endif +%if 0%{?run_tests} +%global use_xvfb 1 +%global build_tests 1 +%endif +%global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} +%global cairo_version 1.13.1 +%global freetype_version 2.1.9 +%global libnotify_version 0.7.0 +%if %{?system_libvpx} +%global libvpx_version 1.8.2 +%endif +%if %{?system_nss} +%global nspr_version 4.21 +%global nspr_build_version %{nspr_version} +%global nss_version 3.54 +%global nss_build_version %{nss_version} +%endif +%global mozappdir %{_libdir}/%{name} +%global mozappdirdev %{_libdir}/%{name}-devel-%{version} +%global langpackdir %{mozappdir}/langpacks +%global tarballdir firefox-%{version} +%global official_branding 1 +%bcond_without langpacks +%if !%{release_build} +%global pre_tag .npgo +%endif +%if %{build_with_clang} +%global pre_tag .clang +%global build_with_pgo 0 +%endif +%if %{build_with_asan} +%global pre_tag .asan +%global build_with_pgo 0 +%endif +%if !%{system_nss} +%global nss_tag .nss +%endif +Summary: Mozilla Firefox Web browser +Name: firefox +Version: 79.0 +Release: 11 +URL: https://www.mozilla.org/firefox/ +License: MPLv1.1 or GPLv2+ or LGPLv2+ +Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz +%if %{with langpacks} +Source1: firefox-langpacks-%{version}-20200727.tar.xz +%endif +Source2: cbindgen-vendor.tar.xz +Source3: testing.tar.xz +Source10: firefox-mozconfig +Source12: firefox.js +Source20: firefox.desktop +Source21: firefox.sh.in +Source23: firefox.1 +Source24: mozilla-api-key +Source25: firefox-symbolic.svg +Source26: distribution.ini +Source27: google-api-key +Source28: firefox-wayland.sh.in +Source29: firefox-wayland.desktop +Source30: firefox-x11.sh.in +Source31: firefox-x11.desktop +Source32: node-stdout-nonblocking-wrapper +Source33: firefox.appdata.xml.in +Source34: firefox-search-provider.ini +Patch3: mozilla-build-arm.patch +Patch25: rhbz-1219542-s390-build.patch +Patch26: build-icu-big-endian.patch +Patch32: build-rust-ppc64le.patch +Patch35: build-ppc-jit.patch +Patch37: build-jit-atomic-always-lucky.patch +Patch38: build-cacheFlush-missing.patch +Patch40: build-aarch64-skia.patch +Patch41: build-disable-elfhack.patch +Patch44: build-arm-libopus.patch +Patch46: firefox-nss-version.patch +Patch48: build-arm-wasm.patch +Patch49: build-arm-libaom.patch +Patch51: mozilla-1640982.patch +Patch215: firefox-enable-addons.patch +Patch219: rhbz-1173156.patch +Patch224: mozilla-1170092.patch +Patch226: rhbz-1354671.patch +Patch227: firefox-locale-debug.patch +Patch402: mozilla-1196777.patch +Patch412: mozilla-1337988.patch +Patch417: bug1375074-save-restore-x28.patch +Patch422: mozilla-1580174-webrtc-popup.patch +Patch575: firefox-pipewire-0-3.patch +Patch584: firefox-disable-ffvpx-with-vapi.patch +Patch585: firefox-vaapi-extra-frames.patch +Patch586: mozilla-1645671.patch +Patch589: mozilla-1656436.patch +Patch600: pgo.patch +Patch601: mozilla-1516081.patch +Patch602: mozilla-1516803.patch +Patch603: CVE-2020-15664.patch +Patch604: CVE-2020-15665.patch +Patch605: CVE-2020-15666.patch +Patch606: CVE-2020-15667.patch +Patch607: CVE-2020-15668.patch +Patch608: CVE-2020-15676.patch +Patch609: CVE-2020-15677.patch +Patch610: CVE-2020-15678.patch +Patch611: CVE-2020-15969.patch +Patch612: CVE-2020-15999.patch +Patch613: CVE-2020-16012.patch +Patch614: CVE-2020-26951-1.patch +Patch615: CVE-2020-26951-2.patch +Patch616: CVE-2020-26953-pre.patch +Patch617: CVE-2020-26953.patch +Patch618: CVE-2020-26956-1.patch +Patch619: CVE-2020-26956-2.patch +Patch620: CVE-2020-26956-3.patch +Patch621: CVE-2020-26957.patch +Patch622: CVE-2020-26958.patch +Patch623: CVE-2020-26959.patch +Patch624: CVE-2020-26960-1.patch +Patch625: CVE-2020-26960-2.patch +Patch626: CVE-2020-26961-1.patch +Patch627: CVE-2020-26961-2.patch +Patch628: CVE-2020-26963-1.patch +Patch629: CVE-2020-26963-2.patch +Patch630: CVE-2020-26965.patch +Patch631: CVE-2020-26966.patch +Patch632: CVE-2020-26967.patch +Patch633: Fix-build-with-rust-nightly.patch +Patch634: Teach-style_derives-map_type_params-about-mapping-self-correctly.patch +Patch635: Update-syn-and-proc-macro2-so-that-Firefox-can-build-on-Rust-nightly-again.patch +Patch636: Bug-1660901-Support-the-fstat-like-subset-of-fstatat-in-the-Linux-sandbox-policies.patch +Patch637: Bug-1660901-ignore-AT_NO_AUTOMOUNT-in-fstatat-system-call.patch +Patch638: Bug-1673202-Call-fstat-directly-in-Linux-sandbox-fstatat-interception.patch +Patch639: Bug-1673770-Extend-the-handling-of-fstatat-as-fstat-to-sandboxes-that-dont-use-a-file-broker.patch +Patch640: Bug-1680166-Return-EFAULT-when-given-a-null-path-to-stat-calls-in-the-sandbox-filter.patch +Patch641: Bug-1680166-GCC-is-smarter-than-clang-so-ignore-the-warning-properly.patch +Patch642: firefox-glibc-dynstack.patch +Patch643: firefox-crashreporter-build.patch +Patch644: Deny-clone3-to-force-glibc-fallback.patch + +%if %{?system_nss} +BuildRequires: pkgconfig(nspr) >= %{nspr_version} pkgconfig(nss) >= %{nss_version} +BuildRequires: nss-static >= %{nss_version} +%endif +BuildRequires: pkgconfig(libpng) +%if %{?system_jpeg} +BuildRequires: libjpeg-devel +%endif +BuildRequires: zip bzip2-devel pkgconfig(zlib) pkgconfig(gtk+-3.0) pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(krb5) pkgconfig(pango) pkgconfig(freetype2) >= %{freetype_version} +BuildRequires: pkgconfig(xt) pkgconfig(xrender) pkgconfig(libstartup-notification-1.0) +BuildRequires: pkgconfig(libnotify) >= %{libnotify_version} pkgconfig(dri) pkgconfig(libcurl) +BuildRequires: dbus-glib-devel +%if %{?system_libvpx} +BuildRequires: libvpx-devel >= %{libvpx_version} +%endif +BuildRequires: autoconf213 pkgconfig(libpulse) yasm llvm llvm-devel clang clang-libs +%if 0%{?build_with_clang} +BuildRequires: lld +%endif +BuildRequires: pipewire-devel +%if !0%{?use_bundled_cbindgen} +BuildRequires: cbindgen +%endif +BuildRequires: nodejs nasm >= 1.13 libappstream-glib +%if 0%{?big_endian} +BuildRequires: icu +%endif +Requires: mozilla-filesystem p11-kit-trust +%if %{?system_nss} +Requires: nspr >= %{nspr_build_version} nss >= %{nss_build_version} +%endif +BuildRequires: python3-devel +%if !0%{?flatpak} +Requires: u2f-hidraw-policy +%endif +BuildRequires: nss-devel >= 3.29.1-2.1 +Requires: nss >= 3.48.0 +BuildRequires: desktop-file-utils +%if !0%{?flatpak} +%endif +%if %{?system_ffi} +BuildRequires: pkgconfig(libffi) +%endif +%if 0%{?use_xvfb} +BuildRequires: xorg-x11-server-Xvfb +%endif +%if 0%{?pgo_wayland} +BuildRequires: mutter +%endif +BuildRequires: rust cargo clang-devel +%if %{build_with_asan} +BuildRequires: libasan libasan-static +%endif +BuildRequires: perl-interpreter +Provides: webclient firefox-wayland = %{version}-%{release} +Obsoletes: mozilla <= 37:1.7.13 firefox-wayland <= %{version}-%{release} +%description +Mozilla Firefox is an open-source web browser, designed for standards +compliance, performance and portability. +%if %{enable_mozilla_crashreporter} +%global moz_debug_prefix %{_prefix}/lib/debug +%global moz_debug_dir %{moz_debug_prefix}%{mozappdir} +%global uname_m %(uname -m) +%global symbols_file_name %{name}-%{version}.en-US.%{_os}-%{uname_m}.crashreporter-symbols.zip +%global symbols_file_path %{moz_debug_dir}/%{symbols_file_name} +%global _find_debuginfo_opts -p %{symbols_file_path} -o debugcrashreporter.list +%global crashreporter_pkg_name mozilla-crashreporter-%{name}-debuginfo + +%package -n %{crashreporter_pkg_name} +Summary: Debugging symbols used by Mozilla's crash reporter servers +%description -n %{crashreporter_pkg_name} +This package provides debug information for Firefox, for use by +Mozilla's crash reporter servers. If you are trying to locally +debug %{name}, you want to install %{name}-debuginfo instead. + +%files -n %{crashreporter_pkg_name} -f debugcrashreporter.list +%endif +%if 0%{?wayland_backend_default} + +%package x11 +Summary: Firefox X11 launcher. +Requires: %{name} +%description x11 +The firefox-x11 package contains launcher and desktop file +to run Firefox explicitly on X11. + +%files x11 +%{_bindir}/firefox-x11 +%{_datadir}/applications/firefox-x11.desktop +%endif +%if %{run_tests} +%global testsuite_pkg_name mozilla-%{name}-testresults + +%package -n %{testsuite_pkg_name} +Summary: Results of testsuite +%description -n %{testsuite_pkg_name} +This package contains results of tests executed during build. + +%files -n %{testsuite_pkg_name} +/test_results +%endif + +%prep +%setup -q -n %{tarballdir} +tar -xf %{SOURCE3} +%ifarch s390 +%patch25 -p1 -b .rhbz-1219542-s390 +%endif +%patch40 -p1 -b .aarch64-skia +%if 0%{?disable_elfhack} +%patch41 -p1 -b .disable-elfhack +%endif +%patch3 -p1 -b .arm +%patch44 -p1 -b .build-arm-libopus +%if 0%{?big_endian} +%patch26 -p1 -b .icu +%endif +%patch48 -p1 -b .build-arm-wasm +%patch49 -p1 -b .build-arm-libaom +%patch51 -p1 -b .mozilla-1640982 +%patch215 -p1 -b .addons +%patch219 -p1 -b .rhbz-1173156 +%patch224 -p1 -b .1170092 +%ifarch aarch64 +%patch226 -p1 -b .1354671 +%endif +%patch227 -p1 -b .locale-debug +%patch402 -p1 -b .1196777 +%patch575 -p1 -b .firefox-pipewire-0-3 +%patch584 -p1 -b .firefox-disable-ffvpx-with-vapi +%patch585 -p1 -b .firefox-vaapi-extra-frames +%patch586 -p1 -b .mozilla-1645671 +%patch589 -p1 -b .mozilla-1656436 +%patch600 -p1 -b .pgo +%patch602 -p1 -b .1516803 +%patch603 -p1 +%patch604 -p1 +%patch605 -p1 +%patch606 -p1 +%patch607 -p1 +%patch608 -p1 +%patch609 -p1 +%patch610 -p1 +%patch611 -p1 +%patch612 -p1 +%patch613 -p1 +%patch614 -p1 +%patch615 -p1 +%patch616 -p1 +%patch617 -p1 +%patch618 -p1 +%patch619 -p1 +%patch620 -p1 +%patch621 -p1 +%patch622 -p1 +%patch623 -p1 +%patch624 -p1 +%patch625 -p1 +%patch626 -p1 +%patch627 -p1 +%patch628 -p1 +%patch629 -p1 +%patch630 -p1 +%patch631 -p1 +%patch632 -p1 +%patch633 -p1 +%patch634 -p1 +%patch635 -p1 +%patch636 -p1 +%patch637 -p1 +%patch638 -p1 +%patch639 -p1 +%patch640 -p1 +%patch641 -p1 +%patch642 -p1 +%patch643 -p1 +%patch644 -p1 + +%{__rm} -f .mozconfig +%{__cp} %{SOURCE10} .mozconfig +echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland" >> .mozconfig +%if %{official_branding} +echo "ac_add_options --enable-official-branding" >> .mozconfig +%endif +%{__cp} %{SOURCE24} mozilla-api-key +%{__cp} %{SOURCE27} google-api-key +echo "ac_add_options --prefix=\"%{_prefix}\"" >> .mozconfig +echo "ac_add_options --libdir=\"%{_libdir}\"" >> .mozconfig +%if %{?system_nss} +echo "ac_add_options --with-system-nspr" >> .mozconfig +echo "ac_add_options --with-system-nss" >> .mozconfig +%else +echo "ac_add_options --without-system-nspr" >> .mozconfig +echo "ac_add_options --without-system-nss" >> .mozconfig +%endif +%if %{?system_ffi} +echo "ac_add_options --enable-system-ffi" >> .mozconfig +%endif +%ifarch %{arm} +echo "ac_add_options --disable-elf-hack" >> .mozconfig +%endif +%if %{?debug_build} +echo "ac_add_options --enable-debug" >> .mozconfig +echo "ac_add_options --disable-optimize" >> .mozconfig +%else +%global optimize_flags "none" +%ifarch ppc64le aarch64 +%global optimize_flags "-g -O2" +%endif +%if %{optimize_flags} != "none" +echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig +%else +echo 'ac_add_options --enable-optimize' >> .mozconfig +%endif +echo "ac_add_options --disable-debug" >> .mozconfig +%endif +%ifnarch %{ix86} x86_64 +echo "ac_add_options --disable-jemalloc" >> .mozconfig +%endif +%if !%{enable_mozilla_crashreporter} +echo "ac_add_options --disable-crashreporter" >> .mozconfig +%endif +%if 0%{?build_tests} +echo "ac_add_options --enable-tests" >> .mozconfig +%else +echo "ac_add_options --disable-tests" >> .mozconfig +%endif +%if !%{?system_jpeg} +echo "ac_add_options --without-system-jpeg" >> .mozconfig +%else +echo "ac_add_options --with-system-jpeg" >> .mozconfig +%endif +%if %{?system_libvpx} +echo "ac_add_options --with-system-libvpx" >> .mozconfig +%else +echo "ac_add_options --without-system-libvpx" >> .mozconfig +%endif +%ifarch s390 s390x +echo "ac_add_options --disable-ion" >> .mozconfig +%endif +%if %{build_with_asan} +echo "ac_add_options --enable-address-sanitizer" >> .mozconfig +echo "ac_add_options --disable-jemalloc" >> .mozconfig +%endif +echo "ac_add_options --with-mozilla-api-keyfile=`pwd`/mozilla-api-key" >> .mozconfig +echo "ac_add_options --with-google-safebrowsing-api-keyfile=`pwd`/google-api-key" >> .mozconfig +echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig +chmod -x third_party/rust/itertools/src/lib.rs +chmod a-x third_party/rust/gfx-backend-vulkan/src/*.rs +chmod a-x third_party/rust/gfx-hal/src/*.rs +chmod a-x third_party/rust/ash/src/extensions/ext/*.rs +chmod a-x third_party/rust/ash/src/extensions/khr/*.rs + +%build +%if 0%{?use_bundled_cbindgen} +mkdir -p my_rust_vendor +cd my_rust_vendor +%{__tar} xf %{SOURCE2} +mkdir -p .cargo +cat > .cargo/config <> .mozconfig +%endif +%endif +%if 0%{?flatpak} +MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -L%{_libdir}" +%endif +%ifarch x86_64 aarch64 +export RUSTFLAGS="-C debuginfo=1" +%endif +%if %{build_with_asan} +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fsanitize=address -Dxmalloc=myxmalloc" +MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -fsanitize=address -ldl" +%endif +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT" +%if !%{build_with_clang} +echo "export CFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig +echo "export CXXFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig +echo "export LDFLAGS=\"$MOZ_LINK_FLAGS\"" >> .mozconfig +%endif +%if 0%{?build_with_clang} +echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig +echo "export AR=\"llvm-ar\"" >> .mozconfig +echo "export NM=\"llvm-nm\"" >> .mozconfig +echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig +echo "ac_add_options --enable-linker=lld" >> .mozconfig +%else +echo "export CC=gcc" >> .mozconfig +echo "export CXX=g++" >> .mozconfig +echo "export AR=\"gcc-ar\"" >> .mozconfig +echo "export NM=\"gcc-nm\"" >> .mozconfig +echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig +%endif +%if 0%{?build_with_pgo} +echo "ac_add_options MOZ_PGO=1" >> .mozconfig +echo "ac_add_options --enable-lto" >> .mozconfig +%endif +MOZ_SMP_FLAGS=-j1 +%ifarch %{ix86} +[ -z "$RPM_BUILD_NCPUS" ] && \ + RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" +[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 +%endif +%ifarch x86_64 ppc ppc64 ppc64le aarch64 +[ -z "$RPM_BUILD_NCPUS" ] && \ + RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" +[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 +[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 +[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 +%endif +echo "export MOZ_MAKE_FLAGS=\"$MOZ_SMP_FLAGS\"" >> .mozconfig +echo "export MOZ_SERVICES_SYNC=1" >> .mozconfig +echo "export STRIP=/bin/true" >> .mozconfig +%if 0%{?build_with_pgo} +%if 0%{?pgo_wayland} +xvfb-run mutter --wayland --nested & +if [ -z "$WAYLAND_DISPLAY" ]; then + export WAYLAND_DISPLAY=wayland-0 +else + export WAYLAND_DISPLAY=wayland-1 +fi +MOZ_ENABLE_WAYLAND=1 ./mach build 2>&1 | cat - +%else +GDK_BACKEND=x11 xvfb-run ./mach build 2>&1 | cat - +%endif +%else +./mach build -v 2>&1 | cat - +%endif +%if %{enable_mozilla_crashreporter} +make -C objdir buildsymbols +%endif +%if %{?run_tests} +%if %{?system_nss} +ln -s %{_prefix}/bin/certutil objdir/dist/bin/certutil +ln -s %{_prefix}/bin/pk12util objdir/dist/bin/pk12util +%endif +mkdir test_results +./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey || true +./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey-2nd-run || true +./mach --log-no-times cppunittest &> test_results/cppunittest || true +xvfb-run ./mach --log-no-times crashtest &> test_results/crashtest || true +./mach --log-no-times gtest &> test_results/gtest || true +xvfb-run ./mach --log-no-times jetpack-test &> test_results/jetpack-test || true +xvfb-run ./mach --log-no-times mochitest-a11y &> test_results/mochitest-a11y || true +xvfb-run ./mach --log-no-times mochitest-browser &> test_results/mochitest-browser || true +xvfb-run ./mach --log-no-times mochitest-chrome &> test_results/mochitest-chrome || true +xvfb-run ./mach --log-no-times mochitest-devtools &> test_results/mochitest-devtools || true +xvfb-run ./mach --log-no-times mochitest-plain &> test_results/mochitest-plain || true +xvfb-run ./mach --log-no-times reftest &> test_results/reftest || true +xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-test-chrome || true +xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true +./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true +xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true +%if %{?system_nss} +rm -f objdir/dist/bin/certutil +rm -f objdir/dist/bin/pk12util +%endif +%endif + +%install +%if !0%{?flatpak} +%endif +%{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF +pref("general.useragent.locale", "chrome://global/locale/intl.properties"); +EOF +DESTDIR=%{buildroot} make -C objdir install +%{__mkdir_p} %{buildroot}{%{_libdir},%{_bindir},%{_datadir}/applications} +desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE20} +%if 0%{?wayland_backend_default} +desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE31} +%endif +desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE29} +%if 0%{?wayland_backend_default} +%global wayland_default true +%else +%global wayland_default false +%endif +%{__rm} -rf %{buildroot}%{_bindir}/firefox +%{__sed} -e 's/__DEFAULT_WAYLAND__/%{wayland_default}/' \ + -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE21} > %{buildroot}%{_bindir}/firefox +%{__chmod} 755 %{buildroot}%{_bindir}/firefox +%if 0%{?flatpak} +sed -i -e 's|%FLATPAK_ENV_VARS%|export TMPDIR="$XDG_CACHE_HOME/tmp"|' %{buildroot}%{_bindir}/firefox +%else +sed -i -e 's|%FLATPAK_ENV_VARS%||' %{buildroot}%{_bindir}/firefox +%endif +%if 0%{?wayland_backend_default} +%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE30} > %{buildroot}%{_bindir}/firefox-x11 +%{__chmod} 755 %{buildroot}%{_bindir}/firefox-x11 +%endif +%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE28} > %{buildroot}%{_bindir}/firefox-wayland +%{__chmod} 755 %{buildroot}%{_bindir}/firefox-wayland +%{__install} -p -D -m 644 %{SOURCE23} %{buildroot}%{_mandir}/man1/firefox.1 +%{__rm} -f %{buildroot}/%{mozappdir}/firefox-config +%{__rm} -f %{buildroot}/%{mozappdir}/update-settings.ini +for s in 16 22 24 32 48 256; do + %{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps + %{__cp} -p browser/branding/official/default${s}.png \ + %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png +done +%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +%{__cp} -p %{SOURCE25} \ + %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +echo > %{name}.lang +%if %{with langpacks} +%{__mkdir_p} %{buildroot}%{langpackdir} +%{__tar} xf %{SOURCE1} +for langpack in `ls firefox-langpacks/*.xpi`; do + language=`basename $langpack .xpi` + extensionID=langpack-$language@firefox.mozilla.org + %{__mkdir_p} $extensionID + unzip -qq $langpack -d $extensionID + find $extensionID -type f | xargs chmod 644 + cd $extensionID + zip -qq -r9mX ../${extensionID}.xpi * + cd - + %{__install} -m 644 ${extensionID}.xpi %{buildroot}%{langpackdir} + language=`echo $language | sed -e 's/-/_/g'` +%if 0%{?flatpak} + echo "%{langpackdir}/${extensionID}.xpi" >> %{name}.lang +%else + echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> %{name}.lang +%endif +done +%{__rm} -rf firefox-langpacks +function create_default_langpack() { +language_long=$1 +language_short=$2 +cd %{buildroot}%{langpackdir} +ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi +cd - +echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> %{name}.lang +} +create_default_langpack "es-AR" "es" +create_default_langpack "fy-NL" "fy" +create_default_langpack "ga-IE" "ga" +create_default_langpack "gu-IN" "gu" +create_default_langpack "hi-IN" "hi" +create_default_langpack "hy-AM" "hy" +create_default_langpack "nb-NO" "nb" +create_default_langpack "nn-NO" "nn" +create_default_langpack "pa-IN" "pa" +create_default_langpack "pt-PT" "pt" +create_default_langpack "sv-SE" "sv" +create_default_langpack "zh-TW" "zh" +%endif +%{__mkdir_p} %{buildroot}/%{mozappdir}/browser/defaults/preferences +%{__mkdir_p} %{buildroot}/%{_sysconfdir}/%{name}/pref +%{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_app_id} +%{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_app_id} +%{__install} -p -c -m 644 LICENSE %{buildroot}/%{mozappdir} +%{__rm} -rf %{buildroot}%{mozappdir}/dictionaries +ln -s %{_datadir}/myspell %{buildroot}%{mozappdir}/dictionaries +%if %{enable_mozilla_crashreporter} +sed -i -e "s/\[Crash Reporter\]/[Crash Reporter]\nEnabled=1/" %{buildroot}/%{mozappdir}/application.ini +%{__mkdir_p} %{buildroot}/%{moz_debug_dir} +%{__cp} objdir/dist/%{symbols_file_name} %{buildroot}/%{moz_debug_dir} +%endif +%if %{run_tests} +%{__mkdir_p} %{buildroot}/test_results +%{__cp} test_results/* %{buildroot}/test_results +%endif +%{__cp} %{SOURCE12} %{buildroot}%{mozappdir}/browser/defaults/preferences +%{__cp} build/unix/run-mozilla.sh %{buildroot}%{mozappdir} +%{__mkdir_p} %{buildroot}%{mozappdir}/distribution +%{__cp} %{SOURCE26} %{buildroot}%{mozappdir}/distribution +mkdir -p %{buildroot}%{_datadir}/metainfo +%{__sed} -e 's/__VERSION__/%{version}/' %{SOURCE33} > %{buildroot}%{_datadir}/metainfo/firefox.appdata.xml +mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers +%{__cp} %{SOURCE34} %{buildroot}%{_datadir}/gnome-shell/search-providers +rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozjs.so +rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozalloc.so +rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libxul.so + +%pretrans -p +require 'posix' +require 'os' +if (posix.stat("%{mozappdir}/browser/defaults/preferences", "type") == "link") then + posix.unlink("%{mozappdir}/browser/defaults/preferences") + posix.mkdir("%{mozappdir}/browser/defaults/preferences") + if (posix.stat("%{mozappdir}/defaults/preferences", "type") == "directory") then + for i,filename in pairs(posix.dir("%{mozappdir}/defaults/preferences")) do + os.rename("%{mozappdir}/defaults/preferences/"..filename, "%{mozappdir}/browser/defaults/preferences/"..filename) + end + f = io.open("%{mozappdir}/defaults/preferences/README","w") + if f then + f:write("Content of this directory has been moved to %{mozappdir}/browser/defaults/preferences.") + f:close() + end + end +end + +%check +appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml + +%preun +if [ $1 -eq 0 ]; then + %{__rm} -rf %{mozappdir}/components + %{__rm} -rf %{mozappdir}/extensions + %{__rm} -rf %{mozappdir}/plugins + #%{__rm} -rf %{langpackdir} +fi + +%post +update-desktop-database &> /dev/null || : +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun +update-desktop-database &> /dev/null || : +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + +%files -f %{name}.lang +%{_bindir}/firefox +%{_bindir}/firefox-wayland +%{mozappdir}/firefox +%{mozappdir}/firefox-bin +%doc %{_mandir}/man1/* +%dir %{_sysconfdir}/%{name} +%dir %{_sysconfdir}/%{name}/* +%dir %{_datadir}/mozilla/extensions/* +%dir %{_libdir}/mozilla/extensions/* +%{_datadir}/applications/%{name}.desktop +%{_datadir}/metainfo/*.appdata.xml +%{_datadir}/gnome-shell/search-providers/*.ini +%dir %{mozappdir} +%license %{mozappdir}/LICENSE +%{mozappdir}/browser/chrome +%{mozappdir}/browser/defaults/preferences/firefox.js +%{mozappdir}/browser/features/*.xpi +%{mozappdir}/distribution/distribution.ini +%ghost %{mozappdir}/browser/features/aushelper@mozilla.org.xpi +%if %{with langpacks} +%dir %{langpackdir} +%endif +%{mozappdir}/browser/omni.ja +%{mozappdir}/run-mozilla.sh +%{mozappdir}/application.ini +%{mozappdir}/pingsender +%exclude %{mozappdir}/removed-files +%{_datadir}/icons/hicolor/16x16/apps/firefox.png +%{_datadir}/icons/hicolor/22x22/apps/firefox.png +%{_datadir}/icons/hicolor/24x24/apps/firefox.png +%{_datadir}/icons/hicolor/256x256/apps/firefox.png +%{_datadir}/icons/hicolor/32x32/apps/firefox.png +%{_datadir}/icons/hicolor/48x48/apps/firefox.png +%{_datadir}/icons/hicolor/symbolic/apps/firefox-symbolic.svg +%{_datadir}/applications/firefox-wayland.desktop +%if %{enable_mozilla_crashreporter} +%{mozappdir}/crashreporter +%{mozappdir}/crashreporter.ini +%{mozappdir}/minidump-analyzer +%{mozappdir}/Throbber-small.gif +%{mozappdir}/browser/crashreporter-override.ini +%endif +%{mozappdir}/*.so +%{mozappdir}/gtk2/*.so +%{mozappdir}/defaults/pref/channel-prefs.js +%{mozappdir}/dependentlibs.list +%{mozappdir}/dictionaries +%{mozappdir}/omni.ja +%{mozappdir}/platform.ini +%{mozappdir}/plugin-container +%{mozappdir}/gmp-clearkey +%{mozappdir}/fonts/TwemojiMozilla.ttf +%if !%{?system_nss} +%exclude %{mozappdir}/libnssckbi.so +%endif +%if %{build_with_asan} +%{mozappdir}/llvm-symbolizer +%endif + +%changelog +* Thu Oct 14 2021 zhangweiguo - 79.0-11 +- Set RUSTFLAGS:debuginfo to 1 + +* Mon Aug 23 2021 lingsheng - 79.0-10 +- Fix firefox tab crash with clone3 in glibc 2.34 + +* Wed Aug 11 2021 caodongxia - 79.0-9 +- Fix glibc dynstack + +* Wed Jul 7 2021 lingsheng - 79.0-8 +- Fix firefox video tab crash with rust 1.51 + +* Mon Jul 05 2021 caodongxia - 79.0-7 +- Fix build with pipewire 0.3 + +* Fri May 14 2021 lingsheng - 79.0-6 +- Fix build with rust 1.51 + +* Thu Jan 07 2021 wangxiao - 79.0-5 +- Fix CVE-2020-15969 CVE-2020-15999 CVE-2020-16012 CVE-2020-26951 + CVE-2020-26953 CVE-2020-26956 CVE-2020-26957 CVE-2020-26958 + CVE-2020-26959 CVE-2020-26960 CVE-2020-26961 CVE-2020-26963 + CVE-2020-26965 CVE-2020-25966 CVE-2020-26967 + +* Wed Dec 16 2020 wangxiao - 79.0-4 +- Fix CVE-2020-15664 CVE-2020-15665 CVE-2020-15666 CVE-2020-15667 + CVE-2020-15668 CVE-2020-15676 CVE-2020-15677 CVE-2020-15678 + +* Thu Nov 28 2020 Jeffery.Gao - 79.0-3 +- Fix firefox downgrade error + +* Mon Oct 26 2020 lingsheng - 79.0-2 +- Fix firefox remove warning + +* Mon Aug 17 2020 zhangjiapeng - 79.0-1 +- Update to 79.0-1 + +* Wed Jul 22 2020 lingsheng - 62.0.3-7 +- Fix firefox build with rust 1.38 + +* Mon May 25 2020 huanghaitao - 62.0.3-6 +- Type:cves +- ID: CVE-2020-6811 CVE-2020-6814 +- SUG:restart +- DESC: fix CVE-2020-6811 CVE-2020-6814 + +* Mon May 25 2020 Captain Wei - 62.0.3-5 +- fix unstable_name_collisions problem when compile + +* Wen Feb 26 2020 xuxijian - 62.0.3-4 +- Package init \ No newline at end of file -- Gitee From 6a4f8b9c6011d07b6a64db86806463659668152a Mon Sep 17 00:00:00 2001 From: chenhongyu Date: Tue, 28 Dec 2021 05:54:25 +0000 Subject: [PATCH 2/8] add openjdk-1.8.0.spec. --- openjdk-1.8.0.spec | 2554 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2554 insertions(+) create mode 100644 openjdk-1.8.0.spec diff --git a/openjdk-1.8.0.spec b/openjdk-1.8.0.spec new file mode 100644 index 0000000..a1d0c94 --- /dev/null +++ b/openjdk-1.8.0.spec @@ -0,0 +1,2554 @@ +# RPM conditionals so as to be able to dynamically produce +# slowdebug/release builds. See: +# http://rpm.org/user_doc/conditional_builds.html +# +# Examples: +# +# Produce release *and* slowdebug builds on x86_64 (default): +# $ rpmbuild -ba java-1.8.0-openjdk.spec +# +# Produce only release builds (no slowdebug builds) on x86_64: +# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug +# +# Only produce a release build on x86_64: +# $ fedpkg mockbuild --without slowdebug +# +# Only produce a debug build on x86_64: +# $ fedpkg local --without release +# +# Enable slowdebug builds by default on relevant arches. +%bcond_without slowdebug +# Enable release builds by default on relevant arches. +%bcond_without release + +# The -g flag says to use strip -g instead of full strip on DSOs or EXEs. +# This fixes detailed NMT and other tools which need minimal debug info. +%global _find_debuginfo_opts -g + +# note: parametrized macros are order-sensitive (unlike not-parametrized) even with normal macros +# also necessary when passing it as parameter to other macros. If not macro, then it is considered a switch +# see the difference between global and define: +# See https://github.com/rpm-software-management/rpm/issues/127 to comments at "pmatilai commented on Aug 18, 2017" +%global debug_suffix_unquoted -slowdebug +# quoted one for shell operations +%global debug_suffix "%{debug_suffix_unquoted}" +%global normal_suffix "" + +# if you want only debug build but providing java build only normal build but set normalbuild_parameter +%global debug_warning This package has full debug on. Install only in need and remove asap. +%global debug_on with full debug on +%global for_debug for packages with debug on + +%if %{with release} +%global include_normal_build 1 +%else +%global include_normal_build 0 +%endif + +%if %{include_normal_build} +%global build_loop1 %{normal_suffix} +%else +%global build_loop1 %{nil} +%endif + +%global aarch64 aarch64 +%global jit_arches x86_64 %{aarch64} +%global sa_arches x86_64 %{aarch64} +%global jfr_arches x86_64 %{aarch64} + +# By default, we build a debug build during main build on JIT architectures +%global include_debug_build 1 + +%if %{include_debug_build} +%global build_loop2 %{debug_suffix} +%else +%global build_loop2 %{nil} +%endif + +# if you disable both builds, then the build fails +%global build_loop %{build_loop1} %{build_loop2} +# note: that order: normal_suffix debug_suffix, in case of both enabled +# is expected in one single case at the end of the build +%global rev_build_loop %{build_loop2} %{build_loop1} + +%ifarch %{jit_arches} +%global bootstrap_build 1 +%else +%global bootstrap_build 0 +%endif + +%global release_targets images docs-zip +# No docs nor bootcycle for debug builds +%global debug_targets images + +# Filter out flags from the optflags macro that cause problems with the OpenJDK build +# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs) +# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2 +# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid FORTIFY_SOURCE warnings +# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and it's otherwise the default for C++ +%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r -e 's|-O[0-9]*||') +%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||' | sed -e 's|-Werror=format-security||') +%global ourldflags %{__global_ldflags} + +# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path +# the initialization must be here. Later the pkg-config have buggy behavior +# looks like openjdk RPM specific bug +# Always set this so the nss.cfg file is not broken +%global NSS_LIBDIR %(pkg-config --variable=libdir nss) +%global NSS_LIBS %(pkg-config --libs nss) +%global NSS_CFLAGS %(pkg-config --cflags nss-softokn) +%global NSSSOFTOKN_BUILDTIME_NUMBER %(pkg-config --modversion nss-softokn || : ) +%global NSS_BUILDTIME_NUMBER %(pkg-config --modversion nss || : ) +# this is workaround for processing of requires during srpm creation +%global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi) +%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSS_BUILDTIME_NUMBER}" ;fi) + +# In some cases, the arch used by the JDK does +# not match _arch. +# Also, in some cases, the machine name used by SystemTap +# does not match that given by _target_cpu +%ifarch x86_64 +%global archinstall amd64 +%global stapinstall x86_64 +%endif +%ifarch %{aarch64} +%global archinstall aarch64 +%global stapinstall arm64 +%endif + +%ifarch %{jit_arches} +%global with_systemtap 1 +%else +%global with_systemtap 0 +%endif + +# New Version-String scheme-style defines +%global majorver 8 + +%global with_openjfx_binding 1 +%global openjfx_path %{_jvmdir}/openjfx8 +# links src directories +%global jfx_jre_libs_dir %{openjfx_path}/rt/lib +%global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall} +%global jfx_sdk_libs_dir %{openjfx_path}/lib +%global jfx_sdk_bins_dir %{openjfx_path}/bin +%global jfx_jre_exts_dir %{jfx_jre_libs_dir}/ext +# links src files +# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude cyclic depndenci, but this list is aweful +%global jfx_jre_libs jfxswt.jar javafx.properties +%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so libglass.so libjavafx_iio.so libglassgtk2.so libglassgtk3.so +%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar +%global jfx_sdk_bins javafxpackager javapackager +%global jfx_jre_exts jfxrt.jar + +# Standard JPackage naming and versioning defines. +%global origin openjdk +%global origin_nice OpenJDK +%global top_level_dir_name %{origin} +%global repo jdk8u +%global revision jdk8u302-b07 +%global full_revision %{repo}-%{revision} +# Define IcedTea version used for SystemTap tapsets and desktop files +%global icedteaver 3.15.0 + +%global updatever 302 +%global buildver b07 +# priority must be 7 digits in total. The expression is workarounding tip +%global priority 1800%{updatever} + +%global javaver 1.%{majorver}.0 + +# parametrized macros are order-sensitive +%global compatiblename %{name} +%global fullversion %{compatiblename}-%{version}-%{release} +# images stub +%global jdkimage j2sdk-image +# output dir stub +%define buildoutputdir() %{expand:build/jdk8.build%{?1}} +# we can copy the javadoc to not arched dir, or make it not noarch +%define uniquejavadocdir() %{expand:%{fullversion}%{?1}} +# main id and dir of this jdk +%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}} + +%global _privatelibs libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.* +%global _publiclibs libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.* + +%global __provides_exclude ^(%{_privatelibs})$ +%global __requires_exclude ^(%{_privatelibs})$ +# Never generate lib-style provides/requires for slowdebug packages +%global __provides_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$ +%global __requires_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$ + +%global etcjavasubdir %{_sysconfdir}/java/java-%{javaver}-%{origin} +%define etcjavadir() %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}} + +# Standard JPackage directories and symbolic links. +%define sdkdir() %{expand:%{uniquesuffix -- %{?1}}} +%define jrelnk() %{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}} + +%define jredir() %{expand:%{sdkdir -- %{?1}}/jre} +%define sdkbindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin} +%define jrebindir() %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin} + +%global rpm_state_dir %{_localstatedir}/lib/rpm-state/ + +%if %{with_systemtap} +# Where to install systemtap tapset (links) +# We would like these to be in a package specific sub-dir, +# but currently systemtap doesn't support that, so we have to +# use the root tapset dir for now. To distinguish between 64 +# and 32 bit architectures we place the tapsets under the arch +# specific dir (note that systemtap will only pickup the tapset +# for the primary arch for now). Systemtap uses the machine name +# aka target_cpu as architecture specific directory name. +%global tapsetroot /usr/share/systemtap +%global tapsetdirttapset %{tapsetroot}/tapset/ +%global tapsetdir %{tapsetdirttapset}/%{stapinstall} +%endif + +# not-duplicated scriptlets for normal/debug packages +%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + +%define post_script() %{expand: +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +exit 0 +} + +%define post_headless() %{expand: +PRIORITY=%{priority} +if [ "%{?1}" == %{debug_suffix} ]; then + let PRIORITY=PRIORITY-1 +fi + +ext=.gz +alternatives \\ + --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{name}.%{_arch} \\ + --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\ + --slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\ + --slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\ + --slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \\ + --slave %{_bindir}/pack200 pack200 %{jrebindir -- %{?1}}/pack200 \\ + --slave %{_bindir}/rmid rmid %{jrebindir -- %{?1}}/rmid \\ + --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \\ + --slave %{_bindir}/servertool servertool %{jrebindir -- %{?1}}/servertool \\ + --slave %{_bindir}/tnameserv tnameserv %{jrebindir -- %{?1}}/tnameserv \\ + --slave %{_bindir}/policytool policytool %{jrebindir -- %{?1}}/policytool \\ + --slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \\ + --slave %{_mandir}/man1/java.1$ext java.1$ext \\ + %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\ + %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\ + %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\ + %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\ + %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\ + %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\ + %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\ + %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\ + %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\ + %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\ + %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext + +for X in %{origin} %{javaver} ; do + alternatives --install %{_jvmdir}/jre-"$X" jre_"$X" %{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch} +done + +update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch} + +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +# see pretrans where this file is declared +# also see that pretrans is only for non-debug +if [ ! "%{?1}" == %{debug_suffix} ]; then + if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then + sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch} %{_jvmdir}/%{sdkdir -- %{?1}} + fi +fi + +exit 0 +} + +%define postun_script() %{expand: +update-desktop-database %{_datadir}/applications &> /dev/null || : +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + %{update_desktop_icons} +fi +exit 0 +} + +%define postun_headless() %{expand: + alternatives --remove java %{jrebindir -- %{?1}}/java + alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}} + alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}} + alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} +} + +%define posttrans_script() %{expand: +%{update_desktop_icons} +} + +%define post_devel() %{expand: + +PRIORITY=%{priority} +if [ "%{?1}" == %{debug_suffix} ]; then + let PRIORITY=PRIORITY-1 +fi + +ext=.gz +alternatives \\ + --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family %{name}.%{_arch} \\ + --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\ + --slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\ + --slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\ + --slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \\ + --slave %{_bindir}/hsdb hsdb %{sdkbindir -- %{?1}}/hsdb \\ + --slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \\ + --slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \\ + --slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\ + --slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \\ + --slave %{_bindir}/javah javah %{sdkbindir -- %{?1}}/javah \\ + --slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \\ + --slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\ + --slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\ + --slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\ + --slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\ +%ifarch %{jfr_arches} + --slave %{_bindir}/jfr jfr %{sdkbindir -- %{?1}}/jfr \\ +%endif + --slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\ + --slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\ + --slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\ + --slave %{_bindir}/jps jps %{sdkbindir -- %{?1}}/jps \\ + --slave %{_bindir}/jrunscript jrunscript %{sdkbindir -- %{?1}}/jrunscript \\ + --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir -- %{?1}}/jsadebugd \\ + --slave %{_bindir}/jstack jstack %{sdkbindir -- %{?1}}/jstack \\ + --slave %{_bindir}/jstat jstat %{sdkbindir -- %{?1}}/jstat \\ + --slave %{_bindir}/jstatd jstatd %{sdkbindir -- %{?1}}/jstatd \\ + --slave %{_bindir}/native2ascii native2ascii %{sdkbindir -- %{?1}}/native2ascii \\ + --slave %{_bindir}/rmic rmic %{sdkbindir -- %{?1}}/rmic \\ + --slave %{_bindir}/schemagen schemagen %{sdkbindir -- %{?1}}/schemagen \\ + --slave %{_bindir}/serialver serialver %{sdkbindir -- %{?1}}/serialver \\ + --slave %{_bindir}/wsgen wsgen %{sdkbindir -- %{?1}}/wsgen \\ + --slave %{_bindir}/wsimport wsimport %{sdkbindir -- %{?1}}/wsimport \\ + --slave %{_bindir}/xjc xjc %{sdkbindir -- %{?1}}/xjc \\ + --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\ + %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\ + %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\ + %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\ + %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\ + %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\ + %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\ + %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/javah.1$ext javah.1$ext \\ + %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\ + %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\ + %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\ + %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\ + %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\ + %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\ + %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\ + %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\ + %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\ + %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\ + %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\ + %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\ + %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\ + %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\ + %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\ + %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\ + %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\ + %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\ + %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\ + %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\ + %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1$ext \\ + --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\ + %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext + +for X in %{origin} %{javaver} ; do + alternatives \\ + --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{name}.%{_arch} +done + +update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{name}.%{_arch} + +update-desktop-database %{_datadir}/applications &> /dev/null || : +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +exit 0 +} + +%define postun_devel() %{expand: + alternatives --remove javac %{sdkbindir -- %{?1}}/javac + alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} + alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}} + alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} + +update-desktop-database %{_datadir}/applications &> /dev/null || : + +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + %{update_desktop_icons} +fi +exit 0 +} + +%define posttrans_devel() %{expand: +%{update_desktop_icons} +} + +%define post_javadoc() %{expand: + +PRIORITY=%{priority} +if [ "%{?1}" == %{debug_suffix} ]; then + let PRIORITY=PRIORITY-1 +fi + +alternatives \\ + --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api \\ + $PRIORITY --family %{name} +exit 0 +} + +%define postun_javadoc() %{expand: + alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api +exit 0 +} + +%define post_javadoc_zip() %{expand: + +PRIORITY=%{priority} +if [ "%{?1}" == %{debug_suffix} ]; then + let PRIORITY=PRIORITY-1 +fi + +alternatives \\ + --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip \\ + $PRIORITY --family %{name} +exit 0 +} + +%define postun_javadoc_zip() %{expand: + alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip +exit 0 +} + + +%define files_jre() %{expand: +%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png +%{_datadir}/applications/*policytool%{?1}.desktop +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjsoundalsa.so +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libsplashscreen.so +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so +%{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool +} + + +%define files_jre_headless() %{expand: +%defattr(-,root,root,-) +%dir %{_sysconfdir}/.java/.systemPrefs +%dir %{_sysconfdir}/.java +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/ASSEMBLY_EXCEPTION +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/THIRD_PARTY_README +%dir %{_jvmdir}/%{sdkdir -- %{?1}} +%{_jvmdir}/%{jrelnk -- %{?1}} +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts +%dir %{_jvmdir}/%{jredir -- %{?1}} +%dir %{_jvmdir}/%{jredir -- %{?1}}/bin +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib +%{_jvmdir}/%{jredir -- %{?1}}/bin/java +%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs +%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool +%{_jvmdir}/%{jredir -- %{?1}}/bin/orbd +%{_jvmdir}/%{jredir -- %{?1}}/bin/pack200 +%{_jvmdir}/%{jredir -- %{?1}}/bin/rmid +%{_jvmdir}/%{jredir -- %{?1}}/bin/rmiregistry +%{_jvmdir}/%{jredir -- %{?1}}/bin/servertool +%{_jvmdir}/%{jredir -- %{?1}}/bin/tnameserv +%{_jvmdir}/%{jredir -- %{?1}}/bin/unpack200 +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/ +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/ +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/ +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/local_policy.jar +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.policy +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.security +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/blacklisted.certs +%config(noreplace) %{etcjavadir -- %{?1}}/lib/logging.properties +%config(noreplace) %{etcjavadir -- %{?1}}/lib/calendars.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/local_policy.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.policy +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.security +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/blacklisted.certs +%{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties +%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1* +%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg +%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg +%ifarch %{jit_arches} +%attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/classes.jsa +%attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/classes.jsa +%endif +%dir %{etcjavasubdir} +%dir %{etcjavadir -- %{?1}} +%dir %{etcjavadir -- %{?1}}/lib +%dir %{etcjavadir -- %{?1}}/lib/security +%{etcjavadir -- %{?1}}/lib/security/cacerts +%dir %{etcjavadir -- %{?1}}/lib/security/policy +%dir %{etcjavadir -- %{?1}}/lib/security/policy/limited +%dir %{etcjavadir -- %{?1}}/lib/security/policy/unlimited +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/ +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/ +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall} +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2gss.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pcsc.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pkcs11.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjpeg.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjdwp.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsdt.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsig.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsound.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/liblcms.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmanagement.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmlib_image.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so +%ifarch %{aarch64} +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2kae.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/kaeprovider.conf +%endif +%ifarch %{sa_arches} +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so +%endif +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libzip.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/charsets.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/classlist +%{_jvmdir}/%{jredir -- %{?1}}/lib/content-types.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/currency.data +%{_jvmdir}/%{jredir -- %{?1}}/lib/flavormap.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/hijrah-config-umalqura.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors/* +%{_jvmdir}/%{jredir -- %{?1}}/lib/jce.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/jexec +%{_jvmdir}/%{jredir -- %{?1}}/lib/jsse.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/jvm.hprof.txt +%{_jvmdir}/%{jredir -- %{?1}}/lib/meta-index +%{_jvmdir}/%{jredir -- %{?1}}/lib/net.properties +%config(noreplace) %{etcjavadir -- %{?1}}/lib/net.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/psfont.properties.ja +%{_jvmdir}/%{jredir -- %{?1}}/lib/psfontj2d.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/resources.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/rt.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/sound.properties +%{_jvmdir}/%{jredir -- %{?1}}/lib/tzdb.dat +%{_jvmdir}/%{jredir -- %{?1}}/lib/management-agent.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/management/* +%{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/* +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/cldrdata.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/dnsns.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/jaccess.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/localedata.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/meta-index +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/nashorn.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunec.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar +%ifarch %{aarch64} +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/kae_openssl.jar +%endif +%ifarch %{jfr_arches} +%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/default.jfc +%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/profile.jfc +%endif + +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/management +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/cmm +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/ext +%ifarch %{jfr_arches} +%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr +%endif +} + +%define files_devel() %{expand: +%defattr(-,root,root,-) +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/ASSEMBLY_EXCEPTION +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/LICENSE +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/THIRD_PARTY_README +%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin +%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include +%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/appletviewer +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/clhsdb +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/extcheck +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/hsdb +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/idlj +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javac +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javadoc +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javah +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javap +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java-rmi.cgi +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jcmd +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps +%ifarch %{jfr_arches} +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jfr +%endif +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jhat +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jinfo +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jjs +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jmap +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jps +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jrunscript +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jsadebugd +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstack +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstat +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstatd +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/keytool +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/native2ascii +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/orbd +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/pack200 +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/policytool +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmic +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmid +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmiregistry +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/schemagen +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/serialver +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/servertool +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/tnameserv +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/unpack200 +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsgen +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsimport +%{_jvmdir}/%{sdkdir -- %{?1}}/bin/xjc +%{_jvmdir}/%{sdkdir -- %{?1}}/include/* +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall} +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym +%if %{with_systemtap} +%{_jvmdir}/%{sdkdir -- %{?1}}/tapset +%endif +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl +%ifarch %{sa_arches} +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar +%endif +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec +%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar +%{_datadir}/applications/*jconsole%{?1}.desktop +%{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1* +%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1* +%if %{with_systemtap} +%dir %{tapsetroot} +%dir %{tapsetdirttapset} +%dir %{tapsetdir} +%{tapsetdir}/*%{_arch}%{?1}.stp +%endif +} + +%define files_demo() %{expand: +%defattr(-,root,root,-) +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE +} + +%define files_src() %{expand: +%defattr(-,root,root,-) +%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip +} + +%define files_javadoc() %{expand: +%defattr(-,root,root,-) +%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}} +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE +} + +%define files_javadoc_zip() %{expand: +%defattr(-,root,root,-) +%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip +%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE +} + +%define files_accessibility() %{expand: +%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libatk-wrapper.so +%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/java-atk-wrapper.jar +%{_jvmdir}/%{jredir -- %{?1}}/lib/accessibility.properties +} + +# not-duplicated requires/provides/obsoletes for normal/debug packages +%define java_rpo() %{expand: +Requires: fontconfig%{?_isa} +Requires: xorg-x11-fonts-Type1 +# Require libXcomposite explicitly since it's only dynamically loaded +# at runtime. Fixes screenshot issues. See JDK-8150954. +Requires: libXcomposite%{?_isa} +# Requires rest of java +Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +# for java-X-openjdk package's desktop binding +Recommends: gtk2%{?_isa} + +Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release} + +# Standard JPackage base provides +Provides: jre%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_headless_rpo() %{expand: +# Require /etc/pki/java/cacerts +Requires: ca-certificates +# Require javapackages-filesystem for ownership of /usr/lib/jvm/ +Requires: javapackages-filesystem +# Require zone-info data provided by tzdata-java sub-package +Requires: tzdata-java >= 2020a +# libsctp.so.1 is being `dlopen`ed on demand +Requires: lksctp-tools%{?_isa} +# there is a need to depend on the exact version of NSS +Requires: nss%{?_isa} %{NSS_BUILDTIME_VERSION} +Requires: nss-softokn%{?_isa} %{NSSSOFTOKN_BUILDTIME_VERSION} +# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it, +# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be +# considered as regression +Requires: copy-jdk-configs >= 3.3 +OrderWithRequires: copy-jdk-configs +# for printing support +Requires: cups-libs +# Post requires alternatives to install tool alternatives +Requires(post): %{_sbindir}/alternatives +# in version 1.7 and higher for --family switch +Requires(post): chkconfig >= 1.7 +# Postun requires alternatives to uninstall tool alternatives +Requires(postun): %{_sbindir}/alternatives +# in version 1.7 and higher for --family switch +Requires(postun): chkconfig >= 1.7 +# for optional support of kernel stream control, card reader and printing bindings +Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}, cups + +# Standard JPackage base provides +Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} +Provides: java-headless%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_devel_rpo() %{expand: +# Requires base package +Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +# Post requires alternatives to install tool alternatives +Requires(post): %{_sbindir}/alternatives +# Postun requires alternatives to uninstall tool alternatives +Requires(postun): %{_sbindir}/alternatives + +# Standard JPackage devel provides +Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release} +Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}-%{release} +Provides: java-devel%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_demo_rpo() %{expand: +Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} + +Provides: java-demo%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_javadoc_rpo() %{expand: +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +# Post requires alternatives to install javadoc alternative +Requires(post): %{_sbindir}/alternatives +# Postun requires alternatives to uninstall javadoc alternative +Requires(postun): %{_sbindir}/alternatives + +# Standard JPackage javadoc provides +Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_src_rpo() %{expand: +Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} + +# Standard JPackage sources provides +Provides: java-src%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release} +} + +%define java_accessibility_rpo() %{expand: +Requires: java-atk-wrapper%{?_isa} +Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} + +Provides: java-accessibility%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-accessibility%{?1} = %{epoch}:%{version}-%{release} +Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release} + +} + +# Prevent brp-java-repack-jars from being run +%global __jar_repack 0 + +Name: java-%{javaver}-%{origin} +Version: %{javaver}.%{updatever}.%{buildver} +Release: 5 +# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons +# and this change was brought into RHEL-4. java-1.5.0-ibm packages +# also included the epoch in their virtual provides. This created a +# situation where in-the-wild java-1.5.0-ibm packages provided "java = +# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is +# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be +# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in +# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual +# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". + +Epoch: 1 +Summary: %{origin_nice} Runtime Environment %{majorver} +Group: Development/Languages + +# HotSpot code is licensed under GPLv2 +# JDK library code is licensed under GPLv2 with the Classpath exception +# The Apache license is used in code taken from Apache projects (primarily JAXP & JAXWS) +# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C Software License +# The JSR166 concurrency code is in the public domain +# The BSD and MIT licenses are used for a number of third-party libraries (see THIRD_PARTY_README) +# The OpenJDK source tree includes the JPEG library (IJG), zlib & libpng (zlib), giflib and LCMS (MIT) +# The test code includes copies of NSS under the Mozilla Public License v2.0 +# The PCSClite headers are under a BSD with advertising license +# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any later version +License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib +URL: http://openjdk.java.net/ + +Source0: %{full_revision}.tar.xz + +# Custom README for -src subpackage +Source2: README.md + +# Use 'icedtea_sync.sh' to update the following +# They are based on code contained in the IcedTea project (3.x). +# Systemtap tapsets. Zipped up to keep it small. +Source8: tapsets-icedtea-%{icedteaver}.tar.xz + +# Desktop files. Adapted from IcedTea +Source9: jconsole.desktop.in +Source10: policytool.desktop.in + +# nss configuration file +Source11: nss.cfg.in + + +# Ensure we aren't using the limited crypto policy +Source13: TestCryptoLevel.java + +# Ensure ECDSA is working +Source14: TestECDSA.java + +Source20: repackReproduciblePolycies.sh + +Patch8: replace-vector-to-improve-performance-of-xml.validat.patch +Patch10: 8221658.patch +Patch18: fix-vendor-info.patch +Patch21: 8202952.patch +Patch25: 8196485.patch +Patch26: disable-UseLSE-on-ARMv8.1-by-default.patch +Patch27: 8157570.patch +Patch28: 8194246.patch +Patch30: 8191483.patch +Patch31: 8141356.patch +Patch33: 8166253.patch +Patch35: 8186042.patch +Patch36: 8060463.patch +Patch37: 8131600.patch +Patch38: 8138971.patch +Patch41: 8203699.patch +Patch47: 8166197.patch +Patch50: 8158946.patch +Patch51: add-with-company-name-option.patch +Patch57: 8031085.patch +Patch58: Reduce-the-probability-of-the-crash-related-to-ciObj.patch +Patch62: 8165857.patch +Patch63: 8033552.patch +Patch67: 8165860.patch +Patch68: 8194154.patch +Patch70: 8164948.patch +Patch72: inline-optimize-for-aarch64.patch + +# 8u242 +Patch75: Add-ability-to-configure-third-port-for-remote-JMX.patch +Patch83: 8204947.patch +Patch85: 8139041.patch + +# 8u252 +Patch86: 6858051-Create-GC-worker-threads-dynamically.patch +Patch87: 6858051-Add-a-switch-for-the-dynamic-thread-related-log.patch +Patch88: dismiss-warnings-in-GCC-8.X.patch + +# 8u262 +Patch89: 8144993.patch +Patch90: 8223504.patch +Patch91: add-vm-option-BoxTypeCachedMax-for-Integer-and-Long-cache.patch +Patch92: 8080289-8040213-8189067-move-the-store-out-of-the-loop.patch +Patch94: 8182397.patch +Patch95: 8205921.patch + +# 8u265 +Patch96: fix-Long-cache-range-and-remove-VM-option-java.lang.IntegerCache.high-by-default.patch +Patch97: leaf-optimize-in-ParallelScanvageGC.patch +Patch102: fix-LongCache-s-range-when-BoxTypeCachedMax-number-is-bigger-than-Integer.MAX_VALUE.patch +Patch103: Ddot-intrinsic-implement.patch +Patch104: 8234003.patch +Patch105: 8220159.patch +Patch106: fast-serializer-jdk8.patch +Patch109: Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch +Patch112: 8048210-8056152.patch +Patch113: 8160425.patch +Patch114: 8181503.patch +Patch115: 8243670.patch +Patch118: Fix-LineBuffer-vappend-when-buffer-too-small.patch +Patch121: Remove-unused-GenericTaskQueueSet-T-F-tasks.patch +Patch122: optimize-jmap-F-dump-xxx.patch +Patch123: recreate-.java_pid-file-when-deleted-for-attach-mechanism.patch +Patch124: Support-Git-commit-ID-in-the-SOURCE-field-of-the-release.patch +Patch125: Extend-CDS-to-support-app-class-metadata-sharing.patch +Patch127: add-DumpSharedSpace-guarantee-when-create-anonymous-classes.patch + +# 8u272 +Patch133: 8160369.patch +Patch134: PS-GC-adding-acquire_size-method-for-PSParallelCompa.patch +Patch138: add-appcds-file-lock.patch +Patch139: G1-memory-uncommit.patch +Patch140: 8015927.patch +Patch141: 8040327.patch +Patch142: 8207160.patch +Patch144: add-appcds-test-case.patch + +# 8u282 +Patch146: 8168926.patch +Patch147: 8215047.patch +Patch148: 8237894.patch +Patch149: Remove-the-parentheses-around-company-name.patch +Patch151: kae-phase1.patch +Patch153: initialized-value-should-be-0-in-perfInit.patch +Patch154: 8254078-DataOutputStream-is-very-slow-post-disabling.patch +Patch155: Use-atomic-operation-when-G1Uncommit.patch +Patch157: 8140597-Postpone-the-initial-mark-request-until-the-.patch +Patch158: Use-Mutex-when-G1Uncommit.patch +Patch159: C1-typos-repair.patch +Patch160: 8214418-half-closed-SSLEngine-status-may-cause-appli.patch +Patch162: 8214535-support-Jmap-parallel.patch +Patch163: Fixed-a-copyright-writing-problem.patch +Patch164: fix-arguments.cpp-error-C2131-on-windows.patch +Patch166: add-missing-test-case.patch +Patch167: fix-BoxTypeCachedMax-build-failure-when-jvm-variants.patch +Patch168: fix-windows-compile-fail.patch +Patch169: Code-style-fix.patch +Patch170: kae-phase2.patch +Patch171: add-kaeEngine-to-rsa.patch + +# 8u292 +Patch172: 8031818.patch +Patch173: 8193518.patch +Patch174: Disable-ddot-intrinsic-on-CPUs-that-not-suppo.patch +Patch175: add-appcds-jtreg-test-case-UnusedCPDuringDump.patch +Patch176: add-safe-compilation-flags.patch +Patch177: downgrade-symver-of-memcpy-GLIBC.patch +Patch178: fix-log-bug-enhance-aes-hmac-performance.patch +Patch179: keep-the-binary-equal.patch +Patch180: link-option-use-rpath-instead-of-runpath.patch +Patch181: remove-gnu-debuglink-when-using-enable-debug-.patch +Patch183: revert-windows-bugfix.patch +Patch184: set-vm.vendor-by-configure.patch +Patch185: update-cacerts-and-VerifyCACerts.java-test.patch +Patch186: update-to-keep-same-with-master.patch +Patch187: 8182036.patch +Patch188: 8247691_incorrect_handling_of_VM_exceptions_in_C1_deopt_stub.patch +Patch189: 8266187_Memory_leak_in_appendBootClassPath.patch +Patch192: add_kae_implementation_add_default_conf_file.patch +Patch193: improve_algorithmConstraints_checkAlgorithm_performance.patch +Patch194: modify_the_default_iteration_time_and_forks_in_the_JMH_of_KAEProvider.patch +Patch195: support_CMS_parallel_inspection.patch +Patch196: g1gc-numa-aware-Implementation.patch +Patch197: implementation_of_Blas_hotspot_function_in_Intrinsics.patch +Patch198: fix_G1GC_memory_leak_in_numa.patch +Patch200: Fix-ECDH-and-DH-memory-usage.patch +Patch201: fix_run_SPECjvm2008_failed_on_32_bit_system.patch +Patch202: Fix-RSACipher-memory-usage.patch + +# 8u302 +Patch203: fix-lock-ordering-issue-when-calling-JVMTI-GetLoaded.patch +Patch204: 8069191.patch +Patch205: fix_g1uncommit_ygc_expand_crash.patch +Patch206: 8167014-jdeps-failed-with-Missing-message-warn-skippen-entry.patch +Patch207: fix_bug_in_keypairgenerator.patch +Patch208: C1-assert-is_virtual-failed-type-check.patch +Patch209: 8197387-Run-the-jcmd-tool-as-the-root-user-to-access.patch +Patch210: create-jfr-dump-file-with-pid-or-timestamp-if-specif.patch +Patch211: 8268453-sun-security-pkcs12-EmptyPassword.java-fails.patch +Patch212: enhance-the-TimeZone-s-path-solution-on-Euler.patch +Patch213: fix-wrong-commitID-in-release-file.patch +Patch214: fix-appcds-s-option-AppCDSLockFile.patch +Patch215: PS-introduce-UsePSRelaxedForwardee-to-enable-using-r.patch +Patch216: Parallel-Full-GC-for-G1.patch +Patch217: 8202142-jfr-event-io-TestInstrumentation-is-unstable.patch +Patch218: 8143251-Thread-suspend-on-VM_G1IncCollectionPause-do.patch +Patch219: G1Uncommit-Introduce-G1PeriodGCNotRetry-control-whet.patch +Patch220: JDK-debug-version-crash-when-using-AppCDS.patch +Patch221: 8183543-Aarch64-C2-compilation-often-fails-with-fail--last.patch + +############################################# +# +# Upstreamable patches +# +# This section includes patches which need to +# be reviewed & pushed to the current development +# tree of OpenJDK. +############################################# +# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts) +# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts +Patch539: pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch + +############################################# +# +# Patches which need backporting to 8u +# +# This section includes patches which have +# been pushed upstream to the latest OpenJDK +# development tree, but need to be backported +# to OpenJDK 8u. +############################################# +# S8154313: Generated javadoc scattered all over the place +# 8035341: Allow using a system installed libpng +# Patch202: jdk8035341-allow_using_system_installed_libpng.patch +# 8042159: Allow using a system-installed lcms2 +# Patch203: jdk8042159-allow_using_system_installed_lcms2.patch + +############################################# +# +# Patches ineligible for 8u +# +# This section includes patches which are present +# upstream, but ineligible for upstream 8u backport. +############################################# +# 8043805: Allow using a system-installed libjpeg +# Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch + +############################################# +# +# Non-OpenJDK fixes +# +# This section includes patches to code other +# that from OpenJDK. +############################################# +Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch + +############################################# +# +# Dependencies +# +############################################# + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: alsa-lib-devel +BuildRequires: binutils +BuildRequires: cups-devel +BuildRequires: desktop-file-utils +# elfutils only are OK for build without AOT +BuildRequires: elfutils-devel +BuildRequires: fontconfig-devel +BuildRequires: freetype-devel +BuildRequires: giflib-devel +BuildRequires: gcc-c++ +BuildRequires: gdb +BuildRequires: lcms2-devel +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: libxslt +BuildRequires: libX11-devel +BuildRequires: libXext-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libXrender-devel +BuildRequires: libXt-devel +BuildRequires: libXtst-devel +# Requirements for setting up the nss.cfg +BuildRequires: nss-devel +BuildRequires: pkgconfig +BuildRequires: xorg-x11-proto-devel +BuildRequires: zip +BuildRequires: unzip +BuildRequires: openssl-devel + +BuildRequires: java-1.8.0-openjdk-devel + +BuildRequires: tzdata-java >= 2015d +# Earlier versions have a bug in tree vectorization on PPC +BuildRequires: gcc >= 4.8.3-8 +# Build requirements for SunEC system NSS support +BuildRequires: nss-softokn-freebl-devel >= 3.16.1 + +%if %{with_systemtap} +BuildRequires: systemtap-sdt-devel +%endif + +# this is always built, also during debug-only build +# when it is built in debug-only this package is just placeholder +%{java_rpo %{nil}} + +%description +The %{origin_nice} runtime environment %{majorver}. + +%if %{include_debug_build} +%package slowdebug +Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on} +Group: Development/Languages + +%{java_rpo -- %{debug_suffix_unquoted}} +%description slowdebug +The %{origin_nice} runtime environment %{majorver}. +%{debug_warning} +%endif + +%if %{include_normal_build} +%package headless +Summary: %{origin_nice} Headless Runtime Environment %{majorver} +Group: Development/Languages + +%{java_headless_rpo %{nil}} + +%description headless +The %{origin_nice} runtime environment %{majorver} without audio and video support. +%endif + +%if %{include_debug_build} +%package headless-slowdebug +Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on} +Group: Development/Languages + +%{java_headless_rpo -- %{debug_suffix_unquoted}} + +%description headless-slowdebug +The %{origin_nice} runtime environment %{majorver} without audio and video support. +%{debug_warning} +%endif + +%if %{include_normal_build} +%package devel +Summary: %{origin_nice} Development Environment %{majorver} +Group: Development/Tools + +%{java_devel_rpo %{nil}} + +%description devel +The %{origin_nice} development tools %{majorver}. +%endif + +%if %{include_debug_build} +%package devel-slowdebug +Summary: %{origin_nice} Development Environment %{majorver} %{debug_on} +Group: Development/Tools + +%{java_devel_rpo -- %{debug_suffix_unquoted}} + +%description devel-slowdebug +The %{origin_nice} development tools %{majorver}. +%{debug_warning} +%endif + +%if %{include_normal_build} +%package demo +Summary: %{origin_nice} Demos %{majorver} +Group: Development/Languages + +%{java_demo_rpo %{nil}} + +%description demo +The %{origin_nice} demos %{majorver}. +%endif + +%if %{include_debug_build} +%package demo-slowdebug +Summary: %{origin_nice} Demos %{majorver} %{debug_on} +Group: Development/Languages + +%{java_demo_rpo -- %{debug_suffix_unquoted}} + +%description demo-slowdebug +The %{origin_nice} demos %{majorver}. +%{debug_warning} +%endif + +%if %{include_normal_build} +%package src +Summary: %{origin_nice} Source Bundle %{majorver} +Group: Development/Languages + +%{java_src_rpo %{nil}} + +%description src +The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver} +class library source code for use by IDE indexers and debuggers. +%endif + +%if %{include_debug_build} +%package src-slowdebug +Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug} +Group: Development/Languages + +%{java_src_rpo -- %{debug_suffix_unquoted}} + +%description src-slowdebug +The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice} %{majorver} + class library source code for use by IDE indexers and debuggers. Debugging %{for_debug}. +%endif + +%if %{include_normal_build} +%package javadoc +Summary: %{origin_nice} %{majorver} API documentation +Group: Documentation +Requires: javapackages-filesystem +Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1 +BuildArch: noarch + +%{java_javadoc_rpo %{nil}} + +%description javadoc +The %{origin_nice} %{majorver} API documentation. +%endif + +%if %{include_normal_build} +%package javadoc-zip +Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive +Requires: javapackages-filesystem +Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1 +BuildArch: noarch + +%{java_javadoc_rpo %{nil}} + +%description javadoc-zip +The %{origin_nice} %{majorver} API documentation compressed in a single archive. +%endif + +%if %{include_normal_build} +%package accessibility +Summary: %{origin_nice} %{majorver} accessibility connector + +%{java_accessibility_rpo %{nil}} + +%description accessibility +Enables accessibility support in %{origin_nice} %{majorver} by using java-atk-wrapper. This allows +compatible at-spi2 based accessibility programs to work for AWT and Swing-based +programs. + +Please note, the java-atk-wrapper is still in beta, and %{origin_nice} %{majorver} itself is still +being tuned to be working with accessibility features. There are known issues +with accessibility on, so please do not install this package unless you really +need to. +%endif + +%if %{include_debug_build} +%package accessibility-slowdebug +Summary: %{origin_nice} %{majorver} accessibility connector %{for_debug} + +%{java_accessibility_rpo -- %{debug_suffix_unquoted}} + +%description accessibility-slowdebug +See normal java-%{version}-openjdk-accessibility description. +%endif + +%if %{with_openjfx_binding} +%package openjfx +Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX integration to %{name} +Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} +Requires: openjfx8%{?_isa} +Provides: javafx = %{epoch}:%{version}-%{release} +%description openjfx +Set of links from OpenJDK (jre) to OpenJFX + +%package openjfx-devel +Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks finishing Java FX integration to %{name}-devel +Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} +Requires: openjfx8-devel%{?_isa} +Provides: javafx-devel = %{epoch}:%{version}-%{release} +%description openjfx-devel +Set of links from OpenJDK (sdk) to OpenJFX + +%if %{include_debug_build} +%package openjfx-slowdebug +Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing Java FX integration to %{name}-slowdebug +Requires: %{name}-slowdebug%{?_isa} = %{epoch}:%{version}-%{release} +Requires: openjfx8%{?_isa} +Provides: javafx-slowdebug = %{epoch}:%{version}-%{release} +%description openjfx-slowdebug +Set of links from OpenJDK-slowdebug (jre) to normal OpenJFX. OpenJFX do not support debug buuilds of itself + +%package openjfx-devel-slowdebug +Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds symliks finishing Java FX integration to %{name}-devel-slowdebug +Requires: %{name}-devel-slowdebug%{?_isa} = %{epoch}:%{version}-%{release} +Requires: openjfx8-devel%{?_isa} +Provides: javafx-devel-slowdebug = %{epoch}:%{version}-%{release} +%description openjfx-devel-slowdebug +Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not support debug buuilds of itself +%endif +%endif + +%prep + +# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-( +%if 0%{?stapinstall:1} + echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}" +%else + %{error:Unrecognised architecture %{_target_cpu}} +%endif + +if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then + echo "include_normal_build is %{include_normal_build}" +else + echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for yes or 0 for no" + exit 11 +fi +if [ %{include_debug_build} -eq 0 -o %{include_debug_build} -eq 1 ] ; then + echo "include_debug_build is %{include_debug_build}" +else + echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes or 0 for no" + exit 12 +fi +if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then + echo "You have disabled both include_debug_build and include_normal_build. That is a no go." + exit 13 +fi +%setup -q -c -n %{uniquesuffix ""} -T -a 0 +prioritylength=`expr length %{priority}` +if [ $prioritylength -ne 7 ] ; then + echo "priority must be 7 digits in total, violated" + exit 14 +fi +# For old patches +ln -s %{top_level_dir_name} jdk8 + +pushd %{top_level_dir_name} +# OpenJDK patches + +%patch8 -p1 +%patch10 -p1 +%patch18 -p1 +%patch21 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch28 -p1 +%patch30 -p1 +%patch31 -p1 +%patch33 -p1 +%patch35 -p1 +%patch36 -p1 +%patch37 -p1 +%patch38 -p1 +%patch41 -p1 +%patch47 -p1 +%patch50 -p1 +%patch51 -p1 +%patch57 -p1 +%patch58 -p1 +%patch62 -p1 +%patch63 -p1 +%patch67 -p1 +%patch68 -p1 +%patch70 -p1 +%patch72 -p1 +%patch75 -p1 +%patch83 -p1 +%patch85 -p1 +%patch86 -p1 +%patch87 -p1 +%patch88 -p1 +%patch89 -p1 +%patch90 -p1 +%patch91 -p1 +%patch92 -p1 +%patch94 -p1 +%patch95 -p1 +%patch96 -p1 +%patch97 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%patch105 -p1 +%patch106 -p1 +%patch109 -p1 +%patch112 -p1 +%patch113 -p1 +%patch114 -p1 +%patch115 -p1 +%patch118 -p1 +%patch121 -p1 +%patch122 -p1 +%patch123 -p1 +%patch124 -p1 +%patch125 -p1 +%patch127 -p1 +%patch133 -p1 +%patch134 -p1 +%patch138 -p1 +%patch139 -p1 +%patch140 -p1 +%patch141 -p1 +%patch142 -p1 +%patch144 -p1 +%patch146 -p1 +%patch147 -p1 +%patch148 -p1 +%patch149 -p1 +%patch151 -p1 +%patch153 -p1 +%patch154 -p1 +%patch155 -p1 +%patch157 -p1 +%patch158 -p1 +%patch159 -p1 +%patch160 -p1 +%patch162 -p1 +%patch163 -p1 +%patch164 -p1 +%patch166 -p1 +%patch167 -p1 +%patch168 -p1 +%patch169 -p1 +%patch170 -p1 +%patch171 -p1 +%patch172 -p1 +%patch173 -p1 +%patch174 -p1 +%patch175 -p1 +%patch176 -p1 +%patch177 -p1 +%patch178 -p1 +%patch179 -p1 +%patch180 -p1 +%patch181 -p1 +%patch183 -p1 +%patch184 -p1 +%patch185 -p1 +%patch186 -p1 +%patch187 -p1 +%patch188 -p1 +%patch189 -p1 +%patch192 -p1 +%patch194 -p1 +%patch195 -p1 +%patch196 -p1 +%patch197 -p1 +%patch198 -p1 +%patch200 -p1 +%patch201 -p1 +%patch202 -p1 +%patch203 -p1 +%patch204 -p1 +%patch205 -p1 +%patch206 -p1 +%patch207 -p1 +%patch208 -p1 +%patch209 -p1 +%patch210 -p1 +%patch211 -p1 +%patch212 -p1 +%patch213 -p1 +%patch214 -p1 +%patch215 -p1 +%patch216 -p1 +%patch217 -p1 +%patch218 -p1 +%patch219 -p1 +%patch220 -p1 +%patch221 -p1 +popd + +# System library fixes +# %patch201 +# %patch202 +# %patch203 + +# RPM-only fixes +# %patch1000 + +# Extract systemtap tapsets +%if %{with_systemtap} +tar --strip-components=1 -x -I xz -f %{SOURCE8} +%if %{include_debug_build} +cp -r tapset tapset%{debug_suffix} +%endif + +for suffix in %{build_loop} ; do + for file in "tapset"$suffix/*.in; do + OUTPUT_FILE=`echo $file | sed -e "s:\.stp\.in$:-%{version}-%{release}.%{_arch}.stp:g"` + sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/jre/lib/%{archinstall}/server/libjvm.so:g" $file > $file.1 +# TODO find out which architectures other than i686 have a client vm +%ifarch %{ix86} + sed -e "s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/jre/lib/%{archinstall}/client/libjvm.so:g" $file.1 > $OUTPUT_FILE +%else + sed -e "/@ABS_CLIENT_LIBJVM_SO@/d" $file.1 > $OUTPUT_FILE +%endif + sed -i -e "s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g" $OUTPUT_FILE + sed -i -e "s:@INSTALL_ARCH_DIR@:%{archinstall}:g" $OUTPUT_FILE + sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g" $OUTPUT_FILE + done +done +# systemtap tapsets ends +%endif + +# Prepare desktop files +# The _X_ syntax indicates variables that are replaced by make upstream +# The @X@ syntax indicates variables that are replaced by configure upstream +for suffix in %{build_loop} ; do +for file in %{SOURCE9} %{SOURCE10} ; do + FILE=`basename $file | sed -e s:\.in$::g` + EXT="${FILE##*.}" + NAME="${FILE%.*}" + OUTPUT_FILE=$NAME$suffix.$EXT + sed -e "s:_SDKBINDIR_:%{sdkbindir -- $suffix}:g" $file > $OUTPUT_FILE + sed -i -e "s:_JREBINDIR_:%{jrebindir -- $suffix}:g" $OUTPUT_FILE + sed -i -e "s:@target_cpu@:%{_arch}:g" $OUTPUT_FILE + sed -i -e "s:@OPENJDK_VER@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE + sed -i -e "s:@JAVA_VER@:%{javaver}:g" $OUTPUT_FILE + sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE +done +done + +# Setup nss.cfg +sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg + + + +%build +# How many CPU's do we have? +export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) +export NUM_PROC=${NUM_PROC:-1} +%if 0%{?_smp_ncpus_max} +# Honor %%_smp_ncpus_max +[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max} +%endif + +%ifarch %{aarch64} +export ARCH_DATA_MODEL=64 +%endif + +# We use ourcppflags because the OpenJDK build seems to +# pass EXTRA_CFLAGS to the HotSpot C++ compiler... +EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon -fsigned-char" +EXTRA_CPP_FLAGS="%ourcppflags -Wno-error" + +EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa,--generate-missing-build-notes=yes" +export EXTRA_CFLAGS EXTRA_ASFLAGS + +for suffix in %{build_loop} ; do +(if [ "x$suffix" = "x" ] ; then + debugbuild=release +else + # change --something to something + debugbuild=`echo $suffix | sed "s/-//g"` +fi + +# Variable used in hs_err hook on build failures +top_srcdir_abs_path=$(pwd)/%{top_level_dir_name} + +mkdir -p %{buildoutputdir -- $suffix} +pushd %{buildoutputdir -- $suffix} + +bash ${top_srcdir_abs_path}/configure \ +%ifarch %{jfr_arches} + --enable-jfr \ +%endif + --with-native-debug-symbols=internal \ + --with-milestone="fcs" \ + --with-update-version=%{updatever} \ + --with-build-number=%{buildver} \ + --with-company-name="Bisheng" \ + --with-vendor-name="Bisheng" \ + --with-vendor-url="https://openeuler.org/" \ + --with-vendor-bug-url="https://gitee.com/src-openeuler/openjdk-1.8.0/issues/" \ + --with-vendor-vm-bug-url="https://gitee.com/src-openeuler/openjdk-1.8.0/issues/" \ + --with-debug-level=$debugbuild \ + --enable-unlimited-crypto \ + --with-zlib=system \ + --enable-kae=yes \ + --with-stdc++lib=dynamic \ + --with-extra-cflags="$EXTRA_CFLAGS" \ + --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \ + --with-extra-asflags="$EXTRA_ASFLAGS" \ + --with-extra-ldflags="%{ourldflags}" \ + --with-num-cores="$NUM_PROC" \ + --with-boot-jdk-jvmargs=-XX:-UsePerfData + +cat spec.gmk +cat hotspot-spec.gmk + +# Debug builds don't need same targets as release for +# build speed-up +maketargets="%{release_targets}" +if echo $debugbuild | grep -q "debug" ; then + maketargets="%{debug_targets}" +fi + +make JOBS=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) \ + JAVAC_FLAGS=-g \ + SCTP_WERROR= \ + ${maketargets} || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs cat && false ) + +# the build (erroneously) removes read permissions from some jars +# this is a regression in OpenJDK 7 (our compiler): +find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \; +chmod ugo+r images/%{jdkimage}/lib/ct.sym + +# remove redundant *diz and *debuginfo files +find images/%{jdkimage} -iname '*.diz' -exec rm {} \; +find images/%{jdkimage} -iname '*.debuginfo' -exec rm {} \; + +# Build screws up permissions on binaries +# https://bugs.openjdk.java.net/browse/JDK-8173610 +find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \; +find images/%{jdkimage}/bin/ -exec chmod +x {} \; + +popd >& /dev/null + +# Install nss.cfg right away as we will be using the JRE above +export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage} + +# Install nss.cfg right away as we will be using the JRE above +install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/ + +# Use system-wide tzdata +rm $JAVA_HOME/jre/lib/tzdb.dat +ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat + + +# build cycles +)& +done +wait + +%check + +# We test debug first as it will give better diagnostics on a crash +for suffix in %{rev_build_loop} ; do + +export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage} + +# Check unlimited policy has been used +$JAVA_HOME/bin/javac -d . %{SOURCE13} +$JAVA_HOME/bin/java TestCryptoLevel + +# Check ECC is working +$JAVA_HOME/bin/javac -d . %{SOURCE14} +$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||") + +# Check debug symbols are present and can identify code +find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0' lib +do + if [ -f "$lib" ] ; then + echo "Testing $lib for debug symbols" + # All these tests rely on RPM failing the build if the exit code of any set + # of piped commands is non-zero. + + # Test for .debug_* sections in the shared object. This is the main test + # Stripped objects will not contain these + eu-readelf -S "$lib" | grep "] .debug_" + test $(eu-readelf -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2 + + # Test FILE symbols. These will most likely be removed by anything that + # manipulates symbol tables because it's generally useless. So a nice test + # that nothing has messed with symbols + old_IFS="$IFS" + IFS=$'\n' + for line in $(eu-readelf -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT") + do + # We expect to see .cpp files, except for architectures like aarch64 and + # s390 where we expect .o and .oS files + echo "$line" | grep -E "ABS ((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx|o|oS))?$" + done + IFS="$old_IFS" + + # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking + if [ "`basename $lib`" = "libjvm.so" ]; then + eu-readelf -s "$lib" | \ + grep -E "00000000 0 FILE LOCAL DEFAULT ABS javaCalls.(cpp|o)$" + fi + + # Test that there are no .gnu_debuglink sections pointing to another + # debuginfo file. There shouldn't be any debuginfo files, so the link makes + # no sense either + eu-readelf -S "$lib" | grep 'gnu' + if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then + echo "bad .gnu_debuglink section." + eu-readelf -x .gnu_debuglink "$lib" + false + fi + fi +done + +# Make sure gdb can do a backtrace based on line numbers on libjvm.so +# javaCalls.cpp:58 should map to: +# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58 +# Using line number 1 might cause build problems. +gdb -q "$JAVA_HOME/bin/java" <> %{name}-demo.files"$suffix" +# Find documentation demo files. +find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \ + $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \ + -type f -o -type l | sort \ + | grep README \ + | sed 's|'$RPM_BUILD_ROOT'||' \ + | sed 's|^|%doc |' \ + >> %{name}-demo.files"$suffix" + +# Create links which leads to separately installed java-atk-bridge and allow configuration +# links points to java-atk-wrapper - an dependence + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall} + ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so + popd + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ext + ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar + popd + pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ + echo "#Config file to enable java-atk-wrapper" > accessibility.properties + echo "" >> accessibility.properties + echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties + echo "" >> accessibility.properties + popd + +# intentionally after all else, fx links with redirections on its own +%if %{with_openjfx_binding} + FXSDK_FILES=%{name}-openjfx-devel.files"$suffix" + FXJRE_FILES=%{name}-openjfx.files"$suffix" + echo -n "" > $FXJRE_FILES + echo -n "" > $FXSDK_FILES + for file in %{jfx_jre_libs} ; do + srcfile=%{jfx_jre_libs_dir}/$file + targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXJRE_FILES + done + for file in %{jfx_jre_native} ; do + srcfile=%{jfx_jre_native_dir}/$file + targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXJRE_FILES + done + for file in %{jfx_jre_exts} ; do + srcfile=%{jfx_jre_exts_dir}/$file + targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/ext/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXJRE_FILES + done + for file in %{jfx_sdk_libs} ; do + srcfile=%{jfx_sdk_libs_dir}/$file + targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/lib/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXSDK_FILES + done + for file in %{jfx_sdk_bins} ; do + srcfile=%{jfx_sdk_bins_dir}/$file + targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/bin/$file + ln -s $srcfile $RPM_BUILD_ROOT/$targetfile + echo $targetfile >> $FXSDK_FILES + done +%endif + +bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver} +touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/security/java.security + +# moving config files to /etc +mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/ +mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/ +for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar lib/security/policy/unlimited/local_policy.jar lib/security/policy/limited/US_export_policy.jar lib/security/policy/limited/local_policy.jar lib/security/java.policy lib/security/java.security lib/security/blacklisted.certs lib/logging.properties lib/calendars.properties lib/security/nss.cfg lib/net.properties ; do + mv $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file + ln -sf %{etcjavadir -- $suffix}/$file $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file +done + +# stabilize permissions +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 755 {} \; ; +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ; +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ; +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec chmod 644 {} \; ; +find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "THIRD_PARTY_README" -exec chmod 644 {} \; ; + +# end, dual install +done + +%if %{include_normal_build} +# intentionally only for non-debug +%pretrans headless -p +-- if copy-jdk-configs is in transaction, it installs in pretrans to temp +-- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction and so is +-- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends +-- whether copy-jdk-configs is installed or not. If so, then configs are copied +-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all +local posix = require "posix" +local debug = false + +SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua" +SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua" + +local stat1 = posix.stat(SOURCE1, "type"); +local stat2 = posix.stat(SOURCE2, "type"); + + if (stat1 ~= nil) then + if (debug) then + print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this one.") + end; + package.path = package.path .. ";" .. SOURCE1 +else + if (stat2 ~= nil) then + if (debug) then + print(SOURCE2 .." exists - copy-jdk-configs already installed and NOT in transaction. Using.") + end; + package.path = package.path .. ";" .. SOURCE2 + else + if (debug) then + print(SOURCE1 .." does NOT exists") + print(SOURCE2 .." does NOT exists") + print("No config files will be copied") + end + return + end +end +-- run content of included file with fake args +arg = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"} +require "copy_jdk_configs.lua" + +%post +%{post_script %{nil}} + +%post headless +%{post_headless %{nil}} + +%postun +%{postun_script %{nil}} + +%postun headless +%{postun_headless %{nil}} + +%posttrans +%{posttrans_script %{nil}} + +%post devel +%{post_devel %{nil}} + +%postun devel +%{postun_devel %{nil}} + +%posttrans devel +%{posttrans_devel %{nil}} + +%post javadoc +%{post_javadoc %{nil}} + +%postun javadoc +%{postun_javadoc %{nil}} + +%post javadoc-zip +%{post_javadoc_zip %{nil}} + +%postun javadoc-zip +%{postun_javadoc_zip %{nil}} + +%endif + +%if %{include_debug_build} +%post slowdebug +%{post_script -- %{debug_suffix_unquoted}} + +%post headless-slowdebug +%{post_headless -- %{debug_suffix_unquoted}} + +%postun slowdebug +%{postun_script -- %{debug_suffix_unquoted}} + +%postun headless-slowdebug +%{postun_headless -- %{debug_suffix_unquoted}} + +%posttrans slowdebug +%{posttrans_script -- %{debug_suffix_unquoted}} + +%post devel-slowdebug +%{post_devel -- %{debug_suffix_unquoted}} + +%postun devel-slowdebug +%{postun_devel -- %{debug_suffix_unquoted}} + +%posttrans devel-slowdebug +%{posttrans_devel -- %{debug_suffix_unquoted}} + +%endif + +%if %{include_normal_build} +%files +# main package builds always +%{files_jre %{nil}} +%else +%files +# placeholder +%endif + + +%if %{include_normal_build} +%files headless +%{files_jre_headless %{nil}} + +%files devel +%{files_devel %{nil}} + +%files demo -f %{name}-demo.files +%{files_demo %{nil}} + +%files src +%{files_src %{nil}} + +%files javadoc +%{files_javadoc %{nil}} + +# this puts huge file to /usr/share +# unluckily ti is really a documentation file +# and unluckily it really is architecture-dependent, as eg. aot and grail are now x86_64 only +# same for debug variant +%files javadoc-zip +%{files_javadoc_zip %{nil}} + +%files accessibility +%{files_accessibility %{nil}} + +%if %{with_openjfx_binding} +%files openjfx -f %{name}-openjfx.files + +%files openjfx-devel -f %{name}-openjfx-devel.files +%endif +%endif + +%if %{include_debug_build} +%files slowdebug +%{files_jre -- %{debug_suffix_unquoted}} + +%files headless-slowdebug +%{files_jre_headless -- %{debug_suffix_unquoted}} + +%files devel-slowdebug +%{files_devel -- %{debug_suffix_unquoted}} + +%files demo-slowdebug -f %{name}-demo.files-slowdebug +%{files_demo -- %{debug_suffix_unquoted}} + +%files src-slowdebug +%{files_src -- %{debug_suffix_unquoted}} + +%files accessibility-slowdebug +%{files_accessibility -- %{debug_suffix_unquoted}} + +%if %{with_openjfx_binding} +%files openjfx-slowdebug -f %{name}-openjfx.files-slowdebug + +%files openjfx-devel-slowdebug -f %{name}-openjfx-devel.files-slowdebug +%endif +%endif + +%changelog +* Fri Oct 15 2021 zhangweiguo - 1:1.8.0.302-b07.5 +- parallelize compilation targets and set make JOBS to cpu number + +* Sat Sep 18 2021 kuenking111 - 1:1.8.0.302-b07.4 +- add 8183543-Aarch64-C2-compilation-often-fails-with-fail--last.patch + +* Fri Sep 17 2021 kuenking111 - 1:1.8.0.302-b07.3 +- add 8167014-jdeps-failed-with-Missing-message-warn-skippen-entry.patch +- add fix_bug_in_keypairgenerator.patch +- add C1-assert-is_virtual-failed-type-check.patch +- add 8197387-Run-the-jcmd-tool-as-the-root-user-to-access.patch +- add create-jfr-dump-file-with-pid-or-timestamp-if-specif.patch +- add 8268453-sun-security-pkcs12-EmptyPassword.java-fails.patch +- add enhance-the-TimeZone-s-path-solution-on-Euler.patch +- add fix-wrong-commitID-in-release-file.patch +- add fix-appcds-s-option-AppCDSLockFile.patch +- add PS-introduce-UsePSRelaxedForwardee-to-enable-using-r.patch +- add Parallel-Full-GC-for-G1.patch +- add 8202142-jfr-event-io-TestInstrumentation-is-unstable.patch +- add 8143251-Thread-suspend-on-VM_G1IncCollectionPause-do.patch +- add G1Uncommit-Introduce-G1PeriodGCNotRetry-control-whet.patch +- add JDK-debug-version-crash-when-using-AppCDS.patch + +* Fri Aug 20 2021 kuenking111 - 1:1.8.0.302-b07.2 +- add fix_g1uncommit_ygc_expand_crash.patch + +* Thu Aug 19 2021 eapen - 1:1.8.0.302-b07.1 +- delete 8266929_huawei_add_oid_mapping_common_sig_types.patch + +* Wed Aug 11 2021 eapen - 1:1.8.0.302-b07.0 +- update to 8u302-b07(ga)(switch to jdk8u from aarch64-port/jdk8u-shenandoah) +- add 8069191.patch +- add fix-lock-ordering-issue-when-calling-JVMTI-GetLoaded.patch +- delete 8134883.patch +- delete 818172_overflow_when_strength_reducing_interger_multiply.patch +- delete 8190332.patch +- delete 8191955.patch +- delete 8203196.patch +- delete 8214345.patch +- delete 8231631.patch +- delete 8231841-debug.cpp-help-is-missing-an-AArch64-line-fo.patch +- delete 8259886-Improve-SSL-session-cache-performance-and-sc.patch +- delete 8264640.patch +- delete delete_untrustworthy_cacert_soneraclass2ca.patch +- delete fix-crash-in-JVMTI-debug.patch +- other adaptations to jdk8u302 + +* Thu Jul 12 2021 noah - 1:1.8.0.292-b10.19 +- add Fix-RSACipher-memory-usage.patch + +* Thu Jul 12 2021 kuenking111 - 1:1.8.0.292-b10.18 +- fix run SPECjvm2008 failed on 32 bit system + +* Thu Jul 8 2021 noah - 1:1.8.0.292-b10.17 +- remove debug log to reduce build time + +* Mon Jul 5 2021 noah - 1:1.8.0.292-b10.16 +- add Fix-ECDH-and-DH-memory-usage.patch + +* Mon Jun 28 2021 kuenking111 - 1:1.8.0.292-b10.15 +- fix delete_untrustworthy_cacert_soneraclass2ca.patch + +* Thu Jun 17 2021 kuenking111 - 1:1.8.0.292-b10.14 +- fix systemDictionary resolve_from_stream ResourceMark + +* Wed Jun 16 2021 kuenking111 - 1:1.8.0.292-b10.13 +- add fix_G1GC_memory_leak_in_numa.patch + +* Sat Jun 12 2021 kuenking111 - 1:1.8.0.292-b10.12 +- add implementation_of_Blas_hotspot_function_in_Intrinsics.patch + +* Sat Jun 12 2021 kuenking111 - 1:1.8.0.292-b10.11 +- add g1gc-numa-aware-Implementation.patch + +* Wed Jun 10 2021 hu_bo_dao - 1:1.8.0.292-b10.10 +- add support_CMS_parallel_inspection.patch + +* Wed Jun 9 2021 noah - 1:1.8.0.292-b10.9 +- add modify_the_default_iteration_time_and_forks_in_the_JMH_of_KAEProvider.patch + +* Tue Jun 8 2021 noah - 1:1.8.0.292-b10.8 +- fix kae exception compatibility + +* Tue Jun 8 2021 kuenking111 - 1:1.8.0.292-b10.7 +- add improve_algorithmConstraints_checkAlgorithm_performance.patch + +* Mon Jun 7 2021 kuenking111 - 1:1.8.0.292-b10.6 +- add add_kae_implementation_add_default_conf_file.patch + +* Fri Jun 4 2021 hedongbo - 1:1.8.0.292-b10.5 +- change the way to get the version in openjdk-1.8.0.spec + +* Thu May 27 2021 kuenking111 - 1:1.8.0.292-b10.4 +- add 8264640.patch + +* Fri May 20 2021 kuenking111 - 1:1.8.0.292-b10.3 +- add 8266929_huawei_add_oid_mapping_common_sig_types.patch + +* Fri May 20 2021 kuenking111 - 1:1.8.0.292-b10.2 +- add 8266187_Memory_leak_in_appendBootClassPath.patch + +* Fri May 20 2021 kuenking111 - 1:1.8.0.292-b10.1 +- add 8247691_incorrect_handling_of_VM_exceptions_in_C1_deopt_stub.patch + +* Tue May 18 2021 eapen - 1:1.8.0.292-b10.0 +- update to jdk8u292-b10 +- split sync-patch to multi patches + +* Wed May 19 2021 Noah - 1:1.8.0.282-b08.19 +- add add-kaeEngine-to-rsa.patch + +* Mon May 17 2021 Noah - 1:1.8.0.282-b08.18 +- add kae-phase2.patch + +* Tue Apr 20 2021 aijm - 1:1.8.0.282-b08.17 +- delete zlib-optimization.patch +- modify src-openeuler-openjdk-1.8.0-resolve-code-inconsistencies.patch + +* Tue Apr 20 2021 aijm - 1:1.8.0.282-b08.16 +- add Code-style-fix.patch + +* Tue Apr 20 2021 aijm - 1:1.8.0.282-b08.15 +- add fix-windows-compile-fail.patch + +* Tue Apr 20 2021 aijm - 1:1.8.0.282-b08.14 +- add fix-BoxTypeCachedMax-build-failure-when-jvm-variants.patch + +* Mon Apr 19 2021 aijm - 1:1.8.0.282-b08.13 +- add add-missing-test-case.patch + +* Thu Apr 15 2021 kuenking - 1:1.8.0.282-b08.12 +- add 818172_overflow_when_strength_reducing_interger_multiply.patch + +* Tue Apr 13 2021 kuenking - 1:1.8.0.282-b08.11 +- add src-openeuler-openjdk-1.8.0-resolve-code-inconsistencies.patch + +* Fri Apr 2 2021 Benshuai5D - 1:1.8.0.282-b08.10 +- delete redundant set-vm.vendor-by-configure.patch +- delete redundant make-disable-precompiled-headers-work.patch +- delete redundant FromCardCache-default-card-index-can-cause.patch +- delete redundant The-runok-method-retrying-another-port-does-not-take.patch +- delete redundant fix-incorrect-offset-for-opp-field-with-weak-memory-.patch +- delete redundant dismiss-company_name-info-of-java-version.patch + +* Sat Mar 27 2021 Noah - 1:1.8.0.282-b08.9 +- add fix_VerifyCerts.java_testcase_bug.patch + +* Fri Mar 19 2021 kuenking111 - 1:1.8.0.282-b08.8 +- add 8214535-support-Jmap-parallel.patch + +* Fri Mar 19 2021 DataAndOperation - 1:1.8.0.282-b08.7 +- add 8231841-debug.cpp-help-is-missing-an-AArch64-line-fo.patch +- add initialized-value-should-be-0-in-perfInit.patch +- add 8254078-DataOutputStream-is-very-slow-post-disabling.patch +- add Use-atomic-operation-when-G1Uncommit.patch +- add 8168996-backport-of-C2-crash-at-postaloc.cpp-140-ass.patch +- add 8140597-Postpone-the-initial-mark-request-until-the-.patch +- add Use-Mutex-when-G1Uncommit.patch +- add C1-typos-repair.patch +- add 8214418-half-closed-SSLEngine-status-may-cause-appli.patch +- add 8259886-Improve-SSL-session-cache-performance-and-sc.patch + +* Wed Mar 17 2021 noah - 1:1.8.0.282-b08.6 +- add kae-phase1.patch + +* Fri Feb 5 2021 noah - 1:1.8.0.282-b08.5 +- delete some file header + +* Thu Feb 4 2021 jdkboy - 1:1.8.0.282-b08.4 +- add 8240353.patch + +* Thu Feb 4 2021 jdkboy - 1:1.8.0.282-b08.3 +- fix wrong patch G1-memory-uncommit.patch + +* Wed Feb 3 2021 jdkboy - 1:1.8.0.282-b08.2 +- add missing mapfile in G1-memory-uncommit.patch + +* Wed Feb 3 2021 jdkboy - 1:1.8.0.282-b08.1 +- update sha512sum of arch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08.tar.xz + +* Tue Feb 2 2021 jdkboy - 1:1.8.0.282-b08.0 +- updated to aarch64-shenandoah-jdk8u282-b08 (from aarch64-port/jdk8u-shenandoah) +- delete 8160300.patch +- delete The-runok-method-retrying-another-port-does-not-take.patch +- delete 8214440-ldap-over-a-TLS-connection-negotiate-fail.patch +- delete 8165808-Add-release-barriers-when-allocating-objects-with-concurrent-collection.patch +- delete 8166583-Add-oopDesc-klass_or_null_acquire.patch +- delete 8166862-CMS-needs-klass_or_null_acquire.patch +- delete 8223940-Private-key-not-supported-by-chosen-signature.patch +- delete 8236512-PKCS11-Connection-closed-after-Cipher.doFinal-and-NoPadding.patch +- delete 8250861-Crash-in-MinINode-Ideal-PhaseGVN-bool.patch +- add 8080911.patch +- add 8168926.patch +- add 8215047.patch +- add 8237894.patch +- add Remove-the-parentheses-around-company-name.patch + +* Thu Dec 24 2020 lee18767 - 1:1.8.0.272-b10.14 +- add add-appcds-test-case.patch + +* Wed Dec 23 2020 hubodao - 1:1.8.0.272-b10.13 +- add delete-untrustworthy-cacert.patch + +* Wed Dec 23 2020 wujiahua - 1:1.8.0.272-b10.12 +- add 8207160-ClassReader-adjustMethodParams-can-potentially-return-null-if-the-args-list-is-empty.patch + +* Wed Dec 23 2020 DataAndOperation - 1:1.8.0.272-b10.11 +- add 8040327-Eliminate-AnnotatedType-8040319-Clean-up-type-annotation-exception-index.patch + +* Tue Dec 22 2020 miaozhuojun - 1:1.8.0.272-b10.10 +- add 8015927-Class-reference-duplicates-in-constant-pool.patch + +* Tue Dec 22 2020 cruise01 - 1:1.8.0.272-b10.9 +- add G1-memory-uncommit.patch + +* Tue Dec 22 2020 kuenking - 1:1.8.0.272-b10.8 +- add add-appcds-file-lock.patch + +* Mon Dec 21 2020 noah - 1:1.8.0.272-b10.7 +- add a license to this repo + +* Tue Nov 10 2020 ow_wo - 1:1.8.0.272-b10.6 +- add 8236512-PKCS11-Connection-closed-after-Cipher.doFinal-and-NoPadding.patch +- add 8250861-Crash-in-MinINode-Ideal-PhaseGVN-bool.patch + +* Mon Nov 09 2020 ow_wo - 1:1.8.0.272-b10.5 +- add 8223940-Private-key-not-supported-by-chosen-signature.patch + +* Fri Nov 06 2020 jdkboy - 1:1.8.0.272-b10.4 +- add 8165808-Add-release-barriers-when-allocating-objects-with-concurrent-collection.patch +- add 8166583-Add-oopDesc-klass_or_null_acquire.patch +- add 8166862-CMS-needs-klass_or_null_acquire.patch +- add 8160369.patch +- add PS-GC-adding-acquire_size-method-for-PSParallelCompa.patch + +* Fri Nov 06 2020 wuyan - 1:1.8.0.272-b10.3 +- add 8248336-AArch64-C2-offset-overflow-in-BoxLockNode-em.patch + +* Fri Nov 06 2020 xiezhaokun - 1:1.8.0.272-b10.2 +- add 8214440-ldap-over-a-TLS-connection-negotiate-fail.patch + +* Sat Oct 24 2020 noah - 1:1.8.0.272-b10.1 +- rename Boole to Bisheng + +* Fri Oct 23 2020 - 1:1.8.0.272-b10.0 +- updated to aarch64-shenandoah-jdk8u272-b10 (from aarch64-port/jdk8u-shenandoah) +- deleted: 8046294-Generate-the-4-byte-timestamp-randomly.patch +- deleted: 8148754-C2-loop-unrolling-fails-due-to-unexpected-gr.patch +- deleted: 8151788.patch +- deleted: 8161072.patch +- deleted: 8171537.patch +- deleted: 8203481-Incorrect-constraint-for-unextended_sp-in-frame-safe_for_sender.patch +- deleted: 8203699-java-lang-invoke-SpecialInte.patch +- modified: Extend-CDS-to-support-app-class-metadata-sharing.patch +- deleted: Test-SSLSocketSSLEngineTemplate.java-intermittent-fa.patch +- modified: fast-serializer-jdk8.patch +- deleted: fix-CompactibleFreeListSpace-block_size-crash.patch +- deleted: fix-incorrect-klass-field-in-oop-with-weak-memory-model.patch + +* Mon Sep 21 2020 noah -:1.8.0.265-b10.6 +- add add-DumpSharedSpace-guarantee-when-create-anonymous-classes.patch + +* Fri Sep 11 2020 noah -:1.8.0.265-b10.5 +- add 6896810-Pin.java-fails-with-OOME-during-System.out.p.patch +- add 8231631-sun-net-ftp-FtpURLConnectionLeak.java-fails-.patch +- add Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch +- add Test-SSLSocketSSLEngineTemplate.java-intermittent-fa.patch +- add The-runok-method-retrying-another-port-does-not-take.patch +- add 8048210-8056152-fix-assert-fail-for-an-InnocuousThre.patch +- add 8160425-Vectorization-with-signalling-NaN-returns-wr.patch +- add 8181503-Can-t-compile-hotspot-with-c-11.patch +- add 8243670-Unexpected-test-result-caused-by-C2-MergeMem.patch +- add fix-crash-in-JVMTI-debug.patch +- add fix-incorrect-klass-field-in-oop-with-weak-memory-model.patch +- add Fix-LineBuffer-vappend-when-buffer-too-small.patch +- add make-disable-precompiled-headers-work.patch +- add fix-CompactibleFreeListSpace-block_size-crash.patch +- add Remove-unused-GenericTaskQueueSet-T-F-tasks.patch +- add optimize-jmap-F-dump-xxx.patch +- add recreate-.java_pid-file-when-deleted-for-attach-mechanism.patch +- add Support-Git-commit-ID-in-the-SOURCE-field-of-the-release.patch +- add Extend-CDS-to-support-app-class-metadata-sharing.patch +- add zlib-optimization.patch + +* Tue Sep 8 2020 noah - 1:1.8.0.265-b10.4 +- add fast-serializer-jdk8.patch + +* Mon Sep 7 2020 noah - 1:1.8.0.265-b10.3 +- Delete some file header information + +* Mon Sep 1 2020 jdkboy - 1:1.8.0.265-b10.2 +- Remove fast-serializer-jdk8.patch + +* Tue Aug 29 2020 jdkboy - 1:1.8.0.265-b10.1 +- Add leaf-optimize-in-ParallelScanvageGC.patch +- Add 8046294-Generate-the-4-byte-timestamp-randomly.patch +- Add 8203481-Incorrect-constraint-for-unextended_sp-in-frame-safe_for_sender.patch +- Add fix-LongCache-s-range-when-BoxTypeCachedMax-number-is-bigger-than-Integer.MAX_VALUE.patch +- Add Ddot-intrinsic-implement.patch +- Add 8234003-Improve-IndexSet-iteration.patch +- Add 8220159-Optimize-various-RegMask-operations-by-introducing-watermarks.patch +- Remove prohibition-of-irreducible-loop-in-mergers.patch + +* Tue Aug 25 2020 noah - 1:1.8.0.265-b10.0 +- Update to aarch64-shenandoah-jdk8u-8u265-b01 +- add fix-Long-cache-range-and-remove-VM-option-java.lang.IntegerCache.high-by-default.patch + +* Mon Jul 21 2020 noah - 1:1.8.0.262-b10.1 +- add 8205921-Optimizing-best-of-2-work-stealing-queue-selection.patch + +* Thu Jul 18 2020 jdkboy - 1:1.8.0.262-b10.0 +- Update to aarch64-shenandoah-jdk8u-8u262-b10 +- add 8144993-Elide-redundant-memory-barrier-after-AllocationNode.patch +- add 8223504-improve-performance-of-forall-loops-by-better.patch +- add add-vm-option-BoxTypeCachedMax-for-Integer-and-Long-cache.patch +- add 8080289-8040213-8189067-move-the-store-out-of-the-loop.patch +- add fast-serializer-jdk8.patch +- add 8182397-race-in-field-updates.patch +- add --with-company-name="Boole" +- remove fix-incorrect-offset-for-oop-field-with-weak-memory-.patch + +* Thu Jun 11 2020 jdkboy - 1:1.8.0.262-b05.9 +- Update to aarch64-shenandoah-jdk8u-8u262-b05 + +* Tue Jun 9 2020 jdkboy - 1:1.8.0.262-b02.8 +- Add some judgement + +* Fri May 29 2020 Noah - 1:1.8.0.262-b02.7 +- Support desktop, nss, systemtap and openjfx. +- Provide slowdebug and java-doc-zip + +* Thu May 21 2020 jdkboy - 1:1.8.0.262-b02.6 +- Update to jdk8u-shenandoah-8u262-b02 +- Create GC worker threads dynamically + +* Fri Mar 20 2020 jdkboy - 1:1.8.0.242-b08.5 +- upgrade openjdk to jdk8u242-b08 + +* Thu Mar 12 2020 jdkboy - 1:1.8.0.232-b09.4 +- add inline optimize for aarch64 + +* Thu Mar 12 2020 jdkboy - 1:1.8.0.232-b09.3 +- add libjpeg.so in jre + +* Tue Jan 21 2020 jdkboy - 1:1.8.0.232-b09.2 +- remove accessibility + +* Sat Dec 14 2019 guoge - 1:1.8.0.232-b09.1 +- Initial build from OpenJDK aarch64-shenandoah-8u232-b09 \ No newline at end of file -- Gitee From 0458ac068278bed515e712ecfff9373ff8d38f62 Mon Sep 17 00:00:00 2001 From: chenhongyu Date: Tue, 28 Dec 2021 05:59:28 +0000 Subject: [PATCH 3/8] add openblas.spec. --- openblas.spec | 370 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 370 insertions(+) create mode 100644 openblas.spec diff --git a/ openblas.spec b/ openblas.spec new file mode 100644 index 0000000..9a5aa76 --- /dev/null +++ b/ openblas.spec @@ -0,0 +1,370 @@ +%bcond_with system_lapack + +Name: openblas +Version: 0.3.13 +Release: 3 +Summary: An optimized BLAS library based on GotoBLAS2 1.13 BSD version +License: BSD +URL: https://github.com/xianyi/OpenBLAS/ +Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}/openblas-%{version}.tar.gz +Patch0000: openblas-0.2.15-system_lapack.patch +Patch0001: openblas-0.2.5-libname.patch +Patch0002: openblas-0.3.7-tests.patch +Requires: %{name}-devel = %{version}-%{release} +BuildRequires: gcc gcc-gfortran perl-devel gcc-c++ + +%if %{with system_lapack} +BuildRequires: lapack-static lapack64-static +%global lapacke 0 +%else +%global lapacke 1 +Provides: bundled(lapack) = 3.9.0 +%endif + +Provides: openblas-serial = %{version}-%{release} openblas-openmp = %{version}-%{release} +Provides: openblas-threads = %{version}-%{release} openblas-serial64 = %{version}-%{release} +Provides: openblas-openmp64 = %{version}-%{release} openblas-threads64 = %{version}-%{release} +Provides: openblas-serial64_ = %{version}-%{release} openblas-openmp64_ = %{version}-%{release} +Provides: openblas-threads64_ = %{version}-%{release} openblas-Rblas = %{version}-%{release} +Provides: openblas-static = %{version}-%{release} +Obsoletes: openblas-serial < %{version}-%{release} openblas-openmp < %{version}-%{release} +Obsoletes: openblas-threads < %{version}-%{release} openblas-serial64 < %{version}-%{release} +Obsoletes: openblas-openmp64 < %{version}-%{release} openblas-threads64 < %{version}-%{release} +Obsoletes: openblas-serial64_ < %{version}-%{release} openblas-openmp64_ < %{version}-%{release} +Obsoletes: openblas-threads64_ < %{version}-%{release} openblas-Rblas < %{version}-%{release} +Obsoletes: openblas-static < %{version}-%{release} + +ExclusiveArch: x86_64 aarch64 + +%description +OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD \ +version. The Lab of Parallel Software and Computationla Science, ISCAS \ +supports this project, see: http://www.rdcps.ac.cn + + +%package devel +Summary: Development headers and libraries for OpenBLAS +Requires: %{name} = %{version}-%{release} %{name}-srpm-macros + +%description devel +This package contains the development headers and libraries for openblas. + +%prep +%setup -q -c +cd OpenBLAS-%{version} +%if %{with system_lapack} +%patch0000 -p1 -b .system_lapack +%endif +%patch0001 -p1 -b .libname +%patch0002 -p1 -b .tests + +# Set source permissions +find -name \*.f -exec chmod 644 {} \; + +%if %{with system_lapack} +rm -rf lapack-netlib +%endif + +# Make serial, threaded, OpenMP, 64-bit versions +# and an libRblas.so +cd .. +cp -ar OpenBLAS-%{version} openmp +cp -ar OpenBLAS-%{version} threaded +for d in {serial,threaded,openmp}64{,_}; do + cp -ar OpenBLAS-%{version} $d +done +cp -ar OpenBLAS-%{version} Rblas +mv OpenBLAS-%{version} serial + +sed -i 's\.so.$(MAJOR_VERSION)\.so\g' Rblas/Makefile +sed -i 's\.so.$(MAJOR_VERSION)\.so\g' Rblas/exports/Makefile +sed -i 's\@ln -fs $(LIBSONAME) $(LIBPREFIX).so\#@ln -fs $(LIBSONAME) $(LIBPREFIX).so\g' Rblas/Makefile + +%if %{with system_lapack} +mkdir netliblapack +cd netliblapack +ar x %{_libdir}/liblapack_pic.a +for f in laswp getf2 getrf potf2 potrf lauu2 lauum trti2 trtri getrs; do + \rm {c,d,s,z}$f.o +done + +%if %{lapacke} +ar x %{_libdir}/liblapacke.a +%endif + +# Create makefile +echo "TOPDIR = .." > Makefile +echo "include ../Makefile.system" >> Makefile +echo "COMMONOBJS = \\" >> Makefile +for i in *.o; do + echo "$i \\" >> Makefile +done +echo -e "\n\ninclude \$(TOPDIR)/Makefile.tail" >> Makefile + +%if %{lapacke} +# Copy include files +cp -a %{_includedir}/lapacke . +%endif +cd .. + +# Copy in place +for d in serial threaded openmp; do + cp -pr netliblapack $d +done +rm -rf netliblapack + + +# Setup 64-bit interface LAPACK +mkdir netliblapack64 +cd netliblapack64 +ar x %{_libdir}/liblapack64_pic.a +# Get rid of duplicate functions. See list in Makefile of lapack directory +for f in laswp getf2 getrf potf2 potrf lauu2 lauum trti2 trtri getrs; do + \rm {c,d,s,z}$f.o +done + +# LAPACKE, no 64-bit interface +%if %{lapacke} +ar x %{_libdir}/liblapacke.a +%endif + +# Create makefile for 64-bit interface +echo "TOPDIR = .." > Makefile +echo "include ../Makefile.system" >> Makefile +echo "COMMONOBJS = \\" >> Makefile +for i in *.o; do + echo "$i \\" >> Makefile +done +echo -e "\n\ninclude \$(TOPDIR)/Makefile.tail" >> Makefile + +%if %{lapacke} +# Copy include files +cp -a %{_includedir}/lapacke . +%endif +cd .. + +# Copy in place +for d in {serial,threaded,openmp}64{,_}; do + cp -pr netliblapack64 $d/netliblapack +done +rm -rf netliblapack64 +%endif + +%build +%define _lto_cflags %{nil} +%if !%{lapacke} +LAPACKE="NO_LAPACKE=1" +%endif + +# Maximum possible amount of processors +NMAX="NUM_THREADS=128" + +%ifarch x86_64 +TARGET="TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1" +%endif +%ifarch aarch64 +TARGET="TARGET=ARMV8 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1" +%endif + +COMMON="%{optflags} -fPIC" +FCOMMON="%{optflags} -fPIC -frecursive" +export LDFLAGS="%{__global_ldflags}" + +(make -C Rblas $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libRblas" LIBSONAME="libRblas.so" $AVX $LAPACKE INTERFACE64=0)& + +# Declare some necessary build flags +COMMON="%{optflags} -fPIC" +FCOMMON="$COMMON -frecursive" +(make -C serial $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas" $AVX $LAPACKE INTERFACE64=0)& +(make -C threaded $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp" $AVX $LAPACKE INTERFACE64=0)& + +# USE_THREAD determines use of SMP, not of pthreads +COMMON="%{optflags} -fPIC -fopenmp -pthread" +FCOMMON="$COMMON -frecursive" +(make -C openmp $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso" $AVX $LAPACKE INTERFACE64=0 %{with cpp_thread_check:CPP_THREAD_SAFETY_TEST=0})& + +COMMON="%{optflags} -fPIC" +FCOMMON="$COMMON -frecursive -fdefault-integer-8" +(make -C serial64 $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64" $AVX $LAPACKE INTERFACE64=1)& +(make -C threaded64 $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64" $AVX $LAPACKE INTERFACE64=1)& + +COMMON="%{optflags} -fPIC -fopenmp -pthread" +FCOMMON="$COMMON -frecursive -fdefault-integer-8" +(make -C openmp64 $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64" $AVX $LAPACKE INTERFACE64=1 CPP_THREAD_SAFETY_TEST=0)& + +COMMON="%{optflags} -fPIC" +FCOMMON="$COMMON -frecursive -fdefault-integer-8" +(make -C serial64_ $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_)& +(make -C threaded64_ $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_)& + +COMMON="%{optflags} -fPIC -fopenmp -pthread" +FCOMMON="$COMMON -frecursive -fdefault-integer-8" +(make -C openmp64_ $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_ CPP_THREAD_SAFETY_TEST=0)& +wait + +%install +rm -rf %{buildroot} +# Install serial library and headers +make -C serial USE_THREAD=0 PREFIX=%{buildroot} OPENBLAS_LIBRARY_DIR=%{buildroot}%{_libdir} OPENBLAS_INCLUDE_DIR=%{buildroot}%{_includedir}/%name OPENBLAS_BINARY_DIR=%{buildroot}%{_bindir} OPENBLAS_CMAKE_DIR=%{buildroot}%{_libdir}/cmake install + +# Copy lapacke include files +%if %{with system_lapack} && %{lapacke} +cp -a %{_includedir}/lapacke %{buildroot}%{_includedir}/%{name} +%endif + +# Fix name of libraries +slibname=`basename %{buildroot}%{_libdir}/libopenblas${suffix}-*.so .so` +mv %{buildroot}%{_libdir}/${slibname}.a %{buildroot}%{_libdir}/lib%{name}.a +if [[ "$suffix" != "" ]]; then + sname=$(echo $slibname | sed "s|$suffix||g") + mv %{buildroot}%{_libdir}/${slibname}.so %{buildroot}%{_libdir}/${sname}.so +else + sname=${slibname} +fi + +# Install the Rblas library +mkdir -p %{buildroot}%{_libdir}/R/lib/ +install -p -m 755 Rblas/libRblas.so %{buildroot}%{_libdir}/R/lib/ + +# Install the OpenMP library +olibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o|g"` +install -D -p -m 644 openmp/${olibname}.a %{buildroot}%{_libdir}/lib%{name}o.a +if [[ "$suffix" != "" ]]; then + oname=$(echo $olibname | sed "s|$suffix||g") +else + oname=${olibname} +fi +install -D -p -m 755 openmp/${olibname}.so %{buildroot}%{_libdir}/${oname}.so + +# Install the threaded library +plibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p|g"` +install -D -p -m 644 threaded/${plibname}.a %{buildroot}%{_libdir}/lib%{name}p.a +if [[ "$suffix" != "" ]]; then + pname=$(echo $plibname | sed "s|$suffix||g") +else + pname=${plibname} +fi +install -D -p -m 755 threaded/${plibname}.so %{buildroot}%{_libdir}/${pname}.so + +# Install the 64-bit interface libraries + +slibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64|g"` +install -D -p -m 644 serial64/${slibname64}.a %{buildroot}%{_libdir}/lib%{name}64.a +slibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64_|g"` +install -D -p -m 644 serial64_/${slibname64_}.a %{buildroot}%{_libdir}/lib%{name}64_.a + +if [[ "$suffix" != "" ]]; then + sname64=$(echo ${slibname64} | sed "s|$suffix||g") + sname64_=$(echo ${slibname64_} | sed "s|$suffix||g") +else + sname64=${slibname64} + sname64_=${slibname64_} +fi +install -D -p -m 755 serial64/${slibname64}.so %{buildroot}%{_libdir}/${sname64}.so +install -D -p -m 755 serial64_/${slibname64_}.so %{buildroot}%{_libdir}/${sname64_}.so + +olibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64|g"` +install -D -p -m 644 openmp64/${olibname64}.a %{buildroot}%{_libdir}/lib%{name}o64.a +olibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64_|g"` +install -D -p -m 644 openmp64_/${olibname64_}.a %{buildroot}%{_libdir}/lib%{name}o64_.a + +if [[ "$suffix" != "" ]]; then + oname64=$(echo ${olibname64} | sed "s|$suffix||g") + oname64_=$(echo ${olibname64_} | sed "s|$suffix||g") +else + oname64=${olibname64} + oname64_=${olibname64_} +fi +install -D -p -m 755 openmp64/${olibname64}.so %{buildroot}%{_libdir}/${oname64}.so +install -D -p -m 755 openmp64_/${olibname64_}.so %{buildroot}%{_libdir}/${oname64_}.so + +plibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64|g"` +install -D -p -m 644 threaded64/${plibname64}.a %{buildroot}%{_libdir}/lib%{name}p64.a +plibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64_|g"` +install -D -p -m 644 threaded64_/${plibname64_}.a %{buildroot}%{_libdir}/lib%{name}p64_.a + +if [[ "$suffix" != "" ]]; then + pname64=$(echo $plibname64 | sed "s|$suffix||g") + pname64_=$(echo $plibname64_ | sed "s|$suffix||g") +else + pname64=${plibname64} + pname64_=${plibname64_} +fi +install -D -p -m 755 threaded64/${plibname64}.so %{buildroot}%{_libdir}/${pname64}.so +install -D -p -m 755 threaded64_/${plibname64_}.so %{buildroot}%{_libdir}/${pname64_}.so + +# Fix symlinks +cd %{buildroot}%{_libdir} + +# Serial libraries +ln -sf ${sname}.so lib%{name}.so +ln -sf ${sname}.so lib%{name}.so.0 +# OpenMP libraries +ln -sf ${oname}.so lib%{name}o.so +ln -sf ${oname}.so lib%{name}o.so.0 +# Threaded libraries +ln -sf ${pname}.so lib%{name}p.so +ln -sf ${pname}.so lib%{name}p.so.0 + +# 64bit Serial libraries +ln -sf ${sname64}.so lib%{name}64.so +ln -sf ${sname64}.so lib%{name}64.so.0 +ln -sf ${sname64_}.so lib%{name}64_.so +ln -sf ${sname64_}.so lib%{name}64_.so.0 +# 64bit OpenMP libraries +ln -sf ${oname64}.so lib%{name}o64.so +ln -sf ${oname64}.so lib%{name}o64.so.0 +ln -sf ${oname64_}.so lib%{name}o64_.so +ln -sf ${oname64_}.so lib%{name}o64_.so.0 +# 64bit Threaded libraries +ln -sf ${pname64}.so lib%{name}p64.so +ln -sf ${pname64}.so lib%{name}p64.so.0 +ln -sf ${pname64_}.so lib%{name}p64_.so +ln -sf ${pname64_}.so lib%{name}p64_.so.0 + + +# Get rid of generated CMake config +rm -rf %{buildroot}%{_libdir}/cmake +# Get rid of generated pkgconfig +rm -rf %{buildroot}%{_libdir}/pkgconfig + +%post +/sbin/ldconfig + +%postun +/sbin/ldconfig + +%files +%license serial/LICENSE +%doc serial/Changelog.txt serial/GotoBLAS* +%{_libdir}/lib%{name}*-*.so +%{_libdir}/lib%{name}*.so.* +%{_libdir}/R/lib/libRblas.so +%{_libdir}/lib%{name}*.a + +%files devel +%{_includedir}/%{name}/ +%{_libdir}/lib%{name}.so +%{_libdir}/lib%{name}o.so +%{_libdir}/lib%{name}p.so +%{_libdir}/lib%{name}*64.so +%{_libdir}/lib%{name}*64_.so + +%changelog +* Fri Oct 15 2021 zhangweiguo -0.3.13-3 +- Disable CPP_THREAD_SAFETY_TEST + +* Thu Oct 14 2021 zhangweiguo -0.3.13-3 +- parallelize compilation targets + +* Wed Jun 30 2021 zhouwenpei -0.3.13-2 +- add buildrequire gcc-c++ + +* Mon Feb 1 2021 xinghe - 0.3.13-1 +- Upgrade to 0.3.13 + +* Tue Aug 18 2020 xinghe - 0.3.10-1 +- Upgrade to 0.3.10 + +* Wed Nov 13 2019 Alex Chao - 0.3.3-3 +- Package init \ No newline at end of file -- Gitee From 99f44786db9bb422623ee4db3612281ad32d57dd Mon Sep 17 00:00:00 2001 From: chenhongyu Date: Tue, 28 Dec 2021 06:04:39 +0000 Subject: [PATCH 4/8] add subversion.spec. --- subversion.spec | 343 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) create mode 100644 subversion.spec diff --git a/subversion.spec b/subversion.spec new file mode 100644 index 0000000..4ba45c9 --- /dev/null +++ b/subversion.spec @@ -0,0 +1,343 @@ +%define jdk_path /usr/lib/jvm/java + +%define perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch) + +%global svn_python_sitearch %{python3_sitearch} +%global svn_python %{__python3} + +%bcond_with java + +Summary: Subversion, a version control system. +Name: subversion +Version: 1.14.0 +Release: 5 +License: ASL 2.0 +URL: https://subversion.apache.org/ + +Source0: https://www.apache.org/dist/subversion/subversion-%{version}.tar.bz2 + +Patch1: backport-CVE-2020-17525.patch + +BuildRequires: autoconf libtool texinfo which swig gettext apr-devel apr-util-devel libserf-devel cyrus-sasl-devel sqlite-devel file-devel utf8proc-devel lz4-devel apr-util-openssl dbus-devel, libsecret-devel httpd-devel +Requires: httpd + +Provides: svn +Provides: %{name}-libs +Provides: %{name}-gnome +Provides: mod_dav_svn +Provides: %{name}-tools + +Obsoletes: svn +Obsoletes: %{name}-libs +Obsoletes: %{name}-gnome +Obsoletes: mod_dav_svn +Obsoletes: %{name}-tools + +%define swigdirs swig_pydir=%{svn_python_sitearch}/libsvn swig_pydir_extra=%{svn_python_sitearch}/svn + +%description +Subversion exists to be universally recognized and adopted as an open-source, centralized version control system characterized by its reliability as a safe haven for valuable data; the simplicity of its model and usage; and its ability to support the needs of a wide variety of users and projects, from individuals to large-scale enterprise operations. + +%package devel +Summary: Development package for subversion +Requires: subversion%{?_isa} = %{version}-%{release} +Requires: apr-devel%{?_isa}, apr-util-devel%{?_isa} + +%description devel +Development package for subversion. +%package_help +Requires: subversion = %{version}-%{release} + +%package -n python3-%{name} +%{?python_provide:%python_provide python3-subversion} +Provides: %{name}-python = %{version}-%{release} +Provides: python3-%{name} = %{version}-%{release} +Provides: %{name}-python%{?_isa} = %{version}-%{release} +BuildRequires: python3-devel py3c-devel +Summary: python3 bindings to the subversion libraries + +%description -n python3-%{name} +python3 bindings to the subversion libraries + +%package -n perl-%{name} +Summary: perl bindings to the subversion libraries +Provides: %{name}-perl = %{version}-%{release} +Obsoletes: %{name}-perl +BuildRequires: perl-devel >= 2:5.8.0, perl-generators, perl(ExtUtils::MakeMaker) perl(Test::More), perl(ExtUtils::Embed) +Requires: %(eval `perl -V:version`; echo "perl(:MODULE_COMPAT_$version)") +Requires: subversion%{?_isa} = %{version}-%{release} + +%description -n perl-%{name} +perl bindings to the subversion libraries + +%if %{with java} +%package -n java-%{name} +Summary: java bindings to the subversion libraries +Provides: %{name}-java = %{version}-%{release} +Obsoletes: %{name}-java +Provides: %{name}-javahl = %{version}-%{release} +Obsoletes: %{name}-javahl +Requires: subversion = %{version}-%{release} +BuildRequires: java-devel-openjdk zip, unzip junit +BuildArch: noarch + +%description -n java-%{name} +java bindings to the subversion libraries +%endif + +%package -n ruby-%{name} +Summary: Ruby bindings to the Subversion libraries +Provides: %{name}-ruby = %{version}-%{release} +Obsoletes: %{name}-ruby +BuildRequires: ruby-devel ruby rubygem(test-unit) +Requires: subversion%{?_isa} = %{version}-%{release} + +%description -n ruby-%{name} +This package includes the Ruby bindings to the Subversion libraries. + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +mv build-outputs.mk build-outputs.mk.old +export PYTHON=%{svn_python} +touch build/generator/swig/*.py +PATH=/usr/bin:$PATH ./autogen.sh --release + +perl -pi -e 's|/usr/bin/env perl -w|/usr/bin/perl -w|' tools/hook-scripts/*.pl.in +perl -pi -e 's|/usr/bin/env python.*|%{svn_python}|' subversion/tests/cmdline/svneditor.py + +export svn_cv_ruby_link="%{__cc} -shared" +export svn_cv_ruby_sitedir_libsuffix="" +export svn_cv_ruby_sitedir_archsuffix="" + +export APACHE_LDFLAGS="-Wl,-z,relro,-z,now" +export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} + +%configure --with-apr=%{_prefix} --with-apr-util=%{_prefix} \ + --disable-debug \ + --with-swig --with-serf=%{_prefix} \ + --with-ruby-sitedir=%{ruby_vendorarchdir} \ + --with-ruby-test-verbose=verbose \ + --with-apxs=%{_httpd_apxs} --disable-mod-activation \ + --with-apache-libexecdir=%{_httpd_moddir} \ + --disable-static --with-sasl=%{_prefix} \ + --with-libmagic=%{_prefix} \ + --with-gnome-keyring \ +%if %{with java} + --enable-javahl \ + --with-junit=%{_prefix}/share/java/junit.jar \ +%endif + --without-berkeley-db \ + || (cat config.log; exit 1) +make %{?_smp_mflags} all tools +make %{?_smp_mflags} swig-py swig-py-lib %{swigdirs} +make %{?_smp_mflags} swig-pl swig-pl-lib swig-rb swig-rb-lib +%if %{with java} +make %{?_smp_mflags} javahl +%endif + +%install +make install DESTDIR=$RPM_BUILD_ROOT +make install-swig-py %{swigdirs} DESTDIR=$RPM_BUILD_ROOT +make install-swig-pl-lib install-swig-rb DESTDIR=$RPM_BUILD_ROOT +make pure_vendor_install -C subversion/bindings/swig/perl/native \ + PERL_INSTALL_ROOT=$RPM_BUILD_ROOT +%if %{with java} +make install-javahl-java install-javahl-lib javahl_javadir=%{_javadir} +%endif +DESTDIR=$RPM_BUILD_ROOT + +install -m 755 -d ${RPM_BUILD_ROOT}%{_sysconfdir}/subversion + +mkdir -p ${RPM_BUILD_ROOT}{%{_httpd_modconfdir},%{_httpd_confdir}} + +rm -rf ${RPM_BUILD_ROOT}%{_includedir}/subversion-*/*.txt \ + ${RPM_BUILD_ROOT}%{svn_python_sitearch}/*/*.{a,la} + +rm -f ${RPM_BUILD_ROOT}%{_libdir}/libsvn_auth_*.so + +find $RPM_BUILD_ROOT -type f \ + -a \( -name .packlist -o \( -name '*.bs' -a -empty \) \) \ + -print0 | xargs -0 rm -f + +find $RPM_BUILD_ROOT%{_libdir}/perl5 -type f -perm 555 -print0 | + xargs -0 chmod 755 + +rm -f ${RPM_BUILD_ROOT}%{_libdir}/libsvn_swig_*.{so,la,a} + +rm -f ${RPM_BUILD_ROOT}%{ruby_vendorarchdir}/svn/ext/*.*a + +rm -rvf tools/*/*.in tools/hook-scripts/mailer/tests + +ln -f subversion/mod_authz_svn/INSTALL mod_authz_svn-INSTALL + +sed -i "/^dependency_libs/{ + s, -l[^ ']*, ,g; + s, -L[^ ']*, ,g; + s,%{_libdir}/lib[^a][^p][^r][^ ']*.la, ,g; + }" $RPM_BUILD_ROOT%{_libdir}/*.la + +install -Dpm 644 tools/client-side/bash_completion \ + $RPM_BUILD_ROOT%{_datadir}/bash-completion/completions/svn +for comp in svnadmin svndumpfilter svnlook svnsync svnversion; do + ln -s svn \ + $RPM_BUILD_ROOT%{_datadir}/bash-completion/completions/${comp} +done + +make install-tools DESTDIR=$RPM_BUILD_ROOT toolsdir=%{_bindir} +rm -f $RPM_BUILD_ROOT%{_bindir}/diff* $RPM_BUILD_ROOT%{_bindir}/x509-parser + +sed -i "/^Requires.private/s, serf-1, ," \ + $RPM_BUILD_ROOT%{_datadir}/pkgconfig/libsvn_ra_serf.pc + +rm $RPM_BUILD_ROOT%{_bindir}/svnauthz-validate +ln -s svnauthz $RPM_BUILD_ROOT%{_bindir}/svnauthz-validate + +for f in svn-populate-node-origins-index fsfs-access-map \ + svnauthz svnauthz-validate svnmucc svnraisetreeconflict svnbench \ + svn-mergeinfo-normalizer fsfs-stats svnmover svnconflict; do + echo %{_bindir}/$f + if test -f $RPM_BUILD_ROOT%{_mandir}/man?/${f}.*; then + echo %{_mandir}/man?/${f}.* + fi +done | tee tools.files | sed 's/^/%%exclude /' > exclude.tools.files + +%find_lang %{name} + +cat %{name}.lang exclude.tools.files >> %{name}.files + +%check +export LANG=C LC_ALL=C +export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} +export MALLOC_PERTURB_=171 MALLOC_CHECK_=3 +export LIBC_FATAL_STDERR_=1 +export PYTHON=%{svn_python} +if ! make check CLEANUP=yes; then + : Test suite failure. + cat fails.log + exit 1 +fi +if ! make check-swig-pl check-swig-rb; then + : Swig test failure. + exit 1 +fi +if ! make check-swig-py; then + : Python swig test failure. + exit 1 +fi +# check-swig-rb omitted: it runs svnserve +%if %{with java} +make check-javahl +%endif + +%preun + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%post devel -p /sbin/ldconfig + +%postun devel -p /sbin/ldconfig + +%post -n python3-%{name} -p /sbin/ldconfig + +%postun -n python3-%{name} -p /sbin/ldconfig + +%post -n perl-%{name} -p /sbin/ldconfig + +%postun -n perl-%{name} -p /sbin/ldconfig + +%post -n ruby-%{name} -p /sbin/ldconfig + +%postun -n ruby-%{name} -p /sbin/ldconfig + +%if %{with java} +%post -n java-%{name} -p /sbin/ldconfig + +%postun -n java-%{name} -p /sbin/ldconfig +%endif + +%files -f %{name}.files +%{!?_licensedir:%global license %%doc} +%license LICENSE NOTICE +%doc BUGS COMMITTERS INSTALL README CHANGES +%doc mod_authz_svn-INSTALL +%{_bindir}/* +%{_datadir}/bash-completion/ +%dir %{_sysconfdir}/subversion +%{!?_licensedir:%global license %%doc} +%license LICENSE NOTICE +%{_libdir}/libsvn*.so.* +%exclude %{_libdir}/libsvn_swig_perl* +%exclude %{_libdir}/libsvn_swig_ruby* +%if %{with java} +%{_libdir}/libsvnjavahl-*.so +%endif +%doc tools/hook-scripts tools/backup tools/bdb tools/examples tools/xslt +%{_libdir}/httpd/modules/mod_*.so + +%files -n python3-subversion +%{python3_sitearch}/svn +%{python3_sitearch}/libsvn + +%files devel +%{_includedir}/subversion-1 +%{_libdir}/libsvn*.*a +%{_libdir}/libsvn*.so +%{_datadir}/pkgconfig/*.pc +%exclude %{_libdir}/libsvn_swig_perl* +%if %{with java} +%exclude %{_libdir}/libsvnjavahl-*.so +%endif + +%files help +%{_mandir}/man*/* +%exclude %{_mandir}/man*/*::* + +%files -n perl-%{name} +%{perl_vendorarch}/auto/SVN +%{perl_vendorarch}/SVN +%{_libdir}/libsvn_swig_perl* +%{_mandir}/man*/*::* + +%files -n ruby-%{name} +%{_libdir}/libsvn_swig_ruby* +%{ruby_vendorarchdir}/svn + +%if %{with java} +%files -n java-%{name} +%{_javadir}/svn-javahl.jar +%endif + +%changelog +* Fri Oct 15 2021 zhangweiguo - 1.14.0-5 +- set make parallelization + +* Fri Jul 30 2021 chenyanpanHW - 1.14.0-4 +- DESC: delete -S git from %autosetup, and delete BuildRequires git + +* Sat Jun 19 2021 panxiaohe - 1.14.0-3 +- dismiss the dependence of libdb + +* Mon Feb 22 2021 yixiangzhike - 1.14.0-2 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:Fix CVE-2020-17525 + +* Sat Aug 1 2020 yang_zhuang_zhuang - 1.14.0-1 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:update version to 1.14.0 + +* Wed Oct 30 2019 chengquan - 1.10.6-2 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:remove junit require with java package + +* Tue Aug 27 2019 openEuler Buildteam - 1.10.6-1 +- Package init -- Gitee From 083268336290d8c7cb2d9e98af2a3f435159c57d Mon Sep 17 00:00:00 2001 From: chenhongyu Date: Tue, 28 Dec 2021 06:06:26 +0000 Subject: [PATCH 5/8] add passenger.spec. --- passenger.spec | 202 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 passenger.spec diff --git a/passenger.spec b/passenger.spec new file mode 100644 index 0000000..512ed3f --- /dev/null +++ b/passenger.spec @@ -0,0 +1,202 @@ +%{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn 2>/dev/null || echo 0-0)}} +%{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}} +%{!?_httpd_modconfdir: %{expand: %%global _httpd_modconfdir %%{_sysconfdir}/httpd/conf.d}} +%{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}} + +Name:passenger +Summary: Phusion Passenger application server +Version: 6.0.8 +Release: 2 +License: Boost and BSD and MIT and zlib +URL: https://www.phusionpassenger.com + +Source: http://s3.amazonaws.com/phusion-passenger/releases/%{name}-%{version}.tar.gz +Source10: passenger.logrotate +Source11: passenger-selinux.te +Source100: apache-passenger.conf.in +Source101: apache-passenger-module.conf +Source102: passenger.tmpfiles + +Requires: rubygems rubygem(rack) rubygem(rake) ruby(release) + +BuildRequires: gcc, gcc-c++ httpd-devel ruby ruby-devel rubygems rubygems-devel +BuildRequires: rubygem(rake) >= 0.8.1 rubygem(rack) zlib-devel pcre-devel +BuildRequires: openssl-devel libcurl-devel jsoncpp-devel + +Provides: bundled(boost) = 1.69.0 + +Obsoletes: rubygem-passenger < %{version}-%{release} +Provides: rubygem-passenger = %{version}-%{release} +Provides: rubygem-passenger%{?_isa} = %{version}-%{release} + +Obsoletes: rubygem-passenger-devel < %{version}-%{release} +Obsoletes: rubygem-passenger-native < %{version}-%{release} +Obsoletes: rubygem-passenger-native-libs < %{version}-%{release} + +%description +Phusion Passenger® is a web server and application server, designed to be fast, +robust and lightweight. It takes a lot of complexity out of deploying web apps, +adds powerful enterprise-grade features that are useful in production, +and makes administration much easier and less complex. It supports Ruby, +Python, Node.js and Meteor. + +%package -n mod_passenger +Summary: Apache Module for Phusion Passenger +BuildRequires: httpd-devel +Requires: httpd-mmn = %{_httpd_mmn} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n mod_passenger +This package contains the pluggable Apache server module for Phusion Passenger®. + +%package devel +Summary: Phusion Passenger development files +Requires: %{name}%{?_isa} = %{version}-%{release} +Provides: bundled(boost-devel) = %{bundled_boost_version} + +%description devel +This package contains development files for Phusion Passenger®. Installing this +package allows it to compile native extensions for non-standard Ruby interpreters, +and allows Passenger Standalone to use a different Nginx core version. + +%package help +Summary: Phusion Passenger documentation +Requires: %{name} = %{version}-%{release} +Obsoletes: rubygem-passenger-doc < %{version}-%{release} +Provides: rubygem-passenger-doc = %{version}-%{release} +Obsoletes: %{name}-doc < %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +BuildArch: noarch + +%description help +This package contains documentation files for Phusion Passenger®. + +%prep +%autosetup -n %{name}-%{version} + +%build +export EXTRA_CFLAGS="${CFLAGS:-%optflags} -Wno-deprecated" +export EXTRA_CXXFLAGS="${CXXFLAGS:-%optflags} -Wno-deprecated" + +export EXTRA_CFLAGS=`echo "$EXTRA_CFLAGS" | sed 's|-O2||g'` +export EXTRA_CXXFLAGS=`echo "$EXTRA_CXXFLAGS" | sed 's|-O2||g'` +export OPTIMIZE=yes + +export CACHING=false + +export CCACHE_COMPRESS=1 +export CCACHE_COMPRESSLEVEL=3 + +export LANG=en_US.UTF-8 +export LANGUAGE=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 + +rake -m fakeroot \ + NATIVE_PACKAGING_METHOD=rpm \ + FS_PREFIX=%{_prefix} \ + FS_BINDIR=%{_bindir} \ + FS_SBINDIR=%{_sbindir} \ + FS_DATADIR=%{_datadir} \ + FS_LIBDIR=%{_libdir} \ + FS_DOCDIR=%{_docdir} \ + RUBYLIBDIR=%{_datadir}/passenger \ + RUBYARCHDIR=%{_libdir}/passenger \ + APACHE2_MODULE_PATH=%{_httpd_moddir}/mod_passenger.so + + +%install +export LANG=en_US.UTF-8 +export LANGUAGE=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 + +%{__rm} -rf %{buildroot} +%{__mkdir} %{buildroot} +%{__cp} -a pkg/fakeroot/* %{buildroot}/ + +%{__mkdir_p} %{buildroot}%{_httpd_confdir} %{buildroot}%{_httpd_modconfdir} +%{__sed} -e 's|@PASSENGERROOT@|%{_datadir}/passenger/phusion_passenger/locations.ini|g' %{SOURCE100} > passenger.conf +%{__sed} -i -e '/^# *Require all granted/d' passenger.conf + + +%if "%{_httpd_modconfdir}" == "%{_httpd_confdir}" + %{__cat} %{SOURCE101} passenger.conf > passenger-combined.conf + touch -r %{SOURCE100} passenger-combined.conf + %{__install} -pm 0644 passenger-combined.conf %{buildroot}%{_httpd_confdir}/passenger.conf +%else + touch -r %{SOURCE100} passenger.conf + %{__install} -pm 0644 passenger.conf %{buildroot}%{_httpd_confdir}/passenger.conf + %{__install} -pm 0644 %{SOURCE101} %{buildroot}%{_httpd_modconfdir}/10-passenger.conf + touch -r %{SOURCE101} %{buildroot}%{_httpd_modconfdir}/10-passenger.conf +%endif + +%{__mkdir_p} %{buildroot}%{_localstatedir}/log/passenger-analytics +%{__mkdir_p} %{buildroot}%{_localstatedir}/run/passenger-instreg +%{__mkdir_p} %{buildroot}%{_usr}/lib/tmpfiles.d +%{__install} -m 644 -p %{SOURCE102} \ + %{buildroot}%{_usr}/lib/tmpfiles.d/passenger.conf + +%{__mkdir_p} %{buildroot}%{_sysconfdir}/logrotate.d +%{__install} -pm 0644 %{SOURCE10} %{buildroot}%{_sysconfdir}/logrotate.d/passenger + +%{__mkdir_p} %{buildroot}%{_mandir}/man1 +%{__mkdir_p} %{buildroot}%{_mandir}/man8 +%{__cp} man/*.1 %{buildroot}%{_mandir}/man1 +%{__cp} man/*.8 %{buildroot}%{_mandir}/man8 + +%{__chmod} +x %{buildroot}%{_datadir}/passenger/helper-scripts/wsgi-loader.py + +find %{buildroot}%{_bindir} %{buildroot}%{_datadir}/passenger/helper-scripts/ -type f | xargs sed -i 's|^#!/usr/bin/env ruby$|#!/usr/bin/ruby|' +sed -i 's|^#!/usr/bin/env python$|#!/usr/bin/python3|' %{buildroot}%{_datadir}/passenger/helper-scripts/wsgi-loader.py + +%files +%doc LICENSE CONTRIBUTORS CHANGELOG +%{_bindir}/%{name}* +%exclude %{_bindir}/%{name}-install-*-module +%{_sbindir}/* +%{_usr}/lib/tmpfiles.d/passenger.conf +%{_datadir}/passenger/helper-scripts +%{_datadir}/passenger/templates +%{_datadir}/passenger/standalone_default_root +%{_datadir}/passenger/node +%{_datadir}/passenger/*.types +%{_datadir}/passenger/*.crt +%{_datadir}/passenger/*.txt +%{_datadir}/passenger/*.pem +%{_datadir}/passenger/*.p12 +%dir %{_localstatedir}/log/passenger-analytics +%dir %attr(755, root, root) %{_localstatedir}/run/passenger-instreg +%{_sysconfdir}/logrotate.d/passenger +%{_datadir}/passenger/* +%{_libdir}/passenger/support-binaries +%{_libdir}/passenger/passenger_native_support.so + +%files devel +%{_datadir}/passenger/ngx_http_passenger_module +%{_datadir}/passenger/ruby_extension_source +%{_datadir}/passenger/include +%{_libdir}/%{name}/common +%exclude %{_libdir}/%{name}/nginx_dynamic + +%files -n mod_passenger +%config(noreplace) %{_httpd_modconfdir}/*.conf +%if "%{_httpd_modconfdir}" != "%{_httpd_confdir}" + %config(noreplace) %{_httpd_confdir}/*.conf +%endif +%{_httpd_moddir}/mod_passenger.so + +%files help +%{_docdir}/%{name}/* +%{_mandir}/*/* + +%changelog +* Tue Oct 19 2021 zhangweiguo - 6.0.8-2 +- add rake option -m + +* Tue Aug 10 2021 yixiangzhike - 6.0.8-1 +- update version to 6.0.8 + +* Sat Jan 23 2021 zoulin - 6.0.7-1 +- update version to 6.0.7 + +* Wed Mar 4 2020 openEuler Buildteam - 6.0.4-2 +- Package Init \ No newline at end of file -- Gitee From 58d1d4ee78aeb34c48101e00da73dd6f9ffd29a3 Mon Sep 17 00:00:00 2001 From: chenhongyu Date: Tue, 28 Dec 2021 06:26:34 +0000 Subject: [PATCH 6/8] update rust.spec. --- rust.spec | 98 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 38 deletions(-) diff --git a/rust.spec b/rust.spec index 1934afe..11cb905 100644 --- a/rust.spec +++ b/rust.spec @@ -1,9 +1,9 @@ %global rust_arches x86_64 i686 armv7hl aarch64 ppc64 ppc64le s390x %{!?channel: %global channel stable} -%global bootstrap_rust 1.50.0 -%global bootstrap_cargo 1.50.0 -%global bootstrap_channel 1.50.0 -%global bootstrap_date 2021-02-11 +%global bootstrap_rust 1.52.1 +%global bootstrap_cargo 1.52.1 +%global bootstrap_channel 1.52.1 +%global bootstrap_date 2021-10-02 %bcond_with llvm_static %bcond_with bundled_llvm %bcond_without bundled_libgit2 @@ -11,8 +11,8 @@ %bcond_without curl_http2 %bcond_without lldb Name: rust -Version: 1.51.0 -Release: 5 +Version: 1.53.0 +Release: 2 Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) URL: https://www.rust-lang.org @@ -22,23 +22,14 @@ ExclusiveArch: %{rust_arches} %else %global rustc_package rustc-%{channel}-src %endif -Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz -Source1: rustc-%{version}-src.tar.xz.aa -Source2: rustc-%{version}-src.tar.xz.ab +Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.gz Patch0001: 0001-Revert-Auto-merge-of-79547.patch -Patch0002: rustc-1.51.0-backport-pr81741.patch -Patch0003: rustc-1.51.0-backport-pr82289.patch -Patch0004: rustc-1.51.0-backport-pr82292.patch -Patch0005: rustc-1.51.0-backport-pr81910.patch -Patch0006: rustc-1.51.0-backport-pr81728.patch -Patch0007: rustc-1.51.0-backport-pr83629.patch Patch0008: rustc-1.48.0-disable-libssh2.patch Patch0009: rustc-1.51.0-disable-http2.patch Patch0010: clippy-driver-usage-should-user-friendly.patch Patch0011: cargo-help-clippy-should-have-description-to-user.patch Patch0012: fix-a-println-wrong-format.patch -Patch0013: CVE-2021-29922.patch %{lua: function rust_triple(arch) local abi = "gnu" if arch == "armv7hl" then @@ -53,7 +44,16 @@ Patch0013: CVE-2021-29922.patch end return arch.."-unknown-linux-"..abi end} +%{lua: function rust_musl_triple(arch) + local abi = "musl" + return arch.."-unknown-linux-"..abi +end} +%{lua: function rust_musl_root(arch) + return "--musl-root-"..arch +end} %global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))} +%global rust_musl_triple %{lua: print(rust_musl_triple(rpm.expand("%{_target_cpu}")))} +%global rust_musl_root %{lua: print(rust_musl_root(rpm.expand("%{_target_cpu}")))} %if %defined bootstrap_arches %{lua: do local bootstrap_arches = {} @@ -81,7 +81,7 @@ BuildRequires: cargo >= %{bootstrap_cargo} BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= %{version}) %global local_rust_root %{_prefix} %endif -BuildRequires: make gcc gcc-c++ ncurses-devel curl curl-devel pkgconfig(libcurl) pkgconfig(liblzma) +BuildRequires: make gcc gcc-c++ ncurses-devel curl curl-devel musl-libc-static musl-gcc pkgconfig(libcurl) pkgconfig(liblzma) BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0 %global python python3 BuildRequires: %{python} @@ -96,12 +96,14 @@ BuildRequires: cmake >= 2.8.11 %global llvm llvm %global llvm_root %{_prefix} %endif +BuildRequires: %{llvm} >= 9.0 BuildRequires: %{llvm}-devel >= 9.0 %if %with llvm_static BuildRequires: %{llvm}-static libffi-devel %endif %endif -BuildRequires: procps-ng gdb +BuildRequires: procps-ng +BuildRequires: ninja-build Provides: rustc = %{version}-%{release} Provides: rustc%{?_isa} = %{version}-%{release} Requires: %{name}-std-static%{?_isa} = %{version}-%{release} @@ -118,6 +120,8 @@ Requires: /usr/bin/cc %global llvm_has_filecheck 1 %endif %endif +%global musl_root %{_prefix}/musl + %description Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. @@ -225,10 +229,6 @@ Obsoletes: %{name}-doc < %{version}-%{release} %{name}-cargo-doc < %{version}- Man pages and other related help documents for rust. %prep -cd ../SOURCES -cat %{SOURCE1} %{SOURCE2} | tar xJ -cd .. - %ifarch %{bootstrap_arches} %setup -q -n %{bootstrap_root} -T -b %{bootstrap_source} ./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \ @@ -238,12 +238,6 @@ test -f '%{local_rust_root}/bin/rustc' %endif %setup -q -n %{rustc_package} %patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 -%patch0007 -p1 %if %with disabled_libssh2 %patch0008 -p1 %endif @@ -254,14 +248,9 @@ rm -rf vendor/libnghttp2-sys/ %if "%{python}" != "python3" sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure %endif -%if %without bundled_llvm -rm -rf src/llvm-project/ -mkdir -p src/llvm-project/libunwind/ -%endif %patch0010 -p1 %patch0011 -p1 %patch0012 -p1 -%patch0013 -p1 rm -rf vendor/curl-sys/curl/ rm -rf vendor/jemalloc-sys/jemalloc/ rm -rf vendor/libssh2-sys/libssh2/ @@ -301,7 +290,7 @@ export %{rust_env} %ifarch %{arm} %{ix86} s390x %define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2 %else -%define enable_debuginfo --debuginfo-level=2 +%define enable_debuginfo --debuginfo-level=1 %endif %ifnarch %{power64} %define codegen_units_std --set rust.codegen-units-std=1 @@ -313,7 +302,8 @@ if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then fi %configure --disable-option-checking \ --libdir=%{common_libdir} \ - --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \ + %{rust_musl_root}=%{musl_root} \ + --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple},%{rust_musl_triple} \ --python=%{python} \ --local-rust-root=%{local_rust_root} \ %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \ @@ -390,12 +380,18 @@ export %{rust_env} %dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib %{rustlibdir}/%{rust_triple}/lib/*.so +%dir %{rustlibdir}/%{rust_musl_triple} +%dir %{rustlibdir}/%{rust_musl_triple}/lib %files std-static %dir %{rustlibdir} %dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib %{rustlibdir}/%{rust_triple}/lib/*.rlib +%dir %{rustlibdir}/%{rust_musl_triple} +%dir %{rustlibdir}/%{rust_musl_triple}/lib +%{rustlibdir}/%{rust_musl_triple}/lib/*.rlib +%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/*.o %files debugger-common %dir %{rustlibdir} @@ -446,6 +442,7 @@ export %{rust_env} %files analysis %{rustlibdir}/%{rust_triple}/analysis/ +%{rustlibdir}/%{rust_musl_triple}/analysis/ %files help %dir %{_docdir}/%{name} @@ -460,6 +457,7 @@ export %{rust_env} %{_docdir}/%{name}/html/*.png %{_docdir}/%{name}/html/*.svg %{_docdir}/%{name}/html/*.woff +%{_docdir}/%{name}/html/*.woff2 %license %{_docdir}/%{name}/html/*.md %{_docdir}/cargo/html %{_mandir}/man1/rustc.1* @@ -467,8 +465,32 @@ export %{rust_env} %{_mandir}/man1/cargo*.1* %changelog -* Wed 18 Aug 2021 yaoxin - 1.51.0-5 -- fix CVE-2021-29922 +* Fri Oct 08 2021 donglongtao - 1.53.0-2 +- Update debuginfo-level config + +* Sat Oct 02 2021 sdlzx - 1.53.0-1 +- Update to 1.53.0 + +* Tue Sep 28 2021 sdlzx - 1.52.1-1 +- Update to 1.52.1 + +* Fri Sep 17 2021 donglongtao - 1.51.0-10 +- Fix rustdoc install very slow + +* Tue Aug 24 2021 caodongxia - 1.51.0-9 +- Fix rustdoc error info + +* Wed Aug 18 2021 yaoxin - 1.51.0-8 +- Fix CVE-2021-29922 + +* Wed Aug 04 2021 chenyanpanHW - 1.51.0-7 +- DESC: delete BuildRequires gdb + +* Thu 08 Jul 2021 Jiajie Li - 1.51.0-6 +- Add build require of ninja and llvm + +* Thu 01 Jul 2021 Jiajie Li - 1.51.0-5 +- Add support for musl target * Thu 24 Jun 2021 sunguoshuai - 1.51.0-4 - fix a println wrong format @@ -492,4 +514,4 @@ export %{rust_env} - add llvm in rust * Thu Dec 5 2019 wutao - 1.29.1-3 -- Package init +- Package init \ No newline at end of file -- Gitee From 220bb46147e6138efccfd75a5d3abe1815def876 Mon Sep 17 00:00:00 2001 From: chenhongyu Date: Tue, 28 Dec 2021 06:29:37 +0000 Subject: [PATCH 7/8] add gtk-doc.spec. --- gtk-doc.spec | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 gtk-doc.spec diff --git a/gtk-doc.spec b/gtk-doc.spec new file mode 100644 index 0000000..17c83c8 --- /dev/null +++ b/gtk-doc.spec @@ -0,0 +1,96 @@ +%global debug_package %{nil} +%global __python %{__python3} + +Name: gtk-doc +Version: 1.33.2 +Release: 5 +Summary: Generate API documentation from comments that can be added to C code +License: Verbatim and GPLv2+ +URL: https://www.gtk.org/gtk-doc/ +Source0: https://download.gnome.org/sources/gtk-doc/1.33/%{name}-%{version}.tar.xz +Patch0: fix-fixxref-not-found-file.patch +Patch1: fix-mkdb-not-found-file.patch +Patch2: fix-gtkdoc-rebase-NoneType-object-has-no-attribute-group.patch + +BuildRequires: python3-devel docbook-utils libxslt gettext +BuildRequires: itstool yelp-tools docbook-style-xsl gcc +BuildRequires: meson glib2-devel +BuildRequires: python3-pygments +BuildRequires: python3-parameterized +BuildRequires: python3-anytree +BuildRequires: python3-lxml +Requires: docbook-style-xsl docbook-utils libxslt glib2-devel +Requires: python3-pygments python3-parameterized python3-anytree python3-lxml + + +%description +GTK-Doc is a project which was started to generate API documentation from comments added to C code. +It is typically used to document the public API of GTK and GNOME libraries, but it can also be used +to document application code. + +%prep +%autosetup -n %{name}-%{version} -p1 +sed -i 's/@DBLATEX@/\/usr\/bin\/dblatex/g' gtkdoc/config_data.py.in + +mv doc/README doc/README.1 + +%build +export PYTHON=%{__python3} +%meson +%meson_build + +%install +%meson_install + +%check +%meson_test + +%files +%doc README doc/* examples +%license COPYING COPYING-DOCS AUTHORS +%{_bindir}/* +%{_libdir}/cmake/ +%{_datadir}/aclocal/ +%{_datadir}/%{name}/ +%{_datadir}/*/*.pc +%{_datadir}/help/*/%{name}-manual/ + +%changelog +* Fri Oct 15 2021 sunguoshuai - 1.33.2-5 +- Del buildrequire dblatex by replace macro @DBLATEX@ with dblatex path + +* Thu Jul 22 2021 sunguoshuai - 1.33.2-4 +- Del useless buildrequire gdb + +* Non Jul 26 2021 Ge Wang - 1.33.2-3 +- fix gtkdoc-rebase NoneType object has no attribute 'group' + +* Sun Jul 25 2021 liyanan - 1.33.2-2 +- fix not found file + +* Wed May 19 2021 weijin deng - 1.33.2-1 +- Upgrade to 1.33.2 +- Update Version +- Vsesion 1.33.2 change its "cmake" dir to /lib64 + +* Tue Dec 1 2020 Dillon Chen - 1.33.0-1 +- upgrade to 1.33.0 + +* Mon Jun 8 2020 Dillon Chen - 1.32-1 +- upgrade to 1.32 + +* Sat Mar 21 2020 hexiujun - 1.29-4 +- Type:NA +- ID:NA +- SUG:NA +- DESC:add gdb build require + +* Wed Jan 15 2020 gulining - 1.29-3 +- solve unresolveable + +* Wed Dec 4 2019 openEuler Buildteam - 1.29-2 +- strenthen spec + +* Thu Aug 29 2019 openEuler Buildteam - 1.29-1 +- Package init + -- Gitee From 341da8ee0ca325df7b93d86e70749e2c580060bf Mon Sep 17 00:00:00 2001 From: chenhongyu Date: Wed, 29 Dec 2021 01:56:56 +0000 Subject: [PATCH 8/8] add fix-rustdoc-install-slow.patch. --- fix-rustdoc-install-slow.patch | 84 ++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 fix-rustdoc-install-slow.patch diff --git a/fix-rustdoc-install-slow.patch b/fix-rustdoc-install-slow.patch new file mode 100644 index 0000000..a167459 --- /dev/null +++ b/fix-rustdoc-install-slow.patch @@ -0,0 +1,84 @@ +From 33ccf6af163e2d04a592cca506f334d905cb94aa Mon Sep 17 00:00:00 2001 +From: Anders Kaseorg +Date: Fri, 17 Sep 2021 00:19:22 -0400 +Subject: [PATCH] bootstrap: Restore missing --bulk-dirs for rust-docs, + rustc-docs + +--- + src/bootstrap/dist.rs | 4 ++-- + src/bootstrap/tarball.rs | 17 +++++++++++++++++ + 2 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs +index 86c84a2..aadbb98 100644 +--- a/src/bootstrap/dist.rs ++++ b/src/bootstrap/dist.rs +@@ -74,7 +74,7 @@ impl Step for Docs { + + let mut tarball = Tarball::new(builder, "rust-docs", &host.triple); + tarball.set_product_name("Rust Documentation"); +- tarball.add_dir(&builder.doc_out(host), dest); ++ tarball.add_bulk_dir(&builder.doc_out(host), dest); + tarball.add_file(&builder.src.join("src/doc/robots.txt"), dest, 0o644); + Some(tarball.generate()) + } +@@ -107,7 +107,7 @@ impl Step for RustcDocs { + + let mut tarball = Tarball::new(builder, "rustc-docs", &host.triple); + tarball.set_product_name("Rustc Documentation"); +- tarball.add_dir(&builder.compiler_doc_out(host), "share/doc/rust/html/rustc"); ++ tarball.add_bulk_dir(&builder.compiler_doc_out(host), "share/doc/rust/html/rustc"); + Some(tarball.generate()) + } + } +diff --git a/src/bootstrap/tarball.rs b/src/bootstrap/tarball.rs +index 7fb0305..50f8605 100644 +--- a/src/bootstrap/tarball.rs ++++ b/src/bootstrap/tarball.rs +@@ -94,6 +94,7 @@ pub(crate) struct Tarball<'a> { + temp_dir: PathBuf, + image_dir: PathBuf, + overlay_dir: PathBuf, ++ bulk_dirs: Vec, + + include_target_in_component_name: bool, + is_preview: bool, +@@ -132,6 +133,7 @@ impl<'a> Tarball<'a> { + temp_dir, + image_dir, + overlay_dir, ++ bulk_dirs: Vec::new(), + + include_target_in_component_name: false, + is_preview: false, +@@ -196,6 +198,11 @@ impl<'a> Tarball<'a> { + self.builder.cp_r(src.as_ref(), &dest); + } + ++ pub(crate) fn add_bulk_dir(&mut self, src: impl AsRef, dest: impl AsRef) { ++ self.bulk_dirs.push(dest.as_ref().to_path_buf()); ++ self.add_dir(src, dest); ++ } ++ + pub(crate) fn generate(self) -> GeneratedTarball { + let mut component_name = self.component.clone(); + if self.is_preview { +@@ -216,6 +223,16 @@ impl<'a> Tarball<'a> { + .arg("--image-dir") + .arg(&this.image_dir) + .arg(format!("--component-name={}", &component_name)); ++ ++ if let Some((dir, dirs)) = this.bulk_dirs.split_first() { ++ let mut arg = dir.as_os_str().to_os_string(); ++ for dir in dirs { ++ arg.push(","); ++ arg.push(dir); ++ } ++ cmd.arg("--bulk-dirs").arg(&arg); ++ } ++ + this.non_bare_args(cmd); + }) + } +-- +1.8.3.1 -- Gitee