From patchwork Fri Oct 14 04:19:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Shapovalov X-Patchwork-Id: 2089 Return-Path: Delivered-To: patchwork@archlinux.org Received: from mail.archlinux.org [2a01:4f9:c010:3052::1] by patchwork.archlinux.org with IMAP (fetchmail-6.4.33) for (single-drop); Fri, 14 Oct 2022 04:26:50 +0000 (UTC) Received: from mail.archlinux.org by mail.archlinux.org with LMTP id 8I4vKAnlSGNe9wQAK+/4rw (envelope-from ) for ; Fri, 14 Oct 2022 04:26:49 +0000 Received: from lists.archlinux.org (lists.archlinux.org [95.217.236.249]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.archlinux.org (Postfix) with ESMTPS id F210F15835A1; Fri, 14 Oct 2022 04:26:47 +0000 (UTC) Authentication-Results: mail.archlinux.org; dkim=pass header.d=intelfx.name header.s=google header.b=PhsbbxvG; dmarc=none; spf=pass (mail.archlinux.org: domain of pacman-dev-bounces@lists.archlinux.org designates 95.217.236.249 as permitted sender) smtp.mailfrom=pacman-dev-bounces@lists.archlinux.org Received: from lists.archlinux.org (localhost [IPv6:::1]) by lists.archlinux.org (Postfix) with ESMTP id 3183655BC93; Fri, 14 Oct 2022 04:26:45 +0000 (UTC) Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com [IPv6:2a00:1450:4864:20::633]) by lists.archlinux.org (Postfix) with ESMTPS id DEE7455BC8A for ; Fri, 14 Oct 2022 04:26:41 +0000 (UTC) Received: by mail-ej1-x633.google.com with SMTP id ot12so8055459ejb.1 for ; Thu, 13 Oct 2022 21:26:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intelfx.name; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=zbK6SrkWXReVaTUVOruiM0PWZTVlOYJQPEcuhkrp514=; b=PhsbbxvGg5HnyMvHlOkS1EsFovxdv+QJHYK6+rHZuUj8N+KF+0wg15c4s7rAbdy9mu 3DDX1BM7AiV41rVPIJXN8tmXRT20inxlFcHMpWKGikU/fFICl3wJWjiNFntOcqBqC8+s Znpmqii29fvuSpnLN1aXKRCJuYGzmrTdVx3bo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zbK6SrkWXReVaTUVOruiM0PWZTVlOYJQPEcuhkrp514=; b=TkSKvB4Wr3UuCNd3f+ekSvp2cqF+YK0imYGr+k2H/0oNa73RifnmxyUtAEHByjYrbY 5BeZE+V1fQ3nsQHTC4TzYAlvJlYv91H9TD6Ra/KXxCBdD8wvZVUw4+e3KthmLqW71AEg vkxA1ihXFWcsQRkgRhbfyIkG2FLBA5EoMUaxmRuL1++fxuFqu5ESdRxxVr1/hyrNvLW9 3Gd5G/49OcPKF280DLI9bnn/Cl/gonwfFTWCTUvg9dOqea+jQEY+bosRx+t7JLAzdAqm flTUx8pRgDX14nmjdfm1AS9LYdMel9mIrIqqY8Mfk89vvUeoTpD79XVnycPDxDlqNMmQ n+wg== X-Gm-Message-State: ACrzQf0eN1M98ZI6cGvfCIHW6DbGOtBi2Jnmy2H3x0mFgyZuML5Nd+J4 /xCuOf3iiCWL18Df2fgTXH6P9MktSr2DZL8iXCA= X-Google-Smtp-Source: AMsMyM4Zk9X3SFuZ6yRdEl5HCNBFnAbREbuYH7yeTwm+U5xmIkcqdrA+p2ScVxGmM7rVr3uLLlsl3Q== X-Received: by 2002:a5d:5a96:0:b0:232:2e1:48f7 with SMTP id bp22-20020a5d5a96000000b0023202e148f7mr1937981wrb.694.1665721175432; Thu, 13 Oct 2022 21:19:35 -0700 (PDT) Received: from able.intelfx.name.beta.tailscale.net ([91.151.136.199]) by smtp.gmail.com with ESMTPSA id n17-20020a05600c465100b003c65c9a36dfsm957548wmo.48.2022.10.13.21.19.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Oct 2022 21:19:34 -0700 (PDT) From: Ivan Shapovalov To: pacman-dev@lists.archlinux.org Subject: [PATCH] repo-add: do not recreate the database if nothing was changed Date: Fri, 14 Oct 2022 08:19:30 +0400 Message-Id: <20221014041930.1894857-1-intelfx@intelfx.name> X-Mailer: git-send-email 2.38.0 MIME-Version: 1.0 Message-ID-Hash: TKVCB7BXD7VLCZWE6ZO6U74OZSEV4X2N X-Message-ID-Hash: TKVCB7BXD7VLCZWE6ZO6U74OZSEV4X2N X-MailFrom: intelfx@intelfx.name X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Ivan Shapovalov X-Mailman-Version: 3.3.5 Precedence: list List-Id: Discussion list for pacman development Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Rspamd-Queue-Id: F210F15835A1 X-Rspamd-Server: mail.archlinux.org X-Spamd-Result: default: False [3.39 / 15.00]; RECEIVED_SPAMHAUS_XBL(3.00)[91.151.136.199:received]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; MAILLIST(-0.20)[mailman]; R_DKIM_ALLOW(-0.20)[intelfx.name:s=google]; RCVD_IN_DNSWL_MED(-0.20)[95.217.236.249:from]; BAD_REP_POLICIES(0.10)[]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; PREVIOUSLY_DELIVERED(0.00)[pacman-dev@lists.archlinux.org]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::633:received]; DMARC_NA(0.00)[intelfx.name]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_NEQ_ENVFROM(0.00)[intelfx@intelfx.name,pacman-dev-bounces@lists.archlinux.org]; NEURAL_HAM(-0.00)[-1.000]; DKIM_TRACE(0.00)[intelfx.name:+]; RCPT_COUNT_TWO(0.00)[2]; R_SPF_ALLOW(0.00)[+ip4:95.217.236.249]; TO_DN_SOME(0.00)[]; ARC_NA(0.00)[]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; MIME_TRACE(0.00)[0:+]; RECEIVED_SPAMHAUS_PBL(0.00)[91.151.136.199:received]; ASN(0.00)[asn:24940, ipnet:95.217.0.0/16, country:DE]; RCVD_TLS_LAST(0.00)[]; FORGED_SENDER_MAILLIST(0.00)[] Signed-off-by: Ivan Shapovalov --- When `repo-add` is used to add a package that already exists in the database, it will recompress the database unconditionally, even if `--new` is passed. Avoid doing that. scripts/repo-add.sh.in | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index 221abdc0..78195de1 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -44,6 +44,8 @@ USE_COLOR='y' PREVENT_DOWNGRADE=0 INCLUDE_SIGS=0 +ENTRIES_CHANGED=0 + # Import libmakepkg source "$LIBRARY"/util/compress.sh source "$LIBRARY"/util/message.sh @@ -343,6 +345,8 @@ db_write_entry() { rm -f ${oldfile} ${oldfile}.sig fi + (( ++ENTRIES_CHANGED )) + return 0 } # end db_write_entry @@ -365,6 +369,9 @@ db_remove_entry() { pkgentry=$(find_pkgentry "$pkgname") done + if [[ $notfound == 0 ]]; then + (( ++ENTRIES_CHANGED )) + fi return $notfound } # end db_remove_entry @@ -684,13 +691,13 @@ for arg in "${args[@]:1}"; do done # if the whole operation was a success, re-zip and rotate databases -if (( !fail )); then +if (( !fail )) && (( ENTRIES_CHANGED > 0 )); then msg "$(gettext "Creating updated database file '%s'")" "$REPO_DB_FILE" create_db rotate_db else msg "$(gettext "No packages modified, nothing to do.")" - exit 1 + exit $(( fail != 0 )) fi exit 0