File: reproducible-builds.patch

package info (click to toggle)
jython 2.7.2%2Brepack1-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 62,676 kB
  • sloc: python: 640,908; java: 306,458; xml: 1,984; sh: 522; ansic: 126; makefile: 76
file content (43 lines) | stat: -rw-r--r-- 2,237 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Index: jython/build.xml
===================================================================
--- jython.orig/build.xml
+++ jython/build.xml
@@ -733,8 +733,12 @@ The text for an official release would c
             <arg path="${out}"/>
             <arg value="-lib"/>
             <arg path="${out}"/>
-            <arg file="${basedir}/grammar/Python.g"/>
-            <arg file="${basedir}/grammar/PythonPartial.g"/>
+            <!-- Reproducible builds
+                 Replace 'arg file=...' with 'arg value=...' to prevent using
+                 the absolute filename, because these filenames are inserted
+                 into the antlr generated getGrammar* methods -->
+            <arg value="grammar/Python.g"/>
+            <arg value="grammar/PythonPartial.g"/>
             <classpath refid="main.classpath"/>
         </java>
 
@@ -1132,7 +1136,10 @@ The text for an official release would c
     </target>
 
     <target name="copy-lib" depends="common-dirs, copy-cpythonlib">
-        <copy todir="${dist.dir}/Lib">
+        <!-- Reproducible builds
+             Use attribute preservelastmodified="true" because these files'
+             mtime are stored into the generated $py.class files -->
+        <copy todir="${dist.dir}/Lib" preservelastmodified="true">
             <fileset dir="${basedir}/Lib">
                 <exclude name="**/*.class"/>
             </fileset>
@@ -1156,7 +1163,10 @@ The text for an official release would c
         <copy file="${basedir}/lib-python/LICENSE.txt"
               tofile="${dist.dir}/LICENSE_CPython.txt"
               preservelastmodified="true" />
-        <copy todir="${dist.dir}/Lib">
+        <!-- Reproducible builds
+             Use attribute preservelastmodified="true" because these files'
+             mtime are stored into the generated $py.class files -->
+        <copy todir="${dist.dir}/Lib" preservelastmodified="true">
             <fileset dir="${python.lib}" excludes="**/*.pyc, **/*.pyo" includesfile="${basedir}/CPythonLib.includes">
                 <!-- The include file gets all of lib-python/2.7's test directory, but we only want the ones from Jython's Lib.   -->
                 <present present="srconly" targetdir="${basedir}/Lib"/>