=== xeruno [n=xeruno@cable201-233-49-165.epm.net.co] has joined #ubuntu-classroom === merriam_ [n=merriam@85-211-245-180.dyn.gotadsl.co.uk] has joined #ubuntu-classroom === n2diy_ [n=darryl@ppp-42d429bc.wlks.losch.net] has joined #ubuntu-classroom === crimsun [n=crimsun@pdpc/supporter/silver/crimsun] has joined #ubuntu-classroom === helfire [n=helfire@71-36-220-4.roch.qwest.net] has joined #ubuntu-classroom === etank [n=etank@ubuntu/member/etank] has joined #ubuntu-classroom [03:15] class is in session :) [03:15] ok, the first thing I did was rename wine-doors-0.1pre1.tar.gz to wine-doors_0.1~pre1.orig.tar.gz [03:16] I then extracted it (tar xf) [03:16] ok [03:16] I then removed the existing debian symlink and recreated dist/debian as debian-upstream [03:17] I then created a new debian subdir and cp'd everything in debian-upstream into debian [03:17] you recreated the symlink as debian-upstream? [03:17] yes, you also could have used mv [03:18] completely your prerogative. I intend to leave a pointer to the existing upstream structure as closely as possible. [03:18] At this point you should decide what packaging scheme you wish to use. [03:19] The existing debian-upstream approach is fairly straightforward debhelper. [03:19] whatever is easy to use / learn and works [03:19] Well, I can't make that call for you. :) [03:19] in this case what would you recommend using? [03:19] well, I'd use cdbs. [03:20] As the maintainer, you have to weigh some choices. [03:20] Using cdbs introduces an additional build-dependency but simplifies your debian/rules [03:20] at this point i am still learning so cdbs is fine with me [03:21] ok, make sure you have a Web browser window/tab open to https://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml [03:21] ok [03:22] i was looking at that and the docs that were installed with cdbs on my system [03:22] we can start with something straightforward. Let's fix debian/changelog [03:23] e.g., http://pastebin.ca/543266 [03:23] (I've not changed the date -R yet, but you can do that) [03:24] would you use 'dch -i' for this ? [03:24] I don't recommend it, since you only need one entry. [03:24] I would just recreate debian/changelog [03:25] You can accomplish that with your favorite $EDITOR [03:27] recreate or just add to the top of the existing one? [03:27] the former [03:27] it doesn't make sense to retain the existing debian/changelog entries [03:28] i would have thought that the creators changes would need to be included [03:28] done [03:29] no, they only need to be retained _inside the distro_ [03:29] since you're working on the initial packaging for the Ubuntu distro, your changelog entry is the first. [03:29] i see [03:30] Furthermore, the original changelog is preserved in debian-upstream/changelog if anyone truly wishes to inspect the pedigree [03:30] makes sense [03:33] after you've modified debian/changelog, it's time to make a note regarding the symlink change. [03:33] cat >README.Debian-Source\ [03:33] err [03:33] cat >README.Debian-Source [03:33] The debian/ shipped in upstream has been recreated as a symlink [03:33] (debian-upstream -> dist/debian). [03:33] ^D [03:34] (this is inside debian/, BTW) [03:34] so i add that to the README ? [03:34] using the precise syntax I've given you [03:34] README.Debian-Source is the filename [03:35] done [03:36] ok, the next file to modify is debian/control [03:36] you'll need to add cdbs as a build-dependency [03:37] is that as @cdbs@ ? === DBO [n=DBO@unaffiliated/dbo] has joined #ubuntu-classroom [03:37] no, just cdbs. [03:37] you'll also need to bump the minimum required version of debhelper to >= 5 [03:37] should the standards version be changed? [03:38] or does that matter? === leonel [n=leonel@189.155.129.205] has joined #ubuntu-classroom [03:38] I would bump it to 3.7.2; we'll ensure later that it adheres to Policy 3.7.2. [03:39] maintainer stays as the upstream person right [03:39] next up is to change the Maintainer field according to https://wiki.ubuntu.com/DebianMaintainerField [03:40] after that, I'd change the Description [03:41] e.g., http://pastebin.ca/543300 [03:42] then: [03:42] cat >compat [03:42] 5 [03:42] ^D [03:42] (that's for debhelper compat) [03:42] i need to add a XSBC-Original-Maintainer right? [03:43] no, because there's no Debian maintainer yet [03:43] thus, the only Maintainer is MOTU. [03:44] changes made [03:44] ok, so let's review. [03:44] so far we've modified/created changelog, compat, control, and README.Debian-Source [03:45] right [03:45] ok, next up is debian/menu [03:46] it needs to be reformatted: e.g., http://pastebin.ca/543308 [03:46] compat went in debian too right? [03:46] correct. [03:47] ok [03:47] so all that was done in menu was moving each element to a seperate line? [03:48] is that just to make it easier to read later [03:48] formatting is important, and yes. [03:48] those are tabs, BTW. [03:48] my vim converts a tab to 4 spaces. will that work OK? [03:49] I'd use a tab. [03:50] done [03:51] ok, next up is debian/copyright === DBO [n=DBO@unaffiliated/dbo] has joined #ubuntu-classroom [03:52] e.g., http://pastebin.ca/543315 [03:53] note that that debian/copyright is incomplete [03:53] you need to further modify it so it mentions Debian's/Ubuntu's inclusion of common licenses on the user's filesystem. [03:55] note the additions of lines 35-39 at http://pastebin.ca/543321 [03:56] ok [03:58] ok, now off to debian/rules [03:59] this is one of the files that i just do not understand [03:59] up until now i have understood most everything that we have done [03:59] debian/rules is really the "heart" of Debian/Ubuntu packaging [04:00] and it would be the "one" (really more than that) thing that i dont get [04:01] cdbs is supposed to make it easier thought right [04:01] it does [04:01] is it like calling templates of rules? [04:01] now, make sure you've got a Web browser window/tab open to https://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml#id2528674 [04:01] we'll be following the New Python policy. [04:02] (sorry, phone call) [04:02] no problem at all [04:05] (ok, back) [04:06] essentially there are two Python approaches, python-support and python-central [04:06] the nice thing is that you don't have to know a thing about either; you just have to pick one [04:06] cool [04:07] so, pick one :) [04:07] it was heads so python-support [04:08] ok, so you'll need a DEB_PYTHON_SYSTEM = pysupport line === _neversfelde [n=neversfe@nrbg-4db44651.pool.einsundeins.de] has joined #ubuntu-classroom [04:09] where does it go [04:09] before you include include /usr/share/cdbs/1/class/python-distutils.mk [04:09] without the redundant include, of course [04:10] (the New Python policy section in the CDBS documentation, which you're hopefully following alongside, documents that) [04:11] so should i be starting with a clean rules file? [04:11] i was trying to figure out where these lines go in the current one [04:11] I'd delete everything except for the "python setup.py install -S --prefix=/ --temp=$(CURDIR)/debian/wine-doors/" line in the existing install: target [04:16] does this look right? [04:16] http://pastebin.ca/543389 [04:16] except i have #!/usr/bin/make -f on the first line [04:18] http://pastebin.ca/543395 [04:20] sec, Internet connection is not cooperating === DBO [n=DBO@unaffiliated/dbo] has joined #ubuntu-classroom [04:37] ok [04:37] sorry about that [04:37] now [04:37] np [04:37] it turns out that you don't even need the Python policy [04:38] it's actually much simpler [04:38] simpler == better [04:39] upstream's setup.py, however, is crackful [04:39] they really ought to use distutils [04:41] cf. http://pastebin.ca/543449 [04:41] note that you need to make corresponding changes to debian/control [04:42] cf. http://pastebin.ca/543454 [04:43] note that you can erase debian/{config,*.template*} as both are unused [04:43] no deb-conf? [04:43] correct, see above. [04:44] now, the last step for debian/control will be to roll in the dependencies. [04:44] you'll need to add these from http://www.wine-doors.org/wordpress/?page_id=3 [04:46] all of them? === DBO [n=DBO@unaffiliated/dbo] has joined #ubuntu-classroom [04:46] well, some of them imply others [04:46] right. wine calls cabextract [04:47] no, not in that sense [04:47] meaning, e.g., adding python-glade2 as a Depends to Package: wine-doors implies a dependency on python, so you don't list python as a dependency. [04:48] python-glade2 also covers libcairo2 and python2.4-cairo [04:49] so would this be correct? [04:49] Depends: wine, python, python-glade2, python-libxml2 [04:50] nope [04:50] Depends: wine, python-gnome2-desktop, python-libxml2, python-glade2 [04:51] now, at the expense of doing _all_ the packaging for you :), I'm going to just point out some remaining issues. [04:51] most importantly, the man page needs fixing [04:52] also very important is the fact that you need to reroll the original tarball with the debian-upstream symlink in place but _without_ the debian dir [04:52] after you do that, you'll need to modify the version and the original tarball's filename to reflect this [04:53] I've posted the rerolled tarball as http://adhd.irule.net/~crimsun/wine-doors_0.1~pre1.repacked.orig.tar.gz [04:53] and the version that should be used in debian/changelog is 0.1~pre1.repacked-0ubuntu1 [04:54] im still up on the man page part [04:54] what would need to be fixed there? [04:54] the sections and the headers [04:55] there are lots of walkthroughs to help you with that, so I'm not going to cover that here [04:56] finally, the Debianized source package needs a full copy of the GPL. Upstream's LICENSE file is insufficient; a complete copy of the GPL needs to ship with it. [04:56] i thought that if it was a common license then it could just be mentioned where it is on the system [04:57] no [04:57] the license explicitly states that the user should have received a full copy of the GPL with the source code. [04:57] "You should have received a copy of the GNU General Public License along with this program" [04:57] if you do not ship a full copy of the GPL, the archive admins will reject the source package. [04:59] i was going from http://www.debian.org/doc/maint-guide/ch-dreq.en.html#s-copyright "License can be found in the file `/usr/share/common-licenses/GPL-2'." [04:59] that should be in debian/copyright, yes. [05:00] however, it is still required that the source package ship with a full copy of the GPL as per the terms of the license itself. [05:01] do you have any additional questions thus far? [05:01] i am so lost at this point i dont even know where to begin [05:01] ok, where are you lost? [05:02] have you understood the changes to [rerolled] debian/ * [05:02] debian/* , rather [05:02] 1) changed changelog -> only 1 entry necessary [05:02] 2) created compat (contents "5") [05:03] 3) created README.Debian-Source (mentioned new symlink) [05:03] 4) changed control [05:03] 5) changed menu [05:03] 6) changed rules [05:03] 7) removed unnecessary files (*.template*, config) [05:04] which of those seven changes is unclear at this point? [05:04] i dont know what 2 was for [05:04] i still dont get rules [05:05] ok. (2) is used because you have a versioned build-dependency in debian/control on debhelper (>= 5) [05:05] why would a the symlink stuff go in README.Debian-Source and not in the changelog [05:05] and i dont even remember what was changed in control [05:06] you've simplified debian/rules (6) to use cdbs [along with debhelper, but cdbs will handle that for you because you've included the debhelper file] and not just debhelper [05:07] the symlink is mentioned in README.Debian-Source because you have to reroll (and thus rename) the original upstream tarball [05:07] what is the process of doing that [05:07] to what does "that" refer? [05:07] i can create a tarball but what needs to be changed in the rerolling? [05:08] ok, here, I'll walk you through that part [05:08] create a scratch dir and CWD into it [05:08] then, extract the _original_ upstream tarball [05:09] then CWD into the root of the extracted source [05:09] by CWD into it you mean just 'cd scatch' [05:09] yes [05:09] CWD == change working directory [05:09] now note how the extracted original upstream tarball has debian -> dist/debian// [05:10] yup [05:10] we want that to actually be debian-upstream -> dist/debian/ [05:11] so, we'll do this: mv debian debian-upstream [05:11] ok [05:11] next, we need to reroll this current version as the "repacked" tarball. [05:12] so that was it [05:12] so, we'll back out one directory (cd ..) and use tar+gzip to reroll the "original" [which is now the "repacked"] tarball [05:12] moving the symlink to match what was done [05:13] tar zcvf wine-doors_0.1~pre1.repacked.orig.tar.gz wine-doors-0.1pre1 ? [05:13] tar cf wine-doors_0.1~pre1.orig.repacked.tar wine-doors-0.1pre1/ [05:13] && gzip -9 wine-doors_0.1~pre1.orig.repacked.tar [05:13] sorry [05:13] wrong order [05:14] tar cf wine-doors_0.1~pre1.repacked.orig.tar wine-doors-0.1pre1/ [05:14] gzip -9 wine-doors_0.1~pre1.repacked.orig.tar [05:15] then when you extract it, you'll create debian/ in that repacked version and go through those 7 changes listed above [05:15] this is good practice, since you should reroll that tarball with the full version of the GPL included as COPYING [05:16] is that a bit clearer? [05:16] somewhat [05:16] ok. [05:16] would the tar command that i typed have done the same thing? [05:16] sure [05:16] just checking [05:17] one last question [05:17] (although I always use tar & gzip -9 as separate steps due to some systems locally using a different compression level by default) [05:18] once all of the stuff is done what command is used to create the deb [05:18] debuild -S -sa -uc -us [05:18] i used debuild -S before and then sudo pbuilder ../*.dsc [05:18] or, if you have a GPG key already posted, debuild -S -sa -k0xfoo [05:19] and then, yes, pass the dsc to pbuilder build [05:20] ok [05:21] i still have lots of questions but i will have to ask them later [05:21] these steps will get you started with a wine-doors source package [05:21] i dont think my brain can handle much more [05:21] that's ok, I covered a lot more than just converting to CDBS [05:21] thank you for all your help [05:21] np, anytime. [05:22] the only place that i even saw cdbs come into play was in control and rules [05:22] correct [05:22] but i guess that it gets called by debuild [05:22] well, what ultimately builds the package is dpkg-buildpackage(1) [05:22] i think that i am starting to understand the mechanics of it all [05:23] just not how the files need to be laid out for it all to work [05:23] that and the policies [05:23] CDBS is just a system of redefined Makefile rules to make your life a bit easier [05:23] like sending the full GPL with it === macconline [n=macconli@190.37.62.104] has joined #ubuntu-classroom [05:23] yes, there are lots of policies - too many to cover in just a few hours [05:24] it'll take a good few months to become exposed to the myriad policies at work [05:24] other than playing like this, what else can i do to learn more about MOTU(ing) [05:24] a good place to supplement packaging is the Debian New Maintainer's Guide [05:24] i've read that === DBO [n=DBO@unaffiliated/dbo] has joined #ubuntu-classroom [05:25] then i read the ubuntu packagingguide [05:25] the Contributing wiki page linked in the topic of #ubuntu-motu is helpful (hopefully) [05:27] i will look at that again tomorrow [05:27] thanks again for the help [05:27] good night === crimsun [n=crimsun@pdpc/supporter/silver/crimsun] has left #ubuntu-classroom [] === DBO [n=DBO@unaffiliated/dbo] has joined #ubuntu-classroom === porthose [n=charliej@72.24.69.50] has joined #ubuntu-classroom === DerXero [n=patrick@dslb-082-083-136-088.pools.arcor-ip.net] has joined #ubuntu-classroom === blenderhead001 [n=blenderh@adsl-068-209-133-121.sip.jax.bellsouth.net] has joined #ubuntu-classroom === porthose_ [n=charliej@72.24.69.50] has joined #ubuntu-classroom === _neversfelde [n=neversfe@nrbg-4db44270.pool.einsundeins.de] has joined #ubuntu-classroom === zween [n=zween@BADb6c7.bad.pppool.de] has joined #ubuntu-classroom === nalioth [i=nalioth@freenode/staff/ubuntu.member.nalioth] has joined #ubuntu-classroom === SWAT [n=SWAT@ubuntu/member/swat] has joined #ubuntu-classroom === porthose_ [n=charliej@72.24.69.50] has joined #ubuntu-classroom === allee [n=ach@dialin-212-144-128-032.pools.arcor-ip.net] has joined #ubuntu-classroom === zween_ [n=zween@vpn-001.vpn.net.ed.ac.uk] has joined #ubuntu-classroom === porthose_ [n=charliej@72.24.69.50] has joined #ubuntu-classroom === blenderhead001 [n=blenderh@adsl-068-209-133-121.sip.jax.bellsouth.net] has joined #ubuntu-classroom === hedix [i=usr16269@c1.edrana.lt] has joined #ubuntu-classroom === SWAT [n=SWAT@ubuntu/member/swat] has joined #ubuntu-classroom === hjmf [n=hjmf@138.Red-83-45-117.dynamicIP.rima-tde.net] has joined #ubuntu-classroom === neversfelde_ [n=neversfe@nrbg-4db4455a.pool.einsundeins.de] has joined #ubuntu-classroom === jrib [n=jrib@upstream/dev/jrib] has joined #ubuntu-classroom === allee [n=ach@dialin-212-144-132-018.pools.arcor-ip.net] has joined #ubuntu-classroom === hedix [i=usr16295@c1.edrana.lt] has joined #ubuntu-classroom === stuart_ [n=stuart@135.27.233.220.exetel.com.au] has joined #ubuntu-classroom === PriceChild [n=pricechi@ubuntu/member/pricechild] has joined #ubuntu-classroom === neversfelde [n=neversfe@nrbg-4db4455a.pool.einsundeins.de] has joined #ubuntu-classroom === neversfelde [n=neversfe@nrbg-4db44471.pool.einsundeins.de] has joined #ubuntu-classroom === n2diy [n=darryl@ppp-42d428a1.wlks.losch.net] has joined #ubuntu-classroom === Martinp23 [n=Martinp2@wikimedia/Martinp23] has joined #ubuntu-classroom === yharrow [n=sysadmin@unaffiliated/yharrow] has joined #ubuntu-classroom === sacater [n=sacater@colchester-lug/member/sacater] has joined #ubuntu-classroom === xeruno [n=xeruno@cable201-233-49-165.epm.net.co] has joined #ubuntu-classroom === elkbuntu [n=melissa@ubuntu/member/elkbuntu] has joined #ubuntu-classroom === porthose [n=charliej@72.24.69.50] has joined #ubuntu-classroom === yharrow_ [n=sysadmin@h-67-100-107-133.nycmny83.dynamic.covad.net] has joined #ubuntu-classroom === yharrow [n=sysadmin@unaffiliated/yharrow] has joined #ubuntu-classroom === blenderhead001 [n=blenderh@adsl-068-209-133-121.sip.jax.bellsouth.net] has joined #ubuntu-classroom === Martinp23 [n=Martinp2@wikimedia/Martinp23] has joined #ubuntu-classroom === zween_ [n=zween@BADb012.bad.pppool.de] has joined #ubuntu-classroom === allee [n=ach@dialin-145-254-254-174.pools.arcor-ip.net] has joined #ubuntu-classroom