perrywerneck / lib3270 Goto Github PK
View Code? Open in Web Editor NEWTN3270 client Library
Home Page: https://softwarepublico.gov.br/social/pw3270/
License: GNU Lesser General Public License v3.0
TN3270 client Library
Home Page: https://softwarepublico.gov.br/social/pw3270/
License: GNU Lesser General Public License v3.0
The "PA" actions should be exported on action table allowing users to change/view the associated keyboard accelerators.
Related to pw3270 issue 8
When connecting to the host via a TN3270S connection, I get the error: "Can't verify. The host certificate doesn't have CRL distribution points". The connection proceeds but without security.
Previous pw3270 versions (I do not know the exact release as I've not been using pw3270 for some time) did connect securely.
Is it really needed to enforce this kind of verification? The IBM RedBook "Implementing PKI Services on z/OS" lists this extension as "not critical".
I would like to be able to connect securely, maybe by instructing pw3270 to ignore the CDP and use the certificate anyway.
The latest version are not setting the correct lrecl on ind$file command.
A clear and concise description of what the problem is, E.g. I'm always frustrated when [...]
A clear and concise description of what you want to happen.
A clear and concise description of any alternative solutions or features you've considered.
Hi!
It's possible to create a telnet server for 3270 terminals with this lib ?
If there is an invalid server address in the session file (in this case, "localhost:9023"), pw3270 shows a connection error, but loops trying to connect to it. There is no way to cancel or change the current session settings (all options are disabled in the dialog).
The application should either stop trying to connect to the invalid address after the first error, or allow the operation to be canceled.
If there is an invalid server address in the session file (in this case, "localhost:9023"), pw3270 shows a connection error, but loops trying to connect to it. There is no way to cancel or change the current session settings (all options are disabled in the dialog).
The application should either stop trying to connect to the invalid address after the first error, or allow the operation to be canceled.
I did run autoupdate
, and gettext
is installed, and I have done brew unlink gettext && brew link gettext --force
.
open-keg>adam@m1-wired:~/git/lib3270$ uname -a
Darwin m1-wired.fsf.net 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:20:05 PDT 2022; root:xnu-8020.140.49~2/RELEASE_ARM64_T8101 arm64
Libintl is clearly installed:
open-keg>adam@m1-wired:~/git/lib3270$ find /opt -name libintl\* -print 2>/dev/null
/opt/homebrew/include/libintl.h
/opt/homebrew/lib/libintl.dylib
/opt/homebrew/lib/libintl.8.dylib
/opt/homebrew/lib/libintl.a
/opt/homebrew/Cellar/emscripten/3.1.22/libexec/system/lib/libc/musl/include/libintl.h
/opt/homebrew/Cellar/gettext/0.21/include/libintl.h
/opt/homebrew/Cellar/gettext/0.21/lib/libintl.dylib
/opt/homebrew/Cellar/gettext/0.21/lib/libintl.8.dylib
/opt/homebrew/Cellar/gettext/0.21/lib/libintl.a
But here's the output from autogen.
open-keg>adam@m1-wired:~/git/lib3270$ ./autogen.sh --prefix="$(brew --cellar)/lib3270/5.4"
glibtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'scripts'.
glibtoolize: linking file 'scripts/ltmain.sh'
glibtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
glibtoolize: linking file 'm4/libtool.m4'
glibtoolize: linking file 'm4/ltoptions.m4'
glibtoolize: linking file 'm4/ltsugar.m4'
glibtoolize: linking file 'm4/ltversion.m4'
glibtoolize: linking file 'm4/lt~obsolete.m4'
glibtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:54: warning: The macro `AC_TRY_LINK' is obsolete.
configure.ac:54: You should run autoupdate.
./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/iconv.m4:22: AM_ICONV_LINK is expanded from...
m4/iconv.m4:77: AM_ICONV is expanded from...
configure.ac:54: the top level
configure.ac:54: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:54: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
m4/iconv.m4:77: AM_ICONV is expanded from...
configure.ac:54: the top level
checking build system type... aarch64-apple-darwin21.6.0
checking host system type... aarch64-apple-darwin21.6.0
checking how to print strings... printf
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking for a sed that does not truncate output... /opt/homebrew/bin/gsed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786432
checking how to convert aarch64-apple-darwin21.6.0 file names to aarch64-apple-darwin21.6.0 format... func_convert_file_noop
checking how to convert aarch64-apple-darwin21.6.0 file names to toolchain format... func_convert_file_noop
checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... yes
checking for gcc option to produce PIC... -fno-common -DPIC
checking if gcc PIC flag -fno-common -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin21.6.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for a BSD-compatible install... /opt/homebrew/bin/ginstall -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /opt/homebrew/bin/gmkdir -p
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of gcc... none
checking for ld used by GCC... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for shared library run path origin... done
checking for iconv... yes
checking how to link with libiconv... -liconv
checking for iconv declaration...
extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking whether the g++ linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fno-common -DPIC
checking if g++ PIC flag -fno-common -DPIC works... yes
checking if g++ static flag -static works... no
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin21.6.0 dyld
checking how to hardcode library paths into programs... immediate
checking dependency style of g++... none
checking for a sed that does not truncate output... (cached) /opt/homebrew/bin/gsed
checking whether ln -s works... yes
checking for ar... /usr/bin/ar
checking for dlltool... no
checking for strip... /usr/bin/strip
checking for ar... (cached) /usr/bin/ar
checking for windres... no
checking for pkg-config... /opt/homebrew/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for xgettext... /opt/homebrew/bin/xgettext
checking for msgcat... /opt/homebrew/bin/msgcat
checking for msginit... /opt/homebrew/bin/msginit
checking for msgmerge... /opt/homebrew/bin/msgmerge
checking for msgfmt... /opt/homebrew/bin/msgfmt
checking for valgrind... no
checking for rsvg-convert... /opt/homebrew/bin/rsvg-convert
checking for convert... /opt/homebrew/bin/convert
checking for optipng... no
checking for libintl.h... no
configure: error: Can't find required file libintl.h
When open pw3270 application on windows 10 it shows "crypto/fips/fips.c:597:OpenSSL internal error FATAL FIPS SELFTEST FAILURE". Linux version seens to be ok.
Hi there! Since the last remodeling I can't select using the keyboard. Is that a bug or just design? If so can you work on that? I rarely touch the pointer and would like to stay that way.
Package: pw3270
Version: 5.3-0
APT-Sources: http://download.opensuse.org/repositories/home:/PerryWerneck:/pw3270/xUbuntu_19.10 Packages
Lib3270 segfaults when the application is closed while connecting. The lib3270 cleanup procedure should wait for background thread.
#0 0x00007f2f6097ff7a in net_disconnect (hSession=0x555d59937810) at src/core/telnet.c:492 #1 0x00007f2f6098bb84 in host_disconnect (hSession=<optimized out>, hSession@entry=0x555d59937810, failed=failed@entry=0) at src/core/host.c:126 #2 0x00007f2f6098bc27 in lib3270_disconnect (h=h@entry=0x555d59937810) at src/core/host.c:108 #3 0x00007f2f6099d6c7 in net_reconnect (hSession=0x555d59937810, seconds=<optimized out>) at src/core/linux/connect.c:295 #4 0x00007f2f60bdead8 in () at /usr/lib64/libv3270.so.5.4 #5 0x00007f2f60e73e47 in () at /usr/lib64/libglib-2.0.so.0 #6 0x00007f2f60e77464 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 #7 0x00007f2f60e77800 in () at /usr/lib64/libglib-2.0.so.0 #8 0x00007f2f60e7788c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #9 0x00007f2f6168484d in g_application_run () at /usr/lib64/libgio-2.0.so.0 #10 0x0000555d58d57bd8 in main (argc=1, argv=0x7ffefb791998) at src/main/main.c:115
Following the build instructions for macOS fails on Big Sur and Monterey (at least).
The initial problem in autogen.sh
is that libtoolize
needs to be glibtoolize
to use the Homebrew-installed version.
Once that is fixed, the build fails in the autoconf
stage with configure: error: libssl not present.
Hello Perry,
I'm still in trouble with building pw3270.
Currently I'm stuck with building lib3270 via HomeBrew:
❯ export PKG_CONFIG_PATH="$(brew --prefix curl)/lib/pkgconfig:$(brew --prefix openssl)/lib/pkgconfig"
./autogen.sh --prefix="$(brew --cellar)/lib3270/5.4"
...
...
checking for libintl.h... no
configure: error: Can't find required file libintl.h
Regarding #33 I then tried
❯ ./configure "LDFLAGS=$LDFLAGS -L$(brew --prefix gettext)/lib" "CFLAGS=-I$(brew --prefix gettext)/include"
...
...
config.status: executing depfiles commands
Went fine, and now I started the build;
❯ make all
...
...
/Users/mike/repos/lib3270/.obj/macos/Release/./src/core/ansi.o ...
Undefined symbols for architecture arm64:
"_iconv", referenced from:
_convert in iconv.o
(maybe you meant: _lib3270_iconv_from_host, _lib3270_iconv_free , _lib3270_iconv_new , _lib3270_iconv_to_host )
"_iconv_close", referenced from:
_lib3270_iconv_free in iconv.o
"_iconv_open", referenced from:
_lib3270_iconv_new in iconv.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/Users/mike/repos/lib3270/.bin/Release/lib3270-5.4.dylib] Error 1
Some checks:
❯ ./configure "LDFLAGS=$LDFLAGS -L$(brew --prefix gettext)/lib" "CFLAGS=-I$(brew --prefix gettext)/include" | grep iconv
checking for iconv... yes
checking how to link with libiconv... -liconv
checking for iconv declaration...
extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
❯ find /opt -name "libiconv.*" -print
/opt/homebrew/Cellar/libiconv/1.17/.brew/libiconv.rb
/opt/homebrew/Cellar/libiconv/1.17/lib/libiconv.2.dylib
/opt/homebrew/Cellar/libiconv/1.17/lib/libiconv.dylib
/opt/homebrew/Cellar/libiconv/1.17/lib/libiconv.a
❯ nm $(brew --prefix libiconv)/lib/libiconv.a | grep iconv
iconv.o:
0000000000100d08 D __libiconv_version
00000000000020d4 T _iconv_canonicalize
00000000000018d4 T _libiconv
00000000000018f8 T _libiconv_close
0000000000000788 T _libiconv_open
0000000000001910 T _libiconv_open_into
0000000000001d24 T _libiconvctl
0000000000001e58 T _libiconvlist
00000000000000c8 T _libiconv_relocate
00000000000001ac T _libiconv_relocate2
0000000000000000 T _libiconv_set_relocation_prefix
Any hint is welcome.
Thanks, Mike
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.