Giter Site home page Giter Site logo

perrywerneck / pw3270 Goto Github PK

View Code? Open in Web Editor NEW
60.0 11.0 12.0 5.18 MB

3270 Emulator for gtk

Home Page: https://softwarepublico.gov.br/social/pw3270/

License: GNU Lesser General Public License v3.0

Makefile 4.05% C 80.46% Shell 12.77% M4 2.67% CSS 0.05%
3270 tn3270 terminal gtk linux-app linux-desktop gnome gtk3

pw3270's Introduction

GTK Based 3270 terminal emulator

Screenshot

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.

License: GPL v3 CodeQL build result

Installation

You can download installation package for supported linux distributions in Open Build Service, the flatpak version from flathub and windows installer from Releases.

Download from open build service Download from flathub Download from github releases

Alternative windows installers for stable and unstable versions are already available on Dropbox and one drive.

Get from dropbox Get from Microsoft One Drive

Building for Linux

```shell
$ 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

    $ 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
  2. Run the build script

    $ wget https://github.com/PerryWerneck/pw3270/blob/master/win/pack.sh
    $ ./pack.sh --pre-reqs

Windows native with MSYS2

  1. Build and install libv3270

  2. Install required packages

    $ pacman -S mingw-w64-x86_64-imagemagick mingw-w64-x86_64-optipng mingw-w64-x86_64-inkscape
  3. Get pw3270 sources from git

    $ git clone https://github.com/PerryWerneck/pw3270.git ./pw3270
    
  4. Build library using the mingw shell

    $ cd pw3270
    $ ./autogen.sh
    $ make all
    

Building for macOS

Using homebrew

  1. Build and install libv3270

  2. Install additional dependencies

    $ brew install adwaita-icon-theme imagemagick
  3. Configure and build

    $ ./autogen.sh
    $ make all
  4. Create app bundle

    $ cd macos
    $ ./bundle

Using jhbuild

  1. Install jhbuild and GTK-OSX

    https://wiki.gnome.org/Projects/GTK/OSX/Building

  2. build

    jhbuild --moduleset=https://raw.githubusercontent.com/PerryWerneck/pw3270/master/mac/pw3270.modules build pw3270

pw3270's People

Contributors

andrebreves avatar bmwiedemann avatar davide125 avatar perrywerneck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pw3270's Issues

When calling pw3270, the following error occurs: System-Linux:~$ pw3270 GLib-GIO _g_io_module_get_default: Found default implementation dconf (DConfSettingsBackend) for ‘gsettings-backend’ gtk Loading plugins from /usr/lib/pw3270-plugins GLib unsetenv() is not thread-safe and should not be used after threads are created GLib-GIO _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’ gtk Adding '/usr/share/pw3270/icons' on icon search path lib3270 Invalid revision 20210928 when setting callback table gtk Tabela de callbacks inválida, a revisão 20220412 da lib3270 não pode ser usada (esperando a revisão 20210928) Trace/breakpoint trap (imagem do núcleo gravada)

Describe the Bug

Error message on application startup:
Tabela de callbacks inválida, a revisão 20220412 da lib3270 não pode ser usada (esperando a revisão 20210928) Trace/breakpoint trap (imagem do núcleo gravada)

Expected Behavior

Normal application start

System

Please complete the following information:

  • OS Name and version XUbuntu 20.04
  • PW3270 version and architecture NOT-INFORMED

Arch Linux install failed

Describe the Bug

I tried to install following the tutorials described on the site:
https://software.opensuse.org/download.html?project=home%3APerryWerneck%3Apw3270&package=pw3270

But, i have this error:

error: failed to commit transaction (conflicting files)
pw3270: /usr/share/glib-2.0/schemas/gschemas.compiled exists in filesystem
Errors occurred, no packages were upgraded.
 -> error installing repo packages
sudo pacman -U pw3270-5.4+git20220111-0-x86_64.pkg.tar.zst

i have the same problem.

When i try install by Building for Linux:
i have this problem:

make: *** No rule to make target 'all'.  Stop.

Expected Behavior

some installation work

System

Please complete the following information:

  • Arch Linux with Kernel 5.18.2-arch1-1
  • pw3270-5.4+git20220111-0-x86_64

Fails to build on macOS -- missing pw3270_build_data_path()

Describe the Bug

Fails to build on macOS (13, Ventura) with linker error:

/Users/bill/tools/pw3270/.obj/pw3270/Release/./src/objects/actions/abstract.o ...
Undefined symbols for architecture x86_64:
  "_pw3270_build_data_path", referenced from:
      _startup in application.o
ld: symbol(s) not found for architecture x86_64

Reference is made to a function that exists in the linux and windows specific tools.c but it is missing for macOS.

bill@Bills-Mac pw3270 % grep -r pw3270_build_data_path *        
src/include/pw3270.h:gchar * pw3270_build_data_path(const char *path);
src/objects/application/application.c:		g_autofree gchar *keypad_path = pw3270_build_data_path("keypad");
src/main/linux/tools.c: gchar * pw3270_build_data_path(const char *name) {
src/main/windows/tools.c: gchar * pw3270_build_data_path(const char *name) {

Expected Behavior

Expected to compile and link properly. :-)

System

Please complete the following information:

  • OS Name and version: macOS 13.6.4 Ventura, x86-64
  • PW3270 version and architecture: git checkout d35c7f2

LICENSE file vs source comments licensing information conflicting

Describe the Bug

The LICENSE file (and LICENSA file) in the root of this repository contain the text of the LGPL 3.0 license while the comments in (e.g.) main.c and other files indicate the source code is actually under GPL 2.0-only (explicitly excluding later revisions such as 3.0 via an "or later" clause). Likewise the license badge in the README.md file indicate the code is GPL 3.0, not the 2.0-only indicated in the source code comments, and not LGPL 3.0 indicated by the LICENSE file.

Could you clarify which of the three licenses is correct for the whole project?

I still have the error: `Fails to build on macOS -- missing pw3270_build_data_path()`

I still have the error:

/Users/bnovak/git/pw3270/.obj/pw3270/Release/./src/objects/actions/abstract.o ...
Undefined symbols for architecture x86_64:
  "_pw3270_build_data_path", referenced from:
      _startup in application.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/Users/bnovak/git/pw3270/.bin/Release/pw3270] Error 1

Monterey on Macbook Air 2017,"macos" branch.

Originally posted by @spoofy-zz in #58 (comment)

Windows version doesn't store current session settings

Describe the Bug

The windows version doesn't store the customized session settings.

Expected Behavior

When the uses changes the session settings it's expected to keep the settings when application stops.

System

Please complete the following information:

  • Windows
  • PW3270 version 5.3-20.8.20

Saving/Opening configuration files

It would be nice to

  1. Define a file extension for the PW3270 configuration files for those who need to access multiple 3270 instances/boxes
  2. Turning saving/opening those configuration files more seemingless, if possible associate them with file explorers

Compile Error on Linux

I get the following error compiling this application on 5.3.0-46-generic #38~18.04.1-Ubuntu SMP:

...
make[1]: Entering directory '/home/garlyn/mvs/download/pw3270/pw3270/src/libpw3270cpp'
session.cc ...
exception.cc ...
local.cc ...
remote.cc ...
remote.cc: In member function ‘virtual void h3270::remote::set_unlock_delay(short unsigned int)’:
remote.cc:1634:4: error: ‘set_intval’ was not declared in this scope; did you mean ‘query_intval’?
1634 | set_intval(HLLAPI_PACKET_SET_UNLOCK_DELAY,(int) ms);
| ^~~~~~~~~~
| query_intval
Makefile:108: recipe for target '.obj/Release/remote.o' failed
make[1]: *** [.obj/Release/remote.o] Error 1
make[1]: Leaving directory '/home/garlyn/mvs/download/pw3270/pw3270/src/libpw3270cpp'
Makefile:88: recipe for target '/home/garlyn/mvs/download/pw3270/pw3270/.bin/Release/libpw3270cpp.a' failed

Please let me know if you need further.

Gareth

Building on M1 Mac ...

Describe the Bug

I'm having trouble building the App on an M1 Mac !

Expected Behavior

A working build :-)

System

MacOS 12.2
pw3270 - either master or macos branch


Hi, I am trying to build the app but am hitting problems in the build. I'm following the simple instructions.

I have already built and installed lib3270 and libv3270 seemingly successfully.

First, the link step of 'make all' fails because it cannot locate the lib320 / libv3270 libraries. I have fixed this by adding the paths into the Makefile, and end up with a build.

The real issue comes when trying to use "bundle" - first there are a bunch of warnings related to signatures being invalidated due to changes being made to the file - for example:

/Library/Developer/CommandLineTools/usr/bin/install_name_tool: warning: changes being made to the file will invalidate the code signature in: /Users/j/Projects/pw3270/pw3270/macos/pw3270.app/Contents/Frameworks/im-viqr.so

These warnings seem to be harmless as far as the bundling is concerned ...

There are also errors related to some libraries not being found ...

My question is: how should I build the app? I have homebrew so do not want to go down the jhbuild route if possible.

Should I be using master or the macos branch to build?

Thanks!

Macro support

The Problem

I have used other terminals that supported macros for automatically pressing a sequence of keys which is useful for automating repetitive operations. Also very useful as a way of "auto-login".

The Solution

A screen where it would be possible to enter in a textbox a sequence of operations, and where it would allow for the macro to be activated automatically at startup. For example, one could enter the text:

Key(A)
Key(Enter)
Key(M)
Key(Y)
Key(L)
Key(O)
Key(G)
Key(I)
Key(N)
Key(Enter)
WaitForScreenLoad()
Key(Enter)

And when the terminal connects, this sequence of actions would be performed automatically. One example of an open source terminal emulator that has this feature is wx3270.

The Alternatives

Maybe there is a way already to do macros using a script language. But I think that having it implemented in the program itself would be very useful.

Binary install from Arch repository fails because of invalid PGP signature

Describe the Bug

Followed steps for adding the repository and the key using pacman without error. When installing the pw3270 package, the repo and the package are successfully downloaded, but the install fails when comparing the PGP signature

System

  • Arch on Intel - most recently updated today (2023/01/12)
  • pw3270-5.4+git20221003-0-x86_64

error: pw3270: signature from "home:PerryWerneck OBS Project home:[email protected]" is invalid
:: File /var/cache/pacman/pkg/pw3270-5.4+git20221003-0-x86_64.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).

No Right Bar on Arch Linux

The Right Bar (extra keys) doesn't show on Arch Linux builds from OpenSuse server.

They show into Ubuntu build in the same repository as soon you install pw3270-keypads. This doesn't shows on Arch Linux

Can't get pw3270 build on MacOS

Describe the Bug

Tried building pw3270 as documented.
Required libraries are build using their documentation, too.

~/git/pw3270 master*
❯ brew list | grep 3270
lib3270
libv3270

~/git/pw3270 master*
❯ ./autogen.sh
...
configure: creating ./config.status
...
config.status: executing depfiles commands

~/git/pw3270 master* 
❯ make all
...
src/objects/toolbar/actions.c:91:53: warning: result of comparison against a string literal is unspecified (use an explicit string comparison function instead)
      [-Wstring-compare]
                        if(action && g_action_get_parameter_type(action) == G_VARIANT_TYPE_STRING) {
                                                                         ^  ~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
...
/Users/mike/git/pw3270/.obj/pw3270/Release/./src/objects/actions/abstract.o ...
abstract.pot ...
button.pot ...
clipboard.pot ...
...
linux.ui.pot ...
/usr/local/bin/xgettext: Warnung: Ersatzweise wird die ITS-Regeldatei »/usr/local/Cellar/gettext/0.21.1/share/gettext-0.21.1/its/gtkbuilder.its« verwendet; diese könnte nicht synchron zum Original sein
macos.ui.pot ...
/usr/local/bin/xgettext: Warnung: Ersatzweise wird die ITS-Regeldatei »/usr/local/Cellar/gettext/0.21.1/share/gettext-0.21.1/its/gtkbuilder.its« verwendet; diese könnte nicht synchron zum Original sein
windows.ui.pot ...
/usr/local/bin/xgettext: Warnung: Ersatzweise wird die ITS-Regeldatei »/usr/local/Cellar/gettext/0.21.1/share/gettext-0.21.1/its/gtkbuilder.its« verwendet; diese könnte nicht synchron zum Original sein
pt_BR ...
........................... fertig.
pt_BR.po ...
267 translated messages, 1 untranslated message.

~/git/pw3270 master*cd macos

~/git/pw3270/macos master*
❯ ./bundle
Creating temporary directory
Bundling GLib schemas
cp: ../schemas/linux/*.xml: No such file or directory
Removing temporary directory "/var/folders/82/ktfkbznj3730hq39fdty247c0000gn/T/tmp.BDZVNnc0"

~/git/pw3270/macos master*
❯ ll
total 32
-rw-r--r--  1 mike  staff   587B  8 Nov 17:08 Info.plist
-rwxr-xr-x  1 mike  staff   7,1K  8 Nov 17:08 bundle
-rwxr-xr-x  1 mike  staff   2,5K  8 Nov 17:08 launcher.sh
drwxr-xr-x  3 mike  staff    96B  8 Nov 18:26 pw3270.app

~/git/pw3270/macos master*
❯ open pw3270.app
The application cannot be opened because its executable is missing.

~/git/pw3270/macos master*

Expected Behavior

Bundle got build.

System

MacOS 10.5

Documentations Needed

There's a need on documentation, especially on how to map 3270 keys on PC keyboard (PA1, Reset, Clear) and other configurations.

Add Next/Previous tab actions

The Problem

It would be easy to use accelerators to navigate from terminal tab.

The Solution

Ctrl-TAB for next tab and Shift-Ctrl-TAB for previous tab.

After update the metainfo file the application doesn't show on gnome-software

Describe the Bug

After the last metainfo update the application os not visible on gnome software; when run it with verbose and select "installed application" the console shows "system///desktop/br.com.bb.pw3270.unstable/* is not an actual app"

Expected Behavior

Shows pw3270 in the installed apps.

System

  • OS Name and version: OpenSUSE 15.2
  • PW3270 version and architecture [e.g. pw3270-unstable-5.3+5.4+git20210323-lp152.14.1.x86_64]

GLib-GIO: Settings schema 'br.com.bb.pw3270' is not installed

I built the version available in the Release section of this project.

After make install when I try to open the app I receive the following error message:

GLib-GIO: Settings schema 'br.com.bb.pw3270' is not installed
[1] 35433 trace trap (core dumped) pw3270

I built the software in Fedora 34 Workstation.

Could you help me with this?

Add option 'hide' in the toolbar context menu.

The Problem

There's no option to 'hide' toolbar in the context menu.

The Solution

Add a 'Hide toolbar' option in the toolbar context menu.

The Alternatives

Use the 'view' menu from terminal context menu to show/hide toolbar.

Console - Terminal Type = IBM-3278-2-E

Bom dia Perry Werneck, uma duvida?

Usamos o TN3270 Plus aqui só para a console, dentro dele tem uma configuração:

Telnet Terminal Type = IBM-3278-2-E

No PW3270 existe algo para habilitar tipo de configuração para a gente conseguir conectar a console?

Pesquisei no help do PW3270, algum desses parametros altera essa opção?

`Usage:
pw3270.exe [OPTION…] - 3270 Emulator for Gtk

Help Options:
-?, --help Show help options

Application Options:
-a, --appname=pw3270 Application name
-d, --datadir Path to application data files
-s, --session=pw3270 Session name
-h, --host Host to connect
-c, --colors=16 Set reported colors (8/16)
-t, --systype=S390 Host system type
-S, --toggleset Set toggles ON
-R, --togglereset Set toggles OFF
-C, --charset Set host charset
-m, --remap Remap charset from xml file
-M, --model The model of 3270 display to be emulated
-D, --autodisconnect Minutes for auto-disconnect
-P, --pluginpath Path for plugin files
-T, --tracefile Set trace filename
-L, --log Log to file`

Simplify usage of lockdown options on windows.

The Problem

Changing of the lockdown options is too complex in windows due to use of 'gsettings'.

The Solution

Adjust the 'lockdown' keys out of gettings in windows and use regular registry keys at Software@PRODUCT_NAME@\application

Support for standard mod6 (62x160)

The Problem

I can't find mod6 in the setup list. 62x160 is a standard that is in both HOD and PCOMM.

The Solution

Support for mod6.

The Alternatives

None that I've found.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.