[Git][java-team/jython][master] 7 commits: Improve reproducible builds

Gilles Filippini gitlab at salsa.debian.org
Sun Jan 13 14:06:04 GMT 2019


Gilles Filippini pushed to branch master at Debian Java Maintainers / jython


Commits:
b0ff63ef by Gilles Filippini at 2019-01-12T22:36:02Z
Improve reproducible builds

- - - - -
7ffc3a2e by Gilles Filippini at 2019-01-13T10:16:56Z
Point Vcs-* fields to salsad.o

- - - - -
e156b4bf by Gilles Filippini at 2019-01-13T11:15:31Z
Drop unused quilt patches

- - - - -
fb4de422 by Gilles Filippini at 2019-01-13T11:17:40Z
d/rules: ant: do not enforce build.date and build.time

ant should use $SOURCE_DATE_EPOCH when defined

- - - - -
d0766cbf by Gilles Filippini at 2019-01-13T13:14:13Z
d/orig-tar.*: exclude precompiled Windows binaries

- - - - -
e84a96f0 by Gilles Filippini at 2019-01-13T13:14:20Z
New upstream version 2.7.1+repack1
- - - - -
cf507e7d by Gilles Filippini at 2019-01-13T13:28:59Z
Upload release 2.7.1+repack1-1 ti unstable

- - - - -


16 changed files:

- debian/changelog
- debian/control
- debian/orig-tar.exclude
- debian/orig-tar.sh
- − debian/patches/04-runtime-classpath.patch
- − debian/patches/05-javadoc-fix.patch
- + debian/patches/reproducible-builds.patch
- debian/patches/series
- debian/rules
- − lib-python/2.7/distutils/command/wininst-6.0.exe
- − lib-python/2.7/distutils/command/wininst-7.1.exe
- − lib-python/2.7/distutils/command/wininst-8.0.exe
- − lib-python/2.7/distutils/command/wininst-9.0-amd64.exe
- − lib-python/2.7/distutils/command/wininst-9.0.exe
- − src/shell/jython.exe
- − src/shell/python27.dll


Changes:

=====================================
debian/changelog
=====================================
@@ -1,9 +1,19 @@
-jython (2.7.1+repack-7) UNRELEASED; urgency=medium
+jython (2.7.1+repack1-1) unstable; urgency=medium
 
-  * Improve build reproducibility using dh_strip_nondeterminism and
-    SOURCE_DATE_EPOCH
+  * Repack again upstream tarball to remove precompiled Windows binaries
+  * Point Vcs-* fields to salsa.debian.org
+  * Drop unused quilt patches
+  * d/rules: ant: do not enforce build.date and build.time: ant should use
+    $SOURCE_DATE_EPOCH when defined
 
- -- Gilles Filippini <pini at debian.org>  Sat, 10 Nov 2018 11:38:50 +0100
+ -- Gilles Filippini <pini at debian.org>  Sun, 13 Jan 2019 14:28:39 +0100
+
+jython (2.7.1+repack-7) unstable; urgency=medium
+
+  * New patch reproducible-builds.patch
+  * Replace timestamps with $SOURCE_DATE_EPOCH wherever possible
+
+ -- Gilles Filippini <pini at debian.org>  Sat, 12 Jan 2019 23:27:44 +0100
 
 jython (2.7.1+repack-6) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -25,8 +25,8 @@ Build-Depends-Indep: default-jdk,
  libicu4j-java,
  libnetty-java
 Standards-Version: 4.2.1
-Vcs-Git: https://anonscm.debian.org/git/pkg-java/jython.git
-Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/jython.git
+Vcs-Git: https://salsa.debian.org/git/java-team/jython
+Vcs-Browser: https://salsa.debian.org/java-team/jython.git
 Homepage: http://www.jython.org
 
 Package: jython


=====================================
debian/orig-tar.exclude
=====================================
@@ -1 +1,3 @@
 extlibs
+*.exe
+*.dll


=====================================
debian/orig-tar.sh
=====================================
@@ -6,7 +6,7 @@ set -e
 
 PACKAGE=jython
 UPSTREAM_VERSION="$2"
-UPSTREAM_VERSION_MANGLED="$UPSTREAM_VERSION+repack"
+UPSTREAM_VERSION_MANGLED="$UPSTREAM_VERSION+repack1"
 UPSTREAM_TARBALL=../v$UPSTREAM_VERSION.tar.gz
 
 SOURCE_DIR="$PACKAGE-$UPSTREAM_VERSION"


=====================================
debian/patches/04-runtime-classpath.patch deleted
=====================================
@@ -1,12 +0,0 @@
-Index: jython/build.xml
-===================================================================
---- jython.orig/build.xml
-+++ jython/build.xml
-@@ -673,6 +673,7 @@ The readme text for the next release wil
-                  excludes="org/python/expose/generate/**,org/python/version.properties"/>
-           </nameunion>
-           <manifest>
-+              <attribute name="Class-Path" value="${RuntimeClasspath}"/>
-               <attribute name="Main-Class" value="org.python.util.jython" />
-               <attribute name="Built-By" value="${user.name}" />
-               <!-- info section. ATTN: no blanks, no '.' in the names -->


=====================================
debian/patches/05-javadoc-fix.patch deleted
=====================================
@@ -1,24 +0,0 @@
-Description: fix javadoc error with literal "<stdin>"
-Author: Gilles Filippini <pini at debian.org>
-Index: jython/src/org/python/util/InteractiveConsole.java
-===================================================================
---- jython.orig/src/org/python/util/InteractiveConsole.java
-+++ jython/src/org/python/util/InteractiveConsole.java
-@@ -28,7 +28,7 @@ public class InteractiveConsole extends
- 
-     /**
-      * Construct an interactive console, which will "run" when {@link #interact()} is called. The
--     * name of the console (e.g. in error messages) will be {@value #CONSOLE_FILENAME}.
-+     * name of the console (e.g. in error messages) will be {@literal "<stdin>"}.
-      */
-     public InteractiveConsole() {
-         this(null, CONSOLE_FILENAME);
-@@ -36,7 +36,7 @@ public class InteractiveConsole extends
- 
-     /**
-      * Construct an interactive console, which will "run" when {@link #interact()} is called. The
--     * name of the console (e.g. in error messages) will be {@value #CONSOLE_FILENAME}.
-+     * name of the console (e.g. in error messages) will be {@literal "<stdin>"}.
-      *
-      * @param locals dictionary to use, or if <code>null</code>, a new empty one will be created
-      */


=====================================
debian/patches/reproducible-builds.patch
=====================================
@@ -0,0 +1,43 @@
+Index: jython/build.xml
+===================================================================
+--- jython.orig/build.xml
++++ jython/build.xml
+@@ -460,8 +460,12 @@ The readme text for the next release wil
+             <arg path="${work.dir}/build/gensrc/org/python/antlr"/>
+             <arg value="-lib"/>
+             <arg path="${work.dir}/build/gensrc/org/python/antlr"/>
+-            <arg file="${jython.base.dir}/grammar/Python.g"/>
+-            <arg file="${jython.base.dir}/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>
+ 
+@@ -821,7 +825,10 @@ The readme text for the next release wil
+     </target>
+ 
+     <target name="copy-lib" depends="init, copy-javalib, 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="${jython.base.dir}/Lib">
+                 <exclude name="**/*.class"/>
+             </fileset>
+@@ -840,7 +847,10 @@ The readme text for the next release wil
+     </target>
+ 
+     <target name="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="${python.lib}" excludes="**/*.pyc, **/*.pyo" includesfile="${jython.base.dir}/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="${jython.base.dir}/Lib"/>


=====================================
debian/patches/series
=====================================
@@ -3,3 +3,4 @@
 03-default-cachedir.patch
 05-no-com.carrotsearch.sizeof.patch
 javadoc-classpath.patch
+reproducible-builds.patch


=====================================
debian/rules
=====================================
@@ -68,11 +68,12 @@ override_dh_auto_configure: check_classpath
 	dh_auto_configure
 
 override_dh_auto_build:
+	# Reproducible builds - These files' mtime are stored into the
+	# generated $py.class files
+	touch -d @$(SOURCE_DATE_EPOCH) Lib/*.py lib-python/*/*.py
 	# Build the class files.
 	# -nouserlib is required to prevent conflicts with the ant jython plugin
 	ant -nouserlib developer-build jar javadoc \
-	  -Dbuild.date="$(shell date -d @$(SOURCE_DATE_EPOCH) "+%b %d %Y")" \
-	  -Dbuild.time="$(shell date -d @$(SOURCE_DATE_EPOCH) "+%H:%M:%S")" \
 	  -Dmain.classpath=$(OUR_MAIN_CLASSPATH) \
 	  -Dtest.classpath=$(OUR_TEST_CLASSPATH) \
 	  -Druntime.classpath="$(OUR_RUNTIME_CLASSPATH)"


=====================================
lib-python/2.7/distutils/command/wininst-6.0.exe deleted
=====================================
Binary files a/lib-python/2.7/distutils/command/wininst-6.0.exe and /dev/null differ


=====================================
lib-python/2.7/distutils/command/wininst-7.1.exe deleted
=====================================
Binary files a/lib-python/2.7/distutils/command/wininst-7.1.exe and /dev/null differ


=====================================
lib-python/2.7/distutils/command/wininst-8.0.exe deleted
=====================================
Binary files a/lib-python/2.7/distutils/command/wininst-8.0.exe and /dev/null differ


=====================================
lib-python/2.7/distutils/command/wininst-9.0-amd64.exe deleted
=====================================
Binary files a/lib-python/2.7/distutils/command/wininst-9.0-amd64.exe and /dev/null differ


=====================================
lib-python/2.7/distutils/command/wininst-9.0.exe deleted
=====================================
Binary files a/lib-python/2.7/distutils/command/wininst-9.0.exe and /dev/null differ


=====================================
src/shell/jython.exe deleted
=====================================
Binary files a/src/shell/jython.exe and /dev/null differ


=====================================
src/shell/python27.dll deleted
=====================================
Binary files a/src/shell/python27.dll and /dev/null differ



View it on GitLab: https://salsa.debian.org/java-team/jython/compare/1f028edbcf44e027f6fb210c2bc586359bae6b98...cf507e7d309c8ca7f13a51b8eff754df033ea3a8

-- 
View it on GitLab: https://salsa.debian.org/java-team/jython/compare/1f028edbcf44e027f6fb210c2bc586359bae6b98...cf507e7d309c8ca7f13a51b8eff754df033ea3a8
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20190113/7e72157f/attachment.html>


More information about the pkg-java-commits mailing list