[Python-modules-team] Bug#788505: python-pypump: [PATCH] please make the build reproducible

Jérémy Bobbio lunar at debian.org
Fri Jun 12 08:17:28 UTC 2015


(Cc'ing the reproducible builds mailing list instead of specific team
members.)

W. Martin Borgert:
> while I'm all in favour of reproducible builds, I'm not happy
> with messing up hundreds of packages debian/rules files. Why not
> change the defaults of sphinx or dh or whatever and just rebuild
> packages?

It would need to be Sphinx. If you look at the patch for pypump you have
replied to:

> -	make -C docs html
> +	make -C docs html SPHINXOPTS="$(SPHINXOPTS)"

As you can see, the current `debian/rules` already contains specific
code to build the documentation.

But if we can find solutions that would fix all these packages at once,
that would be really awesome! :)

> Who needs or wants a "last change date" in the HTML anyway?

Some people argue that you need it to determine how “fresh” the
documentation is. In the case of documentation generated by Debian
package, I think the package version string is a much more reliable
information.

The problem is that Sphinx is not only used to build Debian packages. So
changing the default to the use the latter sounds tricky.

> We worked years to get the d/r files clean and short and now we
> add cruft to it again? Which is repeated redundantly in hundreds of
> files? Maybe dh_sphinxdoc could just "do the right thing"?

`dh_sphinxdoc` should indeed be changed to do the right thing.

But looking at the stream of patches written by Juan for this issue, I
haven't seen any for packages using `dh_sphinxdoc`, and even if patches
look alike, they are hardly identical.

The only “cruft” I really see is:

> +LAST_CHANGE=$(shell dpkg-parsechangelog -S Date)
> +BUILD_DATE=$(shell LC_ALL=C date -u "+%B %d, %Y" -d "$(LAST_CHANGE)")

The problem is that every tool on Earth uses a different date format.
They have been discussions on adding variables to
`/usr/share/dpkg/pkg-info.mk`

But that basically would mean replacing the two lines by:

    include /usr/share/dpkg/pkg-info.mk

And then using something like (if we can agree to export the date in
multiple format):

    SPHINXOPTS := -D today=\"$(SOURCE_DATE_ENGLISH_SHORT)\"

It doesn't feel like a huge win to me.

(Remember that packages can be built without using `dpkg-buildpackage`,
so the Makefile has to be self-contained.)

-- 
Lunar                                .''`. 
lunar at debian.org                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/python-modules-team/attachments/20150612/2006fc9f/attachment-0001.sig>


More information about the Python-modules-team mailing list