From Fedora Project Wiki

From https://lists.fedoraproject.org/pipermail/env-and-stacks/2014-March/000295.html:

The New Packager's Guide Content Specification

The content specification is mostly based on http://fedoraproject.org/wiki/How_to_create_an_RPM_package and intended to replace the outdated and unmaintained RPM Guide [1]. It will also allow us to get rid of some rather obsolete packaging HOWTOs on Fedora wiki, such as [2].

But first of all, it will allow people who are getting started with RPM packaging to find the content they are looking for in one place, without having to try their luck with searching the somewhat bloated Fedora wiki.

This guide fills in the gap for RPM formal documentation in Fedora. This can help people getting started with SCLs, too: the Fedora Software Collections Guide assumes that the readers already have substantial knowledge of RPM packaging.

[1] http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/

[2] http://fedoraproject.org/wiki/How_to_create_a_GNU_Hello_RPM_package


Table of Contents

* Introduction to the RPM Package Manager:
             This chapter introduces the RPM Package Manager, describes the
             RPM package design, defines the basic content of every RPM
             package, and shows how to explore the RPM package structure 

        What Are Packages, and Why Manage Them?

        RPM Design Goals

        What Is in a Package?

                Using rpm2cpio

        Source Package Files and How to Use Them

* Creating and Building RPM Packages:
             This chapter discusses the basics of creating and
             building RPM packages and provides a spec file overview.

        Preparing Your System

        The Basics of Building RPM Packages 
                Creating a Basic spec File
                    spec Templates and Examples
                    Templates
                    Examples
                Building a Package
                Testing a Package
                    Testing a spec File
                    Testing a spec File
                    Testing a Binary Package
                    Testing a Source Package

        spec File Overview
            spec File Sections Explained
            %prep Section
                %prep Section: %setup Command
                %prep Section: %patch Commands
                %prep Section: Unmodified Files
            %build Section
            %install Section
            %check Section
            %files Section
                %files Basics
                %files Prefixes
                %files and Filesystem Hierarchy Standard (FHS)
                %files Example
                Finding Duplicates
            Scriptlets
            Macros
            Other Tags
            Dependency Generators
            Subpackages
            Conditionals

* Distributing RPM Packages:
             This chapter discusses configuring digital signatures and Yum
             repositories to distribute software packaged with RPM. 

        Digital Signatures for RPM Packages
             Generating a GnuPG Keypair
             Signing Packages 

        Yum Repositories for RPM Packages
            Creating a Yum Repository


* Appendix - Eclipse RPM Building:
             This appendix contains information on how to build RPM
             packages in Eclipse Development Environment.

       Eclipse Built-in Specfile Editor

* Appendix - Java Packaging:
             This appendix documents tools and techniques to help
             developers create and maintain Java packages in Fedora. It is
             based on http://sochotni.fedorapeople.org/java-packaging-howto/

      For Packagers
        Example Java Project
        Build System Identification

      For Java Developers Example Java Project
        Java Specifics in Fedora for Users and Developers
        Java Specifics in Fedora for Packagers
            Directory Layout
            JAR File Identification
                Relative Paths
                Artifact Specification
                Aliases
                Compat Versions
            Dependency Handling
            Javadoc Packages
            Core Java Packages
                JVM

        Generic Java Builds
            add_maven_depmap Macro
            Generating Application Shell Scripts
            Replacing JARs with Symbolic Links Using xmvn-subst

        Ant

        Maven
            Packaging a Maven Project
            Macros for Maven Build Configuration
                Installing Additional Artifacts
                Additional Mappings
                Alternative JAR File Names
                Single Artifact Per Package
                Assignment of the Maven Artifacts to the Subpackages
                Modifying XMvn Configuration from within the spec File
            Macros for POM modification
                Macros for pom.xml Modification
                add_maven_depmap Macro
                Replacing JARs with Symbolic Links Using xmvn-subst

        Common Errors

        Integration of Maven and XMvn Tools

* Appendix - Getting More Information:
              Explains where to find more information, including the RPM
              official project site, other RPM books and RPM documentation.