Possibly interesting to gNewSense developers because MIT has something called debathena, which is an MIT-specific (graphics, alternative packages, the whole 9 yards) layer on top of several Debian and Ubuntu GNU/Linux distributions. So on a technical level it is very simular to gNewSense in a few ways.
In theory I'll clean this up when I get back from vacation and post it somewhere publically wiki-rific... Until then most useful are probably just the http:// references to their doc / the class slide show. One thing specifically gNewSense-related that came out of this is that if we want to do better tracking of upstream packages, we really need version numbers like -XubuntuYgnewsenseZ (where X is the debian revision, or "0" if the package isn't in debian; "Y" is the ubuntu change number against the debian revision or "0" if the package isn't in ubuntu; and "Z" is the gnewsense change number). = MIT SIPB IAP 2009 Debian Packaging = == Class Link == * http://www.mit.edu/sipb/IAP/#debian == General Documentation == * http://web.mit.edu/sipb-iap/www/debpackaging/ * http://debathena.mit.edu/packaging == Random Notes == <pre> diffstat < (gunzup -c .. ; cat ...) debian/control file - want "Replaces" for -fsf3 linux debhelper (dh_) is old; newer / simpler is cdbs "common debian build system" libpam-afs-session (lenny or later) to get package not in your repo: * copy link for dsc file ---> * dget (path to dsc file) upstream-debian revision number (how debian package releases are named) "ubuntu1debathena3" is legal ---> So gNewSense needs things like "ubuntuXgnewsenseY" Make sure that new upstream versions superscede your own New changelog entry: "dch" dch -v 1.5-1broder1 (opens editor with correct formatting for new entry) 2 environmnet variables: DEBEMAIL="" DEBFULLNAME="" (export in .bashrc) wc -l rules (94 lines long) for libpam-afs-session from hardy ... so we want to make it into a cdbs rules file instead #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk DEB_CONFIGURE_EXTRA_FLAGS := --enable-... yada yada To build a package: debuild -us -uc "-i -I" -- don't include version control files (.svn etc) -- See also debathena doc. Can ignire changelog-should-mention-nmu and source-nmu-had-incorrect-version-number "missing-build-dependancy" *does* matter aptitude show build-essential --> shows what the packages are that you prob don't need to specify in depends. dpkg -c -->> what does this do? make file not installing your files? Use dh_install 1: use the command line: dh_install yada.so lib/security 2: look at file to do it - more normal (in man page of the debhelper util - "man dh_install") - so debian/packagename.install looks like: pam_afs_session.so lib/security man page install: dh_installman ; so packagname.manpages like: man_page_name.5 invirt - behind xvm invirt-vnc-client (has patches dir under debian - via quilt) - handles a series of patches that should be installed in a certain order. ~/.quiltrc need certain line - see debathena doc quilt new {patchname} quilt edit (to edit a file under a certain patch) -- IMPORTANT quilt pop (-a for all) quilt push (-a for all) other trick you need to use: add include /usr/share/cdbs/1/rules/patchsys-quilt.mk in your debian/rules file install/yada: (look in it) -- to doa mod before deiified DEB_PYTHON_SYSTEM=pysupport (sipb prefers this to pycentral - may be push to merge the 2) debathena-quota DEB_AUTO_UPDATE_DEBIAN_CONTROL = 1 (need to have a control.in file with @cdbs@) - catch is that it is very frowned upon by debian archive maintainers because it changs source package at build time. debathena may be removing it soon. DO NOT USE - ENDS UP JUST BEING CONFUSING if confifure.in but no configure - DEB_AUTO_UPDATE_AUTOCONF = 1 - has to be *before* include ALSO debhelper.mk needs to be included before other things. common-install-impl:: target (reference cdbs doc) ---> buildcore.png -- get a massive poster of this In debathena, clean:: target is often used to try to restore orignial package state - eg rm configure debpackaging/exercises http://web.mit.edu/sipb-iap/www/debpackaging/exercises/EXERCISES To see if got right: use debdiff (two .deb files), will tell you how they differ. Can also diffstat - see if need to work on clean target. debathena often has ~debian4.0 to end of string to make them all be able to be in same apt repository. ~ = binary nmus -- WEIRD sorting in debian on tilde. Followed by other things also strange. Odd. + = specific to env version QUESTION: how does debuild differ from dpkg-buildpackage? debuild creates all the files necessary for uploading a Debian package. It first runs dpkg-buildpackage, then runs lintian and/or linda on the .changes file created (assuming that lintian and/or linda is installed), and finally signs the .changes and/or .dsc files as appro- priate (using debsign(1) to do this instead of dpkg-buildpackage(1) itself; all relevant key-signing options are passed on). Parameters Double colon rule can have multiple times - cdbs only uses :: rules so you can always add more. </pre> == See Also == * xxv: http://staticfree.info/projects/deboxify/ * http://debathena.mit.edu/config-package-dev/ (topic for Thursday's 2 of 2 class, which I won't be able to make) -- Daniel JB Clark | Sys Admin, Free Software Foundation pobox.com/~dclark | http://www.fsf.org/about/staff#danny
_______________________________________________ gNewSense-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/gnewsense-dev
