Pergunta

Eu tenho que porta um RPM (feita para o Fedora) para o Ubuntu como um pacote deb.

No arquivo .spec RPM Estou usando diversas variáveis ??($RPM_BUILD_ROOT, %{_libdir}, %{name}, %{version}) para criar um link simbólico:

%install
...
(cd $RPM_BUILD_ROOT/%{_bindir}; ln -sf %{_libdir}/%{name}-%{version}/%{name} . )

(links simbólicos relativos são proibidos (por favor, não pergunte por quê.) - por isso comando ln parece estranho)

Então, quais são equivalentes dessas variáveis ??em debian/rules makefile?

Agradecemos antecipadamente.

Foi útil?

Solução

(Aparte:. Este parece ser algo que o Makefile montante deveria estar fazendo, em vez da embalagem a jusante)

depende de qual quadro você está usando para seu arquivo rules.

Na CDBS , algo como isso deve funcionar ...

#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk
# probably what you want (automagic happens),
# but I don't know details of your package
#include /usr/share/cdbs/1/class/automake.mk

DEBVERS := $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[~-].*//')

install/$(DEB_ALL_PACKAGES)::
        dh_link -p$(cdbs_curpkg) \
                /usr/lib/$(cdbs_curpkg)-$(VERSION)/$(cdbs_curpkg) \
                /usr/bin/$(cdbs_curpkg)

Se você tem uma maneira melhor de começar a versão (digamos, $(shell cat version.txt))), usá-lo. A versão Debian não é sempre a versão do pacote fonte; aqui, eu retirar a versão época e embalagem, caso exista, mas isso nem sempre é correta.

aulas

Outros CDBs pode definir $${libdir} e $${bindir}, mas eu não vi nada comum.

Note que dh_link fará links relativos, se possível, mesmo quando dado caminhos absolutos. Se este é um problema, você pode ter que recorrer a algo realmente desagradável como

        cd debian/$(cdbs_curpkg) && ln -s ...

Outras dicas

Em versões mais recentes do dpkg (1.17.0+), você pode obter a versão completa com:

DEBVER := $(shell dpkg-parsechangelog -SVersion)

E não há necessidade de usar sed para extrair as partes, supondo que você tem SHELL := /bin/bash. Basta usar interpolação de string festa assim:

DEBVERSION := $(shell debver="$(DEBVER)"; echo "$${debver%-*}")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top