Thursday, May 2, 2024
 Popular · Latest · Hot · Upcoming
4
rated 0 times [  4] [ 0]  / answers: 1 / hits: 4908  / 3 Years ago, mon, september 27, 2021, 11:25:43

I am trying to debian package my C++ application developed with aid of Netbeans 7.3. Here is bit of Makefile of it.



APPNAME=remotedevicecontroller
install:
install config.xml /etc/${APPNAME}.conf.xml
install devices.rules /etc/udev/rules.d/${APPNAME}.rules
install error.log /var/log/${APPNAME}.log
install init.conf /etc/init/${APPNAME}.conf
install init.d /etc/init.d/${APPNAME}
install ${CND_ARTIFACT_NAME_${CONF}} /usr/local/bin/${APPNAME}
chmod u+x ${CND_ARTIFACT_NAME_${CONF}}
./${CND_ARTIFACT_NAME_${CONF}} -i


I am following HOW TO CREATE A .DEB PACKAGE and Debian New Maintainer's Guide. When I run dpkg-buildpackage -rfakeroot after successfully completing all the above steps I encountered following error



$ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package remotedevicecontroller
dpkg-buildpackage: source version 1.0-1
dpkg-buildpackage: source changed by satya gowtham kudupudi (gowtham) <[email protected]>
dpkg-buildpackage: host architecture i386
dpkg-source --before-build remotedevicecontroller-1.0
fakeroot debian/rules clean
dh clean
dh: No packages to build.
dpkg-source -b remotedevicecontroller-1.0
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building remotedevicecontroller using existing ./remotedevicecontroller_1.0.orig.tar.gz
dpkg-source: info: building remotedevicecontroller in remotedevicecontroller_1.0-1.debian.tar.gz
dpkg-source: info: building remotedevicecontroller in remotedevicecontroller_1.0-1.dsc
debian/rules build
dh build
dh: No packages to build.
fakeroot debian/rules binary
dh binary
dh: No packages to build.
signfile remotedevicecontroller_1.0-1.dsc

You need a passphrase to unlock the secret key for
user: "satya gowtham kudupudi (gowtham) <[email protected]>"
2048-bit RSA key, ID 9A2853A0, created 2013-08-22

gpg: gpg-agent is not available in this session

dpkg-genchanges >../remotedevicecontroller_1.0-1_i386.changes
dpkg-genchanges: error: cannot read files list file: No such file or directory
dpkg-buildpackage: error: dpkg-genchanges gave error exit status 2


at http://www.debian.org/doc/manuals/maint-guide/dreq.en.html#defaultrules there is no explaination for what the role of rules file is. What does



%:
dh $@


mean? Why does dpkg-buildpackage -rfakeroot say dh: No packages to build.?


More From » packaging

 Answers
6

The rules file is what does all the work for actually creating the package. It is a Makefile with targets to compile and install the application, then create the .deb file from the installed files. It also has a target to clean up all the build files so you end up with just a source package again. As the Debian Policy Manual puts it:




This file must be an executable makefile, and contains the
package-specific recipes for compiling the package and building binary
package(s) from the source.




That's nice and all, but what is actually going on here:



%:
dh $@


dh is a helper command that calls other Make targets and runs a series of debhelper commands. As its manpage Manpage icon describes it:



   dh runs a sequence of debhelper commands. The supported sequences
correspond to the targets of a debian/rules file: build-arch, build-
indep, build, clean, install-indep, install-arch, install, binary-arch,
binary-indep, and binary.


Again, it's just a helper file to simplify things. You don't actually need to use it, but it makes your life much easier. To see what commands are actually run in each target, run:



dh binary-arch --no-act


Now to your specific problem... I don't think it has anything to do with your rules file. Without seeing the actual source package, it is hard to say with certainty what the issue is. Though I'd hazard to guess that there is no binary package stanza in your debian/control file. In the following snippet, the first 'stanza' describes the source package while the second describes the binary package it will build:



Source: hello
Section: devel
Priority: optional
Maintainer: Ubuntu Developers <[email protected]>
XSBC-Original-Maintainer: Jane Doe <[email protected]>
Standards-Version: 3.9.1
Build-Depends: debhelper (>= 7)
Homepage: http://www.gnu.org/software/hello/

Package: hello
Architecture: any
Depends: ${shlibs:Depends}
Description: The classic greeting, and a good example
The GNU hello program produces a familiar, friendly greeting. It
allows non-programmers to use a classic computer science tool which
would otherwise be unavailable to them. Seriously, though: this is
an example of how to do a Debian package. It is the Debian version of
the GNU Project's `hello world' program (which is itself an example
for the GNU Project).

[#29812] Wednesday, September 29, 2021, 3 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
eballxeye

Total Points: 370
Total Questions: 91
Total Answers: 139

Location: Suriname
Member since Sat, Jan 1, 2022
2 Years ago
;