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
I will take care of this tomorrow evening.
Damn! Sorry, I forgot about this. I will review this tomorrow (definitely).
Mukundan: ping?
Hey Tim, Sorry. I got really sidetracked with some stuff. I will *definitely* do this tomorrow. Apologies again.
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
(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.
Oh, I should also mention: the ftp site seems to work for me? Maybe it was down temporarily?
(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.
(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?
(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)
(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.
Updated: Spec URL: https://sites.google.com/site/timfenn/mmdb2.spec SRPM URL: https://sites.google.com/site/timfenn/mmdb2-2.0.1-2.fc21.src.rpm
$ 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.
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
Upstream URL seems to be invalid.
(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.
(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.
Git done (by process-git-requests).
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
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
mmdb2-2.0.1-3.fc21 has been pushed to the Fedora 21 testing repository.
mmdb2-2.0.1-3.fc21 has been pushed to the Fedora 21 stable repository.
mmdb2-2.0.1-3.el7 has been pushed to the Fedora EPEL 7 stable repository.
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
Tim, looks like my understanding on the Obsoletes/Provides was at least incomplete ... Comments about the package?
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?
(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?
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. ;-)
Any update on this Tim? Thanks.
Yes - just retired mmdb from F22/master branches.
(In reply to Tim Fenn from comment #30) > Yes - just retired mmdb from F22/master branches. Thanks! Let me close this bug again then.