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(' ')

Reply via email to