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) CPU architectures. 32-bit (x86) 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 within 1 year of the initial release of their code in the Drauger OS Repositories.
  • All 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 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 have support for GTK+ in 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:

  • Please make sure program files which draw and control your GUIs are as separate as possible from program files which do actual data processing.
  • 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, 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 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
  4. You change copyright licenses on your app without notifying Drauger OS Development beforehand.

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 not longer be allowed to contribute any software to Drauger OS. Furthermore, and 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), #3, your app will be removed from our repository until the vulnerability is patched or the copyright violation is corrected..

if your app is found to be the case of #4, your app will be removed from the repository for one year.

 

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!