wrljet / hercules-helper Goto Github PK
View Code? Open in Web Editor NEWUtility scripts to help with building and deploying the Hercules emulator
License: MIT License
Utility scripts to help with building and deploying the Hercules emulator
License: MIT License
Wget is missed and must be added to the hyperion-prepare.sh
Hit return to continue (Step: Build Regina Rexx [used for test scripts])
/home/tester/hercules-helper/hyperion-buildall.sh: line 241: wget: command not found
Tried:
~/hercules-helper/hercules-buildall.sh auto --flavor=aethra --homebrew
and
~/hercules-helper/hercules-buildall.sh auto --flavor=sdl-hyperion --homebrew
After trying my mvs_tk5 which use v4.3 and hence not related as it run under an integrated hercelus; still I suddenly found out there might be a hercules installed which I cannot recall I have done anything (!) and further I am not sure it will affect:
% hercules --version
HHC01413I Hercules version 4.7.0.0-SDL
HHC01414I (C) Copyright 1999-2024 by Roger Bowler, Jan Jaeger, and others
HHC01417I ** The SDL 4.x Hyperion version of Hercules **
HHC01415I Build date: Mar 10 2024 at 04:25:45
% which hercules
/opt/homebrew/bin/hercules
But the error message are all about Regina REXX which cannot compile due to integer format issue ???
[[ note: ]] sudo required to install Regina REXX in the default system directories
gcc -c -DNDEBUG -Wno-error=implicit-function-declaration -Wno-incompatible-function-pointer-types -O -O3 -Wall -DREGINA_SHARE_DIRECTORY=\"/usr/local/share/regina\" -funsigned-char -DREGINA_VERSION_DATE=\""31 Dec 2011"\" -DREGINA_VERSION_MAJOR=\"3\" -DREGINA_VERSION_MINOR=\"6\" -DREGINA_VERSION_SUPP=\"\" -DHAVE_CONFIG_H -I. -I. -I./contrib -o regscreenux.o -DDYNAMIC -fno-common ./regutil/regscreenux.c
./regutil/regscreenux.c:80:7: warning: call to undeclared function 'tgetent'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
tgetent(tcent, getenv("TERM"));
^
./regutil/regscreenux.c:93:13: warning: call to undeclared function 'tgetstr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
clr = tgetstr("cl", &clrbuf);
^
./regutil/regscreenux.c:93:11: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
clr = tgetstr("cl", &clrbuf);
^ ~~~~~~~~~~~~~~~~~~~~~~
./regutil/regscreenux.c:130:14: warning: call to undeclared function 'tgetstr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
cpos = tgetstr("cm", &cposbuf);
^
./regutil/regscreenux.c:130:12: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
cpos = tgetstr("cm", &cposbuf);
^ ~~~~~~~~~~~~~~~~~~~~~~~
./regutil/regscreenux.c:144:13: warning: call to undeclared function 'tgoto'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
fputs(tgoto(cpos, x, y), stdout);
^
./regutil/regscreenux.c:144:13: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const char *' [-Wint-conversion]
fputs(tgoto(cpos, x, y), stdout);
^~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdio.h:149:35: note: passing argument to parameter here
int fputs(const char * __restrict, FILE * __restrict) __DARWIN_ALIAS(fputs);
^
./regutil/regscreenux.c:181:16: warning: call to undeclared function 'tgetstr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
pcsson = tgetstr("ve", &css);
^
./regutil/regscreenux.c:181:14: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
pcsson = tgetstr("ve", &css);
^ ~~~~~~~~~~~~~~~~~~~
./regutil/regscreenux.c:182:15: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
pcssoff = tgetstr("vi", &css);
^ ~~~~~~~~~~~~~~~~~~~
./regutil/regscreenux.c:179:13: warning: unused variable 'pcss' [-Wunused-variable]
char *pcss = css;
^
6 warnings and 5 errors generated.
make: *** [regscreenux.o] Error 1
0.03 real 0.01 user 0.01 sys
[[ error: ]] Regina installation failed!
finish() called, exit status = 1
- %
I tried both flavor still the same. I do not know what is regina-rexx. I did find something like this when checking sudo, but I suspect it is download somethings today as all the logs are today:
% sudo ls
Password:
Regina-REXX-3.6 extra-info-2024-04-15.log
Regina-REXX-3.6.tar.gz herc4x
build-commands-2024-04-15.log hercules-buildall-2024-04-15.log
Fails due to not supported as output shows below.
Many thanks.
[mvs@instance-20220209-2032 hyperion]$ ~/hercules-helper/hercules-buildall.sh --auto --flavor=sdl-hyperion
Using logfile: hercules-buildall-2023-09-24.log
Creating build cmds file: /home/mvs/hyperion/build-commands-2023-09-24.log
Creating extra diagnostic info file: /home/mvs/hyperion/extra-info-2023-09-24.log
Script version: /home/mvs/hercules-helper/hercules-buildall.sh: v0.9.14-48-g51297c8-dirty
Config file: /home/mvs/hercules-helper/sdl-hyperion.conf
General Options:
--trace : false
--verbose : true
--prompts : false
--beeps : false
--sudo : false
--askpass : false
--detect-only : false
--no-packages : false
--no-rexx : false
--no-gitclone : false
--no-bldlvlck : false
--no-autogen : true
--no-configure : false
--no-clean : false
--no-make : false
--no-tests : false
--no-install : false
--no-setcap : false
--no-envscript : false
--no-bashrc : false
System information:
uname -a : Linux instance-20220209-2032 5.4.17-2136.323.8.2.el8uek.aarch64 #2 SMP Tue Sep 19 23:56:05 PDT 2023 aarch64 aarch64 aarch64 GNU/Linux
uname -m : aarch64
uname -p : aarch64
uname -s : Linux
System detection:
OS Type : Linux
Machine Arch : aarch64
Memory Total (MB): 23364
Memory Free (MB): 22299
VERSION_ID : ol
VERSION_ID_LIKE : fedora
VERSION_PRETTY : Oracle Linux Server 8.8
VERSION_STR : 8.8
Language : LANG=en_US.UTF-8
Checking for Windows WSL2... nope
Checking for Windows WSL1... nope
Platform Bitness : 64
[[ error: ]] Your system (Oracle Linux Server 8.8) is not (yet) supported!
finish() called, exit status = 1
Modern POWER systems (POWER8 and later) run the ppc64le Linux machine type, not ppc64. detect_bitness() needs a -o "$mach" = "ppc64le"
to detect it as a 64-bit machine. (line 1617 of hyperion-buildall.sh).
(I already had Regina Rexx built and installed on my system, but had to make a similar change (add ppc64le) to its configure script to get it to build 64-bit libraries on the system. If it weren't pre-installed, would hercules-helper have downloaded the source and built it? If so, I guess it would need to patch configure to add ppc64le to end up with 64-bit version of Regina too).
I was trying to run hyperion-buildall.sh --auto --verbose in a docker container based on ubuntu:latest. My machine is aarch64 based which seems to generate a problem. Please have a look at the log extract below:
As part of building the container I create a user called hercules and add enable this user to perform sudo without any password.
When running it I get following error:
config.guess timestamp = 2008-03-12
uname -m = aarch64
uname -r = 5.15.49-linuxkit
uname -s = Linux
uname -v = #1 SMP PREEMPT Tue Sep 13 07:51:32 UTC 2022/usr/bin/uname -p = aarch64
/bin/uname -X =hostinfo =
/bin/universe =
/usr/bin/arch -k =
/bin/arch = aarch64
/usr/bin/oslevel =
/usr/convex/getsysinfo =UNAME_MACHINE = aarch64
UNAME_RELEASE = 5.15.49-linuxkit
UNAME_SYSTEM = Linux
UNAME_VERSION = #1 SMP PREEMPT Tue Sep 13 07:51:32 UTC 2022
configure: error: cannot guess build type; you must specify one
[[ error: ]] configure failed!
finish() called, exit status = 1
Attached are the log files
Thanks in advance for helping
build-commands-2023-04-17.log
hyperion-buildall-2023-04-17.log
I've noticed that while the hercules is compiled wiht -O3, the additional packages (the onces that use CMAKE) are compiled with RelWithDebInfo settings and so with -g -O2.
Can this be fixed pls?
All seems well until the make fails. I have attached the log of the build process. I'm using openSUSE linux.
Hi Bill
just for the fun of teaching myself Docker I am trying to build a Docker-image with Hercules in it.
I use an UBUNTU 20.04 Docker-image to start from.
Here is the Docker-build file:
FROM ubuntu:21.04
RUN apt update && apt install
apt-utils
git
net-tools
wget
sudo -y
RUN useradd -ms /bin/bash ubuntu
USER ubuntu
WORKDIR /home/ubuntu
RUN cd ~
RUN git clone https://github.com/wrljet/hercules-helper.git
RUN mkdir herctest && cd herctest
RUN ~/hercules-helper/hyperion-buildall.sh --auto
Running this file with
Docker build -t hercules .
I get the error:
hostinfo =
/bin/universe =
/usr/bin/arch -k =
/bin/arch = aarch64
/usr/bin/oslevel =
/usr/convex/getsysinfo =
UNAME_MACHINE = aarch64
UNAME_RELEASE = 5.11.0-1015-raspi
UNAME_SYSTEM = Linux
UNAME_VERSION = #16-Ubuntu SMP PREEMPT Wed Jul 14 11:04:58 UTC 2021
configure: error: cannot guess build type; you must specify one[[ error: ]] configure failed!The command '/bin/sh -c ~/hercules-helper/hyperion-buildall.sh --auto' returned �a non-zero code: 1
Do you have any suggestions?
It would be great fun to run Hercules in a Docker image!
Kind regards
Allard
Hi Bill,
I ran into a couple minor issues today with Hercules Helper I wanted to let you know about. Nothing major, but maybe unsettling for someone that hasn't used the tool before.
The "Looking for existing Hercules binaries ... please wait ..." step never completes on my Pi. In looking at the script, there is a find command used to locate prior instances of the Hercules binaries and that apparently doesn't work on the Pi (or at least not on one configured like mine :) ). I started a build and then went off and did something else; after over 20 minutes, this step was still running. I commented out the find command in the script and it ran to completion.
The script refused to add the profile commands to my .bashrc script, even though the previous commands in the script were commented out. I like to keep the old version around until I'm comfortable with the new one; leaving the old statements as comments in my .bashrc makes switching back easier. The helper script used to add them no matter what so maybe checking is a good idea, but only checking for "active" statements would probably be better.
I have included a file (console.log) that shows the commands entered to recreate issue 1 and the output from the failed run. I will also include the log files produced by the script. Note that I renamed the original hercules-buildall.sh script to hercules-buildall.old.sh when I put in my change, so the included log file is named accordingly.
extra-info-2023-06-13.log
hercules-buildall.old-2023-06-13.log
build-commands-2023-06-13.log
console.log
Issue at building the external packages by the 64 bit debug.
System stats:
We have a CentOS system
VERSION_MAJOR : 8
VERSION_MINOR : 2
BUILD_DIR : /home/tester/herctest
PREFIX_DIR : /home/tester/herctest/herc4x
Machine arch : x86_64
gcc : gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
which: no g++ in (/home/tester/.local/bin:/home/tester/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)
g++ presence :
Hit return to continue (Step: Build external packages)
cmdline = extpkgs.sh c d s t
action = BUILD
crypto_repo = "/home/tester/herctest/extpkgs/repos/crypto-0"
decnumber_repo = "/home/tester/herctest/extpkgs/repos/decNumber-0"
softfloat_repo = "/home/tester/herctest/extpkgs/repos/SoftFloat-0"
telnet_repo = "/home/tester/herctest/extpkgs/repos/telnet-0"
install_dir = "/home/tester/herctest/extpkgs/."
cpu = "x86"
crypto ...
64-bit Debug ...
FAILED!
One or more External Packages has FAILED! :(
After i installed "clang" the build process works fine for the external packages.
Hi,
any chance to expand the installation script to use, as alternative to bsh, zsh - since it is now the standard shell with macOS ?
Thanks Trigger2k23
Hi,
i have an issue with your "hyperion-prepare.sh" Script on line 127 and 177 in CentOS.
[root@centos ~]# ./hercules-helper/hyperion-prepare.sh
We have a CentOS system
VERSION_MAJOR : 8.2
./hercules-helper/hyperion-prepare.sh: line 127: [[: 8.2: syntax error: invalid arithmetic operator (error token is ".2")
We have a CentOS system
VERSION_MAJOR = 8.2
./hercules-helper/hyperion-prepare.sh: line 177: [[: 8.2: syntax error: invalid arithmetic operator (error token is ".2")
Done!
My System:
[root@centos ~]# uname --all
Linux centos 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
kind regards
Hit return to continue (Step: configure)
+ ./configure '--enable-optimization=-O3 -march=native' --enable-extpkgs=/home/tester/herctest/extpkgs --prefix=/home/tester/herctest/herc4x --enable-regina-rexx
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking whether make supports the include directive... yes (GNU style)
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 we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking target CPU architecture ... x86
checking target CPU bitness ... 64
configure: Detected GCC equivalent level for gcc : 8
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/home/tester/herctest/sdl4x/hyperion':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
Hi. I need your help.
GNU nano 5.4 /home/pi/hyperion-buildall.log
Using logfile: hyperion-buildall-2023-04-17-1.log
Creating build cmds file: /home/pi/build-commands-2023-04-17-1.log
Script version: /home/pi/hercules-helper/hyperion-buildall.sh: v0.9.14-12-ga374fc1
Config file: /home/pi/hercules-helper/hercules-helper.conf
General Options:
--trace : false
--verbose : true
--prompts : true
--beeps : false
--sudo : false
--askpass : false
--detect-only : false
--no-packages : false
--no-rexx : false
--no-gitclone : false
--no-bldlvlck : false
--no-autogen : true
--no-configure : false
--no-clean : false
--no-make : false
--no-tests : false
--no-install : false
--no-setcap : false
--no-envscript : false
--no-bashrc : false
System information:
uname -a : Linux RPi400 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
uname -m : aarch64
uname -p : unknown
uname -s : Linux
System detection:
OS Type : Linux
Machine Arch : aarch64
Memory Total (MB): 3794
Memory Free (MB): 1271
VERSION_ID : debian
VERSION_ID_LIKE :
VERSION_PRETTY : Debian GNU/Linux 11 (bullseye)
VERSION_STR : 11
OS : debian variant
OS Version : 11
*Language : LANG=sv_SE.UTF-8
Checking for Windows WSL2... nope
Checking for Windows WSL1... nope
Running on Raspberry Pi hardware
Checking for Raspberry Pi... found
Raspberry Pi rev : c03131
CPU count : 4
/home/pi/hercules-helper/hyperion-buildall.sh: line 1048: RPI_REVISIONS[$RPI_REVCODE]: unbound variable
finish() called, exit status = 1
I've been doing builds of Hercules on s390x Unbuntu using hercules-helper and it's been working great. However, since it is so incredibly slow (s390x Unbuntu, not hercules-helper!), it is proving to be a PITA to have to babysit it whenever the --prompts
option is used.
I was thinking it would be nice if hh (hercules-helper) would beep whenever a prompt was issued. This would allow me to not have to closely monitor it for prompts and instead go on to doing something else (rather than have to babysit it). The audible beep would then alert me that it was prompting me for something. (It doesn't have to be a beep. It can be any sound really.)
You could even make the beeping the default with an option to not beep (run silently instead) for those who might not desire it.
I believe such an option would make hh much nicer when used in situations such as mine, where it runs very slow, and might even be a benefit in other situations too where it runs quickly.
What do you think?
Hi Bill,
Thank you for putting this together. It is a life saver for computer illiterates like me. I was able to do a build about a year ago on Windows 10 and was successful. But I tried to build a new one on the same PC and it did not work. After setting the execution-policy to remotesigned, I still got a message from PowerShell it it would not load the Hyperion-Buildall because it is not digitally signed. However, after doing some google searches, I set it to 'unrestricted' and it worked. I thought you may want to mention that in the instructions.
My question now is that if I want to make a modification to one of the .c modules and recompile, how can I do that ? If at all possible.
Best regards,
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for off_t... yes
checking for _LARGEFILE_SOURCE value needed for large files... no
configure: Using External Packages override directory /Users/rvjansen/apps/hercules-helper/herctest/extpkgs
configure: NOTICE: sizeof(__int128_t) >= 16; max CPU engines = 128
checking whether getopt wrapper kludge is necessary... no (forced)
ERROR: macro argument counting broken and cannot use -traditional-cpp option to work around it
configure: error: Please correct the above error(s) and try again
�[1;31m[[ error: ]] �[0mconfigure failed!
I had to hash out this test before compile would start, to no obvious detrimental effect. This step does not fail on the ARM64 machine. Both have the same Clang 13.
Hi Bill,
I am working to build Hercules on my Pi 4. Thanks for your script! I started out using Professor Freland's process until I ran into problems with it, your script makes this all much simpler. However, I ran into a couple minor issues and a problem I'd like to report.
Issue 1: This is just a minor documentation issue in your readme file. Where you show the "hyperion-buildall.sh" commands, you prefix them with a tilde, "~". Wouldn't it be better to use ".."? In my case, my hercules-helper folder is not in my home directory (/home/jeff), but a level lower (/home/jeff/Hercules/hercules-helper). When I run the commands with ".." from the herctest directory the scripts appear to run fine (well, up to the error listed below).
The other issue I ran into was in they hyperion-buildall.sh script. I had a network issue that caused the the git clones to fail and the script did not detect the failure, instead prompting me to move forward into the "bldlvlck" step.
I have included the log for you to see what I mean and maybe find a way to capture the errors, if possible.
The problem I encountered is that when I try to build hercules, using either "--verbose --prompts" or "--auto", the script fails with the following errors trying to find the rexxsaa.h file. FYI, I did a "find / -name rexxsaa.h" in an attempt to manually find the file with no luck either. REXX appears to work with no errors, though I don't use it, so my simplistic test didn't do much (say 'hello').
"Check REXX and compiler files" step:
Step: Check REXX and compiler files: Hit return to continue
REXX presence : /usr/bin/rexx
Checking for Regina-REXX...
Found REXX : REXX-Regina_3.6 5.00 31 Dec 2011
Regina version : 3.6
cc_status = 1
[[ error: ]] rexxsaa.h is not found in cc search path
++ :1:10: fatal error: rexxsaa.h: No such file or directory
#include "rexxsaa.h"
Checking for ooRexx... nope
Found REXX, but not ooRexx
"Configure" step:
ERROR: Regina Rexx support requested but rexxsaa.h is not available
configure: error: Please correct the above error(s) and try again
[[ error: ]] configure failed!
At this point the script stops running.
I have included log-2 (buildall with verbose and prompts) and log-3 (buildall with auto) for your review. FYI, I have saved all 3 herctest directories that relate to the submitted log files, in case we need to dig into something a little deeper.
Note: I don't need REXX, so if there is an option to turn it off that would be fine for me, but for other users of your script we should probably figure out why this is failing.
My system is:
jeff@Pi4:~ $ uname -a
Linux Pi4.Snyder.ORG 5.10.60-v7l+ #1449 SMP Wed Aug 25 15:00:44 BST 2021 armv7l GNU/Linux
jeff@Pi4:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Please let me know if I can provide any additional information. Thanks!
After downloading a fresh copy of hercules-helper, I ran the recommended command:
~/hercules-helper/hyperion-buildall.sh --verbose --prompts
make check failed 1 test. Attached is the build-commands-2021-11-01.log.
Rick
Hello
thanks for your great tool. I tried running it on my Android phone
Samsung has an ubuntu-ish Linux on their phone. This is the kernel:
$ uname -a
Linux localhost 4.14.113-21644994 #1 SMP PREEMPT Fri Jun 18 16:26:54 KST 2021 aarch64 Android
I get the following error when building:
Using logfile hyperion-buildall-2021-07-26-1.log
script version: ./hyperion-buildall.sh: v0.9.6-14-g2d84799
Config file: ./hercules-helper.conf
General Options:
--trace : false
--verbose : true
--prompts : false
--sudo : false
--detect-only : false
--no-packages : false
--no-rexx : false
--no-gitclone : false
--no-bldlvlck : false
--no-autogen : true
--no-configure : false
--no-clean : false
--no-make : false
--no-tests : false
--no-install : false
--no-setcap : false
--no-envscript : false
--no-bashrc : false
System information:
uname -a : Linux localhost 4.14.113-21644994 #1 SMP PREEMPT Fri Jun 18 16:26:54 KST 2021 aarch64 Android
uname -m : aarch64
uname -p : unknown
uname -s : Linux
System detection:
OS Type : Linux
Machine Arch : aarch64
awk: fatal: cannot open file /etc/os-release' for reading (No such file or directory) awk: fatal: cannot open file
/etc/os-release' for reading (No such file or directory)
awk: fatal: cannot open file /etc/os-release' for reading (No such file or directory) awk: fatal: cannot open file
/etc/os-release' for reading (No such file or directory)
Memory Total (MB): 7423
Memory Free (MB): 450
VERSION_ID :
VERSION_ID_LIKE :
VERSION_PRETTY :
VERSION_STR :
Language : LANG=en_US.UTF-8
Checking for Windows WSL2... nope
Checking for Windows WSL1... ./hyperion-buildall.sh: line 1024: /proc/version: Permission denied
nope
Checking for Raspberry Pi... nope
Raspberry Pi rev :
CPU count : 8
./hyperion-buildall.sh: line 758: RPI_REVISIONS: bad array subscript
./hyperion-buildall.sh: line 758: RPI_REVISIONS[$RPI_REVCODE]: unbound variable
older versions of Macos are still used by Hercules folks because x3270 can't be easily built on 64bit-only version of Macos like Big Sur etc.
In this case, I am using High Sierra, but the tool is not able to recognize High Sierra and assumes it's Mojave.
thanks a lot!
M
20:31:46~/herctest ~/hercules-helper/hyperion-buildall.sh --auto
/Users/moshe/hercules-helper/hyperion-buildall.sh: line 208: shopt: globstar: invalid shell option name
/Users/moshe/hercules-helper/hyperion-buildall.sh: line 770: syntax error in conditional expression: unexpected token (' /Users/moshe/hercules-helper/hyperion-buildall.sh: line 770: syntax error near
*@(M'
/Users/moshe/hercules-helper/hyperion-buildall.sh: line 770: ` if [[ "$(< /proc/version)" == @(Microsoft|WSL) ]]; then'
Hi Bill,
A few days ago, Fish committed a fix for a problem affecting SIE functionality in cpu.c that I wanted to test (commit e24c303, on 10/10). On an Ubuntu system that did not have any Hercules installed, I downloaded the Hercules helper repository and ran hyperion-buildall. Unfortunately, it is currently configured to use a wrljet fork of SDL-Hercules instead of the master SDL version, so I did not get that fix included.
I don't know if the issue you reference in the configuration file has been resolved yet, but I was able to work around this by pointing the script back to the main repository and build it.
hercules-helper.conf (as modified by me):
...
# Temporarily set up to use my fork of SDL-Hercules
# while Fish et. al. straighten out gcc function inlining.
...
# Git repo for SDL-Hercules Hyperion
git_repo_hyperion=https://github.com/SDL-Hercules-390/hyperion.git
# git_repo_hyperion=https://github.com/wrljet/hyperion.git
...
If the gcc issue has not been resolved, would it be possible to bring the fork back into sync with the master repository? Or maybe just put out some kind of warning message about the temporary gcc workaround so users can choose whether or not to use the wrljet fork? Your helper scripts are really convenient and I'd hate to see anybody else get bit by this.
I am running it with hombrew:
08:33:52~/hercules-helper ./hyperion-buildall.sh --homebrew
Bash version < v4
Homebrew is already installed
MacPorts is not installed
Using logfile: hyperion-buildall-2021-08-28-1.log
Creating build cmds file: /Users/moshe/hercules-helper/build-commands-2021-08-28-1.log
Script version: ./hyperion-buildall.sh: v0.9.6-34-g286c960
Config file: ./hercules-helper.conf
General Options:
--trace : false
--verbose : true
--prompts : false
--sudo : false
--homebrew : true
--detect-only : false
--no-packages : false
--no-rexx : false
--no-gitclone : false
--no-bldlvlck : false
--no-autogen : true
--no-configure : false
--no-clean : false
--no-make : false
--no-tests : false
--no-install : false
--no-setcap : false
--no-envscript : false
--no-bashrc : false
System information:
uname -a : Darwin mac13-2.local 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
uname -m : x86_64
uname -p : i386
uname -s : Darwin
System detection:
OS Type : Darwin
Machine Arch : x86_64
VERSION_ID : darwin
VERSION_STR : 10.14.6
VERSION_MAJOR : 10
VERSION_MINOR : 14
VERSION_BUILD : 6
Apple macOS version 10.14.6 (Mojave) found
Search Path : /Users/moshe/Downloads/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/opt/X11/bin
Build tools versions:
autoconf : autoconf (GNU Autoconf) 2.71
automake : automake (GNU automake) 1.16.3
libtool : unknown
m4 : xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
make : xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
compiler : xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
linker : xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Configuration:
OPT_BUILD_DIR : /Users/moshe/hercules-helper
OPT_INSTALL_DIR : /Users/moshe/hercules-helper/herc4x
OPT_REGINA_DIR : Regina-REXX-3.6
OPT_REGINA_TARFILE : Regina-REXX-3.6.tar.gz
OPT_REGINA_URL : http://www.wrljet.com/ibm360/Regina-REXX-3.6.tar.gz
GIT_REPO_HYPERION : https://github.com/wrljet/hyperion.git [default branch]
GIT_REPO_GISTS : https://github.com/SDL-Hercules-390/gists.git [default branch]
GIT_REPO_EXTPKGS : https://github.com/SDL-Hercules-390 [default branch]
Performing Steps:
run : Check for required system packages
run : Build Regina REXX
run : Git clone Hercules and external packages
skip : Run bldlvlck
run : Build Hercules external packages
skip : Run autogen
run : Run configure
run : Run make clean
run : Run make (compile and link)
run : Run make check
run : Run make install
run : setcap executables
run : Create script to set environment variables
run : Add setting environment variables from .bashrc
Step: Check for required packages:
[[ note: ]] Note: your sudo password may be requested
Required packages:
wget autoconf automake libtool cmake gsed
Checking for package: gsed
package: gsed is already installed
Step: Check REXX and compiler files:
REXX presence : /usr/local/bin/rexx
Checking for Regina-REXX...
Found REXX : REXX-Regina_3.9.3 5.00 5 Oct 2019 (64 bit)
Regina version : 3.9
cc_status = 1
[[ error: ]] rexxsaa.h is not found in cc search path
++
Checking for ooRexx... nope
Found REXX, but not ooRexx
CC : cc
CFLAGS :
CPPFLAGS :
LDFLAGS :
gcc presence : /usr/bin/gcc
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
cc :
g++ presence : /usr/bin/g++
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
looking for files ... please wait ...
cc1 presence : skipped on macOS
cc1plus presence : skipped on macOS
Step: git clone all required repos:
git clone https://github.com/wrljet/hyperion.git
Cloning into 'hyperion'...
^[[B^[[A
Cloning gists / extpkgs from https://github.com/SDL-Hercules-390/gists.git
git clone https://github.com/SDL-Hercules-390/gists.git
Cloning into 'gists'...
Step: Prepare and build extpkgs:
Defaulting to x86 machine type in extpkgs.sh.ini
cmdline = extpkgs.sh c d s t
action = BUILD
crypto_repo = "/Users/moshe/hercules-helper/extpkgs/repos/crypto-0"
decnumber_repo = "/Users/moshe/hercules-helper/extpkgs/repos/decNumber-0"
softfloat_repo = "/Users/moshe/hercules-helper/extpkgs/repos/SoftFloat-0"
telnet_repo = "/Users/moshe/hercules-helper/extpkgs/repos/telnet-0"
install_dir = "/Users/moshe/hercules-helper/extpkgs/."
cpu = "x86"
crypto ...
64-bit Debug ...
FAILED!
Step: configure:
Regina REXX is present. Using configure option: --enable-regina-rexx
Disabling "getopt wrapper kludge" for Apple Darwin
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
~/hercules-helper/hyperion ~/hercules-helper/hyperion
CFLAGS=-frecord-gcc-switches ../configure --enable-optimization="-O2 -march=native" --enable-extpkgs=/Users/moshe/hercules-helper/extpkgs --prefix=/Users/moshe/hercules-helper/herc4x --enable-custom="Built using Hercules-Helper (version: v0.9.6-34-g286c960)" --enable-regina-rexx --disable-getoptwrapper
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ../autoconf/install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking whether make supports nested variables... (cached) no
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-apple-darwin18.7.0
checking host system type... x86_64-apple-darwin18.7.0
checking target system type... x86_64-apple-darwin18.7.0
checking whether make supports the include directive... no
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in /Users/moshe/hercules-helper/hyperion/build': configure: error: C compiler cannot create executables See
config.log' for more details
[[ error: ]] configure failed!
Hi,
issue on Debian 10 as a root user in hyperion-prepare.sh.
root@server:~# ~/hercules-helper/hyperion-prepare.sh
OS : Debian variant
OS Version : 10
-----------------------------------------------------------------
Checking for package: git
package: git is already installed
-----------------------------------------------------------------
Checking for package: build-essential
dpkg-query: Kein Paket gefunden, das auf build-essential passt
installing package: build-essential
/root/hercules-helper/hyperion-prepare.sh: Zeile 162: sudo: Kommando nicht gefunden.
-----------------------------------------------------------------
Checking for package: autoconf
dpkg-query: Kein Paket gefunden, das auf autoconf passt
installing package: autoconf
/root/hercules-helper/hyperion-prepare.sh: Zeile 162: sudo: Kommando nicht gefunden.
-----------------------------------------------------------------
Checking for package: automake
dpkg-query: Kein Paket gefunden, das auf automake passt
installing package: automake
/root/hercules-helper/hyperion-prepare.sh: Zeile 162: sudo: Kommando nicht gefunden.
-----------------------------------------------------------------
Checking for package: cmake
dpkg-query: Kein Paket gefunden, das auf cmake passt
installing package: cmake
/root/hercules-helper/hyperion-prepare.sh: Zeile 162: sudo: Kommando nicht gefunden.
-----------------------------------------------------------------
Checking for package: flex
dpkg-query: Kein Paket gefunden, das auf flex passt
installing package: flex
/root/hercules-helper/hyperion-prepare.sh: Zeile 162: sudo: Kommando nicht gefunden.
-----------------------------------------------------------------
Checking for package: gawk
dpkg-query: Kein Paket gefunden, das auf gawk passt
installing package: gawk
/root/hercules-helper/hyperion-prepare.sh: Zeile 162: sudo: Kommando nicht gefunden.
-----------------------------------------------------------------
Checking for package: libbz2-dev
dpkg-query: Kein Paket gefunden, das auf libbz2-dev passt
installing package: libbz2-dev
/root/hercules-helper/hyperion-prepare.sh: Zeile 162: sudo: Kommando nicht gefunden.
-----------------------------------------------------------------
Checking for package: zlib1g-dev
dpkg-query: Kein Paket gefunden, das auf zlib1g-dev passt
installing package: zlib1g-dev
/root/hercules-helper/hyperion-prepare.sh: Zeile 162: sudo: Kommando nicht gefunden.
Done!
My System:
root@server:~# uname --all
Linux server 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
Kind regards
Please add suport for Mageia v8 (x64) to your script/s.
Mageia is a Redhat variant.
Tried to read the build script looking at centos but I do not understand the diffs as cannot tell what is used to check for and download/install from distros the extra needed libs etc.
Hi,
i test your script on CentOS 8 Stream (Desktop Edition) but the first step fails.
uname -a:
Linux NB-777 4.18.0-240.1.1.el8_3.x86_64 #1 SMP Thu Nov 19 17:20:08 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
~/hercules-helper/hyperion-buildall.sh --verbose --prompts --sudo 2>&1 | tee ./hyperion-buildall.log
Using logfile hyperion-buildall-2021-01-14-6.log
/home/hercules/hercules-helper/hyperion-buildall.sh: v0.9.0-12-ga1b92fd
Using config file: /home/hercules/hercules-helper/hercules-helper.conf
Config file not found. Using defaults.
General Options:
TRACE : false
OPT_VERBOSE : true
OPT_PROMPTS : true
OPT_NO_INSTALL : false
OPT_USESUDO : true
Configuration:
OPT_BUILD_DIR : /home/hercules/herctest
OPT_INSTALL_DIR : /home/hercules/herctest/herc4x
GIT_REPO_HYPERION : https://github.com/SDL-Hercules-390/hyperion.git
GIT_REPO_GISTS : https://github.com/SDL-Hercules-390/gists.git
GIT_REPO_EXTPKGS : https://github.com/SDL-Hercules-390
System stats:
OS Type : Linux
Machine Arch : x86_64
Memory Total (MB): 15762
Memory Free (MB): 13476
VERSION_ID : centos
VERSION_ID_LIKE : rhel fedora
VERSION_PRETTY : CentOS Linux 8
VERSION_STR : 8
We have a CentOS system
VERSION_MAJOR : package centos
VERSION_MINOR : release is not installed
Language : LANG=en_US.UTF-8
Checking for Windows WSL1... nope
Checking for Windows WSL2... nope
Step: Check for required packages: Hit return to continue
/home/hercules/hercules-helper/hyperion-buildall.sh: line 930: [[: package centos: syntax error in expression (error token is "centos")
�[1;37m[[ �[1;31merror: �[1;37m]] �[0mCentOS version 6 or earlier found, and not supported
Hi,
i have running the build script on debian, i dont no all is fine, i have seen many warnings comes from hyperions code but i think thats ok.
One error i have seen and i dont understand.
on the attached hyperion-buildall-make-check.log in line 300:
>>>>> line 83616: Informational message mismatch.
Want: HHC17006W MAINSIZE decreased to 2G architectural maximum
Got: HHC02204I ARCHLVL set to S/370
Test "mainsize check storage size": 25 OK compares. One failure.
....
Did 324 tests. 1 failed; 323 OK.
hyperion-buildall-make-check:
hyperion-buildall-make-check.log
Here is the full log:
hyperion-buildall.log
And can you tell me how i can start hercules?
if i type hercules in the shell the system returns "command not found"
if i compile hercules manual from the source without all extpcks and rexx,
i can start hercules only by typing "hercules" or with the config file syntax "-f" on the shell, or is my build failed?
thanks for help!
System detection:
OS Type : Linux
Machine Arch : e2k
Memory Total (MB): 128736
Memory Free (MB): 34206
VERSION_ID : elbrus
VERSION_ID_LIKE :
VERSION_PRETTY : Elbrus Linux 6.0.1
VERSION_STR : 6
Language : LANG=ru_RU.UTF-8
Checking for Windows WSL2... nope
Checking for Windows WSL1... nope
[[ error: ]] Your system (Elbrus Linux 6.0.1) is not (yet) supported!
The Elbrus Linux is based on Debian
Hi Bill,
just for the fun of teaching myself Docker I am trying to build a Docker-image with Hercules in it.
I use an UBUNTU 20.04 Docker-image to start from.
Here is the Docker-build file:
FROM ubuntu:21.04����������������������������������������������������������������
RUN apt update && apt install \���
��������������������������������������������������� apt-utils \�
���������������������������������������������������������������������git \���������������������������������������������������������������������������
�net-tools
������������������������������������������������������wget \���������������������������������������������������������������������������
����������������������������������������������������� sudo -y����������������������������������������������������������������������
RUN useradd -ms /bin/bash ubuntu�������������������������������������������������
USER ubuntu����������������������������������������������������������������������
WORKDIR /home/ubuntu�������������������������������������������������������������
RUN cd ~�������������������������������������������������������������������������
RUN git clone https://github.com/wrljet/hercules-helper.git����������������������
RUN mkdir herctest && cd herctest������������������������������������������������
RUN ~/hercules-helper/hyperion-buildall.sh --auto��������
Running this file with
Docker build -t hercules .
I get the error:
�������������������������������������������������������������������������������**hostinfo =
��������������������������������������������������������/bin/universe = ��������������������������������������������������������
/usr/bin/arch -k = ��������������������������
������������������������������/bin/arch = aarch64�������������������������������������������������
/usr/bin/oslevel = ����������������
����������������������������������������/usr/convex/getsysinfo = ��������������������������������������������������������������������������������������
���������������������������������������������������UNAME_MACHINE = aarch64����������������������������������������������������������
UNAME_RELEASE = 5.11.0-1015-raspi������������������������������������������������
UNAME_SYSTEM = Linux������������������������������������������������������������
UNAME_VERSION = #16-Ubuntu SMP PREEMPT Wed Jul 14 11:04:58 UTC 2021���������
�����configure: error: cannot guess build type; you must specify one������������������[[ error: ]] configure failed!���������������������������������������������������The command '/bin/sh -c ~/hercules-helper/hyperion-buildall.sh --auto' returned �a non-zero code: 1����������������������������������**
Do you have any suggestions?
It would be great fun to run Hercules in a Docker image!
Kind regards
Allard
During brew processing (brew is already there so of no real consequence) hercules-helper warns that it sees Darwin 21 where it expected to see Darwin 20. Build went OK so not real issue, for information only.
First thank you very much for that great tool!
So there are actually two problems:
The script fails to detect "sles" however it's easy i just changed the OS detection from Opensuse to sles.
It build's everything fine until i try's to link libhercs.la:
CC cardpch.lo
CCLD libhercs.la
/usr/lib64/gcc/s390x-suse-linux/7/../../../../s390x-suse-linux/bin/ld: cannot find -lcrypto32
/usr/lib64/gcc/s390x-suse-linux/7/../../../../s390x-suse-linux/bin/ld: cannot find -ldecNumber32
/usr/lib64/gcc/s390x-suse-linux/7/../../../../s390x-suse-linux/bin/ld: cannot find -lSoftFloat32
/usr/lib64/gcc/s390x-suse-linux/7/../../../../s390x-suse-linux/bin/ld: cannot find -ltelnet32
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:2112: libhercs.la] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/linux1/bin/hercules-helper-0.9.8/hyperion/build'
make[1]: *** [Makefile:2529: all-recursive] Error 1
make[1]: Leaving directory '/home/linux1/bin/hercules-helper-0.9.8/hyperion/build'
make: *** [Makefile:1865: all] Error 2
real 1m46.316s
user 2m28.512s
sys 0m48.113s
[[ error: ]] Make failed!
finish() called, exit status = 1
linux1@test:~/bin/hercules-helper-0.9.8
Herc-helper: v0.9.8
OS: SLES15SP3
HW: LinuxONE
You can get a instance (Ubuntu,RHEL and SLES are available) for free (i think for 2 month, probably with reactivation later?) if you want to test it on your own on a real s390 mainframe here you go:
https://linuxone.cloud.marist.edu/#/register?flag=VM
And again, thanks for that great time-saver ;)
IMO
the build should be done against the develop branch
after the clone of hyperion a
git checkout develop
should be done
on apple M1 the master branch does not pass the test suite and crashes
but it works on high sierra on the intel imac
switched branches and everything works
enrico
Hi,
today I ran the Hyperion-buildall script om two new raspberry pi’s. It could not get a valu for Revision.
It seems that there is a new version/revision that can be added:
Output from GPIO.RPI_INFO['P1_REVISION']
3
Output from GPIO.RPI_INFO['RAM']
8G
Output from GPIO.RPI_INFO['REVISION']
d03115
Output from GPIO.RPI_INFO['TYPE']
Pi 4 Model B
Output from GPIO.RPI_INFO['PROCESSOR']
BCM2711
Output from GPIO.RPI_INFO['MANUFACTURER']
Sony UK
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.