Spec URL: http://renich.fedorapeople.org/SPECS/libzeitgeist.spec SRPM URL: http://renich.fedorapeople.org/SRPMS/libzeitgeist-0.3.2-1.fc14.src.rpm Description: This project provides a client library for applications that want to interact with the Zeitgeist daemon. The library is written in C using glib and provides an asynchronous GObject oriented API. I need this library for synapse; which is under review here: https://bugzilla.redhat.com/show_bug.cgi?id=671862
Just some questions for now: - when using %{version} instead of 0.3.2 in Source0, it's easier to update the package - you own _includedir, but only should the subfolders/files. (Same for other folders...) - scratch build failed, because of missing BR: http://koji.fedoraproject.org/koji/taskinfo?taskID=2754073
This needs some more work, not limited to these issues or those found by Thomas already: Run rpmlint not just on the src.rpm, but also on the built rpms. > #BuildRequires: > Requires: zeitgeist https://fedoraproject.org/wiki/Packaging:Guidelines#Explicit_Requires This explicit Requires asks for a comment in the spec file. Is it a run-time dependency only? Is it an install-time dependency? > %{_libdir}/pkgconfig You include the directory, which belongs into the pkgconfig package. To fix this, specify the exact .pc file name to include in your package: %{_libdir}/pkgconfig/zeitgeist-1.0.pc That would also help with noticing updates/upgrades which bump the version in that file name and would break compatibility with dependencies that look for exactly that .pc file. > %doc %{_docdir}/%{name} This is duplicated in both packages. Additionally, the HTML docs are duplicated, too, in several places. > %docdir %{_datadir}/gtk-doc/html/zeitgeist-1.0 What does this do? It doesn't mark any directory as %doc, and a few lines below you include the directory once more: %doc %{_datadir}/gtk-doc/html/zeitgeist-1.0 > %doc AUTHORS ChangeLog COPYING COPYING.GPL INSTALL MAINTAINERS NEWS README > %doc %{_docdir}/%{name} That creates duplicates, too. Plus, the INSTALL file is the one that is irrelevant to RPM package users: $ rpm -qpd libzeitgeist-0.3.2-1.fc14.i686.rpm /usr/share/doc/libzeitgeist-0.3.2/AUTHORS /usr/share/doc/libzeitgeist-0.3.2/COPYING /usr/share/doc/libzeitgeist-0.3.2/COPYING.GPL /usr/share/doc/libzeitgeist-0.3.2/ChangeLog /usr/share/doc/libzeitgeist-0.3.2/INSTALL /usr/share/doc/libzeitgeist-0.3.2/MAINTAINERS /usr/share/doc/libzeitgeist-0.3.2/NEWS /usr/share/doc/libzeitgeist-0.3.2/README /usr/share/doc/libzeitgeist/AUTHORS /usr/share/doc/libzeitgeist/COPYING /usr/share/doc/libzeitgeist/INSTALL /usr/share/doc/libzeitgeist/MAINTAINERS /usr/share/doc/libzeitgeist/README > %{_datadir}/vala/vapi As a general hint on including directories, consider adding a trailing slash for increased readability and clearness: %{_datadir}/vala/vapi/
Ok, I tried to address all of your kind indications. Thank you, very much, for pointing them out. I've ran rpmlint on everything and no errors at all. Please, check them once again, if you have the time and patience. ;) http://renich.fedorapeople.org/SPECS/libzeitgeist.spec http://renich.fedorapeople.org/SRPMS/libzeitgeist-0.3.2-2.fc14.src.rpm
(In reply to comment #2) > $ rpm -qpd libzeitgeist-0.3.2-1.fc14.i686.rpm > /usr/share/doc/libzeitgeist-0.3.2/AUTHORS > /usr/share/doc/libzeitgeist-0.3.2/COPYING > /usr/share/doc/libzeitgeist-0.3.2/COPYING.GPL > /usr/share/doc/libzeitgeist-0.3.2/ChangeLog > /usr/share/doc/libzeitgeist-0.3.2/INSTALL > /usr/share/doc/libzeitgeist-0.3.2/MAINTAINERS > /usr/share/doc/libzeitgeist-0.3.2/NEWS > /usr/share/doc/libzeitgeist-0.3.2/README > /usr/share/doc/libzeitgeist/AUTHORS > /usr/share/doc/libzeitgeist/COPYING > /usr/share/doc/libzeitgeist/INSTALL > /usr/share/doc/libzeitgeist/MAINTAINERS > /usr/share/doc/libzeitgeist/README I think this might be the only remaining problem. How do I get rid of /usr/share/doc/libzeitgeist/ which is of no use to us? I tried deleting this in the %install section but gained nothing. Do I need to patch the make file?
> How do I get rid of /usr/share/doc/libzeitgeist/ which is of no use to us? Certainly you can adjust the contents of %{buildroot} at the end of %install to your liking. The issue is fixed in libzeitgeist-0.3.2-2.fc14.src.rpm The html docs are missing their top directory entry now, however: $ rpmls -p /home/misc14/tmp/rpm/RPMS/libzeitgeist-devel-0.3.2-2.fc14.i686.rpm|grep ^d drwxr-xr-x /usr/include/zeitgeist-1.0 drwxr-xr-x /usr/share/doc/libzeitgeist-devel-0.3.2 drwxr-xr-x /usr/share/vala/vapi As I've pointed out before, the %docdir entry in your %files section does not do what you probably think it does. Directories are not marked as %doc, so a single entry %doc %{_datadir}/gtk-doc/html/zeitgeist-1.0/ would be enough to include that directory *and* everything it it. > %doc AUTHORS ChangeLog COPYING COPYING.GPL INSTALL MAINTAINERS NEWS README Here 'INSTALL' can still be dropped.
Thank you, very much, for taking the time to guide me through this. (In reply to comment #5) > As I've pointed out before, the %docdir entry in your %files section does not > do what you probably think it does. Directories are not marked as %doc, so a > single entry > > %doc %{_datadir}/gtk-doc/html/zeitgeist-1.0/ > > would be enough to include that directory *and* everything it it. Ok; I understand. I read here: http://www.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html#S3-RPM-INSIDE-DOCDIR-DIRECTIVE That docdir would mark the directory as a doc dir so to include the files inside it. I may have gotten confused by the definition or, maybe, in Fedora it doesn't work that way? > > %doc AUTHORS ChangeLog COPYING COPYING.GPL INSTALL MAINTAINERS NEWS README > > Here 'INSTALL' can still be dropped. Ok, done! Please, if in the mood, check it out again at: http://renich.fedorapeople.org/SPECS/libzeitgeist.spec http://renich.fedorapeople.org/SRPMS/libzeitgeist-0.3.2-3.fc14.src.rpm
%doc and %docdir compete with eachother. It's as follows: %doc /some/file includes /some/file in the package and marks it as documentation. %docdir /some/path/ /some/path/file1 /some/path/file2 /some/path/file3 can save you a few %doc attributes. It is equivalent to: %doc /some/path/file1 %doc /some/path/file2 %doc /some/path/file3 However, it does not include a directory entry for /some/path (rpm -qlpv would not show the ^d entry for /some/path). You would need to include the directory separately. There is the much shorter form %doc /some/path/ which includes the directory /some/path and additionally marks every file in it as documentation. It is equivalent to: %dir /some/path/ %doc /some/path/* However, it also doesn't mark the directory /some/path as %doc, just all ordinary files in it. So, in %docdir /some/path/ %doc /some/path/ the %docdir line is superfluous. Using %docdir can be helpful, if you don't include a full tree of files, but specific file names as above in the file1, file2, file3 case (where the build of an update would break if files are missing). Of course, you can mark each file %doc instead and achieve the same thing. ;)
(In reply to comment #7) > the %docdir line is superfluous. Using %docdir can be helpful, if you don't > include a full tree of files, but specific file names as above in the file1, > file2, file3 case (where the build of an update would break if files are > missing). Of course, you can mark each file %doc instead and achieve the same > thing. ;) Thank you, very much, for the detailed explanation. ;=) I'll keep, what you said, in mind for future and present specs. ;)
What is the status of this bug?
well, I'm waiting for approval or something. In the last update I broke synapse and I think the lib is the problem. Hopping to be able to fix it in the weekend. But all my review requests have been very silent these days (pre-fudcon to now)
Well, it seems that the latest version is 0.3.4. Would you update this package?
(In reply to comment #11) > Well, it seems that the latest version is 0.3.4. > Would you update this package? It's actually updated to that version... http://renich.fedorapeople.org/SPECS/libzeitgeist.spec
I checked FAS entry and it seems that Renich is not sponsored yet.
Some notes for 0.3.4-1 * Cleanups for old stuffs - Unless you are going to maintain this package on EPEL, * BuildRoot tag is not needed * %clean section is not needed * "rm -rf %{buildroot}" on the first line of %install is not needed any longer. https://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot_tag https://fedoraproject.org/wiki/Packaging/Guidelines#.25clean * BR (BuildRequires) - Your srpm does not build. http://koji.fedoraproject.org/koji/taskinfo?taskID=2893255 * At least "BR: glib2-devel" is needed * Maybe gtk-doc is also needed for BR * License - Files under examples/ are under GPLv3. The license tag on -devel subpackage should be "LGPLv3 and GPLv3". * %?isa specific Requires - Now dependencies between main and -devel (sub)packages must be %{?isa} specific: https://fedoraproject.org/wiki/Packaging/Guidelines#Requires http://lists.fedoraproject.org/pipermail/devel-announce/2011-February/000750.html * Timestamps - When installing files with "cp" or "install" commands, please add -p option to keep timestamps on installed files. https://fedoraproject.org/wiki/Packaging/Guidelines#Timestamps - Please consider to use ----------------------------------------------------------------- make install DESTDIR=%{buildroot} INSTALL="install -p" ----------------------------------------------------------------- to keep timestamps on installed header files. This method usually works for Makefiles generated by recent autotools. * %configure option - build.log shows: ----------------------------------------------------------------- 44 + ./configure --build=i386-redhat-linux-gnu --host=i386-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --disable-static --disable-module 45 configure: WARNING: unrecognized options: --disable-module ----------------------------------------------------------------- I don't see --disable-module takes effect on configure.ac . Would you check if "--disable-module" is really needed? * Build process verbosity - Please add "V=1" to "make %{?_smp_mflags}" to show the linkage process of generated binaries. Currently build.log only shows: ------------------------------------------------------------------ 281 zeitgeist-data-source.c:386:31: warning: variable 'priv' set but not used [-Wunused-but-set-variable] 282 CCLD libzeitgeist-1.0.la 283 make[3]: Leaving directory `/builddir/build/BUILD/libzeitgeist-0.3.4/src' 284 make[2]: Leaving directory `/builddir/build/BUILD/libzeitgeist-0.3.4/src' ------------------------------------------------------------------ * %check - As this package contains tests/ directory and Makefile actually supports "make check", please add %check section and execute some test program there. * %files - Files or directories under %_datadir/gtk-doc are autumatically marked as %doc (so you don't have to write explicit %doc attribute).
(In reply to comment #14) > Some notes for 0.3.4-1 Thank you for taking the time to help me out so much! ;) Anyway, I've applied most of your suggestions. I couldn't remove: %doc %{_datadir}/gtk-doc/html/zeitgeist-1.0/ Since it tells me that these files didn't get included in the RPM if missing. And, one other thing, the make test fails in mock but works while using rpmbuild -ba... any comments? The test that fails is TEST: test-log... (pid=8981) /Zeitgeist/Log/InsertGetDelete: GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed aborting... FAIL GTester: last random seed: R02S4755c42d0d25f30be0e70f1de0ff8587 /bin/sh: line 1: 8900 Terminated gtester --verbose test-timerange test-timestamp test-symbols test-monitor test-log test-event test-datasource test-mimetypes make[2]: Leaving directory `/builddir/build/BUILD/libzeitgeist-0.3.4/tests' make[2]: *** [test] Error 143 make[1]: *** [check-am] Error 2 make[1]: Leaving directory `/builddir/build/BUILD/libzeitgeist-0.3.4/tests' make: *** [check-recursive] Error 1 error: Bad exit status from /var/tmp/rpm-tmp.tAlMVq (%check) Bad exit status from /var/tmp/rpm-tmp.tAlMVq (%check) RPM build errors: Child returncode was: 1 EXCEPTION: Command failed. See logs for output. # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/libzeitgeist.spec'] Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/mock/trace_decorator.py", line 70, in trace result = func(*args, **kw) File "/usr/lib/python2.7/site-packages/mock/util.py", line 325, in do raise mock.exception.Error, ("Command failed. See logs for output.\n # %s" % (command,), child.returncode) Error: Command failed. See logs for output. # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/libzeitgeist.spec'] LEAVE do --> EXCEPTION RAISED
(In reply to comment #15) > I couldn't remove: > %doc %{_datadir}/gtk-doc/html/zeitgeist-1.0/ > Since it tells me that these files didn't get included in the RPM if missing. - What I said is that explicit "%doc" attribute here is not needed (i.e. you don't have to write "%doc" attribute before %_datadir/gtk/doc/foo entry on %files). > And, one other thing, the make test fails in mock but works while using > rpmbuild -ba... any comments? - Better to ask the upstream (I have not examined the cause). If you are sure this test failure can be ignored now, disable the failing test or rescue test failure with "|| :".
By the way please post the URLs of your spec / srpm everytime you modify them on review requests, otherwise we can't be aware that you actually modified them.
ping?
(In reply to comment #18) > ping? whoops! sorry! I thought I sent it! http://renich.fedorapeople.org/SPECS/libzeitgeist.spec
Again, please post (write) also the URL of new srpm every time you upload the new one, not only the URL of your spec file. For -3: * %{?_isa} specific dependency - As said in the comment 14, -devel subpackage should have "%{name}%{?_isa} = %{version}-%{release}" - And it is very likely that "Requires: zeitgeist" should be %{_isa} specific. * %check - So please fix %check failure or rescue it so that rpmbuild on koji succeeds. * %doc attribute - As said in the comment 16, "%doc" attribute on %{_datadir}/gtk-doc/html/foo is not needed.
(In reply to comment #20) Im sorry; here they are: spec: http://renich.fedorapeople.org/SPECS/libzeitgeist.spec srpm: http://renich.fedorapeople.org/SRPMS/libzeitgeist-0.3.6.1.fc14.src.rpm > For -3: > * %{?_isa} specific dependency > - As said in the comment 14, -devel subpackage should have > "%{name}%{?_isa} = %{version}-%{release}" Ok, changed it on the summary and requires too. > - And it is very likely that "Requires: zeitgeist" should be > %{_isa} specific. I think not; since zeitgeist is .noarch ;) > * %check > - So please fix %check failure or rescue it so that rpmbuild > on koji succeeds. Working on this at the time of writing. I will disable the test as soon as I figure out how. No idea of why it builds with rpmbuild and not in mock/koji... some missing dep perhaps? been checking configure.ac but... I dunno... still on it... > * %doc attribute > - As said in the comment 16, "%doc" attribute on > %{_datadir}/gtk-doc/html/foo is not needed. Woops... sorry... finally understood ;)
Created attachment 486845 [details] gdb log for test-log failure I appreciate if you would post the correct srpm URL :) By the way for test failure on test-log, gdb log is attached
Created attachment 486846 [details] Workaround patch And the workaround patch Build result on koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=2933142
By the way for 0.3.6-1: * BR - Why is ruby-gio2-devel listed as BR? (In reply to comment #21) > (In reply to comment #20) > > - And it is very likely that "Requires: zeitgeist" should be > > %{_isa} specific. > > I think not; since zeitgeist is .noarch ;) Ah, thank you.
Ok, I added your patch and it seems to work great: SPEC: http://renich.fedorapeople.org/SPECS/libzeitgeist.spec SRPM: http://renich.fedorapeople.org/SRPMS/libzeitgeist-0.3.6-2.fc14.src.rpm I hope it works this time. Thank you for all your help and guideance ;) BTW... I'm so sorry for what happened to Japan. I hope you, guys, can get up and well...
So would you check if "BR: ruby-gio2-devel" is really needed? (In reply to comment #25) > BTW... I'm so sorry for what happened to Japan. I hope you, guys, can get up > and well... Well, actually things are really terrific, however we will surely recover from this.
(In reply to comment #26) > So would you check if "BR: ruby-gio2-devel" is really needed? It says in configure.ac that it needs GIO2 and GIO2_UNIX... I'm guessing that the make file is not checking it's dependencies right... I might be wrong... > (In reply to comment #25) > > BTW... I'm so sorry for what happened to Japan. I hope you, guys, can get up > > and well... > Well, actually things are really terrific, however we will surely > recover from this. Glad to hear ;=)
(In reply to comment #27) > (In reply to comment #26) > > So would you check if "BR: ruby-gio2-devel" is really needed? > > It says in configure.ac that it needs GIO2 and GIO2_UNIX... I'm guessing that > the make file is not checking it's dependencies right... I might be wrong... > Ah, these are actually in glib2-devel $ rpm -qf /usr/lib/pkgconfig/gio-2.0.pc /usr/lib/pkgconfig/gio-unix-2.0.pc glib2-devel-2.28.4-1.fc15.i686 glib2-devel-2.28.4-1.fc15.i686 So unless there is another reason, you don't need "BR: ruby-gio2-devel".
(In reply to comment #28) > Ah, these are actually in glib2-devel > > $ rpm -qf /usr/lib/pkgconfig/gio-2.0.pc /usr/lib/pkgconfig/gio-unix-2.0.pc > glib2-devel-2.28.4-1.fc15.i686 > glib2-devel-2.28.4-1.fc15.i686 > > So unless there is another reason, you don't need "BR: ruby-gio2-devel". Ok, understood... thanks for that! ;)
Latest spec and srpm SPEC: http://renich.fedorapeople.org/SPECS/libzeitgeist.spec SRPM: http://renich.fedorapeople.org/SRPMS/libzeitgeist-0.3.6-3.fc14.src.rpm
> Removed Rubys geo2 dependency since is not needed; it's provided by glibc-devel geo2 -> gio2, glibc-devel -> glib2-devel ------------------------------------------------------------ This pacakge (libzeitgeist) is APPROVED by mtasaka ------------------------------------------------------------ Please follow the procedure written on: http://fedoraproject.org/wiki/PackageMaintainers/Join from "Install the Client Tools (Koji)". Now I am sponsoring you. If you want to import this package into Fedora 13/14/15, you also have to look at http://fedoraproject.org/wiki/Bodhi_Guide (after once you rebuilt this package on koji Fedora rebuilding system). When using Fedora SCM system, please check below for reference: http://fedoraproject.org/wiki/Using_Fedora_GIT If you have questions, please ask me. Removing NEEDSPONSOR.
New Package SCM Request ======================= Package Name: libzeitgeist Short Description: Client library for zeitgeist Owners: renich mtasaka Branches: f14 f15 InitialCC: renich mtasaka
Please set fedora-cvs flag to ? (and corfirm that you can do so).
(In reply to comment #33) > Please set fedora-cvs flag to ? (and corfirm that you can do so). Missed it the first time. It looks like I can ;)
Git done (by process-git-requests).
Ok, some updates - Added -p to some install statements (forgot them the first time) - Moved README to the main package SRPM: http://renich.fedorapeople.org/SRPMS/libzeitgeist-0.3.6-4.fc14.src.rpm SPEC: http://renich.fedorapeople.org/SPECS/libzeitgeist.spec
For libzeitgeist, please try to build it on koji and submit push requests on bodhi.
libzeitgeist-0.3.6-4.fc14 has been submitted as an update for Fedora 14. https://admin.fedoraproject.org/updates/libzeitgeist-0.3.6-4.fc14
libzeitgeist-0.3.6-4.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/libzeitgeist-0.3.6-4.fc15
(In reply to comment #37) > For libzeitgeist, please try to build it on koji and submit > push requests on bodhi. One question, after this one gets approved and pushed to the repos, I can submit synapse, right?
libzeitgeist-0.3.6-4.fc15 has been pushed to the Fedora 15 testing repository.
(In reply to comment #40) > (In reply to comment #37) > > For libzeitgeist, please try to build it on koji and submit > > push requests on bodhi. > > One question, after this one gets approved and pushed to the repos, I can > submit synapse, right? If libzeitgeist is pushed into stable, you can build synapse - Note that on rawhide you can build synapse now. Please retry. If you don't want to wait until libzeitgeist is pushed into stable before building synapse, please submit override tag request on rel-eng ticket. http://fedoraproject.org/wiki/Using_the_Koji_build_system#Chained_builds
Closing this one.
(In reply to comment #21) > (In reply to comment #20) > > - And it is very likely that "Requires: zeitgeist" should be > > %{_isa} specific. > > I think not; since zeitgeist is .noarch ;) No it's not: http://pkgs.fedoraproject.org/cgit/zeitgeist.git/tree/zeitgeist.spec But this dependency needs to go anyway, see 861715.