Bug 5527

Summary: Review request: wf-recorder - Screen recorder for wlroots-based compositors eg swaywm
Product: Package Reviews Reporter: Bob Hepple <bob.hepple>
Component: Review RequestAssignee: leigh scott <leigh123linux>
Status: RESOLVED FIXED    
Severity: enhancement CC: alebastr, ferdnyc, leigh123linux, rpmfusion-package-review, vascom2
Priority: P1 Flags: leigh123linux: fedora-review+
Version: Current   
Hardware: x86_64   
OS: GNU/Linux   
namespace: free
Attachments: wf-recorder-0.2-1.src.rpm
Incorporate ppc64le compile error fix in the spec file

Description Bob Hepple 2020-02-13 02:25:39 CET
Created attachment 2139 [details]
wf-recorder-0.2-1.src.rpm

I am seeking a sponsor (I am not an existing Fedora sponsored packager or an RPM Fusion sponsored packager)

spec file: http://bhepple.com/doku/doku.php?id=wf-recorder
SRPM: http://bhepple.com/doku/lib/exe/fetch.php?media=wf-recorder-0.2-1.src.rpm

wf-recorder is a utility program for screen recording of wlroots-based
compositors (more specifically, those that support wlr-screencopy-v1
and xdg-output). Its dependencies are ffmpeg, wayland-client and
wayland-protocols.

It is not eligible in fedora as it has RPMfusion dependencies.

$ rpmlint ~/rpmbuild/SRPMS/wf-recorder-0.2-1.src.rpm 
wf-recorder.src: W: spelling-error Summary(en_US) wlroots -> roots
wf-recorder.src: W: spelling-error Summary(en_US) eg -> eh, e, g
wf-recorder.src: W: spelling-error Summary(en_US) swaywm -> sway
wf-recorder.src: W: spelling-error %description -l en_US wlroots -> roots
wf-recorder.src: W: spelling-error %description -l en_US wlr -> war, SLR
wf-recorder.src: W: spelling-error %description -l en_US screencopy -> screen copy, screen-copy, screenplay
wf-recorder.src: W: spelling-error %description -l en_US xdg -> bldg
wf-recorder.src: W: spelling-error %description -l en_US ffmpeg -> MPEG
wf-recorder.src: W: spelling-error %description -l en_US repo -> rope, rep, reps
wf-recorder.src: W: spelling-error %description -l en_US dnf -> def, inf, DNA
wf-recorder.src: W: spelling-error %description -l en_US noarch -> no arch, no-arch, monarch
wf-recorder.src: E: description-line-too-long C dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E 31).noarch.rpm
wf-recorder.src:31: W: rpm-buildroot-usage %build meson build --prefix=%{buildroot}/usr --buildtype=release
1 packages and 0 specfiles checked; 1 errors, 12 warnings.

Installation instruction line cannot be reformatted.

$ rpmlint ~/rpmbuild/RPMS/x86_64/wf-recorder-0.2-1.x86_64.rpm wf-recorder.x86_64: W: spelling-error Summary(en_US) wlroots -> roots
wf-recorder.x86_64: W: spelling-error Summary(en_US) eg -> eh, e, g
wf-recorder.x86_64: W: spelling-error Summary(en_US) swaywm -> sway
wf-recorder.x86_64: W: spelling-error %description -l en_US wlroots -> roots
wf-recorder.x86_64: W: spelling-error %description -l en_US wlr -> war, SLR
wf-recorder.x86_64: W: spelling-error %description -l en_US screencopy -> screen copy, screen-copy, screenplay
wf-recorder.x86_64: W: spelling-error %description -l en_US xdg -> bldg
wf-recorder.x86_64: W: spelling-error %description -l en_US ffmpeg -> MPEG
wf-recorder.x86_64: W: spelling-error %description -l en_US repo -> rope, rep, reps
wf-recorder.x86_64: W: spelling-error %description -l en_US dnf -> def, inf, DNA
wf-recorder.x86_64: W: spelling-error %description -l en_US noarch -> no arch, no-arch, monarch
wf-recorder.x86_64: E: description-line-too-long C dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E 31).noarch.rpm
wf-recorder.x86_64: W: unstripped-binary-or-object /usr/bin/wf-recorder
1 packages and 0 specfiles checked; 1 errors, 12 warnings.

Installation instruction line cannot be reformatted.

This is my first RPMfusion contribution.
Comment 1 leigh scott 2020-02-13 17:44:52 CET
You need to use the meson macros

change this

meson build --prefix=%{buildroot}/usr --buildtype=release

to 

%meson


change this

ninja -C build

to

%meson_build


and this 

ninja -C build install

to

%meson_install




Remove all the requires as it should be auto generated


Requires: alsa-lib bzip2-libs cairo cairo-gobject dbus-libs expat ffmpeg-libs flac-libs fontconfig freetype fribidi gdk-pixbuf2 glib2 glibc gmp gnutls graphite2 gsm harfbuzz intel-mediasdk jack-audio-connection-kit keyutils-libs krb5-libs lame-libs libaom libass libasyncns libavdevice libblkid libbluray libcap libcdio libcdio-paranoia libcom_err libcroco libdatrie libdav1d libdrm libffi libgcc libgcrypt libglvnd libglvnd-glx libgomp libgpg-error libICE libidn2 libjpeg-turbo libmount libogg libpng librsvg2 libselinux libSM libsndfile libssh libstdc++ libtasn1 libthai libtheora libunistring libuuid libv4l libva libvdpau libvmaf libvorbis libvpx libwayland-client libX11 libX11-xcb libXau libxcb libXext libXi libxml2 libXrender libXtst lz4-libs nettle numactl-libs ocl-icd openal-soft opencore-amr openjpeg2 openssl-libs opus p11-kit pango pcre2 pcre pixman pugixml pulseaudio-libs SDL2 soxr speex systemd-libs vid.stab vo-amrwbenc x264-libs x265-libs xvidcore xz-libs zimg zlib zvbi


and remove all the non -devel buildrequires


BuildRequires: meson gcc-c++ wayland-devel mesa-libEGL-devel mesa-libGLES-devel mesa-dri-drivers xorg-x11-server-Xwayland libdrm-devel libgbm-devel libxkbcommon-devel libudev-devel pixman-devel libinput-devel libevdev-devel systemd-devel cairo-devel libpcap-devel json-c-devel pam-devel pango-devel pcre-devel gdk-pixbuf2-devel wayland-protocols-devel opencl-headers opencl-utils libwayland-client ffmpeg-devel opencl-utils opencl-headers opencl-filesystem mesa-libOpenCL pulseaudio-libs pulseaudio-libs-devel pulseaudio-utils scdoc


with the exception of meson gcc-c++ scdoc and opencl-headers
Also use a line for each buildrequires i.e:

BuildRequires: meson
BuildRequires: gcc-c++


also remove this line as it's a review blocker, the package won't be acceptable with it

%global debug_package %{nil}


shorten the source line from

Source0:  https://github.com/ammen99/wf-recorder/archive/v0.2.tar.gz#/%{name}-%{version}.tar.gz

to

Source0:  %{url}/archive/v%{version}/%{name}-%{version}.tar.gz


and remove the .gz from man

%{_mandir}/man1/%{name}.1.gz


to

%{_mandir}/man1/%{name}.1.*


As for the description, please remove this as it's not needed


Make sure you have RPMfusion repo installed:

dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
Comment 2 leigh scott 2020-02-13 19:20:59 CET
The buildrequires are bloated, please reduce to


BuildRequires: gcc-c++
BuildRequires: ffmpeg-devel
BuildRequires: meson
BuildRequires: ocl-icd-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: scdoc
BuildRequires: wayland-devel
BuildRequires: wayland-protocols-devel


As for your man file hacks, non of them are required so remove

scdoc < manpage/wf-recorder.1.scd | gzip -c > manpage/%{name}.1.gz


and



mkdir -p %{buildroot}/%{_mandir}/man1
install -p -m 644 manpage/%{name}.1.gz %{buildroot}/%{_mandir}/man1/%{name}.1.gz

rpmbuild compresses the manpage to *.gz atomically 

Installing wf-recorder.1 to /builddir/build/BUILDROOT/wf-recorder-0.2-1.x86_64/usr/share/man/man1
Comment 3 leigh scott 2020-02-13 19:30:35 CET
(In reply to leigh scott from comment #2)
 
> rpmbuild compresses the manpage to *.gz atomically 
> 


atomically=automatically
Comment 4 Bob Hepple 2020-02-13 23:35:49 CET
Thanks for your help with this, Leigh.

I've been working through your changes and have a couple of questions / problems that I haven't been able to resolve:

1. The new 'BuildRequires: ocl-icd-devel' was not needed before - I was able to build without it before and had to install it to continue. OK, maybe it's needed by the new %meson macros etc so I'll roll with it for now.

2. The %meson macro fails:

Found pkg-config: /usr/bin/pkg-config (1.6.3)
Run-time dependency wayland-client found: YES 1.17.0
Run-time dependency wayland-protocols found: YES 1.18
Run-time dependency opencl found: YES 2.2
Run-time dependency libavutil found: YES 56.31.100
Run-time dependency libavcodec found: YES 58.54.100
Run-time dependency libavformat found: YES 58.29.100
Run-time dependency libavdevice found: YES 58.8.100
Run-time dependency libswscale found: YES 5.5.100
Run-time dependency libswresample found: YES 3.5.100
Run-time dependency threads found: YES 
Run-time dependency libpulse-simple found: YES 13.0-rebootstrapped
Configuring config.h using configuration
Found pkg-config: /usr/bin/pkg-config (1.6.3)
Found CMake: /usr/bin/cmake (3.16.2)
Build-time dependency scdoc found: NO (tried pkgconfig and cmake)

meson.build:51:0: ERROR: Dependency "scdoc" not found, tried pkgconfig and cmake

My latest specfile is:

Name:     wf-recorder
Version:  0.2
Release:  1
Summary:  Screen recorder for wlroots-based compositors eg swaywm
License:  MIT
URL:      https://github.com/ammen99/wf-recorder

# use this to fetch the source: spectool -g wf-recorder.spec
Source0:  %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
%global debug_package %{nil}

BuildRequires: gcc-c++
BuildRequires: ffmpeg-devel
BuildRequires: meson
BuildRequires: ocl-icd-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: scdoc
BuildRequires: wayland-devel
BuildRequires: wayland-protocols-devel

%description

wf-recorder is a utility program for screen recording of wlroots-based
compositors (more specifically, those that support wlr-screencopy-v1
and xdg-output). Its dependencies are ffmpeg, wayland-client and
wayland-protocols.

%prep
%autosetup

%build
%meson
# works: meson build --prefix=%{buildroot}/usr --buildtype=release
# meson_build
ninja -C build

%install
ninja -C build install
# meson_install

%files
%{_bindir}/wf-recorder*

%doc README.md
%{_mandir}/man1/%{name}.1.*

%license LICENSE

%changelog
* Wed Feb 12 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-1
- Initial version of the package
Comment 5 Bob Hepple 2020-02-13 23:40:17 CET
whoops - I have also remove the %global line
Comment 6 leigh scott 2020-02-14 00:09:46 CET
It compiled fine locally in mock and on the koji builder

https://koji.rpmfusion.org/koji/taskinfo?taskID=386108

spec used


Name:     wf-recorder
Version:  0.2
Release:  1
Summary:  Screen recorder for wlroots-based compositors eg swaywm
License:  MIT
URL:      https://github.com/ammen99/wf-recorder

# use this to fetch the source: spectool -g wf-recorder.spec
Source0:  %{url}/archive/v%{version}/%{name}-%{version}.tar.gz

BuildRequires: gcc-c++
BuildRequires: ffmpeg-devel
BuildRequires: meson
BuildRequires: ocl-icd-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: scdoc
BuildRequires: wayland-devel
BuildRequires: wayland-protocols-devel

%description
wf-recorder is a utility program for screen recording of wlroots-based
compositors (more specifically, those that support wlr-screencopy-v1
and xdg-output). Its dependencies are ffmpeg, wayland-client and
wayland-protocols.

%prep
%autosetup

%build
%meson
%meson_build

%install
%meson_install

%files
%{_bindir}/wf-recorder*

%doc README.md
%{_mandir}/man1/%{name}.1.*

%license LICENSE

%changelog
* Wed Feb 12 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-1
- Initial version of the package
Comment 7 Bob Hepple 2020-02-15 00:35:44 CET
(In reply to leigh scott from comment #6)
> It compiled fine locally in mock and on the koji builder
> 
> https://koji.rpmfusion.org/koji/taskinfo?taskID=386108
> 
> spec used
> 
> 
> Name:     wf-recorder
> Version:  0.2
> Release:  1
> Summary:  Screen recorder for wlroots-based compositors eg swaywm
> License:  MIT
> URL:      https://github.com/ammen99/wf-recorder
> 
> # use this to fetch the source: spectool -g wf-recorder.spec
> Source0:  %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
> 
> BuildRequires: gcc-c++
> BuildRequires: ffmpeg-devel
> BuildRequires: meson
> BuildRequires: ocl-icd-devel
> BuildRequires: pulseaudio-libs-devel
> BuildRequires: scdoc
> BuildRequires: wayland-devel
> BuildRequires: wayland-protocols-devel
> 
> %description
> wf-recorder is a utility program for screen recording of wlroots-based
> compositors (more specifically, those that support wlr-screencopy-v1
> and xdg-output). Its dependencies are ffmpeg, wayland-client and
> wayland-protocols.
> 
> %prep
> %autosetup
> 
> %build
> %meson
> %meson_build
> 
> %install
> %meson_install
> 
> %files
> %{_bindir}/wf-recorder*
> 
> %doc README.md
> %{_mandir}/man1/%{name}.1.*
> 
> %license LICENSE
> 
> %changelog
> * Wed Feb 12 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-1
> - Initial version of the package

Cool - although it still doesn't build on my f-31 system with the same errors I outlined before ('ERROR: Dependency "scdoc" not found'). 

I notice that your koji build is for f-32. Can you please try on f-31? (I don't _think_ I'm able to do that yet).
Comment 8 leigh scott 2020-02-15 03:01:37 CET
F31 builds ok

https://koji.rpmfusion.org/koji/taskinfo?taskID=386467
Comment 9 leigh scott 2020-02-15 03:12:46 CET
f30 builds as well

https://koji.rpmfusion.org/koji/taskinfo?taskID=386473

ppc64le arch fails with the same compiler error
Comment 10 FeRD (Frank Dana) 2020-02-15 03:28:41 CET
(In reply to Bob Hepple from comment #7)
>
> Cool - although it still doesn't build on my f-31 system with the same
> errors I outlined before ('ERROR: Dependency "scdoc" not found'). 

scdoc is in the 'fedora' repo for F31, so there's no reason it shouldn't be available:

$ sudo dnf info scdoc
Last metadata expiration check: 1:05:55 ago on Fri 14 Feb 2020 08:23:28 PM EST.
Available Packages
Name         : scdoc
Version      : 1.9.6
Release      : 2.fc31
Architecture : x86_64
Size         : 23 k
Source       : scdoc-1.9.6-2.fc31.src.rpm
Repository   : fedora
Summary      : Tool for generating roff manual pages
URL          : https://git.sr.ht/~sircmpwn/scdoc
License      : MIT
Description  : scdoc is a tool designed to make the process of writing man pages
             : more friendly. It reads scdoc syntax from stdin and writes roff
             : to stdout, suitable for reading with man.

You didn't say how you're building... perhaps you just need to install scdoc? 
i.e:

sudo dnf install scdoc

Full-local builds using your running system won't install missing dependencies for you, so you have to do that manually. (Local Mock builds WILL install all of the spec file's declared dependencies into the sandbox, though.)
Comment 11 Bob Hepple 2020-02-15 05:29:01 CET
Hi Frank,

I do have scdoc installed and I installed scdoc-debug* just to see if that helped. It didn't.
Comment 12 Bob Hepple 2020-02-15 05:49:20 CET
Oh well, mystery solved (for my PC, at least).

scdoc had its pkgconfig info in /usr/lib/pkgconfig instead of lib64. The scdoc package had been picked up from the COPR that I need to run sway-1.4 namely copr:copr.fedorainfracloud.org:mhonek:sway

If I install the pukka package from the fedora repo, then pkgconfig is in lib64 and all is sweetness again and wf-recorder builds!!!

I'll let mhonek know about it if I can find an email. I think he's at redhat.

Maybe something similar with ppc64le? Can you please check the koji ppc64le builds for that?
Comment 13 leigh scott 2020-02-15 09:41:25 CET
(In reply to Bob Hepple from comment #12)

> Maybe something similar with ppc64le? Can you please check the koji ppc64le
> builds for that?

Looks like the coding is bad, you should file an upstream issue so they can address it.

http://koji.rpmfusion.org/kojifiles/work/tasks/6478/386478/build.log
Comment 14 Bob Hepple 2020-02-15 11:05:11 CET
(In reply to leigh scott from comment #13)
> (In reply to Bob Hepple from comment #12)
> 
> > Maybe something similar with ppc64le? Can you please check the koji ppc64le
> > builds for that?
> 
> Looks like the coding is bad, you should file an upstream issue so they can
> address it.
> 
> http://koji.rpmfusion.org/kojifiles/work/tasks/6478/386478/build.log

done: https://github.com/ammen99/wf-recorder/issues/71
Comment 15 Aleksei Bavshin 2020-02-26 09:59:02 CET
https://bugs.freedesktop.org/show_bug.cgi?id=93687#c2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58241

tl;dr: there are two ways to proceed
1. ExcludeArch: ppc64le

2. Add following in the beginning of the spec:
%ifarch ppc64le
# fix compilation on ppc64le (gcc#58241)
%global configure_flags -Dcpp_std=gnu++11
%endif

And then change meson invocation in %build to
%meson %{?configure_flags}
Comment 16 Bob Hepple 2020-02-26 11:02:24 CET
Created attachment 2147 [details]
Incorporate ppc64le compile error fix in the spec file

Incorporate ppc64le compile error fix in the spec file
Comment 17 Bob Hepple 2020-02-26 11:04:10 CET
Thanks Aleksei. I've incorporated your compiler fix - if someone could kick off another build ....
Comment 18 Bob Hepple 2020-03-17 03:03:28 CET
Here are the latest artifacts - if someone could kick off a build, please?

SPEC URL: http://bhepple.com/doku/doku.php?id=wf-recorder
SRPM URL: http://bhepple.com/doku/lib/exe/fetch.php?media=wf-recorder-0.2-2.fc31.wef.src.rpm
Comment 19 Bob Hepple 2020-04-06 07:19:13 CEST
Looks like I'm kinda stalled with this.

Is there some way I can kick off a build myself? I'm not yet sponsored as a RPMFUSION packager (although I am sponsored as a Fedora packager - FAS Username is wef).
Comment 20 Vasiliy Glazov 2020-04-06 11:11:25 CEST
If you already fedora's packager you don't need sponsor here.
Comment 21 leigh scott 2020-04-06 12:04:02 CEST
Please fix the release tag

change

Release:  2%{?dist}.wef

to


Release:  3%{?dist}


and do the same for the change log

change

* Wed Feb 25 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-2.fc31.wef
- fix ppc64le compile error ref. https://bugzilla.rpmfusion.org/show_bug.cgi?id=5527
* Tue Feb 18 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-1.fc31.wef
- fix release string
* Wed Feb 12 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-1
- Initial version of the package

to 

* Wed Feb 25 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-3
- fix ppc64le compile error ref. https://bugzilla.rpmfusion.org/show_bug.cgi?id=5527

* Tue Feb 18 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-2
- fix release string

* Wed Feb 12 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-1
- Initial version of the package
Comment 22 Bob Hepple 2020-04-07 01:56:59 CEST
Thanks Leigh!

New build:

SPEC URL: http://bhepple.com/doku/doku.php?id=wf-recorder
SRPM URL: http://bhepple.com/doku/lib/exe/fetch.php?media=wf-recorder-0.2-3.fc31.src.rpm

I understand that only once the package is approved, I can get get a repo for it and do koji builds (just like fedora) - until then I can only build on my local x86_64 system.
Comment 23 leigh scott 2020-04-07 09:25:52 CEST
Approved


Package Review
==============

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



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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Expat License", "Unknown or generated". 16 files have unknown
     license. Detailed output of licensecheck in /home/leigh/wf-
     recorder/licensecheck.txt
[-]: License file installed when any subpackage combination is installed.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: 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
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[?]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 1 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package 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]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

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

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: 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.
[x]: 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.
[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]: Fully versioned dependency in subpackages if applicable.
[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]: 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.


Rpmlint
-------
Checking: wf-recorder-0.2-3.fc33.x86_64.rpm
          wf-recorder-debuginfo-0.2-3.fc33.x86_64.rpm
          wf-recorder-debugsource-0.2-3.fc33.x86_64.rpm
          wf-recorder-0.2-3.fc33.src.rpm
wf-recorder.x86_64: W: spelling-error Summary(en_US) wlroots -> roots
wf-recorder.x86_64: W: spelling-error Summary(en_US) eg -> eh, e, g
wf-recorder.x86_64: W: spelling-error Summary(en_US) swaywm -> sway
wf-recorder.x86_64: W: spelling-error %description -l en_US wlroots -> roots
wf-recorder.x86_64: W: spelling-error %description -l en_US wlr -> war, SLR
wf-recorder.x86_64: W: spelling-error %description -l en_US screencopy -> screen copy, screen-copy, screenplay
wf-recorder.x86_64: W: spelling-error %description -l en_US xdg -> bldg
wf-recorder.x86_64: W: spelling-error %description -l en_US ffmpeg -> MPEG
wf-recorder.src: W: spelling-error Summary(en_US) wlroots -> roots
wf-recorder.src: W: spelling-error Summary(en_US) eg -> eh, e, g
wf-recorder.src: W: spelling-error Summary(en_US) swaywm -> sway
wf-recorder.src: W: spelling-error %description -l en_US wlroots -> roots
wf-recorder.src: W: spelling-error %description -l en_US wlr -> war, SLR
wf-recorder.src: W: spelling-error %description -l en_US screencopy -> screen copy, screen-copy, screenplay
wf-recorder.src: W: spelling-error %description -l en_US xdg -> bldg
wf-recorder.src: W: spelling-error %description -l en_US ffmpeg -> MPEG
wf-recorder.src: E: specfile-error warning: bogus date in %changelog: Wed Feb 25 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-2
4 packages and 0 specfiles checked; 1 errors, 16 warnings.




Rpmlint (debuginfo)
-------------------
Checking: wf-recorder-debuginfo-0.2-3.fc33.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
wf-recorder.x86_64: W: spelling-error Summary(en_US) wlroots -> roots
wf-recorder.x86_64: W: spelling-error Summary(en_US) eg -> eh, e, g
wf-recorder.x86_64: W: spelling-error Summary(en_US) swaywm -> sway
wf-recorder.x86_64: W: spelling-error %description -l en_US wlroots -> roots
wf-recorder.x86_64: W: spelling-error %description -l en_US wlr -> war, SLR
wf-recorder.x86_64: W: spelling-error %description -l en_US screencopy -> screen copy, screen-copy, screenplay
wf-recorder.x86_64: W: spelling-error %description -l en_US xdg -> bldg
wf-recorder.x86_64: W: spelling-error %description -l en_US ffmpeg -> MPEG
wf-recorder.x86_64: W: invalid-url URL: https://github.com/ammen99/wf-recorder <urlopen error [Errno -2] Name or service not known>
wf-recorder-debugsource.x86_64: W: invalid-url URL: https://github.com/ammen99/wf-recorder <urlopen error [Errno -2] Name or service not known>
wf-recorder-debuginfo.x86_64: W: invalid-url URL: https://github.com/ammen99/wf-recorder <urlopen error [Errno -2] Name or service not known>
3 packages and 0 specfiles checked; 0 errors, 11 warnings.



Source checksums
----------------
https://github.com/ammen99/wf-recorder/archive/v0.2/wf-recorder-0.2.tar.gz :
  CHECKSUM(SHA256) this package     : e35eef43920fc0492cd4702653b613b5ab1caaf070b5f0542db2f5c4d7a90deb
  CHECKSUM(SHA256) upstream package : e35eef43920fc0492cd4702653b613b5ab1caaf070b5f0542db2f5c4d7a90deb


Requires
--------
wf-recorder (rpmlib, GLIBC filtered):
    libOpenCL.so.1()(64bit)
    libOpenCL.so.1(OPENCL_1.0)(64bit)
    libavcodec.so.58()(64bit)
    libavcodec.so.58(LIBAVCODEC_58)(64bit)
    libavdevice.so.58()(64bit)
    libavdevice.so.58(LIBAVDEVICE_58)(64bit)
    libavformat.so.58()(64bit)
    libavformat.so.58(LIBAVFORMAT_58)(64bit)
    libavutil.so.56()(64bit)
    libavutil.so.56(LIBAVUTIL_56)(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    libpulse-simple.so.0()(64bit)
    libpulse-simple.so.0(PULSE_0)(64bit)
    libpulse.so.0()(64bit)
    libpulse.so.0(PULSE_0)(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libswresample.so.3()(64bit)
    libswresample.so.3(LIBSWRESAMPLE_3)(64bit)
    libswscale.so.5()(64bit)
    libswscale.so.5(LIBSWSCALE_5)(64bit)
    libwayland-client.so.0()(64bit)
    rtld(GNU_HASH)

wf-recorder-debuginfo (rpmlib, GLIBC filtered):

wf-recorder-debugsource (rpmlib, GLIBC filtered):



Provides
--------
wf-recorder:
    wf-recorder
    wf-recorder(x86-64)

wf-recorder-debuginfo:
    debuginfo(build-id)
    wf-recorder-debuginfo
    wf-recorder-debuginfo(x86-64)

wf-recorder-debugsource:
    wf-recorder-debugsource
    wf-recorder-debugsource(x86-64)



Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
Command line :/usr/bin/fedora-review -rn /home/leigh/Downloads/wf-recorder-0.2-3.fc31.src.rpm --mock-config fedora-rawhide-x86_64-rpmfusion_free
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Shell-api, Generic
Disabled plugins: fonts, Haskell, SugarActivity, Ocaml, R, Perl, Java, PHP, Python
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH
Comment 24 Bob Hepple 2020-04-07 10:03:11 CEST
Awesome - thanks Leigh!

I got that build done and have requested the package repo:

$ koji-rpmfusion build --scratch f31-free ~/rpmbuild/SRPMS/wf-recorder-0.2-3.fc31.src.rpm
Uploading srpm: /home/bhepple/rpmbuild/SRPMS/wf-recorder-0.2-3.fc31.src.rpm
[====================================] 100% 00:00:00  29.08 KiB  30.85 KiB/sec
Created task: 399950
Task info: http://koji.rpmfusion.org/koji/taskinfo?taskID=399950
Watching tasks (this may be safely interrupted)...
399950 build (f31-free, wf-recorder-0.2-3.fc31.src.rpm): free
399950 build (f31-free, wf-recorder-0.2-3.fc31.src.rpm): free -> open (buildvm-05.virt.rpmfusion.net)
  399951 rebuildSRPM (noarch): open (buildvm-06.virt.rpmfusion.net)
  399951 rebuildSRPM (noarch): open (buildvm-06.virt.rpmfusion.net) -> closed
  0 free  1 open  1 done  0 failed
  399955 buildArch (wf-recorder-0.2-3.fc31.src.rpm, aarch64): free
  399953 buildArch (wf-recorder-0.2-3.fc31.src.rpm, armv7hl): free
  399954 buildArch (wf-recorder-0.2-3.fc31.src.rpm, ppc64le): free
  399952 buildArch (wf-recorder-0.2-3.fc31.src.rpm, x86_64): free
  399955 buildArch (wf-recorder-0.2-3.fc31.src.rpm, aarch64): free -> open (aarch64-04.linaro.rpmfusion.net)
  399953 buildArch (wf-recorder-0.2-3.fc31.src.rpm, armv7hl): free -> open (arm-builder11.home.rpmfusion.net)
  399954 buildArch (wf-recorder-0.2-3.fc31.src.rpm, ppc64le): free -> open (buildppcle-02.osuosl.rpmfusion.net)
  399952 buildArch (wf-recorder-0.2-3.fc31.src.rpm, x86_64): free -> open (buildvm-06.virt.rpmfusion.net)
  399952 buildArch (wf-recorder-0.2-3.fc31.src.rpm, x86_64): open (buildvm-06.virt.rpmfusion.net) -> closed
  0 free  4 open  2 done  0 failed
  399954 buildArch (wf-recorder-0.2-3.fc31.src.rpm, ppc64le): open (buildppcle-02.osuosl.rpmfusion.net) -> closed
  0 free  3 open  3 done  0 failed
  399955 buildArch (wf-recorder-0.2-3.fc31.src.rpm, aarch64): open (aarch64-04.linaro.rpmfusion.net) -> closed
  0 free  2 open  4 done  0 failed
  399953 buildArch (wf-recorder-0.2-3.fc31.src.rpm, armv7hl): open (arm-builder11.home.rpmfusion.net) -> closed
  0 free  1 open  5 done  0 failed
399950 build (f31-free, wf-recorder-0.2-3.fc31.src.rpm): open (buildvm-05.virt.rpmfusion.net) -> closed
  0 free  0 open  6 done  0 failed
Comment 25 leigh scott 2020-04-07 10:22:39 CEST
(In reply to Bob Hepple from comment #24)
> Awesome - thanks Leigh!
> 
> I got that build done and have requested the package repo:

Done

https://pkgs.rpmfusion.org/cgit/free/wf-recorder.git/

https://admin.rpmfusion.org/pkgdb/package/free/wf-recorder/
Comment 26 Bob Hepple 2020-04-07 12:59:30 CEST
The import and build have been done.
Comment 27 leigh scott 2020-04-07 13:24:48 CEST
(In reply to Bob Hepple from comment #26)
> The import and build have been done.

Do you intend to build for f32 & 31?
Comment 28 Bob Hepple 2020-04-08 00:04:28 CEST
Hmmm. I did a build last night about 1100 UTC. If it's not showing up somewhere, maybe I missed something. This is what I did:

rfpkg switch-branch f31
git merge master
rfpkg push
rfpkg build

20:33 (wf-recorder/f31) wf-recorder/ $ rfpkg build
warning: bogus date in %changelog: Wed Feb 25 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-2

Building wf-recorder-0.2-3.fc31 for f31-free
Created task: 400075
Task info: http://koji.rpmfusion.org/koji/taskinfo?taskID=400075
Watching tasks (this may be safely interrupted)...
400075 build (f31-free, /git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): free
400075 build (f31-free, /git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): free -> open (buildvm-05.virt.rpmfusion.net)
  400076 buildSRPMFromSCM (/git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): closed
  400080 buildArch (wf-recorder-0.2-3.fc31.src.rpm, aarch64): open (aarch64-04.linaro.rpmfusion.net)
  400078 buildArch (wf-recorder-0.2-3.fc31.src.rpm, armv7hl): open (arm-builder11.home.rpmfusion.net)
  400079 buildArch (wf-recorder-0.2-3.fc31.src.rpm, ppc64le): open (buildppcle-02.osuosl.rpmfusion.net)
  400077 buildArch (wf-recorder-0.2-3.fc31.src.rpm, x86_64): open (buildvm-06.virt.rpmfusion.net)
  400077 buildArch (wf-recorder-0.2-3.fc31.src.rpm, x86_64): open (buildvm-06.virt.rpmfusion.net) -> closed
  0 free  4 open  2 done  0 failed
  400080 buildArch (wf-recorder-0.2-3.fc31.src.rpm, aarch64): open (aarch64-04.linaro.rpmfusion.net) -> closed
  0 free  3 open  3 done  0 failed
  400079 buildArch (wf-recorder-0.2-3.fc31.src.rpm, ppc64le): open (buildppcle-02.osuosl.rpmfusion.net) -> closed
  0 free  2 open  4 done  0 failed
400075 build (f31-free, /git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): open (buildvm-05.virt.rpmfusion.net) -> closed
  0 free  1 open  5 done  0 failed
  400081 tagBuild (noarch): closed
  400078 buildArch (wf-recorder-0.2-3.fc31.src.rpm, armv7hl): open (arm-builder11.home.rpmfusion.net) -> closed
  0 free  0 open  7 done  0 failed

400075 build (f31-free, /git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f) completed successfully

...

20:49 (wf-recorder/f32) wf-recorder/ $ rfpkg build
warning: bogus date in %changelog: Wed Feb 25 2020 Bob Hepple <bob.hepple@gmail.com> - 0.2-2

Building wf-recorder-0.2-3.fc32 for f32-free
Created task: 400082
Task info: http://koji.rpmfusion.org/koji/taskinfo?taskID=400082
Watching tasks (this may be safely interrupted)...
400082 build (f32-free, /git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): free
400082 build (f32-free, /git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): free -> open (buildvm-05.virt.rpmfusion.net)
  400083 buildSRPMFromSCM (/git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): open (buildvm-01.online.rpmfusion.net)
  400087 buildArch (wf-recorder-0.2-3.fc32.src.rpm, aarch64): open (aarch64-04.linaro.rpmfusion.net)
  400085 buildArch (wf-recorder-0.2-3.fc32.src.rpm, armv7hl): open (arm-builder11.home.rpmfusion.net)
  400086 buildArch (wf-recorder-0.2-3.fc32.src.rpm, ppc64le): open (buildppcle-02.osuosl.rpmfusion.net)
  400084 buildArch (wf-recorder-0.2-3.fc32.src.rpm, x86_64): open (buildvm-06.virt.rpmfusion.net)
  400083 buildSRPMFromSCM (/git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): open (buildvm-01.online.rpmfusion.net) -> closed
  0 free  5 open  1 done  0 failed
  400086 buildArch (wf-recorder-0.2-3.fc32.src.rpm, ppc64le): open (buildppcle-02.osuosl.rpmfusion.net) -> closed
  0 free  4 open  2 done  0 failed
  400084 buildArch (wf-recorder-0.2-3.fc32.src.rpm, x86_64): open (buildvm-06.virt.rpmfusion.net) -> closed
  0 free  3 open  3 done  0 failed
  400087 buildArch (wf-recorder-0.2-3.fc32.src.rpm, aarch64): open (aarch64-04.linaro.rpmfusion.net) -> closed
  0 free  2 open  4 done  0 failed
400082 build (f32-free, /git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f): open (buildvm-05.virt.rpmfusion.net) -> closed
  0 free  1 open  5 done  0 failed
  400088 tagBuild (noarch): closed
  400085 buildArch (wf-recorder-0.2-3.fc32.src.rpm, armv7hl): open (arm-builder11.home.rpmfusion.net) -> closed
  0 free  0 open  7 done  0 failed

400082 build (f32-free, /git/free/wf-recorder:c8c96140ff6ba7cceaddeb2fb850746afefb2c5f) completed successfully
Comment 30 Bob Hepple 2020-04-08 01:25:03 CEST
Looks like it is OK, then. All builds were done.

I would have done el8 too but I can't see how to use https://admin.rpmfusion.org/pkgdb/ to request a new branch. If I try 'New package' with el8 it says 'There is already a package named: free/wf-recorder'
Comment 31 Nicolas Chauvet 2020-04-08 07:25:53 CEST
(In reply to Bob Hepple from comment #30)
...
> I would have done el8 too but I can't see how to use
> https://admin.rpmfusion.org/pkgdb/ to request a new branch. If I try 'New
If you go over https://admin.rpmfusion.org/pkgdb/package/free/wf-recorder/
You can request a new branch on the right
Comment 32 Bob Hepple 2020-04-08 09:16:57 CEST
Thanks Nicolas,

The trick is to log in first (duh!)

Sorry for the bandwidth. Still finding my way around!
Comment 33 Bob Hepple 2020-04-11 09:03:34 CEST
epel8 won't compile (libwayland-client is too old) so I won't include it.
Comment 34 Nicolas Chauvet 2020-04-11 10:41:57 CEST
(In reply to Bob Hepple from comment #33)
> epel8 won't compile (libwayland-client is too old) so I won't include it.

Is it possible to find an older wf-recorder release that would accept the epel8 version ? Or use the current version with a patch to downgrade the requirement ?

Thanks for your work on this.
Comment 35 Aleksei Bavshin 2020-04-11 19:00:21 CEST
(In reply to Nicolas Chauvet from comment #34)
> (In reply to Bob Hepple from comment #33)
> > epel8 won't compile (libwayland-client is too old) so I won't include it.
> 
> Is it possible to find an older wf-recorder release that would accept the
> epel8 version ? Or use the current version with a patch to downgrade the
> requirement ?

Even if it is possible it wouldn't be of much use. We don't package sway or wlroots for epel8 for the very same reason - outdated wayland.
Comment 36 Bob Hepple 2020-04-12 01:22:28 CEST
Thanks Aleksei.

If not epel8 then I guess I'm done here. Do I just wait for admins to push f31/32 or is there something else I need to do?