Bug 710917

Summary: Review Request: vmpk - Virtual MIDI Piano Keyboard
Product: [Fedora] Fedora Reporter: Robin Lee <robinlee.sysu>
Component: Package ReviewAssignee: Orcan Ogetbil <oget.fedora>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting, oget.fedora
Target Milestone: ---Flags: oget.fedora: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: vmpk-0.4.0-4.fc15 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-30 00:59:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 744492    
Bug Blocks:    

Description Robin Lee 2011-06-05 19:14:34 UTC
Spec URL: http://cheeselee.fedorapeople.org/vmpk.spec
SRPM URL: http://cheeselee.fedorapeople.org/vmpk-0.4.0-1.fc15.src.rpm
Description:
VMPK is a MIDI event generator/receiver. It doesn't produce any sound by
itself, but can be used to drive a MIDI synthesizer (either hardware or
software, internal or external). You can use the computer's keyboard to play
MIDI notes, and also the mouse. You can use the Virtual MIDI Piano Keyboard to
display the played MIDI notes from another instrument or MIDI file player.

Upstream URL: http://vmpk.sourceforge.net/

Comment 1 Orcan Ogetbil 2011-06-20 04:01:29 UTC
Here is my review for this
- rpmlint output is clean

? The package bundles the rtmidi library. Normally, we do not allow bundled libraries in Fedora. However as far as I remember, the last time we checked (1-2 years ago?), the rtmidi library was not packagable, so we allowed this as an exception. Did you look into this?

* The license tag as GPLv3+ is correct, except the bundled rtmidi library is MIT. Depending on the unbundling situation we might need to add MIT to the license tag.

? Should we build this package with jack support? Jack is the most common sound server used in audio production type applications.

Comment 2 Robin Lee 2011-06-21 13:55:50 UTC
(In reply to comment #1)
> Here is my review for this
> - rpmlint output is clean
> 
> ? The package bundles the rtmidi library. Normally, we do not allow bundled
> libraries in Fedora. However as far as I remember, the last time we checked
> (1-2 years ago?), the rtmidi library was not packagable, so we allowed this as
> an exception. Did you look into this?
rtmidi library is still not dynamically linkable.

> 
> * The license tag as GPLv3+ is correct, except the bundled rtmidi library is
> MIT. Depending on the unbundling situation we might need to add MIT to the
> license tag.
According to https://fedoraproject.org/wiki/Licensing/FAQ#How_should_I_handle_multiple_licensing_situations.3F , since MIT is compatible with GPL, so only GPL is needed listed.

> 
> ? Should we build this package with jack support? Jack is the most common sound
> server used in audio production type applications.
I prefer upstream default setting.

Comment 3 Orcan Ogetbil 2011-06-21 15:40:19 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > Here is my review for this
> > - rpmlint output is clean
> > 
> > ? The package bundles the rtmidi library. Normally, we do not allow bundled
> > libraries in Fedora. However as far as I remember, the last time we checked
> > (1-2 years ago?), the rtmidi library was not packagable, so we allowed this as
> > an exception. Did you look into this?
> rtmidi library is still not dynamically linkable.
> 

No it is not. But
1- It can be made dynamically linkable. But this might conflict with upstream's intentions. It should better be asked upstream.
2- Even if it should remain static, should we not package it separately? I am not sure if bundling is the correct solution.

> > 
> > * The license tag as GPLv3+ is correct, except the bundled rtmidi library is
> > MIT. Depending on the unbundling situation we might need to add MIT to the
> > license tag.
> According to
> https://fedoraproject.org/wiki/Licensing/FAQ#How_should_I_handle_multiple_licensing_situations.3F
> , since MIT is compatible with GPL, so only GPL is needed listed.
> 

I know about that guideline, which contradicts what FE-Legal says. I was thinking exactly the same way you are, and a package reviewer asked me to list all the licenses separately in the license tag of a package that all code was compiled into a single binary. 

I asked FE-Legal, quoting the link you gave above, and they told me to list all the licenses separately:
   https://www.redhat.com/archives/fedora-legal-list/2009-December/msg00029.html


> > 
> > ? Should we build this package with jack support? Jack is the most common sound
> > server used in audio production type applications.
> I prefer upstream default setting.

After you build the "vmpk" binary, you can pass some additional flag to cmake to build another binary with jack support, you can even call the second binary vmpk-jack. Please see the README and CMakeLists.txt files.

$ cmake . -DRTMIDI_DRIVER=JACK -DPROGRAM_NAME=vmpk-jack

Compiling with jack support is important, since we have a large collection of jack-supporting programs, and this will allow "vmpk" to communicate with all of them. jack is pretty much the standard sound server in Linux audio production software. Do you have an argument why compiling with jack support will be bad for Fedora users?

Comment 4 Robin Lee 2011-06-21 18:17:18 UTC
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #1)
> > > Here is my review for this
> > > - rpmlint output is clean
> > > 
> > > ? The package bundles the rtmidi library. Normally, we do not allow bundled
> > > libraries in Fedora. However as far as I remember, the last time we checked
> > > (1-2 years ago?), the rtmidi library was not packagable, so we allowed this as
> > > an exception. Did you look into this?
> > rtmidi library is still not dynamically linkable.
> > 
> 
> No it is not. But
> 1- It can be made dynamically linkable. But this might conflict with upstream's
> intentions. It should better be asked upstream.
> 2- Even if it should remain static, should we not package it separately? I am
> not sure if bundling is the correct solution.
> 
I think we are not necessary to talk about the issue of this library here:

1. The guide line says 'A package should not include or build against a local copy of a library that *exists* on a system.' Since RtMidi doesn't exist in Fedora, we can consider it just part of this very work.

2. We should not choose a shared library name for RtMidi upstream, who doesn't intend to make it a shared library.

I will ask RtMidi upstream for this issue later.

> > > 
> > > * The license tag as GPLv3+ is correct, except the bundled rtmidi library is
> > > MIT. Depending on the unbundling situation we might need to add MIT to the
> > > license tag.
> > According to
> > https://fedoraproject.org/wiki/Licensing/FAQ#How_should_I_handle_multiple_licensing_situations.3F
> > , since MIT is compatible with GPL, so only GPL is needed listed.
> > 
> 
> I know about that guideline, which contradicts what FE-Legal says. I was
> thinking exactly the same way you are, and a package reviewer asked me to list
> all the licenses separately in the license tag of a package that all code was
> compiled into a single binary. 
> 
> I asked FE-Legal, quoting the link you gave above, and they told me to list all
> the licenses separately:
>   
> https://www.redhat.com/archives/fedora-legal-list/2009-December/msg00029.html
> 
I think we can try to ask FPC to make the guidelines for this situation more explicit and detailed.


> 
> > > 
> > > ? Should we build this package with jack support? Jack is the most common sound
> > > server used in audio production type applications.
> > I prefer upstream default setting.
> 
> After you build the "vmpk" binary, you can pass some additional flag to cmake
> to build another binary with jack support, you can even call the second binary
> vmpk-jack. Please see the README and CMakeLists.txt files.
> 
> $ cmake . -DRTMIDI_DRIVER=JACK -DPROGRAM_NAME=vmpk-jack
> 
> Compiling with jack support is important, since we have a large collection of
> jack-supporting programs, and this will allow "vmpk" to communicate with all of
> them. jack is pretty much the standard sound server in Linux audio production
> software. Do you have an argument why compiling with jack support will be bad
> for Fedora users?
OK. Actually I don't have a strong position.

SRPM URL: http://cheeselee.fedorapeople.org/vmpk-0.4.0-2.fc15.src.rpm

Change:
- Use JACK driver instead of ALSA

Comment 5 Orcan Ogetbil 2011-06-26 17:49:39 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> 1. The guide line says 'A package should not include or build against a local
> copy of a library that *exists* on a system.' Since RtMidi doesn't exist in
> Fedora, we can consider it just part of this very work.
> 

Yes, but the common convention is to get the library first into Fedora, then link to the library dynamically or statically. For instance, clementine was bundling libraries
- qtsingleapplication
- qtlockedfile
- qxt
- qtiocompressor
- gmock
- gtest
- libechonest
- libprojectM
We had to package them one by one, and upstream all the clementine's patches before we released clementine under Fedora. Another example was the java DAW frinika.

However, I investigated this further. Unlike rtaudio, rtmidi does not provide any libraries (static or dynamic). They just distribute the source code to be included in other software (as is the case with universalchardet library). So I think we are safe with having it built into vmpk.


> > I asked FE-Legal, quoting the link you gave above, and they told me to list 
> > all the licenses separately:
> >   
> > https://www.redhat.com/archives/fedora-legal-list/2009-December/msg00029.html
> > 
> I think we can try to ask FPC to make the guidelines for this situation more
> explicit and detailed.
> 

Let us know what comes out so we can approve the package. Thanks.


> > Compiling with jack support is important, since we have a large collection of
> > jack-supporting programs, and this will allow "vmpk" to communicate with all of
> > them. jack is pretty much the standard sound server in Linux audio production
> > software. Do you have an argument why compiling with jack support will be bad
> > for Fedora users?
> OK. Actually I don't have a strong position.
> 
> SRPM URL: http://cheeselee.fedorapeople.org/vmpk-0.4.0-2.fc15.src.rpm
> 
> Change:
> - Use JACK driver instead of ALSA

You wight as well compile two binaries, one that uses ALSA, one that uses JACK. I leave it up to you.

Comment 6 Robin Lee 2011-07-30 02:00:54 UTC
License specified to "GPLv3+ and MIT and (LGPLv2 with exceptions or GPLv3)"

Spec URL: http://cheeselee.fedorapeople.org/vmpk.spec
SRPM URL: http://cheeselee.fedorapeople.org/vmpk-0.4.0-3.fc15.src.rpm

Comment 7 Robin Lee 2011-08-23 01:07:48 UTC
Do you still work on this review? I have made an update a couple of weeks ago.

Comment 8 Orcan Ogetbil 2011-08-23 03:21:06 UTC
Oh sorry, it slipped out of my mind. I'll get back to it asap.

Comment 9 Orcan Ogetbil 2011-08-25 02:15:44 UTC
Sorry again for the delay. The package looks good, except the bundled rtmidi library. I asked about this [1] in the Fedora Devel list and apparently, according to the answer I got, you will need to ask FPC (Fedora Packaging Committee) for an exception. Please see [2] for the complete procedure.

[1] http://lists.fedoraproject.org/pipermail/devel/2011-July/153938.html
[2] https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Exceptions

Comment 10 Robin Lee 2011-10-09 03:08:02 UTC
Finally, RtMidi is submitted for review. And vmpk now builds with the shared object.

Spec URL: http://cheeselee.fedorapeople.org/vmpk.spec
SRPM URL: http://cheeselee.fedorapeople.org/vmpk-0.4.0-4.fc15.src.rpm

Changes:
- Use the RtMidi shared object
- License revised to "GPLv3+ and (LGPLv2 with exceptions or GPLv3)"

Comment 11 Robin Lee 2011-12-16 10:04:28 UTC
Do you still work on this review?

Comment 12 Orcan Ogetbil 2011-12-16 13:22:27 UTC
Sorry, I forgot about it. I'll get to this this weekend.

Comment 13 Orcan Ogetbil 2011-12-19 04:00:56 UTC
This package is good to go. Sorry again for the delay. But please keep an eye on qticonloader. If it becomes an independent project we will have to make a separate package for it.

---------------------------------------
This package (vmpk) is APPROVED by oget
---------------------------------------

Comment 14 Robin Lee 2011-12-19 04:08:11 UTC
New Package SCM Request
=======================
Package Name: vmpk
Short Description: Virtual MIDI Piano Keyboard
Owners: cheeeselee
Branches: f15 f16

Comment 15 Gwyn Ciesla 2011-12-19 13:02:41 UTC
Git done (by process-git-requests).

Corrected FAS account name.

Comment 16 Fedora Update System 2011-12-19 14:41:09 UTC
vmpk-0.4.0-4.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/vmpk-0.4.0-4.fc15

Comment 17 Fedora Update System 2011-12-21 16:55:52 UTC
vmpk-0.4.0-4.fc15 has been pushed to the Fedora 15 testing repository.

Comment 18 Fedora Update System 2011-12-30 00:59:50 UTC
vmpk-0.4.0-4.fc15 has been pushed to the Fedora 15 stable repository.