From 93f3c8903403c0fe18776a4605bc3ac9d0c868c8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 12:25:26 -0300 Subject: [PATCH] Debugging bundle script. --- configure.ac | 1 - src/include/config.h.in | 10 ++++------ win/bundle | 325 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ win/bundle.in | 314 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 4 files changed, 329 insertions(+), 321 deletions(-) create mode 100755 win/bundle delete mode 100755 win/bundle.in diff --git a/configure.ac b/configure.ac index 08f196e..9207b3d 100644 --- a/configure.ac +++ b/configure.ac @@ -74,7 +74,6 @@ case "$host" in AC_CONFIG_FILES(src/main/windows/resources.rc) AC_CONFIG_FILES(src/main/windows/app-manifest.xml) - AC_CONFIG_FILES(win/bundle) AC_CONFIG_FILES(win/pw3270.nsi) if test "$host_cpu" = "x86_64"; then diff --git a/src/include/config.h.in b/src/include/config.h.in index 955a717..6234a28 100644 --- a/src/include/config.h.in +++ b/src/include/config.h.in @@ -24,12 +24,12 @@ /* do we have malloc.h? */ #undef HAVE_MALLOC_H +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H -/* Define to 1 if you have the header file. */ -#undef HAVE_STDIO_H - /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H @@ -105,9 +105,7 @@ /* The schema path */ #undef PRODUCT_PATH -/* Define to 1 if all of the C90 standard headers exist (not just the ones - required in a freestanding environment). This macro is provided for - backward compatibility; new code need not use it. */ +/* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ diff --git a/win/bundle b/win/bundle new file mode 100755 index 0000000..8310995 --- /dev/null +++ b/win/bundle @@ -0,0 +1,325 @@ +#!/bin/bash +# +# SPDX-License-Identifier: LGPL-3.0-or-later +# +# Copyright (C) 2021 Perry Werneck +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . +# + +# +# Referencias: +# +# https://www.gtk.org/docs/installations/windows/ +# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format +# + +# Setup default paths +srcdir="$(dirname $(dirname $(readlink -f "${0}")))" + +if [ -z ${MINGW_PREFIX} ]; then + if [ -d "/usr/x86_64-w64-mingw32/sys-root/mingw" ]; then + MINGW_PREFIX="/usr/x86_64-w64-mingw32/sys-root/mingw" + PKG_CONFIG="/usr/bin/x86_64-w64-mingw32-pkg-config" + else + echo "Cant determine mingw prefix" + exit -1 + fi +else + PKG_CONFIG=${MINGW_PREFX}/bin/pkg-config +fi + +GTK_PREFIX=$(${PKG_CONFIG} --variable=prefix gtk+-3.0) +GTK_BINARY_VERSION=$(${PKG_CONFIG} --variable=gtk_binary_version gtk+-3.0) +GTK_LIBDIR=$(echo $(${PKG_CONFIG} --variable=libdir gtk+-3.0) | sed "s@^C:/@/c/@g") +GDK_LOADERS=$(echo $(${PKG_CONFIG} --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0) | sed -e "s@${GTK_PREFIX}@@g") + +buildroot=.build +bindir="${buildroot}${prefix}/bin" + +if [ -z "${WIN_ROOT}" ]; then + WIN_ROOT="/c/Windows" +fi + +export LANG=C + +install_bin() { + + mkdir -p "${bindir}" + + AGAIN=1 + until [ $AGAIN = 0 ]; do + + SOURCES=$(mktemp) + REQUIRES=$(mktemp) + + find "${buildroot}${prefix}" -iname "*.dll" > ${SOURCES} + find "${buildroot}${prefix}" -iname "*.exe" >> ${SOURCES} + + while read FILENAME + do + objdump -p ${FILENAME} | grep "DLL Name:" | cut -d: -f2 | tr "[:upper:]" "[:lower:]" >> ${REQUIRES} + done < ${SOURCES} + + libs_to_exclude=" + advapi32 + cfgmgr32 + comctl32 + comdlg32 + crypt32 + d3d8 + d3d9 + ddraw + dnsapi + dsound + dwmapi + gdi32 + gdiplus + glu32 + glut32 + imm32 + iphlpapi + kernel32 + ksuser + mpr + mscms + mscoree + msimg32 + msvcr71 + msvcr80 + msvcr90 + msvcrt + mswsock + netapi32 + odbc32 + ole32 + oleacc + oleaut32 + opengl32 + psapi + rpcrt4 + secur32 + setupapi + shell32 + shlwapi + user32 + usp10 + version + wininet + winmm + wldap32 + ws2_32 + wsock32 + winspool.drv + ntdll + winhttp + hid + " + + # Remove system DLLs from list + for i in $libs_to_exclude; do + sed -i -e "/${i}/d" ${REQUIRES} + done + + AGAIN=0 + while read FILENAME + do + + if [ ! -e "${bindir}/${FILENAME}" ]; then + + if [ -e ${prefix}/bin/${FILENAME} ]; then + + AGAIN=1 + cp -v "${prefix}/bin/${FILENAME}" "${bindir}/${FILENAME}" + if [ "$?" != "0" ]; then + exit -1 + fi + + elif [ -e ${prefix}/lib/${FILENAME} ]; then + + AGAIN=1 + cp -v "${prefix}/lib/${FILENAME}" "${bindir}/${FILENAME}" + if [ "$?" != "0" ]; then + exit -1 + fi + + elif [ -e "${WIN_ROOT}/System32/${FILENAME}" ]; then + + echo "Ignoring ${WIN_ROOT}/System32/${FILENAME}" + + else + + echo "Can't find ${prefix}/bin/${FILENAME} or ${WIN_ROOT}/System32/${FILENAME}" + find "${prefix}" -iname "${FILENAME}" + exit -1 + + fi + + fi + + done < ${REQUIRES} + + rm -f ${SOURCES} + rm -f ${REQUIRES} + + done + +} + +install_locale() { + + mkdir -p ${buildroot}${prefix}/share/locale/pt_BR/LC_MESSAGES + + locales=" + gettext-runtime.mo + gettext-tools.mo + glib20.mo + gtk30.mo + gtk30-properties.mo + " + + FILENAMES=$(mktemp) + for i in ${locales} + do + find "${prefix}/share/locale" -name ${i} >> ${FILENAMES} + done + + while read FILENAME + do + mkdir -p $(dirname "${buildroot}${FILENAME}") + cp -v "${FILENAME}" "${buildroot}${FILENAME}" + if [ "$?" != "0" ]; then + exit -1 + fi + done < ${FILENAMES} + rm -f ${FILENAMES} +} + +install_schemas() { + + mkdir -p ${buildroot}${prefix}/share/glib-2.0/schemas + + schemas=" + org.gtk.Settings.FileChooser.gschema.xml + gschema.dtd + " + + for schema in ${schemas} + do + cp -v "${prefix}/share/glib-2.0/schemas/${schema}" "${buildroot}${prefix}/share/glib-2.0/schemas" + if [ "$?" != "0" ]; then + exit -1 + fi + done + + glib-compile-schemas \ + --targetdir="${buildroot}${prefix}/share/glib-2.0/schemas" \ + "${buildroot}${prefix}/share/glib-2.0/schemas" + + if [ "$?" != "0" ]; then + exit -1 + fi +} + +install_theme() { + + mkdir -p "${buildroot}${prefix}/etc" + cp -rv "${prefix}/etc/gtk-3.0" "${buildroot}${prefix}/etc" + if [ "$?" != "0" ]; then + exit -1 + fi + + # https://stackoverflow.com/questions/37035936/how-to-get-native-windows-decorations-on-gtk3-on-windows-7-and-msys2 + mkdir -p ${buildroot}${prefix}/etc/gtk-3.0 + rm -f ${buildroot}${prefix}/etc/gtk-3.0/settings.ini + rm -f ${buildroot}${prefix}/etc/gtk-3.0/gtkrc + + echo "[Settings]" > ${buildroot}${prefix}/etc/gtk-3.0/settings.ini + echo "gtk-theme-name=${1}" >> ${buildroot}${prefix}/etc/gtk-3.0/settings.ini + + if [ -e "${srcdir}/win/gtk.css" ]; then + mkdir -p "${buildroot}${prefix}/share/themes/Default/gtk-3.0" + cp "${srcdir}/win/gtk.css" "${buildroot}${prefix}/share/themes/Default/gtk-3.0/gtk.css" + fi + +} + +install_icons() { + + mkdir -p "${buildroot}${prefix}/share/icons" + + if [ -d "${prefix}/share/icons/${1}" ]; then + + cp -rv "${prefix}/share/icons/${1}" "${buildroot}${prefix}/share/icons" + if [ "$?" != 0 ]; then + echo "Can´t copy ${1} icons" + exit -1 + fi + + elif [ -d "/usr/share/icons/${1}" ]; then + + cp -rv "/usr/share/icons/${1}" "${buildroot}${prefix}/share/icons" + if [ "$?" != 0 ]; then + echo "Can´t copy ${1} icons" + exit -1 + fi + + else + + echo "Can´t find ${1} icons" + exit -1 + + fi + +} + +install_loaders() { + + if [ -d "${prefix}${GDK_LOADERS}" ]; then + mkdir -p "${buildroot}/${prefix}${GDK_LOADERS}" + cp -rv ${prefix}${GDK_LOADERS}/* "${buildroot}/${prefix}${GDK_LOADERS}" + if [ "$?" != "0" ]; then + exit -1 + fi + + find ${buildroot}/${prefix}${GDK_LOADERS} -iname "*.a" -exec rm -f {} \; + + fi + +} + +unpack() { + + for package in ${srcdir}/*.pkg.tar.zst + do + echo ${package} + tar -C ${buildroot} --zstd -xf ${package} + if [ "$?" != "0" ]; then + echo "Error unpacking ${package}" + exit -1 + fi + done + +} + +unpack + +install_loaders +install_bin +install_locale +install_schemas +install_theme "Adwaita" +install_icons "Adwaita" + + diff --git a/win/bundle.in b/win/bundle.in deleted file mode 100755 index 65c34e2..0000000 --- a/win/bundle.in +++ /dev/null @@ -1,314 +0,0 @@ -#!/bin/bash -# -# SPDX-License-Identifier: LGPL-3.0-or-later -# -# Copyright (C) 2021 Perry Werneck -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . -# - -# -# Referencias: -# -# https://www.gtk.org/docs/installations/windows/ -# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format -# - -# Setup default paths -srcdir="$(dirname $(dirname $(readlink -f "${0}")))" -prefix="@prefix@" - -GTK_PREFIX=$(@PKG_CONFIG@ --variable=prefix gtk+-3.0) -GTK_BINARY_VERSION=$(@PKG_CONFIG@ --variable=gtk_binary_version gtk+-3.0) -GTK_LIBDIR=$(echo $(@PKG_CONFIG@ --variable=libdir gtk+-3.0) | sed "s@^C:/@/c/@g") -GDK_LOADERS=$(echo $(@PKG_CONFIG@ --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0) | sed -e "s@${GTK_PREFIX}@@g") - -buildroot=.build -bindir="${buildroot}${prefix}/bin" - -if [ -z "${WIN_ROOT}" ]; then - WIN_ROOT="/c/Windows" -fi - -export LANG=C - -install_bin() { - - mkdir -p "${bindir}" - - AGAIN=1 - until [ $AGAIN = 0 ]; do - - SOURCES=$(mktemp) - REQUIRES=$(mktemp) - - find "${buildroot}${prefix}" -iname "*.dll" > ${SOURCES} - find "${buildroot}${prefix}" -iname "*.exe" >> ${SOURCES} - - while read FILENAME - do - objdump -p ${FILENAME} | grep "DLL Name:" | cut -d: -f2 | tr "[:upper:]" "[:lower:]" >> ${REQUIRES} - done < ${SOURCES} - - libs_to_exclude=" - advapi32 - cfgmgr32 - comctl32 - comdlg32 - crypt32 - d3d8 - d3d9 - ddraw - dnsapi - dsound - dwmapi - gdi32 - gdiplus - glu32 - glut32 - imm32 - iphlpapi - kernel32 - ksuser - mpr - mscms - mscoree - msimg32 - msvcr71 - msvcr80 - msvcr90 - msvcrt - mswsock - netapi32 - odbc32 - ole32 - oleacc - oleaut32 - opengl32 - psapi - rpcrt4 - secur32 - setupapi - shell32 - shlwapi - user32 - usp10 - version - wininet - winmm - wldap32 - ws2_32 - wsock32 - winspool.drv - ntdll - winhttp - hid - " - - # Remove system DLLs from list - for i in $libs_to_exclude; do - sed -i -e "/${i}/d" ${REQUIRES} - done - - AGAIN=0 - while read FILENAME - do - - if [ ! -e "${bindir}/${FILENAME}" ]; then - - if [ -e ${prefix}/bin/${FILENAME} ]; then - - AGAIN=1 - cp -v "${prefix}/bin/${FILENAME}" "${bindir}/${FILENAME}" - if [ "$?" != "0" ]; then - exit -1 - fi - - elif [ -e ${prefix}/lib/${FILENAME} ]; then - - AGAIN=1 - cp -v "${prefix}/lib/${FILENAME}" "${bindir}/${FILENAME}" - if [ "$?" != "0" ]; then - exit -1 - fi - - elif [ -e "${WIN_ROOT}/System32/${FILENAME}" ]; then - - echo "Ignoring ${WIN_ROOT}/System32/${FILENAME}" - - else - - echo "Can't find ${prefix}/bin/${FILENAME} or ${WIN_ROOT}/System32/${FILENAME}" - find "${prefix}" -iname "${FILENAME}" - exit -1 - - fi - - fi - - done < ${REQUIRES} - - rm -f ${SOURCES} - rm -f ${REQUIRES} - - done - -} - -install_locale() { - - mkdir -p ${buildroot}${prefix}/share/locale/pt_BR/LC_MESSAGES - - locales=" - gettext-runtime.mo - gettext-tools.mo - glib20.mo - gtk30.mo - gtk30-properties.mo - " - - FILENAMES=$(mktemp) - for i in ${locales} - do - find "${prefix}/share/locale" -name ${i} >> ${FILENAMES} - done - - while read FILENAME - do - mkdir -p $(dirname "${buildroot}${FILENAME}") - cp -v "${FILENAME}" "${buildroot}${FILENAME}" - if [ "$?" != "0" ]; then - exit -1 - fi - done < ${FILENAMES} - rm -f ${FILENAMES} -} - -install_schemas() { - - mkdir -p ${buildroot}${prefix}/share/glib-2.0/schemas - - schemas=" - org.gtk.Settings.FileChooser.gschema.xml - gschema.dtd - " - - for schema in ${schemas} - do - cp -v "${prefix}/share/glib-2.0/schemas/${schema}" "${buildroot}${prefix}/share/glib-2.0/schemas" - if [ "$?" != "0" ]; then - exit -1 - fi - done - - glib-compile-schemas \ - --targetdir="${buildroot}${prefix}/share/glib-2.0/schemas" \ - "${buildroot}${prefix}/share/glib-2.0/schemas" - - if [ "$?" != "0" ]; then - exit -1 - fi -} - -install_theme() { - - mkdir -p "${buildroot}${prefix}/etc" - cp -rv "${prefix}/etc/gtk-3.0" "${buildroot}${prefix}/etc" - if [ "$?" != "0" ]; then - exit -1 - fi - - # https://stackoverflow.com/questions/37035936/how-to-get-native-windows-decorations-on-gtk3-on-windows-7-and-msys2 - mkdir -p ${buildroot}${prefix}/etc/gtk-3.0 - rm -f ${buildroot}${prefix}/etc/gtk-3.0/settings.ini - rm -f ${buildroot}${prefix}/etc/gtk-3.0/gtkrc - - echo "[Settings]" > ${buildroot}${prefix}/etc/gtk-3.0/settings.ini - echo "gtk-theme-name=${1}" >> ${buildroot}${prefix}/etc/gtk-3.0/settings.ini - - if [ -e "${srcdir}/win/gtk.css" ]; then - mkdir -p "${buildroot}${prefix}/share/themes/Default/gtk-3.0" - cp "${srcdir}/win/gtk.css" "${buildroot}${prefix}/share/themes/Default/gtk-3.0/gtk.css" - fi - -} - -install_icons() { - - mkdir -p "${buildroot}${prefix}/share/icons" - - if [ -d "${prefix}/share/icons/${1}" ]; then - - cp -rv "${prefix}/share/icons/${1}" "${buildroot}${prefix}/share/icons" - if [ "$?" != 0 ]; then - echo "Can´t copy ${1} icons" - exit -1 - fi - - elif [ -d "/usr/share/icons/${1}" ]; then - - cp -rv "/usr/share/icons/${1}" "${buildroot}${prefix}/share/icons" - if [ "$?" != 0 ]; then - echo "Can´t copy ${1} icons" - exit -1 - fi - - else - - echo "Can´t find ${1} icons" - exit -1 - - fi - -} - -install_loaders() { - - if [ -d "${prefix}${GDK_LOADERS}" ]; then - mkdir -p "${buildroot}/${prefix}${GDK_LOADERS}" - cp -rv ${prefix}${GDK_LOADERS}/* "${buildroot}/${prefix}${GDK_LOADERS}" - if [ "$?" != "0" ]; then - exit -1 - fi - - find ${buildroot}/${prefix}${GDK_LOADERS} -iname "*.a" -exec rm -f {} \; - - fi - -} - -unpack() { - - for package in ${srcdir}/*.pkg.tar.zst - do - echo ${package} - tar -C ${buildroot} --zstd -xf ${package} - if [ "$?" != "0" ]; then - echo "Error unpacking ${package}" - exit -1 - fi - done - -} - -unpack - -install_loaders -install_bin -install_locale -install_schemas -install_theme "Adwaita" -install_icons "Adwaita" - - -- libgit2 0.21.2