From 3202116c43cf948bae13ab4db4bdf770124c36e9 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 16 Jan 2023 12:55:12 -0300 Subject: [PATCH 001/186] Updating flathub manifest. --- flathub/br.app.pw3270.terminal.yml | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/flathub/br.app.pw3270.terminal.yml b/flathub/br.app.pw3270.terminal.yml index 872e81df..4fd4089c 100644 --- a/flathub/br.app.pw3270.terminal.yml +++ b/flathub/br.app.pw3270.terminal.yml @@ -22,33 +22,22 @@ cleanup: modules: - name: lib3270 buildsystem: autotools - build-commands: - - NOCONFIGURE=1 ./autogen.sh - - ./configure --prefix=/app --with-product-id="br.app.pw3270" - - make all + config-opts: --with-product-id="br.app.pw3270" sources: - type: git - branch: stable + tag: "5.4" url: https://github.com/PerryWerneck/lib3270 - name: libv3270 buildsystem: autotools - build-commands: - - NOCONFIGURE=1 ./autogen.sh - - ./configure --prefix=/app PKG_CONFIG_PATH=/app/lib/pkgconfig CFLAGS=-I/app/include LDFLAGS=-L/app/lib - - make all sources: - type: git - branch: stable + tag: "5.4" url: https://github.com/PerryWerneck/libv3270 - name: pw3270 buildsystem: autotools - build-commands: - - NOCONFIGURE=1 ./autogen.sh - - ./configure --prefix=/app PKG_CONFIG_PATH=/app/lib/pkgconfig CFLAGS=-I/app/usr/include LDFLAGS=-L/app/lib - - make all sources: - type: git - branch: stable + tag: "5.4" url: https://github.com/PerryWerneck/pw3270 From 95e3d7e761602ad9f0c8ffdefe77185daf0d7368 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 08:32:34 -0300 Subject: [PATCH 002/186] Updating plugin path. --- Makefile.in | 4 +- autogen.sh | 55 +++------- configure.ac | 42 ++++---- pw3270.cbp | 17 +++ src/include/config.h.in | 149 ++++++++++++++++++-------- src/objects/application/application.c | 2 +- 6 files changed, 157 insertions(+), 112 deletions(-) diff --git a/Makefile.in b/Makefile.in index 7b710212..0a989549 100644 --- a/Makefile.in +++ b/Makefile.in @@ -288,7 +288,7 @@ install-application: \ install-icons @$(MKDIR) \ - $(DESTDIR)$(libdir)/$(PRODUCT_NAME)-plugins + $(DESTDIR)@PLUGIN_DIR@ @$(INSTALL_DATA) \ $(srcdir)/ui/@OSNAME@.ui.xml \ @@ -300,7 +300,7 @@ install-application: \ install-linux-application: \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ - @$(MKDIR) \ + @$(MKDIR) \ $(DESTDIR)$(bindir) @$(INSTALL_PROGRAM) \ diff --git a/autogen.sh b/autogen.sh index f85ca871..f25ca55a 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,45 +1,19 @@ #!/bin/bash -# SPDX-License-Identifier: LGPL-3.0-or-later -# -# Copyright (C) 2008 Banco do Brasil S.A. -# -# 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 . -# builddir=${PWD} -test -n "$srcdir" || srcdir=`dirname "$0"` -test -n "$srcdir" || srcdir=. +test -n "$srcdir" || srcdir=$(readlink -f $(dirname "$0")) +test -n "$srcdir" || srcdir=$(readlink -f .) -cd "$srcdir" +cd ${srcdir} -mkdir -p scripts +mkdir -p ./scripts mkdir -p m4 -LIBTOOLIZE=$(which libtoolize) -if [ -z ${LIBTOOLIZE} ]; then - LIBTOOLIZE=$(which glibtoolize) -fi -if [ -z ${LIBTOOLIZE} ]; then - echo "Can't find libtoolize" - exit -1 -fi - -${LIBTOOLIZE} --force +libtoolize --force if test $? != 0 ; then - echo "libtoolize failed." - exit -1 + echo "libtoolize failed." + exit -1 fi aclocal @@ -48,11 +22,11 @@ if test $? != 0 ; then exit -1 fi -#autoheader --force -#if test $? != 0 ; then -# echo "autoheader failed." -# exit -1 -#fi +autoheader --force +if test $? != 0 ; then + echo "autoheader failed." + exit -1 +fi autoconf --force if test $? != 0 ; then @@ -64,10 +38,9 @@ automake --add-missing 2> /dev/null | true autopoint -cd "${builddir}" - -test -n "$NOCONFIGURE" || "$srcdir/configure" --srcdir=${srcdir} $@ +cd ${builddir} +test -n "$NOCONFIGURE" || "./configure" "$@" diff --git a/configure.ac b/configure.ac index c37c2584..2157c7c5 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ AC_PREREQ(2.61) dnl Initialise automake with the package name, version and dnl bug-reporting address. -AC_INIT([pw3270], [5.4], [perry.werneck@gmail.com]) +AC_INIT([pw3270], [5.5], [perry.werneck@gmail.com]) dnl Place auxilliary scripts here. AC_CONFIG_AUX_DIR([scripts]) @@ -40,6 +40,8 @@ AC_CONFIG_HEADER([src/include/config.h]) dnl Initialise automake stuff. AM_INIT_AUTOMAKE +LT_INIT + dnl Set gettext version AM_GNU_GETTEXT_VERSION([0.14]) @@ -171,8 +173,8 @@ AC_SUBST(PACKAGE_DESCRIPTION,"IBM 3270 Terminal emulator") app_vrs_major=$(echo $VERSION | cut -d. -f1) app_vrs_minor=$(echo $VERSION | cut -d. -f2) -AC_DEFINE_UNQUOTED(PACKAGE_MAJOR_VERSION, $app_vrs_major) -AC_DEFINE_UNQUOTED(PACKAGE_MINOR_VERSION, $app_vrs_minor) +AC_DEFINE_UNQUOTED(PACKAGE_MAJOR_VERSION, $app_vrs_major, [The package major version]) +AC_DEFINE_UNQUOTED(PACKAGE_MINOR_VERSION, $app_vrs_minor, [The package minor version]) AC_SUBST(PACKAGE_MAJOR_VERSION,$app_vrs_major) AC_SUBST(PACKAGE_MINOR_VERSION,$app_vrs_minor) @@ -182,9 +184,9 @@ AC_ARG_WITH([release], [AS_HELP_STRING([--with-release], [Set release])], [ app_ app_rls_major=$(echo $app_cv_release.0.0 | cut -d. -f1) app_rls_minor=$(echo $app_cv_release.0.0 | cut -d. -f2) -AC_DEFINE_UNQUOTED(PACKAGE_RELEASE, "$app_cv_release") -AC_DEFINE_UNQUOTED(PACKAGE_MAJOR_RELEASE, $app_rls_major) -AC_DEFINE_UNQUOTED(PACKAGE_MINOR_RELEASE, $app_rls_minor) +AC_DEFINE_UNQUOTED(PACKAGE_RELEASE, "$app_cv_release",[The package release]) +AC_DEFINE_UNQUOTED(PACKAGE_MAJOR_RELEASE, $app_rls_major,[The package major release]) +AC_DEFINE_UNQUOTED(PACKAGE_MINOR_RELEASE, $app_rls_minor,[The package minor release]) AC_SUBST(PACKAGE_RELEASE,$app_cv_release) AC_SUBST(PACKAGE_MAJOR_RELEASE,$app_rls_major) @@ -195,14 +197,18 @@ dnl Set application id & product name dnl --------------------------------------------------------------------------- AC_ARG_WITH([product-name], [AS_HELP_STRING([--with-product-name], [Set product name])], [ app_cv_product="$withval" ],[ app_cv_product=`pkg-config --variable=product_name lib3270` ]) -AC_DEFINE_UNQUOTED(PRODUCT_NAME, $app_cv_product) +AC_DEFINE_UNQUOTED(PRODUCT_NAME, $app_cv_product,[The product name]) AC_SUBST(PRODUCT_NAME,$app_cv_product) AC_ARG_WITH([application-id], [AS_HELP_STRING([--application-id], [Set the application ID])], [ app_cv_application_id="$withval" ],[ app_cv_application_id=`pkg-config --variable=product_id lib3270`.terminal ]) -AC_DEFINE_UNQUOTED(APPLICATION_ID, $app_cv_application_id) +AC_DEFINE_UNQUOTED(APPLICATION_ID, $app_cv_application_id,[The application ID]) AC_SUBST(APPLICATION_ID,$app_cv_application_id) +AC_ARG_WITH([plugin-dir], [AS_HELP_STRING([--with-plugin-dir], [The application plugin dir])], [ app_cv_plugin_path="$withval" ],[ app_cv_plugin_path=`pkg-config --variable=plugin_path lib3270` ]) +AC_DEFINE_UNQUOTED(PLUGIN_DIR, "$app_cv_plugin_path", [The product name]) +AC_SUBST(PLUGIN_DIR,$app_cv_plugin_path) + dnl --------------------------------------------------------------------------- dnl Check for unstable version dnl --------------------------------------------------------------------------- @@ -217,7 +223,7 @@ AC_ARG_ENABLE([unstable], ]) if test "$app_cv_unstable" == "yes"; then - AC_DEFINE(ENABLE_UNSTABLE_FEATURES) + AC_DEFINE(ENABLE_UNSTABLE_FEATURES,,[Are we using the unstable features?]) AC_MSG_NOTICE([Enabling unstable features]) else AC_MSG_NOTICE([Using only stable features]) @@ -228,13 +234,13 @@ dnl --------------------------------------------------------------------------- dnl Check for LIBV3270 dnl --------------------------------------------------------------------------- -PKG_CHECK_MODULES( [LIBV3270], [libv3270], AC_DEFINE(HAVE_LIBV3270), AC_MSG_ERROR([LIBV3270 not present.])) +PKG_CHECK_MODULES( [LIBV3270], [libv3270], AC_DEFINE(HAVE_LIBV3270,,[Do we have libv3270?]), AC_MSG_ERROR([LIBV3270 not present.])) AC_SUBST(LIBV3270_LIBS) AC_SUBST(LIBV3270_CFLAGS) AC_ARG_WITH([library-name], [AS_HELP_STRING([--with-library-name], [Set protocol library name])], [ app_cv_library="$withval" ],[ app_cv_library=`pkg-config --variable=library_name lib3270` ]) -AC_DEFINE_UNQUOTED(LIBRARY_NAME, $app_cv_library) +AC_DEFINE_UNQUOTED(LIBRARY_NAME, $app_cv_library,[The tn3270 library name]) AC_SUBST(LIBRARY_NAME,$app_cv_library) dnl --------------------------------------------------------------------------- @@ -243,19 +249,7 @@ dnl --------------------------------------------------------------------------- GLIB_GSETTINGS -case "$host" in - *-mingw32|*-pc-msys) - PKG_CHECK_MODULES( [GTK], [gtk+-3.0 glib-2.0 gmodule-2.0], AC_DEFINE(HAVE_GTK), AC_MSG_ERROR([GTK not present.])) - ;; - - *-apple-darwin*) - PKG_CHECK_MODULES( [GTK], [gtk+-3.0 glib-2.0 gmodule-2.0], AC_DEFINE(HAVE_GTK), AC_MSG_ERROR([GTK not present.])) - ;; - - *) - PKG_CHECK_MODULES( [GTK], [gtk+-3.0 glib-2.0 gmodule-2.0], AC_DEFINE(HAVE_GTK), AC_MSG_ERROR([GTK not present.])) - -esac +PKG_CHECK_MODULES( [GTK], [gtk+-3.0 glib-2.0 gmodule-2.0], AC_DEFINE(HAVE_GTK,1,[Do we have gtk?]), AC_MSG_ERROR([GTK not present.])) AC_SUBST(GTK_LIBS) AC_SUBST(GTK_CFLAGS) diff --git a/pw3270.cbp b/pw3270.cbp index 449b3c5d..08165fd6 100644 --- a/pw3270.cbp +++ b/pw3270.cbp @@ -46,6 +46,7 @@ + @@ -67,6 +68,7 @@ + @@ -89,6 +91,9 @@ + + @@ -116,6 +121,9 @@ + + + + @@ -173,6 +184,9 @@ + + @@ -210,6 +224,9 @@ + + diff --git a/src/include/config.h.in b/src/include/config.h.in index d79ac38a..57688463 100644 --- a/src/include/config.h.in +++ b/src/include/config.h.in @@ -1,45 +1,106 @@ -/* - * "Software G3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a - * aplicativos mainframe. Registro no INPI sob o nome G3270. - * - * Copyright (C) <2008> - * - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela - * Free Software Foundation. - * - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para - * obter mais detalhes. - * - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin - * St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Este programa está nomeado como config.h e possui - linhas de código. - * - * Contatos: - * - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) - * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) - * - */ - -#ifndef PW3270_CONFIG_H_INCLUDED - - #define PW3270_CONFIG_H_INCLUDED 1 - - #undef PACKAGE_NAME - #undef PACKAGE_VERSION - #undef PACKAGE_RELEASE - #undef PRODUCT_NAME - #undef APPLICATION_ID - #undef ENABLE_UNSTABLE_FEATURES - #undef HAVE_MALLOC_H - #undef HAVE_STRTOK_R - #undef HAVE_LOCALTIME_R - -#endif /* PW3270_CONFIG_H_INCLUDED */ +/* src/include/config.h.in. Generated from configure.ac by autoheader. */ +/* The application ID */ +#undef APPLICATION_ID + +/* Are we using the unstable features? */ +#undef ENABLE_UNSTABLE_FEATURES + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Do we have gtk? */ +#undef HAVE_GTK + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Do we have libv3270? */ +#undef HAVE_LIBV3270 + +/* Do we have localtime_r? */ +#undef HAVE_LOCALTIME_R + +/* 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_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Do we have strtok_r? */ +#undef HAVE_STRTOK_R + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* The tn3270 library name */ +#undef LIBRARY_NAME + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* The package major release */ +#undef PACKAGE_MAJOR_RELEASE + +/* The package major version */ +#undef PACKAGE_MAJOR_VERSION + +/* The package minor release */ +#undef PACKAGE_MINOR_RELEASE + +/* The package minor version */ +#undef PACKAGE_MINOR_VERSION + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* The package release */ +#undef PACKAGE_RELEASE + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* The product name */ +#undef PLUGIN_DIR + +/* The product name */ +#undef PRODUCT_NAME + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION diff --git a/src/objects/application/application.c b/src/objects/application/application.c index c786b16e..50169de6 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -302,7 +302,7 @@ static void pw3270Application_init(pw3270Application *app) { g_settings_bind(app->settings, "ui-style", app, "ui-style", G_SETTINGS_BIND_DEFAULT); } - pw3270_load_plugins_from_path(app, G_STRINGIFY(LIBDIR) G_DIR_SEPARATOR_S G_STRINGIFY(PRODUCT_NAME) "-plugins"); + pw3270_load_plugins_from_path(app, PLUGIN_DIR); #endif // _WIN32 From 7e9521554f2aaccf005efb4f6afb24a60cba4746 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 12:47:44 -0300 Subject: [PATCH 003/186] Fixing package build. --- Makefile.in | 2 +- locale/pt_BR.po | 458 ++++----- locale/pw3270.pot | 2418 ++++++++++++++++++++++----------------------- 3 files changed, 1439 insertions(+), 1439 deletions(-) diff --git a/Makefile.in b/Makefile.in index 0a989549..3c3a19a1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -300,7 +300,7 @@ install-application: \ install-linux-application: \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ - @$(MKDIR) \ + @$(MKDIR) \ $(DESTDIR)$(bindir) @$(INSTALL_PROGRAM) \ diff --git a/locale/pt_BR.po b/locale/pt_BR.po index ad05b870..aae52565 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-11 03:29-0300\n" +"POT-Creation-Date: 2023-01-18 12:42-0300\n" "PO-Revision-Date: 2021-12-23 01:36-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" @@ -19,21 +19,21 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Gtranslator 3.38.0\n" -#: src/objects/application/application.c:211 +#: src/objects/application/application.c:214 #, c-format msgid "\"%s\" is not a valid user interface name" msgstr "\"%s\" não é um nome válido para interface de usuário" -#: src/objects/application/actions/about.c:133 +#: src/objects/application/actions/about.c:118 #, c-format msgid "%s for %s." msgstr "%s para %s" -#: src/objects/application/actions/about.c:140 +#: src/objects/application/actions/about.c:125 msgid "32 bits Linux" msgstr "Linux 32 bits" -#: src/objects/application/actions/about.c:138 +#: src/objects/application/actions/about.c:123 msgid "32 bits Windows" msgstr "Windows 32 bits" @@ -42,24 +42,24 @@ msgstr "Windows 32 bits" msgid "3270 session files" msgstr "Arquivos de sessão TN3270" -#: src/objects/application/actions/about.c:142 +#: src/objects/application/actions/about.c:127 msgid "64 bits Linux" msgstr "Linux 64 bits" -#: src/objects/application/actions/about.c:136 +#: src/objects/application/actions/about.c:121 msgid "64 bits Windows" msgstr "Windows 64 bits" -#: src/objects/toolbar/settings.c:215 +#: src/objects/toolbar/settings.c:214 msgid "" "The toolbar position only takes effect after restart" msgstr "" "Alterações na posição da barra de ferramentas só tem efeito apos " "reinício da aplicação" -#: src/objects/application/actions/about.c:232 ui/linux.ui.xml:40 -#: ui/linux.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 -#: ui/windows.ui.xml:40 ui/windows.ui.xml:553 +#: src/objects/application/actions/about.c:217 ui/windows.ui.xml:40 +#: ui/windows.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 +#: ui/linux.ui.xml:40 ui/linux.ui.xml:553 msgid "About PW3270" msgstr "Sobre o PW3270" @@ -67,13 +67,13 @@ msgstr "Sobre o PW3270" msgid "Action Name" msgstr "Nome da ação" -#: src/objects/window/window.c:233 +#: src/objects/window/window.c:205 msgid "Action Names" msgstr "Nome das ações" -#: ui/linux.ui.xml:525 ui/linux.ui.xml:917 ui/linux.ui.xml:1032 -#: ui/macos.ui.xml:525 ui/macos.ui.xml:917 ui/macos.ui.xml:1032 #: ui/windows.ui.xml:525 ui/windows.ui.xml:917 ui/windows.ui.xml:1032 +#: ui/macos.ui.xml:525 ui/macos.ui.xml:917 ui/macos.ui.xml:1032 +#: ui/linux.ui.xml:525 ui/linux.ui.xml:917 ui/linux.ui.xml:1032 msgid "Alert sound" msgstr "Aviso sonoro" @@ -81,26 +81,26 @@ msgstr "Aviso sonoro" msgid "All files" msgstr "Todos os arquivos" -#: ui/linux.ui.xml:252 ui/linux.ui.xml:691 ui/macos.ui.xml:252 -#: ui/macos.ui.xml:691 ui/windows.ui.xml:252 ui/windows.ui.xml:691 +#: ui/windows.ui.xml:252 ui/windows.ui.xml:691 ui/macos.ui.xml:252 +#: ui/macos.ui.xml:691 ui/linux.ui.xml:252 ui/linux.ui.xml:691 msgid "Append to copy" msgstr "Adicionar à cópia" -#: src/objects/application/actions/about.c:175 +#: src/objects/application/actions/about.c:160 msgid "Apple version" msgstr "Versão Apple" -#: ui/linux.ui.xml:385 ui/linux.ui.xml:665 ui/macos.ui.xml:385 -#: ui/macos.ui.xml:665 ui/windows.ui.xml:385 ui/windows.ui.xml:665 +#: ui/windows.ui.xml:385 ui/windows.ui.xml:665 ui/macos.ui.xml:385 +#: ui/macos.ui.xml:665 ui/linux.ui.xml:385 ui/linux.ui.xml:665 msgid "Application" msgstr "Aplicação" -#: src/objects/window/header-settings.c:125 +#: src/objects/window/header-settings.c:93 msgid "Application menu" msgstr "Menu da aplicação" -#: src/objects/application/actions/preferences.c:76 ui/linux.ui.xml:84 -#: ui/macos.ui.xml:84 ui/windows.ui.xml:84 +#: src/objects/application/actions/preferences.c:76 ui/windows.ui.xml:84 +#: ui/macos.ui.xml:84 ui/linux.ui.xml:84 msgid "Application preferences" msgstr "Preferências da aplicação" @@ -108,28 +108,28 @@ msgstr "Preferências da aplicação" msgid "Apply" msgstr "Aplicar" -#: ui/linux.ui.xml:500 ui/macos.ui.xml:500 ui/windows.ui.xml:500 +#: ui/windows.ui.xml:500 ui/macos.ui.xml:500 ui/linux.ui.xml:500 msgid "Auto-Reconnect" msgstr "Reconectar automaticamente" -#: src/objects/toolbar/settings.c:119 src/objects/settings/actionview.c:73 +#: src/objects/toolbar/settings.c:118 src/objects/settings/actionview.c:73 msgid "Available" msgstr "Disponível" -#: src/objects/application/actions/about.c:178 +#: src/objects/application/actions/about.c:163 msgid "Based on X3270 from" msgstr "Baseado no X3270 por" -#: ui/linux.ui.xml:490 ui/linux.ui.xml:946 ui/macos.ui.xml:490 -#: ui/macos.ui.xml:946 ui/windows.ui.xml:490 ui/windows.ui.xml:946 +#: ui/windows.ui.xml:490 ui/windows.ui.xml:946 ui/macos.ui.xml:490 +#: ui/macos.ui.xml:946 ui/linux.ui.xml:490 ui/linux.ui.xml:946 msgid "Blank Fill" msgstr "Completar com espaços" -#: ui/linux.ui.xml:455 ui/macos.ui.xml:455 ui/windows.ui.xml:455 +#: ui/windows.ui.xml:455 ui/macos.ui.xml:455 ui/linux.ui.xml:455 msgid "Blinking Cursor" msgstr "Cursor piscante" -#: ui/linux.ui.xml:505 ui/macos.ui.xml:505 ui/windows.ui.xml:505 +#: ui/windows.ui.xml:505 ui/macos.ui.xml:505 ui/linux.ui.xml:505 msgid "Bold" msgstr "Negrito" @@ -167,7 +167,7 @@ msgstr "_Cancelar" msgid "Change the application preferences" msgstr "Modificar preferências da aplicação" -#: src/objects/window/header-settings.c:96 +#: src/objects/window/header-settings.c:64 msgid "Change the position of the title bar icons" msgstr "Modificar posição dos ícones da barra de título" @@ -175,20 +175,20 @@ msgstr "Modificar posição dos ícones da barra de título" msgid "Change the preferences for the active session" msgstr "Modificar preferências da sessão ativa" -#: ui/linux.ui.xml:305 ui/linux.ui.xml:725 ui/linux.ui.xml:867 -#: ui/macos.ui.xml:305 ui/macos.ui.xml:725 ui/macos.ui.xml:867 #: ui/windows.ui.xml:305 ui/windows.ui.xml:725 ui/windows.ui.xml:867 +#: ui/macos.ui.xml:305 ui/macos.ui.xml:725 ui/macos.ui.xml:867 +#: ui/linux.ui.xml:305 ui/linux.ui.xml:725 ui/linux.ui.xml:867 msgid "Clear" msgstr "Limpar" -#: ui/linux.ui.xml:400 ui/macos.ui.xml:400 ui/windows.ui.xml:400 +#: ui/windows.ui.xml:400 ui/macos.ui.xml:400 ui/linux.ui.xml:400 msgid "Clipboard" msgstr "Área de transferência" -#: ui/linux.ui.xml:150 ui/linux.ui.xml:187 ui/linux.ui.xml:617 -#: ui/linux.ui.xml:654 ui/macos.ui.xml:150 ui/macos.ui.xml:187 -#: ui/macos.ui.xml:617 ui/macos.ui.xml:654 ui/windows.ui.xml:150 -#: ui/windows.ui.xml:187 ui/windows.ui.xml:617 ui/windows.ui.xml:654 +#: ui/windows.ui.xml:150 ui/windows.ui.xml:187 ui/windows.ui.xml:617 +#: ui/windows.ui.xml:654 ui/macos.ui.xml:150 ui/macos.ui.xml:187 +#: ui/macos.ui.xml:617 ui/macos.ui.xml:654 ui/linux.ui.xml:150 +#: ui/linux.ui.xml:187 ui/linux.ui.xml:617 ui/linux.ui.xml:654 msgid "Clipboard contents" msgstr "Conteúdo da área de transferência" @@ -196,15 +196,15 @@ msgstr "Conteúdo da área de transferência" msgid "Close all windows and exit application" msgstr "Fecha todas as janelas e encerra a aplicação" -#: src/objects/window/actions/close.c:61 +#: src/objects/window/actions/close.c:52 msgid "Close the window" msgstr "Fechar a janela" -#: src/objects/window/actions/close.c:60 ui/linux.ui.xml:217 -#: ui/linux.ui.xml:813 ui/linux.ui.xml:1011 ui/linux.ui.xml:1118 +#: src/objects/window/actions/close.c:51 ui/windows.ui.xml:217 +#: ui/windows.ui.xml:813 ui/windows.ui.xml:1011 ui/windows.ui.xml:1118 #: ui/macos.ui.xml:217 ui/macos.ui.xml:813 ui/macos.ui.xml:1011 -#: ui/macos.ui.xml:1118 ui/windows.ui.xml:217 ui/windows.ui.xml:813 -#: ui/windows.ui.xml:1011 ui/windows.ui.xml:1118 +#: ui/macos.ui.xml:1118 ui/linux.ui.xml:217 ui/linux.ui.xml:813 +#: ui/linux.ui.xml:1011 ui/linux.ui.xml:1118 msgid "Close window" msgstr "Fechar janela" @@ -216,7 +216,7 @@ msgstr "Comentário" msgid "Connect" msgstr "Conectar" -#: ui/linux.ui.xml:450 ui/macos.ui.xml:450 ui/windows.ui.xml:450 +#: ui/windows.ui.xml:450 ui/macos.ui.xml:450 ui/linux.ui.xml:450 msgid "Connect on startup" msgstr "Conectar ao iniciar" @@ -224,38 +224,38 @@ msgstr "Conectar ao iniciar" msgid "Connect to host" msgstr "Conectar ao servidor" -#: src/objects/window/page.c:218 src/objects/window/window.c:808 +#: src/objects/window/window.c:778 src/objects/window/page.c:218 msgid "Connected to host" msgstr "Conectado no servidor" -#: src/objects/application/actions/about.c:176 +#: src/objects/application/actions/about.c:161 msgid "Contributors" msgstr "Contribuidores" -#: ui/linux.ui.xml:237 ui/linux.ui.xml:686 ui/macos.ui.xml:237 -#: ui/macos.ui.xml:686 ui/windows.ui.xml:237 ui/windows.ui.xml:686 +#: ui/windows.ui.xml:237 ui/windows.ui.xml:686 ui/macos.ui.xml:237 +#: ui/macos.ui.xml:686 ui/linux.ui.xml:237 ui/linux.ui.xml:686 msgid "Copy" msgstr "Copiar" -#: ui/linux.ui.xml:706 ui/macos.ui.xml:706 ui/windows.ui.xml:706 +#: ui/windows.ui.xml:706 ui/macos.ui.xml:706 ui/linux.ui.xml:706 msgid "Copy as HTML" msgstr "Copiar como HTML" -#: ui/linux.ui.xml:711 ui/macos.ui.xml:711 ui/windows.ui.xml:711 +#: ui/windows.ui.xml:711 ui/macos.ui.xml:711 ui/linux.ui.xml:711 msgid "Copy as image" msgstr "Copiar como imagem" -#: ui/linux.ui.xml:247 ui/linux.ui.xml:701 ui/macos.ui.xml:247 -#: ui/macos.ui.xml:701 ui/windows.ui.xml:247 ui/windows.ui.xml:701 +#: ui/windows.ui.xml:247 ui/windows.ui.xml:701 ui/macos.ui.xml:247 +#: ui/macos.ui.xml:701 ui/linux.ui.xml:247 ui/linux.ui.xml:701 msgid "Copy as table" msgstr "Copiar como tabela" -#: ui/linux.ui.xml:242 ui/linux.ui.xml:696 ui/macos.ui.xml:242 -#: ui/macos.ui.xml:696 ui/windows.ui.xml:242 ui/windows.ui.xml:696 +#: ui/windows.ui.xml:242 ui/windows.ui.xml:696 ui/macos.ui.xml:242 +#: ui/macos.ui.xml:696 ui/linux.ui.xml:242 ui/linux.ui.xml:696 msgid "Copy as text" msgstr "Copiar como texto" -#: src/objects/application/actions/about.c:182 +#: src/objects/application/actions/about.c:167 msgid "Copyright © 2008 Banco do Brasil S.A." msgstr "Copyright © 2008 Banco do Brasil S.A." @@ -265,33 +265,33 @@ msgstr "Copyright © 2008 Banco do Brasil S.A." msgid "Create shortcut for the current session" msgstr "Criar atalho para a sessão atual." -#: ui/linux.ui.xml:475 ui/linux.ui.xml:902 ui/macos.ui.xml:475 -#: ui/macos.ui.xml:902 ui/windows.ui.xml:475 ui/windows.ui.xml:902 +#: ui/windows.ui.xml:475 ui/windows.ui.xml:902 ui/macos.ui.xml:475 +#: ui/macos.ui.xml:902 ui/linux.ui.xml:475 ui/linux.ui.xml:902 msgid "Cross hair cursor" msgstr "Cursor mira" -#: ui/linux.ui.xml:177 ui/linux.ui.xml:644 ui/macos.ui.xml:177 -#: ui/macos.ui.xml:644 ui/windows.ui.xml:177 ui/windows.ui.xml:644 +#: ui/windows.ui.xml:177 ui/windows.ui.xml:644 ui/macos.ui.xml:177 +#: ui/macos.ui.xml:644 ui/linux.ui.xml:177 ui/linux.ui.xml:644 msgid "Current Screen" msgstr "Tela atual" -#: ui/linux.ui.xml:140 ui/linux.ui.xml:607 ui/macos.ui.xml:140 -#: ui/macos.ui.xml:607 ui/windows.ui.xml:140 ui/windows.ui.xml:607 +#: ui/windows.ui.xml:140 ui/windows.ui.xml:607 ui/macos.ui.xml:140 +#: ui/macos.ui.xml:607 ui/linux.ui.xml:140 ui/linux.ui.xml:607 msgid "Current screen" msgstr "Tela atual" -#: ui/linux.ui.xml:670 ui/macos.ui.xml:670 ui/windows.ui.xml:670 +#: ui/windows.ui.xml:670 ui/macos.ui.xml:670 ui/linux.ui.xml:670 msgid "Current session" msgstr "Sessão atual" -#: ui/linux.ui.xml:257 ui/linux.ui.xml:716 ui/macos.ui.xml:257 -#: ui/macos.ui.xml:716 ui/windows.ui.xml:257 ui/windows.ui.xml:716 +#: ui/windows.ui.xml:257 ui/windows.ui.xml:716 ui/macos.ui.xml:257 +#: ui/macos.ui.xml:716 ui/linux.ui.xml:257 ui/linux.ui.xml:716 msgid "Cut" msgstr "Recortar" -#: ui/linux.ui.xml:315 ui/linux.ui.xml:735 ui/linux.ui.xml:877 -#: ui/macos.ui.xml:315 ui/macos.ui.xml:735 ui/macos.ui.xml:877 #: ui/windows.ui.xml:315 ui/windows.ui.xml:735 ui/windows.ui.xml:877 +#: ui/macos.ui.xml:315 ui/macos.ui.xml:735 ui/macos.ui.xml:877 +#: ui/linux.ui.xml:315 ui/linux.ui.xml:735 ui/linux.ui.xml:877 msgid "Delete Field" msgstr "Apagar campo" @@ -299,19 +299,19 @@ msgstr "Apagar campo" msgid "Description" msgstr "Descrição" -#: ui/linux.ui.xml:808 ui/linux.ui.xml:1006 ui/macos.ui.xml:808 -#: ui/macos.ui.xml:1006 ui/windows.ui.xml:808 ui/windows.ui.xml:1006 +#: ui/windows.ui.xml:808 ui/windows.ui.xml:1006 ui/macos.ui.xml:808 +#: ui/macos.ui.xml:1006 ui/linux.ui.xml:808 ui/linux.ui.xml:1006 msgid "Disconnect" msgstr "Desconectar" -#: src/objects/window/page.c:207 src/objects/window/window.c:808 -#: src/objects/window/window.c:835 +#: src/objects/window/window.c:778 src/objects/window/window.c:805 +#: src/objects/window/page.c:207 msgid "Disconnected from host" msgstr "Desconectado do servidor" -#: ui/linux.ui.xml:540 ui/linux.ui.xml:929 ui/linux.ui.xml:1045 -#: ui/macos.ui.xml:540 ui/macos.ui.xml:929 ui/macos.ui.xml:1045 #: ui/windows.ui.xml:540 ui/windows.ui.xml:929 ui/windows.ui.xml:1045 +#: ui/macos.ui.xml:540 ui/macos.ui.xml:929 ui/macos.ui.xml:1045 +#: ui/linux.ui.xml:540 ui/linux.ui.xml:929 ui/linux.ui.xml:1045 msgid "Dynamic font spacing" msgstr "Espaçamento dinâmico" @@ -339,21 +339,21 @@ msgstr "Habilitado" msgid "End" msgstr "Final" -#: ui/linux.ui.xml:310 ui/linux.ui.xml:730 ui/linux.ui.xml:872 -#: ui/macos.ui.xml:310 ui/macos.ui.xml:730 ui/macos.ui.xml:872 #: ui/windows.ui.xml:310 ui/windows.ui.xml:730 ui/windows.ui.xml:872 +#: ui/macos.ui.xml:310 ui/macos.ui.xml:730 ui/macos.ui.xml:872 +#: ui/linux.ui.xml:310 ui/linux.ui.xml:730 ui/linux.ui.xml:872 msgid "Erase input" msgstr "Apagar campos" -#: ui/linux.ui.xml:320 ui/linux.ui.xml:740 ui/linux.ui.xml:882 -#: ui/macos.ui.xml:320 ui/macos.ui.xml:740 ui/macos.ui.xml:882 #: ui/windows.ui.xml:320 ui/windows.ui.xml:740 ui/windows.ui.xml:882 +#: ui/macos.ui.xml:320 ui/macos.ui.xml:740 ui/macos.ui.xml:882 +#: ui/linux.ui.xml:320 ui/linux.ui.xml:740 ui/linux.ui.xml:882 msgid "Erase to end of field" msgstr "Apagar até o final do campo" -#: ui/linux.ui.xml:325 ui/linux.ui.xml:745 ui/linux.ui.xml:887 -#: ui/macos.ui.xml:325 ui/macos.ui.xml:745 ui/macos.ui.xml:887 #: ui/windows.ui.xml:325 ui/windows.ui.xml:745 ui/windows.ui.xml:887 +#: ui/macos.ui.xml:325 ui/macos.ui.xml:745 ui/macos.ui.xml:887 +#: ui/linux.ui.xml:325 ui/linux.ui.xml:745 ui/linux.ui.xml:887 msgid "Erase to end of line" msgstr "Apagar até o final da linha" @@ -361,7 +361,7 @@ msgstr "Apagar até o final da linha" msgid "Error starting session" msgstr "Erro iniciando sessão" -#: ui/linux.ui.xml:353 ui/macos.ui.xml:353 ui/windows.ui.xml:353 +#: ui/windows.ui.xml:353 ui/macos.ui.xml:353 ui/linux.ui.xml:353 msgid "Field attributes" msgstr "Atributos de campo" @@ -369,13 +369,13 @@ msgstr "Atributos de campo" msgid "File for session preferences" msgstr "Arquivo para preferências da sessão" -#: ui/linux.ui.xml:470 ui/macos.ui.xml:470 ui/windows.ui.xml:470 +#: ui/windows.ui.xml:470 ui/macos.ui.xml:470 ui/linux.ui.xml:470 msgid "Full Screen" msgstr "Tela cheia" -#: ui/linux.ui.xml:779 ui/linux.ui.xml:955 ui/linux.ui.xml:1050 -#: ui/macos.ui.xml:779 ui/macos.ui.xml:955 ui/macos.ui.xml:1050 #: ui/windows.ui.xml:779 ui/windows.ui.xml:955 ui/windows.ui.xml:1050 +#: ui/macos.ui.xml:779 ui/macos.ui.xml:955 ui/macos.ui.xml:1050 +#: ui/linux.ui.xml:779 ui/linux.ui.xml:955 ui/linux.ui.xml:1050 msgid "Full screen" msgstr "Tela cheia" @@ -383,22 +383,22 @@ msgstr "Tela cheia" msgid "Generic name" msgstr "Nome genérico" -#: ui/linux.ui.xml:37 ui/linux.ui.xml:550 ui/macos.ui.xml:37 -#: ui/macos.ui.xml:550 ui/windows.ui.xml:37 ui/windows.ui.xml:550 +#: ui/windows.ui.xml:37 ui/windows.ui.xml:550 ui/macos.ui.xml:37 +#: ui/macos.ui.xml:550 ui/linux.ui.xml:37 ui/linux.ui.xml:550 msgid "Help" msgstr "Ajuda" -#: ui/linux.ui.xml:390 ui/macos.ui.xml:390 ui/windows.ui.xml:390 +#: ui/windows.ui.xml:390 ui/macos.ui.xml:390 ui/linux.ui.xml:390 msgid "Host and Emulation settings" msgstr "Configuração de servidor e emulação" -#: src/objects/application/actions/about.c:134 src/objects/window/window.c:592 +#: src/objects/application/actions/about.c:119 src/objects/window/window.c:564 #: src/objects/os/linux/savedesktopicon.c:102 #: src/objects/os/windows/savedesktopicon.c:269 msgid "IBM 3270 Terminal emulator" msgstr "Emulador de terminal IBM 3270" -#: src/objects/actions/view.c:90 +#: src/objects/actions/view.c:89 msgid "Icon" msgstr "Ícone" @@ -434,7 +434,7 @@ msgstr "Apenas ícones" msgid "If the action can be activated" msgstr "Se a ação pode ser ativada" -#: ui/linux.ui.xml:1022 ui/macos.ui.xml:1022 ui/windows.ui.xml:1022 +#: ui/windows.ui.xml:1022 ui/macos.ui.xml:1022 ui/linux.ui.xml:1022 msgid "Insert" msgstr "Inserção" @@ -450,15 +450,15 @@ msgstr "Itens empacotados do final para o início" msgid "Items packed from the start to the end" msgstr "Itens empacotados do início para o final" -#: src/objects/toolbar/settings.c:113 +#: src/objects/toolbar/settings.c:112 msgid "Itens" msgstr "Itens" -#: ui/linux.ui.xml:515 ui/macos.ui.xml:515 ui/windows.ui.xml:515 +#: ui/windows.ui.xml:515 ui/macos.ui.xml:515 ui/linux.ui.xml:515 msgid "Keep selected" msgstr "Manter selecionado" -#: ui/linux.ui.xml:395 ui/macos.ui.xml:395 ui/windows.ui.xml:395 +#: ui/windows.ui.xml:395 ui/macos.ui.xml:395 ui/linux.ui.xml:395 msgid "Keyboard accelerators" msgstr "Atalhos de teclado" @@ -478,15 +478,15 @@ msgstr "Altura do painel em linhas" msgid "Keypad width in columns" msgstr "Largura do painel em colunas" -#: src/main/builder.c:135 +#: src/main/builder.c:112 msgid "Keypads" msgstr "Painéis" -#: src/objects/application/actions/about.c:186 +#: src/objects/application/actions/about.c:171 msgid "LICENSE" msgstr "LICENCA" -#: src/objects/actions/view.c:99 +#: src/objects/actions/view.c:98 msgid "Label" msgstr "Etiqueta" @@ -502,56 +502,56 @@ msgstr "Esquerda" msgid "List of the available and unpacked actions" msgstr "Lista de ações disponíveis ainda não empacotadas" -#: src/objects/application/application.c:164 +#: src/objects/application/application.c:167 msgid "Log name" msgstr "Nome do arquivo de log" -#: ui/linux.ui.xml:72 ui/macos.ui.xml:72 ui/windows.ui.xml:72 +#: ui/windows.ui.xml:72 ui/macos.ui.xml:72 ui/linux.ui.xml:72 msgid "Main Menu" msgstr "Menu principal" -#: ui/linux.ui.xml:67 ui/macos.ui.xml:67 ui/windows.ui.xml:67 +#: ui/windows.ui.xml:67 ui/macos.ui.xml:67 ui/linux.ui.xml:67 msgid "Main Toolbar" msgstr "Barra de ferramentas" -#: ui/linux.ui.xml:1093 ui/macos.ui.xml:1093 ui/windows.ui.xml:1093 +#: ui/windows.ui.xml:1093 ui/macos.ui.xml:1093 ui/linux.ui.xml:1093 msgid "Main menu" msgstr "Menu principal" -#: src/objects/application/actions/about.c:174 +#: src/objects/application/actions/about.c:159 msgid "Maintainers" msgstr "Mantenedores" -#: ui/linux.ui.xml:348 ui/macos.ui.xml:348 ui/windows.ui.xml:348 +#: ui/windows.ui.xml:348 ui/macos.ui.xml:348 ui/linux.ui.xml:348 msgid "Menu" msgstr "Menu" -#: ui/linux.ui.xml:419 ui/linux.ui.xml:1059 ui/macos.ui.xml:419 -#: ui/macos.ui.xml:1059 ui/windows.ui.xml:419 ui/windows.ui.xml:1059 +#: ui/windows.ui.xml:419 ui/windows.ui.xml:1059 ui/macos.ui.xml:419 +#: ui/macos.ui.xml:1059 ui/linux.ui.xml:419 ui/linux.ui.xml:1059 msgid "Model 2 - 80x24" msgstr "Modelo 2 - 80x24" -#: ui/linux.ui.xml:424 ui/linux.ui.xml:1064 ui/macos.ui.xml:424 -#: ui/macos.ui.xml:1064 ui/windows.ui.xml:424 ui/windows.ui.xml:1064 +#: ui/windows.ui.xml:424 ui/windows.ui.xml:1064 ui/macos.ui.xml:424 +#: ui/macos.ui.xml:1064 ui/linux.ui.xml:424 ui/linux.ui.xml:1064 msgid "Model 3 - 80x32" msgstr "Modelo 3 - 80x32" -#: ui/linux.ui.xml:429 ui/linux.ui.xml:1069 ui/macos.ui.xml:429 -#: ui/macos.ui.xml:1069 ui/windows.ui.xml:429 ui/windows.ui.xml:1069 +#: ui/windows.ui.xml:429 ui/windows.ui.xml:1069 ui/macos.ui.xml:429 +#: ui/macos.ui.xml:1069 ui/linux.ui.xml:429 ui/linux.ui.xml:1069 msgid "Model 4 - 80x43" msgstr "Modelo 4 - 80x43" -#: ui/linux.ui.xml:434 ui/linux.ui.xml:1074 ui/macos.ui.xml:434 -#: ui/macos.ui.xml:1074 ui/windows.ui.xml:434 ui/windows.ui.xml:1074 +#: ui/windows.ui.xml:434 ui/windows.ui.xml:1074 ui/macos.ui.xml:434 +#: ui/macos.ui.xml:1074 ui/linux.ui.xml:434 ui/linux.ui.xml:1074 msgid "Model 5 - 132x27" msgstr "Modelo 5 - 132x27" -#: ui/linux.ui.xml:460 ui/linux.ui.xml:924 ui/macos.ui.xml:460 -#: ui/macos.ui.xml:924 ui/windows.ui.xml:460 ui/windows.ui.xml:924 +#: ui/windows.ui.xml:460 ui/windows.ui.xml:924 ui/macos.ui.xml:460 +#: ui/macos.ui.xml:924 ui/linux.ui.xml:460 ui/linux.ui.xml:924 msgid "Monocase" msgstr "Só Maiúsculas" -#: ui/linux.ui.xml:535 ui/macos.ui.xml:535 ui/windows.ui.xml:535 +#: ui/windows.ui.xml:535 ui/macos.ui.xml:535 ui/linux.ui.xml:535 msgid "Network keep alive" msgstr "Network keep alive" @@ -579,11 +579,11 @@ msgstr "Nova janela com sessão padrão" msgid "Open Session" msgstr "Abrir sessão" -#: ui/linux.ui.xml:56 ui/macos.ui.xml:56 ui/windows.ui.xml:56 +#: ui/windows.ui.xml:56 ui/macos.ui.xml:56 ui/linux.ui.xml:56 msgid "Open in New Tab" msgstr "Abrir em nova aba" -#: ui/linux.ui.xml:51 ui/macos.ui.xml:51 ui/windows.ui.xml:51 +#: ui/windows.ui.xml:51 ui/macos.ui.xml:51 ui/linux.ui.xml:51 msgid "Open in New Window" msgstr "Abrir em nova janela" @@ -611,10 +611,10 @@ msgstr "Abrir sessão em nova janela" msgid "Open session on the active terminal" msgstr "Abrir sessão no terminal ativo" -#: ui/linux.ui.xml:447 ui/linux.ui.xml:755 ui/linux.ui.xml:897 -#: ui/linux.ui.xml:1042 ui/macos.ui.xml:447 ui/macos.ui.xml:755 -#: ui/macos.ui.xml:897 ui/macos.ui.xml:1042 ui/windows.ui.xml:447 -#: ui/windows.ui.xml:755 ui/windows.ui.xml:897 ui/windows.ui.xml:1042 +#: ui/windows.ui.xml:447 ui/windows.ui.xml:755 ui/windows.ui.xml:897 +#: ui/windows.ui.xml:1042 ui/macos.ui.xml:447 ui/macos.ui.xml:755 +#: ui/macos.ui.xml:897 ui/macos.ui.xml:1042 ui/linux.ui.xml:447 +#: ui/linux.ui.xml:755 ui/linux.ui.xml:897 ui/linux.ui.xml:1042 msgid "Options" msgstr "Opções" @@ -622,23 +622,23 @@ msgstr "Opções" msgid "Parameter Type" msgstr "Tipo de parâmetro" -#: ui/linux.ui.xml:262 ui/linux.ui.xml:829 ui/macos.ui.xml:262 -#: ui/macos.ui.xml:829 ui/windows.ui.xml:262 ui/windows.ui.xml:829 +#: ui/windows.ui.xml:262 ui/windows.ui.xml:829 ui/macos.ui.xml:262 +#: ui/macos.ui.xml:829 ui/linux.ui.xml:262 ui/linux.ui.xml:829 msgid "Paste from clipboard" msgstr "Colar da área de transferência" -#: ui/linux.ui.xml:272 ui/linux.ui.xml:839 ui/macos.ui.xml:272 -#: ui/macos.ui.xml:839 ui/windows.ui.xml:272 ui/windows.ui.xml:839 +#: ui/windows.ui.xml:272 ui/windows.ui.xml:839 ui/macos.ui.xml:272 +#: ui/macos.ui.xml:839 ui/linux.ui.xml:272 ui/linux.ui.xml:839 msgid "Paste from text file" msgstr "Colar de um arquivo texto" -#: ui/linux.ui.xml:267 ui/linux.ui.xml:834 ui/macos.ui.xml:267 -#: ui/macos.ui.xml:834 ui/windows.ui.xml:267 ui/windows.ui.xml:834 +#: ui/windows.ui.xml:267 ui/windows.ui.xml:834 ui/macos.ui.xml:267 +#: ui/macos.ui.xml:834 ui/linux.ui.xml:267 ui/linux.ui.xml:834 msgid "Paste next" msgstr "Colar próximo" -#: ui/linux.ui.xml:485 ui/linux.ui.xml:941 ui/macos.ui.xml:485 -#: ui/macos.ui.xml:941 ui/windows.ui.xml:485 ui/windows.ui.xml:941 +#: ui/windows.ui.xml:485 ui/windows.ui.xml:941 ui/macos.ui.xml:485 +#: ui/macos.ui.xml:941 ui/linux.ui.xml:485 ui/linux.ui.xml:941 msgid "Paste with left margin" msgstr "Colar com margem esquerda" @@ -651,20 +651,20 @@ msgstr "Caminho para o novo atalho" msgid "Position" msgstr "Posição" -#: ui/linux.ui.xml:662 ui/macos.ui.xml:662 ui/windows.ui.xml:662 +#: ui/windows.ui.xml:662 ui/macos.ui.xml:662 ui/linux.ui.xml:662 msgid "Preferences" msgstr "Preferências" -#: ui/linux.ui.xml:174 ui/linux.ui.xml:641 ui/macos.ui.xml:174 -#: ui/macos.ui.xml:641 ui/windows.ui.xml:174 ui/windows.ui.xml:641 +#: ui/windows.ui.xml:174 ui/windows.ui.xml:641 ui/macos.ui.xml:174 +#: ui/macos.ui.xml:641 ui/linux.ui.xml:174 ui/linux.ui.xml:641 msgid "Print" msgstr "Imprimir" -#: ui/linux.ui.xml:992 ui/macos.ui.xml:992 ui/windows.ui.xml:992 +#: ui/windows.ui.xml:992 ui/macos.ui.xml:992 ui/linux.ui.xml:992 msgid "Print screen" msgstr "Imrpimir o conteúdo da tela" -#: ui/linux.ui.xml:795 ui/macos.ui.xml:795 ui/windows.ui.xml:795 +#: ui/windows.ui.xml:795 ui/macos.ui.xml:795 ui/linux.ui.xml:795 msgid "Print selected" msgstr "Imprimir seleção" @@ -673,8 +673,8 @@ msgstr "Imprimir seleção" msgid "Property \"%s\" is invalid for this object" msgstr "Propriedade \"%s\" é inválida para este objeto" -#: src/objects/application/actions/window.c:64 ui/linux.ui.xml:89 -#: ui/macos.ui.xml:89 ui/windows.ui.xml:89 +#: src/objects/application/actions/window.c:64 ui/windows.ui.xml:89 +#: ui/macos.ui.xml:89 ui/linux.ui.xml:89 msgid "Quit" msgstr "Sair" @@ -682,13 +682,13 @@ msgstr "Sair" msgid "Rename Session" msgstr "Renomear sessão" -#: ui/linux.ui.xml:296 ui/linux.ui.xml:858 ui/macos.ui.xml:296 -#: ui/macos.ui.xml:858 ui/windows.ui.xml:296 ui/windows.ui.xml:858 +#: ui/windows.ui.xml:296 ui/windows.ui.xml:858 ui/macos.ui.xml:296 +#: ui/macos.ui.xml:858 ui/linux.ui.xml:296 ui/linux.ui.xml:858 msgid "Reselect" msgstr "Reselecionar" -#: ui/linux.ui.xml:480 ui/linux.ui.xml:912 ui/macos.ui.xml:480 -#: ui/macos.ui.xml:912 ui/windows.ui.xml:480 ui/windows.ui.xml:912 +#: ui/windows.ui.xml:480 ui/windows.ui.xml:912 ui/macos.ui.xml:480 +#: ui/macos.ui.xml:912 ui/linux.ui.xml:480 ui/linux.ui.xml:912 msgid "Resize on alternate screen" msgstr "Mudar tamanho do terminal em tela alternativa" @@ -696,8 +696,8 @@ msgstr "Mudar tamanho do terminal em tela alternativa" msgid "Right" msgstr "Direita" -#: ui/linux.ui.xml:135 ui/linux.ui.xml:602 ui/macos.ui.xml:135 -#: ui/macos.ui.xml:602 ui/windows.ui.xml:135 ui/windows.ui.xml:602 +#: ui/windows.ui.xml:135 ui/windows.ui.xml:602 ui/macos.ui.xml:135 +#: ui/macos.ui.xml:602 ui/linux.ui.xml:135 ui/linux.ui.xml:602 msgid "Save" msgstr "Salvar" @@ -705,11 +705,11 @@ msgstr "Salvar" msgid "Save current session preferences to file" msgstr "Salvar preferências da sessão para arquivo" -#: ui/linux.ui.xml:987 ui/macos.ui.xml:987 ui/windows.ui.xml:987 +#: ui/windows.ui.xml:987 ui/macos.ui.xml:987 ui/linux.ui.xml:987 msgid "Save screen" msgstr "Salvar tela" -#: ui/linux.ui.xml:790 ui/macos.ui.xml:790 ui/windows.ui.xml:790 +#: ui/windows.ui.xml:790 ui/macos.ui.xml:790 ui/linux.ui.xml:790 msgid "Save selected" msgstr "Salvar seleção" @@ -735,38 +735,38 @@ msgstr "Salvar para arquivo de atalho" msgid "Save to windows shortcut" msgstr "Salvar para atalho windows" -#: ui/linux.ui.xml:416 ui/linux.ui.xml:1056 ui/macos.ui.xml:416 -#: ui/macos.ui.xml:1056 ui/windows.ui.xml:416 ui/windows.ui.xml:1056 +#: ui/windows.ui.xml:416 ui/windows.ui.xml:1056 ui/macos.ui.xml:416 +#: ui/macos.ui.xml:1056 ui/linux.ui.xml:416 ui/linux.ui.xml:1056 msgid "Screen size" msgstr "Tamanho da tela" -#: ui/linux.ui.xml:286 ui/linux.ui.xml:853 ui/macos.ui.xml:286 -#: ui/macos.ui.xml:853 ui/windows.ui.xml:286 ui/windows.ui.xml:853 +#: ui/windows.ui.xml:286 ui/windows.ui.xml:853 ui/macos.ui.xml:286 +#: ui/macos.ui.xml:853 ui/linux.ui.xml:286 ui/linux.ui.xml:853 msgid "Select Field" msgstr "Selecionar campo" -#: ui/linux.ui.xml:281 ui/linux.ui.xml:848 ui/macos.ui.xml:281 -#: ui/macos.ui.xml:848 ui/windows.ui.xml:281 ui/windows.ui.xml:848 +#: ui/windows.ui.xml:281 ui/windows.ui.xml:848 ui/macos.ui.xml:281 +#: ui/macos.ui.xml:848 ui/linux.ui.xml:281 ui/linux.ui.xml:848 msgid "Select all" msgstr "Selecionar tudo" -#: ui/linux.ui.xml:495 ui/linux.ui.xml:760 ui/macos.ui.xml:495 -#: ui/macos.ui.xml:760 ui/windows.ui.xml:495 ui/windows.ui.xml:760 +#: ui/windows.ui.xml:495 ui/windows.ui.xml:760 ui/macos.ui.xml:495 +#: ui/macos.ui.xml:760 ui/linux.ui.xml:495 ui/linux.ui.xml:760 msgid "Select by rectangles" msgstr "Seleção retangular" -#: src/objects/toolbar/settings.c:113 +#: src/objects/toolbar/settings.c:112 msgid "Select the toolbar itens" msgstr "Selecione itens da barra de ferramentas" -#: src/objects/toolbar/settings.c:118 +#: src/objects/toolbar/settings.c:117 msgid "Selected" msgstr "Selecionado" -#: ui/linux.ui.xml:145 ui/linux.ui.xml:182 ui/linux.ui.xml:612 -#: ui/linux.ui.xml:649 ui/macos.ui.xml:145 ui/macos.ui.xml:182 -#: ui/macos.ui.xml:612 ui/macos.ui.xml:649 ui/windows.ui.xml:145 -#: ui/windows.ui.xml:182 ui/windows.ui.xml:612 ui/windows.ui.xml:649 +#: ui/windows.ui.xml:145 ui/windows.ui.xml:182 ui/windows.ui.xml:612 +#: ui/windows.ui.xml:649 ui/macos.ui.xml:145 ui/macos.ui.xml:182 +#: ui/macos.ui.xml:612 ui/macos.ui.xml:649 ui/linux.ui.xml:145 +#: ui/linux.ui.xml:182 ui/linux.ui.xml:612 ui/linux.ui.xml:649 msgid "Selected area" msgstr "Área selecionada" @@ -774,24 +774,24 @@ msgstr "Área selecionada" msgid "Send/Receive" msgstr "Enviar/Receber" -#: src/objects/window/actions/filetransfer.c:46 ui/linux.ui.xml:196 -#: ui/linux.ui.xml:997 ui/macos.ui.xml:196 ui/macos.ui.xml:997 -#: ui/windows.ui.xml:196 ui/windows.ui.xml:997 +#: src/objects/window/actions/filetransfer.c:46 ui/windows.ui.xml:196 +#: ui/windows.ui.xml:997 ui/macos.ui.xml:196 ui/macos.ui.xml:997 +#: ui/linux.ui.xml:196 ui/linux.ui.xml:997 msgid "Send/Receive files" msgstr "Enviar/Receber arquivos" -#: src/objects/toolbar/settings.c:253 src/objects/toolbar/settings.c:263 +#: src/objects/toolbar/settings.c:252 src/objects/toolbar/settings.c:262 msgid "Separator" msgstr "Separador" -#: ui/linux.ui.xml:48 ui/linux.ui.xml:584 ui/macos.ui.xml:48 -#: ui/macos.ui.xml:584 ui/windows.ui.xml:48 ui/windows.ui.xml:584 +#: ui/windows.ui.xml:48 ui/windows.ui.xml:584 ui/macos.ui.xml:48 +#: ui/macos.ui.xml:584 ui/linux.ui.xml:48 ui/linux.ui.xml:584 msgid "Session" msgstr "Sessão" -#: ui/linux.ui.xml:77 ui/linux.ui.xml:978 ui/linux.ui.xml:1098 -#: ui/macos.ui.xml:77 ui/macos.ui.xml:978 ui/macos.ui.xml:1098 #: ui/windows.ui.xml:77 ui/windows.ui.xml:978 ui/windows.ui.xml:1098 +#: ui/macos.ui.xml:77 ui/macos.ui.xml:978 ui/macos.ui.xml:1098 +#: ui/linux.ui.xml:77 ui/linux.ui.xml:978 ui/linux.ui.xml:1098 msgid "Session Trace" msgstr "Trace da sessão" @@ -800,13 +800,13 @@ msgstr "Trace da sessão" msgid "Session file" msgstr "Arquivo de sessão" -#: ui/linux.ui.xml:127 ui/linux.ui.xml:594 ui/macos.ui.xml:127 -#: ui/macos.ui.xml:594 ui/windows.ui.xml:127 ui/windows.ui.xml:594 +#: ui/windows.ui.xml:127 ui/windows.ui.xml:594 ui/macos.ui.xml:127 +#: ui/macos.ui.xml:594 ui/linux.ui.xml:127 ui/linux.ui.xml:594 msgid "Session in New Tab" msgstr "Sessão em nova aba" -#: ui/linux.ui.xml:122 ui/linux.ui.xml:589 ui/macos.ui.xml:122 -#: ui/macos.ui.xml:589 ui/windows.ui.xml:122 ui/windows.ui.xml:589 +#: ui/windows.ui.xml:122 ui/windows.ui.xml:589 ui/macos.ui.xml:122 +#: ui/macos.ui.xml:589 ui/linux.ui.xml:122 ui/linux.ui.xml:589 msgid "Session in new window" msgstr "Sessão em nova janela" @@ -815,34 +815,34 @@ msgstr "Sessão em nova janela" msgid "Session name" msgstr "Nome da sessão" -#: src/objects/window/actions/sessionproperties.c:36 ui/linux.ui.xml:164 -#: ui/linux.ui.xml:631 ui/linux.ui.xml:1112 ui/macos.ui.xml:164 -#: ui/macos.ui.xml:631 ui/macos.ui.xml:1112 ui/windows.ui.xml:164 -#: ui/windows.ui.xml:631 ui/windows.ui.xml:1112 +#: src/objects/window/actions/sessionproperties.c:36 ui/windows.ui.xml:164 +#: ui/windows.ui.xml:631 ui/windows.ui.xml:1112 ui/macos.ui.xml:164 +#: ui/macos.ui.xml:631 ui/macos.ui.xml:1112 ui/linux.ui.xml:164 +#: ui/linux.ui.xml:631 ui/linux.ui.xml:1112 msgid "Session preferences" msgstr "Preferências da sessão" -#: src/objects/application/application.c:246 +#: src/objects/application/application.c:249 msgid "Set default log file name" msgstr "Define o nome do arquivo de log padrão" -#: src/objects/application/application.c:236 +#: src/objects/application/application.c:239 msgid "Set the user-interface type" msgstr "Define o tipo de interface do usuário" -#: ui/linux.ui.xml:382 ui/macos.ui.xml:382 ui/windows.ui.xml:382 +#: ui/windows.ui.xml:382 ui/macos.ui.xml:382 ui/linux.ui.xml:382 msgid "Settings" msgstr "Configurações" -#: src/objects/toolbar/settings.c:183 +#: src/objects/toolbar/settings.c:182 msgid "Setup the toolbar style and position" msgstr "Configura estilo e posição da barra de ferramentas" -#: src/objects/window/header-settings.c:85 +#: src/objects/window/header-settings.c:53 msgid "Setup title bar" msgstr "Configurar barra de título" -#: src/objects/toolbar/settings.c:95 src/objects/toolbar/toolbar.c:213 +#: src/objects/toolbar/toolbar.c:213 src/objects/toolbar/settings.c:94 msgid "Setup toolbar" msgstr "Configurar barra de ferramentas" @@ -851,8 +851,8 @@ msgstr "Configurar barra de ferramentas" msgid "Shortcut file" msgstr "Arquivo de atalho" -#: ui/linux.ui.xml:159 ui/linux.ui.xml:626 ui/macos.ui.xml:159 -#: ui/macos.ui.xml:626 ui/windows.ui.xml:159 ui/windows.ui.xml:626 +#: ui/windows.ui.xml:159 ui/windows.ui.xml:626 ui/macos.ui.xml:159 +#: ui/macos.ui.xml:626 ui/linux.ui.xml:159 ui/linux.ui.xml:626 msgid "Shortcut for this session" msgstr "Atalho para essa sessão" @@ -860,15 +860,15 @@ msgstr "Atalho para essa sessão" msgid "Shortcut name" msgstr "Nome do atalho" -#: ui/linux.ui.xml:510 ui/macos.ui.xml:510 ui/windows.ui.xml:510 +#: ui/windows.ui.xml:510 ui/macos.ui.xml:510 ui/linux.ui.xml:510 msgid "Show Underline" msgstr "Mostrar sublinhado" -#: ui/linux.ui.xml:774 ui/macos.ui.xml:774 ui/windows.ui.xml:774 +#: ui/windows.ui.xml:774 ui/macos.ui.xml:774 ui/linux.ui.xml:774 msgid "Show menu" msgstr "Mostrar menu" -#: ui/linux.ui.xml:769 ui/macos.ui.xml:769 ui/windows.ui.xml:769 +#: ui/windows.ui.xml:769 ui/macos.ui.xml:769 ui/linux.ui.xml:769 msgid "Show toolbar" msgstr "Mostrar barra de ferramentas" @@ -876,8 +876,8 @@ msgstr "Mostrar barra de ferramentas" msgid "Small" msgstr "Pequeno" -#: ui/linux.ui.xml:520 ui/linux.ui.xml:936 ui/macos.ui.xml:520 -#: ui/macos.ui.xml:936 ui/windows.ui.xml:520 ui/windows.ui.xml:936 +#: ui/windows.ui.xml:520 ui/windows.ui.xml:936 ui/macos.ui.xml:520 +#: ui/macos.ui.xml:936 ui/linux.ui.xml:520 ui/linux.ui.xml:936 msgid "Smart paste" msgstr "Colar inteligente" @@ -897,7 +897,7 @@ msgstr "Estado" msgid "State Type" msgstr "Tipo do estado" -#: src/objects/toolbar/settings.c:183 +#: src/objects/toolbar/settings.c:182 msgid "Style & Position" msgstr "Estilo & Posição" @@ -922,16 +922,16 @@ msgstr "Arquivos de sessão TN3270" msgid "TN3270 Session description" msgstr "Descrição de sessão TN3270" -#: ui/linux.ui.xml:111 ui/linux.ui.xml:573 ui/macos.ui.xml:111 -#: ui/macos.ui.xml:573 ui/windows.ui.xml:111 ui/windows.ui.xml:573 +#: ui/windows.ui.xml:111 ui/windows.ui.xml:573 ui/macos.ui.xml:111 +#: ui/macos.ui.xml:573 ui/linux.ui.xml:111 ui/linux.ui.xml:573 msgid "Tab with default session" msgstr "Aba com a sessão padrão" -#: ui/linux.ui.xml:405 ui/macos.ui.xml:405 ui/windows.ui.xml:405 +#: ui/windows.ui.xml:405 ui/macos.ui.xml:405 ui/linux.ui.xml:405 msgid "Terminal colors" msgstr "Cores do terminal" -#: ui/linux.ui.xml:442 ui/macos.ui.xml:442 ui/windows.ui.xml:442 +#: ui/windows.ui.xml:442 ui/macos.ui.xml:442 ui/linux.ui.xml:442 msgid "Terminal font" msgstr "Fonte do terminal" @@ -939,7 +939,7 @@ msgstr "Fonte do terminal" msgid "Text only" msgstr "Apenas texto" -#: src/objects/keypad/element.c:106 src/objects/keypad/model.c:104 +#: src/objects/keypad/model.c:104 src/objects/keypad/element.c:106 msgid "The Label of the keypad" msgstr "A etiqueta do painel" @@ -951,7 +951,7 @@ msgstr "A etiqueta da ação" msgid "The action tooltip" msgstr "A dica da ação" -#: src/objects/application/application.c:150 +#: src/objects/application/application.c:153 msgid "The code of the User interface type" msgstr "Código identificando o tipo de interface do usuário" @@ -964,7 +964,7 @@ msgstr "O arquivo com as preferências da sessão atual" msgid "The file with the session preferences for this shortcut" msgstr "O arquivo com as preferências da sessão para esse atalho" -#: src/objects/application/application.c:165 +#: src/objects/application/application.c:168 msgid "The full path of the default log file" msgstr "Caminho completo do arquivo default" @@ -976,7 +976,7 @@ msgstr "A etiqueta da ação" msgid "The name of associated action" msgstr "Nome da ação associada" -#: src/objects/window/window.c:234 +#: src/objects/window/window.c:206 msgid "The name of the actions in the header bar" msgstr "O nome das ações na barra de título" @@ -1043,18 +1043,18 @@ msgstr "O tipo do estado mantido pela ação" msgid "This action is not available in this platform" msgstr "" -#: src/objects/window/header-settings.c:84 +#: src/objects/window/header-settings.c:52 msgid "Title bar" msgstr "Barra de título" -#: src/objects/window/header-settings.c:96 +#: src/objects/window/header-settings.c:64 msgid "Title bar actions" msgstr "Ações da barra de título" -#: src/objects/toolbar/settings.c:94 ui/linux.ui.xml:343 ui/linux.ui.xml:968 -#: ui/linux.ui.xml:1088 ui/macos.ui.xml:343 ui/macos.ui.xml:968 -#: ui/macos.ui.xml:1088 ui/windows.ui.xml:343 ui/windows.ui.xml:968 -#: ui/windows.ui.xml:1088 +#: src/objects/toolbar/settings.c:93 ui/windows.ui.xml:343 +#: ui/windows.ui.xml:968 ui/windows.ui.xml:1088 ui/macos.ui.xml:343 +#: ui/macos.ui.xml:968 ui/macos.ui.xml:1088 ui/linux.ui.xml:343 +#: ui/linux.ui.xml:968 ui/linux.ui.xml:1088 msgid "Toolbar" msgstr "Barra de ferramentas" @@ -1074,20 +1074,20 @@ msgstr "Est_ilo da barra de ferramentas" msgid "Top (system default)" msgstr "Em cima (padrão do sistema)" -#: ui/linux.ui.xml:973 ui/macos.ui.xml:973 ui/windows.ui.xml:973 +#: ui/windows.ui.xml:973 ui/macos.ui.xml:973 ui/linux.ui.xml:973 msgid "Top menu" msgstr "Menu principal" -#: ui/linux.ui.xml:338 ui/macos.ui.xml:338 ui/windows.ui.xml:338 +#: ui/windows.ui.xml:338 ui/macos.ui.xml:338 ui/linux.ui.xml:338 msgid "Trace" msgstr "Trace" -#: ui/linux.ui.xml:465 ui/linux.ui.xml:1027 ui/macos.ui.xml:465 -#: ui/macos.ui.xml:1027 ui/windows.ui.xml:465 ui/windows.ui.xml:1027 +#: ui/windows.ui.xml:465 ui/windows.ui.xml:1027 ui/macos.ui.xml:465 +#: ui/macos.ui.xml:1027 ui/linux.ui.xml:465 ui/linux.ui.xml:1027 msgid "Track Cursor" msgstr "Mostrar posição do cursor" -#: src/objects/application/application.c:149 +#: src/objects/application/application.c:152 msgid "UI Type" msgstr "Interface de usuário" @@ -1104,39 +1104,39 @@ msgstr "" msgid "Unable to load session preferences from '%s'" msgstr "Incapaz de ler preferências de sessa de '%s'" -#: ui/linux.ui.xml:291 ui/linux.ui.xml:800 ui/macos.ui.xml:291 -#: ui/macos.ui.xml:800 ui/windows.ui.xml:291 ui/windows.ui.xml:800 +#: ui/windows.ui.xml:291 ui/windows.ui.xml:800 ui/macos.ui.xml:291 +#: ui/macos.ui.xml:800 ui/linux.ui.xml:291 ui/linux.ui.xml:800 msgid "Unselect" msgstr "Remover seleção" -#: src/objects/application/actions/about.c:113 +#: src/objects/application/actions/about.c:98 #, c-format msgid "Unstable version %s-%s" msgstr "Versão instável %s-%s" -#: ui/linux.ui.xml:530 ui/linux.ui.xml:907 ui/macos.ui.xml:530 -#: ui/macos.ui.xml:907 ui/windows.ui.xml:530 ui/windows.ui.xml:907 +#: ui/windows.ui.xml:530 ui/windows.ui.xml:907 ui/macos.ui.xml:530 +#: ui/macos.ui.xml:907 ui/linux.ui.xml:530 ui/linux.ui.xml:907 msgid "Use +/- for field navigation" msgstr "Usar teclas +/- para navegar por campos" -#: src/objects/application/actions/about.c:115 +#: src/objects/application/actions/about.c:100 #, c-format msgid "Version %s-%s" msgstr "Versão %s-%s" -#: src/objects/window/header.c:63 ui/linux.ui.xml:64 ui/linux.ui.xml:965 -#: ui/linux.ui.xml:1085 ui/macos.ui.xml:64 ui/macos.ui.xml:965 -#: ui/macos.ui.xml:1085 ui/windows.ui.xml:64 ui/windows.ui.xml:965 -#: ui/windows.ui.xml:1085 +#: src/objects/window/header.c:63 ui/windows.ui.xml:64 ui/windows.ui.xml:965 +#: ui/windows.ui.xml:1085 ui/macos.ui.xml:64 ui/macos.ui.xml:965 +#: ui/macos.ui.xml:1085 ui/linux.ui.xml:64 ui/linux.ui.xml:965 +#: ui/linux.ui.xml:1085 msgid "View" msgstr "Exibir" -#: src/objects/application/actions/about.c:206 +#: src/objects/application/actions/about.c:191 msgid "View this project on github" msgstr "Portal do Software Público Brasileiro" -#: ui/linux.ui.xml:106 ui/linux.ui.xml:568 ui/macos.ui.xml:106 -#: ui/macos.ui.xml:568 ui/windows.ui.xml:106 ui/windows.ui.xml:568 +#: ui/windows.ui.xml:106 ui/windows.ui.xml:568 ui/macos.ui.xml:106 +#: ui/macos.ui.xml:568 ui/linux.ui.xml:106 ui/linux.ui.xml:568 msgid "Window with default session" msgstr "Janela com sessão padrão" @@ -1158,36 +1158,36 @@ msgstr "_Cancelar" msgid "_Close session" msgstr "_Fechar sessão" -#: ui/linux.ui.xml:369 ui/linux.ui.xml:1107 ui/macos.ui.xml:369 -#: ui/macos.ui.xml:1107 ui/windows.ui.xml:369 ui/windows.ui.xml:1107 +#: ui/windows.ui.xml:369 ui/windows.ui.xml:1107 ui/macos.ui.xml:369 +#: ui/macos.ui.xml:1107 ui/linux.ui.xml:369 ui/linux.ui.xml:1107 msgid "_Connect" msgstr "_Conectar" -#: ui/linux.ui.xml:374 ui/macos.ui.xml:374 ui/windows.ui.xml:374 +#: ui/windows.ui.xml:374 ui/macos.ui.xml:374 ui/linux.ui.xml:374 msgid "_Disconnect" msgstr "_Desconectar" -#: ui/linux.ui.xml:232 ui/linux.ui.xml:681 ui/linux.ui.xml:824 -#: ui/macos.ui.xml:232 ui/macos.ui.xml:681 ui/macos.ui.xml:824 #: ui/windows.ui.xml:232 ui/windows.ui.xml:681 ui/windows.ui.xml:824 +#: ui/macos.ui.xml:232 ui/macos.ui.xml:681 ui/macos.ui.xml:824 +#: ui/linux.ui.xml:232 ui/linux.ui.xml:681 ui/linux.ui.xml:824 msgid "_Edit" msgstr "_Editar" -#: ui/linux.ui.xml:99 ui/macos.ui.xml:99 ui/windows.ui.xml:99 +#: ui/windows.ui.xml:99 ui/macos.ui.xml:99 ui/linux.ui.xml:99 msgid "_File" msgstr "_Arquivo" -#: ui/linux.ui.xml:361 ui/macos.ui.xml:361 ui/windows.ui.xml:361 +#: ui/windows.ui.xml:361 ui/macos.ui.xml:361 ui/linux.ui.xml:361 msgid "_Network" msgstr "_Rede" -#: ui/linux.ui.xml:103 ui/linux.ui.xml:565 ui/macos.ui.xml:103 -#: ui/macos.ui.xml:565 ui/windows.ui.xml:103 ui/windows.ui.xml:565 +#: ui/windows.ui.xml:103 ui/windows.ui.xml:565 ui/macos.ui.xml:103 +#: ui/macos.ui.xml:565 ui/linux.ui.xml:103 ui/linux.ui.xml:565 msgid "_New" msgstr "_Nova" -#: ui/linux.ui.xml:119 ui/linux.ui.xml:581 ui/macos.ui.xml:119 -#: ui/macos.ui.xml:581 ui/windows.ui.xml:119 ui/windows.ui.xml:581 +#: ui/windows.ui.xml:119 ui/windows.ui.xml:581 ui/macos.ui.xml:119 +#: ui/macos.ui.xml:581 ui/linux.ui.xml:119 ui/linux.ui.xml:581 msgid "_Open" msgstr "_Abrir" @@ -1204,15 +1204,15 @@ msgstr "Renomear sessão" msgid "_Save" msgstr "_Salvar" -#: ui/linux.ui.xml:335 ui/macos.ui.xml:335 ui/windows.ui.xml:335 +#: ui/windows.ui.xml:335 ui/macos.ui.xml:335 ui/linux.ui.xml:335 msgid "_View" msgstr "_Exibir" -#: src/objects/application/actions/about.c:205 +#: src/objects/application/actions/about.c:190 msgid "https://github.com/PerryWerneck/pw3270" msgstr "https://portal.softwarepublico.gov.br/social/pw3270/" -#: src/objects/application/actions/about.c:208 +#: src/objects/application/actions/about.c:193 msgid "translator-credits" msgstr "translator-credits" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 3d0cce92..a04cea6e 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -1,1209 +1,1209 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-11 03:29-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/objects/application/application.c:211 -#, c-format -msgid "\"%s\" is not a valid user interface name" -msgstr "" - -#: src/objects/application/actions/about.c:133 -#, c-format -msgid "%s for %s." -msgstr "" - -#: src/objects/application/actions/about.c:140 -msgid "32 bits Linux" -msgstr "" - -#: src/objects/application/actions/about.c:138 -msgid "32 bits Windows" -msgstr "" - -#: src/objects/actions/save.c:167 src/objects/os/linux/savedesktopicon.c:233 -#: src/objects/os/windows/savedesktopicon.c:222 -msgid "3270 session files" -msgstr "" - -#: src/objects/application/actions/about.c:142 -msgid "64 bits Linux" -msgstr "" - -#: src/objects/application/actions/about.c:136 -msgid "64 bits Windows" -msgstr "" - -#: src/objects/toolbar/settings.c:215 -msgid "" -"The toolbar position only takes effect after restart" -msgstr "" - -#: src/objects/application/actions/about.c:232 ui/linux.ui.xml:40 -#: ui/linux.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 -#: ui/windows.ui.xml:40 ui/windows.ui.xml:553 -msgid "About PW3270" -msgstr "" - -#: src/objects/actions/abstract.c:93 -msgid "Action Name" -msgstr "" - -#: src/objects/window/window.c:233 -msgid "Action Names" -msgstr "" - -#: ui/linux.ui.xml:525 ui/linux.ui.xml:917 ui/linux.ui.xml:1032 -#: ui/macos.ui.xml:525 ui/macos.ui.xml:917 ui/macos.ui.xml:1032 -#: ui/windows.ui.xml:525 ui/windows.ui.xml:917 ui/windows.ui.xml:1032 -msgid "Alert sound" -msgstr "" - -#: src/main/tools.c:79 -msgid "All files" -msgstr "" - -#: ui/linux.ui.xml:252 ui/linux.ui.xml:691 ui/macos.ui.xml:252 -#: ui/macos.ui.xml:691 ui/windows.ui.xml:252 ui/windows.ui.xml:691 -msgid "Append to copy" -msgstr "" - -#: src/objects/application/actions/about.c:175 -msgid "Apple version" -msgstr "" - -#: ui/linux.ui.xml:385 ui/linux.ui.xml:665 ui/macos.ui.xml:385 -#: ui/macos.ui.xml:665 ui/windows.ui.xml:385 ui/windows.ui.xml:665 -msgid "Application" -msgstr "" - -#: src/objects/window/header-settings.c:125 -msgid "Application menu" -msgstr "" - -#: src/objects/application/actions/preferences.c:76 ui/linux.ui.xml:84 -#: ui/macos.ui.xml:84 ui/windows.ui.xml:84 -msgid "Application preferences" -msgstr "" - -#: src/objects/window/page.c:264 -msgid "Apply" -msgstr "" - -#: ui/linux.ui.xml:500 ui/macos.ui.xml:500 ui/windows.ui.xml:500 -msgid "Auto-Reconnect" -msgstr "" - -#: src/objects/toolbar/settings.c:119 src/objects/settings/actionview.c:73 -msgid "Available" -msgstr "" - -#: src/objects/application/actions/about.c:178 -msgid "Based on X3270 from" -msgstr "" - -#: ui/linux.ui.xml:490 ui/linux.ui.xml:946 ui/macos.ui.xml:490 -#: ui/macos.ui.xml:946 ui/windows.ui.xml:490 ui/windows.ui.xml:946 -msgid "Blank Fill" -msgstr "" - -#: ui/linux.ui.xml:455 ui/macos.ui.xml:455 ui/windows.ui.xml:455 -msgid "Blinking Cursor" -msgstr "" - -#: ui/linux.ui.xml:505 ui/macos.ui.xml:505 ui/windows.ui.xml:505 -msgid "Bold" -msgstr "" - -#: src/objects/toolbar/models.c:134 -msgid "Bottom" -msgstr "" - -#: src/objects/application/actions/open.c:104 src/objects/window/terminal.c:143 -#: src/objects/window/terminal.c:197 -msgid "Can't load session file" -msgstr "" - -#: src/objects/os/windows/open.c:133 -msgid "Can't load session preferences" -msgstr "" - -#: src/objects/settings/gsettings.c:128 -msgid "Can't load system settings" -msgstr "" - -#: src/objects/application/actions/open.c:99 src/objects/window/terminal.c:192 -#, c-format -msgid "Can't use \"%s\"" -msgstr "" - -#: src/objects/window/terminal.c:138 -msgid "Can't use default session file" -msgstr "" - -#: src/objects/application/actions/open.c:50 src/objects/window/page.c:265 -msgid "Cancel" -msgstr "" - -#: src/objects/application/actions/preferences.c:78 -msgid "Change the application preferences" -msgstr "" - -#: src/objects/window/header-settings.c:96 -msgid "Change the position of the title bar icons" -msgstr "" - -#: src/objects/window/actions/sessionproperties.c:37 -msgid "Change the preferences for the active session" -msgstr "" - -#: ui/linux.ui.xml:305 ui/linux.ui.xml:725 ui/linux.ui.xml:867 -#: ui/macos.ui.xml:305 ui/macos.ui.xml:725 ui/macos.ui.xml:867 -#: ui/windows.ui.xml:305 ui/windows.ui.xml:725 ui/windows.ui.xml:867 -msgid "Clear" -msgstr "" - -#: ui/linux.ui.xml:400 ui/macos.ui.xml:400 ui/windows.ui.xml:400 -msgid "Clipboard" -msgstr "" - -#: ui/linux.ui.xml:150 ui/linux.ui.xml:187 ui/linux.ui.xml:617 -#: ui/linux.ui.xml:654 ui/macos.ui.xml:150 ui/macos.ui.xml:187 -#: ui/macos.ui.xml:617 ui/macos.ui.xml:654 ui/windows.ui.xml:150 -#: ui/windows.ui.xml:187 ui/windows.ui.xml:617 ui/windows.ui.xml:654 -msgid "Clipboard contents" -msgstr "" - -#: src/objects/application/actions/window.c:65 -msgid "Close all windows and exit application" -msgstr "" - -#: src/objects/window/actions/close.c:61 -msgid "Close the window" -msgstr "" - -#: src/objects/window/actions/close.c:60 ui/linux.ui.xml:217 -#: ui/linux.ui.xml:813 ui/linux.ui.xml:1011 ui/linux.ui.xml:1118 -#: ui/macos.ui.xml:217 ui/macos.ui.xml:813 ui/macos.ui.xml:1011 -#: ui/macos.ui.xml:1118 ui/windows.ui.xml:217 ui/windows.ui.xml:813 -#: ui/windows.ui.xml:1011 ui/windows.ui.xml:1118 -msgid "Close window" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:101 -msgid "Comment" -msgstr "" - -#: src/objects/window/actions/connect.c:59 -msgid "Connect" -msgstr "" - -#: ui/linux.ui.xml:450 ui/macos.ui.xml:450 ui/windows.ui.xml:450 -msgid "Connect on startup" -msgstr "" - -#: src/objects/window/actions/connect.c:60 -msgid "Connect to host" -msgstr "" - -#: src/objects/window/page.c:218 src/objects/window/window.c:808 -msgid "Connected to host" -msgstr "" - -#: src/objects/application/actions/about.c:176 -msgid "Contributors" -msgstr "" - -#: ui/linux.ui.xml:237 ui/linux.ui.xml:686 ui/macos.ui.xml:237 -#: ui/macos.ui.xml:686 ui/windows.ui.xml:237 ui/windows.ui.xml:686 -msgid "Copy" -msgstr "" - -#: ui/linux.ui.xml:706 ui/macos.ui.xml:706 ui/windows.ui.xml:706 -msgid "Copy as HTML" -msgstr "" - -#: ui/linux.ui.xml:711 ui/macos.ui.xml:711 ui/windows.ui.xml:711 -msgid "Copy as image" -msgstr "" - -#: ui/linux.ui.xml:247 ui/linux.ui.xml:701 ui/macos.ui.xml:247 -#: ui/macos.ui.xml:701 ui/windows.ui.xml:247 ui/windows.ui.xml:701 -msgid "Copy as table" -msgstr "" - -#: ui/linux.ui.xml:242 ui/linux.ui.xml:696 ui/macos.ui.xml:242 -#: ui/macos.ui.xml:696 ui/windows.ui.xml:242 ui/windows.ui.xml:696 -msgid "Copy as text" -msgstr "" - -#: src/objects/application/actions/about.c:182 -msgid "Copyright © 2008 Banco do Brasil S.A." -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:114 -#: src/objects/os/windows/savedesktopicon.c:107 -#: src/objects/os/macos/savedesktopicon.c:54 -msgid "Create shortcut for the current session" -msgstr "" - -#: ui/linux.ui.xml:475 ui/linux.ui.xml:902 ui/macos.ui.xml:475 -#: ui/macos.ui.xml:902 ui/windows.ui.xml:475 ui/windows.ui.xml:902 -msgid "Cross hair cursor" -msgstr "" - -#: ui/linux.ui.xml:177 ui/linux.ui.xml:644 ui/macos.ui.xml:177 -#: ui/macos.ui.xml:644 ui/windows.ui.xml:177 ui/windows.ui.xml:644 -msgid "Current Screen" -msgstr "" - -#: ui/linux.ui.xml:140 ui/linux.ui.xml:607 ui/macos.ui.xml:140 -#: ui/macos.ui.xml:607 ui/windows.ui.xml:140 ui/windows.ui.xml:607 -msgid "Current screen" -msgstr "" - -#: ui/linux.ui.xml:670 ui/macos.ui.xml:670 ui/windows.ui.xml:670 -msgid "Current session" -msgstr "" - -#: ui/linux.ui.xml:257 ui/linux.ui.xml:716 ui/macos.ui.xml:257 -#: ui/macos.ui.xml:716 ui/windows.ui.xml:257 ui/windows.ui.xml:716 -msgid "Cut" -msgstr "" - -#: ui/linux.ui.xml:315 ui/linux.ui.xml:735 ui/linux.ui.xml:877 -#: ui/macos.ui.xml:315 ui/macos.ui.xml:735 ui/macos.ui.xml:877 -#: ui/windows.ui.xml:315 ui/windows.ui.xml:735 ui/windows.ui.xml:877 -msgid "Delete Field" -msgstr "" - -#: src/objects/os/windows/savedesktopicon.c:80 -msgid "Description" -msgstr "" - -#: ui/linux.ui.xml:808 ui/linux.ui.xml:1006 ui/macos.ui.xml:808 -#: ui/macos.ui.xml:1006 ui/windows.ui.xml:808 ui/windows.ui.xml:1006 -msgid "Disconnect" -msgstr "" - -#: src/objects/window/page.c:207 src/objects/window/window.c:808 -#: src/objects/window/window.c:835 -msgid "Disconnected from host" -msgstr "" - -#: ui/linux.ui.xml:540 ui/linux.ui.xml:929 ui/linux.ui.xml:1045 -#: ui/macos.ui.xml:540 ui/macos.ui.xml:929 ui/macos.ui.xml:1045 -#: ui/windows.ui.xml:540 ui/windows.ui.xml:929 ui/windows.ui.xml:1045 -msgid "Dynamic font spacing" -msgstr "" - -#: src/objects/keypad/element.c:128 -msgid "Element col" -msgstr "" - -#: src/objects/keypad/element.c:152 -msgid "Element height in rows" -msgstr "" - -#: src/objects/keypad/element.c:116 -msgid "Element row" -msgstr "" - -#: src/objects/keypad/element.c:140 -msgid "Element width in columns" -msgstr "" - -#: src/objects/actions/abstract.c:140 -msgid "Enabled" -msgstr "" - -#: src/objects/settings/actionview.c:78 -msgid "End" -msgstr "" - -#: ui/linux.ui.xml:310 ui/linux.ui.xml:730 ui/linux.ui.xml:872 -#: ui/macos.ui.xml:310 ui/macos.ui.xml:730 ui/macos.ui.xml:872 -#: ui/windows.ui.xml:310 ui/windows.ui.xml:730 ui/windows.ui.xml:872 -msgid "Erase input" -msgstr "" - -#: ui/linux.ui.xml:320 ui/linux.ui.xml:740 ui/linux.ui.xml:882 -#: ui/macos.ui.xml:320 ui/macos.ui.xml:740 ui/macos.ui.xml:882 -#: ui/windows.ui.xml:320 ui/windows.ui.xml:740 ui/windows.ui.xml:882 -msgid "Erase to end of field" -msgstr "" - -#: ui/linux.ui.xml:325 ui/linux.ui.xml:745 ui/linux.ui.xml:887 -#: ui/macos.ui.xml:325 ui/macos.ui.xml:745 ui/macos.ui.xml:887 -#: ui/windows.ui.xml:325 ui/windows.ui.xml:745 ui/windows.ui.xml:887 -msgid "Erase to end of line" -msgstr "" - -#: src/objects/os/windows/open.c:140 -msgid "Error starting session" -msgstr "" - -#: ui/linux.ui.xml:353 ui/macos.ui.xml:353 ui/windows.ui.xml:353 -msgid "Field attributes" -msgstr "" - -#: src/objects/os/windows/savedesktopicon.c:219 -msgid "File for session preferences" -msgstr "" - -#: ui/linux.ui.xml:470 ui/macos.ui.xml:470 ui/windows.ui.xml:470 -msgid "Full Screen" -msgstr "" - -#: ui/linux.ui.xml:779 ui/linux.ui.xml:955 ui/linux.ui.xml:1050 -#: ui/macos.ui.xml:779 ui/macos.ui.xml:955 ui/macos.ui.xml:1050 -#: ui/windows.ui.xml:779 ui/windows.ui.xml:955 ui/windows.ui.xml:1050 -msgid "Full screen" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:94 -msgid "Generic name" -msgstr "" - -#: ui/linux.ui.xml:37 ui/linux.ui.xml:550 ui/macos.ui.xml:37 -#: ui/macos.ui.xml:550 ui/windows.ui.xml:37 ui/windows.ui.xml:550 -msgid "Help" -msgstr "" - -#: ui/linux.ui.xml:390 ui/macos.ui.xml:390 ui/windows.ui.xml:390 -msgid "Host and Emulation settings" -msgstr "" - -#: src/objects/application/actions/about.c:134 src/objects/window/window.c:592 -#: src/objects/os/linux/savedesktopicon.c:102 -#: src/objects/os/windows/savedesktopicon.c:269 -msgid "IBM 3270 Terminal emulator" -msgstr "" - -#: src/objects/actions/view.c:90 -msgid "Icon" -msgstr "" - -#: src/objects/actions/abstract.c:101 -msgid "Icon Name" -msgstr "" - -#: src/objects/toolbar/settings.c:54 -msgid "Icon Size" -msgstr "" - -#: src/objects/toolbar/settings.c:61 -msgid "Icon Style" -msgstr "" - -#: src/objects/toolbar/models.c:52 -msgid "Icon _size" -msgstr "" - -#: src/objects/toolbar/models.c:108 -msgid "Icon type" -msgstr "" - -#: src/objects/toolbar/models.c:97 -msgid "Icons & text" -msgstr "" - -#: src/objects/toolbar/models.c:87 -msgid "Icons only" -msgstr "" - -#: src/objects/actions/abstract.c:141 -msgid "If the action can be activated" -msgstr "" - -#: ui/linux.ui.xml:1022 ui/macos.ui.xml:1022 ui/windows.ui.xml:1022 -msgid "Insert" -msgstr "" - -#: src/objects/keypad/attribute.c:79 -msgid "Invalid or unknown property type" -msgstr "" - -#: src/objects/settings/actionview.c:79 -msgid "Items packed from the end to the start" -msgstr "" - -#: src/objects/settings/actionview.c:69 -msgid "Items packed from the start to the end" -msgstr "" - -#: src/objects/toolbar/settings.c:113 -msgid "Itens" -msgstr "" - -#: ui/linux.ui.xml:515 ui/macos.ui.xml:515 ui/windows.ui.xml:515 -msgid "Keep selected" -msgstr "" - -#: ui/linux.ui.xml:395 ui/macos.ui.xml:395 ui/windows.ui.xml:395 -msgid "Keyboard accelerators" -msgstr "" - -#: src/objects/keypad/model.c:103 -msgid "Keypad Label" -msgstr "" - -#: src/objects/keypad/model.c:93 -msgid "Keypad Name" -msgstr "" - -#: src/objects/keypad/model.c:136 -msgid "Keypad height in rows" -msgstr "" - -#: src/objects/keypad/model.c:124 -msgid "Keypad width in columns" -msgstr "" - -#: src/main/builder.c:135 -msgid "Keypads" -msgstr "" - -#: src/objects/application/actions/about.c:186 -msgid "LICENSE" -msgstr "" - -#: src/objects/actions/view.c:99 -msgid "Label" -msgstr "" - -#: src/objects/toolbar/models.c:66 -msgid "Large" -msgstr "" - -#: src/objects/toolbar/models.c:131 -msgid "Left" -msgstr "" - -#: src/objects/settings/actionview.c:74 -msgid "List of the available and unpacked actions" -msgstr "" - -#: src/objects/application/application.c:164 -msgid "Log name" -msgstr "" - -#: ui/linux.ui.xml:72 ui/macos.ui.xml:72 ui/windows.ui.xml:72 -msgid "Main Menu" -msgstr "" - -#: ui/linux.ui.xml:67 ui/macos.ui.xml:67 ui/windows.ui.xml:67 -msgid "Main Toolbar" -msgstr "" - -#: ui/linux.ui.xml:1093 ui/macos.ui.xml:1093 ui/windows.ui.xml:1093 -msgid "Main menu" -msgstr "" - -#: src/objects/application/actions/about.c:174 -msgid "Maintainers" -msgstr "" - -#: ui/linux.ui.xml:348 ui/macos.ui.xml:348 ui/windows.ui.xml:348 -msgid "Menu" -msgstr "" - -#: ui/linux.ui.xml:419 ui/linux.ui.xml:1059 ui/macos.ui.xml:419 -#: ui/macos.ui.xml:1059 ui/windows.ui.xml:419 ui/windows.ui.xml:1059 -msgid "Model 2 - 80x24" -msgstr "" - -#: ui/linux.ui.xml:424 ui/linux.ui.xml:1064 ui/macos.ui.xml:424 -#: ui/macos.ui.xml:1064 ui/windows.ui.xml:424 ui/windows.ui.xml:1064 -msgid "Model 3 - 80x32" -msgstr "" - -#: ui/linux.ui.xml:429 ui/linux.ui.xml:1069 ui/macos.ui.xml:429 -#: ui/macos.ui.xml:1069 ui/windows.ui.xml:429 ui/windows.ui.xml:1069 -msgid "Model 4 - 80x43" -msgstr "" - -#: ui/linux.ui.xml:434 ui/linux.ui.xml:1074 ui/macos.ui.xml:434 -#: ui/macos.ui.xml:1074 ui/windows.ui.xml:434 ui/windows.ui.xml:1074 -msgid "Model 5 - 132x27" -msgstr "" - -#: ui/linux.ui.xml:460 ui/linux.ui.xml:924 ui/macos.ui.xml:460 -#: ui/macos.ui.xml:924 ui/windows.ui.xml:460 ui/windows.ui.xml:924 -msgid "Monocase" -msgstr "" - -#: ui/linux.ui.xml:535 ui/macos.ui.xml:535 ui/windows.ui.xml:535 -msgid "Network keep alive" -msgstr "" - -#: src/objects/window/page.c:275 -msgid "New session name" -msgstr "" - -#: src/objects/application/actions/window.c:84 -msgid "New tab" -msgstr "" - -#: src/objects/application/actions/window.c:85 -msgid "New tab with default session" -msgstr "" - -#: src/objects/application/actions/window.c:104 -msgid "New window" -msgstr "" - -#: src/objects/application/actions/window.c:105 -msgid "New window with default session" -msgstr "" - -#: src/objects/application/actions/open.c:49 -msgid "Open Session" -msgstr "" - -#: ui/linux.ui.xml:56 ui/macos.ui.xml:56 ui/windows.ui.xml:56 -msgid "Open in New Tab" -msgstr "" - -#: ui/linux.ui.xml:51 ui/macos.ui.xml:51 ui/windows.ui.xml:51 -msgid "Open in New Window" -msgstr "" - -#: src/objects/application/actions/open.c:201 -msgid "Open in new tab" -msgstr "" - -#: src/objects/application/actions/open.c:189 -msgid "Open in new window" -msgstr "" - -#: src/objects/application/actions/open.c:176 -msgid "Open session" -msgstr "" - -#: src/objects/application/actions/open.c:202 -msgid "Open session in New Tab" -msgstr "" - -#: src/objects/application/actions/open.c:190 -msgid "Open session in New window" -msgstr "" - -#: src/objects/application/actions/open.c:177 -msgid "Open session on the active terminal" -msgstr "" - -#: ui/linux.ui.xml:447 ui/linux.ui.xml:755 ui/linux.ui.xml:897 -#: ui/linux.ui.xml:1042 ui/macos.ui.xml:447 ui/macos.ui.xml:755 -#: ui/macos.ui.xml:897 ui/macos.ui.xml:1042 ui/windows.ui.xml:447 -#: ui/windows.ui.xml:755 ui/windows.ui.xml:897 ui/windows.ui.xml:1042 -msgid "Options" -msgstr "" - -#: src/objects/actions/abstract.c:124 -msgid "Parameter Type" -msgstr "" - -#: ui/linux.ui.xml:262 ui/linux.ui.xml:829 ui/macos.ui.xml:262 -#: ui/macos.ui.xml:829 ui/windows.ui.xml:262 ui/windows.ui.xml:829 -msgid "Paste from clipboard" -msgstr "" - -#: ui/linux.ui.xml:272 ui/linux.ui.xml:839 ui/macos.ui.xml:272 -#: ui/macos.ui.xml:839 ui/windows.ui.xml:272 ui/windows.ui.xml:839 -msgid "Paste from text file" -msgstr "" - -#: ui/linux.ui.xml:267 ui/linux.ui.xml:834 ui/macos.ui.xml:267 -#: ui/macos.ui.xml:834 ui/windows.ui.xml:267 ui/windows.ui.xml:834 -msgid "Paste next" -msgstr "" - -#: ui/linux.ui.xml:485 ui/linux.ui.xml:941 ui/macos.ui.xml:485 -#: ui/macos.ui.xml:941 ui/windows.ui.xml:485 ui/windows.ui.xml:941 -msgid "Paste with left margin" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:71 -#: src/objects/os/windows/savedesktopicon.c:74 -msgid "Path for the new shortcut" -msgstr "" - -#: src/objects/toolbar/models.c:125 -msgid "Position" -msgstr "" - -#: ui/linux.ui.xml:662 ui/macos.ui.xml:662 ui/windows.ui.xml:662 -msgid "Preferences" -msgstr "" - -#: ui/linux.ui.xml:174 ui/linux.ui.xml:641 ui/macos.ui.xml:174 -#: ui/macos.ui.xml:641 ui/windows.ui.xml:174 ui/windows.ui.xml:641 -msgid "Print" -msgstr "" - -#: ui/linux.ui.xml:992 ui/macos.ui.xml:992 ui/windows.ui.xml:992 -msgid "Print screen" -msgstr "" - -#: ui/linux.ui.xml:795 ui/macos.ui.xml:795 ui/windows.ui.xml:795 -msgid "Print selected" -msgstr "" - -#: src/objects/keypad/attribute.c:116 -#, c-format -msgid "Property \"%s\" is invalid for this object" -msgstr "" - -#: src/objects/application/actions/window.c:64 ui/linux.ui.xml:89 -#: ui/macos.ui.xml:89 ui/windows.ui.xml:89 -msgid "Quit" -msgstr "" - -#: src/objects/window/page.c:262 -msgid "Rename Session" -msgstr "" - -#: ui/linux.ui.xml:296 ui/linux.ui.xml:858 ui/macos.ui.xml:296 -#: ui/macos.ui.xml:858 ui/windows.ui.xml:296 ui/windows.ui.xml:858 -msgid "Reselect" -msgstr "" - -#: ui/linux.ui.xml:480 ui/linux.ui.xml:912 ui/macos.ui.xml:480 -#: ui/macos.ui.xml:912 ui/windows.ui.xml:480 ui/windows.ui.xml:912 -msgid "Resize on alternate screen" -msgstr "" - -#: src/objects/toolbar/models.c:137 -msgid "Right" -msgstr "" - -#: ui/linux.ui.xml:135 ui/linux.ui.xml:602 ui/macos.ui.xml:135 -#: ui/macos.ui.xml:602 ui/windows.ui.xml:135 ui/windows.ui.xml:602 -msgid "Save" -msgstr "" - -#: src/objects/actions/save.c:77 -msgid "Save current session preferences to file" -msgstr "" - -#: ui/linux.ui.xml:987 ui/macos.ui.xml:987 ui/windows.ui.xml:987 -msgid "Save screen" -msgstr "" - -#: ui/linux.ui.xml:790 ui/macos.ui.xml:790 ui/windows.ui.xml:790 -msgid "Save selected" -msgstr "" - -#: src/objects/actions/save.c:75 src/objects/actions/save.c:164 -msgid "Save session preferences" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:113 -#: src/objects/os/windows/savedesktopicon.c:106 -#: src/objects/os/macos/savedesktopicon.c:53 -msgid "Save session shortcut" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:230 -msgid "Save to session filename" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:202 -msgid "Save to shortcut file" -msgstr "" - -#: src/objects/os/windows/savedesktopicon.c:184 -msgid "Save to windows shortcut" -msgstr "" - -#: ui/linux.ui.xml:416 ui/linux.ui.xml:1056 ui/macos.ui.xml:416 -#: ui/macos.ui.xml:1056 ui/windows.ui.xml:416 ui/windows.ui.xml:1056 -msgid "Screen size" -msgstr "" - -#: ui/linux.ui.xml:286 ui/linux.ui.xml:853 ui/macos.ui.xml:286 -#: ui/macos.ui.xml:853 ui/windows.ui.xml:286 ui/windows.ui.xml:853 -msgid "Select Field" -msgstr "" - -#: ui/linux.ui.xml:281 ui/linux.ui.xml:848 ui/macos.ui.xml:281 -#: ui/macos.ui.xml:848 ui/windows.ui.xml:281 ui/windows.ui.xml:848 -msgid "Select all" -msgstr "" - -#: ui/linux.ui.xml:495 ui/linux.ui.xml:760 ui/macos.ui.xml:495 -#: ui/macos.ui.xml:760 ui/windows.ui.xml:495 ui/windows.ui.xml:760 -msgid "Select by rectangles" -msgstr "" - -#: src/objects/toolbar/settings.c:113 -msgid "Select the toolbar itens" -msgstr "" - -#: src/objects/toolbar/settings.c:118 -msgid "Selected" -msgstr "" - -#: ui/linux.ui.xml:145 ui/linux.ui.xml:182 ui/linux.ui.xml:612 -#: ui/linux.ui.xml:649 ui/macos.ui.xml:145 ui/macos.ui.xml:182 -#: ui/macos.ui.xml:612 ui/macos.ui.xml:649 ui/windows.ui.xml:145 -#: ui/windows.ui.xml:182 ui/windows.ui.xml:612 ui/windows.ui.xml:649 -msgid "Selected area" -msgstr "" - -#: src/objects/window/actions/filetransfer.c:45 -msgid "Send/Receive" -msgstr "" - -#: src/objects/window/actions/filetransfer.c:46 ui/linux.ui.xml:196 -#: ui/linux.ui.xml:997 ui/macos.ui.xml:196 ui/macos.ui.xml:997 -#: ui/windows.ui.xml:196 ui/windows.ui.xml:997 -msgid "Send/Receive files" -msgstr "" - -#: src/objects/toolbar/settings.c:253 src/objects/toolbar/settings.c:263 -msgid "Separator" -msgstr "" - -#: ui/linux.ui.xml:48 ui/linux.ui.xml:584 ui/macos.ui.xml:48 -#: ui/macos.ui.xml:584 ui/windows.ui.xml:48 ui/windows.ui.xml:584 -msgid "Session" -msgstr "" - -#: ui/linux.ui.xml:77 ui/linux.ui.xml:978 ui/linux.ui.xml:1098 -#: ui/macos.ui.xml:77 ui/macos.ui.xml:978 ui/macos.ui.xml:1098 -#: ui/windows.ui.xml:77 ui/windows.ui.xml:978 ui/windows.ui.xml:1098 -msgid "Session Trace" -msgstr "" - -#: src/objects/actions/save.c:63 src/objects/os/linux/savedesktopicon.c:85 -#: src/objects/os/windows/savedesktopicon.c:94 -msgid "Session file" -msgstr "" - -#: ui/linux.ui.xml:127 ui/linux.ui.xml:594 ui/macos.ui.xml:127 -#: ui/macos.ui.xml:594 ui/windows.ui.xml:127 ui/windows.ui.xml:594 -msgid "Session in New Tab" -msgstr "" - -#: ui/linux.ui.xml:122 ui/linux.ui.xml:589 ui/macos.ui.xml:122 -#: ui/macos.ui.xml:589 ui/windows.ui.xml:122 ui/windows.ui.xml:589 -msgid "Session in new window" -msgstr "" - -#: src/objects/actions/save.c:56 src/objects/os/linux/savedesktopicon.c:77 -#: src/objects/os/windows/savedesktopicon.c:86 -msgid "Session name" -msgstr "" - -#: src/objects/window/actions/sessionproperties.c:36 ui/linux.ui.xml:164 -#: ui/linux.ui.xml:631 ui/linux.ui.xml:1112 ui/macos.ui.xml:164 -#: ui/macos.ui.xml:631 ui/macos.ui.xml:1112 ui/windows.ui.xml:164 -#: ui/windows.ui.xml:631 ui/windows.ui.xml:1112 -msgid "Session preferences" -msgstr "" - -#: src/objects/application/application.c:246 -msgid "Set default log file name" -msgstr "" - -#: src/objects/application/application.c:236 -msgid "Set the user-interface type" -msgstr "" - -#: ui/linux.ui.xml:382 ui/macos.ui.xml:382 ui/windows.ui.xml:382 -msgid "Settings" -msgstr "" - -#: src/objects/toolbar/settings.c:183 -msgid "Setup the toolbar style and position" -msgstr "" - -#: src/objects/window/header-settings.c:85 -msgid "Setup title bar" -msgstr "" - -#: src/objects/toolbar/settings.c:95 src/objects/toolbar/toolbar.c:213 -msgid "Setup toolbar" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:70 -#: src/objects/os/windows/savedesktopicon.c:73 -msgid "Shortcut file" -msgstr "" - -#: ui/linux.ui.xml:159 ui/linux.ui.xml:626 ui/macos.ui.xml:159 -#: ui/macos.ui.xml:626 ui/windows.ui.xml:159 ui/windows.ui.xml:626 -msgid "Shortcut for this session" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:63 -msgid "Shortcut name" -msgstr "" - -#: ui/linux.ui.xml:510 ui/macos.ui.xml:510 ui/windows.ui.xml:510 -msgid "Show Underline" -msgstr "" - -#: ui/linux.ui.xml:774 ui/macos.ui.xml:774 ui/windows.ui.xml:774 -msgid "Show menu" -msgstr "" - -#: ui/linux.ui.xml:769 ui/macos.ui.xml:769 ui/windows.ui.xml:769 -msgid "Show toolbar" -msgstr "" - -#: src/objects/toolbar/models.c:61 -msgid "Small" -msgstr "" - -#: ui/linux.ui.xml:520 ui/linux.ui.xml:936 ui/macos.ui.xml:520 -#: ui/macos.ui.xml:936 ui/windows.ui.xml:520 ui/windows.ui.xml:936 -msgid "Smart paste" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:205 -msgid "Standard desktop files" -msgstr "" - -#: src/objects/settings/actionview.c:68 -msgid "Start" -msgstr "" - -#: src/objects/actions/abstract.c:152 -msgid "State" -msgstr "" - -#: src/objects/actions/abstract.c:131 -msgid "State Type" -msgstr "" - -#: src/objects/toolbar/settings.c:183 -msgid "Style & Position" -msgstr "" - -#: src/objects/toolbar/models.c:114 -msgid "Symbolic" -msgstr "" - -#: src/objects/toolbar/models.c:55 src/objects/toolbar/models.c:82 -#: src/objects/toolbar/models.c:111 -msgid "System default" -msgstr "" - -#: src/objects/settings/gsettings.c:133 -msgid "System settings error" -msgstr "" - -#: src/main/tools.c:75 -msgid "TN3270 Session Files" -msgstr "" - -#: src/objects/window/keyfile.c:241 -msgid "TN3270 Session description" -msgstr "" - -#: ui/linux.ui.xml:111 ui/linux.ui.xml:573 ui/macos.ui.xml:111 -#: ui/macos.ui.xml:573 ui/windows.ui.xml:111 ui/windows.ui.xml:573 -msgid "Tab with default session" -msgstr "" - -#: ui/linux.ui.xml:405 ui/macos.ui.xml:405 ui/windows.ui.xml:405 -msgid "Terminal colors" -msgstr "" - -#: ui/linux.ui.xml:442 ui/macos.ui.xml:442 ui/windows.ui.xml:442 -msgid "Terminal font" -msgstr "" - -#: src/objects/toolbar/models.c:92 -msgid "Text only" -msgstr "" - -#: src/objects/keypad/element.c:106 src/objects/keypad/model.c:104 -msgid "The Label of the keypad" -msgstr "" - -#: src/objects/actions/abstract.c:109 -msgid "The action label" -msgstr "" - -#: src/objects/actions/abstract.c:117 -msgid "The action tooltip" -msgstr "" - -#: src/objects/application/application.c:150 -msgid "The code of the User interface type" -msgstr "" - -#: src/objects/actions/save.c:64 -msgid "The file to save the current session preferences" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:86 -#: src/objects/os/windows/savedesktopicon.c:95 -msgid "The file with the session preferences for this shortcut" -msgstr "" - -#: src/objects/application/application.c:165 -msgid "The full path of the default log file" -msgstr "" - -#: src/objects/actions/abstract.c:110 -msgid "The label for the action" -msgstr "" - -#: src/objects/keypad/element.c:96 -msgid "The name of associated action" -msgstr "" - -#: src/objects/window/window.c:234 -msgid "The name of the actions in the header bar" -msgstr "" - -#: src/objects/toolbar/toolbar.c:98 -msgid "The name of the actions in the toolbar" -msgstr "" - -#: src/objects/keypad/element.c:86 -msgid "The name of the icon" -msgstr "" - -#: src/objects/actions/abstract.c:102 -msgid "The name of the icon associated with the action" -msgstr "" - -#: src/objects/keypad/model.c:94 -msgid "The name used to identify the keypad" -msgstr "" - -#: src/objects/actions/abstract.c:94 -msgid "The name used to invoke the action" -msgstr "" - -#: src/objects/keypad/model.c:114 -msgid "The position of the keypad" -msgstr "" - -#: src/objects/actions/save.c:57 src/objects/os/linux/savedesktopicon.c:79 -#: src/objects/os/windows/savedesktopicon.c:88 -msgid "The session name used in the window/tab title (empty for default)" -msgstr "" - -#: src/objects/actions/abstract.c:153 -msgid "The state the action is in" -msgstr "" - -#: src/objects/toolbar/toolbar.c:109 -msgid "The toolbar icon size" -msgstr "" - -#: src/objects/toolbar/toolbar.c:135 -msgid "The toolbar icon type" -msgstr "" - -#: src/objects/toolbar/toolbar.c:122 -msgid "The toolbar style" -msgstr "" - -#: src/objects/actions/abstract.c:118 -msgid "The tooltip for the action" -msgstr "" - -#: src/objects/actions/abstract.c:125 -msgid "The type of GVariant passed to activate()" -msgstr "" - -#: src/objects/actions/abstract.c:132 -msgid "The type of the state kept by the action" -msgstr "" - -#: src/objects/os/macos/savedesktopicon.c:68 -msgid "This action is not available in this platform" -msgstr "" - -#: src/objects/window/header-settings.c:84 -msgid "Title bar" -msgstr "" - -#: src/objects/window/header-settings.c:96 -msgid "Title bar actions" -msgstr "" - -#: src/objects/toolbar/settings.c:94 ui/linux.ui.xml:343 ui/linux.ui.xml:968 -#: ui/linux.ui.xml:1088 ui/macos.ui.xml:343 ui/macos.ui.xml:968 -#: ui/macos.ui.xml:1088 ui/windows.ui.xml:343 ui/windows.ui.xml:968 -#: ui/windows.ui.xml:1088 -msgid "Toolbar" -msgstr "" - -#: src/objects/toolbar/settings.c:68 -msgid "Toolbar Style" -msgstr "" - -#: src/objects/toolbar/settings.c:75 -msgid "Toolbar position" -msgstr "" - -#: src/objects/toolbar/models.c:79 -msgid "Toolbar s_tyle" -msgstr "" - -#: src/objects/toolbar/models.c:128 -msgid "Top (system default)" -msgstr "" - -#: ui/linux.ui.xml:973 ui/macos.ui.xml:973 ui/windows.ui.xml:973 -msgid "Top menu" -msgstr "" - -#: ui/linux.ui.xml:338 ui/macos.ui.xml:338 ui/windows.ui.xml:338 -msgid "Trace" -msgstr "" - -#: ui/linux.ui.xml:465 ui/linux.ui.xml:1027 ui/macos.ui.xml:465 -#: ui/macos.ui.xml:1027 ui/windows.ui.xml:465 ui/windows.ui.xml:1027 -msgid "Track Cursor" -msgstr "" - -#: src/objects/application/application.c:149 -msgid "UI Type" -msgstr "" - -#: src/objects/settings/gsettings.c:131 -msgid "" -"Unable to initialize system settings. Application may crash in unexpected " -"ways" -msgstr "" - -#: src/objects/os/windows/open.c:137 -#, c-format -msgid "Unable to load session preferences from '%s'" -msgstr "" - -#: ui/linux.ui.xml:291 ui/linux.ui.xml:800 ui/macos.ui.xml:291 -#: ui/macos.ui.xml:800 ui/windows.ui.xml:291 ui/windows.ui.xml:800 -msgid "Unselect" -msgstr "" - -#: src/objects/application/actions/about.c:113 -#, c-format -msgid "Unstable version %s-%s" -msgstr "" - -#: ui/linux.ui.xml:530 ui/linux.ui.xml:907 ui/macos.ui.xml:530 -#: ui/macos.ui.xml:907 ui/windows.ui.xml:530 ui/windows.ui.xml:907 -msgid "Use +/- for field navigation" -msgstr "" - -#: src/objects/application/actions/about.c:115 -#, c-format -msgid "Version %s-%s" -msgstr "" - -#: src/objects/window/header.c:63 ui/linux.ui.xml:64 ui/linux.ui.xml:965 -#: ui/linux.ui.xml:1085 ui/macos.ui.xml:64 ui/macos.ui.xml:965 -#: ui/macos.ui.xml:1085 ui/windows.ui.xml:64 ui/windows.ui.xml:965 -#: ui/windows.ui.xml:1085 -msgid "View" -msgstr "" - -#: src/objects/application/actions/about.c:206 -msgid "View this project on github" -msgstr "" - -#: ui/linux.ui.xml:106 ui/linux.ui.xml:568 ui/macos.ui.xml:106 -#: ui/macos.ui.xml:568 ui/windows.ui.xml:106 ui/windows.ui.xml:568 -msgid "Window with default session" -msgstr "" - -#: src/objects/os/windows/savedesktopicon.c:187 -msgid "Windows shortcuts" -msgstr "" - -#: src/objects/settings/dialog.c:79 -msgid "_Apply" -msgstr "" - -#: src/objects/actions/save.c:103 src/objects/settings/dialog.c:78 -#: src/objects/os/linux/savedesktopicon.c:140 -#: src/objects/os/windows/savedesktopicon.c:132 -msgid "_Cancel" -msgstr "" - -#: src/objects/window/page.c:371 -msgid "_Close session" -msgstr "" - -#: ui/linux.ui.xml:369 ui/linux.ui.xml:1107 ui/macos.ui.xml:369 -#: ui/macos.ui.xml:1107 ui/windows.ui.xml:369 ui/windows.ui.xml:1107 -msgid "_Connect" -msgstr "" - -#: ui/linux.ui.xml:374 ui/macos.ui.xml:374 ui/windows.ui.xml:374 -msgid "_Disconnect" -msgstr "" - -#: ui/linux.ui.xml:232 ui/linux.ui.xml:681 ui/linux.ui.xml:824 -#: ui/macos.ui.xml:232 ui/macos.ui.xml:681 ui/macos.ui.xml:824 -#: ui/windows.ui.xml:232 ui/windows.ui.xml:681 ui/windows.ui.xml:824 -msgid "_Edit" -msgstr "" - -#: ui/linux.ui.xml:99 ui/macos.ui.xml:99 ui/windows.ui.xml:99 -msgid "_File" -msgstr "" - -#: ui/linux.ui.xml:361 ui/macos.ui.xml:361 ui/windows.ui.xml:361 -msgid "_Network" -msgstr "" - -#: ui/linux.ui.xml:103 ui/linux.ui.xml:565 ui/macos.ui.xml:103 -#: ui/macos.ui.xml:565 ui/windows.ui.xml:103 ui/windows.ui.xml:565 -msgid "_New" -msgstr "" - -#: ui/linux.ui.xml:119 ui/linux.ui.xml:581 ui/macos.ui.xml:119 -#: ui/macos.ui.xml:581 ui/windows.ui.xml:119 ui/windows.ui.xml:581 -msgid "_Open" -msgstr "" - -#: src/objects/toolbar/toolbar.c:235 -msgid "_Preferences" -msgstr "" - -#: src/objects/window/page.c:365 -msgid "_Rename session" -msgstr "" - -#: src/objects/actions/save.c:104 src/objects/os/linux/savedesktopicon.c:141 -#: src/objects/os/windows/savedesktopicon.c:133 -msgid "_Save" -msgstr "" - -#: ui/linux.ui.xml:335 ui/macos.ui.xml:335 ui/windows.ui.xml:335 -msgid "_View" -msgstr "" - -#: src/objects/application/actions/about.c:205 -msgid "https://github.com/PerryWerneck/pw3270" -msgstr "" - -#: src/objects/application/actions/about.c:208 -msgid "translator-credits" -msgstr "" +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-18 12:47-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/objects/application/application.c:214 +#, c-format +msgid "\"%s\" is not a valid user interface name" +msgstr "" + +#: src/objects/application/actions/about.c:118 +#, c-format +msgid "%s for %s." +msgstr "" + +#: src/objects/application/actions/about.c:125 +msgid "32 bits Linux" +msgstr "" + +#: src/objects/application/actions/about.c:123 +msgid "32 bits Windows" +msgstr "" + +#: src/objects/actions/save.c:167 src/objects/os/linux/savedesktopicon.c:233 +#: src/objects/os/windows/savedesktopicon.c:222 +msgid "3270 session files" +msgstr "" + +#: src/objects/application/actions/about.c:127 +msgid "64 bits Linux" +msgstr "" + +#: src/objects/application/actions/about.c:121 +msgid "64 bits Windows" +msgstr "" + +#: src/objects/toolbar/settings.c:214 +msgid "" +"The toolbar position only takes effect after restart" +msgstr "" + +#: src/objects/application/actions/about.c:217 ui/windows.ui.xml:40 +#: ui/windows.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 +#: ui/linux.ui.xml:40 ui/linux.ui.xml:553 +msgid "About PW3270" +msgstr "" + +#: src/objects/actions/abstract.c:93 +msgid "Action Name" +msgstr "" + +#: src/objects/window/window.c:205 +msgid "Action Names" +msgstr "" + +#: ui/windows.ui.xml:525 ui/windows.ui.xml:917 ui/windows.ui.xml:1032 +#: ui/macos.ui.xml:525 ui/macos.ui.xml:917 ui/macos.ui.xml:1032 +#: ui/linux.ui.xml:525 ui/linux.ui.xml:917 ui/linux.ui.xml:1032 +msgid "Alert sound" +msgstr "" + +#: src/main/tools.c:79 +msgid "All files" +msgstr "" + +#: ui/windows.ui.xml:252 ui/windows.ui.xml:691 ui/macos.ui.xml:252 +#: ui/macos.ui.xml:691 ui/linux.ui.xml:252 ui/linux.ui.xml:691 +msgid "Append to copy" +msgstr "" + +#: src/objects/application/actions/about.c:160 +msgid "Apple version" +msgstr "" + +#: ui/windows.ui.xml:385 ui/windows.ui.xml:665 ui/macos.ui.xml:385 +#: ui/macos.ui.xml:665 ui/linux.ui.xml:385 ui/linux.ui.xml:665 +msgid "Application" +msgstr "" + +#: src/objects/window/header-settings.c:93 +msgid "Application menu" +msgstr "" + +#: src/objects/application/actions/preferences.c:76 ui/windows.ui.xml:84 +#: ui/macos.ui.xml:84 ui/linux.ui.xml:84 +msgid "Application preferences" +msgstr "" + +#: src/objects/window/page.c:264 +msgid "Apply" +msgstr "" + +#: ui/windows.ui.xml:500 ui/macos.ui.xml:500 ui/linux.ui.xml:500 +msgid "Auto-Reconnect" +msgstr "" + +#: src/objects/toolbar/settings.c:118 src/objects/settings/actionview.c:73 +msgid "Available" +msgstr "" + +#: src/objects/application/actions/about.c:163 +msgid "Based on X3270 from" +msgstr "" + +#: ui/windows.ui.xml:490 ui/windows.ui.xml:946 ui/macos.ui.xml:490 +#: ui/macos.ui.xml:946 ui/linux.ui.xml:490 ui/linux.ui.xml:946 +msgid "Blank Fill" +msgstr "" + +#: ui/windows.ui.xml:455 ui/macos.ui.xml:455 ui/linux.ui.xml:455 +msgid "Blinking Cursor" +msgstr "" + +#: ui/windows.ui.xml:505 ui/macos.ui.xml:505 ui/linux.ui.xml:505 +msgid "Bold" +msgstr "" + +#: src/objects/toolbar/models.c:134 +msgid "Bottom" +msgstr "" + +#: src/objects/application/actions/open.c:104 src/objects/window/terminal.c:143 +#: src/objects/window/terminal.c:197 +msgid "Can't load session file" +msgstr "" + +#: src/objects/os/windows/open.c:133 +msgid "Can't load session preferences" +msgstr "" + +#: src/objects/settings/gsettings.c:128 +msgid "Can't load system settings" +msgstr "" + +#: src/objects/application/actions/open.c:99 src/objects/window/terminal.c:192 +#, c-format +msgid "Can't use \"%s\"" +msgstr "" + +#: src/objects/window/terminal.c:138 +msgid "Can't use default session file" +msgstr "" + +#: src/objects/application/actions/open.c:50 src/objects/window/page.c:265 +msgid "Cancel" +msgstr "" + +#: src/objects/application/actions/preferences.c:78 +msgid "Change the application preferences" +msgstr "" + +#: src/objects/window/header-settings.c:64 +msgid "Change the position of the title bar icons" +msgstr "" + +#: src/objects/window/actions/sessionproperties.c:37 +msgid "Change the preferences for the active session" +msgstr "" + +#: ui/windows.ui.xml:305 ui/windows.ui.xml:725 ui/windows.ui.xml:867 +#: ui/macos.ui.xml:305 ui/macos.ui.xml:725 ui/macos.ui.xml:867 +#: ui/linux.ui.xml:305 ui/linux.ui.xml:725 ui/linux.ui.xml:867 +msgid "Clear" +msgstr "" + +#: ui/windows.ui.xml:400 ui/macos.ui.xml:400 ui/linux.ui.xml:400 +msgid "Clipboard" +msgstr "" + +#: ui/windows.ui.xml:150 ui/windows.ui.xml:187 ui/windows.ui.xml:617 +#: ui/windows.ui.xml:654 ui/macos.ui.xml:150 ui/macos.ui.xml:187 +#: ui/macos.ui.xml:617 ui/macos.ui.xml:654 ui/linux.ui.xml:150 +#: ui/linux.ui.xml:187 ui/linux.ui.xml:617 ui/linux.ui.xml:654 +msgid "Clipboard contents" +msgstr "" + +#: src/objects/application/actions/window.c:65 +msgid "Close all windows and exit application" +msgstr "" + +#: src/objects/window/actions/close.c:52 +msgid "Close the window" +msgstr "" + +#: src/objects/window/actions/close.c:51 ui/windows.ui.xml:217 +#: ui/windows.ui.xml:813 ui/windows.ui.xml:1011 ui/windows.ui.xml:1118 +#: ui/macos.ui.xml:217 ui/macos.ui.xml:813 ui/macos.ui.xml:1011 +#: ui/macos.ui.xml:1118 ui/linux.ui.xml:217 ui/linux.ui.xml:813 +#: ui/linux.ui.xml:1011 ui/linux.ui.xml:1118 +msgid "Close window" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:101 +msgid "Comment" +msgstr "" + +#: src/objects/window/actions/connect.c:59 +msgid "Connect" +msgstr "" + +#: ui/windows.ui.xml:450 ui/macos.ui.xml:450 ui/linux.ui.xml:450 +msgid "Connect on startup" +msgstr "" + +#: src/objects/window/actions/connect.c:60 +msgid "Connect to host" +msgstr "" + +#: src/objects/window/window.c:778 src/objects/window/page.c:218 +msgid "Connected to host" +msgstr "" + +#: src/objects/application/actions/about.c:161 +msgid "Contributors" +msgstr "" + +#: ui/windows.ui.xml:237 ui/windows.ui.xml:686 ui/macos.ui.xml:237 +#: ui/macos.ui.xml:686 ui/linux.ui.xml:237 ui/linux.ui.xml:686 +msgid "Copy" +msgstr "" + +#: ui/windows.ui.xml:706 ui/macos.ui.xml:706 ui/linux.ui.xml:706 +msgid "Copy as HTML" +msgstr "" + +#: ui/windows.ui.xml:711 ui/macos.ui.xml:711 ui/linux.ui.xml:711 +msgid "Copy as image" +msgstr "" + +#: ui/windows.ui.xml:247 ui/windows.ui.xml:701 ui/macos.ui.xml:247 +#: ui/macos.ui.xml:701 ui/linux.ui.xml:247 ui/linux.ui.xml:701 +msgid "Copy as table" +msgstr "" + +#: ui/windows.ui.xml:242 ui/windows.ui.xml:696 ui/macos.ui.xml:242 +#: ui/macos.ui.xml:696 ui/linux.ui.xml:242 ui/linux.ui.xml:696 +msgid "Copy as text" +msgstr "" + +#: src/objects/application/actions/about.c:167 +msgid "Copyright © 2008 Banco do Brasil S.A." +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:114 +#: src/objects/os/windows/savedesktopicon.c:107 +#: src/objects/os/macos/savedesktopicon.c:54 +msgid "Create shortcut for the current session" +msgstr "" + +#: ui/windows.ui.xml:475 ui/windows.ui.xml:902 ui/macos.ui.xml:475 +#: ui/macos.ui.xml:902 ui/linux.ui.xml:475 ui/linux.ui.xml:902 +msgid "Cross hair cursor" +msgstr "" + +#: ui/windows.ui.xml:177 ui/windows.ui.xml:644 ui/macos.ui.xml:177 +#: ui/macos.ui.xml:644 ui/linux.ui.xml:177 ui/linux.ui.xml:644 +msgid "Current Screen" +msgstr "" + +#: ui/windows.ui.xml:140 ui/windows.ui.xml:607 ui/macos.ui.xml:140 +#: ui/macos.ui.xml:607 ui/linux.ui.xml:140 ui/linux.ui.xml:607 +msgid "Current screen" +msgstr "" + +#: ui/windows.ui.xml:670 ui/macos.ui.xml:670 ui/linux.ui.xml:670 +msgid "Current session" +msgstr "" + +#: ui/windows.ui.xml:257 ui/windows.ui.xml:716 ui/macos.ui.xml:257 +#: ui/macos.ui.xml:716 ui/linux.ui.xml:257 ui/linux.ui.xml:716 +msgid "Cut" +msgstr "" + +#: ui/windows.ui.xml:315 ui/windows.ui.xml:735 ui/windows.ui.xml:877 +#: ui/macos.ui.xml:315 ui/macos.ui.xml:735 ui/macos.ui.xml:877 +#: ui/linux.ui.xml:315 ui/linux.ui.xml:735 ui/linux.ui.xml:877 +msgid "Delete Field" +msgstr "" + +#: src/objects/os/windows/savedesktopicon.c:80 +msgid "Description" +msgstr "" + +#: ui/windows.ui.xml:808 ui/windows.ui.xml:1006 ui/macos.ui.xml:808 +#: ui/macos.ui.xml:1006 ui/linux.ui.xml:808 ui/linux.ui.xml:1006 +msgid "Disconnect" +msgstr "" + +#: src/objects/window/window.c:778 src/objects/window/window.c:805 +#: src/objects/window/page.c:207 +msgid "Disconnected from host" +msgstr "" + +#: ui/windows.ui.xml:540 ui/windows.ui.xml:929 ui/windows.ui.xml:1045 +#: ui/macos.ui.xml:540 ui/macos.ui.xml:929 ui/macos.ui.xml:1045 +#: ui/linux.ui.xml:540 ui/linux.ui.xml:929 ui/linux.ui.xml:1045 +msgid "Dynamic font spacing" +msgstr "" + +#: src/objects/keypad/element.c:128 +msgid "Element col" +msgstr "" + +#: src/objects/keypad/element.c:152 +msgid "Element height in rows" +msgstr "" + +#: src/objects/keypad/element.c:116 +msgid "Element row" +msgstr "" + +#: src/objects/keypad/element.c:140 +msgid "Element width in columns" +msgstr "" + +#: src/objects/actions/abstract.c:140 +msgid "Enabled" +msgstr "" + +#: src/objects/settings/actionview.c:78 +msgid "End" +msgstr "" + +#: ui/windows.ui.xml:310 ui/windows.ui.xml:730 ui/windows.ui.xml:872 +#: ui/macos.ui.xml:310 ui/macos.ui.xml:730 ui/macos.ui.xml:872 +#: ui/linux.ui.xml:310 ui/linux.ui.xml:730 ui/linux.ui.xml:872 +msgid "Erase input" +msgstr "" + +#: ui/windows.ui.xml:320 ui/windows.ui.xml:740 ui/windows.ui.xml:882 +#: ui/macos.ui.xml:320 ui/macos.ui.xml:740 ui/macos.ui.xml:882 +#: ui/linux.ui.xml:320 ui/linux.ui.xml:740 ui/linux.ui.xml:882 +msgid "Erase to end of field" +msgstr "" + +#: ui/windows.ui.xml:325 ui/windows.ui.xml:745 ui/windows.ui.xml:887 +#: ui/macos.ui.xml:325 ui/macos.ui.xml:745 ui/macos.ui.xml:887 +#: ui/linux.ui.xml:325 ui/linux.ui.xml:745 ui/linux.ui.xml:887 +msgid "Erase to end of line" +msgstr "" + +#: src/objects/os/windows/open.c:140 +msgid "Error starting session" +msgstr "" + +#: ui/windows.ui.xml:353 ui/macos.ui.xml:353 ui/linux.ui.xml:353 +msgid "Field attributes" +msgstr "" + +#: src/objects/os/windows/savedesktopicon.c:219 +msgid "File for session preferences" +msgstr "" + +#: ui/windows.ui.xml:470 ui/macos.ui.xml:470 ui/linux.ui.xml:470 +msgid "Full Screen" +msgstr "" + +#: ui/windows.ui.xml:779 ui/windows.ui.xml:955 ui/windows.ui.xml:1050 +#: ui/macos.ui.xml:779 ui/macos.ui.xml:955 ui/macos.ui.xml:1050 +#: ui/linux.ui.xml:779 ui/linux.ui.xml:955 ui/linux.ui.xml:1050 +msgid "Full screen" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:94 +msgid "Generic name" +msgstr "" + +#: ui/windows.ui.xml:37 ui/windows.ui.xml:550 ui/macos.ui.xml:37 +#: ui/macos.ui.xml:550 ui/linux.ui.xml:37 ui/linux.ui.xml:550 +msgid "Help" +msgstr "" + +#: ui/windows.ui.xml:390 ui/macos.ui.xml:390 ui/linux.ui.xml:390 +msgid "Host and Emulation settings" +msgstr "" + +#: src/objects/application/actions/about.c:119 src/objects/window/window.c:564 +#: src/objects/os/linux/savedesktopicon.c:102 +#: src/objects/os/windows/savedesktopicon.c:269 +msgid "IBM 3270 Terminal emulator" +msgstr "" + +#: src/objects/actions/view.c:89 +msgid "Icon" +msgstr "" + +#: src/objects/actions/abstract.c:101 +msgid "Icon Name" +msgstr "" + +#: src/objects/toolbar/settings.c:54 +msgid "Icon Size" +msgstr "" + +#: src/objects/toolbar/settings.c:61 +msgid "Icon Style" +msgstr "" + +#: src/objects/toolbar/models.c:52 +msgid "Icon _size" +msgstr "" + +#: src/objects/toolbar/models.c:108 +msgid "Icon type" +msgstr "" + +#: src/objects/toolbar/models.c:97 +msgid "Icons & text" +msgstr "" + +#: src/objects/toolbar/models.c:87 +msgid "Icons only" +msgstr "" + +#: src/objects/actions/abstract.c:141 +msgid "If the action can be activated" +msgstr "" + +#: ui/windows.ui.xml:1022 ui/macos.ui.xml:1022 ui/linux.ui.xml:1022 +msgid "Insert" +msgstr "" + +#: src/objects/keypad/attribute.c:79 +msgid "Invalid or unknown property type" +msgstr "" + +#: src/objects/settings/actionview.c:79 +msgid "Items packed from the end to the start" +msgstr "" + +#: src/objects/settings/actionview.c:69 +msgid "Items packed from the start to the end" +msgstr "" + +#: src/objects/toolbar/settings.c:112 +msgid "Itens" +msgstr "" + +#: ui/windows.ui.xml:515 ui/macos.ui.xml:515 ui/linux.ui.xml:515 +msgid "Keep selected" +msgstr "" + +#: ui/windows.ui.xml:395 ui/macos.ui.xml:395 ui/linux.ui.xml:395 +msgid "Keyboard accelerators" +msgstr "" + +#: src/objects/keypad/model.c:103 +msgid "Keypad Label" +msgstr "" + +#: src/objects/keypad/model.c:93 +msgid "Keypad Name" +msgstr "" + +#: src/objects/keypad/model.c:136 +msgid "Keypad height in rows" +msgstr "" + +#: src/objects/keypad/model.c:124 +msgid "Keypad width in columns" +msgstr "" + +#: src/main/builder.c:112 +msgid "Keypads" +msgstr "" + +#: src/objects/application/actions/about.c:171 +msgid "LICENSE" +msgstr "" + +#: src/objects/actions/view.c:98 +msgid "Label" +msgstr "" + +#: src/objects/toolbar/models.c:66 +msgid "Large" +msgstr "" + +#: src/objects/toolbar/models.c:131 +msgid "Left" +msgstr "" + +#: src/objects/settings/actionview.c:74 +msgid "List of the available and unpacked actions" +msgstr "" + +#: src/objects/application/application.c:167 +msgid "Log name" +msgstr "" + +#: ui/windows.ui.xml:72 ui/macos.ui.xml:72 ui/linux.ui.xml:72 +msgid "Main Menu" +msgstr "" + +#: ui/windows.ui.xml:67 ui/macos.ui.xml:67 ui/linux.ui.xml:67 +msgid "Main Toolbar" +msgstr "" + +#: ui/windows.ui.xml:1093 ui/macos.ui.xml:1093 ui/linux.ui.xml:1093 +msgid "Main menu" +msgstr "" + +#: src/objects/application/actions/about.c:159 +msgid "Maintainers" +msgstr "" + +#: ui/windows.ui.xml:348 ui/macos.ui.xml:348 ui/linux.ui.xml:348 +msgid "Menu" +msgstr "" + +#: ui/windows.ui.xml:419 ui/windows.ui.xml:1059 ui/macos.ui.xml:419 +#: ui/macos.ui.xml:1059 ui/linux.ui.xml:419 ui/linux.ui.xml:1059 +msgid "Model 2 - 80x24" +msgstr "" + +#: ui/windows.ui.xml:424 ui/windows.ui.xml:1064 ui/macos.ui.xml:424 +#: ui/macos.ui.xml:1064 ui/linux.ui.xml:424 ui/linux.ui.xml:1064 +msgid "Model 3 - 80x32" +msgstr "" + +#: ui/windows.ui.xml:429 ui/windows.ui.xml:1069 ui/macos.ui.xml:429 +#: ui/macos.ui.xml:1069 ui/linux.ui.xml:429 ui/linux.ui.xml:1069 +msgid "Model 4 - 80x43" +msgstr "" + +#: ui/windows.ui.xml:434 ui/windows.ui.xml:1074 ui/macos.ui.xml:434 +#: ui/macos.ui.xml:1074 ui/linux.ui.xml:434 ui/linux.ui.xml:1074 +msgid "Model 5 - 132x27" +msgstr "" + +#: ui/windows.ui.xml:460 ui/windows.ui.xml:924 ui/macos.ui.xml:460 +#: ui/macos.ui.xml:924 ui/linux.ui.xml:460 ui/linux.ui.xml:924 +msgid "Monocase" +msgstr "" + +#: ui/windows.ui.xml:535 ui/macos.ui.xml:535 ui/linux.ui.xml:535 +msgid "Network keep alive" +msgstr "" + +#: src/objects/window/page.c:275 +msgid "New session name" +msgstr "" + +#: src/objects/application/actions/window.c:84 +msgid "New tab" +msgstr "" + +#: src/objects/application/actions/window.c:85 +msgid "New tab with default session" +msgstr "" + +#: src/objects/application/actions/window.c:104 +msgid "New window" +msgstr "" + +#: src/objects/application/actions/window.c:105 +msgid "New window with default session" +msgstr "" + +#: src/objects/application/actions/open.c:49 +msgid "Open Session" +msgstr "" + +#: ui/windows.ui.xml:56 ui/macos.ui.xml:56 ui/linux.ui.xml:56 +msgid "Open in New Tab" +msgstr "" + +#: ui/windows.ui.xml:51 ui/macos.ui.xml:51 ui/linux.ui.xml:51 +msgid "Open in New Window" +msgstr "" + +#: src/objects/application/actions/open.c:201 +msgid "Open in new tab" +msgstr "" + +#: src/objects/application/actions/open.c:189 +msgid "Open in new window" +msgstr "" + +#: src/objects/application/actions/open.c:176 +msgid "Open session" +msgstr "" + +#: src/objects/application/actions/open.c:202 +msgid "Open session in New Tab" +msgstr "" + +#: src/objects/application/actions/open.c:190 +msgid "Open session in New window" +msgstr "" + +#: src/objects/application/actions/open.c:177 +msgid "Open session on the active terminal" +msgstr "" + +#: ui/windows.ui.xml:447 ui/windows.ui.xml:755 ui/windows.ui.xml:897 +#: ui/windows.ui.xml:1042 ui/macos.ui.xml:447 ui/macos.ui.xml:755 +#: ui/macos.ui.xml:897 ui/macos.ui.xml:1042 ui/linux.ui.xml:447 +#: ui/linux.ui.xml:755 ui/linux.ui.xml:897 ui/linux.ui.xml:1042 +msgid "Options" +msgstr "" + +#: src/objects/actions/abstract.c:124 +msgid "Parameter Type" +msgstr "" + +#: ui/windows.ui.xml:262 ui/windows.ui.xml:829 ui/macos.ui.xml:262 +#: ui/macos.ui.xml:829 ui/linux.ui.xml:262 ui/linux.ui.xml:829 +msgid "Paste from clipboard" +msgstr "" + +#: ui/windows.ui.xml:272 ui/windows.ui.xml:839 ui/macos.ui.xml:272 +#: ui/macos.ui.xml:839 ui/linux.ui.xml:272 ui/linux.ui.xml:839 +msgid "Paste from text file" +msgstr "" + +#: ui/windows.ui.xml:267 ui/windows.ui.xml:834 ui/macos.ui.xml:267 +#: ui/macos.ui.xml:834 ui/linux.ui.xml:267 ui/linux.ui.xml:834 +msgid "Paste next" +msgstr "" + +#: ui/windows.ui.xml:485 ui/windows.ui.xml:941 ui/macos.ui.xml:485 +#: ui/macos.ui.xml:941 ui/linux.ui.xml:485 ui/linux.ui.xml:941 +msgid "Paste with left margin" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:71 +#: src/objects/os/windows/savedesktopicon.c:74 +msgid "Path for the new shortcut" +msgstr "" + +#: src/objects/toolbar/models.c:125 +msgid "Position" +msgstr "" + +#: ui/windows.ui.xml:662 ui/macos.ui.xml:662 ui/linux.ui.xml:662 +msgid "Preferences" +msgstr "" + +#: ui/windows.ui.xml:174 ui/windows.ui.xml:641 ui/macos.ui.xml:174 +#: ui/macos.ui.xml:641 ui/linux.ui.xml:174 ui/linux.ui.xml:641 +msgid "Print" +msgstr "" + +#: ui/windows.ui.xml:992 ui/macos.ui.xml:992 ui/linux.ui.xml:992 +msgid "Print screen" +msgstr "" + +#: ui/windows.ui.xml:795 ui/macos.ui.xml:795 ui/linux.ui.xml:795 +msgid "Print selected" +msgstr "" + +#: src/objects/keypad/attribute.c:116 +#, c-format +msgid "Property \"%s\" is invalid for this object" +msgstr "" + +#: src/objects/application/actions/window.c:64 ui/windows.ui.xml:89 +#: ui/macos.ui.xml:89 ui/linux.ui.xml:89 +msgid "Quit" +msgstr "" + +#: src/objects/window/page.c:262 +msgid "Rename Session" +msgstr "" + +#: ui/windows.ui.xml:296 ui/windows.ui.xml:858 ui/macos.ui.xml:296 +#: ui/macos.ui.xml:858 ui/linux.ui.xml:296 ui/linux.ui.xml:858 +msgid "Reselect" +msgstr "" + +#: ui/windows.ui.xml:480 ui/windows.ui.xml:912 ui/macos.ui.xml:480 +#: ui/macos.ui.xml:912 ui/linux.ui.xml:480 ui/linux.ui.xml:912 +msgid "Resize on alternate screen" +msgstr "" + +#: src/objects/toolbar/models.c:137 +msgid "Right" +msgstr "" + +#: ui/windows.ui.xml:135 ui/windows.ui.xml:602 ui/macos.ui.xml:135 +#: ui/macos.ui.xml:602 ui/linux.ui.xml:135 ui/linux.ui.xml:602 +msgid "Save" +msgstr "" + +#: src/objects/actions/save.c:77 +msgid "Save current session preferences to file" +msgstr "" + +#: ui/windows.ui.xml:987 ui/macos.ui.xml:987 ui/linux.ui.xml:987 +msgid "Save screen" +msgstr "" + +#: ui/windows.ui.xml:790 ui/macos.ui.xml:790 ui/linux.ui.xml:790 +msgid "Save selected" +msgstr "" + +#: src/objects/actions/save.c:75 src/objects/actions/save.c:164 +msgid "Save session preferences" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:113 +#: src/objects/os/windows/savedesktopicon.c:106 +#: src/objects/os/macos/savedesktopicon.c:53 +msgid "Save session shortcut" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:230 +msgid "Save to session filename" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:202 +msgid "Save to shortcut file" +msgstr "" + +#: src/objects/os/windows/savedesktopicon.c:184 +msgid "Save to windows shortcut" +msgstr "" + +#: ui/windows.ui.xml:416 ui/windows.ui.xml:1056 ui/macos.ui.xml:416 +#: ui/macos.ui.xml:1056 ui/linux.ui.xml:416 ui/linux.ui.xml:1056 +msgid "Screen size" +msgstr "" + +#: ui/windows.ui.xml:286 ui/windows.ui.xml:853 ui/macos.ui.xml:286 +#: ui/macos.ui.xml:853 ui/linux.ui.xml:286 ui/linux.ui.xml:853 +msgid "Select Field" +msgstr "" + +#: ui/windows.ui.xml:281 ui/windows.ui.xml:848 ui/macos.ui.xml:281 +#: ui/macos.ui.xml:848 ui/linux.ui.xml:281 ui/linux.ui.xml:848 +msgid "Select all" +msgstr "" + +#: ui/windows.ui.xml:495 ui/windows.ui.xml:760 ui/macos.ui.xml:495 +#: ui/macos.ui.xml:760 ui/linux.ui.xml:495 ui/linux.ui.xml:760 +msgid "Select by rectangles" +msgstr "" + +#: src/objects/toolbar/settings.c:112 +msgid "Select the toolbar itens" +msgstr "" + +#: src/objects/toolbar/settings.c:117 +msgid "Selected" +msgstr "" + +#: ui/windows.ui.xml:145 ui/windows.ui.xml:182 ui/windows.ui.xml:612 +#: ui/windows.ui.xml:649 ui/macos.ui.xml:145 ui/macos.ui.xml:182 +#: ui/macos.ui.xml:612 ui/macos.ui.xml:649 ui/linux.ui.xml:145 +#: ui/linux.ui.xml:182 ui/linux.ui.xml:612 ui/linux.ui.xml:649 +msgid "Selected area" +msgstr "" + +#: src/objects/window/actions/filetransfer.c:45 +msgid "Send/Receive" +msgstr "" + +#: src/objects/window/actions/filetransfer.c:46 ui/windows.ui.xml:196 +#: ui/windows.ui.xml:997 ui/macos.ui.xml:196 ui/macos.ui.xml:997 +#: ui/linux.ui.xml:196 ui/linux.ui.xml:997 +msgid "Send/Receive files" +msgstr "" + +#: src/objects/toolbar/settings.c:252 src/objects/toolbar/settings.c:262 +msgid "Separator" +msgstr "" + +#: ui/windows.ui.xml:48 ui/windows.ui.xml:584 ui/macos.ui.xml:48 +#: ui/macos.ui.xml:584 ui/linux.ui.xml:48 ui/linux.ui.xml:584 +msgid "Session" +msgstr "" + +#: ui/windows.ui.xml:77 ui/windows.ui.xml:978 ui/windows.ui.xml:1098 +#: ui/macos.ui.xml:77 ui/macos.ui.xml:978 ui/macos.ui.xml:1098 +#: ui/linux.ui.xml:77 ui/linux.ui.xml:978 ui/linux.ui.xml:1098 +msgid "Session Trace" +msgstr "" + +#: src/objects/actions/save.c:63 src/objects/os/linux/savedesktopicon.c:85 +#: src/objects/os/windows/savedesktopicon.c:94 +msgid "Session file" +msgstr "" + +#: ui/windows.ui.xml:127 ui/windows.ui.xml:594 ui/macos.ui.xml:127 +#: ui/macos.ui.xml:594 ui/linux.ui.xml:127 ui/linux.ui.xml:594 +msgid "Session in New Tab" +msgstr "" + +#: ui/windows.ui.xml:122 ui/windows.ui.xml:589 ui/macos.ui.xml:122 +#: ui/macos.ui.xml:589 ui/linux.ui.xml:122 ui/linux.ui.xml:589 +msgid "Session in new window" +msgstr "" + +#: src/objects/actions/save.c:56 src/objects/os/linux/savedesktopicon.c:77 +#: src/objects/os/windows/savedesktopicon.c:86 +msgid "Session name" +msgstr "" + +#: src/objects/window/actions/sessionproperties.c:36 ui/windows.ui.xml:164 +#: ui/windows.ui.xml:631 ui/windows.ui.xml:1112 ui/macos.ui.xml:164 +#: ui/macos.ui.xml:631 ui/macos.ui.xml:1112 ui/linux.ui.xml:164 +#: ui/linux.ui.xml:631 ui/linux.ui.xml:1112 +msgid "Session preferences" +msgstr "" + +#: src/objects/application/application.c:249 +msgid "Set default log file name" +msgstr "" + +#: src/objects/application/application.c:239 +msgid "Set the user-interface type" +msgstr "" + +#: ui/windows.ui.xml:382 ui/macos.ui.xml:382 ui/linux.ui.xml:382 +msgid "Settings" +msgstr "" + +#: src/objects/toolbar/settings.c:182 +msgid "Setup the toolbar style and position" +msgstr "" + +#: src/objects/window/header-settings.c:53 +msgid "Setup title bar" +msgstr "" + +#: src/objects/toolbar/toolbar.c:213 src/objects/toolbar/settings.c:94 +msgid "Setup toolbar" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:70 +#: src/objects/os/windows/savedesktopicon.c:73 +msgid "Shortcut file" +msgstr "" + +#: ui/windows.ui.xml:159 ui/windows.ui.xml:626 ui/macos.ui.xml:159 +#: ui/macos.ui.xml:626 ui/linux.ui.xml:159 ui/linux.ui.xml:626 +msgid "Shortcut for this session" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:63 +msgid "Shortcut name" +msgstr "" + +#: ui/windows.ui.xml:510 ui/macos.ui.xml:510 ui/linux.ui.xml:510 +msgid "Show Underline" +msgstr "" + +#: ui/windows.ui.xml:774 ui/macos.ui.xml:774 ui/linux.ui.xml:774 +msgid "Show menu" +msgstr "" + +#: ui/windows.ui.xml:769 ui/macos.ui.xml:769 ui/linux.ui.xml:769 +msgid "Show toolbar" +msgstr "" + +#: src/objects/toolbar/models.c:61 +msgid "Small" +msgstr "" + +#: ui/windows.ui.xml:520 ui/windows.ui.xml:936 ui/macos.ui.xml:520 +#: ui/macos.ui.xml:936 ui/linux.ui.xml:520 ui/linux.ui.xml:936 +msgid "Smart paste" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:205 +msgid "Standard desktop files" +msgstr "" + +#: src/objects/settings/actionview.c:68 +msgid "Start" +msgstr "" + +#: src/objects/actions/abstract.c:152 +msgid "State" +msgstr "" + +#: src/objects/actions/abstract.c:131 +msgid "State Type" +msgstr "" + +#: src/objects/toolbar/settings.c:182 +msgid "Style & Position" +msgstr "" + +#: src/objects/toolbar/models.c:114 +msgid "Symbolic" +msgstr "" + +#: src/objects/toolbar/models.c:55 src/objects/toolbar/models.c:82 +#: src/objects/toolbar/models.c:111 +msgid "System default" +msgstr "" + +#: src/objects/settings/gsettings.c:133 +msgid "System settings error" +msgstr "" + +#: src/main/tools.c:75 +msgid "TN3270 Session Files" +msgstr "" + +#: src/objects/window/keyfile.c:241 +msgid "TN3270 Session description" +msgstr "" + +#: ui/windows.ui.xml:111 ui/windows.ui.xml:573 ui/macos.ui.xml:111 +#: ui/macos.ui.xml:573 ui/linux.ui.xml:111 ui/linux.ui.xml:573 +msgid "Tab with default session" +msgstr "" + +#: ui/windows.ui.xml:405 ui/macos.ui.xml:405 ui/linux.ui.xml:405 +msgid "Terminal colors" +msgstr "" + +#: ui/windows.ui.xml:442 ui/macos.ui.xml:442 ui/linux.ui.xml:442 +msgid "Terminal font" +msgstr "" + +#: src/objects/toolbar/models.c:92 +msgid "Text only" +msgstr "" + +#: src/objects/keypad/model.c:104 src/objects/keypad/element.c:106 +msgid "The Label of the keypad" +msgstr "" + +#: src/objects/actions/abstract.c:109 +msgid "The action label" +msgstr "" + +#: src/objects/actions/abstract.c:117 +msgid "The action tooltip" +msgstr "" + +#: src/objects/application/application.c:153 +msgid "The code of the User interface type" +msgstr "" + +#: src/objects/actions/save.c:64 +msgid "The file to save the current session preferences" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:86 +#: src/objects/os/windows/savedesktopicon.c:95 +msgid "The file with the session preferences for this shortcut" +msgstr "" + +#: src/objects/application/application.c:168 +msgid "The full path of the default log file" +msgstr "" + +#: src/objects/actions/abstract.c:110 +msgid "The label for the action" +msgstr "" + +#: src/objects/keypad/element.c:96 +msgid "The name of associated action" +msgstr "" + +#: src/objects/window/window.c:206 +msgid "The name of the actions in the header bar" +msgstr "" + +#: src/objects/toolbar/toolbar.c:98 +msgid "The name of the actions in the toolbar" +msgstr "" + +#: src/objects/keypad/element.c:86 +msgid "The name of the icon" +msgstr "" + +#: src/objects/actions/abstract.c:102 +msgid "The name of the icon associated with the action" +msgstr "" + +#: src/objects/keypad/model.c:94 +msgid "The name used to identify the keypad" +msgstr "" + +#: src/objects/actions/abstract.c:94 +msgid "The name used to invoke the action" +msgstr "" + +#: src/objects/keypad/model.c:114 +msgid "The position of the keypad" +msgstr "" + +#: src/objects/actions/save.c:57 src/objects/os/linux/savedesktopicon.c:79 +#: src/objects/os/windows/savedesktopicon.c:88 +msgid "The session name used in the window/tab title (empty for default)" +msgstr "" + +#: src/objects/actions/abstract.c:153 +msgid "The state the action is in" +msgstr "" + +#: src/objects/toolbar/toolbar.c:109 +msgid "The toolbar icon size" +msgstr "" + +#: src/objects/toolbar/toolbar.c:135 +msgid "The toolbar icon type" +msgstr "" + +#: src/objects/toolbar/toolbar.c:122 +msgid "The toolbar style" +msgstr "" + +#: src/objects/actions/abstract.c:118 +msgid "The tooltip for the action" +msgstr "" + +#: src/objects/actions/abstract.c:125 +msgid "The type of GVariant passed to activate()" +msgstr "" + +#: src/objects/actions/abstract.c:132 +msgid "The type of the state kept by the action" +msgstr "" + +#: src/objects/os/macos/savedesktopicon.c:68 +msgid "This action is not available in this platform" +msgstr "" + +#: src/objects/window/header-settings.c:52 +msgid "Title bar" +msgstr "" + +#: src/objects/window/header-settings.c:64 +msgid "Title bar actions" +msgstr "" + +#: src/objects/toolbar/settings.c:93 ui/windows.ui.xml:343 +#: ui/windows.ui.xml:968 ui/windows.ui.xml:1088 ui/macos.ui.xml:343 +#: ui/macos.ui.xml:968 ui/macos.ui.xml:1088 ui/linux.ui.xml:343 +#: ui/linux.ui.xml:968 ui/linux.ui.xml:1088 +msgid "Toolbar" +msgstr "" + +#: src/objects/toolbar/settings.c:68 +msgid "Toolbar Style" +msgstr "" + +#: src/objects/toolbar/settings.c:75 +msgid "Toolbar position" +msgstr "" + +#: src/objects/toolbar/models.c:79 +msgid "Toolbar s_tyle" +msgstr "" + +#: src/objects/toolbar/models.c:128 +msgid "Top (system default)" +msgstr "" + +#: ui/windows.ui.xml:973 ui/macos.ui.xml:973 ui/linux.ui.xml:973 +msgid "Top menu" +msgstr "" + +#: ui/windows.ui.xml:338 ui/macos.ui.xml:338 ui/linux.ui.xml:338 +msgid "Trace" +msgstr "" + +#: ui/windows.ui.xml:465 ui/windows.ui.xml:1027 ui/macos.ui.xml:465 +#: ui/macos.ui.xml:1027 ui/linux.ui.xml:465 ui/linux.ui.xml:1027 +msgid "Track Cursor" +msgstr "" + +#: src/objects/application/application.c:152 +msgid "UI Type" +msgstr "" + +#: src/objects/settings/gsettings.c:131 +msgid "" +"Unable to initialize system settings. Application may crash in unexpected " +"ways" +msgstr "" + +#: src/objects/os/windows/open.c:137 +#, c-format +msgid "Unable to load session preferences from '%s'" +msgstr "" + +#: ui/windows.ui.xml:291 ui/windows.ui.xml:800 ui/macos.ui.xml:291 +#: ui/macos.ui.xml:800 ui/linux.ui.xml:291 ui/linux.ui.xml:800 +msgid "Unselect" +msgstr "" + +#: src/objects/application/actions/about.c:98 +#, c-format +msgid "Unstable version %s-%s" +msgstr "" + +#: ui/windows.ui.xml:530 ui/windows.ui.xml:907 ui/macos.ui.xml:530 +#: ui/macos.ui.xml:907 ui/linux.ui.xml:530 ui/linux.ui.xml:907 +msgid "Use +/- for field navigation" +msgstr "" + +#: src/objects/application/actions/about.c:100 +#, c-format +msgid "Version %s-%s" +msgstr "" + +#: src/objects/window/header.c:63 ui/windows.ui.xml:64 ui/windows.ui.xml:965 +#: ui/windows.ui.xml:1085 ui/macos.ui.xml:64 ui/macos.ui.xml:965 +#: ui/macos.ui.xml:1085 ui/linux.ui.xml:64 ui/linux.ui.xml:965 +#: ui/linux.ui.xml:1085 +msgid "View" +msgstr "" + +#: src/objects/application/actions/about.c:191 +msgid "View this project on github" +msgstr "" + +#: ui/windows.ui.xml:106 ui/windows.ui.xml:568 ui/macos.ui.xml:106 +#: ui/macos.ui.xml:568 ui/linux.ui.xml:106 ui/linux.ui.xml:568 +msgid "Window with default session" +msgstr "" + +#: src/objects/os/windows/savedesktopicon.c:187 +msgid "Windows shortcuts" +msgstr "" + +#: src/objects/settings/dialog.c:79 +msgid "_Apply" +msgstr "" + +#: src/objects/actions/save.c:103 src/objects/settings/dialog.c:78 +#: src/objects/os/linux/savedesktopicon.c:140 +#: src/objects/os/windows/savedesktopicon.c:132 +msgid "_Cancel" +msgstr "" + +#: src/objects/window/page.c:371 +msgid "_Close session" +msgstr "" + +#: ui/windows.ui.xml:369 ui/windows.ui.xml:1107 ui/macos.ui.xml:369 +#: ui/macos.ui.xml:1107 ui/linux.ui.xml:369 ui/linux.ui.xml:1107 +msgid "_Connect" +msgstr "" + +#: ui/windows.ui.xml:374 ui/macos.ui.xml:374 ui/linux.ui.xml:374 +msgid "_Disconnect" +msgstr "" + +#: ui/windows.ui.xml:232 ui/windows.ui.xml:681 ui/windows.ui.xml:824 +#: ui/macos.ui.xml:232 ui/macos.ui.xml:681 ui/macos.ui.xml:824 +#: ui/linux.ui.xml:232 ui/linux.ui.xml:681 ui/linux.ui.xml:824 +msgid "_Edit" +msgstr "" + +#: ui/windows.ui.xml:99 ui/macos.ui.xml:99 ui/linux.ui.xml:99 +msgid "_File" +msgstr "" + +#: ui/windows.ui.xml:361 ui/macos.ui.xml:361 ui/linux.ui.xml:361 +msgid "_Network" +msgstr "" + +#: ui/windows.ui.xml:103 ui/windows.ui.xml:565 ui/macos.ui.xml:103 +#: ui/macos.ui.xml:565 ui/linux.ui.xml:103 ui/linux.ui.xml:565 +msgid "_New" +msgstr "" + +#: ui/windows.ui.xml:119 ui/windows.ui.xml:581 ui/macos.ui.xml:119 +#: ui/macos.ui.xml:581 ui/linux.ui.xml:119 ui/linux.ui.xml:581 +msgid "_Open" +msgstr "" + +#: src/objects/toolbar/toolbar.c:235 +msgid "_Preferences" +msgstr "" + +#: src/objects/window/page.c:365 +msgid "_Rename session" +msgstr "" + +#: src/objects/actions/save.c:104 src/objects/os/linux/savedesktopicon.c:141 +#: src/objects/os/windows/savedesktopicon.c:133 +msgid "_Save" +msgstr "" + +#: ui/windows.ui.xml:335 ui/macos.ui.xml:335 ui/linux.ui.xml:335 +msgid "_View" +msgstr "" + +#: src/objects/application/actions/about.c:190 +msgid "https://github.com/PerryWerneck/pw3270" +msgstr "" + +#: src/objects/application/actions/about.c:193 +msgid "translator-credits" +msgstr "" From 87121a0257f9a4c2aaf86bcaac6b86f7bc058a0d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 22:51:07 -0300 Subject: [PATCH 004/186] Updating github. --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a2b7ef15..aab8e221 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,14 @@ See more details at https://softwarepublico.gov.br/social/pw3270/ ## Installation -[OpenSUSE Linux](https://software.opensuse.org/package/pw3270) -[Linux distribution](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) - -### Linux (latest and unstable versions) +### Linux For the supported distributions get the install repositories and instructions from https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270 +[OpenSUSE Linux](https://software.opensuse.org/package/pw3270) +[Linux distribution](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) +[[https://flathub.org/apps/details/br.app.pw3270.terminal|{{https://flathub.org/assets/badges/flathub-badge-en.png|Download on Flathub|width=240,align=middle}}]] + ### Windows Updated windows installers are available on Dropbox, google drive and one drive. From 643d342510cfee41a994625e668211915a55d7f2 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 22:53:06 -0300 Subject: [PATCH 005/186] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aab8e221..f0397073 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ For the supported distributions get the install repositories and instructions fr [OpenSUSE Linux](https://software.opensuse.org/package/pw3270) [Linux distribution](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) -[[https://flathub.org/apps/details/br.app.pw3270.terminal|{{https://flathub.org/assets/badges/flathub-badge-en.png|Download on Flathub|width=240,align=middle}}]] +[![Download on Flathub](https://flathub.org/assets/badges/flathub-badge-en.png)](https://flathub.org/apps/details/br.app.pw3270.terminal) ### Windows From 7475e3974928e84bc3abfb751816ec7c13812361 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 22:59:57 -0300 Subject: [PATCH 006/186] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index f0397073..db85e088 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,7 @@ See more details at https://softwarepublico.gov.br/social/pw3270/ For the supported distributions get the install repositories and instructions from https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270 -[OpenSUSE Linux](https://software.opensuse.org/package/pw3270) -[Linux distribution](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) -[![Download on Flathub](https://flathub.org/assets/badges/flathub-badge-en.png)](https://flathub.org/apps/details/br.app.pw3270.terminal) +[![Download on Flathub](https://flathub.org/assets/badges/flathub-badge-en.png)](https://flathub.org/apps/details/br.app.pw3270.terminal | height=80) ### Windows From 0d6b9bfcc3d1b0a538238227e936b6e055ad1635 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 23:01:00 -0300 Subject: [PATCH 007/186] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index db85e088..78af5ffc 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See more details at https://softwarepublico.gov.br/social/pw3270/ For the supported distributions get the install repositories and instructions from https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270 -[![Download on Flathub](https://flathub.org/assets/badges/flathub-badge-en.png)](https://flathub.org/apps/details/br.app.pw3270.terminal | height=80) +[![Download on Flathub](https://flathub.org/assets/badges/flathub-badge-en.png | height=80)](https://flathub.org/apps/details/br.app.pw3270.terminal) ### Windows From db6715c4e60c5f00b613ff326c2b12cebb4dac4c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 23:03:55 -0300 Subject: [PATCH 008/186] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78af5ffc..71e3aba6 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See more details at https://softwarepublico.gov.br/social/pw3270/ For the supported distributions get the install repositories and instructions from https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270 -[![Download on Flathub](https://flathub.org/assets/badges/flathub-badge-en.png | height=80)](https://flathub.org/apps/details/br.app.pw3270.terminal) +[Download on Flathub]([https://www.dropbox.com/sh/2qy3s6b5s4o4bws/AAAubHE8SBG7r6CJSKPflKN0a?dl=0](https://flathub.org/apps/details/br.app.pw3270.terminal)) ### Windows From 670429368a6cced597871a529583e306eade44cb Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 23:06:43 -0300 Subject: [PATCH 009/186] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 71e3aba6..c1bf48bc 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,10 @@ See more details at https://softwarepublico.gov.br/social/pw3270/ For the supported distributions get the install repositories and instructions from https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270 -[Download on Flathub]([https://www.dropbox.com/sh/2qy3s6b5s4o4bws/AAAubHE8SBG7r6CJSKPflKN0a?dl=0](https://flathub.org/apps/details/br.app.pw3270.terminal)) +[Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) -### Windows +### Windows[ +](https://flathub.org/apps/details/br.app.pw3270.terminal) Updated windows installers are available on Dropbox, google drive and one drive. From f3f53ee2688fa528c07a6a27e4843250ceff4c6c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 18 Jan 2023 23:09:38 -0300 Subject: [PATCH 010/186] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index c1bf48bc..90380394 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,7 @@ For the supported distributions get the install repositories and instructions fr [Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) -### Windows[ -](https://flathub.org/apps/details/br.app.pw3270.terminal) +### Windows Updated windows installers are available on Dropbox, google drive and one drive. From aaa1b56821cc2fdf77869587d26c0bd03c482d58 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 19 Jan 2023 08:42:17 -0300 Subject: [PATCH 011/186] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a2b7ef15..4946a659 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ See more details at https://softwarepublico.gov.br/social/pw3270/ [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -![CodeQL](https://github.com/PerryWerneck/libv3270/workflows/CodeQL/badge.svg?branch=master) +![CodeQL](https://github.com/PerryWerneck/pw3270/workflows/CodeQL/badge.svg?branch=master) [![build result](https://build.opensuse.org/projects/home:PerryWerneck:pw3270/packages/pw3270/badge.svg?type=percent)](https://build.opensuse.org/package/show/home:PerryWerneck:pw3270/pw3270) ## Installation From ee06acb19e37d4459d5fce04962a438cbb00ef3b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 19 Jan 2023 08:42:56 -0300 Subject: [PATCH 012/186] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 4946a659..2dbf4cdb 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ pw3270 is a modern, GTK-based, completely free tn3270 emulator. Created originally for Banco do Brasil, it's now an official Brazilian Government Public Software project, and is used worldwide. -See more details at https://softwarepublico.gov.br/social/pw3270/ - [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) From b0f2d0237a20db434a74a924d4db573c1bef22c1 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 19 Jan 2023 08:42:17 -0300 Subject: [PATCH 013/186] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 90380394..eeba48f1 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ See more details at https://softwarepublico.gov.br/social/pw3270/ [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -![CodeQL](https://github.com/PerryWerneck/libv3270/workflows/CodeQL/badge.svg?branch=master) +![CodeQL](https://github.com/PerryWerneck/pw3270/workflows/CodeQL/badge.svg?branch=master) [![build result](https://build.opensuse.org/projects/home:PerryWerneck:pw3270/packages/pw3270/badge.svg?type=percent)](https://build.opensuse.org/package/show/home:PerryWerneck:pw3270/pw3270) ## Installation From d94f667b842c7e575dfb6a28ae9d5b35dea29fe0 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 19 Jan 2023 08:42:56 -0300 Subject: [PATCH 014/186] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index eeba48f1..c4b52021 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ pw3270 is a modern, GTK-based, completely free tn3270 emulator. Created originally for Banco do Brasil, it's now an official Brazilian Government Public Software project, and is used worldwide. -See more details at https://softwarepublico.gov.br/social/pw3270/ - [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) From 660690c7cf89d0827b6a9ee4bd2470ef6669b9e1 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 20 Jan 2023 10:00:11 -0300 Subject: [PATCH 015/186] Updating flathub manifest. --- flathub/br.app.pw3270.terminal.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flathub/br.app.pw3270.terminal.yml b/flathub/br.app.pw3270.terminal.yml index 4fd4089c..84f47368 100644 --- a/flathub/br.app.pw3270.terminal.yml +++ b/flathub/br.app.pw3270.terminal.yml @@ -1,6 +1,6 @@ app-id: br.app.pw3270.terminal runtime: org.gnome.Platform -runtime-version: 43 +runtime-version: '43' sdk: org.gnome.Sdk command: pw3270 finish-args: @@ -8,7 +8,6 @@ finish-args: - "--share=ipc" - "--socket=fallback-x11" - "--socket=wayland" - - "--own-name=br.app.pw3270.pw3270.terminal" cleanup: - "/include" - "/lib/pkgconfig" @@ -22,7 +21,8 @@ cleanup: modules: - name: lib3270 buildsystem: autotools - config-opts: --with-product-id="br.app.pw3270" + config-opts: + - --with-product-id="br.app.pw3270" sources: - type: git tag: "5.4" From b51d7b5d8654b993b1a82702b921d42418fbb1db Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 20 Jan 2023 11:52:52 -0300 Subject: [PATCH 016/186] Using svg badge for flathub --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c4b52021..1c4624ab 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Created originally for Banco do Brasil, it's now an official Brazilian Governmen For the supported distributions get the install repositories and instructions from https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270 -[Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) +[Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) ### Windows From 5b541af4b897fcb616372e262832aa6cb87da861 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 20 Jan 2023 13:04:46 -0300 Subject: [PATCH 017/186] Updating social preview, adding obs-badge. --- branding/obs-badge-en.svg | 541 +++++++++++ branding/social-preview.svg | 1741 ++++++++++++++++++++--------------- 2 files changed, 1531 insertions(+), 751 deletions(-) create mode 100644 branding/obs-badge-en.svg diff --git a/branding/obs-badge-en.svg b/branding/obs-badge-en.svg new file mode 100644 index 00000000..70049735 --- /dev/null +++ b/branding/obs-badge-en.svg @@ -0,0 +1,541 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/social-preview.svg b/branding/social-preview.svg index 6b314fea..446c065c 100644 --- a/branding/social-preview.svg +++ b/branding/social-preview.svg @@ -42,6 +42,25 @@ offset="1" id="stop3691" /> + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g637"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g448" + transform="translate(-133.13673,-73.129534)"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + class="shp0" + d="m 420.55757,186.01059 v 5.10919 h 10.2184 v -10.21839 h -10.2184 z m 10.94828,0 v 5.10919 h 10.2184 v -10.21839 h -10.2184 z m -10.94828,10.94827 v 5.1092 h 10.2184 v -10.21839 h -10.2184 z m 10.94828,0 v 5.1092 h 10.2184 v -10.21839 h -10.2184 z" + id="path6-3" + style="fill:#0078d4;stroke-width:0.364943" /> From 498adcb911ebc3e936223918408a0d3c7c57ec60 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 20 Jan 2023 13:09:20 -0300 Subject: [PATCH 018/186] Adding OBS badge. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1c4624ab..bf4c5553 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Created originally for Banco do Brasil, it's now an official Brazilian Governmen For the supported distributions get the install repositories and instructions from https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270 [Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) +[Download from open build service](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) ### Windows From a70cd82281065006bcb1b6c94002501d11fc0d63 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 20 Jan 2023 13:13:15 -0300 Subject: [PATCH 019/186] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf4c5553..ed517b10 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Created originally for Banco do Brasil, it's now an official Brazilian Governmen ### Linux -For the supported distributions get the install repositories and instructions from https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270 +You can download installation package for supported distributions in Open Build Service, or, use it from flathub. [Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) [Download from open build service](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) From 1271c30c2d04303953e0429cad227135ceadb46a Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 20 Jan 2023 13:16:24 -0300 Subject: [PATCH 020/186] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ed517b10..0bcac129 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Created originally for Banco do Brasil, it's now an official Brazilian Governmen ### Linux -You can download installation package for supported distributions in Open Build Service, or, use it from flathub. +You can download installation package for supported distributions in Open Build Service, or, use get the flatpak version from flathub. [Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) [Download from open build service](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) From cb3a837bd77cf1c4db37634034e04946f95095a2 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 20 Jan 2023 13:17:49 -0300 Subject: [PATCH 021/186] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0bcac129..2f1ad563 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,10 @@ Created originally for Banco do Brasil, it's now an official Brazilian Governmen ### Linux -You can download installation package for supported distributions in Open Build Service, or, use get the flatpak version from flathub. +You can download installation package for supported distributions in Open Build Service or the flatpak version from flathub. -[Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) [Download from open build service](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) +[Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) ### Windows From d3bbc96a8eb102a2e46c9b5bf95d2be915faf1a8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 25 Jan 2023 10:26:46 -0300 Subject: [PATCH 022/186] Scheduling msys2 rebuilds. --- .github/workflows/msys2.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index 7eb7f6b1..712a1d74 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -3,6 +3,8 @@ on: pull_request: branches: - master + schedule: + - cron: '30 13 3 2,4,6,8,10,12 *' jobs: msys2-mingw: From 7082b52c1b586d5d1843f1918ef7482fb88ad869 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 25 Jan 2023 10:26:46 -0300 Subject: [PATCH 023/186] Scheduling msys2 rebuilds. --- .github/workflows/msys2.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index 7eb7f6b1..712a1d74 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -3,6 +3,8 @@ on: pull_request: branches: - master + schedule: + - cron: '30 13 3 2,4,6,8,10,12 *' jobs: msys2-mingw: From 993bf1d8a4a1c9263638b37ffa3b05a3d305af9a Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 30 Jan 2023 18:35:37 -0300 Subject: [PATCH 024/186] Updating package. --- arch/PKGBUILD | 5 ++- locale/pw3270.pot | 2 +- rpm/pw3270.spec | 55 ++++++++---------------- src/objects/os/windows/savedesktopicon.c | 2 +- win/pack.sh | 34 ++++++--------- 5 files changed, 36 insertions(+), 62 deletions(-) diff --git a/arch/PKGBUILD b/arch/PKGBUILD index 3013e4b9..81f58937 100644 --- a/arch/PKGBUILD +++ b/arch/PKGBUILD @@ -8,11 +8,12 @@ pkgdesc="IBM 3270 Terminal emulator for GTK" url="https://portal.softwarepublico.gov.br/social/pw3270/" arch=(i686 x86_64) license=(GPL) -depends=() +depends=(libv3270) +optdepends=('pw3270-plugin-ipc: D-Bus remote control' 'pw3270-keypads: Aditional screen keypads') makedepends=(autoconf automake make openssl lib3270 gtk3 libv3270 python3 dbus dbus-glib imagemagick optipng gzip) checkdepends=() -#groups=(gnome) +groups=(gnome) source=($pkgname-$pkgver.tar.xz) sha256sums=('SKIP') diff --git a/locale/pw3270.pot b/locale/pw3270.pot index a04cea6e..7440c542 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-18 12:47-0300\n" +"POT-Creation-Date: 2023-01-30 11:48-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/rpm/pw3270.spec b/rpm/pw3270.spec index 5d7d918e..da8e42f4 100644 --- a/rpm/pw3270.spec +++ b/rpm/pw3270.spec @@ -13,12 +13,16 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://github.com/PerryWerneck/pw3270/issues # - %define _product %(pkg-config --variable=product_name lib3270) +%define plugindir %(pkg-config --variable=plugin_path lib3270) +%if "%{plugindir}" == "" + %define plugindir /usr/lib64/pw3270-plugins +%endif + #---[ Packaging ]----------------------------------------------------------------------------------------------------- Name: pw3270 @@ -51,8 +55,7 @@ Recommends: libv3270-config BuildRequires: glib2-devel BuildRequires: gtk3-devel -BuildRequires: libappstream-glib -BuildRequires: libv3270-devel >= 5.3 +BuildRequires: libv3270-devel >= 5.4 %endif @@ -60,10 +63,9 @@ BuildRequires: libv3270-devel >= 5.3 %if 0%{?fedora} -BuildRequires: libappstream-glib BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gtk+-3.0) -BuildRequires: pkgconfig(libv3270) >= 5.3 +BuildRequires: pkgconfig(libv3270) >= 5.4 %endif @@ -75,7 +77,7 @@ BuildRequires: appstream-glib BuildRequires: update-desktop-files BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gtk+-3.0) -BuildRequires: pkgconfig(libv3270) >= 5.3 +BuildRequires: pkgconfig(libv3270) >= 5.4 %glib2_gsettings_schema_requires @@ -106,14 +108,14 @@ Based on the original x3270 code, pw3270 was originally created for Banco do Bra #--[ Configuration & Branding ]--------------------------------------------------------------------------------------- %package branding -Summary: Default branding for %{name} -Group: System/X11/Terminals +Summary: Default branding for %{name} +Group: System/X11/Terminals -Requires: %{name} = %{version} -BuildArch: noarch +Requires: %{name} = %{version} +BuildArch: noarch -Requires(post): desktop-file-utils -Requires(postun):desktop-file-utils +Requires(post): desktop-file-utils +Requires(postun): desktop-file-utils %description branding GTK-based IBM 3270 terminal emulator with many advanced features. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. @@ -128,24 +130,6 @@ This package contains the default branding for %{name}. %global _lto_cflags %{_lto_cflags} -ffat-lto-objects NOCONFIGURE=1 ./autogen.sh -# Pull request #20 broke SLE-12 builds -update_for_compatibility() { - sed -i -e "s|@APPLICATION_ID@|@APPLICATION_ID@.desktop|" branding/metainfo.xml.in - sed -i -e "s|||" branding/metainfo.xml.in -} - -%if 0%{?suse_version} - %if 0%{?suse_version} < 1500 - update_for_compatibility - %endif -%endif - -%if 0%{?fedora} - %if 0%{?fedora_version} < 27 - update_for_compatibility - %endif -%endif - %configure --with-release=%{release} CFLAGS="${CFLAGS} -fpie" LDFLAGS="${LDFLAGS} -pie" %build @@ -159,7 +143,9 @@ make all -j1 %find_lang pw3270 langfiles +%if 0%{?suse_version} appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.metainfo.xml +%endif %fdupes %{buildroot}/%{_prefix} @@ -171,18 +157,13 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.metainf # Main application %dir %{_datadir}/%{_product} %dir %{_datadir}/%{_product}/keypad -%dir %{_libdir}/%{_product}-plugins +%dir %{plugindir} %dir %{_datadir}/%{_product}/icons %{_bindir}/%{_product} # Desktop files %{_datadir}/applications/*.desktop - -%if 0%{?suse_version} < 1500 -%dir %{_datadir}/metainfo -%endif - %{_datadir}/metainfo/*.metainfo.xml # Icons diff --git a/src/objects/os/windows/savedesktopicon.c b/src/objects/os/windows/savedesktopicon.c index e016cae3..4b259b4c 100644 --- a/src/objects/os/windows/savedesktopicon.c +++ b/src/objects/os/windows/savedesktopicon.c @@ -238,7 +238,7 @@ static HRESULT CreateShortCut(const char * pszTargetfile, const char * pszTarget HRESULT hRes = CoCreateInstance( - &CLSID_ShellLink, // predefined CLSID of the IShellLink object + CLSID_ShellLink, // predefined CLSID of the IShellLink object NULL, // pointer to parent interface if part of aggregate CLSCTX_INPROC_SERVER, // caller and called code are in same process &IID_IShellLink, // predefined interface of the IShellLink object diff --git a/win/pack.sh b/win/pack.sh index 2fd830d2..b3ccf8f3 100755 --- a/win/pack.sh +++ b/win/pack.sh @@ -1,35 +1,27 @@ #!/bin/bash # -# "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 -# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a -# aplicativos mainframe. Registro no INPI sob o nome G3270. +# SPDX-License-Identifier: LGPL-3.0-or-later # # Copyright (C) <2008> # -# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob -# os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela -# Free Software Foundation. +# 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. # -# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER -# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO -# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para -# obter mais detalhes. -# -# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este -# programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin -# St, Fifth Floor, Boston, MA 02110-1301 USA -# -# Contatos: -# -# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) -# erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) +# 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 . # PRODUCT_NAME="pw3270" LIBRARY_NAME="lib3270" CORE_LIBRARIES="lib3270 libv3270 libipc3270" -PACKAGE_PLUGINS="" +PACKAGE_PLUGINS="ipc" PACKAGE_EXTRAS="libhllapi pw3270-keypads" #TARGET_ARCHS="x86_64 x86_32" @@ -271,7 +263,7 @@ buildLibrary() } # -# Build language binding +# Build extra package # buildExtraPackage() { From e3a0cc8d377b4d5fbbaa7f12ef4099aabafa7321 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 30 Jan 2023 18:47:04 -0300 Subject: [PATCH 025/186] Updating schema path on macos bundle script. --- macos/bundle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/macos/bundle b/macos/bundle index 918937c5..4697cac7 100755 --- a/macos/bundle +++ b/macos/bundle @@ -136,8 +136,10 @@ cp "$(brew --prefix)/share/pw3270/colors.conf" "${res_path}" # Bundle GLib schemas echo "Bundling GLib schemas" mkdir -p "${tmp}/schemas" -cp "../schemas/linux/"*".xml" "${tmp}/schemas" + +cp "$(brew --prefix)$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/pw3270*.gschema.xml" "${tmp}/schemas" cp "$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/org.gtk.Settings."*".gschema.xml" "${tmp}/schemas" + glib-compile-schemas --targetdir="${res_path}" "${tmp}/schemas" # Create the GTK settings file From 8a614fc1d61340c51575874ef3a22e01f0f072ce Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 30 Jan 2023 19:57:06 -0300 Subject: [PATCH 026/186] Updating deb control files. --- debian/control | 12 +++--------- debian/pw3270.dsc | 4 ++-- debian/rules | 16 ++++------------ locale/pw3270.pot | 2 +- 4 files changed, 10 insertions(+), 24 deletions(-) diff --git a/debian/control b/debian/control index 01596309..a3d350e6 100644 --- a/debian/control +++ b/debian/control @@ -2,24 +2,18 @@ Source: pw3270 Section: unknown Priority: optional Maintainer: Perry Werneck -Build-Depends: debhelper (>= 7), autotools-dev, autoconf, libgtk-3-dev, gettext, desktop-file-utils, imagemagick, librsvg2-bin, libv3270-dev +Build-Depends: debhelper (>= 7), lib3270-dev, libv3270-dev, autotools-dev, autoconf, libgtk-3-dev, gettext, desktop-file-utils Package: pw3270 Architecture: any -Depends: ${misc:Depends}, ${shlibs:Depends} +Depends: lib3270, libv3270, ${shlibs:Depends}, ${misc:Depends} Description: IBM 3270 Terminal emulator for gtk IBM 3270 terminal emulator gtk. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. -Package: pw3270-keypads -Architecture: any -Depends: pw3270 (= ${binary:Version}) -Description: Keypads for pw3270 - This package provides optional keypads for pw3270 application. - Package: pw3270-dbg Architecture: any Depends: pw3270 (= ${binary:Version}) -Description: Debugging symbols for pw3270/lib3270 +Description: Debugging symbols for pw3270 This package contains the debugging symbols for pw3270's internal libs. diff --git a/debian/pw3270.dsc b/debian/pw3270.dsc index 6a5c4bd7..da9a113e 100644 --- a/debian/pw3270.dsc +++ b/debian/pw3270.dsc @@ -4,10 +4,10 @@ Version: 5.4-0 Binary: pw3270 Maintainer: Perry Werneck Architecture: any -Build-Depends: debhelper (>= 7), autotools-dev, autoconf, automake, pkg-config, libgtk-3-dev, gettext, desktop-file-utils, imagemagick, librsvg2-bin, optipng, libv3270-dev +Build-Depends: debhelper (>= 7), lib3270-dev, libv3270-dev, autotools-dev, autoconf, automake, pkg-config, libgtk-3-dev, gettext, desktop-file-utils, imagemagick, librsvg2-bin, optipng Standards-Version: 3.9.1.0 DEBTRANSFORM-RELEASE: 1 Files: - 00000000000000000000000000000000 000000 pw3270-5.3.tar.xz + 00000000000000000000000000000000 000000 pw3270-unstable-5.3.tar.xz diff --git a/debian/rules b/debian/rules index 01b2eb8c..75855ac5 100644 --- a/debian/rules +++ b/debian/rules @@ -27,17 +27,10 @@ build-stamp: dh_testdir # Add here commands to compile the package. - - aclocal - autoconf - - mkdir -p scripts - automake --add-missing 2> /dev/null | true - - ./configure --prefix=/usr - + NOCONFIGURE=1 ./autogen.sh + ./configure --prefix=/usr --enable-unstable --with-application-id=br.com.bb.pw3270.unstable rm -f debian/*.install - make Release + make all # --- end custom part for compiling @@ -66,8 +59,6 @@ install: build # Install main application make DESTDIR=$(PWD)/debian/$(PACKAGE_NAME) install-application - # --- end custom part for installing - # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. @@ -104,3 +95,4 @@ binary-arch: build install binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install + diff --git a/locale/pw3270.pot b/locale/pw3270.pot index a04cea6e..c5558a70 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-18 12:47-0300\n" +"POT-Creation-Date: 2023-01-30 18:38-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From bb41f33ae297a6705a9ab08b2ed7daad70a9cb91 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 30 Jan 2023 20:00:39 -0300 Subject: [PATCH 027/186] Adding 'CHANGELOG' --- CHANGELOG | 600 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 600 insertions(+) create mode 100644 CHANGELOG diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 00000000..447d1275 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,600 @@ +------------------------------------------------------------------- +Thu Apr 07 23:35:08 UTC 2022 - perry.werneck@gmail.com + +- Update to version 5.4: + * fix-appdata-xml.patch removed. + * Adjustments in lgtm build settings. + * Fixing lgtm alerts. + * Fixing locales. + * Fixing ui install path. + * Testing refactored menu engine on windows. + * Refactoring menu builder engine to allow OS dependant menu layouts. + * Small adjustments in option parser. + * Fixing build system. + * Refactoring build sistem. + * Adding lgtm control file. + * Update README.md + * Exporting the log file name as an application property. + * Adding method for setting application object just after the plugin load. + * Adding host settings to classic menu. + * Updating win package + * Adjustments in the classic menu. + * Host and color dialogs are now part of libv3270. + * Fixing msys install. + * Working on windows package. + * Adjusting for windows packaging. + * Calling plugins on every new terminal. + * Commenting unnecessary message. + * Fix bug #24 - Run glib-compile-schemas after schema installation. + * Update README.md + * Updating metadata. + * Updating translation. + * Fixing 'save session preferences' in the classic dialog. + * Default for update session file is now false. + * Updating pre-reqs. + * Updating cross-compiler install script. + * Adding connect/disconnect icons. + * Adding message dialog when gsettings fail to prevent the windows 'hang' on schema failure. + * Fixing windows startup with session file name. + * 'gfile' open has failed on windows, building an OS specific version. + * Working on command line session file parser. + * Adjusting user interface. + * Adding 'ok' icons. + * Updating translations, adding method to get the active terminal window. + * Implementing method to get active session. + * Adding 'quit' icons. + * Fixing release build. + * Fixing windows load of gschemas. + * Fixing gsettings error. + * Fixing icons in the windows package. + * Implementing default log file from command line option. + * Working on windows package. + * Adding pixbuf loaders to runtime. + * Fixing gsettings on windows. + * Disabling tabs from command line option. + * Updating windows package script. + * Working on windows build. + * Updating windows schema. + * Fixing windows build. + * Adjustments in windows package. + * rsvg-view was replaced by inkscape. + * Adjusments in win package. + * Reseting to default session before loading of command line URL. + * Fixing codeql workflow + * Fixing startup with URL instead of session file. + * Fixing gnome-software integration. + * Adding the '.desktop' required by gnome-software on the id. + * Updating desktop file. + * Fixing obs warning. + * Fixing appstream-validate error. + * Convert from appdata to metainfo + * Adjusting desktop file. + * Reformating source with astyle. + * Adding metada to gtkrecentmanager entry. + * Fixing last-session-save engine. + * Adding action to open session file in the active terminal. + * Storing last command line passed session as a default one. + * Adding gsetting for default session filename. + * Disabling toolbar and header bar on invalid gsettings object to avoid segfaults. + * Fixing empty session name on "save-session-preferences" dialog. + * Fixing segfault on multiple session files. + * Updating README. + * Adding MVS screenshot. + * Update README.md + * Fixing windows build. + * Fixing translation. + * Fixing package build. + * Adjustments on about window. + * Delaying 'gsettings' change on application preferences dialog. + * Moving keypads to another project/package. + * Adding symbolic icon. + * Fixing appdata icon. + * Translating appdata. + * Trying to fix SLE-12 icon problem. + * Can't use metainfo and appdata in the same project. + * Adding metainfo for keypads. + * Updating package control files. + * Allow change of the application id from configure. + * Using application id for .desktop file, adjustmente in appdata. + * Fixing dialog section title. + * Fixing segfault on multiple use of settings dialog. + * Adding settings for the toolbar position. + * Ignoring patches. + * Fixing schema paths. + * Fixing fedora builds. + * Updating rpm control file. + * Fixing toolbar segfault on application exit. + * Enable new windows and tab lockdown. + * Fix loading of default settings. + * Updating project file. + * Cleaning debug messages. + * Fixing schemas. + * Adding option for lockdown the host settings dialog. + * Branding package should be noarch. + * Update README.md + * Changing version to 5.4 Adjustments in the about dialog. + * Fixing 'tag' script. + +------------------------------------------------------------------- +Thu Apr 07 23:35:08 UTC 2022 - perry.werneck@gmail.com + +- Update to version 5.4: + * Adjustments in lgtm build settings. + * Fixing lgtm alerts. + * Fixing locales. + * Fixing ui install path. + * Testing refactored menu engine on windows. + * Refactoring menu builder engine to allow OS dependant menu layouts. + * Small adjustments in option parser. + * Fixing build system. + * Refactoring build sistem. + * Adding lgtm control file. + * Update README.md + * Exporting the log file name as an application property. + * Adding method for setting application object just after the plugin load. + * Adding host settings to classic menu. + * Updating win package + * Adjustments in the classic menu. + * Host and color dialogs are now part of libv3270. + * Fixing msys install. + * Working on windows package. + * Adjusting for windows packaging. + * Calling plugins on every new terminal. + * Commenting unnecessary message. + * Fix bug #24 - Run glib-compile-schemas after schema installation. + * Update README.md + * Updating metadata. + * Updating translation. + * Fixing 'save session preferences' in the classic dialog. + * Default for update session file is now false. + * Updating pre-reqs. + * Updating cross-compiler install script. + * Adding connect/disconnect icons. + * Adding message dialog when gsettings fail to prevent the windows 'hang' on schema failure. + * Fixing windows startup with session file name. + * 'gfile' open has failed on windows, building an OS specific version. + * Working on command line session file parser. + * Adjusting user interface. + * Adding 'ok' icons. + * Updating translations, adding method to get the active terminal window. + * Implementing method to get active session. + * Adding 'quit' icons. + * Fixing release build. + * Fixing windows load of gschemas. + * Fixing gsettings error. + * Fixing icons in the windows package. + * Implementing default log file from command line option. + * Working on windows package. + * Adding pixbuf loaders to runtime. + * Fixing gsettings on windows. + * Disabling tabs from command line option. + * Updating windows package script. + * Working on windows build. + * Updating windows schema. + * Fixing windows build. + * Adjustments in windows package. + * rsvg-view was replaced by inkscape. + * Adjusments in win package. + * Reseting to default session before loading of command line URL. + * Fixing codeql workflow + * Fixing startup with URL instead of session file. + * Fixing gnome-software integration. + * Adding the '.desktop' required by gnome-software on the id. + * Updating desktop file. + * Fixing obs warning. + * Fixing appstream-validate error. + * Convert from appdata to metainfo + * Adjusting desktop file. + * Reformating source with astyle. + * Adding metada to gtkrecentmanager entry. + * Fixing last-session-save engine. + * Adding action to open session file in the active terminal. + * Storing last command line passed session as a default one. + * Adding gsetting for default session filename. + * Disabling toolbar and header bar on invalid gsettings object to avoid segfaults. + * Fixing empty session name on "save-session-preferences" dialog. + * Fixing segfault on multiple session files. + * Updating README. + * Adding MVS screenshot. + * Update README.md + * Fixing windows build. + * Fixing translation. + * Fixing package build. + * Adjustments on about window. + * Delaying 'gsettings' change on application preferences dialog. + * Moving keypads to another project/package. + * Adding symbolic icon. + * Fixing appdata icon. + * Translating appdata. + * Trying to fix SLE-12 icon problem. + * Can't use metainfo and appdata in the same project. + * Adding metainfo for keypads. + * Updating package control files. + * Allow change of the application id from configure. + * Using application id for .desktop file, adjustmente in appdata. + * Fixing dialog section title. + * Fixing segfault on multiple use of settings dialog. + * Adding settings for the toolbar position. + * Ignoring patches. + * Fixing schema paths. + * Fixing fedora builds. + * Updating rpm control file. + * Fixing toolbar segfault on application exit. + * Enable new windows and tab lockdown. + * Fix loading of default settings. + * Updating project file. + * Cleaning debug messages. + * Fixing schemas. + * Adding option for lockdown the host settings dialog. + * Branding package should be noarch. + * Update README.md + * Changing version to 5.4 Adjustments in the about dialog. + * Fixing 'tag' script. + +------------------------------------------------------------------- +Thu Apr 07 23:35:08 UTC 2022 - perry.werneck@gmail.com + +- Update to version 5.4: + * Adjustments in lgtm build settings. + * Fixing lgtm alerts. + * Fixing locales. + * Fixing ui install path. + * Testing refactored menu engine on windows. + * Refactoring menu builder engine to allow OS dependant menu layouts. + * Small adjustments in option parser. + * Fixing build system. + * Refactoring build sistem. + * Adding lgtm control file. + * Update README.md + * Exporting the log file name as an application property. + * Adding method for setting application object just after the plugin load. + * Adding host settings to classic menu. + * Updating win package + * Adjustments in the classic menu. + * Host and color dialogs are now part of libv3270. + * Fixing msys install. + * Working on windows package. + * Adjusting for windows packaging. + * Calling plugins on every new terminal. + * Commenting unnecessary message. + * Fix bug #24 - Run glib-compile-schemas after schema installation. + * Update README.md + * Updating metadata. + * Updating translation. + * Fixing 'save session preferences' in the classic dialog. + * Default for update session file is now false. + * Updating pre-reqs. + * Updating cross-compiler install script. + * Adding connect/disconnect icons. + * Adding message dialog when gsettings fail to prevent the windows 'hang' on schema failure. + * Fixing windows startup with session file name. + * 'gfile' open has failed on windows, building an OS specific version. + * Working on command line session file parser. + * Adjusting user interface. + * Adding 'ok' icons. + * Updating translations, adding method to get the active terminal window. + * Implementing method to get active session. + * Adding 'quit' icons. + * Fixing release build. + * Fixing windows load of gschemas. + * Fixing gsettings error. + * Fixing icons in the windows package. + * Implementing default log file from command line option. + * Working on windows package. + * Adding pixbuf loaders to runtime. + * Fixing gsettings on windows. + * Disabling tabs from command line option. + * Updating windows package script. + * Working on windows build. + * Updating windows schema. + * Fixing windows build. + * Adjustments in windows package. + * rsvg-view was replaced by inkscape. + * Adjusments in win package. + * Reseting to default session before loading of command line URL. + * Fixing codeql workflow + * Fixing startup with URL instead of session file. + * Fixing gnome-software integration. + * Adding the '.desktop' required by gnome-software on the id. + * Updating desktop file. + * Fixing obs warning. + * Fixing appstream-validate error. + * Convert from appdata to metainfo + * Adjusting desktop file. + * Reformating source with astyle. + * Adding metada to gtkrecentmanager entry. + * Fixing last-session-save engine. + * Adding action to open session file in the active terminal. + * Storing last command line passed session as a default one. + * Adding gsetting for default session filename. + * Disabling toolbar and header bar on invalid gsettings object to avoid segfaults. + * Fixing empty session name on "save-session-preferences" dialog. + * Fixing segfault on multiple session files. + * Updating README. + * Adding MVS screenshot. + * Update README.md + * Fixing windows build. + * Fixing translation. + * Fixing package build. + * Adjustments on about window. + * Delaying 'gsettings' change on application preferences dialog. + * Moving keypads to another project/package. + * Adding symbolic icon. + * Fixing appdata icon. + * Translating appdata. + * Trying to fix SLE-12 icon problem. + * Can't use metainfo and appdata in the same project. + * Adding metainfo for keypads. + * Updating package control files. + * Allow change of the application id from configure. + * Using application id for .desktop file, adjustmente in appdata. + * Fixing dialog section title. + * Fixing segfault on multiple use of settings dialog. + * Adding settings for the toolbar position. + * Ignoring patches. + * Fixing schema paths. + * Fixing fedora builds. + * Updating rpm control file. + * Fixing toolbar segfault on application exit. + * Enable new windows and tab lockdown. + * Fix loading of default settings. + * Updating project file. + * Cleaning debug messages. + * Fixing schemas. + * Adding option for lockdown the host settings dialog. + * Branding package should be noarch. + * Update README.md + * Changing version to 5.4 Adjustments in the about dialog. + * Fixing 'tag' script. + +------------------------------------------------------------------- +Tue Nov 24 23:29:38 UTC 2020 - Perry Werneck + +- Adding fix-appdata-xml.patch to fix problems with gnome-software. + +------------------------------------------------------------------- +Mon Nov 02 13:05:18 UTC 2020 - perry.werneck@gmail.com + +- Update to version 5.3+git20201102: + * Fixing package build. + * Removing .png files, using only the svg ones. + * Adjusting header bar defaults. + * Adjustments for openSUSE 15.2. + * Update README.md + * Use 'gnome' style as default on linux and classic in other OSs. + * Disabling F10 redirection. + * Adjusting default action lists. + * Enabling set/reset of kpalternative in the modern interface. + * Moving generic tools to libv3270. + * Auto updating toolbar when icon style changes. + * Implementing standard models for menus & comboboxes. + * Adding copy-image menu option. + * Adding "copy-as-html" action. + * Adding 'view trace' option on the popup menus. + * Pre-defining session file name on save dialogs. + * Creating session file when a desktop icon is built with default session. + * Adding method to suggest session filename and path. + * Processing toolbar-position settings. + * Adding tooltips in the header bar buttons. + * Moving application icons to the 'icons' folder. + * Adding support for customized icons. + * Adding option for symbolic icons in the header bar. + * Implementing use of symbolic icons in toolbar. + * Updating appdata. + * Scanning standard directories for session definition files. + * Adding appdata.xml + * Adding architecture in about window. Usefull for windows users. + * Project URL changes by locale. + * Loading/saving dialog responses from session file. + * Renaming default filename. + * Adding custom mime-type for pw3270 session settings file + * Using PIE instead of pic. + * Refactoring keypads. + * Adding deb post install/uninstall scripts. + * removed patch: optional_optipng.patch + +------------------------------------------------------------------- +Mon Jun 8 12:55:06 UTC 2020 - Perry Werneck + +- Optipng is not in the SLE-15 default repositories +- added patch: optional_optipng.patch + +------------------------------------------------------------------- +Thu Jun 04 18:31:19 UTC 2020 - perry.werneck@gmail.com + +- Update to version 5.3: + * Adding method to set environment variables from session settings file (allow use of an alternative openssl config file). + * Adding fallbacks for application menu. + * PACKAGE_RELEASE macros is now a string to allow use of rpm's release. + * Adding option to switch the user interface. + * Add build instructions for macOS + * Redirecting gtk logs to lib3270. + * Using the new dialog section element who adapts to windows UI. + * Refactoring session rename method. + * Fixing application preferences dialog warning. + * The defaults for windows and linux aren't the same. + * Adding clipboard settings dialog. + * Updating properties. + * Cleaning up. + * Adding toolbar properties menu. + * Refactoring "open" actions. + * Refactoring "window" actions. + * Refactoring application settings dialog & related widgets as gobjects. + * Terminal actions now lives in libv3270. + * Conditional and property actions moved to libv3270. + * Moving dialog action to libv3270. + * Refactoring plugin engine. + * Adding popup menu over OIA. + * Only customized sessions can be renamed. + * Implementing session name change dialog. + * Implementing tab-menu. + * Implementing popup menu on tab labels. + * Refactoring the open session/url from command line. + * Refactoring terminal support methods. + * Implementing "open session in the window" action. + * Implementing the new "save session" dialog. + * Adding toolbar settings dialog. + * Fixing portability issue detected by OBS. + * PF & PA key and lib3270's actions are now on libv3270. + * Implementing toolbar actions edit dialog. + * Implementing action viewer widget. + * Implementing application settings. + * Loading/saving print settings to/from session file. + * Adding accelerator settings tab on the session properties dialog. + * Use convert -strip + * ui-style is now defined by gsettings. + * Updating to latest versions of v3270 & lib3270. + * Adding missing license info. + * Getting appname from lib3270. + * Removing use of deprecated function "get_hostname". + * Adding support for oversize. + * Using the new standard error popup for print errors. + * Linux custom print widget is now managed by libv3270. + * Replacing save dialog with the new version from v3270. + * linux log is now sent do system log. + * Updating package to follow naming guidelines. + +------------------------------------------------------------------- +Wed Mar 25 08:47:04 UTC 2020 - Bernhard Wiedemann + +- Add reproducible.patch to make package build reproducible (boo#1047218) + +------------------------------------------------------------------- +Thu Feb 20 10:24:35 UTC 2020 - Max Lin + +- Leap 15.2 and SLE15 SP2 has newer librsvg, extend the conditional + for "BuildRequires: rsvg-convert" + +------------------------------------------------------------------- +Wed Oct 23 17:28:57 CEST 2019 - ro@suse.de + +- fix build-requires for factory/tumbleweed + rsvg-convert tool is now in rsvg-convert package + +------------------------------------------------------------------- +Fri May 31 18:21:45 UTC 2019 - perry.werneck@gmail.com + + * Doing a "clean exit" on SIGTERM. + * Updating translation. + * Updating translation. + * Fixing save message. + * Fixing the application name with ./configure option. + * Showing message on configuration update. + * Updating rpm packaging. + * Fixing icon and application name. + * Adding desktop file. + * Creating application icon in standard folder. + * Emitting message when the logo is not available on about window. + * Fixing memory allocation error on about dialog. + * Fixing bug in about window detected on windows version. + * Fixing win32 runtime. + * Updating read me. + * Updating versions in win packate. + * Fixing file version indication in win32 package. + * Fixing windows build. + * Removing windows native dialog. + * Fixing windows build. + * Removing unused sources. + * Adding compiled version of the schemas in the runtime package. + * Adding gtkfilechooser schema to runtime package. + * Comentando fontes do código que foi transferido para a libv3270. + * Adding script to build and install lib3270 and libv3270 on msys2 + * Fixing msys2 build. + * Disabling unused code. + * Updating translations. + * Renaming application transfer file dialog to avoid conflicts. + * Updating package control file. + +------------------------------------------------------------------- +Tue Feb 26 16:55:21 UTC 2019 - perry.werneck@gmail.com + +- Update to version 5.2: + * Updating linux packages. + * Removing libv3270 submodule + * Updating branding Makefile. + * Updating autogen + * Updating project. + * Fixing RHEL 7 builds. + * Removing unused UI files. + * Fixing .deb builds + * Fixing RHEL7 build. + * Updating linux package. + +------------------------------------------------------------------- +Thu Sep 14 00:28:23 UTC 2017 - jengelh@inai.de + +- Put libpw3270 into its own package (shared library guideline). +- Drop require on /usr/bin/openssl, this is unusual for a library + to request. +- %configure already sets CFLAGS,CXXFLAGS, do not set it again. + Replace old RPM variables. Remove redundant %clean section. + Do not run fdupes across hardlink boundaries. +- Fix one RPM category. Trim redundant words from description. + +------------------------------------------------------------------- +Wed Sep 13 13:51:34 UTC 2017 - erico.mendonca@suse.com + +- fix_actions.patch: patch is no longer necessary. +- keypad_update.patch: patch is no longer necessary. +- mutex_include.patch: patch is no longer necessary. +- gtk2-fixes.patch: patch is no longer necessary. +- file_chooser.patch: patch is no longer necessary. +- fix_oorexx_charset.patch: patch is no longer necessary. + +------------------------------------------------------------------- +Wed Sep 13 12:25:12 UTC 2017 - perry.werneck@gmail.com + +- Updating to the latest git level, closing package for distribution. +- Java, Rexx, PHP, Mono and other extensions for scripting are now separated packages. + +------------------------------------------------------------------- +Thu Jan 26 12:37:48 UTC 2017 - perry.werneck@gmail.com + +- Fixing .deb builds. + +------------------------------------------------------------------- +Thu Jan 19 16:36:08 UTC 2017 - perry.werneck@gmail.com + +- Removing unused sources, refactoring Makefiles, build & installation + +------------------------------------------------------------------- +Tue Dec 27 16:00:33 UTC 2016 - perry.werneck@gmail.com + +- Updating deb dependencies. + +------------------------------------------------------------------- +Fri Nov 4 17:36:54 UTC 2016 - perry.werneck@gmail.com + +- Fixing PHP5 requires. + +------------------------------------------------------------------- +Fri Oct 21 19:34:11 UTC 2016 - perry.werneck@gmail.com + +- Fixing script file chooser +- added patches: fix_oorexx_charset.patch + mutex_include.patch + keypad_update.patch + file_chooser.patch + fix_actions.patch + gtk2-fixes.patch + +------------------------------------------------------------------- +Fri Oct 21 19:05:20 UTC 2016 - perry.werneck@gmail.com + +- Fixing charset problem on ooRexx plugin + +------------------------------------------------------------------- +Fri Oct 21 18:38:28 UTC 2016 - perry.werneck@gmail.com + +- Fixing backport for bug 998842 (https://bugzilla.suse.com/show_bug.cgi?id=998842) + on OpenSUSE 13.2 + +------------------------------------------------------------------- +Thu Oct 20 11:13:41 UTC 2016 - perry.werneck@gmail.com + +- Adding PHP5 support on Debian builds + +------------------------------------------------------------------- +Wed Oct 19 17:21:01 UTC 2016 - perry.werneck@gmail.com + +- Fixing gtk2 builds. From ef43411cd4a90ae0bf198d9eed343ae9c9ff157d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 30 Jan 2023 20:03:15 -0300 Subject: [PATCH 028/186] Updating translation. --- locale/pt_BR.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index aae52565..2274cb34 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -1,12 +1,12 @@ # -# Perry Werneck , 2012-2021. +# Perry Werneck , 2012-2023. # msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-18 12:42-0300\n" -"PO-Revision-Date: 2021-12-23 01:36-0300\n" +"PO-Revision-Date: 2023-01-30 20:02-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -17,7 +17,7 @@ msgstr "" "X-Poedit-Country: BRAZIL\n" "X-Poedit-SourceCharset: utf-8\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -"X-Generator: Gtranslator 3.38.0\n" +"X-Generator: Gtranslator 40.0\n" #: src/objects/application/application.c:214 #, c-format @@ -1210,7 +1210,7 @@ msgstr "_Exibir" #: src/objects/application/actions/about.c:190 msgid "https://github.com/PerryWerneck/pw3270" -msgstr "https://portal.softwarepublico.gov.br/social/pw3270/" +msgstr "https://github.com/PerryWerneck/pw3270" #: src/objects/application/actions/about.c:193 msgid "translator-credits" From 51794d356f85fdeb2f27d34e3204ea090408308b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 31 Jan 2023 08:08:04 -0300 Subject: [PATCH 029/186] Updating _service --- rpm/_service | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rpm/_service b/rpm/_service index 779fc83f..f6a52ebb 100644 --- a/rpm/_service +++ b/rpm/_service @@ -18,10 +18,10 @@ */rpm/pw3270.spec - + *.tar @@ -29,17 +29,17 @@ debian.changelog - + - + *.tar From 1cdf2b419bcd4de83c8826e5c3dd8183e88f832e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 31 Jan 2023 09:54:36 -0300 Subject: [PATCH 030/186] Updating deb and mingw packages. --- debian/shlibs | 4 - rpm/_service | 47 ------------ win/x86_64/_service | 24 ++++++ win/x86_64/mingw64-pw3270.spec | 136 +++------------------------------ 4 files changed, 36 insertions(+), 175 deletions(-) delete mode 100644 debian/shlibs create mode 100644 win/x86_64/_service diff --git a/debian/shlibs b/debian/shlibs deleted file mode 100644 index 64f6a8dc..00000000 --- a/debian/shlibs +++ /dev/null @@ -1,4 +0,0 @@ -lib3270 5.4 lib3270 (= 5.4) -libv3270 5.4 libv3270 (= 5.4) -libpw3270 5.4 pw3270 (= 5.4) - diff --git a/rpm/_service b/rpm/_service index f6a52ebb..4814ff17 100644 --- a/rpm/_service +++ b/rpm/_service @@ -11,53 +11,6 @@ @PARENT_TAG@+git%cd git - - - - - - - - *.tar - */debian/changelog - debian.changelog - - - - - - - - *.tar - */debian/compat - debian.compat - - - - - *.tar diff --git a/win/x86_64/_service b/win/x86_64/_service new file mode 100644 index 00000000..4da65dea --- /dev/null +++ b/win/x86_64/_service @@ -0,0 +1,24 @@ + + + + + + https://github.com/PerryWerneck/pw3270.git + + enable + perry.werneck@gmail.com + + @PARENT_TAG@+git%cd + git + develop + + + + + *.tar + xz + + + + + diff --git a/win/x86_64/mingw64-pw3270.spec b/win/x86_64/mingw64-pw3270.spec index 7e2b49fd..865e22b2 100644 --- a/win/x86_64/mingw64-pw3270.spec +++ b/win/x86_64/mingw64-pw3270.spec @@ -16,9 +16,6 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -%define MAJOR_VERSION 5 -%define MINOR_VERSION 1 - %define __strip %{_mingw64_strip} %define __objdump %{_mingw64_objdump} %define _use_internal_dependency_generator 0 @@ -30,23 +27,15 @@ #---[ Packaging ]----------------------------------------------------------------------------------------------------- Name: mingw64-pw3270 -Version: 5.1 +Version: 5.4 Release: 0 Summary: IBM 3270 Terminal emulator for GTK License: GPL-2.0 Group: System/X11/Terminals Url: http://www.softwarepublico.gov.br/dotlrn/clubs/pw3270 -Source: pw3270-%{version}.tar.bz2 +Source: pw3270-%{version}.tar.xz BuildRoot: %{_tmppath}/%{name}-%{version}-build -Requires: mingw64-gtk3 -Requires: mingw64-lib3270 = %{version} -Requires: mingw64-hicolor-icon-theme -Requires: mingw64(libpixbufloader-svg.dll) - -Provides: mingw64(lib:pw3270) = %{version} -Requires: mingw64-lib3270-%{MAJOR_VERSION}_%{MINOR_VERSION} = %{version} - BuildRequires: autoconf BuildRequires: automake BuildRequires: inkscape @@ -56,6 +45,7 @@ BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: desktop-file-utils BuildRequires: optipng +BuildRequires: ImageMagick BuildRequires: mingw64-cross-binutils BuildRequires: mingw64-cross-gcc @@ -67,147 +57,45 @@ BuildRequires: mingw64-zlib-devel BuildRequires: sed BuildRequires: mingw64(pkg:gtk+-win32-3.0) - -#--------------------------------------------------------------------------------------------------------------------- +BuildRequires: mingw64(pkg:lib3270) +BuildRequires: mingw64(pkg:libv3270) %description Open-source GTK-based IBM 3270 terminal emulator with many advanced features. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. Based on the original x3270 code, pw3270 was originally created for Banco do Brasil, and is now used worldwide. -#--[ lib3270 ]-------------------------------------------------------------------------------------------------------- - -%package -n mingw64-lib3270-%{MAJOR_VERSION}_%{MINOR_VERSION} -Summary: 3270 Communication library for %{name} -Group: Development/Libraries/C and C++ - -Provides: mingw64-lib3270 = %{version} -Provides: mingw64(lib:3270) = %{version} - -%description -n mingw64-lib3270-%{MAJOR_VERSION}_%{MINOR_VERSION} -Open-source GTK-based IBM 3270 terminal emulator with many advanced features. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. - -This package contains the tn3270 protocol library for %{name} - -#--[ Devel ]---------------------------------------------------------------------------------------------------------- - -%package -n mingw64-lib3270-devel -Summary: Devel for 3270 Communication library for %{name} -Group: Development/Libraries/C and C++ - -Requires: mingw64-lib3270-%{MAJOR_VERSION}_%{MINOR_VERSION} = %{version} -Provides: mingw64-lib3270-devel-%{MAJOR_VERSION}_%{MINOR_VERSION} = %{version} -Requires: mingw64-lib3270-%{MAJOR_VERSION}_%{MINOR_VERSION} = %{version} - -%description -n mingw64-lib3270-devel -Open-source GTK-based IBM 3270 terminal emulator with many advanced features. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. -This package contains the development files for tn3270 protocol library for %{name} - -%package -n %{name}-devel -Summary: Files required for development of %{name} plugins -Group: Development/Libraries/C and C++ - -Requires: mingw64(lib:3270) = %{version} -Requires: mingw64(lib:pw3270) = %{version} - -%description -n %{name}-devel -Open-source GTK-based IBM 3270 terminal emulator with many advanced features. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. - -This package contains the development files for %{name} - #---[ Build & Install ]----------------------------------------------------------------------------------------------- %prep %setup -q -n pw3270-%{version} -echo "m4_define([SVN_REVISION], %{release})" > revision.m4 -echo "m4_define([SVN_URL], http://softwarepublico.gov.br/gitlab/pw3270/principal.git)" >> revision.m4 -echo "m4_define([APP_LEVEL], 0)" >> revision.m4 - -find . -exec touch {} \; -aclocal -autoconf +NOCONFIGURE=1 ./autogen.sh %{_mingw64_configure} %build make clean make all - -%{_mingw64_strip} --strip-all .bin/Release/*.dll.%{MAJOR_VERSION}.%{MINOR_VERSION} %{_mingw64_strip} --strip-all .bin/Release/*.exe -%{_mingw64_strip} --strip-all .bin/Release/plugins/*.dll %install -%{_mingw64_makeinstall} - -sed -i -e "s@^Version:.*@Version: %{version}@g" %{buildroot}%{_mingw64_libdir}/pkgconfig/lib3270.pc -sed -i -e "s@^Version:.*@Version: %{version}@g" %{buildroot}%{_mingw64_libdir}/pkgconfig/pw3270.pc - -rm -f %{buildroot}%{_mingw64_datadir}/pw3270/ui/80javasamples.xml -rm -f %{buildroot}%{_mingw64_datadir}/pw3270/ui/80rexx.xml - +%{make_install} +%_mingw64_find_lang pw3270 langfiles %clean rm -rf %{buildroot} #---[ Files ]--------------------------------------------------------------------------------------------------------- -%files +%files -f langfiles %defattr(-,root,root) %doc AUTHORS LICENSE # %{_mingw64_mandir}/*/* # Main application -%dir %{_mingw64_datadir}/pw3270 -%dir %{_mingw64_datadir}/pw3270/ui -%{_mingw64_bindir}/pw3270.exe -%{_mingw64_libdir}/pw3270.dll -%{_mingw64_libdir}/pw3270.dll.%{MAJOR_VERSION} -%{_mingw64_libdir}/pw3270.dll.%{MAJOR_VERSION}.%{MINOR_VERSION} - -%{_mingw64_datadir}/pw3270/ui/00default.xml -%{_mingw64_datadir}/pw3270/ui/10functions.xml -%{_mingw64_datadir}/pw3270/ui/10keypad.xml -%{_mingw64_datadir}/pw3270/colors.conf -%{_mingw64_datadir}/pw3270/pw3270.png -%{_mingw64_datadir}/pw3270/pw3270-logo.png - -%dir %{_mingw64_datadir}/locale -%dir %{_mingw64_datadir}/locale/pt_BR -%dir %{_mingw64_datadir}/locale/pt_BR/LC_MESSAGES -%{_mingw64_datadir}/locale/pt_BR/LC_MESSAGES/pw3270.mo - -%dir %{_mingw64_libdir}/pw3270-plugins -%{_mingw64_libdir}/libhllapi.dll -%{_mingw64_libdir}/pw3270-plugins/hllapi.dll - -%files -n mingw64-lib3270-%{MAJOR_VERSION}_%{MINOR_VERSION} -%defattr(-,root,root) -%{_mingw64_libdir}/lib3270.dll.%{MAJOR_VERSION}.%{MINOR_VERSION} -%{_mingw64_libdir}/lib3270.dll.%{MAJOR_VERSION} -%{_mingw64_libdir}/lib3270.dll - -%files -n mingw64-lib3270-devel -%defattr(-,root,root) -%{_mingw64_includedir}/lib3270 -%{_mingw64_includedir}/lib3270.h -%{_mingw64_libdir}/pkgconfig/lib3270.pc - -%files -n %{name}-devel -%defattr(-,root,root) -%{_mingw64_includedir}/pw3270 -%{_mingw64_includedir}/pw3270.h -%{_mingw64_libdir}/pkgconfig/pw3270.pc -%{_mingw64_datadir}/pw3270/ui/98trace.xml -%{_mingw64_datadir}/pw3270/ui/99debug.xml - -%dir %{_mingw64_datadir}/pw3270/locale -%{_mingw64_datadir}/pw3270/locale/Makefile -%{_mingw64_datadir}/pw3270/locale/pt_BR.po -%{_mingw64_datadir}/pw3270/locale/pw3270.pot - -%{_mingw64_includedir}/pw3270cpp.h -%{_mingw64_libdir}/libpw3270cpp.a +%{_mingw64_bindir}/pw3270.* +%{_mingw64_datadir}/pw3270 +%{_mingw64_datadir}/glib-2.0/schemas/*.xml %changelog From 2cb4653e3290fea9d4ce3ff4f174c5bda6a4c976 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 31 Jan 2023 10:50:39 -0300 Subject: [PATCH 031/186] Fixing win32 build, adding 'changes' file in windows app. --- Makefile.in | 4 ++++ src/objects/os/windows/savedesktopicon.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 3c3a19a1..d5b43a24 100644 --- a/Makefile.in +++ b/Makefile.in @@ -335,6 +335,10 @@ install-windows-application: \ $(PRODUCT_NAME).png \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME).png + @$(INSTALL_DATA) \ + CHANGELOG \ + $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PACKAGE_NAME).changes + install-icons: @$(MKDIR) \ diff --git a/src/objects/os/windows/savedesktopicon.c b/src/objects/os/windows/savedesktopicon.c index 4b259b4c..475c286b 100644 --- a/src/objects/os/windows/savedesktopicon.c +++ b/src/objects/os/windows/savedesktopicon.c @@ -55,6 +55,8 @@ #include #include #include +#include +#include static GtkWidget * factory(V3270SimpleAction *action, GtkWidget *terminal); static void response(GtkWidget *dialog, gint response_id, GtkWidget *terminal); @@ -238,7 +240,7 @@ static HRESULT CreateShortCut(const char * pszTargetfile, const char * pszTarget HRESULT hRes = CoCreateInstance( - CLSID_ShellLink, // predefined CLSID of the IShellLink object + &CLSID_ShellLink, // predefined CLSID of the IShellLink object NULL, // pointer to parent interface if part of aggregate CLSCTX_INPROC_SERVER, // caller and called code are in same process &IID_IShellLink, // predefined interface of the IShellLink object From acbecb4943d3970c5b104691b0363892b9758366 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 31 Jan 2023 11:14:26 -0300 Subject: [PATCH 032/186] Updating translation. --- locale/pt_BR.po | 38 +++++++++++++++++++------------------- locale/pw3270.pot | 34 +++++++++++++++++----------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 2274cb34..4f922abd 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-18 12:42-0300\n" -"PO-Revision-Date: 2023-01-30 20:02-0300\n" +"POT-Creation-Date: 2023-01-31 11:13-0300\n" +"PO-Revision-Date: 2023-01-31 11:14-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -38,7 +38,7 @@ msgid "32 bits Windows" msgstr "Windows 32 bits" #: src/objects/actions/save.c:167 src/objects/os/linux/savedesktopicon.c:233 -#: src/objects/os/windows/savedesktopicon.c:222 +#: src/objects/os/windows/savedesktopicon.c:224 msgid "3270 session files" msgstr "Arquivos de sessão TN3270" @@ -260,7 +260,7 @@ msgid "Copyright © 2008 Banco do Brasil S.A." msgstr "Copyright © 2008 Banco do Brasil S.A." #: src/objects/os/linux/savedesktopicon.c:114 -#: src/objects/os/windows/savedesktopicon.c:107 +#: src/objects/os/windows/savedesktopicon.c:109 #: src/objects/os/macos/savedesktopicon.c:54 msgid "Create shortcut for the current session" msgstr "Criar atalho para a sessão atual." @@ -295,7 +295,7 @@ msgstr "Recortar" msgid "Delete Field" msgstr "Apagar campo" -#: src/objects/os/windows/savedesktopicon.c:80 +#: src/objects/os/windows/savedesktopicon.c:82 msgid "Description" msgstr "Descrição" @@ -365,7 +365,7 @@ msgstr "Erro iniciando sessão" msgid "Field attributes" msgstr "Atributos de campo" -#: src/objects/os/windows/savedesktopicon.c:219 +#: src/objects/os/windows/savedesktopicon.c:221 msgid "File for session preferences" msgstr "Arquivo para preferências da sessão" @@ -394,7 +394,7 @@ msgstr "Configuração de servidor e emulação" #: src/objects/application/actions/about.c:119 src/objects/window/window.c:564 #: src/objects/os/linux/savedesktopicon.c:102 -#: src/objects/os/windows/savedesktopicon.c:269 +#: src/objects/os/windows/savedesktopicon.c:271 msgid "IBM 3270 Terminal emulator" msgstr "Emulador de terminal IBM 3270" @@ -643,7 +643,7 @@ msgid "Paste with left margin" msgstr "Colar com margem esquerda" #: src/objects/os/linux/savedesktopicon.c:71 -#: src/objects/os/windows/savedesktopicon.c:74 +#: src/objects/os/windows/savedesktopicon.c:76 msgid "Path for the new shortcut" msgstr "Caminho para o novo atalho" @@ -718,7 +718,7 @@ msgid "Save session preferences" msgstr "Salvar preferências da sessão" #: src/objects/os/linux/savedesktopicon.c:113 -#: src/objects/os/windows/savedesktopicon.c:106 +#: src/objects/os/windows/savedesktopicon.c:108 #: src/objects/os/macos/savedesktopicon.c:53 msgid "Save session shortcut" msgstr "Salvar atalho para a sessão" @@ -731,7 +731,7 @@ msgstr "Salvar para arquivo de sessão" msgid "Save to shortcut file" msgstr "Salvar para arquivo de atalho" -#: src/objects/os/windows/savedesktopicon.c:184 +#: src/objects/os/windows/savedesktopicon.c:186 msgid "Save to windows shortcut" msgstr "Salvar para atalho windows" @@ -796,7 +796,7 @@ msgid "Session Trace" msgstr "Trace da sessão" #: src/objects/actions/save.c:63 src/objects/os/linux/savedesktopicon.c:85 -#: src/objects/os/windows/savedesktopicon.c:94 +#: src/objects/os/windows/savedesktopicon.c:96 msgid "Session file" msgstr "Arquivo de sessão" @@ -811,7 +811,7 @@ msgid "Session in new window" msgstr "Sessão em nova janela" #: src/objects/actions/save.c:56 src/objects/os/linux/savedesktopicon.c:77 -#: src/objects/os/windows/savedesktopicon.c:86 +#: src/objects/os/windows/savedesktopicon.c:88 msgid "Session name" msgstr "Nome da sessão" @@ -847,7 +847,7 @@ msgid "Setup toolbar" msgstr "Configurar barra de ferramentas" #: src/objects/os/linux/savedesktopicon.c:70 -#: src/objects/os/windows/savedesktopicon.c:73 +#: src/objects/os/windows/savedesktopicon.c:75 msgid "Shortcut file" msgstr "Arquivo de atalho" @@ -960,7 +960,7 @@ msgid "The file to save the current session preferences" msgstr "O arquivo com as preferências da sessão atual" #: src/objects/os/linux/savedesktopicon.c:86 -#: src/objects/os/windows/savedesktopicon.c:95 +#: src/objects/os/windows/savedesktopicon.c:97 msgid "The file with the session preferences for this shortcut" msgstr "O arquivo com as preferências da sessão para esse atalho" @@ -1005,7 +1005,7 @@ msgid "The position of the keypad" msgstr "A posição do painel" #: src/objects/actions/save.c:57 src/objects/os/linux/savedesktopicon.c:79 -#: src/objects/os/windows/savedesktopicon.c:88 +#: src/objects/os/windows/savedesktopicon.c:90 msgid "The session name used in the window/tab title (empty for default)" msgstr "" "O nome da sessão usada no título da janela/aba. Vazio para usar o valor " @@ -1133,14 +1133,14 @@ msgstr "Exibir" #: src/objects/application/actions/about.c:191 msgid "View this project on github" -msgstr "Portal do Software Público Brasileiro" +msgstr "Visite-nos no github" #: ui/windows.ui.xml:106 ui/windows.ui.xml:568 ui/macos.ui.xml:106 #: ui/macos.ui.xml:568 ui/linux.ui.xml:106 ui/linux.ui.xml:568 msgid "Window with default session" msgstr "Janela com sessão padrão" -#: src/objects/os/windows/savedesktopicon.c:187 +#: src/objects/os/windows/savedesktopicon.c:189 msgid "Windows shortcuts" msgstr "Atalhos windows" @@ -1150,7 +1150,7 @@ msgstr "_Aplicar" #: src/objects/actions/save.c:103 src/objects/settings/dialog.c:78 #: src/objects/os/linux/savedesktopicon.c:140 -#: src/objects/os/windows/savedesktopicon.c:132 +#: src/objects/os/windows/savedesktopicon.c:134 msgid "_Cancel" msgstr "_Cancelar" @@ -1200,7 +1200,7 @@ msgid "_Rename session" msgstr "Renomear sessão" #: src/objects/actions/save.c:104 src/objects/os/linux/savedesktopicon.c:141 -#: src/objects/os/windows/savedesktopicon.c:133 +#: src/objects/os/windows/savedesktopicon.c:135 msgid "_Save" msgstr "_Salvar" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 7440c542..a03bb64b 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-30 11:48-0300\n" +"POT-Creation-Date: 2023-01-31 11:13-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,7 +36,7 @@ msgid "32 bits Windows" msgstr "" #: src/objects/actions/save.c:167 src/objects/os/linux/savedesktopicon.c:233 -#: src/objects/os/windows/savedesktopicon.c:222 +#: src/objects/os/windows/savedesktopicon.c:224 msgid "3270 session files" msgstr "" @@ -256,7 +256,7 @@ msgid "Copyright © 2008 Banco do Brasil S.A." msgstr "" #: src/objects/os/linux/savedesktopicon.c:114 -#: src/objects/os/windows/savedesktopicon.c:107 +#: src/objects/os/windows/savedesktopicon.c:109 #: src/objects/os/macos/savedesktopicon.c:54 msgid "Create shortcut for the current session" msgstr "" @@ -291,7 +291,7 @@ msgstr "" msgid "Delete Field" msgstr "" -#: src/objects/os/windows/savedesktopicon.c:80 +#: src/objects/os/windows/savedesktopicon.c:82 msgid "Description" msgstr "" @@ -361,7 +361,7 @@ msgstr "" msgid "Field attributes" msgstr "" -#: src/objects/os/windows/savedesktopicon.c:219 +#: src/objects/os/windows/savedesktopicon.c:221 msgid "File for session preferences" msgstr "" @@ -390,7 +390,7 @@ msgstr "" #: src/objects/application/actions/about.c:119 src/objects/window/window.c:564 #: src/objects/os/linux/savedesktopicon.c:102 -#: src/objects/os/windows/savedesktopicon.c:269 +#: src/objects/os/windows/savedesktopicon.c:271 msgid "IBM 3270 Terminal emulator" msgstr "" @@ -639,7 +639,7 @@ msgid "Paste with left margin" msgstr "" #: src/objects/os/linux/savedesktopicon.c:71 -#: src/objects/os/windows/savedesktopicon.c:74 +#: src/objects/os/windows/savedesktopicon.c:76 msgid "Path for the new shortcut" msgstr "" @@ -714,7 +714,7 @@ msgid "Save session preferences" msgstr "" #: src/objects/os/linux/savedesktopicon.c:113 -#: src/objects/os/windows/savedesktopicon.c:106 +#: src/objects/os/windows/savedesktopicon.c:108 #: src/objects/os/macos/savedesktopicon.c:53 msgid "Save session shortcut" msgstr "" @@ -727,7 +727,7 @@ msgstr "" msgid "Save to shortcut file" msgstr "" -#: src/objects/os/windows/savedesktopicon.c:184 +#: src/objects/os/windows/savedesktopicon.c:186 msgid "Save to windows shortcut" msgstr "" @@ -792,7 +792,7 @@ msgid "Session Trace" msgstr "" #: src/objects/actions/save.c:63 src/objects/os/linux/savedesktopicon.c:85 -#: src/objects/os/windows/savedesktopicon.c:94 +#: src/objects/os/windows/savedesktopicon.c:96 msgid "Session file" msgstr "" @@ -807,7 +807,7 @@ msgid "Session in new window" msgstr "" #: src/objects/actions/save.c:56 src/objects/os/linux/savedesktopicon.c:77 -#: src/objects/os/windows/savedesktopicon.c:86 +#: src/objects/os/windows/savedesktopicon.c:88 msgid "Session name" msgstr "" @@ -843,7 +843,7 @@ msgid "Setup toolbar" msgstr "" #: src/objects/os/linux/savedesktopicon.c:70 -#: src/objects/os/windows/savedesktopicon.c:73 +#: src/objects/os/windows/savedesktopicon.c:75 msgid "Shortcut file" msgstr "" @@ -956,7 +956,7 @@ msgid "The file to save the current session preferences" msgstr "" #: src/objects/os/linux/savedesktopicon.c:86 -#: src/objects/os/windows/savedesktopicon.c:95 +#: src/objects/os/windows/savedesktopicon.c:97 msgid "The file with the session preferences for this shortcut" msgstr "" @@ -1001,7 +1001,7 @@ msgid "The position of the keypad" msgstr "" #: src/objects/actions/save.c:57 src/objects/os/linux/savedesktopicon.c:79 -#: src/objects/os/windows/savedesktopicon.c:88 +#: src/objects/os/windows/savedesktopicon.c:90 msgid "The session name used in the window/tab title (empty for default)" msgstr "" @@ -1132,7 +1132,7 @@ msgstr "" msgid "Window with default session" msgstr "" -#: src/objects/os/windows/savedesktopicon.c:187 +#: src/objects/os/windows/savedesktopicon.c:189 msgid "Windows shortcuts" msgstr "" @@ -1142,7 +1142,7 @@ msgstr "" #: src/objects/actions/save.c:103 src/objects/settings/dialog.c:78 #: src/objects/os/linux/savedesktopicon.c:140 -#: src/objects/os/windows/savedesktopicon.c:132 +#: src/objects/os/windows/savedesktopicon.c:134 msgid "_Cancel" msgstr "" @@ -1192,7 +1192,7 @@ msgid "_Rename session" msgstr "" #: src/objects/actions/save.c:104 src/objects/os/linux/savedesktopicon.c:141 -#: src/objects/os/windows/savedesktopicon.c:133 +#: src/objects/os/windows/savedesktopicon.c:135 msgid "_Save" msgstr "" From 99ead83500500bc66a34ea551ea88758562531f2 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 14:16:53 -0300 Subject: [PATCH 033/186] Implementing winpkg workflow. --- .github/workflows/winpkg.yml | 68 ++++++++++++++++++++++++++++++++++++ .gitignore | 4 +-- win/ci-build.sh | 56 ++++++++++++++++++----------- 3 files changed, 106 insertions(+), 22 deletions(-) create mode 100644 .github/workflows/winpkg.yml diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml new file mode 100644 index 00000000..65023a8b --- /dev/null +++ b/.github/workflows/winpkg.yml @@ -0,0 +1,68 @@ +name: MSYS2 +on: + pull_request: + branches: + - master + push: + branches: + - winpkg + +jobs: + msys2-mingw: + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v3 + - uses: oprypin/find-latest-tag@v1 + id: gettag + with: + repository: PerryWerneck/pw3270 # The repository to scan. + releases-only: true # We know that all relevant tags have a GitHub release for them. + - uses: msys2/setup-msys2@v2 + with: + msystem: mingw64 + update: true + install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/lib3270" + latest: true + fileName: "mingw-lib3270.tar.xz" + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/libv3270" + latest: true + fileName: "mingw-libv3270.tar.xz" + - name: BuildApp + run: | + ./win/ci-build.sh + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/libipc3270" + latest: true + fileName: "mingw-libipc3270.tar.xz" + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/libhllapi" + latest: true + fileName: "mingw-hllapi.tar.xz" + - name: MakePackage + run: tar -C ./.build -Jxvf mingw-lib3270.tar.xz + run: tar -C ./.build -Jxvf mingw-libv3270.tar.xz + run: tar -C ./.build -Jxvf mingw-pw3270.tar.xz + run: tar -C ./.build -Jxvf mingw-libipc3270.tar.xz + run: tar -C ./.build -Jxvf mingw-hllapi.tar.xz + run: tar -C ./.build -Jxvf mingw-pw3270.tar.xz + run: tar -C ./.build -Jcvf mingw-pw3270-full.tar.xz . + - uses: ncipollo/release-action@v1 + with: + tag: ${{ steps.gettag.outputs.tag }} + artifacts: "mingw-pw3270-full.tar.xz" + allowUpdates: true + draft: false + makeLatest: true + omitBody: true + omitPrereleaseDuringUpdate: true + replacesArtifacts: true diff --git a/.gitignore b/.gitignore index a2076d78..e2812a03 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -.bin .tmp +.bin .obj .pot *~ @@ -71,4 +71,4 @@ intl m4 po app-manifest.xml - +libtool diff --git a/win/ci-build.sh b/win/ci-build.sh index 18b9b08b..6c6c92b6 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -25,30 +25,43 @@ rm -fr ${myDIR}/.build # # Build LIB3270 # -echo "Building lib3270" -mkdir -p ${myDIR}/.build/lib3270 -git clone https://github.com/PerryWerneck/lib3270.git ${myDIR}/.build/lib3270 > $LOGFILE 2>&1 || die "clone lib3270 failure" -pushd ${myDIR}/.build/lib3270 -./autogen.sh > $LOGFILE 2>&1 || die "Autogen failure" -./configure > $LOGFILE 2>&1 || die "Configure failure" -make clean > $LOGFILE 2>&1 || die "Make clean failure" -make all > $LOGFILE 2>&1 || die "Make failure" -make install > $LOGFILE 2>&1 || die "Install failure" -popd +if [ -e mingw-lib3270.tar.xz ]; then + + echo "Unpacking lib3270" + tar -C / -Jxvf mingw-lib3270.tar.xz + +else + echo "Building lib3270" + git clone https://github.com/PerryWerneck/lib3270.git ./.build/lib3270 || die "clone lib3270 failure" + cd ./.build/lib3270 + ./autogen.sh || die "Lib3270 autogen failure" + ./configure || die "Lib3270 Configure failure" + make clean || die "Lib3270 Make clean failure" + make all || die "Lib3270 Make failure" + make install || die "Lib3270 Install failure" + cd ../.. +fi # # Build LIBV3270 # -echo "Building libv3270" -mkdir -p ${myDIR}/.build/libv3270 -git clone https://github.com/PerryWerneck/libv3270.git ${myDIR}/.build/libv3270 > $LOGFILE 2>&1 || die "clone libv3270 failure" -pushd ${myDIR}/.build/libv3270 -./autogen.sh > $LOGFILE 2>&1 || die "Autogen failure" -./configure > $LOGFILE 2>&1 || die "Configure failure" -make clean > $LOGFILE 2>&1 || die "Make clean failure" -make all > $LOGFILE 2>&1 || die "Make failure" -make install > $LOGFILE 2>&1 || die "Install failure" -popd +if [ -e mingw-libv3270.tar.xz ]; then + + echo "Unpacking libv3270" + tar -C / -Jxvf mingw-lib3270.tar.xz + +else + echo "Building libv3270" + mkdir -p ${myDIR}/.build/libv3270 + git clone https://github.com/PerryWerneck/libv3270.git ${myDIR}/.build/libv3270 > $LOGFILE 2>&1 || die "clone libv3270 failure" + pushd ${myDIR}/.build/libv3270 + ./autogen.sh > $LOGFILE 2>&1 || die "Autogen failure" + ./configure > $LOGFILE 2>&1 || die "Configure failure" + make clean > $LOGFILE 2>&1 || die "Make clean failure" + make all > $LOGFILE 2>&1 || die "Make failure" + make install > $LOGFILE 2>&1 || die "Install failure" + popd +fi # # Build PW3270 @@ -60,5 +73,8 @@ cd ${myDIR} make clean > $LOGFILE 2>&1 || die "Make clean failure" make all > $LOGFILE 2>&1 || die "Make failure" +make DESTDIR=.bin/package install +tar --create --xz --file=mingw-pw3270.tar.xz --directory=.bin/package --verbose . + echo "Build complete" From 63c900de5ec452c30ed0b2a95e43af67c1eab525 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 14:20:07 -0300 Subject: [PATCH 034/186] Fixing yaml. --- .github/workflows/winpkg.yml | 40 +++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 65023a8b..a3a01fa8 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -1,4 +1,5 @@ -name: MSYS2 +--- +name: WinPKG on: pull_request: branches: @@ -6,7 +7,6 @@ on: push: branches: - winpkg - jobs: msys2-mingw: runs-on: windows-latest @@ -18,51 +18,59 @@ jobs: - uses: oprypin/find-latest-tag@v1 id: gettag with: - repository: PerryWerneck/pw3270 # The repository to scan. - releases-only: true # We know that all relevant tags have a GitHub release for them. + repository: PerryWerneck/pw3270 + releases-only: true - uses: msys2/setup-msys2@v2 with: msystem: mingw64 update: true - install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape + install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf + mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl + libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick + mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape - uses: robinraju/release-downloader@v1.7 with: - repository: "PerryWerneck/lib3270" + repository: PerryWerneck/lib3270 latest: true - fileName: "mingw-lib3270.tar.xz" + fileName: mingw-lib3270.tar.xz - uses: robinraju/release-downloader@v1.7 with: - repository: "PerryWerneck/libv3270" + repository: PerryWerneck/libv3270 latest: true - fileName: "mingw-libv3270.tar.xz" + fileName: mingw-libv3270.tar.xz - name: BuildApp run: | ./win/ci-build.sh - uses: robinraju/release-downloader@v1.7 with: - repository: "PerryWerneck/libipc3270" + repository: PerryWerneck/libipc3270 latest: true - fileName: "mingw-libipc3270.tar.xz" + fileName: mingw-libipc3270.tar.xz - uses: robinraju/release-downloader@v1.7 with: - repository: "PerryWerneck/libhllapi" + repository: PerryWerneck/libhllapi latest: true - fileName: "mingw-hllapi.tar.xz" - - name: MakePackage + fileName: mingw-hllapi.tar.xz + - name: Unpack lib3270 run: tar -C ./.build -Jxvf mingw-lib3270.tar.xz + - name: Unpack libv3270 run: tar -C ./.build -Jxvf mingw-libv3270.tar.xz + - name: Unpack pw3270 run: tar -C ./.build -Jxvf mingw-pw3270.tar.xz + - name: Unpack ipc3270 run: tar -C ./.build -Jxvf mingw-libipc3270.tar.xz + - name: Unpack hllapi run: tar -C ./.build -Jxvf mingw-hllapi.tar.xz - run: tar -C ./.build -Jxvf mingw-pw3270.tar.xz + - name: MakePackage run: tar -C ./.build -Jcvf mingw-pw3270-full.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: "mingw-pw3270-full.tar.xz" + artifacts: mingw-pw3270-full.tar.xz allowUpdates: true draft: false makeLatest: true omitBody: true omitPrereleaseDuringUpdate: true replacesArtifacts: true + From 577bd5750d79c1d85afcbfafd9f6cb4d1626ff75 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 14:31:30 -0300 Subject: [PATCH 035/186] Fixing ci-build. --- .github/workflows/winpkg.yml | 7 +++++++ win/ci-build.sh | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index a3a01fa8..1f262a79 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -51,12 +51,19 @@ jobs: repository: PerryWerneck/libhllapi latest: true fileName: mingw-hllapi.tar.xz + - uses: robinraju/release-downloader@v1.7 + with: + repository: PerryWerneck/pw3270-plugin-ipc + latest: true + fileName: mingw-pw3270-plugin-ipc.tar.xz - name: Unpack lib3270 run: tar -C ./.build -Jxvf mingw-lib3270.tar.xz - name: Unpack libv3270 run: tar -C ./.build -Jxvf mingw-libv3270.tar.xz - name: Unpack pw3270 run: tar -C ./.build -Jxvf mingw-pw3270.tar.xz + - name: Unpack ipcplugin + run: tar -C ./.build -Jxvf mingw-pw3270-plugin-ipc.tar.xz - name: Unpack ipc3270 run: tar -C ./.build -Jxvf mingw-libipc3270.tar.xz - name: Unpack hllapi diff --git a/win/ci-build.sh b/win/ci-build.sh index 6c6c92b6..a9f2d0f2 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -48,7 +48,7 @@ fi if [ -e mingw-libv3270.tar.xz ]; then echo "Unpacking libv3270" - tar -C / -Jxvf mingw-lib3270.tar.xz + tar -C / -Jxvf mingw-libv3270.tar.xz else echo "Building libv3270" From 3ce86dc0aaa7932afbc09cea076b7291ede6892d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 15:09:12 -0300 Subject: [PATCH 036/186] Adding win32 icon. --- pw3270.ico | Bin 0 -> 335286 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pw3270.ico diff --git a/pw3270.ico b/pw3270.ico new file mode 100644 index 0000000000000000000000000000000000000000..1564b795fdb5f00fade76491cbba6b21060a18c1 GIT binary patch literal 335286 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

O;s47B|C4@# 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 literal 0 HcmV?d00001 From 1797660727ca15ec7a7a9f1fa4368cfa08910b14 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 19:05:13 -0300 Subject: [PATCH 037/186] Using converted icon to avoid requirements of inkscape and convert on build action. --- .github/workflows/winpkg.yml | 3 +-- Makefile.in | 32 +++++++----------------------- branding/Makefile.in | 25 +++++++++++++---------- pw3270.ico => branding/pw3270.ico | Bin configure.ac | 1 - locale/pw3270.pot | 2 +- 6 files changed, 23 insertions(+), 40 deletions(-) rename pw3270.ico => branding/pw3270.ico (100%) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 1f262a79..166feea1 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -26,8 +26,7 @@ jobs: update: true install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl - libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick - mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape + libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-optipng - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/lib3270 diff --git a/Makefile.in b/Makefile.in index d5b43a24..ea45ba95 100644 --- a/Makefile.in +++ b/Makefile.in @@ -72,7 +72,6 @@ MSGCAT=@MSGCAT@ WINDRES=@WINDRES@ AR=@AR@ VALGRIND=@VALGRIND@ -CONVERT=@CONVERT@ STRIP=@STRIP@ #---[ Build Paths ]---------------------------------------------------------------------- @@ -127,6 +126,13 @@ $(OBJDBG)/%.o: \ -DDEBUG=1 \ -o $@ -c $< +%.ico: \ + $(srcdir)/branding/%.ico + + @echo $< ... + @$(MKDIR) $(@D) + @cp "$<" "$@" + $(OBJDBG)/%.o: \ %.rc \ $(PRODUCT_NAME).ico @@ -218,30 +224,6 @@ install-%: \ prefix=$(prefix) \ install -%.ico: \ - $(srcdir)/branding/%.svg - - @echo $@ ... - @$(MKDIR) $(@D) - @$(CONVERT) \ - -density 384 \ - -background transparent \ - $< \ - -define icon:auto-resize \ - -colors 256 \ - $@ - -%.png: \ - $(srcdir)/branding/%.svg - - @echo $@ ... - @$(MKDIR) $(@D) - @$(CONVERT) \ - +antialias \ - -background transparent \ - $< \ - $@ - #---[ Main Target ]---------------------------------------------------------------------- all: \ diff --git a/branding/Makefile.in b/branding/Makefile.in index 961794fd..0f7f3b02 100644 --- a/branding/Makefile.in +++ b/branding/Makefile.in @@ -43,19 +43,20 @@ MKDIR=@MKDIR_P@ INSTALL=@INSTALL@ INSTALL_DATA=@INSTALL_DATA@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ -CONVERT=@CONVERT@ DESKTOP_INSTALL=@DESKTOP_INSTALL@ SCOUR=@SCOUR@ APPSTREAMCLI=@APPSTREAMCLI@ -#---[ Rules ]---------------------------------------------------------------------------- +# CONVERT=@CONVERT@ -%.ico: \ - $(PRODUCT_NAME).svg +#---[ Rules ]---------------------------------------------------------------------------- - @echo $@ ... - @$(MKDIR) `dirname $@` - @$(CONVERT) -density 384 -background transparent $< -define icon:auto-resize -colors 256 $@ +#%.ico: \ +# %.svg +# +# @echo $@ ... +# @$(MKDIR) `dirname $@` +# @$(CONVERT) -density 384 -background transparent $< -define icon:auto-resize -colors 256 $@ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/%.svg: \ $(srcdir)/%.svg @@ -101,11 +102,10 @@ endif validate: -ifneq ($(SCOUR),no) +ifneq ($(APPSTREAMCLI),no) @$(APPSTREAMCLI) validate metainfo.xml endif - install: \ install-@OSNAME@ @@ -159,7 +159,10 @@ install-macos: \ install-windows: \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME).svg \ - $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME)-logo.svg \ - $(DESTDIR)$(bindir)/$(PRODUCT_NAME).ico + $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME)-logo.svg + + @$(INSTALL_DATA) \ + $(PRODUCT_NAME).ico \ + $(DESTDIR)$(bindir)/$(PRODUCT_NAME).ico diff --git a/pw3270.ico b/branding/pw3270.ico similarity index 100% rename from pw3270.ico rename to branding/pw3270.ico diff --git a/configure.ac b/configure.ac index 2157c7c5..9f182653 100644 --- a/configure.ac +++ b/configure.ac @@ -143,7 +143,6 @@ dnl --------------------------------------------------------------------------- AC_PATH_TOOL([AR], [ar], [ar]) AC_PATH_TOOL([CONVERT], [convert], [no]) -AC_PATH_TOOL([OPTIPNG],[optipng],[no]) AC_PATH_TOOL([ZIP],[zip],[no]) AC_PATH_TOOL([DLLTOOL],[dlltool],[no]) AC_PATH_TOOL([WINDRES], [windres], [no]) diff --git a/locale/pw3270.pot b/locale/pw3270.pot index a03bb64b..e0e7de77 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-31 11:13-0300\n" +"POT-Creation-Date: 2023-03-20 19:00-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From b8dabbcc0f7e70159514eb1158f58521f45a445e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 19:46:19 -0300 Subject: [PATCH 038/186] Storing png image to avoid dependencies. --- Makefile.in | 4 ++-- branding/pw3270.png | Bin 0 -> 18800 bytes branding/pw3270.svg | 17 +++++++++-------- locale/pw3270.pot | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) create mode 100644 branding/pw3270.png diff --git a/Makefile.in b/Makefile.in index ea45ba95..15f814a2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -300,7 +300,7 @@ install-macos-application: \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME)@EXEEXT@ install-windows-application: \ - $(PRODUCT_NAME).png \ + branding/$(PRODUCT_NAME).png \ strip @$(MKDIR) \ @@ -314,7 +314,7 @@ install-windows-application: \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME) @$(INSTALL_DATA) \ - $(PRODUCT_NAME).png \ + branding/$(PRODUCT_NAME).png \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME).png @$(INSTALL_DATA) \ diff --git a/branding/pw3270.png b/branding/pw3270.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd56bf8568b1094af4c679fb203fb5fb7d96018 GIT binary patch literal 18800 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 irIb=iDW#Okp8h|G;n?VoTY>ce0000 - - @@ -61,17 +59,19 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.97227183" - inkscape:cx="-138.53895" + inkscape:cx="-139.56747" inkscape:cy="32" inkscape:current-layer="layer1" showgrid="true" inkscape:document-units="px" inkscape:grid-bbox="true" inkscape:window-width="1366" - inkscape:window-height="744" + inkscape:window-height="714" inkscape:window-x="0" - inkscape:window-y="24" - inkscape:window-maximized="1" /> + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:document-rotation="0" + inkscape:pagecheckerboard="true" /> @@ -80,6 +80,7 @@ image/svg+xml + diff --git a/locale/pw3270.pot b/locale/pw3270.pot index e0e7de77..4cd6223a 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-20 19:00-0300\n" +"POT-Creation-Date: 2023-03-20 19:26-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 79c39054b6e8a5af0b35e75ffcaa3009b3105fce Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 19:59:31 -0300 Subject: [PATCH 039/186] Working on windows package. --- branding/Makefile.in | 34 +++++++++------------- src/objects/os/windows/savedesktopicon.c | 36 +++++++++--------------- 2 files changed, 27 insertions(+), 43 deletions(-) diff --git a/branding/Makefile.in b/branding/Makefile.in index 0f7f3b02..cab4f798 100644 --- a/branding/Makefile.in +++ b/branding/Makefile.in @@ -1,27 +1,19 @@ +# SPDX-License-Identifier: LGPL-3.0-or-later # -# "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 -# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a -# aplicativos mainframe. Registro no INPI sob o nome G3270. +# Copyright (C) 2008 Banco do Brasil S.A. # -# Copyright (C) <2008> +# 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. # -# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob -# os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela -# Free Software Foundation. +# 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. # -# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER -# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO -# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para -# obter mais detalhes. -# -# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este -# programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple -# Place, Suite 330, Boston, MA, 02111-1307, USA -# -# Contatos: -# -# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) -# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # PACKAGE_NAME=@PACKAGE_NAME@ @@ -161,6 +153,8 @@ install-windows: \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME).svg \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME)-logo.svg + @$(MKDIR) $(DESTDIR)$(bindir) + @$(INSTALL_DATA) \ $(PRODUCT_NAME).ico \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME).ico diff --git a/src/objects/os/windows/savedesktopicon.c b/src/objects/os/windows/savedesktopicon.c index 475c286b..126f1e2b 100644 --- a/src/objects/os/windows/savedesktopicon.c +++ b/src/objects/os/windows/savedesktopicon.c @@ -1,30 +1,20 @@ +/* SPDX-License-Identifier: LGPL-3.0-or-later */ + /* - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a - * aplicativos mainframe. Registro no INPI sob o nome G3270. - * - * Copyright (C) <2008> - * - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela - * Free Software Foundation. - * - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para - * obter mais detalhes. - * - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin - * St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Este programa está nomeado como - e possui - linhas de código. + * Copyright (C) 2008 Banco do Brasil S.A. * - * Contatos: + * 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. * - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * 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 . */ /** From f363ca191c7a92b7dc5e765d1c3d0d9c33f529da Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 20:48:34 -0300 Subject: [PATCH 040/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 166feea1..00b4db3d 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -40,6 +40,8 @@ jobs: - name: BuildApp run: | ./win/ci-build.sh + - name: Install pw3270 + run: make DESTDIR=./.build install - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/libipc3270 @@ -59,8 +61,6 @@ jobs: run: tar -C ./.build -Jxvf mingw-lib3270.tar.xz - name: Unpack libv3270 run: tar -C ./.build -Jxvf mingw-libv3270.tar.xz - - name: Unpack pw3270 - run: tar -C ./.build -Jxvf mingw-pw3270.tar.xz - name: Unpack ipcplugin run: tar -C ./.build -Jxvf mingw-pw3270-plugin-ipc.tar.xz - name: Unpack ipc3270 From 5c10937817b3961ef96b3b0d3103fd58ad8ea08d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 22:18:25 -0300 Subject: [PATCH 041/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 00b4db3d..2d0a38f9 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -68,7 +68,7 @@ jobs: - name: Unpack hllapi run: tar -C ./.build -Jxvf mingw-hllapi.tar.xz - name: MakePackage - run: tar -C ./.build -Jcvf mingw-pw3270-full.tar.xz . + run: tar -C ./.build/mingw64 -Jcvf mingw-pw3270-full.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} From a6437767dcc7bd66c5ca551b4c2e9e4dd1c194d3 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 22:35:37 -0300 Subject: [PATCH 042/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 2d0a38f9..a13b5d45 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -26,7 +26,7 @@ jobs: update: true install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl - libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-optipng + libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-nsis - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/lib3270 From 274a49f3598c36e5ee65d039275c368686665bab Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 23:14:13 -0300 Subject: [PATCH 043/186] Refactoring runtime builder script. --- gitsync.sh | 35 ------ pushtag.sh | 32 ----- update.sh | 7 -- win/makeruntime.sh.in | 281 +++++++----------------------------------- 4 files changed, 44 insertions(+), 311 deletions(-) delete mode 100755 gitsync.sh delete mode 100755 pushtag.sh delete mode 100755 update.sh diff --git a/gitsync.sh b/gitsync.sh deleted file mode 100755 index 524b09e2..00000000 --- a/gitsync.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# -# https://help.github.com/articles/syncing-a-fork/ -# -# https://help.github.com/articles/configuring-a-remote-for-a-fork/ -# -# https://www.opentechguides.com/how-to/article/git/177/git-sync-repos.html -# -# Setup: -# -# git remote add github https://github.com/PerryWerneck/lib3270.git -# -# - -git push - -git fetch origin -git merge - -BRANCH=$(git symbolic-ref --short HEAD) -REPOS=$(git remote -v | grep -v origin | grep "(push)" | awk '{print $1}') - -for repo in ${REPOS} -do - echo "Getting updates to branch ${BRANCH} from ${repo} ..." - git fetch "${repo}" "${BRANCH}" -# git merge 2>&1 > /dev/null -done - -for repo in ${REPOS} -do - echo "Updating ${repo} ..." - git push ${repo} -done - diff --git a/pushtag.sh b/pushtag.sh deleted file mode 100755 index 6d17116c..00000000 --- a/pushtag.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# -# https://help.github.com/articles/syncing-a-fork/ -# -# https://help.github.com/articles/configuring-a-remote-for-a-fork/ -# -# https://www.opentechguides.com/how-to/article/git/177/git-sync-repos.html -# -# Setup: -# -# git remote add github https://github.com/PerryWerneck/lib3270.git -# -# - -if [ -z ${1} ]; then - echo "Inform target tag" - exit -1 -fi - -git push - -git fetch origin - -git tag -f ${1} -git push -f --tags - -for repo in $(git remote -v | grep -v origin | grep "(push)" | awk '{print $1}') -do - echo "Updating ${repo} ..." - git push ${repo} -f --tags -done - diff --git a/update.sh b/update.sh deleted file mode 100755 index 99e4ab34..00000000 --- a/update.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -git pull -git fetch origin - -git submodule update --remote --recursive - diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index 8126ac07..eb741f1f 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -1,28 +1,21 @@ #!/bin/bash # -# "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 -# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a -# aplicativos mainframe. Registro no INPI sob o nome G3270. +# SPDX-License-Identifier: LGPL-3.0-or-later # -# Copyright (C) <2008> +# Copyright (C) 2021 Perry Werneck # -# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob -# os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela -# Free Software Foundation. +# 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. # -# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER -# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO -# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para -# obter mais detalhes. +# 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. # -# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este -# programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple -# Place, Suite 330, Boston, MA, 02111-1307, USA -# -# Contatos: -# -# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) -# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # # @@ -32,39 +25,26 @@ # http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format # -# Get myDIR -myDIR=$(dirname $(readlink -f "${0}")) - -# Disable i18n -export LANG=C - +# Setup default paths +srcdir="$(dirname $(dirname $(readlink -f "${0}")))" prefix="@prefix@" -PKG_CONFIG="@PKG_CONFIG@" -GTK_VERSION="gtk+-@GTK_VERSION@" -GTK_PREFIX=$($PKG_CONFIG --variable=prefix ${GTK_VERSION}) -GDK_LOADERS=$(${PKG_CONFIG} --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0 | sed -e "s@${prefix}@@g") +imgdir=.build +bindir="${imgdir}/bin" -TARGET="@BUILDDIR@/.bin/runtime" -BINDIR="@BUILDDIR@/.bin/Release/" -SCHEMADIR="@BUILDDIR@/schemas/" - -# Change to bin path -mkdir -p ${TARGET} -rm -fr ${TARGET}/* +export LANG=C -copy_dll() { +install_bin() { AGAIN=1 - until [ $AGAIN = 0 ]; do + until [ $AGAIN = 0 ]; do SOURCES=$(mktemp) REQUIRES=$(mktemp) - find "${BINDIR}" -iname "*.dll" > ${SOURCES} - find "${BINDIR}" -iname "*.exe" >> ${SOURCES} - find "${TARGET}" -iname *.dll >> ${SOURCES} - + find "${imgdir}" -iname "*.dll" > ${SOURCES} + find "${imgdir}" -iname "*.exe" >> ${SOURCES} + while read FILENAME do objdump -p ${FILENAME} | grep "DLL Name:" | cut -d: -f2 | tr "[:upper:]" "[:lower:]" >> ${REQUIRES} @@ -124,227 +104,54 @@ copy_dll() { winhttp " - # Excluo DLLs do sistema + # Remove system DLLs from list for i in $libs_to_exclude; do sed -i -e "/${i}/d" ${REQUIRES} done - # Procuro pelas DLLs que faltam AGAIN=0 while read FILENAME do - if [ ! -e "${TARGET}/${FILENAME}" ]; then - - COUNT=$(find "${BINDIR}" -iname ${FILENAME} | wc --lines) - if [ "${COUNT}" == "0" ]; then - echo ${FILENAME} + if [ ! -e "${bindir}/${FILENAME}" ]; then - if [ -e ${prefix}/bin/${FILENAME} ]; then + if [ -e ${prefix}/bin/${FILENAME} ]; then - echo "Copiando $(basename ${FILENAME})..." + echo "${prefix}/bin/${FILENAME}" - AGAIN=1 - cp -v "${prefix}/bin/${FILENAME}" "${TARGET}/${FILENAME}" - if [ "$?" != "0" ]; then - exit -1 - fi - - elif [ -e ${prefix}/lib/${FILENAME} ]; then - - echo "Copiando $(basename ${FILENAME})..." + AGAIN=1 + cp -v "${prefix}/bin/${FILENAME}" "${bindir}/${FILENAME}" + if [ "$?" != "0" ]; then + exit -1 + fi - AGAIN=1 - cp -v "${prefix}/lib/${FILENAME}" "${TARGET}/${FILENAME}" - if [ "$?" != "0" ]; then - exit -1 - fi + elif [ -e ${prefix}/lib/${FILENAME} ]; then - else + echo "${prefix}/lib/${FILENAME}" - echo "Can't find ${FILENAME}" + AGAIN=1 + cp -v "${prefix}/lib/${FILENAME}" "${bindir}/${FILENAME}" + if [ "$?" != "0" ]; then exit -1 - fi - fi + else + echo "Can't find ${FILENAME}" + exit -1 + fi + fi - + done < ${REQUIRES} rm -f ${SOURCES} rm -f ${REQUIRES} - - done - -} - -copy_locale() { - - rm -fr ${TARGET}/share/locale/pt_BR/LC_MESSAGES - mkdir -p ${TARGET}/share/locale/pt_BR/LC_MESSAGES - - locales=" - gettext-runtime.mo - gettext-tools.mo - glib20.mo - gtk30.mo - gtk30-properties.mo - " - - for i in $locales; do - if [ -e "${GTK_PREFIX}/share/locale/pt_BR/LC_MESSAGES/${i}" ]; then - echo "${GTK_PREFIX}/share/locale/pt_BR/LC_MESSAGES/${i} ..." - cp "${GTK_PREFIX}/share/locale/pt_BR/LC_MESSAGES/${i}" "${TARGET}/share/locale/pt_BR/LC_MESSAGES" - if [ "$?" != "0" ]; then - exit -1 - fi - fi + done } -copy_loaders() { - - mkdir -p "${TARGET}/${GDK_LOADERS}" - cp -rv "${prefix}/${GDK_LOADERS}/loaders" "${TARGET}/${GDK_LOADERS}" - if [ "$?" != "0" ]; then - exit -1 - fi - -} - -copy_schemes() { - - mkdir -p "${TARGET}/share/glib-2.0/schemas" - - cp -v \ - ${SCHEMADIR}/windows/*.xml \ - "${TARGET}/share/glib-2.0/schemas" - - if [ "$?" != "0" ]; then - exit -1 - fi - - cp -rv \ - "${prefix}/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml" \ - "${TARGET}/share/glib-2.0/schemas" - - if [ "$?" != "0" ]; then - exit -1 - fi - - cp -rv \ - "${prefix}/share/glib-2.0/schemas/gschema.dtd" \ - "${TARGET}/share/glib-2.0/schemas" - - if [ "$?" != "0" ]; then - exit -1 - fi - - glib-compile-schemas \ - --targetdir="${TARGET}/share/glib-2.0/schemas" \ - "${TARGET}/share/glib-2.0/schemas" - - if [ "$?" != "0" ]; then - exit -1 - fi -} - - -copy_theme() { - - mkdir -p "${TARGET}/etc" - cp -rv "${prefix}/etc/gtk-3.0" "${TARGET}/etc" - - # https://stackoverflow.com/questions/37035936/how-to-get-native-windows-decorations-on-gtk3-on-windows-7-and-msys2 - mkdir -p ${TARGET}/etc/gtk-3.0 - rm -f ${TARGET}/etc/gtk-3.0/settings.ini - rm -f ${TARGET}/etc/gtk-3.0/gtkrc - - mkdir -p ${TARGET}/share/icons - if [ "$?" != 0 ]; then - echo "Can´t create icons folder" - exit -1 - fi - - cp -rv /usr/share/icons/${1} ${TARGET}/share/icons - if [ "$?" != 0 ]; then - echo "Can´t copy ${1} icons" - exit -1 - fi - - mkdir -p ${TARGET}/share/themes - if [ "$?" != 0 ]; then - echo "Can´t create themes folder" - exit -1 - fi - -# cp -rv /usr/share/themes/${1} ${TARGET}/share/themes -# if [ "$?" != 0 ]; then -# echo "Can´t copy ${1} theme" -# exit -1 -# fi - - echo "${myDIR}/gtk.css" - if [ -e "${myDIR}/gtk.css" ]; then - cp "${myDIR}/gtk.css" "${TARGET}/share/themes/${1}/gtk-3.0/gtk.css" - fi - -} - -# -# Check command line parameters -# -until [ -z "$1" ] -do - if [ ${1:0:2} = '--' ]; then - tmp=${1:2} - parameter=${tmp%%=*} - parameter=$(echo $parameter | tr "[:lower:]" "[:upper:]") - value=${tmp##*=} - - case "$parameter" in - OUTPUT-DIR) - TARGET=$value - ;; - - BINDIR) - BINDIR=$value - ;; - - HELP) - echo "${0} [options]" - echo "" - echo "Options:" - echo "" - echo " --path Set runtime instalation path (default is $TARGET)" - echo " --bindir Set binaries source path (default is $BINDIR)" - echo "" - exit 0 - - ;; - - esac - fi - - shift - -done - -# -# Make runtime -# -copy_dll -copy_locale -copy_loaders -copy_schemes -copy_theme "Adwaita" - -# Otimiza todos os pngs -#echo "Optimizing..." -#find ${TARGET} -iname *.png -exec optipng -o7 -quiet {} \; 2>&1 > /dev/null +install_bin -echo "Runtime ok" From a53864134d936c9645421b5f27ebdeb9dfcda730 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 20 Mar 2023 23:18:26 -0300 Subject: [PATCH 044/186] Installing runtime binaries. --- .github/workflows/winpkg.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index a13b5d45..51fd1313 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -38,8 +38,7 @@ jobs: latest: true fileName: mingw-libv3270.tar.xz - name: BuildApp - run: | - ./win/ci-build.sh + run: ./win/ci-build.sh - name: Install pw3270 run: make DESTDIR=./.build install - uses: robinraju/release-downloader@v1.7 @@ -67,7 +66,9 @@ jobs: run: tar -C ./.build -Jxvf mingw-libipc3270.tar.xz - name: Unpack hllapi run: tar -C ./.build -Jxvf mingw-hllapi.tar.xz - - name: MakePackage + - name: Make Runtime + run: /bin/bash ./win/makeruntime.sh + - name: Make Package run: tar -C ./.build/mingw64 -Jcvf mingw-pw3270-full.tar.xz . - uses: ncipollo/release-action@v1 with: From a427785c6df6b47ba94582e79650bf142e8b28e8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 21 Mar 2023 00:09:46 -0300 Subject: [PATCH 045/186] Debugging runtime builder. --- src/include/config.h.in | 10 ++++++---- win/makeruntime.sh.in | 14 +++++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/include/config.h.in b/src/include/config.h.in index 57688463..d072aad6 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 @@ -99,7 +99,9 @@ /* The product name */ #undef PRODUCT_NAME -/* Define to 1 if you have the ANSI C header files. */ +/* 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. */ #undef STDC_HEADERS /* Version number of package */ diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index eb741f1f..09ac6c2b 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -32,10 +32,16 @@ prefix="@prefix@" imgdir=.build bindir="${imgdir}/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 @@ -102,6 +108,7 @@ install_bin() { winspool.drv ntdll winhttp + hid " # Remove system DLLs from list @@ -135,9 +142,14 @@ install_bin() { exit -1 fi + elif [ -e "${WIN_ROOT}/System32/${FILENAME}" ]; then + + echo "Ignoring ${WIN_ROOT}/System32/${FILENAME}" + else - echo "Can't find ${FILENAME}" + echo "Can't find ${prefix}/bin/${FILENAME} or ${WIN_ROOT}/System32/${FILENAME}" + find "${prefix}" -iname "${FILENAME}" exit -1 fi From eeb1e9b7d2a5b8a76e64e0711d2e2b631eddbe88 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 21 Mar 2023 00:27:11 -0300 Subject: [PATCH 046/186] Debugging runtime builder. --- .github/workflows/winpkg.yml | 2 +- win/makeruntime.sh.in | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 51fd1313..52c3a2e5 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -69,7 +69,7 @@ jobs: - name: Make Runtime run: /bin/bash ./win/makeruntime.sh - name: Make Package - run: tar -C ./.build/mingw64 -Jcvf mingw-pw3270-full.tar.xz . + run: tar -C ./.build -Jcvf mingw-pw3270-full.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index 09ac6c2b..9ae26824 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -29,8 +29,8 @@ srcdir="$(dirname $(dirname $(readlink -f "${0}")))" prefix="@prefix@" -imgdir=.build -bindir="${imgdir}/bin" +buildroot=.build +bindir="${buildroot}${prefix}/bin" if [ -z "${WIN_ROOT}" ]; then WIN_ROOT="/c/Windows" @@ -41,15 +41,15 @@ export LANG=C install_bin() { mkdir -p "${bindir}" - + AGAIN=1 until [ $AGAIN = 0 ]; do SOURCES=$(mktemp) REQUIRES=$(mktemp) - find "${imgdir}" -iname "*.dll" > ${SOURCES} - find "${imgdir}" -iname "*.exe" >> ${SOURCES} + find "${buildroot}${prefix}" -iname "*.dll" > ${SOURCES} + find "${buildroot}${prefix}" -iname "*.exe" >> ${SOURCES} while read FILENAME do From bee56e87f8ffc7de539ad528be770d542459866c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 21 Mar 2023 08:06:06 -0300 Subject: [PATCH 047/186] Debugging win32 package build. --- .github/workflows/winpkg.yml | 2 +- locale/Makefile.in | 6 ---- win/makeruntime.sh.in | 56 +++++++++++++++++++++++++++++++++--- 3 files changed, 53 insertions(+), 11 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 52c3a2e5..111f6282 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -40,7 +40,7 @@ jobs: - name: BuildApp run: ./win/ci-build.sh - name: Install pw3270 - run: make DESTDIR=./.build install + run: make DESTDIR=${PWD}/.build install - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/libipc3270 diff --git a/locale/Makefile.in b/locale/Makefile.in index 6cf11acb..86b0c86f 100644 --- a/locale/Makefile.in +++ b/locale/Makefile.in @@ -78,9 +78,3 @@ all: \ install: \ $(foreach SRC, $(basename $(wildcard *.po)), $(DESTDIR)/$(localedir)/$(SRC)/LC_MESSAGES/$(PACKAGE_NAME).mo) -# @$(MKDIR) $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/locale -# @$(INSTALL_DATA) *.po $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/locale -# @$(INSTALL_DATA) $(PACKAGE_NAME).pot $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/locale -# @$(INSTALL_DATA) Makefile $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/locale - - diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index 9ae26824..912ccb5c 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -124,8 +124,6 @@ install_bin() { if [ -e ${prefix}/bin/${FILENAME} ]; then - echo "${prefix}/bin/${FILENAME}" - AGAIN=1 cp -v "${prefix}/bin/${FILENAME}" "${bindir}/${FILENAME}" if [ "$?" != "0" ]; then @@ -134,8 +132,6 @@ install_bin() { elif [ -e ${prefix}/lib/${FILENAME} ]; then - echo "${prefix}/lib/${FILENAME}" - AGAIN=1 cp -v "${prefix}/lib/${FILENAME}" "${bindir}/${FILENAME}" if [ "$?" != "0" ]; then @@ -165,5 +161,57 @@ install_bin() { } +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 + " + + for i in ${locales}; do + + find "${prefix}/share/locale" -name ${i} + + 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_bin +install_locale From 8596456fc69df1172c8a9334622acfb07b766a21 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 21 Mar 2023 14:02:50 -0300 Subject: [PATCH 048/186] Working on gtk-runtime. --- schemas/Makefile.in | 8 ++-- win/makeruntime.sh.in | 85 ++++++++++++++++++++++++++++++++----------- 2 files changed, 67 insertions(+), 26 deletions(-) diff --git a/schemas/Makefile.in b/schemas/Makefile.in index 5f249029..34a12215 100644 --- a/schemas/Makefile.in +++ b/schemas/Makefile.in @@ -55,15 +55,15 @@ all: install: \ all - @$(MKDIR) $(DESTDIR)/$(schemadir) + @$(MKDIR) $(DESTDIR)$(schemadir) @$(INSTALL_DATA) \ @OSNAME@/application.gschema.xml \ - $(DESTDIR)/$(schemadir)/$(PRODUCT_NAME)-application.gschema.xml + $(DESTDIR)$(schemadir)/$(PRODUCT_NAME)-application.gschema.xml @$(INSTALL_DATA) \ @OSNAME@/window.gschema.xml \ - $(DESTDIR)/$(schemadir)/$(PRODUCT_NAME)-window.gschema.xml + $(DESTDIR)$(schemadir)/$(PRODUCT_NAME)-window.gschema.xml @$(GLIB_SCHEMA_COMPILER) \ - $(DESTDIR)/$(schemadir) + $(DESTDIR)$(schemadir) diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index 912ccb5c..a6bafaac 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -161,28 +161,6 @@ install_bin() { } -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 - " - - for i in ${locales}; do - - find "${prefix}/share/locale" -name ${i} - - done - -} - install_locale() { mkdir -p ${buildroot}${prefix}/share/locale/pt_BR/LC_MESSAGES @@ -212,6 +190,69 @@ install_locale() { 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" "${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=win32" >> ${buildroot}${prefix}/etc/gtk-3.0/settings.ini + + mkdir -p ${buildroot}${prefix}/share/icons + if [ "$?" != 0 ]; then + echo "Can´t create icons folder" + exit -1 + fi + + cp -rv /usr/share/icons ${buildroot}${prefix}/share/icons + if [ "$?" != 0 ]; then + echo "Can´t copy ${1} icons" + exit -1 + fi + + #echo "${srcdir}/gtk.css" + #if [ -e "${srcdir}/gtk.css" ]; then + # cp "${srcdir}/gtk.css" "${TARGET}/share/themes/Default/gtk-3.0/gtk.css" + #fi + +} + install_bin install_locale +install_schemas +install_theme From 93d65e098a0508b643a8f0c422f6a8ccf3dd9dbd Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 21 Mar 2023 17:36:27 -0300 Subject: [PATCH 049/186] Debugging winpkg. --- win/makeruntime.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index a6bafaac..ff1997ed 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -201,7 +201,7 @@ install_schemas() { for schema in ${schemas} do - cp -v "${prefix}/share/glib-2.0/schemas" "${buildroot}${prefix}/share/glib-2.0/schemas" + cp -v "${prefix}/share/glib-2.0/schemas/${schema}" "${buildroot}${prefix}/share/glib-2.0/schemas" if [ "$?" != "0" ]; then exit -1 fi From 294acfb7f903e5e53fc28482e772e83f91007937 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 21 Mar 2023 20:46:50 -0300 Subject: [PATCH 050/186] Fixing win32 release. --- src/objects/settings/gsettings.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/objects/settings/gsettings.c b/src/objects/settings/gsettings.c index a008eb5c..1ff44f8e 100644 --- a/src/objects/settings/gsettings.c +++ b/src/objects/settings/gsettings.c @@ -67,6 +67,8 @@ g_autofree gchar * appdir = g_win32_get_package_installation_directory_of_module(NULL); g_autofree gchar * filename = g_build_filename(appdir,"gschemas.compiled",NULL); + // TODO: Scan appdir + filename, appdir + /share/glib-2.0/schemas/ + if(g_file_test(filename,G_FILE_TEST_IS_REGULAR)) { GError * error = NULL; From a6bb7b1f31dfc3ea06841779e0f47f5136977bf1 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 21 Mar 2023 21:28:57 -0300 Subject: [PATCH 051/186] Searching for gschemas on standard path. --- src/objects/settings/gsettings.c | 164 ++++++++++++++++--------------- 1 file changed, 85 insertions(+), 79 deletions(-) diff --git a/src/objects/settings/gsettings.c b/src/objects/settings/gsettings.c index 1ff44f8e..869ee793 100644 --- a/src/objects/settings/gsettings.c +++ b/src/objects/settings/gsettings.c @@ -30,11 +30,94 @@ #include #include + /* + static void failed() { + + GtkWidget * dialog = gtk_message_dialog_new_with_markup( + NULL, + 0, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + _("Can't load system settings") + ); + + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),_("Unable to initialize system settings. Application may crash in unexpected ways")); + + gtk_window_set_title(GTK_WINDOW(dialog),_("System settings error")); + + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); + + gtk_widget_show_all(dialog); + + gtk_dialog_run(GTK_DIALOG(dialog)); + + gtk_widget_destroy(dialog); + + g_application_quit(g_application_get_default()); + + } + */ + static GSettings * settings_new(const gchar *schema_id) { GSettings *settings = NULL; -#if defined(DEBUG) +#if defined(_WIN32) + + { + g_autofree gchar * pkgdir = g_win32_get_package_installation_directory_of_module(NULL); + + g_autofree gchar * appdir = g_build_filename(pkgdir,"gschemas.compiled",NULL); + g_autofree gchar * sysdir = g_build_filename(pkgdir,"share","glib-2.0","schemas","gschemas.compiled",NULL); + + const char * names[] = { appdir, sysdir }; + size_t ix; + + for(ix = 0; ix < G_N_ELEMENTS(names); ix++) { + + if(g_file_test(names[ix],G_FILE_TEST_IS_REGULAR)) { + + GError * error = NULL; + g_autofree gchar *dirname = g_path_get_dirname(names[ix]); + + GSettingsSchemaSource * source = + g_settings_schema_source_new_from_directory( + dirname, + NULL, + TRUE, + &error + ); + + if(error) { + g_warning("Error loading '%s': %s",names[ix],error->message); + g_error_free(error); + return NULL; + } + + GSettingsSchema * schema = + g_settings_schema_source_lookup( + source, + schema_id, + TRUE); + + g_message("Loading '%s'",names[ix]); + settings = g_settings_new_full(schema, NULL, NULL); + + g_settings_schema_source_unref(source); + + if(settings) { + g_message("Got gsettings from %s",names[ix]); + return settings; + } + + } + } + + + } + +#elif defined(DEBUG) + { GError * error = NULL; GSettingsSchemaSource * source = @@ -62,89 +145,12 @@ g_settings_schema_source_unref(source); } -#elif defined(_WIN32) - { - g_autofree gchar * appdir = g_win32_get_package_installation_directory_of_module(NULL); - g_autofree gchar * filename = g_build_filename(appdir,"gschemas.compiled",NULL); - - // TODO: Scan appdir + filename, appdir + /share/glib-2.0/schemas/ - - if(g_file_test(filename,G_FILE_TEST_IS_REGULAR)) { - - GError * error = NULL; - g_autofree gchar *dirname = g_path_get_dirname(filename); - - GSettingsSchemaSource * source = - g_settings_schema_source_new_from_directory( - dirname, - NULL, - TRUE, - &error - ); - - if(error) { - g_warning("Error loading '%s': %s",filename,error->message); - g_error_free(error); - return NULL; - } - - GSettingsSchema * schema = - g_settings_schema_source_lookup( - source, - schema_id, - TRUE); - g_message("Loading '%s'",filename); - settings = g_settings_new_full(schema, NULL, NULL); - - g_settings_schema_source_unref(source); - - } else { - -#ifdef DEBUG - g_message("Can't find '%s' loading from default path",filename); -#endif // DEBUG - settings = g_settings_new(schema_id); - - } - } #else -#ifdef DEBUG - g_message("Loading '%s' from default path","gschemas.compiled"); -#endif // DEBUG - settings = g_settings_new(schema_id); -#endif // DEBUG - - if(!settings) { - - g_warning("Error loading system settings"); - - GtkWidget * dialog = gtk_message_dialog_new_with_markup( - NULL, - 0, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - _("Can't load system settings") - ); - - gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),_("Unable to initialize system settings. Application may crash in unexpected ways")); - - gtk_window_set_title(GTK_WINDOW(dialog),_("System settings error")); - - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); - - gtk_widget_show_all(dialog); - - //g_signal_connect(dialog,"close",G_CALLBACK(gtk_widget_destroy),NULL); - //g_signal_connect(dialog,"response",G_CALLBACK(gtk_widget_destroy),NULL); - gtk_dialog_run(GTK_DIALOG(dialog)); - - g_application_quit(g_application_get_default()); - - } +#endif return settings; } From e9ce3fc41457f068f3395090ace0e2234f1ac1c2 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 22 Mar 2023 07:35:12 -0300 Subject: [PATCH 052/186] Searching for locale on standard path. --- locale/pt_BR.po | 63 ++++++++++++++++++++--------------------- locale/pw3270.pot | 48 +++++++++++-------------------- src/include/config.h.in | 10 +++---- src/main/main.c | 17 ++++++++--- 4 files changed, 64 insertions(+), 74 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 4f922abd..4d7e80c8 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-31 11:13-0300\n" +"POT-Creation-Date: 2023-03-22 07:20-0300\n" "PO-Revision-Date: 2023-01-31 11:14-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" @@ -38,7 +38,7 @@ msgid "32 bits Windows" msgstr "Windows 32 bits" #: src/objects/actions/save.c:167 src/objects/os/linux/savedesktopicon.c:233 -#: src/objects/os/windows/savedesktopicon.c:224 +#: src/objects/os/windows/savedesktopicon.c:214 msgid "3270 session files" msgstr "Arquivos de sessão TN3270" @@ -146,10 +146,6 @@ msgstr "Não foi possível carregar arquivo de sessão" msgid "Can't load session preferences" msgstr "Não foi possível carregar preferências da sessão" -#: src/objects/settings/gsettings.c:128 -msgid "Can't load system settings" -msgstr "Não foi possível carregar configurações de sistema" - #: src/objects/application/actions/open.c:99 src/objects/window/terminal.c:192 #, c-format msgid "Can't use \"%s\"" @@ -260,7 +256,7 @@ msgid "Copyright © 2008 Banco do Brasil S.A." msgstr "Copyright © 2008 Banco do Brasil S.A." #: src/objects/os/linux/savedesktopicon.c:114 -#: src/objects/os/windows/savedesktopicon.c:109 +#: src/objects/os/windows/savedesktopicon.c:99 #: src/objects/os/macos/savedesktopicon.c:54 msgid "Create shortcut for the current session" msgstr "Criar atalho para a sessão atual." @@ -295,7 +291,7 @@ msgstr "Recortar" msgid "Delete Field" msgstr "Apagar campo" -#: src/objects/os/windows/savedesktopicon.c:82 +#: src/objects/os/windows/savedesktopicon.c:72 msgid "Description" msgstr "Descrição" @@ -365,7 +361,7 @@ msgstr "Erro iniciando sessão" msgid "Field attributes" msgstr "Atributos de campo" -#: src/objects/os/windows/savedesktopicon.c:221 +#: src/objects/os/windows/savedesktopicon.c:211 msgid "File for session preferences" msgstr "Arquivo para preferências da sessão" @@ -394,7 +390,7 @@ msgstr "Configuração de servidor e emulação" #: src/objects/application/actions/about.c:119 src/objects/window/window.c:564 #: src/objects/os/linux/savedesktopicon.c:102 -#: src/objects/os/windows/savedesktopicon.c:271 +#: src/objects/os/windows/savedesktopicon.c:261 msgid "IBM 3270 Terminal emulator" msgstr "Emulador de terminal IBM 3270" @@ -643,7 +639,7 @@ msgid "Paste with left margin" msgstr "Colar com margem esquerda" #: src/objects/os/linux/savedesktopicon.c:71 -#: src/objects/os/windows/savedesktopicon.c:76 +#: src/objects/os/windows/savedesktopicon.c:66 msgid "Path for the new shortcut" msgstr "Caminho para o novo atalho" @@ -718,7 +714,7 @@ msgid "Save session preferences" msgstr "Salvar preferências da sessão" #: src/objects/os/linux/savedesktopicon.c:113 -#: src/objects/os/windows/savedesktopicon.c:108 +#: src/objects/os/windows/savedesktopicon.c:98 #: src/objects/os/macos/savedesktopicon.c:53 msgid "Save session shortcut" msgstr "Salvar atalho para a sessão" @@ -731,7 +727,7 @@ msgstr "Salvar para arquivo de sessão" msgid "Save to shortcut file" msgstr "Salvar para arquivo de atalho" -#: src/objects/os/windows/savedesktopicon.c:186 +#: src/objects/os/windows/savedesktopicon.c:176 msgid "Save to windows shortcut" msgstr "Salvar para atalho windows" @@ -796,7 +792,7 @@ msgid "Session Trace" msgstr "Trace da sessão" #: src/objects/actions/save.c:63 src/objects/os/linux/savedesktopicon.c:85 -#: src/objects/os/windows/savedesktopicon.c:96 +#: src/objects/os/windows/savedesktopicon.c:86 msgid "Session file" msgstr "Arquivo de sessão" @@ -811,7 +807,7 @@ msgid "Session in new window" msgstr "Sessão em nova janela" #: src/objects/actions/save.c:56 src/objects/os/linux/savedesktopicon.c:77 -#: src/objects/os/windows/savedesktopicon.c:88 +#: src/objects/os/windows/savedesktopicon.c:78 msgid "Session name" msgstr "Nome da sessão" @@ -847,7 +843,7 @@ msgid "Setup toolbar" msgstr "Configurar barra de ferramentas" #: src/objects/os/linux/savedesktopicon.c:70 -#: src/objects/os/windows/savedesktopicon.c:75 +#: src/objects/os/windows/savedesktopicon.c:65 msgid "Shortcut file" msgstr "Arquivo de atalho" @@ -910,10 +906,6 @@ msgstr "Simbólico" msgid "System default" msgstr "Padrão do sistema" -#: src/objects/settings/gsettings.c:133 -msgid "System settings error" -msgstr "Erro nas configurações de sistema" - #: src/main/tools.c:75 msgid "TN3270 Session Files" msgstr "Arquivos de sessão TN3270" @@ -960,7 +952,7 @@ msgid "The file to save the current session preferences" msgstr "O arquivo com as preferências da sessão atual" #: src/objects/os/linux/savedesktopicon.c:86 -#: src/objects/os/windows/savedesktopicon.c:97 +#: src/objects/os/windows/savedesktopicon.c:87 msgid "The file with the session preferences for this shortcut" msgstr "O arquivo com as preferências da sessão para esse atalho" @@ -1005,7 +997,7 @@ msgid "The position of the keypad" msgstr "A posição do painel" #: src/objects/actions/save.c:57 src/objects/os/linux/savedesktopicon.c:79 -#: src/objects/os/windows/savedesktopicon.c:90 +#: src/objects/os/windows/savedesktopicon.c:80 msgid "The session name used in the window/tab title (empty for default)" msgstr "" "O nome da sessão usada no título da janela/aba. Vazio para usar o valor " @@ -1091,14 +1083,6 @@ msgstr "Mostrar posição do cursor" msgid "UI Type" msgstr "Interface de usuário" -#: src/objects/settings/gsettings.c:131 -msgid "" -"Unable to initialize system settings. Application may crash in unexpected " -"ways" -msgstr "" -"Não foi possível iniciar configuração de sistema. Aplicação pode falhar de " -"forma inesperada" - #: src/objects/os/windows/open.c:137 #, c-format msgid "Unable to load session preferences from '%s'" @@ -1140,7 +1124,7 @@ msgstr "Visite-nos no github" msgid "Window with default session" msgstr "Janela com sessão padrão" -#: src/objects/os/windows/savedesktopicon.c:189 +#: src/objects/os/windows/savedesktopicon.c:179 msgid "Windows shortcuts" msgstr "Atalhos windows" @@ -1150,7 +1134,7 @@ msgstr "_Aplicar" #: src/objects/actions/save.c:103 src/objects/settings/dialog.c:78 #: src/objects/os/linux/savedesktopicon.c:140 -#: src/objects/os/windows/savedesktopicon.c:134 +#: src/objects/os/windows/savedesktopicon.c:124 msgid "_Cancel" msgstr "_Cancelar" @@ -1200,7 +1184,7 @@ msgid "_Rename session" msgstr "Renomear sessão" #: src/objects/actions/save.c:104 src/objects/os/linux/savedesktopicon.c:141 -#: src/objects/os/windows/savedesktopicon.c:135 +#: src/objects/os/windows/savedesktopicon.c:125 msgid "_Save" msgstr "_Salvar" @@ -1647,6 +1631,9 @@ msgstr "translator-credits" #~ msgid "Can't load plugin %s" #~ msgstr "Não foi possível carregar plugin %s" +#~ msgid "Can't load system settings" +#~ msgstr "Não foi possível carregar configurações de sistema" + #~ msgid "Can't open \"%s\"" #~ msgstr "Não foi possível abrir %s" @@ -3439,6 +3426,9 @@ msgstr "translator-credits" #~ msgid "Subject issuer mismatch" #~ msgstr "Divergência na identidade do emissor" +#~ msgid "System settings error" +#~ msgstr "Erro nas configurações de sistema" + #~ msgid "TELNET Proxy: send error" #~ msgstr "TELNET Proxy: Erro ao enviar" @@ -3898,6 +3888,13 @@ msgstr "translator-credits" #~ msgid "Unable to get local issuer certificate" #~ msgstr "Unable to get local issuer certificate" +#~ msgid "" +#~ "Unable to initialize system settings. Application may crash in unexpected " +#~ "ways" +#~ msgstr "" +#~ "Não foi possível iniciar configuração de sistema. Aplicação pode falhar " +#~ "de forma inesperada" + #~ msgid "Unable to load from file" #~ msgstr "Não foi possível ler do arquivo" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 4cd6223a..1b1bf83e 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-20 19:26-0300\n" +"POT-Creation-Date: 2023-03-22 07:20-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,7 +36,7 @@ msgid "32 bits Windows" msgstr "" #: src/objects/actions/save.c:167 src/objects/os/linux/savedesktopicon.c:233 -#: src/objects/os/windows/savedesktopicon.c:224 +#: src/objects/os/windows/savedesktopicon.c:214 msgid "3270 session files" msgstr "" @@ -142,10 +142,6 @@ msgstr "" msgid "Can't load session preferences" msgstr "" -#: src/objects/settings/gsettings.c:128 -msgid "Can't load system settings" -msgstr "" - #: src/objects/application/actions/open.c:99 src/objects/window/terminal.c:192 #, c-format msgid "Can't use \"%s\"" @@ -256,7 +252,7 @@ msgid "Copyright © 2008 Banco do Brasil S.A." msgstr "" #: src/objects/os/linux/savedesktopicon.c:114 -#: src/objects/os/windows/savedesktopicon.c:109 +#: src/objects/os/windows/savedesktopicon.c:99 #: src/objects/os/macos/savedesktopicon.c:54 msgid "Create shortcut for the current session" msgstr "" @@ -291,7 +287,7 @@ msgstr "" msgid "Delete Field" msgstr "" -#: src/objects/os/windows/savedesktopicon.c:82 +#: src/objects/os/windows/savedesktopicon.c:72 msgid "Description" msgstr "" @@ -361,7 +357,7 @@ msgstr "" msgid "Field attributes" msgstr "" -#: src/objects/os/windows/savedesktopicon.c:221 +#: src/objects/os/windows/savedesktopicon.c:211 msgid "File for session preferences" msgstr "" @@ -390,7 +386,7 @@ msgstr "" #: src/objects/application/actions/about.c:119 src/objects/window/window.c:564 #: src/objects/os/linux/savedesktopicon.c:102 -#: src/objects/os/windows/savedesktopicon.c:271 +#: src/objects/os/windows/savedesktopicon.c:261 msgid "IBM 3270 Terminal emulator" msgstr "" @@ -639,7 +635,7 @@ msgid "Paste with left margin" msgstr "" #: src/objects/os/linux/savedesktopicon.c:71 -#: src/objects/os/windows/savedesktopicon.c:76 +#: src/objects/os/windows/savedesktopicon.c:66 msgid "Path for the new shortcut" msgstr "" @@ -714,7 +710,7 @@ msgid "Save session preferences" msgstr "" #: src/objects/os/linux/savedesktopicon.c:113 -#: src/objects/os/windows/savedesktopicon.c:108 +#: src/objects/os/windows/savedesktopicon.c:98 #: src/objects/os/macos/savedesktopicon.c:53 msgid "Save session shortcut" msgstr "" @@ -727,7 +723,7 @@ msgstr "" msgid "Save to shortcut file" msgstr "" -#: src/objects/os/windows/savedesktopicon.c:186 +#: src/objects/os/windows/savedesktopicon.c:176 msgid "Save to windows shortcut" msgstr "" @@ -792,7 +788,7 @@ msgid "Session Trace" msgstr "" #: src/objects/actions/save.c:63 src/objects/os/linux/savedesktopicon.c:85 -#: src/objects/os/windows/savedesktopicon.c:96 +#: src/objects/os/windows/savedesktopicon.c:86 msgid "Session file" msgstr "" @@ -807,7 +803,7 @@ msgid "Session in new window" msgstr "" #: src/objects/actions/save.c:56 src/objects/os/linux/savedesktopicon.c:77 -#: src/objects/os/windows/savedesktopicon.c:88 +#: src/objects/os/windows/savedesktopicon.c:78 msgid "Session name" msgstr "" @@ -843,7 +839,7 @@ msgid "Setup toolbar" msgstr "" #: src/objects/os/linux/savedesktopicon.c:70 -#: src/objects/os/windows/savedesktopicon.c:75 +#: src/objects/os/windows/savedesktopicon.c:65 msgid "Shortcut file" msgstr "" @@ -906,10 +902,6 @@ msgstr "" msgid "System default" msgstr "" -#: src/objects/settings/gsettings.c:133 -msgid "System settings error" -msgstr "" - #: src/main/tools.c:75 msgid "TN3270 Session Files" msgstr "" @@ -956,7 +948,7 @@ msgid "The file to save the current session preferences" msgstr "" #: src/objects/os/linux/savedesktopicon.c:86 -#: src/objects/os/windows/savedesktopicon.c:97 +#: src/objects/os/windows/savedesktopicon.c:87 msgid "The file with the session preferences for this shortcut" msgstr "" @@ -1001,7 +993,7 @@ msgid "The position of the keypad" msgstr "" #: src/objects/actions/save.c:57 src/objects/os/linux/savedesktopicon.c:79 -#: src/objects/os/windows/savedesktopicon.c:90 +#: src/objects/os/windows/savedesktopicon.c:80 msgid "The session name used in the window/tab title (empty for default)" msgstr "" @@ -1085,12 +1077,6 @@ msgstr "" msgid "UI Type" msgstr "" -#: src/objects/settings/gsettings.c:131 -msgid "" -"Unable to initialize system settings. Application may crash in unexpected " -"ways" -msgstr "" - #: src/objects/os/windows/open.c:137 #, c-format msgid "Unable to load session preferences from '%s'" @@ -1132,7 +1118,7 @@ msgstr "" msgid "Window with default session" msgstr "" -#: src/objects/os/windows/savedesktopicon.c:189 +#: src/objects/os/windows/savedesktopicon.c:179 msgid "Windows shortcuts" msgstr "" @@ -1142,7 +1128,7 @@ msgstr "" #: src/objects/actions/save.c:103 src/objects/settings/dialog.c:78 #: src/objects/os/linux/savedesktopicon.c:140 -#: src/objects/os/windows/savedesktopicon.c:134 +#: src/objects/os/windows/savedesktopicon.c:124 msgid "_Cancel" msgstr "" @@ -1192,7 +1178,7 @@ msgid "_Rename session" msgstr "" #: src/objects/actions/save.c:104 src/objects/os/linux/savedesktopicon.c:141 -#: src/objects/os/windows/savedesktopicon.c:135 +#: src/objects/os/windows/savedesktopicon.c:125 msgid "_Save" msgstr "" diff --git a/src/include/config.h.in b/src/include/config.h.in index d072aad6..57688463 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 @@ -99,9 +99,7 @@ /* The product name */ #undef PRODUCT_NAME -/* 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/src/main/main.c b/src/main/main.c index be154503..2e73ae82 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -74,10 +74,19 @@ int main (int argc, char **argv) { #ifdef _WIN32 { - g_autofree gchar * appdir = g_win32_get_package_installation_directory_of_module(NULL); - g_autofree gchar * locdir = g_build_filename(appdir,"locale",NULL); - debug("Locale from \"%s\"\n",locdir); - bindtextdomain( PACKAGE_NAME, locdir ); + g_autofree gchar * pkgdir = g_win32_get_package_installation_directory_of_module(NULL); + { + g_autofree gchar * appdir = g_build_filename(pkgdir,"locale",NULL); + if(g_file_test(appdir,G_FILE_TEST_IS_DIR)) { + bindtextdomain( PACKAGE_NAME, appdir ); + } else { + g_autofree gchar * sysdir = g_build_filename(pkgdir,"share","locale",NULL); + if(g_file_test(sysdir,G_FILE_TEST_IS_DIR)) { + bindtextdomain( PACKAGE_NAME, sysdir ); + } + } + + } } #endif // _WIN32 From a108255a4f8cb352f40a2aefaac3e21b802ac28d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 22 Mar 2023 07:55:10 -0300 Subject: [PATCH 053/186] Searching standard path for data files. --- src/include/pw3270.h | 1 + src/main/builder.c | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/include/pw3270.h b/src/include/pw3270.h index 6b98e6e0..7828d949 100644 --- a/src/include/pw3270.h +++ b/src/include/pw3270.h @@ -63,6 +63,7 @@ struct _Pw3270SettingsPage { }; void gtk_file_chooser_set_pw3270_filters(GtkFileChooser *chooser); +gchar * pw3270_build_data_filename(const char *filename); G_END_DECLS diff --git a/src/main/builder.c b/src/main/builder.c index 79b58082..6b8528f9 100644 --- a/src/main/builder.c +++ b/src/main/builder.c @@ -20,12 +20,37 @@ #include "private.h" #include #include + #include + + gchar * pw3270_build_data_filename(const char *filename) { + + g_autofree gchar * pkgdir = g_win32_get_package_installation_directory_of_module(NULL); + + gchar * path = g_build_filename(pkgdir,filename,NULL); + if(g_file_test(path,G_FILE_TEST_IS_REGULAR)) { + return path; + } + g_free(path); + + path = g_build_filename(pkgdir,"share",G_STRINGIFY(PRODUCT_NAME),filename,NULL); + if(g_file_test(path,G_FILE_TEST_IS_REGULAR)) { + return path; + } + g_free(path); + + g_error("Cant find '%s'",filename); + return NULL; + } GtkBuilder * pw3270_application_builder_new(GApplication *application) { #if !defined(DEBUG) - lib3270_autoptr(char) filename = lib3270_build_data_filename(G_STRINGIFY(PRODUCT_NAME) ".ui.xml",NULL); + #if defined(G_OS_WIN32) + g_autofree gchar * filename = pw3270_build_data_filename(G_STRINGIFY(PRODUCT_NAME) ".ui.xml"); + #else + lib3270_autoptr(char) filename = lib3270_build_data_filename(G_STRINGIFY(PRODUCT_NAME) ".ui.xml",NULL); + #endif // G_OS_WIN32 #elif defined(G_OS_UNIX) From 65828c368342a6fe3748f83c579fa88b1d853794 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 22 Mar 2023 19:48:27 -0300 Subject: [PATCH 054/186] Updating package control files. --- CHANGELOG | 13 +++++++++++++ arch/PKGBUILD | 2 +- debian/changelog | 2 +- debian/pw3270.dsc | 2 +- rpm/_servicedata | 4 ++++ rpm/pw3270.spec | 2 +- 6 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 rpm/_servicedata diff --git a/CHANGELOG b/CHANGELOG index 447d1275..8cc2283c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Wed Mar 22 11:05:26 UTC 2023 - perry.werneck@gmail.com + +- Update to version 5.5+git20230204: + * Updating translation. + * Fixing win32 build, adding 'changes' file in windows app. + * Updating deb and mingw packages. + * Updating _service + * Updating translation. + * Adding 'CHANGELOG' + * Updating deb control files. + * Updating schema path on macos bundle script. + ------------------------------------------------------------------- Thu Apr 07 23:35:08 UTC 2022 - perry.werneck@gmail.com diff --git a/arch/PKGBUILD b/arch/PKGBUILD index 81f58937..20166e41 100644 --- a/arch/PKGBUILD +++ b/arch/PKGBUILD @@ -2,7 +2,7 @@ pkgname=pw3270 -pkgver=5.3 +pkgver=5.5+git20230204 pkgrel=0 pkgdesc="IBM 3270 Terminal emulator for GTK" url="https://portal.softwarepublico.gov.br/social/pw3270/" diff --git a/debian/changelog b/debian/changelog index 236a0447..a82e1f69 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -pw3270 (5.4-0) unstable; urgency=low +pw3270 (5.5+git20230204-0) unstable; urgency=low * Initial Release diff --git a/debian/pw3270.dsc b/debian/pw3270.dsc index da9a113e..7aa84ec9 100644 --- a/debian/pw3270.dsc +++ b/debian/pw3270.dsc @@ -1,6 +1,6 @@ Format: 1.0 Source: pw3270 -Version: 5.4-0 +Version: 5.5+git20230204-0 Binary: pw3270 Maintainer: Perry Werneck Architecture: any diff --git a/rpm/_servicedata b/rpm/_servicedata new file mode 100644 index 00000000..e79680b9 --- /dev/null +++ b/rpm/_servicedata @@ -0,0 +1,4 @@ + + + https://github.com/PerryWerneck/pw3270.git + 5cc5a3fd58e23e0d65fd0d82be4f39824bc16016 \ No newline at end of file diff --git a/rpm/pw3270.spec b/rpm/pw3270.spec index da8e42f4..74b40111 100644 --- a/rpm/pw3270.spec +++ b/rpm/pw3270.spec @@ -26,7 +26,7 @@ #---[ Packaging ]----------------------------------------------------------------------------------------------------- Name: pw3270 -Version: 5.4 +Version: 5.5+git20230204 Release: 0 Summary: IBM 3270 Terminal emulator for GTK License: GPL-2.0-only From 67f967b0a69095fbd27134db2a41ce93e8aa34c7 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 23 Mar 2023 16:11:05 -0300 Subject: [PATCH 055/186] Updating gitignore. --- .gitignore | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index a2076d78..26fc0c28 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,4 @@ -.bin -.tmp -.obj -.pot +.* *~ *.log *.status @@ -71,4 +68,6 @@ intl m4 po app-manifest.xml +libtool + From 38a249290f954a53690e5d386372ae4f76c1bd6f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 24 Mar 2023 08:52:31 -0300 Subject: [PATCH 056/186] Building locale based on product name. --- locale/Makefile.in | 47 +++++++++++++++++----------------------------- locale/pw3270.pot | 2 +- src/main/main.c | 6 +++--- 3 files changed, 21 insertions(+), 34 deletions(-) diff --git a/locale/Makefile.in b/locale/Makefile.in index 6cf11acb..7a45e876 100644 --- a/locale/Makefile.in +++ b/locale/Makefile.in @@ -1,27 +1,19 @@ +# SPDX-License-Identifier: LGPL-3.0-or-later # -# Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 -# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a -# aplicativos mainframe. Registro no INPI sob o nome G3270. +# Copyright (C) 2008 Banco do Brasil S.A. # -# Copyright (C) <2008> +# 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. # -# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob -# os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela -# Free Software Foundation. +# 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. # -# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER -# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO -# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para -# obter mais detalhes. -# -# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este -# programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin -# St, Fifth Floor, Boston, MA 02110-1301 USA -# -# Contatos: -# -# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) -# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # @@ -56,15 +48,15 @@ INSTALL_DATA=@INSTALL_DATA@ @$(MSGMERGE) --update --sort-output $@ $(PACKAGE_NAME).pot @touch $@ -$(BINDIR)/%/LC_MESSAGES/$(PACKAGE_NAME).mo: \ +$(BINDIR)/%/LC_MESSAGES/$(PRODUCT_NAME).mo: \ %.po @echo $< ... @$(MKDIR) `dirname $@` @$(MSGFMT) -c -v -o $@ $^ -$(DESTDIR)/$(localedir)/%/LC_MESSAGES/$(PACKAGE_NAME).mo: \ - $(BINDIR)/%/LC_MESSAGES/$(PACKAGE_NAME).mo +$(DESTDIR)/$(localedir)/%/LC_MESSAGES/$(PRODUCT_NAME).mo: \ + $(BINDIR)/%/LC_MESSAGES/$(PRODUCT_NAME).mo @echo $< ... @$(MKDIR) `dirname $@` @@ -73,14 +65,9 @@ $(DESTDIR)/$(localedir)/%/LC_MESSAGES/$(PACKAGE_NAME).mo: \ #---[ Targets ]-------------------------------------------------------------------------- all: \ - $(foreach SRC, $(basename $(wildcard *.po)), $(BINDIR)/$(SRC)/LC_MESSAGES/$(PACKAGE_NAME).mo) + $(foreach SRC, $(basename $(wildcard *.po)), $(BINDIR)/$(SRC)/LC_MESSAGES/$(PRODUCT_NAME).mo) install: \ - $(foreach SRC, $(basename $(wildcard *.po)), $(DESTDIR)/$(localedir)/$(SRC)/LC_MESSAGES/$(PACKAGE_NAME).mo) - -# @$(MKDIR) $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/locale -# @$(INSTALL_DATA) *.po $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/locale -# @$(INSTALL_DATA) $(PACKAGE_NAME).pot $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/locale -# @$(INSTALL_DATA) Makefile $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/locale + $(foreach SRC, $(basename $(wildcard *.po)), $(DESTDIR)/$(localedir)/$(SRC)/LC_MESSAGES/$(PRODUCT_NAME).mo) diff --git a/locale/pw3270.pot b/locale/pw3270.pot index a03bb64b..80a1b748 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-31 11:13-0300\n" +"POT-Creation-Date: 2023-03-24 08:43-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/main/main.c b/src/main/main.c index be154503..39a4186b 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -77,12 +77,12 @@ int main (int argc, char **argv) { g_autofree gchar * appdir = g_win32_get_package_installation_directory_of_module(NULL); g_autofree gchar * locdir = g_build_filename(appdir,"locale",NULL); debug("Locale from \"%s\"\n",locdir); - bindtextdomain( PACKAGE_NAME, locdir ); + bindtextdomain( G_STRINGIFY(PRODUCT_NAME), locdir ); } #endif // _WIN32 - bind_textdomain_codeset(PACKAGE_NAME, "UTF-8"); - textdomain(PACKAGE_NAME); + bind_textdomain_codeset(G_STRINGIFY(PRODUCT_NAME), "UTF-8"); + textdomain(G_STRINGIFY(PRODUCT_NAME)); // Setup and start application. g_set_application_name(G_STRINGIFY(PRODUCT_NAME)); From 61d59251fbc96c707bff3fc9bb86c83581fe526b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sat, 25 Mar 2023 09:20:23 -0300 Subject: [PATCH 057/186] Working on windows package. --- locale/pt_BR.po | 4 ++-- locale/pw3270.pot | 4 ++-- src/main/main.c | 35 ++++++++++++----------------------- src/main/tools.c | 35 ++++++++++++----------------------- win/makeruntime.sh.in | 22 ++++++++++++++++------ wine-run.sh | 18 ++++++++++++++---- 6 files changed, 58 insertions(+), 60 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 4d7e80c8..e22dd797 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-22 07:20-0300\n" +"POT-Creation-Date: 2023-03-25 08:48-0300\n" "PO-Revision-Date: 2023-01-31 11:14-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" @@ -474,7 +474,7 @@ msgstr "Altura do painel em linhas" msgid "Keypad width in columns" msgstr "Largura do painel em colunas" -#: src/main/builder.c:112 +#: src/main/builder.c:137 msgid "Keypads" msgstr "Painéis" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 1b1bf83e..55567c63 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-22 07:20-0300\n" +"POT-Creation-Date: 2023-03-25 08:48-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -470,7 +470,7 @@ msgstr "" msgid "Keypad width in columns" msgstr "" -#: src/main/builder.c:112 +#: src/main/builder.c:137 msgid "Keypads" msgstr "" diff --git a/src/main/main.c b/src/main/main.c index 2e73ae82..33a9e353 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -1,31 +1,20 @@ +/* SPDX-License-Identifier: LGPL-3.0-or-later */ + /* - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob - * o nome G3270. - * * Copyright (C) <2008> * - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela - * Free Software Foundation. - * - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para - * obter mais detalhes. - * - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin - * St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Este programa está nomeado como main.c e possui - linhas de código. - * - * Contatos: + * 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. * - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * 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 . */ /** diff --git a/src/main/tools.c b/src/main/tools.c index 2a44ba7f..e084e1d2 100644 --- a/src/main/tools.c +++ b/src/main/tools.c @@ -1,31 +1,20 @@ +/* SPDX-License-Identifier: LGPL-3.0-or-later */ + /* - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob - * o nome G3270. - * * Copyright (C) <2008> * - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela - * Free Software Foundation. - * - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para - * obter mais detalhes. - * - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin - * St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Este programa está nomeado como main.c e possui - linhas de código. - * - * Contatos: + * 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. * - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * 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 . */ /** diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index ff1997ed..d2a72e33 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -216,7 +216,7 @@ install_schemas() { fi } -install_theme() { +install_icons() { mkdir -p "${buildroot}${prefix}/etc" cp -rv "${prefix}/etc/gtk-3.0" "${buildroot}${prefix}/etc" @@ -244,15 +244,25 @@ install_theme() { exit -1 fi - #echo "${srcdir}/gtk.css" - #if [ -e "${srcdir}/gtk.css" ]; then - # cp "${srcdir}/gtk.css" "${TARGET}/share/themes/Default/gtk-3.0/gtk.css" - #fi + 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_theme() { + cp -rv /usr/share/icons/${1} ${buildroot}${prefix}/share/icons + if [ "$?" != 0 ]; then + echo "Can´t copy ${1} icons" + exit -1 + fi +} + install_bin install_locale install_schemas -install_theme +install_icons +install_theme "Adwaita" + diff --git a/wine-run.sh b/wine-run.sh index 47dc93a9..3f1ed15d 100755 --- a/wine-run.sh +++ b/wine-run.sh @@ -1,9 +1,19 @@ #!/bin/bash -make Debug -make gschemas.compiled +make DESTDIR=${PWD}/.build install +if [ "$?" != "0" ]; then + exit -1 +fi + +bash ./win/makeruntime.sh +if [ "$?" != "0" ]; then + exit -1 +fi + +wine .build/usr/x86_64-w64-mingw32/sys-root/mingw/bin/pw3270.exe +if [ "$?" != "0" ]; then + exit -1 +fi -cp gschemas.compiled .bin/Debug -wine .bin/Debug/pw3270.exe From 0679909b644ac91c0352f9c858faa059875b7377 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sat, 25 Mar 2023 09:27:31 -0300 Subject: [PATCH 058/186] Moving default header buttons to left. --- schemas/linux/window.gschema.xml.in | 2 +- schemas/windows/window.gschema.xml.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/linux/window.gschema.xml.in b/schemas/linux/window.gschema.xml.in index 3bd7c911..02bb0c48 100644 --- a/schemas/linux/window.gschema.xml.in +++ b/schemas/linux/window.gschema.xml.in @@ -111,7 +111,7 @@ - 'app.tab.new:menu.open-menu,win.disconnect,win.reconnect' + 'menu.open-menu,win.disconnect,win.reconnect:' The title bar action list diff --git a/schemas/windows/window.gschema.xml.in b/schemas/windows/window.gschema.xml.in index eabb596a..39321e7a 100644 --- a/schemas/windows/window.gschema.xml.in +++ b/schemas/windows/window.gschema.xml.in @@ -111,7 +111,7 @@ - 'app.new.tab:menu.open-menu,win.disconnect,win.reconnect' + 'menu.open-menu,win.disconnect,win.reconnect:' The title bar action list From b2b1a22c0ad9e7a244b88d39d0a84c7aa51055d2 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sat, 25 Mar 2023 09:28:41 -0300 Subject: [PATCH 059/186] Moving default action buttons to left --- schemas/linux/window.gschema.xml.in | 2 +- schemas/windows/window.gschema.xml.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/linux/window.gschema.xml.in b/schemas/linux/window.gschema.xml.in index 3bd7c911..02bb0c48 100644 --- a/schemas/linux/window.gschema.xml.in +++ b/schemas/linux/window.gschema.xml.in @@ -111,7 +111,7 @@ - 'app.tab.new:menu.open-menu,win.disconnect,win.reconnect' + 'menu.open-menu,win.disconnect,win.reconnect:' The title bar action list diff --git a/schemas/windows/window.gschema.xml.in b/schemas/windows/window.gschema.xml.in index eabb596a..39321e7a 100644 --- a/schemas/windows/window.gschema.xml.in +++ b/schemas/windows/window.gschema.xml.in @@ -111,7 +111,7 @@ - 'app.new.tab:menu.open-menu,win.disconnect,win.reconnect' + 'menu.open-menu,win.disconnect,win.reconnect:' The title bar action list From 43c3b0fed7a2a0f1308c6bcdb98375293af5e323 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sat, 25 Mar 2023 10:19:59 -0300 Subject: [PATCH 060/186] Update makeruntime.sh.in --- win/makeruntime.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index d2a72e33..f28abb9f 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -263,6 +263,6 @@ install_bin install_locale install_schemas install_icons -install_theme "Adwaita" +# install_theme "Adwaita" From cb81bc57072be6f0645defd212399b04dc1d6e63 Mon Sep 17 00:00:00 2001 From: "Bernhard M. Wiedemann" Date: Sun, 26 Mar 2023 15:45:42 +0200 Subject: [PATCH 061/186] Allow to override build date with SOURCE_DATE_EPOCH in order to make builds reproducible. See https://reproducible-builds.org/ for why this is good and https://reproducible-builds.org/specs/source-date-epoch/ for the definition of this variable. This date call works with different implementations of date. Also use UTC to be independent of timezone. This patch was done while working on reproducible builds for openSUSE. --- configure.ac | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 2157c7c5..86b319c2 100644 --- a/configure.ac +++ b/configure.ac @@ -119,7 +119,9 @@ case "$host" in esac -app_release_date=$(date +%Y-%m-%d) +DATE_FMT="+%Y-%m-%d" +SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" +app_release_date=$(date -u -d "@$SOURCE_DATE_EPOCH" "$DATE_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "$DATE_FMT" 2>/dev/null || date -u "$DATE_FMT") AC_SUBST(RELEASE_DATE,$app_release_date) AC_SUBST(OSNAME,$app_cv_osname) AC_SUBST(RLS_LDFLAGS,$app_rls_ldflags) From f123a096d3ec844bfb585657b6c104a587decb8e Mon Sep 17 00:00:00 2001 From: "Bernhard M. Wiedemann" Date: Sun, 26 Mar 2023 15:45:42 +0200 Subject: [PATCH 062/186] Allow to override build date with SOURCE_DATE_EPOCH in order to make builds reproducible. See https://reproducible-builds.org/ for why this is good and https://reproducible-builds.org/specs/source-date-epoch/ for the definition of this variable. This date call works with different implementations of date. Also use UTC to be independent of timezone. This patch was done while working on reproducible builds for openSUSE. --- configure.ac | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 2157c7c5..86b319c2 100644 --- a/configure.ac +++ b/configure.ac @@ -119,7 +119,9 @@ case "$host" in esac -app_release_date=$(date +%Y-%m-%d) +DATE_FMT="+%Y-%m-%d" +SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" +app_release_date=$(date -u -d "@$SOURCE_DATE_EPOCH" "$DATE_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "$DATE_FMT" 2>/dev/null || date -u "$DATE_FMT") AC_SUBST(RELEASE_DATE,$app_release_date) AC_SUBST(OSNAME,$app_cv_osname) AC_SUBST(RLS_LDFLAGS,$app_rls_ldflags) From 4e748d69ac298ecc69ebc4f312241ac59efdd875 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sun, 26 Mar 2023 23:54:16 -0300 Subject: [PATCH 063/186] Removing unused lgtm file. --- lgtm.yml | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 lgtm.yml diff --git a/lgtm.yml b/lgtm.yml deleted file mode 100644 index ff6c6b25..00000000 --- a/lgtm.yml +++ /dev/null @@ -1,51 +0,0 @@ - -# Reference: https://github.com/yasio/yasio/blob/main/.lgtm.yml - -extraction: - # Define settings for C/C++ analysis - ##################################### - cpp: - prepare: - packages: - - gettext - - git - - make - - autotools-dev - - autoconf - - automake - - pkg-config - - gettext - - libssl-dev - - libcurl4-openssl-dev - - libgtk-3-dev - - imagemagick - - configure: - command: - - export BUILD_DIR=$(readlink -f .) - - export PRE_REQS_DIR="${BUILD_DIR}/pre-reqs" - - mkdir -p "${PRE_REQS_DIR}/src" - - git clone https://github.com/PerryWerneck/lib3270.git "${PRE_REQS_DIR}/src/lib3270" - - cd ${PRE_REQS_DIR}/src/lib3270 - - ./autogen.sh --prefix=/usr - - make -C ${PRE_REQS_DIR}/src/lib3270 all - - make DESTDIR=${PRE_REQS_DIR} -C ${PRE_REQS_DIR}/src/lib3270 install - - cd ${BUILD_DIR} - - export LIB3270_CFLAGS="-DLIB3270_NAME=3270 -DLIB3270_REVISION=00000000 -I${PRE_REQS_DIR}/usr/include" - - export LIB3270_LIBS="-L${PRE_REQS_DIR}/usr/lib -l3270" - - - git clone https://github.com/PerryWerneck/libv3270.git "${PRE_REQS_DIR}/src/libv3270" - - cd ${PRE_REQS_DIR}/src/libv3270 - - ./autogen.sh --prefix=/usr - - make -C ${PRE_REQS_DIR}/src/libv3270 all - - make DESTDIR=${PRE_REQS_DIR} -C ${PRE_REQS_DIR}/src/libv3270 install - - cd ${BUILD_DIR} - - export LIBV3270_CFLAGS="-DLIB3270_NAME=3270 -DLIB3270_REVISION=00000000 -I${PRE_REQS_DIR}/usr/include" - - export LIBV3270_LIBS="-Wl,-rpath,${PRE_REQS_DIR}/usr/lib -L${PRE_REQS_DIR}/usr/lib -lv3270 -l3270" - - - ./autogen.sh --prefix=/usr - - index: - build_command: - - make all - From f07ce111d5d5455d14807ff693c651e0eb5f048f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 27 Mar 2023 00:38:24 -0300 Subject: [PATCH 064/186] Working on win32 package. --- win/makeruntime.sh.in | 49 +++++++++++++++++++++++++------------------ wine-run.sh | 2 ++ 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index f28abb9f..485150d6 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -216,7 +216,7 @@ install_schemas() { fi } -install_icons() { +install_theme() { mkdir -p "${buildroot}${prefix}/etc" cp -rv "${prefix}/etc/gtk-3.0" "${buildroot}${prefix}/etc" @@ -230,19 +230,7 @@ install_icons() { rm -f ${buildroot}${prefix}/etc/gtk-3.0/gtkrc echo "[Settings]" > ${buildroot}${prefix}/etc/gtk-3.0/settings.ini - echo "gtk-theme-name=win32" >> ${buildroot}${prefix}/etc/gtk-3.0/settings.ini - - mkdir -p ${buildroot}${prefix}/share/icons - if [ "$?" != 0 ]; then - echo "Can´t create icons folder" - exit -1 - fi - - cp -rv /usr/share/icons ${buildroot}${prefix}/share/icons - if [ "$?" != 0 ]; then - echo "Can´t copy ${1} icons" - exit -1 - fi + 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" @@ -251,18 +239,39 @@ install_icons() { } -install_theme() { - cp -rv /usr/share/icons/${1} ${buildroot}${prefix}/share/icons - if [ "$?" != 0 ]; then - echo "Can´t copy ${1} icons" +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_bin install_locale install_schemas -install_icons -# install_theme "Adwaita" +install_theme "Adwaita" +install_icons "Adwaita" diff --git a/wine-run.sh b/wine-run.sh index 3f1ed15d..d02feabb 100755 --- a/wine-run.sh +++ b/wine-run.sh @@ -1,5 +1,7 @@ #!/bin/bash +rm -fr ${PWD}/.build + make DESTDIR=${PWD}/.build install if [ "$?" != "0" ]; then exit -1 From ab599326bac720ad6bc4cb75695348dc17f68f73 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 27 Mar 2023 00:44:51 -0300 Subject: [PATCH 065/186] Working on win package. --- win/makeruntime.sh.in | 1 + 1 file changed, 1 insertion(+) diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index 485150d6..f6e20bfe 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -28,6 +28,7 @@ # Setup default paths srcdir="$(dirname $(dirname $(readlink -f "${0}")))" prefix="@prefix@" +GDK_LOADERS=$(@PKG_CONFIG@ --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0 | sed -e "s@${prefix}@@g") buildroot=.build bindir="${buildroot}${prefix}/bin" From 0d57dc2431301d503627a55653ebbe8096f819a1 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 27 Mar 2023 08:19:32 -0300 Subject: [PATCH 066/186] Working on windows package. --- win/makeruntime.sh.in | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index f6e20bfe..f9500989 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -28,7 +28,9 @@ # Setup default paths srcdir="$(dirname $(dirname $(readlink -f "${0}")))" prefix="@prefix@" -GDK_LOADERS=$(@PKG_CONFIG@ --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0 | sed -e "s@${prefix}@@g") +GDK_LOADERS=$(@PKG_CONFIG@ --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0) +GTK_BINARY_VERSION=$(@PKG_CONFIG@ --variable=gtk_binary_version gtk+-3.0) +GTK_LIBDIR=$(@PKG_CONFIG@ --variable=libdir gtk+-3.0) buildroot=.build bindir="${buildroot}${prefix}/bin" @@ -269,6 +271,19 @@ install_icons() { } +install_loaders() { + + if [ -d "${GDK_LOADERS}" ]; then + mkdir -p "${buildroot}/${GDK_LOADERS}" + cp -rv "${GDK_LOADERS}/*" "${buildroot}/${GDK_LOADERS}" + if [ "$?" != "0" ]; then + exit -1 + fi + fi + +} + +install_loaders install_bin install_locale install_schemas From 105cb020dfe8312b2903b30fae5d918fe7d30a5b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 27 Mar 2023 21:14:04 -0300 Subject: [PATCH 067/186] Debugging windows package builder. --- locale/pt_BR.po | 376 +++--- locale/pw3270.pot | 2394 +++++++++++++++++++-------------------- msys-run.sh | 24 + src/include/config.h.in | 10 +- win/makeruntime.sh.in | 14 +- 5 files changed, 1422 insertions(+), 1396 deletions(-) create mode 100644 msys-run.sh diff --git a/locale/pt_BR.po b/locale/pt_BR.po index e22dd797..2c8e0345 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-25 08:48-0300\n" +"POT-Creation-Date: 2023-03-26 23:53-0300\n" "PO-Revision-Date: 2023-01-31 11:14-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" @@ -57,9 +57,9 @@ msgstr "" "Alterações na posição da barra de ferramentas só tem efeito apos " "reinício da aplicação" -#: src/objects/application/actions/about.c:217 ui/windows.ui.xml:40 -#: ui/windows.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 -#: ui/linux.ui.xml:40 ui/linux.ui.xml:553 +#: src/objects/application/actions/about.c:217 ui/linux.ui.xml:40 +#: ui/linux.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 +#: ui/windows.ui.xml:40 ui/windows.ui.xml:553 msgid "About PW3270" msgstr "Sobre o PW3270" @@ -71,18 +71,18 @@ msgstr "Nome da ação" msgid "Action Names" msgstr "Nome das ações" -#: ui/windows.ui.xml:525 ui/windows.ui.xml:917 ui/windows.ui.xml:1032 -#: ui/macos.ui.xml:525 ui/macos.ui.xml:917 ui/macos.ui.xml:1032 #: ui/linux.ui.xml:525 ui/linux.ui.xml:917 ui/linux.ui.xml:1032 +#: ui/macos.ui.xml:525 ui/macos.ui.xml:917 ui/macos.ui.xml:1032 +#: ui/windows.ui.xml:525 ui/windows.ui.xml:917 ui/windows.ui.xml:1032 msgid "Alert sound" msgstr "Aviso sonoro" -#: src/main/tools.c:79 +#: src/main/tools.c:68 msgid "All files" msgstr "Todos os arquivos" -#: ui/windows.ui.xml:252 ui/windows.ui.xml:691 ui/macos.ui.xml:252 -#: ui/macos.ui.xml:691 ui/linux.ui.xml:252 ui/linux.ui.xml:691 +#: ui/linux.ui.xml:252 ui/linux.ui.xml:691 ui/macos.ui.xml:252 +#: ui/macos.ui.xml:691 ui/windows.ui.xml:252 ui/windows.ui.xml:691 msgid "Append to copy" msgstr "Adicionar à cópia" @@ -90,8 +90,8 @@ msgstr "Adicionar à cópia" msgid "Apple version" msgstr "Versão Apple" -#: ui/windows.ui.xml:385 ui/windows.ui.xml:665 ui/macos.ui.xml:385 -#: ui/macos.ui.xml:665 ui/linux.ui.xml:385 ui/linux.ui.xml:665 +#: ui/linux.ui.xml:385 ui/linux.ui.xml:665 ui/macos.ui.xml:385 +#: ui/macos.ui.xml:665 ui/windows.ui.xml:385 ui/windows.ui.xml:665 msgid "Application" msgstr "Aplicação" @@ -99,8 +99,8 @@ msgstr "Aplicação" msgid "Application menu" msgstr "Menu da aplicação" -#: src/objects/application/actions/preferences.c:76 ui/windows.ui.xml:84 -#: ui/macos.ui.xml:84 ui/linux.ui.xml:84 +#: src/objects/application/actions/preferences.c:76 ui/linux.ui.xml:84 +#: ui/macos.ui.xml:84 ui/windows.ui.xml:84 msgid "Application preferences" msgstr "Preferências da aplicação" @@ -108,7 +108,7 @@ msgstr "Preferências da aplicação" msgid "Apply" msgstr "Aplicar" -#: ui/windows.ui.xml:500 ui/macos.ui.xml:500 ui/linux.ui.xml:500 +#: ui/linux.ui.xml:500 ui/macos.ui.xml:500 ui/windows.ui.xml:500 msgid "Auto-Reconnect" msgstr "Reconectar automaticamente" @@ -120,16 +120,16 @@ msgstr "Disponível" msgid "Based on X3270 from" msgstr "Baseado no X3270 por" -#: ui/windows.ui.xml:490 ui/windows.ui.xml:946 ui/macos.ui.xml:490 -#: ui/macos.ui.xml:946 ui/linux.ui.xml:490 ui/linux.ui.xml:946 +#: ui/linux.ui.xml:490 ui/linux.ui.xml:946 ui/macos.ui.xml:490 +#: ui/macos.ui.xml:946 ui/windows.ui.xml:490 ui/windows.ui.xml:946 msgid "Blank Fill" msgstr "Completar com espaços" -#: ui/windows.ui.xml:455 ui/macos.ui.xml:455 ui/linux.ui.xml:455 +#: ui/linux.ui.xml:455 ui/macos.ui.xml:455 ui/windows.ui.xml:455 msgid "Blinking Cursor" msgstr "Cursor piscante" -#: ui/windows.ui.xml:505 ui/macos.ui.xml:505 ui/linux.ui.xml:505 +#: ui/linux.ui.xml:505 ui/macos.ui.xml:505 ui/windows.ui.xml:505 msgid "Bold" msgstr "Negrito" @@ -171,20 +171,20 @@ msgstr "Modificar posição dos ícones da barra de título" msgid "Change the preferences for the active session" msgstr "Modificar preferências da sessão ativa" -#: ui/windows.ui.xml:305 ui/windows.ui.xml:725 ui/windows.ui.xml:867 -#: ui/macos.ui.xml:305 ui/macos.ui.xml:725 ui/macos.ui.xml:867 #: ui/linux.ui.xml:305 ui/linux.ui.xml:725 ui/linux.ui.xml:867 +#: ui/macos.ui.xml:305 ui/macos.ui.xml:725 ui/macos.ui.xml:867 +#: ui/windows.ui.xml:305 ui/windows.ui.xml:725 ui/windows.ui.xml:867 msgid "Clear" msgstr "Limpar" -#: ui/windows.ui.xml:400 ui/macos.ui.xml:400 ui/linux.ui.xml:400 +#: ui/linux.ui.xml:400 ui/macos.ui.xml:400 ui/windows.ui.xml:400 msgid "Clipboard" msgstr "Área de transferência" -#: ui/windows.ui.xml:150 ui/windows.ui.xml:187 ui/windows.ui.xml:617 -#: ui/windows.ui.xml:654 ui/macos.ui.xml:150 ui/macos.ui.xml:187 -#: ui/macos.ui.xml:617 ui/macos.ui.xml:654 ui/linux.ui.xml:150 -#: ui/linux.ui.xml:187 ui/linux.ui.xml:617 ui/linux.ui.xml:654 +#: ui/linux.ui.xml:150 ui/linux.ui.xml:187 ui/linux.ui.xml:617 +#: ui/linux.ui.xml:654 ui/macos.ui.xml:150 ui/macos.ui.xml:187 +#: ui/macos.ui.xml:617 ui/macos.ui.xml:654 ui/windows.ui.xml:150 +#: ui/windows.ui.xml:187 ui/windows.ui.xml:617 ui/windows.ui.xml:654 msgid "Clipboard contents" msgstr "Conteúdo da área de transferência" @@ -196,11 +196,11 @@ msgstr "Fecha todas as janelas e encerra a aplicação" msgid "Close the window" msgstr "Fechar a janela" -#: src/objects/window/actions/close.c:51 ui/windows.ui.xml:217 -#: ui/windows.ui.xml:813 ui/windows.ui.xml:1011 ui/windows.ui.xml:1118 +#: src/objects/window/actions/close.c:51 ui/linux.ui.xml:217 +#: ui/linux.ui.xml:813 ui/linux.ui.xml:1011 ui/linux.ui.xml:1118 #: ui/macos.ui.xml:217 ui/macos.ui.xml:813 ui/macos.ui.xml:1011 -#: ui/macos.ui.xml:1118 ui/linux.ui.xml:217 ui/linux.ui.xml:813 -#: ui/linux.ui.xml:1011 ui/linux.ui.xml:1118 +#: ui/macos.ui.xml:1118 ui/windows.ui.xml:217 ui/windows.ui.xml:813 +#: ui/windows.ui.xml:1011 ui/windows.ui.xml:1118 msgid "Close window" msgstr "Fechar janela" @@ -212,7 +212,7 @@ msgstr "Comentário" msgid "Connect" msgstr "Conectar" -#: ui/windows.ui.xml:450 ui/macos.ui.xml:450 ui/linux.ui.xml:450 +#: ui/linux.ui.xml:450 ui/macos.ui.xml:450 ui/windows.ui.xml:450 msgid "Connect on startup" msgstr "Conectar ao iniciar" @@ -220,7 +220,7 @@ msgstr "Conectar ao iniciar" msgid "Connect to host" msgstr "Conectar ao servidor" -#: src/objects/window/window.c:778 src/objects/window/page.c:218 +#: src/objects/window/page.c:218 src/objects/window/window.c:778 msgid "Connected to host" msgstr "Conectado no servidor" @@ -228,26 +228,26 @@ msgstr "Conectado no servidor" msgid "Contributors" msgstr "Contribuidores" -#: ui/windows.ui.xml:237 ui/windows.ui.xml:686 ui/macos.ui.xml:237 -#: ui/macos.ui.xml:686 ui/linux.ui.xml:237 ui/linux.ui.xml:686 +#: ui/linux.ui.xml:237 ui/linux.ui.xml:686 ui/macos.ui.xml:237 +#: ui/macos.ui.xml:686 ui/windows.ui.xml:237 ui/windows.ui.xml:686 msgid "Copy" msgstr "Copiar" -#: ui/windows.ui.xml:706 ui/macos.ui.xml:706 ui/linux.ui.xml:706 +#: ui/linux.ui.xml:706 ui/macos.ui.xml:706 ui/windows.ui.xml:706 msgid "Copy as HTML" msgstr "Copiar como HTML" -#: ui/windows.ui.xml:711 ui/macos.ui.xml:711 ui/linux.ui.xml:711 +#: ui/linux.ui.xml:711 ui/macos.ui.xml:711 ui/windows.ui.xml:711 msgid "Copy as image" msgstr "Copiar como imagem" -#: ui/windows.ui.xml:247 ui/windows.ui.xml:701 ui/macos.ui.xml:247 -#: ui/macos.ui.xml:701 ui/linux.ui.xml:247 ui/linux.ui.xml:701 +#: ui/linux.ui.xml:247 ui/linux.ui.xml:701 ui/macos.ui.xml:247 +#: ui/macos.ui.xml:701 ui/windows.ui.xml:247 ui/windows.ui.xml:701 msgid "Copy as table" msgstr "Copiar como tabela" -#: ui/windows.ui.xml:242 ui/windows.ui.xml:696 ui/macos.ui.xml:242 -#: ui/macos.ui.xml:696 ui/linux.ui.xml:242 ui/linux.ui.xml:696 +#: ui/linux.ui.xml:242 ui/linux.ui.xml:696 ui/macos.ui.xml:242 +#: ui/macos.ui.xml:696 ui/windows.ui.xml:242 ui/windows.ui.xml:696 msgid "Copy as text" msgstr "Copiar como texto" @@ -261,33 +261,33 @@ msgstr "Copyright © 2008 Banco do Brasil S.A." msgid "Create shortcut for the current session" msgstr "Criar atalho para a sessão atual." -#: ui/windows.ui.xml:475 ui/windows.ui.xml:902 ui/macos.ui.xml:475 -#: ui/macos.ui.xml:902 ui/linux.ui.xml:475 ui/linux.ui.xml:902 +#: ui/linux.ui.xml:475 ui/linux.ui.xml:902 ui/macos.ui.xml:475 +#: ui/macos.ui.xml:902 ui/windows.ui.xml:475 ui/windows.ui.xml:902 msgid "Cross hair cursor" msgstr "Cursor mira" -#: ui/windows.ui.xml:177 ui/windows.ui.xml:644 ui/macos.ui.xml:177 -#: ui/macos.ui.xml:644 ui/linux.ui.xml:177 ui/linux.ui.xml:644 +#: ui/linux.ui.xml:177 ui/linux.ui.xml:644 ui/macos.ui.xml:177 +#: ui/macos.ui.xml:644 ui/windows.ui.xml:177 ui/windows.ui.xml:644 msgid "Current Screen" msgstr "Tela atual" -#: ui/windows.ui.xml:140 ui/windows.ui.xml:607 ui/macos.ui.xml:140 -#: ui/macos.ui.xml:607 ui/linux.ui.xml:140 ui/linux.ui.xml:607 +#: ui/linux.ui.xml:140 ui/linux.ui.xml:607 ui/macos.ui.xml:140 +#: ui/macos.ui.xml:607 ui/windows.ui.xml:140 ui/windows.ui.xml:607 msgid "Current screen" msgstr "Tela atual" -#: ui/windows.ui.xml:670 ui/macos.ui.xml:670 ui/linux.ui.xml:670 +#: ui/linux.ui.xml:670 ui/macos.ui.xml:670 ui/windows.ui.xml:670 msgid "Current session" msgstr "Sessão atual" -#: ui/windows.ui.xml:257 ui/windows.ui.xml:716 ui/macos.ui.xml:257 -#: ui/macos.ui.xml:716 ui/linux.ui.xml:257 ui/linux.ui.xml:716 +#: ui/linux.ui.xml:257 ui/linux.ui.xml:716 ui/macos.ui.xml:257 +#: ui/macos.ui.xml:716 ui/windows.ui.xml:257 ui/windows.ui.xml:716 msgid "Cut" msgstr "Recortar" -#: ui/windows.ui.xml:315 ui/windows.ui.xml:735 ui/windows.ui.xml:877 -#: ui/macos.ui.xml:315 ui/macos.ui.xml:735 ui/macos.ui.xml:877 #: ui/linux.ui.xml:315 ui/linux.ui.xml:735 ui/linux.ui.xml:877 +#: ui/macos.ui.xml:315 ui/macos.ui.xml:735 ui/macos.ui.xml:877 +#: ui/windows.ui.xml:315 ui/windows.ui.xml:735 ui/windows.ui.xml:877 msgid "Delete Field" msgstr "Apagar campo" @@ -295,19 +295,19 @@ msgstr "Apagar campo" msgid "Description" msgstr "Descrição" -#: ui/windows.ui.xml:808 ui/windows.ui.xml:1006 ui/macos.ui.xml:808 -#: ui/macos.ui.xml:1006 ui/linux.ui.xml:808 ui/linux.ui.xml:1006 +#: ui/linux.ui.xml:808 ui/linux.ui.xml:1006 ui/macos.ui.xml:808 +#: ui/macos.ui.xml:1006 ui/windows.ui.xml:808 ui/windows.ui.xml:1006 msgid "Disconnect" msgstr "Desconectar" -#: src/objects/window/window.c:778 src/objects/window/window.c:805 -#: src/objects/window/page.c:207 +#: src/objects/window/page.c:207 src/objects/window/window.c:778 +#: src/objects/window/window.c:805 msgid "Disconnected from host" msgstr "Desconectado do servidor" -#: ui/windows.ui.xml:540 ui/windows.ui.xml:929 ui/windows.ui.xml:1045 -#: ui/macos.ui.xml:540 ui/macos.ui.xml:929 ui/macos.ui.xml:1045 #: ui/linux.ui.xml:540 ui/linux.ui.xml:929 ui/linux.ui.xml:1045 +#: ui/macos.ui.xml:540 ui/macos.ui.xml:929 ui/macos.ui.xml:1045 +#: ui/windows.ui.xml:540 ui/windows.ui.xml:929 ui/windows.ui.xml:1045 msgid "Dynamic font spacing" msgstr "Espaçamento dinâmico" @@ -335,21 +335,21 @@ msgstr "Habilitado" msgid "End" msgstr "Final" -#: ui/windows.ui.xml:310 ui/windows.ui.xml:730 ui/windows.ui.xml:872 -#: ui/macos.ui.xml:310 ui/macos.ui.xml:730 ui/macos.ui.xml:872 #: ui/linux.ui.xml:310 ui/linux.ui.xml:730 ui/linux.ui.xml:872 +#: ui/macos.ui.xml:310 ui/macos.ui.xml:730 ui/macos.ui.xml:872 +#: ui/windows.ui.xml:310 ui/windows.ui.xml:730 ui/windows.ui.xml:872 msgid "Erase input" msgstr "Apagar campos" -#: ui/windows.ui.xml:320 ui/windows.ui.xml:740 ui/windows.ui.xml:882 -#: ui/macos.ui.xml:320 ui/macos.ui.xml:740 ui/macos.ui.xml:882 #: ui/linux.ui.xml:320 ui/linux.ui.xml:740 ui/linux.ui.xml:882 +#: ui/macos.ui.xml:320 ui/macos.ui.xml:740 ui/macos.ui.xml:882 +#: ui/windows.ui.xml:320 ui/windows.ui.xml:740 ui/windows.ui.xml:882 msgid "Erase to end of field" msgstr "Apagar até o final do campo" -#: ui/windows.ui.xml:325 ui/windows.ui.xml:745 ui/windows.ui.xml:887 -#: ui/macos.ui.xml:325 ui/macos.ui.xml:745 ui/macos.ui.xml:887 #: ui/linux.ui.xml:325 ui/linux.ui.xml:745 ui/linux.ui.xml:887 +#: ui/macos.ui.xml:325 ui/macos.ui.xml:745 ui/macos.ui.xml:887 +#: ui/windows.ui.xml:325 ui/windows.ui.xml:745 ui/windows.ui.xml:887 msgid "Erase to end of line" msgstr "Apagar até o final da linha" @@ -357,7 +357,7 @@ msgstr "Apagar até o final da linha" msgid "Error starting session" msgstr "Erro iniciando sessão" -#: ui/windows.ui.xml:353 ui/macos.ui.xml:353 ui/linux.ui.xml:353 +#: ui/linux.ui.xml:353 ui/macos.ui.xml:353 ui/windows.ui.xml:353 msgid "Field attributes" msgstr "Atributos de campo" @@ -365,13 +365,13 @@ msgstr "Atributos de campo" msgid "File for session preferences" msgstr "Arquivo para preferências da sessão" -#: ui/windows.ui.xml:470 ui/macos.ui.xml:470 ui/linux.ui.xml:470 +#: ui/linux.ui.xml:470 ui/macos.ui.xml:470 ui/windows.ui.xml:470 msgid "Full Screen" msgstr "Tela cheia" -#: ui/windows.ui.xml:779 ui/windows.ui.xml:955 ui/windows.ui.xml:1050 -#: ui/macos.ui.xml:779 ui/macos.ui.xml:955 ui/macos.ui.xml:1050 #: ui/linux.ui.xml:779 ui/linux.ui.xml:955 ui/linux.ui.xml:1050 +#: ui/macos.ui.xml:779 ui/macos.ui.xml:955 ui/macos.ui.xml:1050 +#: ui/windows.ui.xml:779 ui/windows.ui.xml:955 ui/windows.ui.xml:1050 msgid "Full screen" msgstr "Tela cheia" @@ -379,12 +379,12 @@ msgstr "Tela cheia" msgid "Generic name" msgstr "Nome genérico" -#: ui/windows.ui.xml:37 ui/windows.ui.xml:550 ui/macos.ui.xml:37 -#: ui/macos.ui.xml:550 ui/linux.ui.xml:37 ui/linux.ui.xml:550 +#: ui/linux.ui.xml:37 ui/linux.ui.xml:550 ui/macos.ui.xml:37 +#: ui/macos.ui.xml:550 ui/windows.ui.xml:37 ui/windows.ui.xml:550 msgid "Help" msgstr "Ajuda" -#: ui/windows.ui.xml:390 ui/macos.ui.xml:390 ui/linux.ui.xml:390 +#: ui/linux.ui.xml:390 ui/macos.ui.xml:390 ui/windows.ui.xml:390 msgid "Host and Emulation settings" msgstr "Configuração de servidor e emulação" @@ -430,7 +430,7 @@ msgstr "Apenas ícones" msgid "If the action can be activated" msgstr "Se a ação pode ser ativada" -#: ui/windows.ui.xml:1022 ui/macos.ui.xml:1022 ui/linux.ui.xml:1022 +#: ui/linux.ui.xml:1022 ui/macos.ui.xml:1022 ui/windows.ui.xml:1022 msgid "Insert" msgstr "Inserção" @@ -450,11 +450,11 @@ msgstr "Itens empacotados do início para o final" msgid "Itens" msgstr "Itens" -#: ui/windows.ui.xml:515 ui/macos.ui.xml:515 ui/linux.ui.xml:515 +#: ui/linux.ui.xml:515 ui/macos.ui.xml:515 ui/windows.ui.xml:515 msgid "Keep selected" msgstr "Manter selecionado" -#: ui/windows.ui.xml:395 ui/macos.ui.xml:395 ui/linux.ui.xml:395 +#: ui/linux.ui.xml:395 ui/macos.ui.xml:395 ui/windows.ui.xml:395 msgid "Keyboard accelerators" msgstr "Atalhos de teclado" @@ -502,15 +502,15 @@ msgstr "Lista de ações disponíveis ainda não empacotadas" msgid "Log name" msgstr "Nome do arquivo de log" -#: ui/windows.ui.xml:72 ui/macos.ui.xml:72 ui/linux.ui.xml:72 +#: ui/linux.ui.xml:72 ui/macos.ui.xml:72 ui/windows.ui.xml:72 msgid "Main Menu" msgstr "Menu principal" -#: ui/windows.ui.xml:67 ui/macos.ui.xml:67 ui/linux.ui.xml:67 +#: ui/linux.ui.xml:67 ui/macos.ui.xml:67 ui/windows.ui.xml:67 msgid "Main Toolbar" msgstr "Barra de ferramentas" -#: ui/windows.ui.xml:1093 ui/macos.ui.xml:1093 ui/linux.ui.xml:1093 +#: ui/linux.ui.xml:1093 ui/macos.ui.xml:1093 ui/windows.ui.xml:1093 msgid "Main menu" msgstr "Menu principal" @@ -518,36 +518,36 @@ msgstr "Menu principal" msgid "Maintainers" msgstr "Mantenedores" -#: ui/windows.ui.xml:348 ui/macos.ui.xml:348 ui/linux.ui.xml:348 +#: ui/linux.ui.xml:348 ui/macos.ui.xml:348 ui/windows.ui.xml:348 msgid "Menu" msgstr "Menu" -#: ui/windows.ui.xml:419 ui/windows.ui.xml:1059 ui/macos.ui.xml:419 -#: ui/macos.ui.xml:1059 ui/linux.ui.xml:419 ui/linux.ui.xml:1059 +#: ui/linux.ui.xml:419 ui/linux.ui.xml:1059 ui/macos.ui.xml:419 +#: ui/macos.ui.xml:1059 ui/windows.ui.xml:419 ui/windows.ui.xml:1059 msgid "Model 2 - 80x24" msgstr "Modelo 2 - 80x24" -#: ui/windows.ui.xml:424 ui/windows.ui.xml:1064 ui/macos.ui.xml:424 -#: ui/macos.ui.xml:1064 ui/linux.ui.xml:424 ui/linux.ui.xml:1064 +#: ui/linux.ui.xml:424 ui/linux.ui.xml:1064 ui/macos.ui.xml:424 +#: ui/macos.ui.xml:1064 ui/windows.ui.xml:424 ui/windows.ui.xml:1064 msgid "Model 3 - 80x32" msgstr "Modelo 3 - 80x32" -#: ui/windows.ui.xml:429 ui/windows.ui.xml:1069 ui/macos.ui.xml:429 -#: ui/macos.ui.xml:1069 ui/linux.ui.xml:429 ui/linux.ui.xml:1069 +#: ui/linux.ui.xml:429 ui/linux.ui.xml:1069 ui/macos.ui.xml:429 +#: ui/macos.ui.xml:1069 ui/windows.ui.xml:429 ui/windows.ui.xml:1069 msgid "Model 4 - 80x43" msgstr "Modelo 4 - 80x43" -#: ui/windows.ui.xml:434 ui/windows.ui.xml:1074 ui/macos.ui.xml:434 -#: ui/macos.ui.xml:1074 ui/linux.ui.xml:434 ui/linux.ui.xml:1074 +#: ui/linux.ui.xml:434 ui/linux.ui.xml:1074 ui/macos.ui.xml:434 +#: ui/macos.ui.xml:1074 ui/windows.ui.xml:434 ui/windows.ui.xml:1074 msgid "Model 5 - 132x27" msgstr "Modelo 5 - 132x27" -#: ui/windows.ui.xml:460 ui/windows.ui.xml:924 ui/macos.ui.xml:460 -#: ui/macos.ui.xml:924 ui/linux.ui.xml:460 ui/linux.ui.xml:924 +#: ui/linux.ui.xml:460 ui/linux.ui.xml:924 ui/macos.ui.xml:460 +#: ui/macos.ui.xml:924 ui/windows.ui.xml:460 ui/windows.ui.xml:924 msgid "Monocase" msgstr "Só Maiúsculas" -#: ui/windows.ui.xml:535 ui/macos.ui.xml:535 ui/linux.ui.xml:535 +#: ui/linux.ui.xml:535 ui/macos.ui.xml:535 ui/windows.ui.xml:535 msgid "Network keep alive" msgstr "Network keep alive" @@ -575,11 +575,11 @@ msgstr "Nova janela com sessão padrão" msgid "Open Session" msgstr "Abrir sessão" -#: ui/windows.ui.xml:56 ui/macos.ui.xml:56 ui/linux.ui.xml:56 +#: ui/linux.ui.xml:56 ui/macos.ui.xml:56 ui/windows.ui.xml:56 msgid "Open in New Tab" msgstr "Abrir em nova aba" -#: ui/windows.ui.xml:51 ui/macos.ui.xml:51 ui/linux.ui.xml:51 +#: ui/linux.ui.xml:51 ui/macos.ui.xml:51 ui/windows.ui.xml:51 msgid "Open in New Window" msgstr "Abrir em nova janela" @@ -607,10 +607,10 @@ msgstr "Abrir sessão em nova janela" msgid "Open session on the active terminal" msgstr "Abrir sessão no terminal ativo" -#: ui/windows.ui.xml:447 ui/windows.ui.xml:755 ui/windows.ui.xml:897 -#: ui/windows.ui.xml:1042 ui/macos.ui.xml:447 ui/macos.ui.xml:755 -#: ui/macos.ui.xml:897 ui/macos.ui.xml:1042 ui/linux.ui.xml:447 -#: ui/linux.ui.xml:755 ui/linux.ui.xml:897 ui/linux.ui.xml:1042 +#: ui/linux.ui.xml:447 ui/linux.ui.xml:755 ui/linux.ui.xml:897 +#: ui/linux.ui.xml:1042 ui/macos.ui.xml:447 ui/macos.ui.xml:755 +#: ui/macos.ui.xml:897 ui/macos.ui.xml:1042 ui/windows.ui.xml:447 +#: ui/windows.ui.xml:755 ui/windows.ui.xml:897 ui/windows.ui.xml:1042 msgid "Options" msgstr "Opções" @@ -618,23 +618,23 @@ msgstr "Opções" msgid "Parameter Type" msgstr "Tipo de parâmetro" -#: ui/windows.ui.xml:262 ui/windows.ui.xml:829 ui/macos.ui.xml:262 -#: ui/macos.ui.xml:829 ui/linux.ui.xml:262 ui/linux.ui.xml:829 +#: ui/linux.ui.xml:262 ui/linux.ui.xml:829 ui/macos.ui.xml:262 +#: ui/macos.ui.xml:829 ui/windows.ui.xml:262 ui/windows.ui.xml:829 msgid "Paste from clipboard" msgstr "Colar da área de transferência" -#: ui/windows.ui.xml:272 ui/windows.ui.xml:839 ui/macos.ui.xml:272 -#: ui/macos.ui.xml:839 ui/linux.ui.xml:272 ui/linux.ui.xml:839 +#: ui/linux.ui.xml:272 ui/linux.ui.xml:839 ui/macos.ui.xml:272 +#: ui/macos.ui.xml:839 ui/windows.ui.xml:272 ui/windows.ui.xml:839 msgid "Paste from text file" msgstr "Colar de um arquivo texto" -#: ui/windows.ui.xml:267 ui/windows.ui.xml:834 ui/macos.ui.xml:267 -#: ui/macos.ui.xml:834 ui/linux.ui.xml:267 ui/linux.ui.xml:834 +#: ui/linux.ui.xml:267 ui/linux.ui.xml:834 ui/macos.ui.xml:267 +#: ui/macos.ui.xml:834 ui/windows.ui.xml:267 ui/windows.ui.xml:834 msgid "Paste next" msgstr "Colar próximo" -#: ui/windows.ui.xml:485 ui/windows.ui.xml:941 ui/macos.ui.xml:485 -#: ui/macos.ui.xml:941 ui/linux.ui.xml:485 ui/linux.ui.xml:941 +#: ui/linux.ui.xml:485 ui/linux.ui.xml:941 ui/macos.ui.xml:485 +#: ui/macos.ui.xml:941 ui/windows.ui.xml:485 ui/windows.ui.xml:941 msgid "Paste with left margin" msgstr "Colar com margem esquerda" @@ -647,20 +647,20 @@ msgstr "Caminho para o novo atalho" msgid "Position" msgstr "Posição" -#: ui/windows.ui.xml:662 ui/macos.ui.xml:662 ui/linux.ui.xml:662 +#: ui/linux.ui.xml:662 ui/macos.ui.xml:662 ui/windows.ui.xml:662 msgid "Preferences" msgstr "Preferências" -#: ui/windows.ui.xml:174 ui/windows.ui.xml:641 ui/macos.ui.xml:174 -#: ui/macos.ui.xml:641 ui/linux.ui.xml:174 ui/linux.ui.xml:641 +#: ui/linux.ui.xml:174 ui/linux.ui.xml:641 ui/macos.ui.xml:174 +#: ui/macos.ui.xml:641 ui/windows.ui.xml:174 ui/windows.ui.xml:641 msgid "Print" msgstr "Imprimir" -#: ui/windows.ui.xml:992 ui/macos.ui.xml:992 ui/linux.ui.xml:992 +#: ui/linux.ui.xml:992 ui/macos.ui.xml:992 ui/windows.ui.xml:992 msgid "Print screen" msgstr "Imrpimir o conteúdo da tela" -#: ui/windows.ui.xml:795 ui/macos.ui.xml:795 ui/linux.ui.xml:795 +#: ui/linux.ui.xml:795 ui/macos.ui.xml:795 ui/windows.ui.xml:795 msgid "Print selected" msgstr "Imprimir seleção" @@ -669,8 +669,8 @@ msgstr "Imprimir seleção" msgid "Property \"%s\" is invalid for this object" msgstr "Propriedade \"%s\" é inválida para este objeto" -#: src/objects/application/actions/window.c:64 ui/windows.ui.xml:89 -#: ui/macos.ui.xml:89 ui/linux.ui.xml:89 +#: src/objects/application/actions/window.c:64 ui/linux.ui.xml:89 +#: ui/macos.ui.xml:89 ui/windows.ui.xml:89 msgid "Quit" msgstr "Sair" @@ -678,13 +678,13 @@ msgstr "Sair" msgid "Rename Session" msgstr "Renomear sessão" -#: ui/windows.ui.xml:296 ui/windows.ui.xml:858 ui/macos.ui.xml:296 -#: ui/macos.ui.xml:858 ui/linux.ui.xml:296 ui/linux.ui.xml:858 +#: ui/linux.ui.xml:296 ui/linux.ui.xml:858 ui/macos.ui.xml:296 +#: ui/macos.ui.xml:858 ui/windows.ui.xml:296 ui/windows.ui.xml:858 msgid "Reselect" msgstr "Reselecionar" -#: ui/windows.ui.xml:480 ui/windows.ui.xml:912 ui/macos.ui.xml:480 -#: ui/macos.ui.xml:912 ui/linux.ui.xml:480 ui/linux.ui.xml:912 +#: ui/linux.ui.xml:480 ui/linux.ui.xml:912 ui/macos.ui.xml:480 +#: ui/macos.ui.xml:912 ui/windows.ui.xml:480 ui/windows.ui.xml:912 msgid "Resize on alternate screen" msgstr "Mudar tamanho do terminal em tela alternativa" @@ -692,8 +692,8 @@ msgstr "Mudar tamanho do terminal em tela alternativa" msgid "Right" msgstr "Direita" -#: ui/windows.ui.xml:135 ui/windows.ui.xml:602 ui/macos.ui.xml:135 -#: ui/macos.ui.xml:602 ui/linux.ui.xml:135 ui/linux.ui.xml:602 +#: ui/linux.ui.xml:135 ui/linux.ui.xml:602 ui/macos.ui.xml:135 +#: ui/macos.ui.xml:602 ui/windows.ui.xml:135 ui/windows.ui.xml:602 msgid "Save" msgstr "Salvar" @@ -701,11 +701,11 @@ msgstr "Salvar" msgid "Save current session preferences to file" msgstr "Salvar preferências da sessão para arquivo" -#: ui/windows.ui.xml:987 ui/macos.ui.xml:987 ui/linux.ui.xml:987 +#: ui/linux.ui.xml:987 ui/macos.ui.xml:987 ui/windows.ui.xml:987 msgid "Save screen" msgstr "Salvar tela" -#: ui/windows.ui.xml:790 ui/macos.ui.xml:790 ui/linux.ui.xml:790 +#: ui/linux.ui.xml:790 ui/macos.ui.xml:790 ui/windows.ui.xml:790 msgid "Save selected" msgstr "Salvar seleção" @@ -731,23 +731,23 @@ msgstr "Salvar para arquivo de atalho" msgid "Save to windows shortcut" msgstr "Salvar para atalho windows" -#: ui/windows.ui.xml:416 ui/windows.ui.xml:1056 ui/macos.ui.xml:416 -#: ui/macos.ui.xml:1056 ui/linux.ui.xml:416 ui/linux.ui.xml:1056 +#: ui/linux.ui.xml:416 ui/linux.ui.xml:1056 ui/macos.ui.xml:416 +#: ui/macos.ui.xml:1056 ui/windows.ui.xml:416 ui/windows.ui.xml:1056 msgid "Screen size" msgstr "Tamanho da tela" -#: ui/windows.ui.xml:286 ui/windows.ui.xml:853 ui/macos.ui.xml:286 -#: ui/macos.ui.xml:853 ui/linux.ui.xml:286 ui/linux.ui.xml:853 +#: ui/linux.ui.xml:286 ui/linux.ui.xml:853 ui/macos.ui.xml:286 +#: ui/macos.ui.xml:853 ui/windows.ui.xml:286 ui/windows.ui.xml:853 msgid "Select Field" msgstr "Selecionar campo" -#: ui/windows.ui.xml:281 ui/windows.ui.xml:848 ui/macos.ui.xml:281 -#: ui/macos.ui.xml:848 ui/linux.ui.xml:281 ui/linux.ui.xml:848 +#: ui/linux.ui.xml:281 ui/linux.ui.xml:848 ui/macos.ui.xml:281 +#: ui/macos.ui.xml:848 ui/windows.ui.xml:281 ui/windows.ui.xml:848 msgid "Select all" msgstr "Selecionar tudo" -#: ui/windows.ui.xml:495 ui/windows.ui.xml:760 ui/macos.ui.xml:495 -#: ui/macos.ui.xml:760 ui/linux.ui.xml:495 ui/linux.ui.xml:760 +#: ui/linux.ui.xml:495 ui/linux.ui.xml:760 ui/macos.ui.xml:495 +#: ui/macos.ui.xml:760 ui/windows.ui.xml:495 ui/windows.ui.xml:760 msgid "Select by rectangles" msgstr "Seleção retangular" @@ -759,10 +759,10 @@ msgstr "Selecione itens da barra de ferramentas" msgid "Selected" msgstr "Selecionado" -#: ui/windows.ui.xml:145 ui/windows.ui.xml:182 ui/windows.ui.xml:612 -#: ui/windows.ui.xml:649 ui/macos.ui.xml:145 ui/macos.ui.xml:182 -#: ui/macos.ui.xml:612 ui/macos.ui.xml:649 ui/linux.ui.xml:145 -#: ui/linux.ui.xml:182 ui/linux.ui.xml:612 ui/linux.ui.xml:649 +#: ui/linux.ui.xml:145 ui/linux.ui.xml:182 ui/linux.ui.xml:612 +#: ui/linux.ui.xml:649 ui/macos.ui.xml:145 ui/macos.ui.xml:182 +#: ui/macos.ui.xml:612 ui/macos.ui.xml:649 ui/windows.ui.xml:145 +#: ui/windows.ui.xml:182 ui/windows.ui.xml:612 ui/windows.ui.xml:649 msgid "Selected area" msgstr "Área selecionada" @@ -770,9 +770,9 @@ msgstr "Área selecionada" msgid "Send/Receive" msgstr "Enviar/Receber" -#: src/objects/window/actions/filetransfer.c:46 ui/windows.ui.xml:196 -#: ui/windows.ui.xml:997 ui/macos.ui.xml:196 ui/macos.ui.xml:997 -#: ui/linux.ui.xml:196 ui/linux.ui.xml:997 +#: src/objects/window/actions/filetransfer.c:46 ui/linux.ui.xml:196 +#: ui/linux.ui.xml:997 ui/macos.ui.xml:196 ui/macos.ui.xml:997 +#: ui/windows.ui.xml:196 ui/windows.ui.xml:997 msgid "Send/Receive files" msgstr "Enviar/Receber arquivos" @@ -780,14 +780,14 @@ msgstr "Enviar/Receber arquivos" msgid "Separator" msgstr "Separador" -#: ui/windows.ui.xml:48 ui/windows.ui.xml:584 ui/macos.ui.xml:48 -#: ui/macos.ui.xml:584 ui/linux.ui.xml:48 ui/linux.ui.xml:584 +#: ui/linux.ui.xml:48 ui/linux.ui.xml:584 ui/macos.ui.xml:48 +#: ui/macos.ui.xml:584 ui/windows.ui.xml:48 ui/windows.ui.xml:584 msgid "Session" msgstr "Sessão" -#: ui/windows.ui.xml:77 ui/windows.ui.xml:978 ui/windows.ui.xml:1098 -#: ui/macos.ui.xml:77 ui/macos.ui.xml:978 ui/macos.ui.xml:1098 #: ui/linux.ui.xml:77 ui/linux.ui.xml:978 ui/linux.ui.xml:1098 +#: ui/macos.ui.xml:77 ui/macos.ui.xml:978 ui/macos.ui.xml:1098 +#: ui/windows.ui.xml:77 ui/windows.ui.xml:978 ui/windows.ui.xml:1098 msgid "Session Trace" msgstr "Trace da sessão" @@ -796,13 +796,13 @@ msgstr "Trace da sessão" msgid "Session file" msgstr "Arquivo de sessão" -#: ui/windows.ui.xml:127 ui/windows.ui.xml:594 ui/macos.ui.xml:127 -#: ui/macos.ui.xml:594 ui/linux.ui.xml:127 ui/linux.ui.xml:594 +#: ui/linux.ui.xml:127 ui/linux.ui.xml:594 ui/macos.ui.xml:127 +#: ui/macos.ui.xml:594 ui/windows.ui.xml:127 ui/windows.ui.xml:594 msgid "Session in New Tab" msgstr "Sessão em nova aba" -#: ui/windows.ui.xml:122 ui/windows.ui.xml:589 ui/macos.ui.xml:122 -#: ui/macos.ui.xml:589 ui/linux.ui.xml:122 ui/linux.ui.xml:589 +#: ui/linux.ui.xml:122 ui/linux.ui.xml:589 ui/macos.ui.xml:122 +#: ui/macos.ui.xml:589 ui/windows.ui.xml:122 ui/windows.ui.xml:589 msgid "Session in new window" msgstr "Sessão em nova janela" @@ -811,10 +811,10 @@ msgstr "Sessão em nova janela" msgid "Session name" msgstr "Nome da sessão" -#: src/objects/window/actions/sessionproperties.c:36 ui/windows.ui.xml:164 -#: ui/windows.ui.xml:631 ui/windows.ui.xml:1112 ui/macos.ui.xml:164 -#: ui/macos.ui.xml:631 ui/macos.ui.xml:1112 ui/linux.ui.xml:164 -#: ui/linux.ui.xml:631 ui/linux.ui.xml:1112 +#: src/objects/window/actions/sessionproperties.c:36 ui/linux.ui.xml:164 +#: ui/linux.ui.xml:631 ui/linux.ui.xml:1112 ui/macos.ui.xml:164 +#: ui/macos.ui.xml:631 ui/macos.ui.xml:1112 ui/windows.ui.xml:164 +#: ui/windows.ui.xml:631 ui/windows.ui.xml:1112 msgid "Session preferences" msgstr "Preferências da sessão" @@ -826,7 +826,7 @@ msgstr "Define o nome do arquivo de log padrão" msgid "Set the user-interface type" msgstr "Define o tipo de interface do usuário" -#: ui/windows.ui.xml:382 ui/macos.ui.xml:382 ui/linux.ui.xml:382 +#: ui/linux.ui.xml:382 ui/macos.ui.xml:382 ui/windows.ui.xml:382 msgid "Settings" msgstr "Configurações" @@ -838,7 +838,7 @@ msgstr "Configura estilo e posição da barra de ferramentas" msgid "Setup title bar" msgstr "Configurar barra de título" -#: src/objects/toolbar/toolbar.c:213 src/objects/toolbar/settings.c:94 +#: src/objects/toolbar/settings.c:94 src/objects/toolbar/toolbar.c:213 msgid "Setup toolbar" msgstr "Configurar barra de ferramentas" @@ -847,8 +847,8 @@ msgstr "Configurar barra de ferramentas" msgid "Shortcut file" msgstr "Arquivo de atalho" -#: ui/windows.ui.xml:159 ui/windows.ui.xml:626 ui/macos.ui.xml:159 -#: ui/macos.ui.xml:626 ui/linux.ui.xml:159 ui/linux.ui.xml:626 +#: ui/linux.ui.xml:159 ui/linux.ui.xml:626 ui/macos.ui.xml:159 +#: ui/macos.ui.xml:626 ui/windows.ui.xml:159 ui/windows.ui.xml:626 msgid "Shortcut for this session" msgstr "Atalho para essa sessão" @@ -856,15 +856,15 @@ msgstr "Atalho para essa sessão" msgid "Shortcut name" msgstr "Nome do atalho" -#: ui/windows.ui.xml:510 ui/macos.ui.xml:510 ui/linux.ui.xml:510 +#: ui/linux.ui.xml:510 ui/macos.ui.xml:510 ui/windows.ui.xml:510 msgid "Show Underline" msgstr "Mostrar sublinhado" -#: ui/windows.ui.xml:774 ui/macos.ui.xml:774 ui/linux.ui.xml:774 +#: ui/linux.ui.xml:774 ui/macos.ui.xml:774 ui/windows.ui.xml:774 msgid "Show menu" msgstr "Mostrar menu" -#: ui/windows.ui.xml:769 ui/macos.ui.xml:769 ui/linux.ui.xml:769 +#: ui/linux.ui.xml:769 ui/macos.ui.xml:769 ui/windows.ui.xml:769 msgid "Show toolbar" msgstr "Mostrar barra de ferramentas" @@ -872,8 +872,8 @@ msgstr "Mostrar barra de ferramentas" msgid "Small" msgstr "Pequeno" -#: ui/windows.ui.xml:520 ui/windows.ui.xml:936 ui/macos.ui.xml:520 -#: ui/macos.ui.xml:936 ui/linux.ui.xml:520 ui/linux.ui.xml:936 +#: ui/linux.ui.xml:520 ui/linux.ui.xml:936 ui/macos.ui.xml:520 +#: ui/macos.ui.xml:936 ui/windows.ui.xml:520 ui/windows.ui.xml:936 msgid "Smart paste" msgstr "Colar inteligente" @@ -906,7 +906,7 @@ msgstr "Simbólico" msgid "System default" msgstr "Padrão do sistema" -#: src/main/tools.c:75 +#: src/main/tools.c:64 msgid "TN3270 Session Files" msgstr "Arquivos de sessão TN3270" @@ -914,16 +914,16 @@ msgstr "Arquivos de sessão TN3270" msgid "TN3270 Session description" msgstr "Descrição de sessão TN3270" -#: ui/windows.ui.xml:111 ui/windows.ui.xml:573 ui/macos.ui.xml:111 -#: ui/macos.ui.xml:573 ui/linux.ui.xml:111 ui/linux.ui.xml:573 +#: ui/linux.ui.xml:111 ui/linux.ui.xml:573 ui/macos.ui.xml:111 +#: ui/macos.ui.xml:573 ui/windows.ui.xml:111 ui/windows.ui.xml:573 msgid "Tab with default session" msgstr "Aba com a sessão padrão" -#: ui/windows.ui.xml:405 ui/macos.ui.xml:405 ui/linux.ui.xml:405 +#: ui/linux.ui.xml:405 ui/macos.ui.xml:405 ui/windows.ui.xml:405 msgid "Terminal colors" msgstr "Cores do terminal" -#: ui/windows.ui.xml:442 ui/macos.ui.xml:442 ui/linux.ui.xml:442 +#: ui/linux.ui.xml:442 ui/macos.ui.xml:442 ui/windows.ui.xml:442 msgid "Terminal font" msgstr "Fonte do terminal" @@ -931,7 +931,7 @@ msgstr "Fonte do terminal" msgid "Text only" msgstr "Apenas texto" -#: src/objects/keypad/model.c:104 src/objects/keypad/element.c:106 +#: src/objects/keypad/element.c:106 src/objects/keypad/model.c:104 msgid "The Label of the keypad" msgstr "A etiqueta do painel" @@ -1043,10 +1043,10 @@ msgstr "Barra de título" msgid "Title bar actions" msgstr "Ações da barra de título" -#: src/objects/toolbar/settings.c:93 ui/windows.ui.xml:343 -#: ui/windows.ui.xml:968 ui/windows.ui.xml:1088 ui/macos.ui.xml:343 -#: ui/macos.ui.xml:968 ui/macos.ui.xml:1088 ui/linux.ui.xml:343 -#: ui/linux.ui.xml:968 ui/linux.ui.xml:1088 +#: src/objects/toolbar/settings.c:93 ui/linux.ui.xml:343 ui/linux.ui.xml:968 +#: ui/linux.ui.xml:1088 ui/macos.ui.xml:343 ui/macos.ui.xml:968 +#: ui/macos.ui.xml:1088 ui/windows.ui.xml:343 ui/windows.ui.xml:968 +#: ui/windows.ui.xml:1088 msgid "Toolbar" msgstr "Barra de ferramentas" @@ -1066,16 +1066,16 @@ msgstr "Est_ilo da barra de ferramentas" msgid "Top (system default)" msgstr "Em cima (padrão do sistema)" -#: ui/windows.ui.xml:973 ui/macos.ui.xml:973 ui/linux.ui.xml:973 +#: ui/linux.ui.xml:973 ui/macos.ui.xml:973 ui/windows.ui.xml:973 msgid "Top menu" msgstr "Menu principal" -#: ui/windows.ui.xml:338 ui/macos.ui.xml:338 ui/linux.ui.xml:338 +#: ui/linux.ui.xml:338 ui/macos.ui.xml:338 ui/windows.ui.xml:338 msgid "Trace" msgstr "Trace" -#: ui/windows.ui.xml:465 ui/windows.ui.xml:1027 ui/macos.ui.xml:465 -#: ui/macos.ui.xml:1027 ui/linux.ui.xml:465 ui/linux.ui.xml:1027 +#: ui/linux.ui.xml:465 ui/linux.ui.xml:1027 ui/macos.ui.xml:465 +#: ui/macos.ui.xml:1027 ui/windows.ui.xml:465 ui/windows.ui.xml:1027 msgid "Track Cursor" msgstr "Mostrar posição do cursor" @@ -1088,8 +1088,8 @@ msgstr "Interface de usuário" msgid "Unable to load session preferences from '%s'" msgstr "Incapaz de ler preferências de sessa de '%s'" -#: ui/windows.ui.xml:291 ui/windows.ui.xml:800 ui/macos.ui.xml:291 -#: ui/macos.ui.xml:800 ui/linux.ui.xml:291 ui/linux.ui.xml:800 +#: ui/linux.ui.xml:291 ui/linux.ui.xml:800 ui/macos.ui.xml:291 +#: ui/macos.ui.xml:800 ui/windows.ui.xml:291 ui/windows.ui.xml:800 msgid "Unselect" msgstr "Remover seleção" @@ -1098,8 +1098,8 @@ msgstr "Remover seleção" msgid "Unstable version %s-%s" msgstr "Versão instável %s-%s" -#: ui/windows.ui.xml:530 ui/windows.ui.xml:907 ui/macos.ui.xml:530 -#: ui/macos.ui.xml:907 ui/linux.ui.xml:530 ui/linux.ui.xml:907 +#: ui/linux.ui.xml:530 ui/linux.ui.xml:907 ui/macos.ui.xml:530 +#: ui/macos.ui.xml:907 ui/windows.ui.xml:530 ui/windows.ui.xml:907 msgid "Use +/- for field navigation" msgstr "Usar teclas +/- para navegar por campos" @@ -1108,10 +1108,10 @@ msgstr "Usar teclas +/- para navegar por campos" msgid "Version %s-%s" msgstr "Versão %s-%s" -#: src/objects/window/header.c:63 ui/windows.ui.xml:64 ui/windows.ui.xml:965 -#: ui/windows.ui.xml:1085 ui/macos.ui.xml:64 ui/macos.ui.xml:965 -#: ui/macos.ui.xml:1085 ui/linux.ui.xml:64 ui/linux.ui.xml:965 -#: ui/linux.ui.xml:1085 +#: src/objects/window/header.c:63 ui/linux.ui.xml:64 ui/linux.ui.xml:965 +#: ui/linux.ui.xml:1085 ui/macos.ui.xml:64 ui/macos.ui.xml:965 +#: ui/macos.ui.xml:1085 ui/windows.ui.xml:64 ui/windows.ui.xml:965 +#: ui/windows.ui.xml:1085 msgid "View" msgstr "Exibir" @@ -1119,8 +1119,8 @@ msgstr "Exibir" msgid "View this project on github" msgstr "Visite-nos no github" -#: ui/windows.ui.xml:106 ui/windows.ui.xml:568 ui/macos.ui.xml:106 -#: ui/macos.ui.xml:568 ui/linux.ui.xml:106 ui/linux.ui.xml:568 +#: ui/linux.ui.xml:106 ui/linux.ui.xml:568 ui/macos.ui.xml:106 +#: ui/macos.ui.xml:568 ui/windows.ui.xml:106 ui/windows.ui.xml:568 msgid "Window with default session" msgstr "Janela com sessão padrão" @@ -1142,36 +1142,36 @@ msgstr "_Cancelar" msgid "_Close session" msgstr "_Fechar sessão" -#: ui/windows.ui.xml:369 ui/windows.ui.xml:1107 ui/macos.ui.xml:369 -#: ui/macos.ui.xml:1107 ui/linux.ui.xml:369 ui/linux.ui.xml:1107 +#: ui/linux.ui.xml:369 ui/linux.ui.xml:1107 ui/macos.ui.xml:369 +#: ui/macos.ui.xml:1107 ui/windows.ui.xml:369 ui/windows.ui.xml:1107 msgid "_Connect" msgstr "_Conectar" -#: ui/windows.ui.xml:374 ui/macos.ui.xml:374 ui/linux.ui.xml:374 +#: ui/linux.ui.xml:374 ui/macos.ui.xml:374 ui/windows.ui.xml:374 msgid "_Disconnect" msgstr "_Desconectar" -#: ui/windows.ui.xml:232 ui/windows.ui.xml:681 ui/windows.ui.xml:824 -#: ui/macos.ui.xml:232 ui/macos.ui.xml:681 ui/macos.ui.xml:824 #: ui/linux.ui.xml:232 ui/linux.ui.xml:681 ui/linux.ui.xml:824 +#: ui/macos.ui.xml:232 ui/macos.ui.xml:681 ui/macos.ui.xml:824 +#: ui/windows.ui.xml:232 ui/windows.ui.xml:681 ui/windows.ui.xml:824 msgid "_Edit" msgstr "_Editar" -#: ui/windows.ui.xml:99 ui/macos.ui.xml:99 ui/linux.ui.xml:99 +#: ui/linux.ui.xml:99 ui/macos.ui.xml:99 ui/windows.ui.xml:99 msgid "_File" msgstr "_Arquivo" -#: ui/windows.ui.xml:361 ui/macos.ui.xml:361 ui/linux.ui.xml:361 +#: ui/linux.ui.xml:361 ui/macos.ui.xml:361 ui/windows.ui.xml:361 msgid "_Network" msgstr "_Rede" -#: ui/windows.ui.xml:103 ui/windows.ui.xml:565 ui/macos.ui.xml:103 -#: ui/macos.ui.xml:565 ui/linux.ui.xml:103 ui/linux.ui.xml:565 +#: ui/linux.ui.xml:103 ui/linux.ui.xml:565 ui/macos.ui.xml:103 +#: ui/macos.ui.xml:565 ui/windows.ui.xml:103 ui/windows.ui.xml:565 msgid "_New" msgstr "_Nova" -#: ui/windows.ui.xml:119 ui/windows.ui.xml:581 ui/macos.ui.xml:119 -#: ui/macos.ui.xml:581 ui/linux.ui.xml:119 ui/linux.ui.xml:581 +#: ui/linux.ui.xml:119 ui/linux.ui.xml:581 ui/macos.ui.xml:119 +#: ui/macos.ui.xml:581 ui/windows.ui.xml:119 ui/windows.ui.xml:581 msgid "_Open" msgstr "_Abrir" @@ -1188,7 +1188,7 @@ msgstr "Renomear sessão" msgid "_Save" msgstr "_Salvar" -#: ui/windows.ui.xml:335 ui/macos.ui.xml:335 ui/linux.ui.xml:335 +#: ui/linux.ui.xml:335 ui/macos.ui.xml:335 ui/windows.ui.xml:335 msgid "_View" msgstr "_Exibir" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index f62eaf39..db4aa9e5 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -1,1199 +1,1195 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -<<<<<<< HEAD -"POT-Creation-Date: 2023-03-25 08:48-0300\n" -======= -"POT-Creation-Date: 2023-03-24 08:43-0300\n" ->>>>>>> develop -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/objects/application/application.c:214 -#, c-format -msgid "\"%s\" is not a valid user interface name" -msgstr "" - -#: src/objects/application/actions/about.c:118 -#, c-format -msgid "%s for %s." -msgstr "" - -#: src/objects/application/actions/about.c:125 -msgid "32 bits Linux" -msgstr "" - -#: src/objects/application/actions/about.c:123 -msgid "32 bits Windows" -msgstr "" - -#: src/objects/actions/save.c:167 src/objects/os/linux/savedesktopicon.c:233 -#: src/objects/os/windows/savedesktopicon.c:214 -msgid "3270 session files" -msgstr "" - -#: src/objects/application/actions/about.c:127 -msgid "64 bits Linux" -msgstr "" - -#: src/objects/application/actions/about.c:121 -msgid "64 bits Windows" -msgstr "" - -#: src/objects/toolbar/settings.c:214 -msgid "" -"The toolbar position only takes effect after restart" -msgstr "" - -#: src/objects/application/actions/about.c:217 ui/windows.ui.xml:40 -#: ui/windows.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 -#: ui/linux.ui.xml:40 ui/linux.ui.xml:553 -msgid "About PW3270" -msgstr "" - -#: src/objects/actions/abstract.c:93 -msgid "Action Name" -msgstr "" - -#: src/objects/window/window.c:205 -msgid "Action Names" -msgstr "" - -#: ui/windows.ui.xml:525 ui/windows.ui.xml:917 ui/windows.ui.xml:1032 -#: ui/macos.ui.xml:525 ui/macos.ui.xml:917 ui/macos.ui.xml:1032 -#: ui/linux.ui.xml:525 ui/linux.ui.xml:917 ui/linux.ui.xml:1032 -msgid "Alert sound" -msgstr "" - -#: src/main/tools.c:79 -msgid "All files" -msgstr "" - -#: ui/windows.ui.xml:252 ui/windows.ui.xml:691 ui/macos.ui.xml:252 -#: ui/macos.ui.xml:691 ui/linux.ui.xml:252 ui/linux.ui.xml:691 -msgid "Append to copy" -msgstr "" - -#: src/objects/application/actions/about.c:160 -msgid "Apple version" -msgstr "" - -#: ui/windows.ui.xml:385 ui/windows.ui.xml:665 ui/macos.ui.xml:385 -#: ui/macos.ui.xml:665 ui/linux.ui.xml:385 ui/linux.ui.xml:665 -msgid "Application" -msgstr "" - -#: src/objects/window/header-settings.c:93 -msgid "Application menu" -msgstr "" - -#: src/objects/application/actions/preferences.c:76 ui/windows.ui.xml:84 -#: ui/macos.ui.xml:84 ui/linux.ui.xml:84 -msgid "Application preferences" -msgstr "" - -#: src/objects/window/page.c:264 -msgid "Apply" -msgstr "" - -#: ui/windows.ui.xml:500 ui/macos.ui.xml:500 ui/linux.ui.xml:500 -msgid "Auto-Reconnect" -msgstr "" - -#: src/objects/toolbar/settings.c:118 src/objects/settings/actionview.c:73 -msgid "Available" -msgstr "" - -#: src/objects/application/actions/about.c:163 -msgid "Based on X3270 from" -msgstr "" - -#: ui/windows.ui.xml:490 ui/windows.ui.xml:946 ui/macos.ui.xml:490 -#: ui/macos.ui.xml:946 ui/linux.ui.xml:490 ui/linux.ui.xml:946 -msgid "Blank Fill" -msgstr "" - -#: ui/windows.ui.xml:455 ui/macos.ui.xml:455 ui/linux.ui.xml:455 -msgid "Blinking Cursor" -msgstr "" - -#: ui/windows.ui.xml:505 ui/macos.ui.xml:505 ui/linux.ui.xml:505 -msgid "Bold" -msgstr "" - -#: src/objects/toolbar/models.c:134 -msgid "Bottom" -msgstr "" - -#: src/objects/application/actions/open.c:104 src/objects/window/terminal.c:143 -#: src/objects/window/terminal.c:197 -msgid "Can't load session file" -msgstr "" - -#: src/objects/os/windows/open.c:133 -msgid "Can't load session preferences" -msgstr "" - -#: src/objects/application/actions/open.c:99 src/objects/window/terminal.c:192 -#, c-format -msgid "Can't use \"%s\"" -msgstr "" - -#: src/objects/window/terminal.c:138 -msgid "Can't use default session file" -msgstr "" - -#: src/objects/application/actions/open.c:50 src/objects/window/page.c:265 -msgid "Cancel" -msgstr "" - -#: src/objects/application/actions/preferences.c:78 -msgid "Change the application preferences" -msgstr "" - -#: src/objects/window/header-settings.c:64 -msgid "Change the position of the title bar icons" -msgstr "" - -#: src/objects/window/actions/sessionproperties.c:37 -msgid "Change the preferences for the active session" -msgstr "" - -#: ui/windows.ui.xml:305 ui/windows.ui.xml:725 ui/windows.ui.xml:867 -#: ui/macos.ui.xml:305 ui/macos.ui.xml:725 ui/macos.ui.xml:867 -#: ui/linux.ui.xml:305 ui/linux.ui.xml:725 ui/linux.ui.xml:867 -msgid "Clear" -msgstr "" - -#: ui/windows.ui.xml:400 ui/macos.ui.xml:400 ui/linux.ui.xml:400 -msgid "Clipboard" -msgstr "" - -#: ui/windows.ui.xml:150 ui/windows.ui.xml:187 ui/windows.ui.xml:617 -#: ui/windows.ui.xml:654 ui/macos.ui.xml:150 ui/macos.ui.xml:187 -#: ui/macos.ui.xml:617 ui/macos.ui.xml:654 ui/linux.ui.xml:150 -#: ui/linux.ui.xml:187 ui/linux.ui.xml:617 ui/linux.ui.xml:654 -msgid "Clipboard contents" -msgstr "" - -#: src/objects/application/actions/window.c:65 -msgid "Close all windows and exit application" -msgstr "" - -#: src/objects/window/actions/close.c:52 -msgid "Close the window" -msgstr "" - -#: src/objects/window/actions/close.c:51 ui/windows.ui.xml:217 -#: ui/windows.ui.xml:813 ui/windows.ui.xml:1011 ui/windows.ui.xml:1118 -#: ui/macos.ui.xml:217 ui/macos.ui.xml:813 ui/macos.ui.xml:1011 -#: ui/macos.ui.xml:1118 ui/linux.ui.xml:217 ui/linux.ui.xml:813 -#: ui/linux.ui.xml:1011 ui/linux.ui.xml:1118 -msgid "Close window" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:101 -msgid "Comment" -msgstr "" - -#: src/objects/window/actions/connect.c:59 -msgid "Connect" -msgstr "" - -#: ui/windows.ui.xml:450 ui/macos.ui.xml:450 ui/linux.ui.xml:450 -msgid "Connect on startup" -msgstr "" - -#: src/objects/window/actions/connect.c:60 -msgid "Connect to host" -msgstr "" - -#: src/objects/window/window.c:778 src/objects/window/page.c:218 -msgid "Connected to host" -msgstr "" - -#: src/objects/application/actions/about.c:161 -msgid "Contributors" -msgstr "" - -#: ui/windows.ui.xml:237 ui/windows.ui.xml:686 ui/macos.ui.xml:237 -#: ui/macos.ui.xml:686 ui/linux.ui.xml:237 ui/linux.ui.xml:686 -msgid "Copy" -msgstr "" - -#: ui/windows.ui.xml:706 ui/macos.ui.xml:706 ui/linux.ui.xml:706 -msgid "Copy as HTML" -msgstr "" - -#: ui/windows.ui.xml:711 ui/macos.ui.xml:711 ui/linux.ui.xml:711 -msgid "Copy as image" -msgstr "" - -#: ui/windows.ui.xml:247 ui/windows.ui.xml:701 ui/macos.ui.xml:247 -#: ui/macos.ui.xml:701 ui/linux.ui.xml:247 ui/linux.ui.xml:701 -msgid "Copy as table" -msgstr "" - -#: ui/windows.ui.xml:242 ui/windows.ui.xml:696 ui/macos.ui.xml:242 -#: ui/macos.ui.xml:696 ui/linux.ui.xml:242 ui/linux.ui.xml:696 -msgid "Copy as text" -msgstr "" - -#: src/objects/application/actions/about.c:167 -msgid "Copyright © 2008 Banco do Brasil S.A." -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:114 -#: src/objects/os/windows/savedesktopicon.c:99 -#: src/objects/os/macos/savedesktopicon.c:54 -msgid "Create shortcut for the current session" -msgstr "" - -#: ui/windows.ui.xml:475 ui/windows.ui.xml:902 ui/macos.ui.xml:475 -#: ui/macos.ui.xml:902 ui/linux.ui.xml:475 ui/linux.ui.xml:902 -msgid "Cross hair cursor" -msgstr "" - -#: ui/windows.ui.xml:177 ui/windows.ui.xml:644 ui/macos.ui.xml:177 -#: ui/macos.ui.xml:644 ui/linux.ui.xml:177 ui/linux.ui.xml:644 -msgid "Current Screen" -msgstr "" - -#: ui/windows.ui.xml:140 ui/windows.ui.xml:607 ui/macos.ui.xml:140 -#: ui/macos.ui.xml:607 ui/linux.ui.xml:140 ui/linux.ui.xml:607 -msgid "Current screen" -msgstr "" - -#: ui/windows.ui.xml:670 ui/macos.ui.xml:670 ui/linux.ui.xml:670 -msgid "Current session" -msgstr "" - -#: ui/windows.ui.xml:257 ui/windows.ui.xml:716 ui/macos.ui.xml:257 -#: ui/macos.ui.xml:716 ui/linux.ui.xml:257 ui/linux.ui.xml:716 -msgid "Cut" -msgstr "" - -#: ui/windows.ui.xml:315 ui/windows.ui.xml:735 ui/windows.ui.xml:877 -#: ui/macos.ui.xml:315 ui/macos.ui.xml:735 ui/macos.ui.xml:877 -#: ui/linux.ui.xml:315 ui/linux.ui.xml:735 ui/linux.ui.xml:877 -msgid "Delete Field" -msgstr "" - -#: src/objects/os/windows/savedesktopicon.c:72 -msgid "Description" -msgstr "" - -#: ui/windows.ui.xml:808 ui/windows.ui.xml:1006 ui/macos.ui.xml:808 -#: ui/macos.ui.xml:1006 ui/linux.ui.xml:808 ui/linux.ui.xml:1006 -msgid "Disconnect" -msgstr "" - -#: src/objects/window/window.c:778 src/objects/window/window.c:805 -#: src/objects/window/page.c:207 -msgid "Disconnected from host" -msgstr "" - -#: ui/windows.ui.xml:540 ui/windows.ui.xml:929 ui/windows.ui.xml:1045 -#: ui/macos.ui.xml:540 ui/macos.ui.xml:929 ui/macos.ui.xml:1045 -#: ui/linux.ui.xml:540 ui/linux.ui.xml:929 ui/linux.ui.xml:1045 -msgid "Dynamic font spacing" -msgstr "" - -#: src/objects/keypad/element.c:128 -msgid "Element col" -msgstr "" - -#: src/objects/keypad/element.c:152 -msgid "Element height in rows" -msgstr "" - -#: src/objects/keypad/element.c:116 -msgid "Element row" -msgstr "" - -#: src/objects/keypad/element.c:140 -msgid "Element width in columns" -msgstr "" - -#: src/objects/actions/abstract.c:140 -msgid "Enabled" -msgstr "" - -#: src/objects/settings/actionview.c:78 -msgid "End" -msgstr "" - -#: ui/windows.ui.xml:310 ui/windows.ui.xml:730 ui/windows.ui.xml:872 -#: ui/macos.ui.xml:310 ui/macos.ui.xml:730 ui/macos.ui.xml:872 -#: ui/linux.ui.xml:310 ui/linux.ui.xml:730 ui/linux.ui.xml:872 -msgid "Erase input" -msgstr "" - -#: ui/windows.ui.xml:320 ui/windows.ui.xml:740 ui/windows.ui.xml:882 -#: ui/macos.ui.xml:320 ui/macos.ui.xml:740 ui/macos.ui.xml:882 -#: ui/linux.ui.xml:320 ui/linux.ui.xml:740 ui/linux.ui.xml:882 -msgid "Erase to end of field" -msgstr "" - -#: ui/windows.ui.xml:325 ui/windows.ui.xml:745 ui/windows.ui.xml:887 -#: ui/macos.ui.xml:325 ui/macos.ui.xml:745 ui/macos.ui.xml:887 -#: ui/linux.ui.xml:325 ui/linux.ui.xml:745 ui/linux.ui.xml:887 -msgid "Erase to end of line" -msgstr "" - -#: src/objects/os/windows/open.c:140 -msgid "Error starting session" -msgstr "" - -#: ui/windows.ui.xml:353 ui/macos.ui.xml:353 ui/linux.ui.xml:353 -msgid "Field attributes" -msgstr "" - -#: src/objects/os/windows/savedesktopicon.c:211 -msgid "File for session preferences" -msgstr "" - -#: ui/windows.ui.xml:470 ui/macos.ui.xml:470 ui/linux.ui.xml:470 -msgid "Full Screen" -msgstr "" - -#: ui/windows.ui.xml:779 ui/windows.ui.xml:955 ui/windows.ui.xml:1050 -#: ui/macos.ui.xml:779 ui/macos.ui.xml:955 ui/macos.ui.xml:1050 -#: ui/linux.ui.xml:779 ui/linux.ui.xml:955 ui/linux.ui.xml:1050 -msgid "Full screen" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:94 -msgid "Generic name" -msgstr "" - -#: ui/windows.ui.xml:37 ui/windows.ui.xml:550 ui/macos.ui.xml:37 -#: ui/macos.ui.xml:550 ui/linux.ui.xml:37 ui/linux.ui.xml:550 -msgid "Help" -msgstr "" - -#: ui/windows.ui.xml:390 ui/macos.ui.xml:390 ui/linux.ui.xml:390 -msgid "Host and Emulation settings" -msgstr "" - -#: src/objects/application/actions/about.c:119 src/objects/window/window.c:564 -#: src/objects/os/linux/savedesktopicon.c:102 -#: src/objects/os/windows/savedesktopicon.c:261 -msgid "IBM 3270 Terminal emulator" -msgstr "" - -#: src/objects/actions/view.c:89 -msgid "Icon" -msgstr "" - -#: src/objects/actions/abstract.c:101 -msgid "Icon Name" -msgstr "" - -#: src/objects/toolbar/settings.c:54 -msgid "Icon Size" -msgstr "" - -#: src/objects/toolbar/settings.c:61 -msgid "Icon Style" -msgstr "" - -#: src/objects/toolbar/models.c:52 -msgid "Icon _size" -msgstr "" - -#: src/objects/toolbar/models.c:108 -msgid "Icon type" -msgstr "" - -#: src/objects/toolbar/models.c:97 -msgid "Icons & text" -msgstr "" - -#: src/objects/toolbar/models.c:87 -msgid "Icons only" -msgstr "" - -#: src/objects/actions/abstract.c:141 -msgid "If the action can be activated" -msgstr "" - -#: ui/windows.ui.xml:1022 ui/macos.ui.xml:1022 ui/linux.ui.xml:1022 -msgid "Insert" -msgstr "" - -#: src/objects/keypad/attribute.c:79 -msgid "Invalid or unknown property type" -msgstr "" - -#: src/objects/settings/actionview.c:79 -msgid "Items packed from the end to the start" -msgstr "" - -#: src/objects/settings/actionview.c:69 -msgid "Items packed from the start to the end" -msgstr "" - -#: src/objects/toolbar/settings.c:112 -msgid "Itens" -msgstr "" - -#: ui/windows.ui.xml:515 ui/macos.ui.xml:515 ui/linux.ui.xml:515 -msgid "Keep selected" -msgstr "" - -#: ui/windows.ui.xml:395 ui/macos.ui.xml:395 ui/linux.ui.xml:395 -msgid "Keyboard accelerators" -msgstr "" - -#: src/objects/keypad/model.c:103 -msgid "Keypad Label" -msgstr "" - -#: src/objects/keypad/model.c:93 -msgid "Keypad Name" -msgstr "" - -#: src/objects/keypad/model.c:136 -msgid "Keypad height in rows" -msgstr "" - -#: src/objects/keypad/model.c:124 -msgid "Keypad width in columns" -msgstr "" - -#: src/main/builder.c:137 -msgid "Keypads" -msgstr "" - -#: src/objects/application/actions/about.c:171 -msgid "LICENSE" -msgstr "" - -#: src/objects/actions/view.c:98 -msgid "Label" -msgstr "" - -#: src/objects/toolbar/models.c:66 -msgid "Large" -msgstr "" - -#: src/objects/toolbar/models.c:131 -msgid "Left" -msgstr "" - -#: src/objects/settings/actionview.c:74 -msgid "List of the available and unpacked actions" -msgstr "" - -#: src/objects/application/application.c:167 -msgid "Log name" -msgstr "" - -#: ui/windows.ui.xml:72 ui/macos.ui.xml:72 ui/linux.ui.xml:72 -msgid "Main Menu" -msgstr "" - -#: ui/windows.ui.xml:67 ui/macos.ui.xml:67 ui/linux.ui.xml:67 -msgid "Main Toolbar" -msgstr "" - -#: ui/windows.ui.xml:1093 ui/macos.ui.xml:1093 ui/linux.ui.xml:1093 -msgid "Main menu" -msgstr "" - -#: src/objects/application/actions/about.c:159 -msgid "Maintainers" -msgstr "" - -#: ui/windows.ui.xml:348 ui/macos.ui.xml:348 ui/linux.ui.xml:348 -msgid "Menu" -msgstr "" - -#: ui/windows.ui.xml:419 ui/windows.ui.xml:1059 ui/macos.ui.xml:419 -#: ui/macos.ui.xml:1059 ui/linux.ui.xml:419 ui/linux.ui.xml:1059 -msgid "Model 2 - 80x24" -msgstr "" - -#: ui/windows.ui.xml:424 ui/windows.ui.xml:1064 ui/macos.ui.xml:424 -#: ui/macos.ui.xml:1064 ui/linux.ui.xml:424 ui/linux.ui.xml:1064 -msgid "Model 3 - 80x32" -msgstr "" - -#: ui/windows.ui.xml:429 ui/windows.ui.xml:1069 ui/macos.ui.xml:429 -#: ui/macos.ui.xml:1069 ui/linux.ui.xml:429 ui/linux.ui.xml:1069 -msgid "Model 4 - 80x43" -msgstr "" - -#: ui/windows.ui.xml:434 ui/windows.ui.xml:1074 ui/macos.ui.xml:434 -#: ui/macos.ui.xml:1074 ui/linux.ui.xml:434 ui/linux.ui.xml:1074 -msgid "Model 5 - 132x27" -msgstr "" - -#: ui/windows.ui.xml:460 ui/windows.ui.xml:924 ui/macos.ui.xml:460 -#: ui/macos.ui.xml:924 ui/linux.ui.xml:460 ui/linux.ui.xml:924 -msgid "Monocase" -msgstr "" - -#: ui/windows.ui.xml:535 ui/macos.ui.xml:535 ui/linux.ui.xml:535 -msgid "Network keep alive" -msgstr "" - -#: src/objects/window/page.c:275 -msgid "New session name" -msgstr "" - -#: src/objects/application/actions/window.c:84 -msgid "New tab" -msgstr "" - -#: src/objects/application/actions/window.c:85 -msgid "New tab with default session" -msgstr "" - -#: src/objects/application/actions/window.c:104 -msgid "New window" -msgstr "" - -#: src/objects/application/actions/window.c:105 -msgid "New window with default session" -msgstr "" - -#: src/objects/application/actions/open.c:49 -msgid "Open Session" -msgstr "" - -#: ui/windows.ui.xml:56 ui/macos.ui.xml:56 ui/linux.ui.xml:56 -msgid "Open in New Tab" -msgstr "" - -#: ui/windows.ui.xml:51 ui/macos.ui.xml:51 ui/linux.ui.xml:51 -msgid "Open in New Window" -msgstr "" - -#: src/objects/application/actions/open.c:201 -msgid "Open in new tab" -msgstr "" - -#: src/objects/application/actions/open.c:189 -msgid "Open in new window" -msgstr "" - -#: src/objects/application/actions/open.c:176 -msgid "Open session" -msgstr "" - -#: src/objects/application/actions/open.c:202 -msgid "Open session in New Tab" -msgstr "" - -#: src/objects/application/actions/open.c:190 -msgid "Open session in New window" -msgstr "" - -#: src/objects/application/actions/open.c:177 -msgid "Open session on the active terminal" -msgstr "" - -#: ui/windows.ui.xml:447 ui/windows.ui.xml:755 ui/windows.ui.xml:897 -#: ui/windows.ui.xml:1042 ui/macos.ui.xml:447 ui/macos.ui.xml:755 -#: ui/macos.ui.xml:897 ui/macos.ui.xml:1042 ui/linux.ui.xml:447 -#: ui/linux.ui.xml:755 ui/linux.ui.xml:897 ui/linux.ui.xml:1042 -msgid "Options" -msgstr "" - -#: src/objects/actions/abstract.c:124 -msgid "Parameter Type" -msgstr "" - -#: ui/windows.ui.xml:262 ui/windows.ui.xml:829 ui/macos.ui.xml:262 -#: ui/macos.ui.xml:829 ui/linux.ui.xml:262 ui/linux.ui.xml:829 -msgid "Paste from clipboard" -msgstr "" - -#: ui/windows.ui.xml:272 ui/windows.ui.xml:839 ui/macos.ui.xml:272 -#: ui/macos.ui.xml:839 ui/linux.ui.xml:272 ui/linux.ui.xml:839 -msgid "Paste from text file" -msgstr "" - -#: ui/windows.ui.xml:267 ui/windows.ui.xml:834 ui/macos.ui.xml:267 -#: ui/macos.ui.xml:834 ui/linux.ui.xml:267 ui/linux.ui.xml:834 -msgid "Paste next" -msgstr "" - -#: ui/windows.ui.xml:485 ui/windows.ui.xml:941 ui/macos.ui.xml:485 -#: ui/macos.ui.xml:941 ui/linux.ui.xml:485 ui/linux.ui.xml:941 -msgid "Paste with left margin" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:71 -#: src/objects/os/windows/savedesktopicon.c:66 -msgid "Path for the new shortcut" -msgstr "" - -#: src/objects/toolbar/models.c:125 -msgid "Position" -msgstr "" - -#: ui/windows.ui.xml:662 ui/macos.ui.xml:662 ui/linux.ui.xml:662 -msgid "Preferences" -msgstr "" - -#: ui/windows.ui.xml:174 ui/windows.ui.xml:641 ui/macos.ui.xml:174 -#: ui/macos.ui.xml:641 ui/linux.ui.xml:174 ui/linux.ui.xml:641 -msgid "Print" -msgstr "" - -#: ui/windows.ui.xml:992 ui/macos.ui.xml:992 ui/linux.ui.xml:992 -msgid "Print screen" -msgstr "" - -#: ui/windows.ui.xml:795 ui/macos.ui.xml:795 ui/linux.ui.xml:795 -msgid "Print selected" -msgstr "" - -#: src/objects/keypad/attribute.c:116 -#, c-format -msgid "Property \"%s\" is invalid for this object" -msgstr "" - -#: src/objects/application/actions/window.c:64 ui/windows.ui.xml:89 -#: ui/macos.ui.xml:89 ui/linux.ui.xml:89 -msgid "Quit" -msgstr "" - -#: src/objects/window/page.c:262 -msgid "Rename Session" -msgstr "" - -#: ui/windows.ui.xml:296 ui/windows.ui.xml:858 ui/macos.ui.xml:296 -#: ui/macos.ui.xml:858 ui/linux.ui.xml:296 ui/linux.ui.xml:858 -msgid "Reselect" -msgstr "" - -#: ui/windows.ui.xml:480 ui/windows.ui.xml:912 ui/macos.ui.xml:480 -#: ui/macos.ui.xml:912 ui/linux.ui.xml:480 ui/linux.ui.xml:912 -msgid "Resize on alternate screen" -msgstr "" - -#: src/objects/toolbar/models.c:137 -msgid "Right" -msgstr "" - -#: ui/windows.ui.xml:135 ui/windows.ui.xml:602 ui/macos.ui.xml:135 -#: ui/macos.ui.xml:602 ui/linux.ui.xml:135 ui/linux.ui.xml:602 -msgid "Save" -msgstr "" - -#: src/objects/actions/save.c:77 -msgid "Save current session preferences to file" -msgstr "" - -#: ui/windows.ui.xml:987 ui/macos.ui.xml:987 ui/linux.ui.xml:987 -msgid "Save screen" -msgstr "" - -#: ui/windows.ui.xml:790 ui/macos.ui.xml:790 ui/linux.ui.xml:790 -msgid "Save selected" -msgstr "" - -#: src/objects/actions/save.c:75 src/objects/actions/save.c:164 -msgid "Save session preferences" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:113 -#: src/objects/os/windows/savedesktopicon.c:98 -#: src/objects/os/macos/savedesktopicon.c:53 -msgid "Save session shortcut" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:230 -msgid "Save to session filename" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:202 -msgid "Save to shortcut file" -msgstr "" - -#: src/objects/os/windows/savedesktopicon.c:176 -msgid "Save to windows shortcut" -msgstr "" - -#: ui/windows.ui.xml:416 ui/windows.ui.xml:1056 ui/macos.ui.xml:416 -#: ui/macos.ui.xml:1056 ui/linux.ui.xml:416 ui/linux.ui.xml:1056 -msgid "Screen size" -msgstr "" - -#: ui/windows.ui.xml:286 ui/windows.ui.xml:853 ui/macos.ui.xml:286 -#: ui/macos.ui.xml:853 ui/linux.ui.xml:286 ui/linux.ui.xml:853 -msgid "Select Field" -msgstr "" - -#: ui/windows.ui.xml:281 ui/windows.ui.xml:848 ui/macos.ui.xml:281 -#: ui/macos.ui.xml:848 ui/linux.ui.xml:281 ui/linux.ui.xml:848 -msgid "Select all" -msgstr "" - -#: ui/windows.ui.xml:495 ui/windows.ui.xml:760 ui/macos.ui.xml:495 -#: ui/macos.ui.xml:760 ui/linux.ui.xml:495 ui/linux.ui.xml:760 -msgid "Select by rectangles" -msgstr "" - -#: src/objects/toolbar/settings.c:112 -msgid "Select the toolbar itens" -msgstr "" - -#: src/objects/toolbar/settings.c:117 -msgid "Selected" -msgstr "" - -#: ui/windows.ui.xml:145 ui/windows.ui.xml:182 ui/windows.ui.xml:612 -#: ui/windows.ui.xml:649 ui/macos.ui.xml:145 ui/macos.ui.xml:182 -#: ui/macos.ui.xml:612 ui/macos.ui.xml:649 ui/linux.ui.xml:145 -#: ui/linux.ui.xml:182 ui/linux.ui.xml:612 ui/linux.ui.xml:649 -msgid "Selected area" -msgstr "" - -#: src/objects/window/actions/filetransfer.c:45 -msgid "Send/Receive" -msgstr "" - -#: src/objects/window/actions/filetransfer.c:46 ui/windows.ui.xml:196 -#: ui/windows.ui.xml:997 ui/macos.ui.xml:196 ui/macos.ui.xml:997 -#: ui/linux.ui.xml:196 ui/linux.ui.xml:997 -msgid "Send/Receive files" -msgstr "" - -#: src/objects/toolbar/settings.c:252 src/objects/toolbar/settings.c:262 -msgid "Separator" -msgstr "" - -#: ui/windows.ui.xml:48 ui/windows.ui.xml:584 ui/macos.ui.xml:48 -#: ui/macos.ui.xml:584 ui/linux.ui.xml:48 ui/linux.ui.xml:584 -msgid "Session" -msgstr "" - -#: ui/windows.ui.xml:77 ui/windows.ui.xml:978 ui/windows.ui.xml:1098 -#: ui/macos.ui.xml:77 ui/macos.ui.xml:978 ui/macos.ui.xml:1098 -#: ui/linux.ui.xml:77 ui/linux.ui.xml:978 ui/linux.ui.xml:1098 -msgid "Session Trace" -msgstr "" - -#: src/objects/actions/save.c:63 src/objects/os/linux/savedesktopicon.c:85 -#: src/objects/os/windows/savedesktopicon.c:86 -msgid "Session file" -msgstr "" - -#: ui/windows.ui.xml:127 ui/windows.ui.xml:594 ui/macos.ui.xml:127 -#: ui/macos.ui.xml:594 ui/linux.ui.xml:127 ui/linux.ui.xml:594 -msgid "Session in New Tab" -msgstr "" - -#: ui/windows.ui.xml:122 ui/windows.ui.xml:589 ui/macos.ui.xml:122 -#: ui/macos.ui.xml:589 ui/linux.ui.xml:122 ui/linux.ui.xml:589 -msgid "Session in new window" -msgstr "" - -#: src/objects/actions/save.c:56 src/objects/os/linux/savedesktopicon.c:77 -#: src/objects/os/windows/savedesktopicon.c:78 -msgid "Session name" -msgstr "" - -#: src/objects/window/actions/sessionproperties.c:36 ui/windows.ui.xml:164 -#: ui/windows.ui.xml:631 ui/windows.ui.xml:1112 ui/macos.ui.xml:164 -#: ui/macos.ui.xml:631 ui/macos.ui.xml:1112 ui/linux.ui.xml:164 -#: ui/linux.ui.xml:631 ui/linux.ui.xml:1112 -msgid "Session preferences" -msgstr "" - -#: src/objects/application/application.c:249 -msgid "Set default log file name" -msgstr "" - -#: src/objects/application/application.c:239 -msgid "Set the user-interface type" -msgstr "" - -#: ui/windows.ui.xml:382 ui/macos.ui.xml:382 ui/linux.ui.xml:382 -msgid "Settings" -msgstr "" - -#: src/objects/toolbar/settings.c:182 -msgid "Setup the toolbar style and position" -msgstr "" - -#: src/objects/window/header-settings.c:53 -msgid "Setup title bar" -msgstr "" - -#: src/objects/toolbar/toolbar.c:213 src/objects/toolbar/settings.c:94 -msgid "Setup toolbar" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:70 -#: src/objects/os/windows/savedesktopicon.c:65 -msgid "Shortcut file" -msgstr "" - -#: ui/windows.ui.xml:159 ui/windows.ui.xml:626 ui/macos.ui.xml:159 -#: ui/macos.ui.xml:626 ui/linux.ui.xml:159 ui/linux.ui.xml:626 -msgid "Shortcut for this session" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:63 -msgid "Shortcut name" -msgstr "" - -#: ui/windows.ui.xml:510 ui/macos.ui.xml:510 ui/linux.ui.xml:510 -msgid "Show Underline" -msgstr "" - -#: ui/windows.ui.xml:774 ui/macos.ui.xml:774 ui/linux.ui.xml:774 -msgid "Show menu" -msgstr "" - -#: ui/windows.ui.xml:769 ui/macos.ui.xml:769 ui/linux.ui.xml:769 -msgid "Show toolbar" -msgstr "" - -#: src/objects/toolbar/models.c:61 -msgid "Small" -msgstr "" - -#: ui/windows.ui.xml:520 ui/windows.ui.xml:936 ui/macos.ui.xml:520 -#: ui/macos.ui.xml:936 ui/linux.ui.xml:520 ui/linux.ui.xml:936 -msgid "Smart paste" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:205 -msgid "Standard desktop files" -msgstr "" - -#: src/objects/settings/actionview.c:68 -msgid "Start" -msgstr "" - -#: src/objects/actions/abstract.c:152 -msgid "State" -msgstr "" - -#: src/objects/actions/abstract.c:131 -msgid "State Type" -msgstr "" - -#: src/objects/toolbar/settings.c:182 -msgid "Style & Position" -msgstr "" - -#: src/objects/toolbar/models.c:114 -msgid "Symbolic" -msgstr "" - -#: src/objects/toolbar/models.c:55 src/objects/toolbar/models.c:82 -#: src/objects/toolbar/models.c:111 -msgid "System default" -msgstr "" - -#: src/main/tools.c:75 -msgid "TN3270 Session Files" -msgstr "" - -#: src/objects/window/keyfile.c:241 -msgid "TN3270 Session description" -msgstr "" - -#: ui/windows.ui.xml:111 ui/windows.ui.xml:573 ui/macos.ui.xml:111 -#: ui/macos.ui.xml:573 ui/linux.ui.xml:111 ui/linux.ui.xml:573 -msgid "Tab with default session" -msgstr "" - -#: ui/windows.ui.xml:405 ui/macos.ui.xml:405 ui/linux.ui.xml:405 -msgid "Terminal colors" -msgstr "" - -#: ui/windows.ui.xml:442 ui/macos.ui.xml:442 ui/linux.ui.xml:442 -msgid "Terminal font" -msgstr "" - -#: src/objects/toolbar/models.c:92 -msgid "Text only" -msgstr "" - -#: src/objects/keypad/model.c:104 src/objects/keypad/element.c:106 -msgid "The Label of the keypad" -msgstr "" - -#: src/objects/actions/abstract.c:109 -msgid "The action label" -msgstr "" - -#: src/objects/actions/abstract.c:117 -msgid "The action tooltip" -msgstr "" - -#: src/objects/application/application.c:153 -msgid "The code of the User interface type" -msgstr "" - -#: src/objects/actions/save.c:64 -msgid "The file to save the current session preferences" -msgstr "" - -#: src/objects/os/linux/savedesktopicon.c:86 -#: src/objects/os/windows/savedesktopicon.c:87 -msgid "The file with the session preferences for this shortcut" -msgstr "" - -#: src/objects/application/application.c:168 -msgid "The full path of the default log file" -msgstr "" - -#: src/objects/actions/abstract.c:110 -msgid "The label for the action" -msgstr "" - -#: src/objects/keypad/element.c:96 -msgid "The name of associated action" -msgstr "" - -#: src/objects/window/window.c:206 -msgid "The name of the actions in the header bar" -msgstr "" - -#: src/objects/toolbar/toolbar.c:98 -msgid "The name of the actions in the toolbar" -msgstr "" - -#: src/objects/keypad/element.c:86 -msgid "The name of the icon" -msgstr "" - -#: src/objects/actions/abstract.c:102 -msgid "The name of the icon associated with the action" -msgstr "" - -#: src/objects/keypad/model.c:94 -msgid "The name used to identify the keypad" -msgstr "" - -#: src/objects/actions/abstract.c:94 -msgid "The name used to invoke the action" -msgstr "" - -#: src/objects/keypad/model.c:114 -msgid "The position of the keypad" -msgstr "" - -#: src/objects/actions/save.c:57 src/objects/os/linux/savedesktopicon.c:79 -#: src/objects/os/windows/savedesktopicon.c:80 -msgid "The session name used in the window/tab title (empty for default)" -msgstr "" - -#: src/objects/actions/abstract.c:153 -msgid "The state the action is in" -msgstr "" - -#: src/objects/toolbar/toolbar.c:109 -msgid "The toolbar icon size" -msgstr "" - -#: src/objects/toolbar/toolbar.c:135 -msgid "The toolbar icon type" -msgstr "" - -#: src/objects/toolbar/toolbar.c:122 -msgid "The toolbar style" -msgstr "" - -#: src/objects/actions/abstract.c:118 -msgid "The tooltip for the action" -msgstr "" - -#: src/objects/actions/abstract.c:125 -msgid "The type of GVariant passed to activate()" -msgstr "" - -#: src/objects/actions/abstract.c:132 -msgid "The type of the state kept by the action" -msgstr "" - -#: src/objects/os/macos/savedesktopicon.c:68 -msgid "This action is not available in this platform" -msgstr "" - -#: src/objects/window/header-settings.c:52 -msgid "Title bar" -msgstr "" - -#: src/objects/window/header-settings.c:64 -msgid "Title bar actions" -msgstr "" - -#: src/objects/toolbar/settings.c:93 ui/windows.ui.xml:343 -#: ui/windows.ui.xml:968 ui/windows.ui.xml:1088 ui/macos.ui.xml:343 -#: ui/macos.ui.xml:968 ui/macos.ui.xml:1088 ui/linux.ui.xml:343 -#: ui/linux.ui.xml:968 ui/linux.ui.xml:1088 -msgid "Toolbar" -msgstr "" - -#: src/objects/toolbar/settings.c:68 -msgid "Toolbar Style" -msgstr "" - -#: src/objects/toolbar/settings.c:75 -msgid "Toolbar position" -msgstr "" - -#: src/objects/toolbar/models.c:79 -msgid "Toolbar s_tyle" -msgstr "" - -#: src/objects/toolbar/models.c:128 -msgid "Top (system default)" -msgstr "" - -#: ui/windows.ui.xml:973 ui/macos.ui.xml:973 ui/linux.ui.xml:973 -msgid "Top menu" -msgstr "" - -#: ui/windows.ui.xml:338 ui/macos.ui.xml:338 ui/linux.ui.xml:338 -msgid "Trace" -msgstr "" - -#: ui/windows.ui.xml:465 ui/windows.ui.xml:1027 ui/macos.ui.xml:465 -#: ui/macos.ui.xml:1027 ui/linux.ui.xml:465 ui/linux.ui.xml:1027 -msgid "Track Cursor" -msgstr "" - -#: src/objects/application/application.c:152 -msgid "UI Type" -msgstr "" - -#: src/objects/os/windows/open.c:137 -#, c-format -msgid "Unable to load session preferences from '%s'" -msgstr "" - -#: ui/windows.ui.xml:291 ui/windows.ui.xml:800 ui/macos.ui.xml:291 -#: ui/macos.ui.xml:800 ui/linux.ui.xml:291 ui/linux.ui.xml:800 -msgid "Unselect" -msgstr "" - -#: src/objects/application/actions/about.c:98 -#, c-format -msgid "Unstable version %s-%s" -msgstr "" - -#: ui/windows.ui.xml:530 ui/windows.ui.xml:907 ui/macos.ui.xml:530 -#: ui/macos.ui.xml:907 ui/linux.ui.xml:530 ui/linux.ui.xml:907 -msgid "Use +/- for field navigation" -msgstr "" - -#: src/objects/application/actions/about.c:100 -#, c-format -msgid "Version %s-%s" -msgstr "" - -#: src/objects/window/header.c:63 ui/windows.ui.xml:64 ui/windows.ui.xml:965 -#: ui/windows.ui.xml:1085 ui/macos.ui.xml:64 ui/macos.ui.xml:965 -#: ui/macos.ui.xml:1085 ui/linux.ui.xml:64 ui/linux.ui.xml:965 -#: ui/linux.ui.xml:1085 -msgid "View" -msgstr "" - -#: src/objects/application/actions/about.c:191 -msgid "View this project on github" -msgstr "" - -#: ui/windows.ui.xml:106 ui/windows.ui.xml:568 ui/macos.ui.xml:106 -#: ui/macos.ui.xml:568 ui/linux.ui.xml:106 ui/linux.ui.xml:568 -msgid "Window with default session" -msgstr "" - -#: src/objects/os/windows/savedesktopicon.c:179 -msgid "Windows shortcuts" -msgstr "" - -#: src/objects/settings/dialog.c:79 -msgid "_Apply" -msgstr "" - -#: src/objects/actions/save.c:103 src/objects/settings/dialog.c:78 -#: src/objects/os/linux/savedesktopicon.c:140 -#: src/objects/os/windows/savedesktopicon.c:124 -msgid "_Cancel" -msgstr "" - -#: src/objects/window/page.c:371 -msgid "_Close session" -msgstr "" - -#: ui/windows.ui.xml:369 ui/windows.ui.xml:1107 ui/macos.ui.xml:369 -#: ui/macos.ui.xml:1107 ui/linux.ui.xml:369 ui/linux.ui.xml:1107 -msgid "_Connect" -msgstr "" - -#: ui/windows.ui.xml:374 ui/macos.ui.xml:374 ui/linux.ui.xml:374 -msgid "_Disconnect" -msgstr "" - -#: ui/windows.ui.xml:232 ui/windows.ui.xml:681 ui/windows.ui.xml:824 -#: ui/macos.ui.xml:232 ui/macos.ui.xml:681 ui/macos.ui.xml:824 -#: ui/linux.ui.xml:232 ui/linux.ui.xml:681 ui/linux.ui.xml:824 -msgid "_Edit" -msgstr "" - -#: ui/windows.ui.xml:99 ui/macos.ui.xml:99 ui/linux.ui.xml:99 -msgid "_File" -msgstr "" - -#: ui/windows.ui.xml:361 ui/macos.ui.xml:361 ui/linux.ui.xml:361 -msgid "_Network" -msgstr "" - -#: ui/windows.ui.xml:103 ui/windows.ui.xml:565 ui/macos.ui.xml:103 -#: ui/macos.ui.xml:565 ui/linux.ui.xml:103 ui/linux.ui.xml:565 -msgid "_New" -msgstr "" - -#: ui/windows.ui.xml:119 ui/windows.ui.xml:581 ui/macos.ui.xml:119 -#: ui/macos.ui.xml:581 ui/linux.ui.xml:119 ui/linux.ui.xml:581 -msgid "_Open" -msgstr "" - -#: src/objects/toolbar/toolbar.c:235 -msgid "_Preferences" -msgstr "" - -#: src/objects/window/page.c:365 -msgid "_Rename session" -msgstr "" - -#: src/objects/actions/save.c:104 src/objects/os/linux/savedesktopicon.c:141 -#: src/objects/os/windows/savedesktopicon.c:125 -msgid "_Save" -msgstr "" - -#: ui/windows.ui.xml:335 ui/macos.ui.xml:335 ui/linux.ui.xml:335 -msgid "_View" -msgstr "" - -#: src/objects/application/actions/about.c:190 -msgid "https://github.com/PerryWerneck/pw3270" -msgstr "" - -#: src/objects/application/actions/about.c:193 -msgid "translator-credits" -msgstr "" +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-26 23:53-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/objects/application/application.c:214 +#, c-format +msgid "\"%s\" is not a valid user interface name" +msgstr "" + +#: src/objects/application/actions/about.c:118 +#, c-format +msgid "%s for %s." +msgstr "" + +#: src/objects/application/actions/about.c:125 +msgid "32 bits Linux" +msgstr "" + +#: src/objects/application/actions/about.c:123 +msgid "32 bits Windows" +msgstr "" + +#: src/objects/actions/save.c:167 src/objects/os/linux/savedesktopicon.c:233 +#: src/objects/os/windows/savedesktopicon.c:214 +msgid "3270 session files" +msgstr "" + +#: src/objects/application/actions/about.c:127 +msgid "64 bits Linux" +msgstr "" + +#: src/objects/application/actions/about.c:121 +msgid "64 bits Windows" +msgstr "" + +#: src/objects/toolbar/settings.c:214 +msgid "" +"The toolbar position only takes effect after restart" +msgstr "" + +#: src/objects/application/actions/about.c:217 ui/linux.ui.xml:40 +#: ui/linux.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 +#: ui/windows.ui.xml:40 ui/windows.ui.xml:553 +msgid "About PW3270" +msgstr "" + +#: src/objects/actions/abstract.c:93 +msgid "Action Name" +msgstr "" + +#: src/objects/window/window.c:205 +msgid "Action Names" +msgstr "" + +#: ui/linux.ui.xml:525 ui/linux.ui.xml:917 ui/linux.ui.xml:1032 +#: ui/macos.ui.xml:525 ui/macos.ui.xml:917 ui/macos.ui.xml:1032 +#: ui/windows.ui.xml:525 ui/windows.ui.xml:917 ui/windows.ui.xml:1032 +msgid "Alert sound" +msgstr "" + +#: src/main/tools.c:68 +msgid "All files" +msgstr "" + +#: ui/linux.ui.xml:252 ui/linux.ui.xml:691 ui/macos.ui.xml:252 +#: ui/macos.ui.xml:691 ui/windows.ui.xml:252 ui/windows.ui.xml:691 +msgid "Append to copy" +msgstr "" + +#: src/objects/application/actions/about.c:160 +msgid "Apple version" +msgstr "" + +#: ui/linux.ui.xml:385 ui/linux.ui.xml:665 ui/macos.ui.xml:385 +#: ui/macos.ui.xml:665 ui/windows.ui.xml:385 ui/windows.ui.xml:665 +msgid "Application" +msgstr "" + +#: src/objects/window/header-settings.c:93 +msgid "Application menu" +msgstr "" + +#: src/objects/application/actions/preferences.c:76 ui/linux.ui.xml:84 +#: ui/macos.ui.xml:84 ui/windows.ui.xml:84 +msgid "Application preferences" +msgstr "" + +#: src/objects/window/page.c:264 +msgid "Apply" +msgstr "" + +#: ui/linux.ui.xml:500 ui/macos.ui.xml:500 ui/windows.ui.xml:500 +msgid "Auto-Reconnect" +msgstr "" + +#: src/objects/toolbar/settings.c:118 src/objects/settings/actionview.c:73 +msgid "Available" +msgstr "" + +#: src/objects/application/actions/about.c:163 +msgid "Based on X3270 from" +msgstr "" + +#: ui/linux.ui.xml:490 ui/linux.ui.xml:946 ui/macos.ui.xml:490 +#: ui/macos.ui.xml:946 ui/windows.ui.xml:490 ui/windows.ui.xml:946 +msgid "Blank Fill" +msgstr "" + +#: ui/linux.ui.xml:455 ui/macos.ui.xml:455 ui/windows.ui.xml:455 +msgid "Blinking Cursor" +msgstr "" + +#: ui/linux.ui.xml:505 ui/macos.ui.xml:505 ui/windows.ui.xml:505 +msgid "Bold" +msgstr "" + +#: src/objects/toolbar/models.c:134 +msgid "Bottom" +msgstr "" + +#: src/objects/application/actions/open.c:104 src/objects/window/terminal.c:143 +#: src/objects/window/terminal.c:197 +msgid "Can't load session file" +msgstr "" + +#: src/objects/os/windows/open.c:133 +msgid "Can't load session preferences" +msgstr "" + +#: src/objects/application/actions/open.c:99 src/objects/window/terminal.c:192 +#, c-format +msgid "Can't use \"%s\"" +msgstr "" + +#: src/objects/window/terminal.c:138 +msgid "Can't use default session file" +msgstr "" + +#: src/objects/application/actions/open.c:50 src/objects/window/page.c:265 +msgid "Cancel" +msgstr "" + +#: src/objects/application/actions/preferences.c:78 +msgid "Change the application preferences" +msgstr "" + +#: src/objects/window/header-settings.c:64 +msgid "Change the position of the title bar icons" +msgstr "" + +#: src/objects/window/actions/sessionproperties.c:37 +msgid "Change the preferences for the active session" +msgstr "" + +#: ui/linux.ui.xml:305 ui/linux.ui.xml:725 ui/linux.ui.xml:867 +#: ui/macos.ui.xml:305 ui/macos.ui.xml:725 ui/macos.ui.xml:867 +#: ui/windows.ui.xml:305 ui/windows.ui.xml:725 ui/windows.ui.xml:867 +msgid "Clear" +msgstr "" + +#: ui/linux.ui.xml:400 ui/macos.ui.xml:400 ui/windows.ui.xml:400 +msgid "Clipboard" +msgstr "" + +#: ui/linux.ui.xml:150 ui/linux.ui.xml:187 ui/linux.ui.xml:617 +#: ui/linux.ui.xml:654 ui/macos.ui.xml:150 ui/macos.ui.xml:187 +#: ui/macos.ui.xml:617 ui/macos.ui.xml:654 ui/windows.ui.xml:150 +#: ui/windows.ui.xml:187 ui/windows.ui.xml:617 ui/windows.ui.xml:654 +msgid "Clipboard contents" +msgstr "" + +#: src/objects/application/actions/window.c:65 +msgid "Close all windows and exit application" +msgstr "" + +#: src/objects/window/actions/close.c:52 +msgid "Close the window" +msgstr "" + +#: src/objects/window/actions/close.c:51 ui/linux.ui.xml:217 +#: ui/linux.ui.xml:813 ui/linux.ui.xml:1011 ui/linux.ui.xml:1118 +#: ui/macos.ui.xml:217 ui/macos.ui.xml:813 ui/macos.ui.xml:1011 +#: ui/macos.ui.xml:1118 ui/windows.ui.xml:217 ui/windows.ui.xml:813 +#: ui/windows.ui.xml:1011 ui/windows.ui.xml:1118 +msgid "Close window" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:101 +msgid "Comment" +msgstr "" + +#: src/objects/window/actions/connect.c:59 +msgid "Connect" +msgstr "" + +#: ui/linux.ui.xml:450 ui/macos.ui.xml:450 ui/windows.ui.xml:450 +msgid "Connect on startup" +msgstr "" + +#: src/objects/window/actions/connect.c:60 +msgid "Connect to host" +msgstr "" + +#: src/objects/window/page.c:218 src/objects/window/window.c:778 +msgid "Connected to host" +msgstr "" + +#: src/objects/application/actions/about.c:161 +msgid "Contributors" +msgstr "" + +#: ui/linux.ui.xml:237 ui/linux.ui.xml:686 ui/macos.ui.xml:237 +#: ui/macos.ui.xml:686 ui/windows.ui.xml:237 ui/windows.ui.xml:686 +msgid "Copy" +msgstr "" + +#: ui/linux.ui.xml:706 ui/macos.ui.xml:706 ui/windows.ui.xml:706 +msgid "Copy as HTML" +msgstr "" + +#: ui/linux.ui.xml:711 ui/macos.ui.xml:711 ui/windows.ui.xml:711 +msgid "Copy as image" +msgstr "" + +#: ui/linux.ui.xml:247 ui/linux.ui.xml:701 ui/macos.ui.xml:247 +#: ui/macos.ui.xml:701 ui/windows.ui.xml:247 ui/windows.ui.xml:701 +msgid "Copy as table" +msgstr "" + +#: ui/linux.ui.xml:242 ui/linux.ui.xml:696 ui/macos.ui.xml:242 +#: ui/macos.ui.xml:696 ui/windows.ui.xml:242 ui/windows.ui.xml:696 +msgid "Copy as text" +msgstr "" + +#: src/objects/application/actions/about.c:167 +msgid "Copyright © 2008 Banco do Brasil S.A." +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:114 +#: src/objects/os/windows/savedesktopicon.c:99 +#: src/objects/os/macos/savedesktopicon.c:54 +msgid "Create shortcut for the current session" +msgstr "" + +#: ui/linux.ui.xml:475 ui/linux.ui.xml:902 ui/macos.ui.xml:475 +#: ui/macos.ui.xml:902 ui/windows.ui.xml:475 ui/windows.ui.xml:902 +msgid "Cross hair cursor" +msgstr "" + +#: ui/linux.ui.xml:177 ui/linux.ui.xml:644 ui/macos.ui.xml:177 +#: ui/macos.ui.xml:644 ui/windows.ui.xml:177 ui/windows.ui.xml:644 +msgid "Current Screen" +msgstr "" + +#: ui/linux.ui.xml:140 ui/linux.ui.xml:607 ui/macos.ui.xml:140 +#: ui/macos.ui.xml:607 ui/windows.ui.xml:140 ui/windows.ui.xml:607 +msgid "Current screen" +msgstr "" + +#: ui/linux.ui.xml:670 ui/macos.ui.xml:670 ui/windows.ui.xml:670 +msgid "Current session" +msgstr "" + +#: ui/linux.ui.xml:257 ui/linux.ui.xml:716 ui/macos.ui.xml:257 +#: ui/macos.ui.xml:716 ui/windows.ui.xml:257 ui/windows.ui.xml:716 +msgid "Cut" +msgstr "" + +#: ui/linux.ui.xml:315 ui/linux.ui.xml:735 ui/linux.ui.xml:877 +#: ui/macos.ui.xml:315 ui/macos.ui.xml:735 ui/macos.ui.xml:877 +#: ui/windows.ui.xml:315 ui/windows.ui.xml:735 ui/windows.ui.xml:877 +msgid "Delete Field" +msgstr "" + +#: src/objects/os/windows/savedesktopicon.c:72 +msgid "Description" +msgstr "" + +#: ui/linux.ui.xml:808 ui/linux.ui.xml:1006 ui/macos.ui.xml:808 +#: ui/macos.ui.xml:1006 ui/windows.ui.xml:808 ui/windows.ui.xml:1006 +msgid "Disconnect" +msgstr "" + +#: src/objects/window/page.c:207 src/objects/window/window.c:778 +#: src/objects/window/window.c:805 +msgid "Disconnected from host" +msgstr "" + +#: ui/linux.ui.xml:540 ui/linux.ui.xml:929 ui/linux.ui.xml:1045 +#: ui/macos.ui.xml:540 ui/macos.ui.xml:929 ui/macos.ui.xml:1045 +#: ui/windows.ui.xml:540 ui/windows.ui.xml:929 ui/windows.ui.xml:1045 +msgid "Dynamic font spacing" +msgstr "" + +#: src/objects/keypad/element.c:128 +msgid "Element col" +msgstr "" + +#: src/objects/keypad/element.c:152 +msgid "Element height in rows" +msgstr "" + +#: src/objects/keypad/element.c:116 +msgid "Element row" +msgstr "" + +#: src/objects/keypad/element.c:140 +msgid "Element width in columns" +msgstr "" + +#: src/objects/actions/abstract.c:140 +msgid "Enabled" +msgstr "" + +#: src/objects/settings/actionview.c:78 +msgid "End" +msgstr "" + +#: ui/linux.ui.xml:310 ui/linux.ui.xml:730 ui/linux.ui.xml:872 +#: ui/macos.ui.xml:310 ui/macos.ui.xml:730 ui/macos.ui.xml:872 +#: ui/windows.ui.xml:310 ui/windows.ui.xml:730 ui/windows.ui.xml:872 +msgid "Erase input" +msgstr "" + +#: ui/linux.ui.xml:320 ui/linux.ui.xml:740 ui/linux.ui.xml:882 +#: ui/macos.ui.xml:320 ui/macos.ui.xml:740 ui/macos.ui.xml:882 +#: ui/windows.ui.xml:320 ui/windows.ui.xml:740 ui/windows.ui.xml:882 +msgid "Erase to end of field" +msgstr "" + +#: ui/linux.ui.xml:325 ui/linux.ui.xml:745 ui/linux.ui.xml:887 +#: ui/macos.ui.xml:325 ui/macos.ui.xml:745 ui/macos.ui.xml:887 +#: ui/windows.ui.xml:325 ui/windows.ui.xml:745 ui/windows.ui.xml:887 +msgid "Erase to end of line" +msgstr "" + +#: src/objects/os/windows/open.c:140 +msgid "Error starting session" +msgstr "" + +#: ui/linux.ui.xml:353 ui/macos.ui.xml:353 ui/windows.ui.xml:353 +msgid "Field attributes" +msgstr "" + +#: src/objects/os/windows/savedesktopicon.c:211 +msgid "File for session preferences" +msgstr "" + +#: ui/linux.ui.xml:470 ui/macos.ui.xml:470 ui/windows.ui.xml:470 +msgid "Full Screen" +msgstr "" + +#: ui/linux.ui.xml:779 ui/linux.ui.xml:955 ui/linux.ui.xml:1050 +#: ui/macos.ui.xml:779 ui/macos.ui.xml:955 ui/macos.ui.xml:1050 +#: ui/windows.ui.xml:779 ui/windows.ui.xml:955 ui/windows.ui.xml:1050 +msgid "Full screen" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:94 +msgid "Generic name" +msgstr "" + +#: ui/linux.ui.xml:37 ui/linux.ui.xml:550 ui/macos.ui.xml:37 +#: ui/macos.ui.xml:550 ui/windows.ui.xml:37 ui/windows.ui.xml:550 +msgid "Help" +msgstr "" + +#: ui/linux.ui.xml:390 ui/macos.ui.xml:390 ui/windows.ui.xml:390 +msgid "Host and Emulation settings" +msgstr "" + +#: src/objects/application/actions/about.c:119 src/objects/window/window.c:564 +#: src/objects/os/linux/savedesktopicon.c:102 +#: src/objects/os/windows/savedesktopicon.c:261 +msgid "IBM 3270 Terminal emulator" +msgstr "" + +#: src/objects/actions/view.c:89 +msgid "Icon" +msgstr "" + +#: src/objects/actions/abstract.c:101 +msgid "Icon Name" +msgstr "" + +#: src/objects/toolbar/settings.c:54 +msgid "Icon Size" +msgstr "" + +#: src/objects/toolbar/settings.c:61 +msgid "Icon Style" +msgstr "" + +#: src/objects/toolbar/models.c:52 +msgid "Icon _size" +msgstr "" + +#: src/objects/toolbar/models.c:108 +msgid "Icon type" +msgstr "" + +#: src/objects/toolbar/models.c:97 +msgid "Icons & text" +msgstr "" + +#: src/objects/toolbar/models.c:87 +msgid "Icons only" +msgstr "" + +#: src/objects/actions/abstract.c:141 +msgid "If the action can be activated" +msgstr "" + +#: ui/linux.ui.xml:1022 ui/macos.ui.xml:1022 ui/windows.ui.xml:1022 +msgid "Insert" +msgstr "" + +#: src/objects/keypad/attribute.c:79 +msgid "Invalid or unknown property type" +msgstr "" + +#: src/objects/settings/actionview.c:79 +msgid "Items packed from the end to the start" +msgstr "" + +#: src/objects/settings/actionview.c:69 +msgid "Items packed from the start to the end" +msgstr "" + +#: src/objects/toolbar/settings.c:112 +msgid "Itens" +msgstr "" + +#: ui/linux.ui.xml:515 ui/macos.ui.xml:515 ui/windows.ui.xml:515 +msgid "Keep selected" +msgstr "" + +#: ui/linux.ui.xml:395 ui/macos.ui.xml:395 ui/windows.ui.xml:395 +msgid "Keyboard accelerators" +msgstr "" + +#: src/objects/keypad/model.c:103 +msgid "Keypad Label" +msgstr "" + +#: src/objects/keypad/model.c:93 +msgid "Keypad Name" +msgstr "" + +#: src/objects/keypad/model.c:136 +msgid "Keypad height in rows" +msgstr "" + +#: src/objects/keypad/model.c:124 +msgid "Keypad width in columns" +msgstr "" + +#: src/main/builder.c:137 +msgid "Keypads" +msgstr "" + +#: src/objects/application/actions/about.c:171 +msgid "LICENSE" +msgstr "" + +#: src/objects/actions/view.c:98 +msgid "Label" +msgstr "" + +#: src/objects/toolbar/models.c:66 +msgid "Large" +msgstr "" + +#: src/objects/toolbar/models.c:131 +msgid "Left" +msgstr "" + +#: src/objects/settings/actionview.c:74 +msgid "List of the available and unpacked actions" +msgstr "" + +#: src/objects/application/application.c:167 +msgid "Log name" +msgstr "" + +#: ui/linux.ui.xml:72 ui/macos.ui.xml:72 ui/windows.ui.xml:72 +msgid "Main Menu" +msgstr "" + +#: ui/linux.ui.xml:67 ui/macos.ui.xml:67 ui/windows.ui.xml:67 +msgid "Main Toolbar" +msgstr "" + +#: ui/linux.ui.xml:1093 ui/macos.ui.xml:1093 ui/windows.ui.xml:1093 +msgid "Main menu" +msgstr "" + +#: src/objects/application/actions/about.c:159 +msgid "Maintainers" +msgstr "" + +#: ui/linux.ui.xml:348 ui/macos.ui.xml:348 ui/windows.ui.xml:348 +msgid "Menu" +msgstr "" + +#: ui/linux.ui.xml:419 ui/linux.ui.xml:1059 ui/macos.ui.xml:419 +#: ui/macos.ui.xml:1059 ui/windows.ui.xml:419 ui/windows.ui.xml:1059 +msgid "Model 2 - 80x24" +msgstr "" + +#: ui/linux.ui.xml:424 ui/linux.ui.xml:1064 ui/macos.ui.xml:424 +#: ui/macos.ui.xml:1064 ui/windows.ui.xml:424 ui/windows.ui.xml:1064 +msgid "Model 3 - 80x32" +msgstr "" + +#: ui/linux.ui.xml:429 ui/linux.ui.xml:1069 ui/macos.ui.xml:429 +#: ui/macos.ui.xml:1069 ui/windows.ui.xml:429 ui/windows.ui.xml:1069 +msgid "Model 4 - 80x43" +msgstr "" + +#: ui/linux.ui.xml:434 ui/linux.ui.xml:1074 ui/macos.ui.xml:434 +#: ui/macos.ui.xml:1074 ui/windows.ui.xml:434 ui/windows.ui.xml:1074 +msgid "Model 5 - 132x27" +msgstr "" + +#: ui/linux.ui.xml:460 ui/linux.ui.xml:924 ui/macos.ui.xml:460 +#: ui/macos.ui.xml:924 ui/windows.ui.xml:460 ui/windows.ui.xml:924 +msgid "Monocase" +msgstr "" + +#: ui/linux.ui.xml:535 ui/macos.ui.xml:535 ui/windows.ui.xml:535 +msgid "Network keep alive" +msgstr "" + +#: src/objects/window/page.c:275 +msgid "New session name" +msgstr "" + +#: src/objects/application/actions/window.c:84 +msgid "New tab" +msgstr "" + +#: src/objects/application/actions/window.c:85 +msgid "New tab with default session" +msgstr "" + +#: src/objects/application/actions/window.c:104 +msgid "New window" +msgstr "" + +#: src/objects/application/actions/window.c:105 +msgid "New window with default session" +msgstr "" + +#: src/objects/application/actions/open.c:49 +msgid "Open Session" +msgstr "" + +#: ui/linux.ui.xml:56 ui/macos.ui.xml:56 ui/windows.ui.xml:56 +msgid "Open in New Tab" +msgstr "" + +#: ui/linux.ui.xml:51 ui/macos.ui.xml:51 ui/windows.ui.xml:51 +msgid "Open in New Window" +msgstr "" + +#: src/objects/application/actions/open.c:201 +msgid "Open in new tab" +msgstr "" + +#: src/objects/application/actions/open.c:189 +msgid "Open in new window" +msgstr "" + +#: src/objects/application/actions/open.c:176 +msgid "Open session" +msgstr "" + +#: src/objects/application/actions/open.c:202 +msgid "Open session in New Tab" +msgstr "" + +#: src/objects/application/actions/open.c:190 +msgid "Open session in New window" +msgstr "" + +#: src/objects/application/actions/open.c:177 +msgid "Open session on the active terminal" +msgstr "" + +#: ui/linux.ui.xml:447 ui/linux.ui.xml:755 ui/linux.ui.xml:897 +#: ui/linux.ui.xml:1042 ui/macos.ui.xml:447 ui/macos.ui.xml:755 +#: ui/macos.ui.xml:897 ui/macos.ui.xml:1042 ui/windows.ui.xml:447 +#: ui/windows.ui.xml:755 ui/windows.ui.xml:897 ui/windows.ui.xml:1042 +msgid "Options" +msgstr "" + +#: src/objects/actions/abstract.c:124 +msgid "Parameter Type" +msgstr "" + +#: ui/linux.ui.xml:262 ui/linux.ui.xml:829 ui/macos.ui.xml:262 +#: ui/macos.ui.xml:829 ui/windows.ui.xml:262 ui/windows.ui.xml:829 +msgid "Paste from clipboard" +msgstr "" + +#: ui/linux.ui.xml:272 ui/linux.ui.xml:839 ui/macos.ui.xml:272 +#: ui/macos.ui.xml:839 ui/windows.ui.xml:272 ui/windows.ui.xml:839 +msgid "Paste from text file" +msgstr "" + +#: ui/linux.ui.xml:267 ui/linux.ui.xml:834 ui/macos.ui.xml:267 +#: ui/macos.ui.xml:834 ui/windows.ui.xml:267 ui/windows.ui.xml:834 +msgid "Paste next" +msgstr "" + +#: ui/linux.ui.xml:485 ui/linux.ui.xml:941 ui/macos.ui.xml:485 +#: ui/macos.ui.xml:941 ui/windows.ui.xml:485 ui/windows.ui.xml:941 +msgid "Paste with left margin" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:71 +#: src/objects/os/windows/savedesktopicon.c:66 +msgid "Path for the new shortcut" +msgstr "" + +#: src/objects/toolbar/models.c:125 +msgid "Position" +msgstr "" + +#: ui/linux.ui.xml:662 ui/macos.ui.xml:662 ui/windows.ui.xml:662 +msgid "Preferences" +msgstr "" + +#: ui/linux.ui.xml:174 ui/linux.ui.xml:641 ui/macos.ui.xml:174 +#: ui/macos.ui.xml:641 ui/windows.ui.xml:174 ui/windows.ui.xml:641 +msgid "Print" +msgstr "" + +#: ui/linux.ui.xml:992 ui/macos.ui.xml:992 ui/windows.ui.xml:992 +msgid "Print screen" +msgstr "" + +#: ui/linux.ui.xml:795 ui/macos.ui.xml:795 ui/windows.ui.xml:795 +msgid "Print selected" +msgstr "" + +#: src/objects/keypad/attribute.c:116 +#, c-format +msgid "Property \"%s\" is invalid for this object" +msgstr "" + +#: src/objects/application/actions/window.c:64 ui/linux.ui.xml:89 +#: ui/macos.ui.xml:89 ui/windows.ui.xml:89 +msgid "Quit" +msgstr "" + +#: src/objects/window/page.c:262 +msgid "Rename Session" +msgstr "" + +#: ui/linux.ui.xml:296 ui/linux.ui.xml:858 ui/macos.ui.xml:296 +#: ui/macos.ui.xml:858 ui/windows.ui.xml:296 ui/windows.ui.xml:858 +msgid "Reselect" +msgstr "" + +#: ui/linux.ui.xml:480 ui/linux.ui.xml:912 ui/macos.ui.xml:480 +#: ui/macos.ui.xml:912 ui/windows.ui.xml:480 ui/windows.ui.xml:912 +msgid "Resize on alternate screen" +msgstr "" + +#: src/objects/toolbar/models.c:137 +msgid "Right" +msgstr "" + +#: ui/linux.ui.xml:135 ui/linux.ui.xml:602 ui/macos.ui.xml:135 +#: ui/macos.ui.xml:602 ui/windows.ui.xml:135 ui/windows.ui.xml:602 +msgid "Save" +msgstr "" + +#: src/objects/actions/save.c:77 +msgid "Save current session preferences to file" +msgstr "" + +#: ui/linux.ui.xml:987 ui/macos.ui.xml:987 ui/windows.ui.xml:987 +msgid "Save screen" +msgstr "" + +#: ui/linux.ui.xml:790 ui/macos.ui.xml:790 ui/windows.ui.xml:790 +msgid "Save selected" +msgstr "" + +#: src/objects/actions/save.c:75 src/objects/actions/save.c:164 +msgid "Save session preferences" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:113 +#: src/objects/os/windows/savedesktopicon.c:98 +#: src/objects/os/macos/savedesktopicon.c:53 +msgid "Save session shortcut" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:230 +msgid "Save to session filename" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:202 +msgid "Save to shortcut file" +msgstr "" + +#: src/objects/os/windows/savedesktopicon.c:176 +msgid "Save to windows shortcut" +msgstr "" + +#: ui/linux.ui.xml:416 ui/linux.ui.xml:1056 ui/macos.ui.xml:416 +#: ui/macos.ui.xml:1056 ui/windows.ui.xml:416 ui/windows.ui.xml:1056 +msgid "Screen size" +msgstr "" + +#: ui/linux.ui.xml:286 ui/linux.ui.xml:853 ui/macos.ui.xml:286 +#: ui/macos.ui.xml:853 ui/windows.ui.xml:286 ui/windows.ui.xml:853 +msgid "Select Field" +msgstr "" + +#: ui/linux.ui.xml:281 ui/linux.ui.xml:848 ui/macos.ui.xml:281 +#: ui/macos.ui.xml:848 ui/windows.ui.xml:281 ui/windows.ui.xml:848 +msgid "Select all" +msgstr "" + +#: ui/linux.ui.xml:495 ui/linux.ui.xml:760 ui/macos.ui.xml:495 +#: ui/macos.ui.xml:760 ui/windows.ui.xml:495 ui/windows.ui.xml:760 +msgid "Select by rectangles" +msgstr "" + +#: src/objects/toolbar/settings.c:112 +msgid "Select the toolbar itens" +msgstr "" + +#: src/objects/toolbar/settings.c:117 +msgid "Selected" +msgstr "" + +#: ui/linux.ui.xml:145 ui/linux.ui.xml:182 ui/linux.ui.xml:612 +#: ui/linux.ui.xml:649 ui/macos.ui.xml:145 ui/macos.ui.xml:182 +#: ui/macos.ui.xml:612 ui/macos.ui.xml:649 ui/windows.ui.xml:145 +#: ui/windows.ui.xml:182 ui/windows.ui.xml:612 ui/windows.ui.xml:649 +msgid "Selected area" +msgstr "" + +#: src/objects/window/actions/filetransfer.c:45 +msgid "Send/Receive" +msgstr "" + +#: src/objects/window/actions/filetransfer.c:46 ui/linux.ui.xml:196 +#: ui/linux.ui.xml:997 ui/macos.ui.xml:196 ui/macos.ui.xml:997 +#: ui/windows.ui.xml:196 ui/windows.ui.xml:997 +msgid "Send/Receive files" +msgstr "" + +#: src/objects/toolbar/settings.c:252 src/objects/toolbar/settings.c:262 +msgid "Separator" +msgstr "" + +#: ui/linux.ui.xml:48 ui/linux.ui.xml:584 ui/macos.ui.xml:48 +#: ui/macos.ui.xml:584 ui/windows.ui.xml:48 ui/windows.ui.xml:584 +msgid "Session" +msgstr "" + +#: ui/linux.ui.xml:77 ui/linux.ui.xml:978 ui/linux.ui.xml:1098 +#: ui/macos.ui.xml:77 ui/macos.ui.xml:978 ui/macos.ui.xml:1098 +#: ui/windows.ui.xml:77 ui/windows.ui.xml:978 ui/windows.ui.xml:1098 +msgid "Session Trace" +msgstr "" + +#: src/objects/actions/save.c:63 src/objects/os/linux/savedesktopicon.c:85 +#: src/objects/os/windows/savedesktopicon.c:86 +msgid "Session file" +msgstr "" + +#: ui/linux.ui.xml:127 ui/linux.ui.xml:594 ui/macos.ui.xml:127 +#: ui/macos.ui.xml:594 ui/windows.ui.xml:127 ui/windows.ui.xml:594 +msgid "Session in New Tab" +msgstr "" + +#: ui/linux.ui.xml:122 ui/linux.ui.xml:589 ui/macos.ui.xml:122 +#: ui/macos.ui.xml:589 ui/windows.ui.xml:122 ui/windows.ui.xml:589 +msgid "Session in new window" +msgstr "" + +#: src/objects/actions/save.c:56 src/objects/os/linux/savedesktopicon.c:77 +#: src/objects/os/windows/savedesktopicon.c:78 +msgid "Session name" +msgstr "" + +#: src/objects/window/actions/sessionproperties.c:36 ui/linux.ui.xml:164 +#: ui/linux.ui.xml:631 ui/linux.ui.xml:1112 ui/macos.ui.xml:164 +#: ui/macos.ui.xml:631 ui/macos.ui.xml:1112 ui/windows.ui.xml:164 +#: ui/windows.ui.xml:631 ui/windows.ui.xml:1112 +msgid "Session preferences" +msgstr "" + +#: src/objects/application/application.c:249 +msgid "Set default log file name" +msgstr "" + +#: src/objects/application/application.c:239 +msgid "Set the user-interface type" +msgstr "" + +#: ui/linux.ui.xml:382 ui/macos.ui.xml:382 ui/windows.ui.xml:382 +msgid "Settings" +msgstr "" + +#: src/objects/toolbar/settings.c:182 +msgid "Setup the toolbar style and position" +msgstr "" + +#: src/objects/window/header-settings.c:53 +msgid "Setup title bar" +msgstr "" + +#: src/objects/toolbar/settings.c:94 src/objects/toolbar/toolbar.c:213 +msgid "Setup toolbar" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:70 +#: src/objects/os/windows/savedesktopicon.c:65 +msgid "Shortcut file" +msgstr "" + +#: ui/linux.ui.xml:159 ui/linux.ui.xml:626 ui/macos.ui.xml:159 +#: ui/macos.ui.xml:626 ui/windows.ui.xml:159 ui/windows.ui.xml:626 +msgid "Shortcut for this session" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:63 +msgid "Shortcut name" +msgstr "" + +#: ui/linux.ui.xml:510 ui/macos.ui.xml:510 ui/windows.ui.xml:510 +msgid "Show Underline" +msgstr "" + +#: ui/linux.ui.xml:774 ui/macos.ui.xml:774 ui/windows.ui.xml:774 +msgid "Show menu" +msgstr "" + +#: ui/linux.ui.xml:769 ui/macos.ui.xml:769 ui/windows.ui.xml:769 +msgid "Show toolbar" +msgstr "" + +#: src/objects/toolbar/models.c:61 +msgid "Small" +msgstr "" + +#: ui/linux.ui.xml:520 ui/linux.ui.xml:936 ui/macos.ui.xml:520 +#: ui/macos.ui.xml:936 ui/windows.ui.xml:520 ui/windows.ui.xml:936 +msgid "Smart paste" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:205 +msgid "Standard desktop files" +msgstr "" + +#: src/objects/settings/actionview.c:68 +msgid "Start" +msgstr "" + +#: src/objects/actions/abstract.c:152 +msgid "State" +msgstr "" + +#: src/objects/actions/abstract.c:131 +msgid "State Type" +msgstr "" + +#: src/objects/toolbar/settings.c:182 +msgid "Style & Position" +msgstr "" + +#: src/objects/toolbar/models.c:114 +msgid "Symbolic" +msgstr "" + +#: src/objects/toolbar/models.c:55 src/objects/toolbar/models.c:82 +#: src/objects/toolbar/models.c:111 +msgid "System default" +msgstr "" + +#: src/main/tools.c:64 +msgid "TN3270 Session Files" +msgstr "" + +#: src/objects/window/keyfile.c:241 +msgid "TN3270 Session description" +msgstr "" + +#: ui/linux.ui.xml:111 ui/linux.ui.xml:573 ui/macos.ui.xml:111 +#: ui/macos.ui.xml:573 ui/windows.ui.xml:111 ui/windows.ui.xml:573 +msgid "Tab with default session" +msgstr "" + +#: ui/linux.ui.xml:405 ui/macos.ui.xml:405 ui/windows.ui.xml:405 +msgid "Terminal colors" +msgstr "" + +#: ui/linux.ui.xml:442 ui/macos.ui.xml:442 ui/windows.ui.xml:442 +msgid "Terminal font" +msgstr "" + +#: src/objects/toolbar/models.c:92 +msgid "Text only" +msgstr "" + +#: src/objects/keypad/element.c:106 src/objects/keypad/model.c:104 +msgid "The Label of the keypad" +msgstr "" + +#: src/objects/actions/abstract.c:109 +msgid "The action label" +msgstr "" + +#: src/objects/actions/abstract.c:117 +msgid "The action tooltip" +msgstr "" + +#: src/objects/application/application.c:153 +msgid "The code of the User interface type" +msgstr "" + +#: src/objects/actions/save.c:64 +msgid "The file to save the current session preferences" +msgstr "" + +#: src/objects/os/linux/savedesktopicon.c:86 +#: src/objects/os/windows/savedesktopicon.c:87 +msgid "The file with the session preferences for this shortcut" +msgstr "" + +#: src/objects/application/application.c:168 +msgid "The full path of the default log file" +msgstr "" + +#: src/objects/actions/abstract.c:110 +msgid "The label for the action" +msgstr "" + +#: src/objects/keypad/element.c:96 +msgid "The name of associated action" +msgstr "" + +#: src/objects/window/window.c:206 +msgid "The name of the actions in the header bar" +msgstr "" + +#: src/objects/toolbar/toolbar.c:98 +msgid "The name of the actions in the toolbar" +msgstr "" + +#: src/objects/keypad/element.c:86 +msgid "The name of the icon" +msgstr "" + +#: src/objects/actions/abstract.c:102 +msgid "The name of the icon associated with the action" +msgstr "" + +#: src/objects/keypad/model.c:94 +msgid "The name used to identify the keypad" +msgstr "" + +#: src/objects/actions/abstract.c:94 +msgid "The name used to invoke the action" +msgstr "" + +#: src/objects/keypad/model.c:114 +msgid "The position of the keypad" +msgstr "" + +#: src/objects/actions/save.c:57 src/objects/os/linux/savedesktopicon.c:79 +#: src/objects/os/windows/savedesktopicon.c:80 +msgid "The session name used in the window/tab title (empty for default)" +msgstr "" + +#: src/objects/actions/abstract.c:153 +msgid "The state the action is in" +msgstr "" + +#: src/objects/toolbar/toolbar.c:109 +msgid "The toolbar icon size" +msgstr "" + +#: src/objects/toolbar/toolbar.c:135 +msgid "The toolbar icon type" +msgstr "" + +#: src/objects/toolbar/toolbar.c:122 +msgid "The toolbar style" +msgstr "" + +#: src/objects/actions/abstract.c:118 +msgid "The tooltip for the action" +msgstr "" + +#: src/objects/actions/abstract.c:125 +msgid "The type of GVariant passed to activate()" +msgstr "" + +#: src/objects/actions/abstract.c:132 +msgid "The type of the state kept by the action" +msgstr "" + +#: src/objects/os/macos/savedesktopicon.c:68 +msgid "This action is not available in this platform" +msgstr "" + +#: src/objects/window/header-settings.c:52 +msgid "Title bar" +msgstr "" + +#: src/objects/window/header-settings.c:64 +msgid "Title bar actions" +msgstr "" + +#: src/objects/toolbar/settings.c:93 ui/linux.ui.xml:343 ui/linux.ui.xml:968 +#: ui/linux.ui.xml:1088 ui/macos.ui.xml:343 ui/macos.ui.xml:968 +#: ui/macos.ui.xml:1088 ui/windows.ui.xml:343 ui/windows.ui.xml:968 +#: ui/windows.ui.xml:1088 +msgid "Toolbar" +msgstr "" + +#: src/objects/toolbar/settings.c:68 +msgid "Toolbar Style" +msgstr "" + +#: src/objects/toolbar/settings.c:75 +msgid "Toolbar position" +msgstr "" + +#: src/objects/toolbar/models.c:79 +msgid "Toolbar s_tyle" +msgstr "" + +#: src/objects/toolbar/models.c:128 +msgid "Top (system default)" +msgstr "" + +#: ui/linux.ui.xml:973 ui/macos.ui.xml:973 ui/windows.ui.xml:973 +msgid "Top menu" +msgstr "" + +#: ui/linux.ui.xml:338 ui/macos.ui.xml:338 ui/windows.ui.xml:338 +msgid "Trace" +msgstr "" + +#: ui/linux.ui.xml:465 ui/linux.ui.xml:1027 ui/macos.ui.xml:465 +#: ui/macos.ui.xml:1027 ui/windows.ui.xml:465 ui/windows.ui.xml:1027 +msgid "Track Cursor" +msgstr "" + +#: src/objects/application/application.c:152 +msgid "UI Type" +msgstr "" + +#: src/objects/os/windows/open.c:137 +#, c-format +msgid "Unable to load session preferences from '%s'" +msgstr "" + +#: ui/linux.ui.xml:291 ui/linux.ui.xml:800 ui/macos.ui.xml:291 +#: ui/macos.ui.xml:800 ui/windows.ui.xml:291 ui/windows.ui.xml:800 +msgid "Unselect" +msgstr "" + +#: src/objects/application/actions/about.c:98 +#, c-format +msgid "Unstable version %s-%s" +msgstr "" + +#: ui/linux.ui.xml:530 ui/linux.ui.xml:907 ui/macos.ui.xml:530 +#: ui/macos.ui.xml:907 ui/windows.ui.xml:530 ui/windows.ui.xml:907 +msgid "Use +/- for field navigation" +msgstr "" + +#: src/objects/application/actions/about.c:100 +#, c-format +msgid "Version %s-%s" +msgstr "" + +#: src/objects/window/header.c:63 ui/linux.ui.xml:64 ui/linux.ui.xml:965 +#: ui/linux.ui.xml:1085 ui/macos.ui.xml:64 ui/macos.ui.xml:965 +#: ui/macos.ui.xml:1085 ui/windows.ui.xml:64 ui/windows.ui.xml:965 +#: ui/windows.ui.xml:1085 +msgid "View" +msgstr "" + +#: src/objects/application/actions/about.c:191 +msgid "View this project on github" +msgstr "" + +#: ui/linux.ui.xml:106 ui/linux.ui.xml:568 ui/macos.ui.xml:106 +#: ui/macos.ui.xml:568 ui/windows.ui.xml:106 ui/windows.ui.xml:568 +msgid "Window with default session" +msgstr "" + +#: src/objects/os/windows/savedesktopicon.c:179 +msgid "Windows shortcuts" +msgstr "" + +#: src/objects/settings/dialog.c:79 +msgid "_Apply" +msgstr "" + +#: src/objects/actions/save.c:103 src/objects/settings/dialog.c:78 +#: src/objects/os/linux/savedesktopicon.c:140 +#: src/objects/os/windows/savedesktopicon.c:124 +msgid "_Cancel" +msgstr "" + +#: src/objects/window/page.c:371 +msgid "_Close session" +msgstr "" + +#: ui/linux.ui.xml:369 ui/linux.ui.xml:1107 ui/macos.ui.xml:369 +#: ui/macos.ui.xml:1107 ui/windows.ui.xml:369 ui/windows.ui.xml:1107 +msgid "_Connect" +msgstr "" + +#: ui/linux.ui.xml:374 ui/macos.ui.xml:374 ui/windows.ui.xml:374 +msgid "_Disconnect" +msgstr "" + +#: ui/linux.ui.xml:232 ui/linux.ui.xml:681 ui/linux.ui.xml:824 +#: ui/macos.ui.xml:232 ui/macos.ui.xml:681 ui/macos.ui.xml:824 +#: ui/windows.ui.xml:232 ui/windows.ui.xml:681 ui/windows.ui.xml:824 +msgid "_Edit" +msgstr "" + +#: ui/linux.ui.xml:99 ui/macos.ui.xml:99 ui/windows.ui.xml:99 +msgid "_File" +msgstr "" + +#: ui/linux.ui.xml:361 ui/macos.ui.xml:361 ui/windows.ui.xml:361 +msgid "_Network" +msgstr "" + +#: ui/linux.ui.xml:103 ui/linux.ui.xml:565 ui/macos.ui.xml:103 +#: ui/macos.ui.xml:565 ui/windows.ui.xml:103 ui/windows.ui.xml:565 +msgid "_New" +msgstr "" + +#: ui/linux.ui.xml:119 ui/linux.ui.xml:581 ui/macos.ui.xml:119 +#: ui/macos.ui.xml:581 ui/windows.ui.xml:119 ui/windows.ui.xml:581 +msgid "_Open" +msgstr "" + +#: src/objects/toolbar/toolbar.c:235 +msgid "_Preferences" +msgstr "" + +#: src/objects/window/page.c:365 +msgid "_Rename session" +msgstr "" + +#: src/objects/actions/save.c:104 src/objects/os/linux/savedesktopicon.c:141 +#: src/objects/os/windows/savedesktopicon.c:125 +msgid "_Save" +msgstr "" + +#: ui/linux.ui.xml:335 ui/macos.ui.xml:335 ui/windows.ui.xml:335 +msgid "_View" +msgstr "" + +#: src/objects/application/actions/about.c:190 +msgid "https://github.com/PerryWerneck/pw3270" +msgstr "" + +#: src/objects/application/actions/about.c:193 +msgid "translator-credits" +msgstr "" diff --git a/msys-run.sh b/msys-run.sh new file mode 100644 index 00000000..c6286e75 --- /dev/null +++ b/msys-run.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +make all +if [ "$?" != "0" ]; then + exit -1 +fi + +make DESTDIR=${PWD}/.build install +if [ "$?" != "0" ]; then + exit -1 +fi + +bash ./win/makeruntime.sh +if [ "$?" != "0" ]; then + exit -1 +fi + +.build/mingw64/bin/pw3270.exe +if [ "$?" != "0" ]; then + exit -1 +fi + + + diff --git a/src/include/config.h.in b/src/include/config.h.in index 57688463..d072aad6 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 @@ -99,7 +99,9 @@ /* The product name */ #undef PRODUCT_NAME -/* Define to 1 if you have the ANSI C header files. */ +/* 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. */ #undef STDC_HEADERS /* Version number of package */ diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index f9500989..21b5fb8e 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -28,9 +28,11 @@ # Setup default paths srcdir="$(dirname $(dirname $(readlink -f "${0}")))" prefix="@prefix@" -GDK_LOADERS=$(@PKG_CONFIG@ --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0) + +GTK_PREFIX=$(@PKG_CONFIG@ --variable=prefix gtk+-3.0) GTK_BINARY_VERSION=$(@PKG_CONFIG@ --variable=gtk_binary_version gtk+-3.0) -GTK_LIBDIR=$(@PKG_CONFIG@ --variable=libdir 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" @@ -273,12 +275,14 @@ install_icons() { install_loaders() { - if [ -d "${GDK_LOADERS}" ]; then - mkdir -p "${buildroot}/${GDK_LOADERS}" - cp -rv "${GDK_LOADERS}/*" "${buildroot}/${GDK_LOADERS}" + if [ -d "${prefix}${GDK_LOADERS}" ]; then + 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 } From 68cc0524090c431b2319a8c3360fb56419e1833d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 27 Mar 2023 23:04:15 -0300 Subject: [PATCH 068/186] Working on mingw64 package. --- .github/workflows/winpkg.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 111f6282..f040081e 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -8,7 +8,7 @@ on: branches: - winpkg jobs: - msys2-mingw: + msys2-mingw64: runs-on: windows-latest defaults: run: @@ -26,7 +26,8 @@ jobs: update: true install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl - libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-nsis + libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-librsvg mingw-w64-x86_64-gdk-pixbuf2 + mingw-w64-x86_64-nsis - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/lib3270 @@ -69,11 +70,11 @@ jobs: - name: Make Runtime run: /bin/bash ./win/makeruntime.sh - name: Make Package - run: tar -C ./.build -Jcvf mingw-pw3270-full.tar.xz . + run: tar -C ./.build -Jcvf mingw64-pw3270-full.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: mingw-pw3270-full.tar.xz + artifacts: mingw64-pw3270-full.tar.xz allowUpdates: true draft: false makeLatest: true From 48011f4e0b6450f3a6f1b82360289fa38ec23856 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 27 Mar 2023 23:33:42 -0300 Subject: [PATCH 069/186] Fixing runtime builder. --- win/makeruntime.sh.in | 1 + 1 file changed, 1 insertion(+) diff --git a/win/makeruntime.sh.in b/win/makeruntime.sh.in index 21b5fb8e..13fef23d 100755 --- a/win/makeruntime.sh.in +++ b/win/makeruntime.sh.in @@ -276,6 +276,7 @@ install_icons() { 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 From 712d9e8c154b797158c161a6ea0a81c341cfb571 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 28 Mar 2023 07:23:27 -0300 Subject: [PATCH 070/186] Using the same schemas for mac,windows and linux. --- Makefile.in | 6 +- configure.ac | 25 ++-- schemas/Makefile.in | 6 +- .../{windows => }/application.gschema.xml.in | 40 +++--- schemas/linux/application.gschema.xml.in | 87 ------------ schemas/macos/application.gschema.xml.in | 87 ------------ schemas/macos/window.gschema.xml.in | 121 ----------------- schemas/{linux => }/window.gschema.xml.in | 34 ++--- schemas/windows/window.gschema.xml.in | 127 ------------------ src/include/config.h.in | 6 + 10 files changed, 56 insertions(+), 483 deletions(-) rename schemas/{windows => }/application.gschema.xml.in (59%) delete mode 100644 schemas/linux/application.gschema.xml.in delete mode 100644 schemas/macos/application.gschema.xml.in delete mode 100644 schemas/macos/window.gschema.xml.in rename schemas/{linux => }/window.gschema.xml.in (71%) delete mode 100644 schemas/windows/window.gschema.xml.in diff --git a/Makefile.in b/Makefile.in index d5b43a24..ddcdbcae 100644 --- a/Makefile.in +++ b/Makefile.in @@ -55,8 +55,8 @@ SOURCES= \ $(wildcard $(srcdir)/src/main/@OSNAME@/*.rc) SCHEMAS= \ - $(wildcard schemas/@OSNAME@/*.gschema.xml) \ - $(wildcard schemas/common/*.gschema.xml) + $(wildcard schemas/*.gschema.xml) \ + $(wildcard schemas/*.gschema.xml) #---[ Tools ]---------------------------------------------------------------------------- @@ -198,7 +198,7 @@ $(POTDIR)/%.pot: \ @touch $@ $(OBJDIR)/schemas/%.xml: \ - schemas/@OSNAME@/%.xml + schemas/%.xml @$(MKDIR) $(@D) @cp "$^" "$@" diff --git a/configure.ac b/configure.ac index 86b319c2..90ae587f 100644 --- a/configure.ac +++ b/configure.ac @@ -75,8 +75,6 @@ case "$host" in AC_CONFIG_FILES(src/main/windows/app-manifest.xml) # Windows and linux doesn't use the same defaults. - AC_CONFIG_FILES(schemas/windows/application.gschema.xml) - AC_CONFIG_FILES(schemas/windows/window.gschema.xml) AC_CONFIG_FILES(win/makeruntime.sh) AC_CONFIG_FILES(win/pw3270.nsi) @@ -93,7 +91,7 @@ case "$host" in AC_SUBST(PROGRAMFILES,$app_cv_programfiles) AC_SUBST(WINARCH,$app_cv_winarch) AC_SUBST(NSISREDIR,$app_cv_nsisredir) - + AC_SUBST(DEFAULT_UI_STYLE,0) ;; *-apple-darwin*) @@ -102,9 +100,7 @@ case "$host" in CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" - - AC_CONFIG_FILES(schemas/macos/application.gschema.xml) - AC_CONFIG_FILES(schemas/macos/window.gschema.xml) + AC_SUBST(DEFAULT_UI_STYLE,0) ;; *) @@ -113,9 +109,7 @@ case "$host" in CFLAGS="$CFLAGS -pthread -DLIBDIR=\$(libdir)" LDFLAGS="$LDFLAGS -pthread" - - AC_CONFIG_FILES(schemas/linux/application.gschema.xml) - AC_CONFIG_FILES(schemas/linux/window.gschema.xml) + AC_SUBST(DEFAULT_UI_STYLE,0) esac @@ -202,8 +196,15 @@ AC_ARG_WITH([product-name], [AS_HELP_STRING([--with-product-name], [Set product AC_DEFINE_UNQUOTED(PRODUCT_NAME, $app_cv_product,[The product name]) AC_SUBST(PRODUCT_NAME,$app_cv_product) -AC_ARG_WITH([application-id], [AS_HELP_STRING([--application-id], [Set the application ID])], [ app_cv_application_id="$withval" ],[ app_cv_application_id=`pkg-config --variable=product_id lib3270`.terminal ]) +AC_ARG_WITH([product-id], [AS_HELP_STRING([--product-id], [Set the product ID])], [ app_cv_product_id="$withval" ],[ app_cv_product_id=`$PKG_CONFIG --variable=product_id lib3270` ]) +AC_DEFINE_UNQUOTED(PRODUCT_ID, $app_cv_product_id,[The product ID]) +AC_SUBST(PRODUCT_ID,$app_cv_product_id) +app_cv_object_path="/"`echo $app_cv_product_id | sed -e "s@\.@/@g"`"/" +AC_DEFINE_UNQUOTED(PRODUCT_PATH, "$app_cv_object_path",[The schema path]) +AC_SUBST(PRODUCT_PATH,$app_cv_object_path) + +AC_ARG_WITH([application-id], [AS_HELP_STRING([--application-id], [Set the application ID])], [ app_cv_application_id="$withval" ],[ app_cv_application_id=$app_cv_product_id.terminal ]) AC_DEFINE_UNQUOTED(APPLICATION_ID, $app_cv_application_id,[The application ID]) AC_SUBST(APPLICATION_ID,$app_cv_application_id) @@ -294,7 +295,11 @@ dnl Configure which files to generate. dnl --------------------------------------------------------------------------- AC_CONFIG_FILES(Makefile) + +AC_CONFIG_FILES(schemas/application.gschema.xml) +AC_CONFIG_FILES(schemas/window.gschema.xml) AC_CONFIG_FILES(schemas/Makefile) + AC_CONFIG_FILES(locale/Makefile) AC_CONFIG_FILES(branding/Makefile) diff --git a/schemas/Makefile.in b/schemas/Makefile.in index 5f249029..02731b60 100644 --- a/schemas/Makefile.in +++ b/schemas/Makefile.in @@ -50,18 +50,18 @@ all: @$(MKDIR) $(BINDIR) @$(GLIB_SCHEMA_COMPILER) \ --targetdir=$(BINDIR) \ - ./@OSNAME@ + . install: \ all @$(MKDIR) $(DESTDIR)/$(schemadir) @$(INSTALL_DATA) \ - @OSNAME@/application.gschema.xml \ + application.gschema.xml \ $(DESTDIR)/$(schemadir)/$(PRODUCT_NAME)-application.gschema.xml @$(INSTALL_DATA) \ - @OSNAME@/window.gschema.xml \ + window.gschema.xml \ $(DESTDIR)/$(schemadir)/$(PRODUCT_NAME)-window.gschema.xml @$(GLIB_SCHEMA_COMPILER) \ diff --git a/schemas/windows/application.gschema.xml.in b/schemas/application.gschema.xml.in similarity index 59% rename from schemas/windows/application.gschema.xml.in rename to schemas/application.gschema.xml.in index ea7ceddd..898cae13 100644 --- a/schemas/windows/application.gschema.xml.in +++ b/schemas/application.gschema.xml.in @@ -1,39 +1,31 @@ - + - 0 + @DEFAULT_UI_STYLE@

UI Style The ID of the current user interface style @@ -41,9 +33,9 @@ 0 GTK CSD - Gtk Client side decorations + Gtk Client side decorations (win32 only) - + true Allow host settings diff --git a/schemas/linux/application.gschema.xml.in b/schemas/linux/application.gschema.xml.in deleted file mode 100644 index 8c07164e..00000000 --- a/schemas/linux/application.gschema.xml.in +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - 2 - UI Style - The ID of the current user interface style - - - - - true - Allow host settings - Allow changing of host session properties - - - - true - Enable open session actions actions - Enable open session actions - - - - true - Enable new tab actions - Enable new tab actions - - - - true - Enable new window actions - Enable new window actions - - - - '~/.config/default.3270' - Path of the default session file - - - - - false - Update default session time from command line - - - - - true - Add session file to recent file list - - - - - - - diff --git a/schemas/macos/application.gschema.xml.in b/schemas/macos/application.gschema.xml.in deleted file mode 100644 index 8c07164e..00000000 --- a/schemas/macos/application.gschema.xml.in +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - 2 - UI Style - The ID of the current user interface style - - - - - true - Allow host settings - Allow changing of host session properties - - - - true - Enable open session actions actions - Enable open session actions - - - - true - Enable new tab actions - Enable new tab actions - - - - true - Enable new window actions - Enable new window actions - - - - '~/.config/default.3270' - Path of the default session file - - - - - false - Update default session time from command line - - - - - true - Add session file to recent file list - - - - - - - diff --git a/schemas/macos/window.gschema.xml.in b/schemas/macos/window.gschema.xml.in deleted file mode 100644 index 62d1a2e4..00000000 --- a/schemas/macos/window.gschema.xml.in +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - -1 - The window width. - - - - - -1 - The window height. - - - - - false - Is the window maximized? - - - - - false - Is the window in full screen mode? - - - - - false - Enable top window subtitle - If TRUE, reserve space for a subtitle, even if none is currently set. - - - - false - The toolbar visible state - - - - - -1 - How to draw the toolbar. - - - - - 0 - The size of the toolbar icons - - - - - 0 - Use symbolic icons on toolbar - - - - - 0 - Use symbolic icons on title bar - - - - - 0 - The toolbar position - - - - - 'win.copy,win.paste,win.select-all,separator,win.clear,win.erase-input,separator,win.print,separator,win.zoom-out,win.zoom-fit-best,win.zoom-in' - The toolbar action list - - - - - 'app.tab.new:menu.open-menu,win.disconnect,win.reconnect' - The title bar action list - - - - - '' - Path of the default session file - - - - - - diff --git a/schemas/linux/window.gschema.xml.in b/schemas/window.gschema.xml.in similarity index 71% rename from schemas/linux/window.gschema.xml.in rename to schemas/window.gschema.xml.in index 02bb0c48..34786a0e 100644 --- a/schemas/linux/window.gschema.xml.in +++ b/schemas/window.gschema.xml.in @@ -1,36 +1,28 @@ - + -1 diff --git a/schemas/windows/window.gschema.xml.in b/schemas/windows/window.gschema.xml.in deleted file mode 100644 index 39321e7a..00000000 --- a/schemas/windows/window.gschema.xml.in +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - -1 - The window width. - - - - - -1 - The window height. - - - - - false - Is the window maximized? - - - - - false - Is the window in full screen mode? - - - - - false - Enable top window subtitle - If TRUE, reserve space for a subtitle, even if none is currently set. - - - - true - The toolbar visible state - - - - - true - The menubar visible state - - - - - 0 - How to draw the toolbar. - - - - - 2 - The size of the toolbar icons - - - - - 0 - Use symbolic icons on toolbar - - - - - 0 - Use symbolic icons on title bar - - - - - 0 - The toolbar position - - - - - 'win.copy,win.paste,win.select-all,separator,win.clear,win.erase-input,separator,win.print,separator,win.zoom-out,win.zoom-fit-best,win.zoom-in' - The toolbar action list - - - - - 'menu.open-menu,win.disconnect,win.reconnect:' - The title bar action list - - - - - '' - Path of the default session file - - - - - - diff --git a/src/include/config.h.in b/src/include/config.h.in index 57688463..6234a289 100644 --- a/src/include/config.h.in +++ b/src/include/config.h.in @@ -96,9 +96,15 @@ /* The product name */ #undef PLUGIN_DIR +/* The product ID */ +#undef PRODUCT_ID + /* The product name */ #undef PRODUCT_NAME +/* The schema path */ +#undef PRODUCT_PATH + /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS From 8bb2049545a9c51b35a74ac8ae83c2df09ee9ccc Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 28 Mar 2023 08:04:34 -0300 Subject: [PATCH 071/186] Fixing schemas. --- src/objects/settings/gsettings.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/objects/settings/gsettings.c b/src/objects/settings/gsettings.c index a008eb5c..17843287 100644 --- a/src/objects/settings/gsettings.c +++ b/src/objects/settings/gsettings.c @@ -148,9 +148,9 @@ } GSettings * pw3270_application_settings_new() { - return settings_new("br.app." G_STRINGIFY(PRODUCT_NAME)); - } + return settings_new(G_STRINGIFY(PRODUCT_ID)); + } GSettings * pw3270_application_window_settings_new() { - return settings_new("br.app." G_STRINGIFY(PRODUCT_NAME) ".window"); + return settings_new(G_STRINGIFY(PRODUCT_ID) ".window"); } From 865d80d9027832b55c41b71b91838b22ec5f6e88 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 28 Mar 2023 10:55:40 -0300 Subject: [PATCH 072/186] Fixing win32 build, validating system settings on startup. --- Makefile.in | 3 +-- configure.ac | 2 +- src/objects/application/application.c | 28 +++++++++++++++++++++++++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/Makefile.in b/Makefile.in index 5383deb8..805aca8e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -29,7 +29,7 @@ datarootdir=@datarootdir@ localedir=@localedir@ docdir=@docdir@ sysconfdir=@sysconfdir@ -datadir=$(datarootdir)/@PRODUCT_NAME@ +datadir="$(datarootdir)/@PRODUCT_NAME@" #---[ Configuration ]-------------------------------------------------------------------- @@ -97,7 +97,6 @@ CFLAGS= \ -Isrc/include \ -I$(srcdir)/src/include \ -DBUILD_DATE=`date +%Y%m%d` \ - -DDATADIR=$(datadir) \ @LIBV3270_CFLAGS@ \ @GTK_CFLAGS@ diff --git a/configure.ac b/configure.ac index b56c5e6d..25df7e1a 100644 --- a/configure.ac +++ b/configure.ac @@ -107,7 +107,7 @@ case "$host" in app_cv_osname="linux" app_rls_ldflags="" - CFLAGS="$CFLAGS -pthread -DLIBDIR=\$(libdir)" + CFLAGS="$CFLAGS -pthread -DLIBDIR=\$(libdir) -DDATADIR=\$(datadir)" LDFLAGS="$LDFLAGS -pthread" AC_SUBST(DEFAULT_UI_STYLE,0) diff --git a/src/objects/application/application.c b/src/objects/application/application.c index 50169de6..eccf58c9 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -430,8 +430,6 @@ void startup(GApplication *application) { G_APPLICATION_CLASS(pw3270Application_parent_class)->startup(application); -// GSettings *settings = pw3270_application_get_settings(application); - // // Common actions // @@ -525,6 +523,32 @@ void activate(GApplication *application) { GtkWidget * window = pw3270_application_window_new(GTK_APPLICATION(application),NULL); + if(!PW3270_APPLICATION(application)->settings) { + + GtkWidget * dialog = gtk_message_dialog_new_with_markup( + NULL, + 0, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + _("Initialization has failed") + ); + + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),_("Unable to initialize settings. Application may crash in unexpected ways")); + + gtk_window_set_title(GTK_WINDOW(dialog),_("System settings error")); + + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); + + gtk_widget_show_all(dialog); + + gtk_dialog_run(GTK_DIALOG(dialog)); + + gtk_widget_destroy(dialog); + + g_application_quit(G_APPLICATION(application)); + + } + // Present the new window pw3270_window_set_current_page(window,0); gtk_window_present(GTK_WINDOW(window)); From 89ba158462ad023bfc671e7c9af1e03fdcc211fc Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 28 Mar 2023 15:44:10 -0300 Subject: [PATCH 073/186] Better imagem scan for about window. --- src/objects/application/actions/about.c | 82 +++++++++++++------------ 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/src/objects/application/actions/about.c b/src/objects/application/actions/about.c index d1af9a1c..3ce68c6c 100644 --- a/src/objects/application/actions/about.c +++ b/src/objects/application/actions/about.c @@ -32,6 +32,43 @@ #include #include +static char * find_logo() { + + static const char * names[] = { + G_STRINGIFY(PRODUCT_NAME) "-about.svg", + G_STRINGIFY(PRODUCT_NAME) "-logo.svg", + G_STRINGIFY(PRODUCT_NAME) ".svg", + G_STRINGIFY(PRODUCT_NAME) "-about.png", + G_STRINGIFY(PRODUCT_NAME) "-logo.png", + G_STRINGIFY(PRODUCT_NAME) ".png", + + G_STRINGIFY(PACKAGE_NAME) "-about.svg", + G_STRINGIFY(PACKAGE_NAME) "-logo.svg", + G_STRINGIFY(PACKAGE_NAME) ".svg", + G_STRINGIFY(PACKAGE_NAME) "-about.png", + G_STRINGIFY(PACKAGE_NAME) "-logo.png", + G_STRINGIFY(PACKAGE_NAME) ".png", + }; + + size_t ix; + + for(ix = 0; ix < G_N_ELEMENTS(names); ix++) { + + char * filename = lib3270_build_data_filename(names[ix],NULL); + + if(filename) { + + if(g_file_test(filename,G_FILE_TEST_IS_REGULAR)) + return filename; + free(filename); + + } + + } + + return NULL; +} + static GtkWidget * factory(PW3270Action G_GNUC_UNUSED(*action), GtkApplication *application) { GtkAboutDialog * dialog = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); @@ -46,49 +83,18 @@ static GtkWidget * factory(PW3270Action G_GNUC_UNUSED(*action), GtkApplication * // Get application logo { - static const char * names[] = { - G_STRINGIFY(PRODUCT_NAME) "-about.svg", - G_STRINGIFY(PRODUCT_NAME) "-logo.svg", - G_STRINGIFY(PRODUCT_NAME) ".svg", - G_STRINGIFY(PRODUCT_NAME) "-logo.png", - G_STRINGIFY(PRODUCT_NAME) ".png", - - G_STRINGIFY(PACKAGE_NAME) "-about.svg", - G_STRINGIFY(PACKAGE_NAME) "-logo.svg", - G_STRINGIFY(PACKAGE_NAME) ".svg", - G_STRINGIFY(PACKAGE_NAME) "-logo.png", - G_STRINGIFY(PACKAGE_NAME) ".png", - }; - - size_t ix; - - for(ix = 0; ix < G_N_ELEMENTS(names); ix++) { - -#ifdef DEBUG - g_autofree gchar * filename = g_build_filename(".","branding",names[ix],NULL); - debug("Searching for '%s'",filename); -#else - lib3270_autoptr(char) filename = lib3270_build_data_filename(names[ix],NULL); -#endif // DEBUG - - if(!g_file_test(filename,G_FILE_TEST_IS_REGULAR)) - continue; - - GError * error = NULL; - g_autoptr(GdkPixbuf) pix = gdk_pixbuf_new_from_file_at_size(filename,-1,150,&error); + char * logo = find_logo(); + if(logo) { + GError * error = NULL; + g_autoptr(GdkPixbuf) pix = gdk_pixbuf_new_from_file_at_size(logo,-1,150,&error); if(error) { - g_warning("Can't load \"%s\": %s",filename,error->message); + g_message("Can't load \"%s\": %s",logo,error->message); g_error_free(error); - continue; - } - - if(pix) { + } else { gtk_about_dialog_set_logo(dialog,pix); - break; } - + free(logo); } - } // Set version From aa1c52ee76eb5901e4c76c8924f4368063bb9a33 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 28 Mar 2023 20:32:22 -0300 Subject: [PATCH 074/186] Fixing keypad path. --- src/include/pw3270.h | 1 + src/main/linux/tools.c | 16 ++++++++++++-- src/main/windows/tools.c | 21 ++++++++++++++++++ src/objects/application/application.c | 32 +++++++++++++++++---------- 4 files changed, 56 insertions(+), 14 deletions(-) diff --git a/src/include/pw3270.h b/src/include/pw3270.h index 7828d949..41aa0be6 100644 --- a/src/include/pw3270.h +++ b/src/include/pw3270.h @@ -64,6 +64,7 @@ struct _Pw3270SettingsPage { void gtk_file_chooser_set_pw3270_filters(GtkFileChooser *chooser); gchar * pw3270_build_data_filename(const char *filename); +gchar * pw3270_build_data_path(const char *path); G_END_DECLS diff --git a/src/main/linux/tools.c b/src/main/linux/tools.c index e34b2545..ae299ef7 100644 --- a/src/main/linux/tools.c +++ b/src/main/linux/tools.c @@ -20,12 +20,24 @@ #include #include + gchar * pw3270_build_data_path(const char *name) { + + gchar * path = g_build_filename(G_STRINGIFY(DATADIR),name,NULL); + + if(g_file_test(path,G_FILE_TEST_IS_DIR)) { + return path; + } + g_free(path); + + g_message("Cant find path for '%s'",path); + return NULL; + + } + gchar * pw3270_build_data_filename(const char *filename) { gchar * path = g_build_filename(G_STRINGIFY(DATADIR),filename,NULL); - printf("\n\n\n%s\n\n\n",path); - if(g_file_test(path,G_FILE_TEST_IS_REGULAR)) { return path; } diff --git a/src/main/windows/tools.c b/src/main/windows/tools.c index 3060603d..09105ccb 100644 --- a/src/main/windows/tools.c +++ b/src/main/windows/tools.c @@ -20,6 +20,27 @@ #include #include + gchar * pw3270_build_data_path(const char *name) { + + g_autofree gchar * pkgdir = g_win32_get_package_installation_directory_of_module(NULL); + + gchar * path = g_build_filename(pkgdir,name,NULL); + if(g_file_test(path,G_FILE_TEST_IS_DIR)) { + return path; + } + g_free(path); + + path = g_build_filename(pkgdir,"share",G_STRINGIFY(PRODUCT_NAME),name,NULL); + if(g_file_test(path,G_FILE_TEST_IS_DIR)) { + return path; + } + + g_free(path); + g_message("Cant find path for '%s'",path); + return NULL; + + } + gchar * pw3270_build_data_filename(const char *filename) { g_autofree gchar * pkgdir = g_win32_get_package_installation_directory_of_module(NULL); diff --git a/src/objects/application/application.c b/src/objects/application/application.c index eccf58c9..4bc21c17 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -486,25 +486,33 @@ void startup(GApplication *application) { // Load keypad models // { - lib3270_autoptr(char) keypad_path = lib3270_build_data_filename("keypad",NULL); + g_autofree gchar *keypad_path = pw3270_build_data_path("keypad"); - g_autoptr(GError) error = NULL; - g_autoptr(GDir) dir = g_dir_open(keypad_path,0,&error); + if(keypad_path) { - if(dir) { + g_message("Searching for keypads in '%s'",keypad_path); + + g_autoptr(GError) error = NULL; + g_autoptr(GDir) dir = g_dir_open(keypad_path,0,&error); + + if(dir) { + + const gchar *name = g_dir_read_name(dir); + while(!error && name) { + g_autofree gchar * path = g_build_filename(keypad_path,name,NULL); + app->keypads = pw3270_keypad_model_new_from_xml(app->keypads,path); + name = g_dir_read_name(dir); + } - const gchar *name = g_dir_read_name(dir); - while(!error && name) { - g_autofree gchar * path = g_build_filename(keypad_path,name,NULL); - app->keypads = pw3270_keypad_model_new_from_xml(app->keypads,path); - name = g_dir_read_name(dir); } - } + if(error) { + g_message("Can't read %s: %s",keypad_path,error->message); + } + - if(error) { - g_message("Can't read %s: %s",keypad_path,error->message); } + } // From e4b1a01508bcaa6d1de4a1fd8a6648f4223309d5 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 29 Mar 2023 15:46:07 -0300 Subject: [PATCH 075/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index f040081e..14f43773 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -32,7 +32,7 @@ jobs: with: repository: PerryWerneck/lib3270 latest: true - fileName: mingw-lib3270.tar.xz + fileName: mingw-lib3270.x86_64.tar.xz - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/libv3270 From f9d2a03f768ef4a894ddad44aba6ed0b8633dd01 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 29 Mar 2023 22:55:06 -0300 Subject: [PATCH 076/186] Default menu visibility is 'true' on windows. --- configure.ac | 5 +++-- schemas/window.gschema.xml.in | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 90ae587f..b543047a 100644 --- a/configure.ac +++ b/configure.ac @@ -92,6 +92,7 @@ case "$host" in AC_SUBST(WINARCH,$app_cv_winarch) AC_SUBST(NSISREDIR,$app_cv_nsisredir) AC_SUBST(DEFAULT_UI_STYLE,0) + AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"true") ;; *-apple-darwin*) @@ -107,9 +108,10 @@ case "$host" in app_cv_osname="linux" app_rls_ldflags="" - CFLAGS="$CFLAGS -pthread -DLIBDIR=\$(libdir)" + CFLAGS="$CFLAGS -pthread -DLIBDIR=\$(libdir) -DDATADIR=\$(datadir)" LDFLAGS="$LDFLAGS -pthread" AC_SUBST(DEFAULT_UI_STYLE,0) + AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"false") esac @@ -139,7 +141,6 @@ dnl --------------------------------------------------------------------------- AC_PATH_TOOL([AR], [ar], [ar]) AC_PATH_TOOL([CONVERT], [convert], [no]) -AC_PATH_TOOL([OPTIPNG],[optipng],[no]) AC_PATH_TOOL([ZIP],[zip],[no]) AC_PATH_TOOL([DLLTOOL],[dlltool],[no]) AC_PATH_TOOL([WINDRES], [windres], [no]) diff --git a/schemas/window.gschema.xml.in b/schemas/window.gschema.xml.in index 34786a0e..e1c992c0 100644 --- a/schemas/window.gschema.xml.in +++ b/schemas/window.gschema.xml.in @@ -55,13 +55,13 @@ - false + true The toolbar visible state - false + @DEFAULT_MENUBAR_VISIBLE@ The menubar visible state @@ -98,7 +98,7 @@ 'win.copy,win.paste,win.select-all,separator,win.clear,win.erase-input,separator,win.print,separator,win.zoom-out,win.zoom-fit-best,win.zoom-in' - The toolbar action list + The actions on the toolbar From 385666143010920785c50421cdf163a5762f2d68 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 29 Mar 2023 22:55:06 -0300 Subject: [PATCH 077/186] Default menu visibility is 'true' on windows. --- configure.ac | 2 ++ schemas/window.gschema.xml.in | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 25df7e1a..b543047a 100644 --- a/configure.ac +++ b/configure.ac @@ -92,6 +92,7 @@ case "$host" in AC_SUBST(WINARCH,$app_cv_winarch) AC_SUBST(NSISREDIR,$app_cv_nsisredir) AC_SUBST(DEFAULT_UI_STYLE,0) + AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"true") ;; *-apple-darwin*) @@ -110,6 +111,7 @@ case "$host" in CFLAGS="$CFLAGS -pthread -DLIBDIR=\$(libdir) -DDATADIR=\$(datadir)" LDFLAGS="$LDFLAGS -pthread" AC_SUBST(DEFAULT_UI_STYLE,0) + AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"false") esac diff --git a/schemas/window.gschema.xml.in b/schemas/window.gschema.xml.in index 34786a0e..e1c992c0 100644 --- a/schemas/window.gschema.xml.in +++ b/schemas/window.gschema.xml.in @@ -55,13 +55,13 @@ - false + true The toolbar visible state - false + @DEFAULT_MENUBAR_VISIBLE@ The menubar visible state @@ -98,7 +98,7 @@ 'win.copy,win.paste,win.select-all,separator,win.clear,win.erase-input,separator,win.print,separator,win.zoom-out,win.zoom-fit-best,win.zoom-in' - The toolbar action list + The actions on the toolbar From 98ea623ecc1c53e7a8f94e19dde71d6fb7b3238c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 06:59:17 -0300 Subject: [PATCH 078/186] Using msystem arch for file names. --- .github/workflows/winpkg.yml | 1 + win/ci-build.sh | 41 ++++++------------------------------ 2 files changed, 7 insertions(+), 35 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 14f43773..efec462f 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -9,6 +9,7 @@ on: - winpkg jobs: msys2-mingw64: + name: Publish for Windows 64 runs-on: windows-latest defaults: run: diff --git a/win/ci-build.sh b/win/ci-build.sh index a9f2d0f2..39d6704f 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -23,45 +23,16 @@ cd ${myDIR} rm -fr ${myDIR}/.build # -# Build LIB3270 +# Unpack LIB3270 # -if [ -e mingw-lib3270.tar.xz ]; then - - echo "Unpacking lib3270" - tar -C / -Jxvf mingw-lib3270.tar.xz - -else - echo "Building lib3270" - git clone https://github.com/PerryWerneck/lib3270.git ./.build/lib3270 || die "clone lib3270 failure" - cd ./.build/lib3270 - ./autogen.sh || die "Lib3270 autogen failure" - ./configure || die "Lib3270 Configure failure" - make clean || die "Lib3270 Make clean failure" - make all || die "Lib3270 Make failure" - make install || die "Lib3270 Install failure" - cd ../.. -fi +echo "Unpacking lib3270" +tar -C / -Jxf mingw-lib3270.${MSYSTEM_CARCH}.tar.xz > $LOGFILE 2>&1 || die "Unpack lib3270 failure" # # Build LIBV3270 # -if [ -e mingw-libv3270.tar.xz ]; then - - echo "Unpacking libv3270" - tar -C / -Jxvf mingw-libv3270.tar.xz - -else - echo "Building libv3270" - mkdir -p ${myDIR}/.build/libv3270 - git clone https://github.com/PerryWerneck/libv3270.git ${myDIR}/.build/libv3270 > $LOGFILE 2>&1 || die "clone libv3270 failure" - pushd ${myDIR}/.build/libv3270 - ./autogen.sh > $LOGFILE 2>&1 || die "Autogen failure" - ./configure > $LOGFILE 2>&1 || die "Configure failure" - make clean > $LOGFILE 2>&1 || die "Make clean failure" - make all > $LOGFILE 2>&1 || die "Make failure" - make install > $LOGFILE 2>&1 || die "Install failure" - popd -fi +echo "Unpacking libv3270" +tar -C / -Jxf mingw-libv3270.tar.xz > $LOGFILE 2>&1 || die "Unpack libv3270 failure" # # Build PW3270 @@ -74,7 +45,7 @@ make clean > $LOGFILE 2>&1 || die "Make clean failure" make all > $LOGFILE 2>&1 || die "Make failure" make DESTDIR=.bin/package install -tar --create --xz --file=mingw-pw3270.tar.xz --directory=.bin/package --verbose . +tar --create --xz --file=mingw-pw3270.${MSYSTEM_CARCH}.tar.xz --directory=.bin/package --verbose . echo "Build complete" From 59c02e235e6436af071bfa68bcf63608d2ba0802 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 08:20:10 -0300 Subject: [PATCH 079/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index efec462f..b8dc37a8 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -59,7 +59,7 @@ jobs: latest: true fileName: mingw-pw3270-plugin-ipc.tar.xz - name: Unpack lib3270 - run: tar -C ./.build -Jxvf mingw-lib3270.tar.xz + run: tar -C ./.build -Jxvf mingw-lib3270.x86_64.tar.xz - name: Unpack libv3270 run: tar -C ./.build -Jxvf mingw-libv3270.tar.xz - name: Unpack ipcplugin From 148093105654393bba504f03fb45593b8fc42570 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 08:25:19 -0300 Subject: [PATCH 080/186] Renaming old 'makeruntime' to 'bundle' since he now packs the entire application. --- configure.ac | 2 +- win/{makeruntime.sh.in => bundle.in} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename win/{makeruntime.sh.in => bundle.in} (100%) diff --git a/configure.ac b/configure.ac index b543047a..d989ce16 100644 --- a/configure.ac +++ b/configure.ac @@ -75,7 +75,7 @@ case "$host" in AC_CONFIG_FILES(src/main/windows/app-manifest.xml) # Windows and linux doesn't use the same defaults. - AC_CONFIG_FILES(win/makeruntime.sh) + AC_CONFIG_FILES(win/bundle) AC_CONFIG_FILES(win/pw3270.nsi) if test "$host_cpu" = "x86_64"; then diff --git a/win/makeruntime.sh.in b/win/bundle.in similarity index 100% rename from win/makeruntime.sh.in rename to win/bundle.in From 9c359d2d9b21037c809d1a469d5dbc488e4c70a6 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 08:26:32 -0300 Subject: [PATCH 081/186] Updating win32 bundle workflow. --- .github/workflows/winpkg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index b8dc37a8..6e059f34 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -69,9 +69,9 @@ jobs: - name: Unpack hllapi run: tar -C ./.build -Jxvf mingw-hllapi.tar.xz - name: Make Runtime - run: /bin/bash ./win/makeruntime.sh + run: /bin/bash ./win/bundle - name: Make Package - run: tar -C ./.build -Jcvf mingw64-pw3270-full.tar.xz . + run: tar -C ./.build -Jcvf mingw64-pw3270.x86_64.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} From 7882d805dce3a82edc3d1d71fb842003692edfff Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 08:30:11 -0300 Subject: [PATCH 082/186] Fixing macos defaults, searching for optipng. --- configure.ac | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b543047a..e5333601 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) - # Windows and linux doesn't use the same defaults. AC_CONFIG_FILES(win/makeruntime.sh) AC_CONFIG_FILES(win/pw3270.nsi) @@ -91,6 +90,8 @@ case "$host" in AC_SUBST(PROGRAMFILES,$app_cv_programfiles) AC_SUBST(WINARCH,$app_cv_winarch) AC_SUBST(NSISREDIR,$app_cv_nsisredir) + + # Windows and unix doesn't use the same defaults. AC_SUBST(DEFAULT_UI_STYLE,0) AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"true") ;; @@ -101,7 +102,10 @@ case "$host" in CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" + + # Windows and unix doesn't use the same defaults. AC_SUBST(DEFAULT_UI_STYLE,0) + AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"false") ;; *) @@ -110,6 +114,8 @@ case "$host" in CFLAGS="$CFLAGS -pthread -DLIBDIR=\$(libdir) -DDATADIR=\$(datadir)" LDFLAGS="$LDFLAGS -pthread" + + # Windows and unix doesn't use the same defaults. AC_SUBST(DEFAULT_UI_STYLE,0) AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"false") @@ -159,6 +165,8 @@ AC_PATH_TOOL([STRIP], [strip], [true]) AC_PATH_TOOL([DESKTOP_INSTALL],[desktop-file-install],[no]) AC_PATH_TOOL([GLIB_SCHEMA_COMPILER],[glib-compile-schemas],[false]) +AC_PATH_TOOL([OPTIPNG], [optipng], [true]) + PKG_CHECK_EXISTS dnl --------------------------------------------------------------------------- From 780ee1ce5edd22ddca617c3ba7639ffc5395be1b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 08:51:09 -0300 Subject: [PATCH 083/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 6e059f34..e1f12f4c 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -75,7 +75,7 @@ jobs: - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: mingw64-pw3270-full.tar.xz + artifacts: *-pw3270-*.tar.xz allowUpdates: true draft: false makeLatest: true From e3e6bc1bcb0d006f4906000d196915f34d63b263 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 09:00:55 -0300 Subject: [PATCH 084/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index e1f12f4c..c5bde011 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -75,7 +75,7 @@ jobs: - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: *-pw3270-*.tar.xz + artifacts: mingw64-pw3270.x86_64.tar.xz allowUpdates: true draft: false makeLatest: true From e57b63325bfce76dd5b4e6b8dc857f0f17e1513c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 11:18:29 -0300 Subject: [PATCH 085/186] Using 'classical' style only on windows, removing debug message. --- configure.ac | 4 ++-- src/objects/actions/view.c | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index e5333601..f875cd31 100644 --- a/configure.ac +++ b/configure.ac @@ -104,7 +104,7 @@ case "$host" in LDFLAGS="$LDFLAGS -pthread" # Windows and unix doesn't use the same defaults. - AC_SUBST(DEFAULT_UI_STYLE,0) + AC_SUBST(DEFAULT_UI_STYLE,1) AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"false") ;; @@ -116,7 +116,7 @@ case "$host" in LDFLAGS="$LDFLAGS -pthread" # Windows and unix doesn't use the same defaults. - AC_SUBST(DEFAULT_UI_STYLE,0) + AC_SUBST(DEFAULT_UI_STYLE,1) AC_SUBST(DEFAULT_MENUBAR_VISIBLE,"false") esac diff --git a/src/objects/actions/view.c b/src/objects/actions/view.c index 2a61498e..f9d7f1f9 100644 --- a/src/objects/actions/view.c +++ b/src/objects/actions/view.c @@ -195,7 +195,6 @@ static GSList * append_action(GSList * list, const gchar *prefix, GAction *actio GdkPixbuf * pixbuf = g_action_get_pixbuf(action, GTK_ICON_SIZE_MENU, GTK_ICON_LOOKUP_GENERIC_FALLBACK); if(!pixbuf) { - debug("Action \"%s\": Doesn't have a pixbuf",g_action_get_name(action)); return list; } From 34fa72f2e9905e48b8da9a678cc95298d0e60697 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 14:56:41 -0300 Subject: [PATCH 086/186] Fixing mingw action. --- .github/workflows/msys2.yml | 22 ++++++++++++++++++++-- win/ci-build.sh | 28 ++++++---------------------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index 712a1d74..5c8d8f16 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -3,23 +3,41 @@ on: pull_request: branches: - master - schedule: - - cron: '30 13 3 2,4,6,8,10,12 *' + push: + branches: + - develop jobs: msys2-mingw: + name: Publish Windows 64 runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - uses: actions/checkout@v3 + - uses: oprypin/find-latest-tag@v1 + id: gettag + with: + repository: PerryWerneck/libv3270 + releases-only: true - uses: msys2/setup-msys2@v2 with: msystem: mingw64 update: true install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/lib3270" + latest: true + fileName: "mingw-lib3270.x86_64.tar.xz" + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/libv3270" + latest: true + fileName: "mingw-libv3270.x86_64.tar.xz" - name: CI-Build run: | ./win/ci-build.sh + diff --git a/win/ci-build.sh b/win/ci-build.sh index 18b9b08b..0579a59b 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -23,32 +23,16 @@ cd ${myDIR} rm -fr ${myDIR}/.build # -# Build LIB3270 +# Unpack lib3270 # -echo "Building lib3270" -mkdir -p ${myDIR}/.build/lib3270 -git clone https://github.com/PerryWerneck/lib3270.git ${myDIR}/.build/lib3270 > $LOGFILE 2>&1 || die "clone lib3270 failure" -pushd ${myDIR}/.build/lib3270 -./autogen.sh > $LOGFILE 2>&1 || die "Autogen failure" -./configure > $LOGFILE 2>&1 || die "Configure failure" -make clean > $LOGFILE 2>&1 || die "Make clean failure" -make all > $LOGFILE 2>&1 || die "Make failure" -make install > $LOGFILE 2>&1 || die "Install failure" -popd +echo "Unpacking lib3270" +tar -C / -Jxf mingw-lib3270.${MSYSTEM_CARCH}.tar.xz > $LOGFILE 2>&1 || die "lib3270 unpack failure" # -# Build LIBV3270 +# Unpack libv3270 # -echo "Building libv3270" -mkdir -p ${myDIR}/.build/libv3270 -git clone https://github.com/PerryWerneck/libv3270.git ${myDIR}/.build/libv3270 > $LOGFILE 2>&1 || die "clone libv3270 failure" -pushd ${myDIR}/.build/libv3270 -./autogen.sh > $LOGFILE 2>&1 || die "Autogen failure" -./configure > $LOGFILE 2>&1 || die "Configure failure" -make clean > $LOGFILE 2>&1 || die "Make clean failure" -make all > $LOGFILE 2>&1 || die "Make failure" -make install > $LOGFILE 2>&1 || die "Install failure" -popd +echo "Unpacking lib3270" +tar -C / -Jxf mingw-libv3270.${MSYSTEM_CARCH}.tar.xz > $LOGFILE 2>&1 || die "libv3270 unpack failure" # # Build PW3270 From a75d4e5fb893ae56d153f6f952783d3431acbcd1 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 14:59:31 -0300 Subject: [PATCH 087/186] Updating ci-build. --- win/ci-build.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/win/ci-build.sh b/win/ci-build.sh index 0579a59b..39d6704f 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -23,16 +23,16 @@ cd ${myDIR} rm -fr ${myDIR}/.build # -# Unpack lib3270 +# Unpack LIB3270 # echo "Unpacking lib3270" -tar -C / -Jxf mingw-lib3270.${MSYSTEM_CARCH}.tar.xz > $LOGFILE 2>&1 || die "lib3270 unpack failure" +tar -C / -Jxf mingw-lib3270.${MSYSTEM_CARCH}.tar.xz > $LOGFILE 2>&1 || die "Unpack lib3270 failure" # -# Unpack libv3270 +# Build LIBV3270 # -echo "Unpacking lib3270" -tar -C / -Jxf mingw-libv3270.${MSYSTEM_CARCH}.tar.xz > $LOGFILE 2>&1 || die "libv3270 unpack failure" +echo "Unpacking libv3270" +tar -C / -Jxf mingw-libv3270.tar.xz > $LOGFILE 2>&1 || die "Unpack libv3270 failure" # # Build PW3270 @@ -44,5 +44,8 @@ cd ${myDIR} make clean > $LOGFILE 2>&1 || die "Make clean failure" make all > $LOGFILE 2>&1 || die "Make failure" +make DESTDIR=.bin/package install +tar --create --xz --file=mingw-pw3270.${MSYSTEM_CARCH}.tar.xz --directory=.bin/package --verbose . + echo "Build complete" From 4ffe1ac96654b011279dd342400d3b6dcffd1eb1 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 21:44:26 -0300 Subject: [PATCH 088/186] Updating win32 artifact names. --- .github/workflows/winpkg.yml | 12 ++++++------ win/ci-build.sh | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index c5bde011..356e87e2 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -33,12 +33,12 @@ jobs: with: repository: PerryWerneck/lib3270 latest: true - fileName: mingw-lib3270.x86_64.tar.xz + fileName: mingw-w64-x86_64-lib3270.tar.xz - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/libv3270 latest: true - fileName: mingw-libv3270.tar.xz + fileName: mingw-w64-x86_64-libv3270.tar.xz - name: BuildApp run: ./win/ci-build.sh - name: Install pw3270 @@ -59,9 +59,9 @@ jobs: latest: true fileName: mingw-pw3270-plugin-ipc.tar.xz - name: Unpack lib3270 - run: tar -C ./.build -Jxvf mingw-lib3270.x86_64.tar.xz + run: tar -C ./.build -Jxvf mingw-w64-x86_64lib3270.x86_64.tar.xz - name: Unpack libv3270 - run: tar -C ./.build -Jxvf mingw-libv3270.tar.xz + run: tar -C ./.build -Jxvf mingw-w64-x86_64-libv3270.tar.xz - name: Unpack ipcplugin run: tar -C ./.build -Jxvf mingw-pw3270-plugin-ipc.tar.xz - name: Unpack ipc3270 @@ -71,11 +71,11 @@ jobs: - name: Make Runtime run: /bin/bash ./win/bundle - name: Make Package - run: tar -C ./.build -Jcvf mingw64-pw3270.x86_64.tar.xz . + run: tar -C ./.build -Jcvf mingw-w64-x86_64-pw3270.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: mingw64-pw3270.x86_64.tar.xz + artifacts: mingw-w64-x86_64-pw3270.tar.xz allowUpdates: true draft: false makeLatest: true diff --git a/win/ci-build.sh b/win/ci-build.sh index 39d6704f..11a74414 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -26,13 +26,13 @@ rm -fr ${myDIR}/.build # Unpack LIB3270 # echo "Unpacking lib3270" -tar -C / -Jxf mingw-lib3270.${MSYSTEM_CARCH}.tar.xz > $LOGFILE 2>&1 || die "Unpack lib3270 failure" +tar -C / -Jxf ${MINGW_PACKAGE_PREFIX}-lib3270.tar.xz > $LOGFILE 2>&1 || die "Unpack lib3270 failure" # -# Build LIBV3270 +# Unpack LIBV3270 # echo "Unpacking libv3270" -tar -C / -Jxf mingw-libv3270.tar.xz > $LOGFILE 2>&1 || die "Unpack libv3270 failure" +tar -C / -Jxf ${MINGW_PACKAGE_PREFIX}-libv3270.tar.xz > $LOGFILE 2>&1 || die "Unpack libv3270 failure" # # Build PW3270 @@ -45,7 +45,7 @@ make clean > $LOGFILE 2>&1 || die "Make clean failure" make all > $LOGFILE 2>&1 || die "Make failure" make DESTDIR=.bin/package install -tar --create --xz --file=mingw-pw3270.${MSYSTEM_CARCH}.tar.xz --directory=.bin/package --verbose . +tar --create --xz --file=${MINGW_PACKAGE_PREFIX}-pw3270.tar.xz --directory=.bin/package --verbose . echo "Build complete" From d399caa0241758dce21d8d5ee1415b18cf1d420a Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 22:51:11 -0300 Subject: [PATCH 089/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 356e87e2..4b4cccb3 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -47,7 +47,7 @@ jobs: with: repository: PerryWerneck/libipc3270 latest: true - fileName: mingw-libipc3270.tar.xz + fileName: mingw-w64-x86_64-libipc3270.tar.xz - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/libhllapi @@ -59,13 +59,13 @@ jobs: latest: true fileName: mingw-pw3270-plugin-ipc.tar.xz - name: Unpack lib3270 - run: tar -C ./.build -Jxvf mingw-w64-x86_64lib3270.x86_64.tar.xz + run: tar -C ./.build -Jxvf mingw-w64-x86_64-lib3270.x86_64.tar.xz - name: Unpack libv3270 run: tar -C ./.build -Jxvf mingw-w64-x86_64-libv3270.tar.xz - name: Unpack ipcplugin - run: tar -C ./.build -Jxvf mingw-pw3270-plugin-ipc.tar.xz + run: tar -C ./.build -Jxvf mingw-w64-x86_64-plugin-ipc.tar.xz - name: Unpack ipc3270 - run: tar -C ./.build -Jxvf mingw-libipc3270.tar.xz + run: tar -C ./.build -Jxvf mingw-w64-x86_64-libipc3270.tar.xz - name: Unpack hllapi run: tar -C ./.build -Jxvf mingw-hllapi.tar.xz - name: Make Runtime From 62384722c33940f541f3fe905108a7e73e61be8a Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 30 Mar 2023 23:23:42 -0300 Subject: [PATCH 090/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 4b4cccb3..57338afa 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -57,7 +57,7 @@ jobs: with: repository: PerryWerneck/pw3270-plugin-ipc latest: true - fileName: mingw-pw3270-plugin-ipc.tar.xz + fileName: mingw-w64-x86_64-pw3270-plugin-ipc.tar.xz - name: Unpack lib3270 run: tar -C ./.build -Jxvf mingw-w64-x86_64-lib3270.x86_64.tar.xz - name: Unpack libv3270 From f45980d44565b5af71f18bd00ed276a1abaac9ee Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 31 Mar 2023 06:52:50 -0300 Subject: [PATCH 091/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 57338afa..fdd6bb32 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -59,7 +59,7 @@ jobs: latest: true fileName: mingw-w64-x86_64-pw3270-plugin-ipc.tar.xz - name: Unpack lib3270 - run: tar -C ./.build -Jxvf mingw-w64-x86_64-lib3270.x86_64.tar.xz + run: tar -C ./.build -Jxvf mingw-w64-x86_64-lib3270.tar.xz - name: Unpack libv3270 run: tar -C ./.build -Jxvf mingw-w64-x86_64-libv3270.tar.xz - name: Unpack ipcplugin @@ -75,7 +75,7 @@ jobs: - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: mingw-w64-x86_64-pw3270.tar.xz + artifacts: "*-pw3270.tar.xz" allowUpdates: true draft: false makeLatest: true From 2a1f6c5815c0f7d29b9b52347ec1a2a1bd5ab459 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 31 Mar 2023 07:24:52 -0300 Subject: [PATCH 092/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index fdd6bb32..8a07a3e3 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -59,19 +59,19 @@ jobs: latest: true fileName: mingw-w64-x86_64-pw3270-plugin-ipc.tar.xz - name: Unpack lib3270 - run: tar -C ./.build -Jxvf mingw-w64-x86_64-lib3270.tar.xz + run: tar -C ./.build -Jxf mingw-w64-x86_64-lib3270.tar.xz - name: Unpack libv3270 - run: tar -C ./.build -Jxvf mingw-w64-x86_64-libv3270.tar.xz + run: tar -C ./.build -Jxf mingw-w64-x86_64-libv3270.tar.xz - name: Unpack ipcplugin - run: tar -C ./.build -Jxvf mingw-w64-x86_64-plugin-ipc.tar.xz + run: tar -C ./.build -Jxf mingw-w64-x86_64-pw3270-plugin-ipc.tar.xz - name: Unpack ipc3270 - run: tar -C ./.build -Jxvf mingw-w64-x86_64-libipc3270.tar.xz + run: tar -C ./.build -Jxf mingw-w64-x86_64-libipc3270.tar.xz - name: Unpack hllapi - run: tar -C ./.build -Jxvf mingw-hllapi.tar.xz + run: tar -C ./.build -Jxf mingw-hllapi.tar.xz - name: Make Runtime run: /bin/bash ./win/bundle - name: Make Package - run: tar -C ./.build -Jcvf mingw-w64-x86_64-pw3270.tar.xz . + run: tar -C ./.build -Jcf mingw-w64-x86_64-pw3270.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} From c7577b028019affd5e5a42fb4ab7b81c375f229f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 31 Mar 2023 10:11:27 -0300 Subject: [PATCH 093/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 8a07a3e3..ab196aa5 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -52,7 +52,7 @@ jobs: with: repository: PerryWerneck/libhllapi latest: true - fileName: mingw-hllapi.tar.xz + fileName: mingw-w64-x86_64-hllapi.tar.xz - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/pw3270-plugin-ipc @@ -67,7 +67,7 @@ jobs: - name: Unpack ipc3270 run: tar -C ./.build -Jxf mingw-w64-x86_64-libipc3270.tar.xz - name: Unpack hllapi - run: tar -C ./.build -Jxf mingw-hllapi.tar.xz + run: tar -C ./.build -Jxf mingw-w64-x86_64-hllapi.tar.xz - name: Make Runtime run: /bin/bash ./win/bundle - name: Make Package From db087a39172a82776124e6e0efdcad8475f5100e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 5 Apr 2023 14:51:01 -0300 Subject: [PATCH 094/186] Using mingw package instead of .tar.xz --- .github/workflows/msys2.yml | 12 +++---- PKGBUILD.mingw | 62 +++++++++++++++++++++++++++++++++++++ win/ci-build.sh | 52 ++++++++++++++++--------------- 3 files changed, 94 insertions(+), 32 deletions(-) create mode 100644 PKGBUILD.mingw diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index 5c8d8f16..8db2bfbd 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -6,7 +6,6 @@ on: push: branches: - develop - jobs: msys2-mingw: name: Publish Windows 64 @@ -19,25 +18,24 @@ jobs: - uses: oprypin/find-latest-tag@v1 id: gettag with: - repository: PerryWerneck/libv3270 + repository: PerryWerneck/pw3270 releases-only: true - uses: msys2/setup-msys2@v2 with: msystem: mingw64 update: true - install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape + install: dos2unix mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/lib3270" latest: true - fileName: "mingw-lib3270.x86_64.tar.xz" + fileName: "mingw-w64-x86_64-lib3270-5.4-0-x86_64.pkg.tar.zst" - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/libv3270" latest: true - fileName: "mingw-libv3270.x86_64.tar.xz" + fileName: "mingw-w64-x86_64-lib3270-5.4-0-x86_64.pkg.tar.zst" - name: CI-Build - run: | - ./win/ci-build.sh + run: ./win/ci-build.sh diff --git a/PKGBUILD.mingw b/PKGBUILD.mingw new file mode 100644 index 00000000..ec3ff71b --- /dev/null +++ b/PKGBUILD.mingw @@ -0,0 +1,62 @@ +# Maintainer: Perry Werneck +# References: https://www.msys2.org/wiki/Creating-Packages/ + +# SPDX-License-Identifier: LGPL-3.0-or-later +# +# Copyright (C) 2008 Banco do Brasil S.A. +# +# 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 . + +_realname=$(grep AC_INIT "${startdir}/configure.ac" | cut -d[ -f2 | cut -d] -f1) + +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +source=() + +pkgver=$(grep AC_INIT "${startdir}/configure.ac" | cut -d[ -f3 | cut -d] -f1) +pkgrel=0 +pkgdesc="TN3270 Access library" +url="https://github.com/PerryWerneck/${_realname}" +arch=(i686 x86_64) +license=(LGPL-3.0-or-later) +depends=(${MINGW_PACKAGE_PREFIX}-gtk3 ${MINGW_PACKAGE_PREFIX}-lib3270 ${MINGW_PACKAGE_PREFIX}-libv3270) +makedepends=(autoconf automake make libtool gzip dos2unix optipng gzip ${MINGW_PACKAGE_PREFIX}-gtk3 ${MINGW_PACKAGE_PREFIX}-lib3270 ${MINGW_PACKAGE_PREFIX}-libv3270) +checkdepends=() + +provides=($pkgname) +conflicts=($pkgname) + +prepare() { + rm -fr "$srcdir/$pkgname" + ln -snf "$startdir" "$srcdir/$pkgname" +} + +build() { + cd $pkgname + ./autogen.sh \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${MINGW_CHOST} + + make all +} + +package() { + cd $pkgname + make DESTDIR="${pkgdir}" install + install \ + -Dm644 \ + "LICENSE" \ + "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +} diff --git a/win/ci-build.sh b/win/ci-build.sh index 39d6704f..2d066fe8 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -1,10 +1,28 @@ #!/bin/bash +# +# SPDX-License-Identifier: LGPL-3.0-or-later +# +# Copyright (C) 2008 Banco do Brasil S.A. +# +# 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 . + # # References: # # * https://www.msys2.org/docs/ci/ # -# + echo "Running ${0}" LOGFILE=build.log @@ -16,36 +34,20 @@ die ( ) { exit -1 } -myDIR=$(dirname $(dirname $(readlink -f ${0}))) -echo "myDIR=${myDIR}" - -cd ${myDIR} -rm -fr ${myDIR}/.build - -# -# Unpack LIB3270 -# -echo "Unpacking lib3270" -tar -C / -Jxf mingw-lib3270.${MSYSTEM_CARCH}.tar.xz > $LOGFILE 2>&1 || die "Unpack lib3270 failure" +cd $(dirname $(dirname $(readlink -f ${0}))) # -# Build LIBV3270 +# Install pre-reqs # -echo "Unpacking libv3270" -tar -C / -Jxf mingw-libv3270.tar.xz > $LOGFILE 2>&1 || die "Unpack libv3270 failure" +echo "Installing pre-reqs..." +pacman -U --noconfirm *.pkg.tar.zst || die "pacman failure" # -# Build PW3270 +# Build # -echo "Building PW3270" -cd ${myDIR} -./autogen.sh > $LOGFILE 2>&1 || die "Autogen failure" -./configure > $LOGFILE 2>&1 || die "Configure failure" -make clean > $LOGFILE 2>&1 || die "Make clean failure" -make all > $LOGFILE 2>&1 || die "Make failure" - -make DESTDIR=.bin/package install -tar --create --xz --file=mingw-pw3270.${MSYSTEM_CARCH}.tar.xz --directory=.bin/package --verbose . +echo "Building package..." +dos2unix PKGBUILD.mingw || die "dos2unix failure" +makepkg BUILDDIR=/tmp/pkg -p PKGBUILD.mingw || die "makepkg failure" echo "Build complete" From 2c3514008d76edcf83547862b9abcd79ca96f60c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 5 Apr 2023 15:47:32 -0300 Subject: [PATCH 095/186] Update msys2.yml --- .github/workflows/msys2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index 8db2bfbd..ed92a25c 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -34,7 +34,7 @@ jobs: with: repository: "PerryWerneck/libv3270" latest: true - fileName: "mingw-w64-x86_64-lib3270-5.4-0-x86_64.pkg.tar.zst" + fileName: "mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst" - name: CI-Build run: ./win/ci-build.sh From 0dd8c3cb7c2712dcbc4bc938b57ec45410a13fb0 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 5 Apr 2023 16:01:12 -0300 Subject: [PATCH 096/186] Update PKGBUILD.mingw --- PKGBUILD.mingw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PKGBUILD.mingw b/PKGBUILD.mingw index ec3ff71b..0e5ff500 100644 --- a/PKGBUILD.mingw +++ b/PKGBUILD.mingw @@ -30,7 +30,7 @@ url="https://github.com/PerryWerneck/${_realname}" arch=(i686 x86_64) license=(LGPL-3.0-or-later) depends=(${MINGW_PACKAGE_PREFIX}-gtk3 ${MINGW_PACKAGE_PREFIX}-lib3270 ${MINGW_PACKAGE_PREFIX}-libv3270) -makedepends=(autoconf automake make libtool gzip dos2unix optipng gzip ${MINGW_PACKAGE_PREFIX}-gtk3 ${MINGW_PACKAGE_PREFIX}-lib3270 ${MINGW_PACKAGE_PREFIX}-libv3270) +makedepends=(autoconf automake make libtool gzip dos2unix gzip ${MINGW_PACKAGE_PREFIX}-optipng ${MINGW_PACKAGE_PREFIX}-gtk3 ${MINGW_PACKAGE_PREFIX}-lib3270 ${MINGW_PACKAGE_PREFIX}-libv3270) checkdepends=() provides=($pkgname) From 51b0d566d30c20a1a9f616813a589127ecf2955b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 5 Apr 2023 16:12:23 -0300 Subject: [PATCH 097/186] Renaming codeql action. --- .github/workflows/{codeql.yml => codeql-analysis.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{codeql.yml => codeql-analysis.yml} (100%) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql-analysis.yml similarity index 100% rename from .github/workflows/codeql.yml rename to .github/workflows/codeql-analysis.yml From 1e142d803ad413018747d35a5c6aa7d3834c3889 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 5 Apr 2023 16:19:28 -0300 Subject: [PATCH 098/186] Restoring codeql workflow file name. --- .github/workflows/{codeql-analysis.yml => codeql.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{codeql-analysis.yml => codeql.yml} (100%) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql.yml similarity index 100% rename from .github/workflows/codeql-analysis.yml rename to .github/workflows/codeql.yml From e359775a0fe4421e74f8f3a09a009c8d5cc70dcb Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 08:15:36 -0300 Subject: [PATCH 099/186] Updating package names on winpkg action. --- .github/workflows/winpkg.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index ab196aa5..91087caa 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -31,14 +31,14 @@ jobs: mingw-w64-x86_64-nsis - uses: robinraju/release-downloader@v1.7 with: - repository: PerryWerneck/lib3270 + repository: "PerryWerneck/lib3270" latest: true - fileName: mingw-w64-x86_64-lib3270.tar.xz + fileName: "mingw-w64-x86_64-lib3270-5.4-0-x86_64.pkg.tar.zst" - uses: robinraju/release-downloader@v1.7 with: - repository: PerryWerneck/libv3270 + repository: "PerryWerneck/libv3270" latest: true - fileName: mingw-w64-x86_64-libv3270.tar.xz + fileName: "mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst" - name: BuildApp run: ./win/ci-build.sh - name: Install pw3270 @@ -47,35 +47,35 @@ jobs: with: repository: PerryWerneck/libipc3270 latest: true - fileName: mingw-w64-x86_64-libipc3270.tar.xz + fileName: mingw-w64-x86_64-libipc3270-5.5-0-x86_64.pkg.tar.zst - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/libhllapi latest: true - fileName: mingw-w64-x86_64-hllapi.tar.xz + fileName: mingw-w64-x86_64-libhllapi-5.5-0-x86_64.pkg.tar.zst - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/pw3270-plugin-ipc latest: true - fileName: mingw-w64-x86_64-pw3270-plugin-ipc.tar.xz + fileName: mingw-w64-x86_64-pw3270-plugin-ipc-5.5-0-x86_64.pkg.tar.zst - name: Unpack lib3270 - run: tar -C ./.build -Jxf mingw-w64-x86_64-lib3270.tar.xz + run: tar -C ./.build --zstd -xf mingw-w64-x86_64-lib3270-5.4-0-x86_64.pkg.tar.zst - name: Unpack libv3270 - run: tar -C ./.build -Jxf mingw-w64-x86_64-libv3270.tar.xz + run: tar -C ./.build --zstd -xf mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst - name: Unpack ipcplugin - run: tar -C ./.build -Jxf mingw-w64-x86_64-pw3270-plugin-ipc.tar.xz + run: tar -C ./.build --zstd -xf mingw-w64-x86_64-pw3270-plugin-ipc-5.5-0-x86_64.pkg.tar.zst - name: Unpack ipc3270 - run: tar -C ./.build -Jxf mingw-w64-x86_64-libipc3270.tar.xz + run: tar -C ./.build --zstd -xf mingw-w64-x86_64-libipc3270-5.5-0-x86_64.pkg.tar.zst - name: Unpack hllapi - run: tar -C ./.build -Jxf mingw-w64-x86_64-hllapi.tar.xz + run: tar -C ./.build --zstd -xf mingw-w64-x86_64-libhllapi-5.5-0-x86_64.pkg.tar.zst - name: Make Runtime run: /bin/bash ./win/bundle - name: Make Package - run: tar -C ./.build -Jcf mingw-w64-x86_64-pw3270.tar.xz . + run: tar -C ./.build -Jcf mingw-w64-x86_64-pw3270-x86_64.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: "*-pw3270.tar.xz" + artifacts: "*-pw3270-*.tar.xz" allowUpdates: true draft: false makeLatest: true From 2b4d08e6655e926f3be2889416c1ed2f1f610a41 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 09:49:27 -0300 Subject: [PATCH 100/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 91087caa..4510795f 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -25,7 +25,7 @@ jobs: with: msystem: mingw64 update: true - install: xz mingw-w64-x86_64-gcc automake autoconf make git pkgconf + install: xz dos2unix mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-librsvg mingw-w64-x86_64-gdk-pixbuf2 mingw-w64-x86_64-nsis From 26f832fed7d1d669958fd71e95d9e00732d1dc5b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 09:55:58 -0300 Subject: [PATCH 101/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 4510795f..27d9ca0a 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -28,7 +28,7 @@ jobs: install: xz dos2unix mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-librsvg mingw-w64-x86_64-gdk-pixbuf2 - mingw-w64-x86_64-nsis + mingw-w64-x86_64-optipng mingw-w64-x86_64-nsis - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/lib3270" From dce67294f7a09f9d90cfcfa613acf59faa3ba1b4 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 11:23:02 -0300 Subject: [PATCH 102/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 27d9ca0a..0585e3dd 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -41,8 +41,16 @@ jobs: fileName: "mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst" - name: BuildApp run: ./win/ci-build.sh - - name: Install pw3270 - run: make DESTDIR=${PWD}/.build install + - uses: ncipollo/release-action@v1 + with: + tag: ${{ steps.gettag.outputs.tag }} + artifacts: "*-pw3270-*.pkg.tar.zst" + allowUpdates: true + draft: false + makeLatest: true + omitBody: true + omitPrereleaseDuringUpdate: true + replacesArtifacts: true - uses: robinraju/release-downloader@v1.7 with: repository: PerryWerneck/libipc3270 @@ -68,6 +76,8 @@ jobs: run: tar -C ./.build --zstd -xf mingw-w64-x86_64-libipc3270-5.5-0-x86_64.pkg.tar.zst - name: Unpack hllapi run: tar -C ./.build --zstd -xf mingw-w64-x86_64-libhllapi-5.5-0-x86_64.pkg.tar.zst + - name: Unpack pw3270 + run: tar -C ./.build --zstd -xf mingw-w64-x86_64-pw3270-*-x86_64.pkg.tar.zst - name: Make Runtime run: /bin/bash ./win/bundle - name: Make Package From 6b9a2fd4508b94a59f693b1a7b2a44321061aebb Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 11:50:44 -0300 Subject: [PATCH 103/186] Debugging bundle. --- .github/workflows/winpkg.yml | 16 ++-------------- src/include/config.h.in | 10 ++++++---- win/bundle.in | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 0585e3dd..2a9101ca 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -66,22 +66,10 @@ jobs: repository: PerryWerneck/pw3270-plugin-ipc latest: true fileName: mingw-w64-x86_64-pw3270-plugin-ipc-5.5-0-x86_64.pkg.tar.zst - - name: Unpack lib3270 - run: tar -C ./.build --zstd -xf mingw-w64-x86_64-lib3270-5.4-0-x86_64.pkg.tar.zst - - name: Unpack libv3270 - run: tar -C ./.build --zstd -xf mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst - - name: Unpack ipcplugin - run: tar -C ./.build --zstd -xf mingw-w64-x86_64-pw3270-plugin-ipc-5.5-0-x86_64.pkg.tar.zst - - name: Unpack ipc3270 - run: tar -C ./.build --zstd -xf mingw-w64-x86_64-libipc3270-5.5-0-x86_64.pkg.tar.zst - - name: Unpack hllapi - run: tar -C ./.build --zstd -xf mingw-w64-x86_64-libhllapi-5.5-0-x86_64.pkg.tar.zst - - name: Unpack pw3270 - run: tar -C ./.build --zstd -xf mingw-w64-x86_64-pw3270-*-x86_64.pkg.tar.zst - - name: Make Runtime + - name: Make bundle run: /bin/bash ./win/bundle - name: Make Package - run: tar -C ./.build -Jcf mingw-w64-x86_64-pw3270-x86_64.tar.xz . + run: tar -C ./.build -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} diff --git a/src/include/config.h.in b/src/include/config.h.in index 6234a289..955a7178 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,7 +105,9 @@ /* The schema path */ #undef PRODUCT_PATH -/* Define to 1 if you have the ANSI C header files. */ +/* 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. */ #undef STDC_HEADERS /* Version number of package */ diff --git a/win/bundle.in b/win/bundle.in index 13fef23d..65c34e28 100755 --- a/win/bundle.in +++ b/win/bundle.in @@ -288,6 +288,22 @@ install_loaders() { } +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 From 93f3c8903403c0fe18776a4605bc3ac9d0c868c8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 12:25:26 -0300 Subject: [PATCH 104/186] Debugging bundle script. --- configure.ac | 1 - src/include/config.h.in | 10 ++++------ win/{bundle.in => bundle} | 21 ++++++++++++++++----- 3 files changed, 20 insertions(+), 12 deletions(-) rename win/{bundle.in => bundle} (90%) diff --git a/configure.ac b/configure.ac index 08f196e2..9207b3db 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 955a7178..6234a289 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.in b/win/bundle similarity index 90% rename from win/bundle.in rename to win/bundle index 65c34e28..83109951 100755 --- a/win/bundle.in +++ b/win/bundle @@ -27,12 +27,23 @@ # 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") +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" From 9c6d259d0814dff542b26543586a2f3f35637510 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 14:02:10 -0300 Subject: [PATCH 105/186] Debugging bundle. --- win/bundle | 1 + 1 file changed, 1 insertion(+) diff --git a/win/bundle b/win/bundle index 83109951..26200887 100755 --- a/win/bundle +++ b/win/bundle @@ -313,6 +313,7 @@ unpack() { } +mkdir -p ${buildroot} unpack install_loaders From bf68e6d36a7b67359e3620b216756fba85a8b09f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 6 Apr 2023 14:48:27 -0300 Subject: [PATCH 106/186] Updating bundle. --- win/bundle | 64 +++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/win/bundle b/win/bundle index 26200887..c43fec31 100755 --- a/win/bundle +++ b/win/bundle @@ -46,7 +46,7 @@ GTK_LIBDIR=$(echo $(${PKG_CONFIG} --variable=libdir gtk+-3.0) | sed "s@^C:/@/c/@ 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" +bindir="${buildroot}${MINGW_PREFIX}/bin" if [ -z "${WIN_ROOT}" ]; then WIN_ROOT="/c/Windows" @@ -64,8 +64,8 @@ install_bin() { SOURCES=$(mktemp) REQUIRES=$(mktemp) - find "${buildroot}${prefix}" -iname "*.dll" > ${SOURCES} - find "${buildroot}${prefix}" -iname "*.exe" >> ${SOURCES} + find "${buildroot}" -iname "*.dll" > ${SOURCES} + find "${buildroot}" -iname "*.exe" >> ${SOURCES} while read FILENAME do @@ -138,18 +138,18 @@ install_bin() { if [ ! -e "${bindir}/${FILENAME}" ]; then - if [ -e ${prefix}/bin/${FILENAME} ]; then + if [ -e ${MINGW_PREFIX}/bin/${FILENAME} ]; then AGAIN=1 - cp -v "${prefix}/bin/${FILENAME}" "${bindir}/${FILENAME}" + cp -v "${MINGW_PREFIX}/bin/${FILENAME}" "${bindir}/${FILENAME}" if [ "$?" != "0" ]; then exit -1 fi - elif [ -e ${prefix}/lib/${FILENAME} ]; then + elif [ -e ${MINGW_PREFIX}/lib/${FILENAME} ]; then AGAIN=1 - cp -v "${prefix}/lib/${FILENAME}" "${bindir}/${FILENAME}" + cp -v "${MINGW_PREFIX}/lib/${FILENAME}" "${bindir}/${FILENAME}" if [ "$?" != "0" ]; then exit -1 fi @@ -160,8 +160,8 @@ install_bin() { else - echo "Can't find ${prefix}/bin/${FILENAME} or ${WIN_ROOT}/System32/${FILENAME}" - find "${prefix}" -iname "${FILENAME}" + echo "Can't find ${MINGW_PREFIX}/bin/${FILENAME} or ${WIN_ROOT}/System32/${FILENAME}" + find "${MINGW_PREFIX}" -iname "${FILENAME}" exit -1 fi @@ -179,7 +179,7 @@ install_bin() { install_locale() { - mkdir -p ${buildroot}${prefix}/share/locale/pt_BR/LC_MESSAGES + mkdir -p ${buildroot}${MINGW_PREFIX}/share/locale/pt_BR/LC_MESSAGES locales=" gettext-runtime.mo @@ -192,7 +192,7 @@ install_locale() { FILENAMES=$(mktemp) for i in ${locales} do - find "${prefix}/share/locale" -name ${i} >> ${FILENAMES} + find "${MINGW_PREFIX}/share/locale" -name ${i} >> ${FILENAMES} done while read FILENAME @@ -208,7 +208,7 @@ install_locale() { install_schemas() { - mkdir -p ${buildroot}${prefix}/share/glib-2.0/schemas + mkdir -p ${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas schemas=" org.gtk.Settings.FileChooser.gschema.xml @@ -217,15 +217,15 @@ install_schemas() { for schema in ${schemas} do - cp -v "${prefix}/share/glib-2.0/schemas/${schema}" "${buildroot}${prefix}/share/glib-2.0/schemas" + cp -v "${MINGW_PREFIX}/share/glib-2.0/schemas/${schema}" "${buildroot}${MINGW_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" + --targetdir="${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas" \ + "${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas" if [ "$?" != "0" ]; then exit -1 @@ -234,34 +234,34 @@ install_schemas() { install_theme() { - mkdir -p "${buildroot}${prefix}/etc" - cp -rv "${prefix}/etc/gtk-3.0" "${buildroot}${prefix}/etc" + mkdir -p "${buildroot}${MINGW_PREFIX}/etc" + cp -rv "${MINGW_PREFIX}/etc/gtk-3.0" "${buildroot}${MINGW_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 + mkdir -p ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0 + rm -f ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/settings.ini + rm -f ${buildroot}${MINGW_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 + echo "[Settings]" > ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/settings.ini + echo "gtk-theme-name=${1}" >> ${buildroot}${MINGW_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" + mkdir -p "${buildroot}${MINGW_PREFIX}/share/themes/Default/gtk-3.0" + cp "${srcdir}/win/gtk.css" "${buildroot}${MINGW_PREFIX}/share/themes/Default/gtk-3.0/gtk.css" fi } install_icons() { - mkdir -p "${buildroot}${prefix}/share/icons" + mkdir -p "${buildroot}${MINGW_PREFIX}/share/icons" - if [ -d "${prefix}/share/icons/${1}" ]; then + if [ -d "${MINGW_PREFIX}/share/icons/${1}" ]; then - cp -rv "${prefix}/share/icons/${1}" "${buildroot}${prefix}/share/icons" + cp -rv "${MINGW_PREFIX}/share/icons/${1}" "${buildroot}${MINGW_PREFIX}/share/icons" if [ "$?" != 0 ]; then echo "Can´t copy ${1} icons" exit -1 @@ -269,7 +269,7 @@ install_icons() { elif [ -d "/usr/share/icons/${1}" ]; then - cp -rv "/usr/share/icons/${1}" "${buildroot}${prefix}/share/icons" + cp -rv "/usr/share/icons/${1}" "${buildroot}${MINGW_PREFIX}/share/icons" if [ "$?" != 0 ]; then echo "Can´t copy ${1} icons" exit -1 @@ -286,14 +286,14 @@ install_icons() { install_loaders() { - if [ -d "${prefix}${GDK_LOADERS}" ]; then - mkdir -p "${buildroot}/${prefix}${GDK_LOADERS}" - cp -rv ${prefix}${GDK_LOADERS}/* "${buildroot}/${prefix}${GDK_LOADERS}" + if [ -d "${MINGW_PREFIX}${GDK_LOADERS}" ]; then + mkdir -p "${buildroot}/${MINGW_PREFIX}${GDK_LOADERS}" + cp -rv ${MINGW_PREFIX}${GDK_LOADERS}/* "${buildroot}/${MINGW_PREFIX}${GDK_LOADERS}" if [ "$?" != "0" ]; then exit -1 fi - find ${buildroot}/${prefix}${GDK_LOADERS} -iname "*.a" -exec rm -f {} \; + find ${buildroot}/${MINGW_PREFIX}${GDK_LOADERS} -iname "*.a" -exec rm -f {} \; fi From 371f6465b67a48312c994b14177d90e25f73f280 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 7 Apr 2023 13:24:41 -0300 Subject: [PATCH 107/186] Removing unused files. --- win/building_on_windows-the-hard-way.txt | 24 ---- win/building_windows_on_SuSE-the-easy-way.txt | 22 --- win/copydeps.sh.in | 133 ------------------ win/force_inet_ntop.patch | 11 -- win/msys2-install-tn3270-libs.sh | 72 ---------- win/win32-configure | 37 ----- win/win64-configure | 33 ----- 7 files changed, 332 deletions(-) delete mode 100644 win/building_on_windows-the-hard-way.txt delete mode 100644 win/building_windows_on_SuSE-the-easy-way.txt delete mode 100755 win/copydeps.sh.in delete mode 100644 win/force_inet_ntop.patch delete mode 100644 win/msys2-install-tn3270-libs.sh delete mode 100755 win/win32-configure delete mode 100755 win/win64-configure diff --git a/win/building_on_windows-the-hard-way.txt b/win/building_on_windows-the-hard-way.txt deleted file mode 100644 index 44ae79e1..00000000 --- a/win/building_on_windows-the-hard-way.txt +++ /dev/null @@ -1,24 +0,0 @@ - - 1. Instalar o mingw e o pacote bsico do msys ( http://www.mingw.org/wiki/Getting_Started ) - - 2. Abrir o shell mingw e executar (no o cmd normal do windows, o cone fica no menu do mingw). - . mingw-get install autotools - . mingw-get install gettext - . mingw-get install msys-openssl - . mingw-get install msys-libopenssl - - 3. Instalar o tortoise SVN ( http://tortoisesvn.net/downloads.html ) - - 4. Instalar o pacote completo do gtk - . Baixar o bundle em http://www.gtk.org/download/win32.php - . Descompactar o bundle em c:\mingw - - 5. Abrir uma linha de comando do mingw (no o cmd normal do windows - . Mudar para o diretrio dos fontes (PS: usei o tortoise svn para baixar os arquivos) - - 6. Executar ./autogen.sh (atente para o lado da barra, "/" mesmo j que o prompt do mingw um bash - . Vai dar alguns error relacionados a linguagem; no me preocupei com eles nessa etapa. - - 7. Executar ./configure - Ele vai dar falta da libssl porque, por algum motivo, a libssl do mingw4windows no se registra no pkg-config - - 8. Executar make diff --git a/win/building_windows_on_SuSE-the-easy-way.txt b/win/building_windows_on_SuSE-the-easy-way.txt deleted file mode 100644 index f7fcaceb..00000000 --- a/win/building_windows_on_SuSE-the-easy-way.txt +++ /dev/null @@ -1,22 +0,0 @@ - -The proposal of this document is to show how to build pw3270 installers for windows using the cross-compilers available on SuSE linux. - -1. First install the MinGW Repositories to your SuSE version from: - - * 32 bits: https://build.opensuse.org/project/show/windows:mingw:win32 - * 64 bits: https://build.opensuse.org/project/show/windows:mingw:win64 - -2. Get pw3270 sources from git - - * git clone http://softwarepublico.gov.br/gitlab/pw3270/principal.git ./pw3270 - -3. Install cross compilers - - * ./pw3270/win/install-cross.sh --all - - -4. Build pw3270 windows installers - - * cd pw3270/ && ./win/pack.sh - - diff --git a/win/copydeps.sh.in b/win/copydeps.sh.in deleted file mode 100755 index deda5e6a..00000000 --- a/win/copydeps.sh.in +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/bash -myDIR=$(dirname $(readlink -f $0)) - -# Updated by ./configure -BUILDDIR=@BUILDDIR@ -prefix=@prefix@ - -# Crio diretório temporário -TEMPDIR=$(mktemp -d) - -# Cleanup em caso de falha -ontrap() -{ - # - # Apaga diretorio temporário caso o script seja interrompido - # - cd ${myDIR} - rm -fr ${TEMPDIR} - exit -1 -} - -trap ontrap INT - -# -# Lista de DLLs a ignorar -# -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 -" - -# -# Fico em loop montando dependências -# -APPLICATION_PATH=${BUILDDIR}/.bin/Release -RUNTIME_PATH=${BUILDDIR}/.bin/runtime - -mkdir -p ${RUNTIME_PATH} - -AGAIN=1 -until [ $AGAIN = 0 ]; do - - AGAIN=0 - - find ${APPLICATION_PATH} -iname *.exe > ${TEMPDIR}/binaries.txt - find ${APPLICATION_PATH} -iname *.dll >> ${TEMPDIR}/binaries.txt - find ${RUNTIME_PATH} -iname *.dll >> ${TEMPDIR}/binaries.txt - - # Obtenho a lista de DLLs - rm -f ${TEMPDIR}/requires.txt - touch ${TEMPDIR}/requires.txt - while read FILENAME - do - objdump -p ${FILENAME} | grep "DLL Name:" | cut -d: -f2 | tr "[:upper:]" "[:lower:]" >> ${TEMPDIR}/requires.txt - done < ${TEMPDIR}/binaries.txt - - # Excluo DLLs do sistema - for i in $libs_to_exclude; do - sed -i -e "/${i}/d" ${TEMPDIR}/requires.txt - done - - while read FILENAME - do - - if [ -e ${APPLICATION_PATH}/${FILENAME} ]; then - touch ${APPLICATION_PATH}/${FILENAME} - - elif [ -e ${RUNTIME_PATH}/${FILENAME} ]; then - touch ${RUNTIME_PATH}/${FILENAME} - - elif [ -e ${prefix}/bin/${FILENAME} ]; then - AGAIN=1 - echo ${prefix}/bin/${FILENAME} - cp ${prefix}/bin/${FILENAME} ${RUNTIME_PATH} - - fi - - done < ${TEMPDIR}/requires.txt - rm -f ${TEMPDIR}/requires.txt - - -done - -cd ${myDIR} -rm -fr ${TEMPDIR} - diff --git a/win/force_inet_ntop.patch b/win/force_inet_ntop.patch deleted file mode 100644 index af417059..00000000 --- a/win/force_inet_ntop.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/include/lib3270/config.h.in 2017-01-20 15:37:46.462843502 -0200 -+++ src/include/lib3270/config.h.in 2017-01-24 15:19:45.547022420 -0200 -@@ -44,7 +44,7 @@ - #undef HAVE_SYSLOG - #undef HAVE_DBUS - #undef HAVE_VASPRINTF -- #undef HAVE_INET_NTOP -+ #define HAVE_INET_NTOP - - #undef HAVE_ICONV - #undef ICONV_CONST diff --git a/win/msys2-install-tn3270-libs.sh b/win/msys2-install-tn3270-libs.sh deleted file mode 100644 index 9459ddad..00000000 --- a/win/msys2-install-tn3270-libs.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash -# -# "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 -# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a -# aplicativos mainframe. Registro no INPI sob o nome G3270. -# -# Copyright (C) <2008> -# -# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob -# os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela -# Free Software Foundation. -# -# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER -# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO -# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para -# obter mais detalhes. -# -# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este -# programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin -# St, Fifth Floor, Boston, MA 02110-1301 USA -# -# Contatos: -# -# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) -# erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) -# -# -VERSION="5.2" - -install() { - - BUILD_DIR=${TEMPDIR}/${1} - - mkdir -p ${BUILD_DIR} - if [ "$?" != "0" ]; then - exit -1 - fi - - pushd ${BUILD_DIR} - if [ "$?" != "0" ]; then - exit -1 - fi - - wget https://github.com/PerryWerneck/${1}/releases/download/${VERSION}/PKGBUILD - if [ "$?" != "0" ]; then - exit -1 - fi - - makepkg - if [ "$?" != "0" ]; then - exit -1 - fi - - popd - - cp ${BUILD_DIR}/mingw*-${1}*.tar.xz . - - rm -fr ${BUILD_DIR} - - pacman -U mingw*-${1}*.tar.xz - if [ "$?" != "0" ]; then - exit -1 - fi - -} - -TEMPDIR=$(mktemp -d) - -install lib3270 -install libv3270 - -rm -fr ${TEMPDIR} diff --git a/win/win32-configure b/win/win32-configure deleted file mode 100755 index 76324323..00000000 --- a/win/win32-configure +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -export HOST_CC=/usr/bin/gcc -export cache=win32.cache - -OPT=$@ - -OFFICE=$(grep -c 'AC_ARG_ENABLE(\[office' configure.ac) - -if [ "$OFFICE" != "0" ]; then - OPT="$OPT --disable-office" -fi - -if [ -d ~/win32/jdk ]; then - export JDK_HOME=$(readlink -f ~/win32/jdk) -else - unset JDK_HOME -fi - -if [ -d ~/win32/jre ]; then - export JRE_HOME=$(readlink -f ~/win32/jre) -else - unset JRE_HOME -fi - -./configure --cache-file=$cache \ - --host=i686-w64-mingw32 \ - --prefix=/usr/i686-w64-mingw32/sys-root/mingw \ - --libdir=/usr/i686-w64-mingw32/sys-root/mingw/lib \ - $OPT - - -status=$? - -rm -f "$cache" -exit $status - diff --git a/win/win64-configure b/win/win64-configure deleted file mode 100755 index 3d5299d4..00000000 --- a/win/win64-configure +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -export HOST_CC=/usr/bin/gcc -export cache=win64.cache - -OPT=$@ - -OFFICE=$(grep -c 'AC_ARG_ENABLE(\[office' configure.ac) - -if [ "$OFFICE" != "0" ]; then - OPT="$OPT --disable-office" -fi - -if [ -d ~/win64/jdk ]; then - export JDK_HOME=$(readlink -f ~/win64/jdk) -fi - -if [ -d ~/win64/jre ]; then - export JRE_HOME=$(readlink -f ~/win64/jre) -fi - - -./configure --cache-file=$cache \ - --host=x86_64-w64-mingw32 \ - --prefix=/usr/x86_64-w64-mingw32/sys-root/mingw \ - --libdir=/usr/x86_64-w64-mingw32/sys-root/mingw/lib \ - $OPT - -status=$? - -rm -f "$cache" -exit $status - From b03c8a3f95a7899bb771e37ce32fb52cad75fcac Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 7 Apr 2023 13:40:56 -0300 Subject: [PATCH 108/186] msys based bundler is now bundle.msys, common calls splitted to bundle.common --- .github/workflows/winpkg.yml | 4 +-- .gitignore | 6 +---- win/{bundle => bundle.common} | 34 +++++------------------- win/bundle.msys | 50 +++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 34 deletions(-) rename win/{bundle => bundle.common} (94%) mode change 100755 => 100644 create mode 100755 win/bundle.msys diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 2a9101ca..3cc5ee33 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -67,9 +67,9 @@ jobs: latest: true fileName: mingw-w64-x86_64-pw3270-plugin-ipc-5.5-0-x86_64.pkg.tar.zst - name: Make bundle - run: /bin/bash ./win/bundle + run: ./win/bundle.msys - name: Make Package - run: tar -C ./.build -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . + run: tar -C ./.bin/bundle -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} diff --git a/.gitignore b/.gitignore index d4895114..f2c40782 100644 --- a/.gitignore +++ b/.gitignore @@ -73,8 +73,4 @@ m4 po app-manifest.xml libtool -<<<<<<< HEAD -======= - - ->>>>>>> develop +*.pkg.tar.zst diff --git a/win/bundle b/win/bundle.common old mode 100755 new mode 100644 similarity index 94% rename from win/bundle rename to win/bundle.common index c43fec31..e116be2f --- a/win/bundle +++ b/win/bundle.common @@ -19,7 +19,7 @@ # # -# Referencias: +# References: # # https://www.gtk.org/docs/installations/windows/ # http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format @@ -45,7 +45,7 @@ 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 +buildroot=.bin/bundle bindir="${buildroot}${MINGW_PREFIX}/bin" if [ -z "${WIN_ROOT}" ]; then @@ -54,6 +54,11 @@ fi export LANG=C +prepare() { + rm -fr "${buildroot}" + mkdir -p "${buildroot}" +} + install_bin() { mkdir -p "${bindir}" @@ -299,28 +304,3 @@ install_loaders() { } -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 - -} - -mkdir -p ${buildroot} -unpack - -install_loaders -install_bin -install_locale -install_schemas -install_theme "Adwaita" -install_icons "Adwaita" - - diff --git a/win/bundle.msys b/win/bundle.msys new file mode 100755 index 00000000..c492ae16 --- /dev/null +++ b/win/bundle.msys @@ -0,0 +1,50 @@ +#!/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 . +# + +# +# References: +# +# https://www.gtk.org/docs/installations/windows/ +# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format +# + +# Load bundle functions +. "$(dirname $(readlink -f "${0}"))/bundle.common" + +prepare + +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 + +install_loaders +install_bin +install_locale +install_schemas +install_theme "Adwaita" +install_icons "Adwaita" + + From 682001fad41467dd6d759ab92c546aa35b837155 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 7 Apr 2023 13:54:39 -0300 Subject: [PATCH 109/186] Fixing bundle name. --- win/bundle.msys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/bundle.msys b/win/bundle.msys index c492ae16..2a0f9da1 100755 --- a/win/bundle.msys +++ b/win/bundle.msys @@ -26,7 +26,7 @@ # # Load bundle functions -. "$(dirname $(readlink -f "${0}"))/bundle.common" +. "$(dirname $(readlink -f "${0}"))/bundle-common" prepare From 634b95236029efa4ddc2c4722791312def3b4a2a Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 7 Apr 2023 14:22:01 -0300 Subject: [PATCH 110/186] Fixing msys bundle. --- win/bundle.msys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/bundle.msys b/win/bundle.msys index 2a0f9da1..c492ae16 100755 --- a/win/bundle.msys +++ b/win/bundle.msys @@ -26,7 +26,7 @@ # # Load bundle functions -. "$(dirname $(readlink -f "${0}"))/bundle-common" +. "$(dirname $(readlink -f "${0}"))/bundle.common" prepare From 2b25df68cb5765322e038aeb536d2958a4509d4f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sat, 8 Apr 2023 02:13:49 -0300 Subject: [PATCH 111/186] Adding cross compiler bundle. --- locale/pw3270.pot | 2 +- win/bundle.common | 6 ++-- win/bundle.cross | 82 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 3 deletions(-) create mode 100755 win/bundle.cross diff --git a/locale/pw3270.pot b/locale/pw3270.pot index c9222442..80d31b38 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-29 15:09-0300\n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/win/bundle.common b/win/bundle.common index e116be2f..996d8ef0 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -36,7 +36,9 @@ if [ -z ${MINGW_PREFIX} ]; then echo "Cant determine mingw prefix" exit -1 fi -else +fi + +if [ -z ${PKG_CONFIG} ]; then PKG_CONFIG=${MINGW_PREFX}/bin/pkg-config fi @@ -45,7 +47,7 @@ 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=.bin/bundle +buildroot=$(readlink -f .bin/bundle) bindir="${buildroot}${MINGW_PREFIX}/bin" if [ -z "${WIN_ROOT}" ]; then diff --git a/win/bundle.cross b/win/bundle.cross new file mode 100755 index 00000000..2713943e --- /dev/null +++ b/win/bundle.cross @@ -0,0 +1,82 @@ +#!/bin/bash +# +# SPDX-License-Identifier: LGPL-3.0-or-later +# +# Copyright (C) 2023 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 . +# + +# +# References: +# +# https://www.gtk.org/docs/installations/windows/ +# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format +# + +MINGW_PREFIX="/usr/x86_64-w64-mingw32/sys-root/mingw" +PKG_CONFIG="/usr/bin/x86_64-w64-mingw32-pkg-config" +MINGW_PACKAGE_PREFIX="mingw64" + +# Load bundle functions +. "$(dirname $(readlink -f "${0}"))/bundle.common" + +prepare + +# Build +make -C "${srcdir}" all +if [ "$?" != "0" ]; then + echo "Build failed" + exit -1 +fi + +make -C "${srcdir}" "DESTDIR=${buildroot}" install +if [ "$?" != "0" ]; then + echo "Install failed" + exit -1 +fi + +# Install pre-build packages +packages="lib3270 libv3270" +for package in ${packages} +do + PACKAGE_NAME=$(rpm -qa | grep "${MINGW_PACKAGE_PREFIX}-${package}" | grep -v devel) + echo "Unpacking ${PACKAGE_NAME}" + for FILE in $(rpm -ql "${PACKAGE_NAME}") + do + if [ ! -d ${FILE} ]; then + + FILEPATH="${buildroot}${FILE}" + mkdir -p "$(dirname ${FILEPATH})" + if [ "$?" != "0" ]; then + exit -1 + fi + + cp "${FILE}" "${FILEPATH}" + if [ "$?" != "0" ]; then + exit -1 + fi + fi + done + +done + +install_loaders +install_bin +install_locale +install_schemas +install_theme "Adwaita" +install_icons "Adwaita" + + From 2dd9b8bcf3b44276278d6aec1f8fa1bcd7c7632e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sat, 8 Apr 2023 03:05:44 -0300 Subject: [PATCH 112/186] Fixing bundle script --- win/bundle.common | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/win/bundle.common b/win/bundle.common index 996d8ef0..835b9e5e 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -27,6 +27,11 @@ # Setup default paths srcdir="$(dirname $(dirname $(readlink -f "${0}")))" +cd ${srcdir} +if [ "$?" != "0" ]; then + echo "Cant cd to ${srcdir}" + exit -1 +fi if [ -z ${MINGW_PREFIX} ]; then if [ -d "/usr/x86_64-w64-mingw32/sys-root/mingw" ]; then @@ -47,7 +52,30 @@ 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") +mkdir -p .bin/bundle +if [ "$?" != "0" ]; then + echo "Cant mkdir base buildroot" + exit -1 +fi + buildroot=$(readlink -f .bin/bundle) +if [ -z ${buildroot} ]; then + echo "Cant detect buildroot ${buildroot}" + exit -1 +fi + +mkdir -p "${buildroot}" +if [ "$?" != "0" ]; then + echo "Cant mkdir ${buildroot}" + exit -1 +fi + +rm -fr "${buildroot}/*" +if [ "$?" != "0" ]; then + echo "Cant clean ${buildroot}" + exit -1 +fi + bindir="${buildroot}${MINGW_PREFIX}/bin" if [ -z "${WIN_ROOT}" ]; then From 8ca026235e4426929c09e1e39ab5a96cbcd26528 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sun, 9 Apr 2023 12:10:09 -0300 Subject: [PATCH 113/186] Adding options to bundler, adding --build option to cross bundler. --- win/bundle.common | 22 ++++++++++++++++++++++ win/bundle.cross | 32 ++++++++++++++++++++------------ 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/win/bundle.common b/win/bundle.common index 835b9e5e..78c3c2d4 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -334,3 +334,25 @@ install_loaders() { } +argument() { + + local cmdline + for cmdline in ${BASH_ARGV[*]} + do + if [ "$(echo ${cmdline} | sed "s@^--@@g" | sed "s@^-@@g" | cut -d= -f1)" == "${1}" ]; then + local value + value="$(echo ${cmdline} | cut -d= -f2)" + if [ -z "${value}" ]; then + echo "1" + else + echo "${value}" + fi + return 0 + fi + done + echo "" + return 2 +} + + + diff --git a/win/bundle.cross b/win/bundle.cross index 2713943e..a587243a 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -34,21 +34,29 @@ MINGW_PACKAGE_PREFIX="mingw64" prepare -# Build -make -C "${srcdir}" all -if [ "$?" != "0" ]; then - echo "Build failed" - exit -1 -fi +# List of pre-built packages +packages="lib3270 libv3270" + +argument "build" +if [ "$?" == "0" ]; then -make -C "${srcdir}" "DESTDIR=${buildroot}" install -if [ "$?" != "0" ]; then - echo "Install failed" - exit -1 + # Build + make -C "${srcdir}" all + if [ "$?" != "0" ]; then + echo "Build failed" + exit -1 + fi + + make -C "${srcdir}" "DESTDIR=${buildroot}" install + if [ "$?" != "0" ]; then + echo "Install failed" + exit -1 + fi +else + packages="${packages} pw3270" fi -# Install pre-build packages -packages="lib3270 libv3270" +echo "Packages: ${packages}" for package in ${packages} do PACKAGE_NAME=$(rpm -qa | grep "${MINGW_PACKAGE_PREFIX}-${package}" | grep -v devel) From 3c367bd5cf0e3e9c0eb51150f375bb2bfbf3797d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 11 Apr 2023 08:20:10 -0300 Subject: [PATCH 114/186] Working on bundle script. --- locale/pt_BR.po | 2 +- locale/pw3270.pot | 375 ++++++++++++++++++++++++++++++++++++++++++++++ win/bundle.cross | 64 ++++++-- 3 files changed, 425 insertions(+), 16 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 42665ee8..17709ca9 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-29 15:09-0300\n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" "PO-Revision-Date: 2023-01-31 11:14-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 80d31b38..dfe8908f 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -6,6 +6,381 @@ #, fuzzy msgid "" msgstr "" +"#-#-#-#-# view.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# save.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# abstract.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# application.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# window.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# preferences.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# open.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# about.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-11 08:16-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# window.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# terminal.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# page.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# keyfile.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# header.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# header-settings.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# sessionproperties.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# filetransfer.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# connect.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# close.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# toolbar.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# settings.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# models.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# dialog.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# actionview.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# tools.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# builder.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# model.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# element.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# attribute.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# open.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# windows.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# macos.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# linux.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-04-08 01:14-0300\n" diff --git a/win/bundle.cross b/win/bundle.cross index a587243a..4a18131d 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -2,20 +2,20 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later # -# Copyright (C) 2023 Perry Werneck +# Copyright (C) 2023 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 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. +# 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 . +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # # @@ -28,16 +28,48 @@ MINGW_PREFIX="/usr/x86_64-w64-mingw32/sys-root/mingw" PKG_CONFIG="/usr/bin/x86_64-w64-mingw32-pkg-config" MINGW_PACKAGE_PREFIX="mingw64" +REPOSITORY_NAME="pw3270" # Load bundle functions . "$(dirname $(readlink -f "${0}"))/bundle.common" prepare +# List of pre-req packages +# gdk-pixbuf-loader-rsvg + # List of pre-built packages -packages="lib3270 libv3270" +packages="lib3270 libv3270 libipc3270 libhllapi pw3270-plugin-ipc" + +argument "install-requires" > /dev/null +if [ "$?" == "0" ]; then + + echo "Installing: ${packages}" + + REPONUMBER=$(zypper lr | grep "${REPOSITORY_NAME}" | cut -d\| -f1) + if [ -z "${REPONUMBER}" ]; then + echo "Cant locate repository ${REPOSITORY_NAME}" + exit -1 + fi + + sudo zypper ref ${REPONUMBER} + if [ "$?" != "0" ]; then + echo "Cant refresh repository ${REPOSITORY_NAME}" + exit -1 + fi + + for package in ${packages} + do + sudo zypper in --repo ${REPONUMBER} "${MINGW_PACKAGE_PREFIX}-${package}" + if [ "$?" != "0" ]; then + echo "Cant install ${MINGW_PACKAGE_PREFIX}-${package} from ${REPOSITORY_NAME}" + exit -1 + fi + done + +fi -argument "build" +argument "build" > /dev/null if [ "$?" == "0" ]; then # Build @@ -59,8 +91,8 @@ fi echo "Packages: ${packages}" for package in ${packages} do - PACKAGE_NAME=$(rpm -qa | grep "${MINGW_PACKAGE_PREFIX}-${package}" | grep -v devel) - echo "Unpacking ${PACKAGE_NAME}" + PACKAGE_NAME=$(rpm -qa | grep "${MINGW_PACKAGE_PREFIX}-${package}" | grep -v devel | head --lines=1) + echo "Copy ${PACKAGE_NAME}" for FILE in $(rpm -ql "${PACKAGE_NAME}") do if [ ! -d ${FILE} ]; then @@ -73,6 +105,7 @@ do cp "${FILE}" "${FILEPATH}" if [ "$?" != "0" ]; then + echo "Cant copy '${FILE}' from '${PACKAGE_NAME}'" exit -1 fi fi @@ -87,4 +120,5 @@ install_schemas install_theme "Adwaita" install_icons "Adwaita" +echo "Bundle build complete" From ef289d0faecebbf53be5b3651f70dab964235970 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 11 Apr 2023 08:57:56 -0300 Subject: [PATCH 115/186] On windows using the png logo for about window. --- locale/pt_BR.po | 36 ++++++++++----------- locale/pw3270.pot | 42 ++++++++++++------------- src/objects/application/actions/about.c | 12 +++++++ 3 files changed, 51 insertions(+), 39 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 17709ca9..c0f05037 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -24,16 +24,16 @@ msgstr "" msgid "\"%s\" is not a valid user interface name" msgstr "\"%s\" não é um nome válido para interface de usuário" -#: src/objects/application/actions/about.c:124 +#: src/objects/application/actions/about.c:136 #, c-format msgid "%s for %s." msgstr "%s para %s" -#: src/objects/application/actions/about.c:131 +#: src/objects/application/actions/about.c:143 msgid "32 bits Linux" msgstr "Linux 32 bits" -#: src/objects/application/actions/about.c:129 +#: src/objects/application/actions/about.c:141 msgid "32 bits Windows" msgstr "Windows 32 bits" @@ -42,11 +42,11 @@ msgstr "Windows 32 bits" msgid "3270 session files" msgstr "Arquivos de sessão TN3270" -#: src/objects/application/actions/about.c:133 +#: src/objects/application/actions/about.c:145 msgid "64 bits Linux" msgstr "Linux 64 bits" -#: src/objects/application/actions/about.c:127 +#: src/objects/application/actions/about.c:139 msgid "64 bits Windows" msgstr "Windows 64 bits" @@ -57,7 +57,7 @@ msgstr "" "Alterações na posição da barra de ferramentas só tem efeito apos " "reinício da aplicação" -#: src/objects/application/actions/about.c:223 ui/windows.ui.xml:40 +#: src/objects/application/actions/about.c:235 ui/windows.ui.xml:40 #: ui/windows.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 #: ui/linux.ui.xml:40 ui/linux.ui.xml:553 msgid "About PW3270" @@ -86,7 +86,7 @@ msgstr "Todos os arquivos" msgid "Append to copy" msgstr "Adicionar à cópia" -#: src/objects/application/actions/about.c:166 +#: src/objects/application/actions/about.c:178 msgid "Apple version" msgstr "Versão Apple" @@ -116,7 +116,7 @@ msgstr "Reconectar automaticamente" msgid "Available" msgstr "Disponível" -#: src/objects/application/actions/about.c:169 +#: src/objects/application/actions/about.c:181 msgid "Based on X3270 from" msgstr "Baseado no X3270 por" @@ -224,7 +224,7 @@ msgstr "Conectar ao servidor" msgid "Connected to host" msgstr "Conectado no servidor" -#: src/objects/application/actions/about.c:167 +#: src/objects/application/actions/about.c:179 msgid "Contributors" msgstr "Contribuidores" @@ -251,7 +251,7 @@ msgstr "Copiar como tabela" msgid "Copy as text" msgstr "Copiar como texto" -#: src/objects/application/actions/about.c:173 +#: src/objects/application/actions/about.c:185 msgid "Copyright © 2008 Banco do Brasil S.A." msgstr "Copyright © 2008 Banco do Brasil S.A." @@ -388,7 +388,7 @@ msgstr "Ajuda" msgid "Host and Emulation settings" msgstr "Configuração de servidor e emulação" -#: src/objects/application/actions/about.c:125 src/objects/window/window.c:565 +#: src/objects/application/actions/about.c:137 src/objects/window/window.c:565 #: src/objects/os/linux/savedesktopicon.c:102 #: src/objects/os/windows/savedesktopicon.c:261 msgid "IBM 3270 Terminal emulator" @@ -483,7 +483,7 @@ msgstr "Largura do painel em colunas" msgid "Keypads" msgstr "Painéis" -#: src/objects/application/actions/about.c:177 +#: src/objects/application/actions/about.c:189 msgid "LICENSE" msgstr "LICENCA" @@ -519,7 +519,7 @@ msgstr "Barra de ferramentas" msgid "Main menu" msgstr "Menu principal" -#: src/objects/application/actions/about.c:165 +#: src/objects/application/actions/about.c:177 msgid "Maintainers" msgstr "Mantenedores" @@ -1109,7 +1109,7 @@ msgstr "Incapaz de ler preferências de sessa de '%s'" msgid "Unselect" msgstr "Remover seleção" -#: src/objects/application/actions/about.c:104 +#: src/objects/application/actions/about.c:116 #, c-format msgid "Unstable version %s-%s" msgstr "Versão instável %s-%s" @@ -1119,7 +1119,7 @@ msgstr "Versão instável %s-%s" msgid "Use +/- for field navigation" msgstr "Usar teclas +/- para navegar por campos" -#: src/objects/application/actions/about.c:106 +#: src/objects/application/actions/about.c:118 #, c-format msgid "Version %s-%s" msgstr "Versão %s-%s" @@ -1131,7 +1131,7 @@ msgstr "Versão %s-%s" msgid "View" msgstr "Exibir" -#: src/objects/application/actions/about.c:197 +#: src/objects/application/actions/about.c:209 msgid "View this project on github" msgstr "Visite-nos no github" @@ -1208,11 +1208,11 @@ msgstr "_Salvar" msgid "_View" msgstr "_Exibir" -#: src/objects/application/actions/about.c:196 +#: src/objects/application/actions/about.c:208 msgid "https://github.com/PerryWerneck/pw3270" msgstr "https://github.com/PerryWerneck/pw3270" -#: src/objects/application/actions/about.c:199 +#: src/objects/application/actions/about.c:211 msgid "translator-credits" msgstr "translator-credits" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index dfe8908f..7b3b9a26 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -86,7 +86,7 @@ msgstr "" "#-#-#-#-# about.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-11 08:16-0300\n" +"POT-Creation-Date: 2023-04-11 08:56-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -138,7 +138,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# header.pot (PACKAGE VERSION) #-#-#-#-#\n" +"#-#-#-#-# header-settings.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-04-08 01:14-0300\n" @@ -149,7 +149,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# header-settings.pot (PACKAGE VERSION) #-#-#-#-#\n" +"#-#-#-#-# header.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-04-08 01:14-0300\n" @@ -397,16 +397,16 @@ msgstr "" msgid "\"%s\" is not a valid user interface name" msgstr "" -#: src/objects/application/actions/about.c:124 +#: src/objects/application/actions/about.c:136 #, c-format msgid "%s for %s." msgstr "" -#: src/objects/application/actions/about.c:131 +#: src/objects/application/actions/about.c:143 msgid "32 bits Linux" msgstr "" -#: src/objects/application/actions/about.c:129 +#: src/objects/application/actions/about.c:141 msgid "32 bits Windows" msgstr "" @@ -415,11 +415,11 @@ msgstr "" msgid "3270 session files" msgstr "" -#: src/objects/application/actions/about.c:133 +#: src/objects/application/actions/about.c:145 msgid "64 bits Linux" msgstr "" -#: src/objects/application/actions/about.c:127 +#: src/objects/application/actions/about.c:139 msgid "64 bits Windows" msgstr "" @@ -428,7 +428,7 @@ msgid "" "The toolbar position only takes effect after restart" msgstr "" -#: src/objects/application/actions/about.c:223 ui/windows.ui.xml:40 +#: src/objects/application/actions/about.c:235 ui/windows.ui.xml:40 #: ui/windows.ui.xml:553 ui/macos.ui.xml:40 ui/macos.ui.xml:553 #: ui/linux.ui.xml:40 ui/linux.ui.xml:553 msgid "About PW3270" @@ -457,7 +457,7 @@ msgstr "" msgid "Append to copy" msgstr "" -#: src/objects/application/actions/about.c:166 +#: src/objects/application/actions/about.c:178 msgid "Apple version" msgstr "" @@ -487,7 +487,7 @@ msgstr "" msgid "Available" msgstr "" -#: src/objects/application/actions/about.c:169 +#: src/objects/application/actions/about.c:181 msgid "Based on X3270 from" msgstr "" @@ -595,7 +595,7 @@ msgstr "" msgid "Connected to host" msgstr "" -#: src/objects/application/actions/about.c:167 +#: src/objects/application/actions/about.c:179 msgid "Contributors" msgstr "" @@ -622,7 +622,7 @@ msgstr "" msgid "Copy as text" msgstr "" -#: src/objects/application/actions/about.c:173 +#: src/objects/application/actions/about.c:185 msgid "Copyright © 2008 Banco do Brasil S.A." msgstr "" @@ -759,7 +759,7 @@ msgstr "" msgid "Host and Emulation settings" msgstr "" -#: src/objects/application/actions/about.c:125 src/objects/window/window.c:565 +#: src/objects/application/actions/about.c:137 src/objects/window/window.c:565 #: src/objects/os/linux/savedesktopicon.c:102 #: src/objects/os/windows/savedesktopicon.c:261 msgid "IBM 3270 Terminal emulator" @@ -853,7 +853,7 @@ msgstr "" msgid "Keypads" msgstr "" -#: src/objects/application/actions/about.c:177 +#: src/objects/application/actions/about.c:189 msgid "LICENSE" msgstr "" @@ -889,7 +889,7 @@ msgstr "" msgid "Main menu" msgstr "" -#: src/objects/application/actions/about.c:165 +#: src/objects/application/actions/about.c:177 msgid "Maintainers" msgstr "" @@ -1474,7 +1474,7 @@ msgstr "" msgid "Unselect" msgstr "" -#: src/objects/application/actions/about.c:104 +#: src/objects/application/actions/about.c:116 #, c-format msgid "Unstable version %s-%s" msgstr "" @@ -1484,7 +1484,7 @@ msgstr "" msgid "Use +/- for field navigation" msgstr "" -#: src/objects/application/actions/about.c:106 +#: src/objects/application/actions/about.c:118 #, c-format msgid "Version %s-%s" msgstr "" @@ -1496,7 +1496,7 @@ msgstr "" msgid "View" msgstr "" -#: src/objects/application/actions/about.c:197 +#: src/objects/application/actions/about.c:209 msgid "View this project on github" msgstr "" @@ -1573,10 +1573,10 @@ msgstr "" msgid "_View" msgstr "" -#: src/objects/application/actions/about.c:196 +#: src/objects/application/actions/about.c:208 msgid "https://github.com/PerryWerneck/pw3270" msgstr "" -#: src/objects/application/actions/about.c:199 +#: src/objects/application/actions/about.c:211 msgid "translator-credits" msgstr "" diff --git a/src/objects/application/actions/about.c b/src/objects/application/actions/about.c index 3ce68c6c..6c2e2bbc 100644 --- a/src/objects/application/actions/about.c +++ b/src/objects/application/actions/about.c @@ -35,6 +35,17 @@ static char * find_logo() { static const char * names[] = { +#ifdef _WIN32 + + G_STRINGIFY(PRODUCT_NAME) "-about.png", + G_STRINGIFY(PRODUCT_NAME) "-logo.png", + G_STRINGIFY(PRODUCT_NAME) ".png", + G_STRINGIFY(PACKAGE_NAME) "-about.png", + G_STRINGIFY(PACKAGE_NAME) "-logo.png", + G_STRINGIFY(PACKAGE_NAME) ".png", + +#else + G_STRINGIFY(PRODUCT_NAME) "-about.svg", G_STRINGIFY(PRODUCT_NAME) "-logo.svg", G_STRINGIFY(PRODUCT_NAME) ".svg", @@ -48,6 +59,7 @@ static char * find_logo() { G_STRINGIFY(PACKAGE_NAME) "-about.png", G_STRINGIFY(PACKAGE_NAME) "-logo.png", G_STRINGIFY(PACKAGE_NAME) ".png", +#endif // _WIN32 }; size_t ix; From 26bc621c50a76962a867abcc85bf58061e39feb4 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 11 Apr 2023 18:29:11 -0300 Subject: [PATCH 116/186] Update winpkg.yml --- .github/workflows/winpkg.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/winpkg.yml b/.github/workflows/winpkg.yml index 3cc5ee33..8bd392ac 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/winpkg.yml @@ -20,6 +20,7 @@ jobs: id: gettag with: repository: PerryWerneck/pw3270 + sort-tags: true releases-only: true - uses: msys2/setup-msys2@v2 with: @@ -46,7 +47,7 @@ jobs: tag: ${{ steps.gettag.outputs.tag }} artifacts: "*-pw3270-*.pkg.tar.zst" allowUpdates: true - draft: false + draft: true makeLatest: true omitBody: true omitPrereleaseDuringUpdate: true @@ -75,7 +76,7 @@ jobs: tag: ${{ steps.gettag.outputs.tag }} artifacts: "*-pw3270-*.tar.xz" allowUpdates: true - draft: false + draft: true makeLatest: true omitBody: true omitPrereleaseDuringUpdate: true From 64ca5ee6caaab61eb767032a1372bf90197fa337 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 12 Apr 2023 07:36:23 -0300 Subject: [PATCH 117/186] Uploading zipfile to release. --- win/bundle.common | 65 +++++++++++++++++++++++++++++++++++++++-------- win/bundle.cross | 49 ++++++++++++++++++++--------------- 2 files changed, 83 insertions(+), 31 deletions(-) diff --git a/win/bundle.common b/win/bundle.common index 78c3c2d4..2119c51a 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -2,20 +2,20 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later # -# Copyright (C) 2021 Perry Werneck +# Copyright (C) 2023 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 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. +# 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 . +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # # @@ -47,6 +47,20 @@ if [ -z ${PKG_CONFIG} ]; then PKG_CONFIG=${MINGW_PREFX}/bin/pkg-config fi +PACKAGE_NAME=$(grep AC_INIT configure.ac | cut -d[ -f2 | cut -d] -f1) +if [ -z ${PACKAGE_NAME} ]; then + echo "Cant determine package name" + exit -1 +fi + +PACKAGE_VERSION=$(grep AC_INIT configure.ac | cut -d[ -f3 | cut -d] -f1) +if [ -z ${PACKAGE_VERSION} ]; then + echo "Cant determine package name" + exit -1 +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") @@ -354,5 +368,34 @@ argument() { return 2 } +make_zip() { + + cd ${buildroot}${MINGW_PREFIX} + if [ "$?" != "0" ]; then + exit -1 + fi + + rm -f ${srcdir}/${MINGW_PACKAGE_PREFIX}-${PACKAGE_NAME}-${PACKAGE_VERSION}.bundle.zip + + zip -9 -r ${srcdir}/${MINGW_PACKAGE_PREFIX}-${PACKAGE_NAME}-${PACKAGE_VERSION}.bundle.zip . + if [ "$?" != "0" ]; then + exit -1 + fi + + cd ${srcdir} + if [ "$?" != "0" ]; then + exit -1 + fi + + if [ -z $(which gh) ]; then + return 0 + fi + + argument "upload" > /dev/null + if [ "$?" == "0" ]; then + gh release upload --clobber "${PACKAGE_VERSION}" ${srcdir}/${MINGW_PACKAGE_PREFIX}-${PACKAGE_NAME}-${PACKAGE_VERSION}.bundle.zip + fi + +} diff --git a/win/bundle.cross b/win/bundle.cross index 4a18131d..bee4661b 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -88,31 +88,38 @@ else packages="${packages} pw3270" fi -echo "Packages: ${packages}" -for package in ${packages} -do - PACKAGE_NAME=$(rpm -qa | grep "${MINGW_PACKAGE_PREFIX}-${package}" | grep -v devel | head --lines=1) - echo "Copy ${PACKAGE_NAME}" - for FILE in $(rpm -ql "${PACKAGE_NAME}") - do - if [ ! -d ${FILE} ]; then +unpack_rpm() { - FILEPATH="${buildroot}${FILE}" - mkdir -p "$(dirname ${FILEPATH})" - if [ "$?" != "0" ]; then - exit -1 + local package + local PACKAGE_NAME + + echo "Packages: ${packages}" + for package in ${packages} + do + PACKAGE_NAME=$(rpm -qa | grep "${MINGW_PACKAGE_PREFIX}-${package}" | grep -v devel | head --lines=1) + echo "Copy ${PACKAGE_NAME}" + for FILE in $(rpm -ql "${PACKAGE_NAME}") + do + if [ ! -d ${FILE} ]; then + + FILEPATH="${buildroot}${FILE}" + mkdir -p "$(dirname ${FILEPATH})" + if [ "$?" != "0" ]; then + exit -1 + fi + + cp "${FILE}" "${FILEPATH}" + if [ "$?" != "0" ]; then + echo "Cant copy '${FILE}' from '${PACKAGE_NAME}'" + exit -1 + fi fi + done - cp "${FILE}" "${FILEPATH}" - if [ "$?" != "0" ]; then - echo "Cant copy '${FILE}' from '${PACKAGE_NAME}'" - exit -1 - fi - fi done +} -done - +unpack_rpm install_loaders install_bin install_locale @@ -120,5 +127,7 @@ install_schemas install_theme "Adwaita" install_icons "Adwaita" +make_zip + echo "Bundle build complete" From 1da61fb1184d7d5080de8055c14361550ab4024c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 12 Apr 2023 08:12:03 -0300 Subject: [PATCH 118/186] Working in cross bundler. --- win/bundle.common | 22 ++++++++++++++++++++-- win/bundle.cross | 10 ++-------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/win/bundle.common b/win/bundle.common index 2119c51a..14f0484e 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -59,8 +59,6 @@ if [ -z ${PACKAGE_VERSION} ]; then exit -1 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") @@ -398,4 +396,24 @@ make_zip() { } +install_runtime() { + + install_loaders + install_bin + install_locale + install_schemas + install_theme "Adwaita" + install_icons "Adwaita" + +} + +make_packages() { + + argument "zip" > /dev/null + if [ "$?" == "0" ]; then + make_zip + fi + +} + diff --git a/win/bundle.cross b/win/bundle.cross index bee4661b..72df44b2 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -120,14 +120,8 @@ unpack_rpm() { } unpack_rpm -install_loaders -install_bin -install_locale -install_schemas -install_theme "Adwaita" -install_icons "Adwaita" - -make_zip +install_runtime +make_packages echo "Bundle build complete" From 7f2b504779ad0ded4f7e7c6a7d40cf0ac82d2c4d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 12 Apr 2023 20:24:31 -0300 Subject: [PATCH 119/186] Refactoring nsi script. --- branding/release-badge-en.svg | 132 +++++++++++++++++++++ win/bundle.cross | 12 ++ win/pw3270.nsi.in | 209 +++++----------------------------- 3 files changed, 171 insertions(+), 182 deletions(-) create mode 100644 branding/release-badge-en.svg diff --git a/branding/release-badge-en.svg b/branding/release-badge-en.svg new file mode 100644 index 00000000..10ec20ed --- /dev/null +++ b/branding/release-badge-en.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/win/bundle.cross b/win/bundle.cross index 72df44b2..55255ca9 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -119,8 +119,20 @@ unpack_rpm() { done } +install_license() { + mkdir -p "${buildroot}${MINGW_PREFIX}/usr/share/${PACKAGE_NAME}" + cp "${srcdir}/LICENSE" "${buildroot}${MINGW_PREFIX}/share/${PACKAGE_NAME}" + if [ "$?" != "0" ]; then + echo "Cant copy LICENSE" + exit -1 + fi +} + unpack_rpm + install_runtime +install_license + make_packages echo "Bundle build complete" diff --git a/win/pw3270.nsi.in b/win/pw3270.nsi.in index c2ee56c0..a6dd25a7 100644 --- a/win/pw3270.nsi.in +++ b/win/pw3270.nsi.in @@ -24,20 +24,16 @@ Name "@PRODUCT_NAME@" Caption "@PRODUCT_NAME@ - @PACKAGE_DESCRIPTION@" -!ifdef WITHGTK -outfile "@PRODUCT_NAME@-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.@PACKAGE_MAJOR_RELEASE@.@PACKAGE_MINOR_RELEASE@-gtk-@GTK_MODVERSION@-@host_cpu@.exe" -!else -outfile "@PRODUCT_NAME@-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.@PACKAGE_MAJOR_RELEASE@.@PACKAGE_MINOR_RELEASE@-requires-gtk-@GTK_MODVERSION@-@host_cpu@.exe" -!endif +outfile "@PRODUCT_NAME@-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@-@host_cpu@.exe" XPStyle on installDir "$@PROGRAMFILES@\@PRODUCT_NAME@" #define the installer icon -!define MUI_ICON "@PRODUCT_NAME@.ico" -!define MUI_UNICON "@PRODUCT_NAME@.ico" -icon "@PRODUCT_NAME@.ico" +!define MUI_ICON "bin\@PRODUCT_NAME@.ico" +!define MUI_UNICON "bin\@PRODUCT_NAME@.ico" +icon "bin\@PRODUCT_NAME@.ico" # Get installation folder from registry if available InstallDirRegKey HKLM "Software\@PRODUCT_NAME@" "InstallLocation" @@ -61,7 +57,7 @@ VIAddVersionKey "LegalCopyright" "(C) 2017 Banco do Brasil S/A. All Rights Reser !define MUI_ABORTWARNING # !insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "LICENSE" +!insertmacro MUI_PAGE_LICENSE "share\@PRODUCT_NAME@\LICENSE" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES @@ -80,7 +76,7 @@ VIAddVersionKey "LegalCopyright" "(C) 2017 Banco do Brasil S/A. All Rights Reser # default section SubSection "@PRODUCT_NAME@" SecMain - Section "Core" SecCore + Section "@PRODUCT_NAME@" SecCore SetRegView @WINARCH@ ${DisableX64FSRedirection} @@ -89,61 +85,14 @@ SubSection "@PRODUCT_NAME@" SecMain setOutPath $INSTDIR SetShellVarContext all - createShortCut "$SMPROGRAMS\@PRODUCT_NAME@.lnk" "$INSTDIR\@PRODUCT_NAME@.exe" - createShortCut "$DESKTOP\@PRODUCT_NAME@.lnk" "$INSTDIR\@PRODUCT_NAME@.exe" + createShortCut "$SMPROGRAMS\@PRODUCT_NAME@.lnk" "$INSTDIR\bin\@PRODUCT_NAME@.exe" + createShortCut "$DESKTOP\@PRODUCT_NAME@.lnk" "$INSTDIR\bin\@PRODUCT_NAME@.exe" # Binary files - file "/oname=$INSTDIR\@PRODUCT_NAME@.exe" "bin\@PRODUCT_NAME@.exe" - file "/oname=$INSTDIR\@PRODUCT_NAME@.ico" "bin\@PRODUCT_NAME@.ico" - file "/oname=$INSTDIR\lib@LIBRARY_NAME@.dll" "bin\lib@LIBRARY_NAME@.dll" - file "/oname=$INSTDIR\libv3270.dll" "bin\libv3270.dll" - - # Register file association - - # icons & logos - CreateDirectory "$INSTDIR\icons" - file "/oname=$INSTDIR\icons\gtk-connect-symbolic.svg" "share\@PRODUCT_NAME@\icons\gtk-connect-symbolic.svg" - file "/oname=$INSTDIR\icons\gtk-disconnect-symbolic.svg" "share\@PRODUCT_NAME@\icons\gtk-disconnect-symbolic.svg" - file "/oname=$INSTDIR\icons\connect-symbolic.svg" "share\@PRODUCT_NAME@\icons\connect-symbolic.svg" - file "/oname=$INSTDIR\icons\disconnect-symbolic.svg" "share\@PRODUCT_NAME@\icons\disconnect-symbolic.svg" - file "/oname=$INSTDIR\icons\@PRODUCT_NAME@.svg" "share\@PRODUCT_NAME@\@PRODUCT_NAME@.svg" - - file "/oname=$INSTDIR\@PRODUCT_NAME@-logo.svg" "share\@PRODUCT_NAME@\@PRODUCT_NAME@-logo.svg" - file "/oname=$INSTDIR\@PRODUCT_NAME@.svg" "share\@PRODUCT_NAME@\@PRODUCT_NAME@.svg" - file "/oname=$INSTDIR\@PRODUCT_NAME@.png" "share\@PRODUCT_NAME@\@PRODUCT_NAME@.png" - - # Schema - CreateDirectory "$INSTDIR\schemas" - file "/oname=$INSTDIR\schemas\@PRODUCT_NAME@-application.gschema.xml" "share\glib-2.0\schemas\@PRODUCT_NAME@-application.gschema.xml" - file "/oname=$INSTDIR\schemas\@PRODUCT_NAME@-window.gschema.xml" "share\glib-2.0\schemas\@PRODUCT_NAME@-window.gschema.xml" - - file "/oname=$INSTDIR\gschemas.compiled" "runtime/share/glib-2.0/schemas/gschemas.compiled" - - # Configuration files - file "/oname=$INSTDIR\colors.conf" "share\@PRODUCT_NAME@\colors.conf" - - # Documentation files - file "/oname=$INSTDIR\AUTHORS" "AUTHORS" - file "/oname=$INSTDIR\LICENSE" "LICENSE" - - # Misc folders - CreateDirectory "$INSTDIR\certs" - CreateDirectory "$INSTDIR\plugins" - CreateDirectory "$INSTDIR\keypad" - - # UI definition files - CreateDirectory "$INSTDIR\ui" - file "/oname=$INSTDIR\@PRODUCT_NAME@.ui.xml" "share\@PRODUCT_NAME@\@PRODUCT_NAME@.ui.xml" - - # Charset definition files - CreateDirectory "$INSTDIR\remap" - file "/oname=$INSTDIR\remap\bracket.xml" "share\@PRODUCT_NAME@\remap\bracket.xml" - - # Locale files - CreateDirectory "$INSTDIR\locale\pt_BR\LC_MESSAGES" - file "/oname=$INSTDIR\locale\pt_BR\LC_MESSAGES\@PACKAGE_NAME@.mo" "share\locale\pt_BR\LC_MESSAGES\@PACKAGE_NAME@.mo" - file "/oname=$INSTDIR\locale\pt_BR\LC_MESSAGES\lib@LIBRARY_NAME@-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.mo" "share\locale\pt_BR\LC_MESSAGES\lib@LIBRARY_NAME@-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.mo" - file "/oname=$INSTDIR\locale\pt_BR\LC_MESSAGES\libv3270-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.mo" "share\locale\pt_BR\LC_MESSAGES\libv3270-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.mo" + file /r "bin\*.exe" + file /r "bin\*.dll" + file /r "lib\gdk-pixbuf-2.0" + file /r "etc\*" # define uninstaller name SetRegView 32 @@ -223,111 +172,15 @@ SubSection "@PRODUCT_NAME@" SecMain Section "Remote control" IPCPlugin setOutPath $INSTDIR - ${DisableX64FSRedirection} - - CreateDirectory "$INSTDIR\plugins" - file "/oname=$INSTDIR\plugins\ipcserver.dll" "lib\@PRODUCT_NAME@-plugins\ipcserver.dll" - - CreateDirectory "$INSTDIR\locale\pt_BR\LC_MESSAGES" - file "/oname=$INSTDIR\locale\pt_BR\LC_MESSAGES\libipc3270-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.mo" "share\locale\pt_BR\LC_MESSAGES\libipc3270-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.mo" - - ${@NSISREDIR@} - file "/oname=$SYSDIR\libipc3270.dll" "bin\libipc3270.dll" + file "lib/@PRODUCT_NAME@-plugins/ipcserver.dll" sectionEnd SubSectionEnd -!ifdef WITHEXTRAS - SubSection "Extra modules" Languages - -!ifdef WITHLIBHLLAPI - Section "HLLAPI" HLLAPIBinding - - ${@NSISREDIR@} - - # Install HLLAPI connector - file "/oname=$SYSDIR\hllapi.dll" "bin\libhllapi.dll" - - # Install with "lib" prefix for compatibility. - file "/oname=$SYSDIR\libhllapi.dll" "bin\libhllapi.dll" - - CreateDirectory "$INSTDIR\locale\pt_BR\LC_MESSAGES" - file "/oname=$INSTDIR\locale\pt_BR\LC_MESSAGES\libhllapi-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.mo" "share\locale\pt_BR\LC_MESSAGES\libhllapi-@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.mo" - - SectionEnd -!endif - - Section "KEYPADS" Keypads - - file "/oname=$INSTDIR\keypad\00-right.xml" "share\@PRODUCT_NAME@\keypad\00-right.xml" - file "/oname=$INSTDIR\keypad\10-bottom.xml" "share\@PRODUCT_NAME@\keypad\10-bottom.xml" - - SectionEnd - -!ifdef WITHMONO-TN3270 - Section /o ".NET" DOTNET - - CreateDirectory "$INSTDIR\dotnet" - - ${DisableX64FSRedirection} - file "/oname=$INSTDIR\dotnet\tn3270.dll" "mono/lib/tn3270-5.2/tn3270.dll" - file "/oname=$INSTDIR\dotnet\tn3270.xml" "mono/gapi-2.0/tn3270/tn3270.xml" - - ${@NSISREDIR@} - file "/oname=$SYSDIR\mono-tn3270.dll" "mono-tn3270.dll" - - SectionEnd -!endif - - SubSectionEnd -!endif - -!ifdef WITHSDK - Section /o "Software Development Kit" SDK - - setOutPath $INSTDIR\sdk\include - file /r "include\*.*" - - CreateDirectory "$INSTDIR\sdk" - CreateDirectory "$INSTDIR\sdk\def" - CreateDirectory "$INSTDIR\sdk\lib" - - file "/oname=$INSTDIR\sdk\lib\lib3270.dll.a" "lib\lib@LIBRARY_NAME@.dll.a" - file "/oname=$INSTDIR\sdk\lib\lib3270.delayed.a" "lib\lib@LIBRARY_NAME@.delayed.a" - file "/oname=$INSTDIR\sdk\lib\lib3270.static.a" "lib\lib@LIBRARY_NAME@.static.a" - file "/oname=$INSTDIR\sdk\lib\libv3270.dll.a" "lib\libv3270.dll.a" - file "/oname=$INSTDIR\sdk\lib\libipc3270.dll.a" "lib\libipc3270.dll.a" - file "/oname=$INSTDIR\sdk\lib\libipc3270.static.a" "lib\libipc3270.static.a" - file "/oname=$INSTDIR\sdk\lib\libhllapi.dll.a" "lib\libhllapi.dll.a" - - file "/oname=$INSTDIR\sdk\lib3270.mak" "share\@PRODUCT_NAME@\def\lib3270.mak" - - file "/oname=$INSTDIR\sdk\def\lib@LIBRARY_NAME@.def" "share\@PRODUCT_NAME@\def\lib@LIBRARY_NAME@.def" - file "/oname=$INSTDIR\sdk\def\libv3270.def" "share\@PRODUCT_NAME@\def\libv3270.def" - file "/oname=$INSTDIR\sdk\def\libipc3270.def" "share\@PRODUCT_NAME@\def\libipc3270.def" - file "/oname=$INSTDIR\sdk\def\libhllapi.def" "share\@PRODUCT_NAME@\def\libhllapi.def" - - SetRegView @WINARCH@ - WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PW3270_SDK_PATH" "$INSTDIR\sdk" - SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 - - SectionEnd -!endif - SubSectionEnd - -!ifdef WITHGTK -Section "GTK+ Runtime" SecGTK - - setOutPath $INSTDIR - file /r "runtime\*.*" - -SectionEnd -!endif - Section "Uninstall" # Always delete uninstaller first @@ -343,15 +196,7 @@ Section "Uninstall" delete $SMPROGRAMS\@PRODUCT_NAME@.lnk delete $DESKTOP\@PRODUCT_NAME@.lnk - RMDir /r "$INSTDIR\locale" - RMDir /r "$INSTDIR\share" - RMDir /r "$INSTDIR\etc" - RMDir /r "$INSTDIR\plugins" - RMDir /r "$INSTDIR\sdk" - RMDir /r "$INSTDIR\gtk2-runtime" - - # Delete all files - delete "$INSTDIR\*.dll" + RMDir /r "$INSTDIR" # Remove registry SetRegView 32 @@ -404,19 +249,19 @@ Function .onInit ClearErrors ${GetOptions} $R0 /SDK= $0 - ${if} $0 == "YES" - - SectionGetFlags ${SDK} $0 - IntOp $0 $0 | ${SF_SELECTED} - SectionSetFlags ${SDK} $0 - - ${else} - - SectionGetFlags ${SDK} $0 - IntOp $0 $0 & ${SECTION_OFF} - SectionSetFlags ${SDK} $0 - - ${EndIf} +# ${if} $0 == "YES" +# +# SectionGetFlags ${SDK} $0 +# IntOp $0 $0 | ${SF_SELECTED} +# SectionSetFlags ${SDK} $0 +# +# ${else} +# +# SectionGetFlags ${SDK} $0 +# IntOp $0 $0 & ${SECTION_OFF} +# SectionSetFlags ${SDK} $0 +# +# ${EndIf} Pop $0 !endif From eae848b2a20b5b6005f06f5522d0de9b99516645 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 12 Apr 2023 21:02:44 -0300 Subject: [PATCH 120/186] Working on cross bundler. --- win/bundle.cross | 70 +++++++++++++++++++++++++++++++++++++++++------ win/pw3270.nsi.in | 50 ++++++++++++++++++++++----------- 2 files changed, 95 insertions(+), 25 deletions(-) diff --git a/win/bundle.cross b/win/bundle.cross index 55255ca9..c9906797 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -40,11 +40,20 @@ prepare # List of pre-built packages packages="lib3270 libv3270 libipc3270 libhllapi pw3270-plugin-ipc" +dev_packages="lib3270 libv3270 libipc3270" -argument "install-requires" > /dev/null -if [ "$?" == "0" ]; then +install_prereqs() { - echo "Installing: ${packages}" + local list + local package + + list="${packages}" + for package in ${dev_packages} + do + list="${list} ${package}-devel" + done + + echo "Installing: ${list}" REPONUMBER=$(zypper lr | grep "${REPOSITORY_NAME}" | cut -d\| -f1) if [ -z "${REPONUMBER}" ]; then @@ -58,7 +67,7 @@ if [ "$?" == "0" ]; then exit -1 fi - for package in ${packages} + for package in ${list} do sudo zypper in --repo ${REPONUMBER} "${MINGW_PACKAGE_PREFIX}-${package}" if [ "$?" != "0" ]; then @@ -66,11 +75,9 @@ if [ "$?" == "0" ]; then exit -1 fi done - -fi +} -argument "build" > /dev/null -if [ "$?" == "0" ]; then +build_package() { # Build make -C "${srcdir}" all @@ -84,6 +91,17 @@ if [ "$?" == "0" ]; then echo "Install failed" exit -1 fi + +} + +argument "install-requires" > /dev/null +if [ "$?" == "0" ]; then + install_prereqs +fi + +argument "build" > /dev/null +if [ "$?" == "0" ]; then + build_package else packages="${packages} pw3270" fi @@ -91,12 +109,16 @@ fi unpack_rpm() { local package + local list local PACKAGE_NAME - echo "Packages: ${packages}" for package in ${packages} do PACKAGE_NAME=$(rpm -qa | grep "${MINGW_PACKAGE_PREFIX}-${package}" | grep -v devel | head --lines=1) + if [ -z "${PACKAGE_NAME}" ]; then + echo "No data from ${MINGW_PACKAGE_PREFIX}-${package}" + exit -1 + fi echo "Copy ${PACKAGE_NAME}" for FILE in $(rpm -ql "${PACKAGE_NAME}") do @@ -117,6 +139,36 @@ unpack_rpm() { done done + + + for package in ${dev_packages} + do + PACKAGE_NAME=$(rpm -qa | grep "${MINGW_PACKAGE_PREFIX}-${package}" | grep devel | head --lines=1) + if [ -z "${PACKAGE_NAME}" ]; then + echo "No data from ${MINGW_PACKAGE_PREFIX}-${package}-devel" + exit -1 + fi + echo "Copy ${PACKAGE_NAME}" + for FILE in $(rpm -ql "${PACKAGE_NAME}") + do + if [ ! -d ${FILE} ]; then + + FILEPATH="${buildroot}${FILE}" + mkdir -p "$(dirname ${FILEPATH})" + if [ "$?" != "0" ]; then + exit -1 + fi + + cp "${FILE}" "${FILEPATH}" + if [ "$?" != "0" ]; then + echo "Cant copy '${FILE}' from '${PACKAGE_NAME}'" + exit -1 + fi + fi + done + + done + } install_license() { diff --git a/win/pw3270.nsi.in b/win/pw3270.nsi.in index a6dd25a7..362fdf4b 100644 --- a/win/pw3270.nsi.in +++ b/win/pw3270.nsi.in @@ -56,16 +56,16 @@ VIAddVersionKey "LegalCopyright" "(C) 2017 Banco do Brasil S/A. All Rights Reser # Interface !define MUI_ABORTWARNING -# !insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "share\@PRODUCT_NAME@\LICENSE" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES -# !insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES -# !insertmacro MUI_UNPAGE_FINISH +!insertmacro MUI_UNPAGE_FINISH # Languages !insertmacro MUI_LANGUAGE "English" @@ -160,6 +160,24 @@ SubSection "@PRODUCT_NAME@" SecMain sectionEnd +!ifdef WITHSDK + Section /o "Software Development Kit" SDK + + setOutPath $INSTDIR\sdk + file /r "include\*.*" + file /r "lib\*.a" + + setOutPath $INSTDIR\sdk\msvc + file /r "share\@PRODUCT_NAME@\def\*.def" + file /r "share\@PRODUCT_NAME@\def\*.mak" + + SetRegView @WINARCH@ + WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PW3270_SDK_PATH" "$INSTDIR\sdk" + SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 + + SectionEnd +!endif + !ifdef WITHCERTS Section "SSL Certificates" SSLCerts setOutPath $INSTDIR\certs @@ -249,19 +267,19 @@ Function .onInit ClearErrors ${GetOptions} $R0 /SDK= $0 -# ${if} $0 == "YES" -# -# SectionGetFlags ${SDK} $0 -# IntOp $0 $0 | ${SF_SELECTED} -# SectionSetFlags ${SDK} $0 -# -# ${else} -# -# SectionGetFlags ${SDK} $0 -# IntOp $0 $0 & ${SECTION_OFF} -# SectionSetFlags ${SDK} $0 -# -# ${EndIf} + ${if} $0 == "YES" + + SectionGetFlags ${SDK} $0 + IntOp $0 $0 | ${SF_SELECTED} + SectionSetFlags ${SDK} $0 + + ${else} + + SectionGetFlags ${SDK} $0 + IntOp $0 $0 & ${SECTION_OFF} + SectionSetFlags ${SDK} $0 + + ${EndIf} Pop $0 !endif From de83b7b773c09580c4f5360cb7fbb82560a059e0 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 12 Apr 2023 22:08:00 -0300 Subject: [PATCH 121/186] Working on win32 installer. --- win/bundle.common | 40 ++++++++++++++++++++++++++++++++++++++++ win/pw3270.nsi.in | 40 ++++++++++++++++++++++++++++++++++------ 2 files changed, 74 insertions(+), 6 deletions(-) diff --git a/win/bundle.common b/win/bundle.common index 14f0484e..288af326 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -396,6 +396,35 @@ make_zip() { } +make_nsis() { + makensis \ + -INPUTCHARSET UTF8 \ + -DWITHIPC \ + -DWITHPLUGINS \ + -DWITHSDK \ + ${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi + if [ "$?" != "0" ]; then + echo "Cant build nsis script" + fi + + if [ ! -z $(which gh) ]; then + argument "upload" > /dev/null + if [ "$?" == "0" ]; then + gh release upload --clobber "${PACKAGE_VERSION}" ${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}*.exe + if [ "$?" != "0" ]; then + echo "Cant upload nsis installer" + exit -1 + fi + fi + fi + + mv -f ${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}*.exe "${srcdir}" + if [ "$?" != "0" ]; then + echo "Cant copy nsis installer" + exit -1 + fi +} + install_runtime() { install_loaders @@ -409,11 +438,22 @@ install_runtime() { make_packages() { + mkdir -p "${buildroot}${MINGW_PREFIX}/nsi" + cp "${srcdir}/win/pw3270.nsi" "${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi" + if [ "$?" != "0" ]; then + echo "Cant copy nsis script" + fi + argument "zip" > /dev/null if [ "$?" == "0" ]; then make_zip fi + argument "nsi" > /dev/null + if [ "$?" == "0" ]; then + make_nsis + fi + } diff --git a/win/pw3270.nsi.in b/win/pw3270.nsi.in index 362fdf4b..6f410d91 100644 --- a/win/pw3270.nsi.in +++ b/win/pw3270.nsi.in @@ -82,18 +82,45 @@ SubSection "@PRODUCT_NAME@" SecMain ${DisableX64FSRedirection} # define the output path for this file - setOutPath $INSTDIR SetShellVarContext all createShortCut "$SMPROGRAMS\@PRODUCT_NAME@.lnk" "$INSTDIR\bin\@PRODUCT_NAME@.exe" createShortCut "$DESKTOP\@PRODUCT_NAME@.lnk" "$INSTDIR\bin\@PRODUCT_NAME@.exe" # Binary files - file /r "bin\*.exe" - file /r "bin\*.dll" - file /r "lib\gdk-pixbuf-2.0" + setOutPath "$INSTDIR" + file /r "bin" + + setOutPath "$INSTDIR\share\@PRODUCT_NAME@" + file /r "share\@PRODUCT_NAME@\*.png" + file /r "share\@PRODUCT_NAME@\*.svg" + file /r "share\@PRODUCT_NAME@\*.ui.xml" + file /r "share\@PRODUCT_NAME@\*.conf" + + setOutPath "$INSTDIR\share\@PRODUCT_NAME@\remap" + file /r "share\@PRODUCT_NAME@\remap\*" + + setOutPath "$INSTDIR\lib\gdk-pixbuf-2.0" + file /r "lib\gdk-pixbuf-2.0\*" + + setOutPath "$INSTDIR\etc" file /r "etc\*" + setOutPath "$INSTDIR\share\locale" + file /r "share\locale\*" + + setOutPath "$INSTDIR\share\themes" + file /r "share\themes\*" + + setOutPath "$INSTDIR\share\icons" + file /r "share\icons\*" + + setOutPath "$INSTDIR\share\glib-2.0" + file /r "share\glib-2.0\*" + + setOutPath "$INSTDIR\share\@PRODUCT_NAME@\icons" + file /r "share\@PRODUCT_NAME@\icons\*" + # define uninstaller name SetRegView 32 @@ -166,6 +193,7 @@ SubSection "@PRODUCT_NAME@" SecMain setOutPath $INSTDIR\sdk file /r "include\*.*" file /r "lib\*.a" + file /r "lib\pkgconfig\*.pc" setOutPath $INSTDIR\sdk\msvc file /r "share\@PRODUCT_NAME@\def\*.def" @@ -189,9 +217,9 @@ SubSection "@PRODUCT_NAME@" SecMain Section "Remote control" IPCPlugin - setOutPath $INSTDIR ${DisableX64FSRedirection} - file "lib/@PRODUCT_NAME@-plugins/ipcserver.dll" + CreateDirectory "$INSTDIR\lib\@PRODUCT_NAME@-plugins" + file "/oname=$INSTDIR\lib\@PRODUCT_NAME@-plugins\ipcserver.dll" "lib\@PRODUCT_NAME@-plugins\ipcserver.dll" sectionEnd From 6c3e01ad5a39b6051d4187141140cfb597cf2ea3 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 12 Apr 2023 22:16:11 -0300 Subject: [PATCH 122/186] Debug win32 installer. --- win/pw3270.nsi.in | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/win/pw3270.nsi.in b/win/pw3270.nsi.in index 6f410d91..3ea0519c 100644 --- a/win/pw3270.nsi.in +++ b/win/pw3270.nsi.in @@ -190,9 +190,13 @@ SubSection "@PRODUCT_NAME@" SecMain !ifdef WITHSDK Section /o "Software Development Kit" SDK - setOutPath $INSTDIR\sdk + setOutPath $INSTDIR\sdk\include file /r "include\*.*" + + setOutPath $INSTDIR\sdk\lib file /r "lib\*.a" + + setOutPath $INSTDIR\sdk\lib\pkgconfig file /r "lib\pkgconfig\*.pc" setOutPath $INSTDIR\sdk\msvc From 19f56e5b0148c6e7a0dde2fb9c0592fd0d6030be Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 13 Apr 2023 09:25:17 -0300 Subject: [PATCH 123/186] Debugging bundle.cross. --- locale/pw3270.pot | 377 +--------------------------------------------- win/bundle.cross | 16 ++ 2 files changed, 17 insertions(+), 376 deletions(-) diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 7b3b9a26..470331e7 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -6,384 +6,9 @@ #, fuzzy msgid "" msgstr "" -"#-#-#-#-# view.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# save.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# abstract.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# application.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# window.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# preferences.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# open.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# about.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-11 08:56-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# window.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# terminal.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# page.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# keyfile.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# header-settings.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# header.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# sessionproperties.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# filetransfer.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# connect.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# close.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# toolbar.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# settings.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# models.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# dialog.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# actionview.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# tools.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# builder.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# model.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# element.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# attribute.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# open.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# windows.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# macos.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# linux.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-08 01:14-0300\n" +"POT-Creation-Date: 2023-04-13 07:52-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/win/bundle.cross b/win/bundle.cross index c9906797..3d33d1b0 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -101,9 +101,25 @@ fi argument "build" > /dev/null if [ "$?" == "0" ]; then + + NOCONFIGURE=1 ./autogen.sh + if [ "$?" != "0" ]; then + echo "Configure failed" + exit -1 + fi + + ${MINGW_PACKAGE_PREFIX}-configure + if [ "$?" != "0" ]; then + echo "Configure failed" + exit -1 + fi + build_package + else + packages="${packages} pw3270" + fi unpack_rpm() { From 5eb153a51d838045c99fbda21eb83d8b6de0ee74 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 18 Apr 2023 00:06:25 -0300 Subject: [PATCH 124/186] Working on win32 bundle. --- locale/pw3270.pot | 2 +- win/bundle.common | 106 ++++++++++++++++++++++++---------------------- 2 files changed, 56 insertions(+), 52 deletions(-) diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 470331e7..bce73933 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-13 07:52-0300\n" +"POT-Creation-Date: 2023-04-13 10:02-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/win/bundle.common b/win/bundle.common index 288af326..35d1df02 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -116,62 +116,64 @@ install_bin() { while read FILENAME do + echo ${FILENAME} 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 + advapi32.dll + cfgmgr32.dll + comctl32.dll + comdlg32.dll + crypt32.dll + d3d8.dll + d3d9.dll + ddraw.dll + dnsapi.dll + dsound.dll + dwmapi.dll + gdi32.dll + gdiplus.dll + glu32.dll + glut32.dll + imm32.dll + iphlpapi.dll + kernel32.dll + ksuser.dll + mpr.dll + mscms.dll + mscoree.dll + msimg32.dll + msvcr71.dll + msvcr80.dll + msvcr90.dll + msvcrt.dll + mswsock.dll + netapi32.dll + odbc32.dll + ole32.dll + oleacc.dll + oleaut32.dll + opengl32.dll + psapi.dll + rpcrt4.dll + secur32.dll + setupapi.dll + shell32.dll + shlwapi.dll + user32.dll + usp10.dll + version.dll + wininet.dll + winmm.dll + wldap32.dll + ws2_32.dll + wsock32.dll winspool.drv - ntdll - winhttp - hid + ntdll.dll + winhttp.dll + hid.dll + bcrypt.dll " # Remove system DLLs from list @@ -183,6 +185,8 @@ install_bin() { while read FILENAME do + echo ${FILENAME} + if [ ! -e "${bindir}/${FILENAME}" ]; then if [ -e ${MINGW_PREFIX}/bin/${FILENAME} ]; then From b791c952c83d7bc79e14064289014e44d3f9296a Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 19 Apr 2023 09:23:04 -0300 Subject: [PATCH 125/186] Adding help to bundle script. --- win/bundle.common | 57 ++++++++++++++++++++++++++++++----------------- win/bundle.cross | 6 +++++ 2 files changed, 43 insertions(+), 20 deletions(-) diff --git a/win/bundle.common b/win/bundle.common index 35d1df02..97c18c8a 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -25,6 +25,37 @@ # http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format # +# Check command-line arguments +argument() { + + local cmdline + for cmdline in ${BASH_ARGV[*]} + do + if [ "$(echo ${cmdline} | sed "s@^--@@g" | sed "s@^-@@g" | cut -d= -f1)" == "${1}" ]; then + local value + value="$(echo ${cmdline} | cut -d= -f2)" + if [ -z "${value}" ]; then + echo "1" + else + echo "${value}" + fi + return 0 + fi + done + echo "" + return 2 +} + +argument "help" > /dev/null +if [ "$?" == "0" ]; then + echo "Use ${0} options" + echo "" + echo " --help Help options (this screen)" + echo " --zip Build zipfile" + echo " --nsi Build nsi installer" + echo " --upload Upload bundle to github" +fi + # Setup default paths srcdir="$(dirname $(dirname $(readlink -f "${0}")))" cd ${srcdir} @@ -97,6 +128,12 @@ fi export LANG=C prepare() { + + argument "help" > /dev/null + if [ "$?" == "0" ]; then + exit 0 + fi + rm -fr "${buildroot}" mkdir -p "${buildroot}" } @@ -350,26 +387,6 @@ install_loaders() { } -argument() { - - local cmdline - for cmdline in ${BASH_ARGV[*]} - do - if [ "$(echo ${cmdline} | sed "s@^--@@g" | sed "s@^-@@g" | cut -d= -f1)" == "${1}" ]; then - local value - value="$(echo ${cmdline} | cut -d= -f2)" - if [ -z "${value}" ]; then - echo "1" - else - echo "${value}" - fi - return 0 - fi - done - echo "" - return 2 -} - make_zip() { cd ${buildroot}${MINGW_PREFIX} diff --git a/win/bundle.cross b/win/bundle.cross index 3d33d1b0..bacb8299 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -33,6 +33,12 @@ REPOSITORY_NAME="pw3270" # Load bundle functions . "$(dirname $(readlink -f "${0}"))/bundle.common" +argument "help" > /dev/null +if [ "$?" == "0" ]; then + echo " --install-requires Install required packages" + echo " --build Build application from source" +fi + prepare # List of pre-req packages From 5d10d7c774bc2b8dc5d99299bff14227dbb2da80 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 21 Apr 2023 08:30:40 -0300 Subject: [PATCH 126/186] Updating translation. --- locale/pt_BR.po | 5 ++--- locale/pw3270.pot | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index c0f05037..0682203e 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: 2023-01-31 11:14-0300\n" +"PO-Revision-Date: 2023-04-21 08:30-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -431,9 +431,8 @@ msgid "If the action can be activated" msgstr "Se a ação pode ser ativada" #: src/objects/application/application.c:541 -#, fuzzy msgid "Initialization has failed" -msgstr "Operação falhou" +msgstr "Inicialização falhou" #: ui/windows.ui.xml:1022 ui/macos.ui.xml:1022 ui/linux.ui.xml:1022 msgid "Insert" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index bce73933..23f6fcc7 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-13 10:02-0300\n" +"POT-Creation-Date: 2023-04-19 09:27-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 307dd5c7fb841ff5c20197632b9b47a9bff14362 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 24 Apr 2023 23:34:45 -0300 Subject: [PATCH 127/186] Fixing windows shortcut. --- win/pw3270.nsi.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/win/pw3270.nsi.in b/win/pw3270.nsi.in index 3ea0519c..d8aab60f 100644 --- a/win/pw3270.nsi.in +++ b/win/pw3270.nsi.in @@ -84,9 +84,6 @@ SubSection "@PRODUCT_NAME@" SecMain # define the output path for this file SetShellVarContext all - createShortCut "$SMPROGRAMS\@PRODUCT_NAME@.lnk" "$INSTDIR\bin\@PRODUCT_NAME@.exe" - createShortCut "$DESKTOP\@PRODUCT_NAME@.lnk" "$INSTDIR\bin\@PRODUCT_NAME@.exe" - # Binary files setOutPath "$INSTDIR" file /r "bin" @@ -185,6 +182,9 @@ SubSection "@PRODUCT_NAME@" SecMain WriteRegStr HKLM "Software\@PRODUCT_NAME@" "font-family" "Lucida Console" WriteRegStr HKLM "Software\@PRODUCT_NAME@" "colors" "rgb(24,24,24);rgb(79,156,254);rgb(237,74,70);rgb(235,110,183);rgb(131,199,70);rgb(86,216,201);rgb(239,197,65);rgb(222,222,222);rgb(59,59,59);rgb(54,142,171);rgb(250,145,83);rgb(165,128,226);rgb(112,180,51);rgb(65,199,185);rgb(219,179,45);rgb(119,119,119);rgb(131,199,70);rgb(237,74,70);rgb(65,199,185);rgb(250,145,83);rgb(37,37,37);rgb(222,222,222);rgb(222,222,222);rgb(24,24,24);rgb(222,222,222);rgb(79,156,254);rgb(131,199,70);rgb(239,197,65);rgb(239,197,65)" + createShortCut "$SMPROGRAMS\@PRODUCT_NAME@.lnk" "$INSTDIR\bin\@PRODUCT_NAME@.exe" "" "$INSTDIR\bin\@PRODUCT_NAME@.ico" + createShortCut "$DESKTOP\@PRODUCT_NAME@.lnk" "$INSTDIR\bin\@PRODUCT_NAME@.exe" "" "$INSTDIR\bin\@PRODUCT_NAME@.ico" + sectionEnd !ifdef WITHSDK From ec4ac1a67c781dac8a3f32ac67a177d3627bc55e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 24 Apr 2023 23:44:15 -0300 Subject: [PATCH 128/186] Update README.md Adding badge for windows installer. --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2f1ad563..4bb5a57f 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,11 @@ Created originally for Banco do Brasil, it's now an official Brazilian Governmen ## Installation -### Linux - -You can download installation package for supported distributions in Open Build Service or the flatpak version from flathub. +You can download installation package for supported linux distributions in Open Build Service, the flatpak version from flathub and windows installer from [Releases](../../releases). [Download from open build service](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) [Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) +[Download from github releases](../../releases) ### Windows From 17f4486cd9f7b4bf1ce0d70e24d482e51ee0bbf0 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 24 Apr 2023 23:46:35 -0300 Subject: [PATCH 129/186] Update README.md Adding OBS link. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4bb5a57f..426ec518 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Created originally for Banco do Brasil, it's now an official Brazilian Governmen ## Installation -You can download installation package for supported linux distributions in Open Build Service, the flatpak version from flathub and windows installer from [Releases](../../releases). +You can download installation package for supported linux distributions in [Open Build Service](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270), the flatpak version from flathub and windows installer from [Releases](../../releases). [Download from open build service](https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270) [Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) From 5c024adf624285aeae6971031a3c4e9803dce764 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 07:50:56 -0300 Subject: [PATCH 130/186] Updating windows bundle and translation. --- locale/pt_BR.po | 9 +- locale/pw3270.pot | 377 +++++++++++++++++++++++++++++++++++++++++++++- win/bundle.common | 10 ++ win/pw3270.nsi.in | 40 +---- 4 files changed, 392 insertions(+), 44 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 0682203e..6de604c9 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-04-08 01:14-0300\n" -"PO-Revision-Date: 2023-04-21 08:30-0300\n" +"PO-Revision-Date: 2023-04-26 07:50-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -1041,7 +1041,7 @@ msgstr "O tipo do estado mantido pela ação" #: src/objects/os/macos/savedesktopicon.c:68 msgid "This action is not available in this platform" -msgstr "" +msgstr "Ação não está disponível nessa plataforma" #: src/objects/window/header-settings.c:52 msgid "Title bar" @@ -1092,11 +1092,10 @@ msgid "UI Type" msgstr "Interface de usuário" #: src/objects/application/application.c:544 -#, fuzzy msgid "Unable to initialize settings. Application may crash in unexpected ways" msgstr "" -"Não foi possível iniciar configuração de sistema. Aplicação pode falhar de " -"forma inesperada" +"Não foi possível iniciar configuração. Aplicação pode falhar de forma " +"inesperada" #: src/objects/os/windows/open.c:137 #, c-format diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 23f6fcc7..2329556b 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -6,9 +6,384 @@ #, fuzzy msgid "" msgstr "" +"#-#-#-#-# view.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-19 09:27-0300\n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# save.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# abstract.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# application.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-25 06:53-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# window.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# preferences.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# open.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# about.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-25 06:53-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# window.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-25 06:53-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# terminal.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# page.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# keyfile.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# header.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# header-settings.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# sessionproperties.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# filetransfer.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# connect.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# close.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# toolbar.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# settings.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# models.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# dialog.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# actionview.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# tools.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-25 06:53-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# builder.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-25 06:53-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# model.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# element.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# attribute.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-25 06:53-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# open.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# savedesktopicon.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# windows.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# macos.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# linux.ui.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-24 23:23-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/win/bundle.common b/win/bundle.common index 97c18c8a..5f46ae1e 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -120,6 +120,7 @@ if [ "$?" != "0" ]; then fi bindir="${buildroot}${MINGW_PREFIX}/bin" +sysdir="${buildroot}/windows/system32" if [ -z "${WIN_ROOT}" ]; then WIN_ROOT="/c/Windows" @@ -262,6 +263,15 @@ install_bin() { rm -f ${REQUIRES} done + + # libhllapi should be available in windows path + if [ -e "${bindir}/libhllapi.dll" ]; then + mkdir -p "${sysdir}" + mv "${bindir}/libhllapi.dll" "${sysdir}" + if [ "$?" != "0" ]; then + exit -1 + fi + fi } diff --git a/win/pw3270.nsi.in b/win/pw3270.nsi.in index d8aab60f..b275f461 100644 --- a/win/pw3270.nsi.in +++ b/win/pw3270.nsi.in @@ -81,7 +81,7 @@ SubSection "@PRODUCT_NAME@" SecMain SetRegView @WINARCH@ ${DisableX64FSRedirection} - # define the output path for this file + # Set SMPROGRAMS and DESKTOP path SetShellVarContext all # Binary files @@ -224,7 +224,7 @@ SubSection "@PRODUCT_NAME@" SecMain ${DisableX64FSRedirection} CreateDirectory "$INSTDIR\lib\@PRODUCT_NAME@-plugins" file "/oname=$INSTDIR\lib\@PRODUCT_NAME@-plugins\ipcserver.dll" "lib\@PRODUCT_NAME@-plugins\ipcserver.dll" - + sectionEnd SubSectionEnd @@ -381,42 +381,6 @@ Function .onInit !endif - - #---[ Check for GTK runtime ]------------------------------------------------------------------------ - -!ifdef WITHGTK - - SetRegView @WINARCH@ - - ReadRegStr $4 HKLM "Software\gtkwin\@GTK_MODVERSION@" "path" - - ${if} $4 == "" - - SectionGetFlags ${SecGTK} $0 - IntOp $0 $0 | ${SF_SELECTED} - SectionSetFlags ${SecGTK} $0 - - ${Else} - - ${if} ${FileExists} `$4\*.*` - - SectionGetFlags ${SecGTK} $0 - IntOp $0 $0 & ${SECTION_OFF} - SectionSetFlags ${SecGTK} $0 - - ${Else} - - SectionGetFlags ${SecGTK} $0 - IntOp $0 $0 | ${SF_SELECTED} - SectionSetFlags ${SecGTK} $0 - - ${EndIf} - - ${EndIf} - -!endif - - FunctionEnd Function .onInstSuccess From 2e17f7261206348026cf510f8b519c41a4e2e80a Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 08:00:57 -0300 Subject: [PATCH 131/186] Starting macos bundler. --- .github/workflows/macpkg.yml | 50 ++++++++++++++++++++++++++++++++++++ mac/ci-build.sh | 37 ++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 .github/workflows/macpkg.yml create mode 100644 mac/ci-build.sh diff --git a/.github/workflows/macpkg.yml b/.github/workflows/macpkg.yml new file mode 100644 index 00000000..4a7f2783 --- /dev/null +++ b/.github/workflows/macpkg.yml @@ -0,0 +1,50 @@ +name: Publish +on: + push: + branches: + - macos + pull_request: + branches: + - master + - develop +jobs: + macos: + name: Publish macos + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - uses: oprypin/find-latest-tag@v1 + id: gettag + with: + repository: PerryWerneck/pw3270 + sort-tags: true + releases-only: true + - name: Install Pre reqs + run: | + brew update + brew install xz automake binutils coreutils curl gettext libtool openssl pkgconfig gtk+3 + brew upgrade + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/lib3270" + latest: true + fileName: "macos-lib3270.tar.xz" + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/libv3270" + latest: true + fileName: "macos-libv3270.tar.xz" + - name: build + run: ./mac/ci-build.sh + - uses: ncipollo/release-action@v1 + with: + tag: ${{ steps.gettag.outputs.tag }} + artifacts: "macos-pw3270.tar.xz" + allowUpdates: true + draft: true + makeLatest: true + omitBody: true + omitPrereleaseDuringUpdate: true + replacesArtifacts: true + diff --git a/mac/ci-build.sh b/mac/ci-build.sh new file mode 100644 index 00000000..9c74a801 --- /dev/null +++ b/mac/ci-build.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +PROJECT_NAME=$(grep AC_INIT configure.ac | cut -d[ -f2 | cut -d] -f1) +VERSION=$(grep AC_INIT configure.ac | cut -d[ -f3 | cut -d] -f1) + +unpack() { + + echo "Unpacking ${1}" + + tar -C $(brew --cellar) -Jxvf macos-${1}.tar.xz + if [ "$?" != "0" ]; then + exit -1 + fi + + brew link ${1} + if [ "$?" != "0" ]; then + exit -1 + fi + +} + +unpack lib3270 +unpack libv3270 + +./autogen.sh --prefix="/${PROJECT_NAME}/${VERSION}" +if [ "$?" != "0" ]; then + exit -1 +fi + +make all +if [ "$?" != "0" ]; then + exit -1 +fi + +make DESTDIR=.bin/package install +tar --create --xz --file=macos-${PROJECT_NAME}.tar.xz --directory=.bin/package --verbose . + From ad4ec5b93ca961e2b65ce64b7872d2218dcd1fb7 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 08:25:19 -0300 Subject: [PATCH 132/186] Adding badges for dropbox and onedrive. --- README.md | 10 +-- branding/dropbox-badge-en.svg | 132 ++++++++++++++++++++++++++++++ branding/onedrive-badge-en.svg | 142 +++++++++++++++++++++++++++++++++ 3 files changed, 277 insertions(+), 7 deletions(-) create mode 100644 branding/dropbox-badge-en.svg create mode 100644 branding/onedrive-badge-en.svg diff --git a/README.md b/README.md index 426ec518..c4f0c34c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ - ## GTK Based 3270 terminal emulator Screenshot @@ -21,13 +20,10 @@ You can download installation package for supported linux distributions in [Open [Download from flathub](https://flathub.org/apps/details/br.app.pw3270.terminal) [Download from github releases](../../releases) -### Windows - -Updated windows installers are available on Dropbox, google drive and one drive. +Alternative windows installers for stable and unstable versions are already available on Dropbox and one drive. -[Get from dropbox](https://www.dropbox.com/sh/2qy3s6b5s4o4bws/AAAubHE8SBG7r6CJSKPflKN0a?dl=0) -[Get from google drive](https://drive.google.com/drive/folders/1tmtKzGujLVvnIV_knWQXl_TBEC3_9ucL?usp=sharing) -[Get from Microsoft One Drive](https://onedrive.live.com/?id=D8B46DA0372A6F1A%212208&cid=D8B46DA0372A6F1A) +[Get from dropbox](https://www.dropbox.com/sh/2qy3s6b5s4o4bws/AAAubHE8SBG7r6CJSKPflKN0a?dl=0) +[Get from Microsoft One Drive](https://onedrive.live.com/?id=D8B46DA0372A6F1A%212208&cid=D8B46DA0372A6F1A) ## Building for Linux diff --git a/branding/dropbox-badge-en.svg b/branding/dropbox-badge-en.svg new file mode 100644 index 00000000..69ac0f87 --- /dev/null +++ b/branding/dropbox-badge-en.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/branding/onedrive-badge-en.svg b/branding/onedrive-badge-en.svg new file mode 100644 index 00000000..3be80c89 --- /dev/null +++ b/branding/onedrive-badge-en.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + From 3f794f59b0f83caf5b5d8b31b6ab29df61c6c081 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 08:27:47 -0300 Subject: [PATCH 133/186] Fixing permissions. --- mac/ci-build.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 mac/ci-build.sh diff --git a/mac/ci-build.sh b/mac/ci-build.sh old mode 100644 new mode 100755 From bc581a0f47a4ecb89c63bd8febaaabd7b563bb6e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 08:51:30 -0300 Subject: [PATCH 134/186] Using libv3270 draft for bundle. --- .github/workflows/macpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macpkg.yml b/.github/workflows/macpkg.yml index 4a7f2783..7babfb05 100644 --- a/.github/workflows/macpkg.yml +++ b/.github/workflows/macpkg.yml @@ -33,7 +33,7 @@ jobs: - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/libv3270" - latest: true + tag: 5.4 fileName: "macos-libv3270.tar.xz" - name: build run: ./mac/ci-build.sh From ffaae06d04fccea21b31236a8bbd80939d98e33f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 09:32:21 -0300 Subject: [PATCH 135/186] Update macpkg.yml --- .github/workflows/macpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macpkg.yml b/.github/workflows/macpkg.yml index 7babfb05..4a7f2783 100644 --- a/.github/workflows/macpkg.yml +++ b/.github/workflows/macpkg.yml @@ -33,7 +33,7 @@ jobs: - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/libv3270" - tag: 5.4 + latest: true fileName: "macos-libv3270.tar.xz" - name: build run: ./mac/ci-build.sh From aff00e9010af6e409912fd40eeec0da00a871550 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 09:58:25 -0300 Subject: [PATCH 136/186] Update macpkg.yml --- .github/workflows/macpkg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macpkg.yml b/.github/workflows/macpkg.yml index 4a7f2783..572b6137 100644 --- a/.github/workflows/macpkg.yml +++ b/.github/workflows/macpkg.yml @@ -23,7 +23,7 @@ jobs: - name: Install Pre reqs run: | brew update - brew install xz automake binutils coreutils curl gettext libtool openssl pkgconfig gtk+3 + brew install xz automake libtool binutils coreutils curl gettext libtool openssl pkgconfig gtk+3 brew upgrade - uses: robinraju/release-downloader@v1.7 with: From d054890e9e91a64f5801af2d63b0cf2c6ca32e49 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 12:05:30 -0300 Subject: [PATCH 137/186] Should use glibtoolize on mac. --- autogen.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/autogen.sh b/autogen.sh index f25ca55a..b0a22999 100755 --- a/autogen.sh +++ b/autogen.sh @@ -10,11 +10,21 @@ cd ${srcdir} mkdir -p ./scripts mkdir -p m4 -libtoolize --force -if test $? != 0 ; then - echo "libtoolize failed." - exit -1 -fi +case `uname` in +Darwin*) + glibtoolize --force + if test $? != 0 ; then + echo "glibtoolize failed." + exit -1 + fi + ;; +*) + libtoolize --force + if test $? != 0 ; then + echo "libtoolize failed." + exit -1 + fi +esac aclocal if test $? != 0 ; then From 53e42eabf476fa612fb9dc99b1584f0a6f498757 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 12:48:38 -0300 Subject: [PATCH 138/186] Adding macos tools. --- pw3270.cbp | 3 ++ src/main/macos/tools.c | 89 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 src/main/macos/tools.c diff --git a/pw3270.cbp b/pw3270.cbp index 17da4bc1..efde15de 100644 --- a/pw3270.cbp +++ b/pw3270.cbp @@ -61,6 +61,9 @@ + + diff --git a/src/main/macos/tools.c b/src/main/macos/tools.c new file mode 100644 index 00000000..d0ae14a4 --- /dev/null +++ b/src/main/macos/tools.c @@ -0,0 +1,89 @@ +/* SPDX-License-Identifier: LGPL-3.0-or-later */ + +/* + * Copyright (C) <2008> + * + * 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 . + */ + + #include + #include + #include + #include + #include + + static gchar * get_path_from_bundle(const char *name) { + + size_t szBuffer = PATH_MAX; + char buffer[PATH_MAX+1]; + memset(buffer,0,PATH_MAX+1]); + + CFBundleRef mainBundle = CFBundleGetMainBundle(); + + if (mainBundle) { + + CFURLRef url = CFBundleCopyBundleURL(mainBundle); + + if (url) { + + CFURLGetFileSystemRepresentation(url, true, (UInt8 *) buffer, szBuffer); + CFRelease(url); + + gchar * path = g_build_filename(buffer,name,NULL); + + if(access(path,R_OK) == 0) { + return path; + } + + g_free(path); + + } + + } + + return NUL; + + } + + gchar * pw3270_build_data_path(const char *name) { + + gchar * path = get_path_from_bundle(name); + + if(path) { + if(g_file_test(path,G_FILE_TEST_IS_DIR)) { + return path; + } + g_free(path); + } + + g_message("Cant find path for '%s'",path); + return NULL; + + } + + gchar * pw3270_build_data_filename(const char *filename) { + + gchar * path = get_path_from_bundle(name); + + if(path) { + if(g_file_test(path,G_FILE_TEST_IS_REGULAR)) { + return path; + } + g_free(path); + } + + g_error("Cant find '%s'",filename); + return NULL; + } + From e814e0ce6372f16f1acaf4e58f54cb55fc68e354 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 26 Apr 2023 13:51:18 -0300 Subject: [PATCH 139/186] Debuggin mac build. --- src/main/macos/tools.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/main/macos/tools.c b/src/main/macos/tools.c index d0ae14a4..a9668060 100644 --- a/src/main/macos/tools.c +++ b/src/main/macos/tools.c @@ -23,11 +23,11 @@ #include #include - static gchar * get_path_from_bundle(const char *name) { + static gchar * get_path_from_bundle(const char *name, GFileTest test) { size_t szBuffer = PATH_MAX; char buffer[PATH_MAX+1]; - memset(buffer,0,PATH_MAX+1]); + memset(buffer,0,PATH_MAX+1); CFBundleRef mainBundle = CFBundleGetMainBundle(); @@ -42,7 +42,7 @@ gchar * path = g_build_filename(buffer,name,NULL); - if(access(path,R_OK) == 0) { + if(g_file_test(path,test)) { return path; } @@ -52,19 +52,16 @@ } - return NUL; + return NULL; } gchar * pw3270_build_data_path(const char *name) { - gchar * path = get_path_from_bundle(name); + gchar * path = get_path_from_bundle(name,G_FILE_TEST_IS_DIR); if(path) { - if(g_file_test(path,G_FILE_TEST_IS_DIR)) { - return path; - } - g_free(path); + return path; } g_message("Cant find path for '%s'",path); @@ -74,13 +71,10 @@ gchar * pw3270_build_data_filename(const char *filename) { - gchar * path = get_path_from_bundle(name); + gchar * path = get_path_from_bundle(filename,G_FILE_TEST_IS_REGULAR); if(path) { - if(g_file_test(path,G_FILE_TEST_IS_REGULAR)) { - return path; - } - g_free(path); + return path; } g_error("Cant find '%s'",filename); From 5e5746fe52bee1a7761dcdeeb0ce9f6bb9515e6e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 16 May 2023 15:49:50 -0300 Subject: [PATCH 140/186] Splitting bundle scripts. --- win/bundle.common | 126 +++++------------------------------------ win/bundle.cross | 20 +------ win/bundle.gtk3 | 139 ++++++++++++++++++++++++++++++++++++++++++++++ win/bundle.msys | 18 +----- 4 files changed, 158 insertions(+), 145 deletions(-) create mode 100644 win/bundle.gtk3 diff --git a/win/bundle.common b/win/bundle.common index 5f46ae1e..b016a761 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -18,13 +18,6 @@ # along with this program. If not, see . # -# -# References: -# -# https://www.gtk.org/docs/installations/windows/ -# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format -# - # Check command-line arguments argument() { @@ -52,7 +45,10 @@ if [ "$?" == "0" ]; then echo "" echo " --help Help options (this screen)" echo " --zip Build zipfile" - echo " --nsi Build nsi installer" + + if [ -e "${srcdir}/win/${PACKAGE_NAME}.nsi" ]; then + echo " --nsi Build nsi installer" + fi echo " --upload Upload bundle to github" fi @@ -90,11 +86,6 @@ if [ -z ${PACKAGE_VERSION} ]; then exit -1 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") - mkdir -p .bin/bundle if [ "$?" != "0" ]; then echo "Cant mkdir base buildroot" @@ -304,98 +295,6 @@ install_locale() { rm -f ${FILENAMES} } -install_schemas() { - - mkdir -p ${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas - - schemas=" - org.gtk.Settings.FileChooser.gschema.xml - gschema.dtd - " - - for schema in ${schemas} - do - cp -v "${MINGW_PREFIX}/share/glib-2.0/schemas/${schema}" "${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas" - if [ "$?" != "0" ]; then - exit -1 - fi - done - - glib-compile-schemas \ - --targetdir="${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas" \ - "${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas" - - if [ "$?" != "0" ]; then - exit -1 - fi -} - -install_theme() { - - mkdir -p "${buildroot}${MINGW_PREFIX}/etc" - cp -rv "${MINGW_PREFIX}/etc/gtk-3.0" "${buildroot}${MINGW_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}${MINGW_PREFIX}/etc/gtk-3.0 - rm -f ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/settings.ini - rm -f ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/gtkrc - - echo "[Settings]" > ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/settings.ini - echo "gtk-theme-name=${1}" >> ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/settings.ini - - if [ -e "${srcdir}/win/gtk.css" ]; then - mkdir -p "${buildroot}${MINGW_PREFIX}/share/themes/Default/gtk-3.0" - cp "${srcdir}/win/gtk.css" "${buildroot}${MINGW_PREFIX}/share/themes/Default/gtk-3.0/gtk.css" - fi - -} - -install_icons() { - - mkdir -p "${buildroot}${MINGW_PREFIX}/share/icons" - - if [ -d "${MINGW_PREFIX}/share/icons/${1}" ]; then - - cp -rv "${MINGW_PREFIX}/share/icons/${1}" "${buildroot}${MINGW_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}${MINGW_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 "${MINGW_PREFIX}${GDK_LOADERS}" ]; then - mkdir -p "${buildroot}/${MINGW_PREFIX}${GDK_LOADERS}" - cp -rv ${MINGW_PREFIX}${GDK_LOADERS}/* "${buildroot}/${MINGW_PREFIX}${GDK_LOADERS}" - if [ "$?" != "0" ]; then - exit -1 - fi - - find ${buildroot}/${MINGW_PREFIX}${GDK_LOADERS} -iname "*.a" -exec rm -f {} \; - - fi - -} make_zip() { @@ -456,21 +355,24 @@ make_nsis() { fi } -install_runtime() { +install_license() { + mkdir -p "${buildroot}${MINGW_PREFIX}/usr/share/${PACKAGE_NAME}" + cp "${srcdir}/LICENSE" "${buildroot}${MINGW_PREFIX}/share/${PACKAGE_NAME}" + if [ "$?" != "0" ]; then + echo "Cant copy LICENSE" + exit -1 + fi +} - install_loaders +install_runtime() { install_bin install_locale - install_schemas - install_theme "Adwaita" - install_icons "Adwaita" - } make_packages() { mkdir -p "${buildroot}${MINGW_PREFIX}/nsi" - cp "${srcdir}/win/pw3270.nsi" "${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi" + cp "${srcdir}/win/${PACKAGE_NAME}.nsi" "${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi" if [ "$?" != "0" ]; then echo "Cant copy nsis script" fi diff --git a/win/bundle.cross b/win/bundle.cross index bacb8299..db8d350d 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -18,20 +18,13 @@ # along with this program. If not, see . # -# -# References: -# -# https://www.gtk.org/docs/installations/windows/ -# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format -# - MINGW_PREFIX="/usr/x86_64-w64-mingw32/sys-root/mingw" PKG_CONFIG="/usr/bin/x86_64-w64-mingw32-pkg-config" MINGW_PACKAGE_PREFIX="mingw64" REPOSITORY_NAME="pw3270" # Load bundle functions -. "$(dirname $(readlink -f "${0}"))/bundle.common" +. "$(dirname $(readlink -f "${0}"))/bundle.gtk3" argument "help" > /dev/null if [ "$?" == "0" ]; then @@ -193,18 +186,9 @@ unpack_rpm() { } -install_license() { - mkdir -p "${buildroot}${MINGW_PREFIX}/usr/share/${PACKAGE_NAME}" - cp "${srcdir}/LICENSE" "${buildroot}${MINGW_PREFIX}/share/${PACKAGE_NAME}" - if [ "$?" != "0" ]; then - echo "Cant copy LICENSE" - exit -1 - fi -} - unpack_rpm -install_runtime +install_gtk3_runtime install_license make_packages diff --git a/win/bundle.gtk3 b/win/bundle.gtk3 new file mode 100644 index 00000000..a614026e --- /dev/null +++ b/win/bundle.gtk3 @@ -0,0 +1,139 @@ +#!/bin/bash +# +# SPDX-License-Identifier: LGPL-3.0-or-later +# +# Copyright (C) 2023 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 . +# + +# +# References: +# +# https://www.gtk.org/docs/installations/windows/ +# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format +# + +# Load bundle functions +. "$(dirname $(readlink -f "${0}"))/bundle.common" + +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") + +install_schemas() { + + mkdir -p ${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas + + schemas=" + org.gtk.Settings.FileChooser.gschema.xml + gschema.dtd + " + + for schema in ${schemas} + do + cp -v "${MINGW_PREFIX}/share/glib-2.0/schemas/${schema}" "${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas" + if [ "$?" != "0" ]; then + exit -1 + fi + done + + glib-compile-schemas \ + --targetdir="${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas" \ + "${buildroot}${MINGW_PREFIX}/share/glib-2.0/schemas" + + if [ "$?" != "0" ]; then + exit -1 + fi +} + +install_theme() { + + mkdir -p "${buildroot}${MINGW_PREFIX}/etc" + cp -rv "${MINGW_PREFIX}/etc/gtk-3.0" "${buildroot}${MINGW_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}${MINGW_PREFIX}/etc/gtk-3.0 + rm -f ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/settings.ini + rm -f ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/gtkrc + + echo "[Settings]" > ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/settings.ini + echo "gtk-theme-name=${1}" >> ${buildroot}${MINGW_PREFIX}/etc/gtk-3.0/settings.ini + + if [ -e "${srcdir}/win/gtk.css" ]; then + mkdir -p "${buildroot}${MINGW_PREFIX}/share/themes/Default/gtk-3.0" + cp "${srcdir}/win/gtk.css" "${buildroot}${MINGW_PREFIX}/share/themes/Default/gtk-3.0/gtk.css" + fi + +} + +install_icons() { + + mkdir -p "${buildroot}${MINGW_PREFIX}/share/icons" + + if [ -d "${MINGW_PREFIX}/share/icons/${1}" ]; then + + cp -rv "${MINGW_PREFIX}/share/icons/${1}" "${buildroot}${MINGW_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}${MINGW_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 "${MINGW_PREFIX}${GDK_LOADERS}" ]; then + mkdir -p "${buildroot}/${MINGW_PREFIX}${GDK_LOADERS}" + cp -rv ${MINGW_PREFIX}${GDK_LOADERS}/* "${buildroot}/${MINGW_PREFIX}${GDK_LOADERS}" + if [ "$?" != "0" ]; then + exit -1 + fi + + find ${buildroot}/${MINGW_PREFIX}${GDK_LOADERS} -iname "*.a" -exec rm -f {} \; + + fi + +} + +install_gtk3_runtime() { + + install_loaders + install_bin + install_locale + install_schemas + install_theme "Adwaita" + install_icons "Adwaita" + +} + diff --git a/win/bundle.msys b/win/bundle.msys index c492ae16..bca621ad 100755 --- a/win/bundle.msys +++ b/win/bundle.msys @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later # -# Copyright (C) 2021 Perry Werneck +# Copyright (C) 2023 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 @@ -18,15 +18,8 @@ # along with this program. If not, see . # -# -# References: -# -# https://www.gtk.org/docs/installations/windows/ -# http://drup.org/gtk-warning-error-loading-icon-couldnt-recognize-image-file-format -# - # Load bundle functions -. "$(dirname $(readlink -f "${0}"))/bundle.common" +. "$(dirname $(readlink -f "${0}"))/bundle.gtk3" prepare @@ -40,11 +33,6 @@ do fi done -install_loaders -install_bin -install_locale -install_schemas -install_theme "Adwaita" -install_icons "Adwaita" +install_gtk3_runtime From 6719e7698d623bfacd381578cea34c2d88f0045b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 19 May 2023 10:45:41 -0300 Subject: [PATCH 141/186] Updating windows bundler. --- win/bundle.common | 32 ++++++++++++++++++++++++++------ win/bundle.cross | 17 ----------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/win/bundle.common b/win/bundle.common index b016a761..074264ca 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -332,6 +332,7 @@ make_nsis() { -DWITHIPC \ -DWITHPLUGINS \ -DWITHSDK \ + -DPKGDIR=${buildroot}${MINGW_PREFIX} \ ${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi if [ "$?" != "0" ]; then echo "Cant build nsis script" @@ -357,7 +358,7 @@ make_nsis() { install_license() { mkdir -p "${buildroot}${MINGW_PREFIX}/usr/share/${PACKAGE_NAME}" - cp "${srcdir}/LICENSE" "${buildroot}${MINGW_PREFIX}/share/${PACKAGE_NAME}" + cp "${srcdir}/LICENSE" "${buildroot}${MINGW_PREFIX}/usr/share/${PACKAGE_NAME}" if [ "$?" != "0" ]; then echo "Cant copy LICENSE" exit -1 @@ -369,14 +370,33 @@ install_runtime() { install_locale } -make_packages() { +build_package() { - mkdir -p "${buildroot}${MINGW_PREFIX}/nsi" - cp "${srcdir}/win/${PACKAGE_NAME}.nsi" "${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi" + # Build + make -C "${srcdir}" all if [ "$?" != "0" ]; then - echo "Cant copy nsis script" - fi + echo "Build failed" + exit -1 + fi + make -C "${srcdir}" "DESTDIR=${buildroot}" install + if [ "$?" != "0" ]; then + echo "Install failed" + exit -1 + fi + +} + +make_packages() { + + if [ -e "${srcdir}/win/${PACKAGE_NAME}.nsi" ]; then + mkdir -p "${buildroot}${MINGW_PREFIX}/nsi" + cp "${srcdir}/win/${PACKAGE_NAME}.nsi" "${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi" + if [ "$?" != "0" ]; then + echo "Cant copy nsis script" + fi + fi + argument "zip" > /dev/null if [ "$?" == "0" ]; then make_zip diff --git a/win/bundle.cross b/win/bundle.cross index db8d350d..844d8450 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -76,23 +76,6 @@ install_prereqs() { done } -build_package() { - - # Build - make -C "${srcdir}" all - if [ "$?" != "0" ]; then - echo "Build failed" - exit -1 - fi - - make -C "${srcdir}" "DESTDIR=${buildroot}" install - if [ "$?" != "0" ]; then - echo "Install failed" - exit -1 - fi - -} - argument "install-requires" > /dev/null if [ "$?" == "0" ]; then install_prereqs From 61064ce2962ff6d648c0e7c04dc4303e69ec49d9 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 8 Dec 2023 16:28:37 -0300 Subject: [PATCH 142/186] Scanning for more paths. --- src/objects/application/application.c | 36 +++++++++++++++++++++++++-- src/objects/application/plugins.c | 4 +++ win/ci-build.sh | 2 +- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/objects/application/application.c b/src/objects/application/application.c index 4bc21c17..b60c38ce 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -278,9 +278,41 @@ static void pw3270Application_init(pw3270Application *app) { g_settings_bind(app->settings, "ui-style", app, "ui-style", G_SETTINGS_BIND_DEFAULT); } + // Load plugins from registry + /* { - lib3270_autoptr(char) plugin_path = lib3270_build_data_filename("plugins",NULL); - pw3270_load_plugins_from_path(app, plugin_path); + HKEY hKey; + DWORD cbData = 4096; + g_autofree gchar *path = g_malloc0(cbData); + + if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,G_STRINGIFY(PRODUCT_NAME)"\\plugin",0,KEY_READ,&hKey) == ERROR_SUCCESS) { + DWORD dwRet = RegQueryValueEx(hKey,"path",NULL,NULL,(LPBYTE) path, &cbData); + if(dwRet != ERROR_SUCCESS && *path) { + pw3270_load_plugins_from_path(app, path); + } + CloseHandle(hKey); + } + } + */ + + // Load plugin from default paths. + { + const char *paths[] = { + "plugins", + G_STRINGIFY(PRODUCT_NAME) "-plugins", + "lib/plugins", + "lib/" G_STRINGIFY(PRODUCT_NAME) "-plugins", + }; + size_t ix; + + for(ix = 0; ix < G_N_ELEMENTS(paths);ix++) { + lib3270_autoptr(char) path = lib3270_build_data_filename("plugins",NULL); + if(g_file_test(path,G_FILE_TEST_IS_DIR)) { + pw3270_load_plugins_from_path(app, path); + break; + } + } + } #elif defined(__APPLE__) diff --git a/src/objects/application/plugins.c b/src/objects/application/plugins.c index 36199c00..dfdacf44 100644 --- a/src/objects/application/plugins.c +++ b/src/objects/application/plugins.c @@ -65,6 +65,10 @@ void pw3270_load_plugins_from_path(pw3270Application *app, const char *path) { } + } else { + + g_warning("Can't load plugins from %s: %s",path,"Invalid path"); + } } diff --git a/win/ci-build.sh b/win/ci-build.sh index 2d066fe8..ca9aeefb 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -40,7 +40,7 @@ cd $(dirname $(dirname $(readlink -f ${0}))) # Install pre-reqs # echo "Installing pre-reqs..." -pacman -U --noconfirm *.pkg.tar.zst || die "pacman failure" +pacman -U --noconfirm *.pkg.tar.zst || die "pre-reqs failure" # # Build From dbc32d1a0db1fb19576d30a0db4b8d79233b92b8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 11 Dec 2023 23:55:53 -0300 Subject: [PATCH 143/186] Fixing win32 plugin loader. --- src/objects/application/application.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/src/objects/application/application.c b/src/objects/application/application.c index b60c38ce..05912917 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -278,35 +278,21 @@ static void pw3270Application_init(pw3270Application *app) { g_settings_bind(app->settings, "ui-style", app, "ui-style", G_SETTINGS_BIND_DEFAULT); } - // Load plugins from registry - /* - { - HKEY hKey; - DWORD cbData = 4096; - g_autofree gchar *path = g_malloc0(cbData); - - if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,G_STRINGIFY(PRODUCT_NAME)"\\plugin",0,KEY_READ,&hKey) == ERROR_SUCCESS) { - DWORD dwRet = RegQueryValueEx(hKey,"path",NULL,NULL,(LPBYTE) path, &cbData); - if(dwRet != ERROR_SUCCESS && *path) { - pw3270_load_plugins_from_path(app, path); - } - CloseHandle(hKey); - } - } - */ - // Load plugin from default paths. { const char *paths[] = { "plugins", G_STRINGIFY(PRODUCT_NAME) "-plugins", - "lib/plugins", - "lib/" G_STRINGIFY(PRODUCT_NAME) "-plugins", + "lib\\plugins", + "lib\\" G_STRINGIFY(PRODUCT_NAME) "-plugins", }; size_t ix; + g_autofree gchar * install = g_win32_get_package_installation_directory_of_module(NULL); + for(ix = 0; ix < G_N_ELEMENTS(paths);ix++) { - lib3270_autoptr(char) path = lib3270_build_data_filename("plugins",NULL); + g_autofree gchar * path = g_build_filename(install,paths[ix],NULL); + g_message("Checking '%s' for plugin files",path); if(g_file_test(path,G_FILE_TEST_IS_DIR)) { pw3270_load_plugins_from_path(app, path); break; From 35639cb947708059e93bc5957e1038ad1c492465 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 12 Dec 2023 00:04:47 -0300 Subject: [PATCH 144/186] Just forcing workflow to run. --- win/pw3270.nsi.in | 1 + 1 file changed, 1 insertion(+) diff --git a/win/pw3270.nsi.in b/win/pw3270.nsi.in index b275f461..39e3c19c 100644 --- a/win/pw3270.nsi.in +++ b/win/pw3270.nsi.in @@ -222,6 +222,7 @@ SubSection "@PRODUCT_NAME@" SecMain Section "Remote control" IPCPlugin ${DisableX64FSRedirection} + CreateDirectory "$INSTDIR\lib\@PRODUCT_NAME@-plugins" file "/oname=$INSTDIR\lib\@PRODUCT_NAME@-plugins\ipcserver.dll" "lib\@PRODUCT_NAME@-plugins\ipcserver.dll" From d4804172190d9ca441072e38ba51f239213dea52 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 12 Dec 2023 01:08:52 -0300 Subject: [PATCH 145/186] Fixing plugin load on windows. --- src/main/windows/tools.c | 3 ++- src/objects/settings/gsettings.c | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/windows/tools.c b/src/main/windows/tools.c index 09105ccb..2b39f4e3 100644 --- a/src/main/windows/tools.c +++ b/src/main/windows/tools.c @@ -35,8 +35,9 @@ return path; } - g_free(path); g_message("Cant find path for '%s'",path); + g_free(path); + return NULL; } diff --git a/src/objects/settings/gsettings.c b/src/objects/settings/gsettings.c index d503134b..4e87417f 100644 --- a/src/objects/settings/gsettings.c +++ b/src/objects/settings/gsettings.c @@ -100,13 +100,13 @@ schema_id, TRUE); - g_message("Loading '%s'",names[ix]); +// g_message("Loading '%s'",names[ix]); settings = g_settings_new_full(schema, NULL, NULL); g_settings_schema_source_unref(source); if(settings) { - g_message("Got gsettings from %s",names[ix]); +// g_message("Got gsettings from %s",names[ix]); return settings; } @@ -157,7 +157,7 @@ GSettings * pw3270_application_settings_new() { return settings_new(G_STRINGIFY(PRODUCT_ID)); - } + } GSettings * pw3270_application_window_settings_new() { return settings_new(G_STRINGIFY(PRODUCT_ID) ".window"); From d35c7f2c363cff29278268767297c415aee6454f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 13 Dec 2023 00:19:05 -0300 Subject: [PATCH 146/186] Fixing win32 build --- Makefile.in | 6 +++--- branding/Makefile.in | 4 ++-- src/include/config.h.in | 10 ++++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Makefile.in b/Makefile.in index 805aca8e..d88a6c69 100644 --- a/Makefile.in +++ b/Makefile.in @@ -301,7 +301,7 @@ install-macos-application: \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME)@EXEEXT@ install-windows-application: \ - branding/$(PRODUCT_NAME).png \ + $(srcdir)/branding/$(PRODUCT_NAME).png \ strip @$(MKDIR) \ @@ -315,11 +315,11 @@ install-windows-application: \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME) @$(INSTALL_DATA) \ - branding/$(PRODUCT_NAME).png \ + $(srcdir)/branding/$(PRODUCT_NAME).png \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME).png @$(INSTALL_DATA) \ - CHANGELOG \ + $(srcdir)/CHANGELOG \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PACKAGE_NAME).changes install-icons: diff --git a/branding/Makefile.in b/branding/Makefile.in index cab4f798..2ac149f4 100644 --- a/branding/Makefile.in +++ b/branding/Makefile.in @@ -24,9 +24,9 @@ APPLICATION_ID=@APPLICATION_ID@ prefix=@prefix@ exec_prefix=@exec_prefix@ +srcdir=@srcdir@ datarootdir=@datarootdir@ bindir=@bindir@ -srcdir=@srcdir@ BUILDDIR=@BUILDDIR@ BINDIR=$(BUILDDIR)/.bin @@ -156,7 +156,7 @@ install-windows: \ @$(MKDIR) $(DESTDIR)$(bindir) @$(INSTALL_DATA) \ - $(PRODUCT_NAME).ico \ + $(srcdir)/$(PRODUCT_NAME).ico \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME).ico diff --git a/src/include/config.h.in b/src/include/config.h.in index 6234a289..955a7178 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,7 +105,9 @@ /* The schema path */ #undef PRODUCT_PATH -/* Define to 1 if you have the ANSI C header files. */ +/* 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. */ #undef STDC_HEADERS /* Version number of package */ From 8ced3333421b3f86e1dcef0be56608babb4f5108 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 1 Jan 2024 23:29:39 -0300 Subject: [PATCH 147/186] Fixing bundle path. --- macos/bundle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macos/bundle b/macos/bundle index 4697cac7..88ffb1eb 100755 --- a/macos/bundle +++ b/macos/bundle @@ -137,7 +137,7 @@ cp "$(brew --prefix)/share/pw3270/colors.conf" "${res_path}" echo "Bundling GLib schemas" mkdir -p "${tmp}/schemas" -cp "$(brew --prefix)$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/pw3270*.gschema.xml" "${tmp}/schemas" +cp "$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/pw3270*.gschema.xml" "${tmp}/schemas" cp "$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/org.gtk.Settings."*".gschema.xml" "${tmp}/schemas" glib-compile-schemas --targetdir="${res_path}" "${tmp}/schemas" From d83869d816bdb595093f43eddbb8a595599c0f37 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 4 Jan 2024 17:53:54 -0300 Subject: [PATCH 148/186] Fixing schema paths for macos bundle. --- macos/bundle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macos/bundle b/macos/bundle index 88ffb1eb..58b12aae 100755 --- a/macos/bundle +++ b/macos/bundle @@ -137,7 +137,7 @@ cp "$(brew --prefix)/share/pw3270/colors.conf" "${res_path}" echo "Bundling GLib schemas" mkdir -p "${tmp}/schemas" -cp "$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/pw3270*.gschema.xml" "${tmp}/schemas" +cp "../schemas/*.gschema.xml" "${tmp}/schemas" cp "$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/org.gtk.Settings."*".gschema.xml" "${tmp}/schemas" glib-compile-schemas --targetdir="${res_path}" "${tmp}/schemas" From 98bcfad8da4dfd5c2c36b3ef1576a519969b479a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Breves?= Date: Fri, 5 Jan 2024 16:32:55 -0300 Subject: [PATCH 149/186] Update to macOS Sonoma --- macos/bundle | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/macos/bundle b/macos/bundle index 4697cac7..3ba3c5aa 100755 --- a/macos/bundle +++ b/macos/bundle @@ -5,7 +5,7 @@ set -Eeuo pipefail check_dependencies() { local unavailable=() for dependency in "${@:-$( /dev/null; fi + install_name_tool -add_rpath "@executable_path/../Frameworks" "${target}" 2> /dev/null for old_install_name in $(otool -L "${target}" | grep '^\t' | cut -c 2- | sed -n "s/\(.*\) (.*)/\1/p"); do if [[ "${old_install_name}" == "${id}" ]]; then continue; fi - local lib="$(find_lib "${old_install_name}")" + if [[ "${old_install_name}" =~ ${system_libs} ]]; then continue; fi + local lib + if [[ "${old_install_name}" =~ ^@loader_path.* ]]; then + lib="$(find_lib "$(dirname "${source}")/${old_install_name//@loader_path/}")" + else + lib="$(find_lib "${old_install_name}")" + fi local new_install_name="$(bundle_cp "${lib}")" if [[ "${new_install_name}" != "" ]]; then - install_name_tool -change "${old_install_name}" "${new_install_name}" "${target}" + install_name_tool -change "${old_install_name}" "${new_install_name}" "${target}" 2> /dev/null fi done + # https://stackoverflow.com/a/71753248/6910609 + codesign --force -s - "${target}" 2> /dev/null echo >&2 "${target}" done } @@ -113,9 +121,9 @@ bundle_cache() { check_dependencies otool grep cut sed greadlink qlmanage sips iconutil # Creates temporary directory -echo "Creating temporary directory" +echo "* Creating temporary directory" tmp="$(mktemp -d)" -trap 'echo "Removing temporary directory \"${tmp}\""; rm -rf "${tmp}"' EXIT +trap 'echo "* Removing temporary directory \"${tmp}\""; rm -rf "${tmp}"' EXIT bundle="pw3270.app" bundle_path="${bundle}/Contents" @@ -129,17 +137,15 @@ mkdir -p "${bundle_path}" cp "Info.plist" "${bundle_path}" mkdir -p "${res_path}" -cp -r "../ui" "${res_path}" +cp -r "../ui/macos.ui.xml" "${res_path}/pw3270.ui.xml" cp -r "$(brew --prefix)/share/pw3270/remap" "${res_path}" cp "$(brew --prefix)/share/pw3270/colors.conf" "${res_path}" # Bundle GLib schemas -echo "Bundling GLib schemas" +echo "* Bundling GLib schemas" mkdir -p "${tmp}/schemas" - -cp "$(brew --prefix)$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/pw3270*.gschema.xml" "${tmp}/schemas" +cp "../schemas/"*".gschema.xml" "${tmp}/schemas" cp "$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/org.gtk.Settings."*".gschema.xml" "${tmp}/schemas" - glib-compile-schemas --targetdir="${res_path}" "${tmp}/schemas" # Create the GTK settings file @@ -152,7 +158,7 @@ gtk-print-preview-command="open -b com.apple.Preview %f" EOF # Make icon bundle -echo "Creating app icon bundle" +echo "* Creating app icon bundle" iconset="${tmp}/pw3270.iconset" rm -fr "${iconset}" mkdir -p "${iconset}" @@ -168,34 +174,41 @@ iconutil -c icns -o "${res_path}/pw3270.icns" "${iconset}" # Copy icons +echo "* Copying icons" mkdir -p "${res_path}/icons" cp -r "$(brew --prefix adwaita-icon-theme)/share/icons/" "${res_path}/icons" cp -r "$(brew --prefix hicolor-icon-theme)/share/icons/" "${res_path}/icons" mogrify -format png -path "${res_path}" -background transparent "../branding/*.svg" # Copy themes +echo "* Copying themes" mkdir -p "${res_path}/themes" cp -a "$(brew --prefix gtk+3)/share/themes/Mac" "${res_path}/themes" # Copy mime database +echo "* Copying mime database" mkdir -p "${res_path}/mime" cp "$(pkg-config shared-mime-info --variable=prefix)/share/mime/mime.cache" "${res_path}/mime" # Copy executables +echo "* Copying executables" mkdir -p "${exe_path}" bundle_cp "../.bin/Release/pw3270" cp "launcher.sh" "${exe_path}" # Bundle GdkPixbuf Image Loader Modules +echo "* Bundling GdkPixbuf Image Loader Modules" gdk-pixbuf-query-loaders | bundle_cache > "${res_path}/gdk-loaders.cache" # Bundle GTK+ Input Method Modules +echo "* Bundling GTK+ Input Method Modules" gtk_prefix="$(pkg-config gtk+-3.0 --variable prefix)" gtk-query-immodules-3.0 | bundle_cache \ | sed "s|${gtk_prefix}/share/locale|@executable_path/../Resources/locale|g" \ > "${res_path}/gtk.immodules" # Bundle print backends +echo "* Bundling print backends" mkdir -p "${lib_path}/printbackends" for backend in "$(pkg-config gtk+-3.0 --variable=prefix)/lib/gtk-3.0/$(pkg-config gtk+-3.0 --variable=gtk_binary_version)/printbackends/"*.so; do bundle_cp "${backend}" @@ -206,7 +219,8 @@ done # TODO: gerar o Info.plist com a versão do macOS $(sw_vers -productVersion) # Bundle locale +echo "* Bundling locale" mkdir -p "${res_path}/locale" cp -r "../.bin/locale/" "${res_path}/locale" -cp "$(brew --prefix)/share/locale/pt_BR/LC_MESSAGES/lib3270.mo" "${res_path}/locale/pt_BR/LC_MESSAGES" -cp "$(brew --prefix)/share/locale/pt_BR/LC_MESSAGES/libv3270.mo" "${res_path}/locale/pt_BR/LC_MESSAGES" +cp "$(brew --prefix)/share/locale/pt_BR/LC_MESSAGES/lib3270"*".mo" "${res_path}/locale/pt_BR/LC_MESSAGES" +cp "$(brew --prefix)/share/locale/pt_BR/LC_MESSAGES/libv3270"*".mo" "${res_path}/locale/pt_BR/LC_MESSAGES" From fce56922358741f193a79d24b80f57a220f92650 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 13 Dec 2023 00:19:05 -0300 Subject: [PATCH 150/186] Fixing win32 build --- Makefile.in | 6 +++--- branding/Makefile.in | 4 ++-- src/include/config.h.in | 10 ++++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Makefile.in b/Makefile.in index 805aca8e..d88a6c69 100644 --- a/Makefile.in +++ b/Makefile.in @@ -301,7 +301,7 @@ install-macos-application: \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME)@EXEEXT@ install-windows-application: \ - branding/$(PRODUCT_NAME).png \ + $(srcdir)/branding/$(PRODUCT_NAME).png \ strip @$(MKDIR) \ @@ -315,11 +315,11 @@ install-windows-application: \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME) @$(INSTALL_DATA) \ - branding/$(PRODUCT_NAME).png \ + $(srcdir)/branding/$(PRODUCT_NAME).png \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME).png @$(INSTALL_DATA) \ - CHANGELOG \ + $(srcdir)/CHANGELOG \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PACKAGE_NAME).changes install-icons: diff --git a/branding/Makefile.in b/branding/Makefile.in index cab4f798..2ac149f4 100644 --- a/branding/Makefile.in +++ b/branding/Makefile.in @@ -24,9 +24,9 @@ APPLICATION_ID=@APPLICATION_ID@ prefix=@prefix@ exec_prefix=@exec_prefix@ +srcdir=@srcdir@ datarootdir=@datarootdir@ bindir=@bindir@ -srcdir=@srcdir@ BUILDDIR=@BUILDDIR@ BINDIR=$(BUILDDIR)/.bin @@ -156,7 +156,7 @@ install-windows: \ @$(MKDIR) $(DESTDIR)$(bindir) @$(INSTALL_DATA) \ - $(PRODUCT_NAME).ico \ + $(srcdir)/$(PRODUCT_NAME).ico \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME).ico diff --git a/src/include/config.h.in b/src/include/config.h.in index 6234a289..955a7178 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,7 +105,9 @@ /* The schema path */ #undef PRODUCT_PATH -/* Define to 1 if you have the ANSI C header files. */ +/* 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. */ #undef STDC_HEADERS /* Version number of package */ From 9ca97aa1818560f94ff791111c50dd544985483a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Breves?= Date: Fri, 5 Jan 2024 16:32:55 -0300 Subject: [PATCH 151/186] Update to macOS Sonoma --- macos/bundle | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/macos/bundle b/macos/bundle index 4697cac7..3ba3c5aa 100755 --- a/macos/bundle +++ b/macos/bundle @@ -5,7 +5,7 @@ set -Eeuo pipefail check_dependencies() { local unavailable=() for dependency in "${@:-$( /dev/null; fi + install_name_tool -add_rpath "@executable_path/../Frameworks" "${target}" 2> /dev/null for old_install_name in $(otool -L "${target}" | grep '^\t' | cut -c 2- | sed -n "s/\(.*\) (.*)/\1/p"); do if [[ "${old_install_name}" == "${id}" ]]; then continue; fi - local lib="$(find_lib "${old_install_name}")" + if [[ "${old_install_name}" =~ ${system_libs} ]]; then continue; fi + local lib + if [[ "${old_install_name}" =~ ^@loader_path.* ]]; then + lib="$(find_lib "$(dirname "${source}")/${old_install_name//@loader_path/}")" + else + lib="$(find_lib "${old_install_name}")" + fi local new_install_name="$(bundle_cp "${lib}")" if [[ "${new_install_name}" != "" ]]; then - install_name_tool -change "${old_install_name}" "${new_install_name}" "${target}" + install_name_tool -change "${old_install_name}" "${new_install_name}" "${target}" 2> /dev/null fi done + # https://stackoverflow.com/a/71753248/6910609 + codesign --force -s - "${target}" 2> /dev/null echo >&2 "${target}" done } @@ -113,9 +121,9 @@ bundle_cache() { check_dependencies otool grep cut sed greadlink qlmanage sips iconutil # Creates temporary directory -echo "Creating temporary directory" +echo "* Creating temporary directory" tmp="$(mktemp -d)" -trap 'echo "Removing temporary directory \"${tmp}\""; rm -rf "${tmp}"' EXIT +trap 'echo "* Removing temporary directory \"${tmp}\""; rm -rf "${tmp}"' EXIT bundle="pw3270.app" bundle_path="${bundle}/Contents" @@ -129,17 +137,15 @@ mkdir -p "${bundle_path}" cp "Info.plist" "${bundle_path}" mkdir -p "${res_path}" -cp -r "../ui" "${res_path}" +cp -r "../ui/macos.ui.xml" "${res_path}/pw3270.ui.xml" cp -r "$(brew --prefix)/share/pw3270/remap" "${res_path}" cp "$(brew --prefix)/share/pw3270/colors.conf" "${res_path}" # Bundle GLib schemas -echo "Bundling GLib schemas" +echo "* Bundling GLib schemas" mkdir -p "${tmp}/schemas" - -cp "$(brew --prefix)$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/pw3270*.gschema.xml" "${tmp}/schemas" +cp "../schemas/"*".gschema.xml" "${tmp}/schemas" cp "$(pkg-config gtk+-3.0 --variable=prefix)/share/glib-2.0/schemas/org.gtk.Settings."*".gschema.xml" "${tmp}/schemas" - glib-compile-schemas --targetdir="${res_path}" "${tmp}/schemas" # Create the GTK settings file @@ -152,7 +158,7 @@ gtk-print-preview-command="open -b com.apple.Preview %f" EOF # Make icon bundle -echo "Creating app icon bundle" +echo "* Creating app icon bundle" iconset="${tmp}/pw3270.iconset" rm -fr "${iconset}" mkdir -p "${iconset}" @@ -168,34 +174,41 @@ iconutil -c icns -o "${res_path}/pw3270.icns" "${iconset}" # Copy icons +echo "* Copying icons" mkdir -p "${res_path}/icons" cp -r "$(brew --prefix adwaita-icon-theme)/share/icons/" "${res_path}/icons" cp -r "$(brew --prefix hicolor-icon-theme)/share/icons/" "${res_path}/icons" mogrify -format png -path "${res_path}" -background transparent "../branding/*.svg" # Copy themes +echo "* Copying themes" mkdir -p "${res_path}/themes" cp -a "$(brew --prefix gtk+3)/share/themes/Mac" "${res_path}/themes" # Copy mime database +echo "* Copying mime database" mkdir -p "${res_path}/mime" cp "$(pkg-config shared-mime-info --variable=prefix)/share/mime/mime.cache" "${res_path}/mime" # Copy executables +echo "* Copying executables" mkdir -p "${exe_path}" bundle_cp "../.bin/Release/pw3270" cp "launcher.sh" "${exe_path}" # Bundle GdkPixbuf Image Loader Modules +echo "* Bundling GdkPixbuf Image Loader Modules" gdk-pixbuf-query-loaders | bundle_cache > "${res_path}/gdk-loaders.cache" # Bundle GTK+ Input Method Modules +echo "* Bundling GTK+ Input Method Modules" gtk_prefix="$(pkg-config gtk+-3.0 --variable prefix)" gtk-query-immodules-3.0 | bundle_cache \ | sed "s|${gtk_prefix}/share/locale|@executable_path/../Resources/locale|g" \ > "${res_path}/gtk.immodules" # Bundle print backends +echo "* Bundling print backends" mkdir -p "${lib_path}/printbackends" for backend in "$(pkg-config gtk+-3.0 --variable=prefix)/lib/gtk-3.0/$(pkg-config gtk+-3.0 --variable=gtk_binary_version)/printbackends/"*.so; do bundle_cp "${backend}" @@ -206,7 +219,8 @@ done # TODO: gerar o Info.plist com a versão do macOS $(sw_vers -productVersion) # Bundle locale +echo "* Bundling locale" mkdir -p "${res_path}/locale" cp -r "../.bin/locale/" "${res_path}/locale" -cp "$(brew --prefix)/share/locale/pt_BR/LC_MESSAGES/lib3270.mo" "${res_path}/locale/pt_BR/LC_MESSAGES" -cp "$(brew --prefix)/share/locale/pt_BR/LC_MESSAGES/libv3270.mo" "${res_path}/locale/pt_BR/LC_MESSAGES" +cp "$(brew --prefix)/share/locale/pt_BR/LC_MESSAGES/lib3270"*".mo" "${res_path}/locale/pt_BR/LC_MESSAGES" +cp "$(brew --prefix)/share/locale/pt_BR/LC_MESSAGES/libv3270"*".mo" "${res_path}/locale/pt_BR/LC_MESSAGES" From 04dbb341bdf7c9479678b4bb768d7b3acd83da2e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 16 Jan 2024 00:26:17 -0300 Subject: [PATCH 152/186] Adding +x on bundle script. --- macos/bundle | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 macos/bundle diff --git a/macos/bundle b/macos/bundle old mode 100644 new mode 100755 From 2a6352167bfc232d37552599ae4e7f354ec46257 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sun, 3 Mar 2024 10:23:32 -0300 Subject: [PATCH 153/186] Debugging brew package. --- .github/workflows/macpkg.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/macpkg.yml b/.github/workflows/macpkg.yml index 572b6137..a6b6f291 100644 --- a/.github/workflows/macpkg.yml +++ b/.github/workflows/macpkg.yml @@ -24,6 +24,9 @@ jobs: run: | brew update brew install xz automake libtool binutils coreutils curl gettext libtool openssl pkgconfig gtk+3 + find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete + find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete + find /usr/local/lib/node_modules/npm -delete brew upgrade - uses: robinraju/release-downloader@v1.7 with: From aeaa75a1b30c01a3bf9ebbf05c937c51f06addc8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 5 Mar 2024 14:14:57 -0300 Subject: [PATCH 154/186] 'macos' folder conflicts with branch with same name. --- {macos => mac}/Info.plist | 0 {macos => mac}/bundle | 0 {macos => mac}/launcher.sh | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {macos => mac}/Info.plist (100%) rename {macos => mac}/bundle (100%) rename {macos => mac}/launcher.sh (100%) diff --git a/macos/Info.plist b/mac/Info.plist similarity index 100% rename from macos/Info.plist rename to mac/Info.plist diff --git a/macos/bundle b/mac/bundle similarity index 100% rename from macos/bundle rename to mac/bundle diff --git a/macos/launcher.sh b/mac/launcher.sh similarity index 100% rename from macos/launcher.sh rename to mac/launcher.sh From ed4c42b10eec8ada4316d4500bb261a3d84d9a12 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 5 Mar 2024 14:19:34 -0300 Subject: [PATCH 155/186] Debugging macos action. --- .github/workflows/{macpkg.yml => macos.yml} | 22 ++++----------------- 1 file changed, 4 insertions(+), 18 deletions(-) rename .github/workflows/{macpkg.yml => macos.yml} (70%) diff --git a/.github/workflows/macpkg.yml b/.github/workflows/macos.yml similarity index 70% rename from .github/workflows/macpkg.yml rename to .github/workflows/macos.yml index a6b6f291..78007e58 100644 --- a/.github/workflows/macpkg.yml +++ b/.github/workflows/macos.yml @@ -1,15 +1,12 @@ name: Publish on: push: - branches: - - macos + branches: [ "macos" ] pull_request: - branches: - - master - - develop + branches: [ "master" ] + jobs: - macos: - name: Publish macos + macos-build: runs-on: macos-latest steps: - name: Checkout @@ -27,7 +24,6 @@ jobs: find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete find /usr/local/lib/node_modules/npm -delete - brew upgrade - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/lib3270" @@ -40,14 +36,4 @@ jobs: fileName: "macos-libv3270.tar.xz" - name: build run: ./mac/ci-build.sh - - uses: ncipollo/release-action@v1 - with: - tag: ${{ steps.gettag.outputs.tag }} - artifacts: "macos-pw3270.tar.xz" - allowUpdates: true - draft: true - makeLatest: true - omitBody: true - omitPrereleaseDuringUpdate: true - replacesArtifacts: true From 3d70bc099db343c37f5f75cd093a755062afccfa Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 5 Mar 2024 17:00:05 -0300 Subject: [PATCH 156/186] Changing autogen.sh for use in macos according to https://github.com/PerryWerneck/pw3270/issues/63#issuecomment-1979258212 --- autogen.sh | 29 ++++++++++++++--------------- src/include/config.h.in | 10 ++++------ 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/autogen.sh b/autogen.sh index b0a22999..316fc827 100755 --- a/autogen.sh +++ b/autogen.sh @@ -10,21 +10,20 @@ cd ${srcdir} mkdir -p ./scripts mkdir -p m4 -case `uname` in -Darwin*) - glibtoolize --force - if test $? != 0 ; then - echo "glibtoolize failed." - exit -1 - fi - ;; -*) - libtoolize --force - if test $? != 0 ; then - echo "libtoolize failed." - exit -1 - fi -esac +LIBTOOLIZE=$(which libtoolize) +if [ -z ${LIBTOOLIZE} ]; then + LIBTOOLIZE=$(which glibtoolize) +fi +if [ -z ${LIBTOOLIZE} ]; then + echo "Can't find libtoolize" + exit -1 +fi + +${LIBTOOLIZE} --force +if test $? != 0 ; then + echo "libtoolize failed." + exit -1 +fi aclocal if test $? != 0 ; then diff --git a/src/include/config.h.in b/src/include/config.h.in index 955a7178..6234a289 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 */ From b5df356c09a07280124103914ca9e9c08afdff13 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 5 Mar 2024 20:57:28 -0300 Subject: [PATCH 157/186] Removing macos path due to conflicts with the branch with the same name. --- {macos => mac}/Info.plist | 0 {macos => mac}/bundle | 0 {macos => mac}/launcher.sh | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {macos => mac}/Info.plist (100%) rename {macos => mac}/bundle (100%) rename {macos => mac}/launcher.sh (100%) diff --git a/macos/Info.plist b/mac/Info.plist similarity index 100% rename from macos/Info.plist rename to mac/Info.plist diff --git a/macos/bundle b/mac/bundle similarity index 100% rename from macos/bundle rename to mac/bundle diff --git a/macos/launcher.sh b/mac/launcher.sh similarity index 100% rename from macos/launcher.sh rename to mac/launcher.sh From ebf74ac9ad9cda35d3a357dc50a8a77ab6177b65 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 5 Mar 2024 21:02:14 -0300 Subject: [PATCH 158/186] Updating workflows. --- .github/workflows/macos.yml | 11 ++--------- .github/workflows/msys2.yml | 5 ----- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 78007e58..d5d9b4d4 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -1,9 +1,8 @@ name: Publish on: push: - branches: [ "macos" ] - pull_request: - branches: [ "master" ] + branches: [ "publish" ] + tags: [ "*" ] jobs: macos-build: @@ -11,12 +10,6 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - - uses: oprypin/find-latest-tag@v1 - id: gettag - with: - repository: PerryWerneck/pw3270 - sort-tags: true - releases-only: true - name: Install Pre reqs run: | brew update diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index ed92a25c..6963513f 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -15,11 +15,6 @@ jobs: shell: msys2 {0} steps: - uses: actions/checkout@v3 - - uses: oprypin/find-latest-tag@v1 - id: gettag - with: - repository: PerryWerneck/pw3270 - releases-only: true - uses: msys2/setup-msys2@v2 with: msystem: mingw64 From 4552bc9948cdf295a3856e04df5c7c217d18f78c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 5 Mar 2024 21:06:59 -0300 Subject: [PATCH 159/186] Debugging workflows. --- .github/workflows/macos.yml | 7 ++++--- .github/workflows/msys2.yml | 14 ++++++-------- .github/workflows/{winpkg.yml => publish.yml} | 15 ++++++--------- 3 files changed, 16 insertions(+), 20 deletions(-) rename .github/workflows/{winpkg.yml => publish.yml} (93%) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index d5d9b4d4..719f09df 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -1,8 +1,9 @@ -name: Publish +name: check-macos on: push: - branches: [ "publish" ] - tags: [ "*" ] + branches: [ "macos" ] + pull_request: + branches: [ "master" ] jobs: macos-build: diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index 6963513f..2f10bda1 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -1,14 +1,12 @@ -name: MSYS2 +name: check-msys2 on: - pull_request: - branches: - - master push: - branches: - - develop + branches: [ "win" ] + pull_request: + branches: [ "master" ] + jobs: - msys2-mingw: - name: Publish Windows 64 + msys2-build: runs-on: windows-latest defaults: run: diff --git a/.github/workflows/winpkg.yml b/.github/workflows/publish.yml similarity index 93% rename from .github/workflows/winpkg.yml rename to .github/workflows/publish.yml index 8bd392ac..3bf9d975 100644 --- a/.github/workflows/winpkg.yml +++ b/.github/workflows/publish.yml @@ -1,15 +1,12 @@ --- -name: WinPKG +name: Publish on: - pull_request: - branches: - - master push: - branches: - - winpkg + branches: [ "publish" ] + tags: [ "*" ] + jobs: - msys2-mingw64: - name: Publish for Windows 64 + msys2-publish: runs-on: windows-latest defaults: run: @@ -74,7 +71,7 @@ jobs: - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: "*-pw3270-*.tar.xz" + artifacts: "*-pw3270-*.tar.*" allowUpdates: true draft: true makeLatest: true From 3b47a0622abd906b5a97fa1bab0ff27381c97812 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 07:28:30 -0300 Subject: [PATCH 160/186] Update macos.yml --- .github/workflows/macos.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 719f09df..1210676f 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -13,6 +13,9 @@ jobs: uses: actions/checkout@v3 - name: Install Pre reqs run: | + find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete + find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete + find /usr/local/lib/node_modules/npm -delete brew update brew install xz automake libtool binutils coreutils curl gettext libtool openssl pkgconfig gtk+3 find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete From d0bd730c869d53fc574dc6fcd1f4fc5f602df063 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 07:43:36 -0300 Subject: [PATCH 161/186] Still trying to get macos action to work. --- .github/workflows/macos.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 1210676f..665d0fa5 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -13,14 +13,19 @@ jobs: uses: actions/checkout@v3 - name: Install Pre reqs run: | + brew remove azure-cli find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete + rm -rf /usr/local/bin/2to3* + rm -rf /usr/local/bin/idle3* + rm -rf /usr/local/bin/pydoc3* + rm -rf /usr/local/bin/python3 + rm -rf /usr/local/bin/python3-config + rm -rf /usr/local/bin/python3* + rm -rf /usr/local/bin/python3*-config find /usr/local/lib/node_modules/npm -delete brew update brew install xz automake libtool binutils coreutils curl gettext libtool openssl pkgconfig gtk+3 - find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete - find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete - find /usr/local/lib/node_modules/npm -delete - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/lib3270" From 8f7711dc62848cd08c39c0a4aa3eef3e61fea57f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 08:18:45 -0300 Subject: [PATCH 162/186] Updating win32 package. --- PKGBUILD.mingw | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PKGBUILD.mingw b/PKGBUILD.mingw index 0e5ff500..49a70272 100644 --- a/PKGBUILD.mingw +++ b/PKGBUILD.mingw @@ -25,7 +25,7 @@ source=() pkgver=$(grep AC_INIT "${startdir}/configure.ac" | cut -d[ -f3 | cut -d] -f1) pkgrel=0 -pkgdesc="TN3270 Access library" +pkgdesc="IBM 3270 Terminal emulator for GTK" url="https://github.com/PerryWerneck/${_realname}" arch=(i686 x86_64) license=(LGPL-3.0-or-later) @@ -38,12 +38,12 @@ conflicts=($pkgname) prepare() { rm -fr "$srcdir/$pkgname" - ln -snf "$startdir" "$srcdir/$pkgname" + mkdir -p "$srcdir/$pkgname" } build() { - cd $pkgname - ./autogen.sh \ + cd "$srcdir/$pkgname" + ${startdir}/autogen.sh \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ @@ -53,10 +53,10 @@ build() { } package() { - cd $pkgname + cd "$srcdir/$pkgname" make DESTDIR="${pkgdir}" install install \ -Dm644 \ - "LICENSE" \ + "${startdir}/LICENSE" \ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } From e4601a9f5c067c3a128f29a8d3ef3926f7d93615 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 16:20:47 -0300 Subject: [PATCH 163/186] Debugging win32 action. --- win/ci-build.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/win/ci-build.sh b/win/ci-build.sh index ca9aeefb..40e1309a 100644 --- a/win/ci-build.sh +++ b/win/ci-build.sh @@ -25,11 +25,7 @@ echo "Running ${0}" -LOGFILE=build.log -rm -f ${LOGFILE} - die ( ) { - [ -s $LOGFILE ] && tail $LOGFILE [ "$1" ] && echo "$*" exit -1 } From 78fb2d96c67719ce4056c7b92dbd00ceed3a3e91 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 16:30:26 -0300 Subject: [PATCH 164/186] Debugging win32 action. --- .github/workflows/msys2.yml | 5 ++++- PKGBUILD.mingw | 1 + autogen.sh | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml index 2f10bda1..a56d1e87 100644 --- a/.github/workflows/msys2.yml +++ b/.github/workflows/msys2.yml @@ -29,6 +29,9 @@ jobs: latest: true fileName: "mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst" - name: CI-Build - run: ./win/ci-build.sh + run: | + pacman -U --noconfirm *.pkg.tar.zst + dos2unix PKGBUILD.mingw + makepkg BUILDDIR=/tmp/pkg -p PKGBUILD.mingw diff --git a/PKGBUILD.mingw b/PKGBUILD.mingw index 49a70272..6feb4782 100644 --- a/PKGBUILD.mingw +++ b/PKGBUILD.mingw @@ -60,3 +60,4 @@ package() { "${startdir}/LICENSE" \ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" } + diff --git a/autogen.sh b/autogen.sh index 316fc827..d09d6769 100755 --- a/autogen.sh +++ b/autogen.sh @@ -49,7 +49,7 @@ autopoint cd ${builddir} -test -n "$NOCONFIGURE" || "./configure" "$@" +test -n "$NOCONFIGURE" || "$srcdir/configure" --srcdir=${srcdir} $@ From db0ab5f6ce8c0b1df3e1231ada1e43e111c2c922 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 18:46:06 -0300 Subject: [PATCH 165/186] Debugging publish action. --- .github/workflows/publish.yml | 75 ++++++++++++++++++++++++++++------- win/ci-build.sh | 49 ----------------------- 2 files changed, 61 insertions(+), 63 deletions(-) delete mode 100644 win/ci-build.sh diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3bf9d975..bbaddb2f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,8 +1,7 @@ ---- name: Publish on: push: - branches: [ "publish" ] + branches: [ "develop" ] tags: [ "*" ] jobs: @@ -13,20 +12,11 @@ jobs: shell: msys2 {0} steps: - uses: actions/checkout@v3 - - uses: oprypin/find-latest-tag@v1 - id: gettag - with: - repository: PerryWerneck/pw3270 - sort-tags: true - releases-only: true - uses: msys2/setup-msys2@v2 with: msystem: mingw64 update: true - install: xz dos2unix mingw-w64-x86_64-gcc automake autoconf make git pkgconf - mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl - libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-librsvg mingw-w64-x86_64-gdk-pixbuf2 - mingw-w64-x86_64-optipng mingw-w64-x86_64-nsis + install: dos2unix mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/lib3270" @@ -37,8 +27,17 @@ jobs: repository: "PerryWerneck/libv3270" latest: true fileName: "mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst" - - name: BuildApp - run: ./win/ci-build.sh + - name: CI-Build + run: | + pacman -U --noconfirm *.pkg.tar.zst + dos2unix PKGBUILD.mingw + makepkg BUILDDIR=/tmp/pkg -p PKGBUILD.mingw + - uses: oprypin/find-latest-tag@v1 + id: gettag + with: + repository: PerryWerneck/pw3270 + sort-tags: true + releases-only: true - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} @@ -78,4 +77,52 @@ jobs: omitBody: true omitPrereleaseDuringUpdate: true replacesArtifacts: true + macos-publish: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install Pre reqs + run: | + brew remove azure-cli + find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete + find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete + rm -rf /usr/local/bin/2to3* + rm -rf /usr/local/bin/idle3* + rm -rf /usr/local/bin/pydoc3* + rm -rf /usr/local/bin/python3 + rm -rf /usr/local/bin/python3-config + rm -rf /usr/local/bin/python3* + rm -rf /usr/local/bin/python3*-config + find /usr/local/lib/node_modules/npm -delete + brew update + brew install xz automake libtool binutils coreutils curl gettext libtool openssl pkgconfig gtk+3 + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/lib3270" + latest: true + fileName: "macos-lib3270.tar.xz" + - uses: robinraju/release-downloader@v1.7 + with: + repository: "PerryWerneck/libv3270" + latest: true + fileName: "macos-libv3270.tar.xz" + - name: build + run: ./mac/ci-build.sh + - uses: oprypin/find-latest-tag@v1 + id: gettag + with: + repository: PerryWerneck/pw3270 + sort-tags: true + releases-only: true + - uses: ncipollo/release-action@v1 + with: + tag: ${{ steps.gettag.outputs.tag }} + artifacts: "macos-*.tar.xz" + allowUpdates: true + draft: false + makeLatest: true + omitBody: true + omitPrereleaseDuringUpdate: true + replacesArtifacts: true diff --git a/win/ci-build.sh b/win/ci-build.sh deleted file mode 100644 index 40e1309a..00000000 --- a/win/ci-build.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -# -# SPDX-License-Identifier: LGPL-3.0-or-later -# -# Copyright (C) 2008 Banco do Brasil S.A. -# -# 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 . - -# -# References: -# -# * https://www.msys2.org/docs/ci/ -# - -echo "Running ${0}" - -die ( ) { - [ "$1" ] && echo "$*" - exit -1 -} - -cd $(dirname $(dirname $(readlink -f ${0}))) - -# -# Install pre-reqs -# -echo "Installing pre-reqs..." -pacman -U --noconfirm *.pkg.tar.zst || die "pre-reqs failure" - -# -# Build -# -echo "Building package..." -dos2unix PKGBUILD.mingw || die "dos2unix failure" -makepkg BUILDDIR=/tmp/pkg -p PKGBUILD.mingw || die "makepkg failure" - -echo "Build complete" - From 9fc5aeec8a58ed142973560850473a04c7c9c3b3 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 19:01:55 -0300 Subject: [PATCH 166/186] Debugging publish action. --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bbaddb2f..11ef0ced 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -118,7 +118,7 @@ jobs: - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: "macos-*.tar.xz" + artifacts: "*-pw3270-*.tar.*" allowUpdates: true draft: false makeLatest: true From 0e9712cffaab50554cc15abfbb96eae4a4c5603e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 19:14:24 -0300 Subject: [PATCH 167/186] Debugging publish workflow. --- .github/workflows/publish.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 11ef0ced..44fe6b85 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -64,9 +64,9 @@ jobs: latest: true fileName: mingw-w64-x86_64-pw3270-plugin-ipc-5.5-0-x86_64.pkg.tar.zst - name: Make bundle - run: ./win/bundle.msys - - name: Make Package - run: tar -C ./.bin/bundle -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . + run: | + ./win/bundle.msys + tar -C ./.bin/bundle -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} From 8a61bce319e780038373346e3c2ff5e3ec19b015 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 19:34:07 -0300 Subject: [PATCH 168/186] Debugging publish action. --- .github/workflows/publish.yml | 1 + mac/ci-build.sh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 44fe6b85..84233af8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -66,6 +66,7 @@ jobs: - name: Make bundle run: | ./win/bundle.msys + rm -f *.tar.xz tar -C ./.bin/bundle -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . - uses: ncipollo/release-action@v1 with: diff --git a/mac/ci-build.sh b/mac/ci-build.sh index 9c74a801..119e8fd3 100755 --- a/mac/ci-build.sh +++ b/mac/ci-build.sh @@ -35,3 +35,6 @@ fi make DESTDIR=.bin/package install tar --create --xz --file=macos-${PROJECT_NAME}.tar.xz --directory=.bin/package --verbose . +find . + + From 425cd790500f0f1d26281f73a1c3b63ffdb14766 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 21:34:00 -0300 Subject: [PATCH 169/186] Debugging publish action. --- .github/workflows/publish.yml | 2 +- mac/ci-build.sh | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 84233af8..a57321f3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -66,7 +66,7 @@ jobs: - name: Make bundle run: | ./win/bundle.msys - rm -f *.tar.xz + rm -f *plugin* tar -C ./.bin/bundle -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . - uses: ncipollo/release-action@v1 with: diff --git a/mac/ci-build.sh b/mac/ci-build.sh index 119e8fd3..b6b256cc 100755 --- a/mac/ci-build.sh +++ b/mac/ci-build.sh @@ -7,7 +7,7 @@ unpack() { echo "Unpacking ${1}" - tar -C $(brew --cellar) -Jxvf macos-${1}.tar.xz + tar -C $(brew --cellar) -Jxf macos-${1}.tar.xz if [ "$?" != "0" ]; then exit -1 fi @@ -17,6 +17,8 @@ unpack() { exit -1 fi + rm -f macos-${1}.tar.xz + } unpack lib3270 @@ -35,6 +37,6 @@ fi make DESTDIR=.bin/package install tar --create --xz --file=macos-${PROJECT_NAME}.tar.xz --directory=.bin/package --verbose . -find . +find . -iname *.tar.xz From abfd34c8a380ee5a3aa6287498905686b7f9173d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 21:47:12 -0300 Subject: [PATCH 170/186] Debugging publish action. --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a57321f3..6aa92e5f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -119,7 +119,7 @@ jobs: - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: "*-pw3270-*.tar.*" + artifacts: "macos-pw3270.tar.xz" allowUpdates: true draft: false makeLatest: true From cb5156db481535a87579bf5499320c4592d12c2e Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 22:53:55 -0300 Subject: [PATCH 171/186] Debugging publish action. --- .github/workflows/publish.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6aa92e5f..ee58b45c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,7 +16,7 @@ jobs: with: msystem: mingw64 update: true - install: dos2unix mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape + install: dos2unix mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape mingw-w64-x86_64-nsis - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/lib3270" @@ -27,11 +27,15 @@ jobs: repository: "PerryWerneck/libv3270" latest: true fileName: "mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst" - - name: CI-Build + - name: MakePackage run: | pacman -U --noconfirm *.pkg.tar.zst dos2unix PKGBUILD.mingw makepkg BUILDDIR=/tmp/pkg -p PKGBUILD.mingw + - name: MakeNSIS + run: | + ./win/bundle.msys --nsi + find . -iname '*.exe' - uses: oprypin/find-latest-tag@v1 id: gettag with: From 8bafce17394a983c1fe249b26fdb4b58fdaeb9b9 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 6 Mar 2024 23:37:41 -0300 Subject: [PATCH 172/186] Debugging publish action. --- .github/workflows/publish.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ee58b45c..5948f8d6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -35,6 +35,7 @@ jobs: - name: MakeNSIS run: | ./win/bundle.msys --nsi + mv .bin/bundle/mingw64/bin/*.exe . find . -iname '*.exe' - uses: oprypin/find-latest-tag@v1 id: gettag @@ -82,6 +83,16 @@ jobs: omitBody: true omitPrereleaseDuringUpdate: true replacesArtifacts: true + - uses: ncipollo/release-action@v1 + with: + tag: ${{ steps.gettag.outputs.tag }} + artifacts: "pw3270*.exe" + allowUpdates: true + draft: true + makeLatest: true + omitBody: true + omitPrereleaseDuringUpdate: true + replacesArtifacts: true macos-publish: runs-on: macos-latest steps: From e2e03c2dfce978645c425c10730a6841eecf996f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 00:31:27 -0300 Subject: [PATCH 173/186] Debugging windows publisher. --- win/bundle.msys | 1 + 1 file changed, 1 insertion(+) diff --git a/win/bundle.msys b/win/bundle.msys index bca621ad..774800bc 100755 --- a/win/bundle.msys +++ b/win/bundle.msys @@ -34,5 +34,6 @@ do done install_gtk3_runtime +make_packages From de4033ae7a06d03fba6133bd90324ecc5af8ebe3 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 00:47:15 -0300 Subject: [PATCH 174/186] Debugging msys bundler. --- .github/workflows/publish.yml | 49 +++++++++++++---------------------- win/bundle.common | 13 +++++++--- 2 files changed, 27 insertions(+), 35 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5948f8d6..ad4687ed 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -27,16 +27,26 @@ jobs: repository: "PerryWerneck/libv3270" latest: true fileName: "mingw-w64-x86_64-libv3270-5.4-0-x86_64.pkg.tar.zst" + - uses: robinraju/release-downloader@v1.7 + with: + repository: PerryWerneck/libipc3270 + latest: true + fileName: mingw-w64-x86_64-libipc3270-5.5-0-x86_64.pkg.tar.zst + - uses: robinraju/release-downloader@v1.7 + with: + repository: PerryWerneck/libhllapi + latest: true + fileName: mingw-w64-x86_64-libhllapi-5.5-0-x86_64.pkg.tar.zst + - uses: robinraju/release-downloader@v1.7 + with: + repository: PerryWerneck/pw3270-plugin-ipc + latest: true + fileName: mingw-w64-x86_64-pw3270-plugin-ipc-5.5-0-x86_64.pkg.tar.zst - name: MakePackage run: | pacman -U --noconfirm *.pkg.tar.zst dos2unix PKGBUILD.mingw makepkg BUILDDIR=/tmp/pkg -p PKGBUILD.mingw - - name: MakeNSIS - run: | - ./win/bundle.msys --nsi - mv .bin/bundle/mingw64/bin/*.exe . - find . -iname '*.exe' - uses: oprypin/find-latest-tag@v1 id: gettag with: @@ -53,24 +63,11 @@ jobs: omitBody: true omitPrereleaseDuringUpdate: true replacesArtifacts: true - - uses: robinraju/release-downloader@v1.7 - with: - repository: PerryWerneck/libipc3270 - latest: true - fileName: mingw-w64-x86_64-libipc3270-5.5-0-x86_64.pkg.tar.zst - - uses: robinraju/release-downloader@v1.7 - with: - repository: PerryWerneck/libhllapi - latest: true - fileName: mingw-w64-x86_64-libhllapi-5.5-0-x86_64.pkg.tar.zst - - uses: robinraju/release-downloader@v1.7 - with: - repository: PerryWerneck/pw3270-plugin-ipc - latest: true - fileName: mingw-w64-x86_64-pw3270-plugin-ipc-5.5-0-x86_64.pkg.tar.zst - name: Make bundle run: | - ./win/bundle.msys + ./win/bundle.msys --nsi --zip + find . -iname '*.exe' + find . -iname '*.zip' rm -f *plugin* tar -C ./.bin/bundle -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . - uses: ncipollo/release-action@v1 @@ -83,16 +80,6 @@ jobs: omitBody: true omitPrereleaseDuringUpdate: true replacesArtifacts: true - - uses: ncipollo/release-action@v1 - with: - tag: ${{ steps.gettag.outputs.tag }} - artifacts: "pw3270*.exe" - allowUpdates: true - draft: true - makeLatest: true - omitBody: true - omitPrereleaseDuringUpdate: true - replacesArtifacts: true macos-publish: runs-on: macos-latest steps: diff --git a/win/bundle.common b/win/bundle.common index 074264ca..86ccd2e5 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -389,12 +389,21 @@ build_package() { make_packages() { + echo "----------------------------------" + find ${srcdir} -iname *.nsi + echo "----------------------------------" + if [ -e "${srcdir}/win/${PACKAGE_NAME}.nsi" ]; then mkdir -p "${buildroot}${MINGW_PREFIX}/nsi" cp "${srcdir}/win/${PACKAGE_NAME}.nsi" "${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi" if [ "$?" != "0" ]; then echo "Cant copy nsis script" fi + + argument "nsi" > /dev/null + if [ "$?" == "0" ]; then + make_nsis + fi fi argument "zip" > /dev/null @@ -402,10 +411,6 @@ make_packages() { make_zip fi - argument "nsi" > /dev/null - if [ "$?" == "0" ]; then - make_nsis - fi } From 5b587056b00f45d600417fb2bfade03a36aee91c Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 07:47:10 -0300 Subject: [PATCH 175/186] Adding zip package. --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ad4687ed..2f6e7617 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,7 +16,7 @@ jobs: with: msystem: mingw64 update: true - install: dos2unix mingw-w64-x86_64-gcc automake autoconf make git pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape mingw-w64-x86_64-nsis + install: dos2unix mingw-w64-x86_64-gcc automake autoconf make git zip pkgconf mingw-w64-x86_64-gettext gettext-devel mingw-w64-x86_64-openssl libtool mingw-w64-x86_64-gtk3 mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape mingw-w64-x86_64-nsis - uses: robinraju/release-downloader@v1.7 with: repository: "PerryWerneck/lib3270" From 33f7f94a8adae274f9e0fabfccd9f7d14a8b3638 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 08:42:14 -0300 Subject: [PATCH 176/186] Debugging win32 package. --- .github/workflows/publish.yml | 2 +- win/bundle.common | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2f6e7617..e11c3d75 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -73,7 +73,7 @@ jobs: - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: "*-pw3270-*.tar.*" + artifacts: "*.zip" allowUpdates: true draft: true makeLatest: true diff --git a/win/bundle.common b/win/bundle.common index 86ccd2e5..0877f605 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -392,18 +392,19 @@ make_packages() { echo "----------------------------------" find ${srcdir} -iname *.nsi echo "----------------------------------" + find ${buildroot} -iname *.nsi + echo "----------------------------------" if [ -e "${srcdir}/win/${PACKAGE_NAME}.nsi" ]; then mkdir -p "${buildroot}${MINGW_PREFIX}/nsi" cp "${srcdir}/win/${PACKAGE_NAME}.nsi" "${buildroot}${MINGW_PREFIX}/${PACKAGE_NAME}.nsi" - if [ "$?" != "0" ]; then - echo "Cant copy nsis script" - fi - - argument "nsi" > /dev/null if [ "$?" == "0" ]; then - make_nsis + echo "Nsis script installed" + else + echo "Erro installing nsis" fi + else + echo "Cant find fi argument "zip" > /dev/null @@ -411,6 +412,10 @@ make_packages() { make_zip fi + argument "nsi" > /dev/null + if [ "$?" == "0" ]; then + make_nsis + fi } From b21224b3a0f842699e039a19c47e7b66f1dd5eef Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 09:34:41 -0300 Subject: [PATCH 177/186] Fixing bundle script. --- win/bundle.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/bundle.common b/win/bundle.common index 0877f605..8f970323 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -404,7 +404,7 @@ make_packages() { echo "Erro installing nsis" fi else - echo "Cant find + echo "Cant find ${srcdir}/win/${PACKAGE_NAME}.nsi" fi argument "zip" > /dev/null From e640d297ecfdce4d1318031c3735ef53bf1e5fb9 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 10:05:14 -0300 Subject: [PATCH 178/186] Debugging msys bundler. --- win/bundle.common | 2 ++ 1 file changed, 2 insertions(+) diff --git a/win/bundle.common b/win/bundle.common index 8f970323..57053132 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -389,6 +389,8 @@ build_package() { make_packages() { + echo "----------------------------------" + find . -iname *.nsi echo "----------------------------------" find ${srcdir} -iname *.nsi echo "----------------------------------" From d6fbc75a844b14dbf23e8d46af88d7a393083b43 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 10:29:17 -0300 Subject: [PATCH 179/186] Debugging win32 bundler. --- .github/workflows/publish.yml | 1 + win/bundle.msys | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e11c3d75..5a5cd02e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -65,6 +65,7 @@ jobs: replacesArtifacts: true - name: Make bundle run: | + ./autogen.sh ./win/bundle.msys --nsi --zip find . -iname '*.exe' find . -iname '*.zip' diff --git a/win/bundle.msys b/win/bundle.msys index 774800bc..13130235 100755 --- a/win/bundle.msys +++ b/win/bundle.msys @@ -33,6 +33,30 @@ do fi done +argument "build" > /dev/null +if [ "$?" == "0" ]; then + + NOCONFIGURE=1 ./autogen.sh + if [ "$?" != "0" ]; then + echo "Configure failed" + exit -1 + fi + + ./configure + if [ "$?" != "0" ]; then + echo "Configure failed" + exit -1 + fi + + build_package + +else + + packages="${packages} pw3270" + +fi + + install_gtk3_runtime make_packages From 9dead1f44dec21ca47c43b688fba9cb50689b7e2 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 11:07:21 -0300 Subject: [PATCH 180/186] Debugging win32 bundler. --- win/bundle.common | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/win/bundle.common b/win/bundle.common index 57053132..627b11db 100644 --- a/win/bundle.common +++ b/win/bundle.common @@ -403,22 +403,34 @@ make_packages() { if [ "$?" == "0" ]; then echo "Nsis script installed" else - echo "Erro installing nsis" + echo "Error installing nsis" fi else echo "Cant find ${srcdir}/win/${PACKAGE_NAME}.nsi" fi - argument "zip" > /dev/null - if [ "$?" == "0" ]; then - make_zip - fi + if [ -e "${srcdir}/LICENSE" ]; then + mkdir -p "${buildroot}${MINGW_PREFIX}/share/pw3270" + cp "${srcdir}/LICENSE" "${buildroot}${MINGW_PREFIX}/share/pw3270" + if [ "$?" == "0" ]; then + echo "License installed" + else + echo "Error installing license" + fi + else + echo "Cant find ${srcdir}/LICENSE" + fi argument "nsi" > /dev/null if [ "$?" == "0" ]; then make_nsis fi + argument "zip" > /dev/null + if [ "$?" == "0" ]; then + make_zip + fi + } From 050439066efc701b3b11adeec2e48b6128572361 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 13:13:13 -0300 Subject: [PATCH 181/186] Debugging publisher. --- .github/workflows/publish.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5a5cd02e..db72ee66 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -56,7 +56,7 @@ jobs: - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} - artifacts: "*-pw3270-*.pkg.tar.zst" + artifacts: "*-pw3270-5*.pkg.tar.zst" allowUpdates: true draft: true makeLatest: true @@ -69,8 +69,6 @@ jobs: ./win/bundle.msys --nsi --zip find . -iname '*.exe' find . -iname '*.zip' - rm -f *plugin* - tar -C ./.bin/bundle -Jcf mingw-w64-x86_64-pw3270-bundle-x86_64.tar.xz . - uses: ncipollo/release-action@v1 with: tag: ${{ steps.gettag.outputs.tag }} @@ -81,6 +79,16 @@ jobs: omitBody: true omitPrereleaseDuringUpdate: true replacesArtifacts: true + - uses: ncipollo/release-action@v1 + with: + tag: ${{ steps.gettag.outputs.tag }} + artifacts: "pw3270-5*.exe" + allowUpdates: true + draft: true + makeLatest: true + omitBody: true + omitPrereleaseDuringUpdate: true + replacesArtifacts: true macos-publish: runs-on: macos-latest steps: From 1eb41489431c8a94cd59146684d391d8b856910b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 7 Mar 2024 13:50:10 -0300 Subject: [PATCH 182/186] Publish only on tag updates. --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index db72ee66..091631e3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,7 +1,7 @@ name: Publish on: push: - branches: [ "develop" ] + branches: [ "publish" ] tags: [ "*" ] jobs: From a8b8d27f17b8af03e774cecc665b4c59bc4d83f6 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 12 Mar 2024 22:31:03 -0300 Subject: [PATCH 183/186] Debugging cross bundler. --- win/bundle.cross | 22 +++++++++------------- win/bundle.gtk3 | 11 +++++++---- win/pw3270.nsi.in | 30 ++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 17 deletions(-) diff --git a/win/bundle.cross b/win/bundle.cross index 844d8450..d1f3e752 100755 --- a/win/bundle.cross +++ b/win/bundle.cross @@ -29,6 +29,7 @@ REPOSITORY_NAME="pw3270" argument "help" > /dev/null if [ "$?" == "0" ]; then echo " --install-requires Install required packages" + echo " --install-repositories Install win32 repositories" echo " --build Build application from source" fi @@ -54,21 +55,9 @@ install_prereqs() { echo "Installing: ${list}" - REPONUMBER=$(zypper lr | grep "${REPOSITORY_NAME}" | cut -d\| -f1) - if [ -z "${REPONUMBER}" ]; then - echo "Cant locate repository ${REPOSITORY_NAME}" - exit -1 - fi - - sudo zypper ref ${REPONUMBER} - if [ "$?" != "0" ]; then - echo "Cant refresh repository ${REPOSITORY_NAME}" - exit -1 - fi - for package in ${list} do - sudo zypper in --repo ${REPONUMBER} "${MINGW_PACKAGE_PREFIX}-${package}" + sudo zypper in "${MINGW_PACKAGE_PREFIX}-${package}" if [ "$?" != "0" ]; then echo "Cant install ${MINGW_PACKAGE_PREFIX}-${package} from ${REPOSITORY_NAME}" exit -1 @@ -76,6 +65,13 @@ install_prereqs() { done } +argument "install-repositories" > /dev/null +if [ "$?" == "0" ]; then + sudo zypper ar obs://windows:mingw:win64 windows_mingw_win64 + sudo zypper ar obs://windows:mingw windows_mingw + sudo zypper ar obs://home:PerryWerneck:pw3270 home_PerryWerneck_pw3270 +fi + argument "install-requires" > /dev/null if [ "$?" == "0" ]; then install_prereqs diff --git a/win/bundle.gtk3 b/win/bundle.gtk3 index a614026e..22ab47e2 100644 --- a/win/bundle.gtk3 +++ b/win/bundle.gtk3 @@ -28,10 +28,13 @@ # Load bundle functions . "$(dirname $(readlink -f "${0}"))/bundle.common" -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") +pkg-config --exists gtk+-3.0 +if [ "$?" == "0" ]; then + 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") +fi install_schemas() { diff --git a/win/pw3270.nsi.in b/win/pw3270.nsi.in index 39e3c19c..acbb5909 100644 --- a/win/pw3270.nsi.in +++ b/win/pw3270.nsi.in @@ -290,6 +290,36 @@ Function .onInit Abort ${EndIf} + #---[ Check PLUGINS Command line option ]------------------------------------------------------------- + + Push $0 + + ${GetParameters} $R0 + ClearErrors + ${GetOptions} $R0 /PLUGINS= $0 + + ${if} $0 == "NO" + +!ifdef WITHMONO-TN3270 + SectionGetFlags ${DOTNET} $0 + IntOp $0 $0 & ${SECTION_OFF} + SectionSetFlags ${DOTNET} $0 +!endif + +!ifdef WITHLIBHLLAPI + SectionGetFlags ${HLLAPIBinding} $0 + IntOp $0 $0 | ${SF_SELECTED} + SectionSetFlags ${HLLAPIBinding} $0 +!endif + + SectionGetFlags ${IPCPlugin} $0 + IntOp $0 $0 | ${SF_SELECTED} + SectionSetFlags ${IPCPlugin} $0 + + ${EndIf} + + Pop $0 + #---[ Check SDK Command line option ]----------------------------------------------------------------- !ifdef WITHSDK From 3ca7baf967b880aebd2806cb055f96837e36af0d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 12 Mar 2024 22:48:44 -0300 Subject: [PATCH 184/186] Updating readme. --- README.md | 47 +++++++++++++++++++++++++++-------------------- win/bundle.gtk3 | 2 +- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index c4f0c34c..5e6fb600 100644 --- a/README.md +++ b/README.md @@ -28,31 +28,39 @@ Alternative windows installers for stable and unstable versions are already avai ## Building for Linux ```shell - $ git clone https://github.com/PerryWerneck/pw3270.git - $ cd pw3270 - $ ./autogen.sh - $ make all - $ sudo make install + git clone https://github.com/PerryWerneck/pw3270.git + cd pw3270 + ./autogen.sh + make all + sudo make install ``` ## Building for Windows ### Cross-compiling on SuSE Linux (Native or WSL) -1. Add the MinGW Repositories +1. Get pw3270 sources ```shell - $ sudo zypper ar obs://windows:mingw:win32 mingw32 - $ sudo zypper ar obs://windows:mingw:win64 mingw64 - $ sudo zypper ar obs://home:PerryWerneck:pw3270 pw3270 - $ sudo zypper ref + git clone https://github.com/PerryWerneck/pw3270.git ``` -2. Run the build script +2. Add obs repositories ```shell - $ wget https://github.com/PerryWerneck/pw3270/blob/master/win/pack.sh - $ ./pack.sh --pre-reqs + ./win/bundle.cross --install-repositories + ``` + +3. Install required packages + + ```shell + ./win/bundle.cross --install-requires + ``` + +4. Build NSI installer + + ```shell + ./win/bundle.cross --nsi ``` ### Windows native with MSYS2 @@ -62,24 +70,23 @@ Alternative windows installers for stable and unstable versions are already avai 2. Install required packages ```shell - $ pacman -S mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape + pacman -S mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape ``` 2. Get pw3270 sources from git ``` - $ git clone https://github.com/PerryWerneck/pw3270.git ./pw3270 + git clone https://github.com/PerryWerneck/pw3270.git ./pw3270 ``` 3. Build library using the mingw shell ``` - $ cd pw3270 - $ ./autogen.sh - $ make all + cd pw3270 + ./autogen.sh + make all ``` - ## Building for macOS ### Using homebrew @@ -102,7 +109,7 @@ Alternative windows installers for stable and unstable versions are already avai 4. Create app bundle ```shell - $ cd macos + $ cd mac $ ./bundle ```` diff --git a/win/bundle.gtk3 b/win/bundle.gtk3 index 22ab47e2..6e443b22 100644 --- a/win/bundle.gtk3 +++ b/win/bundle.gtk3 @@ -28,7 +28,7 @@ # Load bundle functions . "$(dirname $(readlink -f "${0}"))/bundle.common" -pkg-config --exists gtk+-3.0 +${PKG_CONFIG} --exists gtk+-3.0 if [ "$?" == "0" ]; then GTK_PREFIX=$(${PKG_CONFIG} --variable=prefix gtk+-3.0) GTK_BINARY_VERSION=$(${PKG_CONFIG} --variable=gtk_binary_version gtk+-3.0) From ef16611d8399115e5a35d2e728ff8cc1fdf694aa Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 25 Jun 2024 08:04:47 -0300 Subject: [PATCH 185/186] Updating metainfo according documentation on https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/#metainfo-translations --- branding/metainfo.xml.in | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/branding/metainfo.xml.in b/branding/metainfo.xml.in index 15fd4052..52b26e64 100644 --- a/branding/metainfo.xml.in +++ b/branding/metainfo.xml.in @@ -34,14 +34,11 @@

GTK Based 3270 terminal emulator

+

Emulador de terminal 3270 baseado em GTK-3

pw3270 is a modern, GTK-based, completely free tn3270 emulator.

+

@PRODUCT_NAME@ é um emulador tn3270 moderno, baseado em GTK e completamente livre.

Created originally for Banco do Brasil, it's now an official Brazilian Government Public Software project, and is used worldwide.

-
- - -

Emulador de terminal 3270 baseado em GTK-3

-

@PRODUCT_NAME@ é um emulador tn3270 moderno, baseado em GTK e completamente livre.

-

Criado originalmente para o Banco do Brasil, agora é um projeto de software público do governo brasileiro usado em todo o mundo.

+

Criado originalmente para o Banco do Brasil, agora é um projeto de software público do governo brasileiro usado em todo o mundo.

https://github.com/PerryWerneck/pw3270 From fea47d4ea4e0c5b7cbad574be1bc2d4fb6ab7127 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Sat, 17 Aug 2024 13:07:01 -0300 Subject: [PATCH 186/186] Trying to re-enable codeql. --- .github/workflows/codeql.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index cf551edd..5f774ce0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -4,6 +4,7 @@ on: push: branches: - develop + - master pull_request: branches: - master