| Summary: | RPM Build fails due to unpackaged files | ||
|---|---|---|---|
| Product: | SDL | Reporter: | devbeer <hn9dnd+893p3nczh05m4> |
| Component: | build | Assignee: | Sam Lantinga <slouken> |
| Status: | WAITING --- | QA Contact: | Sam Lantinga <slouken> |
| Severity: | normal | ||
| Priority: | P2 | ||
| Version: | HG 2.1 | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
Can you check to see if this fixes it, with no other local changes? https://hg.libsdl.org/SDL/rev/1b94a9e6746e Thanks! |
Not entirely sure when this broke. Going by some comments in CMakefile I gather RPM is not tested much it at all. The current SDL2.spec fails to build with: Checking for unpackaged file(s): /usr/lib/rpm/check-files /tmp/build/rpmbuild/BUILDROOT/SDL2-2.0.9-2.x86_64 error: Installed (but unpackaged) file(s) found: /usr/lib64/cmake/SDL2/sdl2-config.cmake RPM build errors: Installed (but unpackaged) file(s) found: /usr/lib64/cmake/SDL2/sdl2-config.cmake As I don't see any reference to cmake in the template for this file (SDL2.spec.in), I gather it's been like that for a while. I don't know the history behind why both autotools and cmake exist in such an out of sync state so ignoring autotools and going the cmake route which can generate RPM target files automagically results in a successful build. These should be further refined however tenatively adding them to CMakeFiles.txt will do: if(UNIX AND NOT APPLE) set(CPACK_GENERATOR ${CPACK_GENERATOR};DEB;RPM) endif(UNIX AND NOT APPLE) set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SDL2") set(CPACK_PACKAGE_VENDOR "Cornholio") set(CPACK_PACKAGE_CONTACT "build@localhost") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.txt") set(CPACK_PACKAGE_VERSION_MAJOR ${SDL_MAJOR_VERSION}) set(CPACK_PACKAGE_VERSION_MINOR ${SDL_MINOR_VERSION}) set(CPACK_PACKAGE_VERSION_PATCH ${SDL_MICRO_VERSION}) set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME}{VERSION_MAJOR}.${VERSION_MINOR}) include(CPack) SDL2 as distributed by Fedora ships witih it's own spec file wherein they have added cmake and pkgconf plumbing. This all started because their implementation as it stands now is borken for 32bit builds. ``` # Rename SDL_config.h to SDL_config-<arch>.h to avoid file conflicts on # multilib systems and install SDL_config.h wrapper mv %{buildroot}%{_includedir}/SDL2/SDL_config.h %{buildroot}%{_includedir}/SDL2/SDL_config-%{_arch}.h install -p -m 644 %{SOURCE1} %{buildroot}%{_includedir}/SDL2/SDL_config.h ``` SDL_config-i386.h is not provided by any RPM I could find. I'm adding this here because I can't for the life of me figure out how the hell this happened to such a critical project. And how should it be resolved.