# Créer un .deb avec une lib C++ et son binding Python

**URL:** <https://www.debian-fr.org/t/creer-un-deb-avec-une-lib-c-et-son-binding-python/60980>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 7:48 UTC](https://www.debian-fr.org/t/creer-un-deb-avec-une-lib-c-et-son-binding-python/60980 "2016-02-21T19:48:27Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![VinsS](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/0ea827/32.png) [@VinsS](https://www.debian-fr.org/u/VinsS)\
**Post date:** [Février 21, 2016, 7:48 UTC](https://www.debian-fr.org/t/creer-un-deb-avec-une-lib-c-et-son-binding-python/60980/1 "2016-02-21T19:48:27Z")

</div>

Bonjour,

J’ai une librairie c++ et son binding python dont j’aimerai créer un paquet deb.

J’ai testé cette lib sur différentes machines et constaté qu’elle ne tourne que si ses dépendances sont de même versions que celles de la compilation. (ex: sip pour le binding et libopencv pour la lib).

Normalement la compilation à l’installation ne devrait pas poser de problème, j’ai créé un [build.sh](http://build.sh) pour la lib et pour le binding python le Makefile est créé par un [configure.py](http://configure.py).

Donc les opérations doivent se dérouler comme ceci

$ /bin/sh [build.sh](http://build.sh)  
$ cp [libfoo.so](http://libfoo.so) /usr/lib/  
$ python [configure.py](http://configure.py)  
$ make  
$ make install

Maintenant la question, comment et où introduit-on cela dans le fichier rules.  
J’ai tout de même fais un essai  
rules

```auto
#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

PYVERSIONS=$(shell pyversions -v -r)

override_dh_auto_configure:
override_dh_auto_build:
	set -e; \
    /bin/sh build.sh; \
	for v in $(PYVERSIONS) ; do \
		PYTHON=python$$v ; \
		$$PYTHON configure; \
		make ; \
		make install ; \
	done

override_dh_auto_clean:
override_dh_auto_install:
override_dh_installchangelogs:
	dh_installchangelogs NEWS

build: 
build-arch:
build-indep:
build-stamp:
clean:
install: build
	dh --with python2 install

# Build architecture-independent files here.
binary-indep:
# Build architecture-dependent files here.
binary-arch:

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

Ce qui me donne ceci:

```auto
$ debuild -i -us -uc
 dpkg-buildpackage -rfakeroot -D -us -uc -i
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro
dpkg-buildpackage: paquet source cvengine
dpkg-buildpackage: version source 0.1.0
dpkg-buildpackage: source changé par Vincent Vande Vyvre < ... >
 dpkg-source -i --before-build cvengine-0.1.0
dpkg-buildpackage: architecture hôte i386
 fakeroot debian/rules clean
make: Rien à faire pour « clean ».
 dpkg-source -i -b cvengine-0.1.0
dpkg-source: info: utilisation du format source « 3.0 (quilt) »
dpkg-source: info: construction de cvengine à partir de ./cvengine_0.1.0.orig.tar.gz
dpkg-source: info: construction de cvengine dans cvengine_0.1.0.debian.tar.gz
dpkg-source: info: construction de cvengine dans cvengine_0.1.0.dsc
 debian/rules build
make: Rien à faire pour « build ».
 fakeroot debian/rules binary
make: Rien à faire pour « binary ».
 dpkg-genchanges >../cvengine_0.1.0_i386.changes
dpkg-genchanges: erreur: impossible de lire le fichier de liste des fichiers.: Aucun fichier ou dossier de ce type
dpkg-buildpackage: erreur: dpkg-genchanges a produit une erreur de sortie de type 2
debuild: fatal error at line 1350:
dpkg-buildpackage -rfakeroot -D -us -uc -i failed
```

Le fichier .changes est vide, mais je suppose que le rules est incorrect.
