Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Sodomizer papa
Зарегистрирован: 11.08.2005 Сообщения: 148
|
Добавлено: Сб Сен 15, 2012 5:28 pm Заголовок сообщения: Сборка пакета для Ubuntu |
|
|
Система: Ubuntu 12.04 LTS amd64.
Пытаюсь собрать клиент в deb-пакет:
Код: |
1. $ dpkg-buildpackage -rfakeroot -b -uc
2. dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
3. dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
4. dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
5. dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
6. dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro
7. tail: cannot open `debian/changelog' for reading: No such file or directory
8. dpkg-buildpackage: error: tail of debian/changelog gave error exit status 1 |
Походу скрипт пытается писать в каталог которого у меня нет. Можно как-то, с минимальными усилиями, обойти эту проблему? |
|
Вернуться к началу |
|
|
Sodomizer papa
Зарегистрирован: 11.08.2005 Сообщения: 148
|
Добавлено: Вт Сен 18, 2012 3:19 am Заголовок сообщения: |
|
|
Я уже отчаялся собрать нормальный пакет, и решил сделать "make, make install". Смог запустить клиент q2pro r1093, Sep 17 2012.
Когда пытаюсь загрузить карту "map q2dm1" получаю "ERROR: Failed to load game library"... ахтунг... |
|
Вернуться к началу |
|
|
[SkulleR] papa
Зарегистрирован: 21.11.2003 Сообщения: 467
|
Добавлено: Вт Сен 18, 2012 7:28 pm Заголовок сообщения: |
|
|
Для сборки пакета нужен debian/changelog с правильной версией.
Библиотека gamex86_64.so должна располагаться внутри директории, на которую указывает консольная переменная libdir. Ее значение по умолчанию зависит от опций сборки (--libdir, --single-user). |
|
Вернуться к началу |
|
|
Sodomizer papa
Зарегистрирован: 11.08.2005 Сообщения: 148
|
Добавлено: Ср Сен 19, 2012 11:44 am Заголовок сообщения: |
|
|
Я почитал на ubuntu developer руководство по сборке, там было так:
Цитата: |
Starting a Package
bzr-builddeb includes a plugin to create a new package from a template. The plugin is a wrapper around the
dh_make command. You should already have these if you installed packaging-dev Run the command providing the
package name, version number, and path to the upstream tarball:
$ sudo apt-get install dh-make
$ cd ..
$ bzr dh-make hello 2.7 hello-2.7.tar.gz
When it asks what type of package type s for single binary. This will import the code into a branch and add the debian/
packaging directory. Have a look at the contents. Most of the files it adds are only needed for specialist packages (such
as Emacs modules) so you can start by removing the optional example files:open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
$ cd hello/debian
$ rm *ex *EX
You should now customise each of the files.
In debian/changelog change the version number to an Ubuntu version: 2.7-0ubuntu1 (upstream version 2.7,
Debian version 0, Ubuntu version 1). Also change unstable to the current development Ubuntu release such as
precise.
Much of the package building work is done by a series of scripts called debhelper. The exact behaviour of debhelper
changes with new major versions, the compat file instructs debhelper which version to act as. You will generally want
to set this to the most recent version which is 8.
control contains all the metadata of the package. The first paragraph describes the source package. The second and
following paragraphs describe the binary packages to be built. We will need to add the packages needed to compile the
application to Build-Depends:. For hello, make sure that it includes at least:
Build-Depends: debhelper (>= 8.0.0)
You will also need to fill in a description of the program in the Description: field.
copyright needs to be filled in to follow the licence of the upstream source. According to the hello/COPYING file this is
GNU GPL 3 or later.
docs contains any upstream documentation files you think should be included in the final package.
README.source and README.Debian are only needed if your package has any non-standard features, we don’t so
you can delete them.
source/format can be left as is, this describes the version format of the source package and should be 3.0
(quilt).
rules is the most complex file. This is a Makefile which compiles the code and turns it into a binary package.
Fortunately most of the work is automatically done these days by debhelper 7 so the universal % Makefile target just
runs the dh script which will run everything needed.
All of these file are explained in more detail in the overview of the debian directory article.
Finally commit the code to your packaging branch:open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
$ bzr commit -m "Initial commit of Debian packaging."
Building the package
Now we need to check that our packaging successfully compiles the package and builds the .deb binary package:
$ bzr builddeb -- -us -uc
$ cd ../../
bzr builddeb is a command to build the package in its current location. The -us -uc tell it there is no need to GPG
sign the compile. The result will be placed in ...
You can view the contents of the package with:
$ lesspipe hello_2.7-0ubuntu1_amd64.deb
Install the package and check it works:
$ sudo dpkg --install hello_2.7-0ubuntu1_amd64.deb |
Я попытался следовать руководству, но у меня ничего не вышло.
Поэтому возник закономерный вопрос:
насколько я понимаю, клиент Q2PRO разрабатывался в Debian? Могу ли я, установив виртуальную машину с Debian6 упростить себе процесс сборки? То-есть, выполнить в виртуалке "dpkg-buildpackage -rfakeroot -b -uc" , а затем установить полученный пакет в Ubuntu? Или мне всё равно прийдется настраивать переменные и т. п.? |
|
Вернуться к началу |
|
|
[SkulleR] papa
Зарегистрирован: 21.11.2003 Сообщения: 467
|
Добавлено: Ср Сен 19, 2012 10:49 pm Заголовок сообщения: |
|
|
Сборка пакетов в Ubuntu ничем не отличается от Debian, поэтому в данном случае смысла собирать в отдельной виртуальной машине нет.
Я раньше собирал deb'ы для Q2PRO, поэтому можно взять готовый «дебианизированный» пакет с исходниками для версии r1093 и пересобрать его в Ubuntu:
Код: |
wgеt http://skuller.net/q2pro/q2pro_0.1093.orig.tar.bz2
wgеt http://skuller.net/q2pro/q2pro_0.1093-1.debian.tar.bz2
wgеt http://skuller.net/q2pro/q2pro_0.1093-1.dsc
dpkg-source -x q2pro_0.1093-1.dsc
cd q2pro-0.1093
dpkg-buildpackage -b -uc
|
|
|
Вернуться к началу |
|
|
Sodomizer papa
Зарегистрирован: 11.08.2005 Сообщения: 148
|
Добавлено: Чт Сен 20, 2012 2:29 am Заголовок сообщения: |
|
|
|
|
Вернуться к началу |
|
|
Sodomizer papa
Зарегистрирован: 11.08.2005 Сообщения: 148
|
Добавлено: Чт Сен 20, 2012 1:24 pm Заголовок сообщения: |
|
|
Пасибо, скачал. Домой вернусь, установлю |
|
Вернуться к началу |
|
|
Sodomizer papa
Зарегистрирован: 11.08.2005 Сообщения: 148
|
Добавлено: Вс Сен 23, 2012 2:14 am Заголовок сообщения: |
|
|
[SkulleR] писал(а): |
Сборка пакетов в Ubuntu ничем не отличается от Debian, поэтому в данном случае смысла собирать в отдельной виртуальной машине нет.
Я раньше собирал deb'ы для Q2PRO, поэтому можно взять готовый «дебианизированный» пакет с исходниками для версии r1093 и пересобрать его в Ubuntu:
Код: |
wgеt http://skuller.net/q2pro/q2pro_0.1093.orig.tar.bz2
wgеt http://skuller.net/q2pro/q2pro_0.1093-1.debian.tar.bz2
wgеt http://skuller.net/q2pro/q2pro_0.1093-1.dsc
dpkg-source -x q2pro_0.1093-1.dsc
cd q2pro-0.1093
dpkg-buildpackage -b -uc
|
|
Спасибо, получилось)) Собрались 3 пакета: common, client, server. Мне нужен только клиент, верно?Common не нужен? |
|
Вернуться к началу |
|
|
[SkulleR] papa
Зарегистрирован: 21.11.2003 Сообщения: 467
|
Добавлено: Ср Сен 26, 2012 5:27 pm Заголовок сообщения: |
|
|
Пакет q2pro-client зависит от q2pro-common, поэтому нужны оба. Устанавливать нужно так:
Код: |
dpkg -i q2pro-client_0.1093-1_amd64.deb q2pro-common_0.1093-1_amd64.deb
|
|
|
Вернуться к началу |
|
|
Sodomizer papa
Зарегистрирован: 11.08.2005 Сообщения: 148
|
Добавлено: Ср Сен 26, 2012 7:41 pm Заголовок сообщения: |
|
|
Работает! |
|
Вернуться к началу |
|
|
santic chain master
Зарегистрирован: 11.06.2010 Сообщения: 94
|
Добавлено: Ср Ноя 21, 2012 4:25 pm Заголовок сообщения: |
|
|
Хм, у меня тоже будет вопрос: какие библиотечки нужны чтобы была поддержка png и jpeg? Дистр Archlinux. |
|
Вернуться к началу |
|
|
santic chain master
Зарегистрирован: 11.06.2010 Сообщения: 94
|
Добавлено: Ср Ноя 21, 2012 4:53 pm Заголовок сообщения: |
|
|
так, зависимости выяснил - libpng12-dev libjpeg62-dev, если с первым в арче окей, так со вторым трабл - ни в репах, ни в ауре нет libjpeg62 (-_-) |
|
Вернуться к началу |
|
|
santic chain master
Зарегистрирован: 11.06.2010 Сообщения: 94
|
Добавлено: Ср Ноя 21, 2012 5:07 pm Заголовок сообщения: |
|
|
Ошибочка, libjpeg есть другой версии, при этом нормально компиляется. Поставлен libpng12 - не компиляется |
|
Вернуться к началу |
|
|
santic chain master
Зарегистрирован: 11.06.2010 Сообщения: 94
|
Добавлено: Ср Ноя 21, 2012 6:23 pm Заголовок сообщения: |
|
|
Так, пошёл тупым способом - дома нарыл тачку с debian (x86) скомпилял - в арче поставил libpng12 (pacman -S libpng12) и libjpeg6 (yaourt -S libjpeg6). Квака пашет, но скомпилять никак. Для 64х битной архитектуры придётся с помощью chroot делать :/ |
|
Вернуться к началу |
|
|
LazyPlayer papa
Зарегистрирован: 08.05.2008 Сообщения: 525
|
Добавлено: Ср Ноя 21, 2012 10:28 pm Заголовок сообщения: |
|
|
Чего там у тебя не получается то. Какие ошибки то пишет?
Если используешь версию с skuller.net/q2pro, то там для поддержки нового pnglib нужно чутка допилить файл src/r_images.c :
добавить #include <zlib.h>
Код: |
#if USE_PNG
#include <zlib.h>
#include <png.h>
#endif |
B и потом заменить в том же файле вызов функции
Код: |
png_set_gray_1_2_4_to_8( png_ptr ); |
на
Код: |
png_set_expand_gray_1_2_4_to_8( png_ptr ); |
_________________ Before I existed, I was ready. |
|
Вернуться к началу |
|
|
|