Guidelines for Developing for Drauger OS

So you want to develop an app for Drauger OS? Awesome! Read on to learn more about our guidelines and expectations.

General

In general, you are free to develop whatever app you wish with the following considerations in mind:

  • If your code must be compiled, it must be compiled for 64-bit (x86_64 / amd64 and arm64) CPU architectures. 32-bit (x86, armhf) code is allowed, provided the developer can provide evidence as to why their code must be compiled for 32-bit, and makes an effort to work toward moving toward a working 64-bit version of their code, if that is possible.
  • All non-proprietary source code must be provided to Drauger OS Development to ensure security and stability. If requested, this source code can be kept confidential. However, if not requested, a copy WILL be kept in a public repository on our GitHub for archival reference.
  • It is requested all code be open-source. No particular license is required, however GPL v2 or v3 is preferred. If a developer would like to release their code under a closed-source license, this is allowed, however we will refuse to bundle their app into the Drauger OS ISO by default.

Packaging

This will be handled on a case-by-case basis. We prefer developers package their own apps. However, provided the file-system is set up properly, we will be happy to package any developer’s code for them. For more information on how to properly package your apps, please refer to the Debian New Maintainers’ Guide.

We DO NOT package ANY snaps, flatpaks, AppImages, or other “Universal Package Formats”. We will ONLY build native *.deb files.

Command Line Interfaces

All packages which have a command line interface must honor the following flags:

  • -h, –help: Print a help dialogue to the terminal. This must include: Package version, the most commonly used flags, basic usage instructions
  • -v, –version: Print the package version number to the terminal in clear, easy to understand terms.

It is also required packages with a CLI have at least one man page. If you are unfamiliar with man pages, we suggest using Grapse: the Live Man Page Editor.

Graphical User Interfaces

All packages must use GTK for their GUIs. However, additional support for Qt is entirely optional, but encouraged. When making your GUIs, please follow the following rules, for debugging and modularity purposes:

  • It is requested, but not required, that developers use Python GTK to make their GUIs. This is to make it easier to debug and ensure a more uniform look and feel in Drauger OS
  • Please ensure your GUI works with the ubuntu-united-complete package in our repositories. This package contains the most likely GTK themes that we will use by default in Drauger OS and that many users may chose to use.

How to get accepted into the repository

Getting your app accepted into the Drauger OS apt repository is easy! Simply hop onto our Telegram Development Group, our Discord Server, or email us. Tell us about your app, send us the source code (if you can. We understand sometimes it’s too large or your license or employer may not allow it), and we will review it and get back to you in anywhere from a few hours to a couple weeks!

How to get removed from the repository

If you want your app removed from our repository, simply send us a message on our Telegram Development Group, our Discord Server, or in an email requesting it. This request must be made by the developer who is currently in contact with us about this app.

Your app may also be forcefully removed from our repository if one or more of the following occurs:

  1. Your app is discovered to contain ANY form of malware
  2. Your app violates copyright laws, whether intentionally or unintentionally.
  3. A security vulnerability is found in your app that you refuse to patch without good reason, as determined by Drauger OS Development

If your app is found to be the case of either #1 or #2 (in the case of intentional copyright infringement), your app, and all apps you have contributed, will be immediately removed and you will no longer be allowed to contribute any software to Drauger OS. Furthermore, code you contributed to other apps which are in our repository and are NOT maintained by you will be frozen while a security audit is performed and copyright integrity is verified. Furthermore, a notice will be placed on Canonical’s Launchpad that your app contains malware or violates copyright laws, and the nature of said malware or copyright violation.

If your app is found to be the case of #2 (in the case of unintentional copyright infringement) or #3, your app will be removed from our repository until the vulnerability is patched or the copyright violation is corrected. In the case of the unintentional copyright violation, we will work with you to get any issues straightened out

 

We hope the above guidelines help you in developing your app for Drauger OS. Thank you for taking the time in considering developing your app for Drauger OS!