[07:36] <jetsaredim> was looking for some help in making some changes to ubiquity
[07:37] <jetsaredim> to add some new dialogs
[07:37] <jetsaredim> is there any documentation on this?
[07:37] <jetsaredim> I've only minimally played with glade, but there is so little documentation out there its hard to know exactly what to change
[09:45] <cjwatson> jetsaredim_: no, I'm afraid there's no documentation at all about that
[09:45] <cjwatson> jetsaredim_: adding new screens is a pain in the arse and still best avoided ;-)
[09:46] <cjwatson> jetsaredim_: what exactly are you trying to do?
[09:47] <cjwatson> jetsaredim_: doc/README in the ubiquity source is a start at explaining how it all hangs together, but makes no pretence at being a "how to add new pages" guide
[02:21] <jetsaredim_> cjwatson: ping
[02:26] <cjwatson> hello
[02:28] <jetsaredim_> h
[02:29] <jetsaredim_> so I offered to help the mythbuntu group with some python, but I'm not so good with glade
[02:29] <jetsaredim_> we'd like to add a couple pages to allow for mythtv setup/installation during install time
[02:29] <jetsaredim_> on a new boutique distro
[02:30] <cjwatson> ok, I have to say that at the moment ubiquity is probably about the hardest possible place to do that ;-)
[02:30] <evand> heh
[02:30] <jetsaredim_> how so?
[02:31] <cjwatson> you'd need to edit ubiquity/frontend/gtkui.py and look for where names beginning with "step" are handled at the moment
[02:31] <cjwatson> you'd need to add pages to the glade file
[02:31] <jetsaredim_> yep
[02:31] <cjwatson> if debconf is involved, you'll need to add ubiquity/components/whatever.py
[02:31] <jetsaredim_> that's about what I figured
[02:31] <cjwatson> but the UI is all totally monolithic
[02:31] <jetsaredim_> i can see that
[02:31] <jetsaredim_> :)
[02:31] <cjwatson> so it's not really well suited for modifications like this yet
[02:32] <cjwatson> I do hope to split it out one day as it would make things easier for me too, but it was kind of like this when I took over the code from guadalinex
[02:32] <jetsaredim_> hm ok
[02:33] <cjwatson> in gtkui.py, you'd need to edit the run, on_next_clicked, and on_back_clicked methods at a minimum
[02:33] <jetsaredim_> do you know of any tools that make it easier to read the glade file, do ya?
[02:33] <cjwatson> possibly random special-case handling elsewhere
[02:33] <cjwatson> in edgy, use glade-2; in feisty, use glade-3
[02:33] <cjwatson> you don't want to edit it by hand
[02:33] <jetsaredim_> yea - I think I got the next and run, but not back
[02:33] <jetsaredim_> I'm having an issue with my glade installation at the moment
[02:33] <cjwatson> fix it first, then ;-)
[02:33] <jetsaredim_> yea
[02:34] <jetsaredim_> so
[02:34] <cjwatson> but the packaged versions should work fine; they're what I've always used
[02:34] <jetsaredim_> how do you map the stuff that you design in glade to actual code?
[02:34] <cjwatson> how do you mean?
[02:34] <jetsaredim_> i guess its more of a glade question
[02:34] <jetsaredim_> but I'm just not 100 familiar with how glade actually works
[02:35] <evand> jetsaredim_: the names of all the objects get imported into the global space, so you can refer to things like self.username_box
[02:35] <jetsaredim_> ok
[02:35] <cjwatson> look around where gtkui.py calls gtk.glade.XML
[02:35] <jetsaredim_> ok
[02:36] <jetsaredim_> where to the settings get stored
[02:36] <cjwatson> that's up to you
[02:36] <jetsaredim_> how do they get translated into install actions
[02:36] <jetsaredim_> like is there a global queue of packages or something
[02:37] <cjwatson> typically you need to write code in scripts/install.py to apply modifications to the installed system
[02:37] <jetsaredim_> like if I put in a screen that says I want to install 10 packages and a couple have customizations
[02:37] <jetsaredim_> ok
[02:37] <jetsaredim_> is there some sort of install chroot?
[02:37] <cjwatson> ideally it's best to avoid installing packages in ubiquity (although sometimes it's necessary)
[02:38] <jetsaredim_> as opposed to?
[02:38] <cjwatson> ubiquity normally just copies the live filesystem over and then removes stuff from it
[02:38] <cjwatson> so normally we try to put everything we need in the live filesystem
[02:38] <jetsaredim_> ic
[02:38] <cjwatson> like I say, it's not always possible, but usually it works out, and it makes the live filesystem a better demo
[02:38] <cjwatson> I assume you've read doc/README? It explains this
[02:39] <jetsaredim_> ... :)
[02:39] <cjwatson> install chroot> yes, /target
[02:39] <cjwatson> does the mythtv stuff you're trying to configure use debconf?
[02:39] <jetsaredim_> some
[02:40] <jetsaredim_> but there is at least one utility that we'd like to be able to run from inside the chroot
[02:40] <jetsaredim_> cause it needs interaction
[02:40] <cjwatson> sure, you can do that, chrex function in scripts/install.py
[02:40] <cjwatson> er, interaction?
[02:40] <cjwatson> as in command-line?
[02:40] <jetsaredim_> no
[02:40] <jetsaredim_> gui
[02:40] <jetsaredim_> mythtv-setup
[02:40] <cjwatson> meh, that'll be fiddly
[02:40] <jetsaredim_> how so
[02:41] <cjwatson> you'd have to set up X authorisation in the chroot and stuff, and it would generally be a mess
[02:41] <cjwatson> also pretty ugly UI-wise; we try to ask all the questions up-front, before the chroot exists
[02:41] <jetsaredim_> there's really no non-interactive way to setup mythtv
[02:42] <jetsaredim_> unfortunately
[02:42] <jetsaredim_> the only other thing I could think of would be something run on first boot
[02:43] <cjwatson> mythtv-setup doesn't ask all that many questions, does it?
[02:43] <cjwatson> and presumably it just blats the answers into a configuration file
[02:43] <cjwatson> it's also a pretty hideous UI
[02:43] <jetsaredim_> yes and no
[02:43] <jetsaredim_> yea
[02:43] <jetsaredim_> for sure
[02:43] <jetsaredim_> but there is stuff about if you have multiple cards
[02:44] <jetsaredim_> and if you have multiple inputs per cards
[02:44] <jetsaredim_> and what channels you want to setup
[02:44] <jetsaredim_> if we didn't run mythtv-setup, we'd essentially have to re-write it in ubiquity pages
[02:45] <cjwatson> so you're doomed to a horrible UI anyway
[02:45] <jetsaredim_> which we've already come up with 2 more pages than are there now as it is
[02:45] <cjwatson> can you at least run it before starting the install and then copy the configuration into /target?
[02:45] <jetsaredim_> interesting thought
[02:45] <jetsaredim_> i suppose that would work
[02:46] <jetsaredim_> though you might not be guaranteed that udev would scan the devices the same way on the install vs the cd
[02:46] <cjwatson> that's how ubiquity does everything else
[02:47] <jetsaredim_> true
[02:47] <cjwatson> if udev doesn't scan the devices the same on the install versus the CD, then it won't necessarily scan them the same way on every boot either
[02:47] <cjwatson> so that would make you screwed anyway
[02:47] <jetsaredim_> so if we wanted to install the mythplugins or something, we should just install them in the livecd and then remove them from if the user didn't want them?
[02:48] <jetsaredim_> err from the install
[02:49] <jetsaredim_> anyway - i have to run - but i'll be back on late
[02:49] <jetsaredim_> r
[02:49] <jetsaredim_> i hope you don't mind me picking your brains
[02:50] <jetsaredim_> o
[02:50] <cjwatson> you can do it either way, it's just generally simpler to have them in the live filesystem
[02:50] <jetsaredim_> ok
[02:51] <cjwatson> just have a shell script call 'apt-install <package>' at some point (yes, apt-install, not apt-get install) and ubiquity will sort out the rest for you
[02:51] <jetsaredim_> in the livecd environment?
[02:51] <cjwatson> if you want a package to be removable, then put it in /casper/filesystem.manifest but not in /casper/filesystem.manifest-desktop
[02:51] <cjwatson> (on the CD)
[02:52] <cjwatson> yes, in the live session
[02:52] <cjwatson> packages listed in both /casper/filesystem.manifest and /casper/filesystem.manifest-desktop will always be installed in /target
[02:52] <cjwatson> packages in just the first one will only be installed in /target if something apt-installs them
[02:52] <jetsaredim_> interesting
[02:52] <cjwatson> this is so that things like ubiquity itself can be removed
[02:53] <jetsaredim_> right
[02:54] <jetsaredim_> wow - I'm going to have to save this session for reference :)
[02:54] <jetsaredim_> ok - i'll def be back to ask more questions
[02:55] <jetsaredim_> thanks again for the help
[02:56] <cjwatson> no problem
[03:15] <evand> jetsaredim_: depending on the question, I may be able to help you as well, if cjwatson is not around.
[05:37] <jetsaredim> evand: any suggestions on tracking down my gtk problems
[05:37] <jetsaredim> I'm running kde and i have the gtk2-engines-qt package installed
[05:41] <cjwatson> whoa, don't use gtkui.py if you're running KDE, use kde-ui.py instead
[05:41] <jetsaredim> no no
[05:41] <jetsaredim> my dev box is kde
[05:41] <jetsaredim> not the livecd environment
[05:42] <jetsaredim> I can't run glade on my dev box since gtk seems all messed up
[05:42] <cjwatson> oh, I suppose that would explain your problems
[05:42] <cjwatson> ask Riddell maybe
[05:42] <jetsaredim> right
[05:42] <jetsaredim> Riddell?
[05:43] <jetsaredim> found
[05:43] <jetsaredim> ok - will do
[05:43] <jetsaredim> thanks