How to contribute to Parabola's Repositories

From ParabolaWiki
Jump to: navigation, search

1 Familiarize yourself with the Parabola build tools

If that all seems daunting, you do not need to learn everything alone. If you have any questions, ask for help on the forum, IRC, or the mailing lists. On-boarding new contributors is not easy for any project, nor for the new contributor; but it is important and appreciated. The Parabola team and community will try their best to help new people, to understand the packaging tools and procedures.

A good way to start contributing is to upgrade an 'out-of-date' PKGBUILDs and submit the changes.

2 Adding new packages to [pcr]

2.1 Considerations

All requests for new packages should be created on the New Software Suggestions section of the forum. The title format should follow "[Request] package name"

There are a few things to consider before creating a new package:

  • Check the license as completely as you can and document what you find
  • Ask yourself:
    • What is the maintenance load of this package?
    • Is it going to break often?
    • How difficult is it to fix?
    • How many new dependency packages (e.g. python, java, golang) would need to be added, in order to support this one?
    • How often will it (or its special 100 dependents) need upgrading and reworking?
    • Am I willing/capable to continue supporting this after contributing it?

The final decision to add the package, is based on its fitness into the Parabola system, as estimated by a simple 'desirability/work-load' ratio. The items in the list above, contribute to the work-load factor. If you are willing to maintain the package, that would decrease the work-load factor. Maintenance entails upgrading to future upstream releases, reworking patches if necessary, and testing the new versions thoroughly, for as long as one can. Ideally, that would be for years.

The 'desirability' factor is basically: How important or useful is this software? with respect to the existing software in the repos. If this software merely duplicates functionality provided by some other package in the repos (eg: yet another text-editor, x-terminal, web-browser, or DE), that would lower it's desirability. A libre replacement, for example, a blacklisted package, or a unique game, may have higher desirability. Be prepared to offer some justification for its inclusion. If the work-load is large, then the desirability must be very high to justify it's inclusion.

2.2 Submitting Packages

Any of the following steps below will help to decrease the initial packaging work-load, easing the package's evaluation and possible inclusion:

  • Find and modify (or create) a working PKGBUILD
  • Build it with makepkg. Install it, test it.
  • If there are no errors, build it again in libretools, test it.
  • If that works, test that it builds for all 3 architectures.
  • Submit a proposal
    • Create a new thread in the New Software Suggestions section of the forum.
      • If no request thread is opened, then create a thread with the title format: [Submission] package name
    • Send your proposal to the 'dev' mailing list
      • Begin the subject line with [PKG Submission]

Please describe the software and justify why it should be added to Parabola. Document whatever you have learned, the licensing, or any special snags or caveats, which were needed to audit and/or package the software.

Be patient while the Parabola devs look it over and double check all the things; then hopefully, enjoy the package when it appears.

3 Updating packages or adding patches

If you see an outdated package in the repos and wish to update it, the procedure to do so follows the same guidelines as submitting packages, with some minor differences:

  • Update the PKGBUILD
  • Build it with makepkg. Install it, test it.
  • If there are no errors, build it again in libretools, test it.
  • If that works, test that it builds for all 3 architectures.
  • Submit a request
    • (Primary) Send your contribution to the 'dev' mailing list
      • Updating Packages: Begin the subject line with [UPDPKG]
      • Adding only Patches: Begin the subject line with [PATCH]
    • Open a pull request at the Pagure abslibre repo

The Parabola devs will then double check if your submissions when they have the chance to do so. If all is well, it will then be pushed into the official repos.

4 Creating -libre packages

See Creating -libre packages.

5 See also