Re: Questions about the migration from GConf to GSettings/DConf

2015-07-20 Thread Milan Crha
On Sun, 2015-07-19 at 23:17 +0800, Oliver Luo wrote:
> I've been spending several days working on the migration from GConf 
> to GSettings/DConf in our project evolution EAS...

Hi,
I suppose you mean evolution-activesync, as it's named in the GNOME
repositories.

> 1. Use relocatable schemas. In this case, we have one schema being
> relocatable, and multiple instance of that schema so we can store
> accounts of uncertain number. But the question is that the instances
> are separated and there seems no API to control them as a whole,
> which means we lost the structure information and make things harder
> in our project.

Briefly grepping the evolution-activesync code, the keys being read
from the GConf look like:
  /apps/activesyncd/accounts//
  /apps/activesyncd/accounts//
  ...
so you can have a relocatable schema with { key1, key2, ... } and
"attach" it under /apps/activesyncd/accounts/. That feels pretty
straightforward, and if I understand your text properly then you know
it. The thing you face is to know the list of configured accounts.

I would create a 'list' key with a list of known accounts in
/apps/activesyncd/accounts/, which will contain the  of each
configured accounts, and an existing path in GSettings. I saw this
approach being used in another project, I think it was gtk+.

>  I don't have the perfect solution yet, so I'm here to see if anyone 
> could help me.

The evolution(-data-server) also used to store its account settings
into GConf, but then moved away from that idea and instead of migrating
account settings into GSettings it uses its own ESourceRegistry. You
can create tree of ESource-s there, each can have its own extension,
where it stores its data. Maybe it would work better than the
GSettings. See how evolution-ews stores its settings on an ESource for
an example (it uses an ESourceCollection for the parent ESource).

Alternatively, maybe, create your own API on top of a GKeyFile and
store the account information in it?

Bye,
Milan

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


Looking for speakers for hacknight in Gothenburg on Aug 11th

2015-07-20 Thread Andreas Nilsson

Hi all!
FOSSGBG is a local free software group here in Gothenburg that has 
meetups every month or so to discuss various FOSS subjects. They're 
having an event on the 11th of August [1].
Since this overlaps with the GUADEC hackdays, the organizers of FOSSGBG 
thought it'd be nice to make this edition of their meetup about GNOME.


They are looking for people from the GNOME community who would like to 
present their work at the meetup. Let me know if you'd like to 
volunteer. We'd like to have three 20-30 minutes talks. Subjects that 
would be interesting to the audience would be things like app 
development, Wayland and privacy.


1. http://foss-gbg.se/
- Andreas
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Questions about the migration from GConf to GSettings/DConf

2015-07-20 Thread David Woodhouse
Hi Milan,

Thanks for your comprehensive response.

On Mon, 2015-07-20 at 09:04 +0200, Milan Crha wrote:
> Briefly grepping the evolution-activesync code, the keys being read
> from the GConf look like:
>   /apps/activesyncd/accounts//
>   /apps/activesyncd/accounts//
>   ...
> so you can have a relocatable schema with { key1, key2, ... } and
> "attach" it under /apps/activesyncd/accounts/. That feels 
> pretty
> straightforward, and if I understand your text properly then you know
> it. The thing you face is to know the list of configured accounts.
> 
> I would create a 'list' key with a list of known accounts in
> /apps/activesyncd/accounts/, which will contain the  of each
> configured accounts, and an existing path in GSettings. I saw this
> approach being used in another project, I think it was gtk+.

That sounds like a good solution to me; thanks.

> > . I don't have the perfect solution yet, so I'm here to see if 
> > anyone could help me.
> 
> The evolution(-data-server) also used to store its account settings
> into GConf, but then moved away from that idea and instead of migrating
> account settings into GSettings it uses its own ESourceRegistry. You
> can create tree of ESource-s there, each can have its own extension,
> where it stores its data. Maybe it would work better than the
> GSettings. See how evolution-ews stores its settings on an ESource for
> an example (it uses an ESourceCollection for the parent ESource).

Currently, the activesyncd dæmon is independent of Evolution. It
provides a DBus API which is used both from Evolution (for email), and
from SyncEvolution (for contacts/calendar).

So I'm a little reluctant to make it depend on ESource for
configuration.

> Alternatively, maybe, create your own API on top of a GKeyFile and
> store the account information in it?

Perhaps. I note GOA does something like this for its account storage.
But I think I like your first option better. Thanks again.

-- 
David WoodhouseOpen Source Technology Centre
david.woodho...@intel.com  Intel Corporation


smime.p7s
Description: S/MIME cryptographic signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Looking for speakers for hacknight in Gothenburg on Aug 11th

2015-07-20 Thread Sriram Ramkrishna
On Mon, Jul 20, 2015 at 8:34 AM Andreas Nilsson  wrote:

> Hi all!
> FOSSGBG is a local free software group here in Gothenburg that has
> meetups every month or so to discuss various FOSS subjects. They're
> having an event on the 11th of August [1].
> Since this overlaps with the GUADEC hackdays, the organizers of FOSSGBG
> thought it'd be nice to make this edition of their meetup about GNOME.
>
>
This is great!  I want to see this happen.



> They are looking for people from the GNOME community who would like to
> present their work at the meetup. Let me know if you'd like to
> volunteer. We'd like to have three 20-30 minutes talks. Subjects that
> would be interesting to the audience would be things like app
> development, Wayland and privacy.
>
>
I would love to see this happen.  I wonder if I can volunteer people. :-)
 I can also present on their behalf as well.   But I would like someone to
talk about:

1) xdg-app
2) changes in GTK+ - maybe the CSS
3) gnome-builder

Are the ones that come to mind.  Maybe Bastien Nocera has some hardware
related type talk that he could talk about?

sri


> 1. http://foss-gbg.se/
> - Andreas
> ___
> desktop-devel-list mailing list
> desktop-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/desktop-devel-list
>
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Looking for speakers for hacknight in Gothenburg on Aug 11th

2015-07-20 Thread Bastien Nocera
On Mon, 2015-07-20 at 19:41 +, Sriram Ramkrishna wrote:
> 

> Are the ones that come to mind.  Maybe Bastien Nocera has some 
> hardware related type talk that he could talk about?

I'm afraid I won't be in town any more by that time.

Cheers

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


How do you hack on GNOME? How can we do better?

2015-07-20 Thread Owen Taylor
As we move to Wayland, some of the ways we used to work on the core parts of 
GNOME (like gnome-shell --replace) no longer work. I think this is a good time 
to look at how we hack on GNOME, how we can make it more standard and obvious 
for newcomers, and how we can make it easier.

We can classify hacking on "GNOME" (taken very widely) into the following:

 1) Hacking on system components that require hardware access (kernel drivers, 
NetworkManager)
 2) Hacking on system components that don't inherently require hardware access 
(kernel filesystems, systemd, polkit, gdm)
 3) Hacking on session level components (gnome-session, gnome-shell, 
gnome-settings-daemon), and the libraries they use (gnome-desktop, clutter)
 4) Hacking on libraries (gtk+)
 5) Hacking on applications

Which ones of these do you do? How do you do it? Is 'jhbuild run' sufficient 
for your needs? Do you log into a jhbuild session? as yourself? as a test user? 
Do you replace system level components? With 'make install'? By building 
packages? Do you use gnome-continuous?

4 and 5 are handled pretty well by jhbuild. I think we can do better in the 
future for 5 using xdg-app - application checkouts could be entirely 
self-contained, with 'make' automatically downloading the right version of the 
GNOME SDK if not already present.

3 seems like a place where we can make progress - the vague idea I have is:

 - Move our standard install location back to /opt
 - Have utility scripts that set up a test user
 - Have hotkeys that switch directly back and forth between the main session 
and the test user session and respawn the test session

We could theoretically address 2 by having our standard test setup to run in a 
VM, but a lot of aspects of the system don't test well in a VM - touchscreen 
input, multimonitor, networking UI, sound, etc. And running in a VM isn't 
possible with jhbuild, so we'd have to switch to gnome-continuous for builds, 
and it's not really designed for the same use case as jhbuild - the initial 
build and cycle times are much bigger.

Addressing 1 systemically would not only require us to switch to 
gnome-continuous, it requires actually rebooting into the gnome-continuous tree 
- so in essence the user would be working in an ostree based operating system. 
This seems very much out of scope.

Thoughts? I feel that we don't have a good story for someone coming in and 
wanting to hack on the core parts of GNOME right now, but perhaps there are 
things that I'm not aware of.

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


Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Jasper St. Pierre
I've hacked on things all the from 1-5. Everything has a different
development process, as usual, and I don't think there's any sense in
trying to unify them. Writing documentation and getting people started
quicker is always great, but everybody's going to have their own
little things.

As for shell hacking, it's got increasingly more difficult to hack on
things in a state like this, even under X11: launching a shell from a
terminal loses things like search providers or some applications.
There's issues with pkexec and other friends. Automounting USB keys
never works when using jhbuild run. It feels strangely unclean and
frustrating to work with. I just don't run a full shell as an X11
compositor through jhbuild anymore. I do what I need to, then reboot
to get back to a clean state.

You can run gnome-shell in a nested mode, but gnome-shell's forceful
grabbing of DBus names mean that the nested gnome-shell gets
notifications, screen lock goes to it, etc. I tend to only use mutter
in nested mode for Wayland hacking.

Having scripts or a better setup to keep my jhbuild builds mostly
in-line with the system ones would be great.

Full KMS-style Wayland hacking, for me, is mostly a separate machine
ssh'd into my main computer, there to debug and keep a session going
at all costs. I have issues, though, sometimes the keyring acts up and
prompts for my ssh key on the terminal. Other times, I tend to "lose
session-ness" and basically restart at that point to get things
working again.

What would really help is making VT switching work better. On my
systems with external monitors (like the ones I hack on at work), a
single VT switch takes 2-3 seconds from fbcon and back to X. I don't
know if this is Xorg or fbcon or just the VT layer in general, but it
is noticeable, and it is frustrating. I don't know if systemd-consoled
/ logind / "the VT replacement API" would help here at all.

Figuring out what "session-ness" means and how to gain it when simply
ssh'd in would also be great, but I have a feeling it's simply twenty
different environment variables I have to port over one by one.

On Mon, Jul 20, 2015 at 4:11 PM, Owen Taylor  wrote:
> As we move to Wayland, some of the ways we used to work on the core parts of 
> GNOME (like gnome-shell --replace) no longer work. I think this is a good 
> time to look at how we hack on GNOME, how we can make it more standard and 
> obvious for newcomers, and how we can make it easier.
>
> We can classify hacking on "GNOME" (taken very widely) into the following:
>
>  1) Hacking on system components that require hardware access (kernel 
> drivers, NetworkManager)
>  2) Hacking on system components that don't inherently require hardware 
> access (kernel filesystems, systemd, polkit, gdm)
>  3) Hacking on session level components (gnome-session, gnome-shell, 
> gnome-settings-daemon), and the libraries they use (gnome-desktop, clutter)
>  4) Hacking on libraries (gtk+)
>  5) Hacking on applications
>
> Which ones of these do you do? How do you do it? Is 'jhbuild run' sufficient 
> for your needs? Do you log into a jhbuild session? as yourself? as a test 
> user? Do you replace system level components? With 'make install'? By 
> building packages? Do you use gnome-continuous?
>
> 4 and 5 are handled pretty well by jhbuild. I think we can do better in the 
> future for 5 using xdg-app - application checkouts could be entirely 
> self-contained, with 'make' automatically downloading the right version of 
> the GNOME SDK if not already present.
>
> 3 seems like a place where we can make progress - the vague idea I have is:
>
>  - Move our standard install location back to /opt
>  - Have utility scripts that set up a test user
>  - Have hotkeys that switch directly back and forth between the main session 
> and the test user session and respawn the test session
>
> We could theoretically address 2 by having our standard test setup to run in 
> a VM, but a lot of aspects of the system don't test well in a VM - 
> touchscreen input, multimonitor, networking UI, sound, etc. And running in a 
> VM isn't possible with jhbuild, so we'd have to switch to gnome-continuous 
> for builds, and it's not really designed for the same use case as jhbuild - 
> the initial build and cycle times are much bigger.
>
> Addressing 1 systemically would not only require us to switch to 
> gnome-continuous, it requires actually rebooting into the gnome-continuous 
> tree - so in essence the user would be working in an ostree based operating 
> system. This seems very much out of scope.
>
> Thoughts? I feel that we don't have a good story for someone coming in and 
> wanting to hack on the core parts of GNOME right now, but perhaps there are 
> things that I'm not aware of.
>
> - Owen
> ___
> desktop-devel-list mailing list
> desktop-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/desktop-devel-list



-- 
  Jasper
__

Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Owen Taylor
On Mon, 2015-07-20 at 16:35 -0700, Jasper St. Pierre wrote:
> I've hacked on things all the from 1-5. Everything has a different
> development process, as usual, and I don't think there's any sense in
> trying to unify them. Writing documentation and getting people 
> started quicker is always great, but everybody's going to have their 
> own little things.

We obviously can't make all developers work the same way, and we don't
want to. But there should be a way that we can recommend that actually
*does* work :-)

> As for shell hacking, it's got increasingly more difficult to hack on
> things in a state like this, even under X11: launching a shell from a
> terminal loses things like search providers or some applications.
> There's issues with pkexec and other friends. Automounting USB keys
> never works when using jhbuild run. It feels strangely unclean and
> frustrating to work with. I just don't run a full shell as an X11
> compositor through jhbuild anymore. I do what I need to, then reboot
> to get back to a clean state.

Yeah. This type of thing is especially hard on newcomers, or simply
people who don't continually work on the shell, because only through
constant practice do you know *what* weirdness is due to a restarted
shell.

> You can run gnome-shell in a nested mode, but gnome-shell's forceful
> grabbing of DBus names mean that the nested gnome-shell gets
> notifications, screen lock goes to it, etc. I tend to only use mutter
> in nested mode for Wayland hacking.
> 
> Having scripts or a better setup to keep my jhbuild builds mostly
> in-line with the system ones would be great.
> 
> Full KMS-style Wayland hacking, for me, is mostly a separate machine
> ssh'd into my main computer, there to debug and keep a session going
> at all costs. I have issues, though, sometimes the keyring acts up 
> and eprompts for my ssh key on the terminal. Other times, I tend to 
> "lose session-ness" and basically restart at that point to get things
> working again.

If we could get nested working reliably, it certainly would be handy.
Not everybody has access to a second computer. (Saying that as someone
who is working as a nomad with a laptop for a couple of weeks.)

The basic equation here is that nested == multi-seat; making nested
work properly is draining the swamp of multi-seat issues.

As far as I understand it, there's a strong push on the part of the
systemd team to move from a session bus to a user bus; this probably
means that a single user logging into multiple seats - into a nested
session - is impractical. A single bus with components running from
multiple versions of GNOME seems like an endless source of debugging
headaches, even if we did all the work to move away from bus-global
names.

So nested == cross-user nested.

But it probably is better to concentrate on getting VT switching to
work well first, since a nested session is only an approximation of the
real thing.

> What would really help is making VT switching work better. On my
> systems with external monitors (like the ones I hack on at work), a
> single VT switch takes 2-3 seconds from fbcon and back to X. I don't
> know if this is Xorg or fbcon or just the VT layer in general, but it
> is noticeable, and it is frustrating. I don't know if systemd
> -consoled / logind / "the VT replacement API" would help here at all.

Yep.

> Figuring out what "session-ness" means and how to gain it when simply
> ssh'd in would also be great, but I have a feeling it's simply twenty
> different environment variables I have to port over one by one.

As you know, there are multiple scripts floating around for this, all
pretty hacky. An official solution would be great.

- Owen

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


Re: Looking for speakers for hacknight in Gothenburg on Aug 11th

2015-07-20 Thread Michael Catanzaro
On Mon, 2015-07-20 at 17:34 +0200, Andreas Nilsson wrote:
> They are looking for people from the GNOME community who would like 
> to 
> present their work at the meetup. Let me know if you'd like to 
> volunteer. We'd like to have three 20-30 minutes talks. Subjects that 
> 
> would be interesting to the audience would be things like app 
> development, Wayland and privacy.

Regarding privacy, I could talk about HTTPS: what it does and doesn't
do to keep your data private, when it can and can't be trusted, why the
lock icon in your browser doesn't mean as much as you'd like it to...
with a focus on Epiphany, of course.
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Alberto Ruiz
It'd be really nice if we could team up with the people working on
container technology so that we were able to run a full GNOME session
within a container. Even if it was privilleged.

We could serve GNOME Continuous images as docker or lxc images with the
latest stuff built in so that people can hack instead of waiting forever to
build the same thing we're all building and just run it from within the
container tree. Containers in general are a lot softer on hardware
requirements than full fledged virtualization so we wouldn't be imposing a
lot of requirements on hackers, on top of that they have the extra
flexibility of us being able to step into the filesystem easily from the
host so you can use your development environment instead of having to
replicate it inside the VM. This would also alleviate all the dbus problems
when nesting.

I have tried running gnome-shell inside a docker/lxc image but had issues
at several fronts what were less practical to address for me rather than
switching to libvirt/kvm (this is something I needed for Fleet Commander).
If we could crack those issues with a privileged container of some sort I
think we could come up with a really handy workflow for ostree

Relying on jhbuild from my point of view is a waste of everybody's time,
we've got all these developers building the same version of the same module
in the same architecture again and again and again, to reach more or less
the same state, all the people who give up on writing a patch or testing
master everytime a module breaks (like the latest libgit2-glib issues for
example) is a precious resource we're wasting for not having the right
infrastructure. Up to the point of glib or gtk+ is kinda handy but beyond
that is almost impractical.


2015-07-21 1:16 GMT+01:00 Owen Taylor :

> On Mon, 2015-07-20 at 16:35 -0700, Jasper St. Pierre wrote:
> > I've hacked on things all the from 1-5. Everything has a different
> > development process, as usual, and I don't think there's any sense in
> > trying to unify them. Writing documentation and getting people
> > started quicker is always great, but everybody's going to have their
> > own little things.
>
> We obviously can't make all developers work the same way, and we don't
> want to. But there should be a way that we can recommend that actually
> *does* work :-)
>
> > As for shell hacking, it's got increasingly more difficult to hack on
> > things in a state like this, even under X11: launching a shell from a
> > terminal loses things like search providers or some applications.
> > There's issues with pkexec and other friends. Automounting USB keys
> > never works when using jhbuild run. It feels strangely unclean and
> > frustrating to work with. I just don't run a full shell as an X11
> > compositor through jhbuild anymore. I do what I need to, then reboot
> > to get back to a clean state.
>
> Yeah. This type of thing is especially hard on newcomers, or simply
> people who don't continually work on the shell, because only through
> constant practice do you know *what* weirdness is due to a restarted
> shell.
>
> > You can run gnome-shell in a nested mode, but gnome-shell's forceful
> > grabbing of DBus names mean that the nested gnome-shell gets
> > notifications, screen lock goes to it, etc. I tend to only use mutter
> > in nested mode for Wayland hacking.
> >
> > Having scripts or a better setup to keep my jhbuild builds mostly
> > in-line with the system ones would be great.
> >
> > Full KMS-style Wayland hacking, for me, is mostly a separate machine
> > ssh'd into my main computer, there to debug and keep a session going
> > at all costs. I have issues, though, sometimes the keyring acts up
> > and eprompts for my ssh key on the terminal. Other times, I tend to
> > "lose session-ness" and basically restart at that point to get things
> > working again.
>
> If we could get nested working reliably, it certainly would be handy.
> Not everybody has access to a second computer. (Saying that as someone
> who is working as a nomad with a laptop for a couple of weeks.)
>
> The basic equation here is that nested == multi-seat; making nested
> work properly is draining the swamp of multi-seat issues.
>
> As far as I understand it, there's a strong push on the part of the
> systemd team to move from a session bus to a user bus; this probably
> means that a single user logging into multiple seats - into a nested
> session - is impractical. A single bus with components running from
> multiple versions of GNOME seems like an endless source of debugging
> headaches, even if we did all the work to move away from bus-global
> names.
>
> So nested == cross-user nested.
>
> But it probably is better to concentrate on getting VT switching to
> work well first, since a nested session is only an approximation of the
> real thing.
>
> > What would really help is making VT switching work better. On my
> > systems with external monitors (like the ones I hack on at work), a
> > single VT switch tak

Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Michael Catanzaro
On Tue, 2015-07-21 at 02:04 +0100, Alberto Ruiz wrote:
> Relying on jhbuild from my point of view is a waste of everybody's 
> time, we've got all these developers building the same version of the > same 
> module in the same architecture again and again and again, to > reach more or 
> less the same state, all the people who give up on > writing a patch or 
> testing master everytime a module breaks (like the > latest libgit2-glib 
> issues for example) is a precious resource we're > wasting for not having the 
> right infrastructure. Up to the point of > glib or gtk+ is kinda handy but 
> beyond that is almost impractical.

The problem is that we have no way to make sure our modules are always
in a buildable state. It's not impractical and it wouldn't even be
particularly difficult, the result would look awfully like GNOME
Continuous, building each jhbuild module in containers a few important
distros; it's just a challenge nobody has had time to attempt yet. I
was hoping GNOME Continuous would help with this, but the problem is
that Continuous is completely separate from jhbuild so they can have
different build issues; when an issue is detected in Continuous, it
isn't fixed in jhbuild; and Continuous isn't a jhbuild replacement. I
think our need is Continuous for jhbuild.

In the meantime, all it takes to avoid the libgit2-glib situation is
for someone to take a few minutes to roll back the module to an older
version [1][2][3]. My bad for not doing this immediately when I noticed
the problem; I wanted to give the developers some time to fix the
issue, but in hindsight that was wrong; these issues must be addressed
immediately since they block contributors from working on GNOME.

The other issue with jhbuild right now is a circular dependency problem
between, erm, g-i, vala, and... something else, I forget, which causes
everything to fail for new users but work fine for existing users. This
sucks. To avoid this, we need a dependency that says "build this module
eventually after building me" or "build me eventually after building
this other module," which we don't currently have. (I thought it was
"after" but that's something else.)

[1] https://git.gnome.org/browse/jhbuild/commit/?id=baa893595c98900e069
8dab2286953e0a5d723db
[2] https://git.gnome.org/browse/jhbuild/commit/?id=661878b5ca0a1a97fed
1f5f61ecaa5991bf870d5
[3] https://git.gnome.org/browse/jhbuild/commit/?id=b651a03d8f1f7b7e2c3
ccd56de25ea42c2b2b9f6
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Michael Catanzaro
On Mon, 2015-07-20 at 19:11 -0400, Owen Taylor wrote:
>  1) Hacking on system components that require hardware access (kernel 
> drivers, NetworkManager)
>  2) Hacking on system components that don't inherently require 
> hardware access (kernel filesystems, systemd, polkit, gdm)
>  3) Hacking on session level components (gnome-session, gnome-shell, 
> gnome-settings-daemon), and the libraries they use (gnome-desktop, 
> clutter)
>  4) Hacking on libraries (gtk+)
>  5) Hacking on applications
> 
> Which ones of these do you do? How do you do it? Is 'jhbuild run' 
> sufficient for your needs? 

I do 4 and 5 with 'jhbuild build' et. al. and 'jhbuild run'.

> Do you log into a jhbuild session? as yourself? as a test user?

I used to do 3 on rare occasions, but stopped doing that because I no
longer remember how I ever managed to run a GNOME session under jhbuild
in the past. There used to be instructions on the wiki, but they got
deleted at some point because they became outdated. The problems I
wanted to fix were never so urgent as to convince me to impel me to
figure it out on my own. Pretty sure new contributors have no chance
here.

>  Do you replace system level components? With 'make install'? By 
> building packages? Do you use gnome-continuous?

I've replaced system level components with 'make install' when I found
no other way to test a search provider. That displeased me.
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Jasper St. Pierre
build.gnome.org used to have auto builders for jhbuild. The problem is that
jhbuild building requires maintenance. Everyone I've talked to said that
after a few months of trying to have a jhbuild autobuilder, they gave up.

In my opinion, the way to fix this is to make jhbuild more like Continuous.
Have it read from the same manifest JSON format so that when Continuous
gets fixed, so do jhbuilds. Have it work automatically in a similar way
behind the scenes and "require less maintenance". And perhaps, when
possible, use poor prebuilt binaries from Continuous or xdg-app.

On Mon, Jul 20, 2015, 6:28 PM Michael Catanzaro 
wrote:

> On Mon, 2015-07-20 at 19:11 -0400, Owen Taylor wrote:
> >  1) Hacking on system components that require hardware access (kernel
> > drivers, NetworkManager)
> >  2) Hacking on system components that don't inherently require
> > hardware access (kernel filesystems, systemd, polkit, gdm)
> >  3) Hacking on session level components (gnome-session, gnome-shell,
> > gnome-settings-daemon), and the libraries they use (gnome-desktop,
> > clutter)
> >  4) Hacking on libraries (gtk+)
> >  5) Hacking on applications
> >
> > Which ones of these do you do? How do you do it? Is 'jhbuild run'
> > sufficient for your needs?
>
> I do 4 and 5 with 'jhbuild build' et. al. and 'jhbuild run'.
>
> > Do you log into a jhbuild session? as yourself? as a test user?
>
> I used to do 3 on rare occasions, but stopped doing that because I no
> longer remember how I ever managed to run a GNOME session under jhbuild
> in the past. There used to be instructions on the wiki, but they got
> deleted at some point because they became outdated. The problems I
> wanted to fix were never so urgent as to convince me to impel me to
> figure it out on my own. Pretty sure new contributors have no chance
> here.
>
> >  Do you replace system level components? With 'make install'? By
> > building packages? Do you use gnome-continuous?
>
> I've replaced system level components with 'make install' when I found
> no other way to test a search provider. That displeased me.
> ___
> desktop-devel-list mailing list
> desktop-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/desktop-devel-list
>
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Ray Strode
Hi,

On Mon, Jul 20, 2015 at 7:11 PM, Owen Taylor  wrote:>
> We can classify hacking on "GNOME" (taken very widely) into the following:
>
>  1) Hacking on system components that require hardware access (kernel 
> drivers, NetworkManager)
>  2) Hacking on system components that don't inherently require hardware 
> access (kernel filesystems, systemd, polkit, gdm)
>  3) Hacking on session level components (gnome-session, gnome-shell, 
> gnome-settings-daemon), and the libraries they use (gnome-desktop, clutter)
>  4) Hacking on libraries (gtk+)
>  5) Hacking on applications
>
> Which ones of these do you do?
Mostly 2 and 3 for me (though all the above on occasion)

> How do you do it? Is 'jhbuild run' sufficient for your needs?
No, jhbuild doesn't work for GDM.  (though I think Ryan got it to work
at some point, some how, with patches)

> Do you log into a jhbuild session? as yourself? as a test user? Do you 
> replace system level components? With 'make install'?
I do the quickest, dirtiest, and sloppiest thing:

alias %configure="./configure --prefix=/usr --sysconfdir=/etc
--localstatedir=/var --mandir=/usr/share/man --infodir=/usr/share/info
--libdir=/usr/lib64"

and then make install. Sometimes as a test user, but usually as myself.

> 3 seems like a place where we can make progress - the vague idea I have is:
>
>  - Move our standard install location back to /opt
I actually like things going to /usr with the same flags as the distro
packages so I can get things running pretty much the same way as
downstream when i'm testing things.  granted i realiize that makes
some people cringe.

>  - Have utility scripts that set up a test user
>  - Have hotkeys that switch directly back and forth between the main session 
> and the test user session and respawn the test session
I guess that will help for some cases, but a lot debugging (especailly
for gnome-shell) really works better with a second machine.  I realize
that's not always feasible, but in some cases it's 100x easier. Even
when doing app development.  Clearly we should make the single system
case work as well as possible, but i pretty much always try to have
two machines with me if i'm doing development or debugging (even if
it's two laptops at a coffeeshop)

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


Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Alberto Ruiz
Are there specific reasons why KVM doesn't cut it for shell developers? GPU
access?

2015-07-21 2:44 GMT+01:00 Ray Strode :

> Hi,
>
> On Mon, Jul 20, 2015 at 7:11 PM, Owen Taylor  wrote:>
> > We can classify hacking on "GNOME" (taken very widely) into the
> following:
> >
> >  1) Hacking on system components that require hardware access (kernel
> drivers, NetworkManager)
> >  2) Hacking on system components that don't inherently require hardware
> access (kernel filesystems, systemd, polkit, gdm)
> >  3) Hacking on session level components (gnome-session, gnome-shell,
> gnome-settings-daemon), and the libraries they use (gnome-desktop, clutter)
> >  4) Hacking on libraries (gtk+)
> >  5) Hacking on applications
> >
> > Which ones of these do you do?
> Mostly 2 and 3 for me (though all the above on occasion)
>
> > How do you do it? Is 'jhbuild run' sufficient for your needs?
> No, jhbuild doesn't work for GDM.  (though I think Ryan got it to work
> at some point, some how, with patches)
>
> > Do you log into a jhbuild session? as yourself? as a test user? Do you
> replace system level components? With 'make install'?
> I do the quickest, dirtiest, and sloppiest thing:
>
> alias %configure="./configure --prefix=/usr --sysconfdir=/etc
> --localstatedir=/var --mandir=/usr/share/man --infodir=/usr/share/info
> --libdir=/usr/lib64"
>
> and then make install. Sometimes as a test user, but usually as myself.
>
> > 3 seems like a place where we can make progress - the vague idea I have
> is:
> >
> >  - Move our standard install location back to /opt
> I actually like things going to /usr with the same flags as the distro
> packages so I can get things running pretty much the same way as
> downstream when i'm testing things.  granted i realiize that makes
> some people cringe.
>
> >  - Have utility scripts that set up a test user
> >  - Have hotkeys that switch directly back and forth between the main
> session and the test user session and respawn the test session
> I guess that will help for some cases, but a lot debugging (especailly
> for gnome-shell) really works better with a second machine.  I realize
> that's not always feasible, but in some cases it's 100x easier. Even
> when doing app development.  Clearly we should make the single system
> case work as well as possible, but i pretty much always try to have
> two machines with me if i'm doing development or debugging (even if
> it's two laptops at a coffeeshop)
>
> --Ray
> ___
> desktop-devel-list mailing list
> desktop-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/desktop-devel-list
>



-- 
Cheers,
Alberto Ruiz
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Owen Taylor
On Tue, 2015-07-21 at 03:00 +0100, Alberto Ruiz wrote:
> Are there specific reasons why KVM doesn't cut it for shell 
> developers? GPU access?

As mentioned in the original mail, there are two main issues:

 A) Indirection from the hardware: network, sound, monitors,
webcams, bluetooth, touchscreens, GPU, etc. A lot of work on
the core of GNOME is hardware integration work. I don't think
we can advertise running in a VM as *the* way to develop
the next version of GNOME.

 B) We simply don't have a good hacking environment for full
operating system tree development. gnome-continuous is not
really set up for making local changes and is also significantly
harder to understand than jhbuild.

Right now, the best path for hacking gnome in a VM is running jhbuild
inside the VM, with quite a bit of a speed and convenience penalty.

- Owen

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


Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Alberto Ruiz
Hello Michael,

Another problem I didn't mention which is that sometime the checkout dir
makes "make" go bonkers at some point even with jhbuild build -fac. It is
quite often that I update my jhbuild setup after ages of not touching it
and I have to basically "rm -rf * && git reset --hard" and configure again
to get the build going again. Given how long it takes to jhbuild everything
this is another extremely annoying point that we can't ensure won't hit
people. You can't leave the thing building and go make a coffee, you have
to work for the automation system instead of the other way around. It is
really a disaster if you ask me that we enforce this on every GSoC student
:/

Anyhow, why is it such a problem to resort to the latest buildable snapshot
to work on a very specific modules? So say this libgit2 problem for
instance: something broke in one module, I work on... say gedit. That
depends on it. What are the chances of my modifications having a dependency
on the stuff that was introduced while that module broke? the master/HEAD
of any given module should most of the time just build fine with any latest
buildable snapshot of the whole moduleset. There was a time at which I used
GARNOME (a script that grabbed all the latest tarballs) and only CVS/SVN on
the module I cared about because that was the most reliable way to get
everything to build without issues and just focus on my module.

I guess the bit I don't understand is, why do we have to think in terms of
"making jhbuild more like Continuous"? What's missing from Continuous to
cover all the jhbuild usecases?

2015-07-21 2:23 GMT+01:00 Michael Catanzaro :

> On Tue, 2015-07-21 at 02:04 +0100, Alberto Ruiz wrote:
> > Relying on jhbuild from my point of view is a waste of everybody's
> > time, we've got all these developers building the same version of the >
> same module in the same architecture again and again and again, to > reach
> more or less the same state, all the people who give up on > writing a
> patch or testing master everytime a module breaks (like the > latest
> libgit2-glib issues for example) is a precious resource we're > wasting for
> not having the right infrastructure. Up to the point of > glib or gtk+ is
> kinda handy but beyond that is almost impractical.
>
> The problem is that we have no way to make sure our modules are always
> in a buildable state. It's not impractical and it wouldn't even be
> particularly difficult, the result would look awfully like GNOME
> Continuous, building each jhbuild module in containers a few important
> distros; it's just a challenge nobody has had time to attempt yet. I
> was hoping GNOME Continuous would help with this, but the problem is
> that Continuous is completely separate from jhbuild so they can have
> different build issues; when an issue is detected in Continuous, it
> isn't fixed in jhbuild; and Continuous isn't a jhbuild replacement. I
> think our need is Continuous for jhbuild.
>
> In the meantime, all it takes to avoid the libgit2-glib situation is
> for someone to take a few minutes to roll back the module to an older
> version [1][2][3]. My bad for not doing this immediately when I noticed
> the problem; I wanted to give the developers some time to fix the
> issue, but in hindsight that was wrong; these issues must be addressed
> immediately since they block contributors from working on GNOME.
>
> The other issue with jhbuild right now is a circular dependency problem
> between, erm, g-i, vala, and... something else, I forget, which causes
> everything to fail for new users but work fine for existing users. This
> sucks. To avoid this, we need a dependency that says "build this module
> eventually after building me" or "build me eventually after building
> this other module," which we don't currently have. (I thought it was
> "after" but that's something else.)
>
> [1] https://git.gnome.org/browse/jhbuild/commit/?id=baa893595c98900e069
> 8dab2286953e0a5d723db
> [2] https://git.gnome.org/browse/jhbuild/commit/?id=661878b5ca0a1a97fed
> 1f5f61ecaa5991bf870d5
> [3] https://git.gnome.org/browse/jhbuild/commit/?id=b651a03d8f1f7b7e2c3
> ccd56de25ea42c2b2b9f6
> ___
> desktop-devel-list mailing list
> desktop-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/desktop-devel-list
>



-- 
Cheers,
Alberto Ruiz
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread Owen Taylor
On Tue, 2015-07-21 at 02:04 +0100, Alberto Ruiz wrote:
> It'd be really nice if we could team up with the people working on 
> container technology so that we were able to run a full GNOME session 
> within a container. Even if it was privilleged.

I'm intimidated by the amount of work there. For each system service
that GNOME interacts with: systemd, logind, polkit, bluez, gdm,
NetworkManager, cupsd, and so forth, you have have to choose between
tunneling it through or having a version of the daemon running within
the container that somehow plays nice with the host system. systemd
-nspawn, which is used to test systemd goes with the "plays nice"
approach

Not impossible but Hard. It would be interesting if anybody has
experience with getting something along these lines working.

[...]

> Relying on jhbuild from my point of view is a waste of everybody's 
> time, we've got all these developers building the same version of the 
> same module in the same architecture again and again and again, to 
> reach more or less the same state, all the people who give up on 
> writing a patch or testing master everytime a module breaks (like the 
> latest libgit2-glib issues for example) is a precious resource we're 
> wasting for not having the right infrastructure. Up to the point of 
> glib or gtk+ is kinda handy but beyond that is almost impractical.

I agree that the jhbuild process is a waste but gnome-continuous as it
exists currently doesn't provide an alternative. There's no provision
for downloading remote build artifacts, and then building just some
modules locally. And some of the things that were done to make gnome
-continuous robust - like assembling a build root from scratch for each
build and building each module from scratch - make it much slower and
more resource intensive for local hacking than jhbuild.

- Owen


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


Re: How do you hack on GNOME? How can we do better?

2015-07-20 Thread David Woodhouse
On Tue, 2015-07-21 at 03:11 +0100, Alberto Ruiz wrote:
> Another problem I didn't mention which is that sometime the checkout
> dir makes "make" go bonkers at some point even with jhbuild build 
> -fac. It is quite often that I update my jhbuild setup after ages of 
> not touching it and I have to basically "rm -rf * && git reset -
> -hard" and configure again to get the build going again. Given how 
> long it takes to jhbuild everything this is another extremely 
> annoying point that we can't ensure won't hit people. You can't leave 
> the thing building and go make a coffee, you have to work for the 
> automation system instead of the other way around. It is really a 
> disaster if you ask me that we enforce this on every GSoC student :/

Perhaps the ideal solution would be to decouple the dependencies. When
I'm trying to fix up some mail protocol back end in Evolution, I really
*shouldn't* need to upgrade my entire system to the very latest
glib/gtk+ and then upgrade a whole bunch of *applications* which for
some reason don't work with the new libraries.

In this thread we're talking about tooling to *help* me set up a
container with that full set of upgraded stuff, but we seem to be
missing the point that in an ideal world I shouldn't need it at all.

(It doesn't help that we don't have symbol versioning, so the distro
packaging has a lot of dependencies wrong, of course. So just running
'dnf --releasever=rawhide update gnome-foo' tends to break.)

I often actually find myself testing on the *stable* branch of
evolution-data-server, then committing blindly to master. Which is
entirely the wrong way round.

-- 
David WoodhouseOpen Source Technology Centre
david.woodho...@intel.com  Intel Corporation


smime.p7s
Description: S/MIME cryptographic signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list