Spec URL: https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/3/java-1.8.0-openjdk.spec SRPM URL: https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/bins/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.src.rpm Description: A preview release of the upstream OpenJDK AArch32 porting project. In time it will be merged with the main java-1.8.0-openjdk package. Fedora Account System Username: jvanek
Hello! This package may be ... a bit exceptional. Especially - its going to be killed and merged in aprox. an year, and merged with main java-1.8.0-openjdk package. From that is derivated is shape - I'm intended to keep it in sync with java-1.8.0-openjdk package as musch as possible. Ideally with changed souerces only. Current diff may be seen at https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/init3.patch Also, this really is arm-32 *only* - by using it you will get aporx double speed, and double possibility of bug:) The bugs will go down and speed should go up intime. LAst,. but not less important are current sources. Current osurce is based on solemn tip of aarch32 project (http://hg.openjdk.java.net/aarch32-port/). Before pushing to fedor arepository, I *will* have this fixed - http://mail.openjdk.java.net/pipermail/aarch32-port-dev/2016-March/000154.htmlhttp://mail.openjdk.java.net/pipermail/aarch32-port-dev/2016-March/000154.html or somehow on my own so the sources will be reproducible. You can see build package at: https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/bins/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24/ (backup of http://koji.fedoraproject.org/koji/taskinfo?taskID=13377471)
Also - this pacckage is now not providing java/java devel. But will soon, once it will be really stable. Until then, you will be able to select it via alternatives only.
Thank you, I was just about to fix it. Sorry.
I'll have a look at this.
%global revision tip How do you intend to solve the reproducible sources issue?
I was hoping upstream will tag. They did not. So probabky as you suggested on IRC - to provide list of hashes:(
Did you get any response from upstream? I didn't see one.
/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/make/linux/makefiles/vm.make:309: Building precompiled.hpp.gch /usr/bin/g++ -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DAARCH32 -DZERO_LIBARCH=\"aarch32\" -DPRODUCT -I. -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/share/vm/prims -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/share/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/share/vm/precompiled -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/cpu/zero/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/os_cpu/linux_zero/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/os/linux/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/os/posix/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"25.tip-btip\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"mockbuild\"" -DHOTSPOT_LIB_ARCH=\"aarch32\" -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_zero -DTARGET_ARCH_MODEL_zero -DTARGET_OS_ARCH_linux_zero -DTARGET_OS_ARCH_MODEL_linux_zero -DTARGET_COMPILER_gcc -fPIC -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden -pipe -fno-strict-aliasing -g -fno-omit-frame-pointer -O3 -DVM_LITTLE_ENDIAN -Werror -Wpointer-arith -Wsign-compare -Wunused-function -Wunused-value -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -c -MMD -MP -MF ../generated/dependencies/precompiled.hpp.gch.d -fpch-deps -x c++-header /builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/share/vm/precompiled/precompiled.hpp -o precompiled.hpp.gch + /usr/bin/g++ -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DAARCH32 '-DZERO_LIBARCH="aarch32"' -DPRODUCT -I. -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/share/vm/prims -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/share/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/share/vm/precompiled -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/cpu/zero/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/os_cpu/linux_zero/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/os/linux/vm -I/builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/os/posix/vm -I../generated '-DHOTSPOT_RELEASE_VERSION="25.tip-btip"' '-DHOTSPOT_BUILD_TARGET="product"' '-DHOTSPOT_BUILD_USER="mockbuild"' '-DHOTSPOT_LIB_ARCH="aarch32"' '-DHOTSPOT_VM_DISTRO="OpenJDK"' -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_zero -DTARGET_ARCH_MODEL_zero -DTARGET_OS_ARCH_linux_zero -DTARGET_OS_ARCH_MODEL_linux_zero -DTARGET_COMPILER_gcc -fPIC -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden -pipe -fno-strict-aliasing -g -fno-omit-frame-pointer -O3 -DVM_LITTLE_ENDIAN -Werror -Wpointer-arith -Wsign-compare -Wunused-function -Wunused-value -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -c -MMD -MP -MF ../generated/dependencies/precompiled.hpp.gch.d -fpch-deps -x c++-header /builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/openjdk/hotspot/src/share/vm/precompiled/precompiled.hpp -o precompiled.hpp.gch The build you are linking above and the SRPM provided build the Zero interpreter from the aarch32 sources, *not* the aarch32 template interpreter!
Here is the first round of review feedback: Package Review ============== [!] URL in spec should be: http://openjdk.java.net/projects/aarch32-port/ [!] spec file name does not match package name. java-1.8.0-openjdk.spec vs java-1.8.0-openjdk-aarch32.spec [!] Some patches are not applied (commented out). They should get removed. ------ java-1.8.0-openjdk.spec: W: patch-not-applied Patch601: java-1.8.0-openjdk-rh1191652-root.patch java-1.8.0-openjdk.spec: W: patch-not-applied Patch602: java-1.8.0-openjdk-rh1191652-jdk.patch java-1.8.0-openjdk.spec: W: patch-not-applied Patch603: java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch java-1.8.0-openjdk.spec: W: patch-not-applied Patch106: remove_aarch64_template_for_gcc6.patch java-1.8.0-openjdk.spec: W: patch-not-applied Patch107: make_reservedcodecachesize_changes_aarch64_only.patch java-1.8.0-openjdk.spec: W: patch-not-applied Patch403: rhbz1206656_fix_current_stack_pointer.patch java-1.8.0-openjdk.spec: W: patch-not-applied Patch505: 8143855.patch ------ [!] Source0, aarch32-port-jdk8u-tip.tar.xz has a comment about how it's been generated, which does not seem to work. Please use some form of reproducible sources. File with hg revisions corresponding to "tip" at the time of source tarball generation should be fine. [!] Source8, systemtap-tapset.tar.gz, has no info as to how to generate it, nor is it a valid source URL. [!] Some "Provides" are commented out. They should get removed and re-added once deemed appropriate for the package to provide it. [!] Please remove FIXME comment: ---- #FIXME # --with-jvm-variants=core \ ---- [!] Licence contains illegal license name LGPL+. It should be LGPLv2+ See https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Software_License_List [!] The build that you've linked in the bug seems to update alternatives and prefer aarch32 over java-1.8.0-openjdk. This seems unexpected. The other version I had installed was java-1.8.0-openjdk-1.8.0.65-12.b17.fc24.armv7hl [!] The java -version string of this aarch32 build seems to suggest it's actually building a Zero JVM rather than a aarch32 version with the template interpreter. See line 1254 of the spec file. "java -version" was: --- $ java -version openjdk version "1.8.0_tip" OpenJDK Runtime Environment (build 1.8.0_tip-tip) OpenJDK Zero VM (build 25.tip-btip, interpreted mode) --- [!] Summary is too long. See rpmlint output. "OpenJDK Runtime Environment in a preview release of the upstream OpenJDK AArch32 porting project" is the offending summary. Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated ===== MUST items ===== Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [!]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. [?]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. It mentions GPL v2 + Classpath Exception. I did not check if others are still relevant. [?]: License file installed when any subpackage combination is installed. [?]: Package requires other packages for directories it uses. [?]: Package must own all directories that it creates. [!]: Package contains no bundled libraries without FPC exception. Bundled LCMS libs are being used. Comment mentions temporary work-around. Is this correct? [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [x]: Package contains desktop file if it is a GUI application. [x]: Development files must be in a -devel package [?]: Package uses nothing in %doc for runtime. [-]: Package consistently uses macros (instead of hard-coded directory names). [!]: Package is named according to the Package Naming Guidelines. Since this is a pre-release built from a source tree snapshot, it should use appropriate snapshot release. See: https://fedoraproject.org/wiki/Packaging:NamingGuidelines?rd=Packaging/NamingGuidelines#SnapshotPackages [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Package is not known to require an ExcludeArch tag. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. Note: Builds fine on armv7hl (only arch this targets). [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. I've run rpmlint on the spec. It would be good to run them on rpms too. [x]: Package does not own files or directories owned by other packages. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [!]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [-]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [!]: Sources used to build the package match the upstream source, as provided in the spec URL. [!]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local Java: [x]: Bundled jar/class files should be removed before build [-]: Packages have proper BuildRequires/Requires on jpackage-utils Note: Maven packages do not need to (Build)Require jpackage-utils. It is pulled in by maven-local [x]: Javadoc documentation files are generated and included in -javadoc subpackage [x]: Javadoc subpackages should not have Requires: jpackage-utils [!]: Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlink) Maven: [-]: If package contains pom.xml files install it (including metadata) even when building with ant [-]: POM files have correct Maven mapping [-]: Maven packages should use new style packaging [-]: Old add_to_maven_depmap macro is not being used [-]: Packages DO NOT have Requires(post) and Requires(postun) on jpackage- utils for %update_maven_depmap macro [-]: Package DOES NOT use %update_maven_depmap in %post/%postun [-]: Packages use .mfiles file list instead of %{_datadir}/maven2/poms ===== SHOULD items ===== Generic: [x]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane [x]: Fully versioned dependency in subpackages if applicable. [ ]: Package functions as described. [x]: Latest version is packaged. Note: Packager promises to update as appropriate from latest HEAD upstream. [x]: Package does not include license text files separate from upstream. [!]: SourceX tarball generation or download is documented. Note: Package contains tarball without URL, check comments [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [-]: Package should compile and build into binary rpms on all supported architectures. Note: ExclusiveArch: %{arm} [-]: %check is present and all tests pass. [-]: Packages should try to preserve timestamps of original installed files. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [?]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. Java: [x]: Package uses upstream build method (ant/maven/etc.) [-]: Packages are noarch unless they use JNI Note: This package is a full JDK specifically for ARM 32. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: Ran it on most packages, not all. [x]: Spec file according to URL is the same as in SRPM.
Created attachment 1142275 [details] rpmlint output run on the spec file.
Created attachment 1142276 [details] rpmlint output run on java-1.8.0-openjdk-aarch32-headless, java-1.8.0-openjdk-aarch32, java-1.8.0-openjdk-aarch32-devel
(In reply to Severin Gehwolf from comment #9) > [!] Please remove FIXME comment: > ---- > #FIXME > # --with-jvm-variants=core \ > ---- I suspect this may be related to why a Zero build is the result, especially if the zero logic is present from the main java-1.8.0-openjdk build. > --- > [!] Summary is too long. See rpmlint output. > "OpenJDK Runtime Environment in a preview release of the upstream > OpenJDK AArch32 porting project" is > the offending summary. > I suggest cutting it down to simply "A preview release of the OpenJDK AArch32 porting project". The original doesn't make sense anyway. I still think there needs to be more interaction with upstream before shipping this, not just on tagging but also building it in the recommended way.
(In reply to Andrew John Hughes from comment #7) > Did you get any response from upstream? I didn't see one. Nothing.
(In reply to Severin Gehwolf from comment #8) > /builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/ > openjdk/hotspot/src/share/vm/precompiled/precompiled.hpp -o > precompiled.hpp.gch > > The build you are linking above and the SRPM provided build the Zero > interpreter from the aarch32 sources, *not* the aarch32 template interpreter! Indeed. And thats for now intentional. I can fix it now, during review, after review or anytime in lifecycle. My target was to fix it once it will be building itself. (In reply to Severin Gehwolf from comment #9) > [!] Please remove FIXME comment: > ---- > #FIXME > # --with-jvm-variants=core \ > ---- And thats exactly the reason why this fixme does exists.
I will fix/comment *the review* itself soon. But one general rule - I really wont to keep this package as in sync with main jdk as possible. So anything we will agree is going to be fixed have to project also to main package. Otherwise the change will be lost in some sync.
(In reply to Severin Gehwolf from comment #10) > Created attachment 1142275 [details] > rpmlint output run on the spec file. (In reply to Severin Gehwolf from comment #11) > Created attachment 1142276 [details] > rpmlint output run on java-1.8.0-openjdk-aarch32-headless, > java-1.8.0-openjdk-aarch32, java-1.8.0-openjdk-aarch32-devel Except the LICENSE, which should be fixed, and the fix should go also to main jdk and macros in commnets which I will workaround, I did not found anything which would not be agreed on main jdk. (?)
(In reply to Severin Gehwolf from comment #9) > Here is the first round of review feedback: > > Package Review > ============== > [!] URL in spec should be: > http://openjdk.java.net/projects/aarch32-port/ Oook. > [!] spec file name does not match package name. java-1.8.0-openjdk.spec vs > java-1.8.0-openjdk-aarch32.spec Crap, Thanx. Good catch, > [!] Some patches are not applied (commented out). They should get removed. I will not remove them. Otherwise the syncing work will be unnecessarily harder. (and also those will be immediately added once upstream sync from main forests) > ------ > java-1.8.0-openjdk.spec: W: patch-not-applied Patch601: > java-1.8.0-openjdk-rh1191652-root.patch > java-1.8.0-openjdk.spec: W: patch-not-applied Patch602: > java-1.8.0-openjdk-rh1191652-jdk.patch > java-1.8.0-openjdk.spec: W: patch-not-applied Patch603: > java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch > java-1.8.0-openjdk.spec: W: patch-not-applied Patch106: > remove_aarch64_template_for_gcc6.patch > java-1.8.0-openjdk.spec: W: patch-not-applied Patch107: > make_reservedcodecachesize_changes_aarch64_only.patch > java-1.8.0-openjdk.spec: W: patch-not-applied Patch403: > rhbz1206656_fix_current_stack_pointer.patch > java-1.8.0-openjdk.spec: W: patch-not-applied Patch505: 8143855.patch > ------ > [!] Source0, aarch32-port-jdk8u-tip.tar.xz has a comment about how it's > been generated, which does not seem to work. Please use some form of > reproducible sources. File with hg revisions corresponding to "tip" at > the time of source tarball generation should be fine. yes:( > [!] Source8, systemtap-tapset.tar.gz, has no info as to how to generate it, > nor is it a valid source URL. It is generated and how to do so file is inlcuded. > [!] Some "Provides" are commented out. They should get removed and re-added > once deemed appropriate for the package to provide it. Why so? > [!] Please remove FIXME comment: As spoken above, I would ratehr not :) > ---- > #FIXME > # --with-jvm-variants=core \ > ---- > [!] Licence contains illegal license name LGPL+. It should be LGPLv2+ > See Is LGPLv2+ valid for main jdk? If so, then this fix should go to mian jdk too. > https://fedoraproject.org/wiki/Licensing: > Main?rd=Licensing#Software_License_List > [!] The build that you've linked in the bug seems to update alternatives > and prefer aarch32 over java-1.8.0-openjdk. This seems unexpected. The > other version > I had installed was java-1.8.0-openjdk-1.8.0.65-12.b17.fc24.armv7hl oooOh right :-/ There is logic, which constructs numbers from Bxx and Uxx strings. If htose are tip, then 99 is substituted. that is making the tip/hashes much less usable then an valid upstream tagging :-/ > [!] The java -version string of this aarch32 build seems to suggest it's > actually building > a Zero JVM rather than a aarch32 version with the template interpreter. > See line 1254 of the spec file. > "java -version" was: > --- > $ java -version > openjdk version "1.8.0_tip" > OpenJDK Runtime Environment (build 1.8.0_tip-tip) > OpenJDK Zero VM (build 25.tip-btip, interpreted mode) Right - https://bugzilla.redhat.com/show_bug.cgi?id=1318988#c12 But I do not insits on this. It seemed to me a reasonable thing, but if you feel differently, I wil follow > --- > [!] Summary is too long. See rpmlint output. > "OpenJDK Runtime Environment in a preview release of the upstream > OpenJDK AArch32 porting project" is > the offending summary. :( oook. > TYVM for review!
(In reply to jiri vanek from comment #14) > (In reply to Severin Gehwolf from comment #8) > > /builddir/build/BUILD/java-1.8.0-openjdk-aarch32-1.8.0.tip-3.tip.fc24.arm/ > > openjdk/hotspot/src/share/vm/precompiled/precompiled.hpp -o > > precompiled.hpp.gch > > > > The build you are linking above and the SRPM provided build the Zero > > interpreter from the aarch32 sources, *not* the aarch32 template interpreter! > > > Indeed. And thats for now intentional. I can fix it now, during review, > after review or anytime in lifecycle. Please propose a spec for review which does what it will ultimately do. The whole point of this extra package is the aarch32 template interpreter. So yes, please change this to use the template interpreter and show that it builds and works reasonably. > My target was to fix it once it will be building itself. For the sake of this review, I'd be willing to accept that it doesn't yet build itself. That is something which can be fixed once the review is done. It should at least work reasonably, though. > (In reply to Severin Gehwolf from comment #9) > > > [!] Please remove FIXME comment: > > ---- > > #FIXME > > # --with-jvm-variants=core \ > > ---- Fair enough. A comment could have said so.
(In reply to jiri vanek from comment #13) > (In reply to Andrew John Hughes from comment #7) > > Did you get any response from upstream? I didn't see one. > > Nothing. Upstream added tagging. I will base on it.
Spec URL: https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/4/java-1.8.0-openjdk-aarch32.spec SRPM URL: https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/4/java-1.8.0-openjdk-aarch32-1.8.0.76-1.b00.fc24.src.rpm Description: A preview release of the upstream OpenJDK AArch32 porting project. In time it will be merged with the main java-1.8.0-openjdk package. Fedora Account System Username: jvanek https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/init4.patch scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=13659515 I hope i fixed most of the issues you mentioned: - source is now based on upstream tag - zero is no longer build - specfile renamed - summary shortened. Sorry to say it, but i insists on shared prefix with main jdk. Fixed and need to go to main jdks: - license macro used properly now. - invalid license fixed Kept - upstream url - it is valid url. It i sparent of all projects on openjdk.java.net. I consider it as better source of information then direct project. Also it would be lost during first sync - patches commented out reduced by updating to latest upstream tag. I have no intentions to remove commented patches, as my intention is to keep pathces aligned with regular rpms. Any removing wil just increase maintenance cost. - same with provides - systemtap have no real upstream (imho) and the tutorial how to built it is in generate_tarballs.sh which is in repo - pkg is now based on u77, so the priority will jump for you again. But once the CPU update is done next week, mainjdk will be main again. And tbh:) I would liek to prefer this jdk when both are installed :) - yes, bundled lcms is workaround
Tagged source did not built, so I add huge patch form tag to tip for hotspot http://koji.fedoraproject.org/koji/taskinfo?taskID=13668026 https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/5/java-1.8.0-openjdk-aarch32-1.8.0.76-1.b00.fc24.src.rpm https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/5/java-1.8.0-openjdk-aarch32.spec https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/5/tipHotspot.patch Lets see if it pass
spec+srpm updated by https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/5/tipHotspot.patch http://koji.fedoraproject.org/koji/taskinfo?taskID=13669143 It starts to be cleat that tip was more predictable...
Forgot the new one :-/ spec+srpm updated by https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/5/tipHotspot.patch https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/5/tipJdk.patch http://koji.fedoraproject.org/koji/taskinfo?taskID=13669143 It starts to be cleat that tip was more predictable...
ok. Upstream provided another tag: https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/6/java-1.8.0-openjdk-aarch32-1.8.0.76-1.160415.fc24.src.rpm https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/6/java-1.8.0-openjdk-aarch32.spec looks mutch better: http://koji.fedoraproject.org/koji/taskinfo?taskID=13670361
Sorry for getting back to you with such a delay. (In reply to jiri vanek from comment #25) > looks mutch better: > http://koji.fedoraproject.org/koji/taskinfo?taskID=13670361 Unfortunately artefacts from this build have been cleaned up. Could you push another scratch build?
(In reply to Severin Gehwolf from comment #26) > Unfortunately artefacts from this build have been cleaned up. Could you push > another scratch build? NVM. I've kicked off a new scratch build here: http://koji.fedoraproject.org/koji/taskinfo?taskID=14222979
Created attachment 1160977 [details] rpmlint output run on java-1.8.0-openjdk-aarch32-headless, java-1.8.0-openjdk-aarch32, java-1.8.0-openjdk-aarch32-devel
Created attachment 1160978 [details] rpmlint output run on the spec file.
[!] Changelog is not in prescribed format: java-1.8.0-openjdk-aarch32.armv7hl: W: incoherent-version-in-changelog 1:1.8.0.xx-1.bb ['1:1.8.0.76-1.160415.fc24', '1:1.8.0.76-1.160415'] Use "1:1.8.0.76-1.160415" rather "than 1:1.8.0.xx-1.bb" [!]: Sources used to build the package match the upstream source, as provided in the spec URL. Used the following command to generate the source tarball locally: $ PROJECT_NAME=aarch32-port VERSION=jdk8u76-b00-aarch32-160415 REPO_NAME=jdk8u \ bash ../generate_source_tarball.sh where "generate_source_tarball.sh" is as in the main java-1.8.0-openjdk dist-git repo. $ md5sum aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz f4e5fa08100e18a8ed74180bcb98aea2 aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz From the SRPM: $ md5sum srpm-unpacked/aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz 73127e42f6536fd0c10b0237ac0ee808 srpm-unpacked/aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz Perhaps I'm doing something wrong? [!] Mixed use of tabs and spaces in spec: srpm/java-1.8.0-openjdk-aarch32.spec:634: W: mixed-use-of-spaces-and-tabs (spaces: line 8, tab: line 634) Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated ===== MUST items ===== Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. [?]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. It mentions GPL v2 + Classpath Exception. I did not check if others are still relevant. [?]: License file installed when any subpackage combination is installed. [?]: Package requires other packages for directories it uses. [?]: Package must own all directories that it creates. [x]: Package contains no bundled libraries without FPC exception. Bundled LCMS libs are being used. This is a known work-around. [!]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [x]: Package contains desktop file if it is a GUI application. [x]: Development files must be in a -devel package [?]: Package uses nothing in %doc for runtime. [-]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. I would name it 0.1.<DATE> rather than 1.<DATE>, but OK. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Package is not known to require an ExcludeArch tag. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. Note: Builds fine on armv7hl (only arch this targets). [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. I've run rpmlint on the spec. It would be good to run them on rpms too. [x]: Package does not own files or directories owned by other packages. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [-]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [!]: Sources used to build the package match the upstream source, as provided in the spec URL. Used the following command to generate the source tarball locally: $ PROJECT_NAME=aarch32-port VERSION=jdk8u76-b00-aarch32-160415 REPO_NAME=jdk8u \ bash ../generate_source_tarball.sh where "generate_source_tarball.sh" is as in the main java-1.8.0-openjdk dist-git repo. $ md5sum aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz f4e5fa08100e18a8ed74180bcb98aea2 aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz From the SRPM: $ md5sum srpm-unpacked/aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz 73127e42f6536fd0c10b0237ac0ee808 srpm-unpacked/aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local Java: [x]: Bundled jar/class files should be removed before build [-]: Packages have proper BuildRequires/Requires on jpackage-utils Note: Maven packages do not need to (Build)Require jpackage-utils. It is pulled in by maven-local [x]: Javadoc documentation files are generated and included in -javadoc subpackage [x]: Javadoc subpackages should not have Requires: jpackage-utils [x]: Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlink) Javadocs for the JDK are in: /usr/share/javadoc/java-1.8.0-openjdk-aarch32-1.8.0.76-1.160415.fc24 This is OK since it's a JDK, not a Java app. Maven: [-]: If package contains pom.xml files install it (including metadata) even when building with ant [-]: POM files have correct Maven mapping [-]: Maven packages should use new style packaging [-]: Old add_to_maven_depmap macro is not being used [-]: Packages DO NOT have Requires(post) and Requires(postun) on jpackage- utils for %update_maven_depmap macro [-]: Package DOES NOT use %update_maven_depmap in %post/%postun [-]: Packages use .mfiles file list instead of %{_datadir}/maven2/poms ===== SHOULD items ===== Generic: [x]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane [x]: Fully versioned dependency in subpackages if applicable. [ ]: Package functions as described. [x]: Latest version is packaged. Note: Packager promises to update as appropriate from latest HEAD upstream. [x]: Package does not include license text files separate from upstream. [x]: SourceX tarball generation or download is documented. OK. Though, a bit hard to find. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [-]: Package should compile and build into binary rpms on all supported architectures. Note: ExclusiveArch: %{arm} [-]: %check is present and all tests pass. [-]: Packages should try to preserve timestamps of original installed files. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [?]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. Java: [x]: Package uses upstream build method (ant/maven/etc.) [-]: Packages are noarch unless they use JNI Note: This package is a full JDK specifically for ARM 32. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: Ran it on most packages, not all. [x]: Spec file according to URL is the same as in SRPM.
(In reply to jiri vanek from comment #21) > I hope i fixed most of the issues you mentioned: > - source is now based on upstream tag > - zero is no longer build > - specfile renamed > - summary shortened. Sorry to say it, but i insists on shared prefix with > main jdk. > > Fixed and need to go to main jdks: > - license macro used properly now. > - invalid license fixed Great, thanks! > Kept > - upstream url - it is valid url. It i sparent of all projects on > openjdk.java.net. I consider it as better source of information then direct > project. Also it would be lost during first sync > - patches commented out reduced by updating to latest upstream tag. I have > no intentions to remove commented patches, as my intention is to keep > pathces aligned with regular rpms. Any removing wil just increase > maintenance cost. > - same with provides > - systemtap have no real upstream (imho) and the tutorial how to built it is > in generate_tarballs.sh which is in repo > - pkg is now based on u77, so the priority will jump for you again. But once > the CPU update is done next week, mainjdk will be main again. And tbh:) I > would liek to prefer this jdk when both are installed :) > - yes, bundled lcms is workaround OK. This seems justified.
$ /usr/lib/jvm/java-1.8.0-openjdk-aarch32-1.8.0.76-1.160415.fc24.arm/bin/java -version openjdk version "1.8.0_76" OpenJDK Runtime Environment (build 1.8.0_76-160415) OpenJDK VM (build 25.76-b160415, interpreted mode) This is no longer a Zero JVM and can run "java -version". Which is good enough for a initial "package is functional" perspective for me.
$ rpm -q --provides java-1.8.0-openjdk-aarch32{,-devel,-headless} application() application(java-1.8.0-openjdk-aarch32-1.8.0.76-1.160415.fc24.arm-policytool.desktop) java-1.8.0-openjdk-aarch32 = 1:1.8.0.76-1.160415.fc24 java-1.8.0-openjdk-aarch32(armv7hl-32) = 1:1.8.0.76-1.160415.fc24 application() application(java-1.8.0-openjdk-aarch32-1.8.0.76-1.160415.fc24.arm-jconsole.desktop) java-1.8.0-openjdk-aarch32-devel = 1:1.8.0.76-1.160415.fc24 java-1.8.0-openjdk-aarch32-devel(armv7hl-32) = 1:1.8.0.76-1.160415.fc24 libjawt.so libjawt.so(SUNWprivate_1.1) libjli.so libjli.so(SUNWprivate_1.1) libunpack.so(SUNWprivate_1.1) config(java-1.8.0-openjdk-aarch32-headless) = 1:1.8.0.76-1.160415.fc24 java-1.8.0-openjdk-aarch32-headless = 1:1.8.0.76-1.160415.fc24 java-1.8.0-openjdk-aarch32-headless(armv7hl-32) = 1:1.8.0.76-1.160415.fc24 libattach.so libattach.so(SUNWprivate_1.1) libawt.so libawt_headless.so libawt_headless.so(SUNWprivate_1.1) libawt_xawt.so libawt_xawt.so(SUNWprivate_1.1) libdt_socket.so libdt_socket.so(SUNWprivate_1.1) libfontmanager.so libfontmanager.so(SUNWprivate_1.1) libhprof.so libhprof.so(SUNWprivate_1.1) libinstrument.so libinstrument.so(SUNWprivate_1.1) libj2gss.so libj2gss.so(SUNWprivate_1.1) libj2pcsc.so libj2pcsc.so(SUNWprivate_1.1) libj2pkcs11.so libj2pkcs11.so(SUNWprivate_1.1) libjaas_unix.so libjava.so libjava.so(SUNWprivate_1.1) libjava_crw_demo.so libjava_crw_demo.so(SUNWprivate_1.1) libjavajpeg.so libjavajpeg.so(SUNWprivate_1.1) libjawt.so libjawt.so(SUNWprivate_1.1) libjdwp.so libjdwp.so(SUNWprivate_1.1) libjli.so libjli.so(SUNWprivate_1.1) libjsdt.so libjsdt.so(SUNWprivate_1.1) libjsig.so libjsound.so libjsound.so(SUNWprivate_1.1) libjsoundalsa.so libjsoundalsa.so(SUNWprivate_1.1) libjvm.so libjvm.so(SUNWprivate_1.1) liblcms.so liblcms.so(SUNWprivate_1.1) libmanagement.so libmanagement.so(SUNWprivate_1.1) libmlib_image.so libmlib_image.so(SUNWprivate_1.1) libnet.so libnet.so(SUNWprivate_1.1) libnio.so libnio.so(SUNWprivate_1.1) libnpt.so libnpt.so(SUNWprivate_1.1) libsctp.so libsctp.so(SUNWprivate_1.1) libsplashscreen.so libsplashscreen.so(SUNWprivate_1.1) libsunec.so libsunec.so(SUNWprivate_1.1) libunpack.so libunpack.so(SUNWprivate_1.1) libverify.so libverify.so(SUNWprivate_1.1) libzip.so libzip.so(SUNWprivate_1.1) Note that this might cause java-1.8.0-openjdk-aarch32 to get dragged in as a providing package if some package requires a JDK-provided shared library. I don't think we can do much about this (other than filtering those auto-generated provides). Otherwise provides look alright. No java-* provides are there.
(In reply to Severin Gehwolf from comment #30) > [!] Changelog is not in prescribed format: > java-1.8.0-openjdk-aarch32.armv7hl: W: incoherent-version-in-changelog > 1:1.8.0.xx-1.bb ['1:1.8.0.76-1.160415.fc24', '1:1.8.0.76-1.160415'] > Use "1:1.8.0.76-1.160415" rather "than 1:1.8.0.xx-1.bb" fixed > [!]: Sources used to build the package match the upstream source, as > provided in the spec URL. > Used the following command to generate the source tarball locally: > $ PROJECT_NAME=aarch32-port VERSION=jdk8u76-b00-aarch32-160415 > REPO_NAME=jdk8u \ > bash ../generate_source_tarball.sh > where "generate_source_tarball.sh" is as in the main java-1.8.0-openjdk > dist-git repo. > $ md5sum aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz > f4e5fa08100e18a8ed74180bcb98aea2 > aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz > From the SRPM: > $ md5sum > srpm-unpacked/aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz > 73127e42f6536fd0c10b0237ac0ee808 > srpm-unpacked/aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz > Perhaps I'm doing something wrong? There is nothing I can do about this. You know that openjdk do not do releases. They tag, and anybody can clone. The tar/zip archives are generally not reproducible(timestamps), and I don't think that there is serious reason to force the reproducibiity. In addition I'm providing scrip twhich can regenerate osurces by one click. > [!] Mixed use of tabs and spaces in spec: > srpm/java-1.8.0-openjdk-aarch32.spec:634: W: mixed-use-of-spaces-and-tabs > (spaces: line 8, tab: line 634) fixed > > > Package Review > ============== > Legend: > [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated > > > > ===== MUST items ===== > > Generic: > [x]: Package is licensed with an open-source compatible license and meets > other legal requirements as defined in the legal section of Packaging > Guidelines. > [x]: If (and only if) the source package includes the text of the > license(s) in its own file, then that file, containing the text of the > license(s) for the package is included in %license. > [?]: License field in the package spec file matches the actual license. > Note: Checking patched sources after %prep for licenses. > It mentions GPL v2 + Classpath Exception. I did not check if others are > still relevant. This should be ok. > [?]: License file installed when any subpackage combination is installed. > [?]: Package requires other packages for directories it uses. > [?]: Package must own all directories that it creates. The oownership should be correct.What is not owned by jdk itself, is owned by jpackage-toosl or other dependencies. > [x]: Package contains no bundled libraries without FPC exception. > Bundled LCMS libs are being used. This is a known work-around. > [!]: Changelog in prescribed format. fixed > [x]: Sources contain only permissible code or content. > [x]: Package contains desktop file if it is a GUI application. > [x]: Development files must be in a -devel package > [?]: Package uses nothing in %doc for runtime. that is correct. > [-]: Package consistently uses macros (instead of hard-coded directory > names). Of course it does:) > [x]: Package is named according to the Package Naming Guidelines. ... > [x]: Package is not relocatable. > [!]: Sources used to build the package match the upstream source, as > provided in the spec URL. > Used the following command to generate the source tarball locally: > $ PROJECT_NAME=aarch32-port VERSION=jdk8u76-b00-aarch32-160415 > REPO_NAME=jdk8u \ > bash ../generate_source_tarball.sh > where "generate_source_tarball.sh" is as in the main java-1.8.0-openjdk > dist-git repo. > $ md5sum aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz > f4e5fa08100e18a8ed74180bcb98aea2 > aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz > From the SRPM: > $ md5sum > srpm-unpacked/aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz > 73127e42f6536fd0c10b0237ac0ee808 > srpm-unpacked/aarch32-port-jdk8u-jdk8u76-b00-aarch32-160415.tar.xz As described above. <snip> In meantime updated to latest u91 of aarch32 8u project. How do you feel about it now? https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/7/java-1.8.0-openjdk-aarch32-1.8.0.91-1.160510.fc24.src.rpm https://jvanek.fedorapeople.org/java-1.8.0-openjdk-aarch32-jit/7/java-1.8.0-openjdk-aarch32.spec scracth build in progress: http://koji.fedoraproject.org/koji/taskinfo?taskID=14701925
Thanks for the fixes! $ /usr/lib/jvm/java-1.8.0-openjdk-aarch32-1.8.0.91-1.160510.fc24.arm/bin/java -version openjdk version "1.8.0_91" OpenJDK Runtime Environment (build 1.8.0_91-160510) OpenJDK VM (build 25.91-b160510, interpreted mode) Reproducible sources: $ PROJECT_NAME=aarch32-port VERSION=jdk8u91-b14-aarch32-160510 REPO_NAME=jdk8u bash generate_source_tarball.sh $ ls aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz $ md5sum aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz 48d03c7467e8e69a2f87d6cdce0b0c6d aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz $ md5sum path/to/srpm-tarball/aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz 8a594be659a403b7cb623d83602cdd50 path/to/srpm-tarball/aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz $ mkdir extracted; cd extracted $ tar -xf ../aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz $ cd ../; mkdir extracted-srpm; cd extracted-srpm $ tar -xf path/to/srpm-tarball/aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz $ cd .. $ diff -u -r extracted extracted-srpm <nothing> => good! So it seems one can regenerate the same sources even though checksums won't match (timestamps). This is OK as they can be checked manually as above. No further comments. Looks good to me! Thanks for your patience.
Thanx! Repo finished, imported and building!
java-1.8.0-openjdk-aarch32-1.8.0.91-1.160510.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-4cd7a4c3f8
java-1.8.0-openjdk-aarch32-1.8.0.91-1.160510.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-4cd7a4c3f8
java-1.8.0-openjdk-aarch32-1.8.0.91-1.160510.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.