Spec URL: http://dl.dropbox.com/u/96272944/dsqlite.spec SRPM URL: http://dl.dropbox.com/u/96272944/dsqlite-1-2.20120803git1113632.fc17.src.rpm Description: DSQLite is a Hight level library for SQLite. Use sqlite in D programming with this library is so easy. Fedora Account System Username: jouty
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.
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.