[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Hi, everybody, I'm Eric Doland. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I'm the automake maintainer,\Namong other things. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Today I'm going to talk about removing obsolete packages. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,This is meant to be a BOF. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I only have sixteen slides, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so I'm going to talk about my experiences Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,in removing old versions of automake. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Please feel free to interrupt with questions Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or criticisms or comments as we go. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Hopefully with a bit of discussion about how to do this better in the future, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or maybe not better, we'll see. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So just to set the context a little bit, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,automake in Debian, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I started maintaining it a really long time ago. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,It's making me feel old. 2002. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,This was around the time that automake 1.6 came out, I think. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,One of the problems automake has is Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,that new releases of it usually have incompatibilities Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,with backwards-compatible completely. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,There's various reasons why this is, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,it provides a very weird interface, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,because you're basically embedding things inside make files, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and it's hard to control the API of a make file. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Back in the day, there was, for a very long time, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,automake 1.4, and that just sort of worked, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and then, automake 1.5 was introduced, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Debian upgraded to automake 1.5, and lots of packages broke. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So what ended up happening is that automake 1.5 got moved into its own package, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and automake 1.4 was automake package. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Nowadays, the older versions get moved into their own packages, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and generally, the currently released version--the most up-to-date version-- Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,is the automake package. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,This has some downsides, because it's not necessarily fully backwards-compatible, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but this is usually what people want. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,They want the latest version of automake, and they don't want to have to install Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,a new package any time a new version of automake comes out. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,All the automake packages provide an alternative Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so that you can have your /usr/bin/automake Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,be exactly which automake you want it to be. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The priority of that alternative usually means that the latest version of automake Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,is the one automatically selected, but of course, you can override that. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,There's a note here that, depending on automake directly, is a little risky, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,because fancy automake files, new versions of automake, might break you, potentially. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Anyway, this is not the automake BOF, this is just a little context Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,about why automake is what it is in Debian. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So there's problems with this, because these backwards-compatible issues, as I said, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,were packaging all the versions of automake. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Each new version was getting a new package, basically, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and we've gone through a lot of automake packages over the years. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I didn't count them up, but it looks like almost close to ten, I guess, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,which is a lot of packages you have to deal with. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,People will depend on these individual packages, for whatever reason, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and then getting them out of the system, when they become old, is troublesome. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,As of the wheezy release, we had four different automakes in the wheezy release. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So we had what the old, old--as you can see, 1.4, 1.9, 1.10, and 1.11-- Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and they say that at one point we're going to have five different versions of automake, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,which is a lot of versions of automake. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,You can also see that the 1.4 version was released in 2002, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,when I started maintaining this stuff, so it's really old. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No one should be using it, and no one should have been using it for the last ten years, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but we sort of kept it around because people were like Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"oh, maybe there's old software that, you know, still depends on automake 1.4." Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Um, yeah. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,This is crazy. \NThere are too many versions of automake. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No one really wants them. So, I started out on this mission Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,to bring us down to, hopefully, one or two versions of automake for the next release. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I've been doing this over the last year, and I was makign these slides Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and I was thinking about, it sort of had these weird parallels Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,with some things I'd read about, so now I present to you Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,the five stages of removing an obsolete package from Debian. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The first stage is denial. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,[laughter] Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"If I send mail to debian-devel asking everyone to very nicely Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,move off of these old versions of automake, they'll just do it, right? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I mean, doesn't everyone agree that that's what will happen? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Yeah, so that's what I started out by doing. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I'm going to talk a little bit about the tools and stuff that I used in this process, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so this is sort of technical, and sort of procedural. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If you've got questions about either side, just shoot up your hand. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The first thing you do, or the first thing I did, is that I used grep-dctrl to figure out Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,which packages were build dependent on automake. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Automake basically has no actual binary dependencies, it's all build dependencies. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,There were one hundred and sixty-nine packages--source packages. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,That's a lot, but in Debian scale, it's not that much. It should be fine, right? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Then, I used the dlist tool to turn that list of packages into a list of maintainers, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,with their packages. It's a very nice tool for just ?? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Then, I sent out an email debian-devel saying, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"Here's my plan: I want to get rid of these old versions of automake. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Here are the packages that are build-dependent on them. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Please, do your part and fix this. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I sent that mail out on May 27, 2013, so before last DebConf, which I was not at. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Stage Two: Anger. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,People aren't fixing these things! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I'm going to have to actually do something other than send an email. All right, fine. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The next thing I did, to try to encourage people again to make this move, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Lintian has this really nice facility. One of tests is actually--there's a list of obsolete packages. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,If you put your package in that list, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,lintian will complain any time anyone depends on that package, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,to try to force maintainers that are paying attention, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,that they should't actually be depending on these packages. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,That's good. It's cheap to do. Just sent the patch to lintian. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I don't see any reason they wouldn't take it if it made sense. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Now, I have to file bugs. People don't read debian-devel. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,It's sort of, it's fair I guess. So I basically just went through the list of packages I had, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,with a simple substitution script, so now it mailed a mail that was like Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"Please stop depending on automake blank." with a very boiler-plate thing saying Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"this is why we're getting rid of these old versions of automake" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and I sent that off to BTS. Which is really easy, right? Because BTS is just email. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So you can just do that. You can file a bunch of bugs that way. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I should note that my initial email was a proposal for this mass bug filing, as well, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,which you're supposed to do as part of the procedure of sending out mass bug filings. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,When I did this, I had to file one hundred and seventeen bugs. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,There's fifty two packages that got fixed between me sending my initial email Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and the bugs. So that's good, I shouldn't be that angry, maybe. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I did wait four months between these two events, though, so there's plenty of time. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The other thing I used was using BTS user tags, to track all of these bugs very easily easily Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,using this automake clean-up 2013 tag. I added the date because Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I knew this would not be the last automake clean-up that I would have to do, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,so I keep these separate. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Always good to date your work if you think you might have to repeat it. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Yeah, no, I did not finish in 2013. I started in 2013. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,It should've been automake clean-up 2015 or something, if I wanted the finish date. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,All right, so stage three. Bargaining. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Okay, so, I'm past the anger stage, and now I'm like "okay, I've filed all these bugs, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but not much is happening, so let me just fix this for you. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I'll give you the exact fix on how to much to the newer version of automake. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Here's the patch. Just apply it and upload your package. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I've done all the work; I've done all the hard stuff." Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So, before I even did this, thirty four packages were fixed Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,without supplying a patch. I began the patching in late October of 2013 Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and--this is the hard part, this is the part that's tough to automate--in many cases, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,just switching to the new version of automake worked, and then it was easy, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but that was maybe 50% of the cases. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,I didn't keep good statistics about how tough this was exactly, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,but in a lot of cases, I had to fiddle with the build system, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or a lot of build rules would run automake itself, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,instead of using dh-autoreconf. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,There was a lot of actual fiddling with packages, trying to get them to build, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,and then just waiting to build these things, which can take a very long time, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,to test that this worked. So this is a lot of actual, tough work. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,What else? I used pbuilder to do the builds and then if I successfully built something, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,with the new version of automake,\NI would just mail off a patch Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,to the existing bug, in BTS, and flip the patch tag, saying "here's the patch." Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So I thought, okay, at this point, you know, there's patches out there Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,for almost all of these problems. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,There should be a wave of uploads and everything should be great. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Stage Four: Depression. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,That's not what happened. I was pretty much on my own. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,The responsible maintainers have already fixed this problem. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,So we're into this, sort of, long tale of people who don't care, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,or people who are too busy to deal with their packages or do anything here. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Now I have to upload NMUs. I started this in late January, I think Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,