"lcov.conf" Fehler bei Packeterstellung

german
integration

#1

Guten Tag,

wir haben ein Zusatzmodul fertiggestellt. Nun ist das Problem, dass bei dem Paketierungsvorgang folgender Fehler auftritt:

root@ucs:~/EDYOU# dpkg-buildpackage -v -us -uc dpkg-buildpackage: exportieren von CFLAGS aus dpkg-buildflags (Quelle: vendor): -g -O2 dpkg-buildpackage: exportieren von CPPFLAGS aus dpkg-buildflags (Quelle: vendor): dpkg-buildpackage: exportieren von CXXFLAGS aus dpkg-buildflags (Quelle: vendor): -g -O2 dpkg-buildpackage: exportieren von FFLAGS aus dpkg-buildflags (Quelle: vendor): -g -O2 dpkg-buildpackage: exportieren von LDFLAGS aus dpkg-buildflags (Quelle: vendor): dpkg-buildpackage: Quellpaket edyou dpkg-buildpackage: Quellversion 0.5 dpkg-buildpackage: Quellen geändert durch root <it@edyou.eu> dpkg-buildpackage: Host-Architektur i386 dpkg-source --before-build EDYOU debian/rules clean dh clean dh_testdir dh_auto_clean dh_clean dpkg-source -b EDYOU dpkg-source: Information: Quellformat »3.0 (native)« wird verwendet dpkg-source: Information: edyou wird in edyou_0.5.tar.gz gebaut dpkg-source: Information: edyou wird in edyou_0.5.dsc gebaut debian/rules build dh build dh_testdir dh_auto_configure dh_auto_build dh_auto_test debian/rules binary dh binary dh_testroot dh_prep dh_installdirs dh_auto_install dh_install dh_installdocs dh_installchangelogs dh_installexamples dh_installman dh_installcatalogs dh_installcron dh_installdebconf dh_installemacsen dh_installifupdown dh_installinfo cp: Neu erstelltes „debian/edyou/usr/share/info/lcov.info“ wird nicht mit „node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info“ überschrieben. cp: Neu erstelltes „debian/edyou/usr/share/info/lcov.info“ wird nicht mit „node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info“ überschrieben. cp: Neu erstelltes „debian/edyou/usr/share/info/lcov.info“ wird nicht mit „node_modules/socket.io-client/coverage/lcov.info“ überschrieben. dh_installinfo: cp node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info node_modules/socket.io-client/coverage/lcov.info debian/edyou/usr/share/info returned exit code 1 make: *** [binary] Fehler 2 dpkg-buildpackage: Fehler: Fehler-Exitstatus von debian/rules binary war 2

Das Paket besteht aus einer NodeJS Binary (node/), einer App.js, der HTML Konfigurationsseite (extras/html/) und den benötigten Submodulen (node_modules/). Wie es aussieht werden irgendwo die “lcov.conf” bei der Paketierung von Socket.IO referenziert, obwohl nirgends explizit angegeben. Es soll auch bei der Installation nichts kompiliert werden, da alles bereits passend im Paket vorhanden sein soll, daher werden über die *.install auch nur die Pfade angegeben in der die Dateien kopiert werden sollen.

debian/edyou.install:

app.js /opt/edyou/ node /opt/edyou/ node_modules /opt/edyou/ package.json /opt/edyou/ extras/html/* /var/www/edyou/

debian/rules

[code]#!/usr/bin/make -f

-- makefile --

Sample debian/rules that uses debhelper.

This file was originally written by Joey Hess and Craig Small.

As a special exception, when this file is copied by dh-make into a

dh-make output file, you may use that output file without restriction.

This special exception was added by Craig Small in version 0.37 of dh-make.

Uncomment this to turn on verbose mode.

#export DH_VERBOSE=1

%:
dh $@
[/code]

Versucht:

  1. Die entsprechende Dateien löschen --> Fehler: Lcov.conf Dateien können nicht gefunden werden.
  2. Den gesamten Ordner löschen – Fehler: siehe 1.

Gibt es eine Möglichkeit dieses Problem zu umgehen? Alternative wäre ja alles in eine tar.gz zu packen und dann wiederum über das Postinst Skript an die “richtigen” Orte zu entpacken. Dabei sollten keine “lcov.conf” Dateien referenziert werden.


#2

Hallo,

eine Referenz auf “lconv.conf” kann ich in den Ausgaben nicht sehen.
Das Debhelper-Modul dh_installinfo versucht automatisch .info Dateien zu installieren. In Ihrem Paket gibt es wohl eine Reihe gleichnamiger Info-Dateien (lcov.info), dh_installinfo versucht diese dann alle nach debian/edyou/usr/share/info/lcov.info zu installieren was zu der Fehlermeldung führt.

Eine Möglichkeit wäre die Namen der Info Dateien zu korrigieren:
[ul][li]node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info[/li]
[li]node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/json3/coverage/lcov.info[/li]
[li]node_modules/socket.io-client/coverage/lcov.info[/li][/ul]

Alternativ können Sie dh_installinfo nur eine bestimmte .info Datei zur Installation übergeben:

[code][…]
%:
dh $@

override_dh_installinfo:
dh_installinfo node_modules/socket.io-client/coverage/lcov.info
[/code]

Oder dh_installinfo komplett deaktivieren:

[code][…]
%:
dh $@

override_dh_installinfo:
[/code]

Mit freundlichen Grüßen
Janis Meybohm


#3

Danke für die Antwort. Das hat schon mal funktioniert. Ich habe nun noch ein weiteren Fehler

dpkg-deb: Paket »edyou« wird in »../edyou_1.0_i386.deb« gebaut.
 dpkg-genchanges -v >../edyou_1.0_i386.changes
parsechangelog/debian: Warnung: Option »since« gibt nicht existierende Version an
parsechangelog/debian: Warnung: neuester Eintrag wird verwendet, der älter als der angegebene ist
parsechangelog/debian: Fehler: parsechangelog/debian: Fehler:  ist keine gültige Version

debian/changelog

edyou (1.0) stable; urgency=low

  * Initial Release.

 -- root <it@edyou.eu>  Fri, 01 Aug 2014 10:29:29 +0200

#4

Hat sich erledigt ^^