summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2023-05-28 11:42:01 +0200
committerFabian Groffen <grobian@gentoo.org>2023-05-28 11:42:01 +0200
commitb56363705086818bcc46958fe5e7d6fc15e7ca1d (patch)
tree536f3cda4d75a28a6e007539c2d750d2899c4e7a /sys-apps/help2man/files/help2man-1.48.5-cygwin.patch
parentsys-apps/coreutils: sync with gx86 (diff)
downloadprefix-b56363705086818bcc46958fe5e7d6fc15e7ca1d.tar.gz
prefix-b56363705086818bcc46958fe5e7d6fc15e7ca1d.tar.bz2
prefix-b56363705086818bcc46958fe5e7d6fc15e7ca1d.zip
sys-apps/help2man: migrate to gx86
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Diffstat (limited to 'sys-apps/help2man/files/help2man-1.48.5-cygwin.patch')
-rw-r--r--sys-apps/help2man/files/help2man-1.48.5-cygwin.patch167
1 files changed, 0 insertions, 167 deletions
diff --git a/sys-apps/help2man/files/help2man-1.48.5-cygwin.patch b/sys-apps/help2man/files/help2man-1.48.5-cygwin.patch
deleted file mode 100644
index aa75d10e38..0000000000
--- a/sys-apps/help2man/files/help2man-1.48.5-cygwin.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/help2man.git;a=blob;f=help2man-preload-intl.patch;h=2fbc34bbc6bc7a36414257a29fee13944f5c087c;hb=b47c3b0de257e3cda4455e16e196e629c69d28e7
-
-LD_PRELOAD by itself only works with Cygwin builtin functions, but
-textdomain() and friends come from libintl. In order to override
-those functions, we have to "replace" cygintl-?.dll since functions are
-bound to a DLL name at link time. Our replacement will be used since
-it is loaded first by LD_PRELOAD.
-
-But as we are making this *the* libintl, we need to provide
-pass-throughs for the other functions which we're not overriding,
-otherwise Locale::gettext won't load (not to mention the program
-that we're trying to help2man).
-
---- origsrc/help2man-1.48.5/Makefile.in 2020-03-15 04:52:00.000000000 -0600
-+++ src/help2man-1.48.5/Makefile.in 2021-09-07 03:10:00.000000000 -0600
-@@ -76,7 +76,8 @@ install_base:
-
- install_preload: preload
- $(MKINSTALLDIRS) $(DESTDIR)$(pkglibdir)
-- $(INSTALL_PROGRAM) $(preload).so $(DESTDIR)$(pkglibdir)
-+ $(INSTALL_PROGRAM) lib/cygintl-8.dll $(DESTDIR)$(pkglibdir)
-+ ln -sf cygintl-8.dll $(DESTDIR)$(pkglibdir)/$(preload).so
-
- install_l10n: msg_l10n man_l10n info_l10n
- set -e; \
-@@ -145,7 +146,9 @@ $(target).h2m: $(srcdir)/$(target).h2m.PL
-
- preload: $(preload).so
- $(preload).so: $(srcdir)/$(preload).c
-- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -fPIC -shared $? $(LIBS)
-+ mkdir -p lib
-+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o lib/cygintl-8.dll -shared $? $(LIBS)
-+ ln -sf lib/cygintl-8.dll $@
-
- man: $(target).1
- $(target).1: $(srcdir)/$(target).PL $(srcdir)/$(target).h2m.PL
---- origsrc/help2man-1.48.5/bindtextdomain.c 2009-11-13 00:01:34.000000000 -0600
-+++ src/help2man-1.48.5/bindtextdomain.c 2011-12-29 00:24:33.608078600 -0600
-@@ -36,12 +36,34 @@ static char *(*r_textdomain)(char const *) = 0;
- static char *(*r_bindtextdomain)(char const *, char const *) = 0;
- static char *(*r_bind_textdomain_codeset)(char const *, char const *) = 0;
-
-+#ifdef __CYGWIN__
-+static void *RTLD_NEXT = 0;
-+static char *(*r_gettext)(const char *) = 0;
-+static char *(*r_dgettext)(const char *, const char *) = 0;
-+static char *(*r_dcgettext)(const char *, const char *, int) = 0;
-+static char *(*r_ngettext)(const char *, const char *, unsigned long int) = 0;
-+static char *(*r_dngettext)(const char *, const char *, const char *,
-+ unsigned long int) = 0;
-+static char *(*r_dcngettext)(const char *, const char *, const char *,
-+ unsigned long int, int) = 0;
-+static char *(*r_setlocale)(int, const char *) = 0;
-+
-+#define SYM(sym) libintl_ ## sym
-+#else
-+#define SYM(sym) sym
-+#endif
-+
- void setup()
- {
- static int done = 0;
- if (done++)
- return;
-
-+#ifdef __CYGWIN__
-+ if (!(RTLD_NEXT = dlopen("/usr/bin/cygintl-8.dll", RTLD_LAZY)))
-+ die("libintl8 not found");
-+#endif
-+
- if (!(e_textdomain = getenv("TEXTDOMAIN")))
- die("TEXTDOMAIN not set");
-
-@@ -57,9 +79,19 @@ void setup()
- if (!(r_bind_textdomain_codeset = dlsym(RTLD_NEXT,
- "bind_textdomain_codeset")))
- die("can't find symbol \"bind_textdomain_codeset\"");
-+
-+#ifdef __CYGWIN__
-+ r_gettext = dlsym(RTLD_NEXT, "libintl_gettext");
-+ r_dgettext = dlsym(RTLD_NEXT, "libintl_dgettext");
-+ r_dcgettext = dlsym(RTLD_NEXT, "libintl_dcgettext");
-+ r_ngettext = dlsym(RTLD_NEXT, "libintl_ngettext");
-+ r_dngettext = dlsym(RTLD_NEXT, "libintl_dngettext");
-+ r_dcngettext = dlsym(RTLD_NEXT, "libintl_dcngettext");
-+ r_setlocale = dlsym(RTLD_NEXT, "libintl_setlocale");
-+#endif
- }
-
--char *textdomain(char const *domainname)
-+char *SYM(textdomain)(char const *domainname)
- {
- char *r;
- setup();
-@@ -70,7 +102,7 @@ char *textdomain(char const *domainname)
- return r;
- }
-
--char *bindtextdomain(char const *domainname, char const *dirname)
-+char *SYM(bindtextdomain)(char const *domainname, char const *dirname)
- {
- char const *dir = dirname;
- setup();
-@@ -80,7 +112,7 @@ char *bindtextdomain(char const *domainname,
- return r_bindtextdomain(domainname, dir);
- }
-
--char *bind_textdomain_codeset(char const *domainname, char const *codeset)
-+char *SYM(bind_textdomain_codeset)(char const *domainname, char const *codeset)
- {
- char *r;
- setup();
-@@ -90,3 +122,54 @@ char *bind_textdomain_codeset(char const
-
- return r;
- }
-+
-+#ifdef __CYGWIN__
-+
-+char *libintl_gettext(const char *msgid)
-+{
-+ setup();
-+ return r_gettext(msgid);
-+}
-+
-+char *libintl_dgettext (const char *domainname, const char *msgid)
-+{
-+ setup();
-+ return r_dgettext(domainname, msgid);
-+}
-+
-+char *libintl_dcgettext (const char *domainname, const char *msgid,
-+ int category)
-+{
-+ setup();
-+ return r_dcgettext (domainname, msgid, category);
-+}
-+
-+char *libintl_ngettext (const char *msgid1, const char *msgid2,
-+ unsigned long int n)
-+{
-+ setup();
-+ return r_ngettext (msgid1, msgid2, n);
-+}
-+
-+char *libintl_dngettext (const char *domainname, const char *msgid1,
-+ const char *msgid2, unsigned long int n)
-+{
-+ setup();
-+ return r_dngettext (domainname, msgid1, msgid2, n);
-+}
-+
-+char *libintl_dcngettext (const char *domainname,
-+ const char *msgid1, const char *msgid2,
-+ unsigned long int n, int category)
-+{
-+ setup();
-+ return r_dcngettext (domainname, msgid1, msgid2, n, category);
-+}
-+
-+char *libintl_setlocale (int i, const char *s)
-+{
-+ setup();
-+ return r_setlocale (i, s);
-+}
-+
-+#endif