Why ".udeb" won't work.
So I tried to make a .udeb today from my main-menu code. It wasn't that
hard; I ended up with a debian/rules like this:
PACKAGE=$(shell dh_listpackages)
VERSION=$(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2)
ARCH=$(shell dpkg --print-architecture)
FILENAME=$(PACKAGE)_$(VERSION)_$(ARCH).udeb
PRIORITY=$(shell grep ^Priority: debian/control | cut -d ' ' -f 2)
binary-arch: build install
dh_testdir
dh_testroot
dh_installdebconf
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
# Don't write your stupid guesses to debian/files.
dh_gencontrol -- -fdebian/files~
# Register file manually.
dpkg-distaddfile $(FILENAME) byhand $(PRIORITY)
# Ok, it's a hack, but debhelper needs an alias for this switch.
dh_builddeb --destdir=../$(FILENAME)
So this worked great, it built a .udeb and so on. Until I tried to run
dpkg-buildpackage, which died at the end with:
dpkg-genchanges: error: package main-menu in control file but not in files list
Well that's a nice sanity check but I really did want to list a package in
debian/control and yet not generate a .deb for it. If I don't do that, I have
to build the .udeb by hand without using debhelper, without even using
dpkg-gencontrol or anything, and that strikes me as a PITA. :-(
At this point the only workaround I can think of is to have a debian/control
that just has the Source: stanza and no Package: stanza listed in it, and then
temporarily add the Package: stanza when I am building and remove it
when done. In other words, a gross hack.
Or modify dpkg-buildpackage to downgrade this "error" to a warning.
Or don't use ".udeb" as the filename extention for debian-installer
modules. Which doogie says he will flame me for, so please go ahead
doogie and tell me why just using ".deb" is such a terrible idea.
--
see shy jo
Reply to: