summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/avrdude-fix-libusb.patch256
-rw-r--r--gnu/packages/patches/curl-fix-test172.patch12
-rw-r--r--gnu/packages/patches/flashrom-use-libftdi1.patch70
-rw-r--r--gnu/packages/patches/lm-sensors-hwmon-attrs.patch85
-rw-r--r--gnu/packages/patches/orpheus-cast-errors-and-includes.patch51
-rw-r--r--gnu/packages/patches/texi2html-document-encoding.patch31
-rw-r--r--gnu/packages/patches/texi2html-i18n.patch50
7 files changed, 543 insertions, 12 deletions
diff --git a/gnu/packages/patches/avrdude-fix-libusb.patch b/gnu/packages/patches/avrdude-fix-libusb.patch
new file mode 100644
index 0000000000..13d0eca91c
--- /dev/null
+++ b/gnu/packages/patches/avrdude-fix-libusb.patch
@@ -0,0 +1,256 @@
+Avrdude cannot build with our version of libusb. This patch fixes that.
+See http://savannah.nongnu.org/bugs/?41854
+
+diff --git a/dfu.c b/dfu.c
+index 7d349bc..0f80440 100644
+--- a/dfu.c
++++ b/dfu.c
+@@ -36,13 +36,14 @@
+ 
+ #ifndef HAVE_LIBUSB
+ 
+-int dfu_open(struct dfu_dev *dfu, char *port_name) {
++struct dfu_dev * dfu_open(char *port_spec) {
+   fprintf(stderr, "%s: Error: No USB support in this compile of avrdude\n",
+     progname);
+-  return -1;
++  return NULL;
+ }
+ 
+-int dfu_init(struct dfu_dev *dfu, unsigned short usb_pid) {
++int dfu_init(struct dfu_dev *dfu,
++  unsigned short vid, unsigned short pid) {
+   return -1;
+ }
+ 
+diff --git a/flip1.c b/flip1.c
+index b891d80..0959996 100644
+--- a/flip1.c
++++ b/flip1.c
+@@ -164,6 +164,8 @@ static void flip1_setup(PROGRAMMER * pgm);
+ static void flip1_teardown(PROGRAMMER * pgm);
+ 
+ /* INTERNAL PROGRAMMER FUNCTION PROTOTYPES */
++#ifdef HAVE_LIBUSB
++// The internal ones are made conditional, as they're not defined further down #ifndef HAVE_LIBUSB
+ 
+ static void flip1_show_info(struct flip1 *flip1);
+ 
+@@ -177,6 +179,8 @@ static const char * flip1_mem_unit_str(enum flip1_mem_unit mem_unit);
+ static int flip1_set_mem_page(struct dfu_dev *dfu, unsigned short page_addr);
+ static enum flip1_mem_unit flip1_mem_unit(const char *name);
+ 
++#endif /* HAVE_LIBUSB */
++
+ /* THE INITPGM FUNCTION DEFINITIONS */
+ 
+ void flip1_initpgm(PROGRAMMER *pgm)
+@@ -201,6 +205,7 @@ void flip1_initpgm(PROGRAMMER *pgm)
+   pgm->teardown         = flip1_teardown;
+ }
+ 
++#ifdef HAVE_LIBUSB
+ /* EXPORTED PROGRAMMER FUNCTION DEFINITIONS */
+ 
+ int flip1_open(PROGRAMMER *pgm, char *port_spec)
+@@ -876,3 +881,82 @@ enum flip1_mem_unit flip1_mem_unit(const char *name) {
+     return FLIP1_MEM_UNIT_EEPROM;
+   return FLIP1_MEM_UNIT_UNKNOWN;
+ }
++#else /* HAVE_LIBUSB */
++// Dummy functions
++int flip1_open(PROGRAMMER *pgm, char *port_spec)
++{
++  fprintf(stderr, "%s: Error: No USB support in this compile of avrdude\n",
++    progname);
++  return NULL;
++}
++
++int flip1_initialize(PROGRAMMER* pgm, AVRPART *part)
++{
++  return -1;
++}
++
++void flip1_close(PROGRAMMER* pgm)
++{
++}
++
++void flip1_enable(PROGRAMMER* pgm)
++{
++}
++
++void flip1_disable(PROGRAMMER* pgm)
++{
++}
++
++void flip1_display(PROGRAMMER* pgm, const char *prefix)
++{
++}
++
++int flip1_program_enable(PROGRAMMER* pgm, AVRPART *part)
++{
++  return -1;
++}
++
++int flip1_chip_erase(PROGRAMMER* pgm, AVRPART *part)
++{
++  return -1;
++}
++
++int flip1_read_byte(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
++  unsigned long addr, unsigned char *value)
++{
++  return -1;
++}
++
++int flip1_write_byte(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
++  unsigned long addr, unsigned char value)
++{
++  return -1;
++}
++
++int flip1_paged_load(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
++  unsigned int page_size, unsigned int addr, unsigned int n_bytes)
++{
++  return -1;
++}
++
++int flip1_paged_write(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
++  unsigned int page_size, unsigned int addr, unsigned int n_bytes)
++{
++  return -1;
++}
++
++int flip1_read_sig_bytes(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem)
++{
++  return -1;
++}
++
++void flip1_setup(PROGRAMMER * pgm)
++{
++}
++
++void flip1_teardown(PROGRAMMER * pgm)
++{
++}
++
++
++#endif /* HAVE_LIBUSB */
+\ No newline at end of file
+
+diff --git a/flip2.c b/flip2.c
+index ed8e996..16c4bf8 100644
+--- a/flip2.c
++++ b/flip2.c
+@@ -151,6 +151,8 @@ static void flip2_setup(PROGRAMMER * pgm);
+ static void flip2_teardown(PROGRAMMER * pgm);
+ 
+ /* INTERNAL PROGRAMMER FUNCTION PROTOTYPES */
++#ifdef HAVE_LIBUSB
++// The internal ones are made conditional, as they're not defined further down #ifndef HAVE_LIBUSB
+ 
+ static void flip2_show_info(struct flip2 *flip2);
+ 
+@@ -171,6 +173,8 @@ static const char * flip2_status_str(const struct dfu_status *status);
+ static const char * flip2_mem_unit_str(enum flip2_mem_unit mem_unit);
+ static enum flip2_mem_unit flip2_mem_unit(const char *name);
+ 
++#endif /* HAVE_LIBUSB */
++
+ /* THE INITPGM FUNCTION DEFINITIONS */
+ 
+ void flip2_initpgm(PROGRAMMER *pgm)
+@@ -195,6 +199,7 @@ void flip2_initpgm(PROGRAMMER *pgm)
+   pgm->teardown         = flip2_teardown;
+ }
+ 
++#ifdef HAVE_LIBUSB
+ /* EXPORTED PROGRAMMER FUNCTION DEFINITIONS */
+ 
+ int flip2_open(PROGRAMMER *pgm, char *port_spec)
+@@ -922,3 +927,85 @@ enum flip2_mem_unit flip2_mem_unit(const char *name) {
+     return FLIP2_MEM_UNIT_SIGNATURE;
+   return FLIP2_MEM_UNIT_UNKNOWN;
+ }
++
++#else /* HAVE_LIBUSB */
++
++/* EXPORTED PROGRAMMER FUNCTION DEFINITIONS */
++
++int flip2_open(PROGRAMMER *pgm, char *port_spec)
++{
++  fprintf(stderr, "%s: Error: No USB support in this compile of avrdude\n",
++    progname);
++  return NULL;
++}
++
++int flip2_initialize(PROGRAMMER* pgm, AVRPART *part)
++{
++  return -1;
++}
++
++void flip2_close(PROGRAMMER* pgm)
++{
++}
++
++void flip2_enable(PROGRAMMER* pgm)
++{
++}
++
++void flip2_disable(PROGRAMMER* pgm)
++{
++}
++
++void flip2_display(PROGRAMMER* pgm, const char *prefix)
++{
++}
++
++int flip2_program_enable(PROGRAMMER* pgm, AVRPART *part)
++{
++  return -1;
++}
++
++int flip2_chip_erase(PROGRAMMER* pgm, AVRPART *part)
++{
++  return -1;
++}
++
++int flip2_read_byte(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
++  unsigned long addr, unsigned char *value)
++{
++  return -1;
++}
++
++int flip2_write_byte(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
++  unsigned long addr, unsigned char value)
++{
++  return -1;
++}
++
++int flip2_paged_load(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
++  unsigned int page_size, unsigned int addr, unsigned int n_bytes)
++{
++  return -1;
++}
++
++int flip2_paged_write(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
++  unsigned int page_size, unsigned int addr, unsigned int n_bytes)
++{
++  return -1;
++}
++
++int flip2_read_sig_bytes(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem)
++{
++  return -1;
++}
++
++void flip2_setup(PROGRAMMER * pgm)
++{
++}
++
++void flip2_teardown(PROGRAMMER * pgm)
++{
++}
++
++
++#endif /* HAVE_LIBUSB */
diff --git a/gnu/packages/patches/curl-fix-test172.patch b/gnu/packages/patches/curl-fix-test172.patch
deleted file mode 100644
index cc2c2705e7..0000000000
--- a/gnu/packages/patches/curl-fix-test172.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/tests/data/test172 b/tests/data/test172
-index b3efae9..3d53418 100644
---- a/tests/data/test172
-+++ b/tests/data/test172
-@@ -36,7 +36,7 @@ http://%HOSTIP:%HTTPPORT/we/want/172 -b log/jar172.txt -b "tool=curl; name=fool"
- 
- .%HOSTIP	TRUE	/silly/	FALSE	0	ismatch	this
- .%HOSTIP	TRUE	/	FALSE	0	partmatch	present
--%HOSTIP	FALSE	/we/want/	FALSE	1391252187	nodomain	value
-+%HOSTIP	FALSE	/we/want/	FALSE	2139150993	nodomain	value
- </file>
- </client>
diff --git a/gnu/packages/patches/flashrom-use-libftdi1.patch b/gnu/packages/patches/flashrom-use-libftdi1.patch
new file mode 100644
index 0000000000..a6051df30a
--- /dev/null
+++ b/gnu/packages/patches/flashrom-use-libftdi1.patch
@@ -0,0 +1,70 @@
+Update to libftdi-1.0 is advertised as a drop-in replacement for libftdi,
+running on top of libusb-1.0. This also removes indirect dependency to
+libusb-0.1.
+
+Patch by Kyösti Mälkki <kyosti.malkki@gmail.com>.
+See <http://patchwork.coreboot.org/patch/3904/>.
+
+--- flashrom/Makefile.orig	2013-08-13 18:00:00.000000000 -0400
++++ flashrom/Makefile	2014-08-05 03:10:40.217145375 -0400
+@@ -492,19 +492,21 @@
+ ifeq ($(CONFIG_FT2232_SPI), yes)
+ # This is a totally ugly hack.
+ FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'CONFIG_FT2232_SPI=1'")
+-NEED_FTDI := yes
++NEED_FTDI1 := yes
+ PROGRAMMER_OBJS += ft2232_spi.o
+ endif
+ 
+ ifeq ($(CONFIG_USBBLASTER_SPI), yes)
+ # This is a totally ugly hack.
+ FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'CONFIG_USBBLASTER_SPI=1'")
+-NEED_FTDI := yes
++NEED_LIBUSB1 := yes
++NEED_FTDI1 := yes
+ PROGRAMMER_OBJS += usbblaster_spi.o
+ endif
+ 
+-ifeq ($(NEED_FTDI), yes)
+-FTDILIBS := $(shell pkg-config --libs libftdi 2>/dev/null || printf "%s" "-lftdi -lusb")
++ifeq ($(NEED_FTDI1), yes)
++FTDILIBS := $(shell pkg-config --libs libftdi1 2>/dev/null || printf "%s" "-lftdi1 -lusb-1.0")
++FEATURE_CFLAGS += $(shell pkg-config --cflags libftdi1 2>/dev/null)
+ FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FT232H := yes" .features && printf "%s" "-D'HAVE_FT232H=1'")
+ FEATURE_LIBS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "$(FTDILIBS)")
+ # We can't set NEED_USB here because that would transform libftdi auto-enabling
+@@ -781,6 +783,7 @@
+ endif
+ 
+ define FTDI_TEST
++#include <stddef.h>
+ #include <ftdi.h>
+ struct ftdi_context *ftdic = NULL;
+ int main(int argc, char **argv)
+@@ -793,6 +796,7 @@
+ export FTDI_TEST
+ 
+ define FTDI_232H_TEST
++#include <stddef.h>
+ #include <ftdi.h>
+ enum ftdi_chip_type type = TYPE_232H;
+ endef
+@@ -826,15 +830,15 @@
+ 
+ features: compiler
+ 	@echo "FEATURES := yes" > .features.tmp
+-ifeq ($(NEED_FTDI), yes)
++ifeq ($(NEED_FTDI1), yes)
+ 	@printf "Checking for FTDI support... "
+ 	@echo "$$FTDI_TEST" > .featuretest.c
+-	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX) $(FTDILIBS) $(LIBS) >/dev/null 2>&1 &&	\
++	@$(CC) $(CPPFLAGS) $(CFLAGS) $(FEATURE_CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX) $(FTDILIBS) $(LIBS) >/dev/null 2>&1 &&	\
+ 		( echo "found."; echo "FTDISUPPORT := yes" >> .features.tmp ) ||	\
+ 		( echo "not found."; echo "FTDISUPPORT := no" >> .features.tmp )
+ 	@printf "Checking for FT232H support in libftdi... "
+ 	@echo "$$FTDI_232H_TEST" >> .featuretest.c
+-	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX) $(FTDILIBS) $(LIBS) >/dev/null 2>&1 &&	\
++	@$(CC) $(CPPFLAGS) $(CFLAGS) $(FEATURE_CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX) $(FTDILIBS) $(LIBS) >/dev/null 2>&1 &&	\
+ 		( echo "found."; echo "FT232H := yes" >> .features.tmp ) ||	\
+ 		( echo "not found."; echo "FT232H := no" >> .features.tmp )
+ endif
diff --git a/gnu/packages/patches/lm-sensors-hwmon-attrs.patch b/gnu/packages/patches/lm-sensors-hwmon-attrs.patch
new file mode 100644
index 0000000000..12979e7bd1
--- /dev/null
+++ b/gnu/packages/patches/lm-sensors-hwmon-attrs.patch
@@ -0,0 +1,85 @@
+fancontrol: Deal with moving hwmon attributes
+
+Several kernel drivers have already moved their attributes from the
+hardware device to the hwmon class device, and others will follow.
+Teach fancontrol about this possibility and let it adjust the attribute
+paths transparently.
+
+Patch by Jean Delvare <khali@linux-fr.org>.
+See <http://www.lm-sensors.org/changeset/6216>.
+
+--- lm-sensors/prog/pwm/fancontrol	(revision 6172)
++++ lm-sensors/prog/pwm/fancontrol	(revision 6216)
+@@ -207,4 +207,63 @@
+ }
+ 
++function FixupDeviceFiles
++{
++	local DEVICE="$1"
++	local fcvcount pwmo tsen fan
++
++	let fcvcount=0
++	while (( $fcvcount < ${#AFCPWM[@]} )) # go through all pwm outputs
++	do
++		pwmo=${AFCPWM[$fcvcount]}
++		AFCPWM[$fcvcount]=${pwmo//$DEVICE\/device/$DEVICE}
++		if [ "${AFCPWM[$fcvcount]}" != "$pwmo" ]
++		then
++			echo "Adjusing $pwmo -> ${AFCPWM[$fcvcount]}"
++		fi
++		let fcvcount=$fcvcount+1
++	done
++
++	let fcvcount=0
++	while (( $fcvcount < ${#AFCTEMP[@]} )) # go through all temp inputs
++	do
++		tsen=${AFCTEMP[$fcvcount]}
++		AFCTEMP[$fcvcount]=${tsen//$DEVICE\/device/$DEVICE}
++		if [ "${AFCTEMP[$fcvcount]}" != "$tsen" ]
++		then
++			echo "Adjusing $tsen -> ${AFCTEMP[$fcvcount]}"
++		fi
++		let fcvcount=$fcvcount+1
++	done
++
++	let fcvcount=0
++	while (( $fcvcount < ${#AFCFAN[@]} )) # go through all fan inputs
++	do
++		fan=${AFCFAN[$fcvcount]}
++		AFCFAN[$fcvcount]=${fan//$DEVICE\/device/$DEVICE}
++		if [ "${AFCFAN[$fcvcount]}" != "$fan" ]
++		then
++			echo "Adjusing $fan -> ${AFCFAN[$fcvcount]}"
++		fi
++		let fcvcount=$fcvcount+1
++	done
++}
++
++# Some drivers moved their attributes from hard device to class device
++function FixupFiles
++{
++	local DEVPATH="$1"
++	local entry device
++
++	for entry in $DEVPATH
++	do
++		device=`echo "$entry" | sed -e 's/=[^=]*$//'`
++
++		if [ -e "$device/name" ]
++		then
++			FixupDeviceFiles "$device"
++		fi
++	done
++}
++
+ # Check that all referenced sysfs files exist
+ function CheckFiles
+@@ -306,4 +365,8 @@
+ 	echo "Configuration appears to be outdated, please run pwmconfig again" >&2
+ 	exit 1
++fi
++if [ "$DIR" = "/sys/class/hwmon" ]
++then
++	FixupFiles "$DEVPATH"
+ fi
+ CheckFiles || exit 1
diff --git a/gnu/packages/patches/orpheus-cast-errors-and-includes.patch b/gnu/packages/patches/orpheus-cast-errors-and-includes.patch
new file mode 100644
index 0000000000..159f242f5c
--- /dev/null
+++ b/gnu/packages/patches/orpheus-cast-errors-and-includes.patch
@@ -0,0 +1,51 @@
+The 'intcompare' definition was causing a "cast from 'void*' to 'int' loses
+precision [-fpermissive]" error.  It isn't used anywhere, so simply remove it.
+Same with 'findint' in texteditor.cc.
+
+Fix other "cast from ‘void*’ to ‘int’ loses precision" errors.
+
+--- a/kkstrtext-0.1/kkstrtext.cc	2005-01-31 18:13:24.000000000 -0600
++++ b/kkstrtext-0.1/kkstrtext.cc	2014-07-24 00:25:07.149305476 -0500
+@@ -430,10 +430,6 @@
+     }
+ }
+ 
+-int intcompare(void *s1, void *s2) {
+-    return (int) s1 != (int) s2;
+-}
+-
+ string i2str(int i) {
+     char buf[64];
+     sprintf(buf, "%d", i);
+@@ -885,7 +881,7 @@
+ #ifdef HAVE_ICONV
+     iconv_t cd = iconv_open(tocs.c_str(), fromcs.c_str());
+ 
+-    if(((int) cd) != -1) {
++    if(cd != (iconv_t) -1) {
+ 	string r, text(atext);
+ 	size_t inleft, outleft, soutleft;
+ 	char *inbuf, *outbuf, *sinbuf, *soutbuf;
+--- a/kkconsui-0.1/src/texteditor.cc	2003-09-09 16:51:33.000000000 -0500
++++ b/kkconsui-0.1/src/texteditor.cc	2014-07-24 00:33:20.093279060 -0500
+@@ -1939,10 +1939,6 @@
+     if(ur) delete ur;
+ }
+ 
+-int texteditor::findint(void *p1, void *p2) {
+-    return *(int *) p1 != (int) p2;
+-}
+-
+ int texteditor::findhighline(void *p1, void *p2) {
+     return *(int *) p1 != ((highline *) p2)->line;
+ }
+--- a/src/streamtrack.cc	2006-05-11 12:45:20.000000000 -0500
++++ b/src/streamtrack.cc	2014-07-24 00:38:10.797263482 -0500
+@@ -34,6 +34,7 @@
+ #include <sys/wait.h>
+ #include <sys/stat.h>
+ #include <signal.h>
++#include <unistd.h>
+ 
+ #include <algorithm>
+ 
diff --git a/gnu/packages/patches/texi2html-document-encoding.patch b/gnu/packages/patches/texi2html-document-encoding.patch
new file mode 100644
index 0000000000..1469b67fa6
--- /dev/null
+++ b/gnu/packages/patches/texi2html-document-encoding.patch
@@ -0,0 +1,31 @@
+Patch derived from discussion at https://savannah.nongnu.org/bugs/?37503
+
+--- texi2html-5.0/texi2html.pl	2010-06-30 17:01:27.000000000 -0500
++++ texi2html-5.0/texi2html.pl	2014-07-09 01:17:57.062990582 -0500
+@@ -2589,7 +2589,12 @@
+     my $state = shift;
+ 
+     # FIXME this should be done only once, for @documentencoding
+-    my $encoding = lc(Texi2HTML::Config::get_conf('DOCUMENT_ENCODING'));
++    my $encoding;
++    my $input_encoding = Texi2HTML::Config::get_conf('documentencoding');
++    if (defined($input_encoding))
++    {
++      $encoding = lc($input_encoding);
++    }
+     if (defined($encoding) and $encoding ne '' and exists($Texi2HTML::Config::t2h_encoding_aliases{$encoding}))
+     {
+        $encoding = $Texi2HTML::Config::t2h_encoding_aliases{$encoding};
+
+Fix failures in test/encodings.
+
+--- texi2html-5.0/texi2html.pl	2014-07-09 01:22:06.000000000 -0500
++++ texi2html-5.0/texi2html.pl	2014-07-10 23:23:47.182097602 -0500
+@@ -53,6 +53,7 @@
+ # for translations
+ #use encoding 'utf8';
+ #use utf8;
++binmode STDERR, ':encoding(utf8)';
+ 
+ #
+ # According to
diff --git a/gnu/packages/patches/texi2html-i18n.patch b/gnu/packages/patches/texi2html-i18n.patch
new file mode 100644
index 0000000000..eba903d068
--- /dev/null
+++ b/gnu/packages/patches/texi2html-i18n.patch
@@ -0,0 +1,50 @@
+Do not try to regenerate po files; use the reference files that are packaged
+in the tarball.
+
+--- a/Makefile.in	2010-06-30 17:02:28.000000000 -0500
++++ b/Makefile.in	2014-08-16 00:22:38.447050269 -0500
+@@ -1022,15 +1022,7 @@
+ 
+ i18n/en.thl i18n/: $(po_document_dir)/po_document/$(PACKAGE)_document.pot
+ 	$(MKDIR_P) i18n
+-	if test '$(USE_NLS)' = 'yes'; then \
+-	  for file in "$(srcdir)/$(po_document_dir)/po_document/"*".po"; do lang=`basename "$$file" .po | sed 's/\..*//'`; \
+-		test "$$lang" = 'en' && continue; \
+-		msgexec -i "$$file" "$(srcdir)/gettext_to_separated.pl" | "$(srcdir)/separated_to_hash.pl" $$lang > i18n/$$lang.thl; \
+-	  done; \
+-	  msgexec -i $< "$(srcdir)/gettext_to_separated.pl" | "$(srcdir)/separated_to_hash.pl" en > i18n/en.thl; \
+-	else \
+-	  cp -p i18n_ref/*.thl i18n; \
+-	fi
++	cp -p i18n_ref/*.thl i18n
+ 
+ i18n_ref:
+ 	$(MKDIR_P) i18n_ref
+
+Have install-sh install .mo files locally for in-source tests, so that msgfmt
+is not needed.
+
+--- a/Makefile.in	2010-06-30 17:02:28.000000000 -0500
++++ b/Makefile.in	2014-08-16 00:22:38.447050269 -0500
+@@ -1052,19 +1044,8 @@
+ # update the po files, and install locally the .mo files for the in
+ # source tests
+ check-local: makeinfo.pl texi2any.pl
+-	if test '$(USE_NLS)' = 'yes'; then \
+-	  cd $(po_document_dir)/po_document && $(MAKE) $(AM_MAKEFLAGS) update-po; \
+-	fi
+-	rm -rf locales
+-	for file in "$(srcdir)/$(po_document_dir)/po_document/"*.po; do \
+-	  basename=`basename "$$file" .po` ; \
+-	  $(MKDIR_P) "locales/$$basename/LC_MESSAGES/" ; \
+-	  if test '$(USE_NLS)' = 'yes'; then \
+-	    $(MSGFMT) "$$file" -o "locales/$$basename/LC_MESSAGES/texi2html_document.mo" ; \
+-	  else \
+-	    cp -p "$(srcdir)/$(po_document_dir)/po_document/$$basename.mo" "locales/$$basename/LC_MESSAGES/texi2html_document.mo" ; \
+-	  fi; \
+-	done
++	$(MAKE) -C po_document localedir="$(abs_srcdir)/locales" install-data
++	$(MAKE) -C po_messages localedir="$(abs_srcdir)/locales" install-data
+ 
+ makeinfo.pl texi2any.pl:
+ 	-$(LN_S) $(srcdir)/texi2html.pl $@