Spec URL: http://ambre.pingoured.fr/casper/xnee.spec SRPM URL: http://ambre.pingoured.fr/casper/xnee-3.09-0.1.rc1.fc15.src.rpm Description: A suite of programs that can record, replay and distribute user actions under the X11 environment. Think of it as a robot that can imitate the job you just did. This is my first package and i need a sponsor.
Hi Casper, first of all, please enter your full real name in the bugzilla preferences and also use it in the spec's %changelog. Here are a couple of quick comments on your package: - Use the main GNU URL in Source0: ftp://ftp.gnu.org/gnu/xnee/xnee-%{version}.tar.gz - Is this release really a pre-release (rc1)? I can't find any information on this. - According to the source file headers, the license of xnee is GPLv3+. - The package currently doesn't build because of missing BuildRequires: libXtst-devel gtk+-devel gtk2-devel - As the package provides a GUI application, you must add and install a .desktop file as described here: http://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files - The tarball contains the sources of libxnee. I suggest to build the shared library and package it as well. It could be useful for other packages and/or developers. - If you plan to build the package for EPEL < 6 as well, add rm -rf %{buildroot} at the beginning of the %install section.
(In reply to comment #1) > Hi Casper, Hello > > first of all, please enter your full real name in the bugzilla preferences and > also use it in the spec's %changelog. Done > > Here are a couple of quick comments on your package: > - Use the main GNU URL in Source0: > ftp://ftp.gnu.org/gnu/xnee/xnee-%{version}.tar.gz Done > > - Is this release really a pre-release (rc1)? I can't find any information > on this. I made a mistake by reading the wiki. Corrected > > - According to the source file headers, the license of xnee is GPLv3+. Done > > - The package currently doesn't build because of missing BuildRequires: > libXtst-devel > gtk+-devel > gtk2-devel Done > > - As the package provides a GUI application, you must add and install a > .desktop file as described here: > http://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files Done > > - The tarball contains the sources of libxnee. I suggest to build the shared > library and package it as well. It could be useful for other packages > and/or developers. Yes, my SPEC file is for xnee. I will package libxnee, cnee and gnee from the tarball... If you agree. > > - If you plan to build the package for EPEL < 6 as well, add > rm -rf %{buildroot} > at the beginning of the %install section. Done
Files are now available here: Spec URL: http://pingou.fedorapeople.org/RPMs/xnee.spec SRPM URL: http://pingou.fedorapeople.org/RPMs/xnee-3.09-1.fc15.src.rpm
(In reply to comment #2) > Yes, my SPEC file is for xnee. I will package libxnee, cnee and gnee from the > tarball... If you agree. Yes, that would be fine. However, you don't need create a separate spec for that. Just build everything from the spec file of xnee (shared libxnee, cnee, and gnee,...) and put the various files into different subpackages, e.g.: xnee (base package): main applications + corresponding data (image files, etc.) libxnee: shared library files libxnee.so.* libxnee-devel: header files and libxnee.so The static libxnee library should not be built, linked and packaged except there are good reasons for it. Fedora usually provides shared libraries only. You can drop the scriptlets again, because - you only have to update the icon cache if something is installed below /usr/share/icons. - there's no MimeType entry in the .desktop file => no need to run update-desktop-database - the package doesn't install a mimeinfo file => no need to run update-mime-database
URL Spec: http://pcpprod.info/rpm/xnee.spec URL SRPM: http://pcpprod.info/rpm/xnee-3.09-1.fc15.src.rpm (In reply to comment #4) > Yes, that would be fine. However, you don't need create a separate spec for > that. Just build everything from the spec file of xnee (shared libxnee, cnee, > and gnee,...) and put the various files into different subpackages, e.g.: > > xnee (base package): main applications + corresponding data (image files, etc.) > libxnee: shared library files libxnee.so.* > libxnee-devel: header files and libxnee.so > > The static libxnee library should not be built, linked and packaged except > there are good reasons for it. Fedora usually provides shared libraries only. Done > You can drop the scriptlets again, because > - you only have to update the icon cache if something is installed below > /usr/share/icons. > - there's no MimeType entry in the .desktop file => no need to run > update-desktop-database > - the package doesn't install a mimeinfo file => no need to run > update-mime-database Done
Some comments: 1) xnee doesn't really requires cnee to work. You should remove the Requires on cnee for the main package xnee. 2) Without any header, libxnee-devel would be useless. 3) Neither cnee nor xnee depend on GTK+ 1. So gtk+-devel as BR is useless. 4) If you don't call the "--enable-static-programs=no" option to ./configure, your binaries will still be linked statically to libxnee. Enable this option and your Requires on libxnee will be really useful. Notice that you may expect some rpath issues. The guidelines may help you in such a case.
Hello, (In reply to comment #6) > Some comments: > 1) xnee doesn't really requires cnee to work. You should remove the Requires on > cnee for the main package xnee. Removed > 2) Without any header, libxnee-devel would be useless. Added > 3) Neither cnee nor xnee depend on GTK+ 1. So gtk+-devel as BR is useless. Removed > 4) If you don't call the "--enable-static-programs=no" option to ./configure, > your binaries will still be linked statically to libxnee. Enable this option > and your Requires on libxnee will be really useful. Notice that you may expect > some rpath issues. The guidelines may help you in such a case. Done Files are updated.
Hello, a new version of Xnee Project is released. I updated my spec file to it. Welcome to 3.10 version :D Spec URL: http://pingou.fedorapeople.org/RPMs/xnee.spec SRPM URL: http://pingou.fedorapeople.org/RPMs/xnee-3.10-1.fc15.src.rpm
Hi, I received an informal review on #fedora-devel-fr on Freenode. This is the latest release : Spec URL: http://pingou.fedorapeople.org/RPMs/xnee.spec SRPM URL: http://pingou.fedorapeople.org/RPMs/xnee-3.10-2.fc15.src.rpm
That's look better know. Just some tips: - don't hesitate to use line breaks to make your .spec easier to read, especially in %install. - don't forget to comment all "uncommon" tasks in your RPM, for example: 1) why do you delete these files: rm -f %{buildroot}%{_libdir}/libtestcb.* rm -f %{buildroot}%{_datadir}/xnee/simple_bash.sh 2) why the additional options to %configure Comments helps the reviewer once. But they'll help you maintaining your package each time you'll update it. - You can remove the "BuildRoot" line, as well as all occurrences of "rm -rf %{buildroot}". The %clean section is obsolete also. See below for more: http://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag http://fedoraproject.org/wiki/Packaging:Guidelines#.25clean - You'd better perform these lines in %prep, instead of %install: chmod a-x libxnee/include/libxnee/feedback.h \ libxnee/src/feedback.c \ libxnee/src/xnee_setget.c \ libxnee/src/xnee_range.c \ libxnee/include/libxnee/xnee.h \ cnee/include/parse.h \ libxnee/include/libxnee/xnee_range.h - The INSTALL file is useless, even for the devel package. Don't include it. - Are you really sure that all the .h files delivered in the sources form a consistent API for libxnee (see the devel package)? You'd better ping upstream about this, or, at least, check which headers are included in others distributions' packages (see Debian for example, on http://packages.debian.org/).
(In reply to comment #10) > - You'd better perform these lines in %prep, instead of %install: > chmod a-x libxnee/include/libxnee/feedback.h \ > libxnee/src/feedback.c \ > libxnee/src/xnee_setget.c \ > libxnee/src/xnee_range.c \ > libxnee/include/libxnee/xnee.h \ > cnee/include/parse.h \ > libxnee/include/libxnee/xnee_range.h You can even move all chmod instructions in %prep and summarize them as below: %prep ... find . \( -name "*.h" -o -name "*.c" \) -exec chmod a-x {} \;
Hello, all feedback are applied. So, this is the latest release : Spec URL: http://pingou.fedorapeople.org/RPMs/xnee.spec SRPM URL: http://pingou.fedorapeople.org/RPMs/xnee-3.10-3.fc15.src.rpm
(In reply to comment #10) > - Are you really sure that all the .h files delivered in the sources form a > consistent API for libxnee (see the devel package)? You'd better ping upstream > about this, or, at least, check which headers are included in others > distributions' packages (see Debian for example, on > http://packages.debian.org/). This is a list of all files in xnee-dev.deb : http://packages.debian.org/squeeze/amd64/libxnee-dev/filelist Now this is the list of all files in xnee-devel-3.10-3.fc15.x86_64.rpm : $ rpmls xnee-devel-3.10-3.fc15.x86_64.rpm -rw-r--r-- /usr/include/libxnee/datastrings.h -rw-r--r-- /usr/include/libxnee/feedback.h -rw-r--r-- /usr/include/libxnee/print.h -rw-r--r-- /usr/include/libxnee/print_varargs.h -rw-r--r-- /usr/include/libxnee/x11_files.h -rw-r--r-- /usr/include/libxnee/xnee.h -rw-r--r-- /usr/include/libxnee/xnee_alloc.h -rw-r--r-- /usr/include/libxnee/xnee_buffer.h -rw-r--r-- /usr/include/libxnee/xnee_callback.h -rw-r--r-- /usr/include/libxnee/xnee_display.h -rw-r--r-- /usr/include/libxnee/xnee_dl.h -rw-r--r-- /usr/include/libxnee/xnee_error.h -rw-r--r-- /usr/include/libxnee/xnee_expr.h -rw-r--r-- /usr/include/libxnee/xnee_fake.h -rw-r--r-- /usr/include/libxnee/xnee_fileop.h -rw-r--r-- /usr/include/libxnee/xnee_grab.h -rw-r--r-- /usr/include/libxnee/xnee_internal.h -rw-r--r-- /usr/include/libxnee/xnee_keysym.h -rw-r--r-- /usr/include/libxnee/xnee_km.h -rw-r--r-- /usr/include/libxnee/xnee_plugin.h -rw-r--r-- /usr/include/libxnee/xnee_range.h -rw-r--r-- /usr/include/libxnee/xnee_record.h -rw-r--r-- /usr/include/libxnee/xnee_replay.h -rw-r--r-- /usr/include/libxnee/xnee_resolution.h -rw-r--r-- /usr/include/libxnee/xnee_resource.h -rw-r--r-- /usr/include/libxnee/xnee_sem.h -rw-r--r-- /usr/include/libxnee/xnee_session.h -rw-r--r-- /usr/include/libxnee/xnee_setget.h -rw-r--r-- /usr/include/libxnee/xnee_settings.h -rw-r--r-- /usr/include/libxnee/xnee_strings.h -rw-r--r-- /usr/include/libxnee/xnee_threshold.h -rw-r--r-- /usr/include/libxnee/xnee_time.h -rw-r--r-- /usr/include/libxnee/xnee_utils.h -rw-r--r-- /usr/include/libxnee/xnee_window.h -rw-r--r-- /usr/include/libxnee/xnee_xinput.h lrwxrwxrwx /usr/lib64/libtestcb.so lrwxrwxrwx /usr/lib64/libxnee.so drwxr-xr-x /usr/share/doc/xnee-devel-3.10 -rw-r--r-- /usr/share/doc/xnee-devel-3.10/AUTHORS -rw-r--r-- /usr/share/doc/xnee-devel-3.10/COPYING -rw-r--r-- /usr/share/doc/xnee-devel-3.10/ChangeLog -rw-r--r-- /usr/share/doc/xnee-devel-3.10/NEWS As you can see, there is the same headers files exactly. So, if it don't form a consistent API for libxnee, I'll send email to uptream about that.
Hello I received an informal review on #fedora-devel-fr on Freenode again (I'm lucky :D) Spec URL: http://pingou.fedorapeople.org/RPMs/xnee.spec SRPM URL: http://pingou.fedorapeople.org/RPMs/xnee-3.10-4.fc15.src.rpm
Hi Matthieu, here are some additional notes: - Remove the exec perm from the header files - You can drop Requires: xnee-libs from the base package and from cnee. The dependency is detected automatically. - I recommend to replace the call of chrpath with the sed statements given here: http://fedoraproject.org/wiki/Packaging:Guidelines#Removing_Rpath chrpath should only be used if none of the preferred methods work - Change the Group of the libs package to "System Environment/Libraries" - You can simplify the first rm statement in %install with rm -f %{buildroot}%{_libdir}/*.{a,la} Your variant is fine as well but in this case it's not necessary to list each file explicitly. - Please remove the "Encoding" entry from the .desktop file as it is deprecated. Also, add the missing semicolon after "Utility". - Either remove "*.h" from %{_includedir}/libxnee/*.h in %files devel, or add "%dir %{_includedir}/libxnee/". Otherwise, this directory is unowned and won't be removed when you uninstall the package. - Don't add the doc files (AUTHORS, BUGS, etc.) multiple times. It's sufficient to add them to the base package. The only exception is COPYING. You must ensure that the license text of a package gets installed either directly or indirectly through a dependent package. Thus, add COPYING to the libs package. - I suggest to add doc/xnee.pdf as additional %doc to the base package. It contains useful information about the programs and might be helpful for some users. BTW, do you already have a sponsor? If you're still looking for one, I can sponsor you. Unfortunately, I'm pretty busy at the moment, so it could take a couple of days before I find time to have a look at your other packages.
(In reply to comment #15) > BTW, do you already have a sponsor? No I haven't > If you're still looking for one, I can > sponsor you. It's a good news :) > Unfortunately, I'm pretty busy at the moment, so it could take a > couple of days before I find time to have a look at your other packages. No problem
OK, taking the review and the sponsorship. Stay tuned, and please address the above notes in the meantime. You can ignore the first one (header file permissions) as I checked an older version of your package and it has been fixed already.
(In reply to comment #15) Spec URL: http://pingou.fedorapeople.org/RPMs/xnee.spec SRPM URL: http://pingou.fedorapeople.org/RPMs/xnee-3.10-5.fc15.src.rpm > - Remove the exec perm from the header files Already done > - You can drop Requires: xnee-libs from the base package and from cnee. The > dependency is detected automatically. Done > - I recommend to replace the call of chrpath with the sed statements given > here: > http://fedoraproject.org/wiki/Packaging:Guidelines#Removing_Rpath > chrpath should only be used if none of the preferred methods work NOT done. I didn't succeed to build the package with sed statements. I tryed lot of drafts like this: sed -i 's|^0x0001_libdir_flag_spec=.*|0x0001_libdir_flag_spec=""|g' libtool sed -i 's|^0x0002_libdir_flag_spec=.*|0x0002_libdir_flag_spec=""|g' libtool sed -i 's|^0x0004_libdir_flag_spec=.*|0x0004_libdir_flag_spec=""|g' libtool sed -i 's|^0x0008_libdir_flag_spec=.*|0x0008_libdir_flag_spec=""|g' libtool sed -i 's|^0x0010_libdir_flag_spec=.*|0x0010_libdir_flag_spec=""|g' libtool sed -i 's|^0x0020_libdir_flag_spec=.*|0x0020_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool Maybe I haven't understood the wiki example... > - Change the Group of the libs package to "System Environment/Libraries" Done > - You can simplify the first rm statement in %install with > rm -f %{buildroot}%{_libdir}/*.{a,la} > Your variant is fine as well but in this case it's not necessary to list > each file explicitly. Done > - Please remove the "Encoding" entry from the .desktop file as it is > deprecated. > Also, add the missing semicolon after "Utility". Done > - Either remove "*.h" from %{_includedir}/libxnee/*.h in %files devel, or > add "%dir %{_includedir}/libxnee/". Otherwise, this directory is unowned and > won't be removed when you uninstall the package. Done ( "*.h" removed ) > - Don't add the doc files (AUTHORS, BUGS, etc.) multiple times. It's sufficient > to add them to the base package. The only exception is COPYING. You must > ensure that the license text of a package gets installed either directly or > indirectly through a dependent package. Thus, add COPYING to the libs > package. Done. I had to cnee the same doc files like xnee, because xnee isn't a dependancy of cnee. > - I suggest to add doc/xnee.pdf as additional %doc to the base package. It > contains useful information about the programs and might be helpful for > some users. Done
(In reply to comment #18) > NOT done. I didn't succeed to build the package with sed statements. > I tryed lot of drafts like this: > sed -i 's|^0x0001_libdir_flag_spec=.*|0x0001_libdir_flag_spec=""|g' libtool > [...] > > Maybe I haven't understood the wiki example... You don't have to adapt the sed statements given in the guidelines at all. Just copy them verbatim to your spec (after %configure): %configure --disable-gnome-applet \ --enable-lib \ --enable-static-programs=no sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool make %{?_smp_mflags} > Done. I had to cnee the same doc files like xnee, because xnee isn't a > dependancy of cnee. OK, then it's much easier to add all docs to the libs package only. Since all other subpackages and the base package require the libs as a dependency, the docs are installed together with the libs. So, just move the %doc line from the base package to the libs package and drop all %docs everywhere else (COPYING too). This avoids cluttering the file system with duplicate files.
(In reply to comment #19) > You don't have to adapt the sed statements given in the guidelines at all. Just > copy them verbatim to your spec (after %configure): > > %configure --disable-gnome-applet \ > --enable-lib \ > --enable-static-programs=no > > sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool > sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool > > make %{?_smp_mflags} It doesn't build. This is the error message : Generating texi file from: cnee ./cnee --texipage > cnee.texi /home/builder/rpmbuild/BUILD/xnee-3.10/cnee/src/.libs/lt-cnee: error while loading shared libraries: libxnee.so.0: cannot open shared object file: No such file or directory make[3]: *** [cnee.texi] Error 127 make[3]: Leaving directory `/home/builder/rpmbuild/BUILD/xnee-3.10/cnee/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/builder/rpmbuild/BUILD/xnee-3.10/cnee' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/builder/rpmbuild/BUILD/xnee-3.10' make: *** [all] Error 2 erreur: Mauvais status de sortie pour /var/tmp/rpm-tmp.cNQLRN (%build) Erreur de construction de RPM: Mauvais status de sortie pour /var/tmp/rpm-tmp.cNQLRN (%build) > OK, then it's much easier to add all docs to the libs package only. Since all > other subpackages and the base package require the libs as a dependency, the > docs are installed together with the libs. So, just move the %doc line from the > base package to the libs package and drop all %docs everywhere else (COPYING > too). This avoids cluttering the file system with duplicate files. ok
Yes, you're right. I should have tested that before. The cnee binary is called during the build process in order to create the manual page, and thus requires hard-coded rpaths. The simplest way to handle this is indeed to keep using chrpath.
(In reply to comment #20) > > OK, then it's much easier to add all docs to the libs package only. Since all > > other subpackages and the base package require the libs as a dependency, the > > docs are installed together with the libs. So, just move the %doc line from the > > base package to the libs package and drop all %docs everywhere else (COPYING > > too). This avoids cluttering the file system with duplicate files. > ok Done Spec URL: http://pingou.fedorapeople.org/RPMs/xnee.spec SRPM URL: http://pingou.fedorapeople.org/RPMs/xnee-3.10-6.fc15.src.rpm
OK, the package looks good now. Maybe you should replace the explicit version suffix of %{buildroot}%{_libdir}/libtestcb.so.0.0.0 with an asterisk: %{buildroot}%{_libdir}/libtestcb.so.*. This would ensure that the rpaths will also be removed in future versions. As you've already done some informal reviews, I'm going to sponsor you now. So, Welcome to the packager group! Besides maintaining own packages, you're now also allowed to review package submissions of other packagers and approve them. The next step is to request a Git repository with the distro branches you want to maintain xnee for: http://fedoraproject.org/wiki/Package_SCM_admin_requests ---------------- Package APPROVED ----------------
New Package SCM Request ======================= Package Name: xnee Short Description: X11 environment recorder Owners: fantom Branches: f15 f16 el6 InitialCC:
Summary and SCM request package names don't match, please correct. Thanks!
I'm really sorry for that. New Package SCM Request ======================= Package Name: Xnee Short Description: X11 environment recorder Owners: fantom Branches: f15 f16 el6 InitialCC:
Git done (by process-git-requests).
Xnee-3.10-7.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/Xnee-3.10-7.fc16
Xnee-3.10-7.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/Xnee-3.10-7.fc15
Xnee-3.10-7.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/Xnee-3.10-7.el6
Xnee-3.10-8.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/Xnee-3.10-8.fc16
Xnee-3.10-8.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/Xnee-3.10-8.fc15
Xnee-3.10-8.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/Xnee-3.10-8.el6
Xnee-3.10-7.el6 has been pushed to the Fedora EPEL 6 testing repository.
Xnee-3.10.90-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/Xnee-3.10.90-1.fc16
Xnee-3.10.90-1.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/Xnee-3.10.90-1.fc15
Xnee-3.10.90-1.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/Xnee-3.10.90-1.el6
Xnee-3.10.90-1.1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/Xnee-3.10.90-1.1.fc16
Xnee-3.10.90-1.1.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/Xnee-3.10.90-1.1.fc15
Xnee-3.10.90-1.1.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/Xnee-3.10.90-1.1.el6
Xnee-3.10.91-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/Xnee-3.10.91-1.fc16
Xnee-3.10.91-1.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/Xnee-3.10.91-1.fc15
Xnee-3.10.91-1.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/Xnee-3.10.91-1.el6
Xnee-3.10.93-1.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/Xnee-3.10.93-1.el6
Xnee-3.10.91-1.fc16 has been pushed to the Fedora 16 stable repository.
Xnee-3.10.91-1.fc15 has been pushed to the Fedora 15 stable repository.
Matthieu, please don't assign new release builds to the review request. Since the review is finished and Xnee is already in the stable repo, this ticket should kept closed. All further package updates are either related to the corresponding bug report or have no bug assigned in case of version bumps. ;)
Xnee-3.11-1.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/Xnee-3.11-1.el6
Xnee-3.11-1.el6 has been pushed to the Fedora EPEL 6 stable repository. If problems still persist, please make note of it in this bug report.