Bug 1011705 (datanucleus-core)

Summary: Review Request: datanucleus-core - Java persistence abstraction layer
Product: [Fedora] Fedora Reporter: Pete MacKinnon <pmackinn>
Component: Package ReviewAssignee: gil cattaneo <puntogil>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: akurtako, puntogil
Target Milestone: ---Flags: puntogil: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: datanucleus-core-3.2.9-3.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-03 08:44:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1010383, 1011696    
Bug Blocks: 1011960, 1011962    

Description Pete MacKinnon 2013-09-24 21:39:42 UTC
DataNucleus Core provides the primary components
of a heterogeneous Java persistence solution. 
It supports persistence API's being layered on
top of the core functionality.

SPEC URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core.spec
SRPM URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core-3.2.7-2.fc19.src.rpm

Comment 1 Christopher Meng 2013-09-25 13:17:23 UTC
Please add your FAS name next time(especially when you need sponsor).

pmackinn?

Comment 2 Pete MacKinnon 2013-09-25 13:21:37 UTC
Sure. Where do I do that? It's in the URL as you can see.

Comment 3 gil cattaneo 2013-09-25 13:26:08 UTC
hi, take a look here https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&format=fedora-review

Comment 5 Pete MacKinnon 2013-10-18 13:29:15 UTC
SPEC URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core.spec
SRPM URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core-3.2.7-3.fc19.src.rpm

Updated these for the removal of the cache-api dependency which (I believe) is a pluggable option specified in the plugin.xml configuration.

Comment 6 gil cattaneo 2013-11-20 14:04:48 UTC
hi
is available new release datanucleus-core 3.2.9

Comment 7 gil cattaneo 2013-11-20 14:25:12 UTC
build fails, cause:
Failed to resolve artifact: javax.cache:cache-api:pom:0.9

please, remove cache-api references

http://kojipkgs.fedoraproject.org//work/tasks/5488/6205488/build.log
http://koji.fedoraproject.org/koji/taskinfo?taskID=6205486

i can proceed with a a manual review only, cause:
Error: No package found for mvn(javax.time:time-api)

Comment 8 Pete MacKinnon 2013-11-20 14:31:29 UTC
cache-api is disabled in the latest (.3). Are you reviewing an older version?

Anyway I will be updating to 3.2.9 (if possible) per comment #6.

Comment 9 Pete MacKinnon 2013-11-20 14:36:00 UTC
Hmmm, maybe certain versions of xmvn are ignoring the <optional>true</optional> attribute. I will explicitly remove the dep in next update.

Comment 10 gil cattaneo 2013-11-20 14:41:19 UTC
(In reply to Pete MacKinnon from comment #8)
> cache-api is disabled in the latest (.3). Are you reviewing an older version?
> 
> Anyway I will be updating to 3.2.9 (if possible) per comment #6.

usually if you dont have a build dep you must remove this one references,
also if its use <optional>true</optional>

Comment 11 Pete MacKinnon 2013-11-20 16:21:50 UTC
Updated to 3.2.9, cache-api fully removed, tests disabled:

SPEC URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core.spec
SRPM URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core-3.2.9-1.fc19.src.rpm

Comment 12 gil cattaneo 2013-11-20 17:10:26 UTC
build fails

[INFO] --- xmvn-mojo:1.3.0:install (default-cli) @ datanucleus-core ---
[WARNING] Failed to resolve artifact: org.apache.ivy:ivy:pom:2.3.0
[WARNING] The POM for org.apache.ivy:ivy:jar:2.3.0 is missing, no dependency information available
[ERROR] Reactor project org.datanucleus:datanucleus-core:jar:3.2.9 has system-scoped dependencies: [
  org.eclipse.equinox:org.eclipse.equinox.registry::jar:3.5.0.v20100503,
  org.eclipse.equinox:org.eclipse.equinox.common::jar:3.6.0.v20100503,
  org.eclipse.equinox:org.eclipse.equinox.preferences::jar:3.3.0.v20100503,
  org.eclipse.core:org.eclipse.core.runtime::jar:3.6.0.v20100505,
  org.eclipse.core:org.eclipse.core.contenttype::jar:3.4.100.v20100505-1235,
  org.eclipse.core:org.eclipse.core.jobs::jar:3.5.0.v20100515
]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.484s
[INFO] Finished at: Wed Nov 20 17:08:08 UTC 2013
[INFO] Final Memory: 25M/399M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.fedoraproject.xmvn:xmvn-mojo:1.3.0:install (default-cli) on project datanucleus-core: Some reactor artifacts have dependencies with scope "system". Such dependencies are not supported by XMvn installer. You should either remove any dependencies with scope "system" before the build or not run XMvn instaler. -> [Help 1]
[ERROR]

Comment 13 Pete MacKinnon 2013-11-21 13:28:10 UTC
Sigh, that is because xmvn 1.3 has new restrictions on system scope. :-(

Comment 14 gil cattaneo 2013-11-21 14:28:35 UTC
any ideas how solve this ....?

Comment 15 Pete MacKinnon 2013-11-21 15:09:46 UTC
Investigating and experimenting with options, ranging from manipulating the package/install phase somehow for xmvn to just compiling out the plugin portion completely. If I recall, a previous attempt at that failed due to a hidden core dependency.

Comment 16 Pete MacKinnon 2013-12-09 18:27:16 UTC
Switched to manual xmvn build and install instead of macros to work around system scope limitation:

SPEC URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core.spec
SRPM URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core-3.2.9-2.fc20.src.rpm

Comment 17 gil cattaneo 2013-12-09 19:00:11 UTC
why this package as marked as noarch?
if the builder system is for e.g. x64 then the build deps [1] are in /usr/lib64
after in the pom file, are not available on x86 arch ...



[1]
org.eclipse.core.contenttype
org.eclipse.core.jobs
org.eclipse.core.runtime
org.eclipse.equinox.registry
org.eclipse.equinox.common
org.eclipse.equinox.preferences

Comment 18 gil cattaneo 2013-12-09 19:26:15 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Maven packages should use new style packaging
  Note: If possible update your package to latest guidelines
  See: https://fedoraproject.org/wiki/Packaging:Java#Apache_Maven


===== 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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "Apache (v2.0)", "Unknown or generated". 9 files have unknown license.
     Detailed output of licensecheck in /home/gil/1011705-datanucleus-
     core/licensecheck.txt
see src/java/org/datanucleus/util/Base64.java
/**********************************************************************
//Copyright 2003-2009 Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland
//www.source-code.biz, www.inventec.ch/chdh
//
//This module is multi-licensed and may be used under the terms
//of any of the following licenses:
//
//EPL, Eclipse Public License, http://www.eclipse.org/legal
//LGPL, GNU Lesser General Public License, http://www.gnu.org/licenses/lgpl.html
//AL, Apache License, http://www.apache.org/licenses
//BSD, BSD License, http://www.opensource.org/licenses/bsd-license.php
//
//Please contact the author if you need another license.
//This module is provided "as is", without warranties of any kind.

     
[x]: License file installed when any subpackage combination is installed.
[?]: Package contains no bundled libraries without FPC exception.
***********
see src/java/org/datanucleus/util/Base64.java
***********
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[-]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
[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.
[?]: 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.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 3 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[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 %doc.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[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]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[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]: 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)
[x]: Bundled jar/class files should be removed before build

Maven:
[x]: Pom files have correct Maven mapping
     Note: Some add_maven_depmap calls found. Please check if they are correct
     or update to latest guidelines
[x]: If package contains pom.xml files install it (including depmaps) even
     when building with ant
[x]: If tests are skipped during package build explain why it was needed in a
     comment
     Note: Tests seem to be skipped. Verify there is a commment giving a
     reason for this
[x]: Old add_to_maven_depmap macro is not being used
[x]: Packages DOES NOT have Requires(post) and Requires(postun) on jpackage-
     utils for %update_maven_depmap macro
[x]: Package DOES NOT use %update_maven_depmap in %post/%postun
[x]: Packages use %{_mavenpomdir} instead of %{_datadir}/maven2/poms

===== SHOULD items =====

Generic:
[-]: 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 (see attachments).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     datanucleus-core-javadoc
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: 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)
[x]: Dist tag is present (not strictly required in GL).
[x]: 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.)
[x]: Packages are noarch unless they use JNI

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: datanucleus-core-3.2.9-2.fc21.noarch.rpm
          datanucleus-core-javadoc-3.2.9-2.fc21.noarch.rpm
          datanucleus-core-3.2.9-2.fc21.src.rpm
datanucleus-core.src: W: invalid-url Source0: datanucleus-core-3.2.9.tar.xz
3 packages and 0 specfiles checked; 0 errors, 1 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint datanucleus-core datanucleus-core-javadoc
2 packages and 0 specfiles checked; 0 errors, 0 warnings.
# echo 'rpmlint-done:'



Requires
--------
datanucleus-core (rpmlib, GLIBC filtered):
    jpackage-utils

datanucleus-core-javadoc (rpmlib, GLIBC filtered):
    jpackage-utils



Provides
--------
datanucleus-core:
    datanucleus-core
    mvn(org.datanucleus:datanucleus-core)
    osgi(org.datanucleus)

datanucleus-core-javadoc:
    datanucleus-core-javadoc



Generated by fedora-review 0.5.0 (920221d) last change: 2013-08-30
Command line :/usr/bin/fedora-review -b 1011705 -m fedora-rawhide-i386
Buildroot used: fedora-rawhide-i386
Active plugins: Generic, Shell-api, Java
Disabled plugins: C/C++, Python, SugarActivity, Perl, R, PHP, Ruby
Disabled flags: EPEL5, EXARCH, DISTTAG

Comment 19 Pete MacKinnon 2013-12-09 20:12:14 UTC
The eclipse dependencies are marked as optional in maven. Thus, they do not transfer arch requirements beyond the datanucleus-core package itself. There are no symlinks (and none required) to those jars for runtime. A user would have to construct an appropriate classpath for their env to add those.

Comment 20 gil cattaneo 2013-12-09 20:34:46 UTC
(In reply to Pete MacKinnon from comment #19)
> The eclipse dependencies are marked as optional in maven. Thus, they do not
> transfer arch requirements beyond the datanucleus-core package itself. There
> are no symlinks (and none required) to those jars for runtime. A user would
> have to construct an appropriate classpath for their env to add those.

even if they are marked as optional, this rule does not apply when it comes to building a package that has this package as a dependency.

if they are really optional could be removed without problems, in order not to use the eclipse stuff

Comment 21 gil cattaneo 2013-12-09 20:39:08 UTC
observed issues:

[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "Apache (v2.0)", "Unknown or generated". 9 files have unknown license.
     Detailed output of licensecheck in /home/gil/1011705-datanucleus-
     core/licensecheck.txt
see src/java/org/datanucleus/util/Base64.java
/**********************************************************************
//Copyright 2003-2009 Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland
//www.source-code.biz, www.inventec.ch/chdh
//
//This module is multi-licensed and may be used under the terms
//of any of the following licenses:
//
//EPL, Eclipse Public License, http://www.eclipse.org/legal
//LGPL, GNU Lesser General Public License, http://www.gnu.org/licenses/lgpl.html
//AL, Apache License, http://www.apache.org/licenses
//BSD, BSD License, http://www.opensource.org/licenses/bsd-license.php
//
//Please contact the author if you need another license.
//This module is provided "as is", without warranties of any kind.

[?]: Package contains no bundled libraries without FPC exception.
***********
see src/java/org/datanucleus/util/Base64.java
***********

Comment 22 Pete MacKinnon 2013-12-10 15:28:40 UTC
Added multi-licenses to cover Base64.java:

SPEC URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core.spec
SRPM URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core-3.2.9-3.fc20.src.rpm

Comment 23 gil cattaneo 2013-12-10 15:44:36 UTC
you should create a new FPC exception request as for time-api
if you want use src/java/org/datanucleus/util/Base64.java

This class should be provided by some packages already existing in Fedora:

http://pkgs.fedoraproject.org/cgit/base64coder (original source repository http://www.source-code.biz/base64coder/java)

http://pkgs.fedoraproject.org/cgit/java-base64

Comment 24 Pete MacKinnon 2013-12-10 16:54:08 UTC
Respun dist -3. Removed multi-license updates and instead removed DN Base64 impl and changed usage to that of Fedora base64coder package (appears to be equivalent).

SPEC URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core.spec
SRPM URL: http://pmackinn.fedorapeople.org/datanucleus/datanucleus-core-3.2.9-3.fc20.src.rpm

Comment 25 gil cattaneo 2013-12-10 18:07:18 UTC
approved

Comment 26 Pete MacKinnon 2013-12-10 18:22:35 UTC
New Package SCM Request
=======================
Package Name: datanucleus-core
Short Description: Heterogeneous Java persistence solution
Owners: pmackinn
Branches: f20
InitialCC: java-sig

Comment 27 Gwyn Ciesla 2013-12-10 18:36:50 UTC
Git done (by process-git-requests).

Comment 28 Fedora Update System 2013-12-17 17:35:57 UTC
datanucleus-core-3.2.9-3.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/datanucleus-core-3.2.9-3.fc20

Comment 29 Fedora Update System 2013-12-19 07:07:22 UTC
datanucleus-core-3.2.9-3.fc20 has been pushed to the Fedora 20 testing repository.

Comment 30 Fedora Update System 2014-01-03 08:44:40 UTC
datanucleus-core-3.2.9-3.fc20 has been pushed to the Fedora 20 stable repository.