=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Packaging Training Session - Current Session: Packaging Alley-oop -- Getting your package into Ubuntu through Debian - Instructors: paultag [00:01] Well, it's 7:00 on the spot over here. Radical. [00:01] Logs for this session will be available at http://irclogs.ubuntu.com/2010/11/24/%23ubuntu-classroom.html following the conclusion of the session. [00:01] First of all, I'd really like to say that I'm sorry to everyone that showed up to the last two times I've missed this session [00:02] the first time I was just plain confused, and the second time I was asleep. Anywho, that's all behind us now :) [00:03] I'd like for this to be Q-A styled, so please butt in at any point, I should get back to questions quickly. I'm going to start going over the basics, and depending on where people want "more", I'll change it up on the fly. No script here, so I'm pretty flexible with that stuff [00:03] if my Internet goes down, I'll find a way to get back online. It's been a bit sketchy all day, so sorry in advance if I lag out ( not that I'm expecting to ) [00:03] No questions so far, I trust? [00:04] bueller... bueller... Good. [00:04] So, my session today is about how to get a package into Ubuntu through Debian ( how most packages should be included in Ubuntu ) [00:05] Yes, you can add packages directly to Ubuntu via REVU, but this only makes sense if Debian has no use at all for the package. If you've packaged up something nice, why not share! [00:05] Since we pull from Debian anyway, it only makes sense to push stuff to Debian, and not have Debian pull from us ( it will get messy if that starts ) [00:06] Exceptions are branding and settings packages, but even that can be included in Debian, with only a few minor changes to the build scripts, the source file can produce a totally different binary depending on what distro did the build [00:07] I've done this for Fluxbox -- the Default theme should be the Ubuntu theme for Ubuntu and the Debian theme for Debian, so it checks the vendor, and changes that flag depending :) [00:07] in short, most packages should be going through Debian [00:08] So, let's go through the processes. The first think you need to do is be a moderate to heavy user of some bit of software that is not in the repos [00:08] if you don't care about the software, it gets hard to maintain. Bug reports no longer matter to you, and there is no investment [00:08] I'm taking about it's a real pain if it's not on the system type of user [00:09] Next, you need to identify why it's not in the repos. If the software has license issues, or something funny with releases, chances are it's not included for a reason [00:09] if it's because no one has ever attempted it before, you' [00:09] you're in luck!* [00:10] The first step is to file something called an ITP ( Intent to Package ) [00:10] The first step is to install the tool 'reportbug` [00:10] reportbug will allow you to do everything you need to, without having to think twice. [00:11] You can find more on this process here -- http://www.debian.org/devel/wnpp/ [00:11] Filing an ITP is a critical part of this process, and is really the first think you need to do [00:12] Because, after all, if someone else decides to package the software into Debian, you can't both upload the same package ( so it only makes sense to track it via the bug tracker ) [00:12] It also follows that you should always check the BTS ( Bug Tracking System ) for an ITP on the bit of software you're working on before you start work [00:13] Here's an example ITP bug. I filed this for the last package I got into Debian -- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=600944 [00:13] Debian bug 600944 in wnpp "ITP: fbautostart - XDG compliant autostarting app for Fluxbox" [Normal,Fixed] [00:13] thanks, ubot2 :) [00:14] You give a close directive in the changelog on the first upload ( lintian will ensure this ) that will close out the bug you've created [00:14] Now, what do you do in the event that an ITP exists already? [00:15] Well, this is actually pretty common. People tend to be super-motivated and file the bug, but never actually follow through with the processes. Really a shame. [00:15] If you find an ITP, check the date. If it's been a "while" ( a while can mean a few different things, depending on the package ), send mail to the ITP and query it's status [00:15] ( don't forget to offer up support ) [00:16] Just a simple "Hey, how is this going? Anything I can help with, i see it's been a while" sort of email will do wonders. [00:16] If you get an email saying that they're actively working on it, it might be time to find other software. If they note that they are no longer working on it, you're in luck! [00:17] You should change the owner of the bug and start work right-off. I've seen ITPs go through a few hands before they've been processed all the way through [00:18] If you do not get an email back, wait a "while" ( again, use your best judgment here ), then take over work on the bug ( by re-assigning it, and noting that on the report ) [00:18] a few weeks is usually best [00:18] Questions before I move on? [00:21] Righto, I'll be moving on [00:21] Now comes the fun stuff. You need to actually package up the application [00:21] This *must* be done to the most strict standards that are in place [00:22] make sure everything is as neat and minimal as you can, and check all .dsc and .deb files with 'lintian --pedantic -iIE` [00:22] -i will give you super-verbose error messages [00:23] -I will give you Informational messages, they can be quite helpful [00:23] -E will give you experimental messages, these are usually not tested well and can be quite buggy [00:23] there is no reason not to see them, though, and you should fix these errors [00:24] --pedantic tags are the most picky errors [00:24] Pedantic literally means "Of or like a pedant" [00:24] it's a way of saying that they're formal and minute, but suited for teaching [00:25] I could not think of a better word for these messages myself. You should really fix any pedantic issues with your package, after all, you are learning best practice! [00:26] it's really good to get all these errors, it would be a shame if a package was denied based on errors that you did not even see, so please use these arguments! :) [00:26] Questions on why you should be using uber strict Lintian messages? [00:27] Well OK then, moving on! :) [00:28] Next, you should be sure to fix any and all known issues with the software the can make it unfit for release. [00:28] Any bugs that cause crashes of the system, or of it's self are serious problems, and should be resolved. If you know about these, please fix it before you consider asking for an upload [00:29] Buggy code is no good to anyone! [00:29] You should do this according to DEP3, debsrc 3, and quilt [00:30] DEP3 ensures that there is lots of meta-data on the patch. This makes it easy to digest patches in the ecosystem in a computer-full way [00:30] and as well all know, fewer man-hours is always better :) [00:30] ( more computer-hours is great, on the other hand ) [00:31] using deb source format 3 and quilt is less critical, but still something that should be done [00:31] source 3 is a big improvement, and quilt allows patch management to make sense again [00:32] New packages should really adhear to this. Another standard ( abet not for patches ) is DEP5. DEP5 relates to the copyright, and you might as well fix it while you're in there [00:34] Next, after your package is in perfect shape ( all files are correct, you have DEP3'd patches, DEP5'd copyright, quilt, debsrc3 and no lintian errors ), you should upload your package to mentors.debian.org [00:35] sorry! .net! [00:35] Here's the URL -- http://mentors.debian.net/cgi-bin/welcome [00:36] Putting your package here allows you to upload your source to a common network, where it makes sense to have mentors pull from [00:36] this also allows a note-type system, where mentors may leave feedback on the state of the package [00:37] If you have a mentor you're working with already, you should get him or her to review the package, and consider it for upload ( or at the least, get comments and feedback on the state of the package ) [00:37] After all, lintian is no replacement for a real debian developer :) [00:38] If you don't have a mentor who'd consider uploading the new package, it's time to send out an RFS [00:39] Here's an example: http://lists.debian.org/debian-mentors/2010/11/msg00012.html [00:39] The template for this mail will be shown to you on mentors.debian.net, and should not be too hard to follow [00:39] debian-mentors can be quite harsh, so please, keep your head down [00:40] do what they say, and listen to feedback. They have no CoC in Debian, and only a handful of @debian.org folks hang out there ( *@debian.org tend to be very nice, actually, it's the new package hackers and the old users that take pride in being tough to work with ) [00:41] Oh --- and don't say something's lintian clean if it's not ;) [00:41] that will only anger the collective ;) [00:42] Questions on this? [00:43] Righto. So, now that your package is uploaded and life can move on, it's time to prepare for the next phase :) [00:44] This is where it gets fun -- you're now going to be the one who has to deal with bug reports and build failures [00:44] You should subscribe to your own package ( just for kicks, via the PTS ), and check in with bugs.debian often ( http://bugs.debian.org/cgi-bin/pkgreport.cgi?package=my-package-name ) [00:45] You should also watch out for build failures on arches that are not your own ( such as SPARC, PPC, x86-64 ( or just x86 ), and so on ) [00:46] Debian is the universal operating system, so be ready for that. There are lots of exotic failures that cause a FTBFS ( Failure to build from source ) [00:46] sometimes, it's your fault ( patches, build system ), and other times it's not ( if the upstream code is not your own ) [00:47] if the problem is not yours, please forward the bug rather then let it sit [00:47] Well, now that you know all this, it's been about 6 months and the next Ubuntu release is gearing up for a release [00:48] Ubuntu runs a sync with Debian for a bit under 1/2 of the cycle ( 2.5 months ), and this will catch your new package. Congrats! You've just contributed to Ubuntu while you were watching that *illlarious* movie on the couch, afk. It's a wonder! [00:48] Since the package is now in Ubuntu, you should watch out for apport bugs, and launchpad bugs. It's not your duty, but it'd be lame if you did not help out at all [00:49] Remember to also keep an eye upstream, and always package new releases for Debian ( and Ubuntu! ) [00:49] being an active maintainer comes with the turf, so be sure you have the time to care for your new baby :) [00:50] QUESTION: how is going to coƶperate with the future of USC (11.04+) where almost everything is from PPA [00:50] PPAs are almost totally unofficial. PPAs are very informal, and inherently not part of Ubuntu. They are "addons", "third party" [00:51] There are 10 minutes remaining in the current session. [00:51] You are able to migrate builds from a PPA to Ubuntu Main, no problem, but again this is a lot of work, and can cause issues ( such as maintaining it in two distros ( debian and ubuntu ) ) [00:51] PPAs are also never going to be included in the default install, so users may select this software, but it's by no means part of the Ubuntu software collective ( or Debian ) [00:52] UndiFineD, does that answer the question to your satisfaction? [00:52] Debian also has lots of great tools for when you manage more then one package, it'd be a shame to miss out on that ;) [00:53] I'd also consider work in Debian to be work with Ubuntu -- don't think that work with Debian will hurt your progress with the MOTU, it can only help [00:54] Debian ( counting all of it's spin-offs as well ) has the biggest share of the GNU/Linux market, and contributions in Debian are hard-hitting in the F/OSS world [00:54] so it's great karma in general [00:55] OK, well that's about all I thought about talking with :) [00:55] I'd be happy to take questions in the last 6 minutes or so [00:56] There are 5 minutes remaining in the current session. [00:59] Alrighty, calling that a wrap [00:59] One love, ya'll, thanks so much [01:01] Logs for this session will be available at http://irclogs.ubuntu.com/2010/11/24/%23ubuntu-classroom.html === ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || [02:05] there was a training session at 5:30 is it over?? [02:27] Logs for this session will be available at http://irclogs.ubuntu.com/2010/11/24/%23ubuntu-classroom.html === zkriesse is now known as Commander_Picard === Commander_Picard is now known as zkriesse === apachelogger is now known as releaselogger === marrusl is now known as marrusl_afk === ikonia_ is now known as ikonia === releaselogger is now known as apachelogger === apachelogger is now known as bloglogger === SuperHark is now known as MichealH === bloglogger is now known as apachelogger [21:48] Hey, hello everybody !! :) whats up ? [21:48] how are you doing??, am new here i just installed this aplication, i dont know how it works this thingi.. is there any help some one can give? :) [21:49] erjet_: You might want to try #ubuntu for support [21:51] erjet: what is "Thingi" [21:52] means : "thing" just a verbal extantion :D :) [21:53] by the way is there a way i can install utorrent and internet download manager on ubuntu? can u help :) [21:53] erjet_: what country are you in erjet_ ? [21:53] ok, Albania [21:54] !al [21:54] Factoid 'al' not found [21:54] hmm one sec I will go find it [21:54] http://loco.ubuntu.com/teams/albania [21:54] hmm, no IRC channel specified [21:55] https://launchpad.net/~albania [21:56] erjet: seems that your team are mostly forum users http://ubuntuforums.org/forumdisplay.php?f=372