From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id 2OoCDSTyu2MJ7wAAbAwnHQ (envelope-from ) for ; Mon, 09 Jan 2023 11:53:24 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id GKv9DCTyu2P/LAEA9RJhRA (envelope-from ) for ; Mon, 09 Jan 2023 11:53:24 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id EF73917C62 for ; Mon, 9 Jan 2023 11:53:23 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pEpl2-0005PG-VA; Mon, 09 Jan 2023 05:52:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pEpku-0005Ml-OJ for guix-devel@gnu.org; Mon, 09 Jan 2023 05:51:58 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pEpku-0002ST-09; Mon, 09 Jan 2023 05:51:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=Bhj9pyfsyKWLGBS7F6mNlKO0YhRy3TNyE+DPNrNxqk8=; b=aw8EiH9cIPyT6dFfCIEb GOOo7gSJ2Derw17PjM8RNmnVyGL1Gz9l3OF8r/yITQ5eoh4fiXUv2StXqPmXKAhQ81EurWHElhcZl 0uWn7Tl3PaNtBeDKe2Ch4iKe6JusPhOUkosDA5Gow629eFyePi+W0cKGRBW4xRI6AQm4B9vvfXQ6j klbJ/ZbpcbRltcVLk6K/kWjMwrgBOtfPUqHPadcoCMc2fBmFeHovZQhWcKLLVsPpn/67S9Zlr6kFo Y7WjfYlpqXgjeJJeg3oBchyy4NehptIUZXNf7iTwsJG8wakqeCce/7YEq3gGQv1mx2MzV0f2Rakab nVTq7IpFCESUIw==; Received: from [193.50.110.246] (helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pEpkh-00089q-TM; Mon, 09 Jan 2023 05:51:51 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: mirai Cc: guix-devel Subject: Re: Improving how NGINX modules are used and built References: X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: =?utf-8?Q?D=C3=A9cadi?= 20 =?utf-8?Q?Niv=C3=B4se?= an 231 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du Van X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 09 Jan 2023 11:51:37 +0100 In-Reply-To: (mirai@makinata.eu's message of "Thu, 29 Dec 2022 02:10:27 +0000") Message-ID: <87pmborneu.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1673261604; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=Bhj9pyfsyKWLGBS7F6mNlKO0YhRy3TNyE+DPNrNxqk8=; b=BaQrkvngN3crmCC7Pw67lrcs1sg9a4uKuHYXLF5LX3MmZD4meF2CfPQerrM1Z44qwc7YV4 E+064HGpoaXN4pm/CydH1LRiqNovW2sqYaGYPck+MzCSMYZemAsQ3u6QMFkAJlPoS4ADOH DUzWH0ykhARjcP0puj+bS7l1vOimjZRl+om8PFT56f3gI6ZM95MapqMAVvBPC9pvuhcsJJ rum+u7MsNEPW+Y3HyyweRu97lrtlv+VpMcG5e/A10wRMEYMpZ3+zRRjqcnV6XKrwtPkTtS JWH5Dt9ukhKaQ8OABBpqipIfO7Cp6n8NzLahxpdQCxVSyW4VGvA21z4rZIunXQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b=aw8EiH9c; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1673261604; a=rsa-sha256; cv=none; b=Bq9k5LQrr+gxL9A9PFS6OMVTrGY1nE3KrIr4q5FW3XL7ETve6WibaX8LQwuoBLB7ciG+rm 1eb1sJgRS+PsxcO5AbR4NDfB3MsfKVX48zKZYSnnz4huRMO8Q0caMAZUOmm1CqmrCdR42r qaIKHpAgbMiCyVPx+fYJb9u01U9RK8IvSmpgJ7FPts8/g3js3MVeSDhnKEFm0EAsv2Xo/F p2xk+zRvUq5+tC8/tNoAMB5EosgQfxab24QRI46/i6IZw7YdQ8dNQ353vuiecAJ2jrvd3+ sKyP6CuS2rU1darkeMcZbUo+TplgcDDKNZ64jYXK2BHOQDcKdclVrirVSLcAqA== X-Spam-Score: -7.52 X-Migadu-Queue-Id: EF73917C62 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b=aw8EiH9c; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org X-Migadu-Scanner: scn1.migadu.com X-Migadu-Spam-Score: -7.52 X-TUID: 7yYap3erzGP6 Hello! mirai skribis: > An oddity of how nginx modules are packaged in guix is that they all place > the .so file under /etc/nginx/modules which is an odd directory to place = library object files. To me that should be treated as a bug. Those .so files should go to $PKG/lib/nginx instead, or something similar. > Looking at how network-manager-configuration handles its vpn-plugins fiel= d, it seems doable > that a similar approach can be used here. > The existing nginx-modules should be changed to install their .so files u= nder lib{64}/nginx > instead and they should drop a etc/nginx/modules/foo_module.conf file res= ponsible for loading > the module from the .so file. Including modules through a .conf should be= preferred as > there's no guarantee that a module is a .so file or that it is always a > _single_ .so file but in general this file should typically be a one-line= .conf file containing: > > load_module "/gnu/store/......nginx-foo-module/usr/lib64/nginx/ngx_foo_mo= dule.so"; > > > And nginx-configuration should serialize the modules field as a series of= lines including > the module .conf files, that is: > > include "/gnu/store/......nginx-foo-module/etc/nginx/modules/ngx_foo_modu= le.conf"; > include "/gnu/store/......nginx-bar-module/etc/nginx/modules/ngx_bar_modu= le.conf"; > ... > > (note: a directory union could be used here as an alternative) I=E2=80=99d say that ideally, one could extend with modules, and that would automatically create the =E2=80=98load_module=E2=80= =99 statements. > On a related note, given how nginx-modules are expected to be built and l= inked against the > same nginx build, a new nginx-build-system for nginx modules could be con= sidered as the few > existing nginx modules in guix are for the most part a copy-paste of each= other with some > modifications here-and-there. That would be an improvement, indeed! Thanks, Ludo=E2=80=99.