#26 if-outed versione-less provides if the pkg is consideredf techpreview
Merged 5 years ago by jvanek. Opened 5 years ago by jvanek.

file modified
+56 -29
@@ -68,6 +68,10 @@

  # similarly for other %%{_jvmdir}/{jre,java} and %%{_javadocdir}/{java,java-zip}

  %define is_release_build() %( if [ "%{?1}" == "%{debug_suffix_unquoted}" ]; then echo "0" ; else echo "1"; fi )

  

+ # while JDK is a techpreview(is_system_jdk=0), some provides are turned off. Once jdk stops to be an techpreview, move it to 1

+ # as sytem JDK, we mean any JDK which can run whole system java stack without issues (like bytecode issues, module issues, dependencies...)

+ %global is_system_jdk 0

+ 

  %global aarch64         aarch64 arm64 armv8

  # we need to distinguish between big and little endian PPC64

  %global ppc64le         ppc64le
@@ -146,7 +150,6 @@

  %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)

  

- 

  # fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349

  %global _privatelibs libsplashscreen[.]so.*|libawt_xawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libextnet[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjimage[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmanagement_agent[.]so.*|libmanagement_ext[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libprefs[.]so.*|librmi[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*

  
@@ -232,9 +235,13 @@

  %global top_level_dir_name   %{origin}

  %global minorver        0

  %global buildver        13

- # priority must be 7 digits in total

- # setting to 1, so debug ones can have 0

- %global priority        00000%{minorver}1

+ # 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

+ %if %is_system_jdk

+ %global priority %( printf '%02d%02d%02d%02d' %{majorver} {minorver} %{securityver} %{buildver} )

+ %else

+ # for techpreview, using 1, so slowdebugs can have 0

+ %global priority %( printf '%08d' 1 )

+ %endif

  %global newjavaver      %{majorver}.%{minorver}.%{securityver}

  

  %global javaver         %{majorver}
@@ -637,6 +644,7 @@

  %config(noreplace) %{etcjavadir -- %{?1}}/conf/sound.properties

  %{_jvmdir}/%{sdkdir -- %{?1}}/conf

  %{_jvmdir}/%{sdkdir -- %{?1}}/lib/security

+ %if %is_system_jdk

  %if %{is_release_build -- %{?1}}

  %ghost %{_bindir}/java

  %ghost %{_jvmdir}/jre
@@ -651,6 +659,7 @@

  %ghost %{_jvmdir}/jre-%{javaver}

  %ghost %{_jvmdir}/jre-%{javaver}-%{origin}

  %endif

+ %endif

  }

  

  %define files_devel() %{expand:
@@ -717,6 +726,7 @@

  %dir %{tapsetdir}

  %{tapsetdir}/*%{_arch}%{?1}.stp

  %endif

+ %if %is_system_jdk

  %if %{is_release_build -- %{?1}}

  %ghost %{_bindir}/javac

  %ghost %{_jvmdir}/java
@@ -748,6 +758,7 @@

  %ghost %{_jvmdir}/java-%{javaver}

  %ghost %{_jvmdir}/java-%{javaver}-%{origin}

  %endif

+ %endif

  }

  

  %define files_jmods() %{expand:
@@ -768,17 +779,21 @@

  %define files_javadoc() %{expand:

  %doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}

  %license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/legal

+ %if %is_system_jdk

  %if %{is_release_build -- %{?1}}

  %ghost %{_javadocdir}/java

  %endif

+ %endif

  }

  

  %define files_javadoc_zip() %{expand:

  %doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip

  %license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/legal

+ %if %is_system_jdk

  %if %{is_release_build -- %{?1}}

  %ghost %{_javadocdir}/java-zip

  %endif

+ %endif

  }

  

  # not-duplicated requires/provides/obsoletes for normal/debug packages
@@ -794,13 +809,15 @@

  Provides: java-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}

  

  # Standard JPackage base provides

- #Provides: jre = %{javaver}%{?1}

- #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}:%{javaver}

+ %if %is_system_jdk

+ Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}

+ Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}

+ Provides: java%{?1} = %{epoch}:%{version}-%{release}

+ Provides: jre%{?1} = %{epoch}:%{version}-%{release}

+ %endif

  }

  

  %define java_headless_rpo() %{expand:
@@ -834,14 +851,16 @@

  Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}

  

  # Standard JPackage base provides

- #Provides: jre-headless%{?1} = %{epoch}:%{javaver}

  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}:%{javaver}

+ %if %is_system_jdk

+ Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}

+ Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}

+ Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release}

+ Provides: java-headless%{?1} = %{epoch}:%{version}-%{release}

+ %endif

  }

  

  %define java_devel_rpo() %{expand:
@@ -858,15 +877,16 @@

  Requires(postun):   chkconfig >= 1.7

  

  # Standard JPackage devel provides

- Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}

- Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}

- #Provides: java-sdk-%%{origin}%%{?1} = %%{epoch}:%%{version}

- #Provides: java-sdk%%{?1} = %%{epoch}:%%{javaver}

- Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}

- Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}

- #Provides: java-devel-%%{origin}%%{?1} = %%{epoch}:%%{version}

- #Provides: java-devel%%{?1} = %%{epoch}:%%{javaver}

- 

+ Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}

+ Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release}

+ Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release}

+ Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}

+ %if %is_system_jdk

+ Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}-%{release}

+ Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release}

+ Provides: java-devel%{?1} = %{epoch}:%{version}-%{release}

+ Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release}

+ %endif

  }

  

  %define java_jmods_rpo() %{expand:
@@ -875,20 +895,22 @@

  Requires:         %{name}-devel%{?1} = %{epoch}:%{version}-%{release}

  OrderWithRequires: %{name}-headless%{?1} = %{epoch}:%{version}-%{release}

  

- Provides: java-jmods%{?1} = %{epoch}:%{version}-%{release}

  Provides: java-%{javaver}-jmods%{?1} = %{epoch}:%{version}-%{release}

  Provides: java-%{javaver}-%{origin}-jmods%{?1} = %{epoch}:%{version}-%{release}

- 

+ %if %is_system_jdk

+ Provides: java-jmods%{?1} = %{epoch}:%{version}-%{release}

+ %endif

  }

  

  %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-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release}

  Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}

- 

+ %if %is_system_jdk

+ Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}

+ %endif

  }

  

  %define java_javadoc_rpo() %{expand:
@@ -903,18 +925,22 @@

  Requires(postun):   chkconfig >= 1.7

  

  # 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}

+ %if %is_system_jdk

+ Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}

+ %endif

  }

  

  %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-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}

  Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}

+ %if %is_system_jdk

+ Provides: java-src%{?1} = %{epoch}:%{version}-%{release}

+ %endif

  }

  

  # Prevent brp-java-repack-jars from being run
@@ -1286,8 +1312,8 @@

  %setup -q -c -n %{uniquesuffix ""} -T -a 0

  # https://bugzilla.redhat.com/show_bug.cgi?id=1189084

  prioritylength=`expr length %{priority}`

- if [ $prioritylength -ne 7 ] ; then

-  echo "priority must be 7 digits in total, violated"

+ if [ $prioritylength -ne 8 ] ; then

+  echo "priority must be 8 digits in total, violated"

   exit 14

  fi

  
@@ -1861,6 +1887,7 @@

  %changelog

  * Wed Dec 5 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.1.13-9

  - for non debug supackages, ghosted all masters and slaves (rhbz1649776)

+ - for tech-preview packages, if-outed versionless provides. Aligned versions to be %%{epoch}:%%{version}-%%{release} instead of chaotic

  

  * Wed Nov 28 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.1.13-8

  - Added %%global _find_debuginfo_opts -g

depends on https://src.fedoraproject.org/rpms/java-11-openjdk/pull-request/25. so only second commit is applicable

btw there was a severe bug:
was: Provides: jre = %{javaver}%{?1}
shouldbe: Provides: jre%{?1} = %{javaver}
As this changest was movig this. fixed.

Please review carefuly. I have bad feelings I forget to hide somethign more into if_not_techpreview

Noted one more issue:
For few provides, there is only
%{epoch}:%{javaver}
or even only %{javaver}

They should be united as {epoch}:%{version}-%{release} I guess?

rebased onto 3d8513e12ad8648cb5c11c48bca20d0ca94567c4

5 years ago

aligned with #25, fixed the versions. fixed issues accidentally not amended, and committed with #27
scratch with system-jdk==1 https://koji.fedoraproject.org/koji/taskinfo?taskID=31330992

Is the intention for this to be used similarly in JDK 8? Consider majorver == 8, minorver = 0, securityver == 191 and buildver == 36.
Then we'd have: priority == 800019236 which is a) 9 digits b) higher priority than any JDK 11 version. I'd suggest to replace this with:

%global priority %( printf '%02d%02d%03d%02d' %{majorver} %{minorver} %{securityver} %{buildver} )

That is, priority pads %{majorver} with leading zeros so as to avoid JDK 8 getting higher priority if JDK 11 would be system JDK. It would also
keep the priority fixed at 9 digits (unless securityver goes beyond 999 and/or major/minor beyond 99 which seems unlikely).

Please consider rephrasing the commit message. At least fix the spelling, please:
if-outed versione-less provides if the pkg is consideredf techpreview

Suggestion:
Only generate version-less provides for system JDK

Is the intention for this to be used similarly in JDK 8? Consider majorver == 8, minorver = 0, securityver == 191 and buildver == 36.
Then we'd have: priority == 800019236 which is a) 9 digits b) higher priority than any JDK 11 version. I'd suggest to replace this with:
%global priority %( printf '%02d%02d%03d%02d\n' %{majorver} {minorver} %{securityver} %{buildver} )

That is, priority pads %{majorver} with leading zeros so as to avoid JDK 8 getting higher priority if JDK 11 would be system JDK. It would also
keep the priority fixed at 9 digits (unless securityver goes beyond 999 and/or major/minor beyond 99 which seems unlikely).

This cant happen. There is a chekc in prep, that priority remains to 8digits. The overflows are handled by various leading zeroes. Whcih will be removed if you pass over 8. Also the failure leads to bug whre JDK matrix is included.

BUt I confess, it is manual work. Your
%global priority %( printf '%02d%02d%03d%02d\n' %{majorver} {minorver} %{securityver} %{buildver} )

Can be much better. Isn't there a risk, that if some of the 02d owefrlow to three, then it will have straneg effect?

Otherwise no, the schema is not intended for jdk8, jdk8 already have its own.

If this is supposed to be fixed (eg via your print) then I would vote for separate patch. But imho there is no need to introduce "
majorver == 8, minorver = 0, securityver ==XYZ and buildver == AB to the jdk8. I thjink it is quite happy as it is.

This cant happen. There is a chekc in prep, that priority remains to 8digits. The overflows are handled by various leading zeroes. Whcih will be removed if you pass over 8. Also the failure leads to bug whre JDK matrix is included.
BUt I confess, it is manual work.

Yes. Automatic > manual :)

Your
%global priority %( printf '%02d%02d%03d%02d\n' %{majorver} {minorver} %{securityver} %{buildver} )
Can be much better. Isn't there a risk, that if some of the 02d owefrlow to three, then it will have straneg effect?

Yes. That's what I've said: "unless securityver goes beyond 999 and/or major/minor beyond 99 which seems unlikely".

Since you are changing priority now, can I convince you to change it to something like the above and update the check to require 9 digits? It should work for JDK 8 too. It's just a question of which variables to feed to the priority macro. I can follow-up with a JDK 8 PR if you like.

but jdk 8 can not have have same number of digits. can it? If it will be starting with both 18 ot 8, in both cases must have less digits to be lower then the one starting with 11.

I will adjust the priority generation here as yoiu suggest The chanegs for jdk 8 will be done as separate PR to jdk8. btw, why 3 digits for security? only because of jdk8? thats for double rethingking....

For priorities matrixes, yo may see: https://bugzilla.redhat.com/show_bug.cgi?id=1189084

rebased onto 263d38cb4438ece8f56aa7dbab089a85d6973898

5 years ago

Rebased to current master, added automated generation of priority. owever kept on 8 digits. Move to 9 digits can be done once we agree aligned course with jdk9. Thanx!

And of course updated commit message. :wq

rebased onto 745a3e6

5 years ago

1 new commit added

  • Only generate version-less provides for system JDK
5 years ago

and commit is now removed again:-/

Pull-Request has been merged by jvanek

5 years ago