From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailout07.t-online.de (mailout07.t-online.de [194.25.134.83]) by sourceware.org (Postfix) with ESMTPS id 9D8393858C56 for ; Sun, 26 Jun 2022 16:33:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9D8393858C56 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=t-online.de Authentication-Results: sourceware.org; spf=none smtp.mailfrom=t-online.de Received: from fwd77.dcpf.telekom.de (fwd77.aul.t-online.de [10.223.144.103]) by mailout07.t-online.de (Postfix) with SMTP id 0CEEF76CD for ; Sun, 26 Jun 2022 18:33:11 +0200 (CEST) Received: from [192.168.2.102] ([87.187.34.65]) by fwd77.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1o5VCA-0A7EYa0; Sun, 26 Jun 2022 18:33:10 +0200 To: cygwin-apps@cygwin.com From: Christian Franke Subject: [PATCH setup] Add perpetual support for preremove scripts Message-ID: Date: Sun, 26 Jun 2022 18:33:10 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.12 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------D194EF5AC5D3F0CDF98442E3" X-TOI-EXPURGATEID: 150726::1656261190-014214EB-EBAA64FC/0/0 CLEAN NORMAL X-TOI-MSGID: 118394d2-4501-4a82-9160-1d3ddabb5d95 X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: cygwin-apps@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin package maintainer discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jun 2022 16:33:14 -0000 This is a multi-part message in MIME format. --------------D194EF5AC5D3F0CDF98442E3 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Use case: I ITP etckeeper (https://etckeeper.branchable.com/) which I frequently use on Debian. For fully automatic operation, it requires pre-install and post-install hooks, e.g: /etc/preremove/0p_000_etckeeper_pre-install.sh /etc/postinstall/zp_zzz_etckeeper_post-install.sh This patch adds the missing functionality to run the pre-install hook. It is limited to /etc/preremove/0p_* because there is possibly no use case for /etc/preremove/zp_*. 'class Perpetual0RemoveFindVisitor' is borrowed from postinstall.cc and modified. It still uses the ugly pre-C++11 hack to disable copy-ctor and operator=. Possible refactoring like merging all 3 mostly similar visitors into one (or if C++11 is now allowed, use lambda functions instead) are left for later. -- Regards, Christian --------------D194EF5AC5D3F0CDF98442E3 Content-Type: text/plain; charset=UTF-8; name="0001-Add-perpetual-support-for-preremove-scripts.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-perpetual-support-for-preremove-scripts.patch" RnJvbSBjYWUxNTI3OGQ3MDU4MDdkYTUzYjBhYmRlZmY1YWI2YjE1ZmI0NzljIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RpYW4gRnJhbmtlIDxjaHJpc3RpYW4uZnJh bmtlQHQtb25saW5lLmRlPgpEYXRlOiBTdW4sIDI2IEp1biAyMDIyIDE4OjAxOjAzICswMjAw ClN1YmplY3Q6IFtQQVRDSF0gQWRkIHBlcnBldHVhbCBzdXBwb3J0IGZvciBwcmVyZW1vdmUg c2NyaXB0cwoKQWx3YXlzIHJ1biBhbGwgL2V0Yy9wcmVyZW1vdmUvMHBfKiBmaXJzdC4KLS0t CiBpbnN0YWxsLmNjIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvaW5zdGFsbC5jYyBiL2luc3RhbGwuY2MKaW5kZXggZTU4ZWY0Yi4uNjY4OWEwOCAx MDA2NDQKLS0tIGEvaW5zdGFsbC5jYworKysgYi9pbnN0YWxsLmNjCkBAIC0zMyw2ICszMyw3 IEBACiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1 ZGUgPHByb2Nlc3MuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAKICNpbmNsdWRlICJpbmku aCIKICNpbmNsdWRlICJyZXNvdXJjZS5oIgpAQCAtNTAsNiArNTEsOCBAQAogI2luY2x1ZGUg ImFyY2hpdmUuaCIKICNpbmNsdWRlICJhcmNoaXZlX3Rhci5oIgogI2luY2x1ZGUgInNjcmlw dC5oIgorI2luY2x1ZGUgImZpbmQuaCIKKyNpbmNsdWRlICJGaW5kVmlzaXRvci5oIgogCiAj aW5jbHVkZSAicGFja2FnZV9kYi5oIgogI2luY2x1ZGUgInBhY2thZ2VfbWV0YS5oIgpAQCAt NzMsNiArNzYsMjggQEAgc3RydWN0IHN0ZF9kaXJzX3QgewogICBtb2RlX3QgbW9kZTsKIH07 CiAKK2NsYXNzIFBlcnBldHVhbDBSZW1vdmVGaW5kVmlzaXRvciA6IHB1YmxpYyBGaW5kVmlz aXRvcgoreworcHVibGljOgorICBleHBsaWNpdCBQZXJwZXR1YWwwUmVtb3ZlRmluZFZpc2l0 b3IgKHN0ZDo6dmVjdG9yPFNjcmlwdD4gKnNjcmlwdHMpCisgICAgOiBfc2NyaXB0cyhzY3Jp cHRzKQorICB7fQorICB2aXJ0dWFsIHZvaWQgdmlzaXRGaWxlKGNvbnN0IHN0ZDo6c3RyaW5n JiBiYXNlUGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXSU4zMl9GSU5E X0RBVEEgKnRoZUZpbGUpCisgICAgeworICAgICAgc3RkOjpzdHJpbmcgZm4gPSBzdGQ6OnN0 cmluZygiL2V0Yy9wcmVyZW1vdmUvIikgKyB0aGVGaWxlLT5jRmlsZU5hbWU7CisgICAgICBT Y3JpcHQgc2NyaXB0KGZuKTsKKyAgICAgIGlmIChzY3JpcHQuaXNfcCgiMCIpKQorCSAgX3Nj cmlwdHMtPnB1c2hfYmFjayhTY3JpcHQgKGZuKSk7CisgICAgfQorICB2aXJ0dWFsIH4gUGVy cGV0dWFsMFJlbW92ZUZpbmRWaXNpdG9yICgpIHt9Citwcm90ZWN0ZWQ6CisgIFBlcnBldHVh bDBSZW1vdmVGaW5kVmlzaXRvciAoUGVycGV0dWFsMFJlbW92ZUZpbmRWaXNpdG9yIGNvbnN0 ICYpOworICBQZXJwZXR1YWwwUmVtb3ZlRmluZFZpc2l0b3IgJiBvcGVyYXRvcj0gKFBlcnBl dHVhbDBSZW1vdmVGaW5kVmlzaXRvciBjb25zdCAmKTsKK3ByaXZhdGU6CisgIHN0ZDo6dmVj dG9yPFNjcmlwdD4gKl9zY3JpcHRzOworfTsKKwogY2xhc3MgSW5zdGFsbGVyCiB7CiAgIHB1 YmxpYzoKQEAgLTgwLDYgKzEwNSw3IEBAIGNsYXNzIEluc3RhbGxlcgogICAgIEluc3RhbGxl cigpOwogICAgIHZvaWQgaW5pdERpYWxvZygpOwogICAgIHZvaWQgcHJvZ3Jlc3MgKGludCBi eXRlcyk7CisgICAgdm9pZCBwcmVyZW1vdmVQZXJwZXR1YWwwICgpOwogICAgIHZvaWQgcHJl cmVtb3ZlT25lIChwYWNrYWdlbWV0YSAmKTsKICAgICB2b2lkIHVuaW5zdGFsbE9uZSAocGFj a2FnZW1ldGEgJik7CiAgICAgdm9pZCByZXBsYWNlT25SZWJvb3RGYWlsZWQgKGNvbnN0IHN0 ZDo6c3RyaW5nJiBmbik7CkBAIC0xNTAsNiArMTc2LDI0IEBAIEluc3RhbGxlcjo6U3RhbmRh cmREaXJzW10gPSB7CiAKIHN0YXRpYyBpbnQgbnVtX2luc3RhbGxzLCBudW1fdW5pbnN0YWxs czsKIAordm9pZAorSW5zdGFsbGVyOjpwcmVyZW1vdmVQZXJwZXR1YWwwICgpCit7CisgIHN0 ZDo6dmVjdG9yPFNjcmlwdD4gcGVycGV0dWFsOworICBQZXJwZXR1YWwwUmVtb3ZlRmluZFZp c2l0b3IgdmlzaXRvciAoJnBlcnBldHVhbCk7CisgIEZpbmQgKGN5Z3BhdGggKCIvZXRjL3By ZXJlbW92ZSIpKS5hY2NlcHQgKHZpc2l0b3IpOworICBpZiAocGVycGV0dWFsLmVtcHR5KCkp CisgICAgcmV0dXJuOworCisgIFByb2dyZXNzLlNldFRleHQxIChJRFNfUFJPR1JFU1NfUFJF UkVNT1ZFKTsKKyAgUHJvZ3Jlc3MuU2V0VGV4dDIgKCIwL1BlcnBldHVhbCIpOworICBzdGQ6 OnNvcnQgKHBlcnBldHVhbC5iZWdpbigpLCBwZXJwZXR1YWwuZW5kKCkpOworICBmb3IgKHN0 ZDo6dmVjdG9yPFNjcmlwdD46Oml0ZXJhdG9yIGkgPSBwZXJwZXR1YWwuYmVnaW4gKCk7IGkg IT0gcGVycGV0dWFsLmVuZCAoKTsgKytpKSB7CisgICAgUHJvZ3Jlc3MuU2V0VGV4dDMgKGkt PmZ1bGxOYW1lICgpLmNfc3RyKCkpOworICAgIGktPnJ1bigpOworICB9Cit9CisKIHZvaWQK IEluc3RhbGxlcjo6cHJlcmVtb3ZlT25lIChwYWNrYWdlbWV0YSAmIHBrZykKIHsKQEAgLTg1 OSw2ICs5MDMsOSBAQCBkb19pbnN0YWxsX3RocmVhZCAoSElOU1RBTkNFIGgsIEhXTkQgb3du ZXIpCiAgIH0KIAogICAvKiBzdGFydCB3aXRoIHVuaW5zdGFsbHMgLSByZW1vdmUgZmlsZXMg dGhhdCBuZXcgcGFja2FnZXMgbWF5IHJlcGxhY2UgKi8KKyAgUHJvZ3Jlc3MuU2V0QmFyMigw KTsKKyAgbXlJbnN0YWxsZXIucHJlcmVtb3ZlUGVycGV0dWFsMCAoKTsKKwogICBQcm9ncmVz cy5TZXRCYXIyKDApOwogICBmb3IgKHN0ZDo6dmVjdG9yIDxwYWNrYWdldmVyc2lvbj46Oml0 ZXJhdG9yIGkgPSB1bmluc3RhbGxfcS5iZWdpbiAoKTsKICAgICAgICBpICE9IHVuaW5zdGFs bF9xLmVuZCAoKTsgKytpKQotLSAKMi4zNi4xCgo= --------------D194EF5AC5D3F0CDF98442E3--