Commit 93f3c8903403c0fe18776a4605bc3ac9d0c868c8

Authored by Perry Werneck
1 parent 6b9a2fd4
Exists in develop

Debugging bundle script.

configure.ac
... ... @@ -74,7 +74,6 @@ case "$host" in
74 74 AC_CONFIG_FILES(src/main/windows/resources.rc)
75 75 AC_CONFIG_FILES(src/main/windows/app-manifest.xml)
76 76  
77   - AC_CONFIG_FILES(win/bundle)
78 77 AC_CONFIG_FILES(win/pw3270.nsi)
79 78  
80 79 if test "$host_cpu" = "x86_64"; then
... ...
src/include/config.h.in
... ... @@ -24,12 +24,12 @@
24 24 /* do we have malloc.h? */
25 25 #undef HAVE_MALLOC_H
26 26  
  27 +/* Define to 1 if you have the <memory.h> header file. */
  28 +#undef HAVE_MEMORY_H
  29 +
27 30 /* Define to 1 if you have the <stdint.h> header file. */
28 31 #undef HAVE_STDINT_H
29 32  
30   -/* Define to 1 if you have the <stdio.h> header file. */
31   -#undef HAVE_STDIO_H
32   -
33 33 /* Define to 1 if you have the <stdlib.h> header file. */
34 34 #undef HAVE_STDLIB_H
35 35  
... ... @@ -105,9 +105,7 @@
105 105 /* The schema path */
106 106 #undef PRODUCT_PATH
107 107  
108   -/* Define to 1 if all of the C90 standard headers exist (not just the ones
109   - required in a freestanding environment). This macro is provided for
110   - backward compatibility; new code need not use it. */
  108 +/* Define to 1 if you have the ANSI C header files. */
111 109 #undef STDC_HEADERS
112 110  
113 111 /* Version number of package */
... ...
win/bundle 0 → 100755
... ... @@ -0,0 +1,325 @@
  1 +#!/bin/bash
  2 +#
  3 +# SPDX-License-Identifier: LGPL-3.0-or-later
  4 +#
  5 +# Copyright (C) 2021 Perry Werneck <perry.werneck@gmail.com>
  6 +#
  7 +# This program is free software: you can redistribute it and/or modify
  8 +# it under the terms of the GNU Lesser General Public License as published
  9 +# by the Free Software Foundation, either version 3 of the License, or
  10 +# (at your option) any later version.
  11 +#
  12 +# This program is distributed in the hope that it will be useful,
  13 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15 +# GNU General Public License for more details.
  16 +#
  17 +# You should have received a copy of the GNU Lesser General Public License
  18 +# along with this program. If not, see <https://www.gnu.org/licenses/>.
  19 +#
  20 +
  21 +#
  22 +# Referencias:
  23 +#
  24 +# https://www.gtk.org/docs/installations/windows/
  25 +# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format
  26 +#
  27 +
  28 +# Setup default paths
  29 +srcdir="$(dirname $(dirname $(readlink -f "${0}")))"
  30 +
  31 +if [ -z ${MINGW_PREFIX} ]; then
  32 + if [ -d "/usr/x86_64-w64-mingw32/sys-root/mingw" ]; then
  33 + MINGW_PREFIX="/usr/x86_64-w64-mingw32/sys-root/mingw"
  34 + PKG_CONFIG="/usr/bin/x86_64-w64-mingw32-pkg-config"
  35 + else
  36 + echo "Cant determine mingw prefix"
  37 + exit -1
  38 + fi
  39 +else
  40 + PKG_CONFIG=${MINGW_PREFX}/bin/pkg-config
  41 +fi
  42 +
  43 +GTK_PREFIX=$(${PKG_CONFIG} --variable=prefix gtk+-3.0)
  44 +GTK_BINARY_VERSION=$(${PKG_CONFIG} --variable=gtk_binary_version gtk+-3.0)
  45 +GTK_LIBDIR=$(echo $(${PKG_CONFIG} --variable=libdir gtk+-3.0) | sed "s@^C:/@/c/@g")
  46 +GDK_LOADERS=$(echo $(${PKG_CONFIG} --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0) | sed -e "s@${GTK_PREFIX}@@g")
  47 +
  48 +buildroot=.build
  49 +bindir="${buildroot}${prefix}/bin"
  50 +
  51 +if [ -z "${WIN_ROOT}" ]; then
  52 + WIN_ROOT="/c/Windows"
  53 +fi
  54 +
  55 +export LANG=C
  56 +
  57 +install_bin() {
  58 +
  59 + mkdir -p "${bindir}"
  60 +
  61 + AGAIN=1
  62 + until [ $AGAIN = 0 ]; do
  63 +
  64 + SOURCES=$(mktemp)
  65 + REQUIRES=$(mktemp)
  66 +
  67 + find "${buildroot}${prefix}" -iname "*.dll" > ${SOURCES}
  68 + find "${buildroot}${prefix}" -iname "*.exe" >> ${SOURCES}
  69 +
  70 + while read FILENAME
  71 + do
  72 + objdump -p ${FILENAME} | grep "DLL Name:" | cut -d: -f2 | tr "[:upper:]" "[:lower:]" >> ${REQUIRES}
  73 + done < ${SOURCES}
  74 +
  75 + libs_to_exclude="
  76 + advapi32
  77 + cfgmgr32
  78 + comctl32
  79 + comdlg32
  80 + crypt32
  81 + d3d8
  82 + d3d9
  83 + ddraw
  84 + dnsapi
  85 + dsound
  86 + dwmapi
  87 + gdi32
  88 + gdiplus
  89 + glu32
  90 + glut32
  91 + imm32
  92 + iphlpapi
  93 + kernel32
  94 + ksuser
  95 + mpr
  96 + mscms
  97 + mscoree
  98 + msimg32
  99 + msvcr71
  100 + msvcr80
  101 + msvcr90
  102 + msvcrt
  103 + mswsock
  104 + netapi32
  105 + odbc32
  106 + ole32
  107 + oleacc
  108 + oleaut32
  109 + opengl32
  110 + psapi
  111 + rpcrt4
  112 + secur32
  113 + setupapi
  114 + shell32
  115 + shlwapi
  116 + user32
  117 + usp10
  118 + version
  119 + wininet
  120 + winmm
  121 + wldap32
  122 + ws2_32
  123 + wsock32
  124 + winspool.drv
  125 + ntdll
  126 + winhttp
  127 + hid
  128 + "
  129 +
  130 + # Remove system DLLs from list
  131 + for i in $libs_to_exclude; do
  132 + sed -i -e "/${i}/d" ${REQUIRES}
  133 + done
  134 +
  135 + AGAIN=0
  136 + while read FILENAME
  137 + do
  138 +
  139 + if [ ! -e "${bindir}/${FILENAME}" ]; then
  140 +
  141 + if [ -e ${prefix}/bin/${FILENAME} ]; then
  142 +
  143 + AGAIN=1
  144 + cp -v "${prefix}/bin/${FILENAME}" "${bindir}/${FILENAME}"
  145 + if [ "$?" != "0" ]; then
  146 + exit -1
  147 + fi
  148 +
  149 + elif [ -e ${prefix}/lib/${FILENAME} ]; then
  150 +
  151 + AGAIN=1
  152 + cp -v "${prefix}/lib/${FILENAME}" "${bindir}/${FILENAME}"
  153 + if [ "$?" != "0" ]; then
  154 + exit -1
  155 + fi
  156 +
  157 + elif [ -e "${WIN_ROOT}/System32/${FILENAME}" ]; then
  158 +
  159 + echo "Ignoring ${WIN_ROOT}/System32/${FILENAME}"
  160 +
  161 + else
  162 +
  163 + echo "Can't find ${prefix}/bin/${FILENAME} or ${WIN_ROOT}/System32/${FILENAME}"
  164 + find "${prefix}" -iname "${FILENAME}"
  165 + exit -1
  166 +
  167 + fi
  168 +
  169 + fi
  170 +
  171 + done < ${REQUIRES}
  172 +
  173 + rm -f ${SOURCES}
  174 + rm -f ${REQUIRES}
  175 +
  176 + done
  177 +
  178 +}
  179 +
  180 +install_locale() {
  181 +
  182 + mkdir -p ${buildroot}${prefix}/share/locale/pt_BR/LC_MESSAGES
  183 +
  184 + locales="
  185 + gettext-runtime.mo
  186 + gettext-tools.mo
  187 + glib20.mo
  188 + gtk30.mo
  189 + gtk30-properties.mo
  190 + "
  191 +
  192 + FILENAMES=$(mktemp)
  193 + for i in ${locales}
  194 + do
  195 + find "${prefix}/share/locale" -name ${i} >> ${FILENAMES}
  196 + done
  197 +
  198 + while read FILENAME
  199 + do
  200 + mkdir -p $(dirname "${buildroot}${FILENAME}")
  201 + cp -v "${FILENAME}" "${buildroot}${FILENAME}"
  202 + if [ "$?" != "0" ]; then
  203 + exit -1
  204 + fi
  205 + done < ${FILENAMES}
  206 + rm -f ${FILENAMES}
  207 +}
  208 +
  209 +install_schemas() {
  210 +
  211 + mkdir -p ${buildroot}${prefix}/share/glib-2.0/schemas
  212 +
  213 + schemas="
  214 + org.gtk.Settings.FileChooser.gschema.xml
  215 + gschema.dtd
  216 + "
  217 +
  218 + for schema in ${schemas}
  219 + do
  220 + cp -v "${prefix}/share/glib-2.0/schemas/${schema}" "${buildroot}${prefix}/share/glib-2.0/schemas"
  221 + if [ "$?" != "0" ]; then
  222 + exit -1
  223 + fi
  224 + done
  225 +
  226 + glib-compile-schemas \
  227 + --targetdir="${buildroot}${prefix}/share/glib-2.0/schemas" \
  228 + "${buildroot}${prefix}/share/glib-2.0/schemas"
  229 +
  230 + if [ "$?" != "0" ]; then
  231 + exit -1
  232 + fi
  233 +}
  234 +
  235 +install_theme() {
  236 +
  237 + mkdir -p "${buildroot}${prefix}/etc"
  238 + cp -rv "${prefix}/etc/gtk-3.0" "${buildroot}${prefix}/etc"
  239 + if [ "$?" != "0" ]; then
  240 + exit -1
  241 + fi
  242 +
  243 + # https://stackoverflow.com/questions/37035936/how-to-get-native-windows-decorations-on-gtk3-on-windows-7-and-msys2
  244 + mkdir -p ${buildroot}${prefix}/etc/gtk-3.0
  245 + rm -f ${buildroot}${prefix}/etc/gtk-3.0/settings.ini
  246 + rm -f ${buildroot}${prefix}/etc/gtk-3.0/gtkrc
  247 +
  248 + echo "[Settings]" > ${buildroot}${prefix}/etc/gtk-3.0/settings.ini
  249 + echo "gtk-theme-name=${1}" >> ${buildroot}${prefix}/etc/gtk-3.0/settings.ini
  250 +
  251 + if [ -e "${srcdir}/win/gtk.css" ]; then
  252 + mkdir -p "${buildroot}${prefix}/share/themes/Default/gtk-3.0"
  253 + cp "${srcdir}/win/gtk.css" "${buildroot}${prefix}/share/themes/Default/gtk-3.0/gtk.css"
  254 + fi
  255 +
  256 +}
  257 +
  258 +install_icons() {
  259 +
  260 + mkdir -p "${buildroot}${prefix}/share/icons"
  261 +
  262 + if [ -d "${prefix}/share/icons/${1}" ]; then
  263 +
  264 + cp -rv "${prefix}/share/icons/${1}" "${buildroot}${prefix}/share/icons"
  265 + if [ "$?" != 0 ]; then
  266 + echo "Can´t copy ${1} icons"
  267 + exit -1
  268 + fi
  269 +
  270 + elif [ -d "/usr/share/icons/${1}" ]; then
  271 +
  272 + cp -rv "/usr/share/icons/${1}" "${buildroot}${prefix}/share/icons"
  273 + if [ "$?" != 0 ]; then
  274 + echo "Can´t copy ${1} icons"
  275 + exit -1
  276 + fi
  277 +
  278 + else
  279 +
  280 + echo "Can´t find ${1} icons"
  281 + exit -1
  282 +
  283 + fi
  284 +
  285 +}
  286 +
  287 +install_loaders() {
  288 +
  289 + if [ -d "${prefix}${GDK_LOADERS}" ]; then
  290 + mkdir -p "${buildroot}/${prefix}${GDK_LOADERS}"
  291 + cp -rv ${prefix}${GDK_LOADERS}/* "${buildroot}/${prefix}${GDK_LOADERS}"
  292 + if [ "$?" != "0" ]; then
  293 + exit -1
  294 + fi
  295 +
  296 + find ${buildroot}/${prefix}${GDK_LOADERS} -iname "*.a" -exec rm -f {} \;
  297 +
  298 + fi
  299 +
  300 +}
  301 +
  302 +unpack() {
  303 +
  304 + for package in ${srcdir}/*.pkg.tar.zst
  305 + do
  306 + echo ${package}
  307 + tar -C ${buildroot} --zstd -xf ${package}
  308 + if [ "$?" != "0" ]; then
  309 + echo "Error unpacking ${package}"
  310 + exit -1
  311 + fi
  312 + done
  313 +
  314 +}
  315 +
  316 +unpack
  317 +
  318 +install_loaders
  319 +install_bin
  320 +install_locale
  321 +install_schemas
  322 +install_theme "Adwaita"
  323 +install_icons "Adwaita"
  324 +
  325 +
... ...
win/bundle.in
... ... @@ -1,314 +0,0 @@
1   -#!/bin/bash
2   -#
3   -# SPDX-License-Identifier: LGPL-3.0-or-later
4   -#
5   -# Copyright (C) 2021 Perry Werneck <perry.werneck@gmail.com>
6   -#
7   -# This program is free software: you can redistribute it and/or modify
8   -# it under the terms of the GNU Lesser General Public License as published
9   -# by the Free Software Foundation, either version 3 of the License, or
10   -# (at your option) any later version.
11   -#
12   -# This program is distributed in the hope that it will be useful,
13   -# but WITHOUT ANY WARRANTY; without even the implied warranty of
14   -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15   -# GNU General Public License for more details.
16   -#
17   -# You should have received a copy of the GNU Lesser General Public License
18   -# along with this program. If not, see <https://www.gnu.org/licenses/>.
19   -#
20   -
21   -#
22   -# Referencias:
23   -#
24   -# https://www.gtk.org/docs/installations/windows/
25   -# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format
26   -#
27   -
28   -# Setup default paths
29   -srcdir="$(dirname $(dirname $(readlink -f "${0}")))"
30   -prefix="@prefix@"
31   -
32   -GTK_PREFIX=$(@PKG_CONFIG@ --variable=prefix gtk+-3.0)
33   -GTK_BINARY_VERSION=$(@PKG_CONFIG@ --variable=gtk_binary_version gtk+-3.0)
34   -GTK_LIBDIR=$(echo $(@PKG_CONFIG@ --variable=libdir gtk+-3.0) | sed "s@^C:/@/c/@g")
35   -GDK_LOADERS=$(echo $(@PKG_CONFIG@ --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0) | sed -e "s@${GTK_PREFIX}@@g")
36   -
37   -buildroot=.build
38   -bindir="${buildroot}${prefix}/bin"
39   -
40   -if [ -z "${WIN_ROOT}" ]; then
41   - WIN_ROOT="/c/Windows"
42   -fi
43   -
44   -export LANG=C
45   -
46   -install_bin() {
47   -
48   - mkdir -p "${bindir}"
49   -
50   - AGAIN=1
51   - until [ $AGAIN = 0 ]; do
52   -
53   - SOURCES=$(mktemp)
54   - REQUIRES=$(mktemp)
55   -
56   - find "${buildroot}${prefix}" -iname "*.dll" > ${SOURCES}
57   - find "${buildroot}${prefix}" -iname "*.exe" >> ${SOURCES}
58   -
59   - while read FILENAME
60   - do
61   - objdump -p ${FILENAME} | grep "DLL Name:" | cut -d: -f2 | tr "[:upper:]" "[:lower:]" >> ${REQUIRES}
62   - done < ${SOURCES}
63   -
64   - libs_to_exclude="
65   - advapi32
66   - cfgmgr32
67   - comctl32
68   - comdlg32
69   - crypt32
70   - d3d8
71   - d3d9
72   - ddraw
73   - dnsapi
74   - dsound
75   - dwmapi
76   - gdi32
77   - gdiplus
78   - glu32
79   - glut32
80   - imm32
81   - iphlpapi
82   - kernel32
83   - ksuser
84   - mpr
85   - mscms
86   - mscoree
87   - msimg32
88   - msvcr71
89   - msvcr80
90   - msvcr90
91   - msvcrt
92   - mswsock
93   - netapi32
94   - odbc32
95   - ole32
96   - oleacc
97   - oleaut32
98   - opengl32
99   - psapi
100   - rpcrt4
101   - secur32
102   - setupapi
103   - shell32
104   - shlwapi
105   - user32
106   - usp10
107   - version
108   - wininet
109   - winmm
110   - wldap32
111   - ws2_32
112   - wsock32
113   - winspool.drv
114   - ntdll
115   - winhttp
116   - hid
117   - "
118   -
119   - # Remove system DLLs from list
120   - for i in $libs_to_exclude; do
121   - sed -i -e "/${i}/d" ${REQUIRES}
122   - done
123   -
124   - AGAIN=0
125   - while read FILENAME
126   - do
127   -
128   - if [ ! -e "${bindir}/${FILENAME}" ]; then
129   -
130   - if [ -e ${prefix}/bin/${FILENAME} ]; then
131   -
132   - AGAIN=1
133   - cp -v "${prefix}/bin/${FILENAME}" "${bindir}/${FILENAME}"
134   - if [ "$?" != "0" ]; then
135   - exit -1
136   - fi
137   -
138   - elif [ -e ${prefix}/lib/${FILENAME} ]; then
139   -
140   - AGAIN=1
141   - cp -v "${prefix}/lib/${FILENAME}" "${bindir}/${FILENAME}"
142   - if [ "$?" != "0" ]; then
143   - exit -1
144   - fi
145   -
146   - elif [ -e "${WIN_ROOT}/System32/${FILENAME}" ]; then
147   -
148   - echo "Ignoring ${WIN_ROOT}/System32/${FILENAME}"
149   -
150   - else
151   -
152   - echo "Can't find ${prefix}/bin/${FILENAME} or ${WIN_ROOT}/System32/${FILENAME}"
153   - find "${prefix}" -iname "${FILENAME}"
154   - exit -1
155   -
156   - fi
157   -
158   - fi
159   -
160   - done < ${REQUIRES}
161   -
162   - rm -f ${SOURCES}
163   - rm -f ${REQUIRES}
164   -
165   - done
166   -
167   -}
168   -
169   -install_locale() {
170   -
171   - mkdir -p ${buildroot}${prefix}/share/locale/pt_BR/LC_MESSAGES
172   -
173   - locales="
174   - gettext-runtime.mo
175   - gettext-tools.mo
176   - glib20.mo
177   - gtk30.mo
178   - gtk30-properties.mo
179   - "
180   -
181   - FILENAMES=$(mktemp)
182   - for i in ${locales}
183   - do
184   - find "${prefix}/share/locale" -name ${i} >> ${FILENAMES}
185   - done
186   -
187   - while read FILENAME
188   - do
189   - mkdir -p $(dirname "${buildroot}${FILENAME}")
190   - cp -v "${FILENAME}" "${buildroot}${FILENAME}"
191   - if [ "$?" != "0" ]; then
192   - exit -1
193   - fi
194   - done < ${FILENAMES}
195   - rm -f ${FILENAMES}
196   -}
197   -
198   -install_schemas() {
199   -
200   - mkdir -p ${buildroot}${prefix}/share/glib-2.0/schemas
201   -
202   - schemas="
203   - org.gtk.Settings.FileChooser.gschema.xml
204   - gschema.dtd
205   - "
206   -
207   - for schema in ${schemas}
208   - do
209   - cp -v "${prefix}/share/glib-2.0/schemas/${schema}" "${buildroot}${prefix}/share/glib-2.0/schemas"
210   - if [ "$?" != "0" ]; then
211   - exit -1
212   - fi
213   - done
214   -
215   - glib-compile-schemas \
216   - --targetdir="${buildroot}${prefix}/share/glib-2.0/schemas" \
217   - "${buildroot}${prefix}/share/glib-2.0/schemas"
218   -
219   - if [ "$?" != "0" ]; then
220   - exit -1
221   - fi
222   -}
223   -
224   -install_theme() {
225   -
226   - mkdir -p "${buildroot}${prefix}/etc"
227   - cp -rv "${prefix}/etc/gtk-3.0" "${buildroot}${prefix}/etc"
228   - if [ "$?" != "0" ]; then
229   - exit -1
230   - fi
231   -
232   - # https://stackoverflow.com/questions/37035936/how-to-get-native-windows-decorations-on-gtk3-on-windows-7-and-msys2
233   - mkdir -p ${buildroot}${prefix}/etc/gtk-3.0
234   - rm -f ${buildroot}${prefix}/etc/gtk-3.0/settings.ini
235   - rm -f ${buildroot}${prefix}/etc/gtk-3.0/gtkrc
236   -
237   - echo "[Settings]" > ${buildroot}${prefix}/etc/gtk-3.0/settings.ini
238   - echo "gtk-theme-name=${1}" >> ${buildroot}${prefix}/etc/gtk-3.0/settings.ini
239   -
240   - if [ -e "${srcdir}/win/gtk.css" ]; then
241   - mkdir -p "${buildroot}${prefix}/share/themes/Default/gtk-3.0"
242   - cp "${srcdir}/win/gtk.css" "${buildroot}${prefix}/share/themes/Default/gtk-3.0/gtk.css"
243   - fi
244   -
245   -}
246   -
247   -install_icons() {
248   -
249   - mkdir -p "${buildroot}${prefix}/share/icons"
250   -
251   - if [ -d "${prefix}/share/icons/${1}" ]; then
252   -
253   - cp -rv "${prefix}/share/icons/${1}" "${buildroot}${prefix}/share/icons"
254   - if [ "$?" != 0 ]; then
255   - echo "Can´t copy ${1} icons"
256   - exit -1
257   - fi
258   -
259   - elif [ -d "/usr/share/icons/${1}" ]; then
260   -
261   - cp -rv "/usr/share/icons/${1}" "${buildroot}${prefix}/share/icons"
262   - if [ "$?" != 0 ]; then
263   - echo "Can´t copy ${1} icons"
264   - exit -1
265   - fi
266   -
267   - else
268   -
269   - echo "Can´t find ${1} icons"
270   - exit -1
271   -
272   - fi
273   -
274   -}
275   -
276   -install_loaders() {
277   -
278   - if [ -d "${prefix}${GDK_LOADERS}" ]; then
279   - mkdir -p "${buildroot}/${prefix}${GDK_LOADERS}"
280   - cp -rv ${prefix}${GDK_LOADERS}/* "${buildroot}/${prefix}${GDK_LOADERS}"
281   - if [ "$?" != "0" ]; then
282   - exit -1
283   - fi
284   -
285   - find ${buildroot}/${prefix}${GDK_LOADERS} -iname "*.a" -exec rm -f {} \;
286   -
287   - fi
288   -
289   -}
290   -
291   -unpack() {
292   -
293   - for package in ${srcdir}/*.pkg.tar.zst
294   - do
295   - echo ${package}
296   - tar -C ${buildroot} --zstd -xf ${package}
297   - if [ "$?" != "0" ]; then
298   - echo "Error unpacking ${package}"
299   - exit -1
300   - fi
301   - done
302   -
303   -}
304   -
305   -unpack
306   -
307   -install_loaders
308   -install_bin
309   -install_locale
310   -install_schemas
311   -install_theme "Adwaita"
312   -install_icons "Adwaita"
313   -
314   -