Hi, > Patch attached.
Updated patch attached. Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-
From 61bf45705cdcb96e4963d4f4e4e429238a6f7768 Mon Sep 17 00:00:00 2001 From: Chris Lamb <la...@debian.org> Date: Fri, 9 Mar 2018 21:57:01 -0800 Subject: [PATCH] Make the generated pkgconfig files reproducible. Whilst working on the Reproducible Builds effort [0], we noticed that meson creates non-reproducible pkgconfig files as it iterates over Python sets. This was originally filed in Debian as #892515 [1]. [0] https://reproducible-builds.org/ [1] https://bugs.debian.org/892515 --- mesonbuild/modules/pkgconfig.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index 5573a2e41..c89de24c5 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -167,12 +167,12 @@ def generate_pkgconfig_file(self, state, deps, subdirs, name, description, ofile.write('URL: %s\n' % url) ofile.write('Version: %s\n' % version) if len(deps.pub_reqs) > 0: - ofile.write('Requires: {}\n'.format(' '.join(deps.pub_reqs))) + ofile.write('Requires: {}\n'.format(' '.join(sorted(deps.pub_reqs)))) if len(deps.priv_reqs) > 0: ofile.write( - 'Requires.private: {}\n'.format(' '.join(deps.priv_reqs))) + 'Requires.private: {}\n'.format(' '.join(sorted(deps.priv_reqs)))) if len(conflicts) > 0: - ofile.write('Conflicts: {}\n'.format(' '.join(conflicts))) + ofile.write('Conflicts: {}\n'.format(' '.join(sorted(conflicts)))) def generate_libs_flags(libs): msg = 'Library target {0!r} has {1!r} set. Compilers ' \ @@ -201,9 +201,9 @@ def generate_libs_flags(libs): yield '-l%s' % lname if len(deps.pub_libs) > 0: - ofile.write('Libs: {}\n'.format(' '.join(generate_libs_flags(deps.pub_libs)))) + ofile.write('Libs: {}\n'.format(' '.join(sorted(generate_libs_flags(deps.pub_libs))))) if len(deps.priv_libs) > 0: - ofile.write('Libs.private: {}\n'.format(' '.join(generate_libs_flags(deps.priv_libs)))) + ofile.write('Libs.private: {}\n'.format(' '.join(sorted(generate_libs_flags(deps.priv_libs))))) ofile.write('Cflags:') for h in subdirs: ofile.write(' ')