Bug 1177857 - Review Request: libsedml - Library that fully supports SED-ML for SBML
Summary: Review Request: libsedml - Library that fully supports SED-ML for SBML
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Zbigniew Jędrzejewski-Szmek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1173159 1177625
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-12-30 22:21 UTC by Antonio T. (sagitter)
Modified: 2017-02-07 04:33 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2015-08-13 02:56:03 UTC
Type: ---
Embargoed:
zbyszek: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Antonio T. (sagitter) 2014-12-30 22:21:07 UTC
Spec URL: https://sagitter.fedorapeople.org/libSEDML/libSEDML.spec
SRPM URL: https://sagitter.fedorapeople.org/libSEDML/libSEDML-0.3.0-1.20141230gitb455cd.fc21.src.rpm

Description:
C# library that fully supports SED-ML for SBML as well as CellML models 
for creation of the description just as for the execution of Simulation Experiments. 
This project makes use of libSBML XML layer as well as code generation 
as starting point to produce a library for reading and writing of SED-ML models. 

Fedora Account System Username: sagitter

Comment 1 Antonio T. (sagitter) 2014-12-31 18:42:39 UTC
Spec URL: https://sagitter.fedorapeople.org/libSEDML/libSEDML.spec
SRPM URL: https://sagitter.fedorapeople.org/libSEDML/libSEDML-0.3.0-2.20141230gitb455cd.fc21.src.rpm

Excluded the packaging of the static file.

Comment 3 Antonio T. (sagitter) 2015-02-02 16:36:00 UTC
Spec URL: https://sagitter.fedorapeople.org/libSEDML/libsedml.spec
SRPM URL: https://sagitter.fedorapeople.org/libSEDML/libsedml-0.3.0-4.20141230gitb455cd.fc21.src.rpm

- Set installation directory of the java library

Comment 4 Zbigniew Jędrzejewski-Szmek 2015-05-04 17:17:30 UTC
I'll review this once we get libsbml in proper shape again.

Comment 5 Antonio T. (sagitter) 2015-05-04 17:54:42 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #4)
> I'll review this once we get libsbml in proper shape again.

Thank you.
libsbml-5.11.4 has been released recently but there are still problems in Fedora >22. I hope to fix them as soon as possible.

Comment 6 Antonio T. (sagitter) 2015-05-29 14:39:48 UTC
I'm going to update this package to the latest commit.

Comment 7 Zbigniew Jędrzejewski-Szmek 2015-05-29 18:16:36 UTC
Will you be preparing an update, or should I review this version?

Looking at the spec file, at least the %descriptions are wrong: they are all the same.

Comment 8 Antonio T. (sagitter) 2015-05-29 18:31:07 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #7)
> Will you be preparing an update, or should I review this version?

I'm preparing an update.

> 
> Looking at the spec file, at least the %descriptions are wrong: they are all
> the same.

Indeed.

Comment 9 Antonio T. (sagitter) 2015-06-04 20:14:22 UTC
Please, wait that latest libsbml build finishes on rawhide.

Spec URL: https://sagitter.fedorapeople.org/libSEDML/libsedml.spec
SRPM URL: https://sagitter.fedorapeople.org/libSEDML/libsedml-0.3.0-5.20150422git235bb5.fc22.src.rpm

Comment 11 Zbigniew Jędrzejewski-Szmek 2015-06-05 16:31:21 UTC
%description: please expand SED-ML abbreviation and/or add a few words explaining what this package does in a way that is understandable for a lay person.

%package devel %description: it's enough to say
This package contains headers for %{name}.

Shouldn't python-SEDML be python-libsedml? This would match python-sbml. https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Addon_Packages_.28python_modules.29 says: "When in doubt, use the name of the module that you type to import it in a script."

Also java-libsedml instead of java-SEDML? I think using capitalized SEDML only makes sense if the actual module name contains that. For ruby, perl, R that is true, for other bindings not.

What about python3 subpackage?

- Packages have proper BuildRequires/Requires on jpackage-utils
Binary package needs that according to https://fedoraproject.org/wiki/Packaging:Java#BuildRequires_and_Requires.

According to https://fedoraproject.org/wiki/Packaging:Mono, gacutil should be called in %build.

I'd use the same license and doc dirs for all subpackages: %global _docdir_fmt %{name}.

Shouldn't libsedml-sharp require mono-core?

Use %make_install macro to replace make DESTDIR=$RPM_BUILD_ROOT install ?

Comment 12 Antonio T. (sagitter) 2015-06-05 17:59:25 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #11)
> %description: please expand SED-ML abbreviation and/or add a few words
> explaining what this package does in a way that is understandable for a lay
> person.
> 
> %package devel %description: it's enough to say
> This package contains headers for %{name}.
> 
> Shouldn't python-SEDML be python-libsedml? This would match python-sbml.
> https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Addon_Packages_.
> 28python_modules.29 says: "When in doubt, use the name of the module that
> you type to import it in a script."
> 
> Also java-libsedml instead of java-SEDML? I think using capitalized SEDML
> only makes sense if the actual module name contains that. For ruby, perl, R
> that is true, for other bindings not.

 
Okay.

> 
> What about python3 subpackage?

I don't know if Python3 is supported.
I will ask to upstream.

> 
> - Packages have proper BuildRequires/Requires on jpackage-utils
> Binary package needs that according to
> https://fedoraproject.org/wiki/Packaging:Java#BuildRequires_and_Requires.

Okay.

> 
> According to https://fedoraproject.org/wiki/Packaging:Mono, gacutil should
> be called in %build.

You meant in %install.
gacutil command fails:

+ mkdir -p /home/sagitter/rpmbuild/BUILDROOT/libsedml-0.3.0-7.20150422git235bb5.fc22.x86_64/usr/lib/mono/gac
+ gacutil -i build/bindings/csharp/libsedmlcsP.dll -f -package libsedml-sharp -root /home/sagitter/rpmbuild/BUILDROOT/libsedml-0.3.0-7.20150422git235bb5.fc22.x86_64/usr/lib
Failure adding assembly build/bindings/csharp/libsedmlcsP.dll to the cache: Attempt to install an assembly without a strong name

If i remember fine, this error appeared also in libsbml ('gacutil' call is missing in libsbml, i see). Do you know how to fix it?

> 
> I'd use the same license and doc dirs for all subpackages: %global
> _docdir_fmt %{name}.
> 
> Shouldn't libsedml-sharp require mono-core?

Okay.

> 
> Use %make_install macro to replace make DESTDIR=$RPM_BUILD_ROOT install ?

They are equivalent.

Comment 13 Zbigniew Jędrzejewski-Szmek 2015-06-06 14:27:53 UTC
(In reply to Antonio Trande from comment #12)
> > What about python3 subpackage?
> I don't know if Python3 is supported.
> I will ask to upstream.
SWIG supports both, so the code at least supports it. Would be a shame not to have it.

> > According to https://fedoraproject.org/wiki/Packaging:Mono, gacutil should
> > be called in %build.
> 
> You meant in %install.
> gacutil command fails:
> 
> + mkdir -p
> /home/sagitter/rpmbuild/BUILDROOT/libsedml-0.3.0-7.20150422git235bb5.fc22.
> x86_64/usr/lib/mono/gac
> + gacutil -i build/bindings/csharp/libsedmlcsP.dll -f -package
> libsedml-sharp -root
> /home/sagitter/rpmbuild/BUILDROOT/libsedml-0.3.0-7.20150422git235bb5.fc22.
> x86_64/usr/lib
> Failure adding assembly build/bindings/csharp/libsedmlcsP.dll to the cache:
> Attempt to install an assembly without a strong name
> 
> If i remember fine, this error appeared also in libsbml ('gacutil' call is
> missing in libsbml, i see). Do you know how to fix it?
I copied the mono subpackage from your spec. I know less than you ;)
OK, let's keep it as is.

> > Use %make_install macro to replace make DESTDIR=$RPM_BUILD_ROOT install ?
> They are equivalent.
I know, %make_install is just shorter.

Comment 14 Antonio T. (sagitter) 2015-06-06 14:32:39 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #13)
> (In reply to Antonio Trande from comment #12)
> > > What about python3 subpackage?
> > I don't know if Python3 is supported.
> > I will ask to upstream.
> SWIG supports both, so the code at least supports it. Would be a shame not
> to have it.

I will.

> 
> > > According to https://fedoraproject.org/wiki/Packaging:Mono, gacutil should
> > > be called in %build.
> > 
> > You meant in %install.
> > gacutil command fails:
> > 
> > + mkdir -p
> > /home/sagitter/rpmbuild/BUILDROOT/libsedml-0.3.0-7.20150422git235bb5.fc22.
> > x86_64/usr/lib/mono/gac
> > + gacutil -i build/bindings/csharp/libsedmlcsP.dll -f -package
> > libsedml-sharp -root
> > /home/sagitter/rpmbuild/BUILDROOT/libsedml-0.3.0-7.20150422git235bb5.fc22.
> > x86_64/usr/lib
> > Failure adding assembly build/bindings/csharp/libsedmlcsP.dll to the cache:
> > Attempt to install an assembly without a strong name
> > 
> > If i remember fine, this error appeared also in libsbml ('gacutil' call is
> > missing in libsbml, i see). Do you know how to fix it?
> I copied the mono subpackage from your spec. I know less than you ;)
> OK, let's keep it as is.

https://github.com/fbergmann/libSEDML/issues/10#issuecomment-109584374

Comment 15 Antonio T. (sagitter) 2015-06-08 08:55:52 UTC
- Description improved
- Sub-packages main name changed to libsedml for Python, Java
- Packaged Python3 bindings

Spec URL: https://sagitter.fedorapeople.org/libSEDML/libsedml.spec
SRPM URL: https://sagitter.fedorapeople.org/libSEDML/libsedml-0.3.0-7.20150422git235bb5.fc22.src.rpm

Comment 16 Zbigniew Jędrzejewski-Szmek 2015-06-08 14:04:42 UTC
====== Questions/issues ======

python2-libsedml name is a violation of guidelines, imho. It should be python-libsedml.

Why does java-libsedml require libsedml-devel? Shouldn't it be libsedml?

> I'd use the same license and doc dirs for all subpackages: %global
> _docdir_fmt %{name}.
In particular, since every sub package has the same set of files, if a user installed all subpackages, and they wanted to look at the documentation, they would simply waste time before they realized that all the READMEs are identical.

fedora-review output:
===== MUST items =====

C/C++:
[-]: Provides: bundled(gnulib) in place as required.
I don't see gnulib being used anywhere.

[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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.
BSD two-clause.

[x]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: 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.
[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]: Useful -debuginfo package or justification otherwise.
[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 71680 bytes in 14 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 %license.
[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]: 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.
[x]: 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.
[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]: Bundled jar/class files should be removed before build

Maven:
[-]: If package contains pom.xml files install it (including metadata) even
     when building with ant
[x]: Old add_to_maven_depmap macro is not being used

Perl:
[x]: Package contains the mandatory BuildRequires and Requires:.

Python:
[-]: Binary eggs must be removed in %prep
[x]: Python eggs must not download any dependencies during the build
     process.
[-]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
(apart from the naming issue)

[x]: Package contains BR: python2-devel or python3-devel

Rpmlint
-------
Checking: libsedml-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          libsedml-devel-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          python2-libsedml-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          python3-libsedml-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          java-libsedml-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          perl-SEDML-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          ruby-SEDML-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          R-SEDML-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          libsedml-sharp-0.3.0-7.20150422git235bb5.fc23.x86_64.rpm
          libsedml-0.3.0-7.20150422git235bb5.fc23.src.rpm
libsedml.x86_64: W: spelling-error %description -l en_US libSBML -> Librium
libsedml-devel.x86_64: W: only-non-binary-in-usr-lib
libsedml-devel.x86_64: W: no-documentation
java-libsedml.x86_64: W: no-documentation
ruby-SEDML.x86_64: W: spelling-error %description -l en_US libSEDML -> licensed
R-SEDML.x86_64: E: zero-length /usr/lib64/R/library/libSEDML/help/libSEDML.rdb
R-SEDML.x86_64: E: zero-length /usr/lib64/R/library/libSEDML/help/AnIndex
libsedml-sharp.x86_64: W: spelling-error %description -l en_US csharp -> sharp, c sharp, cs harp
libsedml.src: W: spelling-error %description -l en_US libSBML -> Librium
10 packages and 0 specfiles checked; 2 errors, 7 warnings.

Unversioned so-files
--------------------
python2-libsedml: /usr/lib64/python2.7/site-packages/libsedml/_libsedml.so
python3-libsedml: /usr/lib64/python3.4/site-packages/libsedml/_libsedml.so
java-libsedml: /usr/lib64/libsedml/libsedmlj.so
perl-SEDML: /usr/lib64/perl5/vendor_perl/auto/libSEDML/LibSEDML.so
ruby-SEDML: /usr/lib64/ruby/vendor_ruby/libSEDML.so
R-SEDML: /usr/lib64/R/library/libSEDML/libs/libSEDML.so
libsedml-sharp: /usr/lib/mono/libsedmlcsP/libsedmlcs.so

Looks OK.

Comment 17 Antonio T. (sagitter) 2015-06-08 15:21:30 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #16)
> ====== Questions/issues ======
> 
> python2-libsedml name is a violation of guidelines, imho. It should be
> python-libsedml.

You're right.

> 
> Why does java-libsedml require libsedml-devel? Shouldn't it be libsedml?

Neither of the two. I thought that Java library was linked to a library in /usr/lib?; actually java provides an own 'libsbmlj.so' installed in /usr/lib?. See http://sbml.org/Software/libSBML/docs/cpp-api/libsbml-installation.html#locations 

> 
> > I'd use the same license and doc dirs for all subpackages: %global
> > _docdir_fmt %{name}.
> In particular, since every sub package has the same set of files, if a user
> installed all subpackages, and they wanted to look at the documentation,
> they would simply waste time before they realized that all the READMEs are
> identical.
> 

Done.

Spec URL: https://sagitter.fedorapeople.org/libSEDML/libsedml.spec
SRPM URL: https://sagitter.fedorapeople.org/libSEDML/libsedml-0.3.0-8.20150422git235bb5.fc22.src.rpm

Comment 18 Antonio T. (sagitter) 2015-06-08 15:22:36 UTC
(In reply to Antonio Trande from comment #17)
> > 
> > Why does java-libsedml require libsedml-devel? Shouldn't it be libsedml?
> 
> Neither of the two. I thought that Java library was linked to a library in
> /usr/lib?; actually java provides an own 'libsbmlj.so' installed in
> /usr/lib?. See
> http://sbml.org/Software/libSBML/docs/cpp-api/libsbml-installation.
> html#locations 
> 

Sorry, that link is to libsbml.

Comment 19 Zbigniew Jędrzejewski-Szmek 2015-06-08 15:26:35 UTC
Looks good. Package is APPROVED.

Comment 20 Antonio T. (sagitter) 2015-06-08 15:37:07 UTC
Thank you very much.

New Package SCM Request
=======================
Package Name: libsedml 
Short Description: Library that fully supports SED-ML for SBML
Upstream URL: https://github.com/fbergmann/libSEDML
Owners: sagitter
Branches: f22

Comment 21 Gwyn Ciesla 2015-06-08 23:03:53 UTC
Git done (by process-git-requests).

Comment 22 Fedora Update System 2015-06-09 10:01:03 UTC
libsedml-0.3.0-8.20150422git235bb5.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/libsedml-0.3.0-8.20150422git235bb5.fc22

Comment 23 Fedora Update System 2015-06-10 19:16:45 UTC
libsedml-0.3.0-8.20150422git235bb5.fc22 has been pushed to the Fedora 22 testing repository.

Comment 24 Fedora Update System 2015-06-12 16:12:41 UTC
libsedml-0.3.0-10.20150422git235bb5.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/libsedml-0.3.0-10.20150422git235bb5.fc22

Comment 25 Fedora Update System 2015-06-19 20:40:04 UTC
libsedml-0.3.0-12.20150422git235bb5.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/libsedml-0.3.0-12.20150422git235bb5.fc22

Comment 26 Fedora Update System 2015-07-10 19:06:06 UTC
libsedml-0.3.0-12.20150422git235bb5.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.