From patchwork Mon Feb 7 09:06:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Xinglu Chen X-Patchwork-Id: 37055 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 28BB127BBEA; Mon, 7 Feb 2022 10:09:17 +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=-0.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FROM_SUSPICIOUS_NTLD,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no 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 E62B327BBE9 for ; Mon, 7 Feb 2022 10:09:16 +0000 (GMT) Received: from localhost ([::1]:54766 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nH0xP-0005Et-Vk for patchwork@mira.cbaines.net; Mon, 07 Feb 2022 05:09:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40106) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGzzM-0005kM-Mr for guix-patches@gnu.org; Mon, 07 Feb 2022 04:07:14 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47016) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nGzzC-0004F3-OP for guix-patches@gnu.org; Mon, 07 Feb 2022 04:07:11 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nGzzC-0002s0-6z; Mon, 07 Feb 2022 04:07:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53818] [PATCH v2 1/7] upstream: Sort list of updaters. Resent-From: Xinglu Chen Original-Sender: "Debbugs-submit" Resent-CC: maximedevos@telenet.be, guix-patches@gnu.org Resent-Date: Mon, 07 Feb 2022 09:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53818 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 53818@debbugs.gnu.org Cc: Maxime Devos X-Debbugs-Original-Xcc: Maxime Devos Received: via spool by 53818-submit@debbugs.gnu.org id=B53818.164422481311010 (code B ref 53818); Mon, 07 Feb 2022 09:07:02 +0000 Received: (at 53818) by debbugs.gnu.org; 7 Feb 2022 09:06:53 +0000 Received: from localhost ([127.0.0.1]:40912 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzz2-0002rW-Mt for submit@debbugs.gnu.org; Mon, 07 Feb 2022 04:06:52 -0500 Received: from h178-251-242-94.cust.a3fiber.se ([178.251.242.94]:55260 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzz0-0002rJ-Rr for 53818@debbugs.gnu.org; Mon, 07 Feb 2022 04:06:51 -0500 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoctocell.xyz; s=mail; t=1644224805; bh=uePA9eU3rVfA9D2Eoe6XklIGhmYCp8Bpq3h/n9/hOOk=; h=From:To:Subject:In-Reply-To:References:Date; b=h11PtFCOM1zR5RujP590b6iLRN3VYdW82tVW0+Rf292w7HAmP8JaqRTHd7qnZujZ0 eoI9l2cPHzLC6nLYUINzabVlQNYBB/KmR0NXpN7hyxMbusW5pCfQfW3JH+GgffBOl8 HQXySucp4zwinh1igfTyxDXVpxgfTnD4LIlhB+Ho= In-Reply-To: References: Message-Id: Date: Mon, 07 Feb 2022 10:06:45 +0100 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 The order determines which updater gets used first when running ‘guix refresh’ on a package. We want the most generic updaters to be last since they usually don’t provide as much or accurate information as language-specific updaters. * guix/upstream.scm (sort-updaters): New procedure. (%updaters): Use it. --- guix/upstream.scm | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/guix/upstream.scm b/guix/upstream.scm index 6666803a92..d5faf9d3ee 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -250,14 +250,31 @@ (define (importer-modules) %load-path) #:warn warn-about-load-error))) +(define (sort-updaters updaters) + "Sort UPDATERS by putting the more generic ones last." + (define (genericity updater) + (cond + ((equal? 'repology (upstream-updater-name updater)) + 2) + ((string-prefix? "generic-" + (symbol->string (upstream-updater-name updater))) + 1) + (else 0))) + + (define (less a b) + (<= (genericity a) (genericity b))) + + (stable-sort updaters less)) + (define %updaters ;; The list of publically-known updaters. - (delay (fold-module-public-variables (lambda (obj result) - (if (upstream-updater? obj) - (cons obj result) - result)) - '() - (importer-modules)))) + (delay (sort-updaters + (fold-module-public-variables (lambda (obj result) + (if (upstream-updater? obj) + (cons obj result) + result)) + '() + (importer-modules))))) ;; Tests need to mock this variable so mark it as "non-declarative". (set! %updaters %updaters) From patchwork Mon Feb 7 09:06:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Xinglu Chen X-Patchwork-Id: 37056 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 DA91C27BBEA; Mon, 7 Feb 2022 10:15:06 +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=-0.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FROM_SUSPICIOUS_NTLD,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no 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 97D5327BBE9 for ; Mon, 7 Feb 2022 10:15:06 +0000 (GMT) Received: from localhost ([::1]:33874 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nH133-00029i-OV for patchwork@mira.cbaines.net; Mon, 07 Feb 2022 05:15:05 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40374) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nH00B-00068E-OV for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47041) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nH00A-0004Jj-Kq for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nH00A-0002ur-08; Mon, 07 Feb 2022 04:08:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53818] [PATCH v2 2/7] http-client: Make 'http-fetch/cached' take '#:headers' argument. Resent-From: Xinglu Chen Original-Sender: "Debbugs-submit" Resent-CC: maximedevos@telenet.be, guix-patches@gnu.org Resent-Date: Mon, 07 Feb 2022 09:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53818 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 53818@debbugs.gnu.org Cc: Maxime Devos X-Debbugs-Original-Xcc: Maxime Devos Received: via spool by 53818-submit@debbugs.gnu.org id=B53818.164422483911116 (code B ref 53818); Mon, 07 Feb 2022 09:08:01 +0000 Received: (at 53818) by debbugs.gnu.org; 7 Feb 2022 09:07:19 +0000 Received: from localhost ([127.0.0.1]:40925 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzT-0002t1-1e for submit@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:19 -0500 Received: from h178-251-242-94.cust.a3fiber.se ([178.251.242.94]:55268 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzz9-0002re-7U for 53818@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:03 -0500 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoctocell.xyz; s=mail; t=1644224813; bh=akL6Y2/X0FEbcEKilz3Py/WZu638Uz61mmUyiLjh3JI=; h=From:To:Subject:In-Reply-To:References:Date; b=daLPuNj11/d24yygmKE0YHg9U889uuPeRQdfSAINyfd5ZNVeJ/4wOrpqB2gi3Efki a4MZkFUsxvUPiNcK5RGFo0P7QqjCswJlfltMdkYv4+ROuiUAreSuxPRNFmSfFgnUfM NFwbRl5nreY3hiric5qlJskiU2c6fMyVBrCAlR2g= In-Reply-To: References: Message-Id: Date: Mon, 07 Feb 2022 10:06:52 +0100 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 * guix/http-client.scm (http-fetch/cached): Take ‘#:headers’ keyword argument. --- guix/http-client.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/guix/http-client.scm b/guix/http-client.scm index 10bc278023..058f09852f 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2012, 2015 Free Software Foundation, Inc. ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2022 Xinglu Chen ;;; ;;; This file is part of GNU Guix. ;;; @@ -283,9 +284,11 @@ (define* (http-fetch/cached uri #:key (ttl (%http-cache-ttl)) text? (write-cache dump-port) (cache-miss (const #t)) (log-port (current-error-port)) - (timeout 10)) + (timeout 10) + (headers '((user-agent . "GNU Guile")))) "Like 'http-fetch', return an input port, but cache its contents in -~/.cache/guix. The cache remains valid for TTL seconds. +~/.cache/guix. The cache remains valid for TTL seconds. HEADERS is an alist +of extra HTTP headers. The cache time will automatically be added to HEADERS, so there is no need to specify it. Call WRITE-CACHE with the HTTP input port and the cache output port to write the data to cache. Call CACHE-MISS with URI just before fetching data from @@ -300,8 +303,8 @@ (define cache-time (and cache-port (stat:mtime (stat cache-port)))) - (define headers - `((user-agent . "GNU Guile") + (define headers* + `(,@headers ,@(if cache-time `((if-modified-since . ,(time-utc->date (make-time time-utc 0 cache-time)))) @@ -316,7 +319,7 @@ (define headers (raise c)))) (let ((port (http-fetch uri #:text? text? #:log-port log-port - #:headers headers #:timeout timeout))) + #:headers headers* #:timeout timeout))) (cache-miss uri) (mkdir-p (dirname file)) (when cache-port From patchwork Mon Feb 7 09:06:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xinglu Chen X-Patchwork-Id: 37051 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 DEF2827BBEA; Mon, 7 Feb 2022 09:51:36 +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=-0.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FROM_SUSPICIOUS_NTLD,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no 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 A9FDA27BBE9 for ; Mon, 7 Feb 2022 09:51:36 +0000 (GMT) Received: from localhost ([::1]:60012 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nH0gJ-0005pg-Q3 for patchwork@mira.cbaines.net; Mon, 07 Feb 2022 04:51:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40370) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nH00A-00067r-VF for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47037) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nH009-0004JZ-TW for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nH009-0002uj-Ja; Mon, 07 Feb 2022 04:08:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53818] [PATCH v2 3/7] http-client: 'http-fetch/cached' accepts a string or a . Resent-From: Xinglu Chen Original-Sender: "Debbugs-submit" Resent-CC: maximedevos@telenet.be, guix-patches@gnu.org Resent-Date: Mon, 07 Feb 2022 09:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53818 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 53818@debbugs.gnu.org Cc: Maxime Devos X-Debbugs-Original-Xcc: Maxime Devos Received: via spool by 53818-submit@debbugs.gnu.org id=B53818.164422483911102 (code B ref 53818); Mon, 07 Feb 2022 09:08:01 +0000 Received: (at 53818) by debbugs.gnu.org; 7 Feb 2022 09:07:19 +0000 Received: from localhost ([127.0.0.1]:40920 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzF-0002sZ-10 for submit@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:19 -0500 Received: from h178-251-242-94.cust.a3fiber.se ([178.251.242.94]:55276 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzD-0002ri-9A for 53818@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:03 -0500 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoctocell.xyz; s=mail; t=1644224817; bh=H8jADRyKH0fzq5VeA6Xl0rjl0GKGDAUsZO7ia0nN2ho=; h=From:To:Subject:In-Reply-To:References:Date; b=AkBgueNoH55EJP3JJBosf3/c8DZfwgdKy65vWi4gTiZggYkPOsg6mjsiQWHB9iD2f X4FLDz/u2vIiJXL9fSMK1j8jpIO3Tb3olEICxkBuPxuk7apPFq6W+JMZAT3/xFtSwE P4w2ruk50kgZZKDbiN6YQ61fMBlm7EUHjZ4bdFUc= In-Reply-To: References: Message-Id: <00f4de4c2fddf25566c726dde4a7d52ee80f7f71.1644224421.git.public@yoctocell.xyz> Date: Mon, 07 Feb 2022 10:06:57 +0100 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 This is consistent with the 'http-fetch' procedure. * guix/http-client.scm (http-fetch/cached): The 'uri' argument can be a string or a record. --- guix/http-client.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/http-client.scm b/guix/http-client.scm index 058f09852f..08efdd5e47 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -297,7 +297,10 @@ (define* (http-fetch/cached uri #:key (ttl (%http-cache-ttl)) text? TIMEOUT specifies the timeout in seconds for connection establishment. Write information about redirects to LOG-PORT." - (let ((file (cache-file-for-uri uri))) + (let* ((uri (if (string? uri) + (string->uri uri) + uri)) + (file (cache-file-for-uri uri))) (define (update-cache cache-port) (define cache-time (and cache-port From patchwork Mon Feb 7 09:07:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Xinglu Chen X-Patchwork-Id: 37054 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 E460727BBEA; Mon, 7 Feb 2022 10:07:31 +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=-0.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FROM_SUSPICIOUS_NTLD,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no 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 B13B127BBE9 for ; Mon, 7 Feb 2022 10:07:31 +0000 (GMT) Received: from localhost ([::1]:51154 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nH0vi-0002oN-RZ for patchwork@mira.cbaines.net; Mon, 07 Feb 2022 05:07:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40372) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nH00C-000684-K1 for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47040) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nH00A-0004Jg-Ia for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nH00A-0002ux-EV; Mon, 07 Feb 2022 04:08:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53818] [PATCH v2 4/7] import: json: Make 'json-fetch' take '#:cached?' argument. Resent-From: Xinglu Chen Original-Sender: "Debbugs-submit" Resent-CC: maximedevos@telenet.be, guix-patches@gnu.org Resent-Date: Mon, 07 Feb 2022 09:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53818 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 53818@debbugs.gnu.org Cc: Maxime Devos X-Debbugs-Original-Xcc: Maxime Devos Received: via spool by 53818-submit@debbugs.gnu.org id=B53818.164422484011123 (code B ref 53818); Mon, 07 Feb 2022 09:08:02 +0000 Received: (at 53818) by debbugs.gnu.org; 7 Feb 2022 09:07:20 +0000 Received: from localhost ([127.0.0.1]:40927 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzT-0002tF-Gb for submit@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:19 -0500 Received: from h178-251-242-94.cust.a3fiber.se ([178.251.242.94]:55284 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzH-0002s5-Hn for 53818@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:08 -0500 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoctocell.xyz; s=mail; t=1644224821; bh=KGnmJSu9Rb12ycEVGSc8hZA/7M8jUHmu3RBtBxIxyEs=; h=From:To:Subject:In-Reply-To:References:Date; b=ogsHEGSjq3rwzjMUnTBfm5VEyTpQhvgVCoJVp3/Im++obZqfmtzQAVcA0bBE0gR/P /wiSqN5AnGxslRdcpr2Ipo5Uk4FvLIB9Q+LlTVFYFnYbeGBESYnYOHxwXwySUzsRm3 O9TWoUw+oZIHXE0x17WF8C97WGVTALijeuQiE0oM= In-Reply-To: References: Message-Id: <92ca3095e8a5cf1197afd8883017c6b3729184f3.1644224421.git.public@yoctocell.xyz> Date: Mon, 07 Feb 2022 10:07:01 +0100 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 * json.scm (json-fetch): Add ‘#:cached?’ keyword argument. --- guix/import/json.scm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/guix/import/json.scm b/guix/import/json.scm index 0c98bb25b8..6f88353659 100644 --- a/guix/import/json.scm +++ b/guix/import/json.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015, 2016 Eric Bavier ;;; Copyright © 2018, 2019 Ludovic Courtès ;;; Copyright © 2020 Ricardo Wurmus +;;; Copyright © 2022 Xinglu Chen ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,17 +38,22 @@ (define-module (guix import json) (define* (json-fetch url ;; Note: many websites returns 403 if we omit a ;; 'User-Agent' header. - #:key (headers `((user-agent . "GNU Guile") - (Accept . "application/json")))) + #:key + (headers `((user-agent . "GNU Guile") + (Accept . "application/json"))) + cached?) "Return a representation of the JSON resource URL (a list or hash table), or #f if URL returns 403 or 404. HEADERS is a list of HTTP headers to pass in -the query." +the query. If CACHED? is #t, 'http-fetch/cached' will be used to fetch URL." (guard (c ((and (http-get-error? c) (let ((error (http-get-error-code c))) (or (= 403 error) (= 404 error)))) #f)) - (let* ((port (http-fetch url #:headers headers)) + (let* ((port ((if cached? + http-fetch/cached + http-fetch) + url #:headers headers)) (result (json->scm port))) (close-port port) result))) From patchwork Mon Feb 7 09:07:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Xinglu Chen X-Patchwork-Id: 37052 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 2EE8D27BBEA; Mon, 7 Feb 2022 09:52:15 +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=-0.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FROM_SUSPICIOUS_NTLD,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no 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 36F9B27BBE9 for ; Mon, 7 Feb 2022 09:52:14 +0000 (GMT) Received: from localhost ([::1]:60868 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nH0gv-0006RB-BK for patchwork@mira.cbaines.net; Mon, 07 Feb 2022 04:52:13 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nH00B-00068F-R1 for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47044) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nH00B-0004LJ-04 for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nH00A-0002vA-SZ; Mon, 07 Feb 2022 04:08:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53818] [PATCH v2 5/7] import: Add 'repology' updater. Resent-From: Xinglu Chen Original-Sender: "Debbugs-submit" Resent-CC: maximedevos@telenet.be, guix-patches@gnu.org Resent-Date: Mon, 07 Feb 2022 09:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53818 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 53818@debbugs.gnu.org Cc: Maxime Devos X-Debbugs-Original-Xcc: Maxime Devos Received: via spool by 53818-submit@debbugs.gnu.org id=B53818.164422484111131 (code B ref 53818); Mon, 07 Feb 2022 09:08:02 +0000 Received: (at 53818) by debbugs.gnu.org; 7 Feb 2022 09:07:21 +0000 Received: from localhost ([127.0.0.1]:40929 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzT-0002tM-Vk for submit@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:20 -0500 Received: from h178-251-242-94.cust.a3fiber.se ([178.251.242.94]:55300 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzO-0002si-3V for 53818@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:15 -0500 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoctocell.xyz; s=mail; t=1644224828; bh=tM2bgZ0c95q9tm79KzPQw0F7/5o5pTKGvJyzdbNuSOQ=; h=From:To:Subject:In-Reply-To:References:Date; b=k/rcqoMhqU81atv1BjUpLmBtl6WwkMUJjnOrdcweAuAQsGnnQ9XTMbQTNKguz+MI+ rEQTYKS+ChBFYRSfA9vNuph3Dhem3f8Cksa7Xls8IPMoz38nYD0G1MdmJaPN5u3Rzy Z0QlTySUbpa7GIV3gORwRtZdEazJB9vhM/MIMftw= In-Reply-To: References: Message-Id: <98726379214702d0745f56d9f946e792e803d326.1644224421.git.public@yoctocell.xyz> Date: Mon, 07 Feb 2022 10:07:07 +0100 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 * guix/import/repology.scm * tests/import-repology.scm: New files. * Makefile.am (MODULES): Register them. * doc/guix.texi (Invoking guix refresh): Document it. --- Makefile.am | 3 + doc/guix.texi | 7 ++ guix/import/repology.scm | 235 ++++++++++++++++++++++++++++++++++++++ tests/import-repology.scm | 145 +++++++++++++++++++++++ 4 files changed, 390 insertions(+) create mode 100644 guix/import/repology.scm create mode 100644 tests/import-repology.scm diff --git a/Makefile.am b/Makefile.am index 7463606d20..6792917b59 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,6 +16,7 @@ # Copyright © 2019 Efraim Flashner # Copyright © 2021 Chris Marusich # Copyright © 2021 Andrew Tropin +# Copyright © 2022 Xinglu Chen # # This file is part of GNU Guix. # @@ -271,6 +272,7 @@ MODULES = \ guix/import/opam.scm \ guix/import/print.scm \ guix/import/pypi.scm \ + guix/import/repology.scm \ guix/import/stackage.scm \ guix/import/texlive.scm \ guix/import/utils.scm \ @@ -488,6 +490,7 @@ SCM_TESTS = \ tests/home-import.scm \ tests/import-git.scm \ tests/import-github.scm \ + tests/import-repology.scm \ tests/import-utils.scm \ tests/inferior.scm \ tests/lint.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 0cf865a672..15d215dd48 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -12932,6 +12932,13 @@ (release-tag-version-delimiter . ":")))) @end lisp +@item repology +an updater that scans @uref{https://repology.org, Repology}, a website +that tracks packages on various package repositories, for updates. + +The name of a package in Guix is not always that same as the name on +Repology; users can set the @code{repology-name} package property to +make the updater use the correct name. @end table diff --git a/guix/import/repology.scm b/guix/import/repology.scm new file mode 100644 index 0000000000..28f3a3af5f --- /dev/null +++ b/guix/import/repology.scm @@ -0,0 +1,235 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Xinglu Chen +;;; +;;; 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 . + +(define-module (guix import repology) + #:use-module (guix diagnostics) + #:use-module (guix diagnostics) + #:use-module (guix git-download) + #:use-module (guix i18n) + #:use-module (guix import json) + #:use-module (guix import utils) + #:use-module (guix memoization) + #:use-module (guix packages) + #:use-module (guix upstream) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (json) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-2) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-43) + #:export (repology-latest-release + %repology-updater)) + +;;; Commentary: +;;; +;;; This module provides an updater which scans Repology, a site that monitors +;;; several package repolsitories, for updates. This means that if any other +;;; package repository has a version of a package that is newer than the +;;; version in Guix, the package should be able to be updated. The updater +;;; should in theory work for all packages in Guix, but the names of some +;;; packages on Repology don't match the name in Guix. The 'repology-name' +;;; package property can be used to fix this. +;;; +;;; Guix already has many different updaters for language-specific packages, +;;; and these typically provide more accurate data, e.g., input changes, +;;; signature URLs. The Repology updater should really be treated as a last +;;; resort for those packages that don't have any other updater to rely on. +;;; +;;; See for the API. +;;; +;;; Code: + +(define %repology-url + "https://repology.org/api/v1/project") + +(define* (package-name->repology-name name #:key (attempt 1)) + "Convert NAME, the name of a Guix package, to the name of the package on +Repology. It doesn't always guess the correct name on the first attempt, so +on the second attempt it will try to guess another name." + (match attempt + (1 (cond + ((string-prefix? "ghc-" name) + (string-append "haskell:" + (string-drop name (string-length "ghc-")))) + ((string-prefix? "ocaml-" name) + (string-append "ocaml:" + (string-drop name (string-length "ocaml-")))) + ((string-prefix? "perl-" name) + (string-append "perl:" + (string-drop name (string-length "perl-")))) + ((string-prefix? "emacs-" name) + (string-append "emacs:" + (string-drop name (string-length "emacs-")))) + ((string-prefix? "go-" name) + (string-append "go:" + (string-drop name (string-length "go-")))) + ((string-prefix? "rust-" name) + (string-append "rust:" + (string-drop name (string-length "rust-")))) + ((string-prefix? "lua-" name) + (string-append "lua:" + (string-drop name (string-length "lua-")))) + ((string-prefix? "node-" name) + (string-append "node:" + (string-drop name (string-length "node-")))) + ((string-prefix? "python-" name) + (string-append "python:" + (string-drop name (string-length "python-")))) + ((string-prefix? "java-" name) + (string-append "java:" + (string-drop name (string-length "java-")))) + ((string-prefix? "r-" name) + (string-append "r:" + (string-drop name (string-length "r-")))) + ((string-prefix? "ruby-" name) + (string-append "ruby:" + (string-drop name (string-length "ruby-")))) + ((string-prefix? "xf86-" name) + (string-append "xdrv:" + (string-drop name (string-length "xf86-")))) + ((string-prefix? "font-" name) + (string-append "fonts:" + (string-drop name (string-length "font-")))) + ((string-suffix? "-minimal" name) + (string-drop-right name (string-length "-minimal"))) + (else name))) + (2 (cond + ((string-prefix? "xf86-video" name) + (string-append "xdrv:" + (string-drop name (string-length "xf86-video-")))) + ((string-prefix? "xf86-input" name) + (string-append "xdrv:" + (string-drop name (string-length "xf86-input-")))) + ((string-prefix? "minetest-" name) + (string-append "minetest-mod-" + (string-drop name (string-length "minetest-")))) + (else name))))) + + +;;; JSON mappings. + +(define-json-mapping make-repology-package + repology-package? + json->repology-package + (repository repology-package-repository "repo") + (src-name repology-package-src-name "srcname") + (binary-name repology-package-binary-name "binname") + (visible-name repology-package-visible-name "visiblename") + (version repology-package-version) + (original-version repology-package-original-version "origversion") + (status repology-package-status) + (summary repology-package-summary) + (categories repology-package-categories) + (licenses repology-package-licenses) + (maintainers repology-package-maintainers)) + + +;;; Updater. + +(define repology-fetch-info + (memoize + (lambda (package) + "Fetch information about PACKAGE using the Repology API." + (define (name->info name) + (let ((url (string-append %repology-url "/" name))) + (and=> (json-fetch url #:cached? #t) + (lambda (url) + (vector-map (lambda (a b) + (json->repology-package b)) + url))))) + + (let* ((name (or (assoc-ref (package-properties package) + 'repology-name) + (package-name->repology-name (package-name package)))) + (info (name->info name))) + (if (and info (not (vector-empty? info))) + info + (let ((info (name->info (package-name->repology-name + (package-name package) + #:attempt 2)))) + (if (and info (not (vector-empty? info))) + info + (begin + (warning (G_ "package not found on Repology: ~a\n") + (package-name package)) + #f)))))))) + +(define (update-version string old-version new-version) + "Replace OLD-VERSION in STRING with NEW-VERSION. This assumes that STRING +contains OLD-VERSION verbatim; if it doesn't, #f is returned." + (match (factorize-uri string old-version) + ((? string?) #f) + ((factorized ...) + (apply string-append + (map (lambda (component) + (match component + ('version new-version) + ((? string?) component))) + factorized))))) + +(define (package-source-urls package version) + "Return a list of URLs for PACKAGE at VERSION. If no URL was successfully constructed, return #f." + (let ((old-version (package-version package))) + ;; XXX: (guix upstream) only supports tarballs and Git repos for now. + (match (origin-uri (package-source package)) + ((? git-reference? reference) + (and-let* ((old-commit (git-reference-commit reference)) + (new-commit (if (string=? old-version old-commit) + version + (update-version old-commit + old-version + version)))) + (git-reference + (inherit reference) + (commit new-commit)))) + ((? string? url) + (list (update-version url old-version version))) + ((? list? urls) + (map (cut update-version <> old-version version) urls)) + (_ #f)))) + +(define (latest-version? repology-package) + "Return the latest released version of REPOLOGY-PACKAGE. If none are found, +return #f." + (and (or (equal? "newest" (repology-package-status repology-package)) + (equal? "unique" (repology-package-status repology-package))) + (repology-package-version repology-package))) + +;; XXX: We use 'pkg' because 'package' will clash with the 'package' field of +;; 'upstream-source'. +(define (repology-latest-release pkg) + "Return the latest release of the PKG on Repology named NAME." + (and-let* ((packages (repology-fetch-info pkg)) + (versions (filter-map latest-version? + (vector->list packages))) + (latest-version (and (pair? versions) (car versions)))) + ;; TODO: set 'signature-urls'. + (upstream-source + (package (package-name pkg)) + (version latest-version) + (urls (package-source-urls pkg latest-version))))) + +(define %repology-updater + (upstream-updater + (name 'repology) + (description "Updater for packages on Repology") + (pred (const #t)) + (latest repology-latest-release))) + +;;; repology.scm ends here diff --git a/tests/import-repology.scm b/tests/import-repology.scm new file mode 100644 index 0000000000..2d366db283 --- /dev/null +++ b/tests/import-repology.scm @@ -0,0 +1,145 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Xinglu Chen +;;; +;;; 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 . + +(define-module (test-import-repology) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix import repology) + #:use-module (guix packages) + #:use-module (guix tests) + #:use-module (guix upstream) + #:use-module (json) + #:use-module (srfi srfi-64)) + +(test-begin "repology") + +(define package-using-git-repository + (dummy-package + "foo" + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.example.org/foo") + (commit "1.0"))) + (sha256 #f))))) + +(define package-using-tarball + (dummy-package + "foo" + (version "1.0") + (source + (origin + (method git-fetch) + (uri (string-append "https://example.org/foo-" version ".tar.gz")) + (sha256 #f))))) + +(define package-using-tarball-multiple-urls + (dummy-package + "foo" + (version "1.0") + (source + (origin + (method git-fetch) + (uri (list (string-append "https://example.org/foo-" + version ".tar.gz") + (string-append "https://mirror.example.org/foo-" + version ".tar.gz"))) + (sha256 #f))))) + +(define %test-json +"[ + { + \"repo\": \"aur\", + \"srcname\": \"foo\", + \"binname\": \"foo\", + \"visiblename\": \"foo\", + \"version\": \"1.0.r25.gb86405a\", + \"maintainers\": [ + \"bob@aur\" + ], + \"licenses\": [ + \"LGPL3+\" + ], + \"summary\": \"foo bar\" + \"status\": \"rolling\", + \"origversion\": \"1.0.r25.gb86405a-1\" + }, + { + \"repo\": \"gnuguix\", + \"srcname\": \"foo\", + \"binname\": \"foo\", + \"visiblename\": \"foo\", + \"version\": \"1.0\", + \"summary\": \"foo bar\", + \"status\": \"outdated\", + \"origversion\": null + }, + { + \"repo\": \"nix_unstable\", + \"name\": \"foo\", + \"visiblename\": \"foo\", + \"version\": \"2.0\", + \"maintainers\": [ + \"bob@example.org\" + ], + \"licenses\": [ + \"LGPL-3.0-or-later\" + ], + \"summary\": \"foo bar\", + \"status\": \"newest\", + \"origversion\": null + } +]") + +(define (latest-release package) + (mock ((guix import json) json-fetch + (lambda* (url #:key cached?) + (json-string->scm %test-json))) + (repology-latest-release package))) + +(test-equal "package using Git repo: version" + "2.0" + (upstream-source-version + (latest-release package-using-git-repository))) + +(test-equal "package using Git repo: git-reference" + (git-reference + (url "https://git.example.org/foo") + (commit "2.0")) + (upstream-source-urls + (latest-release package-using-git-repository))) + +(test-equal "package using tarball: version" + "2.0" + (upstream-source-version + (latest-release package-using-tarball))) + +(test-equal "package using tarball: URL" + (list "https://example.org/foo-2.0.tar.gz") + (upstream-source-urls + (latest-release package-using-tarball))) + +(test-equal "package using tarball: multiple URLs" + (list "https://example.org/foo-2.0.tar.gz" + "https://mirror.example.org/foo-2.0.tar.gz") + (upstream-source-urls + (latest-release package-using-tarball-multiple-urls))) + +(test-end "repology") From patchwork Mon Feb 7 09:07:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Xinglu Chen X-Patchwork-Id: 37057 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 D2E9827BBEA; Mon, 7 Feb 2022 10:15:57 +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=-0.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FROM_SUSPICIOUS_NTLD,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no 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 96C9927BBE9 for ; Mon, 7 Feb 2022 10:15:57 +0000 (GMT) Received: from localhost ([::1]:34738 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nH13s-0002jg-PL for patchwork@mira.cbaines.net; Mon, 07 Feb 2022 05:15:56 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40378) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nH00C-00068G-14 for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47045) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nH00B-0004LM-DQ for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nH00B-0002vI-9f; Mon, 07 Feb 2022 04:08:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53818] [PATCH v2 6/7] gnu: xorg-server-xwayland: Set 'repology-name' property. Resent-From: Xinglu Chen Original-Sender: "Debbugs-submit" Resent-CC: maximedevos@telenet.be, guix-patches@gnu.org Resent-Date: Mon, 07 Feb 2022 09:08:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53818 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 53818@debbugs.gnu.org Cc: Maxime Devos X-Debbugs-Original-Xcc: Maxime Devos Received: via spool by 53818-submit@debbugs.gnu.org id=B53818.164422484111137 (code B ref 53818); Mon, 07 Feb 2022 09:08:03 +0000 Received: (at 53818) by debbugs.gnu.org; 7 Feb 2022 09:07:21 +0000 Received: from localhost ([127.0.0.1]:40931 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzU-0002tU-U9 for submit@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:21 -0500 Received: from h178-251-242-94.cust.a3fiber.se ([178.251.242.94]:55306 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzS-0002so-RJ for 53818@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:19 -0500 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoctocell.xyz; s=mail; t=1644224833; bh=f7r1HprMCgd+yT9MgYeTpNbVfndFbU/YpwUOiR9Yx2Y=; h=From:To:Subject:In-Reply-To:References:Date; b=spQLOrU5g4vRxf19lNAmbPGdSnpb9bh2A+QeQqNtZYG6CsjedMACxjGeGM8KK+J6I TWazvBkGRvZxJAPg4806CaJQoIE1xgKlNkTq+Xqq3etbb5Od/1UBr6mJOf9Q3UbDrc 0OcCMVdnDrYsE2kk7h4j2LqnhnngFYOq3lkQ6RTM= In-Reply-To: References: Message-Id: Date: Mon, 07 Feb 2022 10:07:12 +0100 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 * gnu/packages/xorg.scm (xorg-server-xwayland):[properties]: Set 'repology-name'. --- gnu/packages/xorg.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 14e35d19ae..8be7017da7 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2021 Maxime Devos ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Lu Hui +;;; Copyright © 2022 Xinglu Chen ;;; ;;; This file is part of GNU Guix. ;;; @@ -5520,6 +5521,8 @@ (define-public xorg-server-xwayland (lambda _ (substitute* (find-files "." "\\.c$") (("/bin/sh") (which "sh")))))))) + (properties + '((repology-name . "xwayland"))) (synopsis "Xorg server with Wayland backend") (description "Xwayland is an X server for running X clients under Wayland.") From patchwork Mon Feb 7 09:07:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Xinglu Chen X-Patchwork-Id: 37058 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 607FF27BBEA; Mon, 7 Feb 2022 10:16:34 +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=-0.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FROM_SUSPICIOUS_NTLD,MAILING_LIST_MULTI,PDS_OTHER_BAD_TLD, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no 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 2C03827BBE9 for ; Mon, 7 Feb 2022 10:16:34 +0000 (GMT) Received: from localhost ([::1]:35518 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nH14R-0003Mu-Hk for patchwork@mira.cbaines.net; Mon, 07 Feb 2022 05:16:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40382) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nH00C-00068O-7u for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47047) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nH00B-0004La-R3 for guix-patches@gnu.org; Mon, 07 Feb 2022 04:08:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nH00B-0002vR-NM; Mon, 07 Feb 2022 04:08:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53818] [PATCH v2 7/7] gnu: xorg-server-xwayland: Prepare for cross-compilation. Resent-From: Xinglu Chen Original-Sender: "Debbugs-submit" Resent-CC: maximedevos@telenet.be, guix-patches@gnu.org Resent-Date: Mon, 07 Feb 2022 09:08:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53818 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 53818@debbugs.gnu.org Cc: Maxime Devos X-Debbugs-Original-Xcc: Maxime Devos Received: via spool by 53818-submit@debbugs.gnu.org id=B53818.164422484311151 (code B ref 53818); Mon, 07 Feb 2022 09:08:03 +0000 Received: (at 53818) by debbugs.gnu.org; 7 Feb 2022 09:07:23 +0000 Received: from localhost ([127.0.0.1]:40934 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzX-0002tn-5h for submit@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:23 -0500 Received: from h178-251-242-94.cust.a3fiber.se ([178.251.242.94]:55312 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGzzV-0002sx-QS for 53818@debbugs.gnu.org; Mon, 07 Feb 2022 04:07:22 -0500 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoctocell.xyz; s=mail; t=1644224836; bh=jfMlwFd48Ue03So3eKlueTE4uUT6FJ2S6vUX3eqQoKo=; h=From:To:Subject:In-Reply-To:References:Date; b=EM/pOGv/fsf2Y+ulVfhRID8ieg60TGeCzr1YrFFjXMYbLTNHSytSrRmjr2Uj+UJAc W0zSEFmnvDlFkrpOHQNqXBS3C23Soi5Z6Hm9we9uFFwnSEhU3R6SfWQtBbmFLiWNIc 4jqSYU/ibyy13bkxqRLT+mBb6WNurhwzkUQLUelc= In-Reply-To: References: Message-Id: Date: Mon, 07 Feb 2022 10:07:16 +0100 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 * gnu/packages/xorg.scm (xorg-server-xwayland)[arguments]<#:phases>: Use ‘search-input-file’ instead of ‘which’. --- gnu/packages/xorg.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 8be7017da7..dea7268a2e 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5518,9 +5518,10 @@ (define-public xorg-server-xwayland "--localstatedir=/var") #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-/bin/sh - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (substitute* (find-files "." "\\.c$") - (("/bin/sh") (which "sh")))))))) + (("/bin/sh") + (search-input-file inputs "bin/sh")))))))) (properties '((repology-name . "xwayland"))) (synopsis "Xorg server with Wayland backend")