Showing posts with label portage. Show all posts
Showing posts with label portage. Show all posts

Tuesday, April 15, 2008

portage/pkgcore rhyme

Please don't kill me for the bad rhyming :)

I sit down to emerge -av
It churns through the dependencies
I get frustrated in 2 minutes
pmerge -a is what was amiss

I alias `emerge` to spit out a warning
that a crappy PM is what I'm invoking
Now I'll remember to always use;
pmerge so my time's not abused!


Comments on the crappiness of these lines are welcome.
More such rhymes revolving around Gentoo are even more welcome ;)

Sunday, March 30, 2008

portage-talk, gsoc, gentoo, ntgwn, and more

A lot has been happening in the past two weeks, but I'll (try to) keep the post relatively short.


  • portage-talk - A "library" of bash functions that can be used to talk to Portage (the tree + package db). It's basically for use in bash scripts to get data about installed packages, ebuilds, etc. It aims to be blazing fast and have minimal dependencies (nothing beyond bash + coreutils). This also means that the code isn't very pretty ;)

    I've been hacking on it on and off over the past week, and hope to have it good enough shape to shamelessly boast about it to more people :)


  • GSoC - So, tomorrow is the deadline for submitting apps (which is likely to be extended following tradition ;). I submitted my abstract and proposal yesterday, and I'm currently keeping my fingers tightly crossed (along with the occasional running around in circles screaming and giggling at the same time).

    Steev and Patrick & Patrick and Steev have expressed interest in co-mentoring me (Gentoo projects have two mentors); let's see how everything turns out :)


  • Satya also applied for GSoC this time. Her proposed project is the deceptively simple-looking idea to rewrite/extend Bootchart using Systemtap. Her mentor-if-she-gets-selected is Eugene Teo, who (going by what she's been telling me) has been an excellent (pre-project-acceptance) mentor; who is extremely patient, understanding, and an overall gem of a guy.


  • GNOME 2.22.0 is (mostly) in-tree - The Gentoo GNOME Herd has almost completed moving GNOME 2.22 from the overlay to the tree. They have done a wonderful job by fixing a ton of bugs in just this month. As soon as all the bugs blocking the GNOME 2.22 tracker are resolved, and a few more reds converted to green on the gnome-2.22 status page, GNOME 2.22 will be unmasked, and users will be able to revel in the joy that is 2.22 :)


  • Not The GWN - New issue released by Patrick!


  • xulrunner-1.9 and mozilla-firefox-3 will be added to portage (p.masked) by armin76 when the beta5 is released :-)


  • rohitj wrote an XChat plugin for dpaste (and has been bugging the rest of us to try it out for the past two days ;)


  • More stuff that I can't remember :-/


  • Update: Another NTGWN issue released by Patrick :D

Wednesday, October 3, 2007

Webbeagle, TheOneBackend, PackageKit, and God


  1. Read about Webbeagle.

  2. Read about TheOneBackend

  3. Read about PackageKit

  4. Read about God.



  1. => dBera's illegitimate child, and something I have been hacking on for the past 2 weeks.

  2. => Necoro's illegitimate child, and something that will be hacked on in the future

  3. => Hughsie's illegitimate child, and something I will be writing a portage backend for.

  4. => A very interesting way of looking at everything.

Friday, September 21, 2007

One Backend fer 'em all

I had always looked at Ubuntu's 'Add/Remove Programs' app (gnome-app-install) and wondered whether it would ever become cross-platform and bring its unique simplicity to other desktops. Then, a few days ago, I came across PackageKit on #gnome-journal. At first I could not believe what I was reading, the cross-platform application installer I had always fantasized of was here at last! Over time, my enthusiasm faded.

Discussions with Necoro on #gentoo-guis caused my opinion about PackageKit's awesomeness to lessen as I realised that in its current state, PackageKit's simplicity undermines the main feature of Gentoo -- choice. There is currently no way to map USE flags to PackageKit's UI or its backend (although I think it could probably be abstract-ised in some way). Gentoo without USE flags is... what can I say?

It was after this discussion that Necoro came up with this brilliant plan of having one backend to support all the GUIs for Package Management in Gentoo. He then emailed a couple of people and posted his ideas on the gentoo-guis Mailing List.

His basic idea is that GUIs should be able to concentrate on getting the UI right and not having to worry about the talking with Portage/Paludis/pkgcore part. They all do the exact same thing there anyways (though some disagree ;), so lets save a lot of duplicated effort and give them One (highly optimised) Backend which they can all use, and after that they can happily concentrate on getting the UI to "Just Work" or whatever :)
Another big advantage of this is that any GUI using the backend will then support _all_ the Package Managers supported by Gentoo, a very desirable feature.
Its a great idea, and the architecture for it started out in a DBus-fanboyish style ;)

Package Managers
|
(bindings)
|
V
Provider Daemons
(in the same language as the Package Manager)
|
(DBus)
|
V
Backend Daemon (Python)
|
(DBus)
|
V
GUIs (Any Language)


This kind of crazy architecture was "envisioned" as a solution to the multitude of languages that were being used to make the Package Managers (Python, C, Perl) as well as the GUIs (Python, C, Haskell). Then, araujo brought us back to our senses by thumping us on the head with the proverbial `C_bindings_dammit!` hammer :)
The architecture then transformed into the much much cleaner

Package Managers
|
($lang-to-C Bindings)
|
V
Backend Daemon (in C)
|
(???)
|
V
GUIs (Any Language)

And so we come to the point of debate, namely, (???). Should the interfacing between the Backend Daemon and the GUIs be via bindings (in the same way as with the Package Managers), or should it be via DBus?

Some points in favour of bindings:

  • No need for a daemon backend process

  • Probably Faster

  • Might be easier to integrate into existing GUIs



The points in favour of DBus:

  • Interface/Communication becomes very simple due to the nature of DBus. Its communication based model means things can be kept abstract, slim, and trim ;)
    (for an example, see the DBus interface of packagekit)

  • Now that the communication is completely clear, making UIs for it becomes easier, For an example, see this Ars Technica article on DBus + Pidgin.
    Another example would be a (almost trivial) systray applet which could notify you of new updates :)

  • And then, best of all, integration with other apps (like beagle -- tell it to not index when emerging, or deskbar -- install an application by typing its name) becomes possible and opens so many channels of opportunity.

  • Plus, DBus just sounds so darn cool =P



All in all, I'd like to propose the following architecture, which could also - with some work - accommodate itself as a PackageKit backend interfacer for _all_ the Gentoo Package Managers at once :)