From patchwork Fri Nov 10 08:17:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13452203 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8DEC6748B for ; Fri, 10 Nov 2023 08:17:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="xFs4fchU"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="W6NPeuRU" Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com [64.147.123.21]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FD3393C7 for ; Fri, 10 Nov 2023 00:17:05 -0800 (PST) Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 4C47C3200AC9; Fri, 10 Nov 2023 03:17:04 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Fri, 10 Nov 2023 03:17:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; t=1699604223; x=1699690623; bh=UB BW1RVm7DKir5nZlo1w/0HmmlYWjF+2GS7rDAEPYfA=; b=xFs4fchU2LLSqh2Fdz hGkv4OpUQj/yeG4oIPv9IvPeSNVIOpNUxlR6pc9606RS5JLEp4cljAvbrGIhDGhj WLdEBgMPwu5tml9wiK1GXSToyYoYkty5NXD3q0CahF0ejYFNddhMVmfrBsGvb772 RuwU2VTaCH+UYyiA8/KMMl96Pot44phifr69xYzoL4I6qPFHNQ3sWo9kb2fiyLZK bnSiNmzC1SMnXf+kyeULymxU/i5202rwvKIqca2jQhbgozZfUpXiKQggu8E4MN7J vialubzMz1tVhgSqw1jKgmwhnM6MKIODMplJPiP7WVk646ccoZgdVtRNZxK4TYgw dU9A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; t=1699604223; x=1699690623; bh=UBBW1RVm7DKir 5nZlo1w/0HmmlYWjF+2GS7rDAEPYfA=; b=W6NPeuRUKuzQUf24Xm7MDDH8Nn+xg UQN9u+JZdYla4Npk3/8Yrl5LT0aLbxR9nyIR5q9CP/YyOyX5JO4T/h5flcO8K12o GPb0mvegYvuIWLnJ16VqtJ4cWtj3hC9HmrcD0LGAZtATaAXgK/joJ+o/4hV/+LxT 7Z6vLXYUpKmufrbnNxP4dTGvVNv2MOcFXe9uuU8r2840sRo7wULOWh4adj78V/IQ kPepm4xMZwaDkgdWFfAvE05hEuPAMll8t5opTPRBsWVD1CLoSzNJYMSnNyz7qxX7 qTLbge5PMvUsHijvRt1lbul/YtMSOGd4ha82dH/R48XjYjiW2GMsvZHqA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedruddvvddgudduhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepfffhvfevuffkfhggtggujgesgh dtreertddtvdenucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhs sehpkhhsrdhimheqnecuggftrfgrthhtvghrnhepvdehteeggfevueevhedtleelveeigf efieduiefgvdfffeegvdeitefgteevveeunecuffhomhgrihhnpehhthhtphgurdhshhen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpshesph hkshdrihhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 10 Nov 2023 03:17:02 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 0ae3279f (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 10 Nov 2023 08:16:33 +0000 (UTC) Date: Fri, 10 Nov 2023 09:17:00 +0100 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Jeff King , Junio C Hamano Subject: [PATCH v4 1/3] t/lib-httpd: dynamically detect httpd and modules path Message-ID: <41b9dada2e0b2e713328e6a4d31f713a2d3ffa38.1699596457.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: In order to set up the Apache httpd server, we need to locate both the httpd binary and its default module path. This is done with a hardcoded list of locations that we scan. While this works okayish with distros that more-or-less follow the Filesystem Hierarchy Standard, it falls apart on others like NixOS that don't. While it is possible to specify these paths via `LIB_HTTPD_PATH` and `LIB_HTTPD_MODULE_PATH`, it is not a nice experience for the developer to figure out how to set those up. And in fact we can do better by dynamically detecting both httpd and its module path at runtime: - The httpd binary can be located via PATH. - The module directory can (in many cases) be derived via the `HTTPD_ROOT` compile-time variable. Amend the code to do so. Note that the new runtime-detected paths will only be used as a fallback in case none of the hardcoded paths are usable. For the PATH lookup this is because httpd is typically installed into "/usr/sbin", which is often not included in the user's PATH variable. And the module path detection relies on a configured httpd installation and may thus not work in all cases, either. Signed-off-by: Patrick Steinhardt --- t/lib-httpd.sh | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh index 9ea74927c40..f69d0da51d1 100644 --- a/t/lib-httpd.sh +++ b/t/lib-httpd.sh @@ -55,22 +55,31 @@ fi HTTPD_PARA="" -for DEFAULT_HTTPD_PATH in '/usr/sbin/httpd' '/usr/sbin/apache2' +for DEFAULT_HTTPD_PATH in '/usr/sbin/httpd' \ + '/usr/sbin/apache2' \ + "$(command -v httpd)" \ + "$(command -v apache2)" do - if test -x "$DEFAULT_HTTPD_PATH" + if test -n "$DEFAULT_HTTPD_PATH" && test -x "$DEFAULT_HTTPD_PATH" then break fi done +if test -x "$DEFAULT_HTTPD_PATH" +then + DETECTED_HTTPD_ROOT="$("$DEFAULT_HTTPD_PATH" -V | sed -n 's/^ -D HTTPD_ROOT="\(.*\)"$/\1/p')" +fi + for DEFAULT_HTTPD_MODULE_PATH in '/usr/libexec/apache2' \ '/usr/lib/apache2/modules' \ '/usr/lib64/httpd/modules' \ '/usr/lib/httpd/modules' \ '/usr/libexec/httpd' \ - '/usr/lib/apache2' + '/usr/lib/apache2' \ + "${DETECTED_HTTPD_ROOT:+${DETECTED_HTTPD_ROOT}/modules}" do - if test -d "$DEFAULT_HTTPD_MODULE_PATH" + if test -n "$DEFAULT_HTTPD_MODULE_PATH" && test -d "$DEFAULT_HTTPD_MODULE_PATH" then break fi From patchwork Fri Nov 10 08:17:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13452205 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B30D79FF for ; Fri, 10 Nov 2023 08:17:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="buvqq3xs"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="F3mD8wWc" Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com [64.147.123.21]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27AB693C4 for ; Fri, 10 Nov 2023 00:17:09 -0800 (PST) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 70BC13200A83; Fri, 10 Nov 2023 03:17:08 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Fri, 10 Nov 2023 03:17:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; t=1699604227; x=1699690627; bh=7N Zc08l3uZvvuvd30pAEjU81YOg6+gul6Yv/JXF6DIQ=; b=buvqq3xsOcCOyMlnXu A15CdNX2CJzudbg9hgjd5CoYtZBsf3u46yCT5yXSRwX0VBcdlxep12E+rgZcPL6k zLFZPwdYDji9kMWNhHaGvRxWOnHdtvmcrq700UQCZzBfS/6jaoOtTRI8tshviPz8 +K+qqPnDhD4/VVkj1+QMPHjNEwxO/yn7sph+7a5mY4IGB7ABYGhcoQXMOW8e0vXC rwk0i0ZtYMh999D+AIach+iw3PB08gHYraaXhGrt0cb5/Q5ZBo/K4fS+lEJ5TfuD 82EQdDnot7eeId3Q8lxBvkZglHv292xUIpz64spS0vWcYBblBpid7I7qYmWsVMSc dPVQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; t=1699604227; x=1699690627; bh=7NZc08l3uZvvu vd30pAEjU81YOg6+gul6Yv/JXF6DIQ=; b=F3mD8wWcM85/cl0I3sadnsAbGtnFY 5UvfS0ItUMVyQe5ulNC/HX6BcfqSUUVMBQKmObaPjF1c0GOBpjD2GRKoRd1fN+Ij FO08zuhwRcQizWTKAKuh6Ap4U85i5iOM56ZIs1P7YEG3aMnYPNlfO5VGAzVtq42o coEpcgCEqvu4FzGJei6/VdVAT/u1WVE2+XD/XmURkjfaAeB00OtWniuDLVHAwdme XQe+PDIBReN07yZPTble7LoZZ9GkDpXri/J/G250Y+F/MW5agevLofEKq6jReVO7 /A2932c3RkrEFhNsjffxy+QYozexB5iZQQBZ/4HdzoQSbebkXMCrG2Jnw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedruddvvddgudduhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepfffhvfevuffkfhggtggujgesgh dtreertddtvdenucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhs sehpkhhsrdhimheqnecuggftrfgrthhtvghrnhepffekuddvgeekvdffjeffieeuuedtvd ejgeeujedugefftdfghfeuteeivdetieevnecuffhomhgrihhnpegrphgrtghhvgdrohhr ghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpsh esphhkshdrihhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 10 Nov 2023 03:17:06 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id b2d92871 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 10 Nov 2023 08:16:37 +0000 (UTC) Date: Fri, 10 Nov 2023 09:17:04 +0100 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Jeff King , Junio C Hamano Subject: [PATCH v4 2/3] t/lib-httpd: stop using legacy crypt(3) for authentication Message-ID: <7d28c32feaaadb411f4d2b0f37b38acdab9e4a58.1699596457.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: When setting up httpd for our tests, we also install a passwd and proxy-passwd file that contain the test user's credentials. These credentials currently use crypt(3) as the password encryption schema. This schema can be considered deprecated nowadays as it is not safe anymore. Quoting Apache httpd's documentation [1]: > Unix only. Uses the traditional Unix crypt(3) function with a > randomly-generated 32-bit salt (only 12 bits used) and the first 8 > characters of the password. Insecure. This is starting to cause issues in modern Linux distributions. glibc has deprecated its libcrypt library that used to provide crypt(3) in favor of the libxcrypt library. This newer replacement provides a compile time switch to disable insecure password encryption schemata, which causes crypt(3) to always return `EINVAL`. The end result is that httpd tests that exercise authentication will fail on distros that use libxcrypt without these insecure encryption schematas. Regenerate the passwd files to instead use the default password encryption schema, which is md5. While it feels kind of funny that an MD5-based encryption schema should be more secure than anything else, it is the current default and supported by all platforms. Furthermore, it really doesn't matter all that much given that these files are only used for testing purposes anyway. [1]: https://httpd.apache.org/docs/2.4/misc/password_encryptions.html Signed-off-by: Patrick Steinhardt --- t/lib-httpd/passwd | 2 +- t/lib-httpd/proxy-passwd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/t/lib-httpd/passwd b/t/lib-httpd/passwd index 99a34d64874..d9c122f3482 100644 --- a/t/lib-httpd/passwd +++ b/t/lib-httpd/passwd @@ -1 +1 @@ -user@host:xb4E8pqD81KQs +user@host:$apr1$LGPmCZWj$9vxEwj5Z5GzQLBMxp3mCx1 diff --git a/t/lib-httpd/proxy-passwd b/t/lib-httpd/proxy-passwd index 77c25138e07..2ad7705d9a3 100644 --- a/t/lib-httpd/proxy-passwd +++ b/t/lib-httpd/proxy-passwd @@ -1 +1 @@ -proxuser:2x7tAukjAED5M +proxuser:$apr1$RxS6MLkD$DYsqQdflheq4GPNxzJpx5. From patchwork Fri Nov 10 08:17:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13452206 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F3EB79FA for ; Fri, 10 Nov 2023 08:17:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="VYlA2rkV"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="P0cwOsuJ" Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com [64.147.123.21]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BFE4B93C4 for ; Fri, 10 Nov 2023 00:17:13 -0800 (PST) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 0DEA73200AA4; Fri, 10 Nov 2023 03:17:12 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Fri, 10 Nov 2023 03:17:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; t=1699604232; x=1699690632; bh=Es CnNYWyENUfXoNxb62788jHYjZSmBUMl1evJiTXje8=; b=VYlA2rkVp+r09TfWWW Nczbx+Zxrove8jdOW6tmJRYk5t7GDwetOrK0X8a9oZ5Nm4ldNeP0Yw2V/uAh7a7/ J16A2P+8X36dSdfg2CldjGoSGgcQ7LV4fTRHjJCayv2csgfu9wGaXtEJFqH/2byZ 0rudKe5kcWY/7mAvJ61FO739BPlGDRzP7QYHyfb7fF9ll+YiZzdaIrKWHJEoOPbV Nj0LSzvy+c7VkfnJoxs/vN73nYuhCw2kW1SftGCunsSnBWn96nXhP8FFd+Fq/Ike Nxf5RBOS710Mkcz0JlL/h2Yjfb3nlIa6ZuOE0dhoDXxfcBbCAonNJ+z2SCBH0ZwX 8vOA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; t=1699604232; x=1699690632; bh=EsCnNYWyENUfX oNxb62788jHYjZSmBUMl1evJiTXje8=; b=P0cwOsuJ6UduZNQCJEHfxZQphGmiq xpFt3TjaJ+UVj/j8HRmmYTen2z+IAe79jPz2lsBqH9L9X0eDA9aoRwQPv4q99QI6 tO3MF9OrqkynJnphTiGBn821fvqJK5fNyGln8q+Gov8Ew2vPVf3S7zbgYGjsJFV0 GPC7QwPQscHxhySg37bTeebKWvtVVE4i/Do4hx4+ErP6eAyE8YXxF/hplAHNmyUo jjgx5zI7F7qZQxUnCHryZClbNjGnME3UQtobW1UuaAEqPfU1ha5t8Q1R0s6hetUK zDtVSe/gAfL5T/f5LFfsv/4P+Ae5O5/s8Rl5k8aG25bLbCGg43LJBXy9g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedruddvvddgudduhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepfffhvfevuffkfhggtggujgesgh dtreertddtvdenucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhs sehpkhhsrdhimheqnecuggftrfgrthhtvghrnhepueektdevtdffveeljeetgfehheeige ekleduvdeffeeghefgledttdehjeelffetnecuvehluhhsthgvrhfuihiivgeptdenucfr rghrrghmpehmrghilhhfrhhomhepphhssehpkhhsrdhimh X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 10 Nov 2023 03:17:11 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id eb221fae (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 10 Nov 2023 08:16:41 +0000 (UTC) Date: Fri, 10 Nov 2023 09:17:09 +0100 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Jeff King , Junio C Hamano Subject: [PATCH v4 3/3] t9164: fix inability to find basename(1) in Subversion hooks Message-ID: <6a7773aadba4fec5daa1e215a50ab122515ea456.1699596457.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Hooks executed by Subversion are spawned with an empty environment. By default, not even variables like PATH will be propagated to them. In order to ensure that we're still able to find required executables, we thus write the current PATH variable into the hook script itself and then re-export it in t9164. This happens too late in the script though, as we already tried to execute the basename(1) utility before exporting the PATH variable. This tends to work on most platforms as the fallback value of PATH for Bash (see `getconf PATH`) is likely to contain this binary. But on more exotic platforms like NixOS this is not the case, and thus the test fails. While we could work around this issue by simply setting PATH earlier, it feels fragile to inject a user-controlled value into the script and have the shell interpret it. Instead, we can refactor the hook setup to write a `hooks-env` file that configures PATH for us. Like this, Subversion will know to set up the environment as expected for all hooks. Signed-off-by: Patrick Steinhardt --- t/t9164-git-svn-dcommit-concurrent.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/t/t9164-git-svn-dcommit-concurrent.sh b/t/t9164-git-svn-dcommit-concurrent.sh index c8e6c0733f4..d1dec89c3b7 100755 --- a/t/t9164-git-svn-dcommit-concurrent.sh +++ b/t/t9164-git-svn-dcommit-concurrent.sh @@ -46,6 +46,14 @@ setup_hook() "passed to setup_hook" >&2 ; return 1; } echo "cnt=$skip_revs" > "$hook_type-counter" rm -f "$rawsvnrepo/hooks/"*-commit # drop previous hooks + + # Subversion hooks run with an empty environment by default. We thus + # need to propagate PATH so that we can find executables. + cat >"$rawsvnrepo/conf/hooks-env" <<-EOF + [default] + PATH = ${PATH} + EOF + hook="$rawsvnrepo/hooks/$hook_type" cat > "$hook" <<- 'EOF1' #!/bin/sh @@ -63,7 +71,6 @@ EOF1 if [ "$hook_type" = "pre-commit" ]; then echo "echo 'commit disallowed' >&2; exit 1" >>"$hook" else - echo "PATH=\"$PATH\"; export PATH" >>"$hook" echo "svnconf=\"$svnconf\"" >>"$hook" cat >>"$hook" <<- 'EOF2' cd work-auto-commits.svn