summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2019-04-02 05:22:08 (GMT)
committerTony Theodore <tonyt@logyst.com>2019-04-02 05:22:08 (GMT)
commitff7c9adc265fe2ad12df95342b357a2b91277888 (patch)
tree32ee5bd08bb8d854cf340d33cd25712ffdd7742e
parentae3ebf05e657d337f1989a048e7a2e728c02a067 (diff)
downloadmxe-ff7c9adc265fe2ad12df95342b357a2b91277888.zip
mxe-ff7c9adc265fe2ad12df95342b357a2b91277888.tar.gz
mxe-ff7c9adc265fe2ad12df95342b357a2b91277888.tar.bz2
add cygwin native plugin
-rw-r--r--plugins/native/cygwin/README.md19
-rw-r--r--plugins/native/cygwin/gettext-0.18.1.1-autopoint-V.patch54
-rw-r--r--plugins/native/cygwin/gettext-0.19.3-localename.patch168
-rw-r--r--plugins/native/cygwin/gettext-0.19.3-tests-cygwin.patch89
-rw-r--r--plugins/native/cygwin/gettext-0.19.8.1-cygwin-ftm.patch11
-rw-r--r--plugins/native/cygwin/gettext-0.19.8.1-have_wprintf.patch11
-rw-r--r--plugins/native/cygwin/gettext-0.19.8.1-no-woe32dll.patch31
-rw-r--r--plugins/native/cygwin/gettext.mk12
8 files changed, 395 insertions, 0 deletions
diff --git a/plugins/native/cygwin/README.md b/plugins/native/cygwin/README.md
new file mode 100644
index 0000000..9612722
--- /dev/null
+++ b/plugins/native/cygwin/README.md
@@ -0,0 +1,19 @@
+Cygwin Platform Specific Overrides
+----------------------------------
+
+#### [cygwinports](https://github.com/cygwinports)
+
+Patches (e.g. gettext) can be fetched with:
+
+```sh
+wget -O- -q https://github.com/cygwinports/gettext | \
+grep patch | \
+sed -n 's,.*href=.*/blob/master/\([^"]*.patch\).*,\1,p' | \
+xargs -I % wget https://raw.githubusercontent.com/cygwinports/gettext/master/% -O gettext-%
+```
+
+and tidy up patch level with (requires GNU Sed for `-i` option):
+
+```sh
+sed -i 's,src/gettext-[0-9.]*/,src/,g' *.patch
+```
diff --git a/plugins/native/cygwin/gettext-0.18.1.1-autopoint-V.patch b/plugins/native/cygwin/gettext-0.18.1.1-autopoint-V.patch
new file mode 100644
index 0000000..a0817df
--- /dev/null
+++ b/plugins/native/cygwin/gettext-0.18.1.1-autopoint-V.patch
@@ -0,0 +1,54 @@
+--- origsrc/gettext-tools/misc/autopoint.in 2010-06-06 08:49:57.000000000 -0400
++++ src/gettext-tools/misc/autopoint.in 2011-10-16 00:57:42.789133600 -0400
+@@ -161,9 +161,9 @@ Options:
+ --version print version information and exit
+ -f, --force force overwriting of files that already exist
+ -n, --dry-run print modifications but don't perform them"
+-# echo "\
+-# -V version copy the infrastructure of the specified gettext version
+-# (dangerous)"
++ echo "\
++ -V version copy the infrastructure of the specified gettext version
++ (dangerous)"
+ echo "
+ Report bugs to <bug-gnu-gettext@gnu.org>."
+ }
+@@ -210,17 +210,17 @@ func_fatal_error ()
+ force=yes ;;
+ --help | --hel | --he | --h )
+ func_usage; exit 0 ;;
+-# -V ) # Some people put a space between -V and the version number.
+-# shift
+-# if test $# = 0; then
+-# func_usage 1>&2
+-# exit 1
+-# fi
+-# ver=$1;
+-# shift ;;
+-# -V*) # Some people omit the space between -V and the version number.
+-# ver=`echo "X$1" | sed -e 's/^X-V//'`
+-# shift ;;
++ -V ) # Some people put a space between -V and the version number.
++ shift
++ if test $# = 0; then
++ func_usage 1>&2
++ exit 1
++ fi
++ ver=$1;
++ shift ;;
++ -V*) # Some people omit the space between -V and the version number.
++ ver=`echo "X$1" | sed -e 's/^X-V//'`
++ shift ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v )
+ func_version
+ exit 0 ;;
+@@ -276,7 +276,7 @@ fi
+ if test -n "$xver"; then
+ if test -n "$ver"; then
+ if test "X$ver" != "X$xver"; then
+- func_fatal_error "Version mismatch: specified -V $ver but the package uses gettext version $xver"
++ echo "autopoint: warning: Version mismatch: specified -V $ver but the package uses gettext version $xver. Forcibly upgrading to $ver" 1>&2
+ fi
+ else
+ ver="$xver"
+
diff --git a/plugins/native/cygwin/gettext-0.19.3-localename.patch b/plugins/native/cygwin/gettext-0.19.3-localename.patch
new file mode 100644
index 0000000..e0f00aa
--- /dev/null
+++ b/plugins/native/cygwin/gettext-0.19.3-localename.patch
@@ -0,0 +1,168 @@
+--- origsrc/gettext-runtime/gnulib-lib/localename.c 2014-10-16 01:00:08.000000000 -0500
++++ src/gettext-runtime/gnulib-lib/localename.c 2014-11-17 23:22:47.747353600 -0600
+@@ -60,7 +60,7 @@
+ # endif
+ #endif
+
+-#if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++#if defined WINDOWS_NATIVE /* Native Windows */
+ # define WIN32_LEAN_AND_MEAN
+ # include <windows.h>
+ # include <winnls.h>
+@@ -1412,7 +1412,7 @@ gl_locale_name_canonicalize (char *name)
+ #endif
+
+
+-#if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++#if defined WINDOWS_NATIVE /* Native Windows */
+
+ /* Canonicalize a Windows native locale name to a Unix locale name.
+ NAME is a sufficiently large buffer.
+@@ -2825,11 +2825,6 @@ gl_locale_name_environ (int category, co
+ Ignore invalid LANG value set by the Terminal application. */
+ if (strcmp (retval, "UTF-8") != 0)
+ #endif
+-#if defined __CYGWIN__
+- /* Cygwin.
+- Ignore dummy LANG value set by ~/.profile. */
+- if (strcmp (retval, "C.UTF-8") != 0)
+-#endif
+ return retval;
+ }
+
+@@ -2867,7 +2862,7 @@ gl_locale_name_default (void)
+ "C.UTF-8" locale, which operates in the same way as the "C" locale.
+ */
+
+-#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE || defined __CYGWIN__)
++#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE)
+
+ /* The system does not have a way of setting the locale, other than the
+ POSIX specified environment variables. We use C as default locale. */
+@@ -2922,7 +2917,7 @@ gl_locale_name_default (void)
+
+ # endif
+
+-# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++# if defined WINDOWS_NATIVE /* Native Windows */
+ {
+ LCID lcid;
+
+--- origsrc/gettext-runtime/intl/localename.c 2014-09-30 21:35:20.000000000 -0500
++++ src/gettext-runtime/intl/localename.c 2014-11-17 23:22:47.755854700 -0600
+@@ -60,7 +60,7 @@
+ # endif
+ #endif
+
+-#if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++#if defined WINDOWS_NATIVE_ /* Native Windows */
+ # define WIN32_LEAN_AND_MEAN
+ # include <windows.h>
+ # include <winnls.h>
+@@ -1412,7 +1412,7 @@ gl_locale_name_canonicalize (char *name)
+ #endif
+
+
+-#if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++#if defined WINDOWS_NATIVE /* Native Windows */
+
+ /* Canonicalize a Windows native locale name to a Unix locale name.
+ NAME is a sufficiently large buffer.
+@@ -2770,7 +2770,7 @@ gl_locale_name_thread (int category, con
+ However it does not specify the exact format. Neither do SUSV2 and
+ ISO C 99. So we can use this feature only on selected systems (e.g.
+ those using GNU C Library). */
+-#if defined _LIBC || ((defined __GLIBC__ && __GLIBC__ >= 2) && !defined __UCLIBC__)
++#if defined _LIBC || ((defined __GLIBC__ && __GLIBC__ >= 2) && !defined __UCLIBC__) || defined(__CYGWIN__)
+ # define HAVE_LOCALE_NULL
+ #endif
+
+@@ -2825,11 +2825,6 @@ gl_locale_name_environ (int category, co
+ Ignore invalid LANG value set by the Terminal application. */
+ if (strcmp (retval, "UTF-8") != 0)
+ #endif
+-#if defined __CYGWIN__
+- /* Cygwin.
+- Ignore dummy LANG value set by ~/.profile. */
+- if (strcmp (retval, "C.UTF-8") != 0)
+-#endif
+ return retval;
+ }
+
+@@ -2867,7 +2862,7 @@ gl_locale_name_default (void)
+ "C.UTF-8" locale, which operates in the same way as the "C" locale.
+ */
+
+-#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE || defined __CYGWIN__)
++#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE)
+
+ /* The system does not have a way of setting the locale, other than the
+ POSIX specified environment variables. We use C as default locale. */
+@@ -2922,7 +2917,7 @@ gl_locale_name_default (void)
+
+ # endif
+
+-# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++# if defined WINDOWS_NATIVE /* Native Windows */
+ {
+ LCID lcid;
+
+--- origsrc/gettext-tools/gnulib-lib/localename.c 2014-10-16 01:00:35.000000000 -0500
++++ src/gettext-tools/gnulib-lib/localename.c 2014-11-17 23:22:47.763355600 -0600
+@@ -60,7 +60,7 @@
+ # endif
+ #endif
+
+-#if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++#if defined WINDOWS_NATIVE_ /* Native Windows */
+ # define WIN32_LEAN_AND_MEAN
+ # include <windows.h>
+ # include <winnls.h>
+@@ -1412,7 +1412,7 @@ gl_locale_name_canonicalize (char *name)
+ #endif
+
+
+-#if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++#if defined WINDOWS_NATIVE /* Native Windows */
+
+ /* Canonicalize a Windows native locale name to a Unix locale name.
+ NAME is a sufficiently large buffer.
+@@ -2770,7 +2770,7 @@ gl_locale_name_thread (int category, con
+ However it does not specify the exact format. Neither do SUSV2 and
+ ISO C 99. So we can use this feature only on selected systems (e.g.
+ those using GNU C Library). */
+-#if defined _LIBC || ((defined __GLIBC__ && __GLIBC__ >= 2) && !defined __UCLIBC__)
++#if defined _LIBC || ((defined __GLIBC__ && __GLIBC__ >= 2) && !defined __UCLIBC__) || defined(__CYGWIN__)
+ # define HAVE_LOCALE_NULL
+ #endif
+
+@@ -2825,11 +2825,6 @@ gl_locale_name_environ (int category, co
+ Ignore invalid LANG value set by the Terminal application. */
+ if (strcmp (retval, "UTF-8") != 0)
+ #endif
+-#if defined __CYGWIN__
+- /* Cygwin.
+- Ignore dummy LANG value set by ~/.profile. */
+- if (strcmp (retval, "C.UTF-8") != 0)
+-#endif
+ return retval;
+ }
+
+@@ -2867,7 +2862,7 @@ gl_locale_name_default (void)
+ "C.UTF-8" locale, which operates in the same way as the "C" locale.
+ */
+
+-#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE || defined __CYGWIN__)
++#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE)
+
+ /* The system does not have a way of setting the locale, other than the
+ POSIX specified environment variables. We use C as default locale. */
+@@ -2922,7 +2917,7 @@ gl_locale_name_default (void)
+
+ # endif
+
+-# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
++# if defined WINDOWS_NATIVE /* Native Windows */
+ {
+ LCID lcid;
+
diff --git a/plugins/native/cygwin/gettext-0.19.3-tests-cygwin.patch b/plugins/native/cygwin/gettext-0.19.3-tests-cygwin.patch
new file mode 100644
index 0000000..7fe42bf
--- /dev/null
+++ b/plugins/native/cygwin/gettext-0.19.3-tests-cygwin.patch
@@ -0,0 +1,89 @@
+--- origsrc/gettext-tools/tests/format-c-3-prg.c 2013-05-31 00:01:54.000000000 -0500
++++ src/gettext-tools/tests/format-c-3-prg.c 2014-11-17 23:26:21.975557100 -0600
+@@ -34,7 +34,7 @@
+ /* Disable the override of setlocale that libgnuintl.h activates on MacOS X
+ and Windows. This test relies on the fake setlocale function in
+ setlocale.c. */
+-#undef setlocale
++/* #undef setlocale */
+
+ #define _(string) gettext (string)
+
+--- origsrc/gettext-tools/tests/format-c-4-prg.c 2013-05-31 00:01:54.000000000 -0500
++++ src/gettext-tools/tests/format-c-4-prg.c 2014-11-17 23:26:21.979557600 -0600
+@@ -34,7 +34,7 @@
+ /* Disable the override of setlocale that libgnuintl.h activates on MacOS X
+ and Windows. This test relies on the fake setlocale function in
+ setlocale.c. */
+-#undef setlocale
++/* #undef setlocale */
+
+ #define _(string) gettext (string)
+
+--- origsrc/gettext-tools/tests/plural-1 2014-04-14 20:52:11.000000000 -0500
++++ src/gettext-tools/tests/plural-1 2014-11-17 23:26:21.983058100 -0600
+@@ -50,15 +50,15 @@ ${DIFF} plural-1-fr.po.strip plural-1-fr
+
+ : ${DIFF=diff}
+ echo 'un morceau de gateau' > plural-1-cake.ok
+-LANGUAGE= ../cake fr 1 > plural-1-cake.tmp || Exit 1
++LANGUAGE= ../cake fr_FR 1 > plural-1-cake.tmp || Exit 1
+ LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || Exit 1
+ ${DIFF} plural-1-cake.ok cake.out || Exit 1
+ echo '2 morceaux de gateau' > plural-1-cake.ok
+-LANGUAGE= ../cake fr 2 > plural-1-cake.tmp || Exit 1
++LANGUAGE= ../cake fr_FR 2 > plural-1-cake.tmp || Exit 1
+ LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || Exit 1
+ ${DIFF} plural-1-cake.ok cake.out || Exit 1
+ echo '10 morceaux de gateau' > plural-1-cake.ok
+-LANGUAGE= ../cake fr 10 > plural-1-cake.tmp || Exit 1
++LANGUAGE= ../cake fr_FR 10 > plural-1-cake.tmp || Exit 1
+ LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || Exit 1
+ ${DIFF} plural-1-cake.ok cake.out || Exit 1
+
+--- origsrc/gettext-tools/tests/plural-1-prg.c 2013-05-31 00:01:54.000000000 -0500
++++ src/gettext-tools/tests/plural-1-prg.c 2014-11-17 23:26:21.989058800 -0600
+@@ -30,7 +30,7 @@
+ /* Disable the override of setlocale that libgnuintl.h activates on MacOS X
+ and Windows. This test relies on the fake setlocale function in
+ setlocale.c. */
+-#undef setlocale
++/* #undef setlocale */
+
+ int
+ main (int argc, char *argv[])
+--- origsrc/gettext-tools/tests/plural-2 2014-04-14 20:52:11.000000000 -0500
++++ src/gettext-tools/tests/plural-2 2014-11-17 23:25:50.637077600 -0600
+@@ -3,8 +3,8 @@
+
+ : ${MSGFMT=msgfmt}
+ test -d plural-2-dir || mkdir plural-2-dir
+-test -d plural-2-dir/ll || mkdir plural-2-dir/ll
+-test -d plural-2-dir/ll/LC_MESSAGES || mkdir plural-2-dir/ll/LC_MESSAGES
++test -d plural-2-dir/es || mkdir plural-2-dir/es
++test -d plural-2-dir/es/LC_MESSAGES || mkdir plural-2-dir/es/LC_MESSAGES
+
+ cat <<EOF > plural-2.data
+ ja
+@@ -44,7 +44,7 @@ EOF
+ while read lang; do
+ read formula
+ read dataok
+- cat > plural-2-ll.po <<EOF
++ cat > plural-2-es.po <<EOF
+ msgid ""
+ msgstr ""
+ "MIME-Version: 1.0\n"
+@@ -65,10 +65,10 @@ msgstr[7] "7"
+ msgstr[8] "8"
+ msgstr[9] "9"
+ EOF
+- ${MSGFMT} -o plural-2-dir/ll/LC_MESSAGES/plural.mo plural-2-ll.po || Exit 1
++ ${MSGFMT} -o plural-2-dir/es/LC_MESSAGES/plural.mo plural-2-es.po || Exit 1
+ (for i in '' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; do
+ LANGUAGE= TEXTDOMAIN=plural TEXTDOMAINDIR=plural-2-dir \
+- $NGETTEXT --env LC_ALL=ll X Y ${i}0 ${i}1 ${i}2 ${i}3 ${i}4 ${i}5 ${i}6 ${i}7 ${i}8 ${i}9
++ $NGETTEXT --env LC_ALL=es_ES X Y ${i}0 ${i}1 ${i}2 ${i}3 ${i}4 ${i}5 ${i}6 ${i}7 ${i}8 ${i}9
+ done) > dataout
+ test "$dataok" = `cat dataout` || {
+ echo "Formula evaluation error for language $lang" 1>&2
diff --git a/plugins/native/cygwin/gettext-0.19.8.1-cygwin-ftm.patch b/plugins/native/cygwin/gettext-0.19.8.1-cygwin-ftm.patch
new file mode 100644
index 0000000..1a67130
--- /dev/null
+++ b/plugins/native/cygwin/gettext-0.19.8.1-cygwin-ftm.patch
@@ -0,0 +1,11 @@
+--- origsrc/gettext-runtime/intl/libgnuintl.in.h 2016-06-09 17:56:00.000000000 -0500
++++ src/gettext-runtime/intl/libgnuintl.in.h 2016-10-20 11:03:43.187813700 -0500
+@@ -435,7 +435,7 @@ extern int vswprintf (wchar_t *, size_t,
+ extern char *setlocale (int, const char *);
+ #endif
+
+-#if @HAVE_NEWLOCALE@
++#if @HAVE_NEWLOCALE@ && __POSIX_VISIBLE >= 200809
+
+ #undef newlocale
+ #define newlocale libintl_newlocale
diff --git a/plugins/native/cygwin/gettext-0.19.8.1-have_wprintf.patch b/plugins/native/cygwin/gettext-0.19.8.1-have_wprintf.patch
new file mode 100644
index 0000000..ab41054
--- /dev/null
+++ b/plugins/native/cygwin/gettext-0.19.8.1-have_wprintf.patch
@@ -0,0 +1,11 @@
+--- origsrc/gettext-runtime/m4/intl.m4 2016-03-20 02:37:53.000000000 -0500
++++ src/gettext-runtime/m4/intl.m4 2016-10-20 11:07:16.828746100 -0500
+@@ -94,7 +94,7 @@
+ HAVE_NEWLOCALE=0
+ fi
+ AC_SUBST([HAVE_NEWLOCALE])
+- if test "$ac_cv_func_wprintf" = yes; then
++ if test "$ac_cv_func_fwprintf" = yes; then
+ HAVE_WPRINTF=1
+ else
+ HAVE_WPRINTF=0
diff --git a/plugins/native/cygwin/gettext-0.19.8.1-no-woe32dll.patch b/plugins/native/cygwin/gettext-0.19.8.1-no-woe32dll.patch
new file mode 100644
index 0000000..bcbf76a
--- /dev/null
+++ b/plugins/native/cygwin/gettext-0.19.8.1-no-woe32dll.patch
@@ -0,0 +1,31 @@
+--- origsrc/gettext-tools/configure.ac 2016-06-09 17:56:00.000000000 -0500
++++ src/gettext-tools/configure.ac 2016-10-10 02:10:37.323106300 -0500
+@@ -100,7 +100,7 @@ LT_LANG([Windows Resource])
+ dnl On mingw and Cygwin, we can activate special Makefile rules which add
+ dnl version information to the shared libraries and executables.
+ case "$host_os" in
+- mingw* | cygwin*) special_makefile_rules=woe32 ;;
++ mingw*) special_makefile_rules=woe32 ;;
+ os2*) special_makefile_rules=os2 ;;
+ *) special_makefile_rules=none ;;
+ esac
+@@ -212,7 +212,7 @@ dnl must arrange to define the auxili
+ dnl exported variables _also_ in the static library.
+ if test "$enable_shared" = yes; then
+ case "$host_os" in
+- mingw* | cygwin*) is_woe32dll=yes ;;
++ mingw*) is_woe32dll=yes ;;
+ *) is_woe32dll=no ;;
+ esac
+ else
+--- origsrc/m4/woe32-dll.m4 2016-03-20 02:37:53.000000000 -0500
++++ src/m4/woe32-dll.m4 2016-10-10 02:11:04.906081600 -0500
+@@ -30,7 +30,7 @@ AC_DEFUN([gl_WOE32_DLL],
+ [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ case "$host_os" in
+- mingw* | cygwin*)
++ mingw*)
+ AC_MSG_CHECKING([for auto-import of symbols])
+ AC_CACHE_VAL([gl_cv_ld_autoimport], [
+ gl_save_LDFLAGS="$LDFLAGS"
diff --git a/plugins/native/cygwin/gettext.mk b/plugins/native/cygwin/gettext.mk
new file mode 100644
index 0000000..20a23f9
--- /dev/null
+++ b/plugins/native/cygwin/gettext.mk
@@ -0,0 +1,12 @@
+# This file is part of MXE. See LICENSE.md for licensing information.
+
+PKG := gettext
+
+define $(PKG)_BUILD_$(BUILD)
+ # review patches to remove autoreconf step
+ cd '$(SOURCE_DIR)' && autoreconf -fi
+ cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MXE_DISABLE_DOCS)
+ $(MAKE) -C '$(BUILD_DIR)' -j 1 install $(MXE_DISABLE_DOCS)
+endef