MPlayer сборка из исходников

Чтобы ни говорили, что Linux стройная и изящная система, но иногда он выбешивает.


Все знают, что в Linux подавлющее число программных пакетов поставляется с исходниками. Ну мало ли, приспичит кого-нибудь собрать свой GIMP или FFmpeg, не вопрос. Собирайте из исходников самостоятельно, никто вам мне препятствует.

На днях занадобилось мне собрать свой MPlayer, так как тот который поставлялся с openSuSe содержал ошибку (да-да и такое бывает в мире открытого программного обеспечения) и отказывался конвертировать видеофайлы. Что же делать? Соберем из исходников.

Шаг 1 (сейчас по-быстрому)

Лезем на сайт за ссылкой на daily build (ведь нам нужно самый свежий вариант) и скачиваем исходники себе.

svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

Шаг 2 (засучив рукава начали)

Переходим в папку mplayer и начинаем собирать:

./configure --prefix=/кудавамтамнадо

Make файл создался без вопросов все готово к сборке. Считай 90% сделано. Сейчас получим свежесобранный MPlayer и станем настоящими властелинами всей MultiMedia.

./make

Теперь можно сходить заварить чаек и расслабиться.

Но придя с чашечкой чая мы видим, что-то пошло не так. Сборка оборвалась с ругательством на отсутствующий «stdatomic.h» файл.

Шаг 3 (сейчас все решим)

Начинаем гуглить про «stdatomic.h». Эка невидаль, 100 раз так было. Сейчас найдем нужный dev rpm и все пойдет, как по маслу. Но чем дальше я гуглил, тем дальше чашечка отодвигалась от клавиатуры. Оказалось, что «stdatomic.h» входит в пакет gcc, того самого компилятора, которым мы MPlayer собрались собирать. А так как команда раработчиков MPlayer перешла на новый gcc, то и нам надо переходить тоже на новый gcc (иначе ничего не получится).

Шаг 4 (что-то пошло не так)

Древний openSuSe, который стоит у меня на компе, естественно никаких обновлений до нового gcc не предлагал. Поэтому собираем gcc из исходников. Лезем на сайт https://gcc.gnu.org/. Скачиваем с зеркала последнюю версию gcc (на этот момент версия 7.2). Распаковываем архив и начинаем компилировать компилятор, да-да, именно так.
Чай к этому времени совсем остыл.

Шаг 5 (началась возня)

Gcc собирается классическим способом (впочем, как и сам MPlayer).

./configure --prefix=/кудавамтамнадо

На этом этапе configure ругнулся на то, что для сборки не хватает кучу пакетов и их бы надо сначала установить. Хорошо, что здесь проблем не возникло ибо у gcc в исходниках есть прекрасный скрипт:

contrib/download_prerequisites

После чего все необходимые пакеты были выгружены из сети и их исходники были распакованы скриптом в дереве исходников самого gcc.

Теперь ./configure ни на что не ругался и создал Makefile.

Ну а дальше дело техники:

make
make install

Сборка gcc длилась 3 часа!!!

Шаг 6 (ну что, рискнем)

Возвращаемся к сборке самого MPlayer.

Так как мы установили gcc в папку «кудавамтамнадо» то сборщику MPlayer нужно указать, где находится свежий gcc:

export PATH=/кудавамтамнадо/gcc72/bin:$PATH
export CC=/кудавамтамнадо/gcc72/bin/gcc
export CXX=/кудавамтамнадо/gcc72/bin/g++

Переходим в папку с исходникам MPlayer и запускаем уже привычные:

./configure
make
make install

Сейчас уже все проходит без ошибок. Так как компилятор новый, то все предупрежедния в консоли будут выделены цветом:

Прошло 4 часа. MPlayer собран и установлен в ту папку, куда вы указали команде ./configure.

Вот такой он, Linux 🙂

 

Почитать еще