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