[Fedora-livecd-list] Fwd: Making respins with custom configs and files

Yaakov Nemoy loupgaroublond at gmail.com
Fri Nov 23 17:10:10 UTC 2007


Hi Lists,

I proposed this to a Fedora mailing list last night.  Below is a) my
initial email, b) kanarip's initial response, and c) my reply to that.


---------- Forwarded message ----------
From: Yaakov Nemoy <loupgaroublond at gmail.com>
Date: Nov 22, 2007 2:51 AM
Subject: Making respins with custom configs and files
To: fedora-advisory-board at redhat.com


Hey List,

I've come out of my coding ban (till finals are over) to work on a
small side project.  It's a tool that lets you pick a set of files
from a running system, they could be anything, config files, random
non-free fonts installed to /usr/share/fonts/, grub splash screens,
etc..., and lets you make an RPM out of them.  Since some of these
files might clash with other packages, it doesn't install them
directly to the root, but hidden away in /usr/share.  There is a
second tool that then deploys these lumps of files.  It solves the
following use cases:

Scenario 1
Tim is a power user.  He has a system heavily configured, with a
custom set of packages, from five repos, and all sorts of other things
he found on online on deviantart.  He wants to make a respin of his
computer using Revisor, so he can pop a CD in the brand new machine,
use it to install Fedora, and be up and running in under 30 minutes.
Since a large number of files that are not in his /home partition are
just as important still require time setting up, he would rather tell
Revisor where to look, and have it copy all these files automatically.
 He's also given a package full of files that he could drop into a
private repo if he ever finds the time to set one up.

Scenario 2
Kim is a computer science student.  She's been given an assignment
that involves a complicated build and runtime environment.  In her
proprietary-software centric school, ensuring that her code will
compile and run cleanly when she submits it for a grade is a huge
chore.  She would rather give the professors a Live CD saying 'run
this', that drops them into a stripped down Gnome environment, with a
terminal, and all her programs sitting on the desktop.  She gets an A,
and her professor starts considering incorporating Linux into the
curriculum for its ease of use.

Scenario 3
Jim is a technician for Megacorp and is configuring a bunch of
machines.  He knows how to make RPMs, but it is a lengthy process
since he is not familiar with it.  He has a set of files he wants to
include with every system he configures, that include corporate
branding on every spot available.  The list of files is large, but the
only thing he needs to do is copy them to specific places.  He would
rather just give  a command a list of files that spits out a spec file
and a tarball that he can add to an automated system.  The packages
will then be deployed the next time he schedules an update.


Right now, I have two working scripts.  There are a couple of minor
bugs, and I have some SELinux questions.  Is this something people
want to see in Fedora 9?  Would it be useful to the revisor/respin
crowd?  Or am I completely off the mark here, and someone has a better
idea?

Cheers,
Yaakov

---------- Kanarip's message ----------
Hi Yaakov,

the Fedora Advisory Board may not be the most appropriate list to
discuss Fedora 9 or Revisor features, more appropriate maybe is the
Revisor development or user discussion list[1], and the
fedora-livecd-list[2].

However looking at what it is you are trying to solve, have you tried
working with copy_dir maybe? Revisor uses that setting to copy all
contents from that location onto the live or installation media. With
Live Media these files are copied onto "/" which is to become the root
filesystem once you boot up the Live Media, and with Installation Media
it copies it into the files/ directory in the tree (so that during the
installation you can use it in %post).

If this has any short-comings on solving the scenario's you are
addressing, please let me know because I think these are perfectly valid
use cases.

Kind regards,

Jeroen van Meeuwen
-kanarip

---------- My reply ----------

I haven't looked at copy_dir, not knowing it existed, but now that I
have my code, I feel like I could use something slightly more
organized for lack of a better word.  If this seems useful, I can try
to merge the two feature sets.

There are two aspects on each of the last two scenarios that I feel
copy_dir doesn't quite handle.  It doesn't handle the third scenario
at all, where the Technician wants to create a dumb package to include
in his private repository.  That's a feature that goes beyond just a
single respin, and he would prefer to include in multiple respins.

In the second scenario, I could imagine a sub scenario where when
someone was trying to redeploy those extra files on i slightly
different live CD, the Student would want to have a single package as
well to remix the LiveCD with.

One aspect that's available with my code is the ability to create
multiple packages actually that serve different aspects.  The best
example I can think of offhand is in the second scenario where the
Student has to submit two programs.  Each 'boost' (boost being the
lousy name i thought of) contains the program separately.  She can
create a LiveCD with both programs for a friend to play with, and a
separate CD for each professor.  She could even create a Portfolio CD
with all of her projects when doing a senior level project, or when
putting together a resume.

Cheers,
Yaakov




More information about the Fedora-livecd-list mailing list