Forum Linux.debian/ubuntu compilation et architecture

Posté par . Licence CC By‐SA.
Étiquettes : aucune
1
21
fév.
2023

bonjour

j'essaie de compiler la source version debian/bookworm 5.2.0-5 de libprelude a partir devuan/chimaera (debian/bullseye)
il y a 9 paquets dont un doc

j'utilise les commandes comme d'habitude:

dpkg-source -x --no-check libprelude_5.2.0-5.dsc
puis
debian/rules binary

cela bloque à la fin:

make[1] : on quitte le répertoire « /home/robertix/libprelude/libprelude-5.2.0 »
 dh_install
 dh_installdocs
 dh_ruby_fixdocs
 dh_installchangelogs
 dh_installman
 dh_python3
I: dh_python3 fs:559: renaming prelude-5.2.0-py3.9.egg-info to prelude-5.2.0.egg-info
Traceback (most recent call last):
 File "/usr/bin/dh_python3", line 280, in <module>
 main()
 File "/usr/bin/dh_python3", line 276, in main
 dh.save()
 File "/usr/share/dh-python/dhpython/debhelper.py", line 291, in save
 self.save_autoscripts()
 File "/usr/share/dh-python/dhpython/debhelper.py", line 214, in save_autoscripts
 arch = environ['DEB_HOST_ARCH']
 File "/usr/lib/python3.9/os.py", line 679, in __getitem__
 raise KeyError(key) from None
KeyError: 'DEB_HOST_ARCH'
make: *** [debian/rules:59 : binary] Erreur 1
root@ordix1:/home/robertix/libprelude/libprelude-5.2.0#

il semble qu'il faut spécifier l'architecture demandée
pour ma part amd64 et all

dans la ligne de commande de compilation ou dans le fichier rules ?

fichier /usr/share/dh-python/dhpython/debhelper.py
ligne 214 :
arch = environ['DEB_HOST_ARCH']

voilà le fichier rules:


#! /usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
CONFIGURE_FLAGS = --without-python2 --enable-easy-bindings
ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),)
 CONFIGURE_FLAGS += --with-python3=yes
 PY3VERS=$(shell py3versions -vr)
else
 CONFIGURE_FLAGS += --with-python3=no
endif
ifeq ($(filter noperl,$(DEB_BUILD_PROFILES)),)
 CONFIGURE_FLAGS += --with-perl-installdirs=vendor
else
 CONFIGURE_FLAGS += --with-perl=no
endif
ifeq ($(filter noruby,$(DEB_BUILD_PROFILES)),)
 DH_ADDONS += --with ruby
else
 CONFIGURE_FLAGS += --with-ruby=no
endif
ifneq ($(filter nolua,$(DEB_BUILD_PROFILES)),)
 CONFIGURE_FLAGS += --with-lua=no
endif
ifneq ($(filter libprelude-doc,$(shell dh_listpackages)),)
 CONFIGURE_FLAGS += --enable-gtk-doc
endif
override_dh_auto_configure:
 dh_auto_configure -- $(CONFIGURE_FLAGS)
override_dh_auto_build: build-core $(PY3VERS:%=build-python%)
build-core:
 dh_auto_build
build-python%:
 cd bindings/python && python$* setup.py build
override_dh_autoreconf-arch:
 env GTKDOCIZE="echo DISABLED running gtkdocize" dh_autoreconf --verbose -a
override_dh_auto_install: install-core $(PY3VERS:%=install-python%)
install-core:
 dh_auto_install
 find . -name "__pycache__" -exec rm -rvf {} +
 find . -name "*.la" -exec sed -i -e 's/^dependency_libs=.*$$/dependency_libs=/g' {} +
 mkdir -pv $(CURDIR)/debian/tmp/usr/share/doc/libprelude-doc
 ln -s /usr/share/gtk-doc/html/libprelude $(CURDIR)/debian/tmp/usr/share/doc/libprelude-doc/html
install-python%:
 cd bindings/python && python$* setup.py install --root $(CURDIR)/debian/tmp
%:
 dh $@ $(DH_ADDONS)
  • # Variable d'environnement

    Posté par . Évalué à 2.

    Cette ligne :

    arch = environ['DEB_HOST_ARCH']
    

    me fait dire qu'il faut utiliser une variable d'environnement, par exemple :

    DEB_HOST_ARCH=amd64 debian/rules binary
    

    Mais je trouve ça étrange qu'il ne détecte pas tout seul. Peut-être faut-il construire le paquet autrement ?

  • # bookworm = debian12

    Posté par . Évalué à 4. Dernière modification le 22 février 2023 à 09:30.

    pas encore release, donc peut-etre pas terminée, avec des bugs, et donc des dependances cassées, ou des trucs à mettre à jour soit meme avant de pouvoir compiler d'autres trucs

    d'apres : https://wiki.debian.org/DebianReleases

    Version Code name Release date End of life date EOL LTS EOL ELTS
    14 Forky
    13 Trixie
    12 Bookworm
    11 Bullseye 2021年08月14日 ~2024-07
    10 Buster 2019年07月06日 2022年09月10日

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.