== Dev Week -- How to avoid making Archive Admins unhappy - Steve Langasek -- Thu, Sep 4 == {{{ (04:01:14 PM) slangasek: so, hi, who's here for the session? (04:01:23 PM) tacone: \o/ (04:01:30 PM) charliecb: me! (04:01:37 PM) mok0: \O/ (04:01:42 PM) asac: i am still lurking ;) (04:01:45 PM) geser: o/ (04:01:53 PM) charliecb: if my inet-connection will not break. (04:01:53 PM) slangasek: yay :) (04:01:54 PM) laga: slangasek: me (04:02:32 PM) stefanlsd_: here (04:03:41 PM) slangasek: right, so for those who don't know me, my name is Steve Langasek, and I'm one of the archive admins for Ubuntu (04:03:56 PM) slangasek: and dholbach asked me if I would give a talk today about not making archive admins unhappy (04:04:43 PM) asac: slangasek: maybe state if you want questions to be asked here ... otherwise consider to join #ubuntu-classroom-chat ... where questions are usually asked (04:04:44 PM) slangasek: actually, he asked me if I would give a talk about making archive admins /happy/, but it seems a bit excessive to ask uploaders to send chocolates with their new packages, so we compromised on this title instead ;) (04:04:58 PM) slangasek: I'd prefer to have questions asked in here, thanks (04:05:01 PM) laga: i was going to ask about that. the chocolate thing, i mean ;) (04:06:27 PM) slangasek: so unfortunately this happens to be scheduled the same day as one of our Intrepid alpha milestones, which means I haven't done a whole lot of advanced prep work for this session, and I apologize to you all for that (04:06:42 PM) slangasek: it does mean that after covering what little material I have to hand, the floor will be open for questions :-) (04:08:43 PM) slangasek: so the archive admins are tasked with getting packages into the right place in the archive: verifying that new packages are legal to distribute, getting them into the right sections in the archive, processing package sync requests and backports, enacting main inclusion requests (MIRs) and freeze exceptions (04:08:55 PM) slangasek: that covers quite a lot of ground :) (04:09:23 PM) laga: what kind of interface do you use? (04:09:45 PM) laga: is there a bunch of scripts? a special NASA-like control panel? (04:09:50 PM) slangasek: and somewhat as a result of that, many of us wear other hats besides being archive admins; several of us are on the Ubuntu release team too, some are buildd admins, etc (04:10:25 PM) slangasek: laga: there are two interfaces available for queue management; one is a set of commandline tools only available on the master internal ftp server in the Data Center, the other is a web interface in launchpad (04:11:16 PM) slangasek: at this point, I only use the commandline interfaces except for testing, because the web interface doesn't yet scale for bulk processing, among other thnigs (04:11:19 PM) slangasek: things (04:11:31 PM) laga: ah, that preempted my next question :) (04:11:59 PM) laga: when you check NEW packages, do you only check legality or also functionality, eg if the postinst looks sane? (04:12:05 PM) slangasek: who here has ever uploaded a new package to REVU? (04:12:10 PM) laga: i did, twice. (04:12:24 PM) slangasek: laga: I'm going to hold that question until a little later, if you don't mind :) (04:12:26 PM) tacone: I never did (04:12:26 PM) laga: the second package still needs one ACK, though. ;) (04:12:28 PM) laga: sure. (04:12:32 PM) mok0: I have, several times (04:12:39 PM) hggdh: so... what would make you, as a archive admin, unhappy? (04:12:41 PM) sebner: slangasek: sync requests will also be processed by MOTUs, true? (04:13:06 PM) slangasek: and after going through REVU, have you also had your packages uploaded to the NEW queue in Ubuntu? (04:13:29 PM) mok0: yes (04:13:41 PM) laga: yes (04:13:43 PM) slangasek: sebner: MOTU are empowered to approve sync requests; the button-pushing is done by the archive admins, and this is considered a limitation in Launchpad (04:14:04 PM) slangasek: mok0, laga: and did your packages make it through the NEW queue on the first try? (04:14:14 PM) sebner: slangasek: yes for my ones (04:14:30 PM) laga: not sure. i once had a package rejected, but that was an FFe. (04:14:31 PM) mok0: I've had 1 that didn't (04:14:45 PM) laga: in fact, one of my packages didn't contain anything useful. i forgot to bzr add things. (04:15:00 PM) laga: it still went through. ;) (04:15:34 PM) slangasek: great, then it sounds like for the most part REVU is doing its job; and for those whose packages didn't make it through on the first try, you can pester the reviewers about not making archive admins unhappy. >:) (04:15:48 PM) laga: heh (04:15:51 PM) mok0: heh (04:16:09 PM) laga: ok, assume someone is a reviewer. how would he make the archive admins happy? ;) (04:16:44 PM) slangasek: nothing makes me unhappier as an archive admin than to have to reject a package that someone's done the work to upload, but it isn't in a distributable state! (04:17:23 PM) laga: and.. what determines that state? (04:17:38 PM) slangasek: the biggest problem that will stop a package from reaching the archive is if debian/copyright doesn't actually list the copyright and license for everything that's included in your source package (04:17:50 PM) geser: laga: one option for the reviewer is to check https://wiki.ubuntu.com/PackagingGuide/Basic#CommonMistakes before advocating (04:17:53 PM) mok0: I guessed it (04:18:08 PM) laga: also, what will result in slightly crumpiness so that you still process the upload? (04:18:54 PM) slangasek: if debian/copyright is incomplete, then this means the binaries we would be distributing would not include proper copyright statements, and possibly not even copies of the right license, and that becomes a legal issue (04:19:17 PM) slangasek: so please, make your debian/copyright list *all* the copyright holders from your source package (04:19:26 PM) mok0: Perhaps we could look at one of these? https://edge.launchpad.net/ubuntu/intrepid/+queue?queue_state=4&queue_text= (04:19:41 PM) slangasek: (FWIW, Debian ftp-masters have become even more strict about this of late, so this is a good first step if you want your package to also be included in Debian...) (04:20:33 PM) slangasek: mok0: looking at any of those right now would make me unhappy >:-) (04:20:34 PM) geser: slangasek: how pendantic should one be for generated files like configure? or config.{guess,sub} (04:20:34 PM) stefanlsd_: Is there a recommended way to make sure we have found all of the copyright information? (04:21:14 PM) slangasek: geser: I generally don't bother with copyright of autoconf stuff, so that's ok to leave out because its copyright status isn't inherited by the binary packages (04:21:35 PM) laga: so, all copyright holders of all upstream source files need to be listed in debian/copyright? (04:21:45 PM) slangasek: laga: for best results, yes (04:21:52 PM) laga: wow. (04:22:04 PM) mok0: Is debian/copyright problems the most common ones? (04:22:17 PM) slangasek: if you list them all, the archive admin job becomes easy. if you don't, we have to make a Determination on our own (04:22:29 PM) laga: that sounds like a pain in the backside for packages like mythtv, which ship a copy of ffmpeg (libavcodec and friends) (04:23:11 PM) geser: laga: I guess no package got rejected yet because debian/copyright was to large or detailed :) (04:23:17 PM) slangasek: mok0: usually, yes. But to pick up the question from earlier, when I'm reviewing new packages, I do look over the packaging as well - not in depth, but at least to make sure there aren't any glaring problems that will obviously break the archive / the buildd / the system of anyone who instlls it (04:24:10 PM) slangasek: stefanlsd_: as a first approximation, recursively grepping the source for 'Copyright' should give you a starting point (04:24:35 PM) stefanlsd_: kk. thanks (04:24:53 PM) mok0: licensecheck is also a good friend (04:25:55 PM) slangasek: if it's hard to even /find/ that someone holds copyright, then it's probably not going to be a reason to reject the package - the archive admins don't have gobs of time to spend on this either, so while we want to get it right, we're not going to be able to do deep archaeology to find mistakes in what's been stated within the package itself (04:26:08 PM) stefanlsd_: mok0: thanks. didnt know about that one. Its pretty cool. (04:27:53 PM) slangasek: the other likely reason for a reject is that debian/copyright is complete, but one of the licenses doesn't actually give us permission to redistribute! (04:28:08 PM) slangasek: or, for multiverse, the license doesn't give permission to modify, but the package includes patches... (04:28:34 PM) slangasek: or the package is under a GPL-incompatible license and depends on GPL libraries :( (04:28:44 PM) slangasek: so don't do those things :) (04:29:02 PM) slangasek: and one wiki resource that I want to bring to people's attention: https://wiki.ubuntu.com/ArchiveAdministration (04:29:41 PM) slangasek: the primary audience for this page are the archive admins ourselves, but I think it's useful for those who're interested to know it's there so they can get more insight into our routine (04:30:07 PM) slangasek: I would particularly point out the list of "members with regular admin days" (04:30:11 PM) slangasek: near the top (04:30:21 PM) slangasek: if you need a package processed tomorrow, don't bug me, bug pitti instead ;-) (04:30:44 PM) geser: slangasek: is there a list what to look for for the common licenses? e.g. which combinations are good, which not (e.g. GPL and linking to OpenSSL) (04:30:58 PM) slangasek: and I'm out of material now, so the rest of the time is open for questions. :) (04:31:49 PM) mok0: What are the requirements to become an aa? (04:32:21 PM) slangasek: geser: off the top of my head, GPL is compatible with GPL, LGPL, 3-clause BSD (i.e., BSD without the advertising clause), and expat. I think the FSF has their own list of compatible licenses on their website (04:33:11 PM) slangasek: geser: for most things more restrictive than a non-copyleft BSD license, it bears having a look to make things compatible; it's even possible to have two bits of GPL code that are incompatibly-licensed, since we now have both GPLv2 and GPLv3 in use (04:34:21 PM) geser: so there is no wiki page yet with common licensing pitfalls to look for during package review? (04:34:40 PM) slangasek: mok0: well, historically, you have to be a Canonical employee to start with, because no one not under contract can get access to the datacenter server; we do now have one non-Canonical archive admin, who to a certain extent is a "beta tester" for the LP interface (04:35:42 PM) slangasek: mok0: I'm not the administrator of the archive admin team in LP, so I can't really say specifically what the criteria are; as far as I'm concerned, it's something like "be dumb enough to make eye contact when cjwatson and mdz are looking for volunteers" ;-) (04:35:59 PM) mok0: he (04:36:14 PM) slangasek: geser: I don't know of a wiki page on that specifically; someone in MOTU might have one that I just don't know about from the archive admin side (04:36:42 PM) mok0: That would be so useful though (04:37:23 PM) mok0: I think the license questions are the most difficult one for many people (04:38:43 PM) slangasek: I agree, and would be happy to see an effort to start one (04:40:56 PM) slangasek: other questions? sorry, I can't give you the One True Answer to getting package licensing right here, but I'm happy to answer any questions I can :) (04:42:23 PM) geser: till now this session was mostly focussed on how to make AA happy during NEW processing. What about the other workflows? like sync request. Is there something which can make the work for AA easier? (04:43:17 PM) slangasek: sure (04:43:39 PM) slangasek: - if you're overriding an existing ubuntu diff, explicitly state this, so the archive admin doesn't have to guess whether you know (04:44:11 PM) slangasek: - if there's no ubuntu delta, don't say there's one in the bug, because this just confuses me :-) (04:44:54 PM) sebner: happend for me once ^^ (04:45:04 PM) slangasek: - use the requestsync tool, which appears to do a good job of getting all this right (judging by what I see in LP) (04:45:36 PM) slangasek: - if you're not a MOTU, don't subscribe ubuntu-archive directly, because we'll just have to bounce it back to ubuntu-universe-sponsors for you (04:45:57 PM) slangasek: i.e., follow https://wiki.ubuntu.com/SyncRequestProcess (04:48:10 PM) slangasek: geser: does that answer your question? (04:48:16 PM) geser: yes (04:48:54 PM) geser: now and then I file a removal request, is there some required info which should always be included? (04:49:31 PM) geser: currently I check for rdepends and rbuilddepends and also add the Debian removal bug (if it exists) (04:49:37 PM) geser: something else to add? (04:50:41 PM) slangasek: if it's not removed from Debian, please say whether the package should be blacklisted permanently, or whether it should be allowed back in the next merge cycle (04:51:59 PM) slangasek: it also helps if you give a clear reason for the removal, so we can document this for posterity (not something that's often a problem, I'm just saying) (04:52:32 PM) geser: are packages removed in Debian also automatically removed from the Ubuntu archive? (04:54:10 PM) slangasek: geser: prior to the DebianImportFreeze, yes (04:54:17 PM) slangasek: after that, they have to be requested (04:55:20 PM) mode (+o ChanServ ) by irc.freenode.net (04:55:46 PM) slangasek: so if there are no other questions, I'll let people off the hook 5 minutes early, consider it a smoke break or a frozen-bubble break or whatever :-) }}}