This HOWTO is aimed at helping people who want to produce software packages which should integrate well in the Mandrake Linux distribution of GNU/Linux. In particular, it will stress in what way the packages are slightly different from the packages anyone would write for other rpm-based distributions. This document should be useful to MandrakeSoft developers, but also to external people.
The Mandrake Linux distribution of GNU/Linux is produced and published by MandrakeSoft, Inc.
It is assumed in this document that the reader is "linux-ready". He already knows the basic commands, directory structure, and has already used rpm at least for installing packages.
This document is constructed as a step by step recipe to obtain a rpm package that can integrate well in the Mandrake Linux distribution of GNU/Linux, from either a previous source rpm or a tar source.
If you haven't done it yet, you should read the cooker web page, which explains the development process of Mandrake Linux.
RPM roughly means three things:
a program intended to install or create packages,
a format used in packages (source or binary) created by the program rpm,
a file called package which contains whether a binary or sources along with an information header about how to install/uninstall the program
The program rpm is, from the user's point of view, a powerful package manager. It acts as a "conductor" for any action on rpm packages. Among other things, it can:
install or upgrade a package verifying dependencies,
while installing a package, perform actions in order to make the program installed ready to use,
restore accidentally erased files from a package,
tell if a package is already installed,
find to which package belongs a particular file,
....
From the programmer's point of view, the program rpm is a packager which encapsulates in a single rpm file all the information needed to install a program on a given platform.
It is important to distinguish from the beginning the difference between source (.src.rpm) and binary (.<archtype>.rpm) packages.
The first one contains (yes you guessed) the complete source tree from the original programmer, plus all the stuff the packager added in order to configure, compile and install the program. It generally consists of a spec file (the file used to tell rpm which operations perform in order to create the package) along with patches, if needed.
The second one contains the compiled binary, and all the files (documentation, config files, icons,...) that will be installed on the target system. It also contains the procedure used to put the files at their correct location, and the actions to perform in order to have the program operational.
Next | ||
Install the software |