Bug 430545

Summary: SDL-devel does not include libSDLmain.a anymore
Product: [Fedora] Fedora Reporter: Alexandre Silva Lopes <jaslopes>
Component: SDLAssignee: Thomas Woerner <twoerner>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 9CC: kevin, opensource, zprikryl
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 1.2.13-2.fc8 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-07-08 04:47:55 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: 434317, 434443    

Description Alexandre Silva Lopes 2008-01-28 18:20:56 UTC
Description of problem:
libSDLmain.a was removed from SDL-devel and no dynamic library is provided.


Version-Release number of selected component (if applicable): 1.2.13-1


How reproducible: always


Steps to Reproduce:
1. Install SDL-devel 
2. rpm -ql SDL-devel | grep SDLmain
  

Actual results:
rpm -ql SDL-devel | grep SDLmain returns nothing


Expected results:
rpm -ql SDL-devel | grep SDLmain should return /usr/lib*/libSDLmain.a


Additional info:
libSDLmain.a is required to compile, for instance, virtualbox
(http://www.virtualbox.org/)

Comment 1 Fedora Update System 2008-02-01 16:08:25 UTC
SDL-1.2.13-2.fc8 has been submitted as an update for Fedora 8

Comment 2 Fedora Update System 2008-02-02 01:19:50 UTC
SDL-1.2.13-2.fc8 has been pushed to the Fedora 8 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update SDL'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F8/FEDORA-2008-1225

Comment 3 Till Maas 2008-02-02 15:17:07 UTC
Imho the SDL main package should Requires: the -static subpackage util F10 is
released, because this splitup (or removal of the static libraries from
SDL-devel) is a major change, that should only happen within distro upgrades and
mentioned in the release notes.

Comment 4 Alexandre Silva Lopes 2008-02-03 14:08:58 UTC
Is it possible to patch SDL to have a dynamic library for SDLmain? I do not
understand why there is a dynamic library for SDL and only a static for SDLmain,
but I'm just a user...

Comment 5 Fedora Update System 2008-02-16 02:14:50 UTC
SDL-1.2.13-2.fc8 has been pushed to the Fedora 8 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 6 Kevin Kofler 2008-03-11 21:40:00 UTC
> Is it possible to patch SDL to have a dynamic library for SDLmain? I do not
> understand why there is a dynamic library for SDL and only a static for
> SDLmain, but I'm just a user...

libSDLmain contains the main function. Its purpose is to wrap the actual main 
function of the program (which gets renamed to SDL_main) with SDL error 
handling (the parachute system). So main gets renamed to SDL_main in the main 
program and libSDLmain contains the real main function the linker sees. I guess 
this doesn't work with a shared library.

In any case, this is still broken in Rawhide. Libraries which are static only 
should be provided in the -devel package, not -static.

Comment 7 Kevin Kofler 2008-03-11 21:48:38 UTC
See also bug 434317 for a build failure caused by this.

Comment 8 Thomas Woerner 2008-03-12 11:15:16 UTC
One big request (requirement) in the package review of SDL was to remove the
static libraries from the devel package. I have made an extra static package to
not loose them.

Comment 9 Kevin Kofler 2008-03-12 11:23:32 UTC
That makes sense for the libraries with both a static and a dynamic version 
(e.g. libSDL.*), but libSDLmain.a is _only_ static.

Should this be discussed on the fedora-packaging-list maybe? Or brought to the 
attention of the Fedora Packaging Committee? (Their next meeting will be 13 
days from now.)

Comment 10 Till Maas 2008-03-12 19:28:11 UTC
The review guidelines are pretty clear about this imho:
- MUST: Static libraries must be in a -static package.

The reason for this I read on the mailinglist is, that this allows to track
where static libraries are still used easily, to make it easier to remove them.

Comment 11 Kevin Kofler 2008-03-12 20:27:10 UTC
But the guidelines also say:
> When a package only provides static libraries you can place all the files in
> the *-devel subpackage. When doing this you also have to have a virtual
> Provide for the static package: 
>  %package devel
>  Provides: foo-static = %{version}-%{release}

The last part obviously isn't possible here because this package contains 
_both_ libraries which are available as shared and static _and_ a static-only 
library!

They also say:
> If a library you depend on _only_ provides a static version your package can
> link against it provided that you BuildRequire the *-devel subpackage.

The only way BRing SDL-devel rather than SDL-static is going to work here is if 
libSDLmain.a is in SDL-devel, not SDL-static.

Therefore IMHO the right solution is to put libSDLmain.a into SDL-devel and 
libSDL.a (and other static libraries which also have a shared version, if any) 
into SDL-static.

Comment 12 Bug Zapper 2008-05-14 04:54:36 UTC
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 13 Matt Domsch 2008-07-08 04:47:53 UTC
builds as of 2008-07-03, version 1.2.13-4.fc10.