Giter Club home page Giter Club logo

ossile's Introduction

OSSILE

Welcome to the OSSILE project. This project is to serve three purposes:

  1. This project is to provide, via the open source community, a wide set of utilities for IBM i. They will get built into the OSSILE library.
  2. This project is to provide working examples of various things in ILE languages (RPG, C, C++)
  3. This project is to provide working examples of SQL (while not technically ILE, the examples are included here due to strong affinity and usefulness)

Currently included in OSSILE

  • Useful UDTF's originally sourced from https://bitbucket.org/christianjorgensen/

    Documentation:

  • CRTFRMSTMF originally sourced from https://github.com/BrianGarland/

    Documentation:

  • GETIPTF, originally sourced from http://bryandietz.us/getiptf.html

    Documentation:

  • C program samples originally sourced from ChrisHird/OSSILE

    • BACKUP Program to run backups using BACKUP options and Image Catalogs and copy to remote file server.
    • CHKRCVRDLT Program to clean up receivers based on days since detatched.
    • CHKOSLVL Program to display the current OS level.
    • DSPCSTINF Program to display the constraints attached to a file.
    • DSPTRGINF Program to display the triggers attached to a file.
    • DSPDQINF Prgram to display a data queue attributes
    • DSPUSRIDX Program to display a User Index attributes plus the content (text only).
    • FTPCLNT an alternative FTP Client to the OS command line.
    • JOBLIST Program to display the currently active jobs and some of their attributes.
    • LSTDBRTST Program to display the database relationships for a file.
    • RTVJRNOBJ Program to display the objects currently journalled to a journal.
    • MD5CRC Program to generate a CRC for the content of a DB file.
    • RTVDIRSZ Program to log the content and sizes of a directory plus calculate the total size.
    • SRVPGMCHK Program to check the signatures of a service program and a program to ensure the program can call the Service program.
    • SYSINFO Program to retrieve and display system status.
    • ZLIB ZLIB Open Source for IBM i.

    Documentation

  • sha256, originally sourced from https://github.com/miguel-r-s/SHA-256 a re-implementation of SHA256 in C. Documentation:

  • ArrayList, originally sourced from RPG Next Gen. An ArrayList is a one-dimensional array. It is also a dynamic array which means that the size is not set at compile time but at runtime and it can grow if required.

    Documentation:

  • SU, originally sourced from bitbucket.org/cmasseVolubis/volubis. Like Under Linux, become QSECOFR as needed

    Documentation:

  • Linked List, originally sourced from RPG Next Gen. An array allocates memory for all its elements lumped together as one block of memory. In contrast, a linked list allocates space for each element separately in its own block of memory called a linked list element or node. The list gets is overall structure by using pointers to connect all its nodes together like the links in a chain.

    The linked list utilities service program shows how to get data via a list instead of using a userspace.

    Documentation:

  • Update User-Defined Attribute Tags a QSYS object with a value. The value is stored in the user-defined attribute of the object.

    Documentation:

  • Message, originally sourced from RPGUnit. This service program provides wrappers for the OS message API QMHRCVPM, QMHRSNEM and QMHSNDPM. It eases the handling of program and escape messages.

    Documentation:

Installing OSSILE on your IBM i

Method 1: download the .zip file and compile

  1. Download https://github.com/OSSILE/OSSILE/archive/master.zip and place it in IFS
  2. From a PASE-capable shell (ssh client, QP2term, etc), run:
  • jar xvf OSSILE-master.zip

  • cd OSSILE-master/main && chmod +x ./setup && ./setup

    To exclude an item from building, remove it from buildlist.txt or comment it out with a preceding '#'

Method 2: Download *SAVF

  1. Create a save file object on IBM i.
  2. Download https://github.com/OSSILE/OSSILE/blob/master/ossile.savfsrc and upload it to the IBM i, replacing the contents of the save file you've created
  3. Use the RSTLIB command to restore the OSSILE library from the save file. For example:
  • RSTLIB SAVLIB(OSSILE) DEV(*SAVF) SAVF(MYLIB/MYSAVF)

OSSILE directory structure

These are the main directories within OSSILE:

main/

This directory houses complete, buildable code. In other words, it contains all the tools and utilities we list above as "included in OSSILE". Each subdirectory represents a separate buildable item.

code_examples/

This is where one can find examples of how to accomplish various tasks in ILE languages. They do not need to be working, compilable examples, though that is preferred. Inside this directory, there are subdirectories for the various ILE languages. The code examples are located in the appropriate lanuage directory.

sql_examples/

This directory houses examples of how to accomplish various tasks using SQL scripts.

Contributing

See CONTRIBUTING.md

ossile's People

Contributors

abmusse avatar bdietz400 avatar briangarland avatar chrishird avatar chrjorgensen avatar cmassevolubis avatar forstie avatar jwoehr avatar kadler avatar m1h43l avatar mlitters avatar starbg avatar steversje avatar theprez avatar worksofliam 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  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  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

ossile's Issues

setup script does not work as described in README.md

I tried to install the samples by following the README.md instructions, but I got an error when trying to run the setup script:

$ ./setup
./setup: -s: is not an identifier

Seems like it's not the QSHELL shell program, that executes the script - even though this is indicated in the first line in the script...

I have tried this with both bsh and bash shells. The only way the script would work was running it in a STRQSH terminal, thus already in the qsh shell...

Undeclared identifier List_Info in sysinfo.c

The c_sysinfo item currently fails to compile,

/home/JGORZINS/ossile/j/main/c_sysinfo/sysinfo.c, 25.27: CZM0045(30)
Undeclared identifier List_Info.

That's pointing at the first line in main():
int List_Info_Len = sizeof(List_Info); // list info len

Sub Module use

When will we be introducing the sub module process? I am building the source content outside of OSSILE and will add as a sub module once we get an agreement to do so.

How to contribute page

I have seen this in other repos. Based on my own experiences here (being a noob on contributing to GitHub projects), I've tried and succeeded a couple of times using different options. Seems like it would help other noobs if we identified the optimal path for all involved.

FTP Client dying with MCH3601

@ChrisHird, I've been trying to use the new FTP client (impressive-looking manual, btw!), but keep running into an MCH3601 from the Get_Rmt_Cwd procedure. How can we debug further? Job log below.

Thanks!

5770SS1 V7R2M0 140418 Job Log LP03UT28 01/09/17 16:20:50 CST Page 1
job name . . . . . . . . . . : QPADEV0008 User . . . . . . : JGORZINS Number . . . . . . . . . . . : 926508
job description . . . . . . : QDFTJOBD Library . . . . . : QGPL


msgid type sev date time from pgm library inst to pgm library inst
cpf1124 information 00 01/09/17 16:18:29.698192 QWTPIIPP QSYS 04C9 *EXT *N
message . . . . : Job 926508/JGORZINS/QPADEV0008 started on 01/09/17 at
16:18:29 in subsystem QINTER in QSYS. Job entered system on 01/09/17 at
16:18:29.
*NONE Request 01/09/17 16:18:32.353074 QUICMD QSYS 0543 QUICMD QSYS 0543
message . . . . : -wrksplf
*NONE Request 01/09/17 16:18:52.484805 QUICMD QSYS 0543 QUICMD QSYS 0543
message . . . . : -dltsplf *select
cpc3305 Completion 10 01/09/17 16:19:09.865719 QSPHNMLT QSYS 0667 QSPWRKF QSYS 01F8
message . . . . : 544 files deleted. 0 files not deleted.
cause . . . . . : If a file was not deleted, see the previously listed
messages to identify the error.
*NONE Request 01/09/17 16:20:10.123323 QUICMD QSYS 0543 QUICMD QSYS 0543
message . . . . : -go ossftpclt/ftpcmain
cpc9801 Completion 00 01/09/17 16:20:11.362041 QMHCRMSQ QSYS 0427 FTP801P OSSFTPCLT *STMT
to module . . . . . . . . . : FTPCFUNCS
to procedure . . . . . . . : Issue_Cmd
statement . . . . . . . . . : 3
message . . . . : Object FTPCLOGQ type *MSGQ created in library QTEMP.
mch0601 Escape 40 01/09/17 16:20:12.942031 < gHighUse4K 000340 FTP801P OSSFTPCLT *STMT
from program . . . . . . . : stringHighUse4K
to module . . . . . . . . . : FTPCON
to procedure . . . . . . . : Get_Rmt_Cwd
statement . . . . . . . . . : 111
message . . . . : Space offset X'FFFFFFFF' or X'0000000000000000' is outside
current limit for object qpadev0008JGORZINS 926508.
cause . . . . . : A program tried to set a space pointer, tried to use
storage outside a space, or tried to use an unallocated page in teraspace.
the space class is x'02'. The space class designates the type of space:
00-primary associated space (includes space objects). 01-secondary
associated space 0. 02-implicit process space for automatic storage.
03-implicit process space for static storage in activation group mark
x'0000000000000002'. 04-implicit process space for heap identifier
x'00000000' in activation group mark X'0000000000000002'. 05-constant space.
06-space for handle-based heap identifier X'00000000'. 07-teraspace offset
x'0000000000000000'. 08-teraspace for System i5 PASE memory address
x'0000000000000000'. Offset X'FFFFFFFF' only applies to storage outside
teraspace. X'8000000000000000CBDB33065D001000' is a pointer to the teraspace
page or the start of the implicit process space for the allocation.
cee9901 Escape 30 01/09/17 16:20:12.942480 QLEAWI QSYS *STMT QUICMD QSYS 0AEE
from module . . . . . . . . : QLEDEH
from procedure . . . . . . : Q LE leDefaultEh2
statement . . . . . . . . . : 175
message . . . . : Application error. MCH0601 unmonitored by FTP801P at
statement 0000000111, instruction X'0000'.
cause . . . . . : The application ended abnormally because an exception
occurred and was not handled. The name of the program to which the
unhandled exception is sent is ftp801P FTPCON Get_Rmt_Cwd. The program was
stopped at the high-level language statement number(s) 0000000111 at the
time the message was sent. If more than one statement number is shown, the
program is an optimized ile program. Optimization does not allow a single
statement number to be determined. If *N is shown as a value, it means the

project README.md lacking info on new contributions

The project's README.md has a "Currently included in OSSILE" section, which needs updates to reflect a bunch of new contributions. These items need some content:

  • udtf_list_source_members
  • sha256
  • c_backup_pgm
  • c_check_recvr_delete
  • c_chk_os_lvl
  • c_display_constraints
  • c_display_triggers
  • c_list_dbr
  • c_list_jrn_objs
  • c_signature_verification
  • c_sysinfo
  • c_joblist
  • c_rtvdirsz

This is a bit of a pain, but is documented in our CONTRIBUTING instructions
https://github.com/OSSILE/OSSILE/blob/master/CONTRIBUTING.md#contributing-a-new-buildable-item-to-ossile

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.