Bug 848144
Summary: | Review Request: SDL2 A cross-platform multimedia library | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | MERCIER Jonathan <bioinfornatics> | ||||||
Component: | Package Review | Assignee: | Nobody's working on this, feel free to take it <nobody> | ||||||
Status: | CLOSED DUPLICATE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
Severity: | unspecified | Docs Contact: | |||||||
Priority: | unspecified | ||||||||
Version: | rawhide | CC: | besser82, bioinfornatics, cfergeau, notting, package-review, paulo.cesar.pereira.de.andrade, ppisar | ||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2013-06-26 23:35:01 UTC | Type: | Bug | ||||||
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: | 201449 | ||||||||
Attachments: |
|
Description
MERCIER Jonathan
2012-08-14 18:24:29 UTC
Release: 1.%{alphatag}%{?dist}.3 The .3 should not be here, and I'm unsure about the 1. prefix (looking at http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages ) Why this specific revision (9612bcd79130)? Is it recommended by upstream? Used by other distros? or just random? The BuildRequires: geany and generation of the geany tags are unneeded and don't belong there imo. chmod 644 $(find src \( -name "*.c" -or -name "*.h" \) ) Do you get any issues if you don't change the file permissions? If yes, this should be mentioned in the comment above, if not, I think you can tell rpm to adjust the file permissions for you in %file (In reply to comment #1) > Release: 1.%{alphatag}%{?dist}.3 > > The .3 should not be here, and I'm unsure about the 1. prefix (looking at > http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages ) I agree .3 is an artifact > Why this specific revision (9612bcd79130)? Is it recommended by upstream? > Used by other distros? or just random? Not recommended by upstream i taken the last revision from mercurial repo. I will work with upstream. As achlinux has already SDL2 into their repository they are no reason to do same. In more SDL do not override SDL 1.2 . > The BuildRequires: geany and generation of the geany tags are unneeded and > don't belong there imo. Ok it was to help developer. > chmod 644 $(find src \( -name "*.c" -or -name "*.h" \) ) > Do you get any issues if you don't change the file permissions? If yes, this > should be mentioned in the comment above, if not, I think you can tell rpm > to adjust the file permissions for you in %file debuginfo take this sources files then %attr is not useful here spec: http://bioinfornatics.fedorapeople.org/SDL2.spec srpms: http://bioinfornatics.fedorapeople.org/SDL2-2-2.20120812hg9612bcd79130.fc17.src.rpm thanks Upstream provides snapshots <http://www.libsdl.org/tmp/>. *** Bug 767528 has been marked as a duplicate of this bug. *** $ rpmlint /home/builder/rpmbuild/SRPMS/SDL2-2.0.0-3.fc17.src.rpm /home/builder/rpmbuild/RPMS/x86_64/SDL2-2.0.0-3.fc17.x86_64.rpm /home/builder/rpmbuild/RPMS/x86_64/SDL2-devel-2.0.0-3.fc17.x86_64.rpm /home/builder/rpmbuild/RPMS/x86_64/SDL2-debuginfo-2.0.0-3.fc17.x86_64.rpm SDL2.src: W: spelling-error Summary(fr) multi -> mufti, multiple SDL2.src: W: spelling-error %description -l fr multi -> mufti, multiple SDL2.x86_64: W: spelling-error Summary(fr) multi -> mufti, multiple SDL2.x86_64: W: spelling-error %description -l fr multi -> mufti, multiple SDL2-devel.x86_64: W: no-manual-page-for-binary sdl2-config 4 packages and 0 specfiles checked; 0 errors, 5 warnings spec: http://bioinfornatics.fedorapeople.org/SDL2.spec srpms: http://bioinfornatics.fedorapeople.org/SDL2-2.0.0-3.fc17.src.rpm 404 not found for both downloads yes that is true i update the organization. Now i put all my pending package into http://bioinfornatics.fedorapeople.org/packages/ srpms: http://bioinfornatics.fedorapeople.org/packages/SDL2-2-2.20120812hg9612bcd79130.fc17.src.rpm spec: http://bioinfornatics.fedorapeople.org/packages/SDL2.spec Created attachment 672205 [details]
spec cleanup
* The linked spec file is an older one. The src.rpm is much newer.
* As I've noticed lots of "no" results for the various checks during the configure step, I skimmed over the spec file and fixed several minor issues. The diff should be self-explaining.
* SDL2-devel.x86_64 will conflict with SDL2-devel.i686 due to the sdl2-config script
* .pc file:
$ pkg-config sdl2 --libs
-Wl,-rpath,/usr/lib64 -lSDL2 -lpthread
It includes duplicated -lpthread options and another -lSDL2 in the .private section:
$ grep pth /usr/lib64/pkgconfig/sdl2.pc
Libs: -L${libdir} -Wl,-rpath,${libdir} -lSDL2 -lpthread
Libs.private: -lSDL2 -lpthread -lm -ldl -lpthread
* Several build requirements seem to be missing. The test programs in the "test" subdirectory fail to build due to that.
* If this SDL2 is rebuilt with added BuildRequires, the tests can be built, too.
The resulting binary rpm is missing shared library dependencies. Oh, the libs are loaded dynamically by SDL - run-time RPM dependencies will be needed for them, too, however, probably not limited to these:
$ grep DYNA config.status
D["SDL_AUDIO_DRIVER_ALSA_DYNAMIC"]=" \"libasound.so.2\""
D["SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC"]=" \"libpulse-simple.so.0\""
D["SDL_VIDEO_DRIVER_X11_DYNAMIC"]=" \"libX11.so.6\""
D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT"]=" \"libXext.so.6\""
D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR"]=" \"libXcursor.so.1\""
D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA"]=" \"libXinerama.so.1\""
D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2"]=" \"libXi.so.6\""
D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR"]=" \"libXrandr.so.2\""
D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE"]=" \"libXxf86vm.so.1\""
(In reply to comment #8) I would like to see a SDL2 package as I almost finished a sample package for http://te4.org but it needs SDL2 (the compatibility layer for SDL 1.2 is broken in the final release). > Created attachment 672205 [details] > spec cleanup My comments after applying this patch. > * The linked spec file is an older one. The src.rpm is much newer. > > * As I've noticed lots of "no" results for the various checks during the > configure step, I skimmed over the spec file and fixed several minor issues. What I did not have installed in a "standard" rawhide: # fatal error: audio/audiolib.h: No such file or directory BuildRequires: nas-devel # fatal error: X11/extensions/scrnsaver.h: No such file or directory BuildRequires: libXScrnSaver-devel # fatal error: GLES/gl.h: No such file or directory BuildRequires: mesa-libGLES-devel # fatal error: tslib.h: No such file or directory BuildRequires: tslib-devel # fatal error: usb.h: No such file or directory BuildRequires: libusb-devel These I presume are missing (cannot fool proof test it right now because mock is broken in rawhide #894623): BuildRequires: alsa-lib-devel BuildRequires: mesa-libGL-devel BuildRequires: libXrandr-devel BuildRequires: libXi-devel BuildRequires: libXinerama-devel BuildRequires: libXcursor-devel > The diff should be self-explaining. > > * SDL2-devel.x86_64 will conflict with SDL2-devel.i686 due to the > sdl2-config script I think this is common practice, just do "repoquery -f" in a few /usr/bin/*-config to verify > * .pc file: > > $ pkg-config sdl2 --libs > -Wl,-rpath,/usr/lib64 -lSDL2 -lpthread > > It includes duplicated -lpthread options and another -lSDL2 in the .private > section: > > $ grep pth /usr/lib64/pkgconfig/sdl2.pc > Libs: -L${libdir} -Wl,-rpath,${libdir} -lSDL2 -lpthread > Libs.private: -lSDL2 -lpthread -lm -ldl -lpthread should also remove the -rpath > * Several build requirements seem to be missing. The test programs in the > "test" subdirectory fail to build due to that. > > * If this SDL2 is rebuilt with added BuildRequires, the tests can be built, > too. > > The resulting binary rpm is missing shared library dependencies. Oh, the > libs are loaded dynamically by SDL - run-time RPM dependencies will be > needed for them, too, however, probably not limited to these: > > $ grep DYNA config.status > D["SDL_AUDIO_DRIVER_ALSA_DYNAMIC"]=" \"libasound.so.2\"" > D["SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC"]=" \"libpulse-simple.so.0\"" > D["SDL_VIDEO_DRIVER_X11_DYNAMIC"]=" \"libX11.so.6\"" > D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT"]=" \"libXext.so.6\"" > D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR"]=" \"libXcursor.so.1\"" > D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA"]=" \"libXinerama.so.1\"" > D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2"]=" \"libXi.so.6\"" > D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR"]=" \"libXrandr.so.2\"" > D["SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE"]=" \"libXxf86vm.so.1\"" These should be added as Requires, e.g.: Requires: libasound Requires: pulseaudio-libs Requires: libXcursor Requires: libXinerama Requires: libXi Requires: libXrandr others should be automatically required by mesa-libGL, and a few of the above already required by any desktop environment, but better to have proper requires. Extra suggestions I have: * Optionally use only %{snapdate} in the release, that is, instead of SDL2-2-2.20120812hg9612bcd79130 call it SDL2-2-2.20120812, but keep metainformation in the spec about proper commit. * Move some README* to the main package, and do not install others. At least README and README-SDL.txt should be in the main package: [...] Please distribute this file with the SDL runtime environment: [...] .android, .iOS, .MacOSX, .WinCE should not be installed. * Instead of removing the .a libraries, maybe create a -static package. Not something to encourage, but static linking would be a way to have some package not breaking in the near future. (In reply to comment #3) > Upstream provides snapshots <http://www.libsdl.org/tmp/>. Probably better to use the upstream snapshots also. The oldest snapshots appear to be one year old. Created attachment 681954 [details]
SDL2.spec
Sample spec with my suggestions and patch in previous attachment.
Note that only a SDL2 package would not be enough. I did some experiments with SDL_ttf built on top of SDL2. Needs a lot of patching, and the "trivial" patch would just create a SDL_ttf that conflicts with the one based on SDL 1.2, so, needs massive patching to call it SDL2_ttf, that is, basically a s/SDL/SDL2/ s/sdl/sdl2/ everywhere but a few places, e.g. need to still call the header SDL.h, what breaks auto{conf,make} implicit rules in configure.* and Makefile.* sorry but finally i do not use enough SDL2 to be a good package maintener. if someone could take SDL2 package … Guess I'll close this, then. If someone else wants to submit this package, please feel free to open a new ticket. Has been resubmitted by ignatenkobrain. *** This bug has been marked as a duplicate of bug 989752 *** |