diff -Nru reprotest-0.7.5/debian/changelog reprotest-0.7.7/debian/changelog --- reprotest-0.7.5/debian/changelog 2017-12-14 16:44:39.000000000 +0000 +++ reprotest-0.7.7/debian/changelog 2017-12-15 17:28:41.000000000 +0000 @@ -1,3 +1,18 @@ +reprotest (0.7.7) unstable; urgency=medium + + * Update debian/copyright and use HTTPS in debian/watch. + + -- Ximin Luo Fri, 15 Dec 2017 18:28:41 +0100 + +reprotest (0.7.6) unstable; urgency=medium + + * Ensure num_cpus variation uses a different number of cpus in different + builds, and print a warning if only 1 cpu is available. (Closes: #884386) + * Don't test the num_cpus variation if only 1 cpu is available. + * Update to latest Standards-Version; no changes required. + + -- Ximin Luo Fri, 15 Dec 2017 16:39:08 +0100 + reprotest (0.7.5) unstable; urgency=medium [ Santiago Torres ] diff -Nru reprotest-0.7.5/debian/control reprotest-0.7.7/debian/control --- reprotest-0.7.5/debian/control 2017-10-26 23:09:08.000000000 +0000 +++ reprotest-0.7.7/debian/control 2017-12-15 15:38:15.000000000 +0000 @@ -3,7 +3,7 @@ Uploaders: Ceridwen , Ximin Luo Section: devel Priority: optional -Standards-Version: 4.1.1 +Standards-Version: 4.1.2 Build-Depends: debhelper (>= 10), dpkg-dev (>= 1.17.14), dh-python, diff -Nru reprotest-0.7.5/debian/copyright reprotest-0.7.7/debian/copyright --- reprotest-0.7.5/debian/copyright 2017-07-19 13:45:29.000000000 +0000 +++ reprotest-0.7.7/debian/copyright 2017-12-15 17:26:25.000000000 +0000 @@ -3,7 +3,8 @@ Source: https://anonscm.debian.org/cgit/reproducible/reprotest.git Files: * -Copyright: 2016 Ceridwen +Copyright: 2017-2016 Ximin Luo + 2016 Ceridwen License: GPL-3+ Files: reprotest/lib/* @@ -11,9 +12,9 @@ Copyright: 2006-2016 Canonical Ltd. License: GPL-2+ -Files: reprotest/_contextlib.py -Copyright: 2001-2016 Python Software Foundation. -License: Python-2.1.1 +Files: reprotest/lib/system_interface/* +Copyright: 2017 Santiago Torres +License: GPL-3+ License: GPL-3+ This program is free software: you can redistribute it and/or modify @@ -50,192 +51,3 @@ . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-2". - -License: Python-2.1.1 - PSF LICENSE AGREEMENT - --------------------- - . - 1. This LICENSE AGREEMENT is between the Python Software Foundation - ("PSF"), and the Individual or Organization ("Licensee") accessing and - otherwise using Python 2.1.1 software in source or binary form and its - associated documentation. - . - 2. Subject to the terms and conditions of this License Agreement, PSF - hereby grants Licensee a nonexclusive, royalty-free, world-wide - license to reproduce, analyze, test, perform and/or display publicly, - prepare derivative works, distribute, and otherwise use Python 2.1.1 - alone or in any derivative version, provided, however, that PSF's - License Agreement and PSF's notice of copyright, i.e., "Copyright (c) - 2001 Python Software Foundation; All Rights Reserved" are retained in - Python 2.1.1 alone or in any derivative version prepared by Licensee. - . - 3. In the event Licensee prepares a derivative work that is based on - or incorporates Python 2.1.1 or any part thereof, and wants to make - the derivative work available to others as provided herein, then - Licensee hereby agrees to include in any such work a brief summary of - the changes made to Python 2.1.1. - . - 4. PSF is making Python 2.1.1 available to Licensee on an "AS IS" - basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR - IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND - DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS - FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.1.1 WILL NOT - INFRINGE ANY THIRD PARTY RIGHTS. - . - 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON - 2.1.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS - A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.1.1, - OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - . - 6. This License Agreement will automatically terminate upon a material - breach of its terms and conditions. - . - 7. Nothing in this License Agreement shall be deemed to create any - relationship of agency, partnership, or joint venture between PSF and - Licensee. This License Agreement does not grant permission to use PSF - trademarks or trade name in a trademark sense to endorse or promote - products or services of Licensee, or any third party. - . - 8. By copying, installing or otherwise using Python 2.1.1, Licensee - agrees to be bound by the terms and conditions of this License - Agreement. - . - BEOPEN.COM TERMS AND CONDITIONS FOR PYTHON 2.0 - ---------------------------------------------- - . - BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 - . - 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an - office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the - Individual or Organization ("Licensee") accessing and otherwise using - this software in source or binary form and its associated - documentation ("the Software"). - . - 2. Subject to the terms and conditions of this BeOpen Python License - Agreement, BeOpen hereby grants Licensee a non-exclusive, - royalty-free, world-wide license to reproduce, analyze, test, perform - and/or display publicly, prepare derivative works, distribute, and - otherwise use the Software alone or in any derivative version, - provided, however, that the BeOpen Python License is retained in the - Software, alone or in any derivative version prepared by Licensee. - . - 3. BeOpen is making the Software available to Licensee on an "AS IS" - basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR - IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND - DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS - FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT - INFRINGE ANY THIRD PARTY RIGHTS. - . - 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE - SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS - AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY - DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - . - 5. This License Agreement will automatically terminate upon a material - breach of its terms and conditions. - . - 6. This License Agreement shall be governed by and interpreted in all - respects by the law of the State of California, excluding conflict of - law provisions. Nothing in this License Agreement shall be deemed to - create any relationship of agency, partnership, or joint venture - between BeOpen and Licensee. This License Agreement does not grant - permission to use BeOpen trademarks or trade names in a trademark - sense to endorse or promote products or services of Licensee, or any - third party. As an exception, the "BeOpen Python" logos available at - http://www.pythonlabs.com/logos.html may be used according to the - permissions granted on that web page. - . - 7. By copying, installing or otherwise using the software, Licensee - agrees to be bound by the terms and conditions of this License - Agreement. - . - CNRI OPEN SOURCE GPL-COMPATIBLE LICENSE AGREEMENT - ------------------------------------------------- - . - 1. This LICENSE AGREEMENT is between the Corporation for National - Research Initiatives, having an office at 1895 Preston White Drive, - Reston, VA 20191 ("CNRI"), and the Individual or Organization - ("Licensee") accessing and otherwise using Python 1.6.1 software in - source or binary form and its associated documentation. - . - 2. Subject to the terms and conditions of this License Agreement, CNRI - hereby grants Licensee a nonexclusive, royalty-free, world-wide - license to reproduce, analyze, test, perform and/or display publicly, - prepare derivative works, distribute, and otherwise use Python 1.6.1 - alone or in any derivative version, provided, however, that CNRI's - License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) - 1995-2001 Corporation for National Research Initiatives; All Rights - Reserved" are retained in Python 1.6.1 alone or in any derivative - version prepared by Licensee. Alternately, in lieu of CNRI's License - Agreement, Licensee may substitute the following text (omitting the - quotes): "Python 1.6.1 is made available subject to the terms and - conditions in CNRI's License Agreement. This Agreement together with - Python 1.6.1 may be located on the Internet using the following - unique, persistent identifier (known as a handle): 1895.22/1013. This - Agreement may also be obtained from a proxy server on the Internet - using the following URL: http://hdl.handle.net/1895.22/1013". - . - 3. In the event Licensee prepares a derivative work that is based on - or incorporates Python 1.6.1 or any part thereof, and wants to make - the derivative work available to others as provided herein, then - Licensee hereby agrees to include in any such work a brief summary of - the changes made to Python 1.6.1. - . - 4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" - basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR - IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND - DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS - FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT - INFRINGE ANY THIRD PARTY RIGHTS. - . - 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON - 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS - A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, - OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - . - 6. This License Agreement will automatically terminate upon a material - breach of its terms and conditions. - . - 7. This License Agreement shall be governed by the federal - intellectual property law of the United States, including without - limitation the federal copyright law, and, to the extent such - U.S. federal law does not apply, by the law of the Commonwealth of - Virginia, excluding Virginia's conflict of law provisions. - Notwithstanding the foregoing, with regard to derivative works based - on Python 1.6.1 that incorporate non-separable material that was - previously distributed under the GNU General Public License (GPL), the - law of the Commonwealth of Virginia shall govern this License - Agreement only as to issues arising under or with respect to - Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this - License Agreement shall be deemed to create any relationship of - agency, partnership, or joint venture between CNRI and Licensee. This - License Agreement does not grant permission to use CNRI trademarks or - trade name in a trademark sense to endorse or promote products or - services of Licensee, or any third party. - . - 8. By clicking on the "ACCEPT" button where indicated, or by copying, - installing or otherwise using Python 1.6.1, Licensee agrees to be - bound by the terms and conditions of this License Agreement. - . - CWI PERMISSIONS STATEMENT AND DISCLAIMER - ---------------------------------------- - . - Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, - The Netherlands. All rights reserved. - . - Permission to use, copy, modify, and distribute this software and its - documentation for any purpose and without fee is hereby granted, - provided that the above copyright notice appear in all copies and that - both that copyright notice and this permission notice appear in - supporting documentation, and that the name of Stichting Mathematisch - Centrum or CWI not be used in advertising or publicity pertaining to - distribution of the software without specific, written prior - permission. - . - STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO - THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE - FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff -Nru reprotest-0.7.5/debian/rules reprotest-0.7.7/debian/rules --- reprotest-0.7.5/debian/rules 2017-11-27 13:16:32.000000000 +0000 +++ reprotest-0.7.7/debian/rules 2017-12-15 15:03:03.000000000 +0000 @@ -6,12 +6,16 @@ %: dh $@ --with python3 --buildsystem=pybuild +, := , # It's hard to make sure disorderfs works on buildds, so drop it. # The build user needs fuse access and this is not easily arranged. # # To be user-friendly the user_group variation defaults to ON but is a no-op. # This causes tests to fail since they expect something to be captured. So ignore it here -export REPROTEST_TEST_DONTVARY = fileordering,user_group,domain_host +# +# Also disable the num_cpus variation if $(nproc) = 1 as there is no variation +# in that case. +export REPROTEST_TEST_DONTVARY = fileordering,user_group,domain_host$(if $(shell nproc | grep --color=no -Fx 1),$(,)num_cpus,) override_dh_auto_configure: test $$(python3 setup.py --version) = $$(dpkg-parsechangelog -SVersion) @@ -32,6 +36,14 @@ endif endif +# This is mean to be run by autopkgtest, and runs against the *installed* +# version of reprotest. To run it against the development version, give +# PYTHONPATH=$PWD. (Or just use override_dh_auto_test, above.) +autopkgtest-pytest: +# print the value, for debugging + REPROTEST_TEST_DONTVARY="$(REPROTEST_TEST_DONTVARY)" + pytest-3 $(if $(PYTEST_MARKEXPR),-m "$(PYTEST_MARKEXPR)",) $(PYTEST_ARGS) + override_dh_auto_clean: dh_auto_clean cd doc && $(MAKE) clean diff -Nru reprotest-0.7.5/debian/tests/control reprotest-0.7.7/debian/tests/control --- reprotest-0.7.5/debian/tests/control 2017-11-28 17:37:54.000000000 +0000 +++ reprotest-0.7.7/debian/tests/control 2017-12-15 14:56:52.000000000 +0000 @@ -1,5 +1,5 @@ -Test-Command: env REPROTEST_TEST_DONTVARY=fileordering,user_group,domain_host pytest-3 -m "not need_builddeps" +Test-Command: debian/rules autopkgtest-pytest PYTEST_MARKEXPR="not need_builddeps" Depends: @, python3-pytest, faketime, locales-all, fakeroot -Test-Command: env REPROTEST_TEST_DONTVARY=fileordering,user_group,domain_host pytest-3 -m "need_builddeps" +Test-Command: debian/rules autopkgtest-pytest PYTEST_MARKEXPR="need_builddeps" Depends: @, @builddeps@ diff -Nru reprotest-0.7.5/debian/watch reprotest-0.7.7/debian/watch --- reprotest-0.7.5/debian/watch 2017-05-09 19:21:49.000000000 +0000 +++ reprotest-0.7.7/debian/watch 2017-12-15 17:25:45.000000000 +0000 @@ -1,2 +1,2 @@ version=3 -opts=pgpsigurlmangle=s/$/.asc/ http://reproducible.alioth.debian.org/releases/reprotest/reprotest[-_](.+)\.tar\..* +opts=pgpsigurlmangle=s/$/.asc/ https://reproducible.alioth.debian.org/releases/reprotest/reprotest[-_](.+)\.tar\..* diff -Nru reprotest-0.7.5/reprotest/build.py reprotest-0.7.7/reprotest/build.py --- reprotest-0.7.5/reprotest/build.py 2017-12-12 14:56:31.000000000 +0000 +++ reprotest-0.7.7/reprotest/build.py 2017-12-15 14:47:07.000000000 +0000 @@ -298,15 +298,17 @@ def num_cpus(ctx, build, vary): _ = build - _ = _.append_setup_exec_raw('CPU_MAX=$(nproc --all)') + _ = _.append_setup_exec_raw('CPU_MAX=$(nproc)') _ = _.append_setup_exec_raw('CPU_MIN=$({ echo $CPU_MAX; echo %s; } | sort -n | head -n1)' % ctx.min_cpus) if ctx.min_cpus <= 0: raise ValueError("--min-cpus must be a positive integer: " % ctx.min_cpus) if not vary: _ = _.append_setup_exec_raw('CPU_NUM=$CPU_MIN') else: - # random number between min_cpus and $(nproc --all) - _ = _.append_setup_exec_raw('CPU_NUM=$(shuf -i$CPU_MIN-$CPU_MAX -n1)') + # random number between min_cpus and $(nproc) + _ = _.append_setup_exec_raw('CPU_NUM=$(if [ $CPU_MIN = $CPU_MAX ]; \ + then echo $CPU_MIN; echo >&2 "only 1 CPU is available; num_cpus is ineffective"; \ + else shuf -i$((CPU_MIN + 1))-$CPU_MAX -n1; fi)') # select CPU_NUM random cpus from the range 0..$((CPU_MAX-1)) cpu_list = "$(echo $(shuf -i0-$((CPU_MAX - 1)) -n$CPU_NUM) | tr ' ' ,)" diff -Nru reprotest-0.7.5/setup.py reprotest-0.7.7/setup.py --- reprotest-0.7.5/setup.py 2017-12-14 16:40:12.000000000 +0000 +++ reprotest-0.7.7/setup.py 2017-12-15 17:24:14.000000000 +0000 @@ -6,7 +6,7 @@ from setuptools import setup, find_packages setup(name='reprotest', - version='0.7.5', + version='0.7.7', description='Build packages and check them for reproducibility.', long_description=open('README.rst', encoding='utf-8').read(), author='Ximin Luo, Ceridwen',