add cygwin native plugin

This commit is contained in:
Tony Theodore 2019-04-02 16:22:08 +11:00
parent ae3ebf05e6
commit ff7c9adc26
8 changed files with 395 additions and 0 deletions

View File

@ -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
```

View File

@ -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"

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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