s390x - HaKePlan/wekan GitHub Wiki
About s390x
- Dave's Garage at 2023-10: Why Do Mainframes Still Exist? What's Inside One? 40TB, 200+ Cores, AI, and more! https://www.youtube.com/watch?v=ouAG4vXFORc
- https://en.wikipedia.org/wiki/Linux_on_IBM_Z
- FLOSS 564 Interview about Open Mainframe Project
- Open Mainframe Project
- LinuxOne Community Cloud
- SWLUG Talk - Linux on the IBM Z mainframe platform
- https://wiki.qemu.org/Documentation/Platforms/S390X
- https://arstechnica.com/information-technology/2023/07/the-ibm-mainframe-how-it-runs-and-why-it-survives/
- https://sdl-hercules-390.github.io/html/
From xet7, other non-WeKan Open Source at s390x
Other non-WeKan Open Source projects xet7 tried to build at s390x:
- Works:
- TSC platform game, C++ https://secretchronicles.org/en/news/2020/11/16/tsc-for-s390x-available/
- Darkest Hour halloween text adventure game, C89, xet7 ported to 30+ CPU/OS https://github.com/xet7/darkesthour
- Does not work yet:
- V https://github.com/vlang/v/issues/18737
- LLVM, Zig, Bun https://github.com/wekan/wekan-node20#trying-to-compile-llvm-for-zig-and-bun-at-s390x-fails
- Deno, because Rust ring (a crypto dependency) does not support s390x https://github.com/wekan/wekan-node20#trying-to-compile-deno-for-s390x-fails
Ported by others, not xet7:
From xet7, WeKan at s390x
xet7, as maintainer of WeKan, got access to mainframe at IBM LinuxOne Community Cloud. Access to those servers is monitored, it's running on a real mainframe.
Previously xet7 had ssh access. At 2023-09 xet7 got web console access, and IBM bumped quota to 2 VMs with 8 GB of memory, 200 GB disk and 4 CPUs each. At web console it is possible to create and remove VMs, and select distro like RHEL/SUSE/Ubuntu. xet7 did do-release-upgrade to upgrade newest Ubuntu 23.10.
Download
- wekan-VERSION-s390x.zip at https://releases.wekan.team/s390x/
Installing MongoDB for s390x
This Snap package https://snapcraft.io/juju-db , created by Canonical, has MongoDB for various CPU architectures . It is internal package for Canonical's Juju service https://jaas.ai . Snap repo at https://github.com/juju/juju-db-snap and copy at https://github.com/wekan/mongodb-snap
Install Snap for your distro https://snapcraft.io/docs/installing-snapd
Then:
ssh yourserver
sudo dnf install nano
sudo reboot
sudo snap install juju-db
sudo snap refresh juju-db --channel=5.3/stable
sudo snap enable juju-db
sudo snap start juju-db
nano .bashrc
There add path to commands mongo, mongodump, mongorestore etc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/snap/juju-db/139/usr/lib/s390x-linux-gnu
export PATH="$PATH:/snap/juju-db/139/bin"
Save and exit: Ctrl-o Enter Ctrl-x
Exit ssh, and ssh to server again,
exit
ssh yourserver
Or alternatively just read new paths to mongo etc commands:
source .bashrc
Now MongoDB is at localhost port 27017. You connect to CLI with command:
mongo
RHEL 8
New info 2022-01-18:
-
Install snapd https://snapcraft.io/docs/installing-snap-on-red-hat
-
Reboot
-
Install MongoDB, so it will be at port 27017:
sudo snap install mongo36-configurable
- Install WeKan s390x bundle from:
Old info:
sudo yum -y update
sudo yum -y install git nano npm curl wget podman-docker openssl-devel libcurl-devel clang zip unzip
docker run --name wekan-db -d -p 127.0.0.1:27017:27017 mongo
sudo npm -g install n
sudo n 12.18.0 ## newest 12.x from https://nodejs.org
mkdir repos
cd repos
git clone https://github.com/wekan/wekan
cp wekan/start-wekan.sh .
nano start-wekan.sh
# Edit start-wekan.sh for ports and paths, so starts
# "node main.js" at "build" directory".
# Look for version number from https://releases.wekan.team/s390x/
wget https://releases.wekan.team/s390x/wekan-VERSION-s390x.zip
unzip wekan*s390x.zip
./start-wekan.sh
RHEL 7
Node.js LTS newest 12.x release for s390x can be downloaded from https://nodejs.org
MongoDB v4.x Community Server for s390x RHEL7 is at https://www.mongodb.com. For example files can be like these filenames:
- mongodb-org-mongos-4.2.3-1.el7.s390x.rpm
- mongodb-org-server-4.2.3-1.el7.s390x.rpm
- mongodb-org-shell-4.2.3-1.el7.s390x.rpm
- mongodb-org-tools-4.2.3-1.el7.s390x.rpm
Install
Installing is similar like at Raspberry Pi
You can start it with start-wekan.sh from https://github.com/wekan/wekan or add SystemD service.
Setup ROOT_URL like described at Settings
At wiki is also info about Caddy/Nginx/Apache etc.
Some related links also at Platforms
How this s390x bundle package was created for RHEL 7
- Install Node.js
- scp wekan-VERSION.zip bundle to s390x server, and unzip it
- Clone and build Fibers, copy fibers to bundle, and zip bundle.
git clone https://github.com/laverdet/node-fibers
cd node-fibers
node build.js
cd ..
cp -pR /home/linux1/node-fibers/bin/linux-s390x-72-glibc bundle/programs/server/node_modules/fibers/bin/
zip -r wekan-VERSION-s390x.zip bundle