Re: Requiring systemd for the gnome-settings-daemon power plugin

2012-10-22 Thread David Zeuthen
Hey,

On Mon, Oct 22, 2012 at 11:18 AM, Brian Cameron
brian.came...@oracle.com wrote:
 Most readers would likely need
 to review the code to understand what specific power features are
 actually being described here or why they might need logind.  Most
 rows in the table are like this, so this matrix is only a very
 useful guide if the reader has many hours to invest to understand
 how the information applies to them.  To me, the matrix looks more
 like a draft of an outline to a guide, but it is a start.

You are talking about shipping a *complete* and *free* (libre *and*
gratis) graphical desktop environment and you're complaining that you
have to spend a couple of hours *reviewing* the code and/or turning
off the features that you *did not* participate in developing because
you choose to use a different OS than the people who actually *did*
spend time working on the feature? I don't think that's fair at all -
and I really have to constrain myself to not use stronger language
here.

Instead, may I suggest getting involved early and voicing your concern
*during development*  so we can either add an abstractions (such as
e.g. GVolumeMonitor, GDrive, GVolume, GMount) or ifdefs or whatever
[1] and avoid situations like this? Surely, the way it needs to work
in GNOME is that if distributors show up and do portability-work (and
it's good enough) [2] it will get merged. But it involves actually
showing up and doing the work and not just sending e-mail. But please
don't expect others to port GNOME to run on your OS.

David

[1] :  Abstractions can happen at several levels: D-Bus interfaces,
Library APIs, #ifdef etc. I think it's up to the maintainer of the
module in question to decide how to handle portability.

[2] : FWIW, GVolumeMonitor and related APIs is a *great* example of
how to handle portability. We've kept the same application-level API
since the beginning and have managed to just swap the implementation
out (hal, udisks1 and now udisks2) without disrupting any application.
And we've made sure it worked on old-skool Unix and the BSDs by having
a 'unix' (e.g. fstab/mtab based) backend as well. But as any GIO/GVfs
developer will tell you, the price is pretty high but in terms of code
complexity and also there's a hit in runtime/login performance because
of its distributed nature.

There's another important lesson to be learned here: portability and
abstractions on the GNOME-side is not only about OS portability - it
also makes it easier to revamp some of the underlying subsystems ...
e.g. I could never have done the hal-udisks1-udisks2 move without
something like GVolumeMonitor so, in retrospect, it turned out to be a
good idea that such abstractions were around. But they come at a cost.
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Requiring systemd for the gnome-settings-daemon power plugin

2012-10-22 Thread David Zeuthen
Hey,

On Mon, Oct 22, 2012 at 1:24 PM, Brian Cameron brian.came...@oracle.com wrote:
 I have heard about this couple of hours.  Is it even possible to
 build the GNOME stack in 2 hours if you run into no problems?

That's not the point. The point is that adapting GNOME to some OS such
as Solaris, Fedora, Ubuntu, OpenBSD or whatever is likely to take a
lot more effort than a couple of hours each release. The point is
that it's not fair to anyone if a *OS vendor* to expect this to be
easy and complain if it's not saying there's not enough
documentation or it doesn't fit in with our schedule.

 I have, over the past years, tried several times to discuss issues
 surrounding portability.  For example, as GDM maintainer I strongly
 recommended against supporting ConsoleKit as a hard dependency in the
 first place.   In hindsight, I think adopting and throwing away
 ConsoleKit was not the best decisions.  In the situations where I did
 voice my concerns during development,

I think we have seen that these two ideas

 1. make GNOME depend on a system daemon and port it everywhere (HAL,
ConsoleKit, for example)
 2. make GNOME depend on a system-bus based D-Bus API and make it work
with several implementations (systemd, upstart, for example)

do not work well in practice. But we didn't know back then, things
like HAl and ConsoleKit all sounded like great ideas!

The thing is that these are the kind of mistakes that we as a project
had to make *ourselves* - it's not something you can just learn. In
that way, failing is *good* - you learn new things from it. As a
project, I think GNOME learnt a bunch from it. FWIW, what seems to
work a lot better is to do the abstraction on the GNOME-side, e.g.
GVolumeMonitor, GNetworkMonitor and so on and then leave it to OSes to
fill that in.

 I did not get the impression
 that my concerns generated much response.

Dude, that happens to all of us at some point.

 I have personally done a fair share of porting work over the years.  I
 do not just send emails.  Have we not met?

We have. But I was making a more broad comment but of course: your
effort is very much appreciated. As is, for example, Antoine's work on
OpenBSD portability. Or the work going into taking advantage of
certain systemd features. Work on GNOME is *always* appreciated and we
don't discriminate based on what OS your are using. But it does
require the work to happen - not so much a long thread about how it's
so much work and how it's hard and so on.

 But please don't expect others to port GNOME to run on your OS.

 I was never suggesting that any others do any sort of port for anyone.
 I was only highlighting that the lack of documentation makes things
 slow.  I am sure that we can improve the situation with some effort.

 Many mature products provide docuemntation to help developers make a
 transition when there is a new major release.  I think GNOME is weak in
 this area.  The fact that GNOME's developer documentation and GUI
 building tools are weak is not a new topic.  Last year I remember
 people talking about how to catch up with KDE in this regards, for
 example.  Unfortunately, I do not think we have yet even accomplished
 this more modest target.

Nah, I really don't think GNOME should be that complicated - we're a
desktop, we're a user experience - we should be more fluid, more agile
than your grandfather's SDK porting kits with committees (or, worse,
mailing lists) having to approve this or that thing. I mean, it's fine
to have this for GLib and GTK+ (and we do [1]) but I wouldn't want to
see us spend that amount of time on GNOME proper - I'd much much
rather see us spend time on improving GNOME or adding cool features.

David

[1] : http://developer.gnome.org/gio/unstable/migrating.html
[2] : http://developer.gnome.org/gtk3/unstable/migrating.html
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Requiring systemd for the gnome-settings-daemon power plugin

2012-10-22 Thread David Zeuthen
Hey,

On Mon, Oct 22, 2012 at 2:05 PM, Brian Cameron brian.came...@oracle.com wrote:
 Right.  So, you probably are not surprised that things are moving along
 slowly either.  :)

Actually I'm quite excited about the development pace for GNOME
nowadays - there are lots of cool *user-visible* features landing in
new releases. The fact that it's hard for some OSes to keep up is an
interesting indicator that the focus in GNOME is more on features than
(boring [1]) abstraction / portability work. I'm not saying that's
100% right - in fact, my previous mails calls for help in that area -
but as an end-user, I'm pretty excited about GNOME. I would definitely
not characterize it as moving along slowly.

As a developer (and working for an OS vendor), I *do* want more OS
vendors to step up and intensify their participation in the project.
Yes, more participation from several different OS vendors might slow
down feature development a bit (for example, landing a *simple*
library-based abstraction for systemd's logind mechanism), but at the
end of the day, it's probably going to be a win for everyone.

David

[1] : I'm entitled to label it this way because I've done a lot of
this kind of work - it really is not very exciting or sexy :-)
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME 3.5.91 second beta release

2012-09-12 Thread David Zeuthen
Hi,

On Wed, Sep 12, 2012 at 1:10 PM, Ray Strode halfl...@gmail.com wrote:
 See http://www.gnome.org/getting-gnome/ for info on how to try the ISO
 out with a usb stick.

In addition to 'sudo dd ...', it might be worth pointing out that you
can use the Restore Disk Image feature in GNOME Disks for this
operation - for more information see my Google+ post about it

 https://plus.google.com/u/0/110773474140772402317/posts/WEBSpELokqf

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: udisks2 [WAS: Re: datetime: Remove datetime D-Bus mechanism]

2012-01-23 Thread David Zeuthen
On Mon, Jan 23, 2012 at 4:50 AM, Olav Vitters o...@vitters.nl wrote:
 On Sat, Jan 21, 2012 at 04:13:58PM -0500, David Zeuthen wrote:
 Not that I know of, no. But I expect that they will make use of their
 abstraction layer thingies.

 I assume they're aware that it is changing?

I think so.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: udisks2 [WAS: Re: datetime: Remove datetime D-Bus mechanism]

2012-01-23 Thread David Zeuthen
On Mon, Jan 23, 2012 at 4:14 AM, Frederic Peters fpet...@gnome.org wrote:
 David Zeuthen wrote:

  @David: could you confirm this? And do you have any ETA for a udisks2
  tarball?

 There is one at http://udisks.freedesktop.org/releases/

 http://www.freedesktop.org/wiki/Software/udisks still points to
 http://hal.freedesktop.org/releases/, could you update that page?

Done, thanks.

 David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: udisks2 [WAS: Re: datetime: Remove datetime D-Bus mechanism]

2012-01-23 Thread David Zeuthen
Hey,

On Mon, Jan 23, 2012 at 10:31 AM, Tomas Bzatek tbza...@redhat.com wrote:
 David, any plans for extending udisk2 support to non-udev/non-linux
 systems?

No plans. In fact, I would recommend that non-Linux simply writers
their own GVfs volume monitors instead if the 'unix' backend isn't
good enough - much easier for everyone.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: udisks2 [WAS: Re: datetime: Remove datetime D-Bus mechanism]

2012-01-21 Thread David Zeuthen
Hi,

On Sat, Jan 21, 2012 at 8:04 AM, Frederic Peters fpet...@gnome.org wrote:
 Johannes Schmid wrote:

 Short note: I removed the udisks and upower rows as they don't
 follow the system of showing the part of GNOME using some technologie.
 Instead those are referred to by the gnome-disk-utility and
 gnome-control-center/power rows which is IMHO the correct way.

 Speaking of udisks, gnome-disk-utility has now been switched to use
 udisks2;

Note that distributors are free to continue using the old udisks1 (and
udisks2 is parallel installable with udisks1) with gnome-disk-utility
3.2.x series as long as they want.

 I can only guess gvfs will follow.

And gvfs will continue to support the existing gdu and hal backends.

So there is really no pressure to switch to udisks2 ...

 @David: could you confirm this? And do you have any ETA for a udisks2
 tarball?

There is one at http://udisks.freedesktop.org/releases/

Cheers,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: udisks2 [WAS: Re: datetime: Remove datetime D-Bus mechanism]

2012-01-21 Thread David Zeuthen
Hey,

On Sat, Jan 21, 2012 at 1:45 PM, Michael Biebl mbi...@gmail.com wrote:
 Seing that KDE still uses udisks1, I'm wondering what happens if one
 compiles gdu/gvfs against udisks2 and starts a KDE app within GNOME. I
 assume this will fire up udisks-daemon 1 and so both udisks-daemon 1
 and 2 are running at the same time. Will they step on each others toes
 in this case?

Nope, works perfectly fine, won't step on each others toes (because
both daemons are written to listen to changes done not by themselves
... mostly so the desktop reacts if you e.g. mount something from the
command-line). A big part of this puzzle, btw, involved pushing media
polling into the kernel ... if we didn't have this then both daemons
would be removable devices. Fortunately, none of them do this now.

 What is your plan for Fedora (given that you also have a KDE spin).
 Will you ship both udisks versions in the archive? udisks2 for GNOME
 3.4 and udisks1 for KDE?

Both udisks1 and udisks2 will be available in the Fedora repos - we're
hoping to only ship udisks2 on the GNOME live cd. I don't know what
the KDE guys are doing, I don't follow KDE closely. I'll probably
retire udisks1 after F17 and then either it dies or someone needing it
will pick it up.

 Do you know of any efforts of getting KDE/Solid ported to udisks2?

Not that I know of, no. But I expect that they will make use of their
abstraction layer thingies.

 @David: could you confirm this? And do you have any ETA for a udisks2
 tarball?

 There is one at http://udisks.freedesktop.org/releases/

 How feature complete do you consider this 1.90.0 release? What is
 missing compared to udisks1? Are any major disruptive changes still
 planned before a 2.0 release?

It's pretty feature complete as far as what was planned - I don't
foresee any big changes apart from bug-fixing. Still holding the right
to break ABI still, but I'm not planning to.

Btw, one thing that we won't support in udisks2 is the various RAID
and LVM bits ... well, we'll still show the fake block devices, such
as the /dev/vg_x61/lv_* ones here

 http://people.freedesktop.org/~david/gdu2-self-test-failed.png

we'll even show the nice names instead of the /dev/dm-N non-sense
names. But we're not going to provide any facilities to manage LVM or
MD-RAID like we tried in the old Palimpsest version. But we'll of
course keep the UI up to date if you use mdadm(8) or one of the LVM
tools from the command-line.

There's also support for a lot of other nice features that we didn't
have with udisks1 such as fstab and crypttab editing, support for
easily setting up loop devices, disk imagine (create/restore) which
IMO are more important. I'll blog about all this next week...

Cheers,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME Online Accounts extensibility

2011-10-10 Thread David Zeuthen
Hi,

On Sat, Oct 8, 2011 at 12:11 PM, Ted Gould t...@gould.cx wrote:
 So to be clear, you see GOA's configurability to be in setting up new
 account groups, but new protocols.  So I could add Corp. Account but
 if my corp. uses a protocol that GNOME OS doesn't use otherwise, I
 couldn't add this.  Trying to understand what configurability you expect
 in the future.

The way to look at GOA is that it's just one provider of accounts. As
I said, GOA is by no means a substitute for having a separate way to
configure an app for accounts - if it was, then GOA would be a choke
point in this way: it just makes no sense to add protocol-support in
both the app and in GOA to make things work - you end up with ugly
dependencies between the app, libgoa and the running goa-daemon(8)
instance. Which makes it really hard to get anything done. So just
from a technical point of view the I want to use GOA to configure
everything is a non-starter, I think.

You should think of GOA as something that the app can optionally
depend on to make using 'suites' of services (e.g. Google, Yahoo) just
work in the sense that you logon once and then the auth token is used
for all services, e.g. mail, chat, calendar etc. And no-one says that
only GNOME apps (such as Evolution) can use this - no one is
preventing e.g. Thunderbird from consuming the same kind of data.

The other thing is that we do not want the UX in the Online Accounts
preference pane to look like this

 
http://people.freedesktop.org/~david/lots-of-account-types-that-i-don't-know-about.png

Not that there's anything per-se wrong with that kind of UI in Empathy
(the same way there's nothing wrong with all the Chrome you find in
e.g. Gimp) - we just don't to expose the user to it if we can avoid
it. The idea of Online Accounts has been from the start that this is
something the user sees in either the OS installer or as part of some
Initial Setup experience, see e.g.

 https://live.gnome.org/GnomeOS/Design/Whiteboards/InitialSetup

So you ask about extending GOA and I've already explained a bit about
that upthread. It's not that I'm 100% opposed to it, heck as I said we
used to read config files, and double-plus-heck, the code is already
using gio extension points, see

 
http://developer.gnome.org/goa/unstable/GoaProvider.html#GOA-PROVIDER-EXTENSION-POINT-NAME:CAPS
 
http://developer.gnome.org/goa/unstable/GoaProvider.html#goa-provider-get-for-provider-type

we just don't read any GIO modules just yet.

As I said upthread, the only reason this is so is basically because a)
providing a stable API for extensions is expensive; and b) providing a
stable config file format is also expensive; and c) it's too easy to
abuse to create substandard UX in the Online Accounts preference pane.

Well, where to go from here? a) and b) will clearly be non-issues
around 3.4 or 3.6 as things stabilize [1]. It's more c) I'm concerned
about. To resolve this we need to work with the designers to make sure
that the UX can scale in the presence of many different account types.

Either way, I don't get why you are so concerned about whether GOA can
be extended. If you buy into the idea that apps will always need to
have a separate panel for non-mainstream accounts then... then the app
can provide the extension point and config-file merging from
.d-directories.

David

[1] : note that we said the same about GVfs and GVfs backends are
still private GNOME API 3 years later. Which turned out to not really
be a problem even though everyone whined about it about the fact that
there is no stable GVfs API. But it works really well for GVfs, heck
we got all the interesting parts _in the GVfs tree_ instead of them
being random 3rd party things seeing less testing. It's similar to how
the Linux kernel works.
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME Online Accounts extensibility

2011-10-10 Thread David Zeuthen
Hey,

On Mon, Oct 10, 2011 at 11:10 AM, Ken VanDine kvand...@gnome.org wrote:
 We discussed this with twitter, and they agreed that including the API
 key in the packaging instead of in the upstream source was good enough
 separation for them.  So for example, in the Ubuntu package we include
 the Ubuntu API key for twitter.  And we recommend all distros to do
 the same.

It would be helpful if you could include the GNOME Foundation,
specifically our Executive Director, in these discussions as one of
the questions we are currently dealing with is exactly how to manage
API keys. As I've said, it's something that we're blocking on in
GOA... in fact, it's why GOA only supports Google because Google still
works without API keys.

(FWIW, my view is that in order for GNOME to keep a straight face,
free software-wise, and for things like jhbuild to work, we need GOA's
configure.ac file to include the API keys for each provider and the
Foundation will need to manage the keys. Whether each downstream
patches in its own keys (for one reason or another) and what the
Foundation's advice in this matter is (do we encourage downstream's to
use the Foundation API keys?) is a separate question.)

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME Online Accounts extensibility

2011-10-07 Thread David Zeuthen
Hi,

On Fri, Oct 7, 2011 at 9:05 AM, Ted Gould t...@gould.cx wrote:
 IMHO, the problem with GOA is its lack of extensibility.  So adding
 something like a corporate account type is difficult if not impossible.
 For instance, if was foo corp, and we had internal mail, jabber and
 status.net services -- I'd like to provide one way to provide this
 configuration and have one place for users to set up their accounts.  I
 think handling this use case could provide some guidance for where GOA
 could go in making users who are corporate environments lives easier.

If you examine the GOA project and its git log, we actually did use to
read config files from /etc/goa-1/config.f and
~/.config/goa-1.0/config.d (or something similar to that). But I
ripped this out as I didn't want to commit to a config file format for
3.2. Why? Because it's never smart to paint yourself into a corner for
new stuff. But no-one says we can't do it for 3.4 or 3.6 or whatever.

In particular, having

 1. a stable config file format; and
 2. .d directories in /etc and $HOME; and
 3. something $USER expansion in config files

combined with the idea of supporting generic IMAP/SMTP/XMPP/Caldav
configurations, see

 https://bugzilla.gnome.org/show_bug.cgi?id=661117

that Patryk filed on my request... then... then GOA can be pretty nice
from a corporate point of view. Because with that the you'd just drop
a single config file in /etc/goa-1/config.d/mail.conf specifying the
$u...@company.com for email, something else for XMPP and so on.

But please note: all this has absolutely nothing to do with Ken's rant.

   David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME Online Accounts extensibility

2011-10-06 Thread David Zeuthen
Hi,

On Thu, Oct 6, 2011 at 12:52 PM, Ken VanDine kvand...@gnome.org wrote:
 I really want to get rid of gwibber-accounts for configuring accounts in
 Gwibber.  It makes sense to use GOA for this,

I don't think it necessarily does, no. See below.

 however gwibber supports
 quite a few social networks as well as supporting third party service
 plugins.  So anyone can add support for a new social network without
 changing gwibber.  So to transition to using GOA, we would need to
 include support for all the social networks Gwibber supports out of the
 box, and provide a way for third party developers to include the
 necessary provider for GOA.

 This really won't be manageable if all the providers need to be merged
 upstream with GOA and included in a release.

 Thoughts?

Well, until we've figured out a story in GNOME for how social
networks are integrated, it just doesn't make sense to add this to
GOA. The more general observation (of which the above is a
specialization of) is that we do not add support for providers P (e.g.
Google, Facebook) or services S (e.g. Documents, Mail, Chat, Calendar,
Contacts) until

 1. we know how it's going to be used in a GNOME release; and

 2. there is something in the GNOME release using it.

Basically: you need to work with the GNOME Designers on figuring out
how social networks fit in.

For GNOME 3.2 we have the following users:

 - Empathy / GNOME Shell (Chat)
 - Evolution (Mail, Calendar)
 - GNOME Contacts (Contacts)
 - GNOME Documents (Documents)

and we still only support Google as a provider. Why? Because Google is
right now the only provider where

 a) we can use anonymous API keys; and

 b) we have support for Google in the above-mentioned apps

The other problem is how to handle API keys. As I have mentioned
before on this list and elsewhere, a couple of months ago I sent a
long mail with legal questions to the GNOME Foundation and I'm still
waiting on a response. Basically, we want to be able to legally ship
API keys along with GOA. So it boils down to this: even if we had all
the protocol support for, say, Facebook in, say, GNOME Contacts
(through libfolks) and Empathy (through Telepathy) we would not be
able to turn it on because of unresolved API key and legal questions.

 Are there plans for making service providers in GOA pluggable?

Not at this point, no, and probably not in the future either. Why? Two reasons

I.  Adding support for a provider P, currently means making code-changes to
all of the GNOME apps using its services.. because most of the time standard
standardized protocols are not in use. For the few cases where it
uses a standard
protocol (such as XMPP and IMAP/SMTP) we could support pluggable providers.

For example, we could, presumably, read plug-in files from some directory
so we could list 200 different XMPP chat services or 200 different
IMAP servers.
That that no-one ever heard about. But would we want the user to
see this? The
answer is: not in GOA. But see II. below

II. To avoid user confusion we only want the major online services in GOA.
Support for more specialized protocols/services should happen in each
separate app - that's why, for example, that Empathy still has a preferences
menu so you can add support for e.g. ICQ, Zephyr and other fringe chat
services and protocols. And that's also why you still have support in
Evolution for manually adding IMAP/SMTP servers.

I will try and add some of these guidelines (or rules if you want)
to the GOA documentation, see

 http://developer.gnome.org/goa/unstable/

for what it looks like right now.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME Online Accounts extensibility

2011-10-06 Thread David Zeuthen
Hi,

On Thu, Oct 6, 2011 at 2:10 PM, Steve Frécinaux nudr...@gmail.com wrote:
 On 10/06/2011 07:40 PM, David Zeuthen wrote:

 II. To avoid user confusion we only want the major online services in GOA.
     Support for more specialized protocols/services should happen in each
     separate app - that's why, for example, that Empathy still has a
 preferences
     menu so you can add support for e.g. ICQ, Zephyr and other fringe chat
     services and protocols. And that's also why you still have support in
     Evolution for manually adding IMAP/SMTP servers.

 What about free (or not free) services you can install on your own box but
 would still provide services for many different programs?

 I'm thinking about owncloud, for instance, which provides document storage,
 calendar, bookmarks, etc.

 Sure this is not a well known service, but yet I think many would like to
 be able to add such services, due to our natural love of freedom and not
 promoting big companies without alternatives.

I agree it would be nice if the free software community could come up
with a credible alternative to Google, Yahoo or Microsoft's Live to
name just three. And I definitely think if such a credible alternative
were to surface we should definitely support it in GNOME along the
same lines of the non-free ones, perhaps even giving it special
treatment because its free.

Whether OwnCloud specifically is this project remains to be seen - but see

 https://bugzilla.gnome.org/show_bug.cgi?id=660573

for the request to add OwnCloud support to GOA (the reason I haven't
replied to that bug yet is that I want to get the guidelines I gave
upthread into the goa docs).

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME Online Accounts extensibility

2011-10-06 Thread David Zeuthen
Hi,

On Thu, Oct 6, 2011 at 2:30 PM, Ken VanDine kvand...@gnome.org wrote:
 Sorry, not trying to sound harsh here but I couldn't find a better way
 to say this.

 Basically you are saying that GOA isn't really an open technology to
 help consolidate user's online accounts, it is only to help consolidate
 accounts for blessed GNOME apps?  This doesn't really help users in the
 big picture, but I guess the design team makes those decisions.

 Does this mean third party developers shouldn't try to leverage GNOME as
 a platform anymore?  Maybe that is a topic for another thread, as much
 as I love GNOME, it is becoming harder and harder to develop for.  I
 miss the days when GNOME was a platform, I hope there is a way we can
 change that and turn it into a platform again!

I think your mail is actually pretty offensive and also
misrepresenting GNOME. I will not reply to it.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME Online Accounts extensibility

2011-10-06 Thread David Zeuthen
Hi,

On Thu, Oct 6, 2011 at 3:05 PM, Patryk Zawadzki pat...@pld-linux.org wrote:
 On Thu, Oct 6, 2011 at 7:40 PM, David Zeuthen zeut...@gmail.com wrote:
 I.  Adding support for a provider P, currently means making code-changes to
    all of the GNOME apps using its services.. because most of the time 
 standard
    standardized protocols are not in use. For the few cases where it
 uses a standard
    protocol (such as XMPP and IMAP/SMTP) we could support pluggable 
 providers.

    For example, we could, presumably, read plug-in files from some 
 directory
    so we could list 200 different XMPP chat services or 200 different
 IMAP servers.
    That that no-one ever heard about. But would we want the user to
 see this? The
    answer is: not in GOA.

 Can't we just have an option that says Other Jabber/XMPP provider
 and allows me to enter my JID, the server name, password, port etc.?
 It would cover most of people's needs even if they need to ask the
 provider for details (that they have to provide anyway). Most
 importantly it would mean not using two configuration windows, one of
 which not showing anything other than Google and the other saying that
 some accounts could not be configured here. The current state of
 affairs leads to confusion (I had to explain that to a live person, I
 failed because I did not have any sensible arguments).

 Same could probably be done for IMAP/POP3/SMTP.

And also for calendar since there's a couple of standardized
protocols. FWIW, I don't think it's a bad idea and I actually did
something like this early on, see

 http://people.freedesktop.org/~david/gen-mail-1.png
 http://people.freedesktop.org/~david/gen-mail-2.png
 http://people.freedesktop.org/~david/gen-mail-3.png
 http://people.freedesktop.org/~david/gen-mail-4.png

but IIRC the designers had some objections and I ended up running out
of time. I'll try to grab the designers again. Would you mind filing a
bug about it? Thanks!

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: gudev from my grandpa

2011-08-25 Thread David Zeuthen
Hi,

On Thu, Aug 25, 2011 at 7:36 AM, Olav Vitters o...@vitters.nl wrote:
 On Thu, Aug 25, 2011 at 01:34:36PM +0300, Zeeshan Ali (Khattak) wrote:
   Ah, sorry! My dyslexia kicks-in sometimes. However, thats still
 pretty old so my question remains.

 We upgrade if needed. Keeping the requirements low makes it easier to
 use stuff from your distribution.

 Is a newer version needed?

In this particular case, libgudev version 163 has a bug fix so the
library can be used safely in multi-threaded applications. This is the
commit in question

 
http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=cbdf255e255adc0f30b40be296fbbf2f3cd2be80

In the future, for gudev, please either track HEAD or rely on the
distro to provide a sufficiently new version (ideally the latter) -
this business of locking onto old versions is just very bad practice
and confusing for everyone and it's pretty annoying to see that bug
fixes made almost a year ago isn't being used. Who knows what other
kinds of bugs this has caused...

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: 3.2 features: login screen

2011-05-20 Thread David Zeuthen
Hi,

On Fri, May 20, 2011 at 11:21 AM, Johannes Schmid j...@jsschmid.de wrote:
 Hi!

 B. Not planned, no. This is intended to configure a handful of
 essential things, not an open-ended list of things you might want to
 set up if happen to know about them. If twitter-esque web services
 become supported by 'online accounts', that would make it possible for
 gwibber to pick up the configuration from there.

 I have very mixed feelings about not allowing any customization here,
 especially for web-services where we mostly talk about proprietary web
 services:

 a) Who decides which to include? Why would we include Google and
 Facebook but not Bing or UbuntuOne*? This is one of the points Microsoft
 got sued badly by the EU in the past.

 * Don't take this examples to literally...

It's just not that simple. I briefly explained the problems here

 http://mail.gnome.org/archives/desktop-devel-list/2011-May/msg00267.html

TL;DR :

 - The technical problems involve managing N times M times P
   codebases

 - There might be really nasty Terms Of Service issues

 - I expect 3.2 to only support Google, Yahoo providers

 - I expect 3.2 to only support Mail and Calendar services

After 3.2 we can add more providers and more kinds of services. I'm
still working on this.

 David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-05-17 Thread David Zeuthen
Hey

On Mon, May 16, 2011 at 2:03 PM, Will Thompson
will.thomp...@collabora.co.uk wrote:
 Ah! My suggestion was, concretely: rather than

  method GetGoogleToken() → s
  method GetFacebookToken() → s
  method GetOAuthToken() → s

 GOA could have either an API which resembles SASL, or…

[...]

 Given that GOA already knows the account type etc., it already knows
 what kind of mechanisms are appropriate. This would let the Telepathy
 GOA plugin avoid needing specific knowledge of each custom XMPP server,
 at the cost of GOA itself's providers knowing a little more than just
 OAuth2, but not much: X-GOOGLE-TOKEN, for example, is (IIRC) sha1('\0' +
 username + '\0' + token), which is to say SASL PLAIN.

If it's really that simple, apps can surely have the switch, no? I
mean, instead of GOA adding API that we might want to remove later? I
mean, for providers this information most likely depends on whether
OAuth 1 or OAuth 2 is needed so the added API would have to go on the
.OAuthBased or .OAuth2Based interface (instead of e.g. the
.GoogleProvider interface). and it would look weird to have a
GetGoogleToken() method on the .OAuthBased interface.

OTOH, if calculating the SASL response involves e.g. private API keys
like it does for calculating the IMAP SASL response, see

 http://code.google.com/apis/gmail/oauth/protocol.html

then... then I think GOA _will have_ to contain D-Bus API for doing
this.. because.. we might not want to add API for people to get the
consumer private key because that precludes us from supporting
services where the API key has to be kept a secret. I don't know. Then
again, such TOS are more or less incompatible with free software so
I'm not losing sleep if some downstream can't easily support them. I
don't know. Can of worms.

 One thing to be aware of is that GOA might change a
 provider from e.g. OAuth 1.x to OAuth 2.x at any point (for example,
 Google appears to be switching to OAuth 2.0 but not all services have
 been switched over yet) - so we just need to ensure that whatever ends
 up interacting with GOA is ready for such a change.

 Right. We have GNOME releases as kind of built-in synchronisation
 points, I suppose. This might also affect things like libsocialweb more
 acutely?

Right, it would affect anything using GOA. But that's just the way it
is, I think.

Cheers,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Online Accounts panel for 3.2

2011-05-17 Thread David Zeuthen
Hi,

On Tue, May 17, 2011 at 9:39 AM, David Zeuthen zeut...@gmail.com wrote:
 OTOH, if calculating the SASL response involves e.g. private API keys
 like it does for calculating the IMAP SASL response, see

  http://code.google.com/apis/gmail/oauth/protocol.html

 then... then I think GOA _will have_ to contain D-Bus API for doing
 this.. because.. we might not want to add API for people to get the
 consumer private key because that precludes us from supporting
 services where the API key has to be kept a secret. I don't know. Then
 again, such TOS are more or less incompatible with free software so
 I'm not losing sleep if some downstream can't easily support them. I
 don't know. Can of worms.

Actually, sorry, I'm smoking crack here - the OAuth Consumer Secret is
of course needed for regular OAuth HTTP requests so we _will_ need to
expose the OAuth Consumer Secret in our APIs. Note that OAuth 2.0 and
bearer tokens just makes a lot of these things a lot easier since it
assumes a secure transport instead of allowing providers to use
insecure transports.

Cheers,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: language/locale selector [was: Re: Settings downstream would reasonably want to add]

2011-05-17 Thread David Zeuthen
Hey Lennart,

On Mon, May 16, 2011 at 1:22 PM, Lennart Poettering mzta...@0pointer.de wrote:
 I think the right place for tiny mini-daemons like that is probably
 systemd.

I completely agree - it's nice that we finally have a place to do
this. And it's nice that you are using D-Bus properties to convey the
values since it makes it easy to use with high-level D-Bus bindings
with native support for D-Bus properties.

However, when you emit the PropertiesChanged signal on the
org.fd.DBus.Properties interface, you could pretty please include the
value for the property that changed as well [0]? The fact you
currently don't (which Bastien found out after I helped him debug his
app using your service) means that each instance of each app using
your interface manually using your service will have to issue a
Property.Get() method invocation. This is both inconvenient [1] and it
also causes extra over-head in terms of wakeups etc. from handling
these extra messages.

It is true that @invalidated_properties has its place (consider huge
Blob-like properties), but in this particular case we're talking about
tens of bytes extra that is emitted every six months or so that
property changes. So I don't think there's any performance impact.

Thanks for considering.

David

[0] : E.g. use @changed_properties instead of @invalidated_properties
cf. 
http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties

[1] : though maybe we could do this automatically in GDBusProxy.. but
that is against the spirit of using @invalidated_properties instead of
@changed_properties so we don't ... it could be turned on by a flag
though. It's also slightly racy.
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: language/locale selector [was: Re: Settings downstream would reasonably want to add]

2011-05-17 Thread David Zeuthen
Hey,

On Tue, May 17, 2011 at 12:49 PM, Lennart Poettering
mzta...@0pointer.de wrote:
 It's mostly a question of laziness on my side. The
 invalidated_properties stuff I can hook up in matter of seconds. The
 other props need more work.

Excellent, good to hear. Thanks!

Cheers,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: language/locale selector [was: Re: Settings downstream would reasonably want to add]

2011-05-15 Thread David Zeuthen
Hi,

On Sun, May 15, 2011 at 5:01 PM, Ross Burton r...@burtonini.com wrote:
 Let's try that again...
 On Sunday, 15 May 2011 at 20:10, Lennart Poettering wrote:
 (Background: I am
 working on cleaning up all those little services that can change
 locale/clock/timezone/hostname/... in the context of systemd)

 In case you were not aware, in MeeGo 1.2 we've added a clock interface to 
 connman. This mainly handles NTP client functionality but can also control 
 (manually or automatically) the system timezone.

 http://git.kernel.org/?p=network/connman/connman.git;a=blob;f=doc/clock-api.txt

If only you'd use the standard org.fd.DBus.Properties interface here
then it would be a lot easier to use via e.g. GDBusProxy and other
bindings. And it's a lot easier to inspect with tools like gdbus(1) or
d-feet(1). Not saying it's impossible to write the code to get the
properties and watch for changes - but it's something that _most_
people get wrong or they block the main thread or they end up with
proxies where half the properties is from the old owner and the other
half is from the new owner. Things like that.

(I also see this is using an object exported at / - that's wrong too
but it's a lot harder to get this point across to people.)

/random_rant_no_need_to_follow_up

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-05-13 Thread David Zeuthen
Hi,

On Fri, May 13, 2011 at 7:34 AM, Will Thompson
will.thomp...@collabora.co.uk wrote:
 For example, for GMail, you can use the OAuth token when
 authenticating the IMAP and SMTP connection cf.
 http://code.google.com/apis/gmail/oauth/

 This big-switch-statement-in-every-application approach concerns me: it
 would be better to essentially delegate the SASL exchange to GOA. Doing
 so would minimize the number of components that need to be updated to
 support a new custom authentication mechanism for an otherwise standard
 protocol. Obviously I'm going to use Telepathy and XMPP for an example
 of why :), but I think the same reasoning holds for IMAP, based on that
 link above, and other services.

 Google Talk is just another XMPP server that happens to support an
 X-GOOGLE-TOKEN SASL mechanism. Facebook is just another XMPP server
 which supports an X-FACEBOOK-PLATFORM mechanism. Gabble (the XMPP
 backend for Telepathy) doesn't implement either mechanism: it just
 exposes the SASL challenge over D-Bus. Empathy has a client for that API
 that uses gnome-keyring to get the password; on MeeGo Netbook there's a
 client that implements X-FACEBOOK-PLATFORM. In a GOA world, we'd ideally
 like to avoid the handler having to have a big switch statement for
 every supported account type: GOA already has Google-specific code, and
 it already knows that this account is a Google account, so it could
 implement the X-GOOGLE-TOKEN mechanism in the Google-specific code there.

 Then, to support a hypothetical Flickr XMPP/IMAP/c service with
 X-PICTURES-OF-CATS authentication, we'd only have to add Flickr code to
 GOA; we wouldn't have to touch the authentication code in Evolution or
 Telepathy.

 (This is one beef I have with Nokia's Signon framework: the Telepathy
 bridge for that has to have a big switch statement for each supported
 account type, on top of the account type-specific plugins for signond.
 It would be nice to not repeat that.)

Right, I thought about that. We basically have a N times M times P problem, e.g.

 - N providers with varying APIs
   - Google, Yahoo, ...
 - M kinds of services we want to support
   - Mail, Chat, Calendar, Contacts, Storage, 
 - P number of libraries/frameworks or apps
   - libs: e-d-s, libsocialweb, libfolks, Telepathy
   - apps: evolution, thunderbird, empathy, nautilus-send-to

To start with what the user sees, see the mockups here

 http://mail.gnome.org/archives/desktop-devel-list/2011-April/msg00107.html

Basically each Switch in that UI correspond to the M kinds of services
- e.g. each configured account has up to M of them. Now, I'm saying
up to M because we obviously don't want to show

  [ON   ] Chat

for your Google account unless it actually means you can chat in GNOME
with it (e.g. the Shell and Empathy supporting it - which basically
comes down to if Telepathy is supporting it).

Btw, already at this point, it should be clear why all this needs to
happen in the well-defined sandbox that is GNOME: we can't go add
support for providers or kinds of services willy-nilly - it all has to
be coordinated in a way so it all works. For chat, it means
coordinating GOA and Telepathy. For other kinds of services (like Mail
or Calendar), it may be harder - especially if it involves
coordinating the effort with multiple apps (such as both Evolution and
Thunderbird) or multiple libraries.

So my current experiments [1] actually reflect this thinking .. in
fact, right now I'm working on the Mail experience, basically trying
to implement something like these mockups

 https://live.gnome.org/GnomeShell/Design/Guidelines/MessageTray/Email

For that, I have code (hundreds, not thousands of LOC) in the Shell
that talks to this interface exported by GOA

 
http://people.freedesktop.org/~david/goa-20110512/gdbus-org.gnome.OnlineAccounts.Mail.html
 
http://people.freedesktop.org/~david/goa-20110512/gdbus-org.gnome.OnlineAccounts.Mail.Query.html

It works great, see

 http://people.freedesktop.org/~david/mail-notif-1.png
 http://people.freedesktop.org/~david/mail-notif-2.png
 http://people.freedesktop.org/~david/mail-notif-3.png

I was thinking of adding a method such on the
org.gnome.OnlineAccounts.Mail interface like this

 GetAuthenticatedImapConnection (OUT h file_descriptor);
 GetAuthenticatedSmtpConnection (OUT h file_descriptor);

that your mail application can use. For Chat, my thinking is that we
could have something similar e.g.

 GetAuthenticatedXmppConnection (OUT h file_descriptor);

that Telepathy can use. Does that sounds OK?

Anyway, how we balance where to put implementations is a very hard
question that I'm still thinking about. I'm leaning towards

 - For every service type (Mail, Calendar, etc.) should provide a
   simple interface that the Shell can use for notification

   - One example is the org.g.OA.{Mail,MailQuery} interfaces

   - Unless of course there's a good solution there already - for e.g.
 Chat we have Telepathy which is awesome so all we provide 

Re: no external panels for gnome-control-center [was GNOME Feature Proposal: Backup]

2011-05-12 Thread David Zeuthen
Hi,

On Thu, May 12, 2011 at 3:45 PM, Sergey Udaltsov
sergey.udalt...@gmail.com wrote:
 GNOME is a core
 desktop (desktop building toolkit, if you like) that is used by
 distributions

No, GNOME is not a supermarket. It's not a place where you go to get
your technology so you can put it together in your own sandbox. This
might be inconvenient for downstreams (including my employer) but it
is what it is. The fact that you _can_ (easily) fork GNOME just
happens to be a side-effect of the license. It's not the major point
of the project.

 David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: no external panels for gnome-control-center [was GNOME Feature Proposal: Backup]

2011-05-12 Thread David Zeuthen
Hi,

On Thu, May 12, 2011 at 4:39 PM, Sergey Udaltsov
sergey.udalt...@gmail.com wrote:
 My whole point was that in the ideal world GNOME could be extensible
 enough so that no _forking_ would be necessary. Extension modules, not
 patches. That would be not a side effect of the license but the
 fundamental feature of the architecture. Do you see the difference?

Yes. I also think we tried that with GNOME 2 and failed. I mean, look
at GNOME 2's control center - on all distros, it's a royal mess of
random crap from either GNOME, the distro or 3rd party app written by
a kid in a basement. With GNOME 3.2, we will have a simpler control
center (since the extension mechanism is going away) but it will be
_awesome_.

Sure, the GNOME 3.x control center doesn't do all you need yet but the
point really is that we're engaging the current providers of control
center items to _work_ with GNOME. In particular, it means working
with designers. And in some cases (e.g. boot loader) the solution is
sometimes to not have a control center item... but maybe put the
feature in the system restart dialog instead. The other bonus thing
is that GNOME will _include_ the feature instead of each and every
distro doing their own thing. So in the long run everybody wins [1].

Extension- and plug-in systems is often the symptom of a disease.
Especially in young evolving software such as e.g. GNOME 3.x. Don't
succumb to it. Just say no.

David

[1] : Except of course if some downstreams do development in their own
fucking sandbox.. no, this is not a cheap jab at Canonical.. it
includes e.g. Red Hat too. Or SUSE. Trust me when I say that the RH
desktop team and the RH team doing the system-config-* tools have
fought _a lot_ about these issues.
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: no external panels for gnome-control-center [was GNOME Feature Proposal: Backup]

2011-05-12 Thread David Zeuthen
On Thu, May 12, 2011 at 5:23 PM, Sergey Udaltsov
sergey.udalt...@gmail.com wrote:
 Extension- and plug-in systems is often the symptom of a disease.
 How would you distinguish...?

I don't know. It's typically a highly subjective thing. Mostly it
comes down to what most people refer to as good taste vs bad
taste. I don't know.

 [1] : Except of course if some downstreams do development in their own
 fucking sandbox.. no, this is not a cheap jab at Canonical.. it
 includes e.g. Red Hat too. Or SUSE.
 Thank you, that is very interesting and insightful info. The question
 is - could (or would) GNOME do something to avoid that situation with
 distros?

Not showing 3rd party panels is one path forward. And I think it's the
right one. If all distros just patch in their own panels, maybe we
need to use a bigger stick to make them work upstream.

 g-c-c could be for linux what system preferences are for macos or
 control panel for windows - configuring every aspect of OS except
 configs of desktop apps (but including system configs, server apps
 config etc).

But that way you end up with useless things like a Java Control
Panel or httpd Control Panel [1] and other non-sense that you see
on Windows (and OS X for that matter - it's just that people don't
install much 3rd party crap there).

[1] : for example, system-config-httpd in Fedora is nothing more than
an fancy editor for /etc/httpd/conf/httpd.conf - it's a completely
inappropriate app because if you know what httpd is, you really don't
want to click GUI buttons - you want to edit the config file with
vi(1) or whatever your editor of choice is. Same goes for a lot of
other distro-specific config tools created because we need a GUI
without really thinking whether it was a good idea. /rant

 Well, if gnome does not want it, let it be so. I am just
 kindly asking to put together some kind of policy document about all
 those things. Is that a reasonable and constructive request?

Not sure we need to be all lawyerish about it and write policy
documents and whatnot - I'd rather people spend time on writing
awesome code and doing awesome designs. All in the same sandbox :-)

And, FWIW, I'm just expressing my personal opinion about GNOME and
nothing I'm saying here is authoritative. It could be that the
gnome-control-center maintainers and others have other views about it.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: no external panels for gnome-control-center [was GNOME Feature Proposal: Backup]

2011-05-12 Thread David Zeuthen
Hi,

On Thu, May 12, 2011 at 5:47 PM, Sergey Udaltsov
sergey.udalt...@gmail.com wrote:
 an fancy editor for /etc/httpd/conf/httpd.conf - it's a completely
 inappropriate app because if you know what httpd is, you really don't
 want to click GUI buttons - you want to edit the config file with
 vi(1) or whatever your editor of choice is. Same goes for a lot of
 other distro-specific config tools created because we need a GUI
 without really thinking whether it was a good idea. /rant
 Err... Personally I always thought that the area where IIS was way
 ahead of httpd is the GUI configuration tools nicely integrated into
 system configuration GUIs.

Didn't IIS actually add a configuration file after strong demands from
administrator? I don't know, it's not important. Now, whether a HTTP
server needs config UI or not... nothing prevents anyone from writing
an app that does that... It just won't be shown in the System
Settings, that's all. Which I actually think makes sense. I actually
regard a stock HTTP server like Apache (or even an application server
such as e.g. Tomcat) more as an application, not an OS component. And
I think, these days, you'd maybe want to write the configuration UI
for a webserver using HTML5 and JS anyway. I don't know.

That said, it could be that some HTTP server configuration could
appear in the Sharing panel, see
http://live.gnome.org/ThreePointOne/Features/Sharing  - for example,
to share your public folder via HTTP and exposing a bookmark via mDNS
so it shows up in browsers on the LAN that supports this (for example,
Safari and Epiphany I think). That would be handy.

Either way, I think this is completely orthogonal to the discussion on
whether such a panel makes sense. I'm just mentioning this to explain
how GNOME should, no wait, MUST, be driven by design. Not some
misguided feature-for-feature parity thing or some PHB-directive
saying everything needs a GUI. In there lies madness.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: no external panels for gnome-control-center [was GNOME Feature Proposal: Backup]

2011-05-12 Thread David Zeuthen
Hi,

On Thu, May 12, 2011 at 6:34 PM, Luca Ferretti lferr...@gnome.org wrote:
 Il giorno gio, 12/05/2011 alle 18.14 -0400, David Zeuthen ha scritto:

  So? Why this should be a failure?


 Because the premise of System Settings in GNOME 3 is,
 surprisingly, to change your system settings or personalize the
 experience.

 So, are there no system settings or personalizations other then the ones
 provided by GNOME? 6.x billions of people and only ten (or so) settings
 panel?

 We should strive to make this as easy as possible and having 20
 panels such as Java Settings or HTTPD Control or even Firewall
 is something that gets in the way. So if we allowed 3rd party panels,
 it would be a failure because trusting that people won't write broken
 panels like the ones mentioned above is, unfortunately, very naive.


 Wait: first, it's GNOME3, not GNOME2, you can't provide a new panel
 simply adding a .desktop file with proper keys. You have to develop it
 using proper API. This is a first barrier for broken stuff.

 Second: are we a censorship? are we fighting against the ugly? are all
 non-gnome developers odd and stupid?

 It seems your starting point is: everybody's wrong, but not GNOME
 people. I feel it really offensive and counterproductive for GNOME
 project itself.

Speaking of offensive, suggesting that GNOME is a censorship is pretty
offensive. Not to mention insulting. I'm not going to have a
conversation with you like this. Please keep it real.

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: no external panels for gnome-control-center [was GNOME Feature Proposal: Backup]

2011-05-12 Thread David Zeuthen
Hi,

2011/5/12 Sergey Udaltsov sergey.udalt...@gmail.com:
 How can Redhat compete with SUSE if
 both of them use GNOME that defines _final_ user experience?

This is just absurd - distros were never supposed to compete with each
other (if I had my way, anyway) - just check the Internet where people
been cringing about such infighting over 1% user share that the Linux
desktop commands. If GNOME is competing against anyone, it's Microsoft
Windows, Apple's OS X and maybe a select few others.

Maybe you should check up on e.g. Red Hat's or Novell's business
model. And compare it with the business model of less successful
distro companies. Hint: it's not about how the desktop user experience
is defined. Or what set of kernel patches that is being carrier. Or
whether the distro bends over and ships illegal kernel modules in the
name of competing with other distros.

 I think the idea that GNOME is the final-final product is
 unrealistically selfish.

You know what I think is selfish? Treating GNOME like it's just a
factory spitting out technology, at your bidding, that you can put
together as you see fit. And then not giving any credit or
contributing your changes back upstream. Think about it.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-05-02 Thread David Zeuthen
Hey Matt,

On Thu, Apr 28, 2011 at 2:06 PM, Matthew Barnes mbar...@redhat.com wrote:
 On Wed, 2011-04-27 at 09:18 -0400, David Zeuthen wrote:
 First, I think this is such an important area for GNOME that we want
 to be in control of our own destiny - e.g. I don't think the problem
 space is well-enough understood that we want to commit to stable APIs
 or sharing code with others. Not yet. Maybe when all this is better
 understood we can start moving things to freedesktop.org and sharing
 interfaces with e.g. KDE, Qt or whatever. But I really don't think
 that we are there yet (we've seen with e.g. org.fd.Notifications what
 mess it can be if you standardize early).

 I agree, but for the the time being I view GOA integration as an
 optional add-on enhancement for Evolution, similar to how we use
 NetworkManager.

 We have a lot of users that run other desktops and I'd like to keep Evo
 fully functional in the absence of an OnlineAccounts service, and thus
 avoid any hard dependencies.

 Is that inline with what you had intended for this service: as something
 for applications to opt into?  Thunderbird, for example, could opt in
 with their own GOA add-on just as easily as Evolution.

Right - I think it's fine to have GOA as an optional dependency of
Evolution. Realistically, I think most distros are going to build it
with GOA support so it will probably pull in libgoa-1.0.so - but the
dependency on the packages containing goa-daemon(8) could be optional.
Or the app could speak D-Bus directly if it wants.



 On dependencies: we are trying hard to move away from libdbus-1 and
 libdbus-glib-1 towards GDBus. We also don't want any deps (run-time or
 otherwise) on Qt or e.g. cryptsetup or dm-luks. We also really should
 be using the platform keyring API (e.g. gnome-keyring) whenever
 possible.

 How and when will you be using gnome-keyring (or I guess technically the
 org.freedesktop.secrets service)?  What kind of meta-data schema will
 the keyring entries use, so that E-D-S might find and reuse them?

 Otherwise, the D-Bus API you proposed sounds pretty easy to wire up to
 what we have (or will have), if I'm understanding all this correctly.
 I'm happy with what I've seen so far.

The fact that goa-daemon is using gnome-keyring is something I want to
keep as a private implementation detail. The reason is that we're not
just storing passwords - we're storing tokens and exactly what tokens
and how many per account depends on the access-control framework used.
There's also caching (access tokens typically have finite life and
needs to be refreshed) and locking (multiple apps might request a
token at the same time) involved so we just cannot hand out access to
apps like that. And the daemon is also showing notifications if the
user needs to be involved.

Basically, GOA is designed so the app won't need to worry about any of
this - the app can simply get the credentials from GOA and do its
thing. And if the credential doesn't work (suppose the user revoked
access [1]), then the app doesn't need to do much because GOA will
already have notified the user (through a notification and a red error
icon in the control panel) and whenever the user takes action to
rectify the problem, the app will get notified by a D-Bus signal.

The workflow in an app (such as Evo) would be like this

 accounts = goa.get_accounts_of_type('mail')
 for a in accounts:
   if a is OAuthBased:
 (oauth_access_token, oauth_access_token_secret) =
a.OAuthBased.GetAccessToken()
   elif a is OAuth2Based:
 oauth2_access_token = a.OAuthBased2.GetAccessToken()
   elif ...

   if a is GoogleAccount:
 use API from http://code.google.com/apis/gmail/
 with one of the credentials you got above
   elif a is YahooAccount
 use API from http://developer.yahoo.com/mail/
 with one of the credentials you got above
   elif ...

For example, for GMail, you can use the OAuth token when
authenticating the IMAP and SMTP connection cf.
http://code.google.com/apis/gmail/oauth/

I'm hoping to have something more concrete (a real release!) ready by
the end of this week or next.

Thanks,
David

[1] : see the video I posted here

 http://davidz25.blogspot.com/2011/04/gnome-online-accounts.html
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-05-02 Thread David Zeuthen
Hi,

On Mon, May 2, 2011 at 11:28 AM, Matthew Barnes mbar...@redhat.com wrote:
 I'm also wondering if we should somehow lock down GOA-based accounts in
 Evolution to prevent the user from deleting it through Evolution or
 changing certain essential details like the host name.  I guess that's
 for us to figure out.  Is Empathy planning to do something similar?

Yup. Note that GOA has a well-defined format (I need to add this
information to some man page soon) for defining accounts - basically
key-value files in

 /etc/goa-1.0/accounts.conf.d/*.conf
 ~/.config/goa-1.0/accounts.conf.d/*.conf
 ~/.config/goa-1.0/accounts.conf

with goa-daemon(8) listening for changes as well.

The way I think it should work is that you can only modify/delete
accounts defined in in the latter file - the intent is that the
accounts.conf.d directories are for system administrators only. We do
need an Account:CanModify property that e.g. the control-center should
use to make the Delete button insensitive. Do you think this would
work with Evo too?

Cheers,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-05-02 Thread David Zeuthen
Hey,

On Mon, May 2, 2011 at 2:07 PM, Matthew Barnes mbar...@redhat.com wrote:
 On Mon, 2011-05-02 at 11:37 -0400, David Zeuthen wrote:
 Yup. Note that GOA has a well-defined format (I need to add this
 information to some man page soon) for defining accounts - basically
 key-value files in

  /etc/goa-1.0/accounts.conf.d/*.conf
  ~/.config/goa-1.0/accounts.conf.d/*.conf
  ~/.config/goa-1.0/accounts.conf

 with goa-daemon(8) listening for changes as well.

 The way I think it should work is that you can only modify/delete
 accounts defined in in the latter file - the intent is that the
 accounts.conf.d directories are for system administrators only. We do
 need an Account:CanModify property that e.g. the control-center should
 use to make the Delete button insensitive. Do you think this would
 work with Evo too?

 Evo would be creating its own accounts based GOA accounts, using info
 from GOA's key files to seed our own.  I don't see us modifying GOA's
 key file at all, do you?

No, I don't see you modifying the GOA stuff at all.

 Maybe I wasn't clear when I mentioned syncing accounts.  What I meant
 was we would listen for added and removed events from GOA and then make
 the equivalent change in -our own- account system.  So GOA would be a
 read-only source for us, confined to some add-on module.

 So I *think* we're still on the same page, just want to make sure.

 A CanModify property should be easy to wire up once our own accounts
 have some kind of lock down capability.  Currently they do not, but I'm
 already rewriting our account system so it's just a new requirement.

Right. The way I'd like to think of it, is that the GOA stuff is the
authoritative source - the extra account that you are creating is
something that should be keyed off the GOA unique id. So if GOA
suddenly no longer lists an account with ID xyz, then it should
automatically disappear from Evo as well.

Cheers,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-27 Thread David Zeuthen
Hey,

So I had a look and a think about this -

First, I think this is such an important area for GNOME that we want
to be in control of our own destiny - e.g. I don't think the problem
space is well-enough understood that we want to commit to stable APIs
or sharing code with others. Not yet. Maybe when all this is better
understood we can start moving things to freedesktop.org and sharing
interfaces with e.g. KDE, Qt or whatever. But I really don't think
that we are there yet (we've seen with e.g. org.fd.Notifications what
mess it can be if you standardize early).

On dependencies: we are trying hard to move away from libdbus-1 and
libdbus-glib-1 towards GDBus. We also don't want any deps (run-time or
otherwise) on Qt or e.g. cryptsetup or dm-luks. We also really should
be using the platform keyring API (e.g. gnome-keyring) whenever
possible.

Configuration: I don't think SQLite is at all what we want. Instead
just flat key-value configuration files read from e.g.

 $HOME/.config/goa-1.0/accounts.conf
 $HOME/.config/goa-1.0/accounts.d/*conf
 /etc/goa-1.0/accounts.d/*conf

is a lot more friendly. That way, since we'd have a stable
configuration file format, vendors, sites and users can just drop (or
generate) configuration files to reflect their setup [1]. And our
daemon should handle file monitoring so things Just Work(tm) when that
happens. We might also want to use GSettings here but I'm not sure.

We probably want to embed a web browser engine for the Online Accounts
panel - e.g. I don't think it's not good enough to rely on the users
browser with the way e.g. OAuth2 works -- you really want to intercept
the redirect URL and not have to scrape the authorization code out of
a window title (as the Google OAuth2 docs humorously suggests) or have
the user copy/paste it to the panel. In this case we want to use
WebkitGTK+ which has
WebKitWebView::navigation-policy-decision-requested signal to solve
this. All this could probably be made to work in a
platform-independent way (so OtherDesktop can use OtherDesktopWebView)
but I'm just not sure I really see the point in that.

We want all this in a single project with a single set of coherent
docs. E.g. it should be possible to just clone one git repo from
git.gnome.org and then you have everything you need. As equally
important, docs from said project should be in a single doc area on
developer.gnome.org.

I don't think we want any foreign plug-in mechanism (e.g. XML files)
to describe services. Instead, we should have a set of abstract base
classes that e.g. Google, Facebook, Yahoo etc. backends can extend
(and that way share code) and have a GIOExtensionPoint for this. We
won't (of course) load 3rd party extensions from the get-go though.
Maybe later.

So as mentioned last week, I was already hacking on something along
these lines that works this way. I'll try to get it into a shape where
it can be shared Real Soon Now(tm).

Thanks,
David

[1] : e.g.

$ cat  ~/.config/goa-1.0/accounts.conf  EOF

[Account some_id]
Name=Some Account
Type=google
EmailAddress=zeut...@gmail.com
EOF
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-27 Thread David Zeuthen
Hi,

On Wed, Apr 27, 2011 at 10:07 AM, Ross Burton r...@burtonini.com wrote:
 On 27 April 2011 14:18, David Zeuthen zeut...@gmail.com wrote:
 We probably want to embed a web browser engine for the Online Accounts
 panel - e.g. I don't think it's not good enough to rely on the users
 browser with the way e.g. OAuth2 works -- you really want to intercept
 the redirect URL and not have to scrape the authorization code out of
 a window title (as the Google OAuth2 docs humorously suggests) or have
 the user copy/paste it to the panel. In this case we want to use
 WebkitGTK+ which has
 WebKitWebView::navigation-policy-decision-requested signal to solve
 this.

 Some services such as Fire Eagle recommend that you use the default web
 browser and don't embed a HTML widget on the grounds that the user will then
 see the URL and other security information that they are used to, and not
 just random HTML that could well be faked.  They then recommend to redirect
 back to the application by registering a new URL protocol (say,
 x-myapp-auth) and redirecting there.

 These rationales seemed really sensible so we tried this in MeeGo and
 discovered that Fire Eagle is the only service we found who doesn't mandate
 that the redirect URL is valid, meaning a http: URL.  Some even refused to
 redirect to localhost after the settings app started a private HTTP server
 on the loopback interface.

 So yes, I'd say that embedding a HTML engine is fairly important.  Being
 able to support the user's own browser is probably a good idea too though.

Yeah, I want to make this possible, on a per-service basis, as well.
It might include having the Online Accounts showing something like
this

 Paste the code from your browser here: []

in the Add Account workflow... which is a little annoying but, I guess, OK.

(Btw, we could also have something like a
https://www.gnome.org/goa-aoauth-redirector web service that could be
used as the redirect_url. This web service would then be used to
transfer the authorization_code back to the desktop client (the
desktop client would register with that web service beforehand and use
the state= parameter to identify the callback). But having user
credentials flow through gnome.org is really something I want to avoid
- it sounds like a disaster in the making.)

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-27 Thread David Zeuthen
Hey,

On Wed, Apr 27, 2011 at 10:52 AM, Alberto Mardegan
ma...@users.sourceforge.net wrote:
 On dependencies: we are trying hard to move away from libdbus-1 and
 libdbus-glib-1 towards GDBus.

 As far as libaccounts is concerned, this can be changed easily -- although I
 don't see a real benefit in moving to a slower implementation...

What do you mean by slower implementation?

 Configuration: I don't think SQLite is at all what we want.

 Why not? Is it an unwanted dependency, or do you think that using it is
 overengineering?

I just don't think it's good for storing user configuration.
Especially not on multi-user or managed- systems where it's useful
being able to configure 1000 users by dropping a simple file in /etc.

 If you want to go for the daemon approach, then yes, key-value files are
 just fine. But then you'll have asynchronous APIs, which seems much more
 overhead to me than directly using SQLite.

Not necessarily. My implementation is using the upcoming
org.freedesktop.DBus.ObjectManager so all the async issues basically
go away. See

 http://people.freedesktop.org/~david/goa-20110427/

for the API. OK, so getting the initial GoaClient object is an async
op (you can do it sync which is fine - it's a local RPC call that is
guaranteed to return very quickly), but from there it's smooth sailing
- you get property changes and so forth for free.

 I don't think we want any foreign plug-in mechanism (e.g. XML files)
 to describe services. Instead, we should have a set of abstract base
 classes that e.g. Google, Facebook, Yahoo etc. backends can extend
 (and that way share code) and have a GIOExtensionPoint for this. We
 won't (of course) load 3rd party extensions from the get-go though.
 Maybe later.

 But then, how would a certain application get the title and the icon of the
 GoogleTalk service? Loading a binary plugin?

By

 
http://people.freedesktop.org/~david/goa-20110427/gdbus-org.gnome.OnlineAccounts.Account.html#gdbus-property-org-gnome-OnlineAccounts-Account.Name

In C, this would be

http://people.freedesktop.org/~david/goa-20110427/GoaAccount.html#goa-account-get-name

We could easily add support for getting the icon as well.

Or if you are dealing with a Facebook account, you'd use the Facebook
specific interfaces

 
http://people.freedesktop.org/~david/goa-20110427/gdbus-org.gnome.OnlineAccounts.FacebookAccount.html
 http://people.freedesktop.org/~david/goa-20110427/GoaFacebookAccount.html

to get information. Again, we can add more stuff as needed.

 So as mentioned last week, I was already hacking on something along
 these lines that works this way. I'll try to get it into a shape where
 it can be shared Real Soon Now(tm).

See http://davidz25.blogspot.com/2011/04/gnome-online-accounts.html -
there's also a video of how the panel.


 Good to hear, but why not using something that is already there and offers
 more functionalities than what you propose (with extensions for providers,
 service and service-type descriptions, a mechanism of specifying default
 settings, etc.)?

Because of the concerns I voiced in the last mail.

 David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-27 Thread David Zeuthen
Hi,

On Wed, Apr 27, 2011 at 12:11 PM, Alberto Mardegan
ma...@users.sourceforge.net wrote:
 On 04/27/2011 07:01 PM, David Zeuthen wrote:
 So yes, I'd say that embedding a HTML engine is fairly important.  Being
 able to support the user's own browser is probably a good idea too though.

 Yeah, I want to make this possible, on a per-service basis, as well.

 Yes, if you have service plugins or configuration files you could
 specify whether the OAuth callback should be a local webserver or a
 normal web page, and then have your own browser widget.

The code is already arranged this way - but we don't load 3rd party
plug-ins. And this is on purpose. Anyway, in this case, it would just
be a property on the GoaBackendOAuth2Provider base class

 http://people.freedesktop.org/~david/goa-20110427/GoaBackendOAuth2Provider.html

which the Google and Facebook implementations already use. I will add
support for this soon.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-27 Thread David Zeuthen
Hi,

On Wed, Apr 27, 2011 at 1:16 PM, Alberto Mardegan
ma...@users.sourceforge.net wrote:
 Hi David,

 On 04/27/2011 07:10 PM, David Zeuthen wrote:
 On Wed, Apr 27, 2011 at 10:52 AM, Alberto Mardegan
 ma...@users.sourceforge.net wrote:
 On dependencies: we are trying hard to move away from libdbus-1 and
 libdbus-glib-1 towards GDBus.

 As far as libaccounts is concerned, this can be changed easily -- although I
 don't see a real benefit in moving to a slower implementation...

 What do you mean by slower implementation?

 Well, you should know I guess. :-)
 http://lists.freedesktop.org/archives/dbus/2011-January/013981.html

 Whether we trust the test is another issue (I didn't try it myself), but
 anyway I don't see strong reasons for changing an existing piece of code
 to GDBus (of course, if we were talking about newly written code, things
 would be different).

Oh, that old thread. Well, I'll just repeat what I've always been
saying: if a factor of 4 going to kill you, then you are already using
D-Bus incorrectly. Either way, as I said in bug 634471 (which is where
discussion of GDBus performance should take place), I'm not opposed to
optimizing GDBus - I just want someone to actually benchmark things
sensible instead of this completely baseless GDBus is slow
non-sense, sorry. And, btw, if you are already using libdbus-1 and/or
libdbus-glib-1 you should worry about threading instead of
performance.

 Configuration: I don't think SQLite is at all what we want.

 Why not? Is it an unwanted dependency, or do you think that using it is
 overengineering?

 I just don't think it's good for storing user configuration.
 Especially not on multi-user or managed- systems where it's useful
 being able to configure 1000 users by dropping a simple file in /etc.

 I'm not sure I'm following you... If by 1000 users you mean 1000
 accounts for one user, then even in libaccounts-glib case that's just
 one file.
 If you are talking about real 1000 users, each one having some accounts,
 libaccounts would indeed require you to have 1000 different files -- but
 I don't see how this could be different for GOA: would you store the
 accounts of 1000 users in a single file? In any case, I fail to see the
 use case for it.

I'm talking about having 1000 Unix users on a big box (or each on
separate boxes). For example, if I'm a sysadmin for the City of Largo,
then it would be nice if I could just drop a file so that the City
Events calendar account is included for each account. This is nothing
new - it's what we've been doing with GConf defaults etc. forever.


 Not necessarily. My implementation is using the upcoming
 org.freedesktop.DBus.ObjectManager so all the async issues basically
 go away. See

  http://people.freedesktop.org/~david/goa-20110427/

 for the API. OK, so getting the initial GoaClient object is an async
 op (you can do it sync which is fine - it's a local RPC call that is
 guaranteed to return very quickly), but from there it's smooth sailing
 - you get property changes and so forth for free.

 Neat. I would also suggest you to do the same thing when changing the
 accounts: that is, instead of having an async/sync version of every _set
 method, just have a synchronous one which sets the value locally, and a
 per-account sync method (or even on the GoaClient).

I don't think any client except the configuration UI is supposed to do
any set calls. And, btw, setting a D-Bus property from a client app
has no error checking (same way g_object_set() has no error checking)
because the daemon-side is designed to not have writable properties.
So the programmer does not have to worry about the async aspect.

 Sure. But it beats me that we are making a D-Bus call for something that
 could just be obtained directly. Since this information is static, why
 not just read it directly from somewhere in the file system?

I don't think you understand how it works - the _only_ D-Bus call that
is made is the initial GetManagedObjects() D-Bus call. Everything else
is cached in each client and updated in response to PropertiesChanged
signals. That's just how org.freedesktop.DBus.ObjectManager works...

 So as mentioned last week, I was already hacking on something along
 these lines that works this way. I'll try to get it into a shape where
 it can be shared Real Soon Now(tm).

 See http://davidz25.blogspot.com/2011/04/gnome-online-accounts.html -
 there's also a video of how the panel.

 Functionality wise -- cool! :-)
 Security wise not so much,

Excuse me? Why exactly is this not secure?

 even though I understand that security is not
 the focus of the GNOME desktop.

That's non-sense. Security is just as important in GNOME as in any
other sensibly designed environment.

 I see a few issues with your implementation, which IMHO largely surpass
 the flaws you noticed in libaccounts-glib dependencies:
 - it's not yet ready :-)

It's fine, we're doing time-based releases. We also specifically don't
want to commit to any stable API

Re: Online Accounts panel for 3.2

2011-04-27 Thread David Zeuthen
On Wed, Apr 27, 2011 at 3:15 PM, Alberto Mardegan
ma...@users.sourceforge.net wrote:
 I don't think that switching to GDbus would kill performances; I'm just
 arguing that I don't see a good reason to change some existing code to
 use it, since it's not better than libdbus (though it might be better
 from a maintainability POV).

The reason is that if you are writing a library intended to be used by
GNOME apps and you are using libdbus each app using it suddenly has
two connections to the session bus daemon instead of just one (one
from libdbus, one from GDBus). This is not very good. The GDBus API is
also a lot nicer if you are used to GLib-style APIs ... then again I'm
a bit biased since I wrote GDBus. But, then again, the original D-Bus
author, Havoc, came up with a lot of suggestions for the GDBus APIs.
See the gtk-devel-list archives for details.

 And, btw, if you are already using libdbus-1 and/or
 libdbus-glib-1 you should worry about threading instead of
 performance.

 They are thread-safe, aren't they?

Uhm. No. And I know this because I initially based GDBus on top of
libdbus-1 but it failed in pretty spectacular ways once I added
multi-threaded test cases.

 I don't think any client except the configuration UI is supposed to do
 any set calls.

 It's not necessary, but it might be very convenient for applications to
 store some account-specific settings there. For instance, an instant
 messaging application might want to store the default requested presence
 for the account (that is, having a property DefaultPresence which
 would be set to online, busy, etc.). Though indeed this data might
 be stored somewhere else and bound to the account via the unique account ID.

Indeed.

 At this point, IMHO, it would be better if in order to get the Google
 icon (and other settings) one would read a static file, whose path is
 uniquely identified by the provider name, and get the information from
 there. While, if I understand you correctly, you would pass this
 information along with the accounts data, in the first D-Bus call.
 OK, this probably is not a performance problem in the desktop, but still
 it's suboptimal, at least memory-wise.

No-one says that we are passing raw image data over D-Bus as
properties - we can do clever stuff like passing a serialized GIcon
instance and have something like a GoaHTTPIcon type in the
client-library. That way we'll just pass an URI in that serialized
GIcon data. See

 http://git.gnome.org/browse/gvfs/tree/client/gvfsiconloadable.c?h=gnome-3-0

for similar tricks done in GVfs to load thumbnails directly from the
device. We could also just decide to not have any icons/images be
properties - instead, we can just provide a D-Bus method to get the
icon/image. Then the implementation can read it directly from the
network if wanted.

 That's non-sense. Security is just as important in GNOME as in any
 other sensibly designed environment.

 Sorry, I probably should have clarified better what kind of security I'm
 talking about: I'm not referring to network security or even to local
 security threats coming from other local users. It's about trusting the
 applications that the user installs, and having different access rights.
 With this approach, we don't let applications specify their own
 application token, and request different authorizations to the account's
 data (for the OAuth case).

 I beg pardon -- having the word security associated with a certain
 context for 8 hours per day, I probably abused it here. But this is
 indeed the kind of security I had in mind, and I think you'll convene
 that it's not something GNOME is much concerned about. :-)

For the record, I think it's wrong to say that GNOME isn't concerned
about it and it's something at least I take offense at. And I'm
honestly not sure why you think GOA is that much different from your
stuff. For OAuth2 based services, which is all we support right now,
applications can only get the so-called Access Token from
goa-daemon, cf.

 
http://people.freedesktop.org/~david/goa-20110427/gdbus-org.gnome.OnlineAccounts.AccessTokenBased.html#gdbus-method-org-gnome-OnlineAccounts-AccessTokenBased.GetAccessToken

You know... if we wanted, we could be more discerning and put up dialogs like

 GWibber is requesting access to your Twitter account [Deny] [Allow]

much like we are already doing for system services via polkit cf.

 http://davidz25.blogspot.com/2011/02/gnome-3-authorization.html

but since the desktop is already one security context already, this is
more or less just pointless snakeoil. It would look cute though :-)

FWIW, I agree such dialogs make sense in the case where you have a
proper security architecture, like on Android, and each app is truly
its own security context and can't ptrace(2) each other and so on.
Last time I checked, this wasn't the case with Meego, maybe it's
different now. I don't know.

 - it doesn't have the concept of different services on the same account
 (in this respect, I think 

Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
Hey,

One of the things I'm looking at doing for 3.2 is the Web Accounts panel:

 http://live.gnome.org/ThreePointOne/Features/Sharing
 http://live.gnome.org/Design/SystemSettings/Profile

I sat down last week with one of the designers, Jon McCann, and we
came up with what we both think is a really nice user experience. It
is described in [1] for now - will move to the wiki soon.

Implementation-wise, I can see this as a very minimal daemon / library
that sits below libsocialweb, Telepathy, e-d-s and other APIs (e.g.
these libraries/frameworks would use this new framework) that is
dealing data online accounts. This daemon / library would

 a. have a notion of source types
   - email source
   - calendar source
   - chat source
   - photos source
   - contacts source
   - ...

 b. have a notion of providers that can be added removed by the
   end user
   - Google (for accounts at google.com and Apps For Your Domain)
   - Yahoo/Flickr
   - Exchange
   - Facebook
   - ...

 c. provide a concrete list of providers and what sources the
instance of the provider supports. For example, for my setup, I
would have the following

   - zeut...@gmail.com (an instance of the Google data provider)
 - Mail (email source)
 - Contacts (contacts source)
 - Calendar (calendar source)
 - Chat (chat source)
   - da...@fubar.dk  (an instance of the Google data provider)
 - (works because fubar.dk is using Google Apps For Your Domain)
 - Mail (email source)
   - dzeut...@yahoo.com (an instance of the Yahoo! data provider)
 - Flickr! (photos source)
 - (I specifically unchecked mail here because I don't want
the spam that is in that email account that I never use)
   - davidz25 (an instance of the Facebook data provider)
 - Messages (email source)
 - Events (calendar source)

The information in c. would map exactly to what the Web Accounts UI
would display:

 +--+
 | All Settings |
 +--+
 | +---+  Google Account|
 | | [Go] zeut...@gmail.com||
 | | [Go] da...@fubar.dk   (!) |  Username: david   |
 | | [Y!] dzeut...@yahoo.com   |  Domain:   fubar.dk_   |
 | | [Fb] davidz25 ||
 | |   |  Use this account for: |
 | |   ||
 | |   |  [ON  ] Mail   |
 | |   |  [ OFF] Chat   |
 | |   |  [ OFF] Contacts   |
 | |   |  [ OFF] Calendar   |
 | |   ||
 | +---+ (!) Authorization expired. |
 | | [+] [-]   | Please login again.|
 | +---+[Login] |
 +--+

This screenshot shows an example where the da...@fubar.dk account
needs attention (suppose that the password has been changed from
another system). In this case, I think the desktop would show the user
a notification saying The account da...@fubar.dk needs your
attention and upon clicking on it, the user is taking to the
control-center pane above.

This daemon/library thing, let's call it GOA (Gnome Online Accounts),
would _not_ be a mechanism to access any of these services. But it
would provide e.g. libsocialweb, telepathy, e-d-s and so on with
either the username/password combo or the OAuth token, whatever is
appropriate.

I would imagine Telepathy/Empathy to use GOA to get the Chat accounts
that is configured in GOA (in the above example, it would be Google
Talk from zeut...@gmail.com and Facebook Chat for davidz25). I would
use an Empathy specific preferences window (not appearing in
gnome-control-center I think) to add e.g. my ICQ account.

There are of course security / implementation considerations
(password/auth token hygiene, should we treat the desktop like it's
not a single security context when it really is?) here - all of that
comes next.

Technically, I'm proposing that we add a GOA module with

 - a daemon, goad, that implements the org.gnome.OnlineAccounts interface
   on a well-known object /org/gnome/OnlineAccounts and owns the well-known
   name org.gnome.OnlineAccounts (all this is on the session bus).

   Additionally, this daemon would notify the user if attention is
   needed (e.g. reauth) using org.freedesktop.Notificatins / libnotify.

 - a library, libgoa-1.0, that is used to speak to goad (but an app can
   also just use the D-Bus interface if it wants to). This library is what
   

Re: Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
Hi,

On Tue, Apr 19, 2011 at 9:28 AM, Bastien Nocera had...@hadess.net wrote:
 On Tue, 2011-04-19 at 09:08 -0400, David Zeuthen wrote:
 snip
 This daemon/library thing, let's call it GOA (Gnome Online Accounts),
 would _not_ be a mechanism to access any of these services. But it
 would provide e.g. libsocialweb, telepathy, e-d-s and so on with
 either the username/password combo or the OAuth token, whatever is
 appropriate.

 The hard part here is handling application-authorisation. For example,
 for Flickr, it's not enough to have a login/password combo, you also
 need to allow the framework/application access to the account.

 You'll also see that both libsocialweb and bisho (the config panel for
 libsocialweb) have quite a lot of that code, including oauth helpers. It
 would certainly make sense to split it out of libsocialweb in this case.

Yup, I most of that out of my initial description to keep it short (I
tried to allude that both authorization (authorize app to use flickr)
and authentication (proving to flickr who you are) might need a web
browser in the footnote) - would definitely not want to rewrite all
that code if it's already written.

 David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
On Tue, Apr 19, 2011 at 10:23 AM, David Zeuthen zeut...@gmail.com wrote:
 Yup, I most of that out of my initial description to keep it short

Sorry, I obviously haven't had enough coffee yet - I meant to say that
I left authorization and authentication details out of my initial
description to keep it short.

 (I tried to allude that both authorization (authorize app to use flickr)
 and authentication (proving to flickr who you are) might need a web
 browser in the footnote) - would definitely not want to rewrite all
 that code if it's already written.

     David

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
On Tue, Apr 19, 2011 at 9:57 AM, Milan Bouchet-Valat nalimi...@club.fr wrote:
 Le mardi 19 avril 2011 à 09:08 -0400, David Zeuthen a écrit :
  - a daemon, goad, that implements the org.gnome.OnlineAccounts
 interface
    on a well-known object /org/gnome/OnlineAccounts and owns the
 well-known
    name org.gnome.OnlineAccounts (all this is on the session bus).

    Additionally, this daemon would notify the user if attention is
    needed (e.g. reauth) using org.freedesktop.Notificatins /
 libnotify.
 Do you really need a daemon? Sounds like everything could be handled by
 applications that use these accounts via the library. Is there a point
 in connecting to these accounts if no app is using them?

 If not, then notifications can be emitted by the app when it tries to
 connect and finds the password has changed (which would be done
 automatically by libgoa). And the library would get information about
 accounts from GSettings and gnome-keyring, without the need for any
 daemon.

It's not unimaginable that some online service might want to use some
3rd party library to do its thing. It's also just a lot simpler to
serialize writes etc. if you know that only one process is going to
touch the data at any one time.

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Online Accounts panel for 3.2

2011-04-19 Thread David Zeuthen
Hey Alberto,

Thanks for your response!

On Tue, Apr 19, 2011 at 10:12 AM, Alberto Mardegan
ma...@users.sourceforge.net wrote:
 Hi David,

 On 04/19/2011 04:08 PM, David Zeuthen wrote:

 Hey,

 One of the things I'm looking at doing for 3.2 is the Web Accounts panel:

  http://live.gnome.org/ThreePointOne/Features/Sharing

 See the Current status section in that page. We already have all of this
 (and more) in MeeGo, and I'm willing to support any efforts in bringing this
 to Gnome.

I did briefly look at http://gitorious.org/accounts-sso/accounts-glib
but quickly got lost as that appears to be just the client-side GLib
glue. And some of the other stuff looked pretty specific to Meego.

 There are of course security / implementation considerations
 (password/auth token hygiene, should we treat the desktop like it's
 not a single security context when it really is?) here - all of that
 comes next.

 We addressed all security concerns already; feel free to ask in case you
 have some doubts.

Oh, it's not so much that I had any unresolved concerns - I was just
pointing out that I was aware that I knew that I have to be careful
there.

 I'm sure that especially for the SSO part there'll be need for work in order
 to adapt it to the desktop; but it will still be far quicker than rewriting
 everything. The accounts part should be already well working on the desktop.

Can you give a short overview of exactly what components that you've
written that GNOME would use (including their dependencies and whether
it's a per-session daemon, per-system daemon or shared library), what
GNOME would need to write itself and how it would fit together with
the UX that I've described? I mean, obviously accounts-glib would be
an external dep and obviously we'd write our own GNOME Control Center
panel ... but what else? I'm asking mostly to figure out what
additional dependencies this would add to GNOME if we were to use it!

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Control Center items (Was Re: Online Accounts panel for 3.2)

2011-04-19 Thread David Zeuthen
Hi,

On Tue, Apr 19, 2011 at 10:52 AM, Frederic Peters fpet...@gnome.org wrote:
 David Zeuthen wrote:

 I would imagine Telepathy/Empathy to use GOA to get the Chat accounts
 that is configured in GOA (in the above example, it would be Google
 Talk from zeut...@gmail.com and Facebook Chat for davidz25). I would
 use an Empathy specific preferences window (not appearing in
 gnome-control-center I think) to add e.g. my ICQ account.

 Could you elaborate on this, e.g. why would ICQ and other types of
 online accounts be deported to a specific preferences window?

I was mostly just thinking out loud - and that thought came out
because it would seem weird to both Online Accounts and a Messaging
and VoIP Accounts items in the control center (that, and we have
limited space there).

I guess my view is that mainstream/branded accounts (such as Google,
Facebook etc.) would be handled by the Online Accounts panel while
something as baroque as ICQ (it was once big but isn't really anymore)
would be handled by app-specific preference windows. Or maybe Online
Accounts is used to configure not only something like GOA (e.g.
branded accounts) but also Telepathy. I don't know. I'm not the best
person to make that call - ask the GNOME designers?

 This is somehow related to the Contacts thread, where it is said we
 could replace the empathy contact list with the shell; in this scheme
 there's no place any longer for that specific preferences window, and
 it makes sense (to me) to have it in the online accounts panel, along
 others.

Sure. FWIW, I think we probably need some high-level design input that
takes all these currently moving pieces and proposals into account.
Again, I defer to the designers here.

(Sorry if this sounds like a cop out. It's not. I agree this is an
important thing.)

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Control Center items (Was Re: Online Accounts panel for 3.2)

2011-04-19 Thread David Zeuthen
Hi,

On Tue, Apr 19, 2011 at 11:24 AM, Frederic Peters fpet...@gnome.org wrote:
 I am also of the opinion we want a single panel; but I think the
 design of the online accounts panel should allow the accounts that
 are currently in the messaging and voip accounts panel

I agree.

 ; nothing
 really new here, I had that old mockup in mind:

  http://gitorious.org/gnome-design/gnome-design/blobs/master/mockups/control%20center/web-services/web-services-2.png

Yeah, I looked at this too.. and it's somewhat what I had in mind -
the only difference is that I think we need to support multiple
instances (e.g. multiple Google accounts - I personally have both a
gmail.com account and also a google-hosted fubar.dk account). While
this might be a 5% thing (I think it's slightly higher actually),
enough of us hackers use such a feature so not supporting it means a
lot of people won't be eating the dogfood.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: SoC idea: desktop file cache

2011-03-25 Thread David Zeuthen
Hey Colin,

On Thu, Mar 24, 2011 at 11:22 PM, Colin Walters walt...@verbum.org wrote:
 The next question is how does the cache get rebuilt?  I think we
 basically need a system service with an inotify (GFileMonitor) watch
 on all those directories, and it takes care of rebuilding it.

Sounds good, but we really want a session-service [0] instead of a
system-service - otherwise it won't work with apps installed in
$HOME/.local or whatever $XDG_CONFIG_DIRS points to. With this, could
also implement this as a gnome-settings-daemon plug-in if you don't
want the overhead of another process. And you completely bypass the
nasty (and often overlooked) implications of dealing with two security
contexts instead of just one. And you also bypass other nasty problems
like $HOME on NFS or automount issues if you decide to fix this flaw
later by having the system daemon look in the users home...

Btw, if this service runs in the session, it can also be smart about
e.g. synthesizing desktop files for glick-style [1] applications
previously seen or downloaded or living in ~/Applications or
~/Downloads or something. Of course someone needs to come up with a
design for how runtime-less bundles should work but, at least, let's
not make it impossible from the get-go by implementing caching at the
system-level.

(On a machine with a one or two sessions at a time, the
session-instead-of-system approach has approximately the same
performance characteristics as the system-service approach. On
machines with many many sessions (Largo, FL terminal servers for
example) you might want to also have a system-wide cache that each
session can use. Could be it doesn't matter doing such a (premature)
optimization though.)

David

[0] : you actually really want a service that is per (user, machine)
instead of per-session... this is easiest implemented by using the
D-Bus name org.service.machine-id on the session bus and using
storage in $HOME/.local/service/machine-machine-id for the cache

[1] : 
http://blogs.gnome.org/alexl/2007/08/07/experiments-with-runtime-less-app-bundles/
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Moduleset Reorganization -- Take two

2010-10-07 Thread David Zeuthen
Hi,

On Thu, Oct 7, 2010 at 7:38 AM, Vincent Untz vu...@gnome.org wrote:
 Candidates for this set include: ConsoleKit, NetworkManager, Xorg,
 avahi, bluez, cairo, dbus, geoclue, gudev, libxml, pulseaudio, udisks,
 upower.

This should include polkit since a) udisks and other services will not
work without it; and b) other parts of our stack (such as dconf)
really wants to rely on it too.

Thanks,
David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: New module decisions for 3.0

2010-06-02 Thread David Zeuthen
Hey,

On Tue, Jun 1, 2010 at 8:48 PM, Joe Marcus Clarke mar...@freebsd.org wrote:
 On Tue, 2010-06-01 at 20:20 -0400, Matthias Clasen wrote:
 On Tue, Jun 1, 2010 at 7:38 PM, Vincent Untz vu...@gnome.org wrote:
  Hi,

 
   + Since we don't have HAL anymore, we need to clearly document what
    code needs to be ported to various platforms. See the wiki page:
    http://live.gnome.org/action/diff/TwoPointThirtyone/PortabilityMatrix

 Just to emphasize this point: it is a wiki page, and we would
 appreciate contributions to this table, in particular from people who
 might have first-hand experience in getting GNOME built on non-linux
 systems.

 It's good you started this because I was going to comment.  The state of
 things on FreeBSD is as follows:

 GIO : volume monitoring : works because it uses hal

GIO also works even if you don't have HAL because GIO ships with a
GUnixVolumeMonitor that works on most Unices even the really obscure
ones.

Btw, you could also write a GVolumeMonitor implementation that uses
FreeBSD specific APIs to enumerate drives, volumes and mounts.

 g-d-u : does not work as it requires udev

Actually, this should be does not work as it requires udisks. The
gdu codebase is very careful about not using Linux specific API and
even not assuming the udisks daemon is running on the same host - this
is why e.g. management of remote hosts

 http://people.freedesktop.org/~david/gdu-multiple-servers.png

just works. IOW, if you have something implementing the udisks API,
then gdu and palimpsest will just work.

 udisks : does not work as it requires udev

Actually udisks is designed in a way so it isn't dependent on Linux
and so it can be ported to, say, FreeBSD or Solaris. Honestly, it's
this way mostly because Linux itself is a very fluid and moving
target Anyway, the docs clearly shows this

http://hal.freedesktop.org/docs/udisks/

e.g. Linux specific features are clearly marked as such; IOW there's
no attempts to abstract what, say, RAID means and then hope that the
Linux implementation (using MD RAID) and the FreeBSD implementation
(using Vinum) agrees and both fit a common API. Because I don't think
that's ever going to work (the best we can hope for is that both OS'es
have a notion of block devices).

The udisks codebase however isn't currently set up so it's easy to
port the udisks codebase to, say, FreeBSD. But I'm planning to at
least make that easier, I'm already busy porting it to use GDBus and a
big part of that work is cleaning up the separation between the core
service and kernel-OS-specific code.

 The big problem is clearly udev.  Last I looked, it was very
 Linux-centric (i.e. a very thin wrapper on sysfs which FreeBSD does not
 have).  The reason upower came to be on FreeBSD was that someone
 abstracted the backends, and made it easy to plug in new ones.  Say what
 you will about hal, it had a spec that made it relatively easy to port
 from platform to platform with some amount of consistency.

 In FreeBSD we have a device tree which provides a hierarchy of device
 nodes, but doesn't give too many details about each device.  For that,
 we have to dig a bit deeper (often times requiring root access).  For
 hal, that wasn't a big deal.  We could separate privileges, and things
 worked.  I guess udev is started as root by dbus, so that shouldn't be a
 big deal.  What is a big deal is deciding what device nodes to report
 and what properties of those nodes to advertise.

 If there was an abstracted backend API for udev, and a list of common
 subsystems/devices/properties required, I think it would be possible to
 integrate the work done in hal.

Having backends for udev just doesn't make sense because udev (or
sysfs) itself isn't a spec or an abstraction. It's the raw Linux
device management API - in a very real sense you are dealing with
internal kernel data structures when you peek and poke around in sysfs
either directly or indirectly via libudev / libgudev1. So it might be
easier just to run Linux instead of trying to emulate it

 David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: New module decisions for 3.0

2010-06-02 Thread David Zeuthen
Hey,

On Wed, Jun 2, 2010 at 2:23 PM, Richard Hughes hughsi...@gmail.com wrote:
 On 2 June 2010 17:37, David Zeuthen zeut...@gmail.com wrote:
 The udisks codebase however isn't currently set up so it's easy to
 port the udisks codebase to, say, FreeBSD. But I'm planning to at
 least make that easier, I'm already busy porting it to use GDBus and a
 big part of that work is cleaning up the separation between the core
 service and kernel-OS-specific code.

 The time between me adding the required separation and Makefile glue
 and the FreeBSD UPower backend getting merged was a matter of weeks. I
 think it's a classic case of taking the time for the first step and
 then asking people to fill in the blanks.

While there's some truth to that, storage is generally much than
system-wide power management - for example, non-Linux udisks backends
will have to supply filesystem and partition table routines
themselves. And getting it wrong can lead to nasty data corruption
disasters etc etc.

David
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME 2.30 and udisks (the module formerly known as DeviceKit-disk)

2010-01-22 Thread David Zeuthen
On Wed, 2010-01-20 at 18:33 -0500, Matthias Clasen wrote:
 David, any chance to bless a git snapshot as udisks-0.99 so that we
 have something to keep the processes greased until 1.0.0 ?

OK, I'll do a RC1 next week.

Thanks,
David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME 2.30 and udisks (the module formerly known as DeviceKit-disk)

2010-01-20 Thread David Zeuthen
On Wed, 2010-01-20 at 21:41 +0100, Luca Ferretti wrote:
 I was rebuilding from scratch my jhbuild sandbox, when
 gnome-disk-utilities failed due to missing udisks pkg-config file.
 
 I tried to search for a released udisks package, but the only one I
 found is a git snapshot here[1].
 
 So, the following unavoidable questions:
   * when will be available a stable udisks release?
   * we'll automatically switch to udisks as external dependence?
 (I
 suppose yes)
   * how many modules currently depends on PolicyKit-disks? (just
 g-d-u, if I'm right)
   * what about PolicyKit-power?
 
 Cheers, Luca

As announced elsewhere, udisks is simply DeviceKit-disks with a name
change. FYI, there will be a udisks 1.0.0 release in time for
gnome-disk-utility 2.30 - until then, people can use git master or
recent distros like Rawhide or whatever. Also, GVfs master still works
with gnome-disk-utility 2.28 if you don't want any of the new stuff yet.

David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: New module proposal: tracker

2009-10-29 Thread David Zeuthen
On Thu, 2009-10-29 at 22:25 +0100, Luca Ferretti wrote:
 But in previous GNOME release we accepted stuff like PolicyKit or
 DeviceKit or PulseAudio while not yet officially released or widely
 adopted. And those stuff was needed to be installed under /usr in order
 to properly work.

I believe all of these things are (optional) dependencies, not anything
part of the GNOME desktop proper. Except for maybe PulseAudio. Solaris,
for example, don't use any of this stuff.

 Tracker, instead, can be simply tested in a JHbuild sandbox.
 
 So this doesn't seem to me a reason to drop its inclusion.

I'm with Zeeshan on this - what's the harm of delaying the inclusion of
Tracker until it has actually proven itself to be useful for Linux
Desktop uses? (In my view, Maemo isn't a typical Linux Desktop)

Not to sound like an asshole or anything but, I mean, didn't distros try
including Tracker by default in previous releases? AFAIR, it didn't
really work well. So if GNOME included Tracker in the next release and
core parts of GNOME started depending on it in a way that couldn't be
turned off... then distros would be in a lot of trouble if Tracker
didn't work well. This would probably end up reflecting badly on the
GNOME project.

Instead, I'd be a lot more thrilled if the Tracker developers would
suggest Tracker as an optional dependency (just like e.g. polkit is.. or
at least used to be) - e.g. apps using Tracker would have need a
--disable-tracker or --enable-tracker configure option. This way we can
start integrating Tracker into GNOME without causing the ride to be too
bumpy.

Thanks,
David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: New module proposal: tracker

2009-10-29 Thread David Zeuthen
On Thu, 2009-10-29 at 22:49 +, Martyn Russell wrote:
  I believe all of these things are (optional) dependencies, not anything
  part of the GNOME desktop proper. Except for maybe PulseAudio. Solaris,
  for example, don't use any of this stuff.
 
 That's not true, we have a few Solaris people sending us patches from 
 time to time.

I think you misunderstood what I said. I wasn't talking about Tracker.
And it's good that the Solaris people are sending you patches.

The point, really, is that Luca was incorrect in stating that we (GNOME)
unconditionally adopts dependencies that are not widely deployed or
fully baked. This was true (and in a sense, still is for some of these
components) for polkit, devkit-disks/gnome-disk-utility, Pulseaudio,
PackageKit and the list goes on. Why do you think it should it be any
different for Tracker?

  I'm with Zeeshan on this - what's the harm of delaying the inclusion of
  Tracker until it has actually proven itself to be useful for Linux
  Desktop uses? (In my view, Maemo isn't a typical Linux Desktop)
 
 Maemo is a target platform being used by real people just like the 
 desktop is 

Of course it is, no one is disputing that.

 so I don't agree with that argument.

Here's the point: Surely, Maemo, or, rather, Nokia (who develops the
bulk of Maemo) went through the motions of working out why Tracker is
useful and, you know, actually, patched their set of apps to use it.
Including spending a lot of money making all this happen. 

All I'm saying is that we need to do the same in GNOME. This is
double-plus true because GNOME has a much more diverse set of
downstreams. In other words, there are many products (distros if you
like) that incorporate GNOME. Consequently, because GNOME is a lot of
things to a lot of people it's much *harder* to figure out how to use
and deploy Tracker in a meaningful way. I think the recent threads about
Tracker and GNOME really shows this.

Anyway, I'm really not so sure why it's so important for you guys to be
in the GNOME Desktop right away. Again, I'd much rather see Tracker as a
blessed optional dependency (ideally following the GNOME release
schedules) while you work with applications authors so they can use
Tracker to deliver great value and all that good stuff.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: New module proposal: tracker

2009-10-29 Thread David Zeuthen
On Thu, 2009-10-29 at 19:38 -0400, Jamie McCracken wrote:
 this is all hypothetical. What matters is that people actually try it
 out then make judgements based on whether the current tracker gives a
 good experience. If people dont do this then the same arguments will be
 made whenever tracker is proposed again regardless of how good or bad it
 is

Sure. This means you need to lobby the distributions to ensure that
Tracker is installed by default. That's what a lot of people are saying
here - you need to make sure people feel all warm and fuzzy before you
can make them accept a non-optional dependency.

 The problem is that to leverage the full power of
 tracker, you need much deeper integration and its not practical to make
 it optional in those cases

This is a very general and broad statement concerning the key element in
this discussion. I think it would help your case if you expanded on why
this is so and what power would be unleashed.

 The way I see it is if Gnome wants to be in a position to challenge OS/X
 and Windows 7 then it needs to make bold decisions. Playing it safe
 means it will stagnate and Gnome will miss out on all the cool
 technology.

This is kinda hyperbole - not really useful. But, hey, did you know that
monitor hotplug in GNOME almost works as well as in Windows 95 now? -
That is, if your video driver works with your hardware ;-)

(With apologies to the X hackers. The point here, really, is that we
have the work cut out for us. Indexing/metadata is important but, uh,
there's so much other work that needs to be done too.)

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


gnome-disk-utility branched for 2.28

2009-09-18 Thread David Zeuthen
Hey,

This is to let you know that gnome-disk-utility has branched for 2.28,
the branch name is gnome-2-28. New development happens on master.

Thanks,
David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Tracker, Zeitgeist, Couchdb...where is the problem ?

2009-08-18 Thread David Zeuthen
On Tue, 2009-08-18 at 16:48 -0400, Matthias Clasen wrote:
 I think this recent discussion about tracker as a gnome module is
 somewhat backwards. I don't think it is leading us anywhere to talk
 about ontologies and rdf and events and timelines and metadata stores
 and kernel apis before we answer the first question:
 
 What is the user problem that we are solving here ?
 Can that be described in a paragraph ?
 And if it can, is it something that a 'regular' user would recognize
 as a problem he has on his computer ?
 
 Once we have the problem scoped out, we need to look at the user
 experience we want to aim for in solving it. Will it be a single
 search-for-everything dialog ? A query language ? Tagging everywhere ?

Excellent suggestion, thanks for bringing some order to this thread
Matthias. But kinda sad to see people reply to this with technology
evaluations - I mean, COME ON PEOPLE, the point here is to IGNORE
technology until we've figure out

 1. what problems we want to solve for the user

 2. the user experience

So, everyone, please refrain from even thinking about mentioning
specific projects like tracker, couchdb, zeitgeist, nepomuk, whatever
etc. in this thread. Thanks.

 After that, it might be possible to evaluate whether tracker,
 zeitgeist, couchdb or something else can be part of the
 implementation...

Suggest to do this in a new thread.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME and non-linux platforms (release team please stand up)

2009-07-30 Thread David Zeuthen
On Tue, 2009-07-28 at 12:10 -0500, Brian Cameron wrote:
 I have pinged the Sun team working on DeviceKit and suggested they
 be better about communication with upstream by sending some status
 to the devkit-devel mailing list.

Thanks.

 Also, Solaris has a security rule that requires that users not be asked
 to enter passwords for gaining authorization unless they are in the
 trusted path.  To my understanding, PolicyKit does not address this
 issue today, perhaps because most Linux distros are not as strict about
 this requirement.  This technical issue could be overcome, for example,
 by switching to a separate VT in the trusted path to display the
 dialog.

Yes, it is entirely possible to easily make PolicyKit use an
Authentication Agent that runs outside the session. If you wanted you
could even make the authentication agent communicate with a separate
device (for example a separate device connected via USB with small
display / big flashy button the user can press to authenticate the
request) or a mobile phone display (using BT for proximity)... or
whatever... e.g. the APIs are in place for such things.

And, sure, for home/consumer usage just having both the screensaver
unlock dialog, the PolicyKit authentication dialogs and other stuff
(such as GMountOperation interaction [1]) running in a trusted sandbox
(e.g. separate Xserver/VT) is probably what we want. That way, nothing
running in the user session can ever snoop on passwords. Of course this
requires a lot of bug fixes in the X.org stack (it is essentially fast
user switching), we need a system compositor (like wayland), ConsoleKit
changes and so on... so blue sky for now.

Btw, I wonder how you implement screen locking (e.g. screen saver) /
connecting to network shares (e.g. gvfs) / ssh (via the terminal) if you
don't want people to enter passwords... seems like a weird backwards
requirement to only require it for gaining authorizations and not for
something like unlocking the screen.

[1] : See

http://mail.gnome.org/archives/gtk-devel-list/2007-December/msg00149.html
http://mail.gnome.org/archives/gtk-devel-list/2007-December/msg00169.html

 There has been some concern expressed about using PolicyKit with an RBAC
 backend.  If Solaris ships configuration files for both RBAC and
 PolicyKit, then users will likely need to understand and configure both
 systems to properly configure their setup.  There is a desire to avoid
 adding unnecessary complexity.  Perhaps a GUI that hides this complexity
 from the user could help to address this concern.

The only thing you need is to figure out whether an mechanism-defined
action (as defined in the .policy file shipping with the mechanism) is
allowed or not. So you would just have a small white-list for known
applications _if_ you don't want to trust the defaults provided by the
mechanism vendor.

I think the central problem here has to do with expectations and _who_
you are designing the OS for. Now, PolicyKit allows the mechanism vendor
to ship defaults - we need this because in modern desktop systems
intended for _consumers_ you (as the OS vendor) have zero control of
what is installed by default. Contrast this with the typical mind-set
where security/authorization framework designers happily assume they are
in full control of what is on the box and provide little or no way for
3rd party apps to participate. It just doesn't work in a modern desktop
operating system.


 Regarding RBAC, it has been a NIST standard since 1992.  Sun is just one
 company that implements RBAC, it is not a Sun technology.  

The NIST stuff, last time I checked, is more like a list of abstract
requirements that can apply to a ton of different systems (including
database systems where it is mostly used). Calling RBAC a standard is a
stretch, I mean, there's no well-defined API, file formats or anything. 

Again, PolicyKit is just an _interface_. You can implement almost any
kind of access control (both DAC and MAC) since PolicyKit provides a
wealth of information about what is going on and the actual decision
making happens in a separate trusted process.

The default authority implementation in PolicyKit (dubbed the Local
Authority) basically implements most of the useful bits of RBAC (as per
the NIST requirements). Other PolicyKit authority implementations may
implement other things; for example the Red Hat IPA team wants to
implement an authority that reads authorizations from a centralized
directory server.

   David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME and non-linux platforms (release team please stand up)

2009-07-24 Thread David Zeuthen
On Thu, 2009-07-23 at 04:58 -0500, Brian Cameron wrote:
 Sun is already working to add DeviceKit support to Solaris

It would be good to the devkit-devel mailing list know about this.
Because if this is so, we need to change some of our plans; in
particular move the make porting easier up the priority list. Also, I
hope you guys know that PolicyKit is a not an optional dependency.

Either way, even if you didn't want to contribute to DeviceKit-disks or
DeviceKit-power, you can always just ship your own GVolumeMonitor
implementation in a GIO module [1] and patch/reimplement g-p-m to use
whatever. As I said in other mails, I don't think we ever want the core
G stack to depend on something that only exists for Linux.

[1] : This GVolumeMonitor implementation could probably use the same
codebase as your excellent Fishworks product.

 Sun does not have much of
 an interest in shipping modules which have a strong dependency on
 PolicyKit

No-one ever explained to me why Sun is suddenly not interested in this -
and SUN did send patches to PolicyKit earlier on. The only explanations
I've seen (in private mails) included childish statements like claiming
PolicyKit is rubbish and that the author, me, didn't know what I was
doing.

Anyway, maybe you should ask someone at Sun out the latest polkit
version

http://hal.freedesktop.org/docs/polkit/

which is a complete rewrite of the old code. PolicyKit, by itself, is
now merely an interface to interface to the authorization system -
adding support for a Solaris RBAC backend amounts to subclassing a
single class, implementing two methods and drop that code in an .so in
$libdir/polkit-1/extensions. Yes, you're welcome that it is now this
easy.

 (e.g. Sun is moving to use VisualPanels instead of wanting
 to ship GNOME system tools), and it typically isn't hard to make those
 few programs that use PolicyKit that we do want to ship use RBAC
 instead.

Uh, RBAC just _doesn't_ do what a modern desktop needs. At least not
last time I checked. The problem with Solaris RBAC, like many other
authorization frameworks out there (I did an extensive analysis of many
different authz frameworks some time ago), is that they really are not
designed with the modern desktop in mind.

Case in point, last time I checked out OpenSolaris (about a year ago so
things might have changed) the whole package manager UI was a single
process running as uid 0. Not only does this violate very fundamental
security principles (least privilege etc.), it also messes up the user
interface (theming, file chooser (root's home) etc.). And if you want
a11y to work with such programs, then you effectively just extended uid
0 privileges to the rest of the desktop session.

 I am not sure what the big deal is here.  Nobody from Sun has been
 complaining about GNOME being too Linux-ey, have they?  Sun has always
 had a good relationship with the GNOME community, and it has never been
 particularly hard to get patches upstream to support things needed for
 GNOME to work well on Solaris or OpenSolaris.

The perception, at least from me personally, is that Sun isn't doing a
very good job at *working* with the GNOME community. Case in point, if
RBAC or Visual Panels are oh-so-much-better, why the heck are you guys
not trying to push it for non-Linux? And actually do the integration
work inside GNOME instead of bolting your work on after the fact? That
would benefit both Sun, the rest of the GNOME community and it would
make you guys look a lot better. At least in my eyes.

Btw, if you look at the Linux kernel community, behavior like this is
frowned upon. So I don't think you should be too surprised that this is
how some of us feels.

Anyway, didn't mean to sound rude or too harsh, hope you guys will take
this as constructive criticism.

David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME and non-linux platforms (release team please stand up)

2009-07-22 Thread David Zeuthen
On Wed, 2009-07-22 at 16:27 +0100, Calum Benson wrote:
 On 22 Jul 2009, at 15:56, Johannes Schmid wrote:
 
  OK, I can install all those in a virtual machine but just the amount  
  of
  work I had to put in for basic testing cannot be really done in my  
  free
  time.
 
 That's certainly true for many individual contributors, which is why I  
 also said we ought to to figure out how to better distribute the  
 development and QA workload to make that happen.
 
 However, for people who make their living developing GNOME software,  
 IMHO it behooves them as professional open source software engineers  
 to respect the requirements of the other people who will be using the  
 code they write, insofar as those requirements are known up front.   
 And right now, every professional GNOME developer knows up front that  
 GNOME isn't confined to running on Linux, so that should figure fairly  
 strongly into their design work.

You know, maybe if the non-Linux platforms actually participated in
_designing_ and _developing_ the core plumbing bits, threads like this
wouldn't have to happen. 

My experiences from GIO, GVfs and HAL and other things pretty much sums
up to this.

 1. We find out we need some new plumbing bits to enable some kind
of new exciting feature in GNOME.

 2. Someone starts working on a Linux implementation of this. The
interface is usually designed to be portable, but, hey, who
knows.

 3. GNOME is ported to using this new plumbing bit. After a while the
plumbing bit matures and the new feature is being ironed out.
Much rejoicing.

 4. Someone from SUN finds out that the latest version of some GNOME
doesn't compile on Solaris or work as advertised. Interesting bugs
are filed.

 5. Some manager at SUN decides Solaris needs this feature too

 6. The porting effort is out-sourced to some group in SUN
with people that are not really familiar with either a) the
plumbing bits in question; b) desktop development or GNOME
development in general

This may be harsh but it's pretty much how I feel it works.

It would be a lot better if non-Linux platforms, like Solaris is in this
respect, actually started participating much earlier. You still have
time for the DeviceKit-disks and DeviceKit-power stuff for example.

Anyway, if SUN started changing this behavior then maybe it would be a
lot easier to not feel incredibly insulted by statements like it
behooves them as professional open source software engineers to respect
the requirements. Because right now it's the pot calling the kettle
black.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME and non-linux platforms (release team please stand up)

2009-07-22 Thread David Zeuthen
On Wed, 2009-07-22 at 15:50 -0400, Colin Walters wrote: 
 On Wed, Jul 22, 2009 at 3:10 PM, Colin Walterswalt...@verbum.org wrote:
 
  I think it makes sense to continue to have GNOME work in the basic
  POSIX+X11 mode, i.e. gnome-power-manager just calls exit(0) if
  devicekit-power isn't running.  But beyond that is hard.
 
 I should add that despite it being hard, the different interests here
 should try to have a constructive conversation about it.
 
 Some of this is more easily divisible than others; nothing directly
 depends on nm-applet, and most projects using say
 org.freedesktop.NetworkManager already have it conditional, and it's
 not hard to do.  For other things like detecting a webcam device and
 using it...well...hard.

Exactly.

FWIW, I've been advocating for a while that, for example, GStreamer
should aim to provide everything an application needs - ie. a complete
framework. This came up when Cheese was being ported from HAL to use
libgudev for device discovery. Now, the actual device interaction
already happened in GStreamer, e.g. you use the v4l source and pass it a
device file. But device detection etc. was missing. Having all that in
GStreamer will make Cheese easily portable to Solaris, Windows, OS X and
so on (and AFAICT these changes are happening in GStreamer so kudos to
these guys).

On a more general note, the way I'd like our platform story to end up is
that GLib, GTK+ and GStreamer are the three only (sets of) libraries
that people end up using. We're there already for storage/io devices
(GVolumeMonitor) and networking (the networking/resolving bits that
recently landed in GIO).

The way it works for storage/io is through GIO extension points:

 - The interface library (GIO) provides default implementations
   (GUnixVolumeMonitor, GWin32DirectoryMonitor for example)

 - Modern desktop operating systems can be replace implementations
   with in 3rd party packages. We do this in GVfs - there's a HAL
   based volume monitor that works on Linux, FreeBSD and Solaris.

In fact, thanks to this separation it was relatively straightforward to
just make GIO use DeviceKit-disks instead of HAL. And Solaris and
FreeBSD can keep using the HAL monitor while modern Linux distros switch
to the DeviceKit-disks based on.

(In fact, if the Solaris folks don't want to go through the effort of
porting DeviceKit-disks (it's *hard* to port right now, something I as
the maintainer will need to be involved in fixing), they can simply just
write their own GVolumeMonitor implementation.)

Another benefit of this separation is that we are less dependent on
changes in one particular operating system. This is doubly-plus
important in Linux where our current code depends on certain kernel
API / details that are not stable. A concrete example is the proposed
libata transition from the SCSI layer to the block layer. If each and
every app had to look at sysfs themselves, we'd be in porting hell.

To sum up, I guess I'm trying to say a couple of things here

 1. We need to make our core libraries genuinely useful - e.g. we
can't have them only do half of what apps need (e.g. Cheese)

 2. We need to actually have some documentation telling app developers
_what_ the core platform is. We have some of this already but,
at least in my eyes, there's still too many libraries of varying
quality.

For 2., my view is very simple. 

 a. Our platform is GLib, GTK+ and GStreamer (and probably cool things
like Clutter when it's 1.0)

 b. Everything in the core platform _needs_ to work on all three major
platforms:
- POSIX/X11
- Windows
- OS X

 c. Additional desktop integration is welcome (e.g. DeviceKit-disks
based volume monitor) but things need to work without it

Now, GLib, GTK+ and GStreamer aren't yet complete enough to do a
complete desktop. But if you look at what's going on the past few years
we are definitely going in this direction:

 - GIO landed
 - GNIO landed
 - Discussion/concrete code for GConf replacement (GSettings in GLib)
 - Discussion/concrete code for G-ish D-Bus library in GLib
 - Some people want power management interfaces in GTK+ - again,
   this can already be done with extension points
   - (e.g. the POSIX/X11 would ENOTSUP, Linux would use devkit-power,
  Win32 would use the Win32 API, OS X would use the OS X API)

and so on. Oh, and there are some loose ends here like authorization,
keyring and so on - we'd need to figure out what to do with them. And
someone probably would want a HTML/JS stack too (maybe add WebKit to the
stack, I don't know).

So this is the vision: GLib/GTK+/GStreamer (and Clutter) is the proposed
stack. And the proposal is that this stack runs on at least POSIX/X11,
Win32, OS X. And that the stack is easily extensible so it works well
under Linux, Solaris providing someone writes implementations of
well-defined interfaces.

Again, all this is not really a radical _new_ idea - I mean, most of
this is already happening. But I think it 

Re: GNOME and non-linux platforms (release team please stand up)

2009-07-22 Thread David Zeuthen
On Wed, 2009-07-22 at 17:36 -0400, Colin Walters wrote:
 On Wed, Jul 22, 2009 at 5:07 PM, David Zeuthenda...@fubar.dk wrote:
 
 I agree with a lot of what you say, except:
 
   b. Everything in the core platform _needs_ to work on all three major
 platforms:
 - POSIX/X11
 
 This isn't a platform really.  Which is really the entire debate here.
  They're enough, along with maybe a file monitoring API, to write the
 classic shared Unix server desktop, complete with file manager,
 clock, and panel.  But beyond that - enterprise (let alone consumer)
 laptops in particular, no way.

No, but it's a starting point. Just like GUnixVolumeMonitor is a
starting point. And the same way GFileMonitor has a FAM backend (that
FreeBSD is still using as far as I can tell). People can fill in the
blanks with better implementations.

 If you guys working on DeviceKit-* are willing to have different
 backends, then that sounds fine.  It's not a complete answer, but it
 fills in the massive gap that removing HAL left.  If not, then we have
 to think about the story GNOME is going to tell here.  

We might but it's a lot of work. It is probably worth it.

 Maybe it just
 ends up being gnome-power-manager isn't even added to the session if
 there's no DK-power, and vendors have to fill in that gap on their
 own, i.e. it'd be renamed gnome-dk-power-manager, and someone else
 could come by and add a different daemon.

It's important to make a clear distinction between apps and the G stack.
For something like storage handling, every app needs it for the file
chooser. And for things being able to implement a file manager. So we
implement just enough of it in the G stack so it is useful.

For example, Nautilus basically (that's a big basically, but...) only
depends on GLib and GTK+ right now. But we don't offer enough API in the
G stack to write e.g. Palimpsest Disk Utility - e.g. if you want to
write a formatting tool, partitioning utility, whatever you need to
depend on something outside the platform. It just means that ISVs can
only write file managers and not advanced disk utilities. And that's
fine.

For power management, maybe we only offer basic API in the G stack to do
what apps need: E.g. inhibit system suspend / inhibit screensaver. And,
again, that's completely fine. We don't expect ISVs to be able to
implement complete desktop environments.

For Bluetooth, another Linux only thing for now, the answer is the same;
we probably don't need Bluetooth specific APIs - mostly because we
already abstract the useful Bluetooth stuff in GVfs and PulseAudio.

For Audio, it is basically the same. Apps don't really *need* to care
about whether it's Pulse/OSSv4 or whatever. They are supposed to be
using GStreamer *anyway*. So we probably don't need to provide any API
in the G stack except for things things like libcanberra which is
already portable to whatever.

Anyway, my main point is this: the POSIX/X11 target isn't so much about
making GNOME, the desktop run on POSIX/X11. It's about making apps
*built* for GNOME, the desktop, e.g. apps using only the G stack (e.g.
GLib / GTK+ / GStreamer / Clutter / Webkit / whatever) run on any random
POSIX/X11 system. Or any random Win32 or OS X system.

In *addition* we could require that the basic desktop shell (core apps
such as Nautilus, gnome-panel - gnome-shell in the future) needs to be
pure apps - e.g. only rely on the G stack. We'd probably want that even
if it means the basic desktop shell would run in degraded mode (e.g.
missing functionality).

This would of course also means that some apps that people think of as
core GNOME apps, such as gnome-power-manager wouldn't really be pure
apps (only using the G stack) insofar they would have strong deps on
things outside the G stack (e.g. devkit-power). Again, that's completely
fine.

It's all about how we *frame* it

 - G Stack (runs on any target)
   - gtk+/glib/gstreamer/clutter/webkit/whatever
 - G apps (can only depend on the G stack)
   - panel, file manager, desktop shell
 - Value add apps (may be OS specific)
   - disk utility / formatting / etc.
   - power manager
   - volume control (highly OS specific)

In my view this is very close to how things actually work. If we made
something like this official we wouldn't have to waste time arguing
whether the volume control is depending on PulseAudio or not of
course it would leave vendors not shipping PulseAudio in the cold, but
then again, these vendors can just work on their own volume control (or
take the GStreamer one) and do whatever they want. That's completely
fine.

So all in all, this is basically proposing shifting more responsibility
to the OS vendor. e.g. it would make it more difficult to get GNOME
working out of the box unless you are willing to ship the latest bits.
I, for one, think that is a *good* thing. Either you swim or you sink.

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org

Re: GNOME and non-linux platforms (release team please stand up)

2009-07-22 Thread David Zeuthen
On Wed, 2009-07-22 at 23:29 +0100, Bastien Nocera wrote:
 On Wed, 2009-07-22 at 18:17 -0400, David Zeuthen wrote:
  
  For Bluetooth, another Linux only thing for now, the answer is the
  same;
  we probably don't need Bluetooth specific APIs - mostly because we
  already abstract the useful Bluetooth stuff in GVfs and PulseAudio.
 
 Actually, not quite. The BlueZ D-Bus API is already an abstraction of
 the Bluetooth specs. You could implement that same API in another daemon
 for use on other Bluetooth stacks.

Yeah. But right now it is Linux only und so weiter... If someone ports
Bluez to other platforms, or reimplements, then, hey, great, they can
take advantage of all the cool Bluez integration you have written. That
alone should be reason enough for them to do it. But things like this
just don't happen over night. It took 2+ years for a Solaris backend for
HAL to surface and another year or so for the FreeBSD backend.

My main point really is that we need to stop thinking of GNOME as a
whole desktop environment that will run everywhere and solve every
problem known to man. We need to stop bickering about really OS-specific
things such as volume controls. We need to make a distinction between
applications (the thing people actually use) and OS-specific conduits
(audio volume control, formatting a disk).

We need to focus hard on providing a set of rich, but lean and tightly
controlled (e.g. solid maintainers needed), introspectable libraries so
people can write useful _applications_ in their favorite language. And,
ideally, for any target. And, more ideally, so apps are relocatable (cf.
the recent thread on gtk-devel-list).

Further, we need to design these APIs so they are extendable. We want to
provide baseline functionality for the X11/target (GUnixVolumeMonitor)
while at the same time take advantage of the latest and greatest
OS-specific software (DeviceKit-disks monitor).

(And, for those of you still reading, GIO/GVfs is an _excellent_ example
of how to do this. Alex really got this right.)

That set of APIs will provide a good foundation so people can innovate
in areas like GNOME Shell, Sugar, whatever without having to worry about
a lot of things.

(Of course we still need to care about system integration, e.g. the
whole DeviceKit-{disks,power}, PackageKit, Pulseaudio, Bluez story. But
it really shouldn't be anything that affects the G stack except that it
might optionally use parts of it in certain place. And we might use it
in apps that are not pure G apps - e.g. Bluez desktop integration,
Volume Control, Palimpsest and so on.)

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME 3 status update

2009-06-22 Thread David Zeuthen
On Sat, 2009-06-20 at 16:15 +0200, Andre Klapper wrote:
 =
 Complete migration from HAL to DeviceKit-* by 2.27.3

This also includes libudev/libgudev - the latter is available in udev =
143 which was just released.

 =
 NOT COMPLETED.
 According to jhbuild rdepends hal --direct the following modules still
 depend on HAL:
 * brasero: http://bugzilla.gnome.org/show_bug.cgi?id=581742
 * cheese: http://bugzilla.gnome.org/show_bug.cgi?id=583640
 * gnome-power-manager FIXED:
 http://bugzilla.gnome.org/show_bug.cgi?id=565867

Also, gvfs needs porting but Martin Pitt is on top of this:

http://bugzilla.gnome.org/show_bug.cgi?id=586410
http://bugzilla.gnome.org/show_bug.cgi?id=586409

I'll review and commit Martin's patches shortly.

 * Porting to PolicyKit 1.0
   PATCHES awaiting review/commit: gdm, gconf, gconf-editor,
 gnome-applets, gnome-panel, gnome-session

With PolicyKit 1.0, the model has changed [1] insofar that we don't need
to make clients of mechanisms using PolicyKit aware of PolicyKit itself.
So the port, GNOME-wise, actually only includes ripping out support for
PolicyKit, in particular the libpolkit-gnome.so.0 library which is no
more. 

There are a couple of pieces of GNOME software where we also provide our
own mechanism - GConf is one of those. But with the way things work,
this dependency isn't exposed in any public API, e.g. it's possible to
port the GConf defaults mechanism to use another authorization framework
if the OS happens to supply one.

Finally, there is still a polkit-gnome project. This package contains a
PolicyKit Authentication Agent (to pop up authentication dialogs when
needed) and will also contain a tool to modify the local authority (not
yet written but will be done before 2.28). This project does not provide
any API, only said Authentication Agent and the tool.

FWIW, Matthias done a great job both porting apps as well as creating /
maintaining this page

http://fedoraproject.org/wiki/Features/PolicyKitOne

which is useful for both distributors and the GNOME project itself.

I guess all this means that PolicyKit doesn't even need to be an
external dependency anymore; e.g. basically no apps need to be aware it
even exists.

Hope this clarifies.

David

[1] : See

 http://hal.freedesktop.org/docs/polkit/PolicyKit-1.8.html

for more information about how this works. In particular this change
means that our GNOME software is much more portable insofar that OS
vendors / distributors / sites / etc. can plug in their own
implementation of the Authority.


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: new dependencies in gvfs

2009-06-01 Thread David Zeuthen
On Mon, 2009-06-01 at 22:13 +0200, BJörn Lindqvist wrote:
 Here is the point, as I see it. g-d-u is proposed for inclusion in
 2.28. 

Please read

http://mail.gnome.org/archives/desktop-devel-list/2009-May/msg00016.html

where I've already stated upfront that the deps for gnome-disk-utility
is bleeding edge, why this is so and why that won't change.

Also note that the proposal for inclusion of gnome-disk-utility in 2.28
is dependent on this not being a problem. If it's a problem, maybe we
shouldn't consider gnome-disk-utility at all for 2.28 (I'm not in a
hurry to finish it anyway; it will see API breakage for a while).

If distros, such as Fedora, wants to use gnome-disk-utility they can
just include it themselves. And jhbuild / more conservative distros can
use the HAL GVfs backend, it works just fine. Of course there's a bunch
of features / stuff you won't get but such is life if you are using a
conservative distro.

David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: GNOME 3.0 - shell and applets

2009-05-15 Thread David Zeuthen
On Fri, 2009-05-15 at 01:58 +0200, Luis Menina wrote:
 Toms a écrit :
 
  1) System tray - applets that could end up in system tray, most
  probably contextually - like, when they are needed or make sense. Or,
  sometimes per user request in preferences (something like a show in
  system tray checkbox for those marginal nobody knows cases). As
  pointed out[2], KDE has some specs worth considering on the case.
 
 Please, don't try to abuse the system tray for things that should be 
 applets. System tray has been made to notify events. One should be able 
 to use GNOME without requiring a notification applet. 

Actually it's a real pain trying to support tweakers and enthusiasts
that, for one reason or another, don't have a notification area. A
couple of examples

1. In gnome-disk-utility we put an icon in the notification area
   to tell people that their disks are failing, see

   http://people.freedesktop.org/~david/gdu-ata-smart-notification.png
   http://people.freedesktop.org/~david/gdu-ata-smart-warning.png

   We also show a libnotify notification pointing to this icon.

   In fact, we don't show this notification if you don't have a
   notification area; I mean, we'd need to reword the libnotify
   notification (make it longer, bad) and also provide buttons to
   get the user to the app showing details.

   In other words, what was previously a clear warning turns into
   something that is pretty close to an UI disaster.

2. For PolicyKit, we want to convey the user that the user is running
   with elevated privileges (so they can throw these privileges away
   if desired). Without a notification area, you obviously won't get
   this icon.

It's not hard to come up with other legitimate examples (package
management for example) of why a notification area is useful.

Anyway, my stance on this is very clear: I will not support users
without a notification area, I'm just not going to add code and mess up
the UI just to support people who don't use a notification area.

(And, FWIW, I'd wish we had a better way in GNOME of providing the
information discussed above to the user - e.g. I'm not saying the
notification area as it is _today_ is very good.. but at least it gets
the job done.)

FWIW, I wholeheartedly agree that lots of people abuse the notification
area. And I'd like to point out that your own application is doing this,
here's a screenshot I did a few weeks ago

 http://people.freedesktop.org/~david/brasero.png

because the whole user experience was so.. freaking absurd.. and I was
overloaded with redundant information.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: GNOME 3.0 - shell and applets

2009-05-15 Thread David Zeuthen
On Fri, 2009-05-15 at 18:58 +0200, Frederic Peters wrote:
 David Zeuthen wrote:
 
  FWIW, I wholeheartedly agree that lots of people abuse the notification
  area. And I'd like to point out that your own application is doing this,
  here's a screenshot I did a few weeks ago
 
 Oh that may explain why Jon also pointed to Brasero.
 
   Luis Menina != Luis Medinas.

Yeah, Hubert just pointed this out to me on IRC and now I feel really
stupid. Sorry Luis!

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: new dependencies in gvfs

2009-05-04 Thread David Zeuthen
On Sun, 2009-05-03 at 07:57 +0200, Frederic Peters wrote:
 I am all for DeviceKit-disks as an external dependency, but don't we
 want gnome-disk-utility as part of the desktop set ?  It features many
 things, notifications, Nautilus extension, awesome replacement for
 gfloppy, and more, things that definitely have their place in the
 desktop. Just like Emmannuel I'd love to have it in the desktop suite.
 
 And being a whole part of the GNOME desktop was what I understood from
 David announce[1] (but then I could have read too much in this):
  This will be the default volume monitor in GNOME 2.28
 
 David, would you formally propose gnome-disk-utility for inclusion in
 the GNOME Desktop Suite ?

Sure, that sounds sensible. The long term plan of this work is to have

 - two libraries, libgdu and libgdu-gtk
 - a set of applications / utilities
 - deep integration with GNOME (e.g. Nautilus extensions, panel
   items / applets, GVfs volume monitor)

for dealing with storage devices. The idea is that the bulk of the work
is in the libraries (including GTK+ widgets and dialogs) thus allowing
people to experiment and iterate over what kind of end-user experience
we want.

I'm not yet ready to commit to any kind of stable API (yet) but that
shouldn't be a problem as we can just update GVfs et. al. along and
AFAIK there's no guarantee of any API stability in Desktop, only in
Platform.

However, one thing is that the (D-Bus) API of the daemon being used,
DeviceKit-disks will remain API unstable for a bit longer (long term
plan is to provide a stable API) - probably until the GLib/D-Bus story
is sorted (see e.g. gtk-devel-list) and we have other backends (I want a
backend for unit tests and of course ideally FreeBSD, Solaris and others
could write backends too).

This Device-disks is API unstable might be a hard pill for some
distributors to swallow, e.g. they would need to rev DeviceKit-disks
whenever a new GNOME release is out. Which includes revving things using
DeviceKit-disks as well (it's not unlikely KDE and others will switch to
DeviceKit-disks at some point).

Also, the requirements for running DeviceKit-disks is also going to
remain bleeding edge - to do integration on the level we want (e.g. do
it right, for starters), we really need to depend on kernel and udev
features as we add them.

These shouldn't be problems for most distros, e.g. Fedora, OpenSUSE,
Ubuntu, Mandriva etc. all tend to ship bleeding edge stuff _anyway_. It
might be a problem for other OS'es (DeviceKit-disks is Linux only at the
moment), jhbuild users and infrequently release distros (such as the
enterprise releases or Debian). The only answer I have to this is that I
will ensure that things (like GVfs) will build with --disable-gdu and
then people can fall back to e.g. the HAL backend or whatever.

With the caveat that these things will not be problem (because, no, I
will not spend time making things work on ancient kernel or udev
releases) for inclusion in the Desktop release set, I'd be more than
happy to propose gnome-disk-utility.

(Btw, it's not like DeviceKit-disks is in any way special here - these
things apply to _many_ bits of an OS too (e.g. graphics, audio) - I'm
just trying to be upfront about these things in order to manage
expectations.)

 Finally, minor technical point: it requires libsexy (for SexyUrlLabel).

I can ship a local copy if this isn't in GTK+ by the 2.28 release (I
believe the plan is to get something like this into GTK+).

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME 2.26 module inclusion discussion heats up

2009-01-16 Thread David Zeuthen
On Fri, 2009-01-16 at 17:12 +0100, Josselin Mouette wrote:
 Le vendredi 16 janvier 2009 à 10:55 -0500, Matthias Clasen a écrit :
  But this is not a runtime decision. Either your distro is using
  pulseaudio (and it should)
 
 Again, this cannot be a distribution choice!
 
 We can ship PA by default and make everything possible to get the best
 of it, but breaking systems where it is not installed is not an option,
 given the number of setups that don’t work with it.

Listen, to repeat what Matthias said: either you ship PA and make it
work. Which includes sending patches to the PA folks. Or you don't ship
PA. It's pretty simple.

I'm not sure why you think that Debian should get a wild card here so it
can push the decision of whether to use Pulse Audio to the user. Which,
IMNSHO, isn't the best way to develop an operating system. But, hey,
it's your operating system, do whatever you want. But please don't hold
the rest of us hostage to such development practices.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: GNOME DVCS Survey Results

2009-01-04 Thread David Zeuthen
On Sun, 2009-01-04 at 17:48 +, John Carr wrote:
 As bkor has stated, there are lots of Git users so any implementation
 will support you, and support you well. That is a requirement. So any
 talk of my idea is not Git vs Bazaar, its talk of one way we can move
 forward. So i dont consider it to be derailing. When mentioning my
 idea, lets stick to technical problems with it rather than trying to
 undermine anyone who has looked at it and thinks it is sound and
 doable.

Can you explain what would happen in the event that a future version of
git switches to an repository format that isn't compatible with how you
want to store data?

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME DVCS Survey Results

2009-01-04 Thread David Zeuthen
On Sun, 2009-01-04 at 23:01 +0200, Zeeshan Ali (Khattak) wrote:
   How about we set-up a task-force of volunteers who would want to
 help in the move, each volunteer promising at least 3 hours a week? 3
 hours is a very small amount of time but I am hoping that we'll be
 able to gather at least 10 volunteers and together we can do it, even
 using our spare time.

Would it be worth investigating whether it's worth having the Foundation
pay someone to help with this migration (planning, executing, maybe even
hosting etc.)? I mean, the eco-system around git is huge (github and
others comes to mind) and growing... I'm pretty sure there's plenty git
experts around.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME DVCS Survey Results

2009-01-04 Thread David Zeuthen
On Sun, 2009-01-04 at 22:47 +0100, Frederic Peters wrote:
 Probably just like bzr already went through several repository formats
 and allowed easy upgrades (just like Subversion repository format
 changed and it didn't cause any problem for users).  I don't think
 there is a problem here.

I don't find this answer compelling. At all. It also doesn't answer the
question. It's not unlikely that a future git repo format is
fundamentally incompatible with current or future bzr repo formats.

 And also, data would be available in native git format on lots of
 computers, and could always be pushed to a vanilla git server.

Someone really got to explain exactly why support for multiple
repository formats is desirable.

First, it only makes it much harder for users to grasp; we're going to
end up with some projects have l.g.o pages / README files / mailing list
messages saying use bzr to check out this branch and others saying the
same for git. That's *not* desirable; it makes it so much harder for new
contributors.

Second, it also makes it harder to set up things like jhbuild; either
you end up pulling from both git and bzr (from the same underlying repo)
or you end up mentally having to translate branch names etc. from one
system to another. This is error prone.

Third, I could go on with examples, just consider the set of webtools
(cgit, annotation, source code searching etc.) we end up with on
dvcs.gnome.org; some would be built against bzr, others against git. You
get inconsistent branch names, you end up overloading contributors with
different concepts and so forth.

Finally: We're talking about people's data here. The first rule of
holding peoples data is that you don't screw around with it just
because. Data integrity matters. Keeping things simple and staying with
a *single* kind of hammer (instead of a weird homegrown mutant hammer)
helps here. Otherwise we end up with data loss. Frankly, I'm concerned
that some people are even considering using such homegrown kludges for
holding our GNOME source code.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME DVCS Survey Results

2009-01-04 Thread David Zeuthen
On Sun, 2009-01-04 at 23:20 +0100, Ali Sabil wrote:
 First, it only makes it much harder for users to grasp; we're
 going to
 end up with some projects have l.g.o pages / README files /
 mailing list
 messages saying use bzr to check out this branch and others
 saying the
 same for git. That's *not* desirable; it makes it so much
 harder for new
 contributors.
 
 That's not what John's proposal is about ! John wants to use the bzr
 format as a repository format, and add a git-serve plugin to bzr to be
 able to talk to the git clients. In other words, you will be able to
 access the same data using either bzr, git or hg.

Uh, but that's exactly how I understood the proposal and I believe that
the points I made (that you didn't respond to) still stands: That it's
crazy to officially want to support git, bzr and hg *at* the same time
*from* the same repo. It's just asking for trouble.

 Finally: We're talking about people's data here. The first
 rule of
 holding peoples data is that you don't screw around with it
 just
 because. Data integrity matters. Keeping things simple and
 staying with
 a *single* kind of hammer (instead of a weird homegrown mutant
 hammer)
 helps here. Otherwise we end up with data loss. Frankly, I'm
 concerned
 that some people are even considering using such homegrown
 kludges for
 holding our GNOME source code.
 
 
 Comparing the size of the Bazaar unit tests with those of Git, I would
 certainly choose Bazaar for storing my data.

I wasn't commenting on bzr vs git storage format; I'm sure either is
fine. I was commenting on the fact that someone proposes to inject
something like git-serve in the middle; that's what I think is a kludge.

 David



___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME DVCS Survey Results

2009-01-04 Thread David Zeuthen
On Sun, 2009-01-04 at 23:33 +0100, Olav Vitters wrote:
 On Sun, Jan 04, 2009 at 05:29:02PM -0500, David Zeuthen wrote:
  Uh, but that's exactly how I understood the proposal and I believe that
  the points I made (that you didn't respond to) still stands: That it's
  crazy to officially want to support git, bzr and hg *at* the same time
  *from* the same repo. It's just asking for trouble.
 
 That isn't true. It is Bzr on server, with Git support. Nothing about
 Hg, nothing about doing partly Git, partly Bzr.

Then what happens when a new version of git with a new feature,
incompatible with the git-serve kludge, is released? Then we're screwed,
right? And who gets to pay? We do. We're stuck with an old version of
git. Us. The very same people who very clearly said git, not bzr.

Is it *really* so hard to understand that this whole git-serve is a
terrible idea?

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME DVCS Survey Results

2009-01-04 Thread David Zeuthen
On Sun, 2009-01-04 at 23:58 +0100, Olav Vitters wrote:
 On Sun, Jan 04, 2009 at 05:40:18PM -0500, David Zeuthen wrote:
  Is it *really* so hard to understand that this whole git-serve is a
  terrible idea?
 
 You expect me to reply to this??!?

I expected you to reply to the other three mails where I asked the same
thing as I did in the mail you replied to. Oh, you chose not to quote
that; here it is again:

 Then what happens when a new version of git with a new feature,
 incompatible with the git-serve kludge, is released? Then we're
 screwed, right? And who gets to pay? We do. We're stuck with an old
 version of git. Us. The very same people who very clearly said git,
 not bzr.

But, alas, you didn't reply to this. You instead hand-waved about
something else. I don't think I breached any code of conduct, written or
otherwise, by displaying my frustration about how you are evading my
question.

David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: GNOME DVCS Survey Results

2009-01-04 Thread David Zeuthen
On Mon, 2009-01-05 at 00:18 +0100, Olav Vitters wrote:
 I am not evading. Stop trying to make this personal. I don't care about
 CoC, I don't like you're talking to me.

Please. Stop trying to make this look like it's personal and like I'm
assaulting you. Because I didn't. And I resent the accusation.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Eel merged into Nautilus 2.25.3

2008-12-15 Thread David Zeuthen
On Mon, 2008-12-15 at 21:44 +0100, Andre Klapper wrote:
 $:andre\ jhbuild rdepends --direct eel
 nautilus
 orca
 meta-gnome-desktop-suite
 gnome-mount

Just for the record, for gnome-mount there's no direct dependency on
eel; there is, however, a dependency on libnautilus-extension (which I
think in turns (used to) depend on libeel). HTH.

David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: New module proposal: gnome-user-share

2008-10-24 Thread David Zeuthen
On Fri, 2008-10-24 at 15:16 +0200, Josselin Mouette wrote:
 I also think that Apache is a bad choice. If you need a good web server
 with DAV support, please think of lighttpd instead, or - much better -
 of a libsoup-based implementation.

There's also security issues to consider. 

One good thing about using Apache is the fact that there's a huge
dedicated security team in place for both reviewing and dealing with
vulnerabilities in highly predictable ways. Also, the distributors of
Apache typically provide good response time on integrating these fixes
just because Apache is so ubiquitous and people use it for traditional
HTTP duties on port 80.

Especially on distributions not using something like SELinux this is a
problem. Remember that with Mandatory Access Control (which e.g. SELinux
provides), you can confine the web server process spawned by g-u-s to
only access ~/Public. Without something like this (and too many people,
yours truly included, runs SELinux in permissive mode)... if there's a
vulnerability in the server used by gnome-user-share... then you're
effectively serving all the files that the user has access to (e.g.
$HOME including passwords stored in cleartext by Firefox (the default).
Result: Game over man!

All thismeans that it's very important that we use the most secure web
server we can get for gnome-user-share.

As I said, it's clear to me that Apache does meet our goals here. If you
want to propose something else, the burden is on you to provide evidence
that what you propose is not only reasonably secure, but also have good
processes in place for dealing with vulnerabilities.

(FWIW, I don't mean to belittle libsoup-as-a-server (my understanding is
that libsoup is mostly used as a client so that's where the focus is) or
the lighttpd teams. To be honest, I haven't looked at their security
track record security. I doubt most people in this thread have.)

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: New module proposal: gnome-user-share

2008-10-23 Thread David Zeuthen
Hi,

FWIW, this discussion happened about four years ago, see

http://mail.gnome.org/archives/desktop-devel-list/2004-November/msg00726.html
(note: the thread continues into December 2004)

It might be useful for people to reread the thread there.

On Thu, 2008-10-23 at 17:15 +0200, Patryk Zawadzki wrote:
  As a data point, Fedora's httpd is disabled by default for exactly this
  sort of reason (having it installed doesn't mean we want it running by
  default).
 
 I doubt our server guys will get overly happy over the idea of
 disabling a typical server daemon just so you can integrate it with
 GNOME. I don't really think I want the server team to hate the GNOME
 team any more.

So one conclusion from that thread, if I remember correctly, is that the
fact that gnome-user-share is using Apache shouldn't disrupt any
system-wide configuration of Apache. The way it works is that
gnome-user-share feeds a separate configuration file to the Apache HTTP
daemon running in the user context.

The fact we disable httpd in the default install in Fedora has nothing
to do with this; that's just Fedora policy, off topic for this
discussion. As a data point we've been shipping gnome-user-share in
Fedora since 2004 and haven't had issues with it or complaints from
people using Fedora as a web server.

Hope this helps.

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: gnome-volume-manager disables automount

2008-08-15 Thread David Zeuthen
On Fri, 2008-08-15 at 18:27 +0800, jijun yu wrote:
 gnome-volume-manager disables automount by default. The reason is that 
 Nautilus handles it, as it said in configure.ac. But after a rough 
 investigation, nautilus don't handle automount. So I'm a little confused 
 here.

This works just fine on Fedora and other Linux distros. File a bug
against nautilus with more details and add me to the Cc?

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Proposed external dep: PolicyKit

2008-07-22 Thread David Zeuthen
Hi,

(adjusting Cc list)

(Polite request: please avoid sending HTML mail)

On Mon, 2008-07-21 at 22:34 -0500, Jason D. Clinton wrote:
 On Fri, Jun 20, 2008 at 1:47 PM, David Zeuthen [EMAIL PROTECTED] wrote:
 On Fri, 2008-06-20 at 15:57 +0200, Murray Cumming wrote:
  Going off topic a bit: It would be really nice if PolicyKit
 had a proper
  web page and mailing list. It's too important for
 information on it to
  be so fragmented.
 
 
 Right. I'm actually going to try and fix this (dedicated
 mailing list
 and website); stay tuned.

JFYI there is now 

http://lists.freedesktop.org/mailman/listinfo/polkit-devel
http://www.freedesktop.org/wiki/Software/PolicyKit

and has been for some time. There's been a bugzilla on fd.o for a long
time.

 I am tracking relatively unstable development repositories. As a
 result, I have hal 0.5.11 installed which appears to
 have--undocumentedly--suddenly required PackageKit as a hard
 dependency. For example, removable storage mounting no longer works if
 PK is not installed due to the way that the default dbus fdi rule is
 written. 

News to me, it's still optional according to the NEWS file

http://gitweb.freedesktop.org/?p=hal.git;a=blob;h=9dadda7da29d4c18dff6e71d343cd5eb69561c56;hb=95bd4f1bf9a62f1551461841d64f6f1cdea6a92e;f=NEWS

Did you file a bug or complain on the hal mailing list? This mailing
list is not the right place to complain about it anyway.

 Aside from the hal harddep problem, it appears that PK is sorely,
 sorely missing its documentation. For example, having this new
 dependency thrust upon me would have been fine if things
 like /usr/share/doc/policykit-gnome/README didn't contain:
 
 TODO: write me
 
 If RH is going to thrust PK on us, please, please, please provide some
 kind of documentation (not an API reference). When things don't work
 (as they aren't now and were previously) I have absolutely no idea
 what's wrong, where to look or who to blame. Most importantly, I
 wanted to file a bug but couldn't even manage that with the spectular
 lack of information out there.

There's this

 http://hal.freedesktop.org/docs/PolicyKit/
 http://hal.freedesktop.org/docs/PolicyKit-gnome/
 (and this is even an older snapshot of what comes out of the tarballs)

which is much more than API reference etc. Did you even read it?

FWIW, all the distros and even advanced users with building from
scratch with weird configuration permutation like you have not
whined/complained in the same way I'm seeing here. For them PolicyKit
just works and adds value. Hell, some KDE people wrote their own
Authentication Agent that uses Qt and KDE. So it's not like it's a huge
mystery what PolicyKit-gnome does. If you're not able to figure it out
given the code and existing docs then you probably never will. Anyway.

(Even users from some of the historical problematic distros like
Slackware (as in usually outdated libc headers, no PAM etc.) can make
this work for them.)

So maybe you just haven't tried hard enough. In other words, I believe
it's more of a you-problem, than a PolicyKit problem. Either way, this
thread / mailing list is not the right place to ask for help, use the
polkit mailing list. Also send patches if you think the existing docs
are not good enough; some of the docs could surely use some improvement.
After all, this is open source and all, no one promised you a pony etc.
etc.

 Luckilly, Rob Taylor was gracious enough to point me in the right
 direction from what he has in his own memory. Alas, correcting for an
 obvious packaging error hasn't solved to problem so I'm stuck again.
 I'm sure others would not be even this fortunate...

I'm sure others would have used the appropriate forum, not some random
thread on a somewhat unrelated GNOME mailing list, and they would have
gotten the help they needed. I'm also sure they would have been precise
about what was wrong instead of just whining.

(And, while we're at it, here's some more advice: please cut the
company-bashing (If RH is going to thrust PK on us...) and drama. It's
really off-putting and it makes it hard to take you seriously.)

Good luck,
David



___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Problem with intltool 0.40.0?

2008-07-22 Thread David Zeuthen
On Thu, 2008-07-10 at 11:14 -0400, David Zeuthen wrote:
 On Tue, 2008-07-01 at 17:01 -0400, Colin Walters wrote:
  Options:
  
  o Rename intltool to intltool2, allow parallel install with intltool 1
  o Add backwards compatibility support
  o Don't screw with minor build system things right now, and wait a year
or so until waf is widely deployed, then switch wholesale and gain
useful improvements instead of plugging a one small leak in the
sinking shell script mess of auto*
 
 Can the release team please advise on this? (for example mandate that
 we're using intltool  0.40 for 2.24). FWIW, the thread starts here
 
 http://mail.gnome.org/archives/desktop-devel-list/2008-July/msg00011.html
 
 Thanks.

It's now been 12 days since I sent this mail and I've received no reply.
Is it possible for the release team to advise on how to proceed on
dealing with the incident of ABI breakage? Thank you.

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Proposed external dep: PolicyKit

2008-07-22 Thread David Zeuthen
On Tue, 2008-07-22 at 18:40 -0500, Jason D. Clinton wrote:
 Fuck you.

I don't think so.

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Problem with intltool 0.40.0?

2008-07-22 Thread David Zeuthen
On Wed, 2008-07-23 at 01:27 +0200, Vincent Untz wrote:
 Sorry, your mail was lost in the GUADEC black hole (at least for me).

Yea, I probably chose the worst time to send it.

 Unfortunately, using intltool  0.40 for 2.24 would be a big pain too,
 since many modules already migrated for 2.23.4 a month ago.
 
 I didn't think hard about all this, but I'd think that offering a
 migration path for 6 months (making it possible to use the old way and
 the new way) would be the best option.

Something that preserves backwards compat would be nice as this is going
to make it somewhat nasty to take an app adapted to use intltool = 0.40
and build it on a distro that ships intltool  0.40. So this is
definitely going to make backports of newer versions to enterprise and
LTS distros somewhat harder I think (but I haven't done a full analysis
of the problem). Colins idea about making a parallel-instable intltool2
would have solved this problem. I still think that's the way forward.

Also, I think, it sets an ugly precedent to break build-time ABI stuff
very randomly like this.

David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Proposed external dep: PolicyKit

2008-07-22 Thread David Zeuthen
On Tue, 2008-07-22 at 19:11 -0500, Jason D. Clinton wrote:

 The issue is that there is no user documentation at all. Not in the
 distribution. Not in the GUI with a Help button. Not in stub README
 files. Nothing. ... 

Nothing? Did you even look at the links I sent in my last mail? Your
statement is simply false. Here are plenty of non-API docs.

http://hal.freedesktop.org/docs/PolicyKit/ref-design.html
http://hal.freedesktop.org/docs/PolicyKit/tools-fileformats.html
http://hal.freedesktop.org/docs/PolicyKit-gnome/ref-auth-daemon.html
(granted there should be links from the website)

Send patches / file bugs if you want to see more docs / improvements. As
I said on IRC I'll still help you (or any other PolicyKit user) as long
as you state what the problem is. Even after being verbally assulted and
all.

 Unless you're a programmer and want to read developer documentation to
 get your USB hotplug working again.

Or, you know, like the rest of the world use a distro if you don't want
to compile things on your own. Listen, I'm not trying to belittle you;
it's just a fact that it's getting increasingly hard for people to
assemble all the random pluggable stuff that makes up the GNOME desktop.

Again, I'd like to point out you're not using the optimal forum to get
help. You're just lucky that I still reply to a thread that is off-topic
for this list. The best way to get help is by using

 http://bugzilla.gnome.org/ - for PolicyKit-gnome bugs + features
 https://bugs.freedesktop.org/ - for PolicyKit end-user bugs
 http://lists.freedesktop.org/mailman/listinfo/polkit-devel

Hope this helps.

   David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Proposed external dep: PolicyKit

2008-07-22 Thread David Zeuthen
On Tue, 2008-07-22 at 19:24 -0500, Jason D. Clinton wrote:

 If that's your policy, then you need to
 patch /etc/dbus-1/system.d/hal.conf to NOT use PolicyKit in a package
 that doesn't have support for it.

There's no way to specify in a D-Bus .conf that it uses PolicyKit or
not.

  This is--AFAICT--an upstream bug in hal that this stanza is not
 removed when ./configure finds that PK is not going to be enabled. Now
 THAT is a bug I could file. 

Except (but now guessing at what you think is a bug) that it's not a
bug; see

http://gitweb.freedesktop.org/?p=hal.git;a=blob;h=503c09db191dac147cbb6616991a789cdecd265c;hb=95bd4f1bf9a62f1551461841d64f6f1cdea6a92e;f=configure.in

specifically this part

if test x${msg_polkit} = xno; then
   echo WARNING: PolicyKit is disabled. You need to manually edit the hal.conf
   echo  file to lock down the service. Failure to do so allows any
   echo  caller to make hald do work on their behalf which may be
   echo  a huge SECURITY HOLE. I repeat: YOU NEED TO EDIT THE FILE
   echo  hal.conf to match your distro/site to avoid NASTY SECURITY 
HOLES.
   echo 
fi

Anyway, this conversation should probably continue in the Debian BTS.
Feel free to Cc [EMAIL PROTECTED] if you need my input.

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Problem with intltool 0.40.0?

2008-07-10 Thread David Zeuthen
On Tue, 2008-07-01 at 17:01 -0400, Colin Walters wrote:
 Options:
 
 o Rename intltool to intltool2, allow parallel install with intltool 1
 o Add backwards compatibility support
 o Don't screw with minor build system things right now, and wait a year
   or so until waf is widely deployed, then switch wholesale and gain
   useful improvements instead of plugging a one small leak in the
   sinking shell script mess of auto*

Can the release team please advise on this? (for example mandate that
we're using intltool  0.40 for 2.24). FWIW, the thread starts here

http://mail.gnome.org/archives/desktop-devel-list/2008-July/msg00011.html

Thanks.

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Problem with intltool 0.40.0?

2008-07-01 Thread David Zeuthen
On Tue, 2008-07-01 at 11:31 -0500, Brian Cameron wrote:
 Yesterday I discovered that make dist/distcheck in gdm 2.20 branch
 failed because make couldn't find intltool-merge.in,
 intltool-extract.in, and intltool-update.in.  These files get generated
 by the intltool module.

Apparently what you are experiencing is a bug fix

 http://bugzilla.gnome.org/show_bug.cgi?id=490620

Personally I think the new behavior is bug. And further I think it's
silly. Because now every user of intltool get to fix his module and
distributions get to add something like BuildRequire: intltool to their
spec files or similar.

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Problem with intltool 0.40.0?

2008-07-01 Thread David Zeuthen
On Tue, 2008-07-01 at 14:58 -0500, Brian Cameron wrote:
 David:
 
 So what does this mean?  Should all GNOME modules fix their top-level
 Makefile.am files, manpages, and other docs that refer to the need to
 add these generated files to EXTRA_DIST?  Or do we just not work with
 the latest intltool 0.40.0 for now until this issue gets fixed in
 intltool?

I'm not sure - but like you, my modules now fail to bootstrap (e.g.
autogen.sh) with intltool 0.40. Better ask the intltool maintainer what
he had in mind.

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: gnome-session proposal

2008-06-26 Thread David Zeuthen
On Thu, 2008-06-26 at 14:16 +0200, Rodrigo Moya wrote:
 KDE applications are still using XSMP AFAIK, so we'll need to support
 it in some way

We do? What happens if we decide not to?

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: gnome-session proposal

2008-06-26 Thread David Zeuthen
On Thu, 2008-06-26 at 18:02 +0100, Alan Cox wrote:
 It's far from an edge case. Any situation with two monitors side by side
 of  1024 pixel width causes the problem. Thats a pretty normal setup for
 anyone doing art  design, engineering or similar work.

Indeed.

 (And yes I agree the hardware/drivers need to catch up ;))

Right, and it works fine in Windows Vista. IIRC Adam Jackson was working
on that a while ago, see http://www.x.org/wiki/Events/XDC2008/Notes and
search for shatter.

 David



___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: gnome-session proposal

2008-06-26 Thread David Zeuthen
On Thu, 2008-06-26 at 23:46 +0200, Frederic Peters wrote:
 Yes we do; at least I believe so.  I won't complain about my xterms as
 they may be considered a legacy application but modern applications
 written for the other major free desktop should not be left in the
 cold.

Do you have a concrete example of a modern desktop application where the
absence of XSMP in GNOME 2.24 would be a huge inconvenience?

   David



___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: gnome-session proposal

2008-06-26 Thread David Zeuthen
On Fri, 2008-06-27 at 01:08 +0200, Frederic Peters wrote:
 David Zeuthen wrote:
 
   Yes we do; at least I believe so.  I won't complain about my xterms as
   they may be considered a legacy application but modern applications
   written for the other major free desktop should not be left in the
   cold.
  
  Do you have a concrete example of a modern desktop application where the
  absence of XSMP in GNOME 2.24 would be a huge inconvenience?
 
 I think you should not limit yourself to GNOME 2.24; people are using
 other applications.

Uh, I think you misread what I said. I was asking for examples of modern
desktop applications (e.g applications using e.g. Qt, GTK+, Swing, SWT,
E17, wxWidgets, XUL etc.) for which absence of XSMP would be a huge
inconvenience. Do you have any such examples?

David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Composition [was Re: gnome-session proposal]

2008-06-26 Thread David Zeuthen
On Fri, 2008-06-27 at 00:59 +0200, Patryk Zawadzki wrote:
 Well even if you try to read just a 10k file you can get stuck if
 another application is causing excessive IO (and I tend to run such
 applications). It's hard to delegate each disk operation to a separate
 thread just in case the computer is busy with something else.

Get a better kernel then ;-). On a more serious note, didn't the recent
Firefox 3 O_SYNC fiasco on Linux make some file system developers
realize some short comings of current state of the kernel? If so,
hopefully someone is working on fixing this. If not, definitely
something to bring up at the Plumbers Conference later this year.

  David



___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Proposed external dep: PolicyKit

2008-06-20 Thread David Zeuthen
On Fri, 2008-06-20 at 15:57 +0200, Murray Cumming wrote:
 Going off topic a bit: It would be really nice if PolicyKit had a proper
 web page and mailing list. It's too important for information on it to
 be so fragmented.

Right. I'm actually going to try and fix this (dedicated mailing list
and website); stay tuned.

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Proposed external dep: PolicyKit

2008-05-07 Thread David Zeuthen
On Wed, 2008-05-07 at 17:27 +0200, Vincent Untz wrote:
 Le mercredi 07 mai 2008, à 16:18 +0100, Richard Hughes a écrit :
  I would like to propose PolicyKit[1] as an external dep for 2.26 - it's
  mostly API stable[2], and is now being used as an optional dep in many
  modules in gnome svn and HAL.
 
 s/2.26/2.24/ I guess? :-)
 
 Makes sense to me.

Right, I did mention six months ago I wanted to propose PolicyKit-gnome
for 2.24. That didn't happen for a number of reasons, none of them
including the code not being ready; it's already in use in a number of
places and shipping in a lot of distributions. There's also resp.
Solaris and FreeBSD support in resp. 0.8 and git HEAD of PolicyKit.

FWIW, my plan is to work on getting PolicyKit to 1.0 over the summer and
then propose PolicyKit-gnome for Desktop in 2.26 and possibly for
Platform in 2.28. I think, based on the number of apps using PolicyKit
already, it would be nice to have PolicyKit 0.8 and PolicyKit-gnome 0.8
as blessed external deps for GNOME 2.24. How about that?

  David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Proposed external dep: PolicyKit

2008-05-07 Thread David Zeuthen
On Wed, 2008-05-07 at 17:29 +0200, Murray Cumming wrote:
 On Wed, 2008-05-07 at 11:23 -0400, Matthias Clasen wrote:
  On Wed, May 7, 2008 at 11:18 AM, Richard Hughes [EMAIL PROTECTED] wrote:
   I would like to propose PolicyKit[1] as an external dep for 2.26 - it's
mostly API stable[2], and is now being used as an optional dep in many
modules in gnome svn and HAL.
  
I would like to depend on it for gnome-power-manager, and I hate all the
#ifdefs. Does anybody have any problems with PolicyKit being an external
dependency in 2.26?
  
From a user point-of-view PolicyKit rocks. It would be great if more
GNOME software could be comfortable using it upstream rather than being
patched by distros.
  
  
  Actually, the patches are using PolicyKit-gnome, too. If we allow
  dependencies on PolicyKit, we should allow PolicyKit-gnome, too, since
  it makes it very easy to write UIs that trigger privileged operations
  and handle all aspects of PolicyKit integration correctly.
 
 Yeah. Direct use of the PolicyKit D-Bus API (as is currently necessary
 from Python, for instance) is a bit strange, not documented, and is
 apparently not really supported.
 
 I haven't used PolicyKit-gnome but that should shield people from this.
 I'd like to see python bindings for it.

Actually Harald Hoyer is working on python bindings for the core
PolicyKit library. I expect this to be in the 0.9 release. I don't know
about PolicyKit-gnome; it should be simple as the main thing there is
just a GtkAction derived class. But I don't know a lot about how
bindings are done.

David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Problem with thumbnail mamagement for image files

2008-03-15 Thread David Zeuthen
On Sat, 2008-03-15 at 13:40 -0500, Diego Escalante Urrelo wrote:
 On a side-note, it looks like nautilus doesn't generate thumbnails for
 trash:/// obex:/// and others, no matter the preferences set in
 nautilus.
 
 Regression or intentional?

It's because someone didn't apply the patch here

http://bugzilla.gnome.org/show_bug.cgi?id=517276

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: help sanity check the release notes

2008-02-27 Thread David Zeuthen

On Wed, 2008-02-27 at 22:04 +0900, Davyd Madeley wrote:
 All,
 
 Because my GNOME 2.22 isn't actually working very well, the release
 notes currently contain a lot of FIXMEs and XXX entries. This is
 suboptimal.

Might want to mention, under Better Networked Filesystems, that we now
support 

 - cdda:// - audio tracks on Audio CD's are available as .wav files; and
 - gphoto2:// - for digital cameras that are not mass storage

out of the box (though you may want to avoid technical terms like
cdda:// and gphoto2://). These are pretty visible end user features; we
didn't have this in upstream builds of gnome-vfs.

Perhaps it's also worth mentioning that Nautilus now handles
automounting/autostart in a much shinier way that g-v-m did (see #510319
for details including lots of screenshots) including Cluebar support and
the ability for apps to easily participate in this via setting a mime
type.

(And hopefully we can completely remove g-v-m for 2.24.)

 David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: help sanity check the release notes

2008-02-27 Thread David Zeuthen

On Wed, 2008-02-27 at 20:28 -0500, Hubert Figuiere wrote:
 Why not using camera:// ?

Because it might conflict with another camera gvfs backend we might want
to add in the future?

 And you could aslo add support for Mass Storage camera at the same time
 so that it be unified. Two way to do that: just rebind the mounted
 device or use the disk: driver in gphoto2.

Why would we ever want to do that? It would dog slow and the gphoto2 API
is a bit craptastic; you can't do partial reads etc. etc. Besides, Mass
storage cameras already work very well using the kernel mass storage
drivers.

 Note that we had a FUSE filesystem for a while, so it feels like NIH
 again and again.

POSIX is a really poor API for abstracting file systems; there's a
reason we have gvfs and didn't wrap FUSE. See Alex's notes on this for
more information.

   David


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list


  1   2   >