Martin Steinmann wrote:

Using pungi on F7 I would like to create a CD that includes a kickstart file to be used during installation of a system using this CD.

Is there a way to tell pungi to put a ks.cfg file into the root of the CD and modify isolinux.cfg?

Thanks

--martin

------------------------------------------------------------------------

--
Fedora-buildsys-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
Hi list. Wrote a little something for the people that want to add files in the current version of pungi. Its basically the process that worked for me.
Comments greatly appreciated
Regards

--
Joel Andres Granados

Joel Andres Granados
<jgranado at redhat dot com>

Pungi version -> 0.3.7

This is what I did to add files and/or directories to the tree.

First some background information...
Among all the steps that pungi does to create the tree and the isos, it executes
a step called the doGetRelnotes.  The default behavior of this stage is to look 
for the fedora-release and the fedora-release-notes packages and extract the 
release
notes, GPG key and other stuff that fedora needs to put in the root directory 
of the
tree.

Actually this process is managed by three variables that specify three things:
1. the packages to look for in the downloaded repository [1], 2. the 
directories to
extract from these packages and 3. the files to extract from each package.  The 
variables names are relnotepkgs, relnotedirre and relnotefilere respectfully.  
This
information is important because you will need it to specify the behavior of in 
the config file.

For each package that pungi successfully finds in the tree, it runs the 
rpm2cpio command
and puts all the directories and files of the package in a temporary directory. 
 This is 
where pungi uses the relnotepkgs variable.  Next, pungi finds all the 
directories and 
files by using python regular expressions that are defined internally in the 
program.
These regular expressions are the ones that tell pungi which directories and 
files to add.
The regular expressions are defined in the relnotedirre and the relnotefilere 
variables.

With this behavior we can make pungi add some of our own files own directories. 
 What we
need is 1.one or more rpm packages that have the stuff we want to put in to the 
installation
tree. 2.we need to put this package of ours into the repository that pungi 
downloads in the
gather stage [2] and finally we need to define some sort of regular expression 
to choose our
directories and files.

1.  For the creation of the rpm I have found that the tutorial at 
http://docs.fedoraproject.org/drafts/rpm-guide-en/ 
    very useful. 

2.  Once you have your rpms you have to tell pungi how to find your them.  In 
other words, they
    somehow have to be in a repository that pungi recognizes.
    a. Making the repository:
       You must copy all your packages to a repository directory.  After 
copying all the
       packages you have to run the createrepo command on the directory you 
selected.
       
       Ex.
       cp myrpm.rpm myrpm2.rpm myrpm3.rpm /path/to/my/rpms
       createrepo /path/to/my/rpms
       
       This command will create a repository that yum understands.  Since pungi
       uses yum for the package gathering stage, this will be enough.

    b. Now we have to show pungi where the newly created repository is.
       You must go to the pungi config directory (/etc/pungi) and edit the file 
that 
       defines the repositories that pungi is using [3].  A new section must be 
       appended defining where the repository is and if it is going to be 
active or not.
       The following is added to the end of the file.

       Ex.
       [additionalRepo]
       baseurl=file:///path/to/my/rpms
       enabled=1
       gpgcheck=0

3.  The final step is to define what directories and files you want from the 
packages.
    you must edit pungis configuration file and add the three variables 
described at the
    beginning of the document:

    relnotepkgs :   you must list the package names of the packages you want to 
be considered
                    in the search.[4]
    relnotedirre :  you must list the regular expressions that define what 
directories you want
                    to include in the root directory.[4]
    relnotefilere : you must list the regular expressions that define what 
files you want to 
                    include.[4]

       Ex.
       relnotepkgs = myrpm myrpm2 myrpm3
       relnotedirre = dir1 dir4 dir6
       relnotefilere = /^file file.file ending/$ [5]

Finally make tests until you get the desired result.  Don't execute all pungi 
stages. 
Execute until the buildinstall stage until you see the correct behavior in your 
tree.[6]


[1] One of the first steps of pungi is to download the packages that are listed 
in the
    manifest.  Pungi looks for them in repositories that are defined in the 
config directory
    (/etc/pungi).  The manifest is also located in the pungi config directory.
[2] Pungi is organized in 5 stages. 1. Gather, 2. Buildinstall, 3. Package 
Order, 4. Splittree
    and 5. Create Isos.  The gather stage is where pungi pulls all the rpm 
packages from the 
    repositories.
[3] In this version of pungi there are 6 files that specify repositories, just 
be sure you 
    modify the one you are using.  The used file is defined in the 
configuration file with
    the yumconf variable.
[4] It is a space separated list of names.
[5] The regular expression characters must be escaped.
[6] To execute until builinstall stage: pungi -c /path/to/config -G -B
--
Fedora-buildsys-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list

Reply via email to