From patchwork Tue Jul 18 12:01:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Michal_Such=C3=A1nek?= X-Patchwork-Id: 121966 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1693102vqt; Tue, 18 Jul 2023 05:09:01 -0700 (PDT) X-Google-Smtp-Source: APBJJlFdr6yi+MbiFJkMsqr9z9hVWMewrOSpkTx0VsX5jOkLkT2RgcbEPWbInIFh7cVITnx2ne9d X-Received: by 2002:a17:906:297:b0:997:e9a3:9c59 with SMTP id 23-20020a170906029700b00997e9a39c59mr93106ejf.6.1689682141415; Tue, 18 Jul 2023 05:09:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689682141; cv=none; d=google.com; s=arc-20160816; b=oqCsIL6lP+Y5DV9PjGQPVY57TdAACZoJbCuFtZRJ/aB5DqMKZcvgtwAG/MKWWlnxkB uAgbS4vzqF70Hdf6zIxoIuc60KXn+L/f0TA6GdZBxk9OE3rXuzQeqs541VbA90/3acS1 X+pHaoC6YCTlPO9TIk2VGc5V2eebijUawyk9cdIqg3M4BElT1J9bYWpfh4KD2GXih8AJ cpfgaEGPlDaHMRr371UOoygT+ggqzuV5mg5tjMkZAbhYlQUUYiM8wz3dP2yzyaATm2wm 0io2oCUQ8Kf8Wl/+1UhuhFlgndUTvXHGTZFpzWw3VDjJuNaC06eDmj6ATX7TH+hSDNRh 2ofA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=VG3nbQZ6NQlPAmYzpmo6KoCjwuY3FXsibXeDJl7sMQM=; fh=AVdnBkCzYGOB5oRrOKcaACuRLonL9A4Pn6PwCHl69B0=; b=TC/BBUUvG9oEIqR9Rp0Beb0yksXe+LldNM7A/gdbkbjgu4EMeaymWfrpcXzhLJEbkQ eZvbgA8r57vlofs3U7OPWwuHDwqyTcuDTF/0/E9P/Y6KJnp5nsCw/8FylX8Mpk8G/IOi STeLGSPkaC+AScE0iLlS2VNaFZqfrllPGCO9IWgS4R81cft6scGyjlX3Hv1LOI0KXCSK a1WGh2rg+KtgfjFQOmFIsbS2U6WygYDqe4pUwh0rKk2e/TiZKfiu/vSFCuBSofklUOGu LITwx9v7Z6m070t8IRv0TyfXtSg1z9nAOdpSd60Md0D2oIixwfoHbkvFbuV8KazvSb5F CiAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=lTrh5HE3; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b1-20020a1709062b4100b00991c8af7ba5si1090045ejg.473.2023.07.18.05.08.37; Tue, 18 Jul 2023 05:09:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=lTrh5HE3; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232214AbjGRMDe (ORCPT + 99 others); Tue, 18 Jul 2023 08:03:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231603AbjGRMD3 (ORCPT ); Tue, 18 Jul 2023 08:03:29 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93896E47; Tue, 18 Jul 2023 05:03:27 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id 44A0B218EE; Tue, 18 Jul 2023 12:03:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1689681806; h=from:from:reply-to: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=VG3nbQZ6NQlPAmYzpmo6KoCjwuY3FXsibXeDJl7sMQM=; b=lTrh5HE3QZv5mu8b5Ytjm53UsTjwxmdJXanRewoKmSbJN24dQqbuMqfhMYWeHgvbViNcDB M+//oXkd7rJY+dVTdqdEubM3GCCZtelXUNQ5W7cq6ZOj+qzcjqLYSHEfdyGboOvgEQ7K8b yemZJtS5cx+14bgzWi4Ud8xb2u8pnJE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1689681806; h=from:from:reply-to: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=VG3nbQZ6NQlPAmYzpmo6KoCjwuY3FXsibXeDJl7sMQM=; b=svYsuHjD3AqEe3A9+vR3sCejz0Mq2M3b8oE9C3L0wq4+p2+G3cW+GVjFdGDgvTx7ZVJd8I m0EVY4KErmmORzDw== Received: from kitsune.suse.cz (kitsune.suse.cz [10.100.12.127]) by relay2.suse.de (Postfix) with ESMTP id EECE32C143; Tue, 18 Jul 2023 12:03:25 +0000 (UTC) From: Michal Suchanek To: linux-modules@vger.kernel.org Cc: Michal Suchanek , Takashi Iwai , Lucas De Marchi , =?utf-8?q?Michal_Koutn=C3=BD?= , Jiri Slaby , Jan Engelhardt , Masahiro Yamada , Nathan Chancellor , Nick Desaulniers , Nicolas Schier , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH kmod v5 1/5] configure: Detect openssl sm3 support Date: Tue, 18 Jul 2023 14:01:52 +0200 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771760141144828887 X-GMAIL-MSGID: 1771760141144828887 Older openssl versions do not support sm3. The code has an option to disable the sm3 hash but the lack of openssl support is not detected automatically. Signed-off-by: Michal Suchanek --- configure.ac | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/configure.ac b/configure.ac index 6064dee77ae6..331cc8a1ffd5 100644 --- a/configure.ac +++ b/configure.ac @@ -123,6 +123,13 @@ AC_ARG_WITH([openssl], AS_IF([test "x$with_openssl" != "xno"], [ PKG_CHECK_MODULES([libcrypto], [libcrypto >= 1.1.0], [LIBS="$LIBS $libcrypto_LIBS"]) AC_DEFINE([ENABLE_OPENSSL], [1], [Enable openssl for modinfo.]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include + int nid = NID_sm3;]])], [ + AC_MSG_NOTICE([openssl supports sm3]) + ], [ + AC_MSG_NOTICE([openssl sm3 support not detected]) + CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SM3" + ]) ], [ AC_MSG_NOTICE([openssl support not requested]) ]) From patchwork Tue Jul 18 12:01:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Michal_Such=C3=A1nek?= X-Patchwork-Id: 121992 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1718908vqt; Tue, 18 Jul 2023 05:51:17 -0700 (PDT) X-Google-Smtp-Source: APBJJlGGDWEsXrsJIp2PNCrrDyZYWkRaau4n/NcOINnJsitcCu00EzO0FmeBCw3dVqdAc1AyzOLV X-Received: by 2002:a17:906:289:b0:993:ff93:cf8f with SMTP id 9-20020a170906028900b00993ff93cf8fmr13201676ejf.8.1689684676830; Tue, 18 Jul 2023 05:51:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689684676; cv=none; d=google.com; s=arc-20160816; b=FaePL0+rjn+g3iMSAjp2TrrwmfjQnCNTOT4QYjCcWHjSTBYOzndL/f8H/Q+0RNzfRu WjL0dWY7cIgMm6/M4uCRuHoS1eWYZ+FVwbyyoWIEPbVEeP8yYSfwsVHXSmepjEaIAdOk LEQzWhMYU0z25y3fZN1BLALsx3w+eluHd2qflteNdm5iRuQCVrBTXHAxQW0DysSXnRoy QeVMGC6fdu1ut23k74uJ4+79YjHcDKgDHVpyBWl6UOowf4+9hRRRJtue0sGGIs5dEqWr qCkbzacj2bnIKk97JlKq4i8hdDeTjcByqBj3z4lFon537Vu1R/lp58NRmDfO577g4OHs DDLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=5MYNN4aTAxMD2vJ3pBJF0snRIYTMXy8161K7Aou3d2k=; fh=AVdnBkCzYGOB5oRrOKcaACuRLonL9A4Pn6PwCHl69B0=; b=hDK2sOYd4OIiCSMYYBqtN5UZAGAC/44nAFhSeVo+B1YEYPNDO0MKnazg/UySo0GdkV Z3tDTlAS+TgDtK+jYqnWRn7nXrtpcBy05wBvGsj7kUh2U6Z2JmtuvEcy4ffV+PAKHxUq hAWLJlL7tHuv8eKEvHvvUdxsinITuZPDqm8mZOdTzVA8Fbv3AZ+WYQp7WN3sKJOTqmEG Ihg6w6g/OvSonmspbZNPjIsPV+0485+eBpfe0VZQyZj5jkzNZQ/ohBddLT8/297zgRf5 Nms1Xbg4MtW5JPP2IscUvD1ovtZrRiYWcUCDccdV7NTX2XYHMkgZVn/v4YRQNu1HGDES yehw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=RaOKGH9Y; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k2-20020a170906128200b00986b1c0b4d2si1013074ejb.595.2023.07.18.05.50.53; Tue, 18 Jul 2023 05:51:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=RaOKGH9Y; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232220AbjGRMDi (ORCPT + 99 others); Tue, 18 Jul 2023 08:03:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231663AbjGRMD3 (ORCPT ); Tue, 18 Jul 2023 08:03:29 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0C5410F1; Tue, 18 Jul 2023 05:03:27 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id 8D7E12192D; Tue, 18 Jul 2023 12:03:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1689681806; h=from:from:reply-to: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=5MYNN4aTAxMD2vJ3pBJF0snRIYTMXy8161K7Aou3d2k=; b=RaOKGH9Yf2JjduOFlsgCSBaxWhkZKD1p7e4XwMvfX4DpQXDj0YdqMNNZl912zv+guii11H quc7aaoyRoi4zBVV4Wtpq7iqIaVXHJ2G7orN3nokq0HYZZjBpxeOq9gsLZhv3tnegJC1UY c1t642WEyT0QGCbQ9L9Pu34N0uia3pQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1689681806; h=from:from:reply-to: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=5MYNN4aTAxMD2vJ3pBJF0snRIYTMXy8161K7Aou3d2k=; b=uSxwIX7B6QqkQxgiVI71tiKeC4IGjUIEMWDOLDp5V4h78xbuK+QeA/5NdZ4M4GTJS0WMlw Cp985pSvnHfdluAA== Received: from kitsune.suse.cz (kitsune.suse.cz [10.100.12.127]) by relay2.suse.de (Postfix) with ESMTP id 428222C145; Tue, 18 Jul 2023 12:03:26 +0000 (UTC) From: Michal Suchanek To: linux-modules@vger.kernel.org Cc: Michal Suchanek , Takashi Iwai , Lucas De Marchi , =?utf-8?q?Michal_Koutn=C3=BD?= , Jiri Slaby , Jan Engelhardt , Masahiro Yamada , Nathan Chancellor , Nick Desaulniers , Nicolas Schier , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH kmod v5 2/5] man/depmod.d: Fix incorrect /usr/lib search path Date: Tue, 18 Jul 2023 14:01:53 +0200 Message-ID: <9c5a6356b1a111eb6e17ddb110494b7f1d1b44c0.1689681454.git.msuchanek@suse.de> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771139223849823337 X-GMAIL-MSGID: 1771762799906755379 depmod searches /lib/depmod.d but the man page says /usr/lib/depmod.d is searched. Align the documentation with the code. Signed-off-by: Michal Suchanek --- v2: Fix commit message typo --- man/depmod.d.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/depmod.d.xml b/man/depmod.d.xml index 76548e92a312..8d3d821cddc8 100644 --- a/man/depmod.d.xml +++ b/man/depmod.d.xml @@ -39,7 +39,7 @@ - /usr/lib/depmod.d/*.conf + /lib/depmod.d/*.conf /usr/local/lib/depmod.d/*.conf /run/depmod.d/*.conf /etc/depmod.d/*.conf From patchwork Tue Jul 18 12:01:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Michal_Such=C3=A1nek?= X-Patchwork-Id: 121990 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1717681vqt; Tue, 18 Jul 2023 05:49:00 -0700 (PDT) X-Google-Smtp-Source: APBJJlFphM3IhQsjyg1OI2BaVQcfnaH4ko9tVXy3EyBzAltf/3DWWsayA3AAMsAG/6IRNG5H+3W6 X-Received: by 2002:a05:6a21:99a2:b0:12d:3d9e:2934 with SMTP id ve34-20020a056a2199a200b0012d3d9e2934mr16326681pzb.44.1689684540381; Tue, 18 Jul 2023 05:49:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689684540; cv=none; d=google.com; s=arc-20160816; b=01s3X2YRqPLhre7foYbSsP0LPtnFOkoZmXfzegDAG5jB/KvCrckmQj0eNGLLjHR7e9 9u6VHQ2pq0Y8/OO1a1wB2eWyhkq1l2X0cU5tuuLlGH5NbieqXEAdIh0OWEEEbHygU4uU NE1+KsHpJKWY9OJSHOInqrWH4wgE3p/UUY50NlKPgLPAzBtCfZy1HnCWqBEw/jatiEss lfvgza9PgXk3+Fw+FxoGXyaaUGhRn7faCjTZTVffaKEH9JqPzHA29D4rtB+vFGHNC6xe hQR0Og4xKO1Bh0wdMB2lIRgFYrIf27vXCuCc0ulEnM4zptOMr3Iq+01UCWoOqES9tELD uO+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=CvlHBvqzPVM+nrKUqZQDh23criIIq4TPNlulM1tUKbU=; fh=AVdnBkCzYGOB5oRrOKcaACuRLonL9A4Pn6PwCHl69B0=; b=AU8TlLtfOd18ExaYOXPLLN3w8GPblmVOLmzNeairrY3J0HX/LkxzQZoJVLJgFAccLA s6DsTZqUdZlcjlc168gZ2Jpc1+P1QG50vSEs9ZqNi9vJmY83lMvyD29ODgxG0Ur3hSQ7 Ktuvv7g53Tf5Wo0y4vOB9Kwc+qKcgORuwTG7n7b16NbocjBhNKkV4M4DeDsy2mmjLNMO dvZQtsHdOJbex1243Qiy4yD8BSQdkIikGzvL9qD4MIyvm94sTOipMA4E+Z8o9Fk2osOC 1pmTbU2aCWXdOT4Jfz3/L9YbGz3JbIIXMDEWysm+O+V6BritxjMgFGpVsnUt0Q9yqlx6 l1DQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=uILsdidT; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bs124-20020a632882000000b005347fcb7853si1527856pgb.140.2023.07.18.05.48.46; Tue, 18 Jul 2023 05:49:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=uILsdidT; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232254AbjGRMDk (ORCPT + 99 others); Tue, 18 Jul 2023 08:03:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33816 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231949AbjGRMDa (ORCPT ); Tue, 18 Jul 2023 08:03:30 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 234061AC; Tue, 18 Jul 2023 05:03:28 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id CAF6721941; Tue, 18 Jul 2023 12:03:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1689681806; h=from:from:reply-to: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=CvlHBvqzPVM+nrKUqZQDh23criIIq4TPNlulM1tUKbU=; b=uILsdidTecf92JYgECvLrQhnFdQY+6FmWuA1D/Gdx4V07v+kaeQvFC4us9MpJdrCjL2ePC 0viN1qkGD2EYl8K8FZihOaylqZyuNnv3LcgSItVl7omZnZC4jeiWp3ZawiiWDF5Pb2vHXW QiM67Yi3lvwxKzCNeFwyJaG4zOXFSl8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1689681806; h=from:from:reply-to: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=CvlHBvqzPVM+nrKUqZQDh23criIIq4TPNlulM1tUKbU=; b=z/ARLjsbrKOj94fNaoMqeUwPJ/r6tWDKQvjSlelPBgTpGKHnQewT4jDPitwbE4HFxUsAhl i5yiKzWM/QaOwJDg== Received: from kitsune.suse.cz (kitsune.suse.cz [10.100.12.127]) by relay2.suse.de (Postfix) with ESMTP id 8BC872C146; Tue, 18 Jul 2023 12:03:26 +0000 (UTC) From: Michal Suchanek To: linux-modules@vger.kernel.org Cc: Michal Suchanek , Takashi Iwai , Lucas De Marchi , =?utf-8?q?Michal_Koutn=C3=BD?= , Jiri Slaby , Jan Engelhardt , Masahiro Yamada , Nathan Chancellor , Nick Desaulniers , Nicolas Schier , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH kmod v5 3/5] libkmod, depmod: Load modprobe.d, depmod.d from ${prefix}/lib. Date: Tue, 18 Jul 2023 14:01:54 +0200 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771762656622250471 X-GMAIL-MSGID: 1771762656622250471 There is an ongoing effort to limit use of files outside of /usr (or ${prefix} on general). Currently all modprobe.d paths are hardcoded to outside of $prefix. Teach kmod to load modprobe.d from ${prefix}/lib. On some distributions /usr/lib and /lib are the same directory because of a compatibility symlink, and it is possible to craft configuration files with sideeffects that would behave differently when loaded twice. However, the override semantic ensures that one 'overrides' the other, and only one configuration file of the same name is loaded from any of the search directories. Signed-off-by: Michal Suchanek --- v2: Fix commit message typo v3: Fix modprobe.d path list in code comment v5: Add distconfdir --- Makefile.am | 1 + configure.ac | 5 +++++ libkmod/libkmod.c | 7 ++++--- man/Makefile.am | 9 +++++++-- man/depmod.d.xml | 1 + man/modprobe.d.xml | 1 + tools/depmod.c | 1 + 7 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index 8ba85c91a0f3..14eb07e63cea 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,6 +19,7 @@ AM_CPPFLAGS = \ -include $(top_builddir)/config.h \ -I$(top_srcdir) \ -DSYSCONFDIR=\""$(sysconfdir)"\" \ + -DDISTCONFDIR=\""$(distconfdir)"\" \ ${zlib_CFLAGS} AM_CFLAGS = $(OUR_CFLAGS) diff --git a/configure.ac b/configure.ac index 331cc8a1ffd5..728f88a56704 100644 --- a/configure.ac +++ b/configure.ac @@ -79,6 +79,10 @@ AC_COMPILE_IFELSE( # --with- ##################################################################### +AC_ARG_WITH([distconfdir], AS_HELP_STRING([--with-distconfdir=DIR], [directory to search for distribution configuration files]), + [], [with_distconfdir='${prefix}/lib']) +AC_SUBST([distconfdir], [$with_distconfdir]) + AC_ARG_WITH([rootlibdir], AS_HELP_STRING([--with-rootlibdir=DIR], [rootfs directory to install shared libraries]), [], [with_rootlibdir=$libdir]) @@ -313,6 +317,7 @@ AC_MSG_RESULT([ prefix: ${prefix} sysconfdir: ${sysconfdir} + distconfdir: ${distconfdir} libdir: ${libdir} rootlibdir: ${rootlibdir} includedir: ${includedir} diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c index 2670f9a4611a..09e6041461b0 100644 --- a/libkmod/libkmod.c +++ b/libkmod/libkmod.c @@ -65,6 +65,7 @@ static const char *const default_config_paths[] = { SYSCONFDIR "/modprobe.d", "/run/modprobe.d", "/usr/local/lib/modprobe.d", + DISTCONFDIR "/modprobe.d", "/lib/modprobe.d", NULL }; @@ -237,9 +238,9 @@ static char *get_kernel_release(const char *dirname) * to load from user-defined configuration parameters such as * alias, blacklists, commands (install, remove). If NULL * defaults to /etc/modprobe.d, /run/modprobe.d, - * /usr/local/lib/modprobe.d and /lib/modprobe.d. Give an empty - * vector if configuration should not be read. This array must - * be null terminated. + * /usr/local/lib/modprobe.d, DISTCONFDIR/modprobe.d, and + * /lib/modprobe.d. Give an empty vector if configuration should + * not be read. This array must be null terminated. * * Create kmod library context. This reads the kmod configuration * and fills in the default values. diff --git a/man/Makefile.am b/man/Makefile.am index 11514d52a190..2fea8e46bf2f 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -17,9 +17,14 @@ EXTRA_DIST = $(MAN5:%.5=%.xml) $(MAN8:%.8=%.xml) CLEANFILES = $(dist_man_MANS) %.5 %.8: %.xml - $(AM_V_XSLT)$(XSLT) \ + $(AM_V_XSLT)if [ '$(distconfdir)' != '/lib' ] ; then \ + sed -e 's|@DISTCONFDIR@|$(distconfdir)|g' $< ; \ + else \ + sed -e '/@DISTCONFDIR@/d' $< ; \ + fi | \ + $(XSLT) \ -o $@ \ --nonet \ --stringparam man.output.quietly 1 \ --param funcsynopsis.style "'ansi'" \ - http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< + http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl - diff --git a/man/depmod.d.xml b/man/depmod.d.xml index 8d3d821cddc8..f282a39cc840 100644 --- a/man/depmod.d.xml +++ b/man/depmod.d.xml @@ -40,6 +40,7 @@ /lib/depmod.d/*.conf + @DISTCONFDIR@/depmod.d/*.conf /usr/local/lib/depmod.d/*.conf /run/depmod.d/*.conf /etc/depmod.d/*.conf diff --git a/man/modprobe.d.xml b/man/modprobe.d.xml index 0ab3e9110a7e..2bf6537f07e6 100644 --- a/man/modprobe.d.xml +++ b/man/modprobe.d.xml @@ -41,6 +41,7 @@ /lib/modprobe.d/*.conf + @DISTCONFDIR@/modprobe.d/*.conf /usr/local/lib/modprobe.d/*.conf /run/modprobe.d/*.conf /etc/modprobe.d/*.conf diff --git a/tools/depmod.c b/tools/depmod.c index 1d1d41db860f..630fef9c8fb0 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -54,6 +54,7 @@ static const char *const default_cfg_paths[] = { SYSCONFDIR "/depmod.d", "/run/depmod.d", "/usr/local/lib/depmod.d", + DISTCONFDIR "/depmod.d", "/lib/depmod.d", NULL }; From patchwork Tue Jul 18 12:01:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Michal_Such=C3=A1nek?= X-Patchwork-Id: 121983 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1704019vqt; Tue, 18 Jul 2023 05:26:33 -0700 (PDT) X-Google-Smtp-Source: APBJJlE7nhnDKmo8GPalvaoqsOCGFvw9aPC9NBpQU0LlJKSSHxbBdhpsDe8mTJNl+3lJkLKAJAJX X-Received: by 2002:a05:6402:1392:b0:51e:6a:b4ba with SMTP id b18-20020a056402139200b0051e006ab4bamr12451491edv.41.1689683193583; Tue, 18 Jul 2023 05:26:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689683193; cv=none; d=google.com; s=arc-20160816; b=hJzQ/LQIIJYftn00EG+b1wOVVXpYeCMzbYy5TdK5E+AaGPYlAiLfccEMEDbSUYP9O4 Usy/rYl0U8Rz9c5dRu04/uM++KTJSdLyV5TJKwhcDty88e8KgJye9CfKFuXRr2zJaGGB qiwVUwyCu7X5DEW2DNEQV4GYPEfd1n8t/zwBV2tzmg4d5AM/7l/R2GiUyJBNd+CQg/30 G7d8aJBVQBZmorrYWse9/buSvhj/TT/gzkhF9P/PxbGkyfYo/Vd/fEU9LUWTjoPxEjkF 1k2tWC8MKMlT8M+PApWQuLYCSDaSeVmQvOC7aptKr8QSvRu2PXjffOyoXMs/ZESUl5na Wiyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=KcavZlTXNr5DDwygCINQcHq1XhLMqp354UXQuIuczEw=; fh=AVdnBkCzYGOB5oRrOKcaACuRLonL9A4Pn6PwCHl69B0=; b=p98SxxTABgbL4/kCAZRV0ip4/EZVqFARhrO2cgMAOuOnYil7axj046bmxeOo7o3djG KhtsGtPFYXmXhlfWZNnFrCD0l6DYv+SzlbRN7KMv/Y+zwiRM1/3AYtlbPovOcXgflAAY O5DP3K8ZFlotfdkJRu2s2mPC73NJW04J3wOSzlgyRZLvLr5ZqQ0LHVJKnnBPA5xzCZOp kKz5ZoUJbj3K+gb5CxhsZ8EnGi3w5QZecYtL6Zy6iOiXwf7Ub759cJarDfTwOcIH/LXH q/QZx/hpYNq6ysn/GHVjAprCAG/qkYeCHH9IpO9v2YcMq1IBA+kByPV4W74ikE62YcfM tzZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=BtAQsJkC; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l5-20020a056402124500b0051de2ee33fdsi1133043edw.433.2023.07.18.05.26.10; Tue, 18 Jul 2023 05:26:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=BtAQsJkC; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232229AbjGRMDn (ORCPT + 99 others); Tue, 18 Jul 2023 08:03:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232018AbjGRMDa (ORCPT ); Tue, 18 Jul 2023 08:03:30 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F78B10F5; Tue, 18 Jul 2023 05:03:28 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out2.suse.de (Postfix) with ESMTP id 176BD1FDB9; Tue, 18 Jul 2023 12:03:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1689681807; h=from:from:reply-to: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=KcavZlTXNr5DDwygCINQcHq1XhLMqp354UXQuIuczEw=; b=BtAQsJkCTuJZQLLaotPySYX6YkhuVG98Bvhmzs5zpl14/3RgadNS6KMaKzQwt4Fu1435iM 7PSDwYkkTHH+KMLUPAys1lkbJWnn4JPmqYPLJy55QvuTMkVkd/D3164Z65XI7L2OwPrHCJ BJ4U8p0bduCP8Kx5WUPNfUK+znAHym8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1689681807; h=from:from:reply-to: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=KcavZlTXNr5DDwygCINQcHq1XhLMqp354UXQuIuczEw=; b=YcTlvotKxmSD8cmKZsvcUf64LQkPsQsvzOivjn+7yVeE7rwsG/t2MjOSA7Zo+3OacpnDxK bitcATWVQ19NcBDw== Received: from kitsune.suse.cz (kitsune.suse.cz [10.100.12.127]) by relay2.suse.de (Postfix) with ESMTP id CA4D92C149; Tue, 18 Jul 2023 12:03:26 +0000 (UTC) From: Michal Suchanek To: linux-modules@vger.kernel.org Cc: Michal Suchanek , Takashi Iwai , Lucas De Marchi , =?utf-8?q?Michal_Koutn=C3=BD?= , Jiri Slaby , Jan Engelhardt , Masahiro Yamada , Nathan Chancellor , Nick Desaulniers , Nicolas Schier , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH kmod v5 4/5] kmod: Add pkgconfig file with kmod compile time configuration Date: Tue, 18 Jul 2023 14:01:55 +0200 Message-ID: <468b3f572d3b84f25bb53ec8fcb15ed4871914d4.1689681454.git.msuchanek@suse.de> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771761244364495991 X-GMAIL-MSGID: 1771761244364495991 Show distconfdir (where system configuration files are searched/to be installed), sysconfdir (where user configuration files are searched), module compressions, and module signatures supported. Signed-off-by: Michal Suchanek --- v2: mention module signature in commit message v3: add sysconfdir v5: add distconfdir, switch to pkgconfig --- Makefile.am | 2 +- configure.ac | 11 +++++++++++ tools/kmod.pc.in | 9 +++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 tools/kmod.pc.in diff --git a/Makefile.am b/Makefile.am index 14eb07e63cea..6d0b2decfef3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -96,7 +96,7 @@ libkmod_libkmod_internal_la_DEPENDENCIES = $(libkmod_libkmod_la_DEPENDENCIES) libkmod_libkmod_internal_la_LIBADD = $(libkmod_libkmod_la_LIBADD) pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libkmod/libkmod.pc +pkgconfig_DATA = libkmod/libkmod.pc tools/kmod.pc bashcompletiondir=@bashcompletiondir@ dist_bashcompletion_DATA = \ diff --git a/configure.ac b/configure.ac index 728f88a56704..b4584d6cdc67 100644 --- a/configure.ac +++ b/configure.ac @@ -21,6 +21,9 @@ LT_INIT([disable-static pic-only]) AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])]) AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is not supported by kmod])]) +module_compressions="" +module_signatures="legacy" + ##################################################################### # Program checks and configurations ##################################################################### @@ -94,6 +97,7 @@ AC_ARG_WITH([zstd], AS_IF([test "x$with_zstd" != "xno"], [ PKG_CHECK_MODULES([libzstd], [libzstd >= 1.4.4], [LIBS="$LIBS $libzstd_LIBS"]) AC_DEFINE([ENABLE_ZSTD], [1], [Enable Zstandard for modules.]) + module_compressions="zstd $module_compressions" ], [ AC_MSG_NOTICE([Zstandard support not requested]) ]) @@ -105,6 +109,7 @@ AC_ARG_WITH([xz], AS_IF([test "x$with_xz" != "xno"], [ PKG_CHECK_MODULES([liblzma], [liblzma >= 4.99], [LIBS="$LIBS $liblzma_LIBS"]) AC_DEFINE([ENABLE_XZ], [1], [Enable Xz for modules.]) + module_compressions="xz $module_compressions" ], [ AC_MSG_NOTICE([Xz support not requested]) ]) @@ -116,6 +121,7 @@ AC_ARG_WITH([zlib], AS_IF([test "x$with_zlib" != "xno"], [ PKG_CHECK_MODULES([zlib], [zlib], [LIBS="$LIBS $zlib_LIBS"]) AC_DEFINE([ENABLE_ZLIB], [1], [Enable zlib for modules.]) + module_compressions="gzip $module_compressions" ], [ AC_MSG_NOTICE([zlib support not requested]) ]) @@ -134,6 +140,7 @@ AS_IF([test "x$with_openssl" != "xno"], [ AC_MSG_NOTICE([openssl sm3 support not detected]) CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SM3" ]) + module_signatures="PKCS7 $module_signatures" ], [ AC_MSG_NOTICE([openssl support not requested]) ]) @@ -298,6 +305,9 @@ AC_DEFINE_UNQUOTED(KMOD_FEATURES, ["$with_features"], [Features in this build]) # Generate files from *.in ##################################################################### +AC_SUBST([module_compressions], $module_compressions) +AC_SUBST([module_signatures], $module_signatures) + AC_CONFIG_FILES([ Makefile man/Makefile @@ -305,6 +315,7 @@ AC_CONFIG_FILES([ libkmod/docs/version.xml libkmod/libkmod.pc libkmod/python/kmod/version.py + tools/kmod.pc ]) diff --git a/tools/kmod.pc.in b/tools/kmod.pc.in new file mode 100644 index 000000000000..2595980a6b35 --- /dev/null +++ b/tools/kmod.pc.in @@ -0,0 +1,9 @@ +prefix=@prefix@ +sysconfdir=@sysconfdir@ +distconfdir=@distconfdir@ +module_compressions=@module_compressions@ +module_signatures=@module_signatures@ + +Name: kmod +Description: Tools to deal with kernel modules +Version: @VERSION@ From patchwork Tue Jul 18 12:01:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Michal_Such=C3=A1nek?= X-Patchwork-Id: 121970 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1694547vqt; Tue, 18 Jul 2023 05:11:11 -0700 (PDT) X-Google-Smtp-Source: APBJJlGqbTYixpb6DkTzpuvqnriLd6Fbnw1VO5IXBnmmIhj0ZU8nNIp5LN6KB5ozBRRj2nyw4rVU X-Received: by 2002:a17:906:1084:b0:994:569b:61b8 with SMTP id u4-20020a170906108400b00994569b61b8mr8077621eju.58.1689682270900; Tue, 18 Jul 2023 05:11:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689682270; cv=none; d=google.com; s=arc-20160816; b=jBjdKUO0+XLWpXqlWuj5K7y0FKe0hlkNTefAwglQBUAlLs+zh33DHfbYPf+WgAcuYi WMXjO/1EG+967+Dt6aCXTG8mIFEHeQWBlTIycsGCPubjt7/LGUdCx3p+2Jm2MjKLRCMj +JBD9VTHEZi9AUkk1c1SoFUh2YDCP+z9zy640SAyvYR4GQfwor1yZvnvBtpdD1CJqtgZ +H4/GJl6CB6aGNDJLg2LG8vQppz3ipQ7ET4bSGxJK00n1TD4lrUKEPh42F7fNRbcMNEE GSFAkY1MIClvh434lC/PIO93mRHHH38/JQe816U9dhK5K2Tr4vsPiUblBV/ny1yt0I2F LS7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=94ENOqrP3gjCaN4ue+ssInaGNH9u+l8JScazVP+e3Wc=; fh=AVdnBkCzYGOB5oRrOKcaACuRLonL9A4Pn6PwCHl69B0=; b=DSuQXWvho9pwYvL4pCL0cUgBdACGpCnZt00rhFoHbqVgRGQqqtSRVnWwWDeSfrneP5 QNH1bKsyHNAoCrd9zDizQL4FNjlLxk0eFUdo3wnt8QDvWznByVnPzx7PJHawoB93a+/Q oUkDHuv8DNlyLhrE5Av7tR4DLz08LKfO4fBtSEgWv4RSGnXFDddZvKvyVQRjV+CUJ0Xr HrsLAG1QBCRoJ9tAfMzmAUdCKQ0J19wCz+Bd2ITlOCOOYbftKzjqmmdArzrI6BULC6tt 0o31Fryam9RHiHLweoToXHUi4sXI3t76kd+k464jkCKHqVO/XAawgbsRYqMaP7LzGxr1 mLVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=X4BesYsn; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id by26-20020a170906a2da00b009931472bdb8si1150975ejb.965.2023.07.18.05.10.46; Tue, 18 Jul 2023 05:11:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=X4BesYsn; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232273AbjGRMDq (ORCPT + 99 others); Tue, 18 Jul 2023 08:03:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232206AbjGRMDc (ORCPT ); Tue, 18 Jul 2023 08:03:32 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C50851B0; Tue, 18 Jul 2023 05:03:28 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id 56CF02195D; Tue, 18 Jul 2023 12:03:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1689681807; h=from:from:reply-to: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=94ENOqrP3gjCaN4ue+ssInaGNH9u+l8JScazVP+e3Wc=; b=X4BesYsnaruWo9HWO2pFsmQG/Jvb/04wK95lcGVKdRqzYCcCO0jHWVOpv9zOmlHp0/KuBB jOXfGXS4MoV4RhmZjeZaKYgOlE25yB9qeloUIriBS4tN4h/kHs4QXdNmoYRk1k9u4K00b/ ikhbmzrxBWWJ882pjYbLZkbFThtHuLw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1689681807; h=from:from:reply-to: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=94ENOqrP3gjCaN4ue+ssInaGNH9u+l8JScazVP+e3Wc=; b=6z5UmO8MyMdIwRThIwHVIBMW5zumvObcqiZljWcvL+yKUjfO82nOuHm7r+2HUvEyeU3SAc 1uA122wHSeoORJCA== Received: from kitsune.suse.cz (kitsune.suse.cz [10.100.12.127]) by relay2.suse.de (Postfix) with ESMTP id 15FD12C14B; Tue, 18 Jul 2023 12:03:27 +0000 (UTC) From: Michal Suchanek To: linux-modules@vger.kernel.org Cc: Michal Suchanek , Takashi Iwai , Lucas De Marchi , =?utf-8?q?Michal_Koutn=C3=BD?= , Jiri Slaby , Jan Engelhardt , Masahiro Yamada , Nathan Chancellor , Nick Desaulniers , Nicolas Schier , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH kmod v5 5/5] libkmod, depmod, modprobe: Make directory for kernel modules configurable Date: Tue, 18 Jul 2023 14:01:56 +0200 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771664524780187945 X-GMAIL-MSGID: 1771760277139931589 Now that modprobe.d is searched under ${prefix}/lib, allow a complete transition to files only under ${prefix} by adding a ${module_directory} configuration. This specifies the directory where to search for kernel modules and should match the location where the kernel/distro installs them. With this distributions that do not want to ship files in /lib can also move kernel modules to /usr while others can keep them in /lib. Signed-off-by: Michal Suchanek --- v4: Make the whole path configurable v5: More verbose commit message --- Makefile.am | 3 +- configure.ac | 7 ++ libkmod/libkmod.c | 4 +- man/Makefile.am | 1 + man/depmod.d.xml | 6 +- man/depmod.xml | 4 +- man/modinfo.xml | 2 +- man/modprobe.xml | 2 +- man/modules.dep.xml | 6 +- testsuite/module-playground/Makefile | 2 +- testsuite/setup-rootfs.sh | 109 +++++++++++++++------------ testsuite/test-depmod.c | 16 ++-- testsuite/test-testsuite.c | 8 +- tools/depmod.c | 6 +- tools/kmod.pc.in | 1 + tools/modinfo.c | 4 +- tools/modprobe.c | 4 +- tools/static-nodes.c | 6 +- 18 files changed, 107 insertions(+), 84 deletions(-) diff --git a/Makefile.am b/Makefile.am index 6d0b2decfef3..019aa749fdf1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -20,6 +20,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir) \ -DSYSCONFDIR=\""$(sysconfdir)"\" \ -DDISTCONFDIR=\""$(distconfdir)"\" \ + -DMODULE_DIRECTORY=\""$(module_directory)"\" \ ${zlib_CFLAGS} AM_CFLAGS = $(OUR_CFLAGS) @@ -220,7 +221,7 @@ EXTRA_DIST += testsuite/setup-rootfs.sh MODULE_PLAYGROUND = testsuite/module-playground ROOTFS = testsuite/rootfs ROOTFS_PRISTINE = $(top_srcdir)/testsuite/rootfs-pristine -CREATE_ROOTFS = $(AM_V_GEN) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h $(sysconfdir) +CREATE_ROOTFS = $(AM_V_GEN) MODULE_DIRECTORY=$(module_directory) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h $(sysconfdir) build-module-playground: $(AM_V_GEN)if test "$(top_srcdir)" != "$(top_builddir)"; then \ diff --git a/configure.ac b/configure.ac index b4584d6cdc67..4051dc9249e2 100644 --- a/configure.ac +++ b/configure.ac @@ -91,6 +91,12 @@ AC_ARG_WITH([rootlibdir], [], [with_rootlibdir=$libdir]) AC_SUBST([rootlibdir], [$with_rootlibdir]) +# Ideally this would be $prefix/lib/modules but default to /lib/modules for compatibility with earlier versions +AC_ARG_WITH([module_directory], + AS_HELP_STRING([--with-module-directory=DIR], [directory in which to look for kernel modules - typically '/lib/modules' or '${prefix}/lib/modules']), + [], [with_module_directory=/lib/modules]) +AC_SUBST([module_directory], [$with_module_directory]) + AC_ARG_WITH([zstd], AS_HELP_STRING([--with-zstd], [handle Zstandard-compressed modules @<:@default=disabled@:>@]), [], [with_zstd=no]) @@ -326,6 +332,7 @@ AC_MSG_RESULT([ $PACKAGE $VERSION ======= + module_directory: ${module_directory} prefix: ${prefix} sysconfdir: ${sysconfdir} distconfdir: ${distconfdir} diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c index 09e6041461b0..63719e886de8 100644 --- a/libkmod/libkmod.c +++ b/libkmod/libkmod.c @@ -209,7 +209,7 @@ static int log_priority(const char *priority) return 0; } -static const char *dirname_default_prefix = "/lib/modules"; +static const char *dirname_default_prefix = MODULE_DIRECTORY; static char *get_kernel_release(const char *dirname) { @@ -231,7 +231,7 @@ static char *get_kernel_release(const char *dirname) /** * kmod_new: * @dirname: what to consider as linux module's directory, if NULL - * defaults to /lib/modules/`uname -r`. If it's relative, + * defaults to ${module_prefix}/lib/modules/`uname -r`. If it's relative, * it's treated as relative to the current working directory. * Otherwise, give an absolute dirname. * @config_paths: ordered array of paths (directories or files) where diff --git a/man/Makefile.am b/man/Makefile.am index 2fea8e46bf2f..f550091a216a 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -22,6 +22,7 @@ CLEANFILES = $(dist_man_MANS) else \ sed -e '/@DISTCONFDIR@/d' $< ; \ fi | \ + sed -e 's|@MODULE_DIRECTORY@|$(module_directory)|g' | \ $(XSLT) \ -o $@ \ --nonet \ diff --git a/man/depmod.d.xml b/man/depmod.d.xml index f282a39cc840..b07e6a2bd4fe 100644 --- a/man/depmod.d.xml +++ b/man/depmod.d.xml @@ -70,7 +70,7 @@ - This allows you to specify the order in which /lib/modules + This allows you to specify the order in which @MODULE_DIRECTORY@ (or other configured module location) subdirectories will be processed by depmod. Directories are listed in order, with the highest priority given to the @@ -101,7 +101,7 @@ depmod command. It is possible to specify one kernel or all kernels using the * wildcard. modulesubdirectory is the - name of the subdirectory under /lib/modules (or other + name of the subdirectory under @MODULE_DIRECTORY@ (or other module location) where the target module is installed. @@ -110,7 +110,7 @@ specifying the following command: "override kmod * extra". This will ensure that any matching module name installed under the extra subdirectory within - /lib/modules (or other module location) will take priority + @MODULE_DIRECTORY@ (or other module location) will take priority over any likenamed module already provided by the kernel. diff --git a/man/depmod.xml b/man/depmod.xml index 3b0097184fd7..fce2a4a67a89 100644 --- a/man/depmod.xml +++ b/man/depmod.xml @@ -80,7 +80,7 @@ depmod creates a list of module dependencies by reading each module under - /lib/modules/version and + @MODULE_DIRECTORY@/version and determining what symbols it exports and what symbols it needs. By default, this list is written to modules.dep, and a binary hashed version named modules.dep.bin, in the @@ -141,7 +141,7 @@ If your modules are not currently in the (normal) directory - /lib/modules/version, + @MODULE_DIRECTORY@/version, but in a staging area, you can specify a basedir which is prepended to the directory name. This basedir is diff --git a/man/modinfo.xml b/man/modinfo.xml index 9fe0324a2527..b6c4d6045829 100644 --- a/man/modinfo.xml +++ b/man/modinfo.xml @@ -54,7 +54,7 @@ modinfo extracts information from the Linux Kernel modules given on the command line. If the module name is not a filename, then the - /lib/modules/version + @MODULE_DIRECTORY@/version directory is searched, as is also done by modprobe8 when loading kernel modules. diff --git a/man/modprobe.xml b/man/modprobe.xml index 91f9e27997cd..4d1fd59c000b 100644 --- a/man/modprobe.xml +++ b/man/modprobe.xml @@ -78,7 +78,7 @@ is no difference between _ and - in module names (automatic underscore conversion is performed). modprobe looks in the module directory - /lib/modules/`uname -r` for all + @MODULE_DIRECTORY@/`uname -r` for all the modules and other files, except for the optional configuration files in the /etc/modprobe.d directory diff --git a/man/modules.dep.xml b/man/modules.dep.xml index ed633694ec9e..8ef6d8b3536e 100644 --- a/man/modules.dep.xml +++ b/man/modules.dep.xml @@ -34,8 +34,8 @@ - /lib/modules/modules.dep - /lib/modules/modules.dep.bin + @MODULE_DIRECTORY@/modules.dep + @MODULE_DIRECTORY@/modules.dep.bin DESCRIPTION @@ -43,7 +43,7 @@ modules.dep.bin is a binary file generated by depmod listing the dependencies for every module in the directories under - /lib/modules/version. + @MODULE_DIRECTORY@/version. It is used by kmod tools such as modprobe and libkmod. diff --git a/testsuite/module-playground/Makefile b/testsuite/module-playground/Makefile index e6045b0dd932..a7ab09bea2bf 100644 --- a/testsuite/module-playground/Makefile +++ b/testsuite/module-playground/Makefile @@ -47,7 +47,7 @@ endif else # normal makefile -KDIR ?= /lib/modules/`uname -r`/build +KDIR ?= $(module_prefix)/lib/modules/`uname -r`/build KVER ?= `uname -r` ifeq ($(FAKE_BUILD),) FAKE_BUILD=0 diff --git a/testsuite/setup-rootfs.sh b/testsuite/setup-rootfs.sh index 4440ddcd6b4d..a780f9381b3c 100755 --- a/testsuite/setup-rootfs.sh +++ b/testsuite/setup-rootfs.sh @@ -16,6 +16,19 @@ create_rootfs() { cp -r "$ROOTFS_PRISTINE" "$ROOTFS" find "$ROOTFS" -type d -exec chmod +w {} \; find "$ROOTFS" -type f -name .gitignore -exec rm -f {} \; + if [ "$MODULE_DIRECTORY" != "/lib/modules" ] ; then + sed -i -e "s|/lib/modules|$MODULE_DIRECTORY|g" $(find "$ROOTFS" -name \*.txt -o -name \*.conf -o -name \*.dep) + sed -i -e "s|$MODULE_DIRECTORY/external|/lib/modules/external|g" $(find "$ROOTFS" -name \*.txt -o -name \*.conf -o -name \*.dep) + for i in "$ROOTFS"/*/lib/modules/* "$ROOTFS"/*/*/lib/modules/* ; do + version="$(basename $i)" + [ $version != 'external' ] || continue + mod="$(dirname $i)" + lib="$(dirname $mod)" + up="$(dirname $lib)$MODULE_DIRECTORY" + mkdir -p "$up" + mv "$i" "$up" + done + fi if [ "$SYSCONFDIR" != "/etc" ]; then find "$ROOTFS" -type d -name etc -printf "%h\n" | while read -r e; do @@ -32,57 +45,57 @@ feature_enabled() { declare -A map map=( - ["test-depmod/search-order-simple/lib/modules/4.4.4/kernel/crypto/"]="mod-simple.ko" - ["test-depmod/search-order-simple/lib/modules/4.4.4/updates/"]="mod-simple.ko" - ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/"]="mod-simple.ko" - ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/"]="mod-simple.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko" - ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko" - ["test-depmod/search-order-external-first/lib/modules/4.4.4/foo/"]="mod-simple.ko" - ["test-depmod/search-order-external-first/lib/modules/4.4.4/foobar/"]="mod-simple.ko" + ["test-depmod/search-order-simple$MODULE_DIRECTORY/4.4.4/kernel/crypto/"]="mod-simple.ko" + ["test-depmod/search-order-simple$MODULE_DIRECTORY/4.4.4/updates/"]="mod-simple.ko" + ["test-depmod/search-order-same-prefix$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" + ["test-depmod/search-order-same-prefix$MODULE_DIRECTORY/4.4.4/foobar/"]="mod-simple.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko" + ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko" + ["test-depmod/search-order-external-first$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" + ["test-depmod/search-order-external-first$MODULE_DIRECTORY/4.4.4/foobar/"]="mod-simple.ko" ["test-depmod/search-order-external-first/lib/modules/external/"]="mod-simple.ko" - ["test-depmod/search-order-external-last/lib/modules/4.4.4/foo/"]="mod-simple.ko" - ["test-depmod/search-order-external-last/lib/modules/4.4.4/foobar/"]="mod-simple.ko" + ["test-depmod/search-order-external-last$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" + ["test-depmod/search-order-external-last$MODULE_DIRECTORY/4.4.4/foobar/"]="mod-simple.ko" ["test-depmod/search-order-external-last/lib/modules/external/"]="mod-simple.ko" - ["test-depmod/search-order-override/lib/modules/4.4.4/foo/"]="mod-simple.ko" - ["test-depmod/search-order-override/lib/modules/4.4.4/override/"]="mod-simple.ko" - ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko" - ["test-dependencies/lib/modules/4.0.20-kmod/kernel/"]="mod-foo-c.ko" - ["test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko" - ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/"]="mod-foo.ko" + ["test-depmod/search-order-override$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" + ["test-depmod/search-order-override$MODULE_DIRECTORY/4.4.4/override/"]="mod-simple.ko" + ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko" + ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/"]="mod-foo-c.ko" + ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko" + ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/fs/"]="mod-foo.ko" ["test-init/"]="mod-simple.ko" ["test-remove/"]="mod-simple.ko" - ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" - ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" - ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko" + ["test-modprobe/show-depends$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" + ["test-modprobe/show-depends$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" + ["test-modprobe/show-depends$MODULE_DIRECTORY/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko" ["test-modprobe/show-exports/mod-loop-a.ko"]="mod-loop-a.ko" - ["test-modprobe/softdep-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" - ["test-modprobe/softdep-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" - ["test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" - ["test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" - ["test-modprobe/force/lib/modules/4.4.4/kernel/"]="mod-simple.ko" - ["test-modprobe/oldkernel/lib/modules/3.3.3/kernel/"]="mod-simple.ko" - ["test-modprobe/oldkernel-force/lib/modules/3.3.3/kernel/"]="mod-simple.ko" - ["test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/"]="mod-simple.ko" - ["test-modprobe/module-param-kcmdline/lib/modules/4.4.4/kernel/"]="mod-simple.ko" + ["test-modprobe/softdep-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" + ["test-modprobe/softdep-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" + ["test-modprobe/install-cmd-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" + ["test-modprobe/install-cmd-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" + ["test-modprobe/force$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" + ["test-modprobe/oldkernel$MODULE_DIRECTORY/3.3.3/kernel/"]="mod-simple.ko" + ["test-modprobe/oldkernel-force$MODULE_DIRECTORY/3.3.3/kernel/"]="mod-simple.ko" + ["test-modprobe/alias-to-none$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" + ["test-modprobe/module-param-kcmdline$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" ["test-modprobe/external/lib/modules/external/"]="mod-simple.ko" ["test-modprobe/module-from-abspath/home/foo/"]="mod-simple.ko" ["test-modprobe/module-from-relpath/home/foo/"]="mod-simple.ko" - ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" - ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" - ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" - ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" - ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" - ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" + ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" + ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" + ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" + ["test-depmod/modules-outdir$MODULE_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" + ["test-depmod/modules-outdir$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" + ["test-depmod/modules-outdir$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" ["test-modinfo/mod-simple-i386.ko"]="mod-simple-i386.ko" ["test-modinfo/mod-simple-x86_64.ko"]="mod-simple-x86_64.ko" ["test-modinfo/mod-simple-sparc64.ko"]="mod-simple-sparc64.ko" @@ -90,20 +103,20 @@ map=( ["test-modinfo/mod-simple-sha256.ko"]="mod-simple.ko" ["test-modinfo/mod-simple-pkcs7.ko"]="mod-simple.ko" ["test-modinfo/external/lib/modules/external/mod-simple.ko"]="mod-simple.ko" - ["test-tools/insert/lib/modules/4.4.4/kernel/"]="mod-simple.ko" - ["test-tools/remove/lib/modules/4.4.4/kernel/"]="mod-simple.ko" + ["test-tools/insert$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" + ["test-tools/remove$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" ) gzip_array=( - "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko" + "test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko" ) xz_array=( - "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko" + "test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/scsi_mod.ko" ) zstd_array=( - "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko" + "test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko" ) attach_sha256_array=( diff --git a/testsuite/test-depmod.c b/testsuite/test-depmod.c index 93606947f18a..c96dbf0a62be 100644 --- a/testsuite/test-depmod.c +++ b/testsuite/test-depmod.c @@ -27,7 +27,7 @@ #define MODULES_UNAME "4.4.4" #define MODULES_ORDER_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-order-compressed" -#define MODULES_ORDER_LIB_MODULES MODULES_ORDER_ROOTFS "/lib/modules/" MODULES_UNAME +#define MODULES_ORDER_LIB_MODULES MODULES_ORDER_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME static noreturn int depmod_modules_order_for_compressed(const struct test *t) { const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; @@ -55,8 +55,8 @@ DEFINE_TEST(depmod_modules_order_for_compressed, }); #define MODULES_OUTDIR_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-outdir" -#define MODULES_OUTDIR_LIB_MODULES_OUTPUT MODULES_OUTDIR_ROOTFS "/outdir/lib/modules/" MODULES_UNAME -#define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS "/lib/modules/" MODULES_UNAME +#define MODULES_OUTDIR_LIB_MODULES_OUTPUT MODULES_OUTDIR_ROOTFS "/outdir" MODULE_DIRECTORY "/" MODULES_UNAME +#define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME static noreturn int depmod_modules_outdir(const struct test *t) { const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; @@ -87,7 +87,7 @@ DEFINE_TEST(depmod_modules_outdir, }); #define SEARCH_ORDER_SIMPLE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-simple" -#define SEARCH_ORDER_SIMPLE_LIB_MODULES SEARCH_ORDER_SIMPLE_ROOTFS "/lib/modules/" MODULES_UNAME +#define SEARCH_ORDER_SIMPLE_LIB_MODULES SEARCH_ORDER_SIMPLE_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME static noreturn int depmod_search_order_simple(const struct test *t) { const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; @@ -114,7 +114,7 @@ DEFINE_TEST(depmod_search_order_simple, }); #define SEARCH_ORDER_SAME_PREFIX_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix" -#define SEARCH_ORDER_SAME_PREFIX_LIB_MODULES SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/" MODULES_UNAME +#define SEARCH_ORDER_SAME_PREFIX_LIB_MODULES SEARCH_ORDER_SAME_PREFIX_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME static noreturn int depmod_search_order_same_prefix(const struct test *t) { const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; @@ -164,7 +164,7 @@ DEFINE_TEST(depmod_detect_loop, }); #define SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-external-first" -#define SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS "/lib/modules/" MODULES_UNAME +#define SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME static noreturn int depmod_search_order_external_first(const struct test *t) { const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; @@ -191,7 +191,7 @@ DEFINE_TEST(depmod_search_order_external_first, }); #define SEARCH_ORDER_EXTERNAL_LAST_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-external-last" -#define SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES SEARCH_ORDER_EXTERNAL_LAST_ROOTFS "/lib/modules/" MODULES_UNAME +#define SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES SEARCH_ORDER_EXTERNAL_LAST_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME static noreturn int depmod_search_order_external_last(const struct test *t) { const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; @@ -218,7 +218,7 @@ DEFINE_TEST(depmod_search_order_external_last, }); #define SEARCH_ORDER_OVERRIDE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-override" -#define SEARCH_ORDER_OVERRIDE_LIB_MODULES SEARCH_ORDER_OVERRIDE_ROOTFS "/lib/modules/" MODULES_UNAME +#define SEARCH_ORDER_OVERRIDE_LIB_MODULES SEARCH_ORDER_OVERRIDE_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME static noreturn int depmod_search_order_override(const struct test *t) { const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; diff --git a/testsuite/test-testsuite.c b/testsuite/test-testsuite.c index 56e73609f204..c77c4bbc04eb 100644 --- a/testsuite/test-testsuite.c +++ b/testsuite/test-testsuite.c @@ -64,7 +64,7 @@ static int testsuite_rootfs_fopen(const struct test *t) char s[100]; int n; - fp = fopen("/lib/modules/a", "r"); + fp = fopen(MODULE_DIRECTORY "/a", "r"); if (fp == NULL) return EXIT_FAILURE;; @@ -89,7 +89,7 @@ static int testsuite_rootfs_open(const struct test *t) char buf[100]; int fd, done; - fd = open("/lib/modules/a", O_RDONLY); + fd = open(MODULE_DIRECTORY "/a", O_RDONLY); if (fd < 0) return EXIT_FAILURE; @@ -121,12 +121,12 @@ static int testsuite_rootfs_stat_access(const struct test *t) { struct stat st; - if (access("/lib/modules/a", F_OK) < 0) { + if (access(MODULE_DIRECTORY "/a", F_OK) < 0) { ERR("access failed: %m\n"); return EXIT_FAILURE; } - if (stat("/lib/modules/a", &st) < 0) { + if (stat(MODULE_DIRECTORY "/a", &st) < 0) { ERR("stat failed: %m\n"); return EXIT_FAILURE; } diff --git a/tools/depmod.c b/tools/depmod.c index 630fef9c8fb0..7f7c4b74d216 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -911,7 +911,7 @@ struct vertex; struct mod { struct kmod_module *kmod; char *path; - const char *relpath; /* path relative to '$ROOT/lib/modules/$VER/' */ + const char *relpath; /* path relative to '$ROOT$MODULE_DIRECTORY/$VER/' */ char *uncrelpath; /* same as relpath but ending in .ko */ struct kmod_list *info_list; struct kmod_list *dep_sym_list; @@ -3024,11 +3024,11 @@ static int do_depmod(int argc, char *argv[]) } cfg.dirnamelen = snprintf(cfg.dirname, PATH_MAX, - "%s/lib/modules/%s", + "%s" MODULE_DIRECTORY "/%s", root ?: "", cfg.kversion); cfg.outdirnamelen = snprintf(cfg.outdirname, PATH_MAX, - "%s/lib/modules/%s", + "%s" MODULE_DIRECTORY "/%s", out_root ?: (root ?: ""), cfg.kversion); if (optind == argc) diff --git a/tools/kmod.pc.in b/tools/kmod.pc.in index 2595980a6b35..97215c8ed48f 100644 --- a/tools/kmod.pc.in +++ b/tools/kmod.pc.in @@ -1,6 +1,7 @@ prefix=@prefix@ sysconfdir=@sysconfdir@ distconfdir=@distconfdir@ +module_directory=@module_directory@ module_compressions=@module_compressions@ module_signatures=@module_signatures@ diff --git a/tools/modinfo.c b/tools/modinfo.c index d0aab200af4e..cacc32dc4c40 100644 --- a/tools/modinfo.c +++ b/tools/modinfo.c @@ -367,7 +367,7 @@ static void help(void) "\t-m, --modname Handle argument as module name instead of alias or filename\n" "\t-F, --field=FIELD Print only provided FIELD\n" "\t-k, --set-version=VERSION Use VERSION instead of `uname -r`\n" - "\t-b, --basedir=DIR Use DIR as filesystem root for /lib/modules\n" + "\t-b, --basedir=DIR Use DIR as filesystem root for " MODULE_DIRECTORY "\n" "\t-V, --version Show version\n" "\t-h, --help Show this help\n", program_invocation_short_name); @@ -462,7 +462,7 @@ static int do_modinfo(int argc, char *argv[]) } kversion = u.release; } - snprintf(dirname_buf, sizeof(dirname_buf), "%s/lib/modules/%s", + snprintf(dirname_buf, sizeof(dirname_buf), "%s" MODULE_DIRECTORY "/%s", root, kversion); dirname = dirname_buf; } diff --git a/tools/modprobe.c b/tools/modprobe.c index e891028349a8..5306bef250da 100644 --- a/tools/modprobe.c +++ b/tools/modprobe.c @@ -142,7 +142,7 @@ static void help(void) "\t-n, --show Same as --dry-run\n" "\t-C, --config=FILE Use FILE instead of default search paths\n" - "\t-d, --dirname=DIR Use DIR as filesystem root for /lib/modules\n" + "\t-d, --dirname=DIR Use DIR as filesystem root for " MODULE_DIRECTORY "\n" "\t-S, --set-version=VERSION Use VERSION instead of `uname -r`\n" "\t-s, --syslog print to syslog, not stderr\n" @@ -999,7 +999,7 @@ static int do_modprobe(int argc, char **orig_argv) kversion = u.release; } snprintf(dirname_buf, sizeof(dirname_buf), - "%s/lib/modules/%s", root, + "%s" MODULE_DIRECTORY "/%s", root, kversion); dirname = dirname_buf; } diff --git a/tools/static-nodes.c b/tools/static-nodes.c index 8d2356da73f3..5ef3743e967b 100644 --- a/tools/static-nodes.c +++ b/tools/static-nodes.c @@ -212,15 +212,15 @@ static int do_static_nodes(int argc, char *argv[]) goto finish; } - snprintf(modules, sizeof(modules), "/lib/modules/%s/modules.devname", kernel.release); + snprintf(modules, sizeof(modules), MODULE_DIRECTORY "/%s/modules.devname", kernel.release); in = fopen(modules, "re"); if (in == NULL) { if (errno == ENOENT) { - fprintf(stderr, "Warning: /lib/modules/%s/modules.devname not found - ignoring\n", + fprintf(stderr, "Warning: " MODULE_DIRECTORY "/%s/modules.devname not found - ignoring\n", kernel.release); ret = EXIT_SUCCESS; } else { - fprintf(stderr, "Error: could not open /lib/modules/%s/modules.devname - %m\n", + fprintf(stderr, "Error: could not open " MODULE_DIRECTORY "/%s/modules.devname - %m\n", kernel.release); ret = EXIT_FAILURE; }