Spec URL: http://gsequencer.org/fedora/rpmbuild/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.114-0.fc25.src.rpm Description: Advanced Gtk+ Sequencer is an audio processing engine. It does support LADSPA, DSSI and Lv2 plugin shared objects. It supports output to multiple sinks like ALSA, OSS4 or JACK. It features a piano roll and an automation editor. You might want to use virtual or physical MIDI sequencer devices in order to play sounds. Multi-channel editing and tree based organization of your audio data by doing a nested tree makes it superior. Would be great to see it in fedora. Fedora Account System Username: jkraehemann http://koji.fedoraproject.org/koji/taskinfo?taskID=16809691 https://copr.fedorainfracloud.org/coprs/jkraehemann/gsequencer/
Adding FE-NEEDSPONSOR blocker as per 2.1.12: https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Create_Your_Review_Request
$ fedora-review -b 1403417 INFO: Processing bugzilla bug: 1403417 ... INFO: Downloading .spec and .srpm files error: %changelog entries must start with * So, the fedora-review tool cannot even build this one. No %changelog section at all in the spec file? https://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs Then a look at the src.rpm, which contains a different spec file: -- gsequencer.spec 2016-12-09 22:08:56.000000000 +0100 +++ gsequencer.spec.ticket 2016-12-10 02:08:17.000000000 +0100 @@ -46,6 +46,7 @@ %files -n gsequencer %license COPYING +%changelog ChangeLog %{_libdir}/libags.* %{_libdir}/libags_thread.* %{_libdir}/libags_server.* That won't work. %changelog starts an own section in the spec file. It is not a macro to use for including a doc file. [...] A couple of early finds based on skimming over the package: Since you use pkg-config for detecting and using build dependencies, be aware of: https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRequires_based_on_pkg-config There are also automatically added RPM dependencies for the pkg-config .pc file inter-dependencies. See output of "rpm -qpR gsequencer-devel-0.7.114-0.fc25.x86_64.rpm", for example. If you rely on pkg-config based dependencies, you would not need to add explicit Requires to your -devel package and maintain that list manually. > %files -n gsequencer The "-n gsequencer" is superfluous, because for the main package it defaults to %name. No need to respecify the package name. > %{_defaultdocdir}/gsequencer/ Unless your configure script explicitly uses something related to %_defaultdocdir, for brevity you may want to prefer the shorter %{_docdir} which also expands to /usr/share/doc (= %_datadir/doc). You will see documentation mention %_docdir more often than %_defaultdocdir. Currently they expand to the same, however. > %{_libdir}/libags.* > %{_libdir}/libags_thread.* > %{_libdir}/libags_server.* > %{_libdir}/libags_gui.* > %{_libdir}/libags_audio.* https://fedoraproject.org/wiki/Packaging:Guidelines#Shared_Libraries https://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages > %{_datadir}/applications/gsequencer.desktop https://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files > %{_datadir}/doc-base/gsequencer-documentation What about %_datadir/doc-base/? https://fedoraproject.org/wiki/Packaging:Guidelines#File_and_Directory_Ownership https://fedoraproject.org/wiki/Packaging:UnownedDirectories > %{_datadir}/xml/gsequencer/ Will the %_datadkir/xml directory always be available? Or is a dependency missing? > %package -n gsequencer-devel https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package If requiring the base, there is also no need to duplicate the license in the -devel package. > %package -n gsequencer-devel-docs The guidelines recommend a -doc ending: https://fedoraproject.org/wiki/Packaging:Guidelines#Documentation > Requires: devhelp Not strictly needed for plain HTML documentation. > %{_datadir}/gtk-doc/html/* https://fedoraproject.org/wiki/Packaging:Guidelines#The_directory_is_owned_by_a_package_which_is_not_required_for_your_package_to_function
Hi all Just updated the files gsequencer.spec and gsequencer-0.7.114-0.fc25.src.rpm about %{_datadir}/xml/gsequencer/ I'm unsure Bests, Joël
Hi Just fixed copyright notice in upstream: gsequencer-devel.x86_64: E: incorrect-fsf-address So I provide a new package 0.7.115 Bests, Joël
Hi The new SRPM is here: Spec URL: http://gsequencer.org/fedora/rpmbuild/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.115-0.fc25.src.rpm bests, Joël
Well, for reasons unknown you've missed half of the issues pointed out before. Your spec %changelog doesn't mention the changes either. https://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs Maybe as one way forward you could acknowledge the issues that have been pointed out? Or run "fedora-review -b 1403417" yourself as it finds more issues due to some of the checks it is good at.
Hi Just updated gsequencer.spec and have taken a look at the review. About certain points I'm unsure. This is a review *template*. Besides handling the [ ]-marked tests you are also supposed to fix the template before pasting into bugzilla: - Add issues you find to the list of issues on top. If there isn't such a list, create one. - Add your own remarks to the template checks. - Add new lines marked [!] or [?] when you discover new things not listed by fedora-review. - Change or remove any text in the template which is plain wrong. In this case you could also file a bug against fedora-review - Remove the "[ ] Manual check required", you will not have any such lines in what you paste. - Remove attachments which you deem not really useful (the rpmlint ones are mandatory, though) - Remove this text Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - Sources used to build the package match the upstream source, as provided in the spec URL. Note: Upstream MD5sum check error, diff is in /home/jkraehemann/1403417-gsequencer/diff.txt See: http://fedoraproject.org/wiki/Packaging/SourceURL - Package uses either %{buildroot} or $RPM_BUILD_ROOT Note: Using both %{buildroot} and $RPM_BUILD_ROOT See: http://fedoraproject.org/wiki/Packaging/Guidelines#macros ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [?]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files in private %_libdir subdirectory (see attachment). Verify they are not in ld path. [x]: Header files in -devel subpackage, if present. [x]: ldconfig called in %post and %postun if required. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. 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]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "GPL (v2 or later)", "GPL (v3 or later)", "Unknown or generated", "MIT/X11 (BSD like)", "FSF Unlimited GPL", "*No copyright* FSF All Permissive", "FSF All Permissive", "FSF Unlimited". 146 files have unknown license. Detailed output of licensecheck in /home/jkraehemann/1403417-gsequencer/licensecheck.txt [?]: License file installed when any subpackage combination is installed. [?]: Package must own all directories that it creates. Note: Directories without known owners: /usr/share/gtk-doc, /usr/share/xml [?]: Package does not own files or directories owned by other packages. Note: Dirs in package are owned also by: /usr/share/doc/libags-doc (gsequencer-devel-doc, gsequencer-devel-docs), /usr/share/doc/libags- audio-doc(gsequencer-devel-doc, gsequencer-devel-docs), /usr/share/doc /libags-audio-doc/api(gsequencer-devel-doc, gsequencer-devel-docs), /usr/share/doc/libags-gui-doc/api(gsequencer-devel-doc, gsequencer- devel-docs), /usr/share/doc/libags-doc/api(gsequencer-devel-doc, gsequencer-devel-docs), /usr/share/doc/libags-gui-doc(gsequencer- devel-doc, gsequencer-devel-docs), /usr/share/gtk-doc/html(harfbuzz- devel, gtk-doc) [?]: %build honors applicable compiler flags or justifies otherwise. [?]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [x]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [?]: Package consistently uses macros (instead of hard-coded directory names). [?]: Package is named according to the Package Naming Guidelines. [?]: Package does not generate any conflict. [?]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [-]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [?]: Useful -debuginfo package or justification otherwise. [?]: Package is not known to require an ExcludeArch tag. [?]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 153600 bytes in 3 files. [?]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [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 %license. [x]: Package requires other packages for directories it uses. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Package contains desktop file if it is a GUI application. [x]: Package installs a %{name}.desktop using desktop-file-install or desktop-file-validate if there is such a file. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [?]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [?]: Final provides and requires are sane (see attachments). [?]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in gsequencer-debuginfo , gsequencer-devel-doc [x]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [?]: Scriptlets must be sane, if used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [?]: Package should compile and build into binary rpms on all supported architectures. [x]: %check is present and all tests pass. [?]: Packages should try to preserve timestamps of original installed files. [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) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: The placement of pkgconfig(.pc) files are correct. [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [?]: Large data in /usr/share should live in a noarch subpackage if package is arched. Note: Arch-ed rpms have a total of 9093120 bytes in /usr/share [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Package should not use obsolete m4 macros [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: gsequencer-0.7.115-0.fc25.x86_64.rpm gsequencer-debuginfo-0.7.115-0.fc25.x86_64.rpm gsequencer-devel-0.7.115-0.fc25.x86_64.rpm gsequencer-devel-doc-0.7.115-0.fc25.x86_64.rpm gsequencer-0.7.115-0.fc25.src.rpm gsequencer.x86_64: W: shared-lib-calls-exit /usr/lib64/libags.so.0.0.7 exit.5 gsequencer.x86_64: W: devel-file-in-non-devel-package /usr/lib64/gsequencer/libgsequencer.so gsequencer-devel.x86_64: W: only-non-binary-in-usr-lib gsequencer-devel.x86_64: W: no-documentation gsequencer.src: W: file-size-mismatch gsequencer-0.7.115.tar.gz = 2927360, http://download.savannah.gnu.org/releases/gsequencer/0.7.x/gsequencer-0.7.115.tar.gz = 2795351 5 packages and 0 specfiles checked; 0 errors, 5 warnings. Rpmlint (debuginfo) ------------------- Checking: gsequencer-debuginfo-0.7.115-0.fc25.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libgdk_pixbuf-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libgio-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libfontconfig.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libfreetype.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/librt.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libdl.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libpthread.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libuuid.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libxml2.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libags_thread.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/librt.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libm.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libdl.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: undefined-non-weak-symbol /usr/lib64/libags.so.0.0.7 ags_mutex_manager_get_instance gsequencer.x86_64: W: undefined-non-weak-symbol /usr/lib64/libags.so.0.0.7 ags_mutex_manager_get_application_mutex gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/librt.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libdl.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: shared-lib-calls-exit /usr/lib64/libags.so.0.0.7 exit.5 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libgmp.so.10 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libuuid.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libuuid.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libdl.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: devel-file-in-non-devel-package /usr/lib64/gsequencer/libgsequencer.so gsequencer-devel.x86_64: W: only-non-binary-in-usr-lib gsequencer-devel.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 0 errors, 40 warnings. Requires -------- gsequencer (rpmlib, GLIBC filtered): /sbin/ldconfig ld-linux-x86-64.so.2()(64bit) libX11.so.6()(64bit) libags.so.0()(64bit) libags_audio.so.0()(64bit) libags_gui.so.0()(64bit) libags_server.so.0()(64bit) libags_thread.so.0()(64bit) libasound.so.2()(64bit) libasound.so.2(ALSA_0.9)(64bit) libasound.so.2(ALSA_0.9.0rc4)(64bit) libatk-1.0.so.0()(64bit) libc.so.6()(64bit) libcairo.so.2()(64bit) libdl.so.2()(64bit) libfontconfig.so.1()(64bit) libfreetype.so.6()(64bit) libgdk-x11-2.0.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgmodule-2.0.so.0()(64bit) libgmp.so.10()(64bit) libgobject-2.0.so.0()(64bit) libgsequencer.so.0()(64bit) libgthread-2.0.so.0()(64bit) libgtk-x11-2.0.so.0()(64bit) libinstpatch-1.0.so.0()(64bit) libjack.so.0()(64bit) libm.so.6()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpangoft2-1.0.so.0()(64bit) libpthread.so.0()(64bit) librt.so.1()(64bit) libsamplerate.so.0()(64bit) libsamplerate.so.0(libsamplerate.so.0.0)(64bit) libsndfile.so.1()(64bit) libsndfile.so.1(libsndfile.so.1.0)(64bit) libuuid.so.1()(64bit) libuuid.so.1(UUID_1.0)(64bit) libuuid.so.1(UUID_2.20)(64bit) libxml2.so.2()(64bit) libxml2.so.2(LIBXML2_2.4.30)(64bit) libxml2.so.2(LIBXML2_2.6.0)(64bit) rtld(GNU_HASH) gsequencer-devel-doc (rpmlib, GLIBC filtered): gsequencer-devel (rpmlib, GLIBC filtered): /usr/bin/pkg-config gsequencer(x86-64) libags.so.0()(64bit) libags_audio.so.0()(64bit) libags_gui.so.0()(64bit) libags_server.so.0()(64bit) libags_thread.so.0()(64bit) pkgconfig(alsa) pkgconfig(cairo) pkgconfig(fontconfig) pkgconfig(gdk-pixbuf-2.0) pkgconfig(gio-2.0) pkgconfig(glib-2.0) pkgconfig(gmodule-2.0) pkgconfig(gobject-2.0) pkgconfig(gthread-2.0) pkgconfig(gtk+-2.0) pkgconfig(jack) pkgconfig(libags) pkgconfig(libinstpatch-1.0) pkgconfig(libxml-2.0) pkgconfig(sndfile) pkgconfig(uuid) gsequencer-debuginfo (rpmlib, GLIBC filtered): Provides -------- gsequencer: application() application(gsequencer.desktop) gsequencer gsequencer(x86-64) libags.so.0()(64bit) libags_audio.so.0()(64bit) libags_gui.so.0()(64bit) libags_server.so.0()(64bit) libags_thread.so.0()(64bit) libgsequencer.so.0()(64bit) gsequencer-devel-doc: gsequencer-devel-doc gsequencer-devel-doc(x86-64) gsequencer-devel: gsequencer-devel gsequencer-devel(x86-64) pkgconfig(libags) pkgconfig(libags_audio) pkgconfig(libags_gui) gsequencer-debuginfo: gsequencer-debuginfo gsequencer-debuginfo(x86-64) Unversioned so-files -------------------- gsequencer: /usr/lib64/gsequencer/libgsequencer.so Source checksums ---------------- http://download.savannah.gnu.org/releases/gsequencer/0.7.x/gsequencer-0.7.115.tar.gz : CHECKSUM(SHA256) this package : 78768e952709470241a2891942fbb2f3009467ba079f93c556a95ecb71f40dbf CHECKSUM(SHA256) upstream package : b702dd1ec3abe7a71a9c465c56227def3bed5075a11aba897cb22811ec946137 diff -r also reports differences Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02 Command line :/usr/bin/fedora-review -b 1403417 Buildroot used: fedora-25-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6
> - Sources used to build the package match the upstream source, > as provided in the spec URL. > Note: Upstream MD5sum check error, diff is in > /home/jkraehemann/1403417-gsequencer/diff.txt > See: http://fedoraproject.org/wiki/Packaging/SourceURL This means the source tarball included in your src.rpm does not match the tarball as offered on your upstream download page. > [?]: Development (unversioned) .so files in -devel subpackage, if present. > Note: Unversioned so-files in private %_libdir subdirectory (see > attachment). Verify they are not in ld path. This refers to %{_libdir}/gsequencer/libgsequencer.so* and if it's truely a private path not visible to the runtime linker by default, there can't be any conflict with a system library using the same name. > [?]: License file installed when any subpackage combination is installed. This means: If you install any subpackage, does it depend on other packages that include the %license text? For example, gsequencer-devel with its explicit base "Requires" would pull in the gsequencer package. > [?]: Package must own all directories that it creates. > Note: Directories without known owners: /usr/share/gtk-doc, > /usr/share/xml https://fedoraproject.org/wiki/Packaging:Guidelines#File_and_Directory_Ownership > [?]: Package does not own files or directories owned by other packages. > Note: Dirs in package are owned also by: /usr/share/doc/libags-doc > (gsequencer-devel-doc, gsequencer-devel-docs), /usr/share/doc/libags- > audio-doc(gsequencer-devel-doc, gsequencer-devel-docs), /usr/share/doc > /libags-audio-doc/api(gsequencer-devel-doc, gsequencer-devel-docs), > /usr/share/doc/libags-gui-doc/api(gsequencer-devel-doc, gsequencer- > devel-docs), /usr/share/doc/libags-doc/api(gsequencer-devel-doc, > gsequencer-devel-docs), /usr/share/doc/libags-gui-doc(gsequencer- > devel-doc, gsequencer-devel-docs), /usr/share/gtk-doc/html(harfbuzz- > devel, gtk-doc) Same as above. And you may have to remove old build results from your Mock buildroot. > [?]: %build honors applicable compiler flags or justifies otherwise. https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags If reading build.log (or compiler output during build stage), does the build pick up the global compiler flags: see "rpm -E %optflags" > [?]: Package contains no bundled libraries without FPC exception. https://fedoraproject.org/wiki/Packaging:Guidelines#Bundling_and_Duplication_of_system_libraries > [?]: Package consistently uses macros (instead of hard-coded directory > names). https://fedoraproject.org/wiki/Packaging:Guidelines#Macros > [?]: Package is named according to the Package Naming Guidelines. https://fedoraproject.org/wiki/Packaging:Guidelines#Naming > [?]: Package does not generate any conflict. A tough one to check. If not installing files with too generic file names into common paths, such as %_bindir or %_libdir, the risk of causing conflicts is low. In case of doubt, one may query the remote repos with "dnf" or "repoquery" to see whether any other packages provide files with the same path. > [?]: Package obeys FHS, except libexecdir and /usr/target. https://fedoraproject.org/wiki/Packaging:Guidelines#Filesystem_Layout > [?]: Useful -debuginfo package or justification otherwise. https://fedoraproject.org/wiki/Packaging:Guidelines#Debuginfo_packages > [?]: Package is not known to require an ExcludeArch tag. https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Build_Failures > [?]: Large documentation must go in a -doc subpackage. Large could be size > (~1MB) or number of files. > Note: Documentation size is 153600 bytes in 3 files. This guideline is about splitting off "large or huge documentation". See Review Guidelines and https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#PackageDocumentation > [?]: Package complies to the Packaging Guidelines The tough catch-all. > [?]: If the source package does not include license text(s) as a separate > file from upstream, the packager SHOULD query upstream to include it. No issue. License terms are included. It refers to: https://fedoraproject.org/wiki/Packaging:Guidelines#Licensing > [?]: Final provides and requires are sane (see attachments). This about the RPM Requires and Provides in the built packages. One can query them, examine them and/or test them. > [?]: Fully versioned dependency in subpackages if applicable. > Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in > gsequencer-debuginfo , gsequencer-devel-doc The -debuginfo package is generated automatically by rpmbuild. The -doc subpackages usually don't need to depend on the base package if the documentation can be viewed with an arbitrary file viewer. It would be a different case, if they could only be displayed within the "gsequencer" program. > [?]: Scriptlets must be sane, if used. https://fedoraproject.org/wiki/Packaging:Guidelines#Scriptlets > [?]: Package should compile and build into binary rpms on all supported > architectures. https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support > [?]: Packages should try to preserve timestamps of original installed > files. https://fedoraproject.org/wiki/Packaging:Guidelines#Timestamps > [?]: Large data in /usr/share should live in a noarch subpackage if package > is arched. > Note: Arch-ed rpms have a total of 9093120 bytes in /usr/share If the data files are not arch-specific, one may split off huge data files into a subpackage that sets "BuildArch: noarch" and can copy the same noarch.rpm for all target repos. 9 MB isn't so large IMO. There are much larger data packages in the distribution.
Hi Just fixed experimental MIDI hardware support and tested it manually with my keyboard. Added about 8000 lines of code doing properties of task objects. The new SRPM is here: Spec URL: http://gsequencer.org/fedora/rpmbuild/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.118-0.fc25.src.rpm bests, Joël
> Added about 8000 lines of code doing properties of task objects. * Let me advise you to separate package review and upstream development and restrict yourself to packaging related changes. Release separate updates at Fedora Copr, but too many tarball changes during review require frequent re-reviews of package contents. * That should also help keeping %changelog accurate. As painful as it may be. * You still want to find a solution for the directory ownership problems. * Also, /usr/share/doc-base/ is Debian specific. It doesn't seem to exist at Fedora yet. It is located just below /usr/share and outside the gsequencer namespace, too. I'd rather delete it. Btw, the single file within it refers to missing files. /usr/share/doc/gsequencer/html*
The new SRPM is here: I just implemented export to specified soundcard. I'm happy now with the package. In order to build htmlhelp it has a need for a patch. Spec URL: http://gsequencer.org/fedora/rpmbuild/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.120-0.fc25.src.rpm Patch0 URL: http://gsequencer.org/fedora/rpmbuild/SOURCES/gsequencer.0-fix-docbook-path.patch bests, Joël
Hi Since there was a problem with Makefile.am and `install` there was a need for an additional package. Spec URL: http://gsequencer.org/fedora/rpmbuild/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.121-0.fc25.src.rpm Bests, Joël
Hi Michael (In reply to Michael Schwendt from comment #8) > > - Sources used to build the package match the upstream source, > > as provided in the spec URL. > > Note: Upstream MD5sum check error, diff is in > > /home/jkraehemann/1403417-gsequencer/diff.txt > > See: http://fedoraproject.org/wiki/Packaging/SourceURL > > This means the source tarball included in your src.rpm does not match the > tarball as offered on your upstream download page. > This happened because I have downloaded from git tag. > > > [?]: Development (unversioned) .so files in -devel subpackage, if present. > > Note: Unversioned so-files in private %_libdir subdirectory (see > > attachment). Verify they are not in ld path. > > This refers to %{_libdir}/gsequencer/libgsequencer.so* and if it's truely a > private path not visible to the runtime linker by default, there can't be > any conflict with a system library using the same name. > It is a private library and there are no files or any path provided in /etc/ld.so.conf or /etc/ld.so.conf.d/*. The LD_LIBRARY_PATH variable isn't modified, either. > > > [?]: License file installed when any subpackage combination is installed. > > This means: If you install any subpackage, does it depend on other packages > that include the %license text? For example, gsequencer-devel with its > explicit base "Requires" would pull in the gsequencer package. > This makes sense because the headers would be useless without the libraries. > > > [?]: Package must own all directories that it creates. > > Note: Directories without known owners: /usr/share/gtk-doc, > > /usr/share/xml > > https://fedoraproject.org/wiki/Packaging: > Guidelines#File_and_Directory_Ownership > In the new spec 0.7.121 the /usr/share/gtk-doc is owned by gsequencer-devel-doc. For /usr/share/xml there is now a Requires xml-common. > > > [?]: Package does not own files or directories owned by other packages. > > Note: Dirs in package are owned also by: /usr/share/doc/libags-doc > > (gsequencer-devel-doc, gsequencer-devel-docs), /usr/share/doc/libags- > > audio-doc(gsequencer-devel-doc, gsequencer-devel-docs), /usr/share/doc > > /libags-audio-doc/api(gsequencer-devel-doc, gsequencer-devel-docs), > > /usr/share/doc/libags-gui-doc/api(gsequencer-devel-doc, gsequencer- > > devel-docs), /usr/share/doc/libags-doc/api(gsequencer-devel-doc, > > gsequencer-devel-docs), /usr/share/doc/libags-gui-doc(gsequencer- > > devel-doc, gsequencer-devel-docs), /usr/share/gtk-doc/html(harfbuzz- > > devel, gtk-doc) > > Same as above. And you may have to remove old build results from your Mock > buildroot. > Still unsure about that. Could you bring some clarification? > > > [?]: %build honors applicable compiler flags or justifies otherwise. > > https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags > > If reading build.log (or compiler output during build stage), does the build > pick up the global compiler flags: see "rpm -E %optflags" > They are applied for now. CFLAGS="%{optflags}" BINDIR=%{_bindir} > > > [?]: Package contains no bundled libraries without FPC exception. > > https://fedoraproject.org/wiki/Packaging: > Guidelines#Bundling_and_Duplication_of_system_libraries > There are no bundled libraries. > > > [?]: Package consistently uses macros (instead of hard-coded directory > > names). > > https://fedoraproject.org/wiki/Packaging:Guidelines#Macros > I do so. > > > [?]: Package is named according to the Package Naming Guidelines. > > https://fedoraproject.org/wiki/Packaging:Guidelines#Naming > gsequencer-0.7.121.tar.gz should match. > > > [?]: Package does not generate any conflict. > > A tough one to check. If not installing files with too generic file names > into common paths, such as %_bindir or %_libdir, the risk of causing > conflicts is low. In case of doubt, one may query the remote repos with > "dnf" or "repoquery" to see whether any other packages provide files with > the same path. > > > > [?]: Package obeys FHS, except libexecdir and /usr/target. > > https://fedoraproject.org/wiki/Packaging:Guidelines#Filesystem_Layout > I think this is up to you to ensure that. > > > [?]: Useful -debuginfo package or justification otherwise. > > https://fedoraproject.org/wiki/Packaging:Guidelines#Debuginfo_packages > It is not disabled. > > > [?]: Package is not known to require an ExcludeArch tag. > > https://fedoraproject.org/wiki/Packaging: > Guidelines#Architecture_Build_Failures > It should work on those architectures. > > > [?]: Large documentation must go in a -doc subpackage. Large could be size > > (~1MB) or number of files. > > Note: Documentation size is 153600 bytes in 3 files. > > This guideline is about splitting off "large or huge documentation". See > Review Guidelines and > https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/ > Guidelines#PackageDocumentation > The user manual is provided by the main package but the developer docs are provided in a separated package. > > > [?]: Package complies to the Packaging Guidelines > > The tough catch-all. > > > > [?]: If the source package does not include license text(s) as a separate > > file from upstream, the packager SHOULD query upstream to include it. > > No issue. License terms are included. It refers to: > https://fedoraproject.org/wiki/Packaging:Guidelines#Licensing > They are included now. Although I can't specify the version of the GFDL. > > > [?]: Final provides and requires are sane (see attachments). > > This about the RPM Requires and Provides in the built packages. One can > query them, examine them and/or test them. > Still have to check. > > > [?]: Fully versioned dependency in subpackages if applicable. > > Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in > > gsequencer-debuginfo , gsequencer-devel-doc > > The -debuginfo package is generated automatically by rpmbuild. The -doc > subpackages usually don't need to depend on the base package if the > documentation can be viewed with an arbitrary file viewer. It would be a > different case, if they could only be displayed within the "gsequencer" > program. > This was fixed. > > > [?]: Scriptlets must be sane, if used. > > https://fedoraproject.org/wiki/Packaging:Guidelines#Scriptlets > The scriplets are sane. > > > [?]: Package should compile and build into binary rpms on all supported > > architectures. > > https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support > Not sure. > > > [?]: Packages should try to preserve timestamps of original installed > > files. > > https://fedoraproject.org/wiki/Packaging:Guidelines#Timestamps > Just fixed. > > > [?]: Large data in /usr/share should live in a noarch subpackage if package > > is arched. > > Note: Arch-ed rpms have a total of 9093120 bytes in /usr/share > > If the data files are not arch-specific, one may split off huge data files > into a subpackage that sets "BuildArch: noarch" and can copy the same > noarch.rpm for all target repos. 9 MB isn't so large IMO. There are much > larger data packages in the distribution. good so. Bests, Joël
Hi Just some performance improvements for interfacing ALSA MIDI and soundcard Spec URL: http://gsequencer.org/fedora/rpmbuild/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.122-0.fc25.src.rpm Bests, Joël
Hi Providing a version with improved stability: Spec URL: http://gsequencer.org/fedora/rpmbuild/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.122.6-0.fc25.src.rpm Bests, Joël
Hi Just corrected spec location Spec URL: http://gsequencer.org/fedora/rpmbuild/SPECS/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.122.6-0.fc25.src.rpm
@Michael, you have done an incredible job pointing out issues. Are you also planning to take over the formal review and sponsor Joel? If not, I can take up the review.
Since Nov 2015 any packager may do the needed review. It need not be a sponsor anymore. And sorry, I'm kind of picky nowadays. Feel free to continue.
(In reply to Michael Schwendt from comment #18) > Since Nov 2015 any packager may do the needed review. It need not be a > sponsor anymore. I am aware of that. Just did not want to pick up a review that you were planning to do. I will take up the review and upon completion, sponsor Joel.
Some initial comments that would be good to address before I run fedora-review. 1/ Release: 0%{?dist} I suggest starting with release tag 1 instead of 0. https://fedoraproject.org/wiki/Packaging:Versioning 2/ please provide "justification" for adding a patch. This would help anyone looking at the spec file understand the purpose of the patch 3/ Some comments about macros - You have used %configure --disable-oss --enable-gtk-doc --enable-gtk-doc-html %make_build CFLAGS="%{optflags}" BINDIR=%{_bindir} %make_build ags-docs In this case, since you have already used %configure macro, CFLAGS and BINDIR options for %make_build are superfluous. If you run, rpm -E %configure you will notice that compiler flags and bindir are already set. 3/ from the %files section %{_bindir}/* %{_mandir}/man1/* This is a no-no. This package simply cannot own all packages under /usr/bin and /usr/share/man. 4/ Similarly, %files -n gsequencer-devel-doc %{_datadir}/gtk-doc/ I suggest making the directories owned more explicit.
Hi About directory /usr/share/gtk-doc I just read here: https://fedoraproject.org/wiki/Packaging:Guidelines Didn't I understand the sentence correctly? "Solution: the evolution package should own the /usr/share/gtk-doc directory. There is no need to add an explicit Requires on gtk-doc solely for the directory ownership".
(In reply to Joël Krähemann from comment #21) > Hi > > About directory /usr/share/gtk-doc I just read here: > > https://fedoraproject.org/wiki/Packaging:Guidelines > > Didn't I understand the sentence correctly? > > "Solution: the evolution package should own the /usr/share/gtk-doc > directory. There is no need to add an explicit Requires on gtk-doc solely > for the directory ownership". Right. If none of the dependencies provide /usr/share/gtk-doc, then it's fine to own it. So, in this case, that would be fine.
Hi - modified manpage expression - modified binary expression - removed CFLAGS and BINDIR flags of make_build I have modified the release to start with 1: Spec URL: http://gsequencer.org/fedora/rpmbuild/SPECS/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.122.6-1.fc25.src.rpm
> 3/ from the %files section > > %{_bindir}/* > %{_mandir}/man1/* > > > This is a no-no. This package simply cannot own all packages > under /usr/bin and /usr/share/man. As I've never before seen such a piece of advice, let me point out you're wrong here, because basically, this package MUST own all files under %_bindir and %_mandir/man1. The file ownership guidelines explain that. It can be a dangerous thing during package review to point out something that is not covered by the packaging/review guidelines. Well, you've tried to give a rationale, but that one is wrong/misleading. When we're building packages, we install into an _empty_ buildroot, and the %files sections include files found in that buildroot. Hence %{_bindir}/* %{_mandir}/man1/* is an entirely correct and acceptable way to include _all_ files this particular package installs below %_bindir and below %_mandir/man1. Using the '*' wildcard is a bit lazy, if there are only very few files to include or if all files use the same prefix, but it does the job. And it _cannot_ include any files in the package, which this particular package does not install into the empty buildroot. So, it has not been a mistake to do that. However, spelling out a bit the files to include can be beneficial, because then the %files sections serve as helpful file-existance checks, whereas a simple %_bindir/* wildcard would not ensure that /usr/bin/gsequencer exists in the package actually. Further, if you want to distribute files to multiple subpackages, using only '*' could lead to problems as you would need to explicitly %exclude files you want to include in other subpackages.
(In reply to Michael Schwendt from comment #24) > > 3/ from the %files section > > > > %{_bindir}/* > > %{_mandir}/man1/* > > > > > > This is a no-no. This package simply cannot own all packages > > under /usr/bin and /usr/share/man. > > As I've never before seen such a piece of advice, let me point out you're > wrong here, because basically, this package MUST own all files under > %_bindir and %_mandir/man1. The file ownership guidelines explain that. > Well, more precisely, a package MUST own all the packages IT CREATES. In other words, it's my opinion that it is much better to explicitly specify the files (a point you have also alludedto later) when the list is not too big. Further, as long as it is not too cumbersome, listing out the files explicitly also helps in keeping close track of what is changing in a package. I agree I should have been much clearer in what I was trying to say. > > So, it has not been a mistake to do that. However, spelling out a bit the > files to include can be beneficial, because then the %files sections serve > as helpful file-existance checks, whereas a simple %_bindir/* wildcard would > not ensure that /usr/bin/gsequencer exists in the package actually. Further, > if you want to distribute files to multiple subpackages, using only '*' > could lead to problems as you would need to explicitly %exclude files you > want to include in other subpackages. In fact, this is what I should have written in the first place.
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files in private %_libdir subdirectory (see attachment). Verify they are not in ld path. [x]: Header files in -devel subpackage, if present. [x]: ldconfig called in %post and %postun if required. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. 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]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "GPL (v2 or later)", "GPL (v3 or later)", "Unknown or generated", "MIT/X11 (BSD like)", "FSF Unlimited GPL", "*No copyright* FSF All Permissive", "FSF All Permissive", "FSF Unlimited". 147 files have unknown license. Detailed output of licensecheck in /home/mukundan/nextcloud/misc_pkgs/pkg_reviews/1403417-gsequencer/licensecheck.txt ---> Looking at the licensecheck output, this does not seem to be a problem. [?]: License file installed when any subpackage combination is installed. ---> License file is installed as part of the gsequencer package. -devel package has versioned requires for the base packages. However, -devel-doc does not depend on -devel or the base package. As far as I can tell, -devel-doc should also have versioned requires. [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: Package does not own files or directories owned by other packages. Note: Dirs in package are owned also by: /usr/share/gtk-doc(gegl- devel, libsecret-devel, clipsmm-doc, redland-devel, libunity-gtk- parser-devel, gnome-desktop3-devel, rasqal-devel, latexila-doc, webkitgtk4-doc, libgtop2-devel, iio-sensor-proxy-docs, libgdl-devel, gocl-devel, vte3-devel, vips-devel, libgpod-doc, eog-devel, libgit2 -glib-devel, libgnome-devel, libxfce4util-devel, p11-kit-devel, gtkimageview-devel, gstreamer1-vaapi-devel-docs, garcon-devel, uprof- devel, libxfce4ui-devel, clutter-gst3-devel, flatpak-devel, vte291-devel, gstreamer1-rtsp-server-devel-docs, tubo-doc, nautilus- devel, libxklavier-devel, gedit-devel, poppler-devel, libzapojit- devel, libwnck-devel, libgweather-devel, yelp-devel, keybinder-devel, gimp-devel, gtk-doc, parole-devel, gnome-todo-devel, tumbler-devel, libpeas-devel, libfm-devel-docs, gfbgraph-devel, xed-doc, polkit-docs, gcr-devel, anjuta-devel, libldm-devel, gtk3-devel-docs, gom-devel, libdbusmenu-doc, dbus-doc, libgnome-keyring-devel, ibus-devel-docs, upower-devel-docs, maliit-framework-docs, harfbuzz-devel, webkitgtk- doc, intel-gpu-tools, raptor2-devel, gtk2-devel-docs, libwnck3-devel, libcanberra-devel, cheese-libs-devel, gspell-doc, glade-devel, gsound- devel, gstreamer-plugins-base-devel-docs, seed-doc, libgdata-devel, gtkspell3-devel, webkitgtk3-doc, libu2f-host-devel, exo-devel, unique- devel, json-glib-devel, gnome-desktop-devel, lasem-devel, gnome- bluetooth-libs-devel, nntpgrab-devel, libidn2-devel, unique3-docs, cutter-devel, tomoe-devel, fprintd-devel, udisks-devel, xfconf-devel, geocode-glib-devel, bamf-devel, gnome-autoar-devel, ORBit2-devel, libgda-devel, anaconda-widgets-devel), /usr/share/gtk-doc/html(gegl- devel, libsecret-devel, clipsmm-doc, redland-devel, libunity-gtk- parser-devel, gnome-desktop3-devel, rasqal-devel, latexila-doc, webkitgtk4-doc, libgtop2-devel, iio-sensor-proxy-docs, libgdl-devel, gocl-devel, vte3-devel, vips-devel, libgpod-doc, eog-devel, libgit2 -glib-devel, libgnome-devel, libxfce4util-devel, p11-kit-devel, gtkimageview-devel, gstreamer1-vaapi-devel-docs, garcon-devel, uprof- devel, libxfce4ui-devel, clutter-gst3-devel, flatpak-devel, vte291-devel, gstreamer1-rtsp-server-devel-docs, tubo-doc, nautilus- devel, libxklavier-devel, gedit-devel, poppler-devel, libzapojit- devel, libwnck-devel, libgweather-devel, yelp-devel, keybinder-devel, gimp-devel, gtk-doc, parole-devel, gnome-todo-devel, tumbler-devel, libpeas-devel, libfm-devel-docs, gfbgraph-devel, xed-doc, polkit-docs, gcr-devel, anjuta-devel, libldm-devel, gtk3-devel-docs, gom-devel, libdbusmenu-doc, dbus-doc, libgnome-keyring-devel, ibus-devel-docs, upower-devel-docs, maliit-framework-docs, harfbuzz-devel, webkitgtk- doc, intel-gpu-tools, raptor2-devel, gtk2-devel-docs, libwnck3-devel, libcanberra-devel, cheese-libs-devel, gspell-doc, glade-devel, gsound- devel, gstreamer-plugins-base-devel-docs, seed-doc, libgdata-devel, gtkspell3-devel, webkitgtk3-doc, libu2f-host-devel, exo-devel, unique- devel, json-glib-devel, gnome-desktop-devel, lasem-devel, gnome- bluetooth-libs-devel, nntpgrab-devel, libidn2-devel, unique3-docs, cutter-devel, tomoe-devel, fprintd-devel, udisks-devel, xfconf-devel, geocode-glib-devel, bamf-devel, gnome-autoar-devel, ORBit2-devel, libgda-devel, anaconda-widgets-devel) ---> This is already discussed and is fine. [x]: %build honors applicable compiler flags or justifies otherwise. ---> Appropriate macros are used and the build log shows proper compiler flags being used. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [?]: Development files must be in a -devel package ---> There seems to at least [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 665600 bytes in 44 files. [!]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [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 %license. [x]: Package requires other packages for directories it uses. [x]: Package must own all directories that it creates. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Package contains desktop file if it is a GUI application. [x]: Package installs a %{name}.desktop using desktop-file-install or desktop-file-validate if there is such a file. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [-]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane (see attachments). ---> I did not notice oddities. Please consider the -devel-doc comment above. [?]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in gsequencer-debuginfo , gsequencer-devel-doc ---> -devel-doc again [x]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [!]: Patches link to upstream bugs/comments/lists or are otherwise justified. ---> As I mentioned in a previous comment, please add a comment about the patch. [x]: Scriptlets must be sane, if used. [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. ---> looks good. https://koji.fedoraproject.org/koji/taskinfo?taskID=18173117 [x]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [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) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: The placement of pkgconfig(.pc) files are correct. [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [?]: Large data in /usr/share should live in a noarch subpackage if package is arched. Note: Arch-ed rpms have a total of 10199040 bytes in /usr/share See: http://fedoraproject.org/wiki/Packaging:ReviewGuidelines#Package_Review_Guidelines ---> you may want to consider if it's appropriate to move the html docs to -doc subpackage. I do not really have a preference. [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Package should not use obsolete m4 macros [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: gsequencer-0.7.122.6-1.fc26.x86_64.rpm gsequencer-debuginfo-0.7.122.6-1.fc26.x86_64.rpm gsequencer-devel-0.7.122.6-1.fc26.x86_64.rpm gsequencer-devel-doc-0.7.122.6-1.fc26.x86_64.rpm gsequencer-0.7.122.6-1.fc26.src.rpm gsequencer.x86_64: W: shared-lib-calls-exit /usr/lib64/libags.so.0.0.7 exit.5 gsequencer.x86_64: W: devel-file-in-non-devel-package /usr/lib64/gsequencer/libgsequencer.so ---> This seems to be a symlink to a versioned library. gsequencer-devel.x86_64: W: only-non-binary-in-usr-lib gsequencer-devel.x86_64: W: no-documentation 5 packages and 0 specfiles checked; 0 errors, 4 warnings. Rpmlint (debuginfo) ------------------- Checking: gsequencer-debuginfo-0.7.122.6-1.fc26.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- gsequencer.x86_64: W: undefined-non-weak-symbol /usr/lib64/libags.so.0.0.7 ags_mutex_manager_get_instance gsequencer.x86_64: W: undefined-non-weak-symbol /usr/lib64/libags.so.0.0.7 ags_mutex_manager_get_application_mutex gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/librt.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libm.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libdl.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: shared-lib-calls-exit /usr/lib64/libags.so.0.0.7 exit.5 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libgmp.so.10 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libuuid.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/librt.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_audio.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libgdk_pixbuf-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libgio-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libfontconfig.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libfreetype.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/librt.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libdl.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_gui.so.0.0.7 /lib64/libpthread.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libuuid.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libxml2.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libags_thread.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/librt.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libm.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libdl.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_server.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libuuid.so.1 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libgmodule-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libgthread-2.0.so.0 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libm.so.6 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libdl.so.2 gsequencer.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libags_thread.so.0.0.7 /lib64/libX11.so.6 gsequencer.x86_64: W: devel-file-in-non-devel-package /usr/lib64/gsequencer/libgsequencer.so gsequencer-devel.x86_64: W: only-non-binary-in-usr-lib gsequencer-devel.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 0 errors, 43 warnings. ---> Can anything be done to address these issues? It will be good to get this fixed Requires -------- gsequencer (rpmlib, GLIBC filtered): /sbin/ldconfig ld-linux-x86-64.so.2()(64bit) libX11.so.6()(64bit) libags.so.0()(64bit) libags_audio.so.0()(64bit) libags_gui.so.0()(64bit) libags_server.so.0()(64bit) libags_thread.so.0()(64bit) libasound.so.2()(64bit) libasound.so.2(ALSA_0.9)(64bit) libasound.so.2(ALSA_0.9.0rc4)(64bit) libatk-1.0.so.0()(64bit) libc.so.6()(64bit) libcairo.so.2()(64bit) libdl.so.2()(64bit) libfontconfig.so.1()(64bit) libfreetype.so.6()(64bit) libgdk-x11-2.0.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgmodule-2.0.so.0()(64bit) libgmp.so.10()(64bit) libgobject-2.0.so.0()(64bit) libgsequencer.so.0()(64bit) libgthread-2.0.so.0()(64bit) libgtk-x11-2.0.so.0()(64bit) libinstpatch-1.0.so.0()(64bit) libjack.so.0()(64bit) libm.so.6()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpangoft2-1.0.so.0()(64bit) libpthread.so.0()(64bit) librt.so.1()(64bit) libsamplerate.so.0()(64bit) libsamplerate.so.0(libsamplerate.so.0.0)(64bit) libsndfile.so.1()(64bit) libsndfile.so.1(libsndfile.so.1.0)(64bit) libuuid.so.1()(64bit) libuuid.so.1(UUID_1.0)(64bit) libuuid.so.1(UUID_2.20)(64bit) libxml2.so.2()(64bit) libxml2.so.2(LIBXML2_2.4.30)(64bit) libxml2.so.2(LIBXML2_2.6.0)(64bit) rtld(GNU_HASH) xml-common gsequencer-devel-doc (rpmlib, GLIBC filtered): gsequencer-devel (rpmlib, GLIBC filtered): /usr/bin/pkg-config gsequencer(x86-64) libags.so.0()(64bit) libags_audio.so.0()(64bit) libags_gui.so.0()(64bit) libags_server.so.0()(64bit) libags_thread.so.0()(64bit) pkgconfig(alsa) pkgconfig(cairo) pkgconfig(fontconfig) pkgconfig(gdk-pixbuf-2.0) pkgconfig(gio-2.0) pkgconfig(glib-2.0) pkgconfig(gmodule-2.0) pkgconfig(gobject-2.0) pkgconfig(gthread-2.0) pkgconfig(gtk+-2.0) pkgconfig(jack) pkgconfig(libags) pkgconfig(libinstpatch-1.0) pkgconfig(libxml-2.0) pkgconfig(sndfile) pkgconfig(uuid) gsequencer-debuginfo (rpmlib, GLIBC filtered): Provides -------- gsequencer: application() application(gsequencer.desktop) gsequencer gsequencer(x86-64) libags.so.0()(64bit) libags_audio.so.0()(64bit) libags_gui.so.0()(64bit) libags_server.so.0()(64bit) libags_thread.so.0()(64bit) libgsequencer.so.0()(64bit) gsequencer-devel-doc: gsequencer-devel-doc gsequencer-devel-doc(x86-64) gsequencer-devel: gsequencer-devel gsequencer-devel(x86-64) pkgconfig(libags) pkgconfig(libags_audio) pkgconfig(libags_gui) gsequencer-debuginfo: gsequencer-debuginfo gsequencer-debuginfo(x86-64) Unversioned so-files -------------------- gsequencer: /usr/lib64/gsequencer/libgsequencer.so Source checksums ---------------- http://download.savannah.gnu.org/releases/gsequencer/stable/gsequencer-0.7.122.6.tar.gz : CHECKSUM(SHA256) this package : 6947fc068037aa6b7ed33aa7535776f9ae647754ed2546a68083754fe93b7985 CHECKSUM(SHA256) upstream package : 6947fc068037aa6b7ed33aa7535776f9ae647754ed2546a68083754fe93b7985 Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02 Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 1403417 Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6
> --> License file is installed as part of the gsequencer package. > -devel package has versioned requires for the base packages. > > However, -devel-doc does not depend on -devel or the base package. > As far as I can tell, -devel-doc should also have versioned requires. No. Preferably, -doc packages are kept free of superfluous dependencies, so one can install a documentation package for evaluation purposes without dragging in -devel packages and possible tons of deps. https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing > Generic: > [?]: Large data in /usr/share should live in a noarch subpackage if package > is arched. > Note: Arch-ed rpms have a total of 10199040 bytes in /usr/share > See: > http://fedoraproject.org/wiki/Packaging:ReviewGuidelines#Package_Review_Guidelines > > ---> you may want to consider if it's appropriate to move the html docs to -doc subpackage. I do not really have a preference. That's not what fedora-review is trying to point out here. The total size of files in arch-ed rpms it refers to is mostly because of the files in the -devel-doc package. Making that one "noarch" would be the obvious solution. > gsequencer.x86_64: W: devel-file-in-non-devel-package /usr/lib64/gsequencer/libgsequencer.so > > ---> This seems to be a symlink to a versioned library. The symlink is unimportant. Important is that these libs are stored in a directory outside runtime linker's default search path.
(In reply to Michael Schwendt from comment #27) > > --> License file is installed as part of the gsequencer package. > > -devel package has versioned requires for the base packages. > > > > However, -devel-doc does not depend on -devel or the base package. > > As far as I can tell, -devel-doc should also have versioned requires. > > No. Preferably, -doc packages are kept free of superfluous dependencies, so > one can install a documentation package for evaluation purposes without > dragging in -devel packages and possible tons of deps. > > https://fedoraproject.org/wiki/Packaging: > LicensingGuidelines#Subpackage_Licensing > "If a subpackage is dependent ***(either implicitly or explicitly) *** ..." The "implicitly" part I had forgotten. So, from a license file standpoint, this is fine. However, to me, a -doc package, particularly -devel-doc having versioned requires certainly makes sense. > > > Generic: > > [?]: Large data in /usr/share should live in a noarch subpackage if package > > is arched. > > Note: Arch-ed rpms have a total of 10199040 bytes in /usr/share > > See: > > http://fedoraproject.org/wiki/Packaging:ReviewGuidelines#Package_Review_Guidelines > > > > ---> you may want to consider if it's appropriate to move the html docs to -doc subpackage. I do not really have a preference. > > That's not what fedora-review is trying to point out here. > > The total size of files in arch-ed rpms it refers to is mostly because of > the files in the -devel-doc package. Making that one "noarch" would be the > obvious solution. > My comment stands regardless. Personally, I think having a separate doc package is often nice. But, that's for packager to decide and that's what I have indicated. Of course, -devel-doc and -doc (if Joel decides to include) can be made no-arch as well. > > > gsequencer.x86_64: W: devel-file-in-non-devel-package /usr/lib64/gsequencer/libgsequencer.so > > > > ---> This seems to be a symlink to a versioned library. > > The symlink is unimportant. Important is that these libs are stored in a > directory outside runtime linker's default search path. True. It's not a "true" devel file.
> It's not a "true" devel file. That's much too vague. This review item is about avoiding a conflict between multiple non-versioned runtime libs with the same name. It would not be possible to install multiple "libgsequencer.so" at the same time, if all were installed into runtime linker's search path. Also, it *could* be a devel file and still be stored in the base package instead of a -devel package. Notice in build.log that gsequencer links with libgsequencer.so. So, what is it? An ordinary runtime lib? A plugin dlopen()ed from a subdir? Apparently not: $ gsequencer gsequencer: error while loading shared libraries: libgsequencer.so.0: cannot open shared object file: No such file or directory $ rpm -q gsequencer gsequencer-0.7.122.6-1.fc25.x86_64 $ rpm -qR gsequencer|grep gseq libgsequencer.so.0()(64bit) > [x]: Package functions as described. Not yet. > However, to me, a -doc package, particularly -devel-doc having > versioned requires certainly makes sense. What would be the rationale? That someone displaying the documentation would be forced to install a specific -devel package and all its [likely not fully versioned] deps even if only skimming over the API and its docs? Uhm. Note that the -devel-doc subpackage would be arch-specific but not multilib, and therefore you would be unable to follow https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package because the base package dep could not be arch-specific. > Of course, -devel-doc and -doc (if Joel decides to include) can be > made no-arch as well. Making _large_ arch-independent data packages noarch is the whole point of that recommendation made by the fedora-review tool. It's less that many people share /usr/share over the network, it's more that in the repos, a single # dnf list \*-devel-doc|grep noarch|wc -l 13 # dnf list \*-devel-doc|tail -n +3 |grep -v noarch|wc -l 4
Truncated comment: [...] it's more that in the repos, a single noarch build of package can be linked from within all other arched repos.
Hi (In reply to Michael Schwendt from comment #29) > > It's not a "true" devel file. > > That's much too vague. > > This review item is about avoiding a conflict between multiple non-versioned > runtime libs with the same name. It would not be possible to install > multiple "libgsequencer.so" at the same time, if all were installed into > runtime linker's search path. > > Also, it *could* be a devel file and still be stored in the base package > instead of a -devel package. > > Notice in build.log that gsequencer links with libgsequencer.so. So, what is > it? An ordinary runtime lib? A plugin dlopen()ed from a subdir? Apparently > not: > > $ gsequencer > gsequencer: error while loading shared libraries: libgsequencer.so.0: > cannot > open shared object file: No such file or directory > $ rpm -q gsequencer > gsequencer-0.7.122.6-1.fc25.x86_64 > $ rpm -qR gsequencer|grep gseq > libgsequencer.so.0()(64bit) > > > > [x]: Package functions as described. > > Not yet. > You are right it doesn't work anymore. However I have tested it and it was working for that package. The library is there and it is in a private location. I think you don't want that? I have read once that on RPM based systems no libraries are private. [jkraehemann@localhost ~]$ ls -lh /usr/lib64/gsequencer/libgsequencer.so* lrwxrwxrwx. 1 root root 22 23. Feb 18:22 /usr/lib64/gsequencer/libgsequencer.so -> libgsequencer.so.0.0.1 lrwxrwxrwx. 1 root root 22 23. Feb 18:22 /usr/lib64/gsequencer/libgsequencer.so.0 -> libgsequencer.so.0.0.1 -rwxr-xr-x. 1 root root 1.1M 23. Feb 18:22 /usr/lib64/gsequencer/libgsequencer.so.0.0.1 Note the private library contains an unstable API that might change. It is documented and contains mainly composite widgets really specific to gsequencer. It could be used as blue-print if wished. It contains the AgsXorgApplicationContext. docs/reference/libgsequencer/libgsequencer.xml is present. I could provide a patch to make libgsequencer.so* resident in default linker location. But then you might want to provide the header files of libgsequencer, too. > > > However, to me, a -doc package, particularly -devel-doc having > > versioned requires certainly makes sense. > > What would be the rationale? > > That someone displaying the documentation would be forced to install a > specific -devel package and all its [likely not fully versioned] deps even > if only skimming over the API and its docs? Uhm. > > Note that the -devel-doc subpackage would be arch-specific but not multilib, > and therefore you would be unable to follow > https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package > because the base package dep could not be arch-specific. > > > > Of course, -devel-doc and -doc (if Joel decides to include) can be > > made no-arch as well. > > Making _large_ arch-independent data packages noarch is the whole point of > that recommendation made by the fedora-review tool. It's less that many > people share /usr/share over the network, it's more that in the repos, a > single > > > # dnf list \*-devel-doc|grep noarch|wc -l > 13 > # dnf list \*-devel-doc|tail -n +3 |grep -v noarch|wc -l > 4 bests, Joël
> You are right it doesn't work anymore. However I have tested it and it was > working for that package. Probably prior to deleting the RPATH from the program? > The library is there and it is in a private location. And that's why runtime linker cannot find it. > I think you don't want that? Fedora? You may have misread something in the guidelines. Maybe the following section? https://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages Let's not mispackage gsequencer. Hiding the lib in a private path serves no purpose, if it breaks the program. Quite obviously, the program is to be packaged in a way that it works. If you find something in the guidelines that seems to conflict with how you want to package the software, discuss this during review or on packaging@ list. It's even possible to contact the packaging committee directly if you think something in the guidelines is wrong. > I have read once that on RPM based systems no libraries are private. Sounds strange. Certainly there are lots of shared libs with no public API (and no -devel package) installed within runtime linker's search path. > Note the private library contains an unstable API that might change. No issue at all. > I could provide a patch to make libgsequencer.so* resident in > default linker location. That would be the correct solution. Or an RPATH. And you could delete libgsequencer.so, because the program is linked with libgsequencer.so.1 and looks for that SONAME anyway. https://fedoraproject.org/wiki/Packaging:Guidelines#Rpath_for_Internal_Libraries https://fedoraproject.org/wiki/Packaging:Guidelines#Beware_of_Rpath > But then you might want to provide the > header files of libgsequencer, too. No. That's a false conclusion.
Hi This does install libgsequencer.so in %{_libdir}, provides its the headers in /usr/include/ags/X and the API reference is generated, too. Note there are some additional patches, now. Spec URL: http://gsequencer.org/fedora/rpmbuild/SPECS/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.122.6-2.fc25.src.rpm regards, Joël
Michael, sorry for the non-response. Several excellent points. I was able to launch the application in my VM and that's why I marked that it as [x]. I will check what I did there. I was playing with the package earlier and I suspect I have something there. I will look at the updated spec and srpm.
Changes made - - package does not install private library. # rpm -ql gsequencer /usr/bin/gsequencer /usr/bin/midi2xml /usr/lib64/libags.so.0 /usr/lib64/libags.so.0.0.7 /usr/lib64/libags_audio.so.0 /usr/lib64/libags_audio.so.0.0.7 /usr/lib64/libags_gui.so.0 /usr/lib64/libags_gui.so.0.0.7 /usr/lib64/libags_server.so.0 /usr/lib64/libags_server.so.0.0.7 /usr/lib64/libags_thread.so.0 /usr/lib64/libags_thread.so.0.0.7 /usr/lib64/libgsequencer.so.0 /usr/lib64/libgsequencer.so.0.0.1 <snip> ---> this looks good. I can work with the application. Other than this, can you make -devel-doc "noarch" per Michael's suggestion above? That's something that would nice to do. You can do this by adding BuildArch: noarch under the -devel-doc subpackage.
> Note there are some additional patches, now. Simply moving the lib in %install would have done the job. Anything beyond that could have been postponed to a future update of your upstream code base. Adding several patches seems like a lot of extra effort. Also notice: https://fedoraproject.org/wiki/Packaging:Guidelines#Patch_Guidelines
Hi just updated gsequencer.spec to make the docs noarch. Bests, Joël
Can you post links to updated spec and srpm. Also, please add some text to explain the patches as I indicated in a previous comment. Comments make it much easier for someone touching the package.
Hi Here you are Spec URL: http://gsequencer.org/fedora/rpmbuild/SPECS/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.122.6-3.fc25.src.rpm
This looks good to me. I will approve the package and sponsor you. Have you done any package reviews? https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group
Hi I'm going to pick some packages and do the unofficial reviews. So far I did it for my own package as you see above. Note there is a new upstream package available 0.7.122.7 fixing some serious memory problems. I have implement for many objects GObject::dispose() for more information see changelog. Bests, Joël
Hi here is the new SRPM some patches were removed. Further xvfb-run is a new build dependency in order to run `make check`. Spec URL: http://gsequencer.org/fedora/rpmbuild/SPECS/gsequencer.spec SRPM URL: http://gsequencer.org/fedora/rpmbuild/SRPMS/gsequencer-0.7.122.7-0.fc25.src.rpm Bests, Joël
(In reply to Joël Krähemann from comment #41) > Hi > > I'm going to pick some packages and do the unofficial reviews. > So far I did it for my own package as you see above. > > Note there is a new upstream package available 0.7.122.7 fixing some serious > memory problems. I have implement for many objects GObject::dispose() for > more information see changelog. > > Bests, > Joël Please do keep yourself updated with the packaging guidelines. I am going to sponsor you even though you have not done package reviews. I am willing to direct you to appropriate resources as you continue package this (and other) packages. Feel free to contact me with any questions you might have regarding Fedora packaging, updates procedure, etc. I will add you the packager group now. Please wait for about 1 hour before you request your package on pkgdb. https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Add_Package_to_Source_Code_Management_.28SCM.29_system_and_Set_Owner Welcome to packagers!
I have added you to packagers. Please add me as a co-maintainer for this package so that I can help you with anything that is necessary. Welcome!
I have just requested the package. I have found some useful documentation in the fedora wiki. And for sure you are added as a co-maintainer.
(In reply to Joël Krähemann from comment #45) > I have just requested the package. I have found some useful documentation in > the fedora wiki. And for sure you are added as a co-maintainer. I see that the package is approved. Go ahead and build it for rawhide. Test and make sure everything works. You can also do a scratch build for other fedora releases using koji. For example, to test fedora 25, koji build f25 --scratch <srpm_name> You can then use this package to test everything works as expected and submit an update. Please let me know (you can email me if not in this bug report) if there are questions.
Hi Mukundan The build fails sometimes by a crashed test: FAIL: ags_functional_audio_test It uses JACK Audio Connection Kit but it is known that sometimes if no soundcard available to JACK it may crash. But I can't say for sure without a stack-trace. Would you recommend to disable this test? Bests, Joël
hi just noticed another test fails. So it is rather randomly, thought. FAIL: ags_xorg_application_context_test Bests, Joël
gsequencer-0.7.122.7-0.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-3ca175034a
gsequencer-0.7.122.7-0.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-d34e53331e
gsequencer-0.7.122.7-0.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-dabef7359d
gsequencer-0.7.122.7-0.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-dabef7359d
gsequencer-0.7.122.7-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-f811608abd
gsequencer-0.7.122.7-1.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-ab05cb9c57
gsequencer-0.7.122.7-1.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-da19e9160d
gsequencer-0.7.122.7-0.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-d34e53331e
gsequencer-0.7.122.7-0.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-3ca175034a
gsequencer-0.7.122.7-1.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-da19e9160d
gsequencer-0.7.122.7-1.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-ab05cb9c57
gsequencer-0.7.122.7-2.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-cf233b5047
gsequencer-0.7.122.7-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-e80000bc61
gsequencer-0.7.122.7-2.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-4e51beb07a
gsequencer-0.7.122.7-2.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-cf233b5047
gsequencer-0.7.122.7-2.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-4e51beb07a
gsequencer-0.7.122.7-2.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-e80000bc61
gsequencer-0.7.122.20-0.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-7e4ee54060
gsequencer-0.7.122.20-0.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-01f5202c66
gsequencer-0.7.122.20-0.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-2345652754
gsequencer-0.7.122.20-0.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-7e4ee54060
gsequencer-0.7.122.20-0.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-01f5202c66
gsequencer-0.7.122.20-0.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-2345652754
gsequencer-0.7.122.21-0.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-3bbaddcd43
gsequencer-0.7.122.21-0.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-984ec2b3c1
gsequencer-0.7.122.21-0.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-09d4d08212
gsequencer-0.7.122.21-0.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-984ec2b3c1
gsequencer-0.7.122.21-0.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-3bbaddcd43
gsequencer-0.7.122.21-0.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-09d4d08212
gsequencer-0.7.122.23-0.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-cc3bcee128
gsequencer-0.7.122.23-0.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-1bcd5c0cba
gsequencer-0.7.122.23-0.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-681b4e46b8
gsequencer-0.7.122.23-0.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-cc3bcee128
gsequencer-0.7.122.23-0.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-1bcd5c0cba
gsequencer-0.7.122.23-0.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-681b4e46b8
gsequencer-0.7.122.23-0.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.
gsequencer-0.7.135-1.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-98c244ae54
gsequencer-0.7.135-1.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-449e7e286f
gsequencer-0.7.135-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-51d26c53b7
gsequencer-0.7.135-1.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-449e7e286f
gsequencer-0.7.135-1.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-51d26c53b7
gsequencer-0.7.135-1.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-98c244ae54
gsequencer-0.7.135-1.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.
gsequencer-0.7.135-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.
gsequencer-0.7.135-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.