From patchwork Wed Jun 24 13:39:14 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Valters Jansons X-Patchwork-Id: 9963 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1 raw public key) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "YR2" (not verified)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4gljj31R99z3wpB for ; Wed, 24 Jun 2026 13:39:35 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "YE1" (not verified)) by mail01.ipfire.org (Postfix) with ESMTPS id 4gljj21L63z5gV for ; Wed, 24 Jun 2026 13:39:34 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4gljj11GrMz3346 for ; Wed, 24 Jun 2026 13:39:33 +0000 (UTC) X-Original-To: location@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "YR2" (not verified)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4gljj03Rdcz2xHP for ; Wed, 24 Jun 2026 13:39:32 +0000 (UTC) Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) (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 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4gljhy5VFKz5Xq for ; Wed, 24 Jun 2026 13:39:30 +0000 (UTC) Authentication-Results: mail01.ipfire.org; dkim=pass header.d=gmail.com header.s=20251104 header.b=Z1R+vH30; spf=pass (mail01.ipfire.org: domain of valter.jansons@gmail.com designates 2607:f8b0:4864:20::102a as permitted sender) smtp.mailfrom=valter.jansons@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; d=lists.ipfire.org; s=202003rsa; cv=none; t=1782308370; b=erct5tYTwvbbItkrcrdEfoBrkBK091CHxpnPAaiNW82i3LhmYlVB9CD4thmP//h0eIS34H LSoT1H7T41iv1jkTFIWQvHygVEH8cnI6gG+VKZFGQW3aVzrkzVF6Tlj9eNmKiv6RV0OYiS snX/iiKbqG5FrZbOxw0bYTpbG6ZKQqZmTjAf98vD2qrxxpSzBTa+uqAY/FOgO1Q8OLtnjr OOPu6esWpa8npNLMiOxix6iUFhWm95czkFoGj85lT0epRoLcHAJJeva1ik22cyhBggN4OA qSgosO7b+iJ7nV4KXN1e/ONQop4PpGYOzcz8WSClw7Mj/fgx0ltQ17AQzVWUEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.ipfire.org; s=202003rsa; t=1782308370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:dkim-signature; bh=D0ytPghm6M23ICKBE4w1jVZZZD+Kp50RcPAfxRm9eKM=; b=w04xF1B31wwLRfJCym6pvsIyWqGdLbif6iJYG/8diCN93sPmXYjA4xMv/7UlvZojcvd4et HeHETrOG0MSbWQqEDAIOBGPARmpoN5HT0B5MJKsk2pEXtw0cORvjVKN9EiXQs7nRD056gX FybndFBWVPNWNqsJfSBpjZQtpCMG1axsRdOe7o9NjDYqq++oJocytOkOCFZU+vaFuZr6fQ aTNuagaLAGOsnuQmL1sI/avrZeuLbVt8G5bFh/FSaGunxmxZ8OahKh221Z/C5nPkIcirqV bRMZXwIwmO1pbqi4Idg+zo4+3+NJgJ36hlx4sovjrJKB2MYAZEvH819nOFO8SQ== ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=pass header.d=gmail.com header.s=20251104 header.b=Z1R+vH30; spf=pass (mail01.ipfire.org: domain of valter.jansons@gmail.com designates 2607:f8b0:4864:20::102a as permitted sender) smtp.mailfrom=valter.jansons@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-37c6cd1ac98so938283a91.0 for ; Wed, 24 Jun 2026 06:39:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782308369; x=1782913169; darn=lists.ipfire.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=D0ytPghm6M23ICKBE4w1jVZZZD+Kp50RcPAfxRm9eKM=; b=Z1R+vH306GTTUCDehuysIJilKQlNvjWQ/9FpAZ4mPVbDSLFxk0utGgdKJcWOyCMipR qw4559RiEfB1iGOxUEg05pxMQSvlDbrKG6HbnuN4Gcv1967YH8eOxfSLeRTiT7gkAIQV 8mt7xOg++xmaI9juxDSSYXCG0yAVfHDtoSvVXgGyHVTm0AdaiLcOl/wRYjdtV65AtBHR HOgkgLaP50ihEJR5Va5jVj4IoIUk7XcH9Y2U7GrsGc86xY2sz2/Ssp28xoTqUoWxe0si x7lnfvwycDUyyarWfMlJpF7/ydmqdz20IVmQoRHfCd3CRyNlI7dF5uXgcrhMjIl+8E14 rmpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782308369; x=1782913169; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=D0ytPghm6M23ICKBE4w1jVZZZD+Kp50RcPAfxRm9eKM=; b=tQWSLp7wPOqnH97AQXncmK2EmpOhZbvBSt2DxtKk5F8qLsnzdrIWZkFxeOlsFajZC/ 852dT4NPzfRheADf4TWLcvlCcqGDtxCtIC0zFVtL++LTfGmz/KxoIim9ldRYHBym52Xq HxMhKGBrCBZ1PvMsRAj7uAMQ7C0TaOv328gYbzfCPqTd6RahPPdBJW+0Uj9VfIwGf3fU hE+3gIqzPfMtAGn5qJyEQyJ0gfcK7nzpQFZL94nrlWwI2/kh9FIt8QdPgt7B2cTiZHV8 2zhZjn8uAh+M7EKiswTravBStuyUhIBiM/JZD4a+GGHoVbvCn5KeivBiAJDhOBLfwk5d af2w== X-Gm-Message-State: AOJu0YzxfClSaoG3rrfFclmWedSsJcA5O7MqAH4IHVWSHDIUd9tcYmfM vKBxIKe58u+6ZKkiIUSpwgGjXPv9CovRPqfREUDiGiKwljcBbzBt9pXNMbzvjw== X-Gm-Gg: AfdE7ckyPLLkQnT6q3U8SPPuzEAJJjMWUz5Krll70RaVjvZG+Zhh32R4fq4Nk38b0i4 2mWc0TZJhSOgZlPLt7A7CGnqlp0Q3lUxUAWduTqII2jeXAjFsU9xtWE0BYIXSadzhTgU/IsxHp4 Lf+JtaeoPFJxybtqOJNYi5iSeKhFqxQvlXJsJ7a16ZKOaLcx2dAYOapVI8t47S6R4qtzoN+X0YW isUfFFRbWV2+TwCHu9/jQOpWEwibvogTXCGgIk5eMbFRG0vaHlyl5roXUze/8YQqg6I1xgLymG9 JzQkNSqsW1ftYRGLmBBq7mSxURo5xhqCyFAL2Ragfo8+CeeD1xJViHrBKDySVC7yU/eY/5tm57I VKNBsBUzzqNsJ4iit55WS7wPkpfeQajR61O7fJMiFpHZ6GvkKmIVFwsna/HuN5b2Afa4THydajN Hch4oPF4YQkKG9j6U5HuNVCgu5rDPzQQ== X-Received: by 2002:a17:90b:1c88:b0:372:94b9:76d8 with SMTP id 98e67ed59e1d1-37dd0d3d0b9mr7879859a91.6.1782308368508; Wed, 24 Jun 2026 06:39:28 -0700 (PDT) Received: from VT14-G5.localdomain ([221.146.12.107]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37de3ca3c2csm2529369a91.2.2026.06.24.06.39.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jun 2026 06:39:27 -0700 (PDT) From: Valters Jansons To: location@lists.ipfire.org Subject: [PATCH 1/2] Makefile: Install Lua in `exec` stage, not `data` Date: Wed, 24 Jun 2026 22:39:14 +0900 Message-ID: <20260624133915.434197-1-valter.jansons@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 X-Spamd-Result: default: False [-6.75 / 11.00]; BAYES_HAM(-3.00)[100.00%]; R_DKIM_ALLOW(-1.69)[gmail.com:s=20251104]; DKIM_REPUTATION(-0.96)[-0.96313688780515]; SPF_REPUTATION_HAM(-0.69)[-0.69164785741642]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_MISSING_CHARSET(0.50)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4864::/56]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.10)[gmail-smtp-in.l.google.com]; FROM_EQ_ENVFROM(0.00)[]; IP_REPUTATION_HAM(0.00)[asn: 15169(-0.32), country: US(-0.01), ip: 2607:f8b0:4864:20::(-0.83)]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FREEMAIL_FROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_DN_NONE(0.00)[]; ARC_SIGNED(0.00)[lists.ipfire.org:s=202003rsa:i=1]; MID_RHS_MATCH_FROM(0.00)[]; ALIAS_RESOLVED(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[location@lists.ipfire.org]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::102a:from]; FROM_HAS_DN(0.00)[] X-Rspamd-Server: mail01.haj.ipfire.org X-Rspamd-Queue-Id: 4gljhy5VFKz5Xq X-Rspamd-Action: no action Automake installation has two stages: * `exec` for platform-specific files, * `data` for platform-agnostic files. Automake separates the install stages based on the directory (target) variable name. Built-in targets have known stages. Any custom-defined ones check simply whether the target name contains `exec` substring. Currently, the Lua module is installed in the `data` stage, because `lua` is not considered an `exec` stage name. However, the Lua module contains C code (it is architecture-specific). Similar to how Python is installed via `pyexec`, Lua should be installed via `luaexec`. That way Automake splits it into `exec` stage correctly. Internally, the installation target directory is `LUA_INSTALL_CMOD` which also signals that this is a platform/architecture-specific installation. This logic remains unchanged, and the Lua `.so` gets installed to the same target as a result. This change is also important to allow libtool cleanup to be done in `install-exec-hook` consistently. Without this change, part of la-files cleanup would need to be moved to `install-data-hook`. Ref: https://www.gnu.org/software/automake/manual/html_node/The-Two-Parts-of-Install.html Signed-off-by: Valters Jansons --- Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index c5b8df3..a64a20a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -230,10 +230,10 @@ src_python__location_la_LIBADD = \ # ------------------------------------------------------------------------------ if ENABLE_LUA -lua_LTLIBRARIES = \ +luaexec_LTLIBRARIES = \ src/lua/location.la -luadir = $(LUA_INSTALL_CMOD) +luaexecdir = $(LUA_INSTALL_CMOD) src_lua_location_la_SOURCES = \ src/lua/as.c \ From patchwork Wed Jun 24 13:39:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Valters Jansons X-Patchwork-Id: 9964 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "YR2" (not verified)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4gljj31yrtz3wpk for ; Wed, 24 Jun 2026 13:39:35 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "YE1" (not verified)) by mail01.ipfire.org (Postfix) with ESMTPS id 4gljj23sPXz6qG for ; Wed, 24 Jun 2026 13:39:34 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4gljj15vM8z34GQ for ; Wed, 24 Jun 2026 13:39:33 +0000 (UTC) X-Original-To: location@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "YR2" (not verified)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4gljj11775z333G for ; Wed, 24 Jun 2026 13:39:33 +0000 (UTC) Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) (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 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4gljhz6rhpz5gV for ; Wed, 24 Jun 2026 13:39:31 +0000 (UTC) Authentication-Results: mail01.ipfire.org; dkim=pass header.d=gmail.com header.s=20251104 header.b=TTbh2BFE; spf=pass (mail01.ipfire.org: domain of valter.jansons@gmail.com designates 2607:f8b0:4864:20::1032 as permitted sender) smtp.mailfrom=valter.jansons@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; d=lists.ipfire.org; s=202003rsa; cv=none; t=1782308372; b=n7/AQWFfj+1rstYjCcqa8bbNTp55yUPtdmeYStyAZt9VK05awa2dx/DmNAXaGYs0i10isd ScKqU5pjKRI/dz9OQZUjWezn52A4FGgDDlHqlJKV88NtGH7yD0Yxgj21UW9u/Z22qNhuVV YIBX/3USIpjChlEcRaFIiSBzknEdn9yM5fquDSueCG5ZQenayeQ56+m/BiF/II6weyWmmL XV3kfM5fDO4qIzeAy9cwrCYlQfZ28iJZEB2BAlIOPrpV3hfB/29GsMd9AnjKRAn/2HjC7F YRTYckdWGDkSuuKCZjQY2bBsy41xFqR1FMMHwp9gcR5UgnQ1uss96tzR9LS19g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.ipfire.org; s=202003rsa; t=1782308372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=OuqrHI4FZ7h0wbp9OPXyRImShbcpAAg5iPGz8lWmKQE=; b=PqQ0N8HQ9Pt3mCrZbqToSPpHnxp+syIUz+RZKErizXlE0jkgvGvoAMvJ6sL63lQqNtaUon R7zQLB2M/je4G/9/8APC8PjkA6DK6JbZIgbbOVkeTEvZlB/IWBlHF6NfbWY1T0xE7Bxix5 LFlyGerzxfyC3/DKkBiNHrXDOI0S2W9FzjqLXI4xBhh0gvSYmvwmtPnmI+u85saj7/pF+m YL+SST4kaYyk4KFZQsvOdCwLWzNlgw9Q1cC3CbUmVG15gXzy/FeKfYeZjpfAW+LYOmJFwA Lw5Xs5h3vEAu3qJeXCr6t9u17QRwwEpYCvn8TwwAkH7hLWT/l1oFHVNSsYAw6A== ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=pass header.d=gmail.com header.s=20251104 header.b=TTbh2BFE; spf=pass (mail01.ipfire.org: domain of valter.jansons@gmail.com designates 2607:f8b0:4864:20::1032 as permitted sender) smtp.mailfrom=valter.jansons@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-37dd266c32eso811293a91.1 for ; Wed, 24 Jun 2026 06:39:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782308370; x=1782913170; darn=lists.ipfire.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=OuqrHI4FZ7h0wbp9OPXyRImShbcpAAg5iPGz8lWmKQE=; b=TTbh2BFEEraUUD4YYqeGH5IkMRUISM1sphD91iaFJ/3JLdE+ao5SOHvzt+9HrLLK9L LG6J3O8OfUYZ0fQCFB0LJoKiBqNLDDGti1tEPnb6+eg+ufrA8JlGXF7AeXg3anf6vt7B P1aqjdlixylHCqsf5sHO3z5c+4d9kC0LoXB4bfFGSde8NE465vPI+cbEtF4pAYc9BPKP Lj8q9IJ9WZxrqTiQUQiHmSkOon4Seq69NoLTaYMtrACpXVZRgYvdtADBYd04JGluFmRc FKJfjB9p8HshTF4EVaPbi1nEzMkE+Bpg1/phJa/XDCAW3e0ObfU7tgEz3dRxEAMJnbap LIKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782308370; x=1782913170; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=OuqrHI4FZ7h0wbp9OPXyRImShbcpAAg5iPGz8lWmKQE=; b=nTvzJBGUrIOq4vxsYxHd9vkUEDgE7FSubTLSpd7/ejBqge5gGit+8gzO8tZ2CI50pt JfZwSVE4gI+bgL5JX/Q+R+o67ig5f6qtUcTBi2er5SSoUtcM9Y7eG+oEJBFOBHu5ib1D YP0io25Cwcy6YO4HAgSQBrD6JxoaRfpXdqFB6gMfXOHxybH5vCB8y1XjUsCFf1Uhjmku jplDuHiunCxBc5W6/O5UP14n8MC4VCUMdljRF/s+m6CtgJ9ZI2ZGIRB+sn0OyBC9ix7S PAKSAA/tO0us55YF+zRmtCFN/wY8RI7OGdnyeR4bhq0Vvu3rgB/HdyYp51QwIFUIKPOB HECg== X-Gm-Message-State: AOJu0YwrNTxyoPq50eAJXGjByhReC7YgStuTQQIghJ60njyNv/kH5SC2 Z7Qqq5Gul/ZxPL3KFB9xy1nw6xSbsa/a/bPx9/dYq+chms11oeJpTZhthwrKxA== X-Gm-Gg: AfdE7cmz6kiHH2Xkt3xbyKvu+Z8VBKB+UYOVKDoqJtp43/1GT5CJxpEK+iNMN/0U+2i 0losu1YANCaF9pX8LvxWGiAXTerkQ60RNxcDfCFaYpQjcoUA+jcE1kj1phPUVYmHaGnp3qgoChs 94gxwfZFFddAurzcS6VWCG7+akiGATfedldqHTZnFWvhUHS/b6RRUbDnT6JNUZpoamEYvCMxJbB 58Rnm7KDDM3dNOdoyShINzFy8eXI+S5FlE9Gln1X5BP9yEF4DEYSNkERpM4bCRqDHPNvH8ACqgr Vi2cyoVV7sXL1PXpwzP3+/pvl5k+1IgnoxhIDYjCGVmqcljkgwBRUruATTYLF8eAQovro9dAaoT /aAK8pOMeOHA/QUn1Bz0+YRPXPxwSe3YsNCzDvfMrWfIs98aMFsruSVR44knCxXzgItMXEkuo/O D56GVSRr5EH1V0dV7sL+kPbVSAaTew1w== X-Received: by 2002:a17:90b:5787:b0:36d:5d1c:c4ad with SMTP id 98e67ed59e1d1-37de41a2ef2mr3560115a91.9.1782308369822; Wed, 24 Jun 2026 06:39:29 -0700 (PDT) Received: from VT14-G5.localdomain ([221.146.12.107]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37de3ca3c2csm2529369a91.2.2026.06.24.06.39.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jun 2026 06:39:29 -0700 (PDT) From: Valters Jansons To: location@lists.ipfire.org Subject: [PATCH 2/2] Makefile: Avoid installing libtool control files Date: Wed, 24 Jun 2026 22:39:15 +0900 Message-ID: <20260624133915.434197-2-valter.jansons@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260624133915.434197-1-valter.jansons@gmail.com> References: <20260624133915.434197-1-valter.jansons@gmail.com> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 X-Spamd-Result: default: False [-6.75 / 11.00]; BAYES_HAM(-3.00)[100.00%]; R_DKIM_ALLOW(-1.69)[gmail.com:s=20251104]; DKIM_REPUTATION(-0.96)[-0.96313688780515]; SPF_REPUTATION_HAM(-0.69)[-0.69164785741642]; R_MISSING_CHARSET(0.50)[]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4864::/56:c]; MX_GOOD(-0.10)[gmail-smtp-in.l.google.com]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; IP_REPUTATION_HAM(0.00)[asn: 15169(-0.32), country: US(-0.01), ip: 2607:f8b0:4864:20::(-0.83)]; RCPT_COUNT_ONE(0.00)[1]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; FREEMAIL_FROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::1032:from]; ARC_SIGNED(0.00)[lists.ipfire.org:s=202003rsa:i=1]; ALIAS_RESOLVED(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[location@lists.ipfire.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[] X-Rspamd-Server: mail01.haj.ipfire.org X-Rspamd-Queue-Id: 4gljhz6rhpz5gV X-Rspamd-Action: no action This project currently uses autoconf, automake, and libtool for building. During build process, libtool creates `.la` control files with metadata about the `.so` library. On modern systems, shipping these files is now strongly discouraged. The `.la` files are generally not used on live systems. The only scenario where they would be used is if someone loads the library using libltdl (libtool's `dlopen` wrapper). However, both Python and Lua just load the library directly using a `dlopen("location.so")` instead of calling `lt_dlopen("location.la")`. This project does not reference `lt_dlopen` or `ltdl` as such. Moreover, the `.la` files include redundant dependency chain information. For example, the Lua module depends on libloc. Even though OpenSSL is a transitive dependency (`src/database.c` and `src/writer.c`, not `src/lua/`), libtool anyway adds `-lssl` (as well as `-lcrypto -lresolv`) directly to `dependency_libs` of Lua's `location.la`. Listing these transitive dependencies muddies the chain. If someone is consuming the Lua module downstream, then libtool would force the full dependency chain onto them directly, which is not needed. Additionally, due to hardcoded dependencies, rebuild propagation is a concern. An upstream library updating their soname requires all downstream `.la` files to be rebuilt, even if libloc's ABI has not changed. This is especially painful at distro packaging scale. As a result, modern packaging is pushing towards removing these `.la` files. In cases where some libltdl consumers exist, the fallback route is emptying out the dependency_libs metadata field. This is visible in Debian Lintian as error `non-empty-dependency_libs-in-la-file`. We can go the whole way and drop these files outright. The `.la` files reference each other; therefore, when one is being removed, all of them should be removed, to avoid dangling references. Ref: https://wiki.debian.org/ReleaseGoals/LAFileRemoval Ref: https://fedoraproject.org/wiki/Changes/RemoveLaFiles Signed-off-by: Valters Jansons --- Note: This commit adds the removal logic in `install-exec-hook`. This depends on the parent commit in this series, ensuring Lua is installed in `exec` instead of `data`. Makefile.am | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Makefile.am b/Makefile.am index a64a20a..735e07a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -359,6 +359,20 @@ CLEANFILES += \ # ------------------------------------------------------------------------------ +install-exec-hook: + # Avoid installing .la files, as we do not use libltdl. + @for la in $(lib_LTLIBRARIES); do \ + rm -f "$(DESTDIR)$(libdir)/`basename $$la`"; \ + done + @for la in $(pyexec_LTLIBRARIES); do \ + rm -f "$(DESTDIR)$(pyexecdir)/`basename $$la`"; \ + done + @for la in $(luaexec_LTLIBRARIES); do \ + rm -f "$(DESTDIR)$(luaexecdir)/`basename $$la`"; \ + done + +# ------------------------------------------------------------------------------ + # Use systemd timers if available if HAVE_SYSTEMD systemdsystemunit_DATA = \