diff options
author | Tony Theodore <tonyt@logyst.com> | 2019-04-02 05:22:08 (GMT) |
---|---|---|
committer | Tony Theodore <tonyt@logyst.com> | 2019-04-02 05:22:08 (GMT) |
commit | ff7c9adc265fe2ad12df95342b357a2b91277888 (patch) | |
tree | 32ee5bd08bb8d854cf340d33cd25712ffdd7742e | |
parent | ae3ebf05e657d337f1989a048e7a2e728c02a067 (diff) | |
download | mxe-ff7c9adc265fe2ad12df95342b357a2b91277888.zip mxe-ff7c9adc265fe2ad12df95342b357a2b91277888.tar.gz mxe-ff7c9adc265fe2ad12df95342b357a2b91277888.tar.bz2 |
add cygwin native plugin
-rw-r--r-- | plugins/native/cygwin/README.md | 19 | ||||
-rw-r--r-- | plugins/native/cygwin/gettext-0.18.1.1-autopoint-V.patch | 54 | ||||
-rw-r--r-- | plugins/native/cygwin/gettext-0.19.3-localename.patch | 168 | ||||
-rw-r--r-- | plugins/native/cygwin/gettext-0.19.3-tests-cygwin.patch | 89 | ||||
-rw-r--r-- | plugins/native/cygwin/gettext-0.19.8.1-cygwin-ftm.patch | 11 | ||||
-rw-r--r-- | plugins/native/cygwin/gettext-0.19.8.1-have_wprintf.patch | 11 | ||||
-rw-r--r-- | plugins/native/cygwin/gettext-0.19.8.1-no-woe32dll.patch | 31 | ||||
-rw-r--r-- | plugins/native/cygwin/gettext.mk | 12 |
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 |