/srv/irclogs.ubuntu.com/2017/11/27/#ubuntu-devel.txt

ahasenackhi guys, question for core-devs or even AA11:34
ahasenackubuntu-minimal pulls in ubuntu-advantage-tools,11:34
ahasenackand I'm about to add a curl dependency to u-a-t11:34
ahasenackwhich means ubuntu-minimal would pull in curl11:34
ahasenackis that ok?11:34
ahasenackI "need" curl because we want to check the credentials the user supplied before adding the private repository that contains the packages to be installed (fips, esm)11:35
ahasenackPwnna: hi, maybe this helps: https://help.ubuntu.com/community/btrfs#Ubuntu-specific_subvolume_layout_in_11.04_and_later11:43
infinityahasenack: Pulling curl that far down the stack doesn't fill me with joy, no.12:25
infinityahasenack: When I agreed (grudgingly) to add ubuntu-advantage-tools to minimal, it was because "it's just a shell script".12:25
ahasenackright12:26
infinityahasenack: Why not use apt itself to test?12:26
infinityAdd sources.list bits, run apt-get update, capture output, revert if broken, yell at user.12:27
ahasenacka bit more complicated, the "capture output" bit12:27
ahasenackversus just a one liner of curl12:27
infinityYeah, but they need the apt-get update anyway. ;)12:27
ahasenackapt could fail for other reasons, and it's not like we get a nice http code output12:27
ahasenackbut it was me who raised the curl dependency as an issue, so I understand your concern12:28
ahasenacksee https://github.com/CanonicalLtd/ubuntu-advantage-script/pull/89 :)12:28
infinityahasenack: So, the argument that "you're already pulling in apt-transport-https" ignores that you do that opprotunistically, not as a dependency.12:29
ackkinfinity, note that we already pull libcurl-gnutls because of apt-transports-https12:29
infinityackk: ^12:29
ahasenackinfinity: correct, it's installed on-demand12:30
ahasenackit's not a straight dep12:30
ackkand we could do the same for curl12:30
ahasenackhm, only for the enable-{esm,fips} cases?12:31
ackkinfinity, if it wasn't "just a script" it could be python and wouldn't need the curl dep :)12:31
ackkahasenack, yeah I think it should work?12:31
ackkthat's when we need it12:31
infinityAnd python is also not in minimal, so...12:31
ahasenackinfinity: is there a way to use apt-transport-https for this auth check, or is it too much apt centric?12:32
ackkinfinity, it is?12:32
ahasenackthere is /usr/lib/apt/methods/curl12:32
infinityIrritatingly, curl and apt-transport-https pull in different versions of libcurl3, at least on precise.  But oh well. :/12:33
ahasenackinfinity: oh, precise won't be getting this12:33
infinityahasenack: I mean, the way to use apt to do it is to run an update.12:33
ackkinfinity, yeah but it's then hard to check that the reason for apt failures is credentials for that repo specifically12:33
ahasenackinteresting symlink I have in artful: /usr/lib/apt/methods/curl+https -> curl12:33
ahasenackah, that's for /usr/lib/apt/methods/curl, n/m12:34
ackkinfinity, afaics ubuntu-minimal depends on python in precise, and on python3 in artful12:34
infinityahasenack: Well, same libcurl issue on trusty. ;)12:34
ahasenackinfinity: you mean libcurl3 vs libcurl3-gnutls?12:35
infinityackk: Oh, hrm.  Maybe I lost that argument when I wasn't paying attention to someone else committing.12:35
infinityackk: You are indeed correct, though.12:36
juliankapt-transport-https does not pull in curl anymore in artful and newer12:36
infinitySo, if python has the right bits there, you could also use that.12:36
juliankor rather, it's not needed anymore in artful12:36
infinityjuliank: Indeed, but this is also about older releases.12:36
juliankin bionic it's just a transitional package12:36
ackkinfinity, FTR u-a was initially python, then rewritten in shell :/12:36
juliankCan't you use /usr/lib/apt/apt-helper download-file <url> <path> for whatever you're doing?12:37
infinityackk: FTR, shell is absolutely the right language for what it does.  Until people turn it into some swiss army beast.12:37
juliankMight be more useful?12:37
ackkinfinity, which is the case already :)12:37
infinityjuliank: Oh, that works?12:37
ahasenackjuliank: hm12:37
juliankIf it's a repo you're adding, you could just fetch the release file that way.12:37
infinityThat would be an elegant solution, if it has useful returns.12:38
ahasenacklet me check trusty12:38
ahasenackthe oldest one12:38
juliankI'm not sure how far back that goes, though12:38
julianktrusty has it12:38
ackkwe need something that works on precisetoo12:38
ackk*precise too12:38
ahasenackackk: really?12:38
ackkesm?12:38
ahasenackah12:38
juliankRight, not in precise12:38
ahasenackI thought we were not updating precise with this12:39
andyrockbdmurray: hey hey any chance we get this in? https://bugs.launchpad.net/ubuntu/+source/unity-control-center/+bug/171635912:39
ubottuLaunchpad bug 1716359 in unity-control-center (Ubuntu Xenial) "Unplugging headset with audio panel open mutes internal mic" [Undecided,Incomplete]12:39
ahasenackwe can make that decision12:39
juliankBut I mean, you could manually talk to the apt method if you're really bored.12:39
ackkahasenack, I'd like to have stuff that works everywhere or we'll forget and at some point need to update precise and not be able to12:39
juliankOr use python-apt or something :)12:39
infinitypython-apt is definitely not in minimal.12:40
ahasenackackk: it's more likely that the esm idea will move forward12:40
ahasenackand in trusty, if that happens, we would have this feature (auth check) covered then12:40
ahasenacknot keen on blocking a good idea (apt helper) that would help >= trusty just because precise doesn't have it12:40
ackkahasenack, honestly, I would rather rewrite (again) in python and keep things working everywhere12:41
ackkand, accidental ping12:41
juliankIf you want to manually talk to the method, that's easy to, they just talk an HTTP like protocol12:42
ackkjuliank, yeah I guess I could try that12:42
ahasenackjuliank: you mean /usr/lib/apt/methods/https ?12:42
juliankyeah12:42
ackkjuliank, I need to launch it manually, right?12:42
ahasenackjuliank: with echo | ?12:42
juliankIndeed12:42
juliankYou need to write a 600 URI Acquire message to its stdin, and read the status from stdout12:43
juliankhttp://paste.ubuntu.com/26057904/12:43
juliank^ like that12:43
juliankThe 600 block is what I wrote the rest is the method12:43
juliankIn your case, you could just look for a failure message12:43
juliankI guess12:43
juliankThe advantage of apt-helper is that it also supports proxies configured for apt and stuff12:45
infinityahasenack: Oh, while we're on the topic, it's icky and gross that you embed the user:pass in the sources.list URL instead of tossing it in apt_auth.conf12:45
ackkinfinity, is that in precise too?12:45
ahasenackinfinity: that discussion started with bug https://bugs.launchpad.net/ubuntu/+source/ubuntu-advantage-tools/+bug/170061112:46
infinityackk: Should be, according to the manpage.12:46
ubottuLaunchpad bug 1700611 in ubuntu-advantage-tools (Ubuntu) "sources.list file created for ESM is world-readable, leaks subscriber token to all local users" [Undecided,Incomplete]12:46
juliankWas introduced in 200912:46
julianknetrc is supported since 0.7.25, at least for https12:46
ahasenackwhich prompted https://bugs.launchpad.net/ubuntu/+source/apt/+bug/170185212:46
ubottuLaunchpad bug 1701852 in apt (Ubuntu) "(xenial+) apt-cache fails to run if a single sources.list.d entry is not readable" [Low,Fix released]12:46
juliankah, the other one too12:47
juliankIndeed. And the fix for that is too invasive to backport to xenial and zesty12:47
juliankHence having auth in auth.conf would be super awesome12:48
juliankThe APT method protocol is documented, BTW12:50
infinityjuliank: Of course, auth.conf (unless it's missing some docs) seems to be lacking an auth.conf.d12:50
juliankin method.html12:50
juliankinfinity: hmm12:50
juliankthat seems to be true12:50
infinityIt would seem a natural thing to want so that sources.list.d can have matching auth.conf.d snippets.12:50
infinityBut managing a single file on old releases isn't super difficult.12:51
ackkinfinity, +112:51
juliankThat's complicated.12:51
juliankWe can probably add multi-file to bionic12:51
infinityjuliank: Complicated to backport, absolutely.  That was a wishlist for going forward. :)12:51
juliankThe auth.conf is now opened before the method sandboxes.12:52
juliankand we just keep a FileFd to it around12:52
infinity(And I don't literally mean there should be some snippet-matching lookup table, just that as someone writing a tool that adds sources.list.d snippet, the natural thing to do would be to also add an auth.conf.d snippet and assume it'll be concatenated on auth.conf)12:52
juliankyeah12:52
juliankWe just need to make the current FileFd a std::vector<FileFd> and iterate over them.12:53
juliankShould be doable.12:53
juliankOr we could get crazy and construct a new FileFd implementation that is a concatenation of other FileFds :D12:53
FauxAre config files not short enough that you could just load the concatenation into memory, and avoid the FileFd interface in new code?12:54
ackkinfinity, if you apt-add-repository right now, does it use apt_auth ?12:55
infinityjuliank: I mean, one wouldn't expect a netrc to ever be particularly large.  I'd probably just read it into memory.12:55
infinity(But then there's all the gotchas associated with that)12:55
infinityackk: add-apt-repository doesn't handle http auth at all.12:55
infinity(I mean, you can give it a URL with auth bits in it, but it just takes it raw, it doesn't parse it)12:55
ackkinfinity, well I mean you can specify a deb line with basic auth12:55
ackkI see12:56
juliankSure, we should just parse the netrc into a data structure, that would be neat.12:56
juliankThe implementation currently just searches the file12:56
ackkahasenack, I'll have a look at using the apt method when I have time12:56
infinityjuliank: That would give micro-optimisers a heart attack.12:57
juliankindeed12:57
juliankI'd probably still parse it into a linear search struct, though. Small enough12:58
infinityI wonder how it behaves if I write a kitten gif to /etc/apt/auth.conf12:58
juliankIt at least uses std::string,  and no indexing, so it should be safe :D12:58
ahasenackackk: so option 1 is to use apt-helper,12:58
ahasenackackk: option two is to talk to the method directly, might be icky in shell12:59
ackkjuliank, do you have a link to the helper protocol at hand?12:59
ackkahasenack, we already said apt-helper is not there in precise though?12:59
ackkIIUC12:59
infinityjuliank: I'm very sad to report that it didn't explode on the kitten.12:59
juliankapt install libapt-pkg-doc, open /usr/share/doc/libapt-pkg-doc/method.html/12:59
juliankAlso seems to be on http://www.fifi.org/doc/libapt-pkg-doc/method.html/ch2.html#s2.212:59
juliankwhatever that is12:59
ahasenackackk: depending on the pain, I'm willing to skip this update for precise12:59
juliankJust don't do the check on precise?13:00
ahasenackright, leave it as is13:00
juliankAFAIUI, it's just a convenient thing anyway13:00
ackkjuliank, thanks13:00
ackkok, yeah we can skip the check13:01
ahasenackjuliank: and tl;dr about apt's auth.conf, can we use it without breaking apt-cache?13:01
ahasenackfrom trusty onwards, for exmaple?13:01
infinityahasenack: That's (one of) the point(s).13:01
juliankauth.conf is irrelevant for the cache13:01
infinityahasenack: Should be able to use it from precise onward.13:01
juliankeven in precise13:02
ahasenackok, will do13:02
juliankinfinity: It's crazy what kind of useful stuff we have in apt sometimes :)13:04
ahasenackjuliank: infinity: thanks for the discussion13:05
juliankWe could also add apt-helper hashsum if somebody wants a hashsum tool13:05
infinityjuliank: What's really crazy is that I've been using auth.conf for years, but apparently it was only documented in 1.5 (according to the manpage).  Now I'm wondering how I discovered it.13:05
juliankinfinity: You probably read the changelog or noticed when it was added?13:05
infinityjuliank: That does sound like a thing I might do.13:05
infinityjuliank: It's also possible that I was involved in speccing it, but I'm old and can't remember 2009.13:06
juliankhttps://wiki.ubuntu.com/LucidFoundationsAptNetrc13:07
juliankIt even lists a Dir::Etc::netrcdir, but nobody implemented that13:07
infinity"add a dir.d directory (Dir::Etc::netrcdir) "13:07
infinityHeh.13:07
infinityYeah.13:08
infinity add a dir.d directory (Dir::Etc::netrcdir): POSTPONED13:08
infinityFrom the blueprint.13:08
infinityAnd then mvo went to work at a university.13:08
julianklol13:08
juliank"look into using for proxy passwords as well: POSTPONED" is actually implemented13:09
infinityjuliank: Do you have a bug in Debian and/or Ubuntu about AutoRemove::SuggestsImportant being silly?13:13
juliankinfinity: slangasek opened one in LP.13:13
infinityjuliank: (I would argue that, unless explicitly set, AutoRemove::{Recommends,Suggests}Important should inherit the obvious inverse of Install-{Recommends,Suggests})13:14
juliankNot the inverse. If you install recommends, they are definitely important to keep :D13:14
infinityjuliank: You know what I meant. :P13:14
juliankhttps://bugs.launchpad.net/ubuntu/+source/apt/+bug/172586113:15
ubottuLaunchpad bug 1725861 in apt (Ubuntu) "APT::AutoRemove::SuggestsImportant "false" should be the default" [High,New]13:15
juliankDonKult strongly disagrees with that13:15
infinityYeah, I disagree with the bug title, but agree with the intent.13:15
juliankI want to try to find a better solution to all problems.13:16
juliankThat one and https://bugs.launchpad.net/ubuntu/+source/apt/+bug/173410413:16
ubottuLaunchpad bug 1734104 in apt (Ubuntu) "'upgrade' in bionic should by default autoremove as well" [Undecided,New]13:16
juliankThat is, remove _new_ garbage automatically13:17
juliankIf I uninstall foo, it should remove all unused dependencies of foo13:17
juliankBut not of bar which I uninstalled earlier.13:17
juliankCouple that with a complete cleanup at release upgrades.13:17
juliankEventually it should not make a difference, but it brings a higher level of safety at the moment IMO13:18
infinityjuliank: Oh!  That reminds me that I have a bug to file when I'm more awake (it's so very much nap time).13:19
infinityjuliank: Or I can "file" it right here.13:19
juliankHeh, I'm totally awake - I'm actually writing my master's thesis on the left side of my screen :D13:20
infinityjuliank: "apt upgrade" doesn't magically handle Conflicts/Replaces for package takeovers the same way that update-manager does.  Given that "apt upgrade" is meant to be less broken than 'apt-get upgrade' and a bit more friendly, I'd suggest that it should.13:20
juliankSo, apt upgrade should not remove packages. Hence conflicts are ignored.13:21
infinity(Though, I'd also argue that we could and should change apt-get upgrade to behave like apt upgrade, and no one will notice)13:21
infinityjuliank: Right, update-manager also follows the "should never remove packages" rule, EXCEPT in that one case.13:21
juliankAnd conflicts/replaces do not indicate a takeover, it could also be a switch between different implementations.13:21
juliankWhich is why we kind of want an Obsoletes keyword.13:21
julianks/keyword/field/13:22
infinityjuliank: Conflicts/Replaces can only go one direction meaningfully or your uploaders screwed up.13:22
infinity(Unless a Provides is also in play, which means something different)13:22
juliankYou don't necessarily need a provides.13:23
infinityFor..?13:23
infinityP/C/R and C/R don't mean the same thing.13:23
juliankYou could also have package foo depending on bar | baz, and bar conflict/replace baz, and baz conflict/replace bar.13:23
infinityNope.13:23
infinityThat would be a broken archive.13:23
juliankIt's entirely possible. The P/C/R and C/R semantics are just conventions.13:24
infinitySure, it's *possible*.13:24
infinityIt would still be broken.13:24
juliankAnd I mean, lots of takeovers are also provides, conflicts, and replaces.13:24
infinityLots of broken things are possible. :P13:24
juliankor provides, breaks, replaces.13:24
infinityB/R is an incorrect takeover attempt. But yes, I see people attempt it all the same.13:25
juliankWe tend to view those fields independently of one another13:25
juliankBreaks / Replace is actually the recommended way13:25
infinityI've been considering a dh_gencontrol extention to add higher level rules like "Pseudopackage" and "Takeover" or whatever, and then it can translate to the correct bits to pass to dpkg-gencontrol.13:26
infinityBreaks/Replaces is how you take over files.  Not packages.13:26
infinityConflicts/Replaces has a very specific meaning in policy.13:26
juliankCOnflicts should basically only ever be used bi-directionally13:26
juliankSee https://wiki.debian.org/PackageTransition13:26
juliankinfinity: 7.6.1 specifically says Breaks + Replaces.13:27
infinityjuliank: 7.6.1 is file overwriting.13:28
infinityjuliank: 7.6.2 is package removal.13:28
infinityjuliank: 7.6.2, while poorly written, tells you that Breaks+Conflicts = takeover.13:28
juliankBut that's with provides :)13:28
infinityErr.13:28
infinityReplaces+Conflicts.13:28
infinityjuliank: Only with provides "if they're a virtual package".13:29
infinityjuliank: Like I said, it's poorly-written.13:29
infinityjuliank: And has lead to that wiki being wrong.13:29
mvojuliank, infinity fwiw (and I only read bits of the discussion). I think we should break apt-get upgrade in apt 2.0 maybe add a compat option or something but I think its time to reconsider that for apt-get as well (to behave like apt upgrade)13:29
infinityWhich explains why I see people doing the wrong thing.13:29
juliankinfinity: Wrong is a strong word. Heck if you do Breaks/Replaces with a completely empty package, dpkg would remove it itself.13:30
juliankGoing with Conflicts+Replaces does not have any real effect compared to breaks replaces, it just imposes a stronger ordering13:31
juliankand the ordering is irrelevant due to the replaces.13:31
infinityExcept that it also has semantic meaning.13:32
infinityAnd has done so for as long as I've been a DD.  And longer.13:32
juliankPolicy should probably be changed to state that for Breaks too.13:32
juliankFrom APT's perspective, there certainly is no different, and Breaks + Replaces is preferred.13:32
infinityBut okay, if we ignore that, because people use Breaks to mean the same thing now, then fine, a uni-directional Breaks+Replaces *or* Conflicts+Replaces should be allowed for package takeovers in a non-dist-upgrade case. :P13:32
infinityWhen Breaks was implemented, the rule of thumb we always gave people was "if it should be versioned, it should be Breaks, if it should be unversioned, it should be Conflicts", and that rule stood up pretty well to scrutiny.13:34
juliankmvo: That's why I proposed versioned interfaces, so people can write scripts and specify APT_COMPAT=0 if they need compatibility.13:34
mvojuliank: +113:34
infinityAnd also followed the 7.6.1 and 7.6.2 takeover bits, since file overwrites should be versioned, forcing packages off should not be.13:34
juliankMy personal opinion is that we should remove the semantics from 7.6.2, and introduce an explicit Obsoletes field.13:35
infinityjuliank: So, I'd also be entirely fine with removing *all* the pairings.13:35
mvoI also like the explicit nature of obsoletes13:35
infinityBreaks+Replaces = Overwrites, Conflicts+Replaces = Obsoletes, P/C/R = Virtual.13:36
juliankinfinity: Well, OK, the recommended approach is to have a transitional package anyway, as APT might screw up otherwise, so it's not like you're supposed to even do package transitions like in 7.6.213:36
infinityThe fact that they confuse a small group of seasoned DDs isn't comforting.13:36
juliankThe basic rule is: Always introduce a transitional package, and add versioned breaks/replaces/provides.13:37
infinityjuliank: For violent ABI transitions, we never do transitional packages (intentionally).13:37
infinityjuliank: ie: libfoo1v5 -> libfoo1.13:37
juliankyeah, that's a special case :D13:37
infinityIt's the most common "total takeover" case in the archive.13:37
infinityBy far.13:38
infinityAnd it's one I keep fixing so update-manager will upgrade. :P13:38
juliankInteresting13:38
infinityAnd I just noticed the other day that "apt upgrade" hates it regardless of how I write it.13:38
infinityBecause it refuses all removals, as you say.13:38
juliankI don't think it's easy to make upgrade do that, though.13:39
infinityWe special-cased that class of removals in update-manager ages ago.13:39
juliankIt only uses a very dumb solver.13:39
juliankAFAIUI13:39
infinityupdate-manager's not super bright either.13:39
juliankThe solver that handles removals is not even run13:39
infinity(no offense to the author)13:39
juliankI think13:39
juliankBut no, I can remove a package during upgrade manually, so hmm13:39
juliankNot sure when that happens though13:40
infinityAnyhow, it's not a huge complaint for right this moment, but I feel like update-manager gets it "right" (modulo arguments about C/R versus B/R, where it only checks the former), and it would be lovely if 'apt upgrade' (and 'apt-get upgrade' when we decide to normalise) could follow suit.13:41
infinityWould be even better if there was one solver to rule them all, and update-manager just called into apt.doit.13:41
infinitySince I suspect packagekit upgrades are entirely different from apt, apt-get, and u-m.13:42
juliankHeh, even APT has two "solvers" :D13:42
infinityAnd I've not even looked at that.13:42
juliankpackagekit calculates the upgrade and applies them during reboot...13:42
juliankor rather during boot13:42
juliankUnless somebody patched that out :D13:42
infinitySure, I meant I haven't looked at how it calculates.13:42
juliank"Weird", probably13:42
infinitySeems like a fair bet.13:42
infinityI'd like to have a world where whichever silly button I press that says "upgrade", the result is the same.13:43
infinityBut I may never get that world.13:43
infinityAnd, to be fair, I personally just use apt-get dist-upgrade.13:43
infinityBut when I notice u-m pop up with "OMG PARTIAL UPGRADE", I go fix that for others before I ignore it for myself. :P13:44
juliankI strangely enough mostly use just upgrade and forget to dist-upgrade13:44
juliankWhat I never understood is why gnome-software added another package mgmt abstraction layer over packagekit13:45
infinityAnyhow, I think I'm going to nap.  And I'll bring this up again later.  You've given me some differing perspctive to chew on.13:45
infinityAnd maybe the real conversation (well, the one about control fields) needs to invole guillem and some booze.13:46
juliankI'm trying since 2 years or so to get the Important field standardized.13:46
infinityCause I think whatever misguided reasons we had for using clever pairs to mean weird things is probably long past.13:46
juliankThings move slowly when you need guillem to be part of it.13:46
infinityI fact, if we didn't need to have backward compat with old archives, I'd be willing to argue for a future where having any of those pairs is a bug. :P13:47
juliankI think nthykier  wanted to get rid of the pairs too13:47
infinityjuliank: I somehow manage to work at a reasonable pace with guillem.  But step one is agreeing that this is a real problem that needs to be addressed.13:47
juliankand have stuff just imply Replaces or something13:47
infinityWell, "Replaces" would disappear if you had "overwrites" and "obsoletes", since those are the two uses for replaces.13:48
juliankStuff on my guillem list: Important field, Package-ID field, deltas. And I think someone else.13:48
infinity(ignoring virtuals)13:48
julianks/someone/something/13:48
juliankAh, frontend lock is also on that list13:49
infinityAnd P/C/R could become Virtual: and you've killed the last user of Replaces.13:49
infinityThen Conflicts really means "these two can't coexist evar" and Breaks means "it breaks it at these versions, please do something to resolve that", and everyone's happy that they don't have extra weird meanings.13:49
juliankI'd just generalize apt's model.13:50
infinityIronically, once you reduced that map, you could remove Breaks and just use versioned Conflicts to do the same thing internally, but I don't think anyone would appreciate that. :)13:50
juliankIt does not care about any special pairs.13:50
juliankConflicts = not unpacked at same time13:51
juliankBreaks = not configured at same time13:51
infinityOh, right.  Fair.13:51
juliankReplaces = can replace files from other package13:51
juliankObsolete = replaces other package13:51
juliankI think Conflicts+Provides would still be OK13:51
juliankThough I don't mind Virtual or Exclusive-Provides :D13:52
infinityWe always (these days) use Replaces with Breaks to make sure we get the ordering right (so you don't replace a file out of existence), which is why I was arguing for "Overwrites" == current Breaks/Replaces, and just ditch Replaces.13:53
infinityOr, one could make Replaces imply Breaks.  Either works.13:53
juliankI think versioned Replaces should imply Breaks13:53
* infinity nods.13:53
juliankThere was some discussion on this, but I'm not sure if ML or IRC in #debian-dpkg13:53
infinityUnversioned replaces shouldn't happen except in the P/C/R or C/R cases, though.13:53
infinityC/R would go away with Obsolete.13:54
infinitySo P/C/R is the only one left.13:54
juliankP/C/R could just be Provides/Conflicts, though13:54
infinityUnversioned replaces without a special pairing is very much a package bug.13:54
juliankfrom a solver and ordering standpoint, the replaces is irrelevant there.13:54
infinityAnd I wouldn't actually lose sleep over dpkg telling you that in very angry terms.13:55
infinityjuliank: Okay, I'm going to go try to get some sleep.  I'll definitely bring this up again.  I think we're more or less on the same page, modulo a formal spec.13:55
infinityjuliank: And I'm happy to help guillem see the light, when we've agreed on the shape of the bulb.13:56
juliankWell, gn then.13:56
juliankI just want to add one thing13:56
juliankWe don't actually use replaces in apt AFAICT13:56
juliankSure, we parse them. But I don't see them being used anywhere.13:56
infinityWell, there's no real need to do so in a frontend.13:56
infinityThat's dpkg's problem.13:56
juliankFor the obsoletes case13:57
juliankWe just decide replacements solely on conflicts/breaks13:57
infinityOkay, that sounds like maybe a longstanding bug in either apt or policy. :)13:57
infinity(which was covered for years by apt being a backend to smarter frontends)13:57
infinity(and by nerds just not caring)13:58
juliankI think it slightly influences scores.13:59
juliankAh no, the default score for replaces is 013:59
* infinity runs away before he gets sucked back in.14:00
juliank:D14:00
* juliank writes a spec if he gets bored14:00
john_ramboHi, I am using Ubuntu 18.04. When I run firefox with firejail I get "page not found" ...Any ideas?14:17
wxlmk-sbuild on trusty gives me an error about 99check missing. any idea what the issue is here?14:32
juliankwxl: Well. I guess it cannot execute /etc/schroot/setup.d/99check, but that sounds more like /bin/sh missing.14:32
juliankor it's a symlnik14:33
juliankI mean, the list of files is not hardcoded, so 99check must exist14:33
juliankHence, it's either a broken symlink or /bin/sh does not exist, I'd say14:34
wxljuliank: i assume you mean /bin/sh within the schroot. it does exist14:34
wxlre: 99check, it's a symlink to 00check which does not exist14:35
juliankWell, on the host. 99check should be on the host14:35
juliankWell, there you got your issue14:35
juliankDo you have schroot installed?14:35
wxlyeah14:35
wxllet me try reinstalling14:35
juliankI guess you might have to save config files, purge and reinstall14:35
juliank00check is a conffile, so it probably saved that you removed it or something :D14:36
wxlweird. i can't imagine i would have removed it14:36
wxljuliank: that did it. weird.14:53
bdmurrayandyrock: I don't feel like my question in bug 1716359 was really answered.14:54
ubottubug 1716359 in unity-control-center (Ubuntu Xenial) "Unplugging headset with audio panel open mutes internal mic" [Undecided,Incomplete] https://launchpad.net/bugs/171635914:54
seb128bdmurray, could you maybe try to rephrase it then? it seems they did quite some testing and think they answered it so we are in a locked situation15:54
cpaelzerrbasak: on the change from apt to apt-get15:56
cpaelzerrbasak: does apt-get have a stable CLI Interface - or is it just not detecting/complaining that?15:57
rbasakcpaelzer: apt-get's CLI is generally considered stable AIUI. Too many scripts in the wild use it to make any changes to it.16:07
cpaelzerok, I was juts wondering16:07
cpaelzerbut yeah so it is stable-by-mass-reliance16:08
rbasakcpaelzer: my understanding is that this is the purpose of the warning: to encourage automation to use apt-get rather than apt.16:08
rbasakBut it's interesting that you ask the question.16:08
rbasakjuliank: ^16:08
rbasakMaybe the message needs some adjusting? :)16:09
juliankcpaelzer: apt-get is too stable :D16:09
julianksame for apt-cache16:09
juliankLet's add a line to the output -> hey you broke my script16:10
rbasakjuliank: I wonder if the message should say explicitly "please use apt-get from scripts instead"?16:10
rbasakOtherwise we might get a trend of scripts using apt. Because apt is the new apt-get.16:11
juliankWell. It warns you not to do that.16:11
julianklist is not available elsewhere, though16:11
juliankWe need something better.16:12
rbasak"WARNING: apt does not have a stable CLI interface. Use with caution in scripts." -> "WARNING: apt does not have a stable CLI interface. Use with caution in scripts. Use apt-get instead."16:12
juliankCurrently apt-* does not change at all, and all new stuff goes into apt16:13
juliankrbasak: But that's wrong. It might also be apt-cache, or apt-mark (eventually)16:13
rbasakGood point.16:13
juliankI want you to be able to write a script, say export APT_COMPAT=0 and get a stable APT behavior16:14
juliankand later APT_COMPAT=1, and so on16:14
juliankI think we should also refactor the manual pages. We should have apt-install, apt-upgrade, and so on :)16:15
juliankSo you can type man apt install :D16:15
juliankAnd document differences between apt-* and apt16:15
juliankand I guess apt list should pipe into pager16:16
juliankand search and show too16:17
juliankThen we get a default where apt defaults to latest level, warns if you do not have a terminal as stdout, but can be used in scripts if you specify an APT_COMPAT value16:17
juliankmaybe there's a better way to identify an interactive shell, though16:18
juliankhmm, we should check if stdin is a tty, I guess16:19
juliankhmm, no, that would not work if you put apt inside a script and run that from a tty16:21
bdmurrayseb128: I'd missed comments #21 and #22 in bug 1716359. I'll release it now.16:31
ubottubug 1716359 in unity-control-center (Ubuntu Xenial) "Unplugging headset with audio panel open mutes internal mic" [Undecided,Incomplete] https://launchpad.net/bugs/171635916:31
seb128bdmurray, great, thank you!16:31
jibelbdmurray, hi, could you have a look at bug 1723115 ? It's just a matter of adding a record to meta-release-lts-development on changelog.u.c17:20
ubottubug 1723115 in ubuntu-release-upgrader (Ubuntu) "do-release-upgrade -cd on xenial fails with "Parse failed on meta-release-lts-development"" [Critical,Triaged] https://launchpad.net/bugs/172311517:20
jibelbdmurray, also there is a bug that makes the upgrader crash if there is only one record17:20
bdmurrayjibel: noted17:21
wxltrying to backport python-setuptools (as a depend for another package i'm trying to backport) and getting a failure i'm not sure how to fix. ideas? https://paste.ubuntu.com/26059403/17:31
bmwrbasak: I wanted to check in with you again about Certbot packages19:16
bmwI'm curious what I can do to help finally finish out the Certbot SRU and I wanted to ask you again about potential problems for future SRUs caused by us splitting our JOSE library into a separate package19:16
bmwfor the latter, most distros asked us to just split the package rather than continuing to vendorize it, but I wanted to make sure you're OK with this plan before I pull the trigger and do a release like this19:16
tsimonq2micahg: Hey there, for future reference, is there a process for joining ~ubuntu-backporters?22:39
tsimonq2micahg: (I'm helping someone with packaging and they want to do some backports)22:40
wxlany ideas on how to fix this fail attempting to backport python-setuptools? https://paste.ubuntu.com/26059403/23:11
tsimonq2wxl: yeah that doesn't seem like a good idea to do23:48
tsimonq2That's core Python infra it seems23:48
wxlwell jeez there's got to be a way to deal with this23:48
tsimonq2mwhudson might be able to help.23:49
wxltsimonq2: every other thing so far has just worked, so if i can get this going it will be pretty awesome23:58

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