Bug 34201 - в libSDL2_mixer-2.0.2-alt1.S1 сломана поддержка Ogg Vorbis
Summary: в libSDL2_mixer-2.0.2-alt1.S1 сломана поддержка Ogg Vorbis
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: libSDL2_mixer (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Денис Назаров
QA Contact: qa-sisyphus
URL: http://git.altlinux.org/beehive/logs/...
Keywords:
Depends on:
Blocks:
 
Reported: 2017-11-15 23:09 MSK by viy
Modified: 2017-11-29 18:54 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description viy 2017-11-15 23:09:25 MSK
wesnoth перестал собираться, оказалось, из-за 
libSDL2_mixer-2.0.2-alt1.S1. Похоже, в апстриме сломали.
проблема именно в libSDL2_mixer-2.0.2-alt1.S1.
c libSDL2_mixer-2.0.1-alt1.1 wesnoth собирается успешно.

готовые тестовые программы можно взять в в подпапке build/
при сборке wesnoth.
RPM/BUILD/wesnoth/build/config.log:

scons: Configure: Checking for Ogg Vorbis support in SDL... 
build/sconf_temp/conftest_26.c <-
  |#include <SDL_mixer.h>
  | #include <stdlib.h>
  |
  | int main(int argc, char **argv)
  | {
  | Mix_Music* music = Mix_LoadMUS("/usr/src/RPM/BUILD/wesnoth-1.13.10/data/core/music/main_menu.ogg");
  | if (music == NULL) {
  |            exit(1);
  |        }
  |        exit(0);
  |    }
gcc -o build/sconf_temp/conftest_26.o -c -std=c99 -W -Wall -D_REENTRANT -isystem /usr/include/SDL2 build/sconf_temp/conftest_26.c
build/sconf_temp/conftest_26.c: In function 'main':
build/sconf_temp/conftest_26.c:4:15: warning: unused parameter 'argc' [-Wunused-parameter]
  int main(int argc, char **argv)
               ^~~~
build/sconf_temp/conftest_26.c:4:28: warning: unused parameter 'argv' [-Wunused-parameter]
  int main(int argc, char **argv)
                            ^~~~
gcc -o build/sconf_temp/conftest_26 -Wl,--enable-new-dtags build/sconf_temp/conftest_26.o -lm -lcrypto -lboost_iostreams-mt -lpthread -lboost_system-mt -lboost_random-mt -lboost_filesystem-mt -lboost_locale-mt -lSDL2 -lSDL2_ttf -lSDL2_mixer -lSDL2_image -lvorbisfile
build/sconf_temp/conftest_26 > build/sconf_temp/conftest_26.out
build/sconf_temp/conftest_27.c <-
  |#include <SDL_mixer.h>
  | #include <stdlib.h>
  |
  | int main(int argc, char **argv)
  | {
  | Mix_Music* music = Mix_LoadMUS("data/core/music/main_menu.ogg");
  | if (music == NULL) {
  |            exit(1);
  |        }
  |        exit(0);
  |    }
gcc -o build/sconf_temp/conftest_27.o -c -std=c99 -W -Wall -D_REENTRANT -isystem /usr/include/SDL2 build/sconf_temp/conftest_27.c
build/sconf_temp/conftest_27.c: In function 'main':
build/sconf_temp/conftest_27.c:4:15: warning: unused parameter 'argc' [-Wunused-parameter]
  int main(int argc, char **argv)
               ^~~~
build/sconf_temp/conftest_27.c:4:28: warning: unused parameter 'argv' [-Wunused-parameter]
  int main(int argc, char **argv)
                            ^~~~
gcc -o build/sconf_temp/conftest_27 -Wl,--enable-new-dtags build/sconf_temp/conftest_27.o -lm -lcrypto -lboost_iostreams-mt -lpthread -lboost_system-mt -lboost_random-mt -lboost_filesystem-mt -lboost_locale-mt -lSDL2 -lSDL2_ttf -lSDL2_mixer -lSDL2_image -lvorbisfile
build/sconf_temp/conftest_27 > build/sconf_temp/conftest_27.out
scons: Configure: no
(тестовые программы завершаются с кодом возврата 1)
Comment 1 Денис Назаров 2017-11-18 13:15:25 MSK
У меня вот такая ошибка получается:

Building target platforms: x86_64
Building for target x86_64
Wrote: /usr/src/in/srpm/wesnoth-1.13.8-alt1.src.rpm
Installing wesnoth-1.13.8-alt1.src.rpm
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.94193
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf wesnoth-1.13.8
+ echo 'Source #0 (wesnoth-1.13.8.tar):'
Source #0 (wesnoth-1.13.8.tar):
+ /bin/tar -xf /usr/src/RPM/SOURCES/wesnoth-1.13.8.tar
+ cd wesnoth-1.13.8
+ /bin/chmod -c -Rf u+rwX,go-w .
+ echo 'Patch #0 (wesnoth-1.13.8-boost1.64.patch):'
Patch #0 (wesnoth-1.13.8-boost1.64.patch):
+ /usr/bin/patch -p1
patching file src/tests/main.cpp
+ exit 0
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.38553
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd wesnoth-1.13.8
+ scons all prefix=/usr bindir=/usr/bin libdir=/usr/lib64 fifodir=/var/run/wesnothd datadirname=wesnoth docdir=/usr/share/doc/wesnoth 'extra_flags_release=-pipe -Wall -g -O3'
scons: Reading SConscript files ...

scons: warning: EnsureSConsVersion is ignored for development version
File "/usr/src/RPM/BUILD/wesnoth-1.13.8/SConstruct", line 10, in <module>
Building Wesnoth version 1.13.8
Mkdir("build")
---[checking prerequisites]---
Checking for C header file poll.h... yes
Checking for C header file sys/poll.h... yes
Checking for C header file sys/select.h... yes
Checking for C header file sys/sendfile.h... yes
Checking for C function sendfile()... yes
Checking for C library m... yes
Checking for C function round()... yes
Checking if floating point numbers are in the IEEE 754 format... yes
Checking whether C++ compiler works (g++ version >= 4.8 required)... yes
Checking for Boost iostreams library version >= 1.48.0... yes
Checking for gzip support in Boost Iostreams... yes
Checking for bzip2 support in Boost Iostreams... yes
Checking for C library pthread... yes
Checking for Boost system library... yes
Checking for Boost asio library... yes
Checking for Boost random library version >= 1.48.0... yes
Checking for Boost smart_ptr library... yes
Checking for Boost system library... yes
Checking for Boost filesystem library version >= 1.48.0... yes
Checking for Boost locale library... yes
INFO: Base prerequisites are met
Checking for Simple DirectMedia Layer library version >= 2.0.4... yes
Checking for SDL2_ttf library... yes
Checking for SDL2_mixer library... yes
Checking for SDL2_image library... yes
Checking for C library vorbisfile... yes
Checking for Ogg Vorbis support in SDL... no
Checking for PNG support in SDL... yes
Checking for JPG support in SDL... yes
Checking for Cairo... (cached) yes
Checking for Pango with cairo backend... (cached) yes
Checking for fontconfig... (cached) yes
Checking for Boost program_options library version >= 1.48.0... yes
Checking for Boost thread library... yes
Checking for Boost regex library... yes
WARNING: Client prerequisites are not met. wesnoth cannot be built
WARNING: Unit tests are disabled because their prerequisites are not met
  If any config checks fail, look in build/config.log for details
  If a check fails spuriously due to caching, use --config=force to force its rerun
---[applying configuration]---
error: No repo or cache detected.
scons: done reading SConscript files.
scons: Building targets ...
error_action(["wesnoth"], [])
scons: *** [wesnoth] Target disabled because its prerequisites are not met
scons: building terminated because of errors.
error: Bad exit status from /usr/src/tmp/rpm-tmp.38553 (%build)


RPM build errors:
    Bad exit status from /usr/src/tmp/rpm-tmp.38553 (%build)
Command exited with non-zero status 1
17.16user 2.51system 0:19.83elapsed 99%CPU (0avgtext+0avgdata 245680maxresident)k
0inputs+0outputs (0major+616668minor)pagefaults 0swaps
hsh-rebuild: rebuild of `pkg.tar' failed.

Про тесты всего-лишь WARNING, а не ERROR вроде...
Comment 2 viy 2017-11-18 13:24:04 MSK
ну да.
[...]
Checking for Ogg Vorbis support in SDL... no
[...]
и выбивает.

тестовая программа на С не может проиграть .ogg файл.
Comment 3 Денис Назаров 2017-11-19 00:11:39 MSK
Да, с 2.0.1 в этом месте проходит нормально.
Попробую найти патч для исправления...
Comment 4 Michael Shigorin 2017-11-19 21:34:49 MSK
(В ответ на комментарий №3)
> Попробую найти патч для исправления...
"SDL2_mixer" "2.0.2" wesnoth ogg patch сходу безрезультатно -- похоже,
стоит сообщить о регрессии апстриму по возможности.
Comment 5 viy 2017-11-29 18:50:46 MSK
похоже, все-таки, это не проблема libSDL2_mixer
см.
https://github.com/wesnoth/wesnoth/issues/2137
закрываю.
Comment 6 viy 2017-11-29 18:54:23 MSK
там в SDL2_mixer что-то все же поменялось, но wesnoth приспособился.
так что я соберу.

 Fix Scons for SDL2_mixer 2.0.2

With the change from SDL_mixer 2.0.1 to 2.0.2, we cannot simply check if SDL_mixer can open an OGG/Vorbis file, we must first open an audio device. [This is probably a mistake, since the documentation implies simply initializing the codec should be enough.] To avoid future problems, upgrade the feature-test program to perform a full initialization and shut-down; everything except actually playing the sound.