Вызов LibreOffice в chroot

Для сборки deb-пакета Wirec я использую вызов LibreOffice внутри Makefile, чтобы конвертировать картинку из ODG в SVG. При запуске локально все работало, однако при попытке собрать deb-пакет на Launchpad, то есть при сборке в chroot, возникла ошибка:

libreoffice --convert-to svg --outdir /<>/debian/wirec///usr/share/icons desktop/wirec.odg
javaldx failed!
Warning: failed to read path from javaldx

После исправления Makefile был таким:

#
PREFIX = /
TMPHOME=/tmp/wirec-build

all:
	@ echo "Nothing to compile. Use: make install, make uninstall"

install:
	install -d $(DESTDIR)/$(PREFIX)/usr/bin
	install -d $(DESTDIR)/$(PREFIX)/usr/share/wirec
	install -d $(DESTDIR)/$(PREFIX)/usr/share/icons
	install -d $(DESTDIR)/$(PREFIX)/usr/share/applications
	install -m0755 ./wirec.sh $(DESTDIR)/$(PREFIX)/usr/bin/wirec
	install -m0644 ./profile.tpl.sh $(DESTDIR)/$(PREFIX)/usr/share/wirec/profile.tpl.sh
	install -m0644 ./desktop/wirec.desktop $(DESTDIR)/$(PREFIX)/usr/share/applications/wirec.desktop
	
	pkill libreoffice || true
	pkill -9 libreoffice || true
	pkill soffice || true
	pkill -9 soffice || true
	mkdir -p $(TMPHOME)
	env HOME=$(TMPHOME) libreoffice --headless --convert-to svg --outdir $(DESTDIR)/$(PREFIX)/usr/share/icons desktop/wirec.odg
	
uninstall:
	rm -fv $(PREFIX)/usr/bin/wirec
	rm -fv $(PREFIX)/usr/share/icons/wirec.svg
	rm -fv $(PREFIX)/usr/share/applications/wirec.desktop
	rm -fvr $(PREFIX)/usr/share/wirec/

Что я туда добавил?
* Задаем пустую домашнюю директорию: TMPHOME=/tmp/wirec-build
* Убиваем все запущенные копии LibreOffice (на всякий случай, это больше для локальной сборки, т.к. иначе возможно зависание до тех пор, пока существующая копия LibreOffice не будет закрыта, хотя в целом это излишне):

pkill libreoffice || true
pkill -9 libreoffice || true
pkill soffice || true
pkill -9 soffice || true

* Создаем нашу пустую домашнюю папку: mkdir -p $(TMPHOME)
* Далее запускаем конвертирование с помощью LibreOffice, установив переменную окружения HOME на нашу пустую папку и задав ключ ---headless:
env HOME=$(TMPHOME) libreoffice --headless --convert-to svg --outdir $(DESTDIR)/$(PREFIX)/usr/share/icons desktop/wirec.odg

Отправить ответ

avatar
  Subscribe  
Сообщать по почте