Notes on the Google Chrome™ Debian package

2009.12.08 22:23 by Leo Antunes - 9 Comments

Just some quick superficial observations on the Debian/Ubuntu package distributed by Google:

  • Most files are installed in /opt/google/.
  • It attempts to patch /usr/share/gnome-control-center/gnome-default-applications.xml on postinst (maybe legacy compatibility? Someone with more gnome-fu than me care to explain?).
  • The postinst also automatically adds a souce for updates to /etc/apt/sources.list.d and an archive key (this is IMHO the worst part)
  • It includes a daily cronjob that – at least at first glance – tries to do the same things the postinst did (new apt source, archive key, etc) and some further archive configuration. The cron script is called at the end of postinst.
  • A casual look at objdump suggests it’s statically linked to libv8
  • On a slightly more positive note, it at least seems to successfully undo most of the changes once removed, with the exception of the added archive key and the above mentioned patch to gnome’s default apps list (that is: if there’s any situation it actually gets applied).

I understand it might be too much hassle doing it the right way (from the corporate POV), but then why not simply cooperate a bit more with the community? Hopefully they’ll accept some criticism and suggestions.
Or even better: they could simply reuse all the work being done to officially package Chromium.

UPDATE: forgot to mention that the version string (something like “”) doesn’t follow policy. Not a huge deal for a non-distributable package, but in the name of forward-compatibility – if Chrome ever becomes fully open-source – it could be smart to adopt something like “”.

  1. A shame – I pointed out at two of those issues a while ago (I got the impression that “Evan M” (who commented on my blog about it) was from Google, but I’ve no evidence from it (his email address isn’t FWIW).


  2. […] This post was mentioned on Twitter by Andy Price and Planet Debian, Justin Randell. Justin Randell said: woo, so much #google_fail in one week: […]

  3. re: the static linking of libv8, they’ve previously mentioned that dynamic linking v8 results in a measurable performance hit, due to losing a register for PIC.


    Makes sense, but this comes at the cost of a bigger RSZ.
    I don’t mean to say this is necessarily a bad thing, though: I haven’t bothered to check how big libv8 is and how big of an RSZ impact static linking could have, so I won’t judge their decision. It was originally meant just as a comment on packaging practices.


  4. iceweasel package is also happly linking to libs statically…
    e.g libtheora

    % strings /usr/lib/xulrunner-1.9.1/ |grep -i libtheora
    Xiph.Org libTheora I 20081020 3 2 1
    % ldd /usr/lib/xulrunner-1.9.1/ |grep -i libTheora


    I’m not familiar with Iceweasel’s packaging to pitch in, but my answer to the comment above still stays: I don’t think it’s necessarily a bad thing. Certainly easier than expecting people to download a series of debs and manually install them in the right sequence.

    The point – which I should have made clearer – is simply that this work could have been invested in doing it the right way. And by “right way” I mean preserving the idea of distributions as integrators, and as such, empowering them to integrate your software for you. Going against this simply because you are the 500 pound elephant in the room could potentially weaken the same distributions they’re aiming at supporting.


  5. i’ve never understood why someone wants to open the debian keyring for third party binaries…i like chrome a lot. the v8 javascript engine is amazing. i download the latest snapshot here

    then put it in ~/bin – e basta!

    do i deserve a broken keyring? only id i’m stupid! do i deserve, that somebody messes with my box? only if she is a debian ftp-master ;)!


  6. IIRC the google search desktop Debian package also has a cronjob that looks for updates and installs them if it finds any. Ugly.


  7. Where are all those hired DDs? :)
    Maybe they forgot to apt-get install lintian (and run it on the debs!)