The package rpms/java-11-openjdk.git has added or updated architecture specific content in
its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/java-11-openjdk.git/commit/?id=ed....
Change:
+%ifarch %{fastdebug_arches}
Thanks.
Full change:
============
commit edadb626bcd7c242854ab37e3bbe72e5e109edeb
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Dec 20 09:40:12 2020 +0100
Introduced fastdebug build cycle and subpackages
diff --git a/java-11-openjdk.spec b/java-11-openjdk.spec
index 7ce6e7c..61efc90 100644
--- a/java-11-openjdk.spec
+++ b/java-11-openjdk.spec
@@ -4,18 +4,20 @@
#
# Examples:
#
-# Produce release *and* slowdebug builds on x86_64 (default):
+# Produce release, fastdebug *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
+# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug --without fastdebug
#
# Only produce a release build on x86_64:
-# $ fedpkg mockbuild --without slowdebug
+# $ fedpkg mockbuild --without slowdebug --without fastdebug
#
# Only produce a debug build on x86_64:
# $ fedpkg local --without release
#
+# Enable fastdebug builds by default on relevant arches.
+%bcond_without fastdebug
# Enable slowdebug builds by default on relevant arches.
%bcond_without slowdebug
# Enable release builds by default on relevant arches.
@@ -35,13 +37,16 @@
# See
https://github.com/rpm-software-management/rpm/issues/127 to comments at
"pmatilai commented on Aug 18, 2017"
# (initiated in
https://bugzilla.redhat.com/show_bug.cgi?id=1482192)
%global debug_suffix_unquoted -slowdebug
+%global fastdebug_suffix_unquoted -fastdebug
# quoted one for shell operations
%global debug_suffix "%{debug_suffix_unquoted}"
+%global fastdebug_suffix "%{fastdebug_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_warning This package is unoptimised with full debugging. Install only as
needed and remove ASAP.
%global debug_on with full debug on
+%global fastdebug_warning This package is optimised with full debugging. Install only as
needed and remove ASAP.
+%global for_fastdebug_on with minimal debug on
%global for_debug for packages with debug on
%if %{with release}
@@ -51,9 +56,9 @@
%endif
%if %{include_normal_build}
-%global build_loop1 %{normal_suffix}
+%global normal_build %{normal_suffix}
%else
-%global build_loop1 %{nil}
+%global normal_build %{nil}
%endif
# We have hardcoded list of files, which is appearing in alternatives, and in files
@@ -91,6 +96,7 @@
%global systemtap_arches %{jit_arches}
# Set of architectures with a Ahead-Of-Time (AOT) compiler
%global aot_arches x86_64 %{aarch64}
+%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm}
# Set of architectures which support class data sharing
@@ -133,17 +139,34 @@
%global zgc_feature -zgc
%endif
+# By default, we build a fastdebug build during main build only on fastdebug
architectures
+%if %{with fastdebug}
+%ifarch %{fastdebug_arches}
+%global include_fastdebug_build 1
+%else
+%global include_fastdebug_build 0
+%endif
+%else
+%global include_fastdebug_build 0
+%endif
+
%if %{include_debug_build}
-%global build_loop2 %{debug_suffix}
+%global slowdebug_build %{debug_suffix}
%else
-%global build_loop2 %{nil}
+%global slowdebug_build %{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}
+%if %{include_fastdebug_build}
+%global fastdebug_build %{fastdebug_suffix}
+%else
+%global fastdebug_build %{nil}
+%endif
+
+# If you disable both builds, then the build fails
+# Note that the debug build requires the normal build for docs
+%global build_loop %{normal_build} %{fastdebug_build} %{slowdebug_build}
+# Test slowdebug first as it provides the best diagnostics
+%global rev_build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
%ifarch %{bootstrap_arches}
%global bootstrap_build 1
@@ -261,9 +284,9 @@
%global top_level_dir_name %{origin}
%global minorver 0
%global buildver 11
-%global rpmrelease 6
+%global rpmrelease 7
#%%global tagsuffix ""
-# priority must be 8 digits in total; untill openjdk 1.8 we were using 18..... so when
moving to 11 we had to add another digit
+# priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we
moved to 11, we had to add another digit
%if %is_system_jdk
%global priority %( printf '%02d%02d%02d%02d' %{majorver} %{minorver}
%{securityver} %{buildver} )
%else
@@ -533,7 +556,7 @@ alternatives \\
--slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
%{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\
- %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \\
+ %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext
for X in %{origin} %{javaver} ; do
alternatives \\
@@ -717,7 +740,7 @@ exit 0
%config(noreplace) %{etcjavadir -- %{?1}}/conf/logging.properties
%config(noreplace) %{etcjavadir -- %{?1}}/conf/security/nss.cfg
%config(noreplace) %{etcjavadir -- %{?1}}/conf/management/jmxremote.access
-# this is conifg template, thus not config-noreplace
+# these are config templates, thus not config-noreplace
%config %{etcjavadir -- %{?1}}/conf/management/jmxremote.password.template
%config(noreplace) %{etcjavadir -- %{?1}}/conf/management/management.properties
%config(noreplace) %{etcjavadir -- %{?1}}/conf/net.properties
@@ -1210,6 +1233,17 @@ The %{origin_nice} runtime environment.
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package fastdebug
+Summary: %{origin_nice} Runtime Environment %{majorver} %{fastdebug_on}
+Group: Development/Languages
+
+%{java_rpo -- %{fastdebug_suffix_unquoted}}
+%description fastdebug
+The %{origin_nice} runtime environment.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package headless
Summary: %{origin_nice} Headless Runtime Environment %{majorver}
@@ -1231,6 +1265,18 @@ The %{origin_nice} runtime environment %{majorver} without audio
and video suppo
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package headless-fastdebug
+Summary: %{origin_nice} Runtime Environment %{fastdebug_on}
+Group: Development/Languages
+
+%{java_headless_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description headless-fastdebug
+The %{origin_nice} runtime environment %{majorver} without audio and video support.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package devel
Summary: %{origin_nice} Development Environment %{majorver}
@@ -1252,6 +1298,18 @@ The %{origin_nice} development tools %{majorver}.
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package devel-fastdebug
+Summary: %{origin_nice} Development Environment %{majorver} %{fastdebug_on}
+Group: Development/Tools
+
+%{java_devel_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description devel-fastdebug
+The %{origin_nice} development tools %{majorver}.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package static-libs
Summary: %{origin_nice} libraries for static linking %{majorver}
@@ -1273,6 +1331,17 @@ The %{origin_nice} libraries for static linking %{majorver}.
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package static-libs-fastdebug
+Summary: %{origin_nice} libraries for static linking %{majorver} %{fastdebug_on}
+
+%{java_static_libs_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description static-libs-fastdebug
+The %{origin_nice} libraries for static linking %{majorver}.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package jmods
Summary: JMods for %{origin_nice} %{majorver}
@@ -1294,6 +1363,19 @@ The JMods for %{origin_nice} %{majorver}.
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package jmods-fastdebug
+Summary: JMods for %{origin_nice} %{majorver} %{fastdebug_on}
+Group: Development/Tools
+
+%{java_jmods_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description jmods-fastdebug
+The JMods for %{origin_nice} %{majorver}.
+%{fastdebug_warning}
+%endif
+
+
%if %{include_normal_build}
%package demo
Summary: %{origin_nice} Demos %{majorver}
@@ -1315,6 +1397,18 @@ The %{origin_nice} demos %{majorver}.
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package demo-fastdebug
+Summary: %{origin_nice} Demos %{majorver} %{fastdebug_on}
+Group: Development/Languages
+
+%{java_demo_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description demo-fastdebug
+The %{origin_nice} demos %{majorver}.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package src
Summary: %{origin_nice} Source Bundle %{majorver}
@@ -1337,6 +1431,19 @@ The java-%{origin}-src-slowdebug sub-package contains the complete
%{origin_nice
class library source code for use by IDE indexers and debuggers. Debugging
%{for_debug}.
%endif
+%if %{include_fastdebug_build}
+%package src-fastdebug
+Summary: %{origin_nice} Source Bundle %{majorver} %{for_fastdebug}
+Group: Development/Languages
+
+%{java_src_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description src-fastdebug
+The java-%{origin}-src-fastdebug sub-package contains the complete %{origin_nice}
%{majorver}
+ class library source code for use by IDE indexers and debuggers. Debugging
%{for_fastdebug}.
+%endif
+
+
%if %{include_normal_build}
%package javadoc
Summary: %{origin_nice} %{majorver} API documentation
@@ -1365,19 +1472,29 @@ The %{origin_nice} %{majorver} API documentation compressed in a
single archive.
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"
+ echo "include_normal_build is %{include_normal_build}, that is 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"
+ echo "include_debug_build is %{include_debug_build}, that is 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."
+if [ %{include_fastdebug_build} -eq 0 -o %{include_fastdebug_build} -eq 1 ] ; then
+ echo "include_fastdebug_build is %{include_fastdebug_build}"
+else
+ echo "include_fastdebug_build is %{include_fastdebug_build}, that is invalid. Use
1 for yes or 0 for no"
exit 13
fi
+if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 -a
%{include_fastdebug_build} -eq 0 ] ; then
+ echo "You have disabled all builds (normal,fastdebug,slowdebug). That is a no
go."
+ exit 14
+fi
+if [ %{include_normal_build} -eq 0 ] ; then
+ echo "You have disabled the normal build, but this is required to provide docs for
the debug build."
+ exit 15
+fi
%setup -q -c -n %{uniquesuffix ""} -T -a 0
#
https://bugzilla.redhat.com/show_bug.cgi?id=1189084
prioritylength=`expr length %{priority}`
@@ -1410,6 +1527,9 @@ tar --strip-components=1 -x -I xz -f %{SOURCE8}
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
%endif
+%if %{include_fastdebug_build}
+cp -r tapset tapset%{fastdebug_suffix}
+%endif
for suffix in %{build_loop} ; do
@@ -1502,7 +1622,7 @@ bash ../configure \
%ifarch %{ppc64le}
--with-jobs=1 \
%endif
- --with-version-build=1 \
+ --with-version-build=%{buildver} \
--with-version-pre="%{ea_designator}" \
--with-version-opt=%{lts_designator} \
--with-version-patch=1 \
@@ -1676,6 +1796,7 @@ quit
end
run -version
EOF
+
# This fails on s390x for some reason. Disable for now. See:
#
https://koji.fedoraproject.org/koji/taskinfo?taskID=41499227
%ifnarch s390x
@@ -1756,13 +1877,12 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir --
$suffix}/lib/static/linux-%{archi
cp -a %{buildoutputdir -- $suffix}/images/%{static_libs_image}/lib/*.a \
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/lib/static/linux-%{archinstall}/glibc
-
if ! echo $suffix | grep -q "debug" ; then
# Install Javadoc documentation
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
cp -a %{buildoutputdir -- $suffix}/images/docs
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
- #cp -a %{buildoutputdir --
$suffix}/bundles/jdk-%{newjavaver}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
- cp -a %{buildoutputdir -- $suffix}/bundles/jdk-11.0.9.1+1%{lts_designator_zip}-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
+ #cp -a %{buildoutputdir --
$suffix}/bundles/jdk-%{newjavaver}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip || ls -l
%{buildoutputdir -- $suffix}/bundles/
+ cp -a %{buildoutputdir -- $suffix}/bundles/jdk-11.0.9.1+11-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip || ls -l %{buildoutputdir
-- $suffix}/bundles/
fi
# Install release notes
@@ -1919,6 +2039,33 @@ require "copy_jdk_configs.lua"
%{posttrans_devel -- %{debug_suffix_unquoted}}
%endif
+%if %{include_fastdebug_build}
+%post fastdebug
+%{post_script -- %{fastdebug_suffix_unquoted}}
+
+%post headless-fastdebug
+%{post_headless -- %{fastdebug_suffix_unquoted}}
+
+%postun fastdebug
+%{postun_script -- %{fastdebug_suffix_unquoted}}
+
+%postun headless-fastdebug
+%{postun_headless -- %{fastdebug_suffix_unquoted}}
+
+%posttrans fastdebug
+%{posttrans_script -- %{fastdebug_suffix_unquoted}}
+
+%post devel-fastdebug
+%{post_devel -- %{fastdebug_suffix_unquoted}}
+
+%postun devel-fastdebug
+%{postun_devel -- %{fastdebug_suffix_unquoted}}
+
+%posttrans devel-fastdebug
+%{posttrans_devel -- %{fastdebug_suffix_unquoted}}
+
+%endif
+
%if %{include_normal_build}
%files
# main package builds always
@@ -1953,9 +2100,8 @@ require "copy_jdk_configs.lua"
%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
+# This puts a huge documentation file in /usr/share
+# It is now architecture-dependent, as eg. AOT and Graal are now x86_64 only
# same for debug variant
%files javadoc-zip
%{files_javadoc_zip %{nil}}
@@ -1984,8 +2130,34 @@ require "copy_jdk_configs.lua"
%{files_src -- %{debug_suffix_unquoted}}
%endif
+%if %{include_fastdebug_build}
+%files fastdebug
+%{files_jre -- %{fastdebug_suffix_unquoted}}
+
+%files headless-fastdebug
+%{files_jre_headless -- %{fastdebug_suffix_unquoted}}
+
+%files devel-fastdebug
+%{files_devel -- %{fastdebug_suffix_unquoted}}
+
+%files static-libs-fastdebug
+%{files_static_libs -- %{fastdebug_suffix_unquoted}}
+
+%files jmods-fastdebug
+%{files_jmods -- %{fastdebug_suffix_unquoted}}
+
+%files demo-fastdebug
+%{files_demo -- %{fastdebug_suffix_unquoted}}
+
+%files src-fastdebug
+%{files_src -- %{fastdebug_suffix_unquoted}}
+
+%endif
%changelog
+* Sat Dec 19 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:11.0.9.11-7
+- introduced fastdebug build cycle and subpackages
+
* Thu Dec 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:11.0.9.11-6
- introduced nm based check to verify alt-java on x86_64 is patched, and no other
alt-java or java is patched
- patch600 rh1750419-redhat_alt_java.patch amended to die, if it is used wrongly