LWN: Comments on "Packaging Kubernetes for Debian" https://lwn.net/Articles/835599/ This is a special feed containing comments posted to the individual LWN article titled "Packaging Kubernetes for Debian". en-us Sun, 14 Sep 2025 09:53:22 +0000 Sun, 14 Sep 2025 09:53:22 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Packaging Kubernetes for Debian https://lwn.net/Articles/842187/ https://lwn.net/Articles/842187/ debacle <div class="FormattedComment"> Is this <a href="https://bugs.debian.org/120645">https://bugs.debian.org/120645</a> opened 2001-11-22 and closed 2001-11-25?<br> Maybe you should reopen it, if setting of /etc/papersize to &quot;a4&quot; does not work on your system.<br> I just tried to print an A4 PDF into a PS file using xpdf 3.04-14 on Debian testing and the result is A4.<br> Works for me, but that&#x27;s 19 years later ;-)<br> </div> Sun, 10 Jan 2021 01:32:45 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/839060/ https://lwn.net/Articles/839060/ jnxx <div class="FormattedComment"> I think parts of the problems described here are even more acute with TensorFlow. <br> <p> Strictly from the license, it is open source, as it uses the Apache License 2.0. But to build it from source, one has not only to use the bazel build system, but the bazel build scripts load down dependencies and code from over 200 internet locations which when building runs and downloads even more code from, even more locations.... it seems (to me) humanly impossible for a package maintainer to tell what all this code does, let alone to take any responsibility for this. So, it is &quot;Open Source&quot; but not actually in a way that provides real control to the user and owner of the computer, which is what free software is all about.<br> <p> And this is merely an extreme of the problem that more and more tools and libraries suggest to install using something curl | bash. Even Rust does this (which is inconceivable to me because it tries to appeal to infrastructure people which usually do not fancy running untrusted code).<br> <p> I think that Guix might be a partial solution to these problems. It seems to work very well with Rust. Perhaps it could help not to see it as simply some competition to Debian, but as a kind of complement, because I believe that many of the principal goals of both projects are very similar if not identical. Guix can build reproducible, fast-moving software from source with ease, and it can do that on top of a really solid and stable system like Debian.<br> <p> </div> Sun, 06 Dec 2020 13:00:31 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/838174/ https://lwn.net/Articles/838174/ emorrp1 <div class="FormattedComment"> <font class="QuotedText">&gt; I wonder why there is ever any need to package binaries of any Go program.</font><br> <p> So that the user doesn&#x27;t have to know that application X is written in language Y before even being able to install it and know it&#x27;ll work. Distros like Debian do have a lot of complexity to support language specific ecosystems, but that&#x27;s all done on behalf of the end users to (hopefully) fit their expectations of how an OS behaves.<br> <p> <font class="QuotedText">&gt; to install any Go program the installer clones or pulls and compiles and links the program on the spot</font><br> <p> Which is fine for developers, or for source based distros, but why should an end-user buy dev-spec hardware so they can install some software - one of the advantages of a binary package is the compilation can be offloaded to beefy servers.<br> </div> Mon, 23 Nov 2020 17:48:57 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/838079/ https://lwn.net/Articles/838079/ jak90 <div class="FormattedComment"> The most comparable language in that regard is Ada (or Haskell in relation to GHC), since the most prominent and featured compiler GNAT has a pretty hard and long-lasting dependency on itself. There is no proprietary software at the end of the path, however.<br> Bootstrapping C is one of the core issues of the Bootstrappable project, but so far they have set up a pretty straightforward path of hex dumper -&gt; machine monitor -&gt; assembler -&gt; Scheme interpreter -&gt; naive C compiler -&gt; simple C compiler (like TinyCC) -&gt; GCC 4.7 -&gt; modern compilers written in C++.<br> With Java, they started out with a Java 5 compiler written in C++ and gradually bootstrapped a JVM and classpath on top that understood enough Java 6 features to build OpenJDK 6 from it.<br> <a href="https://bootstrappable.org/projects/java.html">https://bootstrappable.org/projects/java.html</a><br> As far as I have read, there&#x27;s still a multi-stage approach to bootstrap the Mono compiler from C, and Microsoft compiled their &quot;native&quot; C# compilers using their own C++ compiler until switching to Roslyn.<br> <a href="https://news.ycombinator.com/item?id=7528264">https://news.ycombinator.com/item?id=7528264</a><br> </div> Mon, 23 Nov 2020 13:50:25 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/837058/ https://lwn.net/Articles/837058/ nivedita76 <div class="FormattedComment"> &quot;Go is a programming language designed by Google to help solve Google&#x27;s problems, and Google has big problems.&quot;<br> </div> Fri, 13 Nov 2020 03:19:16 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836956/ https://lwn.net/Articles/836956/ anton xpdf does not allow to copy text from PDFs that have been marked accordingly, and that was documented (I don't find that documentation at the moment, though). So it's a misfeature, not a bug; however, the documentation explained that it is easy to change xpdf to ignore the flag, so if that's what Debian's maintainers want to do, I don't think they need to ignore all sources of the desired paper size to do it. Thu, 12 Nov 2020 09:55:49 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836954/ https://lwn.net/Articles/836954/ Wol <div class="FormattedComment"> I believe the pdf spec allows you to put flags in saying &quot;you can do this, you can&#x27;t do that&quot;.<br> <p> I guess Debian honour those flags to avoid potential legal liability. Sounds pretty typical for them.<br> <p> Cheers,<br> Wol<br> </div> Thu, 12 Nov 2020 09:14:20 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836934/ https://lwn.net/Articles/836934/ foom <div class="FormattedComment"> That sounds like it may be a bug indeed; have you reported it?<br> <p> On the other hand, the upstream version of xpdf inexplicably refuses to let you copy text from certain PDFs, and upstream refuses to fix this. The debian version has fixed that bug.<br> </div> Thu, 12 Nov 2020 00:18:51 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836707/ https://lwn.net/Articles/836707/ anton For some packages, the contribution by Debian is negative. E.g., for many years now, I have needed to build xpdf from source on every Debian/Ubuntu system because the Debian-crippled version only prints on letter paper (which we don't have around here); all configuration options for A4 paper (both the upstream xpdf ones as well as the Debian ones) are ignored. <p>Maybe the overall contribution by Debian is positive, but it seems to me that some Debian people are too convinced of their importance, and would do better by just packaging the upstream with as few changes as possible. Tue, 10 Nov 2020 11:04:19 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836395/ https://lwn.net/Articles/836395/ amacater <div class="FormattedComment"> They don&#x27;t have to, at all - but the big industry players all rely on Linux, even if it&#x27;s only internally - Google provide a Linux desktop based on Debian testing, for example, if that&#x27;s what you want for their own staff. There&#x27;s benefits to having a consistent infrastructure: various languages have done their own thing, an ecosystem or two are now impossible to maintain (gnuradio seems to be an environment which relies on magic, voodoo and blessed builds to keep going :) ). Working with, say, Debian, Ubuntu and CentOS would provide a core that&#x27;s known.<br> <p> The comment about security auditing somewhere above in this thread: it&#x27;s not great, but it&#x27;s easier in a distribution than a randomly structured ecosystem like NPM / PIP.<br> Looking from a distance at OpenStack / k8s - there&#x27;s still a lot of magic, blessed github repositories or whatever around this if you don&#x27;t go with a single vendor stack (Red Hat/Canonical are effectively vendoring their commercial offerings and depend on you having paid for support). <br> <p> All of that may be completely immaterial if you&#x27;re Alphabet/Facebook/AWS and can afford to throw human resources at the relevant language or system for internal use: external use is merely good publicity but you don&#x27;t have to guarantee users there anything. And yes, I&#x27;m coming at this from 25 years of experience with Linux so I may be completely out of touch/too old to appreciate how the real world works.<br> </div> Fri, 06 Nov 2020 10:44:48 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836368/ https://lwn.net/Articles/836368/ Cyberax <div class="FormattedComment"> <font class="QuotedText">&gt; I can&#x27;t speak for the Go or rust ecosystem, but I still have difficulty understanding why something like k8s or terraform couldn&#x27;t be re-implemented in a more traditional language which doesn&#x27;t force an up-ending of ecosystems that are tried-and-tested.</font><br> Why should somebody bend over backwards to make stuff easier for Linux distros?<br> </div> Fri, 06 Nov 2020 05:48:32 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836367/ https://lwn.net/Articles/836367/ jccleaver <div class="FormattedComment"> <font class="QuotedText">&gt; Note this is not an issue that only affects Go, most modern languages (as well as oldies like Perl and Python) have their own package managers and package ecosystems. When trying to package such programs into a distribution, distributions are kind of stuck. What we have historically done is (in an automated fashion) wrap every language package needed by a project into a corresponding distribution package and hope that there aren&#x27;t too many to deal with.</font><br> <p> I mean, isn&#x27;t that the crux of the matter? Perl has had CPAN since the days of RH 5, and once cpan2rpm was reliable to use in a mostly-automated fashion it made keeping that in sync for trivial things... trivial. It&#x27;s only the more involved things that require much manual tweaking, but that&#x27;s pretty much how it should be since that&#x27;s why you have humans in the loop to begin with.<br> <p> Go decided it didn&#x27;t care, and more to the point the people pushing it decided they didn&#x27;t care, and now we&#x27;re stuck.<br> <p> I can&#x27;t speak for the Go or rust ecosystem, but I still have difficulty understanding why something like k8s or terraform couldn&#x27;t be re-implemented in a more traditional language which doesn&#x27;t force an up-ending of ecosystems that are tried-and-tested.<br> </div> Fri, 06 Nov 2020 05:46:47 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836353/ https://lwn.net/Articles/836353/ ringerc <div class="FormattedComment"> Yes and no?<br> <p> Increasingly a browser is a (terrible and inefficient) application runtime that maintains persistent state including connections to remote hosts.<br> <p> You can&#x27;t easily serialize the Javascript runtime state and the DOM to disk if you want to maintain remote connections. You&#x27;d need at least a way for part of the application to remain resident to respond to server side chatter / keepalives etc, or changes to redefine client/server expectations for idle and background tabs.<br> <p> What I&#x27;d really like is a way to set resource limits on webapps. Impose some pressure on webapp developers, so they stop offloading gigabytes of epic JavaScript horror to onto all their users because there&#x27;s no incentive for them not to.<br> </div> Fri, 06 Nov 2020 02:30:22 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836352/ https://lwn.net/Articles/836352/ ringerc <div class="FormattedComment"> Agreed. I work mostly with PostgreSQL - our palloc() is a heirachical memory allocator, not dissimilar to Samba&#x27;s talloc. So yes I agree - you can just use your own allocator.<br> </div> Fri, 06 Nov 2020 01:10:53 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836341/ https://lwn.net/Articles/836341/ Cyberax <div class="FormattedComment"> Oh wow, this is actually super-helpful! I&#x27;m going to start using it, like right now.<br> </div> Thu, 05 Nov 2020 23:23:41 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836331/ https://lwn.net/Articles/836331/ ballombe <div class="FormattedComment"> <font class="QuotedText">&gt; And there are no real ways to tell: &quot;Debian Unstable as it looked at 2020-03-31 21:12:41 UTC&quot;.</font><br> Sure there is, see <a href="https://snapshot.debian.org">https://snapshot.debian.org</a><br> </div> Thu, 05 Nov 2020 22:52:10 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836297/ https://lwn.net/Articles/836297/ Cyberax <div class="FormattedComment"> <font class="QuotedText">&gt; And no, stability is not impossible. The package developer doesn&#x27;t build the binary. The distro&#x27;s build system does that, in a controlled environment.</font><br> Distros do almost exactly zero QA, though. So if anything is broken, it&#x27;ll be discovered by users. This results in very slow moving &quot;stable&quot; distros as a result.<br> <p> <font class="QuotedText">&gt; There also are zero security bugfixes to any of the libraries you depend on. Thanks but no thanks.</font><br> Well, Go is fairly safe in itself so security fixes are fairly rare. When they do happen, you&#x27;ll have to update dependent applications, it&#x27;s true.<br> <p> And having better tooling to do that would be great. Github has a proprietary thingie (Dependabot) for that, and OpenSource solution to do the same would be awesome.<br> </div> Thu, 05 Nov 2020 20:34:49 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836296/ https://lwn.net/Articles/836296/ Cyberax <div class="FormattedComment"> <font class="QuotedText">&gt; Yep. But this has led to the current situation where the libraries themselves are anything but stable, so in practice updates rarely happen, bugs be damned.</font><br> I&#x27;m developing mainly in Go for the last 3 years and honestly this hasn&#x27;t happened once. In my experience bugs are fixed rapidly and have never resulted in API breaks.<br> <p> If anything, bugs are fixed much more readily because authors are not afraid that they might accidentally break some old software that depended on some arcane accidental behavior.<br> <p> <font class="QuotedText">&gt; ... _and_ statically links everything into a standalone binary, so any library/dependency change necessitates a rebuild.</font><br> Not quite. You can have dynamic libraries, it&#x27;s just that you&#x27;re allowed to install multiple versions of them.<br> <p> <font class="QuotedText">&gt; (And you know what? Apply the &quot;rebuild all dependents&quot; rule to &quot;classic distributions&quot; too, and your &quot;subtle ABI differences&quot; argument vanishes entirely)</font><br> But classic distros don&#x27;t allow to do that easily. I know, I tried. You have to do stuff like spinning up your own mirror with snapshots of package lists.<br> <p> Non-classic distros like Nix (and I think guix) do allow it.<br> <p> <font class="QuotedText">&gt; If I install two systems off the same install media, and configure them identically, the results are going to be the same.</font><br> Now do that with Debian or Fedora net install. You will get a different image if the code is updated between installations. And there are no real ways to tell: &quot;Debian Unstable as it looked at 2020-03-31 21:12:41 UTC&quot;.<br> <p> </div> Thu, 05 Nov 2020 20:27:13 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836274/ https://lwn.net/Articles/836274/ smurf <div class="FormattedComment"> <font class="QuotedText">&gt; I have NEVER had an issue with Go&#x27;s libraries breaking the ABI</font><br> <p> That is by definition impossible, and IMHO it&#x27;s anything but an advantage.<br> One of the major points of assembling a distribution is to have exactly one version of any library on the system, so that if there is an issue with any one of these libraries you update this exact library and majickally fix the issue for every program using them. Instead of, say, rebuilding and re-deploying ten Go programs.<br> <p> And no, stability is not impossible. The package developer doesn&#x27;t build the binary. The distro&#x27;s build system does that, in a controlled environment.<br> <p> <font class="QuotedText">&gt; There are zero surprises.</font><br> <p> There also are zero security bugfixes to any of the libraries you depend on. Thanks but no thanks.<br> </div> Thu, 05 Nov 2020 18:44:01 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836277/ https://lwn.net/Articles/836277/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; No. I&#x27;m saying that a project won&#x27;t accidentally be broken when one library gets updated. Breakages happen only when a project explicitly updates its dependencies.</font><br> <p> Yep. But this has led to the current situation where the libraries themselves are anything but stable, so in practice updates rarely happen, bugs be damned.<br> <p> <font class="QuotedText">&gt; Sure. Except Go doesn&#x27;t require me to commit all libraries into the same project, it uses a coherent module system for that. The project code simply stores the SHA hashes of dependent libraries.</font><br> <p> ... _and_ statically links everything into a standalone binary, so any library/dependency change necessitates a rebuild.<br> <p> (And you know what? Apply the &quot;rebuild all dependents&quot; rule to &quot;classic distributions&quot; too, and your &quot;subtle ABI differences&quot; argument vanishes entirely)<br> <p> <font class="QuotedText">&gt; Sure. But there&#x27;s no way to do that with classic Linux distros. You will basically always get a subtly different build environment, as packages get updated without changing their name.</font><br> <p> If I install two systems off the same install media, and configure them identically, the results are going to be the same.<br> <p> (&quot;but her updates!&quot; you say? to which I point out that you&#x27;re explicitly not updating anything in Go-land either; if it&#x27;s good for Go, surely it&#x27;s good for everything else too?)<br> </div> Thu, 05 Nov 2020 18:04:46 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836276/ https://lwn.net/Articles/836276/ mpr22 <div class="FormattedComment"> <font class="QuotedText">&gt; There is really no excuse for any tab you are not looking at to occupy any more memory than the pixels in the tab at the time you switched from it.</font><br> <p> &quot;Dump DOM state, necessitating a page reload and possible loss of work when switching back to the tab, if the user switches to a different tab for more than X minutes&quot; is a perfectly reasonable behaviour to want, but it is not remotely a sane default behaviour.<br> </div> Thu, 05 Nov 2020 18:03:25 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836273/ https://lwn.net/Articles/836273/ Cyberax <div class="FormattedComment"> <font class="QuotedText">&gt; So... if you take two different versions of a random Go library, you are saying that can never be API (and thus, ABI) differences between them?</font><br> No. I&#x27;m saying that a project won&#x27;t accidentally be broken when one library gets updated. Breakages happen only when a project explicitly updates its dependencies.<br> <p> <font class="QuotedText">&gt; And if you revision control a C-based project and all of its dependent libraries (as well as identical toolchains) you won&#x27;t have any build-time surprises either.</font><br> Sure. Except Go doesn&#x27;t require me to commit all libraries into the same project, it uses a coherent module system for that. The project code simply stores the SHA hashes of dependent libraries.<br> <p> <font class="QuotedText">&gt; (I mean, duh, if you change nothing, nothing will be changed)</font><br> Sure. But there&#x27;s no way to do that with classic Linux distros. You will basically always get a subtly different build environment, as packages get updated without changing their name.<br> </div> Thu, 05 Nov 2020 16:57:51 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836270/ https://lwn.net/Articles/836270/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; I violently disagree with that. I have NEVER had an issue with Go&#x27;s libraries breaking the ABI, while I&#x27;ve had more than one issue fighting with subtly broken C-based ABI.</font><br> <p> So... if you take two different versions of a random Go library, you are saying that can never be API (and thus, ABI) differences between them?<br> <p> <font class="QuotedText">&gt; Go provides fully deterministic and replicable builds. If I check out a Go project then I&#x27;m guaranteed to get byte-for-byte identical build environment to that on the developer&#x27;s machine. There are zero surprises.</font><br> <p> And if you revision control a C-based project and all of its dependent libraries (as well as identical toolchains) you won&#x27;t have any build-time surprises either.<br> <p> (I mean, duh, if you change nothing, nothing will be changed)<br> </div> Thu, 05 Nov 2020 16:46:06 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836264/ https://lwn.net/Articles/836264/ Cyberax <div class="FormattedComment"> <font class="QuotedText">&gt; K8s&#x27;s Go package dependency hell is just the most extreme example of a program written in a language whose library infrastructure decidedly is not up to the task of providing that kind of stability.</font><br> I violently disagree with that. I have NEVER had an issue with Go&#x27;s libraries breaking the ABI, while I&#x27;ve had more than one issue fighting with subtly broken C-based ABI.<br> <p> Go provides fully deterministic and replicable builds. If I check out a Go project then I&#x27;m guaranteed to get byte-for-byte identical build environment to that on the developer&#x27;s machine. There are zero surprises.<br> <p> It is IMPOSSIBLE to do that with classical Linux packaging methods. My environment will be subtly different to that of the package developer, unless we install everything at the same time.<br> <p> So the proper question should be: &quot;How Debian can achieve Go&#x27;s stability?&quot;<br> </div> Thu, 05 Nov 2020 16:20:17 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836257/ https://lwn.net/Articles/836257/ smurf <div class="FormattedComment"> The problem isn&#x27;t gnu/gcc, the problems are &quot;can we all agree on a single version of a dependency that works for every program/deoending library in the distro that&#x27;s written in X&quot; and &quot;is there a version of Y that&#x27;s going to be supportable until the distro&#x27;s next release&quot;.<br> <p> These issues aren&#x27;t going away just because you use Python or Perl or Go or JS instead of C. There have been a few big-ticket C libraries with dependency issues that the distros ran afoul of that took years to untangle; ffmpeg comes to mind.<br> <p> K8s&#x27;s Go package dependency hell is just the most extreme example of a program written in a language whose library infrastructure decidedly is not up to the task of providing that kind of stability. At the moment it&#x27;s not packageable, period, no matter what the system which would like to package it is is or is not geared for. You can find examples of that in other languages, true, but Go and JS celebrate this kind of chaos and seem to regard it as a feature.<br> <p> Maybe that&#x27;ll change. Maybe not. In the meantime, Debian&#x27;s best solution is to package an installer and then keep out of its way.<br> </div> Thu, 05 Nov 2020 15:14:00 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836196/ https://lwn.net/Articles/836196/ flussence <div class="FormattedComment"> The problem here, I feel, is that most distros were never intended to be general-purpose packagers, but GNU/GCC ecosystem packagers. The versioning scheme typically revolves around C ABI binaries and there&#x27;s often metadata specifically for them, but the system shows its sharp edges immediately even for ancient things like Perl or Python. FWIW Gentoo recently also threw its hands up and allowed Go programs that vendor dozens of dependencies, and is in fact going through its own Kubernetes shake up.<br> <p> In the long term I think the answer to this is going to require better acceptance that those other worlds exist, and ways to sandbox their packaging tools and extract build artifacts so they can be used “as intended” while preserving the OS&#x27;s integrity.<br> </div> Thu, 05 Nov 2020 10:33:54 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836194/ https://lwn.net/Articles/836194/ farnz <p>Yeah - we do rolling deploys of our server updates, so at any time, some servers are on today's code, and others are on yesterday's code. If today's code is bad (manually noticed, or detected by automation), it gets rolled back and ignored, ready for the new version that drops later. <p>This does mean that we have to be careful to make upgrades easy and roll-back safe within limits, but the frequency of updates means this isn't an issue because anyone who forgets this gets burnt regularly until they learn. Thu, 05 Nov 2020 10:01:39 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836189/ https://lwn.net/Articles/836189/ ncm <div class="FormattedComment"> I wonder why there is ever any need to package binaries of any Go program.<br> <p> Suppose we just said that for any Go dependency, the package installer just does a &quot;git clone&quot; or &quot;git pull&quot; of upstream source. Then, to install any Go program the installer clones or pulls and compiles and links the program on the spot, taking the right revision from each dependency&#x27;s local repository.<br> <p> This is different from what we are used to for compiled programs, but a lot like what we already do for scripting languages. Go compilation is fast enough that there is not so much difference from a scripting language.<br> <p> There are still a lot of dependency packages, but the amount of work to maintain them drops to near zero, as you only change them when their own dependency list changes.<br> <p> This method would not work so well for Rust because the Rust compiler is so damn slow, but Rust people are not fighting with package management. Even for Rust, though, linking as part of installation could reduce problems.<br> </div> Thu, 05 Nov 2020 09:00:00 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836186/ https://lwn.net/Articles/836186/ ncm <div class="FormattedComment"> There is really no excuse for any tab you are not looking at to occupy any more memory than the pixels in the tab at the time you switched from it.<br> <p> If the browser wants to cache more stuff from recently used tabs, that should be something tunable. But gigabytes of stuff I can&#x27;t even see squatting on memory I need for things I am actually doing is an abomination.<br> </div> Thu, 05 Nov 2020 08:41:36 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836179/ https://lwn.net/Articles/836179/ jwarnica <div class="FormattedComment"> Or.... you do both. And you do live A/B testing.<br> <p> Yeah, there is some absolutely pure sense of Big O good and bad.<br> <p> But most software is not built to run on a system we are building down to a cost of melted sand, or to where it is unchanging in its exactness hoping for a human to override. <br> <p> <p> </div> Thu, 05 Nov 2020 05:49:38 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836171/ https://lwn.net/Articles/836171/ NYKevin <div class="FormattedComment"> There&#x27;s another bonus, too: If the new release turns out to be bad (for any definition of &quot;bad&quot;), you can just abort it, roll back to last week&#x27;s release, and re-release next week once you have a handle on what went wrong. That way, you don&#x27;t have to do (much) troubleshooting in production in the first place (besides figuring out that the problem started around the same time as the release hit the affected systems, so it could plausibly have been the cause). While this is possible with big and heavy releases, it&#x27;s significantly more painful.<br> <p> This is less effective when you are rolling out to devices you don&#x27;t control, because you&#x27;ll have to tell the user &quot;Hey, um, actually, we think you should go back to the old version for now&quot; and users don&#x27;t like that kind of churn. But it&#x27;s great for servers, which is where k8s is supposed to run.<br> </div> Thu, 05 Nov 2020 01:33:57 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836143/ https://lwn.net/Articles/836143/ Cyberax <div class="FormattedComment"> I&#x27;m not sure Debian will actually scale for that. My fairly complex Go application has 40 dependencies, which I consider reasonable enough. I can see packaging it &quot;classically&quot; with fine-grained dependencies.<br> <p> On the other hand, its ReactJS web-frontend that basically shows Google Maps and a couple of forms has 2120 dependencies. Simply building all of them as DEB files would take a LONG time, never mind doing the dependency resolution.<br> </div> Wed, 04 Nov 2020 18:34:39 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836141/ https://lwn.net/Articles/836141/ jelmer <div class="FormattedComment"> As a user, I like the ability to install and update my go binaries in the same way that I update the other binaries on my system. <br> <p> The current overhead for creating a new package is significant if you have to manually package a lot of dependencies (such as for Kubernetes). Debian has certain assumptions about how much human-customized packaging overhead each package needs, and in the past that overhead was acceptable - shared libraries in e.g. the C world tend to be larger and less predictable. <br> <p> For many of the newer ecosystems (go, rust, haskell, node) packages could be generated with a lot less overhead, because . The approach taken by the rust team with debcargo is promising - the overhead for adding an extra package is minimal, and makes it easy to add many more packages. See for example <a href="https://salsa.debian.org/rust-team/debcargo-conf/-/tree/master/src/bzip2/debian">https://salsa.debian.org/rust-team/debcargo-conf/-/tree/m...</a><br> </div> Wed, 04 Nov 2020 18:28:06 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836021/ https://lwn.net/Articles/836021/ khim <div class="FormattedComment"> And how is scala different from Ada, C, C# or Java in this regard?<br> </div> Wed, 04 Nov 2020 14:29:48 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836020/ https://lwn.net/Articles/836020/ khim <font class="QuotedText">&gt; Nobody's going to argue that malloc() can afford to throw around chunks of memory for developer convenience because RAM is cheap now.</font> <p>Why would they argue if they can just use <a href="https://abseil.io/blog/20200212-tcmalloc">tcmalloc</a> which does just that? It's used in web-browsers, too, BTW. <p>And the fact that web-browsers are using muti-process model for security which increases memory consumption about 2x-3x is just the fact of life now, too… Wed, 04 Nov 2020 14:26:52 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/836002/ https://lwn.net/Articles/836002/ gdt <div class="FormattedComment"> I suspect the bare minimum is listing the names and versions of the vendored libraries in the .deb metadata. That gives the minimum function: a systems administrator can automate a check that the package isn&#x27;t vulnerable to Known Bug X. For these recent languages than information is known when building the software, so it&#x27;s not a huge hack to export that information to the package.<br> </div> Wed, 04 Nov 2020 10:53:09 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/835989/ https://lwn.net/Articles/835989/ pabs <div class="FormattedComment"> That proposal is now implemented as fasttrack:<br> <p> <a href="https://fasttrack.debian.net/">https://fasttrack.debian.net/</a><br> </div> Wed, 04 Nov 2020 03:56:40 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/835971/ https://lwn.net/Articles/835971/ smcv <div class="FormattedComment"> volatile no longer exists, and backports explicitly doesn&#x27;t allow packages which aren&#x27;t in testing, which means it can&#x27;t have packages that are unsuitable for the next stable release.<br> <p> Various people have proposed adding a new suite/repository/archive area/thing that would accept packages that are intended to be used *with* the stable release but are not suitable to be shipped *in* the stable release (a bit like the apt repositories published by upstream projects like Docker and Salt, but general rather than package-specific, and within Debian); but that isn&#x27;t something that a single package&#x27;s maintainer can do unilaterally.<br> </div> Tue, 03 Nov 2020 21:03:09 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/835911/ https://lwn.net/Articles/835911/ farnz <p>Perhaps paradoxically, but we tell users asking for support to update much more rarely now that we're deploying daily than we did when we deployed monthly. <p>We've always used "are you up to date" as a way of dealing with issues that we are confident were fixed in a recent release; with daily deployment, our window for "recent release" has shrunk from 6 months to a week (something about the human brain seems to have us remembering what happened in the last 5 to 7 releases, and no more), which means that problems are much more likely to get investigated than they used to be, because there's no incorrectly remembered "recent" release with a fix for a similar problem. <p>Plus, because it's a rapid turnaround, we're happier to do a partial fix that solves the problem for you, and then use our time to fix up the resulting technical debt. In the past, because we had a long turnaround time, we'd prefer to avoid the technical debt at all - if it's going to take a month for the fix to get to you, we might as well aim for perfect first attempt. Tue, 03 Nov 2020 10:41:58 +0000 Packaging Kubernetes for Debian https://lwn.net/Articles/835903/ https://lwn.net/Articles/835903/ Cyberax <div class="FormattedComment"> Ironically, the older Go code was even more autonomous when the current one (vendored packages used to be committed into the repo along with the code).<br> <p> But even module-based Go doesn&#x27;t need Github access, it needs a way to resolve packages and you can use one of the many repo managers for that (like Artifactory).<br> </div> Tue, 03 Nov 2020 00:43:34 +0000