Bug 846008
| Summary: | Review Request: dsqlite - DSQLite is a Hight level library for SQLite in D programming | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Christophe Burgun <linuxed_fedora> |
| Component: | Package Review | Assignee: | Pierre-YvesChibon <pingou> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | bioinfornatics, notting, package-review, pingou |
| Target Milestone: | --- | Flags: | pingou:
fedora-review+
gwync: fedora-cvs+ |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-02-26 02:42:49 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Christophe Burgun
2012-08-06 13:24:08 UTC
You should add to the subpackage devel:
Requires: %{name}%{?_isa} = %{version}-%{release}
the requirement in devel package has be done Thanks New links Spec URL: http://dl.dropbox.com/u/96272944/dsqlite.spec SRPM URL: http://dl.dropbox.com/u/96272944/dsqlite-1-3.20120803git1113632.fc17.src.rpm that is ok for me: after installing the generated rpm and build the example file: - https://github.com/bioinfornatics/DSQLite/blob/master/examples/test_sql.d -------------------- $ ldc2 -L-lDSQLite-ldc -L-lsqlite examples/test_sql.d $ ./test_sql +++ create database +++ create table +++ INSERT INTO people (id, name) VALUES(?, ?), john, 1 +++ INSERT INTO people (id, name) VALUES(?), smith +++ SELECT name FROM people WHERE id=1 +++ print name john +++ SELECT name FROM people WHERE id=?, 1 +++ print name john +++ SELECT * FROM people +++ print name id john 1 smith 2 +++ CREATE TABLE car ( constructor TEXT, model TEXT, id INTEGER PRIMARY KEY NOT NULL); +++ UPDATE table name stored ------------------------------------ You need to look for a sponsor as is your first package fix command line used* $ ldc2 -L-lDSQLite-ldc -L-lsqlite3 examples/test_sql.d I see in you spec that you have defined the version as being 1, how do you plan to do if upstream releases a version 0.1 ? Also, please have a look at:
- the output from rpmlint
- "License file installed when any subpackage combination is installed." that should be true but still minimize the number of duplicated files, please adjust the spec accordingly
- Is the -devel package interesting without the main package?
- I have a problem with: %{_defaultdocdir}/dsqlite could you explain what this is?
- The guidelines are refering to DFLAGS, while you are using DCFLAGS, any specific reasons? (see: https://fedoraproject.org/wiki/Packaging:D )
- Is there really no Requires for this package?
That's a place to start :)
1) the output from rpmlint => unstripped-binary-or-object (https://fedoraproject.org/wiki/Packaging:D) and dictionnary output are normal 2) "License file installed when any subpackage combination is installed." that should be true but still minimize the number of duplicated files, please adjust the spec accordingly => fixed 3) Is the -devel package interesting without the main package? => No it is for developers and they need both. 4) I have a problem with: %{_defaultdocdir}/dsqlite could you explain what this is? => this explain the methods, this documentation is auto generated by any D compiler 5) The guidelines are refering to DFLAGS, while you are using DCFLAGS, any specific reasons? (see: https://fedoraproject.org/wiki/Packaging:D ) - Is there really no Requires for this package? => DCFLAGS is used as makefile provide only this var not DFLAGS new urls : SPEC: http://jouty.fedorapeople.org/dsqlite.spec SRPM: http://jouty.fedorapeople.org/dsqlite-1.0-1.src.rpm you missed one:
> - Is there really no Requires for this package?
Sorry, There isn't Requires needed for the main package just for the devel. So this package is functional even without a D compiler? Yes this package is functional even without a D compiler once compiled this library is functional You have the same comment regarding the Summary has you had for GoGui: the summary should not be a sentence. rpmlint also outputs: unused-direct-shlib-dependency when ran on the package installed (install the package and run "rpmlint dsqlite-devel dsqlite" or check the output from fedora-review that provides it) little typo into french description bibliotheque -> bibliothèque language -> langage about "unused-direct-shlib-dependency" is maybe a ldc bug i wait upstream https://github.com/ldc-developers/ldc/issues/228 so you can skip this as the bug is part of ldc an will be fixed I have change the summary new urls : SPEC: http://jouty.fedorapeople.org/dsqlite.spec SRPM: http://jouty.fedorapeople.org/dsqlite-1.0-2.src.rpm Ok so here are the final comments:
Package Review
==============
Key:
[x] = Pass [!] = Fail [-] = Not applicable [?] = Not evaluated
===== MUST items =====
C/C++:
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[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]: Package successfully compiles and builds into binary rpms on at least one
supported primary architecture.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: All build dependencies are listed in BuildRequires, except for any that
are listed in the exceptions section of Packaging Guidelines.
[x]: Package contains no bundled libraries.
[x]: Changelog in prescribed format.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
beginning of %install.
[x]: Sources contain only permissible code or content.
[x]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Fully versioned dependency in subpackages, if present.
[x]: Package complies to the Packaging Guidelines
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[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]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[x]: Package consistently uses macro is (instead of hard-coded directory
names).
[x]: Package is named using only allowed ASCII characters.
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package do not use a name that already exist
[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.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package installs properly.
[x]: Package is not relocatable.
[x]: Requires correct, justified where necessary.
[x]: CheckResultdir
[x]: Rpmlint is run on all rpms the build produces.
Note: There are rpmlint messages (see attachment).
[x]: Sources used to build the package match the upstream source, as provided
in the spec URL.
[x]: Spec file is legible and written in American English.
[x]: Spec file name must match the spec package %{name}, in the format
%{name}.spec.
[-]: Package contains systemd file(s) if in need.
[x]: File names are valid UTF-8.
[x]: Useful -debuginfo package or justification otherwise.
[-]: Large documentation must go in a -doc subpackage.
[-]: Packages must not store files under /srv, /opt or /usr/local
===== SHOULD items =====
Generic:
[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)
[-]: If the source package does not include license text(s) as a separate file
from upstream, the packager SHOULD query upstream to include it.
[!]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x] Final provides and requires are sane (rpm -q --provides and rpm -q
--requires).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: Scriptlets must be sane, if used.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX / PatchY prefixed with %{name}.
[x]: SourceX is a working URL.
[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.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Spec use %global instead of %define.
===== EXTRA items =====
Generic:
[x]: Rpmlint is run on all installed packages.
Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.
[-]: Large data in /usr/share should live in a noarch subpackage if package is
arched.
Rpmlint
-------
Checking: dsqlite-1.0-2.x86_64.rpm
dsqlite-1.0-2.src.rpm
dsqlite-devel-1.0-2.x86_64.rpm
dsqlite.x86_64: I: enchant-dictionary-not-found fr_FR
dsqlite.x86_64: W: unstripped-binary-or-object /usr/lib64/libDSQLite-ldc.so.1
dsqlite.src: W: spelling-error %description -l en_US sqlite -> sq lite, sq-lite, satellite
dsqlite-devel.x86_64: I: enchant-dictionary-not-found fr
dsqlite-devel.x86_64: W: spelling-error %description -l fr langage -> language
dsqlite-devel.x86_64: W: no-documentation
3 packages and 0 specfiles checked; 0 errors, 4 warnings.
Rpmlint (installed packages)
----------------------------
# rpmlint dsqlite-devel dsqlite
dsqlite-devel.x86_64: I: enchant-dictionary-not-found fr
dsqlite-devel.x86_64: W: spelling-error %description -l fr langage -> language
dsqlite-devel.x86_64: W: no-documentation
dsqlite.x86_64: I: enchant-dictionary-not-found fr_FR
dsqlite.x86_64: W: unstripped-binary-or-object /usr/lib64/libDSQLite-ldc.so.1
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 __data_start
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 _Dmain
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_text
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_close
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_int
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_reset
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_bind_int
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_clear_bindings
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_exec
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_bind_double
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_database_name
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_bind_int64
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_finalize
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_type
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_table_name
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_bind_text
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_origin_name
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_step
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_count
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_errmsg
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_name
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_prepare_v2
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_column_double
dsqlite.x86_64: W: undefined-non-weak-symbol /usr/lib64/libDSQLite-ldc.so.1 sqlite3_open
dsqlite.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libDSQLite-ldc.so.1 /lib64/librt.so.1
dsqlite.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libDSQLite-ldc.so.1 /lib64/libdl.so.2
dsqlite.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libDSQLite-ldc.so.1 /lib64/libpthread.so.0
dsqlite.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libDSQLite-ldc.so.1 /lib64/libm.so.6
2 packages and 0 specfiles checked; 0 errors, 31 warnings.
All these rpmlint warnings can be ignored safely.
MD5-sum check
-------------
https://github.com/downloads/bioinfornatics/DSQLite/dsqlite-1.0.tar.xz :
CHECKSUM(SHA256) this package : bd86303a0817ae27678abb28907ccd0035fd12d22d02cf3c28a4070372fcddc8
CHECKSUM(SHA256) upstream package : bd86303a0817ae27678abb28907ccd0035fd12d22d02cf3c28a4070372fcddc8
So the last thing to correct is:
[!]: Dist tag is present.
which in this case is absent (why?).
Please fix this and I will approve the package
I have change the spec as your recommendations new urls : SPEC: http://jouty.fedorapeople.org/dsqlite.spec SRPM: http://jouty.fedorapeople.org/dsqlite-1.0-3.src.rpm There is still one thing: > %global debug_package %{nil} The guideline says > If your D package contains static libraries, you must disable debuginfo > generation, by adding this line to the top of your spec file: But you are not building a static library... new urls : SPEC: http://jouty.fedorapeople.org/dsqlite.spec SRPM: http://jouty.fedorapeople.org/dsqlite-1.0-4.src.rpm Ok this time it looks all good. Congratulations, this package is APPROVED. Once gogui is approved you will be sponsored into the packager group You can already follow the next steps in https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Get_Sponsored New Package SCM Request ======================= Package Name: dsqlite Short Description: High level library around SQLite for D language Owners: jouty Branches: f17 f18 fas email and bugzilla email need to match. New Package SCM Request ======================= Package Name: dsqlite Short Description: High level library around SQLite for D language Owners: jouty Branches: f17 f18 Git done (by process-git-requests). dsqlite-1.0-4.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/dsqlite-1.0-4.fc17 dsqlite-1.0-4.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/dsqlite-1.0-4.fc18 dsqlite-1.0-4.fc17 has been pushed to the Fedora 17 testing repository. dsqlite-1.0-4.fc17 has been pushed to the Fedora 17 stable repository. dsqlite-1.0-4.fc18 has been pushed to the Fedora 18 stable repository. |