Estou tentando depurar alguns pacotes Debian básicos e inacabados para muito href="https://github.com/dylan-lang/opendylan"> Abra o Dylan .
Estou recebendo erros no log de criação do Debian .
O bit relevante está no final, a saber:
Preparing to install Open Dylan...
Copying sources...
cp: cannot create directory ‘/usr/local/sources’: Permission denied
Makefile:328: recipe for target 'install-stage' failed
Isto corresponde claramente às linhas que começam em 342 em
Makefile.in , a saber:
# Install stage installs stage 3 into prefix
install-stage:
@echo Preparing to install Open Dylan in $(prefix)...
@install -d $(prefix)
@echo Copying sources to $(prefix)/sources...
@rm -rf $(prefix)/sources
@cp -R $(abs_srcdir)/sources $(prefix)
Provavelmente a última linha é a culpada, mas estou tendo dificuldades para ver o que está errado.
Seria de grande ajuda se conseguisse fazer a compilação ecoar consistentemente em cada linha antes de executá-la, mas como você pode ver no extrato citado acima, isso não aconteceu quando precisei. Ou seja, nessa linha cp
.
NOTA: O Open Dylan não está usando o Automake, embora eles estejam usando o Autoconf. E assim eles têm um Makefile.in
manuscrito.
UPDATE: adicionando make -n
ao dh_auto_build
e dh_auto_install
substitui funciona. Assim:
override_dh_auto_build:
PATH=$(binpath):$$PATH make -n
override_dh_auto_install:
PATH=$(binpath):$$PATH make -n install
O novo log de criação (essência)
agora tem o seguinte para o alvo de instalação upstream do Dylan Makefile:
echo Preparing to install Open Dylan...
install -d /usr/local
echo Copying sources...
rm -rf /usr/local/sources
cp -R /usr/local/src/opendylan/opendylan-2014.1/sources /usr/local
find /usr/local/sources -depth -name '.*' -exec rm -rf {} \;
rm -rf /usr/local/sources/bootstrap1-registry
echo Installing Open Dylan in /usr/local
install -d /usr/local/bin /usr/local/databases /usr/local/lib /usr/local/lib/runtime
install -d /usr/local/share/opendylan /usr/local/include/opendylan
cp -R /usr/local/src/opendylan/opendylan-2014.1/Bootstrap.3/bin /usr/local
cp -R /usr/local/src/opendylan/opendylan-2014.1/Bootstrap.3/databases /usr/local
cp -R /usr/local/src/opendylan/opendylan-2014.1/Bootstrap.3/include/opendylan /usr/local/include
# We use force here because on Mac OS X, the lib directory likely contains read-only
# static libraries for the Boehm GC.
cp -Rf /usr/local/src/opendylan/opendylan-2014.1/Bootstrap.3/lib /usr/local
cp -Rf /usr/local/src/opendylan/opendylan-2014.1/Bootstrap.3/share/opendylan /usr/local/share
cp -R /usr/local/src/opendylan/opendylan-2014.1/tools/lldb /usr/local/share/opendylan
cp -R /usr/local/src/opendylan/opendylan-2014.1/tools/bash_completion /usr/local/share/opendylan
cp /usr/local/src/opendylan/opendylan-2014.1/License.txt /usr/local
cp /usr/local/src/opendylan/opendylan-2014.1/packages/unix/README /usr/local
echo Done!
Isso está claramente errado desde o começo. Por alguma razão, prefix
aqui é /usr/local
, enquanto deveria ser /debian/tmp/usr
(eu acho).
A primeira linha do Open Dylan Makefile.in possui:
prefix = $(DESTDIR)@prefix@
que parece meio não padrão. No Makefile gerado, isso se torna:
prefix = $(DESTDIR)/usr/local
Normalmente o Debian passa /usr
para ./configure
por padrão, então não tenho certeza do que aconteceu aqui, ou porque (aparentemente), DESTDIR
está em branco.