Просмотр исходного кода

test iconv as possible fix for file types

sparklyballs 10 лет назад
Родитель
Сommit
644788414b
2 измененных файлов с 64 добавлено и 0 удалено
  1. 18 0
      Dockerfile
  2. 46 0
      patches/libiconv-1-fixes.patch

+ 18 - 0
Dockerfile

@@ -21,6 +21,7 @@ RUN \
 	cmake \
 	coreutils \
 	ffmpeg-dev \
+	file \
 	findutils \
 	g++ \
 	gcc \
@@ -85,6 +86,23 @@ RUN \
 	wget \
 	zlib && \
 
+# build libiconv
+ mkdir -p \
+ /tmp/iconv-src && \
+ curl -o \
+ /tmp/iconv.tar.gz -L \
+	http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz && \
+ tar xf /tmp/iconv.tar.gz -C \
+	/tmp/iconv-src --strip-components=1 && \
+ cd /tmp/iconv-src && \
+ ./configure \
+	--prefix=/usr/local && \
+ patch -p1 -i \
+	/tmp/patches/libiconv-1-fixes.patch && \
+ make && \
+ make install && \
+ libtool --finish /usr/local/lib && \
+
 # install perl modules
  curl -L http://cpanmin.us | perl - App::cpanminus && \
  cpanm HTML::TableExtract && \

+ 46 - 0
patches/libiconv-1-fixes.patch

@@ -0,0 +1,46 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+From 47345f5dcfb91da8afed7c4e6c29faa2056db447 Mon Sep 17 00:00:00 2001
+From: MXE
+Date: Fri, 7 Jun 2013 17:44:24 +1000
+Subject: [PATCH] remove gets since c++11 removed it
+ https://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00186.html
+
+
+diff --git a/srclib/stdio.in.h b/srclib/stdio.in.h
+index 473c84c..dfb59eb 100644
+--- a/srclib/stdio.in.h
++++ b/srclib/stdio.in.h
+@@ -679,22 +679,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
+ # endif
+ #endif
+ 
+-#if @GNULIB_GETS@
+-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+-#   undef gets
+-#   define gets rpl_gets
+-#  endif
+-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
+-_GL_CXXALIAS_RPL (gets, char *, (char *s));
+-# else
+-_GL_CXXALIAS_SYS (gets, char *, (char *s));
+-#  undef gets
+-# endif
+-_GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+-   so any use of gets warrants an unconditional warning.  Assume it is
+-   always declared, since it is required by C89.  */
++   so any use of gets warrants an unconditional warning; besides, C11
++   removed it.  */
++#undef gets
++#if HAVE_RAW_DECL_GETS
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
+ 
+-- 
+1.8.2.3
+