Source: python-octaviaclient Version: 1.6.0-2 Severity: wishlist Tags: patch User: [email protected] Usertags: randomness X-Debbugs-Cc: [email protected]
Hi, Whilst working on the Reproducible Builds effort [0], we noticed that python-octaviaclient could not be built reproducibly. This is because it iterates over a set in a nondeterminstic manner when generating its own documentation. Patch attached. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` [email protected] 🍥 chris-lamb.co.uk `-
--- a/debian/patches/reproducible-build.patch 1970-01-01 01:00:00.000000000 +0100 --- b/debian/patches/reproducible-build.patch 2019-02-06 12:28:46.069032260 +0100 @@ -0,0 +1,24 @@ +Description: Make the build reproducible +Author: Chris Lamb <[email protected]> +Last-Update: 2019-02-06 + +--- python-octaviaclient-1.6.0.orig/octaviaclient/osc/v2/amphora.py ++++ python-octaviaclient-1.6.0/octaviaclient/osc/v2/amphora.py +@@ -43,7 +43,7 @@ class ListAmphora(lister.Lister): + role_choices = {'MASTER', 'BACKUP', 'STANDALONE'} + parser.add_argument( + '--role', +- metavar='{' + ','.join(role_choices) + '}', ++ metavar='{' + ','.join(sorted(role_choices)) + '}', + choices=role_choices, + type=lambda s: s.upper(), # case insensitive + help="Filter by role." +@@ -56,7 +56,7 @@ class ListAmphora(lister.Lister): + parser.add_argument( + '--status', '--provisioning-status', + dest='status', +- metavar='{' + ','.join(status_choices) + '}', ++ metavar='{' + ','.join(sorted(status_choices)) + '}', + choices=status_choices, + type=lambda s: s.upper(), # case insensitive + help="Filter by amphora provisioning status." --- a/debian/patches/series 2019-02-06 12:20:58.081215912 +0100 --- b/debian/patches/series 2019-02-06 12:28:44.993023461 +0100 @@ -1 +1,2 @@ remove-privacy-breach.patch +reproducible-build.patch

