Comment 2 for bug 85574

Revision history for this message
kko (kko) wrote : equivs can't create a meta-package without a user-provided changelog

Binary package hint: equivs

This is on Kubuntu Dapper, with equivs version 2.0.6-0.1. Also tested with the newer version 2.0.7 installed from packages.ubuntu.com.

The command 'man equivs-build' tells us the following: "If you don’t use a local changelog, equivs will create a dummy one." However, it can't do this.

Using the following control file (for completely local use) by the name 'libxine-main1':
Package: libxine-main1
Version: 1.1.1+ubuntu2-7.5+patch1
Maintainer: kko
Depends: libxine-main1 (= 1.1.1+ubuntu2-7.2+patch1)
Description: A meta-package to trick adept_notifier and adept_updater.
 This depends on the real installed patched version, but has
 a version number larger than what is currently available
 through repositories.

...and then running 'equivs-build libxine-main1', I get the following output:
Use of uninitialized value in concatenation (.) or string at /usr/bin/equivs-build line 207, <IN> line 22.
dh_testdir
touch build-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_clean: Compatibility levels before 4 are deprecated.
# Add here commands to install the package into debian/tmp.
touch install-stamp
dh_testdir
dh_testroot
dh_installdocs
dh_installdocs: Compatibility levels before 4 are deprecated.
dh_installchangelogs
parsechangelog/debian: error: badly formatted trailer line, at changelog line 5
dh_installchangelogs: changelog parse failure
make: *** [binary-arch] Virhe 1
Error during the build process: Inappropriate ioctl for device at /usr/bin/equivs-build line 180, <IN> line 31.

...and after 'sudo dpkg -i equivs_2.0.7_all.deb', running 'equivs-build libxine-main1':
Use of uninitialized value in concatenation (.) or string at /usr/bin/equivs-build line 153.
dh_testdir
dh_testroot
dh_clean -k
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
parsechangelog/debian: error: badly formatted trailer line, at changelog line 5
dh_installchangelogs: changelog parse failure
make: *** [binary-arch] Virhe 1
Error in the build process: exit status 2

There seems to at least be a problem in parsing the changelog (that equivs is supposed to provide from a template). (The command 'man equivs-build' tells us that "The control file -- doesn't have to define all keys, as default values will be used if you omit one." I have, accordingly, omitted a number of fields from the control file.)

Looking at the list of installed files, I don't see a separate 'changelog' file in equivs's template directory, although I'm guessing this may not even be intended, as it could be coded into the script.

I was able to build the package after I defined the changelog file with "Changelog: changelog.txt" in the control file, and added a modified changelog for "libxine-main1" as 'changelog.txt'.