Bug 1811485 - Review Request: non-daw - Digital Audio Workstation for Jack
Summary: Review Request: non-daw - Digital Audio Workstation for Jack
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Guido Aulisi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-03-09 02:35 UTC by Erich Eickmeyer
Modified: 2020-04-04 03:22 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-04-04 00:45:16 UTC
Type: ---
Embargoed:
guido.aulisi: fedora-review+


Attachments (Terms of Use)

Description Erich Eickmeyer 2020-03-09 02:35:14 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01298465-non-daw/non-daw.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01298465-non-daw/non-daw-1.2.0-1.gitbbe83864.fc33.src.rpm

Description:
Non-daw is a digital audio workstation for JACK. It includes a timeline, mixer, session manager, and sequencer.

Fedora Account System Username: eeickmeyer

Comment 1 Artur Frenszek-Iwicki 2020-03-09 10:44:26 UTC
>Release:        1.gitbbe83864%{?dist}
Snapshots must also include the commit date.
https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_snapshots

>Group:          Applications/Multimedia
The "Group:" tag is not used in Fedora.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections

># Distribution-specific patch to use /bin/env python3 shebang
>Patch1:         patch-waf-for-python3.patch
Do not use /bin/env. Explicitly specify the interpreter. (The link below talks mostly about packaged files, but still it's a good rule to follow.)
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shebang_lines

>Source0:        non-20200307-gitbbe83864.tar.bz2
># sh non-snapshot.sh (rev>
>Source1:        non-snapshot.sh
Poking around the site a little, it seems you can download a snapshot directly using a URL like this: "https://git.tuxfamily.org/non/non.git/snapshot/non-${GIT_COMMIT_HASH}.tar.gz".

Also, as far as I can see, non.tuxfamily.org supports HTTPS, so I'd suggest switching all the links from http:// to https://.

Comment 2 Guido Aulisi 2020-03-09 18:22:40 UTC
Happy to see this package unretired, I add some quick findings:

1) To fix python shebangs you can use:

BuildRequires:  %{_bindir}/pathfix.py
...

%prep
...

# Fix unversioned python shebangs
pathfix.py -pni %{_bindir}/python3 waf wscript ...


2) Your are not settings LDFLAGS, you could add this macro (%set_build_flags) that sets all flags, then add custom ones, and maybe this is more readable:

>%build
>%ifarch %{ix86} x86_64
>CXXFLAGS="%{optflags} -std=c++11" ./waf configure --prefix=%{_prefix} --libdir=%{_libdir}
>%else
>CXXFLAGS="%{optflags} -std=c++11" ./waf configure --prefix=%{_prefix} --libdir=%{_libdir} --disable-sse
>%endif


%build
%set_build_flags
CXXFLAGS+=" -std=c++11" // I thinks g++ defaults to c++11 so it could be omitted

./waf configure --prefix=%{_prefix} --libdir=%{_libdir} \
%ifarch %{ix86} x86_64

%else
--disable-sse
%endif

3) Use license tag
>%doc COPYING
%license COPYING

Comment 4 Guido Aulisi 2020-03-10 21:00:12 UTC
Some more findings...

1) You should patch all python shebangs, i.e.:

pathfix.py -pni %{_bindir}/python3 waf $(find -name wscript)

2) You should unbundle non-ntk library, it's already present in fedora [0]
See [1]

[0]: https://src.fedoraproject.org/rpms/non-ntk
[1]: https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling

Comment 6 Guido Aulisi 2020-03-21 14:55:00 UTC
Sorry for the late answer, I'm posting some other findings, then I will post the review:

> BuildRequires:  fltk-devel
> BuildRequires:  fltk-fluid
Are these really needed? In particular fltk-fluid shouldn't be needed, because it's a GUI to design widgets.

> BuildRequires:  non-ntk-fluid
Same as above.

> Requires:       non-ntk
> Requires:       non-ntk-fluid
These are not needed, because rpm finds dependencies automatically, and non-ntk-fluid isn't needed at runtime.

You should add

Buildrequires: %{_bindir}/find

because you use it patching python shebangs.

You are not running the build command, you should add as the latest command in %build section this:

./waf build -v %{?_smp_mflags}

It runs build in verbose mode and with parallelism.

I will post the output of fedora-review ASAP, I think the package is fine.

Comment 7 Guido Aulisi 2020-03-21 14:58:34 UTC
This was reported by fedora-review:

- Large documentation must go in a -doc subpackage. Large could be size
  (~1MB) or number of files.
  Note: Documentation size is 2242560 bytes in 46 files.
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_documentation

Comment 8 Guido Aulisi 2020-03-21 15:30:11 UTC
I thonk you should alaso add

Requires: hicolor-icon-theme

in every subpackage that puts icon files in /usr/share/icons/hicolor/*/apps

Comment 9 Erich Eickmeyer 2020-03-21 17:23:56 UTC
Hi Guido,

I went with your recommendation to remove ntk-fluid from BuildRequires. However, during build process, I ran into this:

>Checking for program 'ntk-fluid'                     : not found 
>Could not find the program ['ntk-fluid']

So, yes, it is required.

However, I did remove the rest and add hicolor-icon-theme. Additionally, since every subpackage has its own documentation, I added a -doc to each subpackage.

Thanks for your help. I hope we get a pass this time around.

New files:
Spec URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01314469-non-daw/non-daw.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01314469-non-daw/non-daw-1.2.0-1.20200307gitbbe8386.fc33.src.rpm

Comment 10 Guido Aulisi 2020-03-21 18:16:13 UTC
Versioning is not correct. Latest version in Fedora was 1.2.0-18...
so you should increment by one and start with 1.2.0-19%{commitdate}git%{shortcommit0}%{?dist}

You didn't use the latest spec when unretiring this package and cut some of the recent history, which could be useful.

License should be GPLv2+ and ISC (there is one file with ISC license)

Many source files have incorrect FSF address, this must be corrected by a patch, there is a sed script that can help do this.
You can't modify COPYING file because only upstream can do that, but you should notify of the incorrect FSF address and maybe send a patch.

License file (COPYING) must be added to every subpackage, because they can be installed separately.

Output of fedora review related to comment #5, with some manual checks. Some cheks are still missing and there are cheks that do not pass.

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

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


Issues:
=======
- Package does not use a name that already exists.
  Note: A package with this name already exists. Please check
  https://src.fedoraproject.org/rpms/non-daw
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Naming/#_conflicting_package_names
- Large documentation must go in a -doc subpackage. Large could be size
  (~1MB) or number of files.
  Note: Documentation size is 2242560 bytes in 46 files.
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_documentation


===== 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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* BSD 3-clause "New" or
     "Revised" License", "GPL (v2 or later) (with incorrect FSF address)",
     "ISC License". 154 files have unknown license. Detailed output of
     licensecheck in /home/guido/tmp/1811485-non-daw/licensecheck.txt
[!]: License file installed when any subpackage combination is installed.
[!]: Package must own all directories that it creates.
     Note: Directories without known owners:
     /usr/share/icons/hicolor/32x32, /usr/share/icons/hicolor,
     /usr/share/icons/hicolor/256x256, /usr/share/icons/hicolor/72x72/apps,
     /usr/share/icons/hicolor/64x64, /usr/share/icons/hicolor/128x128,
     /usr/share/icons/hicolor/256x256/apps,
     /usr/share/icons/hicolor/512x512/apps,
     /usr/share/icons/hicolor/36x36/apps, /usr/share/icons/hicolor/36x36,
     /usr/share/icons/hicolor/64x64/apps, /usr/share/icons/hicolor/48x48,
     /usr/share/icons/hicolor/192x192/apps, /usr/share/icons/hicolor/16x16,
     /usr/share/icons/hicolor/128x128/apps,
     /usr/share/icons/hicolor/48x48/apps, /usr/share/icons/hicolor/192x192,
     /usr/share/icons/hicolor/16x16/apps, /usr/share/icons/hicolor/72x72,
     /usr/share/icons/hicolor/96x96/apps, /usr/share/icons/hicolor/512x512,
     /usr/share/icons/hicolor/32x32/apps, /usr/share/icons/hicolor/96x96
[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.
[-]: 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.
[!]: 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.
[ ]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package 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 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.
[!]: Final provides and requires are sane (see attachments).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in non-
     mixer , non-session-manager , non-sequencer
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[ ]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[ ]: 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.
[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]: Spec use %global instead of %define unless justified.

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

Generic:
[ ]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 3430400 bytes in /usr/share
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: non-daw-1.2.0-1.20200307gitbbe8386.fc33.x86_64.rpm
          non-mixer-1.2.0-1.20200307gitbbe8386.fc33.x86_64.rpm
          non-session-manager-1.2.0-1.20200307gitbbe8386.fc33.x86_64.rpm
          non-sequencer-1.2.0-1.20200307gitbbe8386.fc33.x86_64.rpm
          non-daw-debuginfo-1.2.0-1.20200307gitbbe8386.fc33.x86_64.rpm
          non-daw-debugsource-1.2.0-1.20200307gitbbe8386.fc33.x86_64.rpm
          non-daw-1.2.0-1.20200307gitbbe8386.fc33.src.rpm
non-daw.x86_64: W: incoherent-version-in-changelog 1.2.0-1.gitbbe83864 ['1.2.0-1.20200307gitbbe8386.fc33', '1.2.0-1.20200307gitbbe8386']
non-daw.x86_64: W: no-manual-page-for-binary import-ardour-session_gui
non-daw.x86_64: W: no-manual-page-for-binary non-daw
non-daw.x86_64: W: no-manual-page-for-binary non-timeline
non-mixer.x86_64: W: no-manual-page-for-binary non-midi-mapper
non-mixer.x86_64: W: no-manual-page-for-binary non-mixer
non-mixer.x86_64: W: no-manual-page-for-binary non-mixer-noui
non-session-manager.x86_64: W: no-manual-page-for-binary jackpatch
non-session-manager.x86_64: W: no-manual-page-for-binary non-session-manager
non-session-manager.x86_64: W: no-manual-page-for-binary nsm-proxy
non-session-manager.x86_64: W: no-manual-page-for-binary nsm-proxy-gui
non-session-manager.x86_64: W: no-manual-page-for-binary nsmd
non-sequencer.x86_64: W: no-manual-page-for-binary non-sequencer
non-daw.src: W: strange-permission non-snapshot.sh 775
7 packages and 0 specfiles checked; 0 errors, 14 warnings.




Rpmlint (debuginfo)
-------------------
Checking: non-daw-debuginfo-1.2.0-1.20200307gitbbe8386.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 = "it_IT.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 = "it_IT.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
non-mixer.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-mixer.x86_64: W: no-manual-page-for-binary non-midi-mapper
non-mixer.x86_64: W: no-manual-page-for-binary non-mixer
non-mixer.x86_64: W: no-manual-page-for-binary non-mixer-noui
non-daw.x86_64: W: incoherent-version-in-changelog 1.2.0-1.gitbbe83864 ['1.2.0-1.20200307gitbbe8386.fc33', '1.2.0-1.20200307gitbbe8386']
non-daw.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-daw.x86_64: W: no-manual-page-for-binary import-ardour-session_gui
non-daw.x86_64: W: no-manual-page-for-binary non-daw
non-daw.x86_64: W: no-manual-page-for-binary non-timeline
non-sequencer.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-sequencer.x86_64: W: no-manual-page-for-binary non-sequencer
non-session-manager.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-session-manager.x86_64: W: no-manual-page-for-binary jackpatch
non-session-manager.x86_64: W: no-manual-page-for-binary non-session-manager
non-session-manager.x86_64: W: no-manual-page-for-binary nsm-proxy
non-session-manager.x86_64: W: no-manual-page-for-binary nsm-proxy-gui
non-session-manager.x86_64: W: no-manual-page-for-binary nsmd
non-daw-debugsource.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-daw-debuginfo.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
6 packages and 0 specfiles checked; 0 errors, 19 warnings.



Source checksums
----------------
https://git.tuxfamily.org/non/non.git/snapshot/non-bbe8386499621c8e60eebb06d80e966f13a69a95.tar.gz :
  CHECKSUM(SHA256) this package     : 4ea2d5abd810d00b4fb99b5f79383c09bd9e59f36f356c9371100fd06bc30f8a
  CHECKSUM(SHA256) upstream package : 4ea2d5abd810d00b4fb99b5f79383c09bd9e59f36f356c9371100fd06bc30f8a


Requires
--------
non-daw (rpmlib, GLIBC filtered):
    jack-audio-connection-kit
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjack.so.0()(64bit)
    liblo.so.7()(64bit)
    libm.so.6()(64bit)
    libntk.so.1()(64bit)
    libntk_images.so.1()(64bit)
    libpthread.so.0()(64bit)
    libsndfile.so.1()(64bit)
    libsndfile.so.1(libsndfile.so.1.0)(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    non-ntk
    non-ntk-fluid
    rtld(GNU_HASH)

non-mixer (rpmlib, GLIBC filtered):
    jack-audio-connection-kit
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjack.so.0()(64bit)
    liblo.so.7()(64bit)
    liblrdf.so.2()(64bit)
    libm.so.6()(64bit)
    libntk.so.1()(64bit)
    libntk_images.so.1()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    rtld(GNU_HASH)

non-session-manager (rpmlib, GLIBC filtered):
    jack-audio-connection-kit
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjack.so.0()(64bit)
    liblo.so.7()(64bit)
    libntk.so.1()(64bit)
    libntk_images.so.1()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)

non-sequencer (rpmlib, GLIBC filtered):
    jack-audio-connection-kit
    libX11.so.6()(64bit)
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjack.so.0()(64bit)
    liblo.so.7()(64bit)
    libntk.so.1()(64bit)
    libntk_images.so.1()(64bit)
    libpthread.so.0()(64bit)
    libsigc-2.0.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)

non-daw-debuginfo (rpmlib, GLIBC filtered):

non-daw-debugsource (rpmlib, GLIBC filtered):



Provides
--------
non-daw:
    application()
    application(non-timeline.desktop)
    non-daw
    non-daw(x86-64)

non-mixer:
    application()
    application(non-mixer.desktop)
    non-mixer
    non-mixer(x86-64)

non-session-manager:
    application()
    application(non-session-manager.desktop)
    non-session-manager
    non-session-manager(x86-64)

non-sequencer:
    application()
    application(non-sequencer.desktop)
    non-sequencer
    non-sequencer(x86-64)

non-daw-debuginfo:
    debuginfo(build-id)
    non-daw-debuginfo
    non-daw-debuginfo(x86-64)

non-daw-debugsource:
    non-daw-debugsource
    non-daw-debugsource(x86-64)

Comment 11 Erich Eickmeyer 2020-03-21 19:30:36 UTC
> You didn't use the latest spec when unretiring this package and cut some of the recent history, which could be useful.

Unfortunately, that spec wasn't available in src.fedoraproject.org, so I had to use the one from the last known good build. In other words, I couldn't find it.

> Versioning is not correct. Latest version in Fedora was 1.2.0-18...
> so you should increment by one and start with 1.2.0-19%{commitdate}git%{shortcommit0}%{?dist}

Fixed.

> License should be GPLv2+ and ISC (there is one file with ISC license)

Fixed.

> Many source files have incorrect FSF address, this must be corrected by a patch, there is a sed script that can help do this.

Done.

> You can't modify COPYING file because only upstream can do that, but you should notify of the incorrect FSF address and maybe send a patch.

The initial sed script didn't modify the root /COPYING file, so it must be correct. However, there is a sequencer/COPYING file that has the wrong address that I did not modify with the patch. Should I have?

> [!]: Package must own all directories that it creates.

This looks like it mostly has to do with the icon files/directories. I don't understand what is wrong with the %files for each individual package not owning these.

> [!]: Requires correct, justified where necessary.

I'm not clear as to what is going on here.

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

Again, I'm not clear on this, but it appears to have something to do with the manpage warnings (which are justified in the .spec file)?


If it completely comes down to it, another package of mine (raysession), which is API compatible with this package, has been approved/accepted, meaning we can drop this package if it fails to meet guidelines. The upstream on this particular package has been hostile/nonresponsive to other developers historically.

Comment 13 Guido Aulisi 2020-03-21 21:17:20 UTC
Sorry for the long review, but this is a quite hard package IMHO

(In reply to Erich Eickmeyer from comment #11)
> > You didn't use the latest spec when unretiring this package and cut some of the recent history, which could be useful.
> 
> Unfortunately, that spec wasn't available in src.fedoraproject.org, so I had
> to use the one from the last known good build. In other words, I couldn't
> find it.
It was the commit before retiring
https://src.fedoraproject.org/rpms/non-daw/tree/531a1f8e8db4351b6fb73a5bf4db91c33be52d0f

> > Versioning is not correct. Latest version in Fedora was 1.2.0-18...
> > so you should increment by one and start with 1.2.0-19%{commitdate}git%{shortcommit0}%{?dist}
> 
> Fixed.
> 
> > License should be GPLv2+ and ISC (there is one file with ISC license)
> 
> Fixed.
This should be exactly
GPLv2+ and ISC

> > Many source files have incorrect FSF address, this must be corrected by a patch, there is a sed script that can help do this.
> 
> Done.
> 
> > You can't modify COPYING file because only upstream can do that, but you should notify of the incorrect FSF address and maybe send a patch.
> 
> The initial sed script didn't modify the root /COPYING file, so it must be
> correct. However, there is a sequencer/COPYING file that has the wrong
> address that I did not modify with the patch. Should I have?
> 
> > [!]: Package must own all directories that it creates.
> 
> This looks like it mostly has to do with the icon files/directories. I don't
> understand what is wrong with the %files for each individual package not
> owning these.
I think Requires: hicolor-icon-theme is missing from main package

> > [!]: Requires correct, justified where necessary.
> 
> I'm not clear as to what is going on here.
This should be ok now

> > [!]: Final provides and requires are sane (see attachments).
> 
> Again, I'm not clear on this, but it appears to have something to do with
> the manpage warnings (which are justified in the .spec file)?
This should be ok now
 
> 
> If it completely comes down to it, another package of mine (raysession),
> which is API compatible with this package, has been approved/accepted,
> meaning we can drop this package if it fails to meet guidelines. The
> upstream on this particular package has been hostile/nonresponsive to other
> developers historically.

The only other minor issue I see know, after enabling verbose build are some compiler optimization that should be avoid in Fedora, like -O3, which get appended to Fedora build flags.

Comment 14 Erich Eickmeyer 2020-03-21 22:50:54 UTC
> > > License should be GPLv2+ and ISC (there is one file with ISC license)
> > 
> > Fixed.
> This should be exactly
> GPLv2+ and ISC

Actually fixed now.

> I think Requires: hicolor-icon-theme is missing from main package

Fixed.

> The only other minor issue I see know, after enabling verbose build are some compiler optimization that should be avoid in Fedora, like -O3, which get appended to Fedora build flags.

I went ahead and patched the wscript to remove the optimization flags since Fedora has its own.

New files:
Spec URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01314609-non-daw/non-daw.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/eeickmeyer/Jam-Incoming/fedora-rawhide-x86_64/01314609-non-daw/non-daw-1.2.0-19.20200307gitbbe8386.fc33.src.rpm

Comment 15 Guido Aulisi 2020-03-22 09:17:41 UTC
Package is approved.

Please fix changelog version:

* Sun Mar 08 2020 Erich Eickmeyer <erich> - 1.2.0-19.20200307gitbbe8386.fc33



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

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


Issues:
=======
- Package does not use a name that already exists.
  Note: A package with this name already exists. Please check
  https://src.fedoraproject.org/rpms/non-daw
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Naming/#_conflicting_package_names

Not an issue, this is a review to unretire a package

===== 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: "Unknown or generated", "*No copyright* BSD 3-clause "New" or
     "Revised" License", "GPL (v2 or later)", "ISC License". 154 files have
     unknown license. Detailed output of licensecheck in
     /home/guido/tmp/1811485-non-daw/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[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.
[-]: 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.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 614400 bytes in 18 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]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package 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 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).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in non-
     mixer , non-session-manager , non-sequencer
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[ ]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[x]: 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.
[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]: Spec use %global instead of %define unless justified.

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

Generic:
[ ]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 3584000 bytes in /usr/share
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: non-daw-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-mixer-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-mixer-doc-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-session-manager-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-session-manager-doc-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-sequencer-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-sequencer-doc-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-daw-debuginfo-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-daw-debugsource-1.2.0-19.20200307gitbbe8386.fc33.x86_64.rpm
          non-daw-1.2.0-19.20200307gitbbe8386.fc33.src.rpm
non-daw.x86_64: W: incoherent-version-in-changelog 1.2.0-19.gitbbe83864 ['1.2.0-19.20200307gitbbe8386.fc33', '1.2.0-19.20200307gitbbe8386']
non-daw.x86_64: W: no-manual-page-for-binary import-ardour-session_gui
non-daw.x86_64: W: no-manual-page-for-binary non-daw
non-daw.x86_64: W: no-manual-page-for-binary non-timeline
non-mixer.x86_64: W: no-documentation
non-mixer.x86_64: W: no-manual-page-for-binary non-midi-mapper
non-mixer.x86_64: W: no-manual-page-for-binary non-mixer
non-mixer.x86_64: W: no-manual-page-for-binary non-mixer-noui
non-session-manager.x86_64: W: no-documentation
non-session-manager.x86_64: W: no-manual-page-for-binary jackpatch
non-session-manager.x86_64: W: no-manual-page-for-binary non-session-manager
non-session-manager.x86_64: W: no-manual-page-for-binary nsm-proxy
non-session-manager.x86_64: W: no-manual-page-for-binary nsm-proxy-gui
non-session-manager.x86_64: W: no-manual-page-for-binary nsmd
non-sequencer.x86_64: W: no-documentation
non-sequencer.x86_64: W: no-manual-page-for-binary non-sequencer
10 packages and 0 specfiles checked; 0 errors, 16 warnings.




Rpmlint (debuginfo)
-------------------
Checking: non-daw-debuginfo-1.2.0-19.20200307gitbbe8386.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 = "it_IT.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 = "it_IT.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
non-daw-debugsource.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-session-manager.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-session-manager.x86_64: W: no-documentation
non-session-manager.x86_64: W: no-manual-page-for-binary jackpatch
non-session-manager.x86_64: W: no-manual-page-for-binary non-session-manager
non-session-manager.x86_64: W: no-manual-page-for-binary nsm-proxy
non-session-manager.x86_64: W: no-manual-page-for-binary nsm-proxy-gui
non-session-manager.x86_64: W: no-manual-page-for-binary nsmd
non-daw-debuginfo.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-sequencer-doc.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-mixer-doc.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-session-manager-doc.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-sequencer.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-sequencer.x86_64: W: no-documentation
non-sequencer.x86_64: W: no-manual-page-for-binary non-sequencer
non-mixer.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-mixer.x86_64: W: no-documentation
non-mixer.x86_64: W: no-manual-page-for-binary non-midi-mapper
non-mixer.x86_64: W: no-manual-page-for-binary non-mixer
non-mixer.x86_64: W: no-manual-page-for-binary non-mixer-noui
non-daw.x86_64: W: incoherent-version-in-changelog 1.2.0-19.gitbbe83864 ['1.2.0-19.20200307gitbbe8386.fc33', '1.2.0-19.20200307gitbbe8386']
non-daw.x86_64: W: invalid-url URL: https://non.tuxfamily.org/ <urlopen error [Errno -2] Name or service not known>
non-daw.x86_64: W: no-manual-page-for-binary import-ardour-session_gui
non-daw.x86_64: W: no-manual-page-for-binary non-daw
non-daw.x86_64: W: no-manual-page-for-binary non-timeline
9 packages and 0 specfiles checked; 0 errors, 25 warnings.



Source checksums
----------------
https://git.tuxfamily.org/non/non.git/snapshot/non-bbe8386499621c8e60eebb06d80e966f13a69a95.tar.gz :
  CHECKSUM(SHA256) this package     : 4ea2d5abd810d00b4fb99b5f79383c09bd9e59f36f356c9371100fd06bc30f8a
  CHECKSUM(SHA256) upstream package : 4ea2d5abd810d00b4fb99b5f79383c09bd9e59f36f356c9371100fd06bc30f8a


Requires
--------
non-daw (rpmlib, GLIBC filtered):
    hicolor-icon-theme
    jack-audio-connection-kit
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjack.so.0()(64bit)
    liblo.so.7()(64bit)
    libm.so.6()(64bit)
    libntk.so.1()(64bit)
    libntk_images.so.1()(64bit)
    libpthread.so.0()(64bit)
    libsndfile.so.1()(64bit)
    libsndfile.so.1(libsndfile.so.1.0)(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    rtld(GNU_HASH)

non-mixer (rpmlib, GLIBC filtered):
    hicolor-icon-theme
    jack-audio-connection-kit
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjack.so.0()(64bit)
    liblo.so.7()(64bit)
    liblrdf.so.2()(64bit)
    libm.so.6()(64bit)
    libntk.so.1()(64bit)
    libntk_images.so.1()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    rtld(GNU_HASH)

non-mixer-doc (rpmlib, GLIBC filtered):

non-session-manager (rpmlib, GLIBC filtered):
    hicolor-icon-theme
    jack-audio-connection-kit
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjack.so.0()(64bit)
    liblo.so.7()(64bit)
    libntk.so.1()(64bit)
    libntk_images.so.1()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)

non-session-manager-doc (rpmlib, GLIBC filtered):

non-sequencer (rpmlib, GLIBC filtered):
    hicolor-icon-theme
    jack-audio-connection-kit
    libX11.so.6()(64bit)
    libc.so.6()(64bit)
    libcairo.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjack.so.0()(64bit)
    liblo.so.7()(64bit)
    libm.so.6()(64bit)
    libntk.so.1()(64bit)
    libntk_images.so.1()(64bit)
    libpthread.so.0()(64bit)
    libsigc-2.0.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)

non-sequencer-doc (rpmlib, GLIBC filtered):

non-daw-debuginfo (rpmlib, GLIBC filtered):

non-daw-debugsource (rpmlib, GLIBC filtered):



Provides
--------
non-daw:
    application()
    application(non-timeline.desktop)
    non-daw
    non-daw(x86-64)

non-mixer:
    application()
    application(non-mixer.desktop)
    non-mixer
    non-mixer(x86-64)

non-mixer-doc:
    non-mixer-doc
    non-mixer-doc(x86-64)

non-session-manager:
    application()
    application(non-session-manager.desktop)
    non-session-manager
    non-session-manager(x86-64)

non-session-manager-doc:
    non-session-manager-doc
    non-session-manager-doc(x86-64)

non-sequencer:
    application()
    application(non-sequencer.desktop)
    non-sequencer
    non-sequencer(x86-64)

non-sequencer-doc:
    non-sequencer-doc
    non-sequencer-doc(x86-64)

non-daw-debuginfo:
    debuginfo(build-id)
    non-daw-debuginfo
    non-daw-debuginfo(x86-64)

non-daw-debugsource:
    non-daw-debugsource
    non-daw-debugsource(x86-64)

Comment 16 Erich Eickmeyer 2020-03-22 16:22:41 UTC
Changelog version is fixed. Thanks for everything Guido!

Comment 17 Fedora Update System 2020-03-26 18:09:15 UTC
FEDORA-2020-a005abf478 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-a005abf478

Comment 18 Fedora Update System 2020-03-26 18:17:08 UTC
FEDORA-2020-12306c4ae6 has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2020-12306c4ae6

Comment 19 Fedora Update System 2020-03-27 15:58:39 UTC
FEDORA-2020-a005abf478 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-a005abf478 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-a005abf478

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 20 Fedora Update System 2020-03-27 19:12:30 UTC
FEDORA-2020-12306c4ae6 has been pushed to the Fedora 31 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-12306c4ae6 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-12306c4ae6

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 21 Fedora Update System 2020-04-04 00:45:16 UTC
FEDORA-2020-a005abf478 has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 22 Fedora Update System 2020-04-04 03:22:05 UTC
FEDORA-2020-12306c4ae6 has been pushed to the Fedora 31 stable repository.
If problem still persists, please make note of it in this bug report.


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