Debian packaging of LinuxCNC ============================ debian/copyright ---------------- Automated tools to check licenses within the source tree will likely find CC-2.5 referenced. But this refers only to some image files that were not adopted by the source tree, only the README describing them was intentionally left unchanged. Steps ----- The following steps were performed to transform Upstream's git repository into - a source tarball and - a debian subdirectory for Debian's main distribution. LinuxCNC is used across a wide span of releases, now supporting from Squeeze up to the latest version of Ubuntu. Not too many changes are required for Debian unstable. 1. Generate the source tarball, This will use the version as specified in the first line of the debian/changelog file. And maybe remove anything outdated, just to avoid confusions: If this is not the original tarball but an interim git tag/snapshot, then set the version in debian/changelog. For git checkout, the version stated in debian/changelog receives the suffix +gitYYYYMMDD.githash VERSION=$(head -n1 debian/changelog |cut -f2 -d' ' | tr -d "()" | sed -e 's/^[0-9]://' ) If the current source tree is not the regular release but git checkout also create the fitting tarball: echo -n "I: Version: $VERSION -> " VERSION=$(git log --date=format:%Y%m%d --pretty=${VERSION}+git%cd.%h| head -n1) echo $VERSION foldername=$(basename $(pwd)) if [ -d debian/patches ]; then quilt pop -a && rm -rf .pc; fi echo "I: taring up CWD into linuxcnc_${VERSION}.orig.tar.xz - this will take a minute or two" (cd .. && tar --exclude=.git* --exclude=.pc -cJf "linuxcnc_${VERSION}.orig.tar.xz" "$foldername") du -sh ../$foldername echo "I: Please inspect with 'tar Jtf ../linuxcnc_${VERSION}.orig.tar.xz'" 2. Prepare shell to work in temp directory export VERSION export WORKDIR=$(mktemp -d) mv "../linuxcnc_${VERSION}.orig.tar.xz" ${WORKDIR}/ && \ pushd $WORKDIR && bash echo -n "I: Now working in "; pwd 3. Unpack echo -n "I: Unpacking source tree to build from newly generated orig.tar.xz" tar xJvf linuxcnc_*.orig.tar.xz cd linuxcnc 4. Configure debian directory for the "uspace" packages that are prepared for the Non-RTAI but preempt realtime kernels that are distributed with Debian. debian/configure 5. Slightly adapt for upload to d/unstable mkdir -p debian/source echo "3.0 (quilt)" > debian/source/format # dch is from the devscripts package dch -b -m -v "$VERSION" --distribution unstable "New upstream version." 6a. build Debian package if in doubt - optional dpkg-buildpackage 6b. build Debian source package, which is what is uploaded to Debian upon acceptance and for updates dpkg-buildpackage -S 7. test build in cowbuilder sudo cowbuilder --update sudo cowbuilder --build ../linuxcnc_*.dsc 8. check that nothing avoidable slipped through lintian -i /var/cache/pbuilder/results/linuxcnc_*.changes 8. get all the files just created exit mv ${WORKDIR}/linuxcnc_* .. Above sketched differences are not impeding routine workflows of Debian packaging. For instance we found that the routine-update script (from the Debian Science team) deals with these adaptations just fine. How to contribute ----------------- LinuxCNC does not have a representation on salsa.debian.org. Please join us on https://github.com/LinuxCNC/linuxcnc/ .