dubuntu-team team mailing list archive
-
dubuntu-team team
-
Mailing list archive
-
Message #00016
Re: package selector for devbuntu
Hi guys
I wanted to create a full descriptive document of the installer, but
find myself a little short of time. So here's a short version.
The concept of the installer is already well laid out in the wiki, so
please read that first. In this mail I'll focus on the conceptual inner
workings of the installer:
Background:
First of all note that the aim is not to create a separate distribution
like Kubuntu or Xubuntu, but rather an add-on installation, more in the
line with Edubuntu. Developers quickly understand and customise their
Linux to suite themselves, so I don't wish to upset their already
customised environment, but we do want to enhance it. The installer is
therefor less of a Ubuntu-installer and more of a "very advanced"
package selector.
Another important point is that we do not want to reinvent the wheel and
redo that which has already been done. We would like to use as much of
the existing framework and utilities that already exist. This is the
reason for it being a package installer. Once you've installed it
something like Adept takes over and constantly upgrades the package for
you (or with your permission, whichever way you've configured it).
So we're left with two problem:
- Simplifying and enhancing package selection and installation
This is where the installer comes in, which is described below
- Knowing what to install
This is where the webstie comes in. We don't know everything but
there a community out there that would like to share... I hope.
Operation:
The package selector must have a bunch of questions it will ask you.
The first level of these questions should be result based, i.e. "what do
you want to do?". This should have questions like:
- Which programming language(s) do you prefer (C++, Pacal, Java, Python,
perl, etc)
- What type of applications do you want to develop (command line,
kernel, Gnome, KDE, etc)
The next layer will show you a high level selection of tools (without
too much details, based on the answers. This could be something like:
- IDE: KDevelop, Ajunta, etc
- Compilers: Gnu gcc
- Libraries: libstdc, etc
- Tools: ValGrind, Cachegrind, etc
- Documentation: ....
- etc
Under each heading there will be list of options. From here you can
then select the specifics of what you want (or everything if you like).
Inner workings:
To make the selection I suggest we use an "really big" XML file.
Actually, I would prefer an embedded database due to the amount of
information we will have and the speed at which we need to process it.
Firstly, In this definition will be all the questions that needs to be
asked with all the possible answers for each question.
Secondly, we will have a list of all the "package sets" you need. For
each set we will have the answers to the questions that is required to
add this package set to the first level selection. If we have a
database, this selection can be done with a few queries.
This will be compiled from the data on the website, refer to the
"columns" I've suggestions. The website will contain all the
suggestions with comments. We can mark these suggestions as approved
and export it directly to the installer when we release it.
Development:
It's been suggested that we use Python with GTK for the front-end. In
the back-end we can use apt and MySQL (both of these have interface
libraries for Python and will drastically reduce the work).
Apt will do the interfacing to the repo libraries. MySQL can easily be
embedded into an applications so you don't actually have to install
MySQL server or clients to use the database.
If we do the website with MySQL as well, it saves having directories
with files.
Vision:
There are two more things worth mentioning here:
- Customised selections
We could allow you to "save" your final selection to a file, which you
can share (hopefully on our website). These files could then be loaded
as short-cuts so you don't have to answer all the questions or refine
the selection again. This would allow for the following:
a. Setting up several of your machines in exactly the same way... VERY
QUICKLY
b. Allow Ubuntu projects to define there development environments and
get newbies going... VERY QUICKLY
c. Share your "revelation" of what a development environment should look
like with your friends. The same way we share our videos on YouTube and
our thoughts on blogs
These short-cuts can be saved as XML instead.
- Other projects
A good package installer like this would actually open up a whole new
world of possibilities for guys wanting to create add-on distributions
like Devbuntu and Edubuntu. They could use this installer to create
there own "sub-distros" for other things, e.g. graphics design, making
music, making movies, etc. Think of the possibilities. What we are
doing here, or rather the way we plan to do it, is not limited just to
development enviroments.
So what do you think?
Charl
-----Original Message-----
From: jay <jay.27182818@xxxxxxxxx>
To: Charl Wentzel <charl.wentzel@xxxxxxxxxxxxxx>
Subject: package selector for devbuntu
Date: Sun, 07 Dec 2008 18:51:25 +0200
hi charl. i'd like to ask you a couple of questions about your idea of
package selector - what will it actually be? what will be the format for
files it will produce? i can suggest this scheme but i'm unsure is it
similar to what's on your mind or not:
1). on some host we will have a directory with files which names
correspond to development categories (gui, commandline, web etc.). each
of these files will contain a list of packages that will be installed
when user makes appropriate choice during installation process or
post-installation tweaking.
2). we'll have a pool for proposals on the same host - a separate
directory with patches for appropriate files in the main directory or
new files for new dev. categories.
3). we'll have a web interface (a simple form or so) to approve
proposals and some other administrative tasks. the host will also
provide a web-service that can be used to create commandline utilities
or gui frontends.
i didn't send this message to the list 'caz i just want to figure out
what you mean when saying 'package selector' before sending any
proposals to the list.
best regards,
jay
Follow ups