Software Discovery Tool: A Mentee Perspective

Written by Divya Goswami, Open Mainframe Project Summer Mentee

Are you one of the folks who finds searching packages across multiple platforms an ordeal? If that’s true then we at Open Mainframe Project’s Software Discovery Tool team, which includes my fellow mentee, Indranil Mandal and mentor Elizabeth Joseph, are thrilled to say – we just made your life easier!

Software Discovery Tool (SDT) is a tool that helps you search for open source software available on IBM z/OSTM. We also have integrated automated ways to generate software sources from Debian 10 (Buster), ClefOS 7 and openSUSE Leap and Tumbleweed.

The tool presents a web UI for searching and allows you to select from various Linux distributions, along with z/OS. The source for these is a JSON file that lists out the software, along with optional descriptions and version numbers. Why the version number? As an individual who is used to working on various platforms, it’s a boon to keep in mind which platform gives you the latest version of the searchable software. When in doubt, we also have an FAQ section from where the users can get information of the source of the package lists and what more can be expected from us in the near future of the tool.

For z/OS, we started from a preliminary list of open source software that we are aware of, with the intention of continuing to add to it as the project progresses. You can see the JSON file for z/OS here: ZOS_Software_List.json and we’re eager to see pull requests against the software-discovery-tool-data project for any software we have not yet included. We will be glad to know what software is still missing from the ones we have collected so far.

The tool is very well-documented and each procedure, from adding a new distro data to changing UI to suit users or troubleshooting logs are all covered under docs/ directory. One of the new things we explored during data import was to use submodules feature of git to automatically update the distro_data/ when there’s a new push in the data repository. While our main aim was to keep one fixed place to search information about a software package for all z/OS users, we also went ahead and kept our Linux on IBM Z and LinuxONE legacy to work with Linux distributions as well!

We all love automation, so we’ve worked hard to deliver this as well. Thus, on the Linux side, you have the option of using the provided files in the software-discovery-tool-data project, or by generating your own using the new package_build.py script. This script also allows you to automatically pull in the data sources for SUSE Enterprise Linux Server, Red Hat Enterprise Linux, and Ubuntu, which are continuing to be maintained by the team at IBM working on the PDS tool, which the Software Discovery Tool is a friendly fork of. There are a few more features to be added as me and my fellow mentee still have a month more to continue improving the tool. We are so proud of our work so far!

Currently, we are exploring the final steps in the operational side: the CI/CD side of the project. We do not want the users to get frustrated with manual reloads. After all, we love automation. Our last few goals will be to finish hosting the tool and get a pipeline ready for auto deployment.

During this mentorship, we have met new folks, including eminent members from the Linux Foundation, the OpenMainframe Project and also member company IBM.  It is a wonderful experience to work with people like to work on Mainframes.  It excites me and I would love to continue working with them in future! Our mentor Elizabeth K. Joseph has also enabled us and encouraged us to contact maintainers from Linux distributions for open discussion and networking opportunities. We are very grateful for the experience.

If you’re still reading this blog and haven’t yet checked out our tool – what are you waiting for? Check it out: Software Discovery Tool On Github
Bug issues and feature requests are welcome!

About the author Divya Goswami:

I am an independent security researcher with a DevOps background. I love debugging and disassembling code rather than developing something smart. I blog occasionally and keep a keen interest in system architecture. Still an undergrad student and wish to rule over Python (long way to go yet). I have previously given talks on Open Source tools used in data collection using OSINT techniques and Content Security Policy bypass using Polyglot XSS attacks. 

Join the Software Discovery Tool mailing list here. Learn more about Divya, Indranil, Elizabeth or any of our other 2021 Summer Mentorship participants in this blog