Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1482202
Summary: | Review Request: dbus-broker - Linux D-Bus Message Broker | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Tom Gundersen <tgunders> | ||||||
Component: | Package Review | Assignee: | Jan Synacek <jsynacek> | ||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | rawhide | CC: | daherrma, ignatenko, jsynacek, ngompa13, package-review, tgunders, zbyszek | ||||||
Target Milestone: | --- | Flags: | jsynacek:
fedora-review+
|
||||||
Target Release: | --- | ||||||||
Hardware: | All | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2017-10-25 23:11:56 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Attachments: |
|
Description
Tom Gundersen
2017-08-16 17:42:31 UTC
I'm going to post the entire review output of fedora-review first and then snippets of it that I have found important with embedded comments in it. 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/jsynacek/review/1482202-dbus-broker/diff.txt See: http://fedoraproject.org/wiki/Packaging/SourceURL - All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. Note: These BR are not needed: gcc See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2 ===== MUST items ===== C/C++: [ ]: Provides: bundled(gnulib) in place as required. Note: Sources not installed [ ]: Package does not contain kernel modules. [ ]: Package contains no static executables. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. Generic: [ ]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [ ]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Apache (v2.0)", "Unknown or generated", "*No copyright* Apache (v2.0)". 102 files have unknown license. Detailed output of licensecheck in /home/jsynacek/review/1482202-dbus- broker/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/selinux/targeted, /usr/share/selinux [ ]: %build honors applicable compiler flags or justifies otherwise. [ ]: Package contains no bundled libraries without FPC exception. [ ]: Changelog in prescribed format. [ ]: Sources contain only permissible code or content. [ ]: Package contains desktop file if it is a GUI application. [ ]: Development files must be in a -devel package [ ]: 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. [ ]: 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. [ ]: 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 does not own files or directories owned by other packages. [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]: 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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [!]: Uses parallel make %{?_smp_mflags} macro. [ ]: 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 dbus- broker-debuginfo [ ]: Package functions as described. [ ]: Latest version is packaged. [ ]: Package does not include license text files separate from upstream. [ ]: 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. [ ]: %check is present and all tests pass. [ ]: Packages should try to preserve timestamps of original installed files. [ ]: Spec use %global instead of %define unless justified. Note: %define requiring justification: %define c_dvar_version 1, %define c_list_version 3, %define c_rbtree_version 3, %define c_sundry_commit 3b5f04b5af54dea68d832546833d6d460d03aefc [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]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: There are rpmlint messages (see attachment). [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: dbus-broker-2-2.fc26.x86_64.rpm dbus-broker-debuginfo-2-2.fc26.x86_64.rpm dbus-broker-2-2.fc26.src.rpm dbus-broker.x86_64: W: no-documentation dbus-broker.x86_64: W: no-manual-page-for-binary dbus-broker dbus-broker.x86_64: W: no-manual-page-for-binary dbus-broker-launch dbus-broker-debuginfo.x86_64: E: debuginfo-without-sources dbus-broker.src: W: file-size-mismatch dbus-broker-2.tar.gz = 136357, https://github.com/bus1/dbus-broker/archive/v2/dbus-broker-2.tar.gz = 138241 3 packages and 0 specfiles checked; 1 errors, 4 warnings. Rpmlint (debuginfo) ------------------- Checking: dbus-broker-debuginfo-2-2.fc26.x86_64.rpm dbus-broker-debuginfo.x86_64: E: debuginfo-without-sources 1 packages and 0 specfiles checked; 1 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- sh: /usr/bin/python: No such file or directory dbus-broker-debuginfo.x86_64: E: debuginfo-without-sources dbus-broker.x86_64: W: no-documentation dbus-broker.x86_64: W: no-manual-page-for-binary dbus-broker dbus-broker.x86_64: W: no-manual-page-for-binary dbus-broker-launch 2 packages and 0 specfiles checked; 1 errors, 3 warnings. Requires -------- dbus-broker-debuginfo (rpmlib, GLIBC filtered): dbus-broker (rpmlib, GLIBC filtered): /bin/sh dbus libc.so.6()(64bit) libexpat.so.1()(64bit) libglib-2.0.so.0()(64bit) libm.so.6()(64bit) libselinux.so.1()(64bit) libsystemd.so.0()(64bit) libsystemd.so.0(LIBSYSTEMD_209)(64bit) libsystemd.so.0(LIBSYSTEMD_221)(64bit) rtld(GNU_HASH) systemd Provides -------- dbus-broker-debuginfo: dbus-broker-debuginfo dbus-broker-debuginfo(x86-64) dbus-broker: bundled(c-dvar) bundled(c-list) bundled(c-rbtree) dbus-broker dbus-broker(x86-64) Source checksums ---------------- https://github.com/c-util/c-list/archive/v3/c-list-3.tar.gz : CHECKSUM(SHA256) this package : 09b72f38599d1b78aa7b5a6fe93dfaf2d8e9128d8cf26748815bd5b539cb652d CHECKSUM(SHA256) upstream package : 09b72f38599d1b78aa7b5a6fe93dfaf2d8e9128d8cf26748815bd5b539cb652d https://github.com/c-util/c-rbtree/archive/v3/c-rbtree-3.tar.gz : CHECKSUM(SHA256) this package : 2a046005903c0a1d0e41069e4ce349e9a04acc977a564d90fcdba52ce9c9b67d CHECKSUM(SHA256) upstream package : 2a046005903c0a1d0e41069e4ce349e9a04acc977a564d90fcdba52ce9c9b67d https://github.com/bus1/dbus-broker/archive/v2/dbus-broker-2.tar.gz : CHECKSUM(SHA256) this package : 2000021ea50b11a3574d7ec7283b4bfdc1c424298895b38e1c73c9c10d0c5989 CHECKSUM(SHA256) upstream package : e5ea2192d3aa705ed8b48124fa822b693e101b2950dcfdf2229fe5e5b7c3c078 https://github.com/c-util/c-dvar/archive/v1/c-dvar-1.tar.gz : CHECKSUM(SHA256) this package : 6c549d96ea4d13f45712b4f0cfeff6ee17f2add064b24c352081f5bafbc6b053 CHECKSUM(SHA256) upstream package : 6c549d96ea4d13f45712b4f0cfeff6ee17f2add064b24c352081f5bafbc6b053 https://github.com/c-util/c-sundry/archive/3b5f04b5af54dea68d832546833d6d460d03aefc/c-sundry-3b5f04b5af54dea68d832546833d6d460d03aefc.tar.gz : CHECKSUM(SHA256) this package : b34f2c51e533b6caa97f55de9bfdfe966738d9f4a35659da2ddd1458c62a79f6 CHECKSUM(SHA256) upstream package : b34f2c51e533b6caa97f55de9bfdfe966738d9f4a35659da2ddd1458c62a79f6 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 1482202 Buildroot used: fedora-26-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 I have marked my comments with "jsynacek:" to make them more visible. 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/jsynacek/review/1482202-dbus-broker/diff.txt jsynacek: The upstream specfile differs from the one in the srpm. This should not be a problem. - All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. Note: These BR are not needed: gcc jsynacek: This should be fixed. Please, remove the BuildRequires: gcc from the spec. ===== MUST items ===== Generic: [ ]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Apache (v2.0)", "Unknown or generated", "*No copyright* Apache (v2.0)". 102 files have unknown license. Detailed output of jsynacek: All files are licensed according to COPYING, which is Apache v2.0. No action needed. ===== SHOULD items ===== Generic: [!]: Uses parallel make %{?_smp_mflags} macro. jsynacek: I believe that this failed check doesn't apply since meson is used to build the package. Make is only used to build the selinux policy. [ ]: 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 dbus- broker-debuginfo jsynacek: The debuginfo package is generated by rpm, so I consider this false positive. [ ]: Spec use %global instead of %define unless justified. Note: %define requiring justification: %define c_dvar_version 1, %define c_list_version 3, %define c_rbtree_version 3, %define c_sundry_commit 3b5f04b5af54dea68d832546833d6d460d03aefc jsynacek: See additional questions. rpmlint ------- dbus-broker.x86_64: W: no-documentation dbus-broker.x86_64: W: no-manual-page-for-binary dbus-broker dbus-broker.x86_64: W: no-manual-page-for-binary dbus-broker-launch jsynacek: These two should definitely have a manpage, in my opinion. dbus-broker-debuginfo.x86_64: E: debuginfo-without-sources dbus-broker.src: W: file-size-mismatch dbus-broker-2.tar.gz = 136357, https://github.com/bus1/dbus-broker/archive/v2/dbus-broker-2.tar.gz = 138241 jsynacek: Well this one is really weird. Please check the uploaded srpm and the sources. jsynacek: Additional questions. Why depend on glib? I mean you implemented a lot of low level stuff from scratch (variant, lists, ...). Why c_sundry_commit instead of c_sundry_version? I'd say it should have a version as well, as this looks like it's just not ready for release. Why does the build require systemd and systemd-devel? Just curious (this one is really off topic for this review, but still...). Why implement your libraries as header files only? I will address the suggested changes for the spec file and push a new one in a minute. This answers the additional questions: dbus-broker is the core of the package, which is performance critical, and which should not have many dependencies (as it might be integrated into PID1 in the future). dbus-broker-launch on the other hand is just a wrapper that makes dbus-broker behave like dbus-daemon. It is not performance critical (only does config parsing at boot, but not really anything at runtime), this depends on libsystemd and glib. In the future we could split that into a separate package in case people start integrating dbus-broker directly and don't want the dependencies. Unlike the other libraries, c-sundry is just a collection of trivial but useful helpers that is not really meant to be released or ever shipped as a proper library (tagging it in git was a mistake, will drop that again). It makes more sense to just copy the needed bits into whatever project needs them. For us, we simply use git submodules, or in this case, depend on a specific commit. The alternative would be to copy the sources over, but that seemed unnecessary. Some of the libraries (but not all) only have inlined functions so far, but we took care that the pkg-config file can be used later to actually make them shared libraries, if necessary. So we just happen to not have any code in the shared lib, yet. But we are forward compatible to adding such. Thanks for the answers! > jsynacek: This should be fixed. Please, remove the BuildRequires: gcc from the spec. That's obsolete advice. gcc must be listed. See https://fedoraproject.org/wiki/Packaging:Guidelines#Build-Time_Dependencies_.28BuildRequires.29. > Why does the build require systemd and systemd-devel? One for rpm macros, the other for systemd libs. Requiring both is OK. > [ ]: Spec use %global instead of %define unless justified. Right. Replace all %define:s with %global:s. I tried to address all the comments, the only outstanding thing is > dbus-broker.src: W: file-size-mismatch dbus-broker-2.tar.gz = 136357, https://github.com/bus1/dbus-broker/archive/v2/dbus-broker-2.tar.gz = 138241 which I could not figure out. Any suggestions welcome. New files can be found: Spec URL: https://copr-be.cloud.fedoraproject.org/results/%40bus1/dbus/fedora-26-x86_64/00591586-dbus-broker/dbus-broker.spec SRPM URL: https://copr-be.cloud.fedoraproject.org/results/%40bus1/dbus/fedora-26-x86_64/00591586-dbus-broker/dbus-broker-3-1.fc26.src.rpm Apart from the source problem, all looks fine to me. (In reply to Tom Gundersen from comment #7) > > dbus-broker.src: W: file-size-mismatch dbus-broker-2.tar.gz = 136357, https://github.com/bus1/dbus-broker/archive/v2/dbus-broker-2.tar.gz = 138241 > > which I could not figure out. Any suggestions welcome. https://github.com/bus1/dbus-broker/archive/v3/dbus-broker-3.tar.gz : CHECKSUM(SHA256) this package : a010fdd902ea4805b2497a0019c8349326b7f872473bef14e67dd6c76e128e92 CHECKSUM(SHA256) upstream package : ae24b3a389d4616340a501eb81ca0ad4dea58ad56fb7ceb8fef0db8bff9a36b4 This simply means that the source tarball that's present inside the srpm is not the same one as referenced by the "Source0: https://github.com/bus1/dbus-broker/archive/v%{version}/dbus-broker-%{version}.tar.gz". I'm not sure how COPR generates the srpm, but it looks like there's a bug there. Try creating the source rpm manually. > meson --prefix=/usr --buildtype=release %{_vpath_srcdir} %{_vpath_builddir}
this is horribly wrong, you should use `%meson` instead
* most likely you want to use pkgconfig(xxx) buildrequires for most of things, check meson.build
* please don't bundle all that stuff here, package them instead (IIRC I was submitting some of them for review)
(In reply to Igor Gnatenko from comment #9) > * most likely you want to use pkgconfig(xxx) buildrequires for most of > things, check meson.build True. Tom, can you update those? > * please don't bundle all that stuff here, package them instead (IIRC I was > submitting some of them for review) Those projects do not have any stable-API releases, yet. Neither have they been announced publicly. I do not believe packaging those will offer an advantage at the moment. Our plan is to keep them bundled in dbus-broker until they have an API promise. Lastly, the reason the code is split across repositories is for development reasons. We explicitly want them to be used as sub-modules. Some of them (especially c-rbtree and c-dvar) are meant to be released some day in the future. We don't have a specific date yet, though. I'll update to use %meson and pkgconfig(), and resubmit once we have the next upstream release. Thanks for the feedback! (In reply to David Herrmann from comment #10) > (In reply to Igor Gnatenko from comment #9) > > * most likely you want to use pkgconfig(xxx) buildrequires for most of > > things, check meson.build > > True. Tom, can you update those? > > > * please don't bundle all that stuff here, package them instead (IIRC I was > > submitting some of them for review) > > Those projects do not have any stable-API releases, yet. Neither have they > been announced publicly. I do not believe packaging those will offer an > advantage at the moment. > > Our plan is to keep them bundled in dbus-broker until they have an API > promise. > > Lastly, the reason the code is split across repositories is for development > reasons. We explicitly want them to be used as sub-modules. Some of them > (especially c-rbtree and c-dvar) are meant to be released some day in the > future. We don't have a specific date yet, though. Thanks for clarification! Jan, Any reason to not set fedora-review+ ? To me all issues seem to be trivial to fix on import stage. I'm waiting for the next release as mentioned in comment 11. Pushed a release. All comments should be addressed. Thanks for the feedback! Latest spec file: <https://raw.githubusercontent.com/bus1/dbus-broker/master/packaging/dbus-broker.spec>. You should drop the first line in %description — no need to repeat what's already in the summary anyway. Looks good otherwise 👍. Updated %description now. Tom, could you please link both the current spec and the current srpm into one comment? I don't know where they are now... srpm: <https://drive.google.com/open?id=0Bzl8MN6V7gPPWnZMbTliTmVCZzQ> spec: <https://drive.google.com/open?id=0Bzl8MN6V7gPPZlFtZjZWWk9hSUk> I can't access those... Please use URLs that can be accessed with curl. If you don't have anywhere, there's the FedoraPeople space[1] and the COPR[2]. [1]: https://fedoraproject.org/wiki/Infrastructure/fedorapeople.org [2]: https://copr.fedoraproject.org/ Created attachment 1326028 [details]
proposed spec file
Created attachment 1326029 [details]
proposed srpm
I got this when updating from the previous version: Running scriptlet: dbus-broker-4-1.fc26.x86_64 1/3 libsemanage.semanage_direct_install_info: A higher priority dbus-broker module exists at priority 400 and will override the module currently being installed at priority 200. I guess that's not a problem now, though. APPROVED. (fedrepo-req-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/dbus-broker dbus-broker-7-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-c84cf2fe90 dbus-broker-7-1.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2017-8d26c7dd5f dbus-broker-7-1.fc27 has been pushed to the Fedora 27 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-8d26c7dd5f dbus-broker-7-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-c84cf2fe90 dbus-broker-7-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report. dbus-broker-7-1.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report. |