Linux System developing

From Wiki [en] OpenMandriva
Revision as of 13:41, 23 November 2017 by Crisb (Talk | contribs) (update kahinah url)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This is the place where the information about how to contribute to OpenMandriva's Linux technical basis and it's packages is kept.


Info.png
Please take into account that these pages are still work in progress. Whenever you think something is missing (which, like now may be "most of it") feel free to ask us in irc or at the cooker Mailinglist.


OpenMandriva technical overview

The OpenMandriva Linux distribution is made possible by two major fields of technical contribution:

  • creation and maintanance of the tools, configuration and art special to the distribution (like the installer, the configuration center, themes,..)
  • consistent packaging of several thousand different programs and libraries in order to make them available to the user in a simple and consistent way

You are invited to help in both fields and will find the guidelines and rules at these pages.

Tools, configuration & Themes

General Information about the tools

mdawkins: please provide a boiler text here.

How to contribute here...

We are in the process of moving the tools to a central place, so it may take a while until it is easy to contribute here.

mdawkins: cann you also add some more details here?

Packaging

Packaging software and keep everything working together is an Herculean task (and one of the major reasons why there are not even more Linux distributions as there are now). OpenMandriva uses a separational approach to achieve this task:

  • packages in the main repository are very high-maintained and cared for
  • packages in the contrib repository though generally working and functional generally are not as focused on and may not be as well integrated

However, even if the rules for packages in contrib are treated a bit more lax, the rules for both repositorys are generally the same.

General packaging rules

General things you should know about packaging in OpenMandriva:

  • There is a group called Technical Committee (aka TC), which is closely related to the active packagers and developers. This is the group which also is in charge of the technical decisions like "which software to include", "upgrade to a newer version of a software" and "when to release". So if you have questions like that, ask them on IRC or mailinglist.
  • We follow several package guidelines <-- bero? fedya? mdawkins?
  • In order to protect us from trolls new contributors might at first have to do pull-requests, only afterwards they may get writer access to the repositories.
  • We find it important that you talk about what you do in form of clear clear communication on irc or the Mailing lists.
  • Do not try to touch software which people from the TC agreed to freeze for a certain time (most possible until the next release). We do not always want the newest features if that opposes our main aim of a working Linux distribution.

How to contribute to packaging

Most often your wish of contribution on packaging will come from a software in OpenMandriva where you have found a bug, or where you'd like to see a feature we have not already compiled into. We thus expect that you are at least slightly familiar with RPM packages (good knowledge in other package formats might also do, as the differences are not the world), the *nix trinity of configure, make and make install.

  • If you are not, we also happily help you with that; but our main focus is at developing the OpenMandriva distribution, so we won't be able to substitute a computer science class. However, there are lots of nice tutorials and helpful people around the net where you can find additional help. Just do a web search for eg. "linux rpm howto".

For everyone else:

Quickstart guide on how to fix a 'broken' package

  • join #openmandriva-cooker to get in contact with the other contributors and be able to discuss the changes/contributions you'd like to make
  • subscribe the cooker mailing list here
    • it is not just avout developing, as everything is building up, atm. But it will again be the place for mostly technical discussions, after the initial phase.
  • get an account on abf (The BuildSystem we use)
  • set up your local developing/packaging environment
  • clone the package you want to fix in your personal repository
    • this is as easy as
      • use the search function for the projects name
      • select openmandriva/projectname from the results
      • click the Fork button at the projects page
  • fix it
    • use our guide for that
    • or just edit the .spec file using the web editor provided by abf
    • don't forget to increment the release-number of the package
  • build it
    • you can do that by clicking on "new build" on the packages page
  • if the build succeeded:
    • you can try out the rpms by yourself (will be available in your personal repo, or from the build status page)
  • if you are happy with your changes:

Tools and information surrounding packaging

Note: previously we used to work with ABF created and run by "ROSA" company, what became much harder in the second half of 2015. We were brainstorming, and the challenging solution of creating our fully own development environment was taken.

  • repositories, fresh from abf:
urpmi.addmedia --distrib http://abf-downloads.openmandriva.org/cooker/repository/x86_64/
urpmi.addmedia --distrib http://abf-downloads.openmandriva.org/cooker/repository/i586/

Please use mirrors if you do not plan to actively contribute. And be aware that these repositories might be broken several times a day, and are just thought to minimize delay for active developers.

Current packaging status

  • status is regularly posted at cooker-ml
  • atm <1000 pkgs broken
  • Contrib status here: Spreadsheet

List of unfinished artwork/theme/license packages

incomplete mind dump

  • indexhtml
    • mandriva background
    • mandriva greeting email
    • browser-startpages
  • draklive-install
    • boot background image
    • installer start image
    • installer desktop icon
  • mandriva-kde4-config
    • configure theme
    • start icon
    • background image
    • Kickoff top tile (change svg to say OpenMandriva instead of ROSA-sth)
  • drakxtools
    • change back moondrake branding to OpenMandriva

temporary license

Introduction

The operating system and the different components available in the OpenMandriva GNU/Linux distribution
shall be called the \"Software Products\" hereafter. The Software Products include, but are not
restricted to, the set of programs, methods, rules and documentation related to the operating
system and the different components of the OpenMandriva GNU/Linux distribution, and any applications
distributed with these products provided by OpenMandriva's licensors or suppliers.


1. License Agreement

Please read this document carefully. This document is a license agreement between you and
the OpenMandriva Association which applies to the Software Products.
By installing, duplicating or using any of the Software Products in any manner, you explicitly
accept and fully agree to conform to the terms and conditions of this License.
If you disagree with any portion of the License, you are not allowed to install, duplicate or use
the Software Products.
Any attempt to install, duplicate or use the Software Products in a manner which does not comply
with the terms and conditions of this License is void and will terminate your rights under this
License. Upon termination of the License,  you must immediately destroy all copies of the
Software Products.


2. Limited Warranty

The Software Products and attached documentation are provided \"as is\", with no warranty, to the
extent permitted by law.
Neither the OpenMandriva Association nor its licensors or suppliers will, in any circumstances
and to the extent permitted by law, be liable for any special, incidental, direct or indirect damages
whatsoever (including without limitation damages for loss of business, interruption of business, financial
loss, legal fees and penalties resulting from a court judgment, or any other consequential loss)
arising out of  the use or inability to use the Software Products, even if the OpenMandriva Association
or its licensors or suppliers have been advised of the possibility or occurrence of such damages.

LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME COUNTRIES

To the extent permitted by law, neither the OpenMandriva Association nor its licensors, suppliers or
distributors will, in any circumstances, be liable for any special, incidental, direct or indirect
damages whatsoever (including without limitation damages for loss of business, interruption of
business, financial loss, legal fees and penalties resulting from a court judgment, or any
other consequential loss) arising out of the possession and use of software components or
arising out of  downloading software components from one of OpenMandriva GNU/Linux sites which are
prohibited or restricted in some countries by local laws.
This limited liability applies to, but is not restricted to, the strong cryptography components
included in the Software Products.
However, because some jurisdictions do not allow the exclusion or limitation or liability for
consequential or incidental damages, the above limitation may not apply to you.
%s

3. The GPL License and Related Licenses

The Software Products consist of components created by different persons or entities. %s
Most of these licenses allow you to use, duplicate, adapt or redistribute the components which
they cover. Please read carefully the terms and conditions of the license agreement for each component
before using any component. Any question on a component license should be addressed to the component
licensor or supplier and not to the OpenMandriva Association.
The programs developed by OpenMandriva are governed by the GPL License. Documentation written
by OpenMandriva is governed by a specific license. Please refer to the documentation for
further details.


4. Intellectual Property Rights

All rights to the components of the Software Products belong to their respective authors and are
protected by intellectual property and copyright laws applicable to software programs.
OpenMandriva and its suppliers and licensors reserves their rights to modify or adapt the Software
Products, as a whole or in parts, by all means and for all purposes.
\"OpenMandriva\", \"OpenMandriva GNU/Linux\" and associated logos are trademarks of the OpenMandriva association.


5. Governing Laws

If any portion of this agreement is held void, illegal or inapplicable by a court judgment, this
portion is excluded from this contract. You remain bound by the other applicable sections of the
agreement.
The terms and conditions of this License are governed by the Laws of France.
All disputes on the terms of this license will preferably be settled out of court. As a last
resort, the dispute will be referred to the appropriate Courts of Law of Paris - France.
For any question on this document, please contact OpenMandriva.",
$us ? "\n\n" . N("You agree not to (i) sell, export, re-export, transfer, divert, disclose technical data, or
dispose of, any Software to any person, entity, or destination prohibited by US export laws
or regulations including, without limitation, Cuba, Iran, North Korea, Sudan and Syria; or
(ii) use any Software for any use prohibited by the laws or regulations of the United States.

U.S. GOVERNMENT RESTRICTED RIGHTS.

The Software Products and any accompanying documentation are and shall be deemed to be
\"commercial computer software\" and \"commercial computer software documentation,\" respectively,
as defined in DFAR 252.227-7013 and as described in FAR 12.212. Any use, modification, reproduction,
release, performance, display or disclosure of the Software and any accompanying documentation
by the United States Government shall be governed solely by the terms of this Agreement and any
other applicable licence agreements and shall be prohibited except to the extent expressly permitted
by the terms of this Agreement.") . "\n" : '',
$google ? N("Most of these components, but excluding the applications and software provided by Google Inc. or
its subsidiaries (\"Google Software\"), are governed under the terms and conditions of the GNU
General Public Licence, hereafter called \"GPL\", or of similar licenses.")
 : N("Most of these components are governed under the terms and conditions of the GNU
General Public Licence, hereafter called \"GPL\", or of similar licenses.