LINUX.ORG.RU

сборка Qt 4.4 в Debian* с Phonon'ом


0

0

Установка Qt 4.4 с Phonon'ом в Debian'о подобных дистрах:

1) качаем исходники и патч с http://packages.debian.org/lenny/libqt4-core
1a) распаковываем, заходим в каталог с исходниками
2) накладываем патч
2a) заходим в debian/
3) в старых версиях debhelper (~ 5.*) есть баг с парсингом поля Depends,
   когда оно начинается с пустой строки, поэтому если у вас Etch или Gutsy,
   зайдите в файл control и найдите описание пакета ibqt4-core. Уберите
   стартовую пустую строку из поля Depends. Должно получиться

Depends: libqtcore4 (= ${binary:Version}), libqt4-network (= ${binary:Version}),
 libqt4-script (= ${binary:Version}), libqt4-xml (= ${binary:Version}),
 libqt4-dbus (= ${binary:Version}), libqt4-test (= ${binary:Version})

4) чмодим rules (опять баг?):

# chmod +x rules

5) заходим в rules, находим среди параметров configure "-no-phonon", заменяем на
   "-phonon"
6) ставим gstreamer для phonon'a (например для Gutsy):

# aptitude install gstreamer0.10-alsa gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-0 
     libgstreamer-plugins-base0.10-dev libgstreamer0.10-0 libgstreamer0.10-dev

7) делаем файл libqt4-phonon.install:

# echo "usr/lib/libphonon*.so.*" > libqt4-phonon.install

8) делаем файл libqt4-phonon-dev.install:

# echo "usr/include/qt4/phonon/*" > libqt4-phonon-dev.install
# echo "usr/include/qt4/Qt/phonon*" >> libqt4-phonon-dev.install
# echo "usr/lib/libphonon*.so" >> libqt4-phonon-dev.install

9) добавляем пакеты phonon в файл control:

Package: libqt4-phonon
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Qt 4 Phonon module
 Qt is a cross-platform C++ application framework. Qt's primary feature
 is its rich set of widgets that provide standard GUI functionality.
 .
 Phonon is a multimedia toolkit.

Package: libqt4-phonon-dev
Section: libdevel
Architecture: any
Depends: libqt4-phonon
Description: development files for the Phonon multimedia framework
 Phonon is the Qt 4 multimedia API, which provides a task-oriented abstraction
 layer for capturing, mixing, processing, and playing audio and video content.
 .
 This package contains development files for building software that uses the
 Phonon libraries.

9a) выходим обратно в корневой каталог с исходниками

# cd ..

10) собираем:

# dpkg-buildpackage -rfakeroot

-----------------------------

Спасибо за внимание.

ах да, 

7a)

# echo "usr/lib/qt4/plugins/phonon_backend/*" >> libqt4-phonon.install

alex_custov ★★★★★
() автор топика
Ответ на: комментарий от mv

# make menuconfig
# mkkernel

------------------------------

$ cat /usr/bin/mkkernel
#!/bin/sh

#
# Make and install kernel image.
#
# TODO: determine bootable device
#
# Usage:
#
# cd /usr/src/linux-2.6.xx
# make menuconfig
# mkkernel
#

ls Makefile > /dev/null 2>&1 || exit 1

function echo_grub()
{
    echo
    echo Kernel image \"${KERNEL}\" was built and installed successfully.
    echo Now edit grub/lilo config file to list it at boot time.
    echo
    echo "GRUB config:"
    echo
    echo "title           Debian GNU/Linux, kernel ${KERNEL}"
    echo "root            (hd0,5)"
    echo "kernel          /boot/vmlinuz-${KERNEL} root=/dev/hdb6 ro vga=788"
    echo "initrd          /boot/initrd.img-${KERNEL}"
    echo "savedefault"
    echo
}

VERSION=`cat Makefile|grep VERSION|head -1|sed s/'VERSION = '//`
PATCHLEVEL=`cat Makefile|grep PATCHLEVEL|head -1|sed s/'PATCHLEVEL = '//`
SUBLEVEL=`cat Makefile|grep SUBLEVEL|head -1|sed s/'SUBLEVEL = '//`
EXTRAVERSION=`cat Makefile|grep EXTRAVERSION|head -1|sed s/'EXTRAVERSION = *'//`

KERNEL=${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}

echo
echo Making kernel \"${KERNEL}\"...
echo

make &&
make modules_install &&
make install &&
mkinitramfs -o /boot/initrd.img-${KERNEL} ${KERNEL} &&
echo_grub

alex_custov ★★★★★
() автор топика
Ответ на: комментарий от alex_custov

Это что вообще такое? Что за скрипт? На debian делать make install для ядра это уже верх распущенности, или я что-то не понял?

Всегда ставил так:

apt-get install kernel-package

apt-get install linux-tree-XXX

cd /usr/src/

tar xjvf linux-source-XXX.tar.bz2

ln -s linux-source-XXX linux

cd linux

make menuconfig

make-kpkg kernel_image # тут опции курить

dpkg -i linux-image-XXX.deb

Oceanborn
()
Ответ на: комментарий от alex_custov

о каких инкрементальных патчах идет речь? задача - установить ядро из сорсов. ее решение простое - скачать сорсы и штатными средствами дистрибутива собрать родной для него пакет.

Oceanborn
()
Ответ на: комментарий от alex_custov

Быдлоскрипт mkkernel и инкерементальные патчи - вещи ортогональные. Не вижу проблемы наложить патчи твоим любимым способом, выкинуть mkkernel и использовать правильный make-kpkg.

anonymous
()
Ответ на: комментарий от anonymous

Вот теперь понял. Согласен с анонимусом. Да и ядро же ванильное будет в этом случае или где?

Oceanborn
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.