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


On Mon, Jul 20, 2015 at 7:11 PM, Owen Taylor <otaylor redhat com> 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

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)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]