/srv/irclogs.ubuntu.com/2013/10/11/#ubuntu-installer.txt

jderosexnox: sorry about that, didn't know what channel was appropriate :)07:48
* jderose tries debug-ubiquity07:48
xnoxjderose: well it's ok =) not sure what's worse doing context-less jump across channels or over-using #ubuntu-devel =)07:49
infinityUsing ubuntu-devel for devel stuff is never wrong.  Just gets a bit noisy sometimes.07:52
jderoseinfinity: :)08:15
xnoxcjwatson: re: bug #1237694, the culprit is ubi-ubuntuone.py plugin, which defines plugin_skip_page when offline, but i guess something/somewhere is not done right as the installer is stuck after completing plugin.py and doesn't progress to plugininstall.py.11:21
ubot2Launchpad bug 1237694 in System76 "Installation fails without Internet" [Critical,Triaged] https://launchpad.net/bugs/123769411:21
xnoxam I missing exiting a main-loop? or is it not possible to skip the last page?11:21
cjwatsonMy suspicion is the latter11:27
cjwatsonI think something is missing a call to find_next_step11:27
cjwatsonPossibly in this bit?11:28
cjwatson            if self.backup or self.dbfilter_handle_status():11:28
cjwatson                if self.current_page is not None and not self.backup:11:28
cjwatson                    self.process_step()11:28
cjwatson                    if not self.stay_on_page:11:28
cjwatson                        self.pagesindex = self.pagesindex + 111:28
cjwatsonBut if you change that, be careful to test backup11:28
cjwatsonThe frontend state machine is such a mess :-(11:28
xnoxcjwatson: if i am skipping the last step, we should go to slideshow with no way to backup.12:32
cjwatsonxnox: Yes, but I mean, that code handles backup in other circumstances too12:32
xnoxok.12:33
xnox158 files changed, 72122 insertions(+), 43043 deletions(-), ouch.14:26
xnoxmost of it is debconf-updatepo bug #123519214:27
ubot2Launchpad bug 1235192 in Ubuntu Translations "Strings in U1 window for 13.10 installer are not in pot file" [High,Triaged] https://launchpad.net/bugs/123519214:27
infinitydebconf-updatepo is a harsh mistress.14:27
jderosexnox: er, problem i just found with the oem-config fix... because that upstart job always runs, the "oem" user gets deleted the first time you install 2.15.2318:02
jderosexnox: so you can't do any image customization, provide QA workflow via the "oem" user, etc18:03
jderoseso it needs to be conditional base on whether it's just a normal auto-login into the oem account, or whether we're actually running the end customer user config18:04
jderoseor maybe the extra "userdel --once-more-with-feeling" needs to be somewhere other than the upstart script18:05
jderoseor maybe systemd-ify ubiquity-dm, assuming systemd/logind/systemd-pam is the underlying culprit18:11
jderosein which case, also cry a little on the inside over the fact a systemd related fix is needed on a distro that doesn't uses systemd for init :P18:12
infinityIntrusive things like better logind integration probably won't happen.19:04
infinityBut dropping a simple "we're done now" semaphore in /var/lib at the spot where the userdel *used* to be, and then guarding the init post-script userdel with a check for said sempahore file would work fine.19:05
infinityjderose: xnox ^19:05
infinitys/won't happen/won't happen for 13.10/19:05
=== kentb-out is now known as kentb
jderoseinfinity: what's the magic file that determins whether the customer config UI is run?19:15
jderoseinfinity: and yeah, i understand the "right" fix probably wont happen for 13.10, i'm just trying to understand how things work a bit better, what the underlying problem is :)19:16
cjwatsonjderose: /var/lib/oem-config/run19:16
cjwatsoncould easily just check for that I expect?19:16
jderosecjwatson:  yeah, that's what i'm going try, same post-start, but with a test for /var/lib/oem-config/run19:18
jderosecjwatson: am i right that post-start should use the same [ -f /var/lib/oem-config/run ] condition as script? http://bazaar.launchpad.net/~ubuntu-installer/ubiquity/trunk/view/head:/debian/oem-config.oem-config.upstart19:20
cjwatsonMm, yeah, maybe post-start runs despite the script "failing" because of the "normal exit 0 1"19:22
cjwatsonSo yeah, certainly worth a try19:23
infinityExcept invert the test.19:23
infinityYou only want to remove the user if /run has been removed.19:23
jderoseinfinity: but then it will userdel oem whenever you boot the image prior to "Prepare for shipping to end user"19:24
cjwatsonOh, yeah, that's the problem19:24
infinityjderose: Ahh.  Hrm.  But /run will be removed before you get to that point.19:24
cjwatson/var/lib/oem-config/run will exist in neither case19:24
cjwatsonSo it's not a useful test19:24
infinitySo, the extra semaphore would work better.19:24
jderoseah, okay19:24
jderoseor setting a flag in side script/end script? I'm not super upstart savy... can you do that?19:25
infinityWherever the userdel used to be, make that a touch /var/run/oem-config-remove and then test for it in post-start, userdel, and rm it.19:25
cjwatsonI don't understand why this was done in an Upstart job, rather than in oem-config-firstboot19:25
jderosecjwatson: it was xnox's idea far a work-around as for whatever reason, userdel isn't working here - http://bazaar.launchpad.net/~ubuntu-installer/ubiquity/trunk/view/head:/bin/oem-config-wrapper19:26
cjwatsonNo, it can't be done in oem-config-wrapper because the display manager is still running, I expect19:27
jderoseif you remove the "|| true", line 14 is always failing19:27
cjwatsonBut oem-config-firstboot is outside that19:27
infinityAhh, yes.  firstboot looks like the right place.19:27
infinityIt even knows if the installation was successful.19:27
infinity        if [ "$CODE" -eq 0 ]; then19:27
infinity                exit 019:27
infinityThe userdel should go in that block.19:27
infinityBefore the exit, obviously. :P19:28
cjwatsonYep19:28
jderoseinfinity: cjwatson: so oem-config-firstboot runs during the *customer* first boot then?19:28
cjwatsonRight19:28
cjwatson# Run oem-config on the first boot after shipping to the end user.19:28
infinityActually, it needs to be sprinkled a few places in here.19:28
jderoseso, should the userdel bit be in oem-config-wrapper at all?19:29
cjwatsoninfinity: Probably not - oem-config-wrapper was only ever running it on success19:29
cjwatsonjderose: I suspect not19:29
infinitycjwatson: Yeah?  Okay.  I would have also put it in the panic section at the end.19:29
cjwatsonOh, there's another reason it doesn't work - Mario changed that script to run as the oem user :P19:29
infinitycjwatson: Since the panic section essentially duplicates oem-config-remove.19:29
cjwatsonSo it can't deluser/userdel19:30
cjwatsoninfinity: Maybe, yeah, in the oem-config/remove == true case19:30
* infinity nods.19:30
cjwatsonAnd we should go back to deluser if possible19:31
cjwatson+  * Remove oem user with userdel rather than deluser (the latter didn't support19:31
cjwatson+    doing it while oem was logged in) (LP: #624888)19:31
cjwatsonthat should no longer apply19:31
ubot2Launchpad bug 624888 in ubiquity (Ubuntu) "if oem user is logged in more than one tty when oem-config is set up, the oem user is never completely removed" [Undecided,Fix released] https://launchpad.net/bugs/62488819:31
cjwatsonOh, maybe it does, from that bug description19:31
cjwatsonOK, leave it at userdel19:31
cjwatsoneven though it makes me feel dirty19:31
jderosehehe19:31
jderosecjwatson: so at some point things are running as root, then su oem, then that process exists.... shouldn't the usedel oem be right after the su oem process exists? also, where would that be? :)19:32
jderose*exits*, then no longer exists :P19:33
cjwatsonjderose: oem-config-wrapper (nowadays, though not when I originally put the user deletion there) runs as oem.  oem-config-firstboot runs as root and the bit we're pointing at is "right after".19:33
jderoseokay, gotcha... so the block at line 121? http://bazaar.launchpad.net/~ubuntu-installer/ubiquity/trunk/view/head:/bin/oem-config-firstboot19:34
cjwatsonIt's slightly more complicated, on inspection.  One moment19:34
jderosecjwatson: infinity: thanks for all the help!19:35
cjwatsonjderose: Something like http://paste.ubuntu.com/6223900/ ?19:35
cjwatsonI don't have time to test this evening19:35
jderosecjwatson: i'll test in in a moment, got a vm ready for this very thing...19:36
cjwatsonGreat19:36
jderose cjwatson: hmm, no luck. good: it no longer removes oem user when it shouldn't; bad: it no longer removes oem user when it should19:53
jderosealthough i manually edited the files in place, so i might have made a goof19:54
jderosecjwatson: you have this in a branch already?19:54
jderoseif so, i'll do a build from there, test that way19:54
jderose(er, i edited the installed files rather than building the package)19:55
infinitycjwatson: oem-config remove runs before this, doesn't it (on a successful install), so your debconf check on RET=0 probably won't work, if the templates were purged.19:57
infinityThat check probably only makes sense in the panic section, where we still might have oem-config/ubiquity installed because it broke.19:57
cjwatsoninfinity: oh could be, might need to remember that in a file somewhere then :/20:20
cjwatsonno more time to work on this today I'm afrad20:20
cjwatson+i20:20
jderosecjwatson: thanks again for the help, i'll poke around at this more over the weekend, see if i can come up with something20:23
=== kentb is now known as kentb-out

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!