/srv/irclogs.ubuntu.com/2018/02/23/#snappy.txt

mborzeckimorning05:50
mupPR snapd#4726 opened: [2.31] systemd, wrappers: start all snap services in one systemctl call <Created by bboozzoo> <https://github.com/snapcore/snapd/pull/4726>06:38
mborzeckimvo: morning06:39
mvohey mborzecki, good morning06:39
mvomborzecki: thanks for opening this pr!06:39
mborzeckimvo: do we have any idication that we'll be doing another point release?06:40
zygagood morning06:41
mvohey zyga, good morning06:42
mborzeckizyga:hey06:42
zygahey guys06:42
zygamvo did the release happen06:42
zygathere were some issues last night06:42
mvozyga: yeah, it happened but according to bret they use phased updates to push it out06:43
zygamvo +1 to merge 472406:43
zygamvo ah, good, I stopped following at around midnight06:44
mborzeckibtw. i was browsing archlinxu forum the other day, and noticed this: https://bbs.archlinux.org/viewtopic.php?id=234301 apparently thre's a problem installing snaps when behind a firewall06:46
mborzeckii think we could set HTTP_PROXY in /etc/environment (or an equivalent) but that would be inconvenient if you change networks, eg. there's a need for a proxy on one network but not on another06:47
mvomborzecki: hm, yeah, so I think one fix would be that snap (the client) passes the clients proxy env to snapd and snapd uses that. should be simple06:48
zygamvo I think the way this is handled in real networks is different06:49
mvomborzecki: iirc I talked to gustavo about it but he did not like it, but I don't remember why06:49
zygamvo there's a function to call for each URL that gives you proxy data06:49
mvozyga: thats how libproxy will do it06:49
zyga(or information not to proxy)06:49
zygaexactly06:49
zygaso depending on how far we are willing to go with it06:49
mvotricky for us to do because of the snapd daemon restriction06:49
zygaI think it's still a bit simplistic as in corporations the auth is integrated but at least it is better than all-or-nothing06:50
mborzeckilooked through stdlib source code, and it seems that HTTP_PROXY is supported06:50
mvomborzecki: yes, but snapd will only read it from /etc/environment06:51
mvothere is a forum discussion but unfortunately inconclusive06:51
mborzeckiuhh right, i meant i used that as indication that net/http can do proxy06:51
mvoaha, yes :)06:51
mvohttps://forum.snapcraft.io/t/improve-proxy-configuration-for-snapd/942 fwiw06:52
mborzeckiheh, all this proxy stuff is actually a bit awkward to me, i'm used to this being handled transparently by whatever trickery cisco or netgear employed06:54
mborzeckican #4719 be merged?07:09
mupPR #4719: timeutil: account for 24h wrap when flattening clock spans <Created by bboozzoo> <https://github.com/snapcore/snapd/pull/4719>07:09
mvomborzecki: how is the autostart going? anything interesting new here?07:12
mupPR snapd#4719 closed: timeutil: account for 24h wrap when flattening clock spans <Created by bboozzoo> <Merged by mvo5> <https://github.com/snapcore/snapd/pull/4719>07:13
mborzeckimvo: trying to finish with timer services first, maybe i'll look into autostart a bit later today07:13
mvomborzecki: yeah, timers are more important. thank you07:14
mborzeckilinode:ubuntu-14.04-64:tests/main/refresh-all-undo failed again https://paste.ubuntu.com/p/wGwqr8MDSp/07:19
=== Beret- is now known as Beret
pstolowskiheyas!07:59
mvohey pstolowski ! good morning07:59
zygahey :)07:59
mvopstolowski: thanks for your review, I love the attrer stuff, much nicer than the naked map access08:00
pstolowskimvo, cool!08:00
mborzeckipstolowski: hey08:01
pstolowski#4716 anyone? it's trivial08:05
mupPR #4716: tests: make sure snapd is running before attempting to remove leftover snaps <Created by stolowski> <https://github.com/snapcore/snapd/pull/4716>08:05
mvopstolowski: looking08:11
pstolowskimvo, ty!08:12
mupPR snapd#4716 closed: tests: make sure snapd is running before attempting to remove leftover snaps <Created by stolowski> <Merged by mvo5> <https://github.com/snapcore/snapd/pull/4716>08:12
zygamvo can I land 472408:18
zygait's just a trivial preparation for upcoming cleanup08:18
kalikianagood morning08:19
zygahey kalikiana08:19
mupPR core#81 closed: 14-set-motd.chroot: updated based on the suggestions from Mark <Created by mvo5> <Merged by mvo5> <https://github.com/snapcore/core/pull/81>08:21
mupPR snapd#4726 closed: [2.31] systemd, wrappers: start all snap services in one systemctl call <Created by bboozzoo> <Merged by mvo5> <https://github.com/snapcore/snapd/pull/4726>08:23
zygathanks mvo!08:24
mupPR snapd#4724 closed: osutil: aggregate mockable symbols <Created by zyga> <Merged by zyga> <https://github.com/snapcore/snapd/pull/4724>08:24
zygahmm I think chipaca already mentioned this before08:25
zygabut I'm getting this08:25
zygaadvisor/backend.go:199: literal copies lock value from *db: github.com/snapcore/snapd/vendor/github.com/snapcore/bolt.DB contains sync.Pool contains sync.noCopy08:25
mvopstolowski: do you think we can get the limited reader into 2.32? would be nice to have that fix08:30
mvopstolowski: is the status that it just needs a re-review?08:30
pstolowskimvo, yes, it needs re-review from Gustavo, but I applied the snippet he suggested (with only minor change), so perhaps you can make a call08:36
mvopstolowski: thanks, this now looks very nice, I think its uncontroversial08:36
mupPR snapd#4584 closed: hooks/strutil: limit the number of data read from the hooks to avoid oom <Created by stolowski> <Merged by mvo5> <https://github.com/snapcore/snapd/pull/4584>08:36
pstolowski\o/08:37
pstolowskimvo, shall I cherry-pick it and prepare a PR?08:37
mupPR snapd#4727 opened: many: simplify mocking of home-on-NFS <Created by zyga> <https://github.com/snapcore/snapd/pull/4727>08:37
zygamvo this is a mostly red follow up I was talking about08:37
zygathis should also help with one of jdstrand's branches that adds overlayfs data to system key08:38
mvozyga: my understanding is that 4140 just needs the rename and then things are ok? if so, sounds like something worth doing for 2.32 - wdyt?08:38
mvozyga: it has +1 from jamie and you already and gustavo only objected the name afaict08:39
zygayes, I agree08:39
zygaI can handle that if you want08:39
zygaok, I'll carry on with mount business08:44
mvozyga: either way is fine08:45
pedronismvo: hi,  how are things? when will we cut 2.32 ?08:54
mvopedronis: once tests are green for the default-provider PR, looks like the store is a bit unhappy currently, but maybe it fixed itself08:56
mvopedronis: anything you want in there?08:56
pedronismvo: no, mostly wondering about my reorg/refactor PR that are green, whether I should hold them for post 2.3208:58
pedronisor not08:58
pedronismvo: you can look,  #4715  #472208:58
mupPR #4715: store: reorg auth refresh <Created by pedronis> <https://github.com/snapcore/snapd/pull/4715>08:58
mupPR #4722: store: cleanup test naming, dropping remoteRepo  and UbuntuStore(Repository)? references <Created by pedronis> <https://github.com/snapcore/snapd/pull/4722>08:58
mvopedronis: holding it for a little bit would be great08:59
mupPR snapd#4728 opened: store: move infoFromRemote into details.go close to snapDetails <Created by pedronis> <https://github.com/snapcore/snapd/pull/4728>09:05
Chipacamo'in peeps09:08
mvohey Chipaca ! good morning09:09
pedronisChipaca: hi, if I understood the discussion yesterday, this would make refreshed/InstalledDate report a value closer to the intention:  https://pastebin.ubuntu.com/p/4G8TDSQFsr/09:12
pedronis?09:13
pedronisas you said with that change no test fails, at least in daemon09:13
pedronis:/09:17
mvojdstrand: I was renaming the gnome-online-accounts-service to accounts-services as requested by gustavo. it looks like the store (basedeclartion) and review tools need an update (store is rejecting my test snap right now)09:19
mvozyga: do you know if it is safe to just override this via manual review -^09:19
zygamvo I don't know if it is safe but I suspect that's what manual review is for09:21
Chipacapedronis: I've got a branch already on spread for this09:24
Chipacapedronis: and, well, close09:24
Chipacapedronis: that'd work for squashes09:24
Chipacapedronis: for it to work for everything you'd want it to be Lstat09:24
Chipacamy branch does that, but … then it takes a stand :-)09:25
pstolowskiany known issue with lxd today? got 2 failures https://api.travis-ci.org/v3/job/345155633/log.txt09:25
pedronisChipaca: anyway probably time to move this to methods on snap.Info I think09:25
pedroniswhatever the stand09:25
pedronisChipaca: I'm mostly interested in installedDate for snaps from the store09:26
pedronisfwiw09:26
Chipacapedronis: I think you'll like my PR09:27
zygapstolowski look at this09:27
zygaE: Type 'curity' is not known on line 50 in source list /etc/apt/sources.list09:27
Chipacamborzecki: why do you sometimes ask 'merge?' on PRs that are green and have two +1s?09:27
zyga"security" became "curity"09:27
mborzeckiChipaca: ahh, cause there's +1 with some comments, so just double checking that the changes i pushed are ok for those who reviewed09:29
pstolowskizyga, missed that, thanks. interesting09:29
Chipacamborzecki: for myself, if I've +1'ed it with nits, it's because (a) i won't block the landing even if you don't fix them, and (b) i trust you to fix them; also (c) i'll shout if you mess it up and (d) git reset --hard @^^^^^09:29
mborzeckihahah ok :)09:29
pstolowskizyga, that's inside the container, i don't think we generate sources.list do we?09:31
zygaI don't know09:31
mupPR snapd#4103 closed: snapstate: auto install default-providers for content snaps <Created by mvo5> <Merged by mvo5> <https://github.com/snapcore/snapd/pull/4103>09:33
mupPR snapd#4677 closed: cmd/snap: introduce `snap run --timer` <Created by bboozzoo> <Merged by bboozzoo> <https://github.com/snapcore/snapd/pull/4677>09:34
mupPR snapd#4680 closed: snap: pass full timer spec in `snap run --timer` <Created by bboozzoo> <Merged by bboozzoo> <https://github.com/snapcore/snapd/pull/4680>09:35
mupPR snapd#4729 opened: many: drop snaps' InstallDate, introduce Updated <Created by chipaca> <https://github.com/snapcore/snapd/pull/4729>09:39
Chipacapedronis: ^_^09:39
mborzeckizyga: pstolowski: can you take another look at #4695 ?09:40
mupPR #4695: wrappers: generator for systemd OnCalendar schedules <Created by bboozzoo> <https://github.com/snapcore/snapd/pull/4695>09:40
pedronisChipaca: I have bad news for you09:40
Chipacapedronis: is it about potato fungus09:41
pedronisChipaca:  you expect last updated to be the creation time of the revision?09:43
pedronison the store09:43
Chipacapedronis: it … seemed to be; isn't it?09:44
pedronisI don't know09:47
Chipacapedronis: bah, I guess it might be the creation time of the last revision, which might not be the one being pointed at?09:47
pedronisbu that's what the new api has09:47
Chipacapedronis: that == creation time of the revision?09:47
Chipacathat's perfect :-)09:47
pedronisyes, but for the new api09:47
Chipacaright09:47
pedronisthe old I don't know09:47
pedronisI can check09:48
pstolowskimborzecki, sure09:48
pedronisjust that this value might be a bit confusing for remote for a bit09:48
Chipacapedronis: please check (no rush); depending on what it is, the confusion might not be terrible09:48
Chipacafor example if it's the timestamp of the latest revision, i don't mind09:49
Chipacaif it's the timestamp of the last time you changed something via the web, i do mind :-)09:49
pedronisChipaca: no, it's the timestamp of the creation of the revision under consideration also for the old api09:51
pedronisat least as server by modern infra09:52
* Chipaca dances09:52
pedronis(it might have been something else at some point in the past)09:52
pedronisChipaca: your PR and my last PR will conflict :/09:52
Chipacapedronis: I don't mind deconflicting09:52
Chipacapedronis: hurry up and land it :-D09:52
Chipacamine is small (if spread out)09:53
pedronismvo told me to wait09:53
pedronisanyway I need reviews, but is trivial:  #472809:53
mupPR #4728: store: move infoFromRemote into details.go close to snapDetails <Created by pedronis> <https://github.com/snapcore/snapd/pull/4728>09:53
Chipacapsh, who listens to mvo09:53
Chipacapedronis: conflict! :-)09:53
pedronisnot on that PR09:53
pedronisI suppose on the based one09:54
pedronisor maybe yes09:54
pedronisah, conflict with mvo stuff09:54
pedronisI'll have fun for a bit I fear09:54
pedronismmh, not, it's really only this one09:55
pedronisI'll just wait at this point09:55
ChipacaI could stack mine on yours09:56
Chipacathat'd make it a fun review for people09:56
ChipacaI hear they really like wading through huge changes09:56
pedronisChipaca: my in progress new api stuff is +-3000 lines  (I will split it,  but a chunk will still be +1000 mostly tests)09:57
ChipacaI shall endeavour to nitpick it to death in detail09:58
mborzeckiprereqSuite.TestDoPrereqRetryWhenBaseInFlight failed on master https://paste.ubuntu.com/p/qwbkSCGm3K/10:06
mborzeckii've restarted the travis build, see if reproduces again10:07
zygaI saw a few failures related to store hicckups todaty10:08
zyga*today10:08
zygabut nothing major10:08
zyga(just annoying)10:08
Chipacafatal: unable to access 'https://go.googlesource.com/crypto/': The requested URL returned error: 50210:10
Chipacaif that's any consolation, I've got a failure related to google hiccup10:10
pedronisChipaca: couple of initial small comments10:12
Chipacapedronis: I'm not sure my 'open question' is clear: I thought of having it show "updated" (or even "last-updated") for remotes, but that leaves locals with "refreshed" which IMHO isn't ideal either10:12
pedronisupdate is strange for remotes10:12
pedronislet me think10:13
* Chipaca lets pedronis think, and goes off to physio10:13
pedronisChipaca: I don't think we want to print something for remotes10:13
pedroniswe would want dates in the channel10:13
pedroniss10:13
pedroniswe don't print a top revision either10:14
pedronisfor remote infos10:14
pedronisit's a bit strange to put a date there without the revision10:14
pedronisChipaca: are you seeing what I'm referring to?10:16
ChipacaI think we do want dates in the map, yes10:17
pedronisI'm saying if you put a date at top-level10:17
Chipacathe confusing munge of revisioned and revisionless info in the store results is confusing, yes10:17
pedronisis very unclear what it refers to10:17
pedronisunless you mention the channel10:18
zygaChipaca on your way, can you look at the idea behind https://github.com/snapcore/snapd/pull/472710:18
mupPR #4727: many: simplify mocking of home-on-NFS <Created by zyga> <https://github.com/snapcore/snapd/pull/4727>10:18
Chipacabut I do think having it is valuable, as long as it refers to what the user gets when they just ask for the snap without qualifying it10:18
Chipaca(which is, i think, what it does)10:18
zygajust mocking the function instead of what the function depends on10:18
pedronisChipaca: last-stable-updated ?10:18
pedronisI just fear whatever we do right now, we will regret/have to change it again10:19
pedronisChipaca: or you could think how you want dates in the channels,  and start putting in only the one for stable?10:20
Chipacathat'd work rather well actually10:21
Chipacabah10:21
Chipacasorta-kinda10:21
pedronisbut also I don't know10:21
pedronishow to add a date10:21
pedronisthere10:21
pedroniswithout thinking as breaking format10:21
Chipacapedronis: note I try to use the exact same layout for 'installed:' as I do for channels10:21
Chipacabut it'd be weird for that to change when you installed the snap10:21
Chipacahmmmm10:22
pedronisyes, it's a bit the problem I mentioned, it is strange to use one field for a value that is available remotely10:22
pedronisbut turns into a different value locally10:22
Chipacapedronis: how about, for local snaps just leave it as 'refreshed', and for remotes just add the one for the latest stable as a comment to channels10:23
pedronismight be ok10:23
Chipacaie: channels:        # latest stable from YYYY-mm-ddTHH:MM:SSZZZ10:23
pedronisah10:24
pedronislike that10:24
* pedronis was confusing notes and comments10:24
Chipacapedronis: do you think 'updated' is ok in the api?10:24
pedronisit's getting a baroque10:24
* Chipaca prefers the term 'neo-rococo'10:24
pedronis:)10:25
pedronisChipaca: my question is whether we want different fields for local vs remote10:26
pedronisthat's annoying in different ways though10:27
ChipacaI mean, if we're going for full clarity we'd go with "last-stable-revision-created-on" and "snap-downloaded-on" and "try-created-on"10:28
Chipaca¯\_(ツ)_/¯10:28
zyga4th failure on trivial PR :/10:31
zygaoh, this time racy unit tests10:31
zygaFAIL: handlers_prereq_test.go:155: prereqSuite.TestDoPrereqRetryWhenBaseInFlight10:31
zygahandlers_prereq_test.go:186:10:32
zyga    // check that t is not done yet, it must wait for core10:32
zyga    c.Check(t.Status(), Equals, state.DoingStatus)10:32
zyga... obtained state.Status = 4 ("Done")10:32
zyga... expected state.Status = 3 ("Doing")10:32
mborzeckiok, so it's only me seeing this10:32
mborzeckireproducible locally10:34
ogra_mvo, pedronis https://forum.snapcraft.io/t/using-content-for-a-role-system-data-partition-makes-it-not-be-system-data-anymore10:43
pedronissounds a ubuntu-image issue10:46
pedronisI don't think prepare-image deals at level10:46
mvomborzecki: uh, that race looks like I caused it. sorry for this10:47
pedronis*at that level10:47
mborzeckimvo: are you looking into it or should i?10:53
mvomborzecki: I am not looking right now, need to prepare lunch in a wee bit :(10:53
mborzeckimvo: ok, i'll take a look then10:53
zygamborzecki I'm not looking either, sorry10:54
mvomborzecki: thank you! if you get stuck let me know11:01
mupPR snapd#4730 opened: userd/tests: Test kdialog calls and mock kdialog too to make tests work in KDE <Created by stolowski> <https://github.com/snapcore/snapd/pull/4730>11:19
pstolowskimvo, can you take a look at #4730 ^ ?11:19
mupPR #4730: userd/tests: Test kdialog calls and mock kdialog too to make tests work in KDE <Created by stolowski> <https://github.com/snapcore/snapd/pull/4730>11:19
pstolowskiwe fail on KDE currently :}11:19
zygasigh11:31
zyga(not about kde)11:31
zygagaaah11:38
pstolowskimvo, the prereq unit test seems to be flaky11:39
pstolowskimvo, https://pastebin.ubuntu.com/p/k5MpksjvrN/11:39
zygaso11:39
pstolowskimvo, (this is from master)11:39
zygaI now feel I need to implement a little bit of path traversing, mount table traversing logic in userspace11:39
pstolowskimvo, also got this failure in travis a moment ago on my pr - https://api.travis-ci.org/v3/job/345185500/log.txt11:40
zygathe simple check grew a little bit that I started to write prose comment that barely fits on my 27" screen :/11:40
zygapstolowski mborzecki ran into it too11:41
zyga(and me too)11:41
pstolowskizyga, ah indeed, just looked at the backlog11:41
mborzeckipstolowski: i'm looking into it atm11:41
pstolowskimborzecki, great, thanks11:41
zygajdstrand I'm a bit depressed again :)11:42
zygaabout that mount verification11:42
zygait's one notch harder than I thought yesterday11:42
zygaand that's with constraints I don't know if are reasonable (not a generic solution for sure)11:42
zygathis is all because there's no frelling MS_NOFOLLOW in mount11:43
* cachio_ afk11:44
mborzeckiok, so here's a small problem with that test, it assumes that tasks are run in the runner in a specific order, however the runner takes the list of tasks to run by calling State.Tasks(), interlly State.tasks is a map, so when you range the order is not guaranteed, and so it happens that sometimes one task runs before the other11:56
pstolowskimborzecki, is there a reason we don't translate mon-fri to mon..fri, but expand all the days? not biggie at all, just curious; i guess it's just more straightforward to always expand?11:56
mborzeckipstolowski: yes, easier to expand11:57
pstolowskimborzecki, in certain cases we force the order by task.WaitFor(another task)11:57
pstolowskimborzecki, ack, that's fine, thanks11:58
mborzeckipstolowski: i think the idea in this case is not to use waitfor, but rather detect that a change we need is in flight and retry later11:58
pstolowskimborzecki, right, i see that now11:59
pstolowskimborzecki, perhaps we need a dummy task that holds link-snap task, then we mark it done in a controlled way, and that unblocks prereq task12:01
zygamborzecki nice analysis12:01
* pstolowski lunch12:08
Chipacazyga, ondra: bug#1750059 might be of interest to you12:23
Chipacafor different reasons12:23
Chipacayou know that thing where you plan to replace a bit of hardware because it's getting old, and it immediately starts showing even more signs of old age, as if resenting its replacement? my notebook now chirps when i adjust the brightness12:25
ondraChipaca :)12:25
ondraChipaca thanKs for bug info!12:25
Chipacaondra: integration-y thing with a workaround, thought you'd like to have it on the radar12:26
pedronismborzecki: pstolowski: I think  s.snapmgr.AddAdhocTaskHandler can probably be abused to get a controllable link-snap12:29
pedronisfor that test12:29
zygaChipaca ack, queued12:31
mborzeckipedronis: and return state.Retry{} in the handler?12:31
pedronismborzecki: or wait on a channel before returning12:31
mborzeckipedronis: right, i've started adding some mocks to taskrunner, but your suggestion may be better12:32
zygaChipaca interesting12:32
ChipacaI wonder if there's a way to tell systemd "this service uses that path"12:33
pedronismborzecki: is just a way to get to call AddTaskHandler again,  that is already there... the latter seems not to worry about overriding. is used in a very controlled way so seems fine as is12:34
pedronissorry AddHandler12:34
mborzeckiChipaca: one of the BindsTo or one of it's friends perhaps?12:35
ogra_pedronis, so looking through the sources i'm not that sure it is an ubuntu-image issue ... prepare-image unpacks the gadget but does not move the content to the "image" dir ... https://paste.ubuntu.com/p/6MbNxJ6574/12:35
Chipacamborzecki: MagicallyFrobnicatesInto12:36
Chipacamborzecki: somebody should write https://git-man-page-generator.lokaltog.net/ but for systemd directives12:37
zygajdstrand around?12:40
pedronisogra_: afaik the only bit that prepare-image is the bootloader conf, and cloud bits12:42
pedronis*prepare-image copies12:42
ogra_pedronis, right thats the issue i guess12:42
ogra_if i'm allowed to define "content:" in the yaml for the writable partition it should copy that too ...12:43
pedronisit does even look at Volumes12:43
ogra_... and if i'm not allowed it should error out and not silently swallow the files12:43
pedronisit's a ubuntu-image problem12:43
pedronisas far as I understand12:43
pedroniscontent: is definitely a problem of ubuntu-image12:44
pedroniswe don't even read the gadget.yaml afaict12:44
pedronisanyway, mvo may be a better person to discuss this with12:44
ogra_k12:44
zygaanyone interested in reading a bit of prose about an algorithm I'm writing12:48
zygato spot any logic holes?12:48
Chipacazyga: o/12:49
mvopstolowski: thanks, I will look at the prereq unit test, mborzecki did some analyisis as well12:50
mvoogra_: I have a look at the forum post in a little bit12:50
zygaChipaca https://pastebin.ubuntu.com/p/Jnw6KSHsrj/12:53
ogra_mvo, thx12:54
zygaChipaca this will be in a PR sometime after standup, I'm still working on the logic below the comment12:54
zygas/ant/and/12:54
zyga(in the text)12:54
ogra_btw .. for everyones friday entertainment ... https://github.com/npm/npm/issues/1988312:54
mborzeckiogra_: sudo thing?12:55
ogra_mborzecki, well, npm thing :)12:55
ogra_(randomly changing permissions if it can ... if sudo is used it changes them to the uid of the calling user, not to root ... if you do it as root user everything becomes 777 root:root )12:56
pstolowskiwow12:58
pstolowskihavoc12:59
Chipacazyga: is the second column in mountinfo the minor?13:00
zygano13:00
zygaparent mount id13:00
Chipacazyga: ah, mount id, parent, major:minor?13:00
zygacorrect13:00
Chipacazyga: I followed that explanation13:01
zygaChipaca standup :)13:01
Chipacazyga: as an intro it's nice13:01
Chipacazyga: missing chapter 2, the attack, and chapter 3, the narrow escape13:01
niemeyerSorry, running late for the standup13:02
niemeyerWill be there in ~2min13:02
zygaChipaca and I should name characters better13:02
Son_Gokuzyga, did you get a chance to fix the new error from gcc8?13:05
zygaSon_Goku no, sorry, I will task switch to that as soon as the standup is over13:09
zygaI'm sorry about that, I'll ensure it builds on f2713:09
jdstrandmvo: yes, they would. let me look13:19
zyga_jdstrand hey :)13:19
zyga_jdstrand I will have some things to discuss with you today13:19
zyga_one more important than other, let me know when it would be a good time for you13:19
jdstrandzyga_: hey, saw your pings13:19
jdstrandgimme a little bit (just came online)13:20
zyga_sure, no rush :)13:20
mupPR snapd#4729 closed: many: drop snaps' InstallDate, introduce Updated <Created by chipaca> <Closed by chipaca> <https://github.com/snapcore/snapd/pull/4729>13:21
jdstrandmvo: can you request a manual review of the snap?13:24
* kalikiana lunch time, omnomnom13:25
mupPR snapcraft#1950 closed: elf: better debug messages <bug> <Created by sergiusens> <Merged by sergiusens> <https://github.com/snapcore/snapcraft/pull/1950>13:27
ogra_wow13:33
ogra_so my hexchat just stopped working out of the blue ...13:34
ogra_... window greying out being completely unresponsive13:34
ogra_(this is the snap )13:34
jdstrandzyga_: MS_NOFOLLOW - tell me about it13:34
ogra_checking syslog is see:13:34
ogra_Feb 23 14:32:46 acheron kernel: [88729.701886] audit: type=1326 audit(1519392766.679:127): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=8453 comm="hexchat" exe="/snap/hexchat/17/bin/hexchat" sig=31 arch=c000003e syscall=93 compat=0 ip=0x7f11a51c0337 code=0x013:34
jdstrandzyga_: ok, I read backscroll and the paste13:35
zyga_jdstrand haha, it's just my wish for a simpler life13:35
ogra_jdstrand, how can that happen ^^^... i'm using that snap since over a month without probs13:35
zyga_jdstrand so, my main request to you is to look at the pastebin you have to see if the text makes sense13:35
zyga_jdstrand my 2nd request is to look at this denial13:35
zyga_[13:08:31]  <sparkiegeek>[341123.064261] audit: type=1400 audit(1519387698.054:1895): apparmor="DENIED" operation="mount" info="failed flags match" error=-13 profile="lxd-snapstore-clean-test_</var/lib/lxd>" name="/tmp/snap.rootfs_XZQtTO/var/lib/snapd/lib/vulkan/" pid=11221 comm="snap-confine" flags="ro, remount"13:35
jdstrandogra_: it took a code path that you never hit before. maybe it rotated a log or something?13:35
zyga_this is inside a container on 17.10 (the container is 16.04)13:35
jdstrandogra_: chown strikes again13:36
zyga_we can discuss that separately13:36
jdstrandogra_: snapcraft-preload may help. but tyhicks and mvo are discussing the eperm PR trying to come up with how to land it13:36
zyga_jdstrand or and just 3rd thing that came up a second ago: https://forum.snapcraft.io/t/screen-inhibit-control-denial-interface-broken/4173/5?u=zyga13:36
* zyga_ gets back to the standup13:37
jdstrandzyga_: I read the pastebin. I think it is pretty ingenious tbh. I want to think about it a little13:37
zyga_that last thing is a one character patch for the interface rules13:37
* zyga_ blushes 13:37
jdstrandI thought I fixed that interface with a one char patch! dang it13:37
zyga_jdstrand not in master :)13:37
jdstrandzyga_: I didn't fix that one. I'm happy to send that up as penance if you haven't already13:38
zyga_no, I haven't yet :)13:38
zyga_I'm bad at keeping multiple git trees and I don't like to stash mid-patch like that13:39
ogra_(i actually had to install the deb to chat here now ... the snap worked fine for the time i use it and there are no other denials like this before it started to hang hard)13:39
ogra_(syscall 93 is fchown ... it doesnt call that usually)13:39
ogra_(neither core nor the snap were updated either)13:39
ogra_jdstrand, well, i'm only a user of that snap ... but it is a really bad experience if your app all of a sudden turns unresponsive (in the middle of typing) without and error or anything ... and also doesnt start anymore13:40
ogra_(i know that snapcraft-preload helps .. but how would my mom know that if her app suddenly stops working )13:41
ogra_we might need to make snapcraft-preload mandatory ..13:41
ogra_(i.e. a builtin thing that everyone uses)13:41
jdstrandzyga_: sparkiegeek should file a snap bug, with exact steps to reproduce, including kernel version, lxd version, distro, core snap version, command, etc13:43
zyga_jdstrand ack, I will reproduce this and explore13:45
zyga_jdstrand I don't understand why that profile name shows up running snap-confine there13:45
zyga_I was expecting snap-confine's profile13:45
jdstrandogra_: your mom isn't expected to fix that. the developer of the snap is expected to make sure the snap is usable. forcing existing applications that weren't designed to run in a sandbox is always going to be tricky, and applications are complex13:45
ogra_i totally understand that ... but even a developer wouldnt know ...13:46
jdstrandogra_: so your snap unfortunately hit a code path it never did before. you could grep the source looking for chown, but it might be in a lib13:46
ogra_and an enduser would probably not even report it to upstream or the dev13:46
jdstrandI would report it. "my snap all of a sudden stopped working". just like you did :)13:46
jdstrandI mentioned the PR for a reason though13:47
jdstrandthe snap, today, isn't in a position to handle the kill signal13:47
ogra_right ... if i run it from a terminal i cant even ctrl-c it13:47
ogra_(killing the pid from another terminal works)13:48
jdstrandbut the pr I mentioned turns the kill into an eperm which means that if the snap didn't check the error code (many don't with chown(myuid, mygroup)) then it continues to work13:48
jdstrandif it does check the error code, it can bubble that up to the user13:48
ogra_thats good13:48
jdstrandthat pr got hung up, but I started poking people about it and they're thinking about ways to unwedge it13:49
jdstrandthe real fix will be the user/group stuff13:49
jdstrandbecause part of that work will be allowing the use of chowning to yourself unconditionally13:50
ogra_right ...13:50
jdstrand(since, why not?)13:50
ogra_i just wouldnt want to see random desktop snaps to just stop working like that13:50
jdstrandbut that is dependent on a tricky issue that is fixable in libseccomp13:50
jdstrandof course13:50
ogra_if there is a fix in the works that is acting globally thats fine i guess13:50
jdstrandchown aside, unless you have full coverage in your blackbox testing, you'll never *really* know if the application-not-designed-for-confinement doesn't have a lurking bug in a rarely used code path13:52
ogra_indeed13:52
Chipacaniemeyer: mborzecki 1.9 added monotonic clocks13:53
Chipacafwiw13:53
mupPR snapd#4731 opened: overlord/snapstate: fix task iteration order in TestDoPrereqRetryWhenBaseInFlight <Created by bboozzoo> <https://github.com/snapcore/snapd/pull/4731>13:54
mborzeckimvo: ^^13:54
mupPR snapd#4140 closed: interfaces: add an interface for gnome-online-accounts D-Bus service <Created by jhenstridge> <Merged by mvo5> <https://github.com/snapcore/snapd/pull/4140>13:55
ogra_ogra@acheron:~/Devel/branches/hexchat$ grep -r chown *13:55
ogra_ogra@acheron:~/Devel/branches/hexchat$13:55
ogra_*sniff* ...13:55
ogra_no obvious chown call in the source13:56
jdstrandprobably in an underlying lib13:57
jdstranddoes it use sqlite?13:57
ogra_not by what i can see from the deb dependencies13:58
ogra_Depends: hexchat-common (= 2.10.2-1ubuntu3), libc6 (>= 2.14), libcanberra0 (>= 0.2), libdbus-glib-1-2 (>= 0.88), libgdk-pixbuf2.0-0 (>= 2.25.2), libglib2.0-0 (>= 2.41.1), libgtk2.0-0 (>= 2.24.0), libnotify4 (>= 0.7.0), libpango-1.0-0 (>= 1.29.4), libproxy1v5 (>= 0.4.11), libssl1.0.0 (>= 1.0.0)13:58
Chipacaof those, i'd start looking at libproxy13:58
ogra_funnily if i wipe all user data it works13:59
ogra_so it must try to move something around in the cache, logs or whatnot i guess13:59
niemeyerChipaca: But was the bug really only fixed in 1.9?14:00
Chipacaniemeyer: it's not a bug14:00
niemeyerI had secret hopes that the bug would have been fixed earlier14:00
Chipaca:-)14:00
Chipacathe kernel has two clocks, before 1.9 go only used the one that goes to sleep with the machine14:01
Chipacaafter it, every time.Time is _two_ times14:01
niemeyerChipaca: It is a bug from the perspective of the Go API specifically, in the sense of breaking the most obvious expectation14:01
mvoniemeyer, pedronis desktop team meeting?14:01
Chipacaniemeyer: yes, obviously14:01
Chipacaniemeyer: I was more making fun at googlers never putting their servers to sleep14:02
pedronismvo: there's no HO specified afaict14:02
niemeyermvo: Where is it?14:02
mvopedronis: I /msged it14:03
mupPR snapd#4732 opened: [2.31] timeutil: account for 24h wrap when flattening clock spans <Created by bboozzoo> <https://github.com/snapcore/snapd/pull/4732>14:12
jdstrandmvo: fyi, I updted the review-tools for accounts-service. please request a manual review for the snap (I still don't see it). it won't be in prod til next week14:20
mborzeckiChipaca: is the snapd.refrehs.timer enabled by default on ubuntu?14:20
jdstrandah, roadmr must've sensed I was looking for him14:20
jdstrandroadmr: good morning! :)14:20
roadmrhi jdstrand  :)14:21
zyga_jdstrand I'm going ahead with implementation and tests, if you find a loophole in the idea please let me know14:21
roadmrhow can I help?14:21
jdstrandroadmr: can you make that r1005 instead?14:21
roadmrjdstrand: totally!14:21
jdstrandroadmr: just a small rename of an interface14:21
Chipacamborzecki: it is, or it has been at some point14:21
jdstrandzyga_: getting back to it now14:21
roadmrjdstrand: sure thing!14:21
cjwatson~/wg 4014:22
cjwatsongah, sorry14:22
* jdstrand wonders why *every* morning has a gagillion little things14:22
zyga_not every morning, just weekdays :-)14:22
=== zyga_ is now known as zyga
jdstrandzyga: well, they are there on the weekends too. monday is a 1/2 to 3/4 of a day of little things. some not so little ;)14:23
roadmrjdstrand: I bet because people in Europe spend *their* morning devising ways to make yours more interesting ;)14:23
jdstrandhaha14:23
jdstrandroadmr: sometimes I really do wonder about that :)14:23
zygahaha, that's actually regularly true :)14:23
* zyga loves the moment when jdstrand joins14:23
jdstrandzyga: let me summarize the paste so I have it all straight14:24
jdstrandzyga: before doing anything, you snag mountinfo. you reconstruct it in the way described. we know that we can depend on st_dev because the kernel keeps track of that sensibly14:27
jdstrandzyga: so we can map the st_dev to the mount from before. we do the operation, and check that we have a (st_dev)/thing14:28
jdstrandif we do, then we're good, if we don't, it 'mismounted'14:28
jdstrand(or failed, but we would've already died if we failed)14:29
zygamore or less yes14:29
jdstrandyes, I was summarizing14:29
zygathe reconstruction happens on the "after" []mountinfo14:29
jdstrandso, all of this is happening on tmpfs, which is the problem14:29
zygawe use before and after together to see what is new14:29
zygaand only consider those entries as possible solutions14:29
jdstrandand XDG_RUNTIME_DIR is tmpfs14:30
jdstrandso /run/user/uid needs to be mapped to the st_dev14:30
zygayeah, that's fine14:30
jdstrandzyga: doesn't this lift the requirement that it must not be a mount point?14:30
zygayes, it does14:31
zygaI dropped that14:31
jdstrandright14:31
zygaoh14:31
zygait's not in the paste :D14:31
zygahttps://pastebin.ubuntu.com/p/bPZv9mPnxk/14:31
zygathose are the new rules14:31
zyga3 is the "no race" thing14:31
zygaand that's all14:31
jdstrandzyga: ok14:32
zygaI dropped the writability and mount entry constraints14:32
zygaas the race detector should be a superset of that anyway (for malicious intents)14:32
zygajdstrand I'll break for lunch now but if you think about anything that I missed just drop me a note please14:33
Chipacapedronis: have you an opinion on where 'InstallDate' should live, if I were to add it to something info-ish?14:33
Chipacaotherwise I'll keep this PR super-minimal14:34
jdstrandzyga: so, you are using the diff between before and after to narrow down what you need to look at, correct?14:34
jdstrandzyga: so for something like /some/arbitrary/mount/point, you'll see /some/arbitrary/mount/point show up, so then you look for /some/arbitrary/mount, /some/arbitrary, /some and / to calculate the st_dev to look for? (in that order)14:35
* Chipaca goes with minimal14:37
pedronisChipaca: I'm in a meeting14:40
Chipacapedronis: no worries14:40
Chipacai can do followups14:40
kalikianare14:43
mvojdstrand: ta, I can accept those too14:51
mvojdstrand: thanks for adding it14:51
mvojdstrand: I will later push s390x, armhf etc binaries for testing14:51
jdstrandmvo: if you request the manual review, you can't accept it yourself14:51
jdstrandmvo: or if you do the upload14:51
jdstrandso, if you need me, ping me14:52
mvota14:52
zygajdstrand the before after view is indeed to look at the diff and constraint the set of allowed solutions to the diff14:53
brunosferDoes anyone knows where to find good documentation regarding the upload of snaps to the store?14:53
jdstrandzyga: and you go bottom up looking for the parent st_dev?14:54
zygajdstrand as for the second question, if I understand you correctly that is indeed how we find what is /some/arbitrary/mount/point14:54
zygayes14:54
jdstrandright14:54
zygawhen thinking about this I also considered something else:14:54
zygausing mount id, parent id to construct a tree of mounts14:54
zygabut I don't know if that is needed for any of the results yet (maybe it is but we haven't seen a case that shows this)14:55
pedronisChipaca: I think it should go at the level of Broken14:56
jdstrandok. please proceed. this is a nice idea considering the limitation of the mount api14:56
jdstrandzyga: I don't think that is necessary otoh14:57
zygathanks! :-)14:57
jdstrandzyga: I'm probably going to ask Tyler to do a final review after you and I are happy14:57
zygathanks14:57
zygaI also wondered if anyone else solved this14:57
zygait seems like a common problem for software14:58
roadmrsoftware sucks?14:58
zygaroadmr without doubt :)14:58
zygaif it was a hardware problem we could recycle it14:59
zygain software we have to support it :)14:59
roadmrhah well my mom has this ancient PC from the 1990s and I have to support it :(15:01
roadmrprobably the last PC on the planet with a 5.25" floppy drive15:01
ikeys/5.25"//15:04
zygaI have a USB floppy drive15:05
ikeythat seems wrong15:05
ikeylol15:05
zygaI could plug it to my thunderbolt port via an adapter15:05
zyga:D15:05
zygathunderfloppy15:05
ikeyhispeed ™15:05
zygafeeling the 40GB/s bandwidth right15:05
zygaof that *high-density* floppy15:05
ogra_you typoed a G there ..15:05
ikeyxD15:06
zygaI think that's hippiespeed :)15:06
ikeyah they were simpler times15:06
ikeywhen tapes and floppies challenged us with write protect tabs and we lol'd15:06
zygaand we had non-rootkit copy protection :)15:06
ikeyah see we approached that idea differently there :P15:06
zygaand computer magazines (and no interneet)15:06
ikeyi thought i was a yuppie the first time i ever burnt a CD15:07
ikeytbf i had to "save up" all the things i wanted downloaded before i used the CD to transfer them15:07
ikeycuz CD-Rs were expensive >_>15:07
ikeyim not proud to admit the JDK was on that.15:07
zygaI paid a colleague who carried the money to a guy across town, who had a recorder15:07
ikeylike the instrument or an actual recorder?15:08
ikeycuz one makes more sense15:08
zygaI mean a CD recorder :)15:08
ikeyxD15:08
ikeysorry having a friday yolo mood here. :p15:08
zygathat's all right15:08
zygaI deal with mount tables15:08
zygaI have that mood all the time15:08
ikeyyeah saw the tweet15:08
zyga:D15:08
ikeymy heart goes out to you15:08
zygabut hey15:08
zygaI'm proud I wrote something nice for a change15:09
zygahttps://pastebin.ubuntu.com/p/Jnw6KSHsrj/15:09
ikey"pls mount read-only" "yes i will" "why is it writable" "remount as RO pls"15:09
zygaor why kernel should have gotten that flags argument on mount to support MS_NOFOLLOW but.. yeah15:09
ikeymm15:09
ikeybroken heap of ouch15:09
ikeythat.. is quite the doc15:09
zygayeah, would be easier to add MS_NOFOLLOW15:10
ikeyanyone else ever read that MS as.. yknow.. that MS?15:11
roadmrmultiple sclerosis? :(15:12
Pharaoh_AtemI know it as Mississippi mostly :P15:13
ikeynah15:13
ikey(my cousin has that so i wouldnt personally make that connection in that sense)15:13
ikeynah i meant Microsoft15:13
roadmrI see :) yes, sometimes15:14
=== ikey is now known as ikey|afk
zygajdstrand drat15:35
zygajdstrand we need the parent-child association15:35
zygaman, I will write a paper about this15:36
jdstrandzyga: what is the test case that blew up?15:36
zyga(irc doesn't like leading slashes)15:36
zyga /foo/bar15:36
mupPR snapcraft#1951 opened: repo: do not pull in libc6-dev by default for stage-packages <bug> <Created by sergiusens> <https://github.com/snapcore/snapcraft/pull/1951>15:37
zyga /foo15:37
zyga(those are mountinfo entries)15:37
zyganow we look for /foo/bar/froz15:37
zygawe need to model /foo/bar being shadowed by /foo15:37
mvopedronis: do you think you could have a look at 4731? the last piece for 2.32 afaict15:37
zygaand I think we need to model child-parent to understand what path traversal means15:37
jdstrandisn't it sufficient to know that /foo/bar and /foo/bar/baz are the same st_dev? /foo will have a different st_dev, no?15:38
zygaunless I can do some simpler check that /foo is shorter than /foo/bar and it is later in the table so it hides /foo/bar (which can be ignored now)15:38
zygathey could all have same st_dev sadly15:38
zyga /foo/bar can be a mount entry for /foo/unrelated15:39
Chipacapedronis: hmm. Right now what I've done is given Info a CurrentTimestamp(), which seems to avoid the issue of having it in info when it's only there for local15:39
zyga and /foo can be a bind mount of the original device15:39
zygaso you effectively unmount /foo/bar15:39
jdstrandoh, cause /foo might be tmpfs (new st_dev), but /foo/bar might be a bind mount (same st_dev)?15:39
zygathis is a contrived example that preserves same st_dev15:39
zyga yes15:39
jdstrandright15:39
zygaisn't this stuff fun :)15:39
zyga:-)15:39
jdstrandI was just thinking15:39
jdstrand"fun!"15:40
pedronisChipaca: that works too15:40
jdstrandzyga: I think that the before/after diff is really key here since this is happening within the ns and an unpriv user isn't going to be able to fiddle with the mount table for this (non-user mount) namespace15:42
jdstrandzyga: so you're able to trust that before and after are ok15:43
jdstrandwe may want to consider fusermount (eg, user races with fusermount instead of just a symlink), but that might just be verifying that after doesn't have any fuse* mounts15:46
jdstrandthat said...15:46
jdstrandzyga: before and after should only have a diff of '1' if you call before just before the mount, right? (ie, we're in the ns)15:47
zygayes, that's correct15:47
zygawell15:47
zygahmmm15:47
zygano?15:47
zygathere are two cases that would change that:15:48
zyga1) /media mounts can happen asynchronously15:48
zyga2) interface connections can be inherited from the parent ns15:48
zygaand by 2) I mean we are in a MS_SLAVE ns but we will see mount events propagating into us15:48
jdstrandso an interface connection happens at the time of the mount?15:48
zygayes15:49
jdstrandright15:49
zygarealistically I think the /media case is more likely to happen15:49
pedronisChipaca: we don't seem to use Timestamp much outside of assertions, typically we have Time ort nothing15:49
jdstrandsure15:49
jdstrandbut either are possible15:49
zygadiff will *usually* be 1 but it may be legitimately longer15:49
pedronisChipaca: I mean in method/field names15:49
* Chipaca nods15:50
zygajdstrand I'll think about how to model shadowing best15:50
zygashadowing beast :)15:50
jdstrandzyga: with the parent child tree, then that should detect any weird fusermount stuff too15:50
pedronisChipaca: LinkTime ? too obscure15:51
jdstrandzyga: cause we are looking for a specific child with a specific parent, so if it isn't found, die15:51
pedronisChipaca: sadly Current and CurrentTime have both the wrong connotation15:51
* jdstrand notes this underscores the complexities of root messing around in user owned dirs15:52
zygayeah15:52
jdstrandit's just like a thousand times more difficult with the crappy mount api15:52
zygaI don't understand how the mount maintainer cannot see that perfect is the enemy of good here, waiting for some mythical mount design we have to pay the price of MS_NOFOLLOW not being a thing15:53
zygaPharaoh_Atem fedora 27 looks good in 5K :)15:54
ogra_5k ? is that dual monitor ? 4K + VGA ?15:56
zyga5K screen15:57
ogra_i didnt know thats a thing15:57
zygayeah :)15:57
ogra_(only know 4K)15:57
zygaoops15:59
zygaimgur crashes on 5K images ?:D15:59
zygahttps://twitter.com/zygoon/status/96706665478505677416:00
zyganot sure if there's a "get original" thing in twitter16:01
naccwhen a part has a relatively unstable (it seems in practice) http server/git server, does it make sense to ship the tarball in the snap directory  directly?16:06
naccand is there a 'best practice' doc for doing so (cough anonscm cough)16:06
mvoanyone up for review for 4731?16:16
mupPR snapd#4733 opened: interfaces/screen-inhibit-control,network-status: fix dbus path and interface typos <Created by jdstrand> <https://github.com/snapcore/snapd/pull/4733>16:18
zygayep16:19
jdstrandmvo: is there going to be another 2.31? (thinking of ^)16:19
mvojdstrand: maybe, there are some indication for it16:20
mvojdstrand: but not urgent16:20
jdstrandmvo: what we have in 2.31 isn't a regression, just an incomplete fix (therefore also not urgent imo)16:20
jdstrandmvo: ok, I'll create a branch and milestone it, then you can do with it what you will16:21
jdstrandmvo: incidentally, does this ring any bells:16:21
mvojdstrand: ta16:21
jdstrand$ ./run-checks16:21
jdstrand...16:21
jdstrandRunning vet16:21
jdstrandoverlord/ifacestate/handlers.go:580: github.com/snapcore/snapd/overlord/state.Retry composite literal uses unkeyed fields16:21
jdstrandexit status 116:21
mvo(in a meeting right now so might be slow)16:21
jdstrandmvo: no worries. this is my 16.04 dev environment in lxd if you recall16:22
mvojdstrand: does not ring a bell right now16:22
mupIssue snapcraft#1952 opened: add support for in test release information <Created by sergiusens> <https://github.com/snapcore/snapcraft/issue/1952>16:25
mupIssue snapcraft#1953 opened: Add in test architecture <Created by sergiusens> <https://github.com/snapcore/snapcraft/issue/1953>16:25
mupPR snapd#4734 opened: interfaces/screen-inhibit-control,network-status: fix dbus path and interface typos - 2.31 <Created by jdstrand> <https://github.com/snapcore/snapd/pull/4734>16:25
zygahmm hmm hmm16:26
zygahttps://pastebin.ubuntu.com/p/VwtktKq7cc/16:26
jdstrandmvo: fyi, 4734 for 2.3116:26
zygajdstrand both +1'd16:26
jdstrandyep, thanks!16:26
zygaI pasted something that shows the problem we talked about earlier16:27
zygaand found something unexpected16:27
mupIssue snapcraft#1704 closed: Add unit tests for error classes <Created by sergiusens> <Closed by sergiusens> <https://github.com/snapcore/snapcraft/issue/1704>16:28
mupIssue snapcraft#1954 opened: Implement support for `common-id` <Created by sergiusens> <https://github.com/snapcore/snapcraft/issue/1954>16:28
mvojdstrand: \o/16:28
mupPR snapd#4731 closed: overlord/snapstate: fix task iteration order in TestDoPrereqRetryWhenBaseInFlight <Created by bboozzoo> <Merged by zyga> <https://github.com/snapcore/snapd/pull/4731>16:28
zygaheh16:31
zygaso the kernel does allow a mount event to propagate back to ... itself16:32
zygakind of16:32
zygaI just realized this by reading parent ids16:32
zygajdstrand in the paste above mount 405 (/tmp2) is mounted on top of 390 which is /tmp216:34
Chipacapedronis: vvv16:34
mupPR snapd#4735 opened: daemon, snap: fix InstallDate, make a method of *snap.Info <Created by chipaca> <https://github.com/snapcore/snapd/pull/4735>16:34
pedronisin another meeting16:35
* Chipaca hugs pedronis 16:36
jdstrandzyga: yeah16:45
jdstrandzyga: so, an unpriv user isn't going to sneak a bind mount in there. what does a fuse mount look like in that situation?16:46
zygahmm, what can I mount16:47
zygaany fuse mount?16:47
jdstrandsure16:47
zygaholly crap16:48
zygathere's bindfs16:48
zygawhich is like mount --bind16:48
jdstrandthey look like this:16:48
zygaand it's FUSE16:48
jdstrand$ grep fuse /proc/self/mountinfo16:48
jdstrand53 22 0:45 / /sys/fs/fuse/connections rw,relatime shared:31 - fusectl fusectl rw16:48
jdstrand3500 1411 0:97 / /run/user/1000/gvfs rw,nosuid,nodev,relatime shared:428 - fuse.gvfsd-fuse gvfsd-fuse rw,user_id=1000,group_id=100016:48
jdstrandzyga: yeah, we talked about that once before16:48
jdstrandfor remapping uids16:48
jdstrand(but discarded it)16:49
zygajdstrand fuse looks mostly like a normal filesystem16:50
jdstrandzyga: my line of thinking was that *perhaps* we don't have to worry about a bind mount getting snuck in, but if a fuse one did, die16:50
jdstrandzyga: fstype is going to have 'fuse' in the name though16:51
zygawell, it doesn't have to, does it?16:54
jdstrandzyga: yes, it does16:55
jdstrandzyga: fuse.sshfs, fuse.gfvsd-fuse, etc16:55
zygais that done by the kernel or just a convention by each fuse process?16:56
jdstrandzyga: this is why in the fuse-support interface we use: mount fstype=fuse.* ...16:56
zygaI see16:56
zygacool, I didn't know that16:56
zygaso, back to your idea16:56
zygawhy are fuse mounts more dangerous than bind moutns?16:57
zygabecause we don't know what they can bring?16:57
jdstrandzyga: in and of themselves, they aren't16:57
jdstrandzyga: what is different is that a normal user needs privs to do a bind mount. fusermount is setuid, so a normal user can use it16:57
zygaah, I see16:58
zygaanother snap-confine situation16:58
zygaok, I'll look at the algorithm for what we talked about so far16:58
jdstrandzyga: all this is about is a non-root unconfined user playing tricks to escalate16:59
jdstrandzyga: we aren't worried about unconfined root16:59
ogra_just bundle fuse with npm (that apparently just does a chmod -R 777 /* ... all security issues fixed)16:59
zygaI'd patch npm to use 2777, the colors in ls are nicer, presentation matters!17:00
Chipacaogra_: there's a lesson in there about running npm as root, but it's not a new lesson and I doubt many people care17:00
ogra_yeah, just send a patch for https://github.com/npm/npm/issues/1988317:00
ogra_Chwell, there might be a lesson for people reading the bug ... people reading that howto they found on this internet thing will just follow it and use sudo npm17:01
jdstrandzyga: for completeness, there are also user mount namespaces, but they shouldn't be in play because snap-update-ns is already in a system mount namespace, and the user won't be able to affect it17:01
ogra_bah17:01
ogra_Chipaca, ^^^17:01
=== Chipaca is now known as Chwell
Chwellthere, fixed it17:02
ogra_lol17:02
zygauser mount namespaces17:02
zygaor user namespaces17:02
jdstrandoh that is an awesome bug17:03
zyga:D17:03
* kalikiana wrapping up for the week17:03
jdstrandtoo bad npm as a snap is classic17:03
ogra_jdstrand, i knew you would love it17:03
zygaand here I was thinking the kernel was coming to address our issues :)17:03
jdstrands/npm/node/17:03
=== Chwell is now known as Chipaca
Chipacazyga: cp `which false` `which npm`17:05
jdstrandzyga: the mount user namespace? :)17:06
zygajdstrand the cake namespace17:07
jdstrandper-user mounts in the snaps system mount namespace aren't affected by mount user namespaces17:07
zygajdstrand so the thing you stated for completeness, what did you mean there17:07
jdstrandhow is that for a parseable sentence?17:07
zygathat user namespaces are not a risk?17:07
zygait's okay but I have a question17:07
zygawhat are mount user namespaces?17:07
jdstrandzyga: I'm saying that user namespaces shouldn't be in play, because be the time we do before, mount, after, s-u-n is in the system mount namespace of the snap, so the user shouldn't be able to fiddle with it17:08
jdstrandand we already unshared17:08
zygaahh, ok17:08
zyga:)17:08
zygaman, the adjective order in english17:09
jdstrandright17:09
zygawith a few cases like in polish it would be easier to parse :)17:09
jdstrandit is all messy17:09
jdstrandmount namespace (system, need privs), mount user namespace (don't need privs), and snap namespace (system)17:10
jdstranduser namespaces are what lxd uses these days by default17:10
zygawe should call those rooms, not namespaces17:12
zygait's such a geeky thing17:12
zygamy root user in this room is not the same as the root user in that room17:12
zygaand there's a root user in the room that contains the other two rooms17:12
zygait almost sounds sensible!17:12
Chipacazyga: I think somebody took “Namespaces are one honking great idea -- let's do more of those!” a bit too much to heart17:13
zygaand you can say "go to your room" if your kids are naughty and don't want to do homework17:14
Chipacazyga: and you can shuffle the whole bunch of groups around every time somebody tries to change rooms17:18
* Chipaca wonders if 'the cube' is too old17:19
zygaChipaca ooh17:20
zygayes17:20
zygathe cube is the perfect analogy17:20
niemeyerSaviq: ping17:25
Saviqniemeyer: as you were, looks like they had some kind of hiccup17:37
mvojust fyi - I branched 2.32 and will hopefully do a beta later tonight17:47
niemeyerSaviq: Hm?18:00
niemeyerSaviq: Not sure if my IRC client is buggy.. but it looks like I'm missing part of the sentence18:00
niemeyerSaviq: I was going to talk about the image.. did you sort it out?18:01
Saviqniemeyer: thought you were pinging about my issue yesterday (missing 17.10 images)18:01
niemeyerSaviq: Yeah, it was about it indeed18:01
SaviqRight, yes, that - it was a hiccup on their side18:01
SaviqSo we're back in business, thanks18:02
niemeyerSaviq: I wouldnt' be surprised if they just removed the image18:02
niemeyerSaviq: and then people complained18:02
SaviqPossible, yeah18:02
niemeyerSaviq: Our experiences with dynamic usage in Linode show they're not quite there yet18:03
niemeyerSaviq: They still hold a lot of the old school way of thinking, where you create a machine and hold it18:03
SaviqI went to their IRC channel, someone said the image was still there in new API, but missing in old or something of the sort18:03
niemeyerSaviq: The other day I got a Terms Violation notice, for example, for a machine that we used for 23 minutes.. the timing of abuse report was off for several hours from our use18:04
niemeyerSaviq: We're also observing corruption of machine state when we do a lot of API calls next to each other18:04
SaviqAha... We've had some intermittent issues, but it's been fine overall18:04
niemeyerSaviq: For that sort of reason, I have a Google Compute Engine backend pretty much good to go18:05
niemeyerSaviq: Preliminar tests look very promising18:05
SaviqNice!18:05
niemeyerSaviq: Other than the image itself being perhaps slightly different, you shouldn't have to change anything on your end18:05
SaviqLet me know if you want us to test anything18:07
niemeyerThanks, will do18:07
Chipacaniemeyer: the forum is saying it's offline18:15
niemeyerWAT? I'm typing on it!18:15
* niemeyer looks18:16
mvoChipaca: hm, same here, it does not respond18:16
niemeyerThe machine looks completely down..18:17
niemeyer(speaking of Linode...)18:17
niemeyerhttps://usercontent.irccloud-cdn.com/file/44QXUsr8/image.png18:18
mvocachio_: hey, I was just looking at the SRU of snapd, lets plan to do the sru verification early next week18:21
cachio_mvo, hey, sure18:21
cachio_which version 2.31.1?18:22
mvocachio_: yes18:22
mvocachio_: I push 2.32~pre1 to beta hopefully tonight but no need to validate that before monday, its just there for people to play with18:25
cachio_mvo, sure18:26
cachio_mvo, let's validate it on monday in that case18:26
mvocachio_: yes18:26
mvocachio_: that is what I was trying to say :)18:26
cachio_:)18:27
cachio_mvo, 2.32 contains layouts, right?18:30
mvocachio_: yes and autoconnect tasks and auto install of default providers18:31
mvocachio_: some dangerous stuff :)18:31
cachio_rotundo8218:33
cachio_mvo, yes18:35
niemeyerWhat..18:35
niemeyererror: cannot read snap file: app description field 'command' contains illegal "bin/gopkg18:35
niemeyer       -acme=$SNAP_DATA/certs -http=:80 -https=:443" (legal: '^[A-Za-z0-9/. _#:$-]*$')18:35
niemeyerWhat happened there!?18:35
niemeyerChipaca: Do you know anything about this?18:36
niemeyerAh, I disabled the adapters..18:37
niemeyerLooks like we need to make this logic a bit more flexible18:37
Chipacaniemeyer: I don't know what happened there, that doesn't contain anything that doesn't match18:38
niemeyerChipaca: Yeah, we probably have something to fix..18:38
=== ubott2 is now known as ubottu
happyaronhey the forum seems to be down...18:40
Chipacaniemeyer: do you have the snap handy?18:40
happyaronand my edit get lost...18:40
=== JamieBennett_ is now known as JamieBennett
=== Dmitrii-Sh_ is now known as Dmitrii-Sh
=== luk3yx- is now known as luk3yx
=== Abhishek__ is now known as Abhishek_
=== andyrock_ is now known as andyrock
=== coreycb_ is now known as coreycb
Chipacahappyaron: I think that's what niemeyer is on18:49
niemeyerPhew.. ok.. gopkg.in is up on the secondary18:49
mupIssue snapcraft#1819 closed: Detect and clear executable stack binaries <bug> <Created by sergiusens> <Closed by sergiusens> <https://github.com/snapcore/snapcraft/issue/1819>18:50
mupPR snapcraft#1945 closed: elf: clear execstack by default <bug> <Created by sergiusens> <Merged by sergiusens> <https://github.com/snapcore/snapcraft/pull/1945>18:50
happyaronlong fight, :(18:51
pedronis`mvo: will you branch 2.32 tonight ?18:53
sergiusensniemeyer: I thought `S` was now allowed, we discussed it with jdstrand and mvo and agreed it was good18:54
sergiusensthere must be a forum post somewhere but I cannot search it now18:54
Chipacapedronis`: <mvo> just fyi - I branched 2.32 and will hopefully do a beta later tonight18:55
Pharaoh_Atemzyga: \o/18:55
pedronis`Chipaca: ah, cool18:55
pedronis`can land some of my stuff18:55
Chipacapedronis`: :-)18:55
=== pedronis` is now known as pedronis
Chipacaniemeyer: when you have a moment, the snap.yaml that threw that error would help18:59
mvopedronis: yes, I branched it now18:59
mvos/now/some minutes ago/19:00
mupPR snapd#4715 closed: store: reorg auth refresh <Created by pedronis> <Merged by pedronis> <https://github.com/snapcore/snapd/pull/4715>19:01
pedronismvo: thank you19:01
mvoyay, thank you for all the nice PRs that can land now19:02
mupPR snapd#4722 closed: store: cleanup test naming, dropping remoteRepo  and UbuntuStore(Repository)? references <Created by pedronis> <Merged by pedronis> <https://github.com/snapcore/snapd/pull/4722>19:08
niemeyerChipaca: Thanks, will reproduce once I take my head above the water19:09
Chipacaniemeyer: no probs19:10
niemeyerChipaca: https://gist.github.com/niemeyer/8270aeb96b6facd8ee1bc2129086e4b319:32
niemeyerForum is back up19:37
niemeyerOr, stating more correctly, the entire data center has connectivity again19:37
niemeyerChipaca: Also: https://forum.snapcraft.io/t/better-field-name-for-refreshed-in-snap-info-output/4150/619:42
Chipacaniemeyer: hah19:45
Chipacaniemeyer: I had that change in the PR that I closed during the standup :-)19:45
Chipacaglad we're aligned19:45
niemeyerChipaca: Which of the three? :P19:48
Chipacaniemeyer: https://github.com/snapcore/snapd/pull/4729/files#diff-6ac026a08342873c6b9ada7333f66224R37819:48
mupPR #4729: many: drop snaps' InstallDate, introduce Updated <Created by chipaca> <Closed by chipaca> <https://github.com/snapcore/snapd/pull/4729>19:48
Chipacaniemeyer: moving installed to the bottom19:48
niemeyer\o/19:48
pedronisChipaca: so refreshed is not defined if the snap is inactive?19:48
Chipacapedronis: correct19:49
pedronisit's ok in info, it's a bit strange in the snap api19:49
pedronisheh19:49
pedronisI mean daemon api19:49
Chipacapedronis: if you have a good definition of this for when the snap is inactive, I can implement it, no problem :-)19:50
pedronisChipaca: mtime of the revision snap blob?19:50
pedroniswe have a Current even if we are inactive nowadays19:51
Chipacapedronis: that's hard to explain, though: enable the snap, its 'refreshed' changes19:53
pedronisChipaca: we are still mixing concepts I fear19:54
pedronisthe current link is a good approx of installe-date, only ignoring revert, enable/disable etc19:55
pedronissomething got to give19:55
niemeyerChipaca's take sounds reasonable to me as well.. what are we missing19:55
niemeyer?19:55
niemeyerI mean, if you have three different snap revisions and they are all disabled, it's hard to argue that a particular one of them should be shown there19:56
pedronisI'm not unhappy about the snap info display,   my issue is with the rest api field which is still called installed-date19:56
niemeyerThat said, do we show the version?19:56
niemeyerChipaca: ?19:56
niemeyerIn "installed" that is19:57
Chipacaniemeyer: yes19:57
niemeyerOkay, it seems a bit inconsistent19:57
pedronisniemeyer: we do show a version in installed even if the snap is disabled19:57
Chipacaniemeyer: but19:57
niemeyerThen I agree with pedronis19:57
Chipacabut maybe we shouldn't19:57
pedronisbecause we have a current concept (that is different from active)19:57
Chipacai mean, maybe we shouldn't show 'installed' if it's disabled19:57
pedroniswell, it's what you would get19:58
pedronisif you did snap enable19:58
niemeyerChipaca: pedronis has a point I think.. maybe that's just fighting against the real model we have, which in general means we'll have cascading issues19:58
niemeyerChipaca: e.g. it's also what we show in "snap list" isn't it?19:58
pedronisthe line is like this:   installed:   0.2.26 (8) 2MB disabled19:59
pedroniswe say disabled there19:59
pedronisbut there is also a version19:59
pedronis(what you get if you enable)19:59
Chipacaso.19:59
niemeyerYeah, so showing the refreshed time at all times sounds right19:59
jdstrandzyga: arg 4727 makes me have to redo a bunch of stuff19:59
niemeyerIt's consistent with everything else at least19:59
Chipacaniemeyer: but what is the refresh time of a disabled snap?19:59
pedroniswhat is a refresh time of a reverted snap20:00
niemeyerChipaca: It's the refresh time of the _current_ revision20:00
Chipacapedronis: the timestamp of current20:00
pedronisthat our current interpretation20:00
pedronisusually refreshed means from the store20:00
pedronisnot strobed client side20:00
pedronisthough we have corner cases20:01
pedronisyou can refresh to revisions you already have20:01
ackkhi, is it possible to specify version constraints on "stage-packages" ?20:01
Chipacaniemeyer: we don't have the 'refresh time' anywhere, though20:01
Chipacapedronis: yep, and in this context i don't think there's a non-weird answer for revert20:02
niemeyerChipaca: Agreed20:03
Chipacabah, the non-weird thing would be to keep (last action, timestamp) and show that20:03
niemeyerChipaca: So isn't it the timestamp of the link anyway?20:03
Chipacaso you get installed/enabled/disabled/reverted/refreshed: <timestamp>20:03
niemeyerChipaca: When we disable, do we kill the link?  I thought we had changed that20:03
Chipacaniemeyer: the link isn't there if the snap is disabled20:03
pedroniswe kill the link20:03
Chipacaniemeyer: we keep 'current' in the state20:03
niemeyerChipaca: Except installed is taken.. oops :)20:04
niemeyerChipaca: I almost wrote as part of that post that we should change the field name at the same time we fix its meaning20:04
niemeyerFor that reason20:04
Chipacaniemeyer: the revision descriptions are growing a timestamp, it all lines up20:04
Chipaca:)20:05
niemeyerChipaca: I'm sold ;)20:05
ChipacaOTOH we could go with 'current' for the current version description line20:05
Chipacas/version/revision/20:05
niemeyerChipaca: I like that..20:05
=== cory_fu_ is now known as cory_fu
Chipacaok, so, baby steps20:06
niemeyerChipaca: So, just to go back to that point I'm still missing: you say we currently use the link time20:06
Chipacaniemeyer: yes20:07
niemeyerChipaca: Isn't the link always there even when it's disabled?20:07
Chipacabah, in the PR that's up20:07
Chipacaniemeyer: no, the link is not there if it's disabled20:07
niemeyerAh, pedronis also answered that.. I missed it, okay20:07
Chipacalong week, and long day :-)20:07
niemeyerChipaca: So.. I think we can fix the output, and if we cannot find the proper data for all cases, we can approach it and have more data as we find the time to polish it up20:08
niemeyerChipaca: But, I suggest we do those fixes at once.. at least the key ones20:08
ChipacaI can rename it to 'current' as part of the move20:08
pedronisthat seems a big change20:08
pedronisbut I don't know if people parse it a lot (or not)20:09
Chipacait's ok, i'll change it one letter at a time20:09
pedronis:)20:09
Chipaca:-D20:09
niemeyerLOL20:09
Chipacapedronis: I hope they aren't, because I'm pretty sure there are more corner cases than not where it's not valid yaml20:09
niemeyerIt's not the kind of change we should be doing very often for sure20:09
mupPR snapd#4736 opened: interfaces/screen-inhibit-control,network-status: fix dbus path and interface typos - 2.32 <Created by jdstrand> <https://github.com/snapcore/snapd/pull/4736>20:09
niemeyerBut I think it's worth it doing it if we plan to have more times there, which I think we do20:10
pedronisChipaca: I didn't say they parse as yaml20:10
Chipacapedronis: (but the change is still going to disorient people that rely on it)20:10
pedronisthose people could use the api20:10
Chipacapedronis: ah20:10
pedronisI'm more thinking the grep and cut and awk sort of people20:10
Chipacapedronis: i gotcha20:10
niemeyerIt's just awkward to have refreshed next to installed with completely different meanings, and it's double awkward because installed could actually BE A TIMESTAMP20:10
jdstrandzyga: oh I thought you said it was committed20:12
Chipacapedronis: do you reckon a heads-up forum post would be enough?20:12
pedronisit's a start20:13
jdstrandzyga: if your pr is committed, I'll update mine, but I don't want to mix in an unapproved approach at this time20:14
=== chiluk_ is now known as chiluk
Chipacapedronis: niemeyer: and because this is for snap info, we can make an additive change to SnapState to keep track of (last action, timestamp), and have code that grabs it if it exists but doesn't die if it doesn't, and we'll be set20:16
Chipacathat's a change for next week though20:16
Chipacaalthough knowing us, it should probably be a map[action]timestamp20:18
pedronisheh20:18
pedronisand then you sort them, and take the last?20:18
Chipacapedronis: unless the last is $x that we later decided to ignore :-)20:19
pedronislast action timestamp,  download time, revision creation time, release timestamp20:20
pedronisChipaca: I also wonder whether we should start from thinking what I user might really find useful20:21
Chipacapedronis: I thought we were (in a bumbling, chatty kind of way)20:22
Chipacaniemeyer: btw in https://forum.snapcraft.io/t/4150/6 you had installed twice in the first example, and with me having moved it to the bottom I'd gotten used to seeing it there so it took me a bit to understand what you meant20:23
pedronisChipaca: one of my questions is that is unclear those times help answering, is the thing I have here old20:23
niemeyerChipaca: Oops, sorry.. cleaned it20:24
pedronisChipaca: refreshed is sort of that (except if you strange local refreshes)20:24
Chipacapedronis: that you can only answer with the store's timestamps though20:24
pedronisthe ones we don't plan to show anywhere :)20:25
Chipacapedronis: oh? i thought we were going to have a day in the chan map20:25
pedronisyes20:25
Chipaca16-2.31.1+git587.d3e52a0 (4133, from 2018-09-24) 85MB core20:25
Chipacaor sth20:25
pedronisthough we haven't decided what that date is here yet20:25
pedronisit can be the revision date, or the release date20:26
Chipacahopefully, gregorian20:26
pedronisor we need both (oh my)20:26
pedronisstar date20:27
Chipacainternet time!20:28
* pedronis should go afk20:28
niemeyerpopey: ping20:32
popeyniemeyer: pong20:33
niemeyerpopey: Heya20:33
niemeyerpopey: Would you have 5~10mins for a quick catch up?20:33
popeySadly not right this second. I need to go out and get my daughter from dance class.20:33
popeyBut I'll be back a little later20:34
niemeyerpopey: Sounds good, I'll be around, so will ping you again later20:34
niemeyerpopey: Talk soon20:35
popeykk, will let you know when I'm back20:35
niemeyerThanks!20:35
=== pbek_ is now known as pbek
=== bashfulrobot_ is now known as bashfulrobot
mupPR snapcraft#1955 opened: meta: make sure adapter does not propagate <bug> <Created by sergiusens> <https://github.com/snapcore/snapcraft/pull/1955>20:47
mupPR snapd#4737 opened: cmd/snap: tweaks to 'snap info' (feat. installed->current rename) <Created by chipaca> <https://github.com/snapcore/snapd/pull/4737>21:04
Chipacahuh, why did i think snap names had max length 4021:10
Chipacaniemeyer: I can't do the alignment you're now asking for in the pr, without a ton of work21:11
niemeyerChipaca: My naive mind reacts in disbelief about adding a couple of spaces in a line being a ton of work.21:12
Chipacaniemeyer: ok21:13
niemeyerThat's such a great conversation.. it must be Friday :P21:13
Chipacaniemeyer: i was just writing21:13
Chipacaniemeyer: it's friday and i'm very tired, so maybe it's easy and i'm not seeing it, but i'm going to call it mostly-eod right here21:14
niemeyerType faster!    <GIF of someone typing really fast>21:14
niemeyerChipaca: Certainly sounds fair21:14
Chipacaniemeyer: snap info is messy; if it were nice and clean this would be easy21:14
niemeyerChipaca: Agreed.. we can look into it again with fresh post-weekend eyes on Monday21:15
ChipacaI did see the problem with the alignment when the channel map is missing, fwiw, and looked at fixing it, and noped out21:15
niemeyerChipaca: We might hack it by tuning the spacing specially for that line, and serializing it independently21:16
niemeyerOr something something21:16
Chipacaniemeyer: yeah, that's the nope scenario (you'd have to keep track of what the last thing you printed even was)21:16
Chipaca(there are a ton of "if it has this, then print this")21:17
Chipaca(and people care about the order, wouldn't you know :-) )21:17
niemeyerChipaca: Not printed, but whether a channel map exists.. we have semantic context at hand in the info impl itself21:17
niemeyerChipaca: Yeah, I know.. I'm sure we could spent 5 years on a modern yaml parser and  do it very nicely21:17
Chipacaactually, i can show you a diff that would do the job, and you tell me if it's worth it21:19
Chipacaniemeyer: https://pastebin.ubuntu.com/p/4xRZx4vdyH/21:20
niemeyerChipaca: WFM!21:21
Chipacaniemeyer: iterated it a bit though, because i can't help myself21:29
Chipacaniemeyer: pushed21:50
popeyniemeyer: i assume the catch up was regarding the various docs threads. It's late here. Shall we catch up early next week?22:18
zygadooooh22:36
* zyga solved a bug :)22:36
Chipacano snapcrafters around! and me with a bug22:54
* zyga hugs Chipaca 23:01
zygaI found a super silly bug in my code23:01
zygaand I found out why core and layouts didn't work23:01
Chipacazyga: yay?23:04
Chipacazyga: zyga! zyga. Are you on bionic?23:04
zygaI have a VM on bionic available23:04
zygabut I'm on artful23:04
ChipacaI don't think it'll work in artful yet23:05
Chipacazyga: bionic ships with "ls --hyperlink"23:05
zygawhat are you thinking about?23:05
Chipacagnome terminal23:05
Chipacain bionic23:05
Chipacasupports hyperlinks23:05
Chipacait's weird, and exciting, and wrong :-)23:05
* zyga checks23:05
Chipacaand of course coreutils use them23:06
zygawait, WAT!23:06
* zyga doesn't believe this23:06
Chipacahahah23:06
Chipacazyga: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda23:06
zygaw...t...f..23:06
zygahow does it work?23:06
ChipacaIKR23:06
zygahollly23:07
Chipacazyga: escape sequences, of course23:07
Chipacaand a particularly gnarly one to parse23:07
Chipacaif I were one to be writing a de-ansifier, that is23:07
zygait also works in F2723:07
zygaso you bumped into this because it broke something23:08
Chipacaheh, everything I've found so far has broken with a lot less23:08
Chipacabut yes, this broke my thing23:08
zygaman, thank you for sharing this23:08
zygathis is pretty cool actually23:08
Chipacazyga: most de-ansifiers broke with just23:09
zygabut man23:09
Chipacaprintf '\033(0lqwqk\nx x x\ntqnqu\nx x x\nmqvqj\n\033(B')23:09
zygathis will be exploited23:09
Chipacauh, remove the trailing )23:09
zygasnaps can even abuse this23:09
zygasomeone who did this will add a "preload" feature next23:10
naccok so they removed the ability to title the terminal, but added this!? )23:10
nacc:)23:10
Chipacanacc: they whaaaa23:10
naccChipaca: it's been gone for a few releases now23:11
Chipacanacc: you mean, in the ui? or with escapes?23:11
naccChipaca: in the UI23:11
Chipacaah! psh23:11
naccChipaca: i can try with escapes, do you have an example?23:11
Chipacathat was just confusing because your escapes would override it23:11
Chipacanacc: you have an example in your .bashrc :-)23:11
Chipacait's in the skeleton bashrc23:11
Chipacayour PS1 is probably doing it23:11
naccChipaca: oh sure, I know that part23:11
naccit's a hassle to write a per-terminal instance PS1 though :)23:12
Chipacanacc: yup23:14
Chipacanacc: my favourite complaint is that they add or remove features and there's no way to detect them23:15
naccthat's a fact :)23:15
Chipacalike, how would an implementer know whether the terminal has hyperlinks? 24-bit rgb? properly wide emojis?23:15
naccright23:15
naccand then wait til someone puts it in backports :)23:15
Chipacaand, and, it sets TERM to xterm-256color23:16
Chipacaand xterms do _so much more_!23:16
naccheh23:16
Chipacaand faster, also23:16
ChipacaI can measure the width taken by every unicode character on an xterm in under five minutes, wheras I need 10 instances running gnome terminal for an hour23:17
Chipacaanyhow. silly rant over.23:17
zygaecho -e '\e#8'23:19
zygathis is fun :)23:19
Chipaca'alignment test'?23:19
zygaindeed23:19
Chipacaman23:19
Chipacaheh, you want to hear a funny one23:19
Chipacamicrosoft added support for DEC graphics charset to their terminal recently23:20
zygagood23:20
zygaat least microsoft documents stuff now :)23:20
Chipacabut in the dec character chart23:20
Chipacathey have some codepoints with things like23:21
Chipaca23:21
Chipacamicrosoft thought they were carriage returns :-D23:21
Chipacahttps://vt100.net/docs/vt220-rm/table2-4.html for reference23:22
Chipacaso on windows if you do  printf '\033(0c\033(B\n'23:23
Chipacait throws an actual form feed at you23:23
Chipaca(compare with https://vt100.net/docs/vt220-rm/table2-1.html)23:24
* Chipaca shuts up about obscure silliness and gets back to fixing snapcraft23:24
gsilvaptHello all. Need some help as I never done this kind of work. I contributed to snapcraft a few months ago and haven't update my remotes for a while23:28
gsilvaptSo if I checkout to master, do git pull upstream (upstream...) master and git push origin (my fork) master should update my fork as well?23:28
Chipacagsilvapt: hmm... that's not how I do it23:36
mupPR snapcraft#1956 opened: snap: actually plug the completer in <Created by chipaca> <https://github.com/snapcore/snapcraft/pull/1956>23:36
Chipacagsilvapt: I do: git checkout master, then git fetch upstream, then git merge upstream/master, then git push origin23:37
Chipacagsilvapt: but git is hairy enough that these two might be equivalent23:38
Chipaca¯\_(ツ)_/¯23:38
gsilvaptChipaca, uhh, I'm noob in open source projects. I'm only used to work in a single remote :P23:38
gsilvaptThat makes sense too23:38
Chipacafwiw I've stashed it all into a single command 'git sync', https://github.com/chipaca/bin/blob/master/git-sync23:38
Chipacagsilvapt: a neat trick of git is that any command that you call git-foo in your path, git'll happily use as 'git foo'23:39
Chipacaso if aliases aren't enough you can do that23:39
gsilvaptChipaca, thanks!23:40
gsilvaptChipaca, I was checking the commit logs in my remote and they seem right in comparison to the upstream's: https://github.com/gsilvapt/snapcraft/commits/master23:40
gsilvaptGuess we both learned something, haha :D23:41
Chipacagsilvapt: :-)23:41
Chipacagsilvapt: good thing is, if they're the same, it'll tell you23:41
Chipacaso you can push/pull again if in doubt23:42
gsilvaptChipaca, you mean using the aliases? Hum, never did that before. Interesting!23:42
Chipacagsilvapt: no i mean, git push origin; git push origin -> second one says "meh"23:42
gsilvaptChipaca, ahh! I see23:46
gsilvaptelopio, you around?23:46

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