1 |
commit: 21ec96d581bdc46be9a6ec64bc5cbf581f2403dd |
2 |
Author: Michael Haubenwallner <haubi <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Feb 15 12:16:27 2019 +0000 |
4 |
Commit: Michael Haubenwallner <haubi <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Feb 15 12:16:31 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=21ec96d5 |
7 |
|
8 |
dev-libs/glib: bump cygwin patches |
9 |
|
10 |
Package-Manager: Portage-2.3.55.1-prefix, Repoman-2.3.12 |
11 |
Signed-off-by: Michael Haubenwallner <haubi <AT> gentoo.org> |
12 |
|
13 |
dev-libs/glib/Manifest | 3 +- |
14 |
dev-libs/glib/files/2.56-gmodule-cygwin.patch | 149 ++++++++++++++++++++++++++ |
15 |
dev-libs/glib/glib-2.56.2.ebuild | 29 ++--- |
16 |
3 files changed, 168 insertions(+), 13 deletions(-) |
17 |
|
18 |
diff --git a/dev-libs/glib/Manifest b/dev-libs/glib/Manifest |
19 |
index 1a2a1b7d65..654849c16b 100644 |
20 |
--- a/dev-libs/glib/Manifest |
21 |
+++ b/dev-libs/glib/Manifest |
22 |
@@ -1,5 +1,6 @@ |
23 |
-DIST 07d4a86e74b9b12a562b57ce5fa3a275bf0fe774.zip 13852 SHA256 decff3d1b7f259154940153cc65994fdc9d6a6ffe32e0e99334fe2163844ac4f SHA512 971a0519b53e066adcce27176bc134f6ccd6660d85113d5be10fa7cd421ef1e089a1780459de63234de618abd68df62d308f409a7097fe6a9e91e20510af40b9 WHIRLPOOL 0d2908fdd3c355479886387fd2619ae16470e971948a1af4a4a499a3d00dcbaeaf3b0dbe6115f06eca74bb99a40ce5e670bc8c14a1deb15450fd4a06aa642320 |
24 |
+DIST 07d4a86e74b9b12a562b57ce5fa3a275bf0fe774.zip 13852 BLAKE2B a272281e4850b11b1632593155ed6bcbea73ccae4e6a7083c70dfd1ba207b5ae66d981445e08aca34287a6631ddcee7c832be152a9a3f62f470b17819c7949b6 SHA512 971a0519b53e066adcce27176bc134f6ccd6660d85113d5be10fa7cd421ef1e089a1780459de63234de618abd68df62d308f409a7097fe6a9e91e20510af40b9 |
25 |
DIST glib-2.50.2.tar.xz 7582312 BLAKE2B 1faa4bec57b0dc9538a5d86b6530b5b60c37d01c6b1e3d3667c1e0204bb78fa5890699456425f302f33b48792af0fe448c17760614895d10b27358a5c187a518 SHA512 63d7b5ece8d7d15b10e06ef10a8e0a4446f30a8d9c97daa3352ec00dfef622728bd42ed24cbf67e553166a0f9e29a3e3d024d1d085b9804fd67608db438b6771 |
26 |
DIST glib-2.52.3.tar.xz 7679972 BLAKE2B 8d9f6b714571bd04ab9717fbf9ded8556664e43dcdb7dd59436b8b7f1a8a5cdf98e9ce60ca1ead941af1d57688044fefb6c749fa735084622a3482b058864ff6 SHA512 a068f2519cfb82de8d4b7f004e7c1f15e841cad4046430a83b02b359d011e0c4077cdff447a1687ed7c68f1a11b4cf66b9ed9fc23ab5f0c7c6be84eb0ddc3017 |
27 |
DIST glib-2.56.2.tar.xz 8041756 BLAKE2B 1af5bb37378856e959602bcb9299266bba46b990839c923f6b9881624aed306af0779005281b3e3a46b5994c54812edc86aade9cb782c596fd63b6fd91baba51 SHA512 8201ea82d3613d2e879284abe01520b766da30957c5a1a22f3e6019b0cce6bf95d25beae78867b6a133401c4165153c0c92974dd459ab12f9e0e9dd0c95df5d4 |
28 |
+DIST glib-cygwinports-3a873fdd1b9a9e649563fe8e6b8ae6951b0dd3be.zip 13038 BLAKE2B 08f217e204c8518137722dcd535c100cbdc56e43dcf3d16a339c93353c594287670215c130b2c7f83235145632fad6d30903ae099f5999bf72ec070a12da4484 SHA512 fd4925d6a2380c5ff551e812a182de20f7b59e5d134a2c54b985efe85ab334499b0050097ca5c3271f14e2c3c5e89650e134a01e4c5be06bad05a12eaaf9fe53 |
29 |
DIST pkg-config-0.28.tar.gz 1931203 BLAKE2B bafdd4e838623965c6bd454421ddd9051fc43fc29948e1615b49fef463c3c3a18807aabe6416f96cfdf58d6b1c9e114d77f97bd985facee7c14284a8a64a768b SHA512 6eafa5ca77c5d44cd15f48457a5e96fcea2555b66d8e35ada5ab59864a0aa03d441e15f54ab9c6343693867b3b490f392c75b7d9312f024c9b7ec6a0194d8320 |
30 |
|
31 |
diff --git a/dev-libs/glib/files/2.56-gmodule-cygwin.patch b/dev-libs/glib/files/2.56-gmodule-cygwin.patch |
32 |
new file mode 100644 |
33 |
index 0000000000..4665a2901a |
34 |
--- /dev/null |
35 |
+++ b/dev-libs/glib/files/2.56-gmodule-cygwin.patch |
36 |
@@ -0,0 +1,149 @@ |
37 |
+This is derived from github/cygwinports/glib2.0/2.50-gmodule-cygwin.patch |
38 |
+as of commit id 3a873fdd1b9a9e649563fe8e6b8ae6951b0dd3be for glib-2.54.3, |
39 |
+and rebased for glib-2.56.2. |
40 |
+--- origsrc/glib-2.50.3/gmodule/gmodule-win32.c |
41 |
++++ src/glib-2.50.3/gmodule/gmodule-win32.c |
42 |
+@@ -37,7 +37,20 @@ |
43 |
+ |
44 |
+ #ifdef G_WITH_CYGWIN |
45 |
+ #include <sys/cygwin.h> |
46 |
+-#endif |
47 |
++#include <dlfcn.h> |
48 |
++ |
49 |
++static gchar* |
50 |
++fetch_dlerror (gboolean replace_null) |
51 |
++{ |
52 |
++ gchar *msg = dlerror (); |
53 |
++ |
54 |
++ if (!msg && replace_null) |
55 |
++ return "unknown dl-error"; |
56 |
++ |
57 |
++ return msg; |
58 |
++} |
59 |
++ |
60 |
++#else |
61 |
+ |
62 |
+ static void |
63 |
+ set_error (const gchar *format, |
64 |
+@@ -62,22 +75,26 @@ set_error (const gchar *format, |
65 |
+ g_free (error); |
66 |
+ } |
67 |
+ |
68 |
++#endif /* G_WITH_CYGWIN */ |
69 |
++ |
70 |
+ /* --- functions --- */ |
71 |
+ static gpointer |
72 |
+ _g_module_open (const gchar *file_name, |
73 |
+ gboolean bind_lazy, |
74 |
+ gboolean bind_local) |
75 |
+ { |
76 |
++#ifdef G_WITH_CYGWIN |
77 |
++ gpointer handle; |
78 |
++ |
79 |
++ handle = dlopen (file_name, |
80 |
++ (bind_local ? RTLD_LOCAL : RTLD_GLOBAL) | (bind_lazy ? RTLD_LAZY : RTLD_NOW)); |
81 |
++ if (!handle) |
82 |
++ g_module_set_error (fetch_dlerror (TRUE)); |
83 |
++#else |
84 |
+ HINSTANCE handle; |
85 |
+ wchar_t *wfilename; |
86 |
+ DWORD old_mode; |
87 |
+ BOOL success; |
88 |
+-#ifdef G_WITH_CYGWIN |
89 |
+- gchar tmp[MAX_PATH]; |
90 |
+- |
91 |
+- cygwin_conv_to_win32_path(file_name, tmp); |
92 |
+- file_name = tmp; |
93 |
+-#endif |
94 |
+ wfilename = g_utf8_to_utf16 (file_name, -1, NULL, NULL, NULL); |
95 |
+ |
96 |
+ /* suppress error dialog */ |
97 |
+@@ -91,26 +108,44 @@ _g_module_open (const gchar *file_name, |
98 |
+ |
99 |
+ if (!handle) |
100 |
+ set_error ("'%s': ", file_name); |
101 |
++#endif |
102 |
+ |
103 |
+ return handle; |
104 |
+ } |
105 |
+ |
106 |
++#ifndef G_WITH_CYGWIN |
107 |
+ static gint dummy; |
108 |
+ static gpointer null_module_handle = &dummy; |
109 |
++#endif |
110 |
+ |
111 |
+ static gpointer |
112 |
+ _g_module_self (void) |
113 |
+ { |
114 |
++#ifdef G_WITH_CYGWIN |
115 |
++ gpointer handle; |
116 |
++ |
117 |
++ handle = dlopen (NULL, RTLD_GLOBAL | RTLD_LAZY); |
118 |
++ if (!handle) |
119 |
++ g_module_set_error (fetch_dlerror (TRUE)); |
120 |
++ |
121 |
++ return handle; |
122 |
++#else |
123 |
+ return null_module_handle; |
124 |
++#endif |
125 |
+ } |
126 |
+ |
127 |
+ static void |
128 |
+ _g_module_close (gpointer handle, |
129 |
+ gboolean is_unref) |
130 |
+ { |
131 |
++#ifdef G_WITH_CYGWIN |
132 |
++ if (dlclose (handle) != 0) |
133 |
++ g_module_set_error (fetch_dlerror (TRUE)); |
134 |
++#else |
135 |
+ if (handle != null_module_handle) |
136 |
+ if (!FreeLibrary (handle)) |
137 |
+ set_error (""); |
138 |
++#endif |
139 |
+ } |
140 |
+ |
141 |
+ static gpointer |
142 |
+@@ -129,8 +164,19 @@ find_in_any_module_using_toolhelp (const |
143 |
+ if (Module32First (snapshot, &me32)) |
144 |
+ { |
145 |
+ do { |
146 |
+- if ((p = GetProcAddress (me32.hModule, symbol_name)) != NULL) |
147 |
+- break; |
148 |
++ if ((p = GetProcAddress (me32.hModule, symbol_name)) != NULL) { |
149 |
++#ifdef G_WITH_CYGWIN |
150 |
++ /* if symbol is found in another module, we probably do not want it */ |
151 |
++ ssize_t size = cygwin_conv_path (CCP_WIN_A_TO_POSIX, me32.szExePath, NULL, 0); |
152 |
++ char *posix = (char *) alloca (size); |
153 |
++ cygwin_conv_path (CCP_WIN_A_TO_POSIX, me32.szExePath, posix, size); |
154 |
++ if (g_strstr_len (posix, size, "/usr/lib") |
155 |
++ || g_strstr_len (posix, size, "/usr/local/lib")) |
156 |
++ p = NULL; |
157 |
++ else |
158 |
++#endif |
159 |
++ break; |
160 |
++ } |
161 |
+ } while (Module32Next (snapshot, &me32)); |
162 |
+ } |
163 |
+ |
164 |
+@@ -156,6 +202,13 @@ _g_module_symbol (gpointer handle, |
165 |
+ { |
166 |
+ gpointer p; |
167 |
+ |
168 |
++#ifdef G_WITH_CYGWIN |
169 |
++ p = dlsym (handle, symbol_name); |
170 |
++ if (!p) |
171 |
++ p = find_in_any_module (symbol_name); |
172 |
++ if (!p) |
173 |
++ g_module_set_error (fetch_dlerror (FALSE)); |
174 |
++#else |
175 |
+ if (handle == null_module_handle) |
176 |
+ { |
177 |
+ if ((p = GetProcAddress (GetModuleHandle (NULL), symbol_name)) == NULL) |
178 |
+@@ -166,6 +219,7 @@ _g_module_symbol (gpointer handle, |
179 |
+ |
180 |
+ if (!p) |
181 |
+ set_error (""); |
182 |
++#endif |
183 |
+ |
184 |
+ return p; |
185 |
+ } |
186 |
|
187 |
diff --git a/dev-libs/glib/glib-2.56.2.ebuild b/dev-libs/glib/glib-2.56.2.ebuild |
188 |
index d9775a178c..31cbe3d8a8 100644 |
189 |
--- a/dev-libs/glib/glib-2.56.2.ebuild |
190 |
+++ b/dev-libs/glib/glib-2.56.2.ebuild |
191 |
@@ -1,4 +1,4 @@ |
192 |
-# Copyright 1999-2018 Gentoo Foundation |
193 |
+# Copyright 1999-2019 Gentoo Authors |
194 |
# Distributed under the terms of the GNU General Public License v2 |
195 |
|
196 |
EAPI=6 |
197 |
@@ -16,10 +16,12 @@ DESCRIPTION="The GLib library of C routines" |
198 |
HOMEPAGE="https://www.gtk.org/" |
199 |
SRC_URI="${SRC_URI} |
200 |
https://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz" # pkg.m4 for eautoreconf |
201 |
-#needs update CYGWINPORTS_GITREV="07d4a86e74b9b12a562b57ce5fa3a275bf0fe774" |
202 |
+CYGWINPORTS_GITREV="3a873fdd1b9a9e649563fe8e6b8ae6951b0dd3be" |
203 |
|
204 |
[[ -n ${CYGWINPORTS_GITREV} ]] && |
205 |
-SRC_URI+=" elibc_Cygwin? ( https://github.com/cygwinports/glib2.0/archive/${CYGWINPORTS_GITREV}.zip )" |
206 |
+SRC_URI+=" elibc_Cygwin? ( |
207 |
+ https://github.com/cygwinports/glib2.0/archive/${CYGWINPORTS_GITREV}.zip |
208 |
+ -> ${PN}-cygwinports-${CYGWINPORTS_GITREV}.zip )" |
209 |
|
210 |
LICENSE="LGPL-2.1+" |
211 |
SLOT="2" |
212 |
@@ -123,15 +125,18 @@ src_prepare() { |
213 |
eapply "${FILESDIR}"/${PN}-2.54.3-external-gdbus-codegen.patch |
214 |
|
215 |
if [[ -n ${CYGWINPORTS_GITREV} ]] && use elibc_Cygwin; then |
216 |
- local p d="${WORKDIR}/glib2.0-${CYGWINPORTS_GITREV}" |
217 |
- for p in $( |
218 |
- eval "$(sed -ne '/PATCH_URI="/,/"/p' < "${d}"/glib2.0.cygport)" |
219 |
- echo ${PATCH_URI} |
220 |
- ); do |
221 |
- # Cygwin hasn't updated to 2.50.2 yet, which has patches merged. |
222 |
- [[ ${p} == 2.46-glocalfilemonitor.patch ]] && continue |
223 |
- epatch "${d}/${p}" |
224 |
- done |
225 |
+ local p d="${WORKDIR}/glib2.0-${CYGWINPORTS_GITREV}" |
226 |
+ for p in $( |
227 |
+ sed -ne '/PATCH_URI="/,/"/{s/.*="//;s/".*//;p}' \ |
228 |
+ < "${d}"/glib2.0.cygport |
229 |
+ ); do |
230 |
+ if [[ ${p} == 2.50-gmodule-cygwin.patch ]]; then |
231 |
+ # Cygwinports has not upgraded to 2.56 yet |
232 |
+ epatch "${FILESDIR}"/2.56-gmodule-cygwin.patch |
233 |
+ continue |
234 |
+ fi |
235 |
+ epatch "${d}/${p}" |
236 |
+ done |
237 |
fi |
238 |
|
239 |
# make default sane for us |