From a6bc92ce08456eb6696719ed3d022dd66882dc16 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 16 Aug 2022 09:51:49 -0600 Subject: [PATCH 01/20] Makefile: generate and install the {pnc,step}conf desktop files --- src/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Makefile b/src/Makefile index bdd3127b94b..09c68fbadc6 100644 --- a/src/Makefile +++ b/src/Makefile @@ -303,6 +303,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 \ @@ -600,6 +602,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 From aa77f2ac6d85b51529f1848c369bea5f9ec528c9 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 5 Jul 2022 19:16:31 -0600 Subject: [PATCH 02/20] d/configure: get rid of EXTRAS, we don't use it anymore --- debian/configure | 3 --- debian/rules.in | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/debian/configure b/debian/configure index 3cbb560b8c7..859924904ab 100755 --- a/debian/configure +++ b/debian/configure @@ -62,8 +62,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" @@ -137,7 +135,6 @@ sed \ -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/rules.in b/debian/rules.in index 590b80cf6a2..832ebe2177b 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -79,7 +79,7 @@ override_dh_auto_install: desktop-file-validate $$F; \ done # Adding files that are Debian-specific - cd debian/@EXTRAS@ && cp -a * $(DESTDIR) + cd debian/extras && cp -a * $(DESTDIR) DESTDIR=$(DESTDIR) $(MAKE) -C src INSTALL=install py3clean . # In case that only the indep packages are built From 728c83221ca5790a557eb08fea11e515e5aedd2d Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 5 Jul 2022 19:26:06 -0600 Subject: [PATCH 03/20] d/configure: get rid of EXTRA_FILES, it's not used --- debian/configure | 3 --- 1 file changed, 3 deletions(-) diff --git a/debian/configure b/debian/configure index 859924904ab..9d4a1512208 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" @@ -118,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 @@ -133,7 +131,6 @@ 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#@KERNEL_DEPENDS@#$KERNEL_DEPENDS#g" \ -e "s#@KERNEL_DEPENDS_BUILD@#$KERNEL_DEPENDS_BUILD#g" \ From dfb16c83f968a3d211125c4fd178d2b23df262ef Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 5 Jul 2022 19:18:33 -0600 Subject: [PATCH 04/20] d/rules: simplify validation of *.desktop files The tools have gotten better, we don't need this clumsy work-around any more. --- debian/rules.in | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/debian/rules.in b/debian/rules.in index 832ebe2177b..add72b5c420 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -71,14 +71,7 @@ override_dh_auto_install: 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 + desktop-file-validate $(shell find debian/extras/ share/applications/ -name *.desktop); cd debian/extras && cp -a * $(DESTDIR) DESTDIR=$(DESTDIR) $(MAKE) -C src INSTALL=install py3clean . From e896b41aaeb8b2637a3f04459ee3f324cd8f41c1 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 26 Jul 2022 10:52:56 -0600 Subject: [PATCH 05/20] d/rules: remove dead code --- debian/rules.in | 6 ------ 1 file changed, 6 deletions(-) diff --git a/debian/rules.in b/debian/rules.in index add72b5c420..92d796f93dc 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -133,14 +133,8 @@ override_dh_auto_install: 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 # some clean-up - #rm -rf $(DESTDIR)/usr/share/doc/linuxcnc/html rm -f $(DESTDIR)/usr/share/doc/linuxcnc/examples/sample-configs/*/*position*.txt override_dh_compress: From 9f4e940cd681fa3706714a2eb12f90c037411db9 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Wed, 6 Jul 2022 14:05:35 -0600 Subject: [PATCH 06/20] Makefiles: new targets to build & install just software or just docs This is mostly to help the debian packaging build just the architecture-dependent parts (the software, via `dpkg-buildpackage -B`) or just the architecture-independent parts (the docs, via `dpkg-buildpackage -A`). --- docs/src/Submakefile | 4 +--- src/Makefile | 43 ++++++++++++++++++++++++++++++++----------- 2 files changed, 33 insertions(+), 14 deletions(-) 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 09c68fbadc6..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 @@ -312,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 @@ -611,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 \ @@ -630,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) From fe3d7f622ec6bf6d123c609eca527e0055fc9b41 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 26 Jul 2022 09:44:01 -0600 Subject: [PATCH 07/20] d/rules: only build the software (no docs) for architecture-dependent packages --- debian/rules.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules.in b/debian/rules.in index 92d796f93dc..55d3bbaa6a3 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -48,7 +48,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)" "" From ebc55fae869e368680e86116e5d54c88a7e02b4f Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Wed, 6 Jul 2022 14:05:04 -0600 Subject: [PATCH 08/20] d/rules: sort dh_auto_install stuff into -arch and -indep --- debian/rules.in | 75 +++++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/debian/rules.in b/debian/rules.in index 55d3bbaa6a3..3d25927f086 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -66,23 +66,52 @@ 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 + +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 . + + # Install all desktop files, application-menu entries, and associated + # icons in DESTDIR. desktop-file-validate $(shell find debian/extras/ share/applications/ -name *.desktop); 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 + + # Install G-code quick reference docs in DESTDIR. + # NOTE: This is arguably documentation, but it lives in the + # architecture-dependent binary package for historical reasons. mkdir -p $(DESTDIR)/usr/share/doc/linuxcnc cp docs/html/gcode*.html $(DESTDIR)/usr/share/doc/linuxcnc/ + # Move static libraries to the -dev package. + mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/lib + cp lib/*.a debian/$(DEV_PACKAGE_NAME)/usr/lib + + 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 + + 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 + + # some clean-up + rm -f $(DESTDIR)/usr/share/doc/linuxcnc/examples/sample-configs/*/*position*.txt + + +override_dh_auto_install-indep: + DESTDIR=$(DESTDIR) $(MAKE) -C src install-docs install-doc + # 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); \ @@ -114,28 +143,6 @@ override_dh_auto_install: 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 - - # some clean-up - rm -f $(DESTDIR)/usr/share/doc/linuxcnc/examples/sample-configs/*/*position*.txt 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 From 2579992f05fddf420fd2686f7e66344f8e73883f Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 26 Jul 2022 09:46:30 -0600 Subject: [PATCH 09/20] linuxcnc-uspace: use dh_install to install the appropriate 'extra' files --- debian/linuxcnc.install.in | 9 +++++++++ debian/rules.in | 3 --- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/debian/linuxcnc.install.in b/debian/linuxcnc.install.in index ac695f27233..e331c4dc1d6 100644 --- a/debian/linuxcnc.install.in +++ b/debian/linuxcnc.install.in @@ -1 +1,10 @@ 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 3d25927f086..c5b7f887ee5 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -73,10 +73,7 @@ override_dh_auto_install-arch: DESTDIR=$(DESTDIR) $(MAKE) -C src install-software py3clean . - # Install all desktop files, application-menu entries, and associated - # icons in DESTDIR. desktop-file-validate $(shell find debian/extras/ share/applications/ -name *.desktop); - cd debian/extras && cp -a * $(DESTDIR) # Install G-code quick reference docs in DESTDIR. # NOTE: This is arguably documentation, but it lives in the From 97e3e291abaffd12b9d49c9af5a47746f1f6f374 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Sat, 23 Jul 2022 08:32:25 -0600 Subject: [PATCH 10/20] linuxcnc-uspace: include the optional axis config files & README --- debian/linuxcnc.install.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/debian/linuxcnc.install.in b/debian/linuxcnc.install.in index e331c4dc1d6..e05b6f55804 100644 --- a/debian/linuxcnc.install.in +++ b/debian/linuxcnc.install.in @@ -1,3 +1,6 @@ +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 / From 223bf76b9498759dc148846589db4c35c798c6b1 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 26 Jul 2022 09:19:54 -0600 Subject: [PATCH 11/20] linuxcnc-uspace: use dh_installdocs to include a missing doc --- debian/.gitignore | 5 ++++- debian/linuxcnc-uspace.docs | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 debian/linuxcnc-uspace.docs 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/linuxcnc-uspace.docs b/debian/linuxcnc-uspace.docs new file mode 100644 index 00000000000..b43bf86b50f --- /dev/null +++ b/debian/linuxcnc-uspace.docs @@ -0,0 +1 @@ +README.md From 2022c4e736ddd2ac01b17d0a4f066b339a98785b Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 26 Jul 2022 10:22:32 -0600 Subject: [PATCH 12/20] d/rules: change DESTDIR to debian/tmp --- debian/rules.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules.in b/debian/rules.in index c5b7f887ee5..5e891407c2c 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -31,7 +31,7 @@ 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 %: From 97c29dbf6fbe934d53498cd31293e26fc37458fd Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Mon, 15 Aug 2022 11:02:08 -0600 Subject: [PATCH 13/20] linuxcnc-doc-*: use dh_install and dh_installdocs Install docs with dh_installdocs, other files (like .desktop entries) with dh_install. Install all docs in /usr/share/doc/linuxcnc, not /usr/share/doc/linuxcnc-uspace, because that's where the .desktop files look for the docs. Handle each lang explicitly because we'll need to different special things for -en vs all the others. --- debian/linuxcnc-doc-en.docs | 12 +++++++++ debian/linuxcnc-doc-en.install | 5 ++++ debian/linuxcnc-doc-es.docs | 7 +++++ debian/linuxcnc-doc-es.install | 1 + debian/linuxcnc-doc-fr.docs | 4 +++ debian/linuxcnc-doc-fr.install | 1 + debian/linuxcnc-doc-zh-cn.docs | 4 +++ debian/linuxcnc-doc-zh-cn.install | 1 + debian/rules.in | 45 +++++++++++-------------------- 9 files changed, 50 insertions(+), 30 deletions(-) create mode 100644 debian/linuxcnc-doc-en.docs create mode 100644 debian/linuxcnc-doc-en.install create mode 100644 debian/linuxcnc-doc-es.docs create mode 100644 debian/linuxcnc-doc-es.install create mode 100644 debian/linuxcnc-doc-fr.docs create mode 100644 debian/linuxcnc-doc-fr.install create mode 100644 debian/linuxcnc-doc-zh-cn.docs create mode 100644 debian/linuxcnc-doc-zh-cn.install diff --git a/debian/linuxcnc-doc-en.docs b/debian/linuxcnc-doc-en.docs new file mode 100644 index 00000000000..a5ac9bd25fb --- /dev/null +++ b/debian/linuxcnc-doc-en.docs @@ -0,0 +1,12 @@ +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 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..39c3c146072 --- /dev/null +++ b/debian/linuxcnc-doc-es.docs @@ -0,0 +1,7 @@ +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 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..1b8cbb1f455 --- /dev/null +++ b/debian/linuxcnc-doc-fr.docs @@ -0,0 +1,4 @@ +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 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..88aeee9ee6a --- /dev/null +++ b/debian/linuxcnc-doc-zh-cn.docs @@ -0,0 +1,4 @@ +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 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/rules.in b/debian/rules.in index 5e891407c2c..efe1d92d9eb 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -109,36 +109,21 @@ override_dh_auto_install-arch: override_dh_auto_install-indep: DESTDIR=$(DESTDIR) $(MAKE) -C src install-docs install-doc - # 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 +override_dh_installdocs-indep: + # 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@ 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@ 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@ debian/linuxcnc-doc-zh-cn/usr/share/doc/linuxcnc override_dh_compress: From bed446b242ae46705a85c41b391912b842a75d71 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Tue, 26 Jul 2022 09:46:39 -0600 Subject: [PATCH 14/20] move g-code quick ref from linuxcnc-uspace to doc debs The new translation infrastructure means we need to build the translated docs to generate the g-code quick refs. Since we have separate "-arch" and "-indep" targets in debian/rules now, we don't build the docs when building linuxcnc-uspace, so the g-code refs need to move to the doc debs. --- debian/linuxcnc-doc-en.docs | 2 ++ debian/linuxcnc-doc-es.docs | 2 ++ debian/linuxcnc-doc-fr.docs | 2 ++ debian/linuxcnc-doc-zh-cn.docs | 2 ++ debian/rules.in | 16 ++++++++++------ 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/debian/linuxcnc-doc-en.docs b/debian/linuxcnc-doc-en.docs index a5ac9bd25fb..0574e81f03c 100644 --- a/debian/linuxcnc-doc-en.docs +++ b/debian/linuxcnc-doc-en.docs @@ -10,3 +10,5 @@ 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-es.docs b/debian/linuxcnc-doc-es.docs index 39c3c146072..d756b6f22df 100644 --- a/debian/linuxcnc-doc-es.docs +++ b/debian/linuxcnc-doc-es.docs @@ -5,3 +5,5 @@ 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-fr.docs b/debian/linuxcnc-doc-fr.docs index 1b8cbb1f455..82d325edc85 100644 --- a/debian/linuxcnc-doc-fr.docs +++ b/debian/linuxcnc-doc-fr.docs @@ -2,3 +2,5 @@ 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-zh-cn.docs b/debian/linuxcnc-doc-zh-cn.docs index 88aeee9ee6a..dfd385eb3ad 100644 --- a/debian/linuxcnc-doc-zh-cn.docs +++ b/debian/linuxcnc-doc-zh-cn.docs @@ -2,3 +2,5 @@ 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/rules.in b/debian/rules.in index efe1d92d9eb..6a73a0225a7 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -75,12 +75,6 @@ override_dh_auto_install-arch: desktop-file-validate $(shell find debian/extras/ share/applications/ -name *.desktop); - # Install G-code quick reference docs in DESTDIR. - # NOTE: This is arguably documentation, but it lives in the - # architecture-dependent binary package for historical reasons. - mkdir -p $(DESTDIR)/usr/share/doc/linuxcnc - cp docs/html/gcode*.html $(DESTDIR)/usr/share/doc/linuxcnc/ - # Move static libraries to the -dev package. mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/lib cp lib/*.a debian/$(DEV_PACKAGE_NAME)/usr/lib @@ -110,6 +104,13 @@ 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. @@ -117,12 +118,15 @@ override_dh_installdocs-indep: 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 From 7aa8362ef7b838e1797aca8e38b1f3ec1c6e411b Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Mon, 15 Aug 2022 11:02:21 -0600 Subject: [PATCH 15/20] move LinuxCNC_Developer doc from -dev to -doc-en --- debian/linuxcnc-doc-en.doc-base | 1 + debian/linuxcnc-doc-en.docs | 1 + debian/linuxcnc-uspace-dev.doc-base | 6 ------ 3 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 debian/linuxcnc-uspace-dev.doc-base 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 index 0574e81f03c..772992b34a8 100644 --- a/debian/linuxcnc-doc-en.docs +++ b/debian/linuxcnc-doc-en.docs @@ -1,3 +1,4 @@ +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-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 From 9e3c5f1cc70e934593469de873b18a46c0eee823 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Sat, 23 Jul 2022 19:07:00 -0600 Subject: [PATCH 16/20] linuxcnc-uspace: dh_install stuff from debian/tmp We need to list everything we want in linuxcnc-uspace explicitly now, since we changed DESTDIR to install into debian/tmp. --- debian/linuxcnc.install.in | 249 +++++++++++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) diff --git a/debian/linuxcnc.install.in b/debian/linuxcnc.install.in index e05b6f55804..eca4fa874ff 100644 --- a/debian/linuxcnc.install.in +++ b/debian/linuxcnc.install.in @@ -1,3 +1,252 @@ +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 From 51cb55c80b588071ba2c0be1d8919c7556f20430 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Sat, 23 Jul 2022 19:06:51 -0600 Subject: [PATCH 17/20] linuxcnc-uspace-dev: install with dh_install --- debian/linuxcnc-uspace-dev.install | 7 +++++++ debian/rules.in | 18 ------------------ 2 files changed, 7 insertions(+), 18 deletions(-) create mode 100644 debian/linuxcnc-uspace-dev.install 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/rules.in b/debian/rules.in index 6a73a0225a7..5cff6ba6725 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -75,27 +75,9 @@ override_dh_auto_install-arch: desktop-file-validate $(shell find debian/extras/ share/applications/ -name *.desktop); - # Move static libraries to the -dev package. - mkdir -p debian/$(DEV_PACKAGE_NAME)/usr/lib - cp lib/*.a debian/$(DEV_PACKAGE_NAME)/usr/lib - 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 - - 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 - # some clean-up rm -f $(DESTDIR)/usr/share/doc/linuxcnc/examples/sample-configs/*/*position*.txt From dfd4ab3d44d0600fdea03acc52660caaab886167 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Sat, 23 Jul 2022 11:05:00 -0600 Subject: [PATCH 18/20] linuxcnc-uspace: handle sample configs as docs The sample configs need to live in /usr/share/doc/linuxcnc (not /usr/share/doc/linuxcnc-uspace), because that's where the linuxcnc launcher script looks for them. Handle example nc_files/ symlink with dh_link rather than "by hand". --- debian/linuxcnc-uspace.docs | 2 ++ debian/linuxcnc-uspace.links | 1 + debian/rules.in | 16 ++++++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 debian/linuxcnc-uspace.links diff --git a/debian/linuxcnc-uspace.docs b/debian/linuxcnc-uspace.docs index b43bf86b50f..ba9cf238404 100644 --- a/debian/linuxcnc-uspace.docs +++ b/debian/linuxcnc-uspace.docs @@ -1 +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/rules.in b/debian/rules.in index 5cff6ba6725..f7ae65a8dd3 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -75,11 +75,19 @@ override_dh_auto_install-arch: desktop-file-validate $(shell find debian/extras/ share/applications/ -name *.desktop); - mkdir -p $(DESTDIR)/usr/share/doc/linuxcnc/examples - cd $(DESTDIR)/usr/share/doc/linuxcnc/examples && ln -sf ../../../linuxcnc/ncfiles ./nc_files - # some clean-up - 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: From 1ffed0f06613800600a73f6032d8934752003e34 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Mon, 25 Jul 2022 20:08:38 -0600 Subject: [PATCH 19/20] the new linuxcnc-doc-* debs conflict with the old linuxcnc-uspace, and vice versa Some documentation files (gcode*.html) moved from linuxcnc-uspace to linuxcnc-doc-{en,es,fr} (but none moved to -zh-cn). Thus the new linuxcnc-doc-{en,es,fr} debs Break old linuxcnc-uspace, and Replace old linuxcnc-uspace, and the new linuxcnc-uspace Breaks old linuxcnc-doc-{en,es,fr}. --- debian/control.docs.in | 6 ++++++ debian/control.main-pkg.in | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) 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}, From 5932f2249df7f19e30426fdae2d6b379539e4419 Mon Sep 17 00:00:00 2001 From: Sebastian Kuzminsky Date: Wed, 27 Jul 2022 08:17:36 -0600 Subject: [PATCH 20/20] bump debhelper to 12 (available in buster), no longer need --parallel --- debian/configure | 4 ++-- debian/rules.in | 3 +-- debian/source/lintian-overrides | 3 --- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/debian/configure b/debian/configure index 9d4a1512208..e92548ab574 100755 --- a/debian/configure +++ b/debian/configure @@ -86,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) diff --git a/debian/rules.in b/debian/rules.in index f7ae65a8dd3..fb459ad071a 100644 --- a/debian/rules.in +++ b/debian/rules.in @@ -35,8 +35,7 @@ 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 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)