Git Product home page Git Product logo

meta's Introduction

meta

Meta repository to tie together the various underlying z/OS Open Source tools repositories here.

View our documentation at https://zosopentools.github.io/meta/.

Background

There are some key 'foundational' Open Source technologies needed to port software. The goal of this set of repositories is to provide minimal 'port' repositories that can be used to get a foundational software package building on z/OS. We are starting with what we view as some 'foundational' technologies. One is the stack of technology to be able to build zsh. Another is to be able to build protocol buffers.

But - there is a transitive closure problem to address with porting a software package, namely understanding what packages are pre-requisites for the software package you want to port. As an example, for zsh, we see the following:

zsh requires autoconf to configure the build scripts, GNU make to run Makefiles, ncurses zsh is easier to develop (but doesn't require) curl and git natively on z/OS, and GNU techinfo for documentation

autoconf requires m4, automake, GNU make m4 requires a c99 compiler with c11 features, so ensure you have the latest C/C++ compilers installed on your system

GNU make requires GNU m4, automake, autoconf, Perl, and a C compiler that is gcc compatible

Perl requires a c89 compiler ncurses requires an ANSI C compiler

Order to Build from scratch

If you want to build the tools from scratch and not use the binary pax files available, you will want to tackle this in a particular order. First, you need to have some tools installed on your system:

System Pre-reqs:

Project License Download link
gnu make 4.1 GPL V3 z/OS Open Tools release
IBM XL C/C++ V2.4.1 IBM 1 ibm.com web download
git LGPL V2.1 z/OS Open Tools release
curl curl-license z/OS Open Tools release
gunzip GPL V3 z/OS Open Tools release

Recommended software:

Project License Download link
bash GPL V3 z/OS Open Tools release

Both IBM and Rocket provide supported versions of the software above for a fee.

Taking the defaults will mean there are less variables for you to configure. We recommend you structure your sandbox as follows:

  • Have the root of your development file system be $HOME/zopen (you will want to have several gigabytes of storage for use - we recommend at least 15GB)
  • Have sub-directories called boot, prod, dev.
    • boot: sub-directory for each tool required to bootstrap (make, git, curl, gunzip, m4)
    • prod: sub-directory for tools to be installed once built. These tools will be used by downstream software, e.g. make build process will use the Perl prod build
    • dev: sub-directory for tools you are building

Order to build:

The tools have dependencies on other tools, and there are also typically 2 ways the tools are packaged:

  • one that is pre-configured and therefore doesn't need autoconf/automake and associated tools
  • one that is not pre-reconfigured and therefore does require autoconf/automake and associated tools

To build from scratch, start with the tarballs of the following tools:

Project License Pre-requisites
m4 GPL V3 m4, curl in boot and xlclang installed on the system
perl GPL V3 additionally requires make, git in boot and m4 in prod
make GPL V3 perl in prod for running test cases
zlib zlib license make in prod
autoconf GPL V3 libz in prod
automake GPL V3 autoconf in prod

Once you either have these tools built, or have downloaded a pre-built pax file for the build, you may want to build other tools. Each tool has a buildenv file and one of the entries will describe the tools it requires to build, depending on where the source is from (currently TARBALL or GIT clone). So for example m4 requires:

  • ZOPEN_TARBALL_DEPS="curl gzip make m4" and:
  • ZOPEN_GIT_DEPS="git make m4 help2man perl makeinfo xz autoconf automake gettext"

If you want to build from the GIT clone, you can see you will need to have more software pre-installed.

Footnotes

  1. a no-charge add-on feature for clients that have enabled the XL C/C++ compiler (an optionally priced feature) on z/OS โ†ฉ

meta's People

Contributors

igortodorovskiibm avatar mikefultondev avatar anthonygiorgio avatar harithaibm avatar dougburns avatar ijmitch avatar perry-ca avatar jshimoda9323 avatar zosopentoolsmain avatar fanbo-meng avatar redstar avatar ejratl avatar covener avatar

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.