Сборка Wine из исходников в Debian

Впервые опубликовано 2008-01-15.

Получение свежих исходников

Для работы с репозиторием Wine вам потребуется программа git (в Debian пакет с нею называется git-core).

Чтобы получить текущую версию исходного кода Wine, необходимо выполнить:

git clone git://source.winehq.org/git/wine.git wine

Будет создан каталог wine/, внутри которого Git настроит локальный репозиторий и скопирует в него с репозитория Wine самую свежую на текущий момент копию дерева исходных кодов.

Для обновления ранее созданного локального репозитория, нужно перейти в каталог с ним и выполнить:

git fetch && git rebase origin

Если вы изменяли файлы в локальной копии исходных кодов, но потом захотели удалить все изменения и вернуться обратно к “чистой” официальной версии, можно сделать это следующей командой:

git reset --hard origin

Подробности по работе с git описаны на сайте Wine, либо в man git.

Применение патчей

Часто, причиной сборки программ из исходных кодов является желание получить версию программы, в которой включены некие неофициальные изменения (патчи). Предположим, они находятся одним уровнем выше каталога с локальным репозиторием Git. Тогда, находясь внутри этого каталога, для их применения следует выполнить:

patch -p1 -N < ../SomePatchFile.patch

Подробности см. в man patch.

Установка зависимостей

Если у вас в /etc/apt/sources.lst прописаны репозитории исходных кодов (deb-src), для установки всех необходимых для сборки Wine библиотек можно выполнить:

apt-get update
apt-get build-dep wine

Если же репозитории исходных кодов вы не используете, установить библиотеки поможет примерно такая команда:

sudo apt-get install \
  gcc-4.4 gcc-4.4-multilib make prelink flex bison \
  libx11-dev libxinerama-dev libxcomposite-dev libxrandr-dev libxrender-dev libxxf86vm-dev libxi-dev libxcursor-dev \
  libgl1-mesa-dev libglu1-mesa-dev \
  fontforge fontconfig libfontconfig-dev \
  libxml2-dev libxslt-dev \
  libgphoto2-dev libpng-dev libjpeg62-dev \
  libsane-dev libcupsys2-dev \
  libldap-dev libcapi20-dev libssl-dev liblcms-dev lib32v4l-dev lib32z1-dev ia32-libs-dev
  

Попробуйте выполнить скрипт ./configure в каталоге с исходниками. В конце выполнения, скрипт может вывести перечень отсутствующих библиотек1) - доустановите их, если соответствующие возможности Wine вам нужны.

Сборка

./configure && make depend && make

Подробности см. в файле INSTALL.

Создание и установка .deb-пакета (Debian)

Перед началом, необходимо удалить все пакеты wine* и libwine*, а также установить пакет checkinstall.

Кроме того, необходимо вручную удостовериться, что все зависимости Wine установлены, поскольку созданный с помощью checkinstall пакет не будет содержать информации о зависимостях. Как правило, если такой пакет “ручной сборки” ставится в систему после удаления любого другого .deb-пакета Wine (к примеру - из его репозиториев, либо из официальных репозиториев Debian), проблем с зависимостями не будет.

sudo checkinstall -D -y --fstrans=no --install=yes --pkgname=wine \
  --pkgversion=`colrm 1 13 < VERSION``test -e .git && echo +git` --pkgrelease=at`date +%Y%m%d%H%M%S`

Подробности см. в man checkinstall.

1) Мне не удалось найти пакеты, удовлетворившие бы требованиям по части зависимостей от lib(n)curses и libhal, поэтому без этих возможностей решил обойтись

wine-from-source.txt · Last modified: 2011-03-04 20:27 UTC by rm