tweak
[web/gag.com] / bdale / blog / posts / sdcc_and_git.mdwn
1 I've been using git for a while, like it a lot, and finally decided it's time 
2 to move all my Debian packaging work over from CVS.  After a frustrating few 
3 hours trying, I gave up on trying to use git-cvsimport.  It generates mangled 
4 repositories even for simple packages like sudo.  The 
5 git-import-dsc tool in the git-buildpackage package works fine as far it goes, 
6 but I'd really like to preserve my history.  So, after some consultation on 
7 IRC, I took a look at parsecvs.  It didn't quite work out of the box, either, 
8 but looks promising, and the 
9 author showed an immediate interest in the problems I'm having and offered
10 to help.  So, perhaps I'll be able to use it before long...
11
12 In the meantime, a while back I offered to help Gudjon I. Gudjonsson 
13 restructure the sdcc packages so that a DFSG compliant version can return to
14 main with a full version under a different package name going in 
15 non-free.  This is all necessary because some of the assemblers provided 
16 in the package have a non-commercial use clause in the license, and 
17 there are also license
18 issues with the HTML documentation.  I care about this because sdcc is a
19 build dependency for gnuradio, which I maintain for Debian (it uses the 8051 
20 toolchain to build downloadable code for the USRP, etc).  While waiting for 
21 parsecvs to get some love and attention, I sat down this evening to 
22 restructure sdcc and move it to git.
23
24 I'm pretty happy with my progress so far, though there's a bit left to do 
25 before uploads happen.  Gudjon and I decided to use the 
26 <a href="http://wiki.debian.org/Alioth/PackagingProject">collab-maint</a>
27 facilities on alioth.debian.org for collaboration, which took me a little 
28 head-scratching to figure out, but looks like a perfect fit for our needs.  I 
29 updated the wiki page about 
30 <a href="http://wiki.debian.org/Alioth/Git"> Git on Alioth</a>
31 with a few of my learnings as I went through the process.
32
33 Using git branching to handle non-DFSG-compliant upstream sources is pretty
34 obvious, the notes in the git-buildpackage documentation helped.  Using 
35 pristine-tar to capture the deltas required to regenerate orig.tar.gz files
36 from the git repo is amazingly cool.  It's hard to believe how much friendlier
37 the world seems when you don't have to drag a bunch of tarballs around with 
38 you to do useful work!  And git-buildpackage has suitable options to make
39 using it pretty automatic.  Great stuff!
40
41 It's likely to be a few days before I can get back to this, finish up, and 
42 upload the results of this restructuring work.  In the meantime, I'm writing
43 this entry largely to offer my compliments to everyone involved in making 
44 git-buildpackage, alioth, and collab-maint work so well.  Special thanks to 
45 Joey Hess, whose pristine-tar package is another in a long line of absolutely 
46 brilliant tools that contribute to making my life easier!  I'm going to end up
47 using it a lot.
48
49 [[!tag tags/debian]]