Bug 491421

Summary: fluid soundfont transition
Product: [Fedora] Fedora Reporter: Orcan Ogetbil <oget.fedora>
Component: timidity++Assignee: Jindrich Novy <jnovy>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: green, hdegoede, jnovy, mtasaka, pknirsch
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-04-14 13:36:58 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 492203    

Description Orcan Ogetbil 2009-03-20 21:15:33 UTC
My proposal of making the free fluid soundfont (bug 483376) the Fedora default got approved in the FESCo meeting today.

We need to do some changes in the timidity++ and PersonalCopy-Lite-soundfont packages. Let us start doing this in rawhide (as suggested by FESCo) and after making sure that everything is back in track, we can port the changes down to F-10. I'm omitting F-9 for now. We can update F-9 later if we receive requests.

Here are my suggestions for how to proceed:

------------------------------
Changes in timidity++ package:
------------------------------

*  Replace 
       Requires: PersonalCopy-Lite-soundfont
   with
       Requires: soundfont2
   and I will add the necessary virtual Provides to the fluid-soundfont-gm 
   package. (I don't want to use the hardcoded "fluid-soundfont-gm" package 
   name in the timidity++ SPEC file in case we switch to another soundfont
   in the future.)

*  Replace the line
       echo "soundfont %{_datadir}/soundfonts/PCLite.sf2" > \
   with
       echo "soundfont %{_datadir}/soundfonts/default.sf2" > \
   in the timidity++.spec file. Here default.sf2 will be a symlink provided
   by the fluid-soundfont-gm package that points to the actual soundfont .sf2
   file. (Again, I don't want to use the hardcoded "fluid-soundfont" name 
   for the same reason)


---------------------------------------------------
Changes in the PersonalCopy-Lite-soundfont package:
---------------------------------------------------

We can drop this package altogether since it is nonfree. However, if we decide to keep it, we will need to do the following changes (I vote for dropping it how about you?):

*  We might want to drop
       Provides:       soundfont2
   or add a %version-%release to this.

*  Drop
       Provides:       timidity++-patches = %{version}-%{release}
       Obsoletes:      timidity++-patches <= %{version}-%{release}
   Now we have an issue here, even if we decide to drop PCLite alogether. 
   I will add the above lines to fluid-soundfont-lite-patches package. But
   the current version of fluid-soundfont os 3.1 . PCLite is 4.1 . Shall I
   bump Epoch on fluid-sountfont to provide a valid upgrade path?

*  Drop 
install -p -m 644 PCLite.cfg $RPM_BUILD_ROOT%{_sysconfdir}/timidity.cfg
  or replace it with something like:
install -p -m 644 PCLite.cfg $RPM_BUILD_ROOT%{_sysconfdir}/timidity.cfg.PCLite
  so that it won't conflict with the timidity.cfg file that is provided by
  fluid-soundfont-lite-patches package.



I think this is all we need to do. I am asking for pkgdb requests to both packages to do these changes. But I will wait for a confirmation from you first.

I will go through the packages that require PCLite and the PCLite-patches packages and see if they have the name PCLite hardcoded somewhere. They will need to be changed accordingly.

Anything else that comes to your mind?

Comment 1 Hans de Goede 2009-03-23 15:55:14 UTC
(In reply to comment #0)
> My proposal of making the free fluid soundfont (bug 483376) the Fedora default
> got approved in the FESCo meeting today.
> 
> We need to do some changes in the timidity++ and PersonalCopy-Lite-soundfont
> packages. Let us start doing this in rawhide (as suggested by FESCo) and after
> making sure that everything is back in track, we can port the changes down to
> F-10. I'm omitting F-9 for now. We can update F-9 later if we receive requests.
> 
> Here are my suggestions for how to proceed:
> 
> ------------------------------
> Changes in timidity++ package:
> ------------------------------
> 
> *  Replace 
>        Requires: PersonalCopy-Lite-soundfont
>    with
>        Requires: soundfont2
>    and I will add the necessary virtual Provides to the fluid-soundfont-gm 
>    package. (I don't want to use the hardcoded "fluid-soundfont-gm" package 
>    name in the timidity++ SPEC file in case we switch to another soundfont
>    in the future.)
> 

The virtual soundfont2 provides is supposed to be present in all soundfont2
packages, the idea was to have an easy way to query all soundfont2 containing
packages so if you do "Requires: soundfont2" then you do not know what you will get. How about: "Requires: soundfont2-default" ?

> *  Replace the line
>        echo "soundfont %{_datadir}/soundfonts/PCLite.sf2" > \
>    with
>        echo "soundfont %{_datadir}/soundfonts/default.sf2" > \
>    in the timidity++.spec file. Here default.sf2 will be a symlink provided
>    by the fluid-soundfont-gm package that points to the actual soundfont .sf2
>    file. (Again, I don't want to use the hardcoded "fluid-soundfont" name 
>    for the same reason)
> 

Sounds good, the symlink  is what made me come up with the soundfont2-default virtual provides, then whatever provides that symlink will also provide
soundfont2-default.

> ---------------------------------------------------
> Changes in the PersonalCopy-Lite-soundfont package:
> ---------------------------------------------------
> 
> We can drop this package altogether since it is nonfree. However, if we decide
> to keep it, we will need to do the following changes (I vote for dropping it
> how about you?):
> 

Lets keep it, distributable soundfonts are hard to find, and some people may
prefer this one over fluidsynth for various reasons.

> *  We might want to drop
>        Provides:       soundfont2
>    or add a %version-%release to this.
> 

As discussed before this is intended to be present in any soundfont2
providing packages, atleast that was the original idea.

> *  Drop
>        Provides:       timidity++-patches = %{version}-%{release}
>        Obsoletes:      timidity++-patches <= %{version}-%{release}
>    Now we have an issue here, even if we decide to drop PCLite alogether. 
>    I will add the above lines to fluid-soundfont-lite-patches package. But
>    the current version of fluid-soundfont os 3.1 . PCLite is 4.1 . Shall I
>    bump Epoch on fluid-sountfont to provide a valid upgrade path?
> 

Ack, lets drop the GUS patches subpackage completely. As for the
version problem, all GUS-patches needing packages require timidity++-patches
AFAIK, since the timidity++-patches provides and obsoletes in the fluidsynth
package will be virtual anyways just give them an higher number, I wouldn't introduce an Epoch for this.

> *  Drop 
> install -p -m 644 PCLite.cfg $RPM_BUILD_ROOT%{_sysconfdir}/timidity.cfg
>   or replace it with something like:
> install -p -m 644 PCLite.cfg $RPM_BUILD_ROOT%{_sysconfdir}/timidity.cfg.PCLite
>   so that it won't conflict with the timidity.cfg file that is provided by
>   fluid-soundfont-lite-patches package.
> 

Drop.

> 
> 
> I think this is all we need to do. I am asking for pkgdb requests to both
> packages to do these changes. But I will wait for a confirmation from you
> first.
> 
> I will go through the packages that require PCLite and the PCLite-patches
> packages and see if they have the name PCLite hardcoded somewhere. They will
> need to be changed accordingly.
> 

Ok.

> Anything else that comes to your mind?  

Nope, thanks for doing this. I do wonder with is the size of the fluidsynth GUS patches package?

Also note that I believe that packages which need timidity++-patches, only need
the GM bank, so maybe we can shave of some MB's by not offering any other banks
in the gus patches subpackage of fluidsynth

Comment 2 Orcan Ogetbil 2009-03-23 17:11:58 UTC
(In reply to comment #1)
> (In reply to comment #0)
> > 
> > ------------------------------
> > Changes in timidity++ package:
> > ------------------------------
> > 
> > *  Replace 
> >        Requires: PersonalCopy-Lite-soundfont
> >    with
> >        Requires: soundfont2
> >    and I will add the necessary virtual Provides to the fluid-soundfont-gm 
> >    package. (I don't want to use the hardcoded "fluid-soundfont-gm" package 
> >    name in the timidity++ SPEC file in case we switch to another soundfont
> >    in the future.)
> > 
> 
> The virtual soundfont2 provides is supposed to be present in all soundfont2
> packages, the idea was to have an easy way to query all soundfont2 containing
> packages so if you do "Requires: soundfont2" then you do not know what you 
> will get. How about: "Requires: soundfont2-default" ?
> 

Good idea. Let's do it that way.

> > ---------------------------------------------------
> > Changes in the PersonalCopy-Lite-soundfont package:
> > ---------------------------------------------------
> > 
> > *  Drop
> >        Provides:       timidity++-patches = %{version}-%{release}
> >        Obsoletes:      timidity++-patches <= %{version}-%{release}
> >    Now we have an issue here, even if we decide to drop PCLite alogether. 
> >    I will add the above lines to fluid-soundfont-lite-patches package. But
> >    the current version of fluid-soundfont os 3.1 . PCLite is 4.1 . Shall I
> >    bump Epoch on fluid-sountfont to provide a valid upgrade path?
> > 
> 
> Ack, lets drop the GUS patches subpackage completely. As for the
> version problem, all GUS-patches needing packages require timidity++-patches
> AFAIK, since the timidity++-patches provides and obsoletes in the fluidsynth
> package will be virtual anyways just give them an higher number, I wouldn't
> introduce an Epoch for this.
> 

OK. Lets' drop. But I assume you meant fluid soundfont package, not fluidsynth package (or am I missing something?).

So just give a random number higher than 4.1 for obsoletes/provides in fluid soundfont patches package? 5?

> > Anything else that comes to your mind?  
> 
> Nope, thanks for doing this. I do wonder with is the size of the fluidsynth 
> GUS patches package?
> 
> Also note that I believe that packages which need timidity++-patches, only 
> need the GM bank, so maybe we can shave of some MB's by not offering any 
> other banks in the gus patches subpackage of fluidsynth  

I made some experiments with different configurations. Here's the size of the fluid soundfont patches package in each case:

-Mono   GM+GS   = 170MB
-Stereo GM+GS   = 254MB
-Mono   GM only = 163MB
-Stereo GM only = 247MB

Shall we go with Mono GM only? As far as I know, PCLite patches package is mono anyways.

Comment 3 Hans de Goede 2009-03-23 18:38:28 UTC
(In reply to comment #2)
> (In reply to comment #1)
>
> > Ack, lets drop the GUS patches subpackage completely. As for the
> > version problem, all GUS-patches needing packages require timidity++-patches
> > AFAIK, since the timidity++-patches provides and obsoletes in the fluidsynth
> > package will be virtual anyways just give them an higher number, I wouldn't
> > introduce an Epoch for this.
> > 
> 
> OK. Lets' drop. But I assume you meant fluid soundfont package, not fluidsynth
> package (or am I missing something?).
> 

Yes I meant fluid soundfont, sorry.
> So just give a random number higher than 4.1 for obsoletes/provides in fluid
> soundfont patches package? 5?
>

5 sounds fine.
 
> > > Anything else that comes to your mind?  
> > 
> > Nope, thanks for doing this. I do wonder with is the size of the fluidsynth 
> > GUS patches package?
> > 
> > Also note that I believe that packages which need timidity++-patches, only 
> > need the GM bank, so maybe we can shave of some MB's by not offering any 
> > other banks in the gus patches subpackage of fluidsynth  
> 
> I made some experiments with different configurations. Here's the size of the
> fluid soundfont patches package in each case:
> 
> -Mono   GM+GS   = 170MB
> -Stereo GM+GS   = 254MB
> -Mono   GM only = 163MB
> -Stereo GM only = 247MB
> 
> Shall we go with Mono GM only? As far as I know, PCLite patches package is mono
> anyways.  

Ugh thats huge, in that case lets go mono, but keep the GS set, something may
be using that.

Have you tried experimenting with the -s option to unsf, which uses only one
layer for each instrument? This may seem like a bad idea, but in practice it
doesn't hurd as no programs support the gus format extensions for allowing
multiple layers, so they all end up using the default layer anyways.

Comment 4 Orcan Ogetbil 2009-03-23 19:29:13 UTC
(In reply to comment #3)
> Have you tried experimenting with the -s option to unsf, which uses only one
> layer for each instrument? This may seem like a bad idea, but in practice it
> doesn't hurd as no programs support the gus format extensions for allowing
> multiple layers, so they all end up using the default layer anyways.  

Oh yes. Remember I told you the package size was 2+ GB the first time I tried to build it? -s helped me a lot cutting that size down. I also removed some not-so-standard banks to get it down to the order of ~200MB.

OK then, we're ready to go. Could you do these changes in the timidity++ package (I don't have the ACL yet):

*  Replace 
       Requires: PersonalCopy-Lite-soundfont
   with
       Requires: soundfont2-default

*  Replace the line
       echo "soundfont %{_datadir}/soundfonts/PCLite.sf2" > \
   with
       echo "soundfont %{_datadir}/soundfonts/default.sf2" > \


I'll take care of the rest (on the PCLite and fluid soundfonts side). I'll also see if we need to make changes on the dependent packages.

Comment 5 Hans de Goede 2009-03-24 10:45:00 UTC
Ok, here is a new build with the requested changes:
http://koji.fedoraproject.org/koji/buildinfo?buildID=95230

This will show up in rawhide when we unfreeze from the beta freeze.

Comment 6 Mamoru TASAKA 2009-03-26 14:06:07 UTC
Reopening.

Please make PersonalCopy-Lite-soundfont obsolete PersonalCopy-Lite-patches.
Current my system has:
--------------------------------------------------------
fluid-soundfont-gm-3.1-2.fc11.noarch
PersonalCopy-Lite-patches-4.1-4.fc11.noarch
PersonalCopy-Lite-soundfont-4.1-5.fc11.noarch
--------------------------------------------------------

and rpm -e --test PersonalCopy-Lite-patches shows:
--------------------------------------------------------
$ LANG=C rpm -e --test PersonalCopy-Lite-patches
error: Failed dependencies:
        timidity++-patches is needed by (installed) SDL_mixer-1.2.8-11.fc11.i586
        timidity++-patches is needed by (installed) gt-0.4-8.fc11.i586
--------------------------------------------------------

Comment 7 Hans de Goede 2009-03-26 15:37:58 UTC
(In reply to comment #6)
> Reopening.
> 
> Please make PersonalCopy-Lite-soundfont obsolete PersonalCopy-Lite-patches.
> Current my system has:
> --------------------------------------------------------
> fluid-soundfont-gm-3.1-2.fc11.noarch
> PersonalCopy-Lite-patches-4.1-4.fc11.noarch
> PersonalCopy-Lite-soundfont-4.1-5.fc11.noarch
> --------------------------------------------------------
> 
> and rpm -e --test PersonalCopy-Lite-patches shows:
> --------------------------------------------------------
> $ LANG=C rpm -e --test PersonalCopy-Lite-patches
> error: Failed dependencies:
>         timidity++-patches is needed by (installed)
> SDL_mixer-1.2.8-11.fc11.i586
>         timidity++-patches is needed by (installed) gt-0.4-8.fc11.i586
> --------------------------------------------------------  

Good catch, but actually, PersonalCopy-Lite-patches should be obsoleted by
fluid-soundfont-lite-patches, as that now provides timidity++-patches.

Oget, can you take care of this and then close this bug again please?

Thanks.

Comment 8 Orcan Ogetbil 2009-03-26 16:03:56 UTC
Sure I'll take care of it. Just add
   Obsoletes: PersonalCopy-Lite-patches
(no version or anything) to fluid-soundfont-lite-patches, right?

Comment 9 Orcan Ogetbil 2009-03-26 16:17:59 UTC
I don't get this. The fluid-soundfont-lite-patches package currently has
   Provides:       timidity++-patches = 5
   Obsoletes:      timidity++-patches <= 5

The PersonalCopy-Lite-patches package Mamoru has installed has
   Provides:       timidity++-patches = %{version}-%{release}
   Obsoletes:      timidity++-patches <= %{version}-%{release}
where %{version} is 4.1 . 

Why doesn't Mamoru's depsolver obsolete 
timidity++-patches (= 4.1, which is PersonalCopy-Lite-patches) 
in favor of 
timidity++-patches (= 5, which is fluid-soundfont-lite-patches) ?

Comment 10 Mamoru TASAKA 2009-03-26 16:40:34 UTC
Well,

(In reply to comment #9)
> I don't get this. The fluid-soundfont-lite-patches package currently has
>    Provides:       timidity++-patches = 5
>    Obsoletes:      timidity++-patches <= 5

Current rpm does _not_ consider Obsoletes for "virtual" provides.
This Obsoletes works only for "timidity++-patches" rpm.
(note: rpm used to consider Obsoletes for "virtual" provides,
 however these caused various problem and lots of people complained
 about this rpm behavior, so this behavior was intentionally dropped)

> The PersonalCopy-Lite-patches package Mamoru has installed has
>    Provides:       timidity++-patches = %{version}-%{release}
>    Obsoletes:      timidity++-patches <= %{version}-%{release}
> where %{version} is 4.1 . 

And same for this.

(In reply to comment #8)
> Sure I'll take care of it. Just add
>    Obsoletes: PersonalCopy-Lite-patches
> (no version or anything) to fluid-soundfont-lite-patches, right?  

No version is always discourged (by the way I am not sure
if adding Obsoletes: PersonalCopy-Lite-patches on 
fluid-soundfont-lite-patches really works)

Comment 11 Orcan Ogetbil 2009-03-26 17:59:55 UTC
*** Bug 470914 has been marked as a duplicate of this bug. ***

Comment 12 Orcan Ogetbil 2009-03-26 18:04:48 UTC
Sorry for the wrong duplicate above. It is not related to this bug.

I will test if the Obsoletes: PersonalCopy-Lite-patches on fluid-soundfont-lite-patches would work in my local repo and proceed accordingly.

Comment 13 Orcan Ogetbil 2009-03-26 21:07:11 UTC
I tested Obsoletes: PersonalCopy-Lite-patches on fluid-soundfont-lite-patches and it works on my local repo. I rebuilt fluid-soundfont with this change in rawhide.

Hans, I checked all the PersonalCopy dependent packages. The only ones that will be affected on F-10 are actually my packages and I can update them simultaneously with PCLite/timidity/fluid on F-10 after we are sure that the upgrade path works correctly.

Mamoru, could you please report your situation after the new fluid-soundfont gets in the mirrors?

Comment 14 Mamoru TASAKA 2009-03-27 06:33:50 UTC
Now upgrade path seems to be working correctly, thank you.

[root@localhost System]# LANG=C yum --disablerepo=koji-10 -y upgrade --exclude=kernel --exclude=kernel\* --exclude=xorg-x11-drv-intel --exclude=xorg-x11-drv-i\* --exclude=thunderbird  --exclude=mesa\* --exclude=glx-utils
Excluding Packages in global exclude list
Finished
Setting up Upgrade Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
---> Package fluid-soundfont-common.noarch 0:3.1-3.fc11 set to be updated
---> Package fluid-soundfont-gm.noarch 0:3.1-3.fc11 set to be updated
---> Package fluid-soundfont-lite-patches.noarch 0:3.1-3.fc11 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package                        Arch      Version     Repository   Size
==========================================================================
Installing:
 fluid-soundfont-lite-patches   noarch    3.1-3.fc11  koji-11      163 M
     replacing  PersonalCopy-Lite-patches.noarch 4.1-4.fc11

Updating:
 fluid-soundfont-common         noarch    3.1-3.fc11  koji-11       81 k
 fluid-soundfont-gm             noarch    3.1-3.fc11  koji-11      126 M

Transaction Summary
==========================================================================
Install      1 Package(s)         
Update       2 Package(s)         
Remove       0 Package(s)         

Total download size: 288 M
Downloading Packages:
(1/3): fluid-soundfont-common-3.1-3.fc11.noarch.rpm       |  81 kB  00:00     
(2/3): fluid-soundfont-gm-3.1-3.fc11.noarch.rpm           | 126 MB  05:54     
(3/3): fluid-soundfont-lite-patches-3.1-3.fc11.noarch.rpm | 163 MB  07:30     
--------------------------------------------------------------------------
Total                                            366 kB/s | 288 MB  13:27     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : fluid-soundfont-common         1/6 
  Updating       : fluid-soundfont-gm             2/6 
  Installing     : fluid-soundfont-lite-patches   3/6 
  Cleanup        : fluid-soundfont-gm             4/6 
  Erasing        : PersonalCopy-Lite-patches      5/6 
  Cleanup        : fluid-soundfont-common         6/6 

Installed:
  fluid-soundfont-lite-patches.noarch 0:3.1-3.fc11
            
Updated:
  fluid-soundfont-common.noarch 0:3.1-3.fc11
  fluid-soundfont-gm.noarch 0:3.1-3.fc11               

Replaced:
  PersonalCopy-Lite-patches.noarch 0:4.1-4.fc11   

Complete!

Comment 15 Orcan Ogetbil 2009-03-27 08:12:33 UTC
Great! You're welcome.

Comment 16 Orcan Ogetbil 2009-04-14 06:13:50 UTC
Hans, I think things have settled down in rawhide and we didn't get any complaints. Shall we submit these changes to F-10-testing too? Or should I just build fluid-soundfont without the patches for F-10 and forget about it? What do you think?

Comment 17 Hans de Goede 2009-04-14 07:12:58 UTC
(In reply to comment #16)
> Hans, I think things have settled down in rawhide and we didn't get any
> complaints. Shall we submit these changes to F-10-testing too? Or should I just
> build fluid-soundfont without the patches for F-10 and forget about it? What do
> you think?  

I think it is best to just build fluid-soundfont without the patches for F-10,
this will avoid users having to download 200+ Mb for something which is not a
bugfix.

Comment 18 Orcan Ogetbil 2009-04-14 13:36:58 UTC
That's fine with me. Alright then, we're done with this bug. Setting once more to "closed rawhide"...

Thanks everyone!