Bug 1773720 - Review Request: golang-github-haproxytech-dataplaneapi - HAProxy Data Plane API
Summary: Review Request: golang-github-haproxytech-dataplaneapi - HAProxy Data Plane API
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ryan O'Hara
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1773716 1773717 1773718 1773719 1833511
Blocks: FE-NEEDSPONSOR
TreeView+ depends on / blocked
 
Reported: 2019-11-18 19:23 UTC by Brandon Perkins
Modified: 2020-06-05 15:29 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-06-05 15:29:24 UTC
Type: ---
rohara: fedora-review+


Attachments (Terms of Use)

Description Brandon Perkins 2019-11-18 19:23:55 UTC
Spec URL: https://github.com/bdperkin/haproxytech/blob/master/SPECS/golang-github-haproxytech-dataplaneapi.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/bdperkin/haproxytech/fedora-31-x86_64/01112715-golang-github-haproxytech-dataplaneapi/golang-github-haproxytech-dataplaneapi-1.2.4-2.fc31.src.rpm
Description: Data Plane API is a sidecar process that runs next to HAProxy and provides API endpoints for managing HAProxy. It requires HAProxy version 1.9.0 or higher.

Fedora Account System Username: bdperkin
Note: These are my first packages and I need a sponsor.  The packages include: golang-github-gehirninc-crypt, golang-github-haproxytech-models, golang-github-haproxytech-config-parser, golang-github-haproxytech-client-native, and golang-github-haproxytech-dataplaneapi.
Successful copr build: https://copr.fedorainfracloud.org/coprs/bdperkin/haproxytech/build/1112715/

Comment 1 Ryan O'Hara 2019-11-20 20:38:06 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Package installs properly.
  Note: Installation errors (see attachment)
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/


===== MUST items =====

Generic:
[ ]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
     Note: Using prebuilt packages
[ ]: 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: There is no build directory. Running licensecheck on vanilla
     upstream sources. Licenses found: "Unknown or generated". 4 files have
     unknown license. Detailed output of licensecheck in /home/rohara/copr-
     build-1112715/review-golang-github-haproxytech-
;     dataplaneapi/licensecheck.txt
[ ]: License file installed when any subpackage combination is installed.
[ ]: Package must own all directories that it creates.
     Note: Directories without known owners: /etc/logrotate.d
[ ]: %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.
[ ]: Each %files section contains %defattr if rpm < 4.4
     Note: %defattr present but not needed
[ ]: 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.
[ ]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 40960 bytes in 4 files.
[ ]: Package complies to the Packaging Guidelines
[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]: %config files are marked noreplace or the reason is justified.
[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 must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[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]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in golang-github-haproxytech-
     dataplaneapi
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[!]: Reviewer should test that the package builds in mock.
[ ]: 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 golang-
     github-haproxytech-dataplaneapi-devel
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not 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.
[ ]: %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 gorepo dataplaneapi,
     %define haproxy_user haproxy, %define haproxy_group %{haproxy_user},
     %define haproxy_homedir %{_localstatedir}/lib/haproxy
[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:
[!]: Rpmlint is run on all installed packages.
     Note: Mock build failed
     See: https://docs.fedoraproject.org/en-US/packaging-
     guidelines/#_use_rpmlint
[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.


Installation errors
-------------------
INFO: mock.py version 1.4.21 starting (python version = 3.7.5)...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
INFO: Signal handler active
Start: run
Start: chroot init
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled dnf cache
Start: cleaning dnf metadata
Finish: cleaning dnf metadata
INFO: enabled HW Info plugin
Mock Version: 1.4.21
INFO: Mock Version: 1.4.21
Finish: chroot init
INFO: installing package(s): /home/rohara/copr-build-1112715/golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-2.fc32.x86_64.rpm /home/rohara/copr-build-1112715/golang-github-haproxytech-dataplaneapi-1.2.4-2.fc32.x86_64.rpm /home/r\
ohara/copr-build-1112715/golang-github-haproxytech-dataplaneapi-devel-1.2.4-2.fc32.noarch.rpm /home/rohara/copr-build-1112715/golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-2.fc32.x86_64.rpm
ERROR: Command failed:
 # /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64/root/ --releasever 32 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk install /home/rohara/copr-build-1112715/golang-github-haproxyte\
ch-dataplaneapi-debugsource-1.2.4-2.fc32.x86_64.rpm /home/rohara/copr-build-1112715/golang-github-haproxytech-dataplaneapi-1.2.4-2.fc32.x86_64.rpm /home/rohara/copr-build-1112715/golang-github-haproxytech-dataplaneapi-devel-1.2.4-2.fc32.n\
oarch.rpm /home/rohara/copr-build-1112715/golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-2.fc32.x86_64.rpm --setopt=tsflags=nocontexts



Rpmlint
-------
Checking: golang-github-haproxytech-dataplaneapi-1.2.4-2.fc32.x86_64.rpm
          golang-github-haproxytech-dataplaneapi-devel-1.2.4-2.fc32.noarch.rpm
          golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-2.fc32.x86_64.rpm
          golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-2.fc32.x86_64.rpm
          golang-github-haproxytech-dataplaneapi-1.2.4-2.fc32.src.rpm
golang-github-haproxytech-dataplaneapi.x86_64: E: incoherent-logrotate-file /etc/logrotate.d/dataplaneapi
golang-github-haproxytech-dataplaneapi.x86_64: E: missing-dependency-to-logrotate for logrotate script /etc/logrotate.d/dataplaneapi
golang-github-haproxytech-dataplaneapi.x86_64: W: no-manual-page-for-binary dataplaneapi
golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
5 packages and 0 specfiles checked; 3 errors, 2 warnings.




Source checksums
----------------
https://github.com/haproxytech/dataplaneapi/archive/v1.2.4/dataplaneapi-1.2.4.tar.gz :
  CHECKSUM(SHA256) this package     : e1791a5475485cb7520d5102509614d072781fc576481eca128e96607c43e12c
  CHECKSUM(SHA256) upstream package : e1791a5475485cb7520d5102509614d072781fc576481eca128e96607c43e12c


Requires
--------
golang-github-haproxytech-dataplaneapi (rpmlib, GLIBC filtered):
    /bin/sh
    config(golang-github-haproxytech-dataplaneapi)
    haproxy
    libc.so.6()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)
    systemd

golang-github-haproxytech-dataplaneapi-devel (rpmlib, GLIBC filtered):
    go-filesystem
    golang(github.com/GehirnInc/crypt)
    golang(github.com/GehirnInc/crypt/md5_crypt)
    golang(github.com/GehirnInc/crypt/sha256_crypt)
    golang(github.com/GehirnInc/crypt/sha512_crypt)
    golang(github.com/docker/go-units)
    golang(github.com/go-openapi/errors)
    golang(github.com/go-openapi/loads)
    golang(github.com/go-openapi/runtime)
    golang(github.com/go-openapi/runtime/flagext)
    golang(github.com/go-openapi/runtime/middleware)
    golang(github.com/go-openapi/runtime/security)
    golang(github.com/go-openapi/spec)
    golang(github.com/go-openapi/strfmt)
    golang(github.com/go-openapi/swag)
    golang(github.com/go-openapi/validate)
    golang(github.com/haproxytech/client-native)
    golang(github.com/haproxytech/client-native/configuration)
    golang(github.com/haproxytech/client-native/runtime)
    golang(github.com/haproxytech/config-parser)
    golang(github.com/haproxytech/config-parser/types)
    golang(github.com/haproxytech/models)
    golang(github.com/jessevdk/go-flags)
    golang(github.com/rs/cors)
    golang(github.com/shirou/gopsutil/host)
    golang(github.com/shirou/gopsutil/mem)
    golang(github.com/sirupsen/logrus)
    golang(golang.org/x/net/netutil)
    golang(golang.org/x/sys/unix)

golang-github-haproxytech-dataplaneapi-debuginfo (rpmlib, GLIBC filtered):

golang-github-haproxytech-dataplaneapi-debugsource (rpmlib, GLIBC filtered):



Provides
--------
golang-github-haproxytech-dataplaneapi:
    config(golang-github-haproxytech-dataplaneapi)
    golang-github-haproxytech-dataplaneapi
    golang-github-haproxytech-dataplaneapi(x86-64)

golang-github-haproxytech-dataplaneapi-devel:
    golang(github.com/haproxytech/dataplaneapi)
    golang(github.com/haproxytech/dataplaneapi/adapters)
    golang(github.com/haproxytech/dataplaneapi/handlers)
    golang(github.com/haproxytech/dataplaneapi/haproxy)
    golang(github.com/haproxytech/dataplaneapi/misc)
    golang(github.com/haproxytech/dataplaneapi/operations)
    golang(github.com/haproxytech/dataplaneapi/operations/acl)
    golang(github.com/haproxytech/dataplaneapi/operations/backend)
    golang(github.com/haproxytech/dataplaneapi/operations/backend_switching_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/bind)
    golang(github.com/haproxytech/dataplaneapi/operations/configuration)
    golang(github.com/haproxytech/dataplaneapi/operations/defaults)
    golang(github.com/haproxytech/dataplaneapi/operations/discovery)
    golang(github.com/haproxytech/dataplaneapi/operations/filter)
    golang(github.com/haproxytech/dataplaneapi/operations/frontend)
    golang(github.com/haproxytech/dataplaneapi/operations/global)
    golang(github.com/haproxytech/dataplaneapi/operations/http_request_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/http_response_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/information)
    golang(github.com/haproxytech/dataplaneapi/operations/log_target)
    golang(github.com/haproxytech/dataplaneapi/operations/reloads)
    golang(github.com/haproxytech/dataplaneapi/operations/server)
    golang(github.com/haproxytech/dataplaneapi/operations/server_switching_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/sites)
    golang(github.com/haproxytech/dataplaneapi/operations/specification)
    golang(github.com/haproxytech/dataplaneapi/operations/stats)
    golang(github.com/haproxytech/dataplaneapi/operations/stick_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/tcp_request_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/tcp_response_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/transactions)
    golang-github-haproxytech-dataplaneapi-devel
    golang-ipath(github.com/haproxytech/dataplaneapi)

golang-github-haproxytech-dataplaneapi-debuginfo:
    debuginfo(build-id)
    golang-github-haproxytech-dataplaneapi-debuginfo
    golang-github-haproxytech-dataplaneapi-debuginfo(x86-64)

golang-github-haproxytech-dataplaneapi-debugsource:
    golang-github-haproxytech-dataplaneapi-debugsource
    golang-github-haproxytech-dataplaneapi-debugsource(x86-64)



Generated by fedora-review 0.7.3 (44b83c7) last change: 2019-09-18
Command line :/usr/bin/fedora-review --copr-build 1112715
Buildroot used: fedora-rawhide-{{ target_arch }}
Active plugins: Shell-api, Generic
Disabled plugins: fonts, Perl, Haskell, R, Python, C/C++, SugarActivity, Java, PHP, Ocaml
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 3 Brandon Perkins 2019-11-21 14:02:42 UTC
# golang-github-haproxytech-dataplaneapi.x86_64: E: incoherent-logrotate-file /etc/logrotate.d/dataplaneapi
# golang-github-haproxytech-dataplaneapi.x86_64: E: missing-dependency-to-logrotate for logrotate script /etc/logrotate.d/dataplaneapi

Fixed in: https://github.com/bdperkin/haproxytech/commit/b5d2e8b00b701d49ffaed524ea19ce3c172497d8


# golang-github-haproxytech-dataplaneapi.x86_64: W: no-manual-page-for-binary dataplaneapi

Added in: https://github.com/bdperkin/haproxytech/commit/bada4ed3bcc363124ef950242159a93a46ad995b


# golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath

Nothing to worry about, all go devel packages have this in /usr/share/gocode/src/*/*/*/.goipath


# golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.

I don't have a good idea on how to fix this as the macros just kind of take care of everything under the hood.


# Build failure

Likely due to missing BuildRequires:

golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/GehirnInc/crypt)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/GehirnInc/crypt/md5_crypt)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/GehirnInc/crypt/sha256_crypt)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/GehirnInc/crypt/sha512_crypt)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/haproxytech/client-native)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/haproxytech/client-native/configuration)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/haproxytech/client-native/runtime)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/haproxytech/config-parser)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/haproxytech/config-parser/types)
golang-github-haproxytech-dataplaneapi.spec:BuildRequires:  golang(github.com/haproxytech/models)

Comment 4 Brandon Perkins 2019-11-21 15:03:12 UTC
========================== golang-github-haproxytech-dataplaneapi-1.2.4-4.fc31.src.rpm ==========================
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

########################## golang-github-haproxytech-dataplaneapi ##########################
========================== golang-github-haproxytech-dataplaneapi-devel ==========================
golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
1 packages and 0 specfiles checked; 0 errors, 1 warnings.

========================== golang-github-haproxytech-dataplaneapi ==========================
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

========================== golang-github-haproxytech-dataplaneapi-debugsource ==========================
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
1 packages and 0 specfiles checked; 1 errors, 0 warnings.

========================== golang-github-haproxytech-dataplaneapi-debuginfo ==========================
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

Copr build tested: https://copr.fedorainfracloud.org/coprs/bdperkin/haproxytech/build/1114123/

Comment 5 Brandon Perkins 2020-03-03 15:42:55 UTC
Spec URL: https://raw.githubusercontent.com/bdperkin/haproxytech/master/SPECS/golang-github-haproxytech-dataplaneapi.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/bdperkin/haproxytech/fedora-31-x86_64/01281736-golang-github-haproxytech-dataplaneapi/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.src.rpm
Successful copr build: https://download.copr.fedorainfracloud.org/results/bdperkin/haproxytech/fedora-31-x86_64/01281736-golang-github-haproxytech-dataplaneapi/

Changelog:
* Mon Mar 02 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-5
- Clean changelog

* Thu Nov 21 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-4
- Suggest logrotate and fix logrotate configuration

* Wed Nov 20 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-3
- Add man page

* Wed Nov 13 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-2
- Implement systemd

* Wed Nov 13 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-1
- Initial package



RPM Lint:
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
5 packages and 0 specfiles checked; 1 errors, 1 warnings.

Comment 6 Brandon Perkins 2020-03-04 20:30:01 UTC
Trying to get ahead of any issues, I went through the fedora-review report for all five packages as they exist now and provided comments where needed:

> ===== MUST items =====
> 
> Generic:
> [ ]: Package is licensed with an open-source compatible license and meets
>      other legal requirements as defined in the legal section of Packaging
>      Guidelines.

$ rpm -q --queryformat="%{NAME}: %{LICENSE}\n" RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm RPMS/golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-5.fc31.x86_64.rpm RPMS/golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-5.fc31.x86_64.rpm RPMS/golang-github-haproxytech-dataplaneapi-devel-1.2.4-5.fc31.noarch.rpm SRPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.src.rpm
golang-github-haproxytech-dataplaneapi: ASL 2.0
golang-github-haproxytech-dataplaneapi-debuginfo: ASL 2.0
golang-github-haproxytech-dataplaneapi-debugsource: ASL 2.0
golang-github-haproxytech-dataplaneapi-devel: ASL 2.0
golang-github-haproxytech-dataplaneapi: ASL 2.0


> [ ]: License field in the package spec file matches the actual license.
>      Note: There is no build directory. Running licensecheck on vanilla
>      upstream sources. Licenses found: "Unknown or generated". 4 files have
>      unknown license. Detailed output of licensecheck in
>      ~/git/haproxytech/1773720-golang-github-haproxytech-
>      dataplaneapi/licensecheck.txt



Unknown or generated
--------------------
~/git/haproxytech/1773720-golang-github-haproxytech-dataplaneapi/upstream-unpacked/Source0/dataplaneapi-1.2.4.tar.gz

$ rpm -qpL RPMS/golang-github-haproxytech-dataplaneapi-*.rpm
/usr/share/licenses/golang-github-haproxytech-dataplaneapi/LICENSE
/usr/share/licenses/golang-github-haproxytech-dataplaneapi-devel/LICENSE
$ tar -tf 1773720-golang-github-haproxytech-dataplaneapi/upstream-unpacked/Source0/dataplaneapi-1.2.4.tar.gz | grep /LICENSE$
dataplaneapi-1.2.4/LICENSE
$ tar -xvzf 1773720-golang-github-haproxytech-dataplaneapi/upstream-unpacked/Source0/dataplaneapi-1.2.4.tar.gz dataplaneapi-1.2.4/LICENSE
dataplaneapi-1.2.4/LICENSE
$ rpm -qp --queryformat="%{NAME}: %{LICENSE}\n" RPMS/golang-github-haproxytech-dataplaneapi-*.rpm
golang-github-haproxytech-dataplaneapi: ASL 2.0
golang-github-haproxytech-dataplaneapi-debuginfo: ASL 2.0
golang-github-haproxytech-dataplaneapi-debugsource: ASL 2.0
golang-github-haproxytech-dataplaneapi-devel: ASL 2.0
$ licensecheck dataplaneapi-1.2.4/LICENSE
dataplaneapi-1.2.4/LICENSE: *No copyright* Apache License (v2.0)
$ grep '^# Upstream license specification: ' 1773720-golang-github-haproxytech-dataplaneapi/srpm-unpacked/golang-github-haproxytech-dataplaneapi.spec 
# Upstream license specification: Apache-2.0


~/git/haproxytech/1773720-golang-github-haproxytech-dataplaneapi/upstream-unpacked/Source1/dataplaneapi.service
~/git/haproxytech/1773720-golang-github-haproxytech-dataplaneapi/upstream-unpacked/Source2/dataplaneapi.logrotate
~/git/haproxytech/1773720-golang-github-haproxytech-dataplaneapi/upstream-unpacked/Source3/dataplaneapi.sysconfig

Not Applicable for dataplaneapi.service, dataplaneapi.logrotate, and dataplaneapi.sysconfig.

> [ ]: License file installed when any subpackage combination is installed.

$ rpm -qpL --queryformat="\n%{NAME}: %{LICENSE}\n" RPMS/golang-github-haproxytech-dataplaneapi-*.rpm

golang-github-haproxytech-dataplaneapi: ASL 2.0
/usr/share/licenses/golang-github-haproxytech-dataplaneapi/LICENSE

golang-github-haproxytech-dataplaneapi-debuginfo: ASL 2.0

golang-github-haproxytech-dataplaneapi-debugsource: ASL 2.0

golang-github-haproxytech-dataplaneapi-devel: ASL 2.0
/usr/share/licenses/golang-github-haproxytech-dataplaneapi-devel/LICENSE

$ for r in $(ls RPMS/golang-github-haproxytech-dataplaneapi-*.rpm); do for d in conflicts enhances obsoletes provides recommends requires suggests supplements; do o=$(rpm -qp --${d} ${r} | grep dataplaneapi); if [ "${o}" != "" ]; then echo -e "=== ${r} ${d} ===\n${o}\n"; fi; done; done
=== RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm provides ===
config(golang-github-haproxytech-dataplaneapi) = 1.2.4-5.fc31
golang-github-haproxytech-dataplaneapi = 1.2.4-5.fc31
golang-github-haproxytech-dataplaneapi(x86-64) = 1.2.4-5.fc31

=== RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm requires ===
config(golang-github-haproxytech-dataplaneapi) = 1.2.4-5.fc31

=== RPMS/golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-5.fc31.x86_64.rpm provides ===
golang-github-haproxytech-dataplaneapi-debuginfo = 1.2.4-5.fc31
golang-github-haproxytech-dataplaneapi-debuginfo(x86-64) = 1.2.4-5.fc31

=== RPMS/golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-5.fc31.x86_64.rpm recommends ===
golang-github-haproxytech-dataplaneapi-debugsource(x86-64) = 1.2.4-5.fc31

=== RPMS/golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-5.fc31.x86_64.rpm provides ===
golang-github-haproxytech-dataplaneapi-debugsource = 1.2.4-5.fc31
golang-github-haproxytech-dataplaneapi-debugsource(x86-64) = 1.2.4-5.fc31

=== RPMS/golang-github-haproxytech-dataplaneapi-devel-1.2.4-5.fc31.noarch.rpm provides ===
golang(github.com/haproxytech/dataplaneapi) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/adapters) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/handlers) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/haproxy) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/misc) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/acl) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/backend) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/backend_switching_rule) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/bind) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/configuration) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/defaults) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/discovery) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/filter) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/frontend) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/global) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/http_request_rule) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/http_response_rule) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/information) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/log_target) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/reloads) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/server) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/server_switching_rule) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/sites) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/specification) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/stats) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/stick_rule) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/tcp_request_rule) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/tcp_response_rule) = 1.2.4-5.fc31
golang(github.com/haproxytech/dataplaneapi/operations/transactions) = 1.2.4-5.fc31
golang-github-haproxytech-dataplaneapi-devel = 1.2.4-5.fc31
golang-ipath(github.com/haproxytech/dataplaneapi) = 1.2.4-5.fc31



> [ ]: Package must own all directories that it creates.
>      Note: Directories without known owners: /etc/logrotate.d

The /etc/logrotate.d directory is owned by the 'logrotate' package:

$ rpm -qf /etc/logrotate.d
logrotate-3.15.1-1.fc31.x86_64

This issue is properly satisfied by the logrotate 'Suggests' in the RPM:

$ grep ^Suggests: SPECS/golang-github-haproxytech-dataplaneapi.spec 
Suggests: logrotate
$ rpm -qp --suggests RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm 
logrotate


> [ ]: Package does not own files or directories owned by other packages.
>      Note: Dirs in package are owned also by:

<snip/>

This is an issue across all 'golang-github' packages.  In reality, the '/usr/share/gocode/src/github.com' directory should only be owned by the 'golang' package itself:

$ rpm -qf /usr/share/gocode/src/github.com
golang-1.13.6-1.fc31.x86_64


> [ ]: %build honors applicable compiler flags or justifies otherwise.

The %build section only compiles code via the %gobuild macro:

$ grep -A7 ^%build SPECS/golang-github-haproxytech-dataplaneapi.spec
%build
for cmd in cmd/* ; do
  %gobuild -o %{gobuilddir}/sbin/$(basename $cmd) %{goipath}/$cmd
done
mkdir -p %{gobuilddir}/share/man/man8
help2man -n "%{summary}" -s 8 -o %{gobuilddir}/share/man/man8/%{gorepo}.8 -N --version-string="%{version}" %{gobuilddir}/sbin/%{gorepo}
gzip %{gobuilddir}/share/man/man8/%{gorepo}.8



> [ ]: Package contains no bundled libraries without FPC exception.

None:

$ rpm -qp --provides RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm | grep bundled
$ rpm -qp --provides RPMS/golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-5.fc31.x86_64.rpm | grep bundled
$ rpm -qp --provides RPMS/golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-5.fc31.x86_64.rpm | grep bundled
$ rpm -qp --provides RPMS/golang-github-haproxytech-dataplaneapi-devel-1.2.4-5.fc31.noarch.rpm | grep bundled


> [ ]: Changelog in prescribed format.

Should all be fixed now.

> [ ]: Sources contain only permissible code or content.

Yes.

> [ ]: Each %files section contains %defattr if rpm < 4.4
>      Note: %defattr present but not needed

Fixed with 1.2.4-6.


> [ ]: Package contains desktop file if it is a GUI application.

Not Applicable.

> [ ]: Development files must be in a -devel package

RPMS/golang-github-haproxytech-dataplaneapi-devel-1.2.4-5.fc31.noarch.rpm


> [ ]: Package uses nothing in %doc for runtime.

None:

golang-github-haproxytech-dataplaneapi:
/usr/share/doc/golang-github-haproxytech-dataplaneapi/CONTRIBUTING.md
/usr/share/doc/golang-github-haproxytech-dataplaneapi/README.md
/usr/share/man/man8/dataplaneapi.8.gz

golang-github-haproxytech-dataplaneapi-debuginfo:

golang-github-haproxytech-dataplaneapi-debugsource:

golang-github-haproxytech-dataplaneapi-devel:
/usr/share/doc/golang-github-haproxytech-dataplaneapi-devel/CONTRIBUTING.md
/usr/share/doc/golang-github-haproxytech-dataplaneapi-devel/README.md
/usr/share/gocode/src/github.com/haproxytech/dataplaneapi/CONTRIBUTING.md
/usr/share/gocode/src/github.com/haproxytech/dataplaneapi/README.md



> [ ]: Package consistently uses macros (instead of hard-coded directory
>      names).

Yes.

> [ ]: Package is named according to the Package Naming Guidelines.

Yes.

> [ ]: Package does not generate any conflict.

None.

> [ ]: Package obeys FHS, except libexecdir and /usr/target.

Yes.

> [ ]: If the package is a rename of another package, proper Obsoletes and
>      Provides are present.

Not Applicable.

> [ ]: Requires correct, justified where necessary.

Yes:

golang-github-haproxytech-dataplaneapi:
/bin/sh
config(golang-github-haproxytech-dataplaneapi) = 1.2.4-5.fc31
haproxy >= 1.9
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
rtld(GNU_HASH)
systemd

golang-github-haproxytech-dataplaneapi-debuginfo:

golang-github-haproxytech-dataplaneapi-debugsource:

golang-github-haproxytech-dataplaneapi-devel:
go-filesystem
golang(github.com/GehirnInc/crypt)
golang(github.com/GehirnInc/crypt/md5_crypt)
golang(github.com/GehirnInc/crypt/sha256_crypt)
golang(github.com/GehirnInc/crypt/sha512_crypt)
golang(github.com/docker/go-units)
golang(github.com/go-openapi/errors)
golang(github.com/go-openapi/loads)
golang(github.com/go-openapi/runtime)
golang(github.com/go-openapi/runtime/flagext)
golang(github.com/go-openapi/runtime/middleware)
golang(github.com/go-openapi/runtime/security)
golang(github.com/go-openapi/spec)
golang(github.com/go-openapi/strfmt)
golang(github.com/go-openapi/swag)
golang(github.com/go-openapi/validate)
golang(github.com/haproxytech/client-native)
golang(github.com/haproxytech/client-native/configuration)
golang(github.com/haproxytech/client-native/runtime)
golang(github.com/haproxytech/config-parser)
golang(github.com/haproxytech/config-parser/types)
golang(github.com/haproxytech/models)
golang(github.com/jessevdk/go-flags)
golang(github.com/rs/cors)
golang(github.com/shirou/gopsutil/host)
golang(github.com/shirou/gopsutil/mem)
golang(github.com/sirupsen/logrus)
golang(golang.org/x/net/netutil)
golang(golang.org/x/sys/unix)



> [ ]: Spec file is legible and written in American English.

Yes.

> [ ]: Package contains systemd file(s) if in need.

Yes:

$ rpm -qpl RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm | grep systemd
/usr/lib/systemd/system/dataplaneapi.service
$ ls SOURCES/dataplaneapi.service 
SOURCES/dataplaneapi.service
$ rpm -qp --requires RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm | grep systemd
systemd
systemd
systemd
$ grep systemd SPECS/golang-github-haproxytech-dataplaneapi.spec
BuildRequires:  systemd-units
Requires(post):   systemd
Requires(preun):  systemd
Requires(postun): systemd
%systemd_post %{gorepo}.service
%systemd_preun %{gorepo}.service
%systemd_postun_with_restart %{gorepo}.service
- Implement systemd


> [ ]: Useful -debuginfo package or justification otherwise.

Yes.

> [ ]: Package is not known to require an ExcludeArch tag.

ExcludeArch tag not required.

> [ ]: Large documentation must go in a -doc subpackage. Large could be size
>      (~1MB) or number of files.
>      Note: Documentation size is 40960 bytes in 4 files.

Not needed as 40960 bytes is less than 1MB.

> [ ]: Package complies to the Packaging Guidelines

Yes.

> [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 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]: %config files are marked noreplace or the reason is justified.
> [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 must not depend on deprecated() packages.
> [x]: Package use %makeinstall only when make install DESTDIR=... doesn't
>      work.
> [x]: Package is named using only allowed ASCII characters.
> [x]: No %config files under /usr.
> [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]: systemd_post is invoked in %post, systemd_preun in %preun, and
>      systemd_postun in %postun for Systemd service files.
>      Note: Systemd service file(s) in golang-github-haproxytech-
>      dataplaneapi
> [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.

Good.

> [ ]: Final provides and requires are sane (see attachments).

Good.

> [ ]: Fully versioned dependency in subpackages if applicable.
>      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in golang-
>      github-haproxytech-dataplaneapi-devel

Not Applicable.

> [ ]: Package functions as described.

Yes.

> [ ]: Latest version is packaged.

Yes.

> [ ]: Package does not include license text files separate from upstream.

No additional license text files.

> [ ]: Sources are verified with gpgverify first in %prep if upstream
>      publishes signatures.
>      Note: gpgverify is not used.

Not available.

> [ ]: Description and summary sections in the package spec file contains
>      translations for supported Non-English languages, if available.

Not available.

> [ ]: %check is present and all tests pass.

Yes:

$ grep -B1 -A3 -E "(^%check| check$)" SPECS/golang-github-haproxytech-dataplaneapi.spec
%bcond_without check

%define gorepo          dataplaneapi
%define haproxy_user    haproxy
--
%if %{with check}
%check
%gocheck
%endif



> [ ]: Packages should try to preserve timestamps of original installed
>      files.

Good:

$ date ; LANG=C.utf8 mock -q -r fedora-rawhide-x86_64 --no-bootstrap-chroot --no-cleanup-after --no-clean --enable-network --chroot -- "ls -ld \$(rpm -qL golang-github-haproxytech-dataplaneapi)"
Wed 04 Mar 2020 02:50:25 PM EST
-rw-r--r--. 1 root root 10173 Oct  9 09:36 /usr/share/licenses/golang-github-haproxytech-dataplaneapi/LICENSE
$ date ; LANG=C.utf8 mock -q -r fedora-rawhide-x86_64 --no-bootstrap-chroot --no-cleanup-after --no-clean --enable-network --chroot -- "ls -ld \$(rpm -qL golang-github-haproxytech-dataplaneapi-debuginfo)"
Wed 04 Mar 2020 02:50:27 PM EST
dr-xr-xr-x. 18 root root 4096 Mar  3 17:43 .
$ date ; LANG=C.utf8 mock -q -r fedora-rawhide-x86_64 --no-bootstrap-chroot --no-cleanup-after --no-clean --enable-network --chroot -- "ls -ld \$(rpm -qL golang-github-haproxytech-dataplaneapi-debugsource)"
Wed 04 Mar 2020 02:50:29 PM EST
dr-xr-xr-x. 18 root root 4096 Mar  3 17:43 .
$ date ; LANG=C.utf8 mock -q -r fedora-rawhide-x86_64 --no-bootstrap-chroot --no-cleanup-after --no-clean --enable-network --chroot -- "ls -ld \$(rpm -qL golang-github-haproxytech-dataplaneapi-devel)"
Wed 04 Mar 2020 02:50:30 PM EST
-rw-r--r--. 1 root root 10173 Oct  9 09:36 /usr/share/licenses/golang-github-haproxytech-dataplaneapi-devel/LICENSE


> [ ]: Spec use %global instead of %define unless justified.
>      Note: %define requiring justification: %define gorepo dataplaneapi,
>      %define haproxy_user haproxy, %define haproxy_group %{haproxy_user},
>      %define haproxy_homedir %{_localstatedir}/lib/haproxy

Fixed with 1.2.4-6.


> [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.
> [x]: Package should compile and build into binary rpms on all supported
>      architectures.
> 
> ===== EXTRA items =====
> 
> Generic:
> [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]: 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: golang-github-haproxytech-dataplaneapi-1.2.4-5.fc33.x86_64.rpm
>           golang-github-haproxytech-dataplaneapi-devel-1.2.4-5.fc33.noarch.rpm
>           golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-5.fc33.x86_64.rpm
>           golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-5.fc33.x86_64.rpm
>           golang-github-haproxytech-dataplaneapi-1.2.4-5.fc33.src.rpm
> golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath

Expected.

> golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.

Allowed for '-debuginfo' and '-debugsource' sub-packages.

> 5 packages and 0 specfiles checked; 1 errors, 1 warnings.
> 
> 
> 
> 
> Rpmlint (debuginfo)
> -------------------
> Checking: golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-5.fc33.x86_64.rpm
> 1 packages and 0 specfiles checked; 0 errors, 0 warnings.
> 
> 
> 
> 
> 
> Rpmlint (installed packages)
> ----------------------------
> golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
> golang-github-haproxytech-dataplaneapi-debugsource.x86_64: W: invalid-url URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name or service not known>
> golang-github-haproxytech-dataplaneapi.x86_64: W: invalid-url URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name or service not known>
> golang-github-haproxytech-dataplaneapi-debuginfo.x86_64: W: invalid-url URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name or service not known>
> golang-github-haproxytech-dataplaneapi-devel.noarch: W: invalid-url URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name or service not known>
> golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
> 4 packages and 0 specfiles checked; 1 errors, 5 warnings.
>

$ sudo mkdir -p /var/lib/mock/fedora-rawhide-x86_64/root/root/.config
$ echo "addFilter(r\"hidden-file-or-dir /usr/share/gocode/src/github\.com/.*/.*/.goipath$\")" > /tmp/rpmlint.config
$ sudo cp /tmp/rpmlint.config /var/lib/mock/fedora-rawhide-x86_64/root/root/.config/rpmlint
$ LANG=C.utf8 mock -q -r fedora-rawhide-x86_64 --no-bootstrap-chroot --no-cleanup-after --no-clean --enable-network --chroot -- rpmlint -f /root/.config/rpmlint golang-github-haproxytech-dataplaneapi golang-github-haproxytech-dataplaneapi-debuginfo golang-github-haproxytech-dataplaneapi-debugsource golang-github-haproxytech-dataplaneapi-devel
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
4 packages and 0 specfiles checked; 1 errors, 0 warnings.


> 
> 
> Source checksums
> ----------------
> https://github.com/haproxytech/dataplaneapi/archive/v1.2.4/dataplaneapi-1.2.4.tar.gz :
>   CHECKSUM(SHA256) this package     : e1791a5475485cb7520d5102509614d072781fc576481eca128e96607c43e12c
>   CHECKSUM(SHA256) upstream package : e1791a5475485cb7520d5102509614d072781fc576481eca128e96607c43e12c
> 
> 
> Requires
> --------
> golang-github-haproxytech-dataplaneapi (rpmlib, GLIBC filtered):
>     /bin/sh
>     config(golang-github-haproxytech-dataplaneapi)
>     haproxy
>     libc.so.6()(64bit)
>     libpthread.so.0()(64bit)
>     rtld(GNU_HASH)
>     systemd
> 
> golang-github-haproxytech-dataplaneapi-devel (rpmlib, GLIBC filtered):
>     go-filesystem
>     golang(github.com/GehirnInc/crypt)
>     golang(github.com/GehirnInc/crypt/md5_crypt)
>     golang(github.com/GehirnInc/crypt/sha256_crypt)
>     golang(github.com/GehirnInc/crypt/sha512_crypt)
>     golang(github.com/docker/go-units)
>     golang(github.com/go-openapi/errors)
>     golang(github.com/go-openapi/loads)
>     golang(github.com/go-openapi/runtime)
>     golang(github.com/go-openapi/runtime/flagext)
>     golang(github.com/go-openapi/runtime/middleware)
>     golang(github.com/go-openapi/runtime/security)
>     golang(github.com/go-openapi/spec)
>     golang(github.com/go-openapi/strfmt)
>     golang(github.com/go-openapi/swag)
>     golang(github.com/go-openapi/validate)
>     golang(github.com/haproxytech/client-native)
>     golang(github.com/haproxytech/client-native/configuration)
>     golang(github.com/haproxytech/client-native/runtime)
>     golang(github.com/haproxytech/config-parser)
>     golang(github.com/haproxytech/config-parser/types)
>     golang(github.com/haproxytech/models)
>     golang(github.com/jessevdk/go-flags)
>     golang(github.com/rs/cors)
>     golang(github.com/shirou/gopsutil/host)
>     golang(github.com/shirou/gopsutil/mem)
>     golang(github.com/sirupsen/logrus)
>     golang(golang.org/x/net/netutil)
>     golang(golang.org/x/sys/unix)
> 
> golang-github-haproxytech-dataplaneapi-debuginfo (rpmlib, GLIBC filtered):
> 
> golang-github-haproxytech-dataplaneapi-debugsource (rpmlib, GLIBC filtered):
> 
> 
> 
> Provides
> --------
> golang-github-haproxytech-dataplaneapi:
>     config(golang-github-haproxytech-dataplaneapi)
>     golang-github-haproxytech-dataplaneapi
>     golang-github-haproxytech-dataplaneapi(x86-64)
> 
> golang-github-haproxytech-dataplaneapi-devel:
>     golang(github.com/haproxytech/dataplaneapi)
>     golang(github.com/haproxytech/dataplaneapi/adapters)
>     golang(github.com/haproxytech/dataplaneapi/handlers)
>     golang(github.com/haproxytech/dataplaneapi/haproxy)
>     golang(github.com/haproxytech/dataplaneapi/misc)
>     golang(github.com/haproxytech/dataplaneapi/operations)
>     golang(github.com/haproxytech/dataplaneapi/operations/acl)
>     golang(github.com/haproxytech/dataplaneapi/operations/backend)
>     golang(github.com/haproxytech/dataplaneapi/operations/backend_switching_rule)
>     golang(github.com/haproxytech/dataplaneapi/operations/bind)
>     golang(github.com/haproxytech/dataplaneapi/operations/configuration)
>     golang(github.com/haproxytech/dataplaneapi/operations/defaults)
>     golang(github.com/haproxytech/dataplaneapi/operations/discovery)
>     golang(github.com/haproxytech/dataplaneapi/operations/filter)
>     golang(github.com/haproxytech/dataplaneapi/operations/frontend)
>     golang(github.com/haproxytech/dataplaneapi/operations/global)
>     golang(github.com/haproxytech/dataplaneapi/operations/http_request_rule)
>     golang(github.com/haproxytech/dataplaneapi/operations/http_response_rule)
>     golang(github.com/haproxytech/dataplaneapi/operations/information)
>     golang(github.com/haproxytech/dataplaneapi/operations/log_target)
>     golang(github.com/haproxytech/dataplaneapi/operations/reloads)
>     golang(github.com/haproxytech/dataplaneapi/operations/server)
>     golang(github.com/haproxytech/dataplaneapi/operations/server_switching_rule)
>     golang(github.com/haproxytech/dataplaneapi/operations/sites)
>     golang(github.com/haproxytech/dataplaneapi/operations/specification)
>     golang(github.com/haproxytech/dataplaneapi/operations/stats)
>     golang(github.com/haproxytech/dataplaneapi/operations/stick_rule)
>     golang(github.com/haproxytech/dataplaneapi/operations/tcp_request_rule)
>     golang(github.com/haproxytech/dataplaneapi/operations/tcp_response_rule)
>     golang(github.com/haproxytech/dataplaneapi/operations/transactions)
>     golang-github-haproxytech-dataplaneapi-devel
>     golang-ipath(github.com/haproxytech/dataplaneapi)
> 
> golang-github-haproxytech-dataplaneapi-debuginfo:
>     debuginfo(build-id)
>     golang-github-haproxytech-dataplaneapi-debuginfo
>     golang-github-haproxytech-dataplaneapi-debuginfo(x86-64)
> 
> golang-github-haproxytech-dataplaneapi-debugsource:
>     golang-github-haproxytech-dataplaneapi-debugsource
>     golang-github-haproxytech-dataplaneapi-debugsource(x86-64)
> 
> 
> 
> Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
> Command line :/usr/bin/fedora-review -b 1773720 -L ~/git/haproxytech/RPMS -v
> Buildroot used: fedora-rawhide-x86_64
> Active plugins: Generic, Shell-api
> Disabled plugins: C/C++, Java, Perl, Ocaml, Python, Haskell, SugarActivity, PHP, fonts, R
> Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH
> 
> Built with local dependencies:
>     ~/git/haproxytech/RPMS/golang-github-gehirninc-crypt-devel-0-0.2.20200214git6c0105a.fc31.noarch.rpm
>     ~/git/haproxytech/RPMS/golang-github-haproxytech-client-native-devel-1.2.6-2.fc31.noarch.rpm
>     ~/git/haproxytech/RPMS/golang-github-haproxytech-config-parser-devel-1.2.0-1.fc31.noarch.rpm
>     ~/git/haproxytech/RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm
>     ~/git/haproxytech/RPMS/golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-5.fc31.x86_64.rpm
>     ~/git/haproxytech/RPMS/golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-5.fc31.x86_64.rpm
>     ~/git/haproxytech/RPMS/golang-github-haproxytech-dataplaneapi-devel-1.2.4-5.fc31.noarch.rpm
>     ~/git/haproxytech/RPMS/golang-github-haproxytech-models-devel-1.2.4-2.fc31.noarch.rpm

Comment 7 Brandon Perkins 2020-03-04 21:07:01 UTC
Spec URL: https://raw.githubusercontent.com/bdperkin/haproxytech/master/SPECS/golang-github-haproxytech-dataplaneapi.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/bdperkin/haproxytech/fedora-31-x86_64/01284546-golang-github-haproxytech-dataplaneapi/golang-github-haproxytech-dataplaneapi-1.2.4-6.fc31.src.rpm
Successful copr build: https://download.copr.fedorainfracloud.org/results/bdperkin/haproxytech/fedora-31-x86_64/01284546-golang-github-haproxytech-dataplaneapi/

Changelog:
* Wed Mar 04 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-6
- Use global instead of define macro
- Remove defattr macro that is not needed

* Mon Mar 02 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-5
- Clean changelog

* Thu Nov 21 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-4
- Suggest logrotate and fix logrotate configuration

* Wed Nov 20 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-3
- Add man page

* Wed Nov 13 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-2
- Implement systemd

* Wed Nov 13 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-1
- Initial package

Comment 8 Brandon Perkins 2020-03-04 21:27:28 UTC
(In reply to Brandon Perkins from comment #6)

> > [ ]: Each %files section contains %defattr if rpm < 4.4
> >      Note: %defattr present but not needed
> 
> Fixed with 1.2.4-6.
> 
> 

Fixed, but there is no line for this in the new review report.

$ grep %defattr SPECS/golang-github-haproxytech-dataplaneapi.spec

> > [ ]: Spec use %global instead of %define unless justified.
> >      Note: %define requiring justification: %define gorepo dataplaneapi,
> >      %define haproxy_user haproxy, %define haproxy_group %{haproxy_user},
> >      %define haproxy_homedir %{_localstatedir}/lib/haproxy
> 
> Fixed with 1.2.4-6.
> 
> 

Fixed:
[x]: Spec use %global instead of %define unless justified.

$ grep -E "%(global|define)" SPECS/golang-github-haproxytech-dataplaneapi.spec 
%global gorepo          dataplaneapi
%global haproxy_user    haproxy
%global haproxy_group   %{haproxy_user}
%global haproxy_homedir %{_localstatedir}/lib/haproxy
%global _hardened_build 1
%global goipath         github.com/haproxytech/dataplaneapi
%global common_description %{expand:
%global golicenses      LICENSE
%global godocs          README.md CONTRIBUTING.md

Comment 9 Ryan O'Hara 2020-04-13 18:50:45 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed



===== MUST items =====

Generic:
[ ]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.

- ASL 2.0

[ ]: License field in the package spec file matches the actual license.
     Note: There is no build directory. Running licensecheck on vanilla
     upstream sources. Licenses found: "Unknown or generated". 4 files have
     unknown license. Detailed output of licensecheck in
     /home/rohara/1773720-golang-github-haproxytech-
     dataplaneapi/licensecheck.txt

- The source contains LICENSE file containig Apache License 2.0.

[ ]: License file installed when any subpackage combination is installed.

- The license is definitely installed with the regular rpm and/or the -devel package. Does this requirement also apply to debuginfo and debugsource packages? I'm going to assume not.

[ ]: Package must own all directories that it creates.
     Note: Directories without known owners: /etc/logrotate.d

- I don't think this is optional. Having the "suggests" line is the spec seems ok, but this package is creating a directory with no owner.

[ ]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by:

- This seems like an issue with all Go modules, as mentioned above.

[ ]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries without FPC exception.
[ ]: Changelog in prescribed format.

- All good.

[ ]: 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.
[ ]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 40960 bytes in 4 files.
[ ]: Package complies to the Packaging Guidelines

- All good.

[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 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]: %config files are marked noreplace or the reason is justified.
[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 must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[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]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in golang-github-haproxytech-
     dataplaneapi
[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 golang-
     github-haproxytech-dataplaneapi-devel

- Can we do this? I know upstream is versioning the releases of the various dataplaneapi components. I'm not sure if this works for go packages.

[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.

- No issues above. Latest version is packaged and there is no upstream gpg key to use for verify.

[ ]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
     files.

- All good.

[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.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[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]: 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: golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.x86_64.rpm
          golang-github-haproxytech-dataplaneapi-devel-1.2.4-6.fc33.noarch.rpm
          golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-6.fc33.x86_64.rpm
          golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-6.fc33.x86_64.rpm
          golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.src.rpm
golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
5 packages and 0 specfiles checked; 1 errors, 1 warnings.




Rpmlint (debuginfo)
-------------------
Checking: golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-6.fc33.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LC_CTYPE = "C.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LC_CTYPE = "C.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
golang-github-haproxytech-dataplaneapi.x86_64: W: invalid-url URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name or service not known>
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: W: invalid-url URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name or service not known>
golang-github-haproxytech-dataplaneapi-debuginfo.x86_64: W: invalid-url URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name or service not known>
golang-github-haproxytech-dataplaneapi-devel.noarch: W: invalid-url URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name or service not known>
golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
4 packages and 0 specfiles checked; 1 errors, 5 warnings.

- I'd love to fix the URL issue since we've seen that in every package we've reviewed for the dataplaneapi effort. Probably more important is the error regarding the description line is too long.

# rpm -qip golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-6.fc33.x86_64.rpm
Name        : golang-github-haproxytech-dataplaneapi-debugsource
Version     : 1.2.4
Release     : 6.fc33
Architecture: x86_64
Install Date: (not installed)
Group       : Development/Debug
Size        : 2785503
License     : ASL 2.0
Signature   : (none)
Source RPM  : golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.src.rpm
Build Date  : Mon 13 Apr 2020 01:20:34 PM CDT
Build Host  : wilco
URL         : https://github.com/haproxytech/dataplaneapi
Summary     : Debug sources for package golang-github-haproxytech-dataplaneapi
Description :
This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
Debug sources are useful when developing applications that use this
package or when debugging this package.

- So that looks too long:

# echo "This package provides debug sources for package golang-github-haproxytech-dataplaneapi." | wc -c
88

- Can we shorten this? rpmlint sees this as an error.


Source checksums
----------------
https://github.com/haproxytech/dataplaneapi/archive/v1.2.4/dataplaneapi-1.2.4.tar.gz :
  CHECKSUM(SHA256) this package     : e1791a5475485cb7520d5102509614d072781fc576481eca128e96607c43e12c
  CHECKSUM(SHA256) upstream package : e1791a5475485cb7520d5102509614d072781fc576481eca128e96607c43e12c


Requires
--------
golang-github-haproxytech-dataplaneapi (rpmlib, GLIBC filtered):
    /bin/sh
    config(golang-github-haproxytech-dataplaneapi)
    haproxy
    libc.so.6()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)
    systemd

golang-github-haproxytech-dataplaneapi-devel (rpmlib, GLIBC filtered):
    go-filesystem
    golang(github.com/GehirnInc/crypt)
    golang(github.com/GehirnInc/crypt/md5_crypt)
    golang(github.com/GehirnInc/crypt/sha256_crypt)
    golang(github.com/GehirnInc/crypt/sha512_crypt)
    golang(github.com/docker/go-units)
    golang(github.com/go-openapi/errors)
    golang(github.com/go-openapi/loads)
    golang(github.com/go-openapi/runtime)
    golang(github.com/go-openapi/runtime/flagext)
    golang(github.com/go-openapi/runtime/middleware)
    golang(github.com/go-openapi/runtime/security)
    golang(github.com/go-openapi/spec)
    golang(github.com/go-openapi/strfmt)
    golang(github.com/go-openapi/swag)
    golang(github.com/go-openapi/validate)
    golang(github.com/haproxytech/client-native)
    golang(github.com/haproxytech/client-native/configuration)
    golang(github.com/haproxytech/client-native/runtime)
    golang(github.com/haproxytech/config-parser)
    golang(github.com/haproxytech/config-parser/types)
    golang(github.com/haproxytech/models)
    golang(github.com/jessevdk/go-flags)
    golang(github.com/rs/cors)
    golang(github.com/shirou/gopsutil/host)
    golang(github.com/shirou/gopsutil/mem)
    golang(github.com/sirupsen/logrus)
    golang(golang.org/x/net/netutil)
    golang(golang.org/x/sys/unix)

golang-github-haproxytech-dataplaneapi-debuginfo (rpmlib, GLIBC filtered):

golang-github-haproxytech-dataplaneapi-debugsource (rpmlib, GLIBC filtered):



Provides
--------
golang-github-haproxytech-dataplaneapi:
    config(golang-github-haproxytech-dataplaneapi)
    golang-github-haproxytech-dataplaneapi
    golang-github-haproxytech-dataplaneapi(x86-64)

golang-github-haproxytech-dataplaneapi-devel:
    golang(github.com/haproxytech/dataplaneapi)
    golang(github.com/haproxytech/dataplaneapi/adapters)
    golang(github.com/haproxytech/dataplaneapi/handlers)
    golang(github.com/haproxytech/dataplaneapi/haproxy)
    golang(github.com/haproxytech/dataplaneapi/misc)
    golang(github.com/haproxytech/dataplaneapi/operations)
    golang(github.com/haproxytech/dataplaneapi/operations/acl)
    golang(github.com/haproxytech/dataplaneapi/operations/backend)
    golang(github.com/haproxytech/dataplaneapi/operations/backend_switching_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/bind)
    golang(github.com/haproxytech/dataplaneapi/operations/configuration)
    golang(github.com/haproxytech/dataplaneapi/operations/defaults)
    golang(github.com/haproxytech/dataplaneapi/operations/discovery)
    golang(github.com/haproxytech/dataplaneapi/operations/filter)
    golang(github.com/haproxytech/dataplaneapi/operations/frontend)
    golang(github.com/haproxytech/dataplaneapi/operations/global)
    golang(github.com/haproxytech/dataplaneapi/operations/http_request_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/http_response_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/information)
    golang(github.com/haproxytech/dataplaneapi/operations/log_target)
    golang(github.com/haproxytech/dataplaneapi/operations/reloads)
    golang(github.com/haproxytech/dataplaneapi/operations/server)
    golang(github.com/haproxytech/dataplaneapi/operations/server_switching_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/sites)
    golang(github.com/haproxytech/dataplaneapi/operations/specification)
    golang(github.com/haproxytech/dataplaneapi/operations/stats)
    golang(github.com/haproxytech/dataplaneapi/operations/stick_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/tcp_request_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/tcp_response_rule)
    golang(github.com/haproxytech/dataplaneapi/operations/transactions)
    golang-github-haproxytech-dataplaneapi-devel
    golang-ipath(github.com/haproxytech/dataplaneapi)

golang-github-haproxytech-dataplaneapi-debuginfo:
    debuginfo(build-id)
    golang-github-haproxytech-dataplaneapi-debuginfo
    golang-github-haproxytech-dataplaneapi-debuginfo(x86-64)

golang-github-haproxytech-dataplaneapi-debugsource:
    golang-github-haproxytech-dataplaneapi-debugsource
    golang-github-haproxytech-dataplaneapi-debugsource(x86-64)



Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
Command line :/usr/bin/fedora-review -L /home/rohara/tmp/rpms/ -b 1773720
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api
Disabled plugins: Perl, Python, C/C++, fonts, Ocaml, PHP, Java, SugarActivity, R, Haskell

Built with local dependencies:
    /home/rohara/tmp/rpms/golang-github-haproxytech-config-parser-devel-1.2.0-1.fc33.noarch.rpm
    /home/rohara/tmp/rpms/golang-github-haproxytech-client-native-devel-1.2.6-2.fc33.noarch.rpm
    /home/rohara/tmp/rpms/golang-github-haproxytech-models-devel-1.2.4-2.fc33.noarch.rpm
    /home/rohara/tmp/rpms/golang-github-gehirninc-crypt-devel-0-0.2.20191113git6c0105a.fc33.noarch.rpm

Comment 10 Brandon Perkins 2020-04-13 22:50:03 UTC
(In reply to Ryan O'Hara from comment #9)
> 
> [ ]: License file installed when any subpackage combination is installed.
> 
> - The license is definitely installed with the regular rpm and/or the -devel
> package. Does this requirement also apply to debuginfo and debugsource
> packages? I'm going to assume not.
> 

So, this is a great question that, AFAICT has not been resolved:

https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/V3JDB74XPJQVNWO7SJVVDYFP3AR6GQD4/

and I don't get clarity from:

https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing
or
https://docs.fedoraproject.org/en-US/packaging-guidelines/Debuginfo/

I would say that we defer to the auto-generation done by the macros which appears to not include it.

> [ ]: Package must own all directories that it creates.
>      Note: Directories without known owners: /etc/logrotate.d
> 
> - I don't think this is optional. Having the "suggests" line is the spec
> seems ok, but this package is creating a directory with no owner.
> 

The /etc/logrotate.d directory is owned by the 'logrotate' package:

$ rpm -qf /etc/logrotate.d
logrotate-3.15.1-1.fc31.x86_64

This issue is properly satisfied by the logrotate 'Suggests' in the RPM:

$ grep ^Suggests: SPECS/golang-github-haproxytech-dataplaneapi.spec 
Suggests: logrotate
$ rpm -qp --suggests RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm 
logrotate

To me, it's better to have a possible orphan directory than to have this package become the owner of the directory.  And, we certainly wouldn't be the first to go down this path.  Quick query shows me:

[bperkins@bperkins haproxytech]$ dnf repoquery --queryformat="%{NAME}" --whatsuggests logrotate
mariadb-server
plymouth

However, many more do the ownership thing (which just seems wrong to me):

[bperkins@bperkins haproxytech]$ dnf repoquery --queryformat="%{NAME}" --whatprovides /etc/logrotate.d
bes
copr-dist-git
gap-pkg-scscp
gerbera
kdm-settings
lightdm
logrotate
macromilter
openqa
ppp
psad
samba-common
sssd-common
yast2-filesystem

Or, we could go down what I *really* think is wrong and just ignore the issue completely (which is by far the most popular path).

I'm personally inclined to do what I did, but I can certainly change it.

> [ ]: Package does not own files or directories owned by other packages.
>      Note: Dirs in package are owned also by:
> 
> - This seems like an issue with all Go modules, as mentioned above.
> 

> [ ]: Fully versioned dependency in subpackages if applicable.
>      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in golang-
>      github-haproxytech-dataplaneapi-devel
> 
> - Can we do this? I know upstream is versioning the releases of the various
> dataplaneapi components. I'm not sure if this works for go packages.
> 

Using the %gopkg macro, I don't see how this could be accomplished.  This really doesn't seem like a critical requirement to me.

> 
> Rpmlint
> -------
> Checking: golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.x86_64.rpm
>          
> golang-github-haproxytech-dataplaneapi-devel-1.2.4-6.fc33.noarch.rpm
>          
> golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-6.fc33.x86_64.rpm
>          
> golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-6.fc33.x86_64.rpm
>           golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.src.rpm
> golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir
> /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
> golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E:
> description-line-too-long C This package provides debug sources for package
> golang-github-haproxytech-dataplaneapi.
> 5 packages and 0 specfiles checked; 1 errors, 1 warnings.
> 
> 
> 
> 
> Rpmlint (debuginfo)
> -------------------
> Checking:
> golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-6.fc33.x86_64.rpm
> 1 packages and 0 specfiles checked; 0 errors, 0 warnings.
> 
> 
> 
> 
> 
> Rpmlint (installed packages)
> ----------------------------
> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
>         LANGUAGE = (unset),
>         LC_ALL = (unset),
>         LC_CTYPE = "C.UTF-8",
>         LANG = "en_US.UTF-8"
>     are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").
> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
>         LANGUAGE = (unset),
>         LC_ALL = (unset),
>         LC_CTYPE = "C.UTF-8",
>         LANG = "en_US.UTF-8"
>     are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").
> golang-github-haproxytech-dataplaneapi.x86_64: W: invalid-url URL:
> https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name
> or service not known>
> golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E:
> description-line-too-long C This package provides debug sources for package
> golang-github-haproxytech-dataplaneapi.
> golang-github-haproxytech-dataplaneapi-debugsource.x86_64: W: invalid-url
> URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2]
> Name or service not known>
> golang-github-haproxytech-dataplaneapi-debuginfo.x86_64: W: invalid-url URL:
> https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name
> or service not known>
> golang-github-haproxytech-dataplaneapi-devel.noarch: W: invalid-url URL:
> https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name
> or service not known>
> golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir
> /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
> 4 packages and 0 specfiles checked; 1 errors, 5 warnings.
> 
> - I'd love to fix the URL issue since we've seen that in every package we've
> reviewed for the dataplaneapi effort. Probably more important is the error
> regarding the description line is too long.

URL issue can be dealt with by running it semi-manually:

$ sudo mkdir -p /var/lib/mock/fedora-rawhide-x86_64/root/root/.config
$ echo "addFilter(r\"hidden-file-or-dir /usr/share/gocode/src/github\.com/.*/.*/.goipath$\")" > /tmp/rpmlint.config
$ sudo cp /tmp/rpmlint.config /var/lib/mock/fedora-rawhide-x86_64/root/root/.config/rpmlint
$ LANG=C.utf8 mock -q -r fedora-rawhide-x86_64 --no-bootstrap-chroot --no-cleanup-after --no-clean --enable-network --chroot -- rpmlint -f /root/.config/rpmlint golang-github-haproxytech-dataplaneapi golang-github-haproxytech-dataplaneapi-debuginfo golang-github-haproxytech-dataplaneapi-debugsource golang-github-haproxytech-dataplaneapi-devel
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
4 packages and 0 specfiles checked; 1 errors, 0 warnings.

However, it does still show the line too long problem.

> 
> # rpm -qip
> golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-6.fc33.x86_64.rpm
> Name        : golang-github-haproxytech-dataplaneapi-debugsource
> Version     : 1.2.4
> Release     : 6.fc33
> Architecture: x86_64
> Install Date: (not installed)
> Group       : Development/Debug
> Size        : 2785503
> License     : ASL 2.0
> Signature   : (none)
> Source RPM  : golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.src.rpm
> Build Date  : Mon 13 Apr 2020 01:20:34 PM CDT
> Build Host  : wilco
> URL         : https://github.com/haproxytech/dataplaneapi
> Summary     : Debug sources for package
> golang-github-haproxytech-dataplaneapi
> Description :
> This package provides debug sources for package
> golang-github-haproxytech-dataplaneapi.
> Debug sources are useful when developing applications that use this
> package or when debugging this package.
> 
> - So that looks too long:
> 
> # echo "This package provides debug sources for package
> golang-github-haproxytech-dataplaneapi." | wc -c
> 88
> 
> - Can we shorten this? rpmlint sees this as an error.
> 

Because of using the %gopkg macro, we're kind of stuck with what it creates.  Outside of modifying the macro (which is a non-starter), the only thing that could be done would be to shorten the package name, which is also a non-starter.  I think it's an error we just have to live with.  Unless you have any other thoughts.

Comment 11 Ryan O'Hara 2020-04-14 16:08:50 UTC
(In reply to Brandon Perkins from comment #10)
> (In reply to Ryan O'Hara from comment #9)
> > 
> > [ ]: License file installed when any subpackage combination is installed.
> > 
> > - The license is definitely installed with the regular rpm and/or the -devel
> > package. Does this requirement also apply to debuginfo and debugsource
> > packages? I'm going to assume not.
> > 
> 
> So, this is a great question that, AFAICT has not been resolved:
> 
> https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/
> thread/V3JDB74XPJQVNWO7SJVVDYFP3AR6GQD4/
> 
> and I don't get clarity from:
> 
> https://fedoraproject.org/wiki/Packaging:
> LicensingGuidelines#Subpackage_Licensing
> or
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Debuginfo/
> 
> I would say that we defer to the auto-generation done by the macros which
> appears to not include it.

OK. Fair enough.

> > [ ]: Package must own all directories that it creates.
> >      Note: Directories without known owners: /etc/logrotate.d
> > 
> > - I don't think this is optional. Having the "suggests" line is the spec
> > seems ok, but this package is creating a directory with no owner.
> > 
> 
> The /etc/logrotate.d directory is owned by the 'logrotate' package:
> 
> $ rpm -qf /etc/logrotate.d
> logrotate-3.15.1-1.fc31.x86_64
> 
> This issue is properly satisfied by the logrotate 'Suggests' in the RPM:
> 
> $ grep ^Suggests: SPECS/golang-github-haproxytech-dataplaneapi.spec 
> Suggests: logrotate
> $ rpm -qp --suggests
> RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm 
> logrotate
> 
> To me, it's better to have a possible orphan directory than to have this
> package become the owner of the directory.  And, we certainly wouldn't be
> the first to go down this path.  Quick query shows me:
> 
> [bperkins@bperkins haproxytech]$ dnf repoquery --queryformat="%{NAME}"
> --whatsuggests logrotate
> mariadb-server
> plymouth
> 
> However, many more do the ownership thing (which just seems wrong to me):
> 
> [bperkins@bperkins haproxytech]$ dnf repoquery --queryformat="%{NAME}"
> --whatprovides /etc/logrotate.d
> bes
> copr-dist-git
> gap-pkg-scscp
> gerbera
> kdm-settings
> lightdm
> logrotate
> macromilter
> openqa
> ppp
> psad
> samba-common
> sssd-common
> yast2-filesystem
> 
> Or, we could go down what I *really* think is wrong and just ignore the
> issue completely (which is by far the most popular path).
> 
> I'm personally inclined to do what I did, but I can certainly change it.

Another option would be to *require* logrotate as a dependency. Thoughts? I'm on the fence with this one.

> > [ ]: Package does not own files or directories owned by other packages.
> >      Note: Dirs in package are owned also by:
> > 
> > - This seems like an issue with all Go modules, as mentioned above.
> > 
> 
> > [ ]: Fully versioned dependency in subpackages if applicable.
> >      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in golang-
> >      github-haproxytech-dataplaneapi-devel
> > 
> > - Can we do this? I know upstream is versioning the releases of the various
> > dataplaneapi components. I'm not sure if this works for go packages.
> > 
> 
> Using the %gopkg macro, I don't see how this could be accomplished.  This
> really doesn't seem like a critical requirement to me.

I know the above warning is complaining about about the -devel subpackage, but I am more curious if we can do something like this:

BuildRequires:  golang(github.com/haproxytech/config-parser) >= 1.2.0

Sorry, I should have been more specific. On a related note, I saw that the dataplaneapi spec file has this requirement:

Requires:         haproxy >= 1.9

We might want to make that 2.0 unless we've tested this with 1.9 -- the API might have changed. Plus, I never put 1.9 in Fedora.

> > 
> > Rpmlint
> > -------
> > Checking: golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.x86_64.rpm
> >          
> > golang-github-haproxytech-dataplaneapi-devel-1.2.4-6.fc33.noarch.rpm
> >          
> > golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-6.fc33.x86_64.rpm
> >          
> > golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-6.fc33.x86_64.rpm
> >           golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.src.rpm
> > golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir
> > /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
> > golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E:
> > description-line-too-long C This package provides debug sources for package
> > golang-github-haproxytech-dataplaneapi.
> > 5 packages and 0 specfiles checked; 1 errors, 1 warnings.
> > 
> > 
> > 
> > 
> > Rpmlint (debuginfo)
> > -------------------
> > Checking:
> > golang-github-haproxytech-dataplaneapi-debuginfo-1.2.4-6.fc33.x86_64.rpm
> > 1 packages and 0 specfiles checked; 0 errors, 0 warnings.
> > 
> > 
> > 
> > 
> > 
> > Rpmlint (installed packages)
> > ----------------------------
> > perl: warning: Setting locale failed.
> > perl: warning: Please check that your locale settings:
> >         LANGUAGE = (unset),
> >         LC_ALL = (unset),
> >         LC_CTYPE = "C.UTF-8",
> >         LANG = "en_US.UTF-8"
> >     are supported and installed on your system.
> > perl: warning: Falling back to the standard locale ("C").
> > perl: warning: Setting locale failed.
> > perl: warning: Please check that your locale settings:
> >         LANGUAGE = (unset),
> >         LC_ALL = (unset),
> >         LC_CTYPE = "C.UTF-8",
> >         LANG = "en_US.UTF-8"
> >     are supported and installed on your system.
> > perl: warning: Falling back to the standard locale ("C").
> > golang-github-haproxytech-dataplaneapi.x86_64: W: invalid-url URL:
> > https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name
> > or service not known>
> > golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E:
> > description-line-too-long C This package provides debug sources for package
> > golang-github-haproxytech-dataplaneapi.
> > golang-github-haproxytech-dataplaneapi-debugsource.x86_64: W: invalid-url
> > URL: https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2]
> > Name or service not known>
> > golang-github-haproxytech-dataplaneapi-debuginfo.x86_64: W: invalid-url URL:
> > https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name
> > or service not known>
> > golang-github-haproxytech-dataplaneapi-devel.noarch: W: invalid-url URL:
> > https://github.com/haproxytech/dataplaneapi <urlopen error [Errno -2] Name
> > or service not known>
> > golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir
> > /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
> > 4 packages and 0 specfiles checked; 1 errors, 5 warnings.
> > 
> > - I'd love to fix the URL issue since we've seen that in every package we've
> > reviewed for the dataplaneapi effort. Probably more important is the error
> > regarding the description line is too long.
> 
> URL issue can be dealt with by running it semi-manually:
> 
> $ sudo mkdir -p /var/lib/mock/fedora-rawhide-x86_64/root/root/.config
> $ echo "addFilter(r\"hidden-file-or-dir
> /usr/share/gocode/src/github\.com/.*/.*/.goipath$\")" > /tmp/rpmlint.config
> $ sudo cp /tmp/rpmlint.config
> /var/lib/mock/fedora-rawhide-x86_64/root/root/.config/rpmlint
> $ LANG=C.utf8 mock -q -r fedora-rawhide-x86_64 --no-bootstrap-chroot
> --no-cleanup-after --no-clean --enable-network --chroot -- rpmlint -f
> /root/.config/rpmlint golang-github-haproxytech-dataplaneapi
> golang-github-haproxytech-dataplaneapi-debuginfo
> golang-github-haproxytech-dataplaneapi-debugsource
> golang-github-haproxytech-dataplaneapi-devel
> golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E:
> description-line-too-long C This package provides debug sources for package
> golang-github-haproxytech-dataplaneapi.
> 4 packages and 0 specfiles checked; 1 errors, 0 warnings.
> 
> However, it does still show the line too long problem.
> 
> > 
> > # rpm -qip
> > golang-github-haproxytech-dataplaneapi-debugsource-1.2.4-6.fc33.x86_64.rpm
> > Name        : golang-github-haproxytech-dataplaneapi-debugsource
> > Version     : 1.2.4
> > Release     : 6.fc33
> > Architecture: x86_64
> > Install Date: (not installed)
> > Group       : Development/Debug
> > Size        : 2785503
> > License     : ASL 2.0
> > Signature   : (none)
> > Source RPM  : golang-github-haproxytech-dataplaneapi-1.2.4-6.fc33.src.rpm
> > Build Date  : Mon 13 Apr 2020 01:20:34 PM CDT
> > Build Host  : wilco
> > URL         : https://github.com/haproxytech/dataplaneapi
> > Summary     : Debug sources for package
> > golang-github-haproxytech-dataplaneapi
> > Description :
> > This package provides debug sources for package
> > golang-github-haproxytech-dataplaneapi.
> > Debug sources are useful when developing applications that use this
> > package or when debugging this package.
> > 
> > - So that looks too long:
> > 
> > # echo "This package provides debug sources for package
> > golang-github-haproxytech-dataplaneapi." | wc -c
> > 88
> > 
> > - Can we shorten this? rpmlint sees this as an error.
> > 
> 
> Because of using the %gopkg macro, we're kind of stuck with what it creates.
> Outside of modifying the macro (which is a non-starter), the only thing that
> could be done would be to shorten the package name, which is also a
> non-starter.  I think it's an error we just have to live with.  Unless you
> have any other thoughts.

I think at the very least we should file a bug against whatever is defining those macros and see if they can prevent this from happening.

Comment 12 Brandon Perkins 2020-04-14 19:15:02 UTC
(In reply to Ryan O'Hara from comment #11)
> (In reply to Brandon Perkins from comment #10)
> > (In reply to Ryan O'Hara from comment #9)
> > 
> > The /etc/logrotate.d directory is owned by the 'logrotate' package:
> > 
> > $ rpm -qf /etc/logrotate.d
> > logrotate-3.15.1-1.fc31.x86_64
> > 
> > This issue is properly satisfied by the logrotate 'Suggests' in the RPM:
> > 
> > $ grep ^Suggests: SPECS/golang-github-haproxytech-dataplaneapi.spec 
> > Suggests: logrotate
> > $ rpm -qp --suggests
> > RPMS/golang-github-haproxytech-dataplaneapi-1.2.4-5.fc31.x86_64.rpm 
> > logrotate
> > 
> > To me, it's better to have a possible orphan directory than to have this
> > package become the owner of the directory.  And, we certainly wouldn't be
> > the first to go down this path.  Quick query shows me:
> > 
> > [bperkins@bperkins haproxytech]$ dnf repoquery --queryformat="%{NAME}"
> > --whatsuggests logrotate
> > mariadb-server
> > plymouth
> > 
> > However, many more do the ownership thing (which just seems wrong to me):
> > 
> > [bperkins@bperkins haproxytech]$ dnf repoquery --queryformat="%{NAME}"
> > --whatprovides /etc/logrotate.d
> > bes
> > copr-dist-git
> > gap-pkg-scscp
> > gerbera
> > kdm-settings
> > lightdm
> > logrotate
> > macromilter
> > openqa
> > ppp
> > psad
> > samba-common
> > sssd-common
> > yast2-filesystem
> > 
> > Or, we could go down what I *really* think is wrong and just ignore the
> > issue completely (which is by far the most popular path).
> > 
> > I'm personally inclined to do what I did, but I can certainly change it.
> 
> Another option would be to *require* logrotate as a dependency. Thoughts?
> I'm on the fence with this one.
> 

Yeah, I thought about that as well.  When I reviewed the command run again, it is in fact logging by default (which HAProxy does not do by default).  So, log rotation in this case should be the default and not the exception.  I'll go ahead and make that change.

> > 
> > Using the %gopkg macro, I don't see how this could be accomplished.  This
> > really doesn't seem like a critical requirement to me.
> 
> I know the above warning is complaining about about the -devel subpackage,
> but I am more curious if we can do something like this:
> 
> BuildRequires:  golang(github.com/haproxytech/config-parser) >= 1.2.0
> 

I'm happy to make that change and I'll do it for client-native as well.

> Sorry, I should have been more specific. On a related note, I saw that the
> dataplaneapi spec file has this requirement:
> 
> Requires:         haproxy >= 1.9
> 
> We might want to make that 2.0 unless we've tested this with 1.9 -- the API
> might have changed. Plus, I never put 1.9 in Fedora.
> 

Will make that change.

> > 
> > Because of using the %gopkg macro, we're kind of stuck with what it creates.
> > Outside of modifying the macro (which is a non-starter), the only thing that
> > could be done would be to shorten the package name, which is also a
> > non-starter.  I think it's an error we just have to live with.  Unless you
> > have any other thoughts.
> 
> I think at the very least we should file a bug against whatever is defining
> those macros and see if they can prevent this from happening.

Bug entered as: https://bugzilla.redhat.com/show_bug.cgi?id=1823915

Comment 13 Brandon Perkins 2020-04-14 19:33:11 UTC
Spec URL: https://raw.githubusercontent.com/bdperkin/haproxytech/master/SPECS/golang-github-haproxytech-dataplaneapi.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/bdperkin/haproxytech/fedora-31-x86_64/01337934-golang-github-haproxytech-dataplaneapi/golang-github-haproxytech-dataplaneapi-1.2.4-7.fc31.src.rpm
Successful copr build: https://download.copr.fedorainfracloud.org/results/bdperkin/haproxytech/fedora-31-x86_64/01337934-golang-github-haproxytech-dataplaneapi/

Changelog:
* Tue Apr 14 14:27:35 EST 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-7
- Change haproxy requires to >= 2.0 as 1.9 was never packaged
- Require instead of Suggest logrotate due to logging by default
- Add specific versions for haproxytech BuildRequires

* Wed Mar 04 14:54:06 EST 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-6
- Use global instead of define macro
- Remove defattr macro that is not needed

* Mon Mar 02 15:30:56 EST 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-5
- Clean changelog

* Thu Nov 21 13:50:08 UTC 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-4
- Suggest logrotate and fix logrotate configuration

* Wed Nov 20 22:03:49 UTC 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-3
- Add man page

* Wed Nov 13 12:25:57 UTC 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-2
- Implement systemd

* Wed Nov 13 12:25:57 UTC 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-1
- Initial package

Comment 14 Brandon Perkins 2020-04-14 19:51:53 UTC
$ rpm -qp --requires golang-github-haproxytech-dataplaneapi-1.2.4-7.fc33.x86_64.rpm | grep ^haproxy
haproxy >= 2.0

$ rpm -qp --requires golang-github-haproxytech-dataplaneapi-1.2.4-7.fc33.x86_64.rpm | grep ^logrotate
logrotate

$ rpm -qp --requires golang-github-haproxytech-dataplaneapi-1.2.4-7.fc33.src.rpm | grep haproxytech
golang(github.com/haproxytech/client-native) >= 1.2.6
golang(github.com/haproxytech/client-native/configuration) >= 1.2.6
golang(github.com/haproxytech/client-native/runtime) >= 1.2.6
golang(github.com/haproxytech/config-parser) >= 1.2.0
golang(github.com/haproxytech/config-parser/types) >= 1.2.0
golang(github.com/haproxytech/models) >= 1.2.4

$ LANG=C.utf8 rpmlint *.rpm
golang-github-haproxytech-dataplaneapi-debugsource.x86_64: E: description-line-too-long C This package provides debug sources for package golang-github-haproxytech-dataplaneapi.
golang-github-haproxytech-dataplaneapi-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/haproxytech/dataplaneapi/.goipath
5 packages and 0 specfiles checked; 1 errors, 1 warnings.

Comment 15 Brandon Perkins 2020-04-27 22:57:24 UTC
Spec URL: https://raw.githubusercontent.com/bdperkin/haproxytech/master/SPECS/golang-github-haproxytech-dataplaneapi.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/bdperkin/haproxytech/fedora-31-x86_64/01352909-golang-github-haproxytech-dataplaneapi/golang-github-haproxytech-dataplaneapi-2.0.0-1.fc31.src.rpm
Successful copr build: https://download.copr.fedorainfracloud.org/results/bdperkin/haproxytech/fedora-31-x86_64/01352909-golang-github-haproxytech-dataplaneapi/

Changelog:
* Mon Apr 27 2020 Brandon Perkins <bperkins@redhat.com> - 2.0.0-1
- Upgrade to version 2.0.0

* Wed Apr 15 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.5-1
- Update to version 1.2.5

* Tue Apr 14 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-7
- Change haproxy requires to >= 2.0 as 1.9 was never packaged
- Add specific versions for haproxytech BuildRequires

* Wed Mar 04 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-6
- Use global instead of define macro
- Remove defattr macro that is not needed

* Mon Mar 02 2020 Brandon Perkins <bperkins@redhat.com> - 1.2.4-5
- Clean changelog

* Thu Nov 21 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-4
- Suggest logrotate and fix logrotate configuration

* Wed Nov 20 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-3
- Add man page

* Wed Nov 13 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-2
- Implement systemd

* Wed Nov 13 2019 Brandon Perkins <bperkins@redhat.com> - 1.2.4-1
- Initial package

Comment 16 Brandon Perkins 2020-04-28 20:09:48 UTC
As of now, dataplaneapi is not functional as reported at:

https://github.com/haproxytech/dataplaneapi/issues/85

Comment 17 Brandon Perkins 2020-04-29 14:49:35 UTC
Upstream has fixed the issue with:

https://github.com/haproxytech/dataplaneapi/pull/86

but there is not a release for it yet.  This is blocked until a new version is released.

Comment 19 Brandon Perkins 2020-05-08 22:30:55 UTC
New version has been released and I can verify that v2.0.1 is functional.  This should be unblocked now.

Comment 22 Gwyn Ciesla 2020-06-02 00:57:18 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/golang-github-haproxytech-dataplaneapi

Comment 23 Brandon Perkins 2020-06-05 15:29:24 UTC
CLOSED. In Rawhide (f33) and in progress for f32.


Note You need to log in before you can comment on or make changes to this bug.