linuxcnc/debian
2023-01-07 12:15:33 -06:00
..
extras Merge remote-tracking branch 'origin/2.9' 2022-12-08 17:58:45 -07:00
source lintian overrides for dsc 2022-12-03 14:08:47 -07:00
tests Corrected autopkgtest script rs274-test. 2022-09-20 15:29:33 +02:00
upstream Corrected typo in debian/upstream/metadata and improved reference list. 2022-09-20 15:29:56 +02:00
.gitignore linuxcnc-uspace: use dh_installdocs to include a missing doc 2022-08-16 10:51:27 -06:00
changelog Merge remote-tracking branch 'origin/2.9' into alternate-bad-merge-fix 2023-01-07 12:15:33 -06:00
compat.in d/configure: let distros override debhelper version & compat level 2021-10-10 15:23:01 -06:00
configure debian: moved dep source-highlight to build-indep 2022-12-26 00:27:00 +01:00
control.docs.in packaging: mark linuxcnc-doc-de Multi-Arch: Foreign 2022-11-06 08:53:36 -07:00
control.main-pkg.in the new linuxcnc-doc-* debs conflict with the old linuxcnc-uspace, and vice versa 2022-08-16 10:52:24 -06:00
control.top.in Merge branch '2.9' 2022-12-26 07:34:23 -05:00
control.uspace-rtai.in packaging: refactor configure 2016-10-31 09:55:32 -05:00
control.uspace-xenomai.in packaging: refactor configure 2016-10-31 09:55:32 -05:00
copyright d/copyright: Update information for ClassicLadder. 2022-11-14 21:01:45 +01:00
linuxcnc-doc-de.doc-base packaging: add a deb with German translations of docs 2022-10-23 13:00:05 -04:00
linuxcnc-doc-de.docs packaging: add a deb with German translations of docs 2022-10-23 13:00:05 -04:00
linuxcnc-doc-de.install packaging: add a deb with German translations of docs 2022-10-23 13:00:05 -04:00
linuxcnc-doc-de.lintian-overrides packaging: add a deb with German translations of docs 2022-10-23 13:00:05 -04:00
linuxcnc-doc-en.doc-base move LinuxCNC_Developer doc from -dev to -doc-en 2022-08-16 10:51:27 -06:00
linuxcnc-doc-en.docs move LinuxCNC_Developer doc from -dev to -doc-en 2022-08-16 10:51:27 -06:00
linuxcnc-doc-en.install linuxcnc-doc-*: use dh_install and dh_installdocs 2022-08-16 10:51:27 -06:00
linuxcnc-doc-en.lintian-overrides Adjsted lintian overrides to use x-www-browser too. 2022-08-28 17:15:37 +02:00
linuxcnc-doc-es.doc-base Undoing elimination of underscores in manuals 2022-03-30 18:20:03 +02:00
linuxcnc-doc-es.docs move g-code quick ref from linuxcnc-uspace to doc debs 2022-08-16 10:51:27 -06:00
linuxcnc-doc-es.install linuxcnc-doc-*: use dh_install and dh_installdocs 2022-08-16 10:51:27 -06:00
linuxcnc-doc-es.lintian-overrides Adjsted lintian overrides to use x-www-browser too. 2022-08-28 17:15:37 +02:00
linuxcnc-doc-fr.doc-base Undoing elimination of underscores in manuals 2022-03-30 18:20:03 +02:00
linuxcnc-doc-fr.docs move g-code quick ref from linuxcnc-uspace to doc debs 2022-08-16 10:51:27 -06:00
linuxcnc-doc-fr.install linuxcnc-doc-*: use dh_install and dh_installdocs 2022-08-16 10:51:27 -06:00
linuxcnc-doc-fr.lintian-overrides Adjsted lintian overrides to use x-www-browser too. 2022-08-28 17:15:37 +02:00
linuxcnc-doc-zh-cn.docs move g-code quick ref from linuxcnc-uspace to doc debs 2022-08-16 10:51:27 -06:00
linuxcnc-doc-zh-cn.install linuxcnc-doc-*: use dh_install and dh_installdocs 2022-08-16 10:51:27 -06:00
linuxcnc-doc-zh-cn.lintian-overrides Adjsted lintian overrides to use x-www-browser too. 2022-08-28 17:15:37 +02:00
linuxcnc-uspace-dev.install linuxcnc-uspace-dev: install with dh_install 2022-08-16 10:52:24 -06:00
linuxcnc-uspace.docs linuxcnc-uspace: handle sample configs as docs 2022-08-16 10:52:24 -06:00
linuxcnc-uspace.links linuxcnc-uspace: handle sample configs as docs 2022-08-16 10:52:24 -06:00
linuxcnc-uspace.metainfo.xml Corrected AppStream metadata to only include linuxcnc-uspace entry 2022-10-22 07:10:09 +02:00
linuxcnc-uspace.sharedmimeinfo packaging: linuxcnc-uspace, not linuxcnc-sim 2014-07-20 20:49:08 -05:00
linuxcnc.install.in include the new xyzab-tdr gui in linuxcnc.deb 2023-01-06 14:43:31 -07:00
linuxcnc.lintian-overrides.in clean up handling of canterp 2023-01-03 19:26:46 -07:00
linuxcnc.postinst dpkg: Interfacing with the initscript system from 2016-03-08 10:35:57 -06:00
linuxcnc.sharedmimeinfo branding: rename the packages to linuxcnc 2012-01-18 14:05:38 -06:00
README.source Further improved debian/README.source 2022-03-10 02:29:54 +01:00
rules.in oops, don't delete the German docs, we have a deb for that now 2022-10-23 15:07:16 -04:00
shlibs.pre libpth20 and libpth2 both point to the same shared library (libpth.so.20) so allow either one. libpth2 is only available for ubuntu and libpth20 for debian. this is needed for installing sim .deb's on debian 2008-03-20 04:19:55 +00:00
update-dch-from-git Add workaround for broken lsb_release in current Debian Sid/Bookworm 2022-10-02 14:26:26 +02:00
watch Introducing d/watch and d/README.source 2021-11-04 18:33:12 +01:00

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/ .