Bug 1148224 - Review Request: mmdb2 - protein coordinate library
Summary: Review Request: mmdb2 - protein coordinate library
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Mukundan Ragavan
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-10-01 01:46 UTC by Tim Fenn
Modified: 2015-03-22 21:36 UTC (History)
3 users (show)

Fixed In Version: mmdb2-2.0.1-3.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-22 21:36:26 UTC
Type: ---
Embargoed:
nonamedotc: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Tim Fenn 2014-10-01 01:46:36 UTC
Spec URL: https://sites.google.com/site/timfenn/mmdb2.spec
SRPM URL: https://sites.google.com/site/timfenn/mmdb2-2.0.1-1.fc19.src.rpm

Description: This is a re-review of the mmdb library, which this package will obsolete (I also maintain the earlier version).  Upstream chose to rename the package mmdb2 after a library/API overhaul.

koji scratch build here:
http://koji.fedoraproject.org/koji/taskinfo?taskID=7736931

Fedora Account System Username: timfenn

Comment 1 Mukundan Ragavan 2014-10-01 02:07:15 UTC
I will take care of this tomorrow evening.

Comment 2 Mukundan Ragavan 2014-10-07 01:26:53 UTC
Damn! Sorry, I forgot about this. I will review this tomorrow (definitely).

Comment 3 Tim Fenn 2014-10-29 03:12:17 UTC
Mukundan: ping?

Comment 4 Mukundan Ragavan 2014-10-30 02:24:40 UTC
Hey Tim, Sorry. I got really sidetracked with some stuff. I will *definitely* do this tomorrow. Apologies again.

Comment 5 Mukundan Ragavan 2014-10-31 01:45:10 UTC
One "major" item I do not understand is this - 

mmdb2.x86_64: W: obsolete-not-provided mmdb


But, this is fine. I see obsoletes in the spec file.

From the spec file, 

%if 0%{?fedora} >= 21
Obsoletes: mmdb < %{version}-%{release}
%endif

Strange?

Other than that, some minor items. Detailed review below.


Package Review
==============

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


Issues:
=======
- Package uses either %{buildroot} or $RPM_BUILD_ROOT
  Note: Using both %{buildroot} and $RPM_BUILD_ROOT
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#macros


---> Spec clean up?

===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[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.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

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]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "LGPL", "GPL (v2 or later)", "*No copyright* LGPL", "Unknown or
     generated". 1 files have unknown license. Detailed output of licensecheck
     in /home/mukundan/ownCloud/pkg_reviews/1148224-mmdb2/licensecheck.txt

---> This looks fine.

[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]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf %{buildroot} present but not required

---> Spec clean up/modernize?

[x]: Sources contain only permissible code or content.
[x]: Each %files section contains %defattr if rpm < 4.4
     Note: %defattr present but not needed

---> Spec clean up/modernize?

[-]: 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.
[x]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.

---> Obsoletes are provided for Fedora>=21.

[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.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 51200 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]: 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

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

Generic:
[!]: Sources can be downloaded from URI in Source: tag
     Note: Could not download Source0:
     ftp://ftp.ccp4.ac.uk/opensource/mmdb2-2.0.1.tar.gz
     See: http://fedoraproject.org/wiki/Packaging:Guidelines#Tags

---> I am unable to download it manually either. Is there a problem with upstream that you are aware of?


[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: %clean present but not required

---> Spec clean up?

[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 (see attachments).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Scriptlets must be sane, if used.
[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]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[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: mmdb2-2.0.1-1.fc21.x86_64.rpm
          mmdb2-devel-2.0.1-1.fc21.x86_64.rpm
          mmdb2-2.0.1-1.fc21.src.rpm
mmdb2.x86_64: W: spelling-error Summary(en_US) Macromolecular -> Macro molecular, Macro-molecular, Molecular
mmdb2.x86_64: W: spelling-error %description -l en_US macromolecular -> macro molecular, macro-molecular, molecular
mmdb2.x86_64: W: spelling-error %description -l en_US mmCIF -> MCI
mmdb2.x86_64: W: invalid-url URL: ftp://ftp.ccp4.ac.uk/opensource/ <urlopen error ftp error: timed out>
mmdb2.x86_64: W: obsolete-not-provided mmdb


---> This is fine. I see obsoletes in the spec file.

From the spec file, 

%if 0%{?fedora} >= 21
Obsoletes: mmdb < %{version}-%{release}
%endif


mmdb2.x86_64: W: shared-lib-calls-exit /usr/lib64/libmmdb2.so.0.0.0 exit.5

---> Please communicate this to upstream.

mmdb2-devel.x86_64: W: spelling-error %description -l en_US macromolecular -> macro molecular, macro-molecular, molecular
mmdb2-devel.x86_64: W: invalid-url URL: ftp://ftp.ccp4.ac.uk/opensource/ <urlopen error ftp error: timed out>
mmdb2-devel.x86_64: W: obsolete-not-provided mmdb
mmdb2-devel.x86_64: W: only-non-binary-in-usr-lib
mmdb2-devel.x86_64: W: no-documentation
mmdb2.src: W: spelling-error Summary(en_US) Macromolecular -> Macro molecular, Macro-molecular, Molecular
mmdb2.src: W: spelling-error %description -l en_US macromolecular -> macro molecular, macro-molecular, molecular
mmdb2.src: W: spelling-error %description -l en_US mmCIF -> MCI
mmdb2.src: W: spelling-error %description -l en_US mmdb -> mm db, mm-db, DBMS
mmdb2.src: W: invalid-url URL: ftp://ftp.ccp4.ac.uk/opensource/ <urlopen error ftp error: timed out>
mmdb2.src: W: invalid-url Source0: ftp://ftp.ccp4.ac.uk/opensource/mmdb2-2.0.1.tar.gz <urlopen error ftp error: timed out>
3 packages and 0 specfiles checked; 0 errors, 17 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint mmdb2 mmdb2-devel
mmdb2.x86_64: W: spelling-error Summary(en_US) Macromolecular -> Macro molecular, Macro-molecular, Molecular
mmdb2.x86_64: W: spelling-error %description -l en_US macromolecular -> macro molecular, macro-molecular, molecular
mmdb2.x86_64: W: spelling-error %description -l en_US mmCIF -> MCI
mmdb2.x86_64: W: invalid-url URL: ftp://ftp.ccp4.ac.uk/opensource/ <urlopen error ftp error: timed out>
mmdb2.x86_64: W: obsolete-not-provided mmdb
mmdb2.x86_64: W: shared-lib-calls-exit /usr/lib64/libmmdb2.so.0.0.0 exit.5
mmdb2-devel.x86_64: W: spelling-error %description -l en_US macromolecular -> macro molecular, macro-molecular, molecular
mmdb2-devel.x86_64: W: invalid-url URL: ftp://ftp.ccp4.ac.uk/opensource/ <urlopen error ftp error: timed out>
mmdb2-devel.x86_64: W: obsolete-not-provided mmdb
mmdb2-devel.x86_64: W: only-non-binary-in-usr-lib
mmdb2-devel.x86_64: W: no-documentation
2 packages and 0 specfiles checked; 0 errors, 11 warnings.
# echo 'rpmlint-done:'



Requires
--------
mmdb2 (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)

mmdb2-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libmmdb2.so.0()(64bit)
    mmdb2(x86-64)
    pkgconfig



Provides
--------
mmdb2:
    libmmdb2.so.0()(64bit)
    mmdb2
    mmdb2(x86-64)

mmdb2-devel:
    mmdb2-devel
    mmdb2-devel(x86-64)
    pkgconfig(mmdb2)



Generated by fedora-review 0.5.2 (63c24cb) last change: 2014-07-14
Command line :/usr/bin/fedora-review -b 1148224
Buildroot used: fedora-21-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

Comment 6 Tim Fenn 2014-11-03 02:43:59 UTC
(In reply to Mukundan Ragavan from comment #5)
> One "major" item I do not understand is this - 
> 
> mmdb2.x86_64: W: obsolete-not-provided mmdb
> 
> 
> But, this is fine. I see obsoletes in the spec file.
> 
> From the spec file, 
> 
> %if 0%{?fedora} >= 21
> Obsoletes: mmdb < %{version}-%{release}
> %endif
> 
> Strange?
> 

Well, I'm wondering how to handle the case where packages that depend on the original mmdb don't break when this update comes out?  Since mmdb2 and mmdb can coexist, but mmdb is being deprecated (and the two aren't compatible).  Whats the proper way to handle that?  (I do plan on updating the packages that depend on this pacakge, BTW, but thats the next step)

> Other than that, some minor items. Detailed review below.
> 
> 
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> [ ] = Manual review needed
> 
> 
> Issues:
> =======
> - Package uses either %{buildroot} or $RPM_BUILD_ROOT
>   Note: Using both %{buildroot} and $RPM_BUILD_ROOT
>   See: http://fedoraproject.org/wiki/Packaging/Guidelines#macros
> 
> 
> ---> Spec clean up?
> 

I did a spec file clean up based on this and the other recommendations.

Once I sort out how to best handle the provides/obsoletes issue, I'll post the latest spec file.

Comment 7 Tim Fenn 2014-11-03 02:44:53 UTC
Oh, I should also mention: the ftp site seems to work for me?  Maybe it was down temporarily?

Comment 8 Mukundan Ragavan 2014-11-04 23:50:37 UTC
(In reply to Tim Fenn from comment #7)
> Oh, I should also mention: the ftp site seems to work for me?  Maybe it was
> down temporarily?

Yup.This looks good here now.

Comment 9 Tim Fenn 2014-11-06 03:34:10 UTC
(In reply to Mukundan Ragavan from comment #8)
> (In reply to Tim Fenn from comment #7)
> > Oh, I should also mention: the ftp site seems to work for me?  Maybe it was
> > down temporarily?
> 
> Yup.This looks good here now.

OK cool - how about the question re. obsoletes/provides?

Comment 10 Mukundan Ragavan 2014-11-11 02:12:11 UTC
(In reply to Tim Fenn from comment #9)
> (In reply to Mukundan Ragavan from comment #8)
> > (In reply to Tim Fenn from comment #7)
> > > Oh, I should also mention: the ftp site seems to work for me?  Maybe it was
> > > down temporarily?
> > 
> > Yup.This looks good here now.
> 
> OK cool - how about the question re. obsoletes/provides?

Let me dig up the packaging guidelines ... :) (Sorry for the delayed response)

Comment 11 Mukundan Ragavan 2014-11-13 01:35:19 UTC
(In reply to Tim Fenn from comment #6)

> Well, I'm wondering how to handle the case where packages that depend on the
> original mmdb don't break when this update comes out?  Since mmdb2 and mmdb
> can coexist, but mmdb is being deprecated (and the two aren't compatible). 
> Whats the proper way to handle that?  (I do plan on updating the packages
> that depend on this pacakge, BTW, but thats the next step)
> 

Upon digging further, as far as I can tell, what you have done seems correct to me. If you are going to update the other packages anyway, it would not be a problem I think.

Comment 13 Mukundan Ragavan 2014-11-14 03:15:42 UTC
$ diff -Nu ~/ownCloud/pkg_reviews/mmdb2/rev1/srpm-unpacked/mmdb2.spec mmdb2.spec 
--- /home/mukundan/ownCloud/pkg_reviews/mmdb2/rev1/srpm-unpacked/mmdb2.spec	2014-09-30 20:22:44.000000000 -0500
+++ mmdb2.spec	2014-11-13 20:50:19.000000000 -0600
@@ -1,7 +1,7 @@
 Summary: Macromolecular coordinate library
 Name: mmdb2
 Version: 2.0.1
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: LGPLv3
 Group: System Environment/Libraries
 URL: ftp://ftp.ccp4.ac.uk/opensource/
@@ -53,31 +53,28 @@
 make %{?_smp_mflags}
 
 %install
-rm -rf %{buildroot}
-make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'
+make install DESTDIR=%{buildroot} INSTALL='install -p'
 
 # remove unpackaged files from the buildroot
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
+rm -f %{buildroot}%{_libdir}/*.la
 
 %post -p /sbin/ldconfig
 
 %postun -p /sbin/ldconfig
 
-%clean
-rm -rf %{buildroot}
-
 %files
-%defattr(-,root,root,-)
 %doc AUTHORS COPYING README
 %{_libdir}/libmmdb2.so.0.0.0
 %{_libdir}/libmmdb2.so.0
 
 %files devel
-%defattr(-,root,root,-)
 %{_libdir}/libmmdb2.so
 %{_includedir}/mmdb2/
 %{_libdir}/pkgconfig/%{name}.pc
 
 %changelog
+* Sun Nov 2 2014 Tim Fenn <tim.fenn> - 2.0.1-2
+- spec file clean ups/modernization
+
 * Sun Sep 21 2014 Tim Fenn <tim.fenn> - 2.0.1-1
 - Initial build


Package builds fine in mock. No other issues in review.

Package APPROVED. Cheers, and sorry for the delays.

Comment 14 Tim Fenn 2014-11-19 04:21:12 UTC
New Package SCM Request
=======================
Package Name: mmdb2
Short Description: protein coordinate library
Upstream URL: ftp://ftp.ccp4.ac.uk/opensource/
Owners: timfenn
Branches: f21 epel7
InitialCC: timfenn

Comment 15 Gwyn Ciesla 2014-11-19 11:33:08 UTC
Upstream URL seems to be invalid.

Comment 16 Tim Fenn 2014-11-20 04:58:41 UTC
(In reply to Jon Ciesla from comment #15)
> Upstream URL seems to be invalid.

Hmm, working for me?  Seems like the site has been going through some temporary down time for whatever reason.

Comment 17 Tim Fenn 2014-11-22 15:50:21 UTC
(In reply to Tim Fenn from comment #16)
> (In reply to Jon Ciesla from comment #15)
> > Upstream URL seems to be invalid.
> 
> Hmm, working for me?  Seems like the site has been going through some
> temporary down time for whatever reason.

Been up for a few days now, most likely intermittent down time.

Comment 18 Gwyn Ciesla 2014-11-24 13:37:58 UTC
Git done (by process-git-requests).

Comment 19 Fedora Update System 2014-11-26 22:16:29 UTC
mmdb2-2.0.1-3.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/mmdb2-2.0.1-3.fc21

Comment 20 Fedora Update System 2014-11-26 22:16:36 UTC
mmdb2-2.0.1-3.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/mmdb2-2.0.1-3.el7

Comment 21 Fedora Update System 2014-11-27 19:26:49 UTC
mmdb2-2.0.1-3.fc21 has been pushed to the Fedora 21 testing repository.

Comment 22 Fedora Update System 2014-12-12 04:34:05 UTC
mmdb2-2.0.1-3.fc21 has been pushed to the Fedora 21 stable repository.

Comment 23 Fedora Update System 2014-12-17 05:36:41 UTC
mmdb2-2.0.1-3.el7 has been pushed to the Fedora EPEL 7 stable repository.

Comment 24 Michael Schwendt 2015-01-29 08:11:01 UTC
Please re-review the Obsoletes/Provides:

  https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages

Currently, mmdb2 does:

  Obsoletes: mmdb < 2.0.1-3.fc22

mmdb2-devel does:

  Obsoletes: mmdb < 2.0.1-3.fc22

1) Nothing obsoletes mmdb-devel!

2) Nothing provides mmdb and mmdb-devel! mmdb and mmdb2 are ABI-incompatible, so replacing mmdb with mmdb2 is questionable to begin with. Is it API-compatible at least?

3) Packages mmdb and mmdb-devel are still in the distribution! If obsoleted fully, it should be retired:
http://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life

Comment 25 Mukundan Ragavan 2015-01-29 20:37:18 UTC
Tim, looks like my understanding on the Obsoletes/Provides was at least incomplete ... Comments about the package?

Comment 26 Tim Fenn 2015-01-31 20:13:43 UTC
I'm updating all the packages that depend on mmdb to switch to mmdb2.  Once thats complete, I'll remove mmdb from future fedora releases.  I should have this finished in a week or two.  Sound good?

Comment 27 Mukundan Ragavan 2015-02-02 00:25:52 UTC
(In reply to Tim Fenn from comment #26)
> I'm updating all the packages that depend on mmdb to switch to mmdb2.  Once
> thats complete, I'll remove mmdb from future fedora releases.  I should have
> this finished in a week or two.  Sound good?

That sounds good to me. Thanks!

Michael, any concerns?

Comment 28 Michael Schwendt 2015-02-02 09:58:04 UTC
I can only comment on specific changes. As long as only mmdb is obsolete, mmdb-devel cannot be used anymore. So, the plan in comment 26 sounds like a good plan. If it's done properly. ;-)

Comment 29 Mukundan Ragavan 2015-03-21 20:52:29 UTC
Any update on this Tim? Thanks.

Comment 30 Tim Fenn 2015-03-22 16:23:18 UTC
Yes - just retired mmdb from F22/master branches.

Comment 31 Mukundan Ragavan 2015-03-22 21:36:26 UTC
(In reply to Tim Fenn from comment #30)
> Yes - just retired mmdb from F22/master branches.

Thanks! Let me close this bug again then.


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