* [PATCH] Makefile.am: add a target that lists patches no longer used
@ 2015-05-18 23:34 Cyril Roelandt
2017-04-20 19:15 ` Leo Famulari
0 siblings, 1 reply; 5+ messages in thread
From: Cyril Roelandt @ 2015-05-18 23:34 UTC (permalink / raw)
To: guix-devel
* list-useless-patches.sh: New file.
* Makefile.am (check-for-useless-patches): New target.
---
Makefile.am | 3 +++
list-useless-patches.sh | 27 +++++++++++++++++++++++++++
2 files changed, 30 insertions(+)
create mode 100755 list-useless-patches.sh
diff --git a/Makefile.am b/Makefile.am
index 6478aeb..293c27e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -388,6 +388,9 @@ assert-final-inputs-self-contained:
$(top_builddir)/pre-inst-env "$(GUILE)" \
"$(top_srcdir)/build-aux/check-final-inputs-self-contained.scm"
+check-for-useless-patches:
+ $(top_srcdir)/list-useless-patches.sh
+
.PHONY: sync-descriptions gen-ChangeLog clean-go
.PHONY: assert-no-store-file-names assert-binaries-available
.PHONY: assert-final-inputs-self-contained
diff --git a/list-useless-patches.sh b/list-useless-patches.sh
new file mode 100755
index 0000000..5aae1bb
--- /dev/null
+++ b/list-useless-patches.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# GNU Guix --- Functional package management for GNU
+# Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
+#
+# This file is part of GNU Guix.
+#
+# GNU Guix is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or (at
+# your option) any later version.
+#
+# GNU Guix is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+# This lists patches in gnu-system.am that are not used anywhere.
+for file in $(grep ".*\.patch" gnu-system.am | awk '{print $1}'); do
+ git grep -q $(basename $file) gnu/packages/
+ if [ "$?" -ne "0" ]; then
+ echo "$file is no longer needed"
+ fi
+done
--
1.8.4.rc3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Makefile.am: add a target that lists patches no longer used
2015-05-18 23:34 [PATCH] Makefile.am: add a target that lists patches no longer used Cyril Roelandt
@ 2017-04-20 19:15 ` Leo Famulari
2017-04-21 4:20 ` Eric Bavier
0 siblings, 1 reply; 5+ messages in thread
From: Leo Famulari @ 2017-04-20 19:15 UTC (permalink / raw)
To: Cyril Roelandt; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 197 bytes --]
On Tue, May 19, 2015 at 01:34:10AM +0200, Cyril Roelandt wrote:
> * list-useless-patches.sh: New file.
> * Makefile.am (check-for-useless-patches): New target.
We should make use of this somehow!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Makefile.am: add a target that lists patches no longer used
2017-04-20 19:15 ` Leo Famulari
@ 2017-04-21 4:20 ` Eric Bavier
2017-04-21 17:41 ` Leo Famulari
0 siblings, 1 reply; 5+ messages in thread
From: Eric Bavier @ 2017-04-21 4:20 UTC (permalink / raw)
To: Leo Famulari; +Cc: guix-devel
[-- Attachment #1.1: Type: text/plain, Size: 4187 bytes --]
On Thu, 20 Apr 2017 15:15:46 -0400
Leo Famulari <leo@famulari.name> wrote:
> On Tue, May 19, 2015 at 01:34:10AM +0200, Cyril Roelandt wrote:
> > * list-useless-patches.sh: New file.
> > * Makefile.am (check-for-useless-patches): New target.
>
> We should make use of this somehow!
Attached is my own shot at this. It does not make use of git, so
should be fine as a regular test. It doesn't check whether the files
listed in dist_patch_DATA actually exist, because `make dist` already
checks that. I suppose it might be nice, if git a git checkout, to
check whether the used patches are all known to git...
Anyhow, currently the test fails with the following log output:
-----------BEGIN test-suite.log----------------
FAIL: tests/patches
===================
test-name: distributed patches are used
location: /home/bavier/projects/guix/tests/patches.scm:50
source:
+ (test-equal
+ "distributed patches are used"
+ '()
+ (lset-difference
+ string=?
+ distributed-patches
+ used-patches))
expected-value: ()
actual-value: ("/home/bavier/projects/guix/gnu/packages/patches/ath9k-htc-firmware-binutils.patch" "/home/bavier/projects/guix/gnu/packages/patches/ath9k-htc-firmware-gcc.patch" "/home/bavier/projects/guix/gnu/packages/patches/coreutils-cut-huge-range-test.patch" "/home/bavier/projects/guix/gnu/packages/patches/gawk-shell.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcc-libiberty-printf-decl.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcj-arm-mode.patch" "/home/bavier/projects/guix/gnu/packages/patches/glibc-bootstrap-system.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-CVE-2015-8370.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-gets-undeclared.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-freetype.patch" "/home/bavier/projects/guix/gnu/packages/patches/guile-arm-fixes.patch" "/home/bavier/projects/guix/gnu/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch" "/home/bavier/projects/guix/gnu/packages/patches/icu4c-reset-keyword-list-iterator.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-disable-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/libgit2-use-after-free.patch" "/home/bavier/projects/guix/gnu/packages/patches/libxslt-CVE-2016-4738.patch" "/home/bavier/projects/guix/gnu/packages/patches/mplayer2-theora-fix.patch" "/home/bavier/projects/guix/gnu/packages/patches/patchelf-rework-for-arm.patch" "/home/bavier/projects/guix/gnu/packages/patches/pcre-CVE-2017-7186.patch" "/home/bavier/projects/guix/gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch" "/home/bavier/projects/guix/gnu/packages/patches/readline-7.0-mingw.patch" "/home/bavier/projects/guix/gnu/packages/patches/soprano-find-clucene.patch" "/home/bavier/projects/guix/gnu/packages/patches/texlive-texmf-CVE-2016-10243.patch" "/home/bavier/projects/guix/gnu/packages/patches/util-linux-CVE-2017-2616.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-ast-remove-mibstore.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-intel-compat-api.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-intel-glibc-2.20.patch")
result: FAIL
test-name: used patches are distributed
location: /home/bavier/projects/guix/tests/patches.scm:54
source:
+ (test-equal
+ "used patches are distributed"
+ '()
+ (lset-difference
+ string=?
+ used-patches
+ distributed-patches))
expected-value: ()
actual-value: ("/home/bavier/projects/guix/gnu/packages/patches/python-pbr-fix-man-page-support.patch" "/home/bavier/projects/guix/gnu/packages/patches/jacal-fix-texinfo.patch" "/home/bavier/projects/guix/gnu/packages/patches/vsearch-unbundle-cityhash.patch" "/home/bavier/projects/guix/gnu/packages/patches/hmmer-remove-cpu-specificity.patch")
result: FAIL
--------------END test-suite.log-----------------
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-tests-Add-patch-use-test.patch --]
[-- Type: text/x-patch, Size: 3387 bytes --]
From 751f10e180994db6c0df722c2b226e174d3b7a28 Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@member.fsf.org>
Date: Thu, 20 Apr 2017 23:17:14 -0500
Subject: [PATCH] tests: Add patch use test.
* tests/patches.scm: New test.
* Makefile.am (SCM_TESTS): Add it.
(AM_TESTS_ENVIRONMENT): Export dist_patch_DATA.
---
Makefile.am | 8 ++++++--
tests/patches.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 60 insertions(+), 2 deletions(-)
create mode 100644 tests/patches.scm
diff --git a/Makefile.am b/Makefile.am
index a997ed8b9..5cd9be814 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -307,7 +307,8 @@ SCM_TESTS = \
tests/scripts-build.scm \
tests/containers.scm \
tests/pack.scm \
- tests/import-utils.scm
+ tests/import-utils.scm \
+ tests/patches.scm
if HAVE_GUILE_JSON
@@ -343,7 +344,10 @@ endif BUILD_DAEMON
TESTS = $(SCM_TESTS) $(SH_TESTS)
-AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)" GUILE_AUTO_COMPILE=0
+AM_TESTS_ENVIRONMENT = \
+ abs_top_srcdir="$(abs_top_srcdir)" \
+ dist_patch_DATA="$(dist_patch_DATA)" \ #for tests/patches.scm
+ GUILE_AUTO_COMPILE=0
SCM_LOG_DRIVER = \
$(top_builddir)/test-env --quiet-stderr \
diff --git a/tests/patches.scm b/tests/patches.scm
new file mode 100644
index 000000000..4c5a0c44a
--- /dev/null
+++ b/tests/patches.scm
@@ -0,0 +1,54 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (test-patches)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-64)
+ #:use-module (gnu packages)
+ #:use-module (guix packages)
+ #:use-module (guix sets))
+
+\f
+(define used-patches
+ (set->list
+ (fold-packages
+ (lambda (package result)
+ (set-union result
+ (list->set
+ (or (and=> (package-source package)
+ (lambda (o)
+ (filter string? ;ignore origin patches
+ (origin-patches o))))
+ (list)))))
+ (set))))
+
+(define distributed-patches
+ (map (λ (s) (string-append (getenv "abs_top_srcdir") "/" s))
+ (remove string-null? (string-split (getenv "dist_patch_DATA") #\space))))
+
+(test-begin "patches")
+
+(test-equal "distributed patches are used"
+ '()
+ (lset-difference string=? distributed-patches used-patches))
+
+(test-equal "used patches are distributed"
+ '()
+ (lset-difference string=? used-patches distributed-patches))
+
+(test-end)
--
2.12.2
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Makefile.am: add a target that lists patches no longer used
2017-04-21 4:20 ` Eric Bavier
@ 2017-04-21 17:41 ` Leo Famulari
2017-07-19 23:02 ` Ben Woodcroft
0 siblings, 1 reply; 5+ messages in thread
From: Leo Famulari @ 2017-04-21 17:41 UTC (permalink / raw)
To: Eric Bavier; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 3406 bytes --]
On Thu, Apr 20, 2017 at 11:20:23PM -0500, Eric Bavier wrote:
> Attached is my own shot at this. It does not make use of git, so
> should be fine as a regular test. It doesn't check whether the files
> listed in dist_patch_DATA actually exist, because `make dist` already
> checks that. I suppose it might be nice, if git a git checkout, to
> check whether the used patches are all known to git...
I do think it's better to avoid depending on Git here.
> -----------BEGIN test-suite.log----------------
> FAIL: tests/patches
> ===================
>
> test-name: distributed patches are used
> location: /home/bavier/projects/guix/tests/patches.scm:50
> source:
> + (test-equal
> + "distributed patches are used"
> + '()
> + (lset-difference
> + string=?
> + distributed-patches
> + used-patches))
> expected-value: ()
> actual-value: ("/home/bavier/projects/guix/gnu/packages/patches/ath9k-htc-firmware-binutils.patch" "/home/bavier/projects/guix/gnu/packages/patches/ath9k-htc-firmware-gcc.patch" "/home/bavier/projects/guix/gnu/packages/patches/coreutils-cut-huge-range-test.patch" "/home/bavier/projects/guix/gnu/packages/patches/gawk-shell.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcc-libiberty-printf-decl.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcj-arm-mode.patch" "/home/bavier/projects/guix/gnu/packages/patches/glibc-bootstrap-system.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-CVE-2015-8370.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-gets-undeclared.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-freetype.patch" "/home/bavier/projects/guix/gnu/packages/patches/guile-arm-fixes.patch" "/home/bavier/projects/guix/gnu/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch" "/home/bavier/projects/guix/gnu/packages/patches/icu4c-reset-keyword-list-iterator.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-disable-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/libgit2-use-after-free.patch" "/home/bavier/projects/guix/gnu/packages/patches/libxslt-CVE-2016-4738.patch" "/home/bavier/projects/guix/gnu/packages/patches/mplayer2-theora-fix.patch" "/home/bavier/projects/guix/gnu/packages/patches/patchelf-rework-for-arm.patch" "/home/bavier/projects/guix/gnu/packages/patches/pcre-CVE-2017-7186.patch" "/home/bavier/projects/guix/gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch" "/home/bavier/projects/guix/gnu/packages/patches/readline-7.0-mingw.patch" "/home/bavier/projects/guix/gnu/packages/patches/soprano-find-clucene.patch" "/home/bavier/projects/guix/gnu/packages/patches/texlive-texmf-CVE-2016-10243.patch" "/home/bavier/projects/guix/gnu/packages/patches/util-linux-CVE-2017-2616.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-ast-remove-mibstore.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-intel-compat-api.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-intel-glibc-2.20.patch")
At least one of these is a false positive:
icu4c-CVE-2017-7867-CVE-2017-7868.patch
It's used in a grafted package.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Makefile.am: add a target that lists patches no longer used
2017-04-21 17:41 ` Leo Famulari
@ 2017-07-19 23:02 ` Ben Woodcroft
0 siblings, 0 replies; 5+ messages in thread
From: Ben Woodcroft @ 2017-07-19 23:02 UTC (permalink / raw)
To: Leo Famulari, Eric Bavier; +Cc: guix-devel
Hi Eric,
On 22/04/17 03:41, Leo Famulari wrote:
> On Thu, Apr 20, 2017 at 11:20:23PM -0500, Eric Bavier wrote:
>
>> -----------BEGIN test-suite.log----------------
>> FAIL: tests/patches
>> ===================
>>
>> test-name: distributed patches are used
>> location: /home/bavier/projects/guix/tests/patches.scm:50
>> source:
>> + (test-equal
>> + "distributed patches are used"
>> + '()
>> + (lset-difference
>> + string=?
>> + distributed-patches
>> + used-patches))
>> expected-value: ()
>> actual-value: ("/home/bavier/projects/guix/gnu/packages/patches/ath9k-htc-firmware-binutils.patch" "/home/bavier/projects/guix/gnu/packages/patches/ath9k-htc-firmware-gcc.patch" "/home/bavier/projects/guix/gnu/packages/patches/coreutils-cut-huge-range-test.patch" "/home/bavier/projects/guix/gnu/packages/patches/gawk-shell.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcc-libiberty-printf-decl.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch" "/home/bavier/projects/guix/gnu/packages/patches/gcj-arm-mode.patch" "/home/bavier/projects/guix/gnu/packages/patches/glibc-bootstrap-system.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-CVE-2015-8370.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-gets-undeclared.patch" "/home/bavier/projects/guix/gnu/packages/patches/grub-freetype.patch" "/home/bavier/projects/guix/gnu/packages/patches/guile-arm-fixes.patch" "/home/bavier/projects/guix/gnu/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch" "/home/bavier/projects/guix/gnu/packages/patches/icu4c-reset-keyword-list-iterator.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-disable-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch" "/home/bavier/projects/guix/gnu/packages/patches/libgit2-use-after-free.patch" "/home/bavier/projects/guix/gnu/packages/patches/libxslt-CVE-2016-4738.patch" "/home/bavier/projects/guix/gnu/packages/patches/mplayer2-theora-fix.patch" "/home/bavier/projects/guix/gnu/packages/patches/patchelf-rework-for-arm.patch" "/home/bavier/projects/guix/gnu/packages/patches/pcre-CVE-2017-7186.patch" "/home/bavier/projects/guix/gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch" "/home/bavier/projects/guix/gnu/packages/patches/readline-7.0-mingw.patch" "/home/bavier/projects/guix/gnu/packages/patches/soprano-find-clucene.patch" "/home/bavier/projects/guix/gnu/packages/patches/texlive-texmf-CVE-2016-10243.patch" "/home/bavier/projects/guix/gnu/packages/patches/util-linux-CVE-2017-2616.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-ast-remove-mibstore.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-intel-compat-api.patch" "/home/bavier/projects/guix/gnu/packages/patches/xf86-video-intel-glibc-2.20.patch")
> At least one of these is a false positive:
> icu4c-CVE-2017-7867-CVE-2017-7868.patch
>> test-name: used patches are distributed
>> location: /home/bavier/projects/guix/tests/patches.scm:54
>> source:
>> + (test-equal
>> + "used patches are distributed"
>> + '()
>> + (lset-difference
>> + string=?
>> + used-patches
>> + distributed-patches))
>> expected-value: ()
>> actual-value: ("/home/bavier/projects/guix/gnu/packages/patches/python-pbr-fix-man-page-support.patch" "/home/bavier/projects/guix/gnu/packages/patches/jacal-fix-texinfo.patch" "/home/bavier/projects/guix/gnu/packages/patches/vsearch-unbundle-cityhash.patch" "/home/bavier/projects/guix/gnu/packages/patches/hmmer-remove-cpu-specificity.patch")
>> result: FAIL
>>
While the first of these tests might not be ready, this second one seems
to be - I was just burned by a mistake of my own that this test would
have picked up. I added all 4 reported patches in to the set of
distributed patches in ca8fb248d, but shall we add this second test in too?
Thanks, ben.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-07-19 23:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-18 23:34 [PATCH] Makefile.am: add a target that lists patches no longer used Cyril Roelandt
2017-04-20 19:15 ` Leo Famulari
2017-04-21 4:20 ` Eric Bavier
2017-04-21 17:41 ` Leo Famulari
2017-07-19 23:02 ` Ben Woodcroft
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).