On 2013-12-07 21:32:29, Ian Jackson wrote:
Antoine Beaupré writes (Bug#731633: dgit ignores my .gbp.conf settings):
Minor really. I usually build my git packages using cowbuilder, and I
have a rather convoluted setup to build packages, on my wheezy box, in
a sid chroot to (a) get a clean environment and (b) to build against
sid for uploads.
Thanks for the report.
Right. As the manpage says, you may use any technique you like to do
the build, provided it results in a .dsc which matches your git tree
exactly.
Ah right.
So it's not necessary for the building functions in dgit to support
every possible workflow. However, I'm certainly open to improving
dgit's build functions if it would be possible and useful.
Of course.
My setup is a mix of those:
...
dpkg-buildpackage: paquet source bugs-everywhere
dpkg-buildpackage: version source 1.1.1-3
dpkg-buildpackage: source changé par Antoine Beaupré anar...@debian.org
dpkg-buildpackage: architecture hôte amd64
dpkg-source -i.git/ -I.git --before-build bugs-everywhere-1.1.1
dpkg-source: info: utilisation des options depuis
bugs-everywhere-1.1.1/debian/source/options : --single-debian-patch
dpkg-checkbuilddeps : dépendances de construction non trouvées : tla darcs
monotone rcs python-numpydoc
dpkg-buildpackage: avertissement: dépendances de construction et conflits
non satisfaits ; échec.
dpkg-buildpackage: avertissement: (Utilisez l'option -d pour forcer.)
gbp:error: Couldn't run 'dpkg-buildpackage -i\.git/ -I.git -us -uc
-v1.1.1-2': dpkg-buildpackage -i\.git/ -I.git return
git-buildpackage: failed command: git-buildpackage -us -uc
--git-no-sign-tags '--git-builder=dpkg-buildpackage -i'\\'.g
dgit: subprocess failed with error exit status 1
So I think you are right that the problem here is that dgit is
overriding --git-builder. dgit needs to do this because the default
ignore rules are not correct: git-buildpackage (and various other
tools) ignore .gitignore (and perhaps other things) by default, which
is not correct with dgit.
Uh. That's weird. Seems like a bug in git-buildpackage...
As far as I know the only way to specify a different set of ignore
rules with git-buildpackage is to override --git-builder.
Yeah, I have this in my .gbp.conf:
[DEFAULT]
cleaner = fakeroot debian/rules clean
postbuild = lintian $GBP_CHANGES_FILE
builder = /usr/bin/git-pbuilder
[git-buildpackage]
export-dir = ../build-area/
[git-import-orig]
dch = False
As it happens, I think you can achieve the same effect with dgit's
subcommand override options. If I UTSL I see this in cmd_git_build:
my @cmd =
(qw(git-buildpackage -us -uc --git-no-sign-tags),
--git-builder=@dpkgbuildpackage);
So it may work to say something like:
dgit --dpkg-buildpackage=git-pbuilder git-build
I appreciate that this isn't particularly discoverable, but the
ability to override dpkg-buildpackage is documented in the manual
and if you run dgit with the -D option it will show you the commands
it's running. (Would it have been better to show this particular
command by default?)
That would have been useful yes. But yeah, I must admit that I filed
those bugs without RTFM... my bad.
This seems to work a little better here:
DIST=sid ARCH=amd64 dgit git-build --git-builder=git-pbuilder
It seems to me this shouldn't be hardcoded.
I assume that this works only because something else is somehow
overriding the dropping of .gitignore.
Hum... Not sure. In fact, I am not sure I understand what you mean about
that .gitignore thing... You're saying git-buildpackage doesn't
*respect* or *package* the .gitignore file?
Later in this bug you followed up:
Antoine Beaupré writes:
Ah, after more complete testing, it seems that push fails with packages
built through pbuilder, because it can't find the .dsc file:
...
dgit: looked for .dsc bugs-everywhere_1.1.1-3.dsc, but Aucun fichier ou
dossier de ce type; maybe you forgot to build
Indeed, the files are in ../build-area. But after moving the files into
place (in ../), the push proceeds further. Maybe there should be an
option to specify the build directory?
I think that would be a good idea. (I won't yet clone this bug report
for that, because I want to finish the whole conversation before
deciding what's best to do.)
Right. Or maybe look at gbp's config? Just brainstorming here...
(But: there is already an option to specify the .changes file. Does
using it make dgit work in this case? I ask because I have a feeling
it might not...)
Crap, I missed that option too... I guess I'll try again during the next
upload! Maybe that's all that's needed really...
A.
--
Si Dieu existe, j'espère qu'Il a une excuse valable
- Daniel Pennac
pgp1mkRWJi6Li.pgp
Description: PGP signature