From: Jonathan Nieder <jrnieder@gmail.com>
To: Martin Mares <mj@ucw.cz>
Cc: git@vger.kernel.org, "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: gitweb: local configuration not found
Date: Wed, 5 Dec 2018 10:44:04 -0800 [thread overview]
Message-ID: <20181205184404.GC246451@google.com> (raw)
In-Reply-To: <154401401074.29584.11169979442731329694.reportbug@gimli.ms.mff.cuni.cz>
Martin Mares wrote[1]:
> After upgrade to Stretch, gitweb no longer finds the configuration file
> "gitweb_config.perl" in the current directory. However, "man gitweb" still
> mentions this as one of the possible locations of the config file (and
> indeed a useful one when using multiple instances of gitweb).
>
> It was probably broken by Perl dropping "." from the default search path
> for security reasons.
Indeed, perldelta(1) tells me that in 5.24.1 (and 5.26, etc),
Core modules and tools no longer search "." for optional modules
gitweb.perl contains
sub read_config_file {
my $filename = shift;
return unless defined $filename;
# die if there are errors parsing config file
if (-e $filename) {
do $filename;
which implies an @INC search but it is silly --- as the "-e" test
illustrates, this never intended to search @INC.
Documentation says "If you are absolutely certain that you want your
script to load and execute a file from the current directory, then use
a ./ prefix". We can do that, like so:
diff --git i/gitweb/Makefile w/gitweb/Makefile
index cd194d057f..3160b6cc5d 100644
--- i/gitweb/Makefile
+++ w/gitweb/Makefile
@@ -18,7 +18,7 @@ RM ?= rm -f
INSTALL ?= install
# default configuration for gitweb
-GITWEB_CONFIG = gitweb_config.perl
+GITWEB_CONFIG = ./gitweb_config.perl
GITWEB_CONFIG_SYSTEM = /etc/gitweb.conf
GITWEB_CONFIG_COMMON = /etc/gitweb-common.conf
GITWEB_HOME_LINK_STR = projects
but that does not help if someone overrides GITWEB_CONFIG, and besides,
it would be nicer to avoid the possibility of an @INC search altogether.
Another alternative would be to use
local @INC = ('.');
Would that be better?
Advice from someone more versed than I am in perl would be very welcome
(hence the cc to Ævar).
Thanks for reporting and hope that helps,
Jonathan
[1] https://bugs.debian.org/915632
next parent reply other threads:[~2018-12-05 18:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <154401401074.29584.11169979442731329694.reportbug@gimli.ms.mff.cuni.cz>
2018-12-05 18:44 ` Jonathan Nieder [this message]
2018-12-05 19:11 ` gitweb: local configuration not found Ævar Arnfjörð Bjarmason
2018-12-06 0:56 ` Junio C Hamano
2018-12-06 15:02 ` Martin Mareš
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181205184404.GC246451@google.com \
--to=jrnieder@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=mj@ucw.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.