On Tue, Aug 21, 2018 at 12:15:51AM -0400, Theodore Y. Ts'o wrote: > On Mon, Aug 20, 2018 at 02:53:40PM -0700, Darrick J. Wong wrote: > > > I'm getting an error here, in the "installdirs-udev" target, when trying to > > > build the latest e2fsprogs (commit 6ac81e4526a4e1) into a Debian package: > > > > Uhhhh... what happened here?? > > > > ...it looks like e2scrub got pulled into 1.44.4. Ross Burton submitted > > a patch (in 2014) to remove MKINSTALLDIRS in favor of MKDIR_P; this > > patch has also been pulled into 1.44.4. Mr. Burton's patch did not > > convert the scrub/ directory (since it did not exist four years ago) > > which AFAICT is why the build doesn't work. :/ > > > > I was not expecting any of the e2scrub stuff to appear until 1.45. > > Not quite. I added the cleanup patch the maint branch (from which > 1.44.4 was released). > > The maint branch then got merged into the next/master branches (which > is where e2scrub was). Eric is probably testing e2fsprogs on the > master branch, and I hadn't noticed this issue because I had been > focused on building e2fsprogs on the maint branch. Ah, yes, sorry. I was looking at gitweb, which didn't make it obvious enough that the e2scrub patches had branched off from a common ancestor before being merged back together. (Granted, it does actually /say/ "Merge branch maint into next", but alas the one thing I really really can't do well right now is read ledger lines. :/) (That said, I think the MKINSTALLDIRS -> MKDIR_P conversion still needs to be done for e2scrub?) ((Stepping back before I say any more foolish stuff.)) --D > > - Ted > > P.S. BTW, you can now do a completely reproducible debian build the > way I build my debian packages using git-buildpackage: > > gbp pull https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git > gbp buildpackage > > I'm doing my builds using a minimal sbuild chroot (which is what the > Debian auto-builders are using). Setup instructions are here, and > it's pretty easy to set up: > > https://wiki.debian.org/sbuild > > I have in ~/.sbuildrc: > > $build_arch_all = 1; > $distribution = 'unstable'; > $source_only_changes = 1; > > ... and in ~/.gbp.conf: > > [buildpackage] > builder = sbuild > export-dir = /tmp/gbp > > [tag] > sign-tags = True > > The bits of the gbp configuration which is not build-environment > specific can be found in debian/gbp.conf in the e2fsprogs sources. > The debian packaging specific bits (for which there are none for now) > are in debian/master, and the delta file to reconstruct a bit-for-bit > e2fsprogs_1.44.4.orig.tar.gz file is in the pristine-tar branch. > > I timed "gbp buildpackage" and although I cheated a little because I > have ccache installed, the total build time was only 65 seconds. So > that's basically the maximum overhead of setting up the build schroot > session, doing an apt-get install of the e2fsprogs specific build > packages (cached using apt-cacher-ng), the dpkg-buildpackage (cached > using ccache), doing an apt-get install of lintian and its > dependencies, and then running lintian on the output. > > Or, of course, if you don't care about hermetic builds and if you > don't care about build a source .deb and .changes file suitable for > uploading to a debian archive, you can just checkout the maint branch, > apply your patches, and then just run "dpkg-buildpackage -us -uc -b". :-) >