From patchwork Fri Nov 26 21:08:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Vagrant Cascadian X-Patchwork-Id: 34831 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B1A6A27BBEB; Fri, 26 Nov 2021 21:10:38 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 484DC27BBEA for ; Fri, 26 Nov 2021 21:10:38 +0000 (GMT) Received: from localhost ([::1]:60130 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mqiUP-0005yJ-9s for patchwork@mira.cbaines.net; Fri, 26 Nov 2021 16:10:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqiTq-0005y1-62 for guix-patches@gnu.org; Fri, 26 Nov 2021 16:10:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:49068) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mqiTp-0004Ia-Si for guix-patches@gnu.org; Fri, 26 Nov 2021 16:10:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mqiTp-0003hr-MA for guix-patches@gnu.org; Fri, 26 Nov 2021 16:10:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#51985] lint: Adjust patch file length check. Resent-From: Vagrant Cascadian Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 26 Nov 2021 21:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51985 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Ludovic =?utf-8?q?Court=C3=A8s?= Cc: 51985@debbugs.gnu.org, philip@philipmcgrath.com Received: via spool by 51985-submit@debbugs.gnu.org id=B51985.163796095014186 (code B ref 51985); Fri, 26 Nov 2021 21:10:01 +0000 Received: (at 51985) by debbugs.gnu.org; 26 Nov 2021 21:09:10 +0000 Received: from localhost ([127.0.0.1]:60614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqiSz-0003gj-IZ for submit@debbugs.gnu.org; Fri, 26 Nov 2021 16:09:09 -0500 Received: from cascadia.aikidev.net ([173.255.214.101]:32854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqiSx-0003gW-N1 for 51985@debbugs.gnu.org; Fri, 26 Nov 2021 16:09:08 -0500 Received: from localhost (unknown [IPv6:2600:3c01:e000:21:21:21:0:100e]) (Authenticated sender: vagrant@cascadia.debian.net) by cascadia.aikidev.net (Postfix) with ESMTPSA id 88DE61A982; Fri, 26 Nov 2021 13:09:01 -0800 (PST) From: Vagrant Cascadian In-Reply-To: <8735nke61x.fsf@gnu.org> References: <875ysnsvnt.fsf@yucca> <877dd0ph9g.fsf@gnu.org> <8735nl5jri.fsf@ponder> <8735nke61x.fsf@gnu.org> Date: Fri, 26 Nov 2021 13:08:51 -0800 Message-ID: <87ee72fwv0.fsf@ponder> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches On 2021-11-25, Ludovic Courtès wrote: > Vagrant Cascadian skribis: > >> With: >> >> commit bdf5c16ac052af2ca9d5c3acc4acbc08fd9fdbea >> Author: Ludovic Courtès >> Date: Tue Nov 23 09:06:49 2021 +0100 >> >> maint: "make dist" builds tarballs in 'ustar' format. >> >> It seems like this actually needs even further updates, as that should >> allow for a much longer file length in general (although a little >> difficult to figure out the exact file length allowed). >> >> And then the corresponding test suite will need changes as well... > > I think independently of the switch to ustar, it’s a good idea for ‘guix > lint’ to warn about long patch file names, but to warn a bit less > frequently than today. > > In that spirit, your patch is still relevant and worth applying IMO. Sure, although while I'm mucking around... I went ahead and did some real-world testing of file lengths usable by ustar. Using ustar adds a significant buffer, though less than one might think in the case of guix-VERSION/gnu/packages/patches/*.patch (~151 characters vs. ~99). I'm guessing this is plenty buffer though, most existing patches were only a theoretical problem... almost to the point that maybe even removing the check entirely might be fine. Updated patch integrating this and the stronger warning suggested by Philip McGrath. I haven't yet actually *tested* this updated patch yet, but the previous iteration tested just fine. :) live well, vagrant From c0738574a3571977855d655c157ab0ea0f9be6ef Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 26 Nov 2021 12:13:45 -0800 Subject: [PATCH] lint: Adjust patch file length check. With the switch to "ustar" format in commit bdf5c16ac052af2ca9d5c3acc4acbc08fd9fdbea, the maximum file length has increased. * guix/lint.scm (check-patch-file-names): Adjust margin used to check for patch file lengths. Increase allowable patch file length appropriate to new tar format. Extend warning to explain that long files may break 'make dist'. * tests/lint.scm: Update tests accordingly. --- guix/lint.scm | 9 ++++++--- tests/lint.scm | 8 ++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/guix/lint.scm b/guix/lint.scm index ac2e7b3841..4a5573e86e 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -957,8 +957,11 @@ patch could not be found." ;; Check whether we're reaching tar's maximum file name length. (let ((prefix (string-length (%distro-directory))) - (margin (string-length "guix-2.0.0rc3-10000-1234567890/")) - (max 99)) + ;; Margin approximating the largest path that "make dist" might + ;; create, with a release candidate version, 123456 commits, and + ;; git commit hash abcde0. + (margin (string-length "guix-92.0.0rc3-123456-abcde0/")) + (max 151)) (filter-map (match-lambda ((? string? patch) (if (> (+ margin (if (string-prefix? (%distro-directory) @@ -968,7 +971,7 @@ patch could not be found." max) (make-warning package - (G_ "~a: file name is too long") + (G_ "~a: file name is too long which may break 'make dist'") (list (basename patch)) #:field 'patch-file-names) #f)) diff --git a/tests/lint.scm b/tests/lint.scm index 9a91dd5426..8fa0172cf7 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -506,17 +506,17 @@ (file-name "x.patch"))))))))) (check-patch-file-names pkg))) -(test-equal "patches: file name too long" +(test-equal "patches: file name too long which may break 'make dist'" (string-append "x-" - (make-string 100 #\a) - ".patch: file name is too long") + (make-string 152 #\a) + ".patch: file name is too long which may break 'make dist'") (single-lint-warning-message (let ((pkg (dummy-package "x" (source (dummy-origin (patches (list (string-append "x-" - (make-string 100 #\a) + (make-string 152 #\a) ".patch")))))))) (check-patch-file-names pkg)))) -- 2.30.2