Spec URL: http://rdieter.fedorapeople.org/rpms/tomahawk/jreen.spec SRPM URL: http://rdieter.fedorapeople.org/rpms/tomahawk/jreen-0.1.0-0.2.20110816.fc15.src.rpm Description: Qt XMPP Library
f16 scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=3280425
Some files from this tarball are under GPLv3+. You could use the name macro in the source definition. Sadly, I haven't found a much better description for the package either. The devel sub-package should have a different description nevertheless, I think. You can remove "-n jreen-%{version}". jdns in the 3rdparty directory is a project on its own and should therefore be packaged separately, I guess. Simplesasl seems to be part of Psi (Remko Troncon). Jreen seems capable to use libidn, which is not a BR yet. jreen.x86_64: E: incorrect-fsf-address /usr/share/doc/jreen-0.1.0/GPL
Please update it from git - by my request it now contain .pc file for lib to link to it from qutim as shared lib. And then I'll review it.
Spec URL: http://rdieter.fedorapeople.org/rpms/tomahawk/jreen.spec SRPM URL: http://rdieter.fedorapeople.org/rpms/tomahawk/jreen-0.1.0-0.3.20110901.fc15.src.rpm %changelog * Thu Sep 01 2011 Rex Dieter <rdieter> 0.1.0-0.3.20110901 - 20110901 snapshot
Legend: + - Ok. - - Error. +/- - It item acceptable, but I strongly recommend enhancement. = - N/A. == MUST Items == [+/-] MUST: rpmlint must be run on every package. The output should be posted in the review. $ rpmlint * jreen.src: W: invalid-url Source0: jreen-0.1.0-20110901.tar.xz In your tarball reproduce script missed part of cd (or pushd) to jreen directory after 1st command. Please add it, now it doesn't work... Its minor and trivial to fix issue. jreen.i686: E: incorrect-fsf-address /usr/share/doc/jreen-0.1.0/GPL I've ask Ruslan, and that updated. Just pull changes and rebuild package. jreen-devel.i686: W: no-documentation jreen.spec: W: invalid-url Source0: jreen-0.1.0-20110901.tar.xz 4 packages and 1 specfiles checked; 1 errors, 3 warnings. [+] MUST: The package must be named according to the Package Naming Guidelines. [+] MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption. [-] MUST: The package must meet the Packaging Guidelines. There sefew bundled libs. See below. Jreen must require libidn as runtime requirement (not BuildRequires). [+] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines. (In reply to comment #2) > Some files from this tarball are under GPLv3+. Except 3d party libraries I have not found files under diffirent licenses. So, Voler, please provide us exact files please. [+] MUST: The License field in the package spec file must match the actual license. [+] MUST: 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 must be included in %doc. [+] MUST: The spec file must be written in American English. [+/-] MUST: The spec file for the package MUST be legible. Please delete trailing spaces from each lines. Off course it is not stop issue, just estetic. [+] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use md5sum for this task. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this. md5sum check is not available, but its seams identical. [+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. http://koji.fedoraproject.org/koji/taskinfo?taskID=3322459 [=] MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch. Each architecture listed in ExcludeArch MUST have a bug filed in bugzilla, describing the reason that the package does not compile/build/work on that architecture. The bug number MUST be placed in a comment, next to the corresponding ExcludeArch line. [=] MUST: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense. [=] MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden. [+] MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. [-] MUST: Packages must NOT bundle copies of system libraries. Package have bundled several libs (in directory 3rdparty), it is not allowed: jdns and simplesasl I've told with Ruslan about that and they say what jdns simple may be linked shared. And I think you should do that for jreen. Some more different situation with simplesasl. They said it copied from psi, and pidgin initialy also just contain that. For jreen it also taken as simple way. But it have errors and even not stable enought. Best way is use qca2-cirus-sasl plugin. It is released by same aouthora as qca2. So, you may wish ask qca2 maintainer ask to include that plugins and ship as subpackag(es), or pacjage it himself separately. Ruslan ready add into jreen needed compile switches to allow link it with shared libraries for Fedora (for that very-very big thankt to him!). [=] MUST: If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package. Without this, use of Prefix: /usr is considered a blocker. [+] MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. [+] MUST: A Fedora package must not list a file more than once in the spec file's %files listings. [+] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. [+/-] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT). If you intend build it for EPEL too, add this. Otherwise it is not neccesary. [+/-] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). If you intend build it for EPEL too, add this. Otherwise it is not neccesary. Do you want package it for EPEL too?? [+] MUST: Each package must consistently use macros. [+] MUST: The package must contain code, or permissable content. Bundled libs mentioned before. Other content looks permissive for me. [=] MUST: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity). [+] MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. [+] MUST: Header files must be in a -devel package. [=] MUST: Static libraries must be in a -static package. [+/-] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability). Again - for EPEL5 it must be added. [+] MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package. [+] MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} [+] MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built. [=] MUST: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section. If you feel that your packaged GUI application does not need a .desktop file, you must put a comment in the spec file with your explanation. [+] MUST: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time. [+] MUST: All filenames in rpm packages must be valid UTF-8. == SHOULD Items: == [=] SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [=] SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available. [+] SHOULD: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example. I test link to it qutim. [+] SHOULD: If scriptlets are used, those scriptlets must be sane. This is vague, and left up to the reviewers judgement to determine sanity. [+] SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency. [+] SHOULD: The placement of pkgconfig(.pc) files depends on their usecase, and this is usually for development purposes, so should be placed in a -devel pkg. A reasonable exception is that the main pkg itself is a devel tool not installed in a user runtime, e.g. gcc or gdb. [+] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the file instead of the file itself. So, as total the most important issue is package separate bundled libs.
[makerpm@fedora15 jreen-0.1.0]$ licensecheck -R *|grep v3 src/iqreply.h: GPL (v3 or later) src/iqreply.cpp: GPL (v3 or later) src/vcardmanager.h: GPL (v3 or later) src/vcardmanager.cpp: GPL (v3 or later)
Thank you, Volker. Ruslan kindly and very operative fix them - https://github.com/euroelessar/jreen/commit/a2487c43af7a00d2cd5cb770fba56decb7b43cc3
Hi all! I'm qutIM's developer There is one mistake at your discussion > [-] MUST: Packages must NOT bundle copies of system libraries. > Some more different situation with simplesasl. They said it copied from psi, > and pidgin initialy also just contain that. The only 3rdparty source we bundle with Jreen are jdns and simplesasl. Both are copied from iris's sources. But the same libraries with whole libiris itself are bundled at Kopete (not pidgin, as Pavel said) application, and it's packaged with no problems. So my question is: would be Kopete's Jabber plugin (which is bundled with same jdns and simplesasl's sources) also be reviewed?)
RE: kopete's bundling of libiris Yes, now that we've been made aware of kopete's bundling, it needs to be reviewed similarly.
With respect to (lib)iris (and jdns)... seems at least psi, kopete, and jreen here bundle all or parts of it. In my quick search, I'm not aware of any effort or implementation to distribute or package libiris (or jdns) separately (as shared libraries or whatever) So, I'm at a bit of a loss what to do about it. Suggestions?
I suppose on one hand, since iris is part of psi (right?), they're the first ones to poke about it...
OK, found http://delta.affinix.com/iris/ http://delta.affinix.com/jdns/ and checked out svn checkout https://delta.affinix.com/svn/trunk/iris Unfortunately, there quite a few issues to sort out to make this remotely usable as a separate, standalone, packagable library, including: * There are no official releases of the library yet. The latest source can be found in the ‘iris’ module of the Delta SVN. means, snapshots only * only seems to produce static libs (for me). * no 'make install' targets
(In reply to comment #9) > RE: kopete's bundling of libiris > Yes, now that we've been made aware of kopete's bundling, it needs to be > reviewed similarly. As I ask in ML ( http://www.mail-archive.com/devel@lists.fedoraproject.org/msg31331.html ) I also think it should be addressed in existing libraries too. (In reply to comment #12) > Unfortunately, there quite a few issues to sort out to make this remotely > usable as a separate, standalone, packagable library, including: > * There are no official releases of the library yet. The latest source can be > found in the ‘iris’ module of the Delta SVN. means, snapshots only Jreen also not released ;) yet. And even no API freeze happened. So I think it is not problem. > * only seems to produce static libs (for me). > * no 'make install' targets That two is problem. Especially compile in shared library. I think we should ask upstream authors to add such possibilities.
I can get started on a (lib)iris pkg (initial implementation will likely be a static lib).
Good news. Please tell me if any help needed.
any help would indeed be appreciated. Initial attempts: http://rdieter.fedorapeople.org/rpms/iris/ added pkg-config support 'make install' still not working, needs some love.
Glad to see. Please open new review request ant I try look on it. Add it there in depends on field.
Filled reports: psi: https://bugzilla.redhat.com/show_bug.cgi?id=737304 kdenetwork: https://bugzilla.redhat.com/show_bug.cgi?id=737305 Just for the info.
OK, as far as I'm concerned, practically speaking, unbundling iris as it is shipped and provided by it's upstream is a no-go, and arguably worthy of a copylib exception. I'll contact fpc to get the ball rolling. Please don't consider that a barrier if anyone else wants to continue work on shipping a standalone iris (it just means that I personally am not willing to devote the time and energy to implement it all myself).
https://fedorahosted.org/fpc/ticket/112
spot was kind enough to lend a hand, and went the last mile to get iris to build and package. I'll submit the iris pkg for review shortly.
I'h spoke with Ruslan and they say what Iris used in jreen only for few reasons what are: 1) jdns, which single can be packaged separately. 2) simplesasl. It may be replaced by runtime dependency to libqca2-plugin-cyrus-sasl. Its already present on qca-ossl package. 3) for ICE protocol implementation. By they words for GNU/Linux there already libnice (in Fedora) implementation. So, iris will be used for Win/Mac and by build switch in Fedora we will be able use libnice (iris need to be deleted in prep). So, we can only separate pack jdns and leave iris.
OK, thanks. The latest iteration in the iris review includes qjdns/qjdns-devel sub-pkgs.
May be have worth package [q]jdns separately from upstream project? Then we can do not pack iris at all (it will not be used anymore).
As I suppose you've mostly finished splitting of jdns and iris into separate packages. Would new jdns be shared library? Is it possible to find it with, i.e. pkgconfig, just looking into /usr/lib/jdns.pc and /usr/lib/qjdns.pc? Or I have to write my own scripts to find this library?
I've currently split it out into a libqjdns.so.1 shared library, yes, which includes a qjdns.pc pkgconfig file. (In a perfect world there'd also be a libjdns.so and jdns.pc for it's C-only bindings, but that would require more invasive changes)
If anyone wants some intermediate/test iris/qjdns packages, let me know in bug #749885 (and what fedora release you're using)
I think we can continue there than? Please provide package which use shared qjdns.
yes, here you go... http://rdieter.fedorapeople.org/rpms/tomahawk/jreen.spec http://rdieter.fedorapeople.org/rpms/tomahawk/jreen-1.0.1-1.fc16.src.rpm %changelog * Fri Jan 06 2012 Rex Dieter <rdieter> 1.0.1-1 - 1.0.1 - -DJREEN_USE_SYSTEM_JDNS:BOOL=ON
$ rpmlint * jreen.src: W: invalid-url URL: https://github.com/eurolessar/jreen HTTP Error 404: Not Found 1) It must be https://github.com/euroelessar/jreen jreen.src: W: invalid-url Source0: jreen-1.0.1.tar.xz jreen.spec: W: invalid-url Source0: jreen-1.0.1.tar.xz 1 packages and 1 specfiles checked; 0 errors, 3 warnings. 2) As you built stable versions please use upstream tarballs from tags: https://github.com/euroelessar/jreen/tags 3) Please delete bundled libs instead of renaming directory. 4) Build of package failed on rawhide: http://koji.fedoraproject.org/koji/taskinfo?taskID=3625703 5) require libidn as runtime requirement (not BuildRequires) missed. 6) Don't see libnice in any requirements. 7) Runtime dependency to qca-ossl also not in spec.
1. ok 2. I couldn't get the links there to work or do anything. ?? 3. doesn't matter, not really a blocker as long as they're not used 4. arg, some sort of gcc-4.7'ism. builds ok on my f16 box. 5. there's no need for an explicit dependency, the library already links libidn. the rpm ends up with a dep on libidn.so.11 6. why? what's that? I see no reference to it in the build log. 7. ok
http://rdieter.fedorapeople.org/rpms/tomahawk/jreen.spec http://rdieter.fedorapeople.org/rpms/tomahawk/jreen-1.0.1-2.fc16.src.rpm %changelog * Fri Jan 06 2012 Rex Dieter <rdieter> 1.0.1-2 - fix URL - Requires: qca-ossl - delete bundled libs
tomahawk seems to use the bundled simplesasl to connect to jabber and google, need to split it to its own package?
maybe, let's get review blockers handled first, then we can work through the runtime details between jreen/tomahawk upstreams later.
In the meantime, I've tentatively marked the qca-cyrus-sasl review as a dependency here, in case it truly is a viable alternative to using simplesasl I'm still curious how libnice comes into play, I cannot find any reference to it in the sources.
I can confirm that logging into a google account works in tomahawk after instalilng qca-cyrus-sasl ... I think I'll add the dep here, once it's review is done and it's ready and available.
If it's still does matter official Jreen's page is http://qutim.org/jreen, sources can be downloaded from http://qutim.org/dwnl/18/libjreen-1.0.1.tar.bz2 . Unfortunataly links at github don't work, I don't know why.
OK, I'll use that URL. thanks! http://rdieter.fedorapeople.org/rpms/tomahawk/jreen.spec http://rdieter.fedorapeople.org/rpms/tomahawk/jreen-1.0.1-3.fc16.src.rpm %changelog * Sat Jan 07 2012 Rex Dieter <rdieter> 1.0.1-3 - update URL, Source0
Created attachment 551376 [details] Fixes compilation error with gcc-4.7 > 4) Build of package failed on rawhide: > http://koji.fedoraproject.org/koji/taskinfo?taskID=3625703 This patch fixes compilation error with gcc-4.7
$ rpmlint * jreen.src:13: W: macro-in-comment %{version} jreen.spec:13: W: macro-in-comment %{version} 1 packages and 1 specfiles checked; 0 errors, 2 warnings. It is trivial to fix, please do it. Libnice indeed does not required in current version, only in further, so its ok. So, there left only one stop issue - it does not build on gcc 4.7. I speak with Ruslan and they provide patch, please try it. In any case, Rex, you can't import it until it will be resolved. So, package APPROVED.
Thanks! (for review, and gcc47 patch) New Package SCM Request ======================= Package Name: jreen Short Description: Qt XMPP Library Owners: rdieter Branches: f16 InitialCC:
Git done (by process-git-requests).
imported into rawhide.
clementine-0.7.1-4.fc16.1,tomahawk-0.3.3-4.fc16,libechonest-1.2.1-1.fc16,qca-cyrus-sasl-2.0.0-0.3.beta3.fc16,jreen-1.0.1-4.fc16,iris-1.0.0-0.10.20110904svn812.fc16,qtweetlib-0.3.0-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/clementine-0.7.1-4.fc16.1,tomahawk-0.3.3-4.fc16,libechonest-1.2.1-1.fc16,qca-cyrus-sasl-2.0.0-0.3.beta3.fc16,jreen-1.0.1-4.fc16,iris-1.0.0-0.10.20110904svn812.fc16,qtweetlib-0.3.0-1.fc16
clementine-0.7.1-4.fc16.1, tomahawk-0.3.3-4.fc16, libechonest-1.2.1-1.fc16, qca-cyrus-sasl-2.0.0-0.3.beta3.fc16, jreen-1.0.1-4.fc16, iris-1.0.0-0.10.20110904svn812.fc16, qtweetlib-0.3.0-1.fc16 has been pushed to the Fedora 16 stable repository.