diff --git a/debian/.gitignore b/debian/.gitignore index e0685f83b4e..30986dbd344 100644 --- a/debian/.gitignore +++ b/debian/.gitignore @@ -9,7 +9,10 @@ linuxcnc-dev linuxcnc-uspace-dev linuxcnc-doc-*/ *.substvars -/linuxcnc*.install + +# generated from `.in` by debian/configure +linuxcnc-uspace.install + *.debhelper shlibs.local linuxcnc-uspace.lintian-overrides diff --git a/debian/configure b/debian/configure index 3cbb560b8c7..e92548ab574 100755 --- a/debian/configure +++ b/debian/configure @@ -33,7 +33,6 @@ if [ "$1" == "-h" -o "$1" == "-help" -o "$1" == "--help" ]; then exit 0 fi -EXTRA_FILES= EXTRA_BUILD= PYTHON_VERSION_NEXT=$(python3 -c 'import sys; print (sys.version[:2] + str(1+int(sys.version[2])))') LIBREADLINE_DEV="libreadline-gplv2-dev | libreadline-dev" @@ -62,8 +61,6 @@ elif [ -f /etc/lsb-release ]; then DISTRIB_NAME=$DISTRIB_ID-$DISTRIB_RELEASE fi -EXTRAS=extras - if [ -n "$ENABLE_BUILD_DOCUMENTATION" ]; then DOC_DEPENDS="asciidoc (>= 8.5),\n dblatex (>= 0.2.12),\n docbook-xsl,\n dvipng,\n ghostscript,\n graphviz,\n groff,\n imagemagick,\n inkscape,\n python3-lxml,\n source-highlight,\n w3c-linkchecker,\n xsltproc,\n texlive-extra-utils,\n texlive-font-utils,\n texlive-fonts-recommended,\n texlive-lang-cyrillic,\n texlive-lang-european,\n texlive-lang-french,\n texlive-lang-german,\n texlive-lang-polish,\n texlive-lang-spanish,\n texlive-latex-recommended,\n asciidoc-dblatex" @@ -89,8 +86,8 @@ PYTHON_IMAGING=python3-pil PYTHON_IMAGING_TK=python3-pil.imagetk QTVCP_DEPENDS="python3-pyqt5,\n python3-pyqt5.qsci,\n python3-pyqt5.qtsvg,\n python3-pyqt5.qtopengl,\n python3-opencv,\n python3-dbus,python3-espeak,\n python3-dbus.mainloop.pyqt5,\n python3-pyqt5.qtwebkit,\n espeak-ng,\n pyqt5-dev-tools,\n gstreamer1.0-tools,espeak,\n sound-theme-freedesktop" YAPPS_RUNTIME="python3-yapps" -DEBHELPER="debhelper (>= 9)" -COMPAT="9" +DEBHELPER="debhelper (>= 12)" +COMPAT="12" case $DISTRIB_NAME in Ubuntu-21.*|Debian-11|Debian-11.*|Debian-testing|Debian-unstable) @@ -120,7 +117,6 @@ KERNEL_DEPENDS_BUILD=libudev-dev KERNEL_HEADERS= KERNEL_VERSION=uspace MODUTILS_DEPENDS= -EXTRA_FILES="usr/bin/rtapi_app" DISTRIB_NAME=uspace-$DISTRIB_NAME MAIN_PACKAGE_NAME=linuxcnc-uspace OTHER_MAIN_PACKAGE_NAME=linuxcnc @@ -135,9 +131,7 @@ sed \ -e "s#@DISTRIB_NAME@#$DISTRIB_NAME#g" \ -e "s#@DOC_DEPENDS@#$DOC_DEPENDS#g" \ -e "s#@EXTRA_BUILD@#$EXTRA_BUILD#g" \ - -e "s#@EXTRA_FILES@#$EXTRA_FILES#g" \ -e "s#@EXTRA_RECOMMENDS@#$EXTRA_RECOMMENDS#g" \ - -e "s#@EXTRAS@#$EXTRAS#g" \ -e "s#@KERNEL_DEPENDS@#$KERNEL_DEPENDS#g" \ -e "s#@KERNEL_DEPENDS_BUILD@#$KERNEL_DEPENDS_BUILD#g" \ -e "s#@KERNEL_HEADERS@#$KERNEL_HEADERS#g" \ diff --git a/debian/control.docs.in b/debian/control.docs.in index 4cfb311af24..bf13d49a33c 100644 --- a/debian/control.docs.in +++ b/debian/control.docs.in @@ -2,6 +2,8 @@ Package: linuxcnc-doc-en Provides: linuxcnc-doc Architecture: all Depends: ${misc:Depends} +Breaks: linuxcnc-uspace (<= 2.9.0~pre0+git20220402.2500863908-4), +Replaces: linuxcnc-uspace (<= 2.9.0~pre0+git20220402.2500863908-4) Recommends: xdg-utils Suggests: pdf-viewer Description: motion controller for CNC machines and robots (English documentation) @@ -15,6 +17,8 @@ Package: linuxcnc-doc-fr Provides: linuxcnc-doc Architecture: all Depends: ${misc:Depends} +Breaks: linuxcnc-uspace (<= 2.9.0~pre0+git20220402.2500863908-4) +Replaces: linuxcnc-uspace (<= 2.9.0~pre0+git20220402.2500863908-4) Recommends: xdg-utils Suggests: pdf-viewer Description: motion controller for CNC machines and robots (French documentation) @@ -28,6 +32,8 @@ Package: linuxcnc-doc-es Provides: linuxcnc-doc Architecture: all Depends: ${misc:Depends} +Breaks: linuxcnc-uspace (<= 2.9.0~pre0+git20220402.2500863908-4) +Replaces: linuxcnc-uspace (<= 2.9.0~pre0+git20220402.2500863908-4) Recommends: xdg-utils Suggests: pdf-viewer Description: controlador de movimiento para máquinas CNC y robots (Español). diff --git a/debian/control.main-pkg.in b/debian/control.main-pkg.in index 42fe6228c63..c3b858fb496 100644 --- a/debian/control.main-pkg.in +++ b/debian/control.main-pkg.in @@ -1,5 +1,11 @@ Package: @MAIN_PACKAGE_NAME@ -Conflicts: linuxcnc-sim, @OTHER_MAIN_PACKAGE_NAME@ +Conflicts: + linuxcnc-sim, + @OTHER_MAIN_PACKAGE_NAME@ +Breaks: + linuxcnc-doc-en (<= 2.9.0~pre0+git20220402.2500863908-4), + linuxcnc-doc-es (<= 2.9.0~pre0+git20220402.2500863908-4), + linuxcnc-doc-fr (<= 2.9.0~pre0+git20220402.2500863908-4) Architecture: any Depends: ${misc:Depends}, diff --git a/debian/linuxcnc-doc-en.doc-base b/debian/linuxcnc-doc-en.doc-base index e06e5f828d1..83864738013 100644 --- a/debian/linuxcnc-doc-en.doc-base +++ b/debian/linuxcnc-doc-en.doc-base @@ -4,6 +4,7 @@ Section: Science/Engineering Format: PDF Files: + /usr/share/doc/linuxcnc/LinuxCNC_Developer.pdf /usr/share/doc/linuxcnc/LinuxCNC_Documentation.pdf /usr/share/doc/linuxcnc/LinuxCNC_Getting_Started.pdf /usr/share/doc/linuxcnc/LinuxCNC_Integrator.pdf diff --git a/debian/linuxcnc-doc-en.docs b/debian/linuxcnc-doc-en.docs new file mode 100644 index 00000000000..772992b34a8 --- /dev/null +++ b/debian/linuxcnc-doc-en.docs @@ -0,0 +1,15 @@ +usr/share/doc/linuxcnc/LinuxCNC_Developer.pdf +usr/share/doc/linuxcnc/LinuxCNC_Documentation.pdf +usr/share/doc/linuxcnc/LinuxCNC_Getting_Started.pdf +usr/share/doc/linuxcnc/LinuxCNC_Integrator.pdf +usr/share/doc/linuxcnc/LinuxCNC_Manual_Pages.pdf + +usr/share/doc/linuxcnc/AUTHORS +usr/share/doc/linuxcnc/INSTALL.adoc +usr/share/doc/linuxcnc/README.adoc +usr/share/doc/linuxcnc/README.axis +usr/share/doc/linuxcnc/axis_light_background +usr/share/doc/linuxcnc/rtfaults.adoc +usr/share/doc/linuxcnc/tklinuxcnc.adoc + +docs/html/gcode.html diff --git a/debian/linuxcnc-doc-en.install b/debian/linuxcnc-doc-en.install new file mode 100644 index 00000000000..c34e5e563df --- /dev/null +++ b/debian/linuxcnc-doc-en.install @@ -0,0 +1,5 @@ +debian/extras/usr/share/applications/linuxcnc-documentation.desktop usr/share/applications +debian/extras/usr/share/applications/linuxcnc-gcoderef.desktop usr/share/applications +debian/extras/usr/share/applications/linuxcnc-gettingstarted.desktop usr/share/applications +debian/extras/usr/share/applications/linuxcnc-integratorinfo.desktop usr/share/applications +debian/extras/usr/share/applications/linuxcnc-manualpages.desktop usr/share/applications diff --git a/debian/linuxcnc-doc-es.docs b/debian/linuxcnc-doc-es.docs new file mode 100644 index 00000000000..d756b6f22df --- /dev/null +++ b/debian/linuxcnc-doc-es.docs @@ -0,0 +1,9 @@ +usr/share/doc/linuxcnc/LinuxCNC_Developer_es.pdf +usr/share/doc/linuxcnc/LinuxCNC_Documentation_es.pdf +usr/share/doc/linuxcnc/LinuxCNC_Getting_Started_es.pdf +usr/share/doc/linuxcnc/LinuxCNC_Integrator_es.pdf + +usr/share/doc/linuxcnc/asciidoc-markup_es.adoc +usr/share/doc/linuxcnc/rtfaults_es.adoc + +docs/html/es/gcode.html diff --git a/debian/linuxcnc-doc-es.install b/debian/linuxcnc-doc-es.install new file mode 100644 index 00000000000..51024100c20 --- /dev/null +++ b/debian/linuxcnc-doc-es.install @@ -0,0 +1 @@ +debian/extras/usr/share/applications/*_es.desktop usr/share/applications/ diff --git a/debian/linuxcnc-doc-fr.docs b/debian/linuxcnc-doc-fr.docs new file mode 100644 index 00000000000..82d325edc85 --- /dev/null +++ b/debian/linuxcnc-doc-fr.docs @@ -0,0 +1,6 @@ +usr/share/doc/linuxcnc/LinuxCNC_Developer_fr.pdf +usr/share/doc/linuxcnc/LinuxCNC_Documentation_fr.pdf +usr/share/doc/linuxcnc/LinuxCNC_Getting_Started_fr.pdf +usr/share/doc/linuxcnc/LinuxCNC_Integrator_fr.pdf + +docs/html/fr/gcode.html diff --git a/debian/linuxcnc-doc-fr.install b/debian/linuxcnc-doc-fr.install new file mode 100644 index 00000000000..c7a1680c790 --- /dev/null +++ b/debian/linuxcnc-doc-fr.install @@ -0,0 +1 @@ +debian/extras/usr/share/applications/*_fr.desktop usr/share/applications/ diff --git a/debian/linuxcnc-doc-zh-cn.docs b/debian/linuxcnc-doc-zh-cn.docs new file mode 100644 index 00000000000..dfd385eb3ad --- /dev/null +++ b/debian/linuxcnc-doc-zh-cn.docs @@ -0,0 +1,6 @@ +usr/share/doc/linuxcnc/LinuxCNC_Developer_zh_CN.pdf +usr/share/doc/linuxcnc/LinuxCNC_Documentation_zh_CN.pdf +usr/share/doc/linuxcnc/LinuxCNC_Getting_Started_zh_CN.pdf +usr/share/doc/linuxcnc/LinuxCNC_Integrator_zh_CN.pdf + +docs/html/zh_CN/gcode.html diff --git a/debian/linuxcnc-doc-zh-cn.install b/debian/linuxcnc-doc-zh-cn.install new file mode 100644 index 00000000000..873f4db4a38 --- /dev/null +++ b/debian/linuxcnc-doc-zh-cn.install @@ -0,0 +1 @@ +debian/extras/usr/share/applications/*_zh_CN.desktop usr/share/applications/ diff --git a/debian/linuxcnc-uspace-dev.doc-base b/debian/linuxcnc-uspace-dev.doc-base deleted file mode 100644 index e7913513260..00000000000 --- a/debian/linuxcnc-uspace-dev.doc-base +++ /dev/null @@ -1,6 +0,0 @@ -Document: linuxcnc-uspace-dev -Title: LinuxCNC Developer Documentation -Section: Science/Engineering - -Format: PDF -Files: /usr/share/doc/linuxcnc-dev/LinuxCNC_Developer.pdf diff --git a/debian/linuxcnc-uspace-dev.install b/debian/linuxcnc-uspace-dev.install new file mode 100644 index 00000000000..80a59b53d8d --- /dev/null +++ b/debian/linuxcnc-uspace-dev.install @@ -0,0 +1,7 @@ +usr/bin/halcompile +usr/include/linuxcnc +usr/lib/liblinuxcnc.a +usr/lib/*.so +usr/share/linuxcnc/Makefile.modinc +usr/share/man/man1/halcompile.1 +usr/share/man/man3 diff --git a/debian/linuxcnc-uspace.docs b/debian/linuxcnc-uspace.docs new file mode 100644 index 00000000000..ba9cf238404 --- /dev/null +++ b/debian/linuxcnc-uspace.docs @@ -0,0 +1,3 @@ +usr/share/doc/linuxcnc/examples + +README.md diff --git a/debian/linuxcnc-uspace.links b/debian/linuxcnc-uspace.links new file mode 100644 index 00000000000..62cc618150c --- /dev/null +++ b/debian/linuxcnc-uspace.links @@ -0,0 +1 @@ +usr/share/linuxcnc/ncfiles usr/share/doc/linuxcnc/examples/nc_files diff --git a/debian/linuxcnc.install.in b/debian/linuxcnc.install.in index ac695f27233..eca4fa874ff 100644 --- a/debian/linuxcnc.install.in +++ b/debian/linuxcnc.install.in @@ -1 +1,262 @@ +etc + +usr/bin/5axisgui +usr/bin/axis +usr/bin/axis-remote +usr/bin/classicladder +usr/bin/debuglevel +usr/bin/elbpcom +usr/bin/genserkins +usr/bin/gladevcp +usr/bin/gladevcp_demo +usr/bin/gmoccapy +usr/bin/gremlin_view +usr/bin/gs2_vfd +usr/bin/gscreen +usr/bin/hal-histogram +usr/bin/hal_input +usr/bin/hal_manualtoolchange +usr/bin/halcmd +usr/bin/halcmd_twopass +usr/bin/halmeter +usr/bin/halreport +usr/bin/halrmt +usr/bin/halrun +usr/bin/halsampler +usr/bin/halscope +usr/bin/halshow +usr/bin/halstreamer +usr/bin/haltcl +usr/bin/halui +usr/bin/hbmgui +usr/bin/hexagui +usr/bin/hy_gt_vfd +usr/bin/hy_vfd +usr/bin/image-to-gcode +usr/bin/inivar +usr/bin/io +usr/bin/iov2 +usr/bin/latency-histogram +usr/bin/latency-plot +usr/bin/latency-test +usr/bin/lineardelta +usr/bin/linuxcnc +usr/bin/linuxcnc_info +usr/bin/linuxcnc_module_helper +usr/bin/linuxcnc_var +usr/bin/linuxcnclcd +usr/bin/linuxcncmkdesktop +usr/bin/linuxcncrsh +usr/bin/linuxcncsvr +usr/bin/linuxcnctop +usr/bin/maho600gui +usr/bin/max5gui +usr/bin/mb2hal +usr/bin/mdi +usr/bin/melfagui +usr/bin/milltask +usr/bin/millturngui +usr/bin/mitsub_vfd +usr/bin/monitor-xhc-hb04 +usr/bin/motion-logger +usr/bin/moveoff_gui +usr/bin/ngcgui +usr/bin/panelui +usr/bin/pi500_vfd +usr/bin/pmx485 +usr/bin/pmx485-test +usr/bin/pncconf +usr/bin/puma560gui +usr/bin/pumagui +usr/bin/pyngcgui +usr/bin/pyui +usr/bin/pyvcp +usr/bin/pyvcp_demo +usr/bin/qtplasmac-cfg2prefs +usr/bin/qtplasmac-materials +usr/bin/qtplasmac-plasmac2qt +usr/bin/qtplasmac_gcode +usr/bin/qtvcp +usr/bin/rotarydelta +usr/bin/rs274 +usr/bin/rtapi_app +usr/bin/scaragui +usr/bin/schedrmt +usr/bin/scorbot-er-3 +usr/bin/sendkeys +usr/bin/shuttle +usr/bin/sim-torch +usr/bin/sim_pin +usr/bin/simulate_probe +usr/bin/stepconf +usr/bin/svd-ps_vfd +usr/bin/teach-in +usr/bin/thermistor +usr/bin/tool_mmap_read +usr/bin/tool_watch +usr/bin/tooledit +usr/bin/touchy +usr/bin/update_ini +usr/bin/vfdb_vfd +usr/bin/vfs11_vfd +usr/bin/wj200_vfd +usr/bin/xhc-hb04 +usr/bin/xhc-hb04-accels +usr/bin/xhc-whb04b-6 +usr/bin/xyzac-trt-gui +usr/bin/xyzbc-trt-gui + +usr/lib/lib*.so.* +usr/lib/linuxcnc +usr/lib/python3 +usr/lib/tcltk + +usr/share/axis +usr/share/glade3 +usr/share/gmoccapy +usr/share/gscreen +usr/share/gtksourceview-2.0 + +usr/share/applications/linuxcnc.desktop +usr/share/applications/linuxcnc-latency.desktop +usr/share/applications/linuxcnc-latency-histogram.desktop +usr/share/applications/linuxcnc-pncconf.desktop +usr/share/applications/linuxcnc-stepconf.desktop + +usr/share/linuxcnc/gremlin_view.ui +usr/share/linuxcnc/gscreen2.glade +usr/share/linuxcnc/gscreen.glade +usr/share/linuxcnc/hallib/ +usr/share/linuxcnc/linuxcnc_big.nml +usr/share/linuxcnc/linuxcnc.gif +usr/share/linuxcnc/linuxcncicon.png +usr/share/linuxcnc/linuxcnc.nml +usr/share/linuxcnc/linuxcnc-wizard.gif +usr/share/linuxcnc/ncfiles/ +usr/share/linuxcnc/pncconf/ +usr/share/linuxcnc/popupkeyboard.ui +usr/share/linuxcnc/stepconf/ +usr/share/linuxcnc/touchy.glade + +usr/share/locale + +usr/share/man/man1/5axisgui.1 +usr/share/man/man1/axis.1 +usr/share/man/man1/axis-remote.1 +usr/share/man/man1/debuglevel.1 +usr/share/man/man1/elbpcom.1 +usr/share/man/man1/gladevcp.1 +usr/share/man/man1/gladevcp_demo.1 +usr/share/man/man1/gmoccapy.1 +usr/share/man/man1/gremlin_view.1 +usr/share/man/man1/gs2_vfd.1 +usr/share/man/man1/gscreen.1 +usr/share/man/man1/halcmd.1 +usr/share/man/man1/halcmd_twopass.1 +usr/share/man/man1/hal-histogram.1 +usr/share/man/man1/hal_input.1 +usr/share/man/man1/hal_manualtoolchange.1 +usr/share/man/man1/halmeter.1 +usr/share/man/man1/hal_parport.1 +usr/share/man/man1/halreport.1 +usr/share/man/man1/halrmt.1 +usr/share/man/man1/halrun.1 +usr/share/man/man1/halsampler.1 +usr/share/man/man1/halscope.1 +usr/share/man/man1/halshow.1 +usr/share/man/man1/halstreamer.1 +usr/share/man/man1/haltcl.1 +usr/share/man/man1/halui.1 +usr/share/man/man1/hbmgui.1 +usr/share/man/man1/hexagui.1 +usr/share/man/man1/hy_gt_vfd.1 +usr/share/man/man1/hy_vfd.1 +usr/share/man/man1/image-to-gcode.1 +usr/share/man/man1/inivar.1 +usr/share/man/man1/io.1 +usr/share/man/man1/iocontrol.1 +usr/share/man/man1/iov2.1 +usr/share/man/man1/latency-histogram.1 +usr/share/man/man1/latency-plot.1 +usr/share/man/man1/latency-test.1 +usr/share/man/man1/lineardelta.1 +usr/share/man/man1/linuxcnc.1 +usr/share/man/man1/linuxcnc_info.1 +usr/share/man/man1/linuxcnclcd.1 +usr/share/man/man1/linuxcncmkdesktop.1 +usr/share/man/man1/linuxcnc_module_helper.1 +usr/share/man/man1/linuxcncrsh.1 +usr/share/man/man1/linuxcncsvr.1 +usr/share/man/man1/linuxcnctop.1 +usr/share/man/man1/linuxcnc_var.1 +usr/share/man/man1/maho600gui.1 +usr/share/man/man1/max5gui.1 +usr/share/man/man1/mb2hal.1 +usr/share/man/man1/mdi.1 +usr/share/man/man1/mdro.1 +usr/share/man/man1/milltask.1 +usr/share/man/man1/mitsub_vfd.1 +usr/share/man/man1/monitor-xhc-hb04.1 +usr/share/man/man1/motion-logger.1 +usr/share/man/man1/moveoff_gui.1 +usr/share/man/man1/ngcgui.1 +usr/share/man/man1/panelui.1 +usr/share/man/man1/pi500_vfd.1 +usr/share/man/man1/pmx485.1 +usr/share/man/man1/pmx485-test.1 +usr/share/man/man1/pncconf.1 +usr/share/man/man1/puma560gui.1 +usr/share/man/man1/pumagui.1 +usr/share/man/man1/pyngcgui.1 +usr/share/man/man1/pyui.1 +usr/share/man/man1/pyvcp.1 +usr/share/man/man1/pyvcp_demo.1 +usr/share/man/man1/qtplasmac-cfg2prefs.1 +usr/share/man/man1/qtplasmac-materials.1 +usr/share/man/man1/qtplasmac-plasmac2qt.1 +usr/share/man/man1/qtplasmac-setup.1 +usr/share/man/man1/qtvcp.1 +usr/share/man/man1/rotarydelta.1 +usr/share/man/man1/rs274.1 +usr/share/man/man1/rtapi_app.1 +usr/share/man/man1/scaragui.1 +usr/share/man/man1/schedrmt.1 +usr/share/man/man1/scorbot-er-3.1 +usr/share/man/man1/sendkeys.1 +usr/share/man/man1/shuttle.1 +usr/share/man/man1/sim_pin.1 +usr/share/man/man1/sim-torch.1 +usr/share/man/man1/simulate_probe.1 +usr/share/man/man1/stepconf.1 +usr/share/man/man1/svd-ps_vfd.1 +usr/share/man/man1/teach-in.1 +usr/share/man/man1/thermistor.1 +usr/share/man/man1/tooledit.1 +usr/share/man/man1/touchy.1 +usr/share/man/man1/update_ini.1 +usr/share/man/man1/vfdb_vfd.1 +usr/share/man/man1/vfs11_vfd.1 +usr/share/man/man1/wj200_vfd.1 +usr/share/man/man1/xhc-hb04.1 +usr/share/man/man1/xhc-hb04-accels.1 +usr/share/man/man1/xhc-whb04b-6.1 +usr/share/man/man1/xyzac-trt-gui.1 +usr/share/man/man1/xyzbc-trt-gui.1 + +usr/share/man/man9 + +usr/share/qtvcp + +src/emc/usr_intf/axis/etc usr/share/doc/@MAIN_PACKAGE_NAME@/axis +src/emc/usr_intf/axis/README usr/share/doc/@MAIN_PACKAGE_NAME@/axis + debian/linuxcnc-uspace.metainfo.xml usr/share/metainfo + +debian/extras/etc / +debian/extras/lib / + +debian/extras/usr/share/icons usr/share + +debian/extras/usr/share/desktop-directories/linuxcnc-cnc.directory usr/share/desktop-directories +debian/extras/usr/share/desktop-directories/linuxcnc-doc.directory usr/share/desktop-directories +debian/extras/usr/share/desktop-directories/linuxcnc-ref.directory usr/share/desktop-directories diff --git a/debian/rules.in b/debian/rules.in index 590b80cf6a2..fb459ad071a 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -31,12 +31,11 @@ export TIME=$(shell LANG=C date --date='@$(TIMESTAMP)' '+%T') kernel_version = @KERNEL_VERSION@ configure_realtime_arg = @CONFIGURE_REALTIME_ARG@ enable_build_documentation = @ENABLE_BUILD_DOCUMENTATION@ -DESTDIR=$(CURDIR)/debian/@MAIN_PACKAGE_NAME@ +DESTDIR=$(CURDIR)/debian/tmp DEV_PACKAGE_NAME=@MAIN_PACKAGE_NAME@-dev %: - # With debhelper 10 the --parallel becomes the default - dh $@ --parallel + dh $@ override_dh_auto_configure: cd src && ./autogen.sh @@ -48,7 +47,7 @@ override_dh_auto_configure: --disable-check-runtime-deps override_dh_auto_build-arch: - $(MAKE) PYTHON=/usr/bin/python3 -C src + $(MAKE) PYTHON=/usr/bin/python3 -C src build-software override_dh_auto_build-indep: ifneq "$(enable_build_documentation)" "" @@ -66,89 +65,59 @@ override_dh_auto_clean: rm -f $(for i in $(find . -name "*.in"); do basename $i .in; done) dh_clean -override_dh_auto_install: - # avoid installing into already existing directory - rm -rf $(DESTDIR) - # executing regular installation with regular prefix but unterneath the debian folder - DESTDIR=$(DESTDIR) $(MAKE) -C src install - # Version 0.22 and newer of the desktop-file-validate program - # (in Jessie and newer) can deal with multiple files specified - # on the command line. Version 0.20 (in Wheezy) says it can, - # but can't. So feed it the files one by one. - for F in $(shell find debian/extras/ share/applications/ -name *.desktop); do \ - desktop-file-validate $$F; \ - done - # Adding files that are Debian-specific - cd debian/@EXTRAS@ && cp -a * $(DESTDIR) - DESTDIR=$(DESTDIR) $(MAKE) -C src INSTALL=install - py3clean . - # In case that only the indep packages are built - if ls lib|egrep -q "*.a$$"; then \ - mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/lib ; \ - cp lib/*.a debian/$(DEV_PACKAGE_NAME)/usr/lib ; \ - fi - mkdir -p $(DESTDIR)/usr/share/doc/linuxcnc - cp docs/html/gcode*.html $(DESTDIR)/usr/share/doc/linuxcnc/ - - # Moving all language-specific .desktop files to the respective -doc-$$lang package - for lang in zh_CN es fr; do \ - p=$$(echo $$lang | tr _ - | tr A-Z a-z); \ - d=debian/linuxcnc-doc-$$p/usr/share/applications/ ; \ - mkdir -p $$d ; \ - mv -t $$d $(DESTDIR)/usr/share/applications/*_$${lang}.desktop ; \ - done - # Moving all remaining .desktop files to the default documentation - d=debian/linuxcnc-doc-en/usr/share/applications/ ; \ - mkdir -p $$d ; \ - mv -t $$d $(DESTDIR)/usr/share/applications/linuxcnc-gettingstarted.desktop ; \ - mv -t $$d $(DESTDIR)/usr/share/applications/linuxcnc-documentation.desktop ; \ - mv -t $$d $(DESTDIR)/usr/share/applications/linuxcnc-integratorinfo.desktop ; \ - mv -t $$d $(DESTDIR)/usr/share/applications/linuxcnc-manualpages.desktop - - # Only the English developer documentation goes to the -dev package - # The translated developer documentation goes to the respective regular -doc package - # english documentation has no "en" suffix - if [ -r $(DESTDIR)/usr/share/doc/linuxcnc/LinuxCNC_Developer.pdf ]; then \ - mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/share/doc/linuxcnc-dev; \ - mv -t debian/$(DEV_PACKAGE_NAME)/usr/share/doc/linuxcnc-dev/ $(DESTDIR)/usr/share/doc/linuxcnc/LinuxCNC_Developer.pdf; \ - mv -t debian/$(DEV_PACKAGE_NAME)/usr/share/doc/linuxcnc-dev/ $(DESTDIR)/usr/share/doc/linuxcnc/LinuxCNC_Developer_*.pdf; \ - for lang in zh_CN es fr; do \ - p=$$(echo $$lang | tr _ - | tr A-Z a-z); \ - d=debian/linuxcnc-doc-$$p/usr/share/doc/linuxcnc ; \ - mkdir -p $$d ; \ - find $(DESTDIR)/usr/share/doc/linuxcnc -name "*_$${lang}.pdf" | xargs -r mv -t $$d ; \ - done; \ - d=debian/linuxcnc-doc-en/usr/share/doc/linuxcnc && mkdir -p $$d && mv -t $$d $(DESTDIR)/usr/share/doc/linuxcnc/*.pdf; \ - fi - - mkdir -p $(DESTDIR)/usr/share/doc/linuxcnc/examples - cd $(DESTDIR)/usr/share/doc/linuxcnc/examples && ln -sf ../../../linuxcnc/ncfiles ./nc_files - # -dev - mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/include - mv -t debian/$(DEV_PACKAGE_NAME)/usr/include $(DESTDIR)/usr/include/linuxcnc - - # In case that only the indep packages are built - if ls $(DESTDIR)/usr/lib/*.a $(DESTDIR)/usr/lib/*.so | egrep -q "*.(a|so)$$"; then \ - mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/lib; \ - mv -t debian/$(DEV_PACKAGE_NAME)/usr/lib/ $(DESTDIR)/usr/lib/*.a $(DESTDIR)/usr/lib/*.so; \ - mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/bin; \ - mv -t debian/$(DEV_PACKAGE_NAME)/usr/bin $(DESTDIR)/usr/bin/halcompile; \ - mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/share/man/man1; \ - mv -t debian/$(DEV_PACKAGE_NAME)/usr/share/man/man1 $(DESTDIR)/usr/share/man/man1/halcompile.1; \ - mv -t debian/$(DEV_PACKAGE_NAME)/usr/share/man $(DESTDIR)/usr/share/man/man3; \ - mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/share/linuxcnc; \ - mv -t debian/$(DEV_PACKAGE_NAME)/usr/share/linuxcnc $(DESTDIR)/usr/share/linuxcnc/Makefile.modinc; \ - fi - #mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/share/doc/ - #mkdir -t debian/$(DEV_PACKAGE_NAME)/usr/share/doc/ $(DESTDIR)/usr/share/doc/linuxcnc-dev/ - # not a package: drivers - #mkdir -p debian/drivers/usr/bin - #mv -t debian/drivers/usr/bin $(DESTDIR)/usr/bin/pci_write $(DESTDIR)/usr/bin/pci_read +override_dh_auto_install-arch: + # Install all architecture-dependent libraries and executables + # in DESTDIR (the staging dir for the main package). + DESTDIR=$(DESTDIR) $(MAKE) -C src install-software + py3clean . + desktop-file-validate $(shell find debian/extras/ share/applications/ -name *.desktop); + # some clean-up - #rm -rf $(DESTDIR)/usr/share/doc/linuxcnc/html - rm -f $(DESTDIR)/usr/share/doc/linuxcnc/examples/sample-configs/*/*position*.txt + rm -f $(DESTDIR)/usr/share/doc/@MAIN_PACKAGE_NAME@/examples/sample-configs/*/*position*.txt + +override_dh_installdocs-arch: + # Sample configs go in `usr/share/doc/linuxcnc` (not + # `.../doc/@MAIN_PACKAGE_NAME@`) because that's where the + # `linuxcnc` launcher script looks for them, and that's + # inconvenient to change. + dh_installdocs --doc-main-package=@MAIN_PACKAGE_NAME@ --package=@MAIN_PACKAGE_NAME@ + mkdir -p debian/@MAIN_PACKAGE_NAME@/usr/share/doc/linuxcnc + mv debian/@MAIN_PACKAGE_NAME@/usr/share/doc/@MAIN_PACKAGE_NAME@/examples debian/@MAIN_PACKAGE_NAME@/usr/share/doc/linuxcnc + + dh_installdocs --doc-main-package=@MAIN_PACKAGE_NAME@ --package=@MAIN_PACKAGE_NAME@-dev + + +override_dh_auto_install-indep: + DESTDIR=$(DESTDIR) $(MAKE) -C src install-docs install-doc + +override_dh_installdocs-indep: + # The G-code quick reference html docs are built as + # `docs/html/${LANG}/gcode.html`. We install them + # into `/usr/share/doc/@MAIN_PACKAGE_NAME@/` in each + # linuxcnc-doc-${LANG} package, then rename them there (except + # for the English one) to include the language in the filename, + # so they don't collide when we install all the doc debs. + # + # Rename the "main" doc directories from + # `usr/share/doc/@MAIN_PACKAGE_NAME@` to `usr/share/doc/linuxcnc`, + # because that's where the `.desktop` files look for the docs. + dh_installdocs --doc-main-package=@MAIN_PACKAGE_NAME@ --package=linuxcnc-doc-en + mv debian/linuxcnc-doc-en/usr/share/doc/@MAIN_PACKAGE_NAME@ debian/linuxcnc-doc-en/usr/share/doc/linuxcnc + + dh_installdocs --doc-main-package=@MAIN_PACKAGE_NAME@ --package=linuxcnc-doc-es + mv debian/linuxcnc-doc-es/usr/share/doc/@MAIN_PACKAGE_NAME@/gcode.html debian/linuxcnc-doc-es/usr/share/doc/@MAIN_PACKAGE_NAME@/gcode_es.html + mv debian/linuxcnc-doc-es/usr/share/doc/@MAIN_PACKAGE_NAME@ debian/linuxcnc-doc-es/usr/share/doc/linuxcnc + + dh_installdocs --doc-main-package=@MAIN_PACKAGE_NAME@ --package=linuxcnc-doc-fr + mv debian/linuxcnc-doc-fr/usr/share/doc/@MAIN_PACKAGE_NAME@/gcode.html debian/linuxcnc-doc-fr/usr/share/doc/@MAIN_PACKAGE_NAME@/gcode_fr.html + mv debian/linuxcnc-doc-fr/usr/share/doc/@MAIN_PACKAGE_NAME@ debian/linuxcnc-doc-fr/usr/share/doc/linuxcnc + + dh_installdocs --doc-main-package=@MAIN_PACKAGE_NAME@ --package=linuxcnc-doc-zh-cn + mv debian/linuxcnc-doc-zh-cn/usr/share/doc/@MAIN_PACKAGE_NAME@/gcode.html debian/linuxcnc-doc-zh-cn/usr/share/doc/@MAIN_PACKAGE_NAME@/gcode_zh_CN.html + mv debian/linuxcnc-doc-zh-cn/usr/share/doc/@MAIN_PACKAGE_NAME@ debian/linuxcnc-doc-zh-cn/usr/share/doc/linuxcnc + override_dh_compress: dh_compress -X.pdf -X.txt -X.hal -X.ini -X.clp -X.var -X.nml -X.tbl -X.xml -Xsample-configs diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides index 1ca906aaef7..af9033524f1 100644 --- a/debian/source/lintian-overrides +++ b/debian/source/lintian-overrides @@ -1,5 +1,2 @@ # False positive - python3 is invoked in d/rules. linuxcnc source: python3-depends-but-no-python3-helper linuxcnc-uspace linuxcnc-uspace-dev - -# For the early versions of debhelper (<10) this is not unnecessary -linuxcnc source: debian-rules-uses-unnecessary-dh-argument dh ... --parallel (line 32) diff --git a/docs/src/Submakefile b/docs/src/Submakefile index 7bd024ec1ef..d2d854d871e 100644 --- a/docs/src/Submakefile +++ b/docs/src/Submakefile @@ -28,7 +28,7 @@ MAN_SRCS = $(sort \ ./config.status --file=$@:$< ifneq ($(MANDB),) -default: $(DOC_DIR)/man/index.db +docs: $(DOC_DIR)/man/index.db $(DOC_DIR)/man/index.db: $(MAN_SRCS) @echo "Updating 'whatis' database" $(Q)$(MANDB) $(DOC_DIR)/man @@ -722,7 +722,6 @@ $(patsubst %.adoc,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_ZH_CN_SMALL)): $(DOC_SRCDIR)/% -a stylesheet=linuxcnc.css \ -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm -f $@; exit $$X) -default: docs $(DOC_DIR)/html/de/xref.html: objects/xref_de.xml $(DOC_SRCDIR)/xref.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml $(ECHO) Converting $< to HTML @xsltproc --stringparam docname "xref_de" --stringparam language spanish --path objects -o $@ $(DOC_SRCDIR)/xref.xsl $< @@ -756,7 +755,6 @@ install-doc-pdf: install-doc-html: $(DIR) $(DESTDIR)$(docsdir) cp -a $(DOC_DIR)/html $(DESTDIR)$(docsdir) -install-kernel-indep: install-doc docclean: -rm -f $(DOC_DIR)/LinuxCNC_Getting_Started.pdf diff --git a/src/Makefile b/src/Makefile index bdd3127b94b..3fdb7423fb4 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,3 +1,31 @@ +# Some useful targets: +# +# default (if no make target is specified): Build the software and +# the docs (if enabled via configure). +# +# build-software: Build all the realtime and non-realtime software +# libraries & executables. +# +# docs: Build all the documentation that's enabled through configure. +# +# +# install: Install everything (realtime software, non-realtime +# software, and docs). +# +# install-software: Install all architecture-specific things (realtime +# and non-realtime libraries and executables). +# +# install-docs: Install all enabled documentation into $(DESTDIR). +# + + +default: build-software + +install: install-software install-docs + +install-software: install-kernel-dep install-kernel-indep install-menu + + # buster gcc (Debian 8.3.0-6) emits many warnings # use at your own risk ifeq ($(origin SUPPRESS_WARNINGS), undefined) @@ -32,7 +60,7 @@ endif # Delete the default suffix rules .SUFFIXES: -.PHONY: default userspace modules clean modclean depclean install python pythonclean cscope cscopeclean +.PHONY: default build-software userspace modules clean modclean depclean install install-software install-docs python pythonclean cscope cscopeclean # A "trivial build" is one which should not include dependency information # either because it should be usable before dependency information can be @@ -113,7 +141,7 @@ cxx-option = $(shell if $(CXX) $(CXXFLAGS) $(1) -S -o /dev/null -xc++ /dev/null ifeq ($(origin KERNELRELEASE),undefined) # When KERNELRELEASE is not defined, this is the userspace build. # The "modules" target is the gateway to the kernel module build. -default: userspace modules +build-software: userspace modules ifeq ($(RUN_IN_PLACE),yes) ifneq ($(BUILD_SYS),uspace) @if [ -f ../bin/linuxcnc_module_helper ]; then if ! [ `id -u` = 0 -a -O ../bin/linuxcnc_module_helper -a -u ../bin/linuxcnc_module_helper ]; then $(VECHO) "You now need to run 'sudo make setuid' in order to run in place."; fi; fi @@ -303,6 +331,8 @@ INFILES = \ ../share/applications/linuxcnc.desktop \ ../share/applications/linuxcnc-latency.desktop \ ../share/applications/linuxcnc-latency-histogram.desktop \ + ../share/applications/linuxcnc-pncconf.desktop \ + ../share/applications/linuxcnc-stepconf.desktop \ ../scripts/linuxcnc_var \ ../scripts/halcmd_twopass \ ../scripts/runtests \ @@ -310,7 +340,7 @@ INFILES = \ $(INFILES): %: %.in config.status @./config.status --file=$@ -default: $(INFILES) +build-software: $(INFILES) # For each file to be copied to ../include, its location in the source tree # is listed here. Note that due to $(INCLUDE), defined above, the include @@ -600,6 +630,8 @@ XDGDESKTOP = \ ../share/applications/linuxcnc.desktop \ ../share/applications/linuxcnc-latency.desktop \ ../share/applications/linuxcnc-latency-histogram.desktop \ + ../share/applications/linuxcnc-pncconf.desktop \ + ../share/applications/linuxcnc-stepconf.desktop \ ifeq ($(RUN_IN_PLACE),yes) define ERROR_MESSAGE @@ -607,7 +639,7 @@ You configured run-in-place, but are trying to install. For an installable version, run configure without --enable-run-in-place and rebuild endef -install: +install install-software install-docs: $(error $(ERROR_MESSAGE)) MENUS = ../share/menus/CNC.menu \ @@ -626,13 +658,6 @@ NC_FILES=$(filter-out %/butterfly.ngc,$(call GLOB,../nc_files/*)) TCL=$(call GLOB,../tcl/*.tcl) TCL_BIN=$(call GLOB,../tcl/bin/*.tcl) ../tcl/bin/popimage -install: - $(MAKE) install-docs || echo "Ignored." - $(MAKE) install-kernel-dep || echo "Ignored." - $(MAKE) install-kernel-indep || echo "Ignored." - $(MAKE) install-menu - $(ECHO) "Installed in DESTDIR='$(DESTDIR)' with prefix $(prefix)" - install-docs: $(DIR) $(DESTDIR)$(docsdir) $(FILE) $(addprefix ../docs/,$(DOCS)) $(DESTDIR)$(docsdir)