everest-logo Home About Install Packages Downloads Docs Errata Git ↗

Developer Documentation

This page contains developer-specific documentation.

1 - Coding Style

1.1 C

1.1.1 File Structure

Files should follow this format:

Note that function declarations should be defined in a separate header, ex:

#include "project_name.h"

Indentations should be a single tab and be equal to 8 characters for better readability.

1.1.2 Functions

Functions should have their return type on one line, their name and parameters one line down, and the bracket one line under the name and arguments.

Example:

CODE: Proper function formatting in C

static void

usage(int argc, char *argv[])

{

        printf("usage: %s [-a] [-b]\n", argv[0]);

}

1.1.3 Example Program

FILE: prog.c

#include <stdio.h>

 

#include "prog.h"

 

void

hello()

{

        printf("hello\n");

}

 

int

main()

{

        hello();

}

FILE: prog.h

#ifndef PROG_H_

#define PROG_H_

 

void hello();

 

#endif

1.1.4 common.h

For large programs which include many header files, it is perfectly acceptable to define these includes in a separate header and then include that in each file.

FILE: common.h

#ifndef COMMON_H_

#define COMMON_H_

 

#include <color.h>

#include <stdio.h>

#include <unistd.h>

 

#endif

FILE: prog.c

#include "common.h"

 

int

main()

{

        printf("hello\n");

}

1.2 Bash/Shell

2 - Licensing

2.1 Disclaimer

WARNING:

This is not legal advice. If you are in doubt with licensing, please contact your lawyer.

2.2 Preferred Licenses

For all projects officially released under Everest, the GNU GPL family of licenses is preferred. It provides compatibility with all other existing Everest projects.

Most programs should be licensed under the standard GPL. For libraries, you might want to choose the LGPL, if you want to allow linking within proprietary programs. For web applications, always choose the AGPL.

2.3 Other Licenses

If you wish to use a non-GPL license for your project, that is perfectly permissible.

Before releasing your program, we ask that you add the following disclaimer to your README:

FILE: README

LICENSING DISCLAIMER:

This program is licensed under (LICENSE), and as such may be incompatible with other GPL-licensed Everest programs.

Please contact the program's maintainer if you have questions.

If you are an Everest developer and host a project on our Git server, but do not want it associated with Everest, please submit an electronically signed form stating the following:

FILE: WAIVER

Everest Linux Development Group hereby relinquishes all claims of ownership on program "foo" to developer "bar".

Electronically signed by Foobar on 1/1/2024

Electronically signed by Everest Linux head developer on 1/1/2024

2.3 Proprietary Licenses

Programs hosted on our Git servers are never to be released under proprietary licenses.

Distributing obfuscated binaries (for instance, using shc to hide the contents of a shell script) is also not allowed.

There will be no further discussion.