dubuntu-team team mailing list archive
-
dubuntu-team team
-
Mailing list archive
-
Message #00083
Re: Functionality and design
Agreed! I just wanted to raise the issue so we know about it in the
future. When you do the development you can allow for it.
Charl
On Tue, 2009-07-07 at 02:06 +0300, Jay I. wrote:
> hi charl
>
> i think it's too early to talk about .rpm and other distros. first of
> all we need to achieve some success inside ubuntu community and maybe it
> will be enough. maybe we will decide to concentrate on something more
> important. who knows?
>
> on the other hand, every package, be it a .deb file or a tarball, comes
> from a repo, be it a debian repo or just a regular directory on your web
> server. for every package in db i specify an index into the table which
> contains all included repos. debian repos are currently added in form of
> APT lines. but we can extend this format to something like:
>
> <deb|rpm|tar> <src|bin> <uri>
>
> and the backend library will decide what a particular tool to use to
> install a certain package. i think it's quite simple so for now we can
> safely forget about all other formats and concentrate on debian
> packages.
>
> jay
>
> On Mon, 2009-07-06 at 21:59 +0200, Charl Wentzel wrote:
> > Hi Jay
> >
> > Some more thoughts on the existing tools. Both you and Ryan have
> > mentioned other operating systems / distros. If we're going to keep an
> > open mind on this we'll need to consider the following:
> >
> > 1. Embedded server
> > This would definitely be the way to go, since you would then not be
> > dependent on the specific shared library versions installed with a
> > specific distro, you simply compile everything you need into the API
> > library.
> >
> > 2. .dep, .rpm, ....
> > Apt would only be applicable to debian based distros. What if the
> > distro uses rpms or even worse requires a source compile?
> >
> > To cater for this we'll need to use the CLI interface of whatever
> > package installer is used by the distro. So instead of just specifying
> > the package name in the database, we'll need to define the repositry/ftp
> > site (if necessary) as well as the standard CLI API for installing
> > packages.
> >
> > E.g. for ubuntu it would be: "apt-get install [package name]". For a
> > basic distro you may need to first specify a small script that would do
> > a ftp download, configure, make, make install, etc... I don't know how
> > its done with rpms.
> >
> You'll have to specify this in the etc/devbuntu files, as you'd have a
> > separate knowledge base and installer definition for each distro.
> >
> > On your gui you would then do the same thing as Synaptic. Once you've
> > made youre selection you run the installer in an embedded terminal
> > window so you can see what's happening.
> >
> > Just a thought! If you want to keep an open mind, you should do it
> > right from the start!
> >
> > Charl
> >
> > On Mon, 2009-07-06 at 19:55 +0300, Jay I. wrote:
> > > hi.
> > > 1. agree about languages.
> > >
> > > 2. see my posts in 'cli front end' thread. we will reuse as many
> > > existing tools as possible.
> > >
> > > 3. mysql client won't be used to access our central database because its
> > > just more secure to make it accessible only to serverside scripts and
> > > not to the rest of the world. i'm currently developing cli client that
> > > works with mysql server on localhost. it wont be hard to update it to
> > > use embedded server afterwards.
> > >
> > > 4. i think all the 'questions' can be mapped to package categories. and
> > > the package manager will just guide user through their hierarchy, asking
> > > questions based on category names and description. user will start at
> > > the root and step down to a leaf - this is equivalent to asking
> > > question.
> > >
> > > what about xml definition - they can be generated from database records
> > > automatically and it's a better choice to keep everything in a database
> > > and extract data for exchange/sharing.
> > >
> > > 5. is our bzr repo prepared? i've already designed the backend api (the
> > > most basic function) and i'd like to show you my code. i think we need
> > > separate branches for the backend/fontends.
> > >
> > > 6. anyway we will must provide a cli based frontend - it'll be just a
> > > shame not to;). as i already mentioned all the questions can be mapped
> > > to package categories and it's technically possible to guide a user
> > > through a tree like hierarchy.
> > >
> > > 7. agree on qtk+ and qt. i've described my vision of the back end of our
> > > system in 'cli front end'.
> > >
> > > regards,
> > > jay
> > >
> > > On Mon, 2009-07-06 at 10:38 +0200, Charl Wentzel wrote:
> > > > Hi Guys
> > > >
> > > > I think it would be a good idea if we created a quick thread to through
> > > > around a few ideas on the system design and functionality before I
> > > > update the wiki.
> > > >
> > > > 1. Language
> > > > Both Python and C++ were suggested for the development of the installer;
> > > > Python for its spead of development, C++ since it is the core on which
> > > > Linux was build and the language most people know. They are both great
> > > > and I don't mind either. So I guess its up to you guys to decide.
> > > >
> > > > 2. Apt
> > > > Since we'll be installing packages it makes sense using the tools that
> > > > are already available. The best one for us would be apt (apt-get and
> > > > related tools). Once you've worked your way through the questions and
> > > > selected the options you want apt will do the actual installing of
> > > > packages.
> > > >
> > > > And of course both Python and C++ have API's/libraries for apt, so
> > > > building an app with apt integrated into it is also possible.
> > > >
> > > > 3. Database
> > > > The knowledge base must be stored in a database. There were some
> > > > discussions on the use of a database. MySQL was suggested. It also
> > > > allows you to build the database directly into the application rather
> > > > than using a db server or client.
> > > >
> > > > This will require carefull consideration. We might want to access both
> > > > the database on the Devbuntu site and(/or) a local copy. The server
> > > > installation will cover both, but will also require the database server
> > > > to run on the local machine. Suggestions? Maybe MySQL client to access
> > > > the web server and integrated client libraries to access the local copy?
> > > >
> > > > 4. Application Definition
> > > > XML was suggested for storing the questions, categories, etc. which
> > > > defines how the installer would work. This is a cool idea as this would
> > > > allow each application for the installer (eg. development, multimedia,
> > > > education, etc) to have its own operation/identity. In fact an upgrade
> > > > for the installer might actually just be an update of the application
> > > > definition and not the executables
> > > >
> > > > Of course MySQL could also be used to store this info, but if you want
> > > > to store information about the database to use, it will have to be in a
> > > > file. On the other hand, XML is much easier to manipulate by manually
> > > > if you want to develop (or play with) the installer.
> > > >
> > > > 5. DevBuntu API
> > > > Most of the above will have to be packaged in a library on which we can
> > > > build the different interfaces... and of course to allow the creative
> > > > comuity out there to create there own front-ends. This library/API will
> > > > probably take a lot of effort to design.
> > > >
> > > > We'll need to consider all the operations/functions we wish to perform
> > > > and allow for flexible commands to do it with. This might actaully be
> > > > done parallel with designing a gui as the gui will give you a great idea
> > > > of what you need.
> > > >
> > > > 6. CLI
> > > > We've spoken about using the CLI to support legacy, but after thinking
> > > > about it, it might not be so practical. How do you guide someone
> > > > through questions and selections on the command line and still have
> > > > something that is user-friendly. If you must ncurses seems to be the
> > > > better route if you have to go text.
> > > >
> > > > 7. GUI
> > > > The most obvious starting point would be GTK+ as this covers the "main
> > > > stream" Ubuntu. A Qt version can also be done for the Kubuntu guys,
> > > > etc... as long as they both use the same DevBuntu API.
> > > >
> > > > So this is the structure the way I see it:
> > > >
> > > > |------Possible Front-ends-------|
> > > > NCurses GTK+ Qt .....
> > > > \ | /
> > > > \ | /
> > > > DevBuntu API/Library
> > > > / | \
> > > > / | \
> > > > KnowlegeBase Apt App Def File
> > > > (MySQL) (apt-get) (XML)
> > > > |-------Tools/dependencies--------|
> > > >
> > > >
> > > > Does this work for you? Would love to hear your comments.
> > > >
> > > > Charl
> > > >
> > > >
> > > > _______________________________________________
> > > > Mailing list: https://launchpad.net/~dubuntu-team
> > > > Post to : dubuntu-team@xxxxxxxxxxxxxxxxxxx
> > > > Unsubscribe : https://launchpad.net/~dubuntu-team
> > > > More help : https://help.launchpad.net/ListHelp
> > >
> >
>
References