Previous Entry | Next Entry

PackageKit and apt incompatible

  • Apr. 13th, 2008 at 4:00 PM

I wanted to provide a technical critique in relatively low-visibility but that's apparently not going to be possible now due to the actions of Rob Taylor. Rob, pointing out that the Emperor Has No Clothes seems important enough to mention it to the fucking Emperor; not "stop energy"--this exercise in a circle-jerk on Planet is. You apparently didn't bother to familiarize yourself with the technical barrier of which I am speaking: any .deb package may need access to STDIN during its installation process.

This is a long-standing policy. It's probably not the best practice but that's the way it is. This practice predates yum's, RedCarpet's, yast's and up2date's existences. To arbitrarily decide as a front-end--nay, THE front-end to end all front-ends--that you're not going to allow this to occur is the kind of hubris that comes from myopically paying attention to only the requirements of the distribution funding the project and ignoring the requirements of other systems--especially when the package management system in question is the one used by the most successful distro. to date (Ubuntu). Time and time again, RedHat manages to have this same god-damned scenario play out, year after year after year. Maybe it's not standard operating procedure to pretend that you're the only game in town, but it sure fucking looks that way from the outside.

Richard Hughes replied to my comment on his blog, thusly:

it appears that PackageKit is fundamentally incompatible with dpkg

I'm sorry, but that's completely wrong. It means forcing a wrapper around dpkg to enforce a common abstraction, as we can't expect end users to interact with shells and other insane stuff like that. It's all documented in the FAQ.

This is phenomenal arrogance. Who are you to decide how distributions should implement their packaging systems? Are you going to waltz in to the highly political Debian development process and demand that the Technical Committee put to a vote a constitutional amendment requiring packages to not occasionally need input? Of course you aren't. It would never pass. It's infinitesimally unlikely that the Debian and Ubuntu ecosystems would bend their long-standing, working systems to allow PackageKit to front end them if PackageKit forces fundamental changes to packaging policy.

So, going back to Gnome module maintainership: what kind of an asshole would I be if I added code to my responsible module that only works on RedHat-derived systems? More of an asshole than I'm making myself out to look like right now, that's for sure.

Proposed solution: make PackageKit do exactly what synaptic has been doing for the past three years: when a package install process blocks on file descriptor 0, unhide a hidden VTE widget. As it stands now, none of the publicly facing Ubuntu or Debian PacketKit pages have proposed any other solution to the problem, and it appears there's no other proposed solution on the mailing list. (Take care to note that this has nothing to do with debconf.)

This has the added benefit of making it possible for any user on any distro. to unhide the VTE window when something goes wrong--and we all know that something goes wrong with package managers all the time.

When PackageKit supports more than RedHat-derived systems, I would love to support it. Let's get there before we start adding distro.-specific support all over Gnome.

Update 2008-04-14 11:46 PM: A poster who posted nine replies to this and the later post has been banned after being warned not to continue to spam my blog. All comments that display as screened were by the banned party.

Comments

( 62 comments — Leave a comment )
(Anonymous) wrote:
Apr. 13th, 2008 10:03 pm (UTC)
Wow
I know you haven't signed the GNOME code of conduct, but its still disappointing to see a grown man act like you are.

http://live.gnome.org/CodeOfConduct
[info]jasondclinton wrote:
Apr. 13th, 2008 11:51 pm (UTC)
Re: Wow
I said I was being an asshole. I'll also point you to the long legacy of people in FOSS getting pissed off and occasionally showing it, publicaly. Rob's post made me palpably angry.

The most recent example in they Gnome community was probably Murray's admonition to not vote for Jeff Waugh for the Gnome Foundation board. There are plenty of other examples, of course.

Yes, what I said is ugly, but it's honest. That's something, I guess.
Re: Wow - (Anonymous) - Apr. 14th, 2008 12:09 am (UTC) Expand
Re: Wow - [info]jasondclinton - Apr. 14th, 2008 12:42 am (UTC) Expand
Grow up. - [info]fragglet - Apr. 15th, 2008 12:42 pm (UTC) Expand
(Anonymous) wrote:
Apr. 13th, 2008 10:09 pm (UTC)
But terminals suck?
As I understand it, the point of PackageKit is exactly to replace command line interfaces, so embedding VTE is the problem, not a solution.

By your logic, GNOME should not use graphical interfaces at all, because else text-only distributions can't use it. This doesn't make any sense.
(Anonymous) wrote:
Apr. 13th, 2008 10:15 pm (UTC)
Re: But terminals suck?
Jason,
A) calm down man, don't blog angry!
B) actually I am aware of the issue and I've talked with Richard about it, see my blog update. Debconf was one of my first interests in the debian project.
Re: But terminals suck? - [info]jasondclinton - Apr. 13th, 2008 11:52 pm (UTC) Expand
Re: Stupid Question - [info]hughsient - Apr. 14th, 2008 12:18 am (UTC) Expand
(Anonymous) wrote:
Apr. 13th, 2008 10:18 pm (UTC)
Agree completely, but you were a bit rude. One of the things i hate the most is the rpm based distros, they have the wrong concept of how programs life cycle works on a distro, thus i dont think he is the appropriate person to work on that but well it will probably fail as a front end as MOTU are not dumb ppl, neither debian maintainers.
[info]zdzichu.openid.pl wrote:
Apr. 13th, 2008 10:22 pm (UTC)
Other system
PK supports conary based systems and Slackware IIRC. So at least 4 packaging systems.
[info]hughsient wrote:
Apr. 13th, 2008 10:32 pm (UTC)
Re: Other system
It supports apt, alpm, box, conary, opkg, pisi, poldek, smart, yum, and zypp. See http://www.packagekit.org/pk-faq.html for what backend supports what.
Re: Other system - [info]zdzichu.openid.pl - Apr. 14th, 2008 08:18 am (UTC) Expand
[info]davidz25 wrote:
Apr. 13th, 2008 10:28 pm (UTC)
Sigh
So I don't think it's technically hard to implement whatever is needed to support that feature of dpkg. The thing is, people designing for more than just UNIX experts thinks that displaying stuff like this

http://tieguy.org/blog/2008/04/11/second-worst-dialog-i-saw-during-a-recent-ubuntu-upgrade/
http://weblogs.mozillazine.org/gerv/archives/2008/04/upgrading_to_hardy.html

is a big mistake. Not that I pretend that you disagree these dialogs are crack, just saying these are the eye-sores that would disrupt the user in a very annoying way. But I guess you'd only get them on Debian/Ubuntu so personally I'd be fine in making PackageKit support such a dubious feature.

And, if you're so angry with Red Hat, at least take the time to spell the name correctly. Thanks.
(Anonymous) wrote:
Apr. 13th, 2008 10:33 pm (UTC)
I'm bothered by your apparent obsession with the concept of an evil or self-centred Redhat. It's not true. It's this self-infatuation that is beginning to drive me away from Ubuntu to less arrogant distributions.
(Anonymous) wrote:
Apr. 13th, 2008 10:45 pm (UTC)
It had to be said
I agree with you. Not with the tone, but this had to be said. I agree with the arrogance even though I perceived it as naivete -- trying to make a catch-all, be-all package manager abstraction without covering this very important case of debian-derived distributions.

Yes I am diehard pro-debian and I haven't even used it and derivatives more than three years; I think it already looks like debian can't and doesn't want to be part of this package-kit project. Unless this is solved.

It should be pointed out that PackageKit is driven by very modern and respectable ideals. But more homework should have been done on the point of the minimal required features, and trying to bring in all players on this. APT is not a small player.
--ulrik http://users.student.lth.se/f04us/
[info]suppressingfire wrote:
Apr. 13th, 2008 10:53 pm (UTC)
Re: It had to be said
Perhaps a better way to deal with it is to create a freedesktop standard that can be implemented by either PackageKit's backend or Synaptic's backend.
Re: It had to be said - (Anonymous) - Apr. 14th, 2008 10:08 am (UTC) Expand
Re: It had to be said - [info]hughsient - Apr. 13th, 2008 11:04 pm (UTC) Expand
Re: It had to be said - (Anonymous) - Apr. 13th, 2008 11:19 pm (UTC) Expand
Re: It had to be said - (Anonymous) - Apr. 14th, 2008 02:41 am (UTC) Expand
Re: It had to be said - (Anonymous) - Apr. 14th, 2008 01:06 pm (UTC) Expand
(no subject) - (Anonymous) - Apr. 13th, 2008 11:00 pm (UTC) Expand
[info]hughsient wrote:
Apr. 13th, 2008 11:08 pm (UTC)
Re: It's Time for Debian to Die
>Is DPKG really so poorly designed

No, it's got a really nice configuation system called debconf that we can tell "just do the default" and then everything is rosy.

Unfortunatly, debconf is optional, and lots of .deb files just open up a stdin and ask the user for random input. Now, I call those packages 'broken'. Controversial, but it's just insane to block the transaction half way through and ask random questions in a shell.

Richard.
Re: It's Time for Debian to Die - (Anonymous) - Apr. 13th, 2008 11:25 pm (UTC) Expand
Re: It's Time for Debian to Die - [info]jasondclinton - Apr. 14th, 2008 12:03 am (UTC) Expand
Re: It's Time for Debian to Die - [info]hughsient - Apr. 14th, 2008 12:15 am (UTC) Expand
Re: It's Time for Debian to Die - (Anonymous) - Apr. 14th, 2008 12:51 am (UTC) Expand
Re: It's Time for Debian to Die - [info]burtonini.com - Apr. 14th, 2008 06:58 am (UTC) Expand
Re: It's Time for STDIN in postinst - [info]nchip - Apr. 14th, 2008 08:32 am (UTC) Expand
Re: It's Time for STDIN in postinst - [info]hughsient - Apr. 14th, 2008 09:55 am (UTC) Expand
Re: It's Time for Debian to Die - [info]jasondclinton - Apr. 14th, 2008 12:05 am (UTC) Expand
Re: It's Time for Debian to Die - (Anonymous) - Apr. 14th, 2008 01:43 am (UTC) Expand
(Anonymous) wrote:
Apr. 13th, 2008 11:02 pm (UTC)
"More of an asshole than I'm making myself out to look like right now, that's for sure."

I dunno...this'll take some beating.
(Anonymous) wrote:
Apr. 13th, 2008 11:15 pm (UTC)
Hear hear!
This looks just like the usual problem when a set of developers (1-many) take the GNOME way of doing things one or a few steps too far, generally trying to be "minimalistic" and "do the right thing" by cutting away all functionality until all that remains is their own little subset of preferences.

Other examples include Epiphany (no sane user ever uses more than 3-5 tabs, because I don't! No need to have manageable tabs!) and gnome-screensaver (I don't configure screensavers, so if they need it, say a text should be displayed, then they are broken!).

Don't get me wrong, the GNOME philosophy of having sane defaults and treating any preference as a potential bug is a fantastic way to do better interfaces, but sooooo many people misinterpret that as hard rules that must be enforced.

I "blame" Havoc and Joel Spolsky for writing excellent articles on the subject, but making them more than a few paragraphs so many people stopped reading them too early. At least that's my best guess at what happened.

Too bad. PackageKit sounds like a great idea. Almost as good as uniting on a common format.
(no subject) - (Anonymous) - Apr. 13th, 2008 11:22 pm (UTC) Expand
Re: Hear hear! - (Anonymous) - Apr. 13th, 2008 11:31 pm (UTC) Expand
Re: Hear hear! - (Anonymous) - Apr. 13th, 2008 11:33 pm (UTC) Expand
(no subject) - (Anonymous) - Apr. 13th, 2008 11:28 pm (UTC) Expand
(Anonymous) wrote:
Apr. 13th, 2008 11:38 pm (UTC)
Re: Thanks for Enforcing Old Sterotypes
While it's true Jason isn't helping Debian's cause with this post, I find it funny you judge Debian with dselect - which I haven't used in the last 8 years. And I haven't seen effective package management aside from Debian-derived distros. dpkg, apt-get, debconf are great tools. I don't write all of these off just because there's a historical wart with stdin use. I'd rather have that than dealing with low quality package archives, slow tools, bad policy, compiling things myself etc.
Re: Thanks for Enforcing Old Sterotypes - (Anonymous) - Apr. 14th, 2008 12:56 am (UTC) Expand
Re: Thanks for Enforcing Old Sterotypes - [info]hub_ - Apr. 14th, 2008 01:51 am (UTC) Expand
(Anonymous) wrote:
Apr. 13th, 2008 11:59 pm (UTC)
Stupid Question
OK - stupid question time from an anonymous end-user:

If Debian/Ubuntu are moving to debconf, under which PackageKit will function with default values all hunky-dory, then what is the issue here? Is Debian/Ubuntu just pissed because they won't be getting in on the "ground floor"?

PackageKit will work with your distro when you clean up your input/default value handling, which you readily admit isn't what you want it to be and you are already in the process of migrating to something better.

Why should PackageKit have to spend resources to support some functionality/process you are in the process of migrating away from?

It seems to me like it makes more sense to continue working on your debconf migration, and PackageKit will be waiting for you when you get there. Probably further improved, since they didn't have to take time to support your older methodology which you are in the process of abandoning.
[info]jasondclinton wrote:
Apr. 14th, 2008 12:14 am (UTC)
Re: Stupid Question
There is no movement. debconf and this STDIN usage are both ancient policies. No one has started the dialog about changing policy to disallow STDIN.
(Anonymous) wrote:
Apr. 14th, 2008 01:38 am (UTC)
Error?
Isn't infinitesimally unlikely the EXACT opposite of what you meant? Cause infinitesimal for all I know means something super duper small. GO GNOME!!!
[info]jasondclinton wrote:
Apr. 14th, 2008 01:46 am (UTC)
Re: Error?
Fixed.
(Anonymous) wrote:
Apr. 14th, 2008 03:46 am (UTC)
Rudd-O here: my opinion
Here's my reply: http://rudd-o.com/archives/2008/04/13/dpkg-is-braindead-jason-youre-wrong/
(Anonymous) wrote:
Apr. 14th, 2008 07:20 am (UTC)
Re: Rudd-O here: my opinion
I have a hard time caring about someone who thinks that libc deployments should be future compatible (http://rudd-o.com/archives/2008/01/04/a-short-rant-on-ubuntu-and-dpkg-fuck-you-dpkg/).
Re: Rudd-O here: my opinion - (Anonymous) - Apr. 14th, 2008 09:57 am (UTC) Expand
Re: Rudd-O here: my opinion - (Anonymous) - Apr. 14th, 2008 05:57 pm (UTC) Expand
[info]juankprada wrote:
Apr. 14th, 2008 05:51 am (UTC)
Stop criticizing and start helping
Im not a profesional developer, nor im an expert in .deb packaging or Debian/Ubuntu's based distros so i cant argue about how packagekit works with in ubuntu. All i can say is you are judging a tool for trying to do what no other tool have tried to do ever (unify package management in linux). Take into a count it is still in its earlier stages, and yes it is more supported on red hat systems just because Richard uses those kind of systems so what were you expecting? ... i see you criticize this and that about packagekit... but you dont see that there is already some people working on the apt backend for it, so instead of criticizing like that, start helping, you seem to know a lot about apt so dont just start complaining about why packagekit doesnt do things the way you want and join the development of the apt backend so it fits with in the standards you seem to know.... and if you cant help for any reason then dont say a word about it. If you are not helping then let the ones involved in the project do their job.
(Anonymous) wrote:
Apr. 14th, 2008 07:44 am (UTC)
> So, going back to Gnome module maintainership: what kind of an
> asshole would I be if I added code to my responsible module that
> only works on RedHat-derived systems? More of an asshole than I'm
> making myself out to look like right now, that's for sure.
>
That's the one thing in your post that is completely 100% wrong. Any solution that works somewhere is better than a solution that does not work at all. And if Debian distros can't provide a good abstraction to their packaging system, it's their fault and the rest of the world doesn't have to suffer from it.

Benjamin
(Anonymous) wrote:
Apr. 14th, 2008 08:58 am (UTC)
Terribly disappointing behaviour
I think by now you should have had your questions answered:
1. A debian package asking random questions through STDIN is a BUG. The behaviour is deprecated and should go away. PackageKit supporting this behaviour just prolongs that behaviour.
2. PackageKit supports more than just Red Hat derived systems.
3. Hughes has been trying to come up with a GOOD solution, not a solution based on old cruft.
4. Ranting like an arsehole is ridiculous behaviour regardless of whether you say you are an arsehole or not.
(Anonymous) wrote:
Apr. 14th, 2008 09:38 am (UTC)
Arrogance
"it appears that PackageKit is fundamentally incompatible with dpkg"

This is phenomenal arrogance

Severe case of pot/kettle disease
(Anonymous) wrote:
Apr. 14th, 2008 09:52 am (UTC)
"what kind of an asshole would I be if I added code to my responsible module that only works on RedHat-derived systems?"

I don't know, but... Yet you people (GNOME Developers in general) do this *constantly* by adding incompatibilities with non-Linux systems. (Think BSD or Solaris.) GNOME behaves very badly in any of these systems and gives a very bad impression of them because even the most trivial things do not work due to the amount of "abstraction" layers in between that are completely focused on Linux.
(Anonymous) wrote:
Apr. 14th, 2008 11:00 am (UTC)
Let's calm down
PackageKit is nice frontend for installing packages (but I still see Ubuntu apps as better for now). It is their decision and I hope they will find how to inform users about packages with stdin/stdout and what to do with them. My pick such packages are getting less and less, even in Ubuntu/Debian, so I think it is not much to worry about. So let's keep flames and stop calling names :)
(Anonymous) wrote:
Apr. 14th, 2008 11:41 am (UTC)
Not only it's a bug ...
Not only is asking from questions on STDIN and using a hidden VTE terminal a bug ...

It's also a very serious security problem. Especially when the Ubuntu guys run the entire GNOME application that hosts the VTE widget as root (which they do, and which is stupid).

Not only that, they also run the apt-get and/or dpkg process as root in that window under a shell. And not only that, they also made the VTE widget writable. So I can send from a user-program a CTRL+C to the apt-get or dpkg process and get a root shell back.

Being a programmer I can come up with hundreds of possible vectors to exploit that.

Ubuntu is just lucky that they don't have as much users as Microsoft Windows has.

-- Philip Van Hoof, software developer and GNOME contributor who doesn't want to make LiveJournal and/or OpenID accounts.
(Anonymous) wrote:
Apr. 14th, 2008 11:58 am (UTC)
Also note about that last comment ...
That I did file a bug about this, that the Ubuntu people did respond like as if I was saying something stupid and that they did close it as invalid.

Yet I do probably know about the code that is involved (The VTE widget and the GNOME libraries), that I do know that the GNOME libraries are absolutely not designed with security in mind. I also do have multiple examples in the code that show, very clearly, that the GNOME libraries are absolutely not designed with security in mind.

I even have an E-mail by one of the original VTE developers stating that running a VTE widget as root in a predictable way, hidden or not hidden, is absolutely and definitely a serious security risk.

The person sent me that E-mail as a response to an announcement that I made about GNOME Xsu, which was a gnomesudo-like application that I made several years ago and that also used a VTE widget to send the password to the SU binary.

So please don't start replying: "then file a bug, bla bla bla"

When you do file a bug about this, they (Ubuntu people) will close it quickly.

I even proposed an ad-hoc solution for this: working with a SUID root binary that gets commands from the user-process, rather than running the entire GNOME application with sudo (therefore, as root).

I think PackageKid's solution is even better: provide a good and standardized framework for those questions, let it use an IPC (which is what the "gets commands from the user-process" would have been about, too).

It's actually the right architecture for this.

Having a hidden VTE widget in a GNOME application that runs entirely as root, is creating a situation that can be exploited in hundreds of ways.

It's a ticking time-bomb that will leave the Ubuntu developers in awe as soon as somebody actually does make a working exploit for this. For example when Ubuntu indeed has a really huge user-base (under the assumption hat this will happen).

-- Philip Van Hoof
(Anonymous) wrote:
Apr. 14th, 2008 12:34 pm (UTC)
Re: Also note about that last comment ...
Agreed on VTE and stdin use.

Only, it seems PackageKit devs (unless they've changed their minds recently) want absolutely zero user interactions. See: http://www.packagekit.org/pk-faq.html#user-interaction

Debconf is a nice abstraction for a whole bunch of questions, and can be run in silent mode or in 'ask-me-a-boatload-of-questions'-mode depending on the user's preference. I'm pretty sure that technically it should be possible to make debconf play nice with PK.

The PK people OTOH just say that the user's preference should be ignored, despite the fact that the Debian people obviously feel there's good reason for these questions to be there.

The PK people also seem to want to add specific flags and messages like "LicencePromptRequired(s=licence_enum, s=company, s=eula_text)", which - unless I'm completely misunderstanding it - would be better done with a more general question infrastructure (like Debian already has).

Maybe I'm giving the wrong impression, but I really like PackageKit. I even can understand where they're coming from with the "zero interaction" thing. It's just that from my personal point of view, it's a trade-off too far: I personally wouldn't use it at all if I was forced to use the default debconf answers - even though I'd like to.

Re: Also note about that last comment ... - (Anonymous) - Apr. 14th, 2008 05:29 pm (UTC) Expand
(Anonymous) wrote:
Apr. 14th, 2008 12:44 pm (UTC)
> When PackageKit supports more than RedHat-derived systems, I would love to support it.

Just for your notice, Farsight is no RedHat-derived system. And they're using PK by default.
[info]mswilson wrote:
Apr. 15th, 2008 05:56 am (UTC)
That's Foresight, not Farsight. And yes, it uses Conary and not RPM.
(Anonymous) wrote:
Apr. 14th, 2008 01:09 pm (UTC)
also i don't like how you talk about red hat as if "they want to kill all other distributions".

just look how many kernel developers they employ and how many patches they contribute to upstream and compare it to others. also, they make it really easy to create RHEL derivates like Centos.

Fedora has a policy to try to do as much as possible upstream afaik which is good. this way, other distributions like debian and ubuntu profit very fast from it.

you may also want to have a look at http://fedoraproject.org/wiki/RedHatContributions

understand it, red hat is NOT evil, you are profiting from it on your linux desktop.

also, packagekit would work fine with APT and DPKG if the dpkgs would be fixed up (mentioned above). so theretically, PK's architecture is fine.
( 62 comments — Leave a comment )

Profile

grayscale, me, portrait
[info]jasondclinton
Jason D. Clinton

Latest Month

October 2009
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031

Tags

Page Summary

Powered by LiveJournal.com
Designed by Tiffany Chow