From patchwork Mon Sep 20 19:35:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: morganamilo X-Patchwork-Id: 1968 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.21) for (single-drop); Mon, 20 Sep 2021 19:36:07 +0000 (UTC) Received: from mail.archlinux.org by mail.archlinux.org with LMTP id sZeSL6biSGGU0AUAK+/4rw (envelope-from ) for ; Mon, 20 Sep 2021 19:36:06 +0000 Received: from lists.archlinux.org (lists.archlinux.org [IPv6:2a01:4f9:c010:9eb4::1]) (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 B354192D895; Mon, 20 Sep 2021 19:36:05 +0000 (UTC) Received: from lists.archlinux.org (localhost [IPv6:::1]) by lists.archlinux.org (Postfix) with ESMTP id 65799845EEB; Mon, 20 Sep 2021 19:36:05 +0000 (UTC) X-Original-To: pacman-dev@lists.archlinux.org Delivered-To: pacman-dev@lists.archlinux.org Received: from mail.archlinux.org (mail.archlinux.org [IPv6:2a01:4f9:c010:3052::1]) by lists.archlinux.org (Postfix) with ESMTPS id CC321845EC0 for ; Mon, 20 Sep 2021 19:36:02 +0000 (UTC) From: morganamilo DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=archlinux.org; s=dkim-ed25519; t=1632166562; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=XhX9aQCANFjwmE8np+XdA9YDO1LgVU5fG7ZqQKUkCBo=; b=/zOoMZSWP+xLkNPaAfScPPeLGYH5ABqMaOwW5bzN/J1uik1ALtfVr/YZgrNp3DVrDYenRk 1exqrYHhqlRGABAg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=archlinux.org; s=dkim-rsa; t=1632166562; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=XhX9aQCANFjwmE8np+XdA9YDO1LgVU5fG7ZqQKUkCBo=; b=ZdmyiPxx1qPLrBc2QgjkYyC8tcKbq80nb60szNDteTdISTd99URCqD9jRF9PvY6M2iyyNa hRqLEBF5xGYNkD977IWQulDzTTg3bNAhoLKbRzBRpmp2HOJHTtHBkYV9bkgF1GPvt42ULu 9p0GHz9lcWTilE+aLnh/CGFeUvW9ymdq/49DrBHeXF+0E4jy/APC1tjgR46aPe8opCCdtt iWun2sPYnFMLT3WBoh+47IxSzFpBXEpvVNd34+b2FeQOuGSwv6hujrkT0UJHZFBjgGx2fZ nxgrIJ0z0zYWeoTspJajtGO4Xlc/+gNsK6oujNtdJA0EOkLuwrLfv9+JGWebEtsTiF5sqB JD4DWOWCYKrGM8nUCdIXMl6ZzZM/S2Gho4NBXb+dBAXC+551eWejwSYykAs8jWZj1OgSHv +gaUre40PxWobqGkommr1P2wh3iaLnMmWsPbweD5Ybb8qre8sTzK2MLdICSJind+dcoJoz oRogA6FtTZnJ7c56UuqVnJmh6tSbQOYW9OhmRBe/kAHI0CgTKLh/RbVPcRiMCXPfmkbM/k ttPDOPcTEdLNcjYw5uS/xKijTlrLTA6kuor1XKzW7yid8SgUrP93aydTKsJiB+sWfO9lX6 1KyOL6x6BJOZfcPfh5jdc1ZRtMbUpvCk6N7GYZsBRSODEK5EGHfSY= To: pacman-dev@lists.archlinux.org Date: Mon, 20 Sep 2021 20:35:16 +0100 Message-Id: <20210920193517.259549-1-morganamilo@archlinux.org> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Subject: [pacman-dev] [PATCH 1/3] alpm: add ALPM_TRANS_FLAG_NOKEEP X-BeenThere: pacman-dev@lists.archlinux.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussion list for pacman development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Discussion list for pacman development Errors-To: pacman-dev-bounces@lists.archlinux.org Sender: "pacman-dev" Authentication-Results: mail.archlinux.org; dkim=fail ("headers eddsa verify failed") header.d=archlinux.org header.s=dkim-ed25519 header.b="/zOoMZSW"; dkim=fail ("headers rsa verify failed") header.d=archlinux.org header.s=dkim-rsa header.b=ZdmyiPxx; dmarc=pass (policy=none) header.from=archlinux.org; spf=pass (mail.archlinux.org: domain of pacman-dev-bounces@lists.archlinux.org designates 2a01:4f9:c010:9eb4::1 as permitted sender) smtp.mailfrom=pacman-dev-bounces@lists.archlinux.org X-Rspamd-Queue-Id: B354192D895 X-Spamd-Result: default: False [2.09 / 15.00]; SPOOF_REPLYTO(2.00)[archlinux.org,lists.archlinux.org]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[]; RCVD_IN_DNSWL_MED(-0.40)[2a01:4f9:c010:9eb4::1:from,2a01:4f9:c010:3052::1:received]; MAILLIST(-0.20)[mailman]; R_SPF_ALLOW(-0.20)[+ip6:2a01:4f9:c010:9eb4::1:c]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; FROM_HAS_DN(0.00)[]; HAS_REPLYTO(0.00)[pacman-dev@lists.archlinux.org]; ARC_NA(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[pacman-dev@lists.archlinux.org]; RCPT_COUNT_ONE(0.00)[1]; FROM_NEQ_ENVFROM(0.00)[morganamilo@archlinux.org,pacman-dev-bounces@lists.archlinux.org]; RCVD_TLS_LAST(0.00)[]; NEURAL_HAM(-0.00)[-1.000]; R_DKIM_REJECT(0.00)[archlinux.org:s=dkim-ed25519,archlinux.org:s=dkim-rsa]; TO_DN_NONE(0.00)[]; ASN(0.00)[asn:24940, ipnet:2a01:4f9::/32, country:DE]; RCVD_COUNT_THREE(0.00)[3]; DMARC_POLICY_ALLOW(0.00)[archlinux.org,none]; DKIM_TRACE(0.00)[archlinux.org:-]; MIME_TRACE(0.00)[0:+]; FORGED_SENDER_MAILLIST(0.00)[] X-Rspamd-Server: mail.archlinux.org this flag prevents backup files from being kept on package installation. This is useful for resetting a package's config files back to their original state. Implements FS#59908 although with it's own flag name instead of reusing nosave. This allows nokeep to optionally create a pacnew that you can then choose to disable by also setting nosave. --- I actually very dislike NOKEEP but it was the best I could come up with I would have prefered overwrite or nosave but they are taken. Better names are welcome. --- lib/libalpm/alpm.h | 3 ++- lib/libalpm/remove.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 8d8fe243..c6048b63 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -2704,7 +2704,8 @@ int alpm_pkg_mtree_close(const alpm_pkg_t *pkg, struct archive *archive); typedef enum _alpm_transflag_t { /** Ignore dependency checks. */ ALPM_TRANS_FLAG_NODEPS = 1, - /* (1 << 1) flag can go here */ + /** Don't keep backup files when installing packages. */ + ALPM_TRANS_FLAG_NOKEEP = (1 << 1), /** Delete files even if they are tagged as backup. */ ALPM_TRANS_FLAG_NOSAVE = (1 << 2), /** Ignore version numbers when checking dependencies. */ diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index de39724a..233fff0c 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -575,7 +575,9 @@ static int should_skip_file(alpm_handle_t *handle, { return _alpm_fnmatch_patterns(handle->noupgrade, path) == 0 || alpm_list_find_str(handle->trans->skip_remove, path) - || (newpkg && _alpm_needbackup(path, newpkg) + || (!(handle->trans->flags & ALPM_TRANS_FLAG_NOKEEP) + && newpkg + && _alpm_needbackup(path, newpkg) && alpm_filelist_contains(alpm_pkg_get_files(newpkg), path)); } From patchwork Mon Sep 20 19:35:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: morganamilo X-Patchwork-Id: 1969 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.21) for (single-drop); Mon, 20 Sep 2021 19:36:10 +0000 (UTC) Received: from mail.archlinux.org by mail.archlinux.org with LMTP id rVYiIaniSGGl0AUAK+/4rw (envelope-from ) for ; Mon, 20 Sep 2021 19:36:09 +0000 Received: from lists.archlinux.org (lists.archlinux.org [IPv6:2a01:4f9:c010:9eb4::1]) (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 F094292D8A2; Mon, 20 Sep 2021 19:36:08 +0000 (UTC) Received: from lists.archlinux.org (localhost [IPv6:::1]) by lists.archlinux.org (Postfix) with ESMTP id C0D1C845EF0; Mon, 20 Sep 2021 19:36:05 +0000 (UTC) X-Original-To: pacman-dev@lists.archlinux.org Delivered-To: pacman-dev@lists.archlinux.org Received: from mail.archlinux.org (mail.archlinux.org [95.216.189.61]) by lists.archlinux.org (Postfix) with ESMTPS id 3295A845EC1 for ; Mon, 20 Sep 2021 19:36:03 +0000 (UTC) From: morganamilo DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=archlinux.org; s=dkim-rsa; t=1632166563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rjz+8zi8NrIbJm5XgB2PPhXRtk5cLZUiGihWzOjFWoo=; b=Oinm5vv0RN017rbwu5pttRvMXJmtwUCkdj8ZZ2o+/P1LVkC1iY4RgzItg6v1lKCBl77MgU WH8IxanloHpjQrmRa1iEYMrjQ11d86u9+K1KpfguzQTrDi+2MInSuYtA2j0UZ1pdWVUuJw oxzGPR51pzqIQ/N1O6l/zXcq5CbfpR8MhoE6wZSSfe4BZrmizJyyrkzVhgDv2FRMt4PUvm VllMUUfQWoVAmHaoSzWxouev32TYJUY/QVgHe9g+rAArjz6Xb5s5ANVRbVgo6Y7ntcDGU0 bC3KehuuaM/tsdi6pUBEgBtk4ie7R/CW1jmjj+NVU+N77281f6KZPp6KNU5VycesihX8rP FUmmINfV5Z6mD794AYfAgrtlaowSgkcXRJLVKwWRflnKzJR400twHXB1niPVEovGrrJdUo cmD9GGSbHDvxS2bsMP+ZMdRtReDoemfdOPgZuGGPjVyyRFKzHsz2emC+HKEKPcpTIHW6BD ZZh1FFlNCAQyUawt94sr57XlrojLEXWjP1VxEBVR0OMPPVIl/h+C4QZUcjauXgiRE9UmNu xCh+C2O8cc9LRvR3iMyoXn9iZ9WmjVWD3FZ+ZMgWzlMExjadolhPOYdD5om3Smd7blT42N Ll4NRZE19SkjPCHZBoHqRD2TbBt8qATh/h00fMLm7yRXLbEpRPdoE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=archlinux.org; s=dkim-ed25519; t=1632166563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rjz+8zi8NrIbJm5XgB2PPhXRtk5cLZUiGihWzOjFWoo=; b=ATesJlhaabhyiXm4eFCj7YUrKshUb8e8K4OAgTZN9YwFMw3a00h77s4+nntso5p9Mm5dX6 KR9wiLEL1ibCs7Bg== To: pacman-dev@lists.archlinux.org Date: Mon, 20 Sep 2021 20:35:17 +0100 Message-Id: <20210920193517.259549-2-morganamilo@archlinux.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210920193517.259549-1-morganamilo@archlinux.org> References: <20210920193517.259549-1-morganamilo@archlinux.org> MIME-Version: 1.0 Subject: [pacman-dev] [PATCH 2/3] pacman: add --nokeep X-BeenThere: pacman-dev@lists.archlinux.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussion list for pacman development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Discussion list for pacman development Errors-To: pacman-dev-bounces@lists.archlinux.org Sender: "pacman-dev" Authentication-Results: mail.archlinux.org; dkim=fail ("headers rsa verify failed") header.d=archlinux.org header.s=dkim-rsa header.b=Oinm5vv0; dkim=fail ("headers eddsa verify failed") header.d=archlinux.org header.s=dkim-ed25519 header.b=ATesJlha; dmarc=pass (policy=none) header.from=archlinux.org; spf=pass (mail.archlinux.org: domain of pacman-dev-bounces@lists.archlinux.org designates 2a01:4f9:c010:9eb4::1 as permitted sender) smtp.mailfrom=pacman-dev-bounces@lists.archlinux.org X-Rspamd-Queue-Id: F094292D8A2 X-Spamd-Result: default: False [-1.91 / 15.00]; REPLY(-4.00)[]; SPOOF_REPLYTO(2.00)[archlinux.org,lists.archlinux.org]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[]; RCVD_IN_DNSWL_MED(-0.40)[2a01:4f9:c010:9eb4::1:from,95.216.189.61:received]; MAILLIST(-0.20)[mailman]; R_SPF_ALLOW(-0.20)[+ip6:2a01:4f9:c010:9eb4::1:c]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; FROM_HAS_DN(0.00)[]; HAS_REPLYTO(0.00)[pacman-dev@lists.archlinux.org]; ARC_NA(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[pacman-dev@lists.archlinux.org]; RCPT_COUNT_ONE(0.00)[1]; FROM_NEQ_ENVFROM(0.00)[morganamilo@archlinux.org,pacman-dev-bounces@lists.archlinux.org]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; TO_DN_NONE(0.00)[]; R_DKIM_REJECT(0.00)[archlinux.org:s=dkim-rsa,archlinux.org:s=dkim-ed25519]; ASN(0.00)[asn:24940, ipnet:2a01:4f9::/32, country:DE]; RCVD_COUNT_THREE(0.00)[3]; DMARC_POLICY_ALLOW(0.00)[archlinux.org,none]; DKIM_TRACE(0.00)[archlinux.org:-]; NEURAL_HAM(-0.00)[-1.000]; FORGED_SENDER_MAILLIST(0.00)[] X-Rspamd-Server: mail.archlinux.org --- doc/pacman.8.asciidoc | 3 +++ src/pacman/conf.h | 1 + src/pacman/pacman.c | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/doc/pacman.8.asciidoc b/doc/pacman.8.asciidoc index bb205627..fd2aa21e 100644 --- a/doc/pacman.8.asciidoc +++ b/doc/pacman.8.asciidoc @@ -269,6 +269,9 @@ Upgrade Options (apply to '-S' and '-U')[[UO]] *\--needed*:: Do not reinstall the targets that are already up-to-date. +*\--nokeep*:: + Overwrite backup files when installing packages. + *\--overwrite* :: Bypass file conflict checks and overwrite conflicting files. If the package that is about to be installed contains files that are already diff --git a/src/pacman/conf.h b/src/pacman/conf.h index 04350d39..aa10e3a6 100644 --- a/src/pacman/conf.h +++ b/src/pacman/conf.h @@ -169,6 +169,7 @@ enum { OP_LOGFILE, OP_IGNOREGROUP, OP_NEEDED, + OP_NOKEEP, OP_ASEXPLICIT, OP_ARCH, OP_PRINTFORMAT, diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index db64e05a..262a2ad6 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -164,6 +164,7 @@ static void usage(int op, const char * const myname) addlist(_(" -y, --refresh download fresh package databases from the server\n" " (-yy to force a refresh even if up to date)\n")); addlist(_(" --needed do not reinstall up to date packages\n")); + addlist(_(" --nokeep overwrite backup files when installing packages\n")); } else if(op == PM_OP_DATABASE) { printf("%s: %s {-D --database} <%s> <%s>\n", str_usg, myname, str_opt, str_pkg); printf("%s:\n", str_opt); @@ -731,6 +732,9 @@ static int parsearg_upgrade(int opt) case OP_NEEDED: config->flags |= ALPM_TRANS_FLAG_NEEDED; break; + case OP_NOKEEP: + config->flags |= ALPM_TRANS_FLAG_NOKEEP; + break; case OP_IGNORE: parsearg_util_addlist(&(config->ignorepkg)); break; @@ -941,6 +945,7 @@ static int parseargs(int argc, char *argv[]) {"logfile", required_argument, 0, OP_LOGFILE}, {"ignoregroup", required_argument, 0, OP_IGNOREGROUP}, {"needed", no_argument, 0, OP_NEEDED}, + {"nokeep", no_argument, 0, OP_NOKEEP}, {"asexplicit", no_argument, 0, OP_ASEXPLICIT}, {"arch", required_argument, 0, OP_ARCH}, {"print-format", required_argument, 0, OP_PRINTFORMAT}, From patchwork Mon Sep 20 19:35:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: morganamilo X-Patchwork-Id: 1970 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.21) for (single-drop); Mon, 20 Sep 2021 19:36:13 +0000 (UTC) Received: from mail.archlinux.org by mail.archlinux.org with LMTP id yLIeL6ziSGGG0AUAK+/4rw (envelope-from ) for ; Mon, 20 Sep 2021 19:36:12 +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 3BD7892D8AE; Mon, 20 Sep 2021 19:36:12 +0000 (UTC) Received: from lists.archlinux.org (localhost [IPv6:::1]) by lists.archlinux.org (Postfix) with ESMTP id 36A5B845EF5; Mon, 20 Sep 2021 19:36:06 +0000 (UTC) X-Original-To: pacman-dev@lists.archlinux.org Delivered-To: pacman-dev@lists.archlinux.org Received: from mail.archlinux.org (mail.archlinux.org [IPv6:2a01:4f9:c010:3052::1]) by lists.archlinux.org (Postfix) with ESMTPS id 956B1845EC3 for ; Mon, 20 Sep 2021 19:36:03 +0000 (UTC) From: morganamilo DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=archlinux.org; s=dkim-rsa; t=1632166563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TMESFCRr8LWBmfpejrIIP2TJQyzketcsAMw4wEqBsW4=; b=sf/WVqOhY2GPuw2HNnVVmHDQ74jbDtUapbVZxe+aY7WXn28KdwQtoqzZCwajmNsUThbbnr wLlmt/elen9l8IvSZCpPNl7PKv4HiefGkS/8bwOljvffZ3DFFGXBnrKhFgEJhAWHjmJrWJ uLniybBoqlMFYqvO38tetOkpqdyy4qpejLbUf2oER9dOSWxSLhVzzrFjV0Aq7Ngkh9di8/ PgniBzyaYxZGLWDLt3zNA/rad2Z9Xp+DyzuIlSr1NvDZd1+zN7Ghy1cT5i8A4BjVa62aEp vkCZDqfdD6t4CPD59JFUsjYPvDT0ffaReMoqNOAi0O7EFmvoAhXWOJOeG/VQb3OETQ4TnB xcwtNbC1K7z7uS+tggF4GlGxxrYwsGcqpGR+bA6IF8GTrk+56t1Mvl+lhgNADsp4dVuZZe cGAqNb/Xj3k8m/kYcDdnqyA8nSG5U4X8+UXxTLDoxzaRbkEDwdIC05zzNGVJLMEdV42ba2 uwFxeJsNve8ZxGK1Il31Zl3ZPRXzpH+e9tW2pyiGMG49FgRWFkFQWj6uQTQW43neDa8YtJ gkgDAUXdaxxmjxDoTKDLoEF64piLWKyWvHa8A+JhJkONucMDTnbIoeT85v6e3YssUbMMha KO3bpOEyknttOMoGfzfxaaUYdOOOpzlI6pUPspuCiq7Ofkg2Pj7BM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=archlinux.org; s=dkim-ed25519; t=1632166563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TMESFCRr8LWBmfpejrIIP2TJQyzketcsAMw4wEqBsW4=; b=lVJmPwSphomu7D+MMV52mzst8NONihfQfvj0AkQZmgYJGJ6eVpHW4c3vYNSv509vdx2xUd ljc9MJRh3MJ42GDQ== To: pacman-dev@lists.archlinux.org Date: Mon, 20 Sep 2021 20:35:18 +0100 Message-Id: <20210920193517.259549-3-morganamilo@archlinux.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210920193517.259549-1-morganamilo@archlinux.org> References: <20210920193517.259549-1-morganamilo@archlinux.org> MIME-Version: 1.0 Subject: [pacman-dev] [PATCH 3/3] pacman: move --nosave to transaction flags X-BeenThere: pacman-dev@lists.archlinux.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussion list for pacman development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Discussion list for pacman development Errors-To: pacman-dev-bounces@lists.archlinux.org Sender: "pacman-dev" Authentication-Results: mail.archlinux.org; dkim=fail ("headers rsa verify failed") header.d=archlinux.org header.s=dkim-rsa header.b="sf/WVqOh"; dkim=fail ("headers eddsa verify failed") header.d=archlinux.org header.s=dkim-ed25519 header.b=lVJmPwSp; dmarc=pass (policy=none) header.from=archlinux.org; 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 X-Rspamd-Queue-Id: 3BD7892D8AE X-Spamd-Result: default: False [-1.91 / 15.00]; REPLY(-4.00)[]; SPOOF_REPLYTO(2.00)[archlinux.org,lists.archlinux.org]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[]; RCVD_IN_DNSWL_MED(-0.40)[2a01:4f9:c010:3052::1:received,95.217.236.249:from]; MAILLIST(-0.20)[mailman]; R_SPF_ALLOW(-0.20)[+ip4:95.217.236.249:c]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; FROM_HAS_DN(0.00)[]; HAS_REPLYTO(0.00)[pacman-dev@lists.archlinux.org]; ARC_NA(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[pacman-dev@lists.archlinux.org]; RCPT_COUNT_ONE(0.00)[1]; FROM_NEQ_ENVFROM(0.00)[morganamilo@archlinux.org,pacman-dev-bounces@lists.archlinux.org]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; TO_DN_NONE(0.00)[]; R_DKIM_REJECT(0.00)[archlinux.org:s=dkim-rsa,archlinux.org:s=dkim-ed25519]; ASN(0.00)[asn:24940, ipnet:95.217.0.0/16, country:DE]; RCVD_COUNT_THREE(0.00)[3]; DMARC_POLICY_ALLOW(0.00)[archlinux.org,none]; DKIM_TRACE(0.00)[archlinux.org:-]; NEURAL_HAM(-0.00)[-1.000]; FORGED_SENDER_MAILLIST(0.00)[] X-Rspamd-Server: mail.archlinux.org --nosave is now useful when installing packages as it can be combined with --nokeep to reinstall the packages backup files without generating a pacsave. --- doc/pacman.8.asciidoc | 10 +++++----- src/pacman/pacman.c | 11 ++++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/doc/pacman.8.asciidoc b/doc/pacman.8.asciidoc index fd2aa21e..e880e054 100644 --- a/doc/pacman.8.asciidoc +++ b/doc/pacman.8.asciidoc @@ -210,6 +210,11 @@ Transaction Options (apply to '-S', '-R' and '-U') dependencies are installed and there are no package conflicts in the system. Specify this option twice to skip all dependency checks. +*-n, \--nosave*:: + Instructs pacman to ignore file backup designations. Normally, when a + file is removed from the system, the database is checked to see if the + file should be renamed with a '.pacsave' extension. + *\--assume-installed* :: Add a virtual package "package" with version "version" to the transaction to satisfy dependencies. This allows to disable specific dependency checks @@ -375,11 +380,6 @@ Remove Options (apply to '-R')[[RO]] or more target packages. This operation is recursive and must be used with care, since it can remove many potentially needed packages. -*-n, \--nosave*:: - Instructs pacman to ignore file backup designations. Normally, when a - file is removed from the system, the database is checked to see if the - file should be renamed with a '.pacsave' extension. - *-s, \--recursive*:: Remove each target specified including all of their dependencies, provided that (A) they are not required by other packages; and (B) they were not diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 262a2ad6..0647d5bc 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -123,7 +123,6 @@ static void usage(int op, const char * const myname) printf("%s: %s {-R --remove} [%s] <%s>\n", str_usg, myname, str_opt, str_pkg); printf("%s:\n", str_opt); addlist(_(" -c, --cascade remove packages and all packages that depend on them\n")); - addlist(_(" -n, --nosave remove configuration files\n")); addlist(_(" -s, --recursive remove unnecessary dependencies\n" " (-ss includes explicitly installed dependencies)\n")); addlist(_(" -u, --unneeded remove unneeded packages\n")); @@ -200,6 +199,7 @@ static void usage(int op, const char * const myname) __attribute__((fallthrough)); case PM_OP_REMOVE: addlist(_(" -d, --nodeps skip dependency version checks (-dd to skip all checks)\n")); + addlist(_(" -n, --nosave remove configuration files\n")); addlist(_(" --assume-installed \n" " add a virtual package to satisfy dependencies\n")); addlist(_(" --dbonly only modify database entries, not package files\n")); @@ -632,6 +632,11 @@ static int parsearg_trans(int opt) config->flags |= ALPM_TRANS_FLAG_NODEPVERSION; } break; + case OP_NOSAVE: + case 'n': + config->flags |= ALPM_TRANS_FLAG_NOSAVE; + break; + case OP_DBONLY: config->flags |= ALPM_TRANS_FLAG_DBONLY; config->flags |= ALPM_TRANS_FLAG_NOSCRIPTLET; @@ -681,10 +686,6 @@ static int parsearg_remove(int opt) case 'c': config->flags |= ALPM_TRANS_FLAG_CASCADE; break; - case OP_NOSAVE: - case 'n': - config->flags |= ALPM_TRANS_FLAG_NOSAVE; - break; case OP_RECURSIVE: case 's': if(config->flags & ALPM_TRANS_FLAG_RECURSE) {