LINUX.ORG.RU

Сборка пакетов Debian

 , ,


0

1

Надо собрать из исходников пакет, вернее на выходе должно получиться два пакета. Сама сборка проходит нормально и получаю штук 30 в debian/tmp/lib/*.so в pkgname.install записываю /lib/*.so

в pkgname1.install /lib/modules_sp.so

Помогите разобраться с таким вопросом. Как мне этот ОДИН модуль выкинуть из списка первого пакета? По опыту с rpm знаю что там есть команда %exlude. Здесь ничего подобного не нашел. Но не в ручную же описывать эти 30 файлов для первого пакета, что бы исключить из него один.



Последнее исправление: ssbury (всего исправлений: 1)

Кажется в файле rule нужно удалить $(MAKE) и прописать что-то типа

install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs

# Copy files into staging area
rsync --exclude .svn -a mypackage/ debian/tmp/opt/mypackage/

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

Не очень понял. Ведь такая запись просто приведет к выкидыванию файла просто из сборки. А мне нужно что бы он оказался во втором пакете. Или я что-то не правильно понимаю? Вот что у меня в rules в секции сборки

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
        dh_testdir
        dh_testroot
        dh_installchangelogs
        dh_installdocs
        dh_installexamples
        dh_installman
        dh_link
        dh_strip
        dh_compress
        dh_fixperms
        dh_makeshlibs -V
        dh_installdeb
        dh_shlibdeps
        dh_gencontrol
        dh_md5sums
        dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install

ssbury
() автор топика

В pkgname.install использовать обычный shell globbing:

- /lib/*.so
+ /lib/*[^modules_sp]*.so

Но так не работает.

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

В самом инстале в принципе если главное вот что

install: build
        dh_testdir
        dh_testroot
        dh_prep
        dh_installdirs
        # Add here commands to install the package into debian/tmp
        dh_auto_install -- install INSTALL_ROOT=$(CURDIR)/debian/tmp

...

       dh_install --list-missing -s --sourcedir=debian/tmp

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

Похоже, там свой парсер приделали, намного более ограниченный чем даже bash без extglob. А, значит, по-хорошему нужно править исходники dh_install, ну или выкручиваться.

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

А подскажите. А можно просто в дебиан поставить пакет src.rpm и потом скомпилировать его при помощи

rpmbuild -bb pkg.spec

Конечно зависимые пакеты я заменю. Такое решение будет работоспособным?

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

Пожалуй, если там нет каких-то специфических для не Debian действий или путей.

Но надёжнее было бы один раз составить и прописать этот список библиотек. Ведь делов-то: ls -l *.so, и потом в редакторе с блочным/вертикальным выделением убрать начало.

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