Import freecad_0.21.2+dfsg1-3.debian.tar.xz
authorTobias Frost <tobi@debian.org>
Sat, 25 May 2024 14:11:03 +0000 (16:11 +0200)
committerTobias Frost <tobi@debian.org>
Sat, 25 May 2024 14:11:03 +0000 (16:11 +0200)
[dgit import tarball freecad 0.21.2+dfsg1-3 freecad_0.21.2+dfsg1-3.debian.tar.xz]

42 files changed:
changelog [new file with mode: 0644]
clean [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
freecad-common.install [new file with mode: 0644]
freecad-common.links [new file with mode: 0644]
freecad-common.lintian-overrides [new file with mode: 0644]
freecad-common.manpages [new file with mode: 0644]
freecad-python3.install [new file with mode: 0755]
freecad-python3.postinst [new file with mode: 0644]
freecad-python3.prerm [new file with mode: 0644]
freecad.1 [new file with mode: 0644]
freecad.examples [new file with mode: 0644]
freecad.install [new file with mode: 0644]
freecad.lintian-overrides [new file with mode: 0644]
gbp.conf [new file with mode: 0644]
libfreecad-python3-0.20.install [new file with mode: 0644]
libfreecad-python3-0.20.lintian-overrides [new file with mode: 0644]
not-installed [new file with mode: 0644]
patches/0020-python3.8-syntax.patch [new file with mode: 0644]
patches/0030-octt78.patch [new file with mode: 0644]
patches/0110-desktop-extra-categories.patch [new file with mode: 0644]
patches/1020-fix_gcc8_ftbfs.patch [new file with mode: 0644]
patches/1030-fix_armel_FTBFS.patch [new file with mode: 0644]
patches/1070-disable_memory_check.patch [new file with mode: 0644]
patches/1100-run_single-instance.patch [new file with mode: 0644]
patches/2000-do_not_install_binary_examples.patch [new file with mode: 0644]
patches/2010-exclude_ply.patch [new file with mode: 0644]
patches/2020-fix-cmake-extra-license.patch [new file with mode: 0644]
patches/2030-fix-1017598.patch [new file with mode: 0644]
patches/2040-ftbfs-macappbundle.patch [new file with mode: 0644]
patches/README [new file with mode: 0644]
patches/series [new file with mode: 0644]
rules [new file with mode: 0755]
salsa-ci.yml [new file with mode: 0644]
scripts/get_git_orig_src.sh [new file with mode: 0755]
source/format [new file with mode: 0644]
source/lintian-overrides [new file with mode: 0644]
tests/control [new file with mode: 0644]
tests/freecadtest [new file with mode: 0755]
upstream/metadata [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..5e0288b
--- /dev/null
+++ b/changelog
@@ -0,0 +1,1268 @@
+freecad (0.21.2+dfsg1-3) unstable; urgency=medium
+
+  * Team upload.
+  * Rework autopkgtest script, update available tests and block
+    TestPathApp also for i386.
+
+ -- Tobias Frost <tobi@debian.org>  Sat, 25 May 2024 16:11:03 +0200
+
+freecad (0.21.2+dfsg1-2) unstable; urgency=medium
+
+  * Team upload.
+  * Fix FTBFS with opencascade 7.8.1 (Closes: #1071283), and B-D on new
+    opencascade.
+
+ -- Tobias Frost <tobi@debian.org>  Fri, 24 May 2024 21:17:26 +0200
+
+freecad (0.21.2+dfsg1-1) unstable; urgency=medium
+
+  * Team upload.
+  * New upstream version. (Closes: #1043104)
+    - Remove upstream applied patches:
+      - 0000-numpy-1.24
+      - 0010-arch-tutorial
+      - 0030-fix-1014875-arm-FTBFS
+      - 0040-python3-interpreter
+      - 0050-appstream-meta-launcable
+      - 0060-bug-993089-dxf-support-desktop-file
+      - 0070-python3-interpreter
+      - 0080-fix-s390x-test-fail-skip-load-old-file
+      - 0090-gcc13-fix
+      - 0100-opencamlib-new-import
+      - 1110-path-g49-move-0.20.patch
+    - Remove obsolete Patch: 1010-opencascade74 - upstream removed raytracing
+      functionality.
+    - Refreshed paches:
+      - 0110-desktop-extra-categories.patch
+      - 1100-run_single-instance.patch
+    - New patch: 2040-ftbfs-macappbundle.patch, to avoid that CMake
+      is not missing the removed MacAppBundle directory.
+    - New B-Ds on libfmt-dev python3-pivy
+  * Remove override for dh_installchangelogs, upstream does no longer ship an
+    Changelog.
+  * Override dh_strip_nondeterminism, as it chokes on the corrupted zip
+    file used in a unit test.
+  * Add gmock/gtest to d/not-installed.
+  * Remove B-D on libqtwebkit5-dev, as upstream stopped support
+    for it. This results that freecad will be built without the "Web
+    Workbench", on architectures that do not have qtwebengine5-dev.
+    (all except amd64, arm64, armhf, i386 and mipsel64)
+
+ -- Tobias Frost <tobi@debian.org>  Mon, 18 Dec 2023 18:28:59 +0100
+
+freecad (0.20.2+dfsg1-10) unstable; urgency=medium
+
+  * Team upload.
+
+  [ Petter Reinholdtsen ]
+  * Added 1120-desktop-extra-categories.patch to include X-CNC category
+    to XDG desktop meny entry.
+
+  [ Bas Couwenberg ]
+  * Drop unused libproj-dev build dependency.
+
+  [ Petter Reinholdtsen ]
+  * Added recommend and patched code to find find new opencamlib package.
+
+ -- Petter Reinholdtsen <pere@debian.org>  Mon, 04 Sep 2023 15:53:04 +0200
+
+freecad (0.20.2+dfsg1-9) unstable; urgency=medium
+
+  * Team upload.
+
+  * Added 0090-gcc13-fix.patch to fix GCC 13 build problem (Closes: #1037664).
+
+ -- Petter Reinholdtsen <pere@debian.org>  Wed, 26 Jul 2023 23:14:08 +0200
+
+freecad (0.20.2+dfsg1-8) unstable; urgency=medium
+
+  * Team upload.
+
+  * Updated patch metadata for patches now applied upstream.
+  * Added 1110-path-g49-move-0.20.patch avoiding dangerous G-code
+    from Path (Closes: #1040426).
+
+ -- Petter Reinholdtsen <pere@debian.org>  Tue, 11 Jul 2023 17:29:12 +0200
+
+freecad (0.20.2+dfsg1-7) unstable; urgency=medium
+
+  * Team upload.
+
+  * Moved patches upstream to 0xxx patch sequence.
+  * Corrected patch metadata for *opencascade74.patch.
+  * Added new 1160-python3-interpreter.patch to fix more
+    lintian warnings.
+  * Dropped superfluous file patterns pointing to non-existing files
+    from d/copyright.
+  * Remove unused dh-exec from debian/freecad-common.install.
+
+ -- Petter Reinholdtsen <pere@debian.org>  Thu, 06 Jul 2023 08:25:20 +0200
+
+freecad (0.20.2+dfsg1-6) unstable; urgency=medium
+
+  * Team upload.
+
+  * Removed 1000-fix-occt-7.5.2.patch now applied upstream.
+  * Sent patches upstream and updated metadata to relect this.
+  * Removed cruft from metadata of two patches.
+  * Classified *fix-1017598.patch as Debian specific, in line with
+    its description.
+  * Renamed and added patch metadata to *python3.8-syntax.patch.
+  * Added 1160-python3-interpreter.patch to fix lintian warning
+    unusual-interpreter.
+  * Added 0010-arch-tutorial.patch to get arch tutorials working
+    with Python >= 3.11  (Closes: #1031566).
+
+ -- Petter Reinholdtsen <pere@debian.org>  Sat, 01 Jul 2023 08:44:13 +0200
+
+freecad (0.20.2+dfsg1-5) unstable; urgency=medium
+
+  * Team upload.
+
+  * Changed upstream URL from https://freecadweb.org/ to
+    https://freecad.org/ (Closes: #1031830).
+  * Updated Standards-Version from 4.6.1 to 4.6.2.  No changes needed.
+  * Corrected typos and metadata in several patch files.
+  * Standardised Author information in patch files, preferred
+    @debian.org addresses.
+  * Restructured patches into upstreamable and debian specific groups.
+  * Removed obsolete NEWS.debian.
+  * Added 1150-appstream-meta-launcable.patch trying to fix Appstream
+    generator warning.
+
+ -- Petter Reinholdtsen <pere@debian.org>  Fri, 30 Jun 2023 08:02:21 +0200
+
+freecad (0.20.2+dfsg1-4) unstable; urgency=medium
+
+  * Team upload.
+  * Apply work-around for crash when started with --single-instance,
+    e.g. using the .desktop file (Closes: #1029846)
+
+ -- Tobias Frost <tobi@debian.org>  Sat, 04 Feb 2023 14:01:18 +0100
+
+freecad (0.20.2+dfsg1-3) unstable; urgency=medium
+
+  * [c522953] Remove redundant `freecadcmd --console` in autopkgtest
+  * [0bef48d] Add patch for numpy 1.24
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Tue, 10 Jan 2023 11:08:11 -0600
+
+freecad (0.20.2+dfsg1-2) unstable; urgency=medium
+
+  * [3bfb4a5] Add arch-specific Qt WebKit fallback
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Mon, 09 Jan 2023 19:15:33 -0600
+
+freecad (0.20.2+dfsg1-1) unstable; urgency=medium
+
+  [ Tobias Frost ]
+  * [7556687] Add several supported MIME types to the .desktop file.
+    (Closes: #993089)
+
+  [ Kurt Kremitzki ]
+  * [69cb156] Switch from Qt WebKit to WebEngine
+  * [bdc52cd] New upstream version 0.20.2+dfsg1 (Closes: #1028171)
+  * [1e3598e] Refresh patches
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Mon, 09 Jan 2023 17:00:02 -0600
+
+freecad (0.20.1+dfsg1-2) unstable; urgency=medium
+
+  * Team upload.
+  * autopkgtest: Disable test TestPathApp on s390x.
+
+ -- Tobias Frost <tobi@debian.org>  Fri, 09 Sep 2022 17:01:54 +0200
+
+freecad (0.20.1+dfsg1-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Tobias Frost <tobi@debian.org>  Fri, 26 Aug 2022 23:58:01 +0200
+
+freecad (0.20+dfsg1-6) unstable; urgency=medium
+
+  * Revert running freecad in the autopkgtest, this needs more work.
+
+ -- Tobias Frost <tobi@debian.org>  Thu, 18 Aug 2022 21:30:34 +0200
+
+freecad (0.20+dfsg1-5) unstable; urgency=medium
+
+  * Team upload.
+  * Disable test femtest.app.test_solver_calculix.TestSolverCalculix, as
+    this test is currently broken on some archs. Closes: #1017598.
+  * Run freecad (gui executeable) test suite also in the autopkgtest,
+    in the hope that missing libraries will be caught too (see #1013881).
+
+ -- Tobias Frost <tobi@debian.org>  Thu, 18 Aug 2022 12:38:22 +0200
+
+freecad (0.20+dfsg1-4) unstable; urgency=medium
+
+  * Team upload.
+  * Fix FTBFS on armel and armhf, GL_PROJECTION not declared in this scope
+    with patch fix-1014875-arm-FTBFS.patch (Closes: #1014875)
+
+ -- Tobias Frost <tobi@debian.org>  Tue, 09 Aug 2022 18:37:51 +0200
+
+freecad (0.20+dfsg1-3) UNRELEASED; urgency=medium
+
+  * d/u/metadata: Added SciCrunch RRID:SCR_022535
+
+ -- Steffen Moeller <moeller@debian.org>  Tue, 05 Jul 2022 21:17:32 +0200
+
+freecad (0.20+dfsg1-2) unstable; urgency=medium
+
+  * Team upload.
+  * More verbose description.
+
+ -- Steffen Moeller <moeller@debian.org>  Tue, 05 Jul 2022 02:16:00 +0200
+
+freecad (0.20+dfsg1-1) unstable; urgency=medium
+
+  * Team upload.
+  * New upstream version. (Closes: #1007013)
+  * Removed surface_extended_patch.patch - already found upstream
+  * Removed remove_doc-files.patch - no longer applicable/needed
+  * Removed fix_vtk9.patch - addressed upstream
+  * Standards-Version: 4.6.1 (routine-update)
+  * Extended runtime dependencies on python Qt modules as instructed
+    upon execution of freecad.
+
+ -- Steffen Moeller <moeller@debian.org>  Mon, 04 Jul 2022 15:29:38 +0200
+
+freecad (0.19.4+dfsg1-1) unstable; urgency=medium
+
+  * Team upload.
+
+  * New upstream version - a bug-fix release
+    Release notes: https://github.com/FreeCAD/FreeCAD/releases/tag/0.19.4
+    - Fixes CVE-2021-45844 (Closes: #1005747)
+    - Fixes CVE-2021-45845
+  * Added link-time optimization
+
+ -- Steffen Moeller <moeller@debian.org>  Fri, 04 Mar 2022 16:01:45 +0100
+
+freecad (0.19.3+dfsg1-2) unstable; urgency=medium
+
+  * Team upload.
+
+  [ Håvard Flaget Aasen ]
+  * Move files from /usr/share/freecad/share/* to /usr/share/*
+  * Move appstream files from freecad-common to freecad, specifically
+    /usr/share/applications/*, /usr/share/metainfo/* and /usr/share/mime/*.
+    This will make sofware relying on appstream to install correct package.
+    (Closes: #981175)
+  * Don't install .xpm icon.
+  * Prefer upstream version of desktop and sharedmimeinfo files.
+  * Explicitly list folders to install in freecad-common.
+  * Add patch to include previous set option in desktop file.
+    Making freecad only run as single instance.
+
+  [ Tobias Frost ]
+  * Fix filename of SurfaceExtend icon (Closes: #992715)
+
+ -- Steffen Moeller <moeller@debian.org>  Fri, 25 Feb 2022 14:04:59 +0100
+
+freecad (0.19.3+dfsg1-1) unstable; urgency=medium
+
+  * Team upload.
+
+  [ Tobias Frost ]
+  * Tighten dependencies on metapackage, so that the right version
+    of all packages will be pulled on update. (Closes: #980474)
+
+  [ Steffen Moeller ]
+  * Remove trailing whitespace in debian/copyright (routine-update)
+  * Add salsa-ci file (routine-update)
+  * watch file standard 4 (routine-update)
+  * patch/python3.8 adopted upstream
+  * improved d/rules clean target for repeated builds
+
+ -- Tobias Frost <tobi@debian.org>  Fri, 22 Oct 2021 12:45:02 +0200
+
+freecad (0.19.2+dfsg1-3) unstable; urgency=medium
+
+  * Team upload.
+  * [6e8d7af] Compile against vtk9 instead of vtk7
+
+ -- Anton Gladky <gladk@debian.org>  Sat, 25 Sep 2021 09:52:47 +0200
+
+freecad (0.19.2+dfsg1-2) unstable; urgency=medium
+
+  * [bc42245] Add patch for OpenCASCADE >= 7.5.2
+  * [acc44a0] Add Rules-Requires-Root: no
+  * [8a24737] Add DEP-3 headers to document OpenCASCADE 7.4.0 patch
+  * [cafc615] Update to Standards-Version 4.6.0 (no changes required)
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Mon, 06 Sep 2021 19:13:40 -0500
+
+freecad (0.19.2+dfsg1-1) unstable; urgency=medium
+
+  * [9a27ec0] New upstream version 0.19.2+dfsg1
+  * [cbf49b1] Refresh fix-s390x-test-fail-skip-load-old-file.patch
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Sat, 04 Sep 2021 15:44:21 -0500
+
+freecad (0.19.1+dfsg1-2) unstable; urgency=medium
+
+  * Team upload.
+  * [aed47c1] Fix whitespaces in previous commit from Christian Ehrhardt,
+    breaking python autopkgtests
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Tue, 16 Mar 2021 17:55:02 +0100
+
+freecad (0.19.1+dfsg1-1) unstable; urgency=medium
+
+  [ Christian Ehrhardt ]
+  * [fbc90b2] skip self test open_de9b3fb438 on s390x as it goes OOM
+    (LP: #1918474)(Closes: #984952)
+
+  [ Kurt Kremitzki ]
+  * [3ae55a4] New upstream version 0.19.1+dfsg1
+  * [bc2242e] Drop fix-fem-crash.patch, included in 0.19.1
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Mon, 15 Mar 2021 21:00:32 -0500
+
+freecad (0.19+dfsg1-2) unstable; urgency=medium
+
+  * [e19be27] Add patch to fix crash in FEM Constraint::getDirection
+    (Closes: #983590)
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Sun, 28 Feb 2021 03:36:37 -0600
+
+freecad (0.19+dfsg1-1) unstable; urgency=medium
+
+  * [40577ea] New upstream version 0.19+dfsg1
+  * [f346346] Add python3-matplotlib build dependency
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Thu, 25 Feb 2021 11:53:32 -0600
+
+freecad (0.19~pre1+git20210207.a3fb41502b+dfsg-1) unstable; urgency=medium
+
+  * [fc00a73] New upstream version 0.19~pre1+git20210207.a3fb41502b+dfsg
+  * [b1f38b0] Refresh patches
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Sun, 07 Feb 2021 18:46:40 -0600
+
+freecad (0.19~pre1+git20210109.afd1470202+dfsg1-2) unstable; urgency=medium
+
+  * [bcad731] Add python3-yaml runtime dep
+  * [4f5dd12] Set FREECAD_USER_HOME for autopkgtest
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Wed, 20 Jan 2021 10:49:37 -0600
+
+freecad (0.19~pre1+git20210109.afd1470202+dfsg1-1) unstable; urgency=medium
+
+  * [1395c4c] Update freecad-common symlinks (Closes: #980292)
+  * [154c84e] New upstream version 0.19~pre1+git20210109.afd1470202+dfsg1
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Mon, 18 Jan 2021 12:48:25 -0600
+
+freecad (0.19~pre1+git20201221.3b449e1ce9+dfsg1-2) unstable; urgency=medium
+
+  * [2ce772e] Add Breaks+Replaces for libfreecad-python3-0.19 over 0.18
+    (Closes: #976430)
+  * [0046d46] Always only --list-missing
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Thu, 24 Dec 2020 06:54:50 -0600
+
+freecad (0.19~pre1+git20201221.3b449e1ce9+dfsg1-1) unstable; urgency=medium
+
+  * [921e9bc] New upstream version 0.19~pre1+git20201221.3b449e1ce9+dfsg1
+  * [ea5594a] Refresh python3.8.patch
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Mon, 21 Dec 2020 11:23:53 -0600
+
+freecad (0.19~pre1+git20201123.8d73c8f0+dfsg1-1) experimental; urgency=medium
+
+  * [ede52e5] New upstream version 0.19~pre1+git20201123.8d73c8f0+dfsg1
+  * [b8be794] Refresh patches
+  * [5b061b9] Update packaging for 0.19
+
+ -- Kurt Kremitzki <kkremitzki@debian.org>  Sun, 29 Nov 2020 03:20:11 -0600
+
+freecad (0.18.4+dfsg2-6) unstable; urgency=medium
+
+  * Team upload.
+  * [63b9bcf] Fix compilation against boost and python3.9.
+              (Closes: #975267, #973285)
+  * [5773c7e] Use secure URI in Homepage field.
+  * [ffb3bbb] Set debhelper-compat version in Build-Depends.
+  * [15de038] Set upstream metadata fields: Repository, Repository-Browse.
+  * [afe02a4] Fix day-of-week for changelog entry 0.7.1031-1.
+  * [159b458] Update standards version to 4.5.0, no changes needed.
+
+ -- Anton Gladky <gladk@debian.org>  Thu, 19 Nov 2020 20:50:53 +0100
+
+freecad (0.18.4+dfsg2-5) unstable; urgency=medium
+
+  * [6ef07803] cherry-pick upstream commits:
+    - 17ed2b196a58afbbc3cc1bb99f6eb76060171ad2
+    - 1666b28836baa79b26b707afb1e97c2a0855eb1f
+    - 1bca53917db942aa8e0639c8e2c2f33b2e09c1b0
+    and drop new-pyside2.patch patch
+  * [ 1b8737ca ]Drop depends on python3-pyside2uic,
+    dropped by pyside2 (experimental), and add
+    pyqt5-dev-tools for new pyrcc5 tool
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Sun, 07 Jun 2020 14:39:33 +0200
+
+freecad (0.18.4+dfsg2-4) unstable; urgency=medium
+
+  * Team upload
+
+  [ Gianfranco Costamagna ]
+  * [224b2c8a] Drop unused libboost-signals-dev (Closes: #962086)
+
+  [ Graham Inggs ]
+  * [e3aa33cd] Fix TaperedHole test for OCCT 7.4 (Closes: #961131)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Sat, 06 Jun 2020 12:07:18 +0200
+
+freecad (0.18.4+dfsg2-3) unstable; urgency=medium
+
+  * [a1d5760] Disable netgen builds for now
+  * [cbbde84] Add patch for OCCT 7.4 regression test case
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Wed, 20 May 2020 03:48:36 -0500
+
+freecad (0.18.4+dfsg2-2) unstable; urgency=medium
+
+  [ Tobias Frost ]
+  * [b742def] Import Ubuntu patches to fix Python 3.8 FTBFS (Closes: #953721).
+    This also includes some other patches from Ubuntu that are worth as they
+    are fixing crashes. Thanks to Gianfranco for his work in Ubuntu.
+
+  [ Kurt Kremitzki ]
+  * [d56ac71] Correct line ending issue with patch
+  * [599ea99] Add opencascade74.patch (Closes: #956543)
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Tue, 19 May 2020 04:24:52 -0500
+
+freecad (0.18.4+dfsg2-1) unstable; urgency=medium
+
+  * [e8be3d7] New upstream version 0.18.4+dfsg2
+  * [5fefd1a] Don't hardcode Python 3 version (Closes: #950137)
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Tue, 11 Feb 2020 06:26:08 -0600
+
+freecad (0.18.4+dfsg1-2) unstable; urgency=medium
+
+  [ Kurt Kremitzki ]
+  * [1e38838] Revert dwz override after upstream fix
+
+  [ Gianfranco Costamagna ]
+  * Team upload
+  * [84844f5] Tweak rules file to make it use with Python3.7
+    (Closes: #945314), the one used during pyside build
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Mon, 30 Dec 2019 11:04:13 +0100
+
+freecad (0.18.4+dfsg1-1) unstable; urgency=medium
+
+  * [3928e77] New upstream version 0.18.4+dfsg1
+  * [55b8edd] Update version display patch for 0.18.4
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sun, 03 Nov 2019 13:26:10 -0600
+
+freecad (0.18.3+dfsg1-4) unstable; urgency=medium
+
+  * [e768789] Add dh_dwz override for i386, mipsel, and s390x due to upstream
+    regression
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Wed, 30 Oct 2019 22:43:14 -0500
+
+freecad (0.18.3+dfsg1-3) unstable; urgency=medium
+
+  * [c78f8e9] Revert enabling Netgen/Pybind11 builds
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Tue, 17 Sep 2019 11:00:11 -0500
+
+freecad (0.18.3+dfsg1-2) unstable; urgency=medium
+
+  * [898fd80] Migrate to Python 3 only, Netgen-enabled build (Closes:
+    #936552)
+  * [2c077ab] Bump compat level to 12
+  * [276a12e] Bump Standards-Version to 4.4.0 (no changes needed)
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sun, 08 Sep 2019 17:35:08 -0500
+
+freecad (0.18.3+dfsg1-1) unstable; urgency=medium
+
+  * [5f5b5c2] New upstream version 0.18.3+dfsg1
+  * [6c43d54] Update set_about_freecad.patch for new version
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Thu, 18 Jul 2019 20:12:46 -0500
+
+freecad (0.18.2+dfsg1-1) unstable; urgency=medium
+
+  * [bc5f8c2] New upstream version 0.18.2+dfsg1
+  * [f6afef9] Remove upstream-bugfixes.patch (obsoleted by 0.18.2)
+  * [bb1b36e] Don't save in non-user-writable location by default
+  * [ce51375] Fix missing document icons
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Fri, 07 Jun 2019 22:31:06 -0500
+
+freecad (0.18.1+dfsg1-2) unstable; urgency=medium
+
+  * [5cd3fce] Add missing pyside2 deps
+  * [fd92cc2] Fix breaks+replaces relations (Closes: #926251)
+  * [c61fe87] Add upstream bugfixing patch
+  * [f95e30a] Fix FEM autopkgtest (Closes: #926304 #920535)
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sat, 27 Apr 2019 19:06:02 -0500
+
+freecad (0.18.1+dfsg1-1) unstable; urgency=medium
+
+  * [cab285b] Correct suggested packages
+  * [576bf03] New upstream version 0.18.1+dfsg1
+  * [7cec221] Update rules for 0.18.1
+  * [39bac84] Add patch to display 0.18.1 version
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sat, 06 Apr 2019 13:52:45 -0500
+
+freecad (0.18+dfsg1-1) unstable; urgency=medium
+
+  * [64167ef] New upstream version 0.18+dfsg1
+  * [8c882c8] Remove upstreamed patches fix-start-workbench and
+    fix_qt-5.11_build
+  * [7d77b28] Add NEWS file to announce Python 3 switch
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Thu, 14 Mar 2019 21:43:55 -0500
+
+freecad (0.18~pre1+dfsg1-5) unstable; urgency=medium
+
+  * [e91ae47] Fix update-alternatives problem (Closes: #923465 #923412)
+  * [a7f46c7] Update OpenCASCADE path
+  * [958e27f] Add patch to fix Start WB
+  * [ba149a5] Add lintian override for freecad virtual package
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sat, 02 Mar 2019 03:42:57 -0600
+
+freecad (0.18~pre1+dfsg1-4) unstable; urgency=medium
+
+  * [7865394] Use libqt5opengl5-dev instead of -desktop-dev for armel/armhf
+    builds
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Fri, 15 Feb 2019 14:15:18 -0600
+
+freecad (0.18~pre1+dfsg1-3) unstable; urgency=medium
+
+  * [f852948] Re-add allow-stderr restriction on autopkgtest
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Mon, 11 Feb 2019 13:59:14 -0600
+
+freecad (0.18~pre1+dfsg1-2) unstable; urgency=medium
+
+  * [4f80ffc] Undo accidental autopkgtest reversion
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sun, 10 Feb 2019 16:48:53 -0600
+
+freecad (0.18~pre1+dfsg1-1) unstable; urgency=medium
+
+  * [e648c8e] Add Breaks+Conflicts+Replaces to smooth upgrade
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sat, 09 Feb 2019 17:56:53 -0600
+
+freecad (0.18~pre1+dfsg1-1~exp1) experimental; urgency=medium
+
+  * [f52bb1e] Update packaging for 0.18
+  * [0b830f4] New upstream version 0.18~pre1+dfsg1
+  * [9b83d5c] Update lintian overrides for 0.18
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sun, 27 Jan 2019 19:42:09 -0600
+
+freecad (0.17+dfsg1-8) unstable; urgency=medium
+
+  * [9d6a8a1] Add allow-stderr restriction on autopkgtest (Closes: #920525)
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Sat, 26 Jan 2019 18:04:22 -0600
+
+freecad (0.17+dfsg1-7) unstable; urgency=medium
+
+  * [86c1410] Fix autopkgtest command (Closes: #918479)
+  * [d5ee7ff] Update VTK dep to v7
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Fri, 25 Jan 2019 20:33:35 -0600
+
+freecad (0.17+dfsg1-6) unstable; urgency=medium
+
+  * [af5bdfa] Update coin/pivy deps for Coin transition
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Fri, 21 Dec 2018 08:11:47 -0600
+
+freecad (0.17+dfsg1-5) unstable; urgency=medium
+
+  * Upload to unstable
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Thu, 11 Oct 2018 08:14:49 -0500
+
+freecad (0.17+dfsg1-4) experimental; urgency=medium
+
+  * [07492c4] Update dependency to use libqt5opengl5-desktop-dev & exclude
+    armel/armhf
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Thu, 11 Oct 2018 00:37:53 -0500
+
+freecad (0.17+dfsg1-3) experimental; urgency=medium
+
+  * [44d99e3] Remove fail-missing to handle arch-specific builds
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Wed, 10 Oct 2018 02:38:11 -0500
+
+freecad (0.17+dfsg1-2) experimental; urgency=medium
+
+  * [04e05c3] Downgrade VTK dependency back to VTK6
+  * [6f91417] Enable Qt5 builds (Closes: #874877)
+  * [741aae7] Add patch for Qt 5.11 build support
+  * [0939941] Add Breaks+Replaces for FreeCAD < 0.17 (Closes: #906110)
+
+ -- Kurt Kremitzki <kurt@kwk.systems>  Mon, 08 Oct 2018 01:32:52 -0500
+
+freecad (0.17+dfsg1-1) experimental; urgency=medium
+
+  * New upstream version 0.17+dfsg1
+  * Update OpenCASCADE dependency to use OCCT instead of OCE
+  * Update VTK dependency to VTK7
+  * Update d/copyright's Files-Excluded section and clean up per lintian
+    warnings
+  * Update Uploaders: add Kurt Kremitzki
+  * Switch default workbench from Start to Part Design due to Qt 4 Webkit
+    deprecation, to be reverted after Qt 5 switch is complete
+  * Removed patches fixed upstream or no longer relevant in 0.17:
+    - fix-836983.patch
+    - fix_FTBFS_on_precise.patch
+    - use_share.patch
+  * Refreshed all other patches including:
+    - remove_webkit.patch: Since this breaks the default Start Workbench,
+      I have updated it to default to Part Design, the new premier WB
+      for this upstream version (i.e. PartDesign Next)
+  * Added lintian override for hardening false positives
+
+ -- Kurt Kremitzki <kkremitzki@gmail.com>  Thu, 07 Jun 2018 17:32:47 -0500
+
+freecad (0.16.6712+dfsg1-3) unstable; urgency=medium
+
+  * Team upload
+  * Close Teemu's bug in previous changelog entry
+  * Fix autopkgtest on architectures where char is unsigned by default,
+    thanks Frédéric Bonnard (Closes: #836983)
+  * Install copies of icons since AppStream does not recognize symlinks
+    (Closes: #850965)
+  * Update Uploaders: add Sebastian Kuzminsky
+                      remove Adam C. Powell, IV
+
+ -- Graham Inggs <ginggs@debian.org>  Mon, 28 May 2018 08:55:04 +0000
+
+freecad (0.16.6712+dfsg1-2) unstable; urgency=medium
+
+  * Team upload.
+
+  [ Teemu Ikonen ]
+  * [a1ddb98] Remove myself from Uploaders. (Closes: #892617)
+
+  [ Anton Gladky ]
+  * [705f952] Update VCS-fields to the salsa-migration
+  * [ddc6548] Set Standards-Version to 4.1.4
+  * [3313fe7] Remove myself from uploaders
+  * [a3ef1ba] Switch to compat-level 11
+  * [6a5a3cb] Remove deprecated Testsuite-field in the d/control
+
+ -- Anton Gladky <gladk@debian.org>  Wed, 23 May 2018 22:35:29 +0200
+
+freecad (0.16.6712+dfsg1-1) unstable; urgency=medium
+
+  * [c631550] New upstream version 0.16.6712+dfsg1
+  * [70d3ebc] Refresh patches
+  * [c2f67a5] Remove dependency on Qt4 Webkit. (Closes: #784464)
+  * [31d5630] Set Standards-Version: 4.1.0
+  * [85cc9d9] Change priority to optional
+  * [dc32b52] Set maximal hardening option
+  * [c56abf6] Drop "alpha" from description. (Closes: #868727)
+
+ -- Anton Gladky <gladk@debian.org>  Fri, 08 Sep 2017 22:55:20 +0200
+
+freecad (0.16+dfsg2-3) unstable; urgency=medium
+
+  [ Graham Inggs ]
+  * [06c5066] Use PNG and SVG icons instead of XPM (Closes: #850965)
+  * [d40a6a3] Drop debian/menu and do not install XPM icon, see #741573
+  * [d616835] Add Suggests on graphviz and povray (Closes: #849644)
+  * [e25f6a6] Switch to debhelper 10
+  * [f02e70f] Add debian/clean to fix FTBFSx2
+
+  [ Anton Gladky ]
+  * [245dccf] Fix d/copyright.
+  * [3f389af] Apply cme fix dpkg.
+
+ -- Anton Gladky <gladk@debian.org>  Fri, 20 Jan 2017 20:05:18 +0100
+
+freecad (0.16+dfsg2-2) unstable; urgency=medium
+
+  * Team upload.
+  [ Anton Gladky ]
+  * Remove freecad-doc from suggests. (Closes: #827734)
+
+  [ Nobuhiro Iwamatsu ]
+  * Fix FTBFS with opencv 3.1. (Closes: #841416)
+
+ -- Anton Gladky <gladk@debian.org>  Wed, 23 Nov 2016 05:20:31 +0900
+
+freecad (0.16+dfsg2-1) unstable; urgency=medium
+
+  * [4f08de5] Remove data/examples. (Closes: #745237)
+  * [7434cc4] Imported Upstream version 0.16+dfsg2
+
+ -- Anton Gladky <gladk@debian.org>  Sun, 15 May 2016 12:29:42 +0200
+
+freecad (0.16+dfsg1-1) unstable; urgency=medium
+
+  * [9e69a23] Update d/watch.
+  * [bf22c89] Drop copying of Version.h explicitly.
+  * [010b5c8] Refresh/Remove patches.
+  * [24a4f7d] Update d/copyright.
+  * [0547be9] Apply cme fix dpkg-control.
+  * [fc9b859] Update d/copyright.
+  * [6e5df4d] Imported Upstream version 0.16+dfsg1. (Closes: #823816)
+  * [06ed39b] Remove freecad-dev and freecad-doc binaries.
+  * [94c3ac2] Update d/copyright. (Closes: #726805 #745237)
+
+ -- Anton Gladky <gladk@debian.org>  Thu, 12 May 2016 20:48:30 +0200
+
+freecad (0.15.4671+dfsg1-4) unstable; urgency=medium
+
+  * [a934100] Add strict dependency on oce>=0.17.1. (Closes: #802517)
+
+ -- Anton Gladky <gladk@debian.org>  Fri, 29 Jan 2016 13:10:48 +0100
+
+freecad (0.15.4671+dfsg1-3) unstable; urgency=medium
+
+  [ Abdullah Tahiri ]
+  * [f4d259b] Fix Sketcher: Solver: FullPivLU::compute for Eigen-3.3.
+              (Closes: #811239)
+
+ -- Anton Gladky <gladk@debian.org>  Sun, 17 Jan 2016 13:44:36 +0100
+
+freecad (0.15.4671+dfsg1-2) unstable; urgency=medium
+
+  * [0c78ef5] Remove EIGEN2_SUPPORT. (Closes: #786356)
+
+ -- Anton Gladky <gladk@debian.org>  Sun, 25 Oct 2015 18:51:47 +0100
+
+freecad (0.15.4671+dfsg1-1) unstable; urgency=medium
+
+  * [4b6e554] Update d/copyright.
+  * [dd370f0] Update d/watch.
+  * [a70bba6] Imported Upstream version 0.15.4671+dfsg1. (Closes: #789105)
+  * [80ccaac] Refresh patches.
+  * [c868df9] Add pyside-tools as dependency.
+  * [ab8015b] Drop the load of news-page. (Closes: #787948)
+
+ -- Anton Gladky <gladk@debian.org>  Thu, 27 Aug 2015 22:54:47 +0200
+
+freecad (0.14.3702+dfsg-4) unstable; urgency=medium
+
+  [ Anton Gladky ]
+  * [7dbbdb6] Set Standards-Version: 3.9.6. No changes.
+  * [99c5e82] Apply cme fix dpkg-control.
+
+  [ Martin Pitt ]
+  * [91ef5e9] Work around Qt4 not being compatible with boost+gcc5.
+              (Closes: #795069)
+
+ -- Anton Gladky <gladk@debian.org>  Wed, 12 Aug 2015 20:34:02 +0200
+
+freecad (0.14.3702+dfsg-3) unstable; urgency=medium
+
+  [ Yorik van Havre ]
+  * [9ddbf15] Disable automatic DXF library download. (Closes: #764814)
+
+ -- Anton Gladky <gladk@debian.org>  Fri, 24 Oct 2014 18:59:03 +0200
+
+freecad (0.14.3702+dfsg-2) unstable; urgency=medium
+
+  [ Anton Gladky ]
+  * [aafcc31] Remove libswscale-dev from BD. (Closes: #757282)
+  * [81d4b6e] Fix installing of som Mods. (Closes: #736273)
+  * [1a4492e] Remove deprecated lines from d/copyright. (Closes: #745237)
+
+  [ Alexander ]
+  * [efc7d53] Fix compilation with clang. (Closes: #755305)
+
+ -- Anton Gladky <gladk@debian.org>  Sun, 24 Aug 2014 08:12:43 +0200
+
+freecad (0.14.3702+dfsg-1) unstable; urgency=medium
+
+  * [7fc727b] Imported Upstream version 0.14.3702
+  * [3edf0de] Refresh patches.
+  * [077b63a] Redirect unittest output into stdout. Fixes autopkgtests.
+
+ -- Anton Gladky <gladk@debian.org>  Tue, 22 Jul 2014 20:15:18 +0200
+
+freecad (0.13.3637-dfsg-1) unstable; urgency=medium
+
+  * [ddeee1c] Imported Upstream version 0.13.3637-dfsg
+  * [0fe87be] Update/remove patches.
+  * [60ad7cc] Update install files, dependencies.
+  * [9f9cca3] Add autopkgtest.
+
+ -- Anton Gladky <gladk@debian.org>  Sun, 25 May 2014 19:05:13 +0200
+
+freecad (0.13.2935-dfsg-1.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Update xerces build dependency to libxerces-c-dev. (Closes: #733072)
+
+ -- Jay Berkenbilt <qjb@debian.org>  Wed, 15 Jan 2014 12:19:37 -0500
+
+freecad (0.13.2935-dfsg-1) unstable; urgency=medium
+
+  * [824153f] Move python-collada and python-ply from Recommends to Depends.
+  * [3047a6b] Imported Upstream version 0.13.2935-dfsg
+  * [36a4082] Bump Standards-Version: 3.9.5. No changes.
+
+ -- Anton Gladky <gladk@debian.org>  Wed, 01 Jan 2014 20:29:15 +0100
+
+freecad (0.13.2800-dfsg-1) unstable; urgency=low
+
+  * [e051565] Imported Upstream version 0.13.2800-dfsg. (Closes: #730952)
+  * [a2f0187] Update debian/copyright. (Closes: #726805)
+
+ -- Anton Gladky <gladk@debian.org>  Mon, 02 Dec 2013 22:11:10 +0100
+
+freecad (0.13.2580-dfsg-2) unstable; urgency=low
+
+  * [2aab6f0] Update and re-enable disable_memory_check.patch.
+  * [4d36847] Use wrap-and-sort.
+
+ -- Anton Gladky <gladk@debian.org>  Mon, 30 Sep 2013 18:49:23 +0200
+
+freecad (0.13.2580-dfsg-1) unstable; urgency=low
+
+  [ Anton Gladky ]
+  * [1190215] Update get_git_orig_src.sh.
+  * [077e969] Build against BSD-version of soqt. (Closes: #617613)
+  * [37d60d0] Update patches, remove some of them.
+  * [b4801bc] Simplify debian/rules.
+  * [40ddd86] Imported Upstream version 0.13.2580-dfsg
+  * [61e7426] Minor fix in installation files.
+  * [fcaeb91] Fix syntax error in importOCA.py.
+  * [429db74] Ignore quilt dir
+  * [ffccc7d] Unapply patches after build
+
+  [ Sebastian Hoogen ]
+  * [aa8ab82] Use packaged version of python-ply.
+
+ -- Anton Gladky <gladk@debian.org>  Fri, 27 Sep 2013 19:56:46 +0200
+
+freecad (0.13.1830-dfsg-3) unstable; urgency=low
+
+  [ Simon Ruderich ]
+  * [71fd1c2] Hardening CPPFLAGS and LDFLAGS. (Closes: #711243)
+
+  [ Peter Michael Green ]
+  * [36d7879] Fix build failures with new oce by forcing occ include directory.
+              (Closes: 718545, 717034)
+  * [7fa3e69] Remove some stuff left behind by build process in clean target
+              to prevent errors from dpkg-source when building multiple times
+              in a row.
+                - obj-*
+                - src/Mod/Start/Gui/share
+                - src/Mod/Drawing/App/share
+
+  [ Anton Gladky ]
+  * [5906d0e] Update debian-copyright-file.
+  * [07d04d1] Move python-collada from Depends to Recommends-section.
+  * [cf6cb9f] Add python-collada to Depends.
+  * [36b4bc0] Add versioned dependency on libsoqt4-20. (Closes: #711812)
+  * [32738be] Use canonical VCS.
+
+ -- Anton Gladky <gladk@debian.org>  Wed, 07 Aug 2013 23:43:36 +0200
+
+freecad (0.13.1830-dfsg-2) unstable; urgency=low
+
+  * [800a2d9] Compile freecad against libcoin80. (Closes: #617613)
+  * [abee4e5] Compile against fltk1.3 instead of fltk1.1
+  * [23916ae] Raise the minimal version of soqt4-dev due to coin80.
+  * [87207ba] Update homepage.
+  * [224f12d] Add versioned dependency on python-pivy.
+
+ -- Anton Gladky <gladk@debian.org>  Thu, 30 May 2013 19:48:30 +0200
+
+freecad (0.13.1830-dfsg-1) unstable; urgency=low
+
+  [ Boris Pek ]
+  * [fbdfc08] Update debian/rules: use src/Build/Version.h provided by upstream.
+              (Closes: #706578)
+  * [eb29048] Update scripts/get_git_orig_src.sh: - change version format.
+
+ -- Anton Gladky <gladk@debian.org>  Thu, 02 May 2013 23:05:20 +0200
+
+freecad (0.13.1830-dfsg-1~exp1) experimental; urgency=low
+
+  * [0175d6f] Add python-matplotlib to depends-section.
+  * [eb9bc9a] Imported Upstream version 0.13.1830-dfsg
+  * [e2ec220] Use Standards-Version: 3.9.4. No changes.
+  * [25815b6] Remove obsolete DM-Upload-Allowed flag.
+  * [24f4cd0] Update dates in copyright-file.
+
+ -- Anton Gladky <gladk@debian.org>  Mon, 04 Feb 2013 22:11:12 +0100
+
+freecad (0.13~20130106.gitafb3355-exp1) experimental; urgency=low
+
+  * [0efcf90] Imported Upstream version 0.13~20130106.gitafb3355
+  * [a5ddc03] Install missing usr/share. (Closes: #697573)
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Thu, 10 Jan 2013 18:45:11 +0100
+
+freecad (0.13~20121120.git5082ae2-2~exp2) experimental; urgency=low
+
+  * [bcc4f2e] Enable dir_as_string.patch.
+  * [41e4a4e] Fix python-warning during install.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Fri, 23 Nov 2012 22:11:25 +0100
+
+freecad (0.13~20121120.git5082ae2-1) experimental; urgency=low
+
+  [ Sandro Knauß ]
+  * [3d64502] Adding libode-dev, libspnav-dev to Builddeps.
+              Remove all autotool Builddeps.
+  * [c432199] use more debianize directories in debian/rules.
+  * [0a1599d] Add debian/patches/dir_as_string.patch.
+  * [217ec7c] Add debian/patches/use_install_rpath.patch.
+  * [36766ed] Add debian/patches/use_share.pach.
+
+  [ Anton Gladky ]
+  * [96fc2ed] Use cmake for git-version of freecad.
+  * [581b23b] Prepare for 0.13rc
+  * [d9b01ef] Fix compilation.
+  * [197b945] Add script for getting freecad from git-repo.
+  * [ebae551] Imported Upstream version 0.13~20121120.git5082ae2
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Tue, 20 Nov 2012 19:22:23 +0100
+
+freecad (0.12.5284-dfsg-7) unstable; urgency=low
+
+  * [b420ea0] Add -fpermissive to cpp, c-flags to fix FTBFS with gcc-4.7.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Mon, 14 May 2012 19:32:10 +0200
+
+freecad (0.12.5284-dfsg-6) unstable; urgency=low
+
+  * [d31cbf4] Disable python-pivy depends on powerpc.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Thu, 12 Apr 2012 21:05:36 +0200
+
+freecad (0.12.5284-dfsg-5) unstable; urgency=low
+
+  * [4d3e1c0] Do not build freecad parallel, it causes FTBFS sometimes ( -j5).
+  * [d749637] Fix FTBFS during compiling against oce-0.9.1.
+              Thanks to Denis Barbier. (Closes: #664207)
+  * [28cb8ba] Fix bug of identifying SWIG version.
+              Thanks to Werner Mayer <werner.wm.mayer@gmx.de>.
+              (Closes: #646374)
+  * [fde200f] Use Standards-Version 3.9.3. No changes.
+  * [595a19e] Minor update of copyright file due to released DEP-5.
+  * [65ef554] Enable HAVE_SWIG option.
+  * [1af4c8a] Fix crash in Help->About menu. (Closes: #663704)
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Sun, 18 Mar 2012 08:51:19 +0100
+
+freecad (0.12.5284-dfsg-4) unstable; urgency=low
+
+  * [84c5407] Add needed #include. Fix compilation on Ubuntu Precise.
+  * [7b3d15a] Move python-pivy from recommends to depends section.
+              (Closes: #646374)
+  * [9136519] Update homepage section.
+  * [da53f03] Raise dh-compat to version 8.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Fri, 17 Feb 2012 19:59:20 +0100
+
+freecad (0.12.5284-dfsg-3) unstable; urgency=low
+
+  * [da3974a] Switch from opencascade to oce. (Closes: #659133)
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Thu, 09 Feb 2012 20:55:05 +0100
+
+freecad (0.12.5284-dfsg-2) unstable; urgency=low
+
+  * [125b5f6] Add libeigen3-dev to "depends" in freecad-dev.
+  * Rebuild due to opencv-transition.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Sun, 22 Jan 2012 20:07:21 +0100
+
+freecad (0.12.5284-dfsg-1) unstable; urgency=low
+
+  * [99b66f2] Imported Upstream version 0.12.5284-dfsg
+  * [dc52b9c] Remove patch (gcc-4.6 compilation), hopefully applied by upstream.
+  * [f66ef5d] Remove patch (typo).
+  * [ce862a0] Update copyright file (add data-files).
+  * [91d5731] Use eigen3 instead of eigen2.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Mon, 09 Jan 2012 21:29:18 +0100
+
+freecad (0.11.4446-dfsg-4) unstable; urgency=low
+
+  * [d3ec609] Make a line in changelog shorter. Fix lintian-warning.
+  * [df77453] Fix (hopefully) FTBFS on Armel. Thanks to Paul Brook.
+              (Closes: #623559)
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Fri, 28 Oct 2011 20:25:21 +0200
+
+freecad (0.11.4446-dfsg-3) unstable; urgency=low
+
+  * [12d6b55] Add -lrt key in LDFLAGS to configure properly opencascade on
+              kfreebsd.
+  * [bbd8acc] Remove .la files from -dev binary.
+  * [8932ee7] Disable memory check in SMDS. (Closes: #623560).
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Sat, 24 Sep 2011 16:35:30 +0200
+
+freecad (0.11.4446-dfsg-2) unstable; urgency=low
+
+  * [93347cc] Switch off SWIG to fix FTBFS. (Closes: #632348)
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Tue, 05 Jul 2011 22:41:21 +0200
+
+freecad (0.11.4446-dfsg-1) unstable; urgency=low
+
+  [ Teemu Ikonen ]
+  * [58f7907] Copyright: Update.
+
+  [ Anton Gladky ]
+  * [f5d9322] Imported Upstream version 0.11.4446-dfsg. (Closes: #576653).
+  * [aeacc72] Add DM-Upload-Allowed field.
+  * [b08f851] Add changes to debian/rules as suggested by Werner Mayer.
+  * [c82751a] Delete old patches.
+  * [e71109f] Add libopencascade-ocaf-dev to BD.
+  * [9746063] Import patch to fix compilation error with GCC-4.6.
+  * [175e959] Update watch file.
+  * [7989aa6] Update debian/rules to dh 7, thanks to Bernhard R. Link.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Thu, 09 Jun 2011 21:27:03 +0200
+
+freecad (0.11.3729.dfsg-2) unstable; urgency=low
+
+  * Add gfortran and libopencascade-visualization-dev to BD
+    to fix FTBFS (closes: #622694)
+  * Add libqtwebkit-dev to BD (closes: #618241)
+  * Delete quilt from BD and corresponding changes in rules.
+  * Add description to freecad-occ650.patch
+  * Delete encoding string from .desktop
+  * Fix some spelling errors, pointed out by lintian.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Thu, 14 Apr 2011 10:23:25 +0100
+
+freecad (0.11.3729.dfsg-1) unstable; urgency=low
+
+  [ Denis Barbier ]
+  * Merge OpenCASCADE 6.5.0 compatibility patch (closes: #617545).
+
+  [ Adam C. Powell, IV ]
+  * New upstream (closes: #622213, #618241).
+  * Changed to source format 3.0 (quilt).
+  * Added patch target which forces autotools to run, and automake and autoconf
+    are now in Build-Depends (closes: #607181).
+  * Set aside src/Build/Version.h to prevent build problems.
+  * Does not install .la files (closes: #621298).
+  * Boost 1.46 compatibility patch (closes: #621877).
+  * Set aside files which autotools modifies so clean works.
+  * Added libtool to Build-Depends (thanks: PICCA Frédéric-Emmanuel).
+  * Bumped Standards-Version, no changes needed.
+
+ -- "Adam C. Powell, IV" <hazelsct@debian.org>  Tue, 12 Apr 2011 23:40:30 -0400
+
+freecad (0.10.3247.dfsg-2) unstable; urgency=low
+
+  * control:
+    - Update to standars-version 3.9.0.
+    - Remove libblas-dev, libatlas-dev from build-deps.
+  * Add debian/shlibs.local file containing the the correct binary dep
+    to libsoqt4-20 (closes: #575239).
+  * copyright: Add a verbatim copy of Tiddlywiki BSD license. Fixes
+    the lintian warning copyright-refers-to-deprecated-bsd-license-file.
+  * Add kFreeBSD portability fixes. Thanks to Petr Salinger
+    <Petr.Salinger@seznam.cz> for the patch (closes: #592461).
+
+ -- Teemu Ikonen <tpikonen@gmail.com>  Wed, 18 Aug 2010 19:34:36 +0200
+
+freecad (0.10.3247.dfsg-1) unstable; urgency=low
+
+  * New upstream version (closes: #582627)
+  * Add debian/source/format file with contents "1.0".
+  * Use freecad.xpm as icon in menu and desktop files.
+  * copyright: Add licensing information for new files in this release.
+  * src/Base/Makefile.in, src/Gui/Makefile.in: Do not remove *.tab.c files
+    in make distclean target.
+  * control:
+    - Add build-dep to libeigen2-dev.
+    - Update to standards-version 3.8.4.
+
+ -- Teemu Ikonen <tpikonen@gmail.com>  Mon, 05 Jul 2010 15:07:49 +0200
+
+freecad (0.9.2646.5.dfsg-1) unstable; urgency=low
+
+  * Add 'dfsg' extension to upstream version, upstream sources are unchanged.
+  * Remove libgl1-mesa-dev build-dep, rely on libcoin to pull in GL libraries.
+  * Change build-dep libatlas-headers to libatlas-dev (closes: #577309).
+
+ -- Teemu Ikonen <tpikonen@gmail.com>  Fri, 14 May 2010 17:20:35 +0200
+
+freecad (0.9.2646.5-1) unstable; urgency=low
+
+  * New upstream version (closes: #561696).
+  * Added swig to Build-Depends (closes: #563523, #563772).
+  * Removed python-opencv from Build-Depends and Recommends (closes: #560768).
+
+ -- "Adam C. Powell, IV" <hazelsct@debian.org>  Mon, 11 Jan 2010 08:48:33 -0500
+
+freecad (0.9.2646.4-1) unstable; urgency=low
+
+  * New upstream version (closes: #559849, #559846).
+
+ -- "Adam C. Powell, IV" <hazelsct@debian.org>  Fri, 11 Dec 2009 20:21:32 -0500
+
+freecad (0.9.2646.3-1) unstable; urgency=low
+
+  * New upstream version. Removes TiddlySaver.jar, fixes help problems.
+
+ -- Teemu Ikonen <tpikonen@gmail.com>  Thu, 03 Dec 2009 19:39:27 +0100
+
+freecad (0.9.2646-1) unstable; urgency=low
+
+  [ Werner Mayer ]
+  * New upstream release
+  * In-source copy of PyCXX has been dropped (closes: #547936)
+  * In-source copy of zipios++ has been dropped (closes: #547941)
+  * Change build-dependency on python2.5-dev to python-dev
+  * Add freecad-doc binary package
+  * Remove Suggestion of a chm viewer, suggest freecad-doc instead
+
+  [ Teemu Ikonen ]
+  * Add override to dh_compress
+  * Add versioned build-deb to debhelper (>= 7.0.50)
+  * Add build-deps to libzipios++-dev and python-cxx-dev.
+
+ -- Teemu Ikonen <tpikonen@gmail.com>  Tue, 17 Nov 2009 14:22:00 +0100
+
+freecad (0.8.2237-2) unstable; urgency=low
+
+  * Added libboost-python-dev to Build-Depends (closes: #549738).
+  * Added myself to uploaders list.
+  * Bumped Standards-Version.
+
+ -- "Adam C. Powell, IV" <hazelsct@debian.org>  Thu, 12 Nov 2009 12:02:42 -0500
+
+freecad (0.8.2237-1) unstable; urgency=low
+
+  * New Upstream release
+
+ -- Teemu Ikonen <tpikonen@gmail.com>  Thu, 16 Jul 2009 18:37:41 +0200
+
+freecad (0.7.1658-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- Teemu Ikonen <tpikonen@gmail.com>  Mon, 20 Oct 2008 15:35:58 +0200
+
+freecad (0.7.1514-1) UNRELEASED; urgency=low
+
+  * New upstream version
+  * Add more stuff to the copyright file
+  * control: add build-dep to python-central
+
+ -- Teemu Ikonen <tpikonen@gmail.com>  Wed, 06 Aug 2008 18:25:02 +0200
+
+freecad (0.7.1350-1hardy1) UNRELEASED; urgency=low
+
+  * Package for Ubuntu 8.04 (Hardy Heron)
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Thu, 29 May 2008 11:11:20 +0200
+
+freecad (0.7.1350-1gutsy1) UNRELEASED; urgency=low
+
+  * Backport to Ubuntu 7.10 (Gutsy Gibbon)
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Sat, 24 May 2008 01:54:39 +0200
+
+freecad (0.7.1350-1feisty1) UNRELEASED; urgency=low
+
+  * Backport to Ubuntu 7.04 (Feisty Fawn)
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Sat, 24 May 2008 00:09:08 +0200
+
+freecad (0.7.1350-1) UNRELEASED; urgency=low
+
+  * New upstream release from sf.net
+  * Import to debian-science repository at git.debian.org
+  * control:
+    - Update to standards-version 3.7.3
+    - Add Vcs-* fields pointing to git.debian.org
+    - Improve descriptions
+  * Convert copyright to (pseudo) machine readable format, audit source
+  * Fix categories in .desktop file
+  * Change Section to Science/Engineering in .doc-base and menu files
+  * rules: do not ignore errors on clean target, add dh_desktop call
+ -- Teemu Ikonen <tpikonen@gmail.com>  Tue, 05 Aug 2008 18:58:07 +0200
+
+freecad (0.7.1344-1ubuntu2) UNRELEASED; urgency=low
+
+  * New package with fixed self-dependency problem
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Thu, 22 May 2008 15:34:34 +0200
+
+freecad (0.7.1344-1ubuntu1) UNRELEASED; urgency=low
+
+  * New debian package for Feisty
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Thu, 22 May 2008 11:04:06 +0200
+
+freecad (0.7.1344-1) UNRELEASED; urgency=low
+
+  * Write patch file to make builds with OpenCASCADE libs inside but with no
+    dependency to libopencascade6.2
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Wed, 21 May 2008 10:06:07 +0200
+
+freecad (0.7.1343-1) UNRELEASED; urgency=low
+
+  * Embed required OpenCASCADE libs into this package as long as no official
+    Debian package is available
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Tue, 20 May 2008 00:40:39 +0200
+
+freecad (0.7.1342-1) UNRELEASED; urgency=low
+
+  * Switch to new versioning scheme of OpenCASCADE packages
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Mon, 19 May 2008 23:55:31 +0200
+
+freecad (0.7.1316-1) UNRELEASED; urgency=low
+
+  * Support of pivy (Python binding for Coin/SoQt)
+  * Support of PyQt4
+  * General support of SWIG modules
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Sat, 26 Apr 2008 13:51:25 +0200
+
+freecad (0.7.1031-1) UNRELEASED; urgency=low
+
+  * Qt4 port finished
+  * Support of Python binding for Qt4
+  * Support of Python binding for Coin
+  * Support of entirely in Python written modules
+  * Added support of model driven architecture for Python binding
+  * Use boost's signal/slot mechanism to update data
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Fri, 04 Jan 2008 13:50:37 +0200
+
+freecad (0.7.645-1) UNRELEASED; urgency=low
+
+  * Qt4 port started
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Tue, 24 Jul 2007 13:04:37 +0200
+
+freecad (0.6.472-1) UNRELEASED; urgency=low
+
+  * Initial Release
+
+ -- Werner Mayer <wmayer@users.sourceforge.net>  Tue, 26 Sep 2006 16:55:15 +0200
diff --git a/clean b/clean
new file mode 100644 (file)
index 0000000..c1ca8b3
--- /dev/null
+++ b/clean
@@ -0,0 +1,2 @@
+src/Tools/generateBase/*.pyc
+src/Tools/generateTemplates/*.pyc
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..5580e68
--- /dev/null
+++ b/control
@@ -0,0 +1,182 @@
+Source: freecad
+Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
+Uploaders: Sebastian Kuzminsky <seb@highlab.com>,
+           Kurt Kremitzki <kkremitzki@debian.org>
+Section: science
+Priority: optional
+Build-Depends: cmake,
+               debhelper-compat (= 13),
+               dh-exec,
+               dh-python,
+               libboost-date-time-dev,
+               libboost-dev,
+               libboost-filesystem-dev,
+               libboost-graph-dev,
+               libboost-iostreams-dev,
+               libboost-program-options-dev,
+               libboost-python-dev,
+               libboost-regex-dev,
+               libboost-serialization-dev,
+               libboost-thread-dev,
+               libcoin-dev,
+               libdouble-conversion-dev,
+               libfmt-dev,
+               libglew-dev,
+               liblz4-dev,
+               libopencv-dev,
+               libeigen3-dev,
+               libgts-bin,
+               libgts-dev,
+               libkdtree++-dev,
+               libmedc-dev,
+               libmetis-dev,
+               libocct-data-exchange-dev (>= 7.8.1+dfsg1),
+               libocct-ocaf-dev (>= 7.8.1+dfsg1),
+               libocct-visualization-dev (>= 7.8.1+dfsg1),
+               libpyside2-dev,
+               libqt5opengl5-dev,
+               libqt5svg5-dev,
+               libqt5xmlpatterns5-dev,
+               libqt5x11extras5-dev,
+               libshiboken2-dev,
+               libspnav-dev,
+               libvtk9-dev,
+               libx11-dev,
+               libxerces-c-dev,
+               libzipios++-dev,
+               lsb-release,
+               occt-draw,
+               pybind11-dev,
+               pyqt5-dev-tools,
+               pyside2-tools,
+               python3-dev,
+               python3-matplotlib,
+               python3-pivy,
+               python3-ply,
+               python3-pyside2.qtcore,
+               python3-pyside2.qtgui,
+               python3-pyside2.qtsvg,
+               python3-pyside2.qtuitools,
+               python3-pyside2.qtwidgets,
+               python3-pyside2.qtxml,
+               python3-requests,
+               qtbase5-dev,
+               qttools5-dev,
+               qtwebengine5-dev [amd64 arm64 armhf i386 mips64el],
+               swig
+Build-Depends-Indep: doxygen
+Standards-Version: 4.6.2
+Vcs-Browser: https://salsa.debian.org/science-team/freecad
+Vcs-Git: https://salsa.debian.org/science-team/freecad.git
+Homepage: https://freecad.org/
+Rules-Requires-Root: no
+
+Package: freecad
+Architecture: all
+Depends: freecad-python3 (>= ${source:Version}),
+         freecad-python3 (<< ${source:Version}.1~),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: calculix-ccx,
+            graphviz,
+            python3-opencamlib,
+Suggests: povray
+Breaks: freecad (<< 0.18)
+Replaces: freecad (<< 0.18)
+Description: Extensible Open Source CAx program
+ For 3D printing, CNC milling or for the manual assembly of complicated
+ constructs one needs a formal specification of the workpiece, i.e.,
+ its parts and how these come together. The process to get there is
+ called Computer-Aided Design (CAD). The process to transform a CAD
+ model into a series of instructions that can be performed on a machine
+ is called Computer-Aided Manufacturing (CAM). FreeCAD can do both, the
+ prior yet a bit better than the latter.
+ .
+ FreeCAD is an Open Source CAx RAD based on OpenCasCade, Qt and Python.
+ It features some key concepts like macro recording, workbenches, ability
+ to run as a server and dynamically loadable application extensions and
+ it is designed to be platform independent.
+ .
+ Currently, FreeCAD can import and display CAD models in IGES, STEP, and
+ BRep formats and meshes in STL, BMS, AST and Wavefront OBJ formats.
+ Editing and modeling features are currently somewhat limited.
+ .
+ This is a metapackage of FreeCAD component packages.
+
+Package: freecad-python3
+Architecture: any
+Depends: freecad-common (= ${source:Version}),
+         python3-matplotlib,
+         python3-pivy,
+         python3-ply,
+         python3-pyside2.qtcore,
+         python3-pyside2.qtgui,
+         python3-pyside2.qtnetwork,
+         python3-pyside2.qtsvg,
+         python3-pyside2.qtuitools,
+         python3-pyside2.qtwidgets,
+         python3-pyside2.qtxml,
+         python3-yaml,
+         libfreecad-python3-0.20 (= ${binary:Version}),
+         ${misc:Depends},
+         ${python3:Depends},
+         ${shlibs:Depends}
+Recommends: python3-pyside2.qtwebchannel,
+            python3-pyside2.qtwebengine,
+            python3-pyside2.qtwebenginecore,
+            python3-pyside2.qtwebenginewidgets
+Breaks: libfreecad-python2-0.17
+Replaces: libfreecad-python2-0.17
+Description: Extensible Open Source CAx program - Python 3 binaries
+ FreeCAD is an Open Source CAx RAD based on OpenCasCade, Qt and Python.
+ It features some key concepts like macro recording, workbenches, ability
+ to run as a server and dynamically loadable application extensions and
+ it is designed to be platform independent.
+ .
+ Currently, FreeCAD can import and display CAD models in IGES, STEP, and
+ BRep formats and meshes in STL, BMS, AST and Wavefront OBJ formats.
+ Editing and modeling features are currently somewhat limited.
+ .
+ This package contains the FreeCAD binaries built against Python 3.
+
+Package: freecad-common
+Architecture: all
+Depends: ${misc:Depends},
+         ${shlibs:Depends}
+Breaks: freecad (<< 0.18),
+        freecad-python2 (<< 0.18),
+        freecad-runtime (<< 0.20)
+Replaces: freecad (<< 0.18),
+          freecad-python2 (<< 0.18),
+          freecad-runtime (<< 0.20)
+Multi-Arch: foreign
+Description: Extensible Open Source CAx program - common files
+ FreeCAD is an Open Source CAx RAD based on OpenCasCade, Qt and Python.
+ It features some key concepts like macro recording, workbenches, ability
+ to run as a server and dynamically loadable application extensions and
+ it is designed to be platform independent.
+ .
+ Currently, FreeCAD can import and display CAD models in IGES, STEP, and
+ BRep formats and meshes in STL, BMS, AST and Wavefront OBJ formats.
+ Editing and modeling features are currently somewhat limited.
+ .
+ This package contains FreeCAD common files and resources.
+
+Package: libfreecad-python3-0.20
+Architecture: any
+Section: libs
+Depends: ${misc:Depends},
+         ${shlibs:Depends}
+Breaks: libfreecad-python3-0.18,libfreecad-python3-0.19
+Replaces: libfreecad-python3-0.18,libfreecad-python3-0.19
+Description: Extensible Open Source CAx program - Python 3 library files
+ FreeCAD is an Open Source CAx RAD based on OpenCasCade, Qt and Python.
+ It features some key concepts like macro recording, workbenches, ability
+ to run as a server and dynamically loadable application extensions and
+ it is designed to be platform independent.
+ .
+ Currently, FreeCAD can import and display CAD models in IGES, STEP, and
+ BRep formats and meshes in STL, BMS, AST and Wavefront OBJ formats.
+ Editing and modeling features are currently somewhat limited.
+ .
+ This package contains shared library files for FreeCAD built against Python 3.
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..00a2532
--- /dev/null
+++ b/copyright
@@ -0,0 +1,255 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: FreeCAD
+Upstream-Contact: Werner Mayer <wmayer@users.sourceforge.net>
+Source: https://github.com/freecad/freecad
+Files-Excluded:
+  data/examples
+  data/tests/*.fcstd
+  src/Doc/freecad.qch.part*
+  src/Doc/freecad.qhc
+  src/MacAppBundle
+  src/Tools/_TEMPLATE_
+  src/3rdParty/libkdtree
+
+Files: *
+Copyright: 2001-2016 Jürgen Riegel <juergen.riegel@web.de>,
+  Werner Mayer <wmayer@users.sourceforge.net>
+License: LGPL-2+
+
+Files: src/3rdParty/salomesmesh/*
+Copyright: 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
+  EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+  2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+License: LGPL-2.1
+
+Files: src/3rdParty/salomesmesh/src/MEFISTO2/*
+Copyright: 2006  Laboratoire J.-L. Lions UPMC Paris
+License: LGPL-2.1
+
+Files: src/Base/Base64.*
+Copyright: 2004-2008 Rene Nyffenegger <rene.nyffenegger@adp-gmbh.ch>
+License: other
+  This source code is provided 'as-is', without any express or implied
+  warranty. In no event will the author be held liable for any damages
+  arising from the use of this software.
+ .
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+ .
+  1. The origin of this source code must not be misrepresented; you must not
+    claim that you wrote the original source code. If you use this source code
+    in a product, an acknowledgment in the product documentation would be
+    appreciated but is not required.
+ .
+  2. Altered source versions must be plainly marked as such, and must not be
+    misrepresented as being the original source code.
+ .
+  3. This notice may not be removed or altered from any source distribution.
+
+Files: src/Base/fdstream.hpp
+Copyright: 2001 Nicolai M. Josuttis
+License: other-josuttis
+  Permission to copy, use, modify, sell and distribute this software
+  is granted provided this copyright notice appears in all copies.
+  This software is provided "as is" without express or implied
+  warranty, and with no claim as to its suitability for any purpose.
+
+Files: src/Base/gzstream.*
+Copyright: 2001 Deepak Bandyopadhyay, Lutz Kettner
+License: LGPL-2.1
+
+Files: src/Base/PyTools.*
+Copyright: 1996-2000 Mark Lutz, and O'Reilly and Associates.
+License: other-lutz
+  Permission to use, copy, modify, and distribute this software
+  for any purpose and without fee is hereby granted.  This software
+  is provided on an as is basis, without warranties of any kind.
+
+Files: src/Base/BoundBox.h src/Base/Swap.* src/Base/Vector3D.* src/Base/ViewProj.h src/Base/Matrix.* src/Base/Tools2D.* src/Mod/Mesh/App/Core/*
+Copyright: 2005 Imetric 3D GmbH
+License: GPL-2+
+  On Debian systems, the complete text of the GNU General Public
+  License version 2 can be found in `/usr/share/common-licenses/GPL-2'.
+
+Files: src/Mod/Draft/importAirfoilDAT.py
+Copyright: 2010 Heiko Jakob <heiko.jakob@gediegos.de>
+License: LGPL-2+
+
+Files: src/Mod/Mesh/App/Core/Builder.h
+ src/Mod/Mesh/App/Core/SetOperations.*
+ src/Mod/Mesh/BuildRegularGeoms.py
+Copyright: 2005 Berthold Grupp
+License: LGPL-2+
+
+Files: src/Mod/Image/App/ImageBase.* src/Mod/Image/Gui/ImageView.* src/Mod/Image/Gui/XpmImages.h
+Copyright: 2004 Imetric 3D GmbH
+License: LGPL-2+
+
+Files: src/Mod/Mesh/App/Core/tritritest.h
+Copyright: 1997 Tomas Moller <tam@cs.lth.se>
+License: other-moller
+  tritritest.h has no licensing information, but Tomas Moller replied
+  the following, when asked about it:
+ .
+  The code is free to use for anyone and any projects, but I give no
+  warranties.
+
+Files: src/Mod/Mesh/App/WildMagic4/*
+Copyright: 1998-2007 David Eberly http://www.geometrictools.com
+License: LGPL-2.1+
+
+Files: src/Mod/Part/App/edgecluster.*
+Copyright: 2010 Joachim Zettler <Joachim.Zettler@gmx.de>
+License: LGPL-2+
+
+Files: src/Mod/Raytracing/App/resources/*
+Copyright: 2005 Georg Wiora <georg.wiora@quarkbox.de>,
+ Juergen Riegel <juergen.riegel@web.de>
+License: LGPL-2+
+
+Files: src/Mod/Test/unittestgui.py
+Copyright: 1999-2001 Steve Purcell
+License: PSF
+ This module is free software, and you may redistribute it and/or modify
+ it under the same terms as Python itself, so long as this copyright message
+ and disclaimer are retained in their original form.
+ .
+ IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+ SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF
+ THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ .
+ THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE.  THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS,
+ AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
+ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+Files: src/Tools/generateBase/generateDS.py
+Copyright: 2003 Dave Kuhlman
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Files: src/Base/QuantityParser.c src/Gui/SelectionFilter.tab.c
+Copyright: 1984, 1989-1990, 2000-2006, 2009-2010 Free Software Foundation, Inc.
+License: GPL-3+ with Bison exception
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ .
+ As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton.  Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+ .
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison.
+ .
+ C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser.
+ .
+ All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space.  This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below.
+
+Files: src/CXX/*
+Copyright: (c) 1998 - 2007 The Regents of the University of California
+License: BSD-3-with-notice
+  Redistribution  and  use   in  source  and  binary  forms,   with  or  without
+  modification, are permitted provided that the following conditions are met:
+ .
+  - Redistributions of source code must retain the above copyright notice, this
+    list of conditions and the disclaimer below.
+  - Redistributions in  binary form must reproduce the above  copyright notice,
+    this  list of  conditions  and  the  disclaimer (as  noted  below)  in  the
+    documentation and/or materials provided with the distribution.
+  - Neither the name  of the UC/LLNL nor  the names of its  contributors may be
+    used to  endorse or  promote products  derived from  this software  without
+    specific prior written permission.
+ .
+  THIS SOFTWARE IS  PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS  "AS IS"
+  AND ANY  EXPRESS OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT  LIMITED  TO, THE
+  IMPLIED WARRANTIES  OF MERCHANTABILITY AND  FITNESS FOR  A PARTICULAR  PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OF THE UNIVERSITY OF CALIFORNIA,
+  THE U.S.  DEPARTMENT  OF  ENERGY  OR CONTRIBUTORS BE  LIABLE  FOR  ANY DIRECT,
+  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER  CAUSED AND ON ANY THEORY
+  OF LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR  TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE)  ARISING IN ANY WAY OUT OF THE  USE OF THIS SOFTWARE,
+  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ .
+  Additional BSD Notice
+ .
+  1. This notice  is required to be  provided under our  contract with  the U.S.
+    Department of Energy  (DOE).  This work was produced  at the  University of
+    California,  Lawrence  Livermore  National Laboratory  under  Contract  No.
+    W-7405-ENG-48 with the DOE.
+ .
+  2. Neither the  United  States  Government nor  the University  of  California
+    nor any  of their  employees,  makes any warranty,  express or  implied, or
+    assumes any  liability or  responsibility for  the accuracy,  completeness,
+    or usefulness of any information, apparatus, product, or process disclosed,
+    or represents that its use would not infringe privately-owned rights.
+ .
+  3. Also, reference  herein to any  specific commercial  products,  process, or
+    services by  trade name,  trademark,  manufacturer  or otherwise  does  not
+    necessarily  constitute  or  imply   its  endorsement,  recommendation,  or
+    favoring by the  United States Government or the  University of California.
+    The views  and opinions  of authors  expressed herein  do  not  necessarily
+    state or reflect  those of the  United States Government  or the University
+    of California, and shall not be used for advertising or product endorsement
+    purposes.
+
+Files: src/Gui/QSint/*
+Copyright: (c) QSint developers
+License: LGPL-3
+  On Debian systems, the complete text of the GNU Lesser General Public
+  License version 3 can be found in `/usr/share/common-licenses/LGPL-3'.
+
+License: LGPL-2.1+
+  On Debian systems, the complete text of the GNU Lesser General Public
+  License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.
+
+License: LGPL-2.1
+  On Debian systems, the complete text of the GNU Lesser General Public
+  License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.
+
+License: LGPL-2+
+  On Debian systems, the complete text of the GNU Lesser General Public
+  License version 2 can be found in `/usr/share/common-licenses/LGPL-2'.
diff --git a/freecad-common.install b/freecad-common.install
new file mode 100644 (file)
index 0000000..7adc8ca
--- /dev/null
@@ -0,0 +1,7 @@
+usr/share/doc/freecad-doc/ThirdPartyLibraries.html usr/share/freecad
+usr/share/freecad/Mod/*
+usr/share/freecad/Gui/*
+usr/share/freecad/Ext/*
+usr/share/freecad/share/icons/* usr/share/icons
+usr/share/freecad/share/thumbnailers/* usr/share/thumbnailers
+usr/share/freecad/3Dconnexion/*
diff --git a/freecad-common.links b/freecad-common.links
new file mode 100644 (file)
index 0000000..0ec45a4
--- /dev/null
@@ -0,0 +1,4 @@
+usr/share/freecad/ThirdPartyLibraries.html usr/share/doc/freecad-doc/ThirdPartyLibraries.html
+usr/share/freecad/Gui usr/lib/freecad/Gui
+usr/share/freecad/Mod usr/lib/freecad/Mod
+usr/share/freecad/Ext usr/lib/freecad/Ext
diff --git a/freecad-common.lintian-overrides b/freecad-common.lintian-overrides
new file mode 100644 (file)
index 0000000..6be917a
--- /dev/null
@@ -0,0 +1,3 @@
+# /usr/bin/freecad is a symlink, handled by update-alternatives, pointing at
+# /usr/lib/freecad/bin/freecad-python3
+desktop-command-not-in-package
diff --git a/freecad-common.manpages b/freecad-common.manpages
new file mode 100644 (file)
index 0000000..4586a85
--- /dev/null
@@ -0,0 +1 @@
+debian/freecad.1
diff --git a/freecad-python3.install b/freecad-python3.install
new file mode 100755 (executable)
index 0000000..967b9f9
--- /dev/null
@@ -0,0 +1,3 @@
+#!/usr/bin/dh-exec
+usr/share/freecad/bin/FreeCADCmd-Python3 => usr/lib/freecad/bin/freecadcmd-python3
+usr/share/freecad/bin/FreeCAD-Python3 => usr/lib/freecad/bin/freecad-python3
diff --git a/freecad-python3.postinst b/freecad-python3.postinst
new file mode 100644 (file)
index 0000000..4021f31
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+update-alternatives --install /usr/bin/freecad freecad /usr/lib/freecad/bin/freecad-python3 30 \
+                    --slave /usr/bin/freecadcmd freecadcmd /usr/lib/freecad/bin/freecadcmd-python3 \
+                    --slave /usr/lib/freecad/lib freecadlib /usr/lib/freecad-python3/lib
+
+#DEBHELPER#
+
+exit 0
diff --git a/freecad-python3.prerm b/freecad-python3.prerm
new file mode 100644 (file)
index 0000000..3a2f531
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+  remove|deconfigure)
+    update-alternatives --remove freecad /usr/lib/freecad/bin/freecad-python3
+    ;;
+
+  upgrade|failed-upgrade)
+    ;;
+
+  *)
+    echo "prerm called with unknown argument '$1'" >&2
+    exit 0
+    ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/freecad.1 b/freecad.1
new file mode 100644 (file)
index 0000000..fb351ce
--- /dev/null
+++ b/freecad.1
@@ -0,0 +1,91 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH FREECAD 1 "March  22, 2019" freecad "Linux User's Manual"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+freecad \- Extensible Open Source CAx program
+.SH SYNOPSIS
+.B freecad
+.RI [ options ] " files"
+.br
+.B freecadcmd
+.RI [ options ] " files"
+.SH DESCRIPTION
+.B FreeCAD
+is an Open Source CAx RAD based on OpenCasCade, Qt and Python. It features 
+some key concepts like macro recording, workbenches, ability to run as a 
+server and dynamically loadable application extensions and it is designed 
+to be platform independent.
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+.SH USAGE
+\fBfreecad\fR starts with a GUI while \fBfreecadcmd\fR is only a pure command line version that starts a Python interpreter.
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of the options supported by \fBfreecad\fR is included below.
+.SS "Generic options"
+.TP
+\fB\-c, \-\-console\fR
+Starts in console mode.
+.TP
+\fB\-\-dump\-config\fR
+Dumps configuration.
+.TP
+\fB\-\-get\-config\fR \fIarg\fR
+Prints the value of the requested configuration key.
+.TP
+\fB\-h, \-\-help\fR
+Prints help message.
+.TP
+\fB\-\-response\-file\fR \fIarg\fR
+Can be specified with '@name', too.
+.TP
+\fB\-v, \-\-version\fR
+Prints version string.
+
+.SS "Configuration"
+.TP
+\fB\-l, \-\-write\-log\fR
+Writes a log file to $HOME/.FreeCAD/FreeCAD.log
+.TP
+\fB\-\-log\-file\fR \fIarg\fR
+Unlike --write-log this allows logging to an arbitrary file.
+.TP
+\fB\-M, \-\-module\-path\fR \fIarg\fR
+Additional module paths.
+.TP
+\fB\-P, \-\-python\-path\fR \fIarg\fR
+Additional Python paths.
+.TP
+\fB\-s, \-\-system\-cfg\fR \fIarg\fR
+System config file to load/save system settings.
+.TP
+\fB\-\-single\-instance\fR
+Allow to run a single instance of the application.
+.TP
+\fB\-t, \-\-run\-test\fR \fIarg\fR
+Test case - or 0 for all.
+.TP
+\fB\-u, \-\-user\-cfg\fR \fIarg\fR
+User config file to load/save user settings.
+.SH SEE ALSO
+To get more information about \fBFreeCAD\fR, please visit \fIhttps://freecad.org\fR
+.SH BUGS
+To report a bug, please visit \fIhttps://github.com/FreeCAD/FreeCAD/issue\fR
+.SH AUTHOR
+This manual page was written by Werner Mayer and Salman Mohammadi <salman@smoha.org>.
diff --git a/freecad.examples b/freecad.examples
new file mode 100644 (file)
index 0000000..2f72fb0
--- /dev/null
@@ -0,0 +1 @@
+src/Mod/Ship/resources/examples/*
diff --git a/freecad.install b/freecad.install
new file mode 100644 (file)
index 0000000..1a0f6b0
--- /dev/null
@@ -0,0 +1,3 @@
+usr/share/freecad/share/applications/* usr/share/applications
+usr/share/freecad/share/metainfo/* usr/share/metainfo
+usr/share/freecad/share/mime/* usr/share/mime
diff --git a/freecad.lintian-overrides b/freecad.lintian-overrides
new file mode 100644 (file)
index 0000000..3356199
--- /dev/null
@@ -0,0 +1,2 @@
+# FreeCAD is transitioning to a virtual package
+package-relation-with-self
diff --git a/gbp.conf b/gbp.conf
new file mode 100644 (file)
index 0000000..6d512d3
--- /dev/null
+++ b/gbp.conf
@@ -0,0 +1,3 @@
+[DEFAULT]
+pristine-tar = True
+sign-tags = true
diff --git a/libfreecad-python3-0.20.install b/libfreecad-python3-0.20.install
new file mode 100644 (file)
index 0000000..a345d61
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/freecad-python3/lib/*.so
diff --git a/libfreecad-python3-0.20.lintian-overrides b/libfreecad-python3-0.20.lintian-overrides
new file mode 100644 (file)
index 0000000..c393f49
--- /dev/null
@@ -0,0 +1,2 @@
+# False positive for pcre3
+embedded-library
diff --git a/not-installed b/not-installed
new file mode 100644 (file)
index 0000000..56afcbc
--- /dev/null
@@ -0,0 +1,3 @@
+usr/share/freecad/share/pixmaps/freecad.xpm
+usr/share/freecad/include/gtest/*
+usr/share/freecad/include/gmock/*
diff --git a/patches/0020-python3.8-syntax.patch b/patches/0020-python3.8-syntax.patch
new file mode 100644 (file)
index 0000000..86ffb13
--- /dev/null
@@ -0,0 +1,22 @@
+Description: Fix build failure with Python 3.8
+ Patches from Gianfranco and Ubuntu.
+Author: Tobias Frost <tobi@debian.org>
+Last-Update: 2020-05-12
+Bug-Debian: https://bugs.debian.org/953722
+Forwarded: not-needed
+Applied-Upstream: commit:de7949a3b78b55cb3795645da9d8666f6940af5a
+
+--- a/src/Mod/Test/TestPythonSyntax.py
++++ b/src/Mod/Test/TestPythonSyntax.py
+@@ -58,9 +58,11 @@
+     """
+     def setUp(self):
+         self.whitelist = []
++        self.whitelist += ["ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies_mim_lf.py"]
+         self.whitelist += ["automotive_design.py"]
+         self.whitelist += ["ifc2x3.py"]
+         self.whitelist += ["ifc4.py"]
++        self.whitelist += ["__exec_old.py"]
+     def testAll(self):
diff --git a/patches/0030-octt78.patch b/patches/0030-octt78.patch
new file mode 100644 (file)
index 0000000..dcff18f
--- /dev/null
@@ -0,0 +1,718 @@
+Description: Fix FTBFS with opencascade 7.8.x
+ This is a backport of the upstream patch to enable compilation
+ with opencascade 7.8.x
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1071283
+Bug: https://github.com/IfcOpenShell/IfcOpenShell/issues/4393
+Fixed-Upstream: https://github.com/IfcOpenShell/IfcOpenShell/pull/4398/commits/d31bc9cbeb2ac92c398292b8c591515b739265b8
+From 8abd09398a010337c3b294e687e0666b60bceacf Mon Sep 17 00:00:00 2001
+From: bgbsww <120601209+bgbsww@users.noreply.github.com>
+Date: Tue, 9 Jan 2024 20:47:25 -0500
+Subject: [PATCH] Add support for OCCT 7.8.0 (#11909)
+
+---
+ cMake/FindOCC.cmake                           | 14 ++---
+ .../inc/SMESHDS_DataMapOfShape.hxx            | 17 +++++-
+ .../salomesmesh/inc/SMESH_MeshVSLink.hxx      |  3 -
+ src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx  |  1 +
+ .../salomesmesh/inc/SMESH_SequenceOfNode.hxx  |  3 +-
+ .../salomesmesh/inc/SMESH_TypeDefs.hxx        |  7 +++
+ .../src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp   | 29 ++++++++-
+ .../StdMeshers/StdMeshers_Quadrangle_2D.cpp   |  1 -
+ src/Mod/Fem/Gui/TaskCreateNodeSet.cpp         |  1 -
+ src/Mod/Import/App/ImportOCAF.cpp             | 60 +++++++++++++++++++
+ src/Mod/Import/App/ImportOCAF2.h              |  1 -
+ src/Mod/Import/App/Tools.h                    | 11 +++-
+ src/Mod/MeshPart/App/CurveProjector.h         |  6 ++
+ src/Mod/Part/App/ImportStep.cpp               |  5 ++
+ src/Mod/Part/App/TopoShapePyImp.cpp           |  8 +++
+ src/Mod/Part/Gui/AppPartGui.cpp               |  1 -
+ src/Mod/Part/Gui/Command.cpp                  |  1 -
+ src/Mod/Part/Gui/CommandSimple.cpp            |  1 -
+ src/Mod/Part/Gui/CrossSections.cpp            |  1 -
+ src/Mod/Part/Gui/ViewProvider2DObject.cpp     |  1 -
+ src/Mod/Part/Gui/ViewProviderExt.cpp          | 12 ++++
+ src/Mod/Part/Gui/ViewProviderExt.h            |  1 -
+ src/Mod/Part/Gui/ViewProviderMirror.cpp       |  1 -
+ src/Mod/Part/Gui/ViewProviderPython.cpp       |  1 -
+ src/Mod/Part/Gui/ViewProviderReference.h      |  1 -
+ src/Mod/Path/App/Voronoi.cpp                  |  3 +-
+ src/Mod/Path/Gui/PreCompiled.h                |  2 -
+ src/Mod/Robot/Gui/PreCompiled.h               |  2 -
+ src/Mod/Sketcher/Gui/EditDatumDialog.cpp      |  1 -
+ 29 files changed, 161 insertions(+), 35 deletions(-)
+
+--- a/cMake/FindOCC.cmake
++++ b/cMake/FindOCC.cmake
+@@ -127,8 +127,6 @@
+     TKG2d
+     TKG3d
+     TKMath
+-    TKIGES
+-    TKSTL
+     TKShHealing
+     TKXSBase
+     TKBool
+@@ -139,10 +137,6 @@
+     TKGeomBase
+     TKOffset
+     TKPrim
+-    TKSTEPBase
+-    TKSTEPAttr
+-    TKSTEP209
+-    TKSTEP
+     TKHLR
+     TKFeat
+   )
+@@ -154,17 +148,20 @@
+     TKLCAF
+     TKVCAF
+     TKCDF
+-    TKXDESTEP
+-    TKXDEIGES
+     TKMeshVS
+     TKService
+     TKV3d
+   )
+-  if(OCC_VERSION_STRING VERSION_LESS 6.7.3)
+-    list(APPEND OCC_OCAF_LIBRARIES TKAdvTools)
+-  elseif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
++
++  if(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
+     list(APPEND OCC_OCAF_LIBRARIES TKRWMesh)
+-  endif(OCC_VERSION_STRING VERSION_LESS 6.7.3)
++  endif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
++  if(OCC_VERSION_STRING VERSION_LESS 7.8.0)
++    list(APPEND OCC_LIBRARIES TKIGES TKSTL TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP)
++    list(APPEND OCC_OCAF_LIBRARIES TKXDESTEP TKXDEIGES)
++  else(OCC_VERSION_STRING VERSION_LESS 7.8.0)
++    list(APPEND OCC_LIBRARIES TKDESTEP TKDEIGES TKDEGLTF TKDESTL)
++  endif(OCC_VERSION_STRING VERSION_LESS 7.8.0)
+   message(STATUS "-- Found OCE/OpenCASCADE version: ${OCC_VERSION_STRING}")
+   message(STATUS "-- OCE/OpenCASCADE include directory: ${OCC_INCLUDE_DIR}")
+   message(STATUS "-- OCE/OpenCASCADE shared libraries directory: ${OCC_LIBRARY_DIR}")
+--- a/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx
++++ b/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx
+@@ -29,13 +29,26 @@
+ #include <TopoDS_Shape.hxx>
++#include <Standard_Version.hxx>
++
+ /*
+  * This method needed for instance NCollection_DataMap with TopoDS_Shape as key
+  */
++#if OCC_VERSION_HEX >= 0x070800
++struct SMESHDS_Hasher
++{
++  size_t operator()(const TopoDS_Shape& S) const noexcept {
++    return std::hash<TopoDS_Shape>{}(S);
++  }
++  size_t operator()(const TopoDS_Shape& S1, const TopoDS_Shape& S2) const noexcept {
++    return S1.IsSame(S2);
++  }
++};
++#else
+ struct SMESHDS_Hasher
+ {
+   static inline Standard_Boolean IsEqual(const TopoDS_Shape& S1,
+-                                         const TopoDS_Shape& S2)
++                                        const TopoDS_Shape& S2)
+   {
+     return S1.IsSame(S2);
+   }
+@@ -45,6 +58,6 @@
+     return ::HashCode( S, Upper);
+   }
+ };
+-
++#endif
+ #endif
+--- a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx
++++ b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx
+@@ -57,9 +57,6 @@
+ #ifndef _MeshVS_EntityType_HeaderFile
+ #include <MeshVS_EntityType.hxx>
+ #endif
+-#ifndef _Standard_Address_HeaderFile
+-#include <Standard_Address.hxx>
+-#endif
+ #ifndef _TColStd_HArray1OfInteger_HeaderFile
+ #include <TColStd_HArray1OfInteger.hxx>
+ #endif
+--- a/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx
++++ b/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx
+@@ -37,4 +37,5 @@
+  #define SMESH_EXPORT
+ #endif
++#include <Standard_Version.hxx>
+ #endif
+--- a/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx
++++ b/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx
+@@ -28,10 +28,11 @@
+ #include "SMESH_SMESH.hxx"
+-#include <NCollection_DefineSequence.hxx>
+ #if OCC_VERSION_HEX >= 0x060703
+ #include <NCollection_IncAllocator.hxx>
+ #include <NCollection_Sequence.hxx>
++#else
++#include <NCollection_DefineSequence.hxx>
+ #endif
+ typedef const SMDS_MeshNode* SMDS_MeshNodePtr;
+--- a/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx
++++ b/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx
+@@ -185,11 +185,18 @@
+ // --------------------------------------------------------------------------------
+ // class SMESH_SequenceOfElemPtr
++#include <Standard_Version.hxx>
++#if OCC_VERSION_HEX >= 0x060703
++#include <NCollection_Sequence.hxx>
++#else
+ #include <NCollection_DefineSequence.hxx>
++#endif
+ class SMDS_MeshElement;
+ typedef const SMDS_MeshElement* SMDS_MeshElementPtr;
++#define DEFINE_SEQUENCE(_ClassName_, _BaseCollection_, TheItemType)            \
++typedef NCollection_Sequence<TheItemType > _ClassName_;
+ DEFINE_SEQUENCE (SMESH_SequenceOfElemPtr, SMESH_BaseCollectionElemPtr, SMDS_MeshElementPtr)
+--- a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp
++++ b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp
+@@ -33,10 +33,33 @@
+ #include "SMDS_MeshNode.hxx"
+ #include "SMESH_File.hxx"
++#include <Standard_Version.hxx>
++
+ namespace
+ {
+   struct Hasher
+   {
++#if OCC_VERSION_HEX >= 0x070800
++    size_t operator()(const gp_Pnt& point) const noexcept
++    {
++      union
++      {
++        Standard_Real    R[3];
++        Standard_Integer I[6];
++      } U;
++
++      point.Coord( U.R[0], U.R[1], U.R[2] );
++      return std::hash<Standard_Integer>{}(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7);
++    }
++
++    size_t operator()(const gp_Pnt& point1, const gp_Pnt& point2) const noexcept
++    {
++      static Standard_Real tab1[3], tab2[3];
++      point1.Coord(tab1[0],tab1[1],tab1[2]);
++      point2.Coord(tab2[0],tab2[1],tab2[2]);
++      return (memcmp(tab1,tab2,sizeof(tab1)) == 0);
++    }
++#else
+     //=======================================================================
+     //function : HashCode
+     //purpose  :
+@@ -51,9 +74,9 @@
+       } U;
+       point.Coord( U.R[0], U.R[1], U.R[2] );
+-
+-      return ::HashCode(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7,Upper);
++      return std::hash<Standard_Integer>{}(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7);
+     }
++ 
+     //=======================================================================
+     //function : IsEqual
+     //purpose  :
+@@ -66,7 +89,9 @@
+       point2.Coord(tab2[0],tab2[1],tab2[2]);
+       return (memcmp(tab1,tab2,sizeof(tab1)) == 0);
+     }
++#endif
+   };
++
+   typedef NCollection_DataMap<gp_Pnt,SMDS_MeshNode*,Hasher> TDataMapOfPntNodePtr;
+   const int HEADER_SIZE           = 84;
+--- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp
++++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp
+@@ -48,7 +48,6 @@
+ #include <Bnd_Box.hxx>
+ #include <GeomAPI_ProjectPointOnSurf.hxx>
+ #include <Geom_Surface.hxx>
+-#include <NCollection_DefineArray2.hxx>
+ #include <Precision.hxx>
+ #include <Standard_Real.hxx>
+ #include <TColStd_SequenceOfInteger.hxx>
+--- a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp
++++ b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp
+@@ -28,7 +28,6 @@
+ # include <SMESH_Mesh.hxx>
+ # include <SMESHDS_Mesh.hxx>
+-# include <Standard_math.hxx>
+ #endif
+ #include <Base/Console.h>
+--- a/src/Mod/Import/App/ImportOCAF.cpp
++++ b/src/Mod/Import/App/ImportOCAF.cpp
+@@ -148,7 +148,11 @@
+     std::vector<App::DocumentObject *> localValue;
+     if (aShapeTool->GetShape(label,aShape)) {
++#if OCC_VERSION_HEX >= 0x070800
++        hash = std::hash<TopoDS_Shape> {}(aShape);
++#else
+         hash = aShape.HashCode(HashUpper);
++#endif
+     }
+     Handle(TDataStd_Name) name;
+@@ -217,9 +221,13 @@
+     if (isRef || myRefShapes.find(hash) == myRefShapes.end()) {
+         TopoDS_Shape aShape;
+-        if (isRef && aShapeTool->GetShape(label, aShape))
+-            myRefShapes.insert(aShape.HashCode(HashUpper));
+-
++        if (isRef && aShapeTool->GetShape(label, aShape)) {
++#if OCC_VERSION_HEX >= 0x070800
++            myRefShapes.insert(std::hash<TopoDS_Shape> {}(aShape));
++#else
++             myRefShapes.insert(aShape.HashCode(HashUpper));
++#endif        
++        }
+         if (aShapeTool->IsSimpleShape(label) && (isRef || aShapeTool->IsFree(label))) {
+             if (!asm_name.empty())
+                 part_name = asm_name;
+@@ -532,7 +540,11 @@
+     part->Label.setValue(default_name);
+     part->Shape.setValue(shape);
+     std::map<Standard_Integer, Quantity_ColorRGBA>::const_iterator jt;
++#if OCC_VERSION_HEX >= 0x070800
++    jt = myColorMap.find(std::hash<TopoDS_Shape> {}(shape));
++#else
+     jt = myColorMap.find(shape.HashCode(INT_MAX));
++#endif
+     App::Color partColor(0.8f,0.8f,0.8f);
+ #if 0//TODO
+@@ -553,7 +565,11 @@
+     // set label name if defined
+     if (setname && !myNameMap.empty()) {
+         std::map<Standard_Integer, std::string>::const_iterator jt;
++#if OCC_VERSION_HEX >= 0x070800
++        jt = myNameMap.find(std::hash<TopoDS_Shape> {}(shape));
++#else
+         jt = myNameMap.find(shape.HashCode(INT_MAX));
++#endif
+         if (jt != myNameMap.end()) {
+             part->Label.setValue(jt->second);
+         }
+@@ -573,7 +589,11 @@
+         faceColors.resize(faces.Extent(), partColor);
+         xp.Init(shape,TopAbs_FACE);
+         while (xp.More()) {
++#if OCC_VERSION_HEX >= 0x070800
++            jt = myColorMap.find(std::hash<TopoDS_Shape> {}(xp.Current()));
++#else
+             jt = myColorMap.find(xp.Current().HashCode(INT_MAX));
++#endif
+             if (jt != myColorMap.end()) {
+                 int index = faces.FindIndex(xp.Current());
+                 faceColors[index-1] = convertColor(jt->second);
+@@ -607,24 +627,59 @@
+             int ctSolids = 0, ctShells = 0, ctComps = 0;
+             // add the shapes
+             TopExp_Explorer xp;
+-            for (xp.Init(aShape, TopAbs_SOLID); xp.More(); xp.Next(), ctSolids++)
++             for (xp.Init(aShape, TopAbs_SOLID); xp.More(); xp.Next(), ctSolids++) {
++#if OCC_VERSION_HEX >= 0x070800
++                this->mySolids[std::hash<TopoDS_Shape> {}(xp.Current())] = (xp.Current());
++#else
+                 this->mySolids[xp.Current().HashCode(INT_MAX)] = (xp.Current());
+-            for (xp.Init(aShape, TopAbs_SHELL, TopAbs_SOLID); xp.More(); xp.Next(), ctShells++)
++#endif
++            }
++            for (xp.Init(aShape, TopAbs_SHELL, TopAbs_SOLID); xp.More(); xp.Next(), ctShells++) {
++#if OCC_VERSION_HEX >= 0x070800
++                this->myShells[std::hash<TopoDS_Shape> {}(xp.Current())] = (xp.Current());
++#else
+                 this->myShells[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
++             }
+             // if no solids and no shells were found then go for compounds
+             if (ctSolids == 0 && ctShells == 0) {
+-                for (xp.Init(aShape, TopAbs_COMPOUND); xp.More(); xp.Next(), ctComps++)
++                for (xp.Init(aShape, TopAbs_COMPOUND); xp.More(); xp.Next(), ctComps++) {
++#if OCC_VERSION_HEX >= 0x070800
++                    this->myCompds[std::hash<TopoDS_Shape> {}(xp.Current())] = (xp.Current());
++#else
+                     this->myCompds[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
++                }
+             }
+             if (ctComps == 0) {
+-                for (xp.Init(aShape, TopAbs_FACE, TopAbs_SHELL); xp.More(); xp.Next())
++                for (xp.Init(aShape, TopAbs_FACE, TopAbs_SHELL); xp.More(); xp.Next()) {
++#if OCC_VERSION_HEX >= 0x070800
++                    this->myShapes[std::hash<TopoDS_Shape> {}(xp.Current())] = (xp.Current());
++#else
+                     this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
+-                for (xp.Init(aShape, TopAbs_WIRE, TopAbs_FACE); xp.More(); xp.Next())
++#endif
++                }                    
++                for (xp.Init(aShape, TopAbs_WIRE, TopAbs_FACE); xp.More(); xp.Next()) {
++#if OCC_VERSION_HEX >= 0x070800
++                    this->myShapes[std::hash<TopoDS_Shape> {}(xp.Current())] = (xp.Current());
++#else
+                     this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
+-                for (xp.Init(aShape, TopAbs_EDGE, TopAbs_WIRE); xp.More(); xp.Next())
++#endif
++                }                    
++                for (xp.Init(aShape, TopAbs_EDGE, TopAbs_WIRE); xp.More(); xp.Next()) {
++#if OCC_VERSION_HEX >= 0x070800
++                    this->myShapes[std::hash<TopoDS_Shape> {}(xp.Current())] = (xp.Current());
++#else
+                     this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
+-                for (xp.Init(aShape, TopAbs_VERTEX, TopAbs_EDGE); xp.More(); xp.Next())
++#endif
++                }
++                for (xp.Init(aShape, TopAbs_VERTEX, TopAbs_EDGE); xp.More(); xp.Next()) {
++#if OCC_VERSION_HEX >= 0x070800
++                    this->myShapes[std::hash<TopoDS_Shape> {}(xp.Current())] = (xp.Current());
++#else
+                     this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
++                }
+             }
+         }
+@@ -634,7 +689,11 @@
+             hColors->GetColor(label, XCAFDoc_ColorSurf, col) ||
+             hColors->GetColor(label, XCAFDoc_ColorCurv, col)) {
+             // add defined color
++#if OCC_VERSION_HEX >= 0x070800
++            myColorMap[std::hash<TopoDS_Shape> {}(aShape)] = col;
++#else
+             myColorMap[aShape.HashCode(INT_MAX)] = col;
++#endif
+         }
+         else {
+             // http://www.opencascade.org/org/forum/thread_17107/
+@@ -644,7 +703,11 @@
+                     hColors->GetColor(it.Value(), XCAFDoc_ColorSurf, col) ||
+                     hColors->GetColor(it.Value(), XCAFDoc_ColorCurv, col)) {
+                     // add defined color
++#if OCC_VERSION_HEX >= 0x070800
++                    myColorMap[std::hash<TopoDS_Shape> {}(it.Value())] = col;
++#else
+                     myColorMap[it.Value().HashCode(INT_MAX)] = col;
++#endif
+                 }
+             }
+         }
+@@ -656,8 +719,13 @@
+             char* str = new char[extstr.LengthOfCString()+1];
+             extstr.ToUTF8CString(str);
+             std::string labelName(str);
+-            if (!labelName.empty())
++            if (!labelName.empty()) {
++#if OCC_VERSION_HEX >= 0x070800
++                myNameMap[std::hash<TopoDS_Shape> {}(aShape)] = labelName;
++#else
+                 myNameMap[aShape.HashCode(INT_MAX)] = labelName;
++#endif
++            }
+             delete [] str;
+         }
+--- a/src/Mod/Import/App/ImportOCAF2.h
++++ b/src/Mod/Import/App/ImportOCAF2.h
+@@ -30,7 +30,6 @@
+ #include <unordered_map>
+ #include <vector>
+-#include <TDF_LabelMapHasher.hxx>
+ #include <TDocStd_Document.hxx>
+ #include <TopoDS_Shape.hxx>
+ #include <XCAFDoc_ColorTool.hxx>
+@@ -42,6 +41,7 @@
+ #include "ImportOCAF.h"
+ #include "ExportOCAF.h"
++#include <Standard_Version.hxx>
+ class TDF_Label;
+ class TopLoc_Location;
+@@ -58,13 +58,21 @@
+ struct ShapeHasher {
+     std::size_t operator()(const TopoDS_Shape &s) const {
+-        return s.HashCode(INT_MAX);
++#if OCC_VERSION_HEX >= 0x070800
++        return std::hash<TopoDS_Shape> {}(s);
++#else
++        return shape.HashCode(INT_MAX);
++#endif
+     }
+ };
+ struct LabelHasher {
+     std::size_t operator()(const TDF_Label &l) const {
+-        return TDF_LabelMapHasher::HashCode(l,INT_MAX);
++#if OCC_VERSION_HEX >= 0x070800
++        return std::hash<TDF_Label> {}(l);
++#else
++        return TDF_LabelMapHasher::HashCode(l, INT_MAX);
++#endif
+     }
+ };
+--- a/src/Mod/MeshPart/App/CurveProjector.h
++++ b/src/Mod/MeshPart/App/CurveProjector.h
+@@ -32,6 +32,7 @@
+ #include <Mod/Mesh/App/Mesh.h>\r
+ #include <Mod/MeshPart/MeshPartGlobal.h>\r
\r
++#include <Standard_Version.hxx>\r
\r
+ namespace MeshCore\r
+ {\r
+@@ -63,8 +64,13 @@
+   template<class T>\r
+     struct TopoDSLess {\r
+     bool operator()(const T& x, const T& y) const {\r
+-      return x.HashCode(INT_MAX-1) < y.HashCode(INT_MAX-1);\r
+-    }\r
++#if OCC_VERSION_HEX >= 0x070800\r
++            std::hash<T> hasher;\r
++            return hasher(x) < hasher(y);\r
++#else\r
++            return x.HashCode(INT_MAX - 1) < y.HashCode(INT_MAX - 1);\r
++#endif\r
++     }\r
+   };\r
\r
+   using result_type = std::map<TopoDS_Edge, std::vector<FaceSplitEdge>,TopoDSLess<TopoDS_Edge> >;\r
+--- a/src/Mod/Part/App/ImportStep.cpp
++++ b/src/Mod/Part/App/ImportStep.cpp
+@@ -137,7 +137,12 @@
+                 // This is a trick to access the GUI via Python and set the color property\r
+                 // of the associated view provider. If no GUI is up an exception is thrown\r
+                 // and cleared immediately\r
++#if OCC_VERSION_HEX >= 0x070800\r
++                std::hash<TopoDS_Solid> hasher;\r
++                std::map<int, Quantity_Color>::iterator it = hash_col.find(hasher(aSolid));\r
++#else\r
+                 std::map<int, Quantity_Color>::iterator it = hash_col.find(aSolid.HashCode(INT_MAX));\r
++#endif\r
+                 if (it != hash_col.end()) {\r
+                     try {\r
+                         Py::Object obj(pcFeature->getPyObject(), true);\r
+--- a/src/Mod/Part/App/TopoShapePyImp.cpp
++++ b/src/Mod/Part/App/TopoShapePyImp.cpp
+@@ -1304,7 +1304,11 @@
+         TopTools_ListIteratorOfListOfShape it(ancestors);\r
+         for (; it.More(); it.Next()) {\r
+             // make sure to avoid duplicates\r
++#if OCC_VERSION_HEX >= 0x070800\r
++            const size_t code = std::hash<TopoDS_Shape>{}(static_cast<TopoDS_Shape>(it.Value()));\r
++#else\r
+             Standard_Integer code = it.Value().HashCode(INT_MAX);\r
++#endif\r
+             if (hashes.find(code) == hashes.end()) {\r
+                 list.append(shape2pyshape(it.Value()));\r
+                 hashes.insert(code);\r
+@@ -1919,7 +1923,11 @@
+     if (!PyArg_ParseTuple(args, "|i",&upper))\r
+         return nullptr;\r
\r
++#if OCC_VERSION_HEX >= 0x070800\r
++    int hc = std::hash<TopoDS_Shape>{}(getTopoShapePtr()->getShape());\r
++#else\r
+     int hc = getTopoShapePtr()->getShape().HashCode(upper);\r
++#endif\r
+     return Py_BuildValue("i", hc);\r
+ }\r
\r
+--- a/src/Mod/Part/Gui/AppPartGui.cpp
++++ b/src/Mod/Part/Gui/AppPartGui.cpp
+@@ -24,7 +24,6 @@
\r
+ #include "PreCompiled.h"\r
+ #ifndef _PreComp_\r
+-# include <Standard_math.hxx>\r
+ #endif\r
\r
+ #include <Base/Console.h>\r
+--- a/src/Mod/Part/Gui/Command.cpp
++++ b/src/Mod/Part/Gui/Command.cpp
+@@ -26,7 +26,6 @@
+ # include <QFileInfo>\r
+ # include <QPointer>\r
+ # include <QString>\r
+-# include <Standard_math.hxx>\r
+ # include <Standard_Version.hxx>\r
+ # include <TopExp_Explorer.hxx>\r
+ # include <TopoDS_Shape.hxx>\r
+--- a/src/Mod/Part/Gui/CommandSimple.cpp
++++ b/src/Mod/Part/Gui/CommandSimple.cpp
+@@ -23,7 +23,6 @@
\r
+ #include "PreCompiled.h"\r
+ #ifndef _PreComp_\r
+-# include <Standard_math.hxx>\r
+ # include <QInputDialog>\r
+ #endif\r
\r
+--- a/src/Mod/Part/Gui/CrossSections.cpp
++++ b/src/Mod/Part/Gui/CrossSections.cpp
+@@ -28,7 +28,6 @@
+ # include <QKeyEvent>\r
\r
+ # include <BRep_Builder.hxx>\r
+-# include <Standard_math.hxx>\r
+ # include <TopoDS.hxx>\r
+ # include <TopoDS_Compound.hxx>\r
\r
+--- a/src/Mod/Part/Gui/ViewProvider2DObject.cpp
++++ b/src/Mod/Part/Gui/ViewProvider2DObject.cpp
+@@ -25,7 +25,6 @@
+ #ifndef _PreComp_\r
+ # include <cfloat>\r
\r
+-# include <Standard_math.hxx>\r
\r
+ # include <Inventor/nodes/SoAnnotation.h>\r
+ # include <Inventor/nodes/SoBaseColor.h>\r
+--- a/src/Mod/Part/Gui/ViewProviderExt.cpp
++++ b/src/Mod/Part/Gui/ViewProviderExt.cpp
+@@ -987,7 +987,11 @@
\r
+             TopExp_Explorer xp;\r
+             for (xp.Init(faceMap(i),TopAbs_EDGE);xp.More();xp.Next())\r
++#if OCC_VERSION_HEX >= 0x070800\r
++                faceEdges.insert(std::hash<TopoDS_Shape>{}(xp.Current()));\r
++#else\r
+                 faceEdges.insert(xp.Current().HashCode(INT_MAX));\r
++#endif\r
+             numFaces++;\r
+         }\r
\r
+@@ -1015,7 +1019,11 @@
+             // So, we have to store the hashes of the edges associated to a face.\r
+             // If the hash of a given edge is not in this list we know it's really\r
+             // a free edge.\r
++#if OCC_VERSION_HEX >= 0x070800\r
++            int hash = std::hash<TopoDS_Shape>{}(aEdge);\r
++#else\r
+             int hash = aEdge.HashCode(INT_MAX);\r
++#endif\r
+             if (faceEdges.find(hash) == faceEdges.end()) {\r
+                 Handle(Poly_Polygon3D) aPoly = Part::Tools::polygonOfEdge(aEdge, aLoc);\r
+                 if (!aPoly.IsNull()) {\r
+@@ -1214,7 +1222,11 @@
+             TopLoc_Location aLoc;\r
\r
+             // handling of the free edge that are not associated to a face\r
++#if OCC_VERSION_HEX >= 0x070800\r
++            int hash = std::hash<TopoDS_Shape>{}(aEdge);\r
++#else\r
+             int hash = aEdge.HashCode(INT_MAX);\r
++#endif\r
+             if (faceEdges.find(hash) == faceEdges.end()) {\r
+                 Handle(Poly_Polygon3D) aPoly = Part::Tools::polygonOfEdge(aEdge, aLoc);\r
+                 if (!aPoly.IsNull()) {\r
+--- a/src/Mod/Part/Gui/ViewProviderExt.h
++++ b/src/Mod/Part/Gui/ViewProviderExt.h
+@@ -24,7 +24,6 @@
+ #define PARTGUI_VIEWPROVIDERPARTEXT_H\r
\r
+ #include <map>\r
+-#include <Standard_math.hxx>\r
\r
+ #include <App/PropertyUnits.h>\r
+ #include <Gui/ViewProviderGeometryObject.h>\r
+--- a/src/Mod/Part/Gui/ViewProviderMirror.cpp
++++ b/src/Mod/Part/Gui/ViewProviderMirror.cpp
+@@ -27,7 +27,6 @@
+ # include <QMenu>\r
+ # include <QTimer>\r
\r
+-# include <Standard_math.hxx>\r
+ # include <TopExp.hxx>\r
+ # include <TopTools_IndexedMapOfShape.hxx>\r
\r
+--- a/src/Mod/Part/Gui/ViewProviderPython.cpp
++++ b/src/Mod/Part/Gui/ViewProviderPython.cpp
+@@ -22,7 +22,6 @@
\r
+ #include "PreCompiled.h"\r
\r
+-#include <Standard_math.hxx>\r
+ #ifndef _PreComp_\r
+ # include <Inventor/nodes/SoSeparator.h>\r
+ #endif\r
+--- a/src/Mod/Part/Gui/ViewProviderReference.h
++++ b/src/Mod/Part/Gui/ViewProviderReference.h
+@@ -24,7 +24,6 @@
+ #ifndef PARTGUI_ViewProviderPartReference_H\r
+ #define PARTGUI_ViewProviderPartReference_H\r
\r
+-#include <Standard_math.hxx>\r
+ #include <Standard_Boolean.hxx>\r
+ #include <TopoDS_Shape.hxx>\r
+ #include <Gui/ViewProviderGeometryObject.h>\r
+--- a/src/Mod/Path/App/Voronoi.cpp
++++ b/src/Mod/Path/App/Voronoi.cpp
+@@ -22,7 +22,8 @@
+ #include "PreCompiled.h"
+ #ifndef _PreComp_
+-# include <Standard_math.hxx>
++#define _USE_MATH_DEFINES
++# include <math.h>
+ #endif
+ #include <Base/Vector3D.h>
+--- a/src/Mod/Path/Gui/PreCompiled.h
++++ b/src/Mod/Path/Gui/PreCompiled.h
+@@ -38,8 +38,6 @@
+ # define PathGuiExport
+ #endif
+-#include <Standard_math.hxx>
+-
+ #ifdef _MSC_VER
+ # pragma warning( disable : 4273 )
+ #endif
+--- a/src/Mod/Robot/Gui/PreCompiled.h
++++ b/src/Mod/Robot/Gui/PreCompiled.h
+@@ -38,8 +38,6 @@
+ # define RobotGuiExport\r
+ #endif\r
\r
+-#include <Standard_math.hxx>\r
+-\r
+ #ifdef _MSC_VER\r
+ # pragma warning(disable : 4005)\r
+ # pragma warning(disable : 4273)\r
+--- a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp
++++ b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp
+@@ -23,7 +23,6 @@
+ #include "PreCompiled.h"
+ #ifndef _PreComp_
+-#include <Standard_math.hxx>
+ /// Qt Include Files
+ #include <Inventor/sensors/SoSensor.h>
+ #include <QApplication>
diff --git a/patches/0110-desktop-extra-categories.patch b/patches/0110-desktop-extra-categories.patch
new file mode 100644 (file)
index 0000000..09d4cb5
--- /dev/null
@@ -0,0 +1,18 @@
+Description: Add XDG desktop category X-CNC also used by LinuxCNC.
+ This ensure FreeCAD and LinuxCNC both show up in the CNC submenu when
+ both are installed.
+Author: Petter Reinholdtsen
+Applied-Upstream: commit:575c5659ae9f52c9614bf1c3648f6014eddeea54
+Forwarded: https://github.com/FreeCAD/FreeCAD/pull/10567
+Last-Update: 2023-08-04
+
+--- a/src/XDGData/org.freecadweb.FreeCAD.desktop
++++ b/src/XDGData/org.freecadweb.FreeCAD.desktop
+@@ -18,6 +18,6 @@
+ Terminal=false
+ Type=Application
+ Icon=org.freecadweb.FreeCAD
+-Categories=Graphics;Science;Education;Engineering;
++Categories=Graphics;Science;Education;Engineering;X-CNC;
+ StartupNotify=true
+ MimeType=application/x-extension-fcstd;model/obj;model/iges;image/vnd.dwg;image/vnd.dxf;model/vnd.collada+xml;application/iges;model/iges;model/step;model/step+zip;model/stl;application/vnd.shp;model/vrml;
diff --git a/patches/1020-fix_gcc8_ftbfs.patch b/patches/1020-fix_gcc8_ftbfs.patch
new file mode 100644 (file)
index 0000000..981e8c1
--- /dev/null
@@ -0,0 +1,19 @@
+Description: Fixes GCC8 FTBFS due to included copy of SMESH.
+Author: Kurt Kremitzki <kkremitzki@debian.org>
+Forwarded: https://github.com/FreeCAD/FreeCAD/pull/9848
+Applied-Upstream: https://github.com/FreeCAD/FreeCAD/commit/ab4f3028bd4b580a3b11be49a7a445d48d4c8c7c
+Last-Update: 2023-12-09
+
+--- a/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
++++ b/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
+@@ -221,8 +221,8 @@
+ // WARNING: this comparator makes impossible to store both nodes and elements in the same set
+ // because there are nodes and elements with the same ID. Use TIDTypeCompare for such containers.
+ struct TIDCompare {
+-  bool operator () (const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const
+-  { return e1->GetID() < e2->GetID(); }
++  template<typename T> bool operator () (const T* e1, const T* e2) const
++  { return static_cast<const SMDS_MeshElement*>(e1)->GetID() < static_cast<const SMDS_MeshElement*>(e2)->GetID(); }
+ };
+ #endif
diff --git a/patches/1030-fix_armel_FTBFS.patch b/patches/1030-fix_armel_FTBFS.patch
new file mode 100644 (file)
index 0000000..871938d
--- /dev/null
@@ -0,0 +1,545 @@
+Description: fix compilation on Armel due to coincident variables in 
+ sys/ucontext.h (R2, R3, R4). Thanks to Paul Brook <paul@codesourcery.com>
+ http://lists.alioth.debian.org/pipermail/debian-science-maintainers/2011-October/009876.html
+Author: Anton Gladky <gladk@debian.org>
+Forwarded: https://github.com/FreeCAD/FreeCAD/pull/9847
+Applied-Upstream: https://github.com/FreeCAD/FreeCAD/commit/ee22ac24c495d1fea301fa1e6a824a6a7fb55933
+Last-Update: 2023-12-09
+
+--- a/src/3rdParty/salomesmesh/inc/Rn.h
++++ b/src/3rdParty/salomesmesh/inc/Rn.h
+@@ -31,7 +31,7 @@
+ #include <gp_Dir.hxx>      //Dans OpenCascade
+ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+-// BUT:   Definir les espaces affines R R2 R3 R4 soit Rn pour n=1,2,3,4
++// BUT:   Definir les espaces affines R R_2 R_3 R_4 soit Rn pour n=1,2,3,4
+ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ // AUTEUR : Frederic HECHT      ANALYSE NUMERIQUE UPMC  PARIS   OCTOBRE   2000
+ // MODIFS : Alain    PERRONNET  ANALYSE NUMERIQUE UPMC  PARIS   NOVEMBRE  2000
+@@ -82,155 +82,155 @@
+ //==============
+ //typedef struct { short int x,y } XPoint;  //en fait ce type est defini dans X11-Window
+                                             // #include <X11/Xlib.h>
+-//la classe R2
++//la classe R_2
+ //============
+-class R2 
++class R_2
+ {
+-  friend std::ostream& operator << (std::ostream& f, const R2 & P)
++  friend std::ostream& operator << (std::ostream& f, const R_2 & P)
+   { f << P.x << ' ' << P.y ; return f; }
+-  friend std::istream& operator >> (std::istream& f, R2 & P)
++  friend std::istream& operator >> (std::istream& f, R_2 & P)
+   { f >> P.x >> P.y ; return f; }
+-  friend std::ostream& operator << (std::ostream& f, const R2 * P)
++  friend std::ostream& operator << (std::ostream& f, const R_2 * P)
+   { f << P->x << ' ' << P->y ; return f; }
+-  friend std::istream& operator >> (std::istream& f, R2 * P)
++  friend std::istream& operator >> (std::istream& f, R_2 * P)
+   { f >> P->x >> P->y ; return f; }
+ public:
+   R x,y;  //les donnees
+-  R2 () :x(0),y(0) {}              //les constructeurs
+-  R2 (R a,R b)   :x(a),y(b)  {}
+-  R2 (R2 A,R2 B) :x(B.x-A.x),y(B.y-A.y)  {} //vecteur defini par 2 points
+-
+-  R2  operator+(R2 P) const {return R2(x+P.x,y+P.y);}     // Q+P possible
+-  R2  operator+=(R2 P)  {x += P.x;y += P.y; return *this;}// Q+=P;
+-  R2  operator-(R2 P) const {return R2(x-P.x,y-P.y);}     // Q-P
+-  R2  operator-=(R2 P) {x -= P.x;y -= P.y; return *this;} // Q-=P;
+-  R2  operator-()const  {return R2(-x,-y);}               // -Q
+-  R2  operator+()const  {return *this;}                   // +Q
+-  R   operator,(R2 P)const {return x*P.x+y*P.y;} // produit scalaire (Q,P)
+-  R   operator^(R2 P)const {return x*P.y-y*P.x;} // produit vectoriel Q^P
+-  R2  operator*(R c)const {return R2(x*c,y*c);}  // produit a droite  P*c
+-  R2  operator*=(R c)  {x *= c; y *= c; return *this;}
+-  R2  operator/(R c)const {return R2(x/c,y/c);}  // division par un reel
+-  R2  operator/=(R c)  {x /= c; y /= c; return *this;}
++  R_2 () :x(0),y(0) {}              //les constructeurs
++  R_2 (R a,R b)   :x(a),y(b)  {}
++  R_2 (R_2 A,R_2 B) :x(B.x-A.x),y(B.y-A.y)  {} //vecteur defini par 2 points
++
++  R_2  operator+(R_2 P) const {return R_2(x+P.x,y+P.y);}     // Q+P possible
++  R_2  operator+=(R_2 P)  {x += P.x;y += P.y; return *this;}// Q+=P;
++  R_2  operator-(R_2 P) const {return R_2(x-P.x,y-P.y);}     // Q-P
++  R_2  operator-=(R_2 P) {x -= P.x;y -= P.y; return *this;} // Q-=P;
++  R_2  operator-()const  {return R_2(-x,-y);}               // -Q
++  R_2  operator+()const  {return *this;}                   // +Q
++  R   operator,(R_2 P)const {return x*P.x+y*P.y;} // produit scalaire (Q,P)
++  R   operator^(R_2 P)const {return x*P.y-y*P.x;} // produit vectoriel Q^P
++  R_2  operator*(R c)const {return R_2(x*c,y*c);}  // produit a droite  P*c
++  R_2  operator*=(R c)  {x *= c; y *= c; return *this;}
++  R_2  operator/(R c)const {return R_2(x/c,y/c);}  // division par un reel
++  R_2  operator/=(R c)  {x /= c; y /= c; return *this;}
+   R & operator[](int i) {return (&x)[i];}        // la coordonnee i
+-  R2  orthogonal() {return R2(-y,x);}    //le vecteur orthogonal dans R2
+-  friend R2 operator*(R c,R2 P) {return P*c;}    // produit a gauche c*P
++  R_2  orthogonal() {return R_2(-y,x);}    //le vecteur orthogonal dans R_2
++  friend R_2 operator*(R c,R_2 P) {return P*c;}    // produit a gauche c*P
+ };
+-//la classe R3
++//la classe R_3
+ //============
+-class R3
++class R_3
+ {
+-  friend std::ostream& operator << (std::ostream& f, const R3 & P)
++  friend std::ostream& operator << (std::ostream& f, const R_3 & P)
+   { f << P.x << ' ' << P.y << ' ' << P.z ; return f; }
+-  friend std::istream& operator >> (std::istream& f, R3 & P)
++  friend std::istream& operator >> (std::istream& f, R_3 & P)
+   { f >> P.x >> P.y >> P.z ; return f; }
+-  friend std::ostream& operator << (std::ostream& f, const R3 * P)
++  friend std::ostream& operator << (std::ostream& f, const R_3 * P)
+   { f << P->x << ' ' << P->y << ' ' << P->z ; return f; }
+-  friend std::istream& operator >> (std::istream& f, R3 * P)
++  friend std::istream& operator >> (std::istream& f, R_3 * P)
+   { f >> P->x >> P->y >> P->z ; return f; }
+ public:  
+   R  x,y,z;  //les 3 coordonnees
+  
+-  R3 () :x(0),y(0),z(0) {}  //les constructeurs
+-  R3 (R a,R b,R c):x(a),y(b),z(c)  {}                  //Point ou Vecteur (a,b,c)
+-  R3 (R3 A,R3 B):x(B.x-A.x),y(B.y-A.y),z(B.z-A.z)  {}  //Vecteur AB
+-
+-  R3 (gp_Pnt P) : x(P.X()), y(P.Y()), z(P.Z()) {}      //Point     d'OpenCascade
+-  R3 (gp_Vec V) : x(V.X()), y(V.Y()), z(V.Z()) {}      //Vecteur   d'OpenCascade
+-  R3 (gp_Dir P) : x(P.X()), y(P.Y()), z(P.Z()) {}      //Direction d'OpenCascade
+-
+-  R3   operator+(R3 P)const  {return R3(x+P.x,y+P.y,z+P.z);}
+-  R3   operator+=(R3 P)  {x += P.x; y += P.y; z += P.z; return *this;}
+-  R3   operator-(R3 P)const  {return R3(x-P.x,y-P.y,z-P.z);}
+-  R3   operator-=(R3 P)  {x -= P.x; y -= P.y; z -= P.z; return *this;}
+-  R3   operator-()const  {return R3(-x,-y,-z);}
+-  R3   operator+()const  {return *this;}
+-  R    operator,(R3 P)const {return  x*P.x+y*P.y+z*P.z;} // produit scalaire
+-  R3   operator^(R3 P)const {return R3(y*P.z-z*P.y ,P.x*z-x*P.z, x*P.y-y*P.x);} // produit vectoriel
+-  R3   operator*(R c)const {return R3(x*c,y*c,z*c);}
+-  R3   operator*=(R c)  {x *= c; y *= c; z *= c; return *this;}
+-  R3   operator/(R c)const {return R3(x/c,y/c,z/c);}
+-  R3   operator/=(R c)  {x /= c; y /= c; z /= c; return *this;}
++  R_3 () :x(0),y(0),z(0) {}  //les constructeurs
++  R_3 (R a,R b,R c):x(a),y(b),z(c)  {}                  //Point ou Vecteur (a,b,c)
++  R_3 (R_3 A,R_3 B):x(B.x-A.x),y(B.y-A.y),z(B.z-A.z)  {}  //Vecteur AB
++
++  R_3 (gp_Pnt P) : x(P.X()), y(P.Y()), z(P.Z()) {}      //Point     d'OpenCascade
++  R_3 (gp_Vec V) : x(V.X()), y(V.Y()), z(V.Z()) {}      //Vecteur   d'OpenCascade
++  R_3 (gp_Dir P) : x(P.X()), y(P.Y()), z(P.Z()) {}      //Direction d'OpenCascade
++
++  R_3   operator+(R_3 P)const  {return R_3(x+P.x,y+P.y,z+P.z);}
++  R_3   operator+=(R_3 P)  {x += P.x; y += P.y; z += P.z; return *this;}
++  R_3   operator-(R_3 P)const  {return R_3(x-P.x,y-P.y,z-P.z);}
++  R_3   operator-=(R_3 P)  {x -= P.x; y -= P.y; z -= P.z; return *this;}
++  R_3   operator-()const  {return R_3(-x,-y,-z);}
++  R_3   operator+()const  {return *this;}
++  R    operator,(R_3 P)const {return  x*P.x+y*P.y+z*P.z;} // produit scalaire
++  R_3   operator^(R_3 P)const {return R_3(y*P.z-z*P.y ,P.x*z-x*P.z, x*P.y-y*P.x);} // produit vectoriel
++  R_3   operator*(R c)const {return R_3(x*c,y*c,z*c);}
++  R_3   operator*=(R c)  {x *= c; y *= c; z *= c; return *this;}
++  R_3   operator/(R c)const {return R_3(x/c,y/c,z/c);}
++  R_3   operator/=(R c)  {x /= c; y /= c; z /= c; return *this;}
+   R  & operator[](int i) {return (&x)[i];}
+-  friend R3 operator*(R c,R3 P) {return P*c;}
++  friend R_3 operator*(R c,R_3 P) {return P*c;}
+-  R3   operator=(gp_Pnt P) {return R3(P.X(),P.Y(),P.Z());}
+-  R3   operator=(gp_Dir P) {return R3(P.X(),P.Y(),P.Z());}
++  R_3   operator=(gp_Pnt P) {return R_3(P.X(),P.Y(),P.Z());}
++  R_3   operator=(gp_Dir P) {return R_3(P.X(),P.Y(),P.Z());}
+-  friend gp_Pnt gp_pnt(R3 xyz) { return gp_Pnt(xyz.x,xyz.y,xyz.z); }
++  friend gp_Pnt gp_pnt(R_3 xyz) { return gp_Pnt(xyz.x,xyz.y,xyz.z); }
+   //friend gp_Pnt operator=() { return gp_Pnt(x,y,z); }
+-  friend gp_Dir gp_dir(R3 xyz) { return gp_Dir(xyz.x,xyz.y,xyz.z); }
++  friend gp_Dir gp_dir(R_3 xyz) { return gp_Dir(xyz.x,xyz.y,xyz.z); }
+-  bool  DansPave( R3 & xyzMin, R3 & xyzMax )
++  bool  DansPave( R_3 & xyzMin, R_3 & xyzMax )
+     { return xyzMin.x<=x && x<=xyzMax.x &&
+              xyzMin.y<=y && y<=xyzMax.y &&
+              xyzMin.z<=z && z<=xyzMax.z; }
+ };
+-//la classe R4
++//la classe R_4
+ //============
+-class R4: public R3
++class R_4: public R_3
+ {
+-  friend std::ostream& operator <<(std::ostream& f, const R4 & P )
++  friend std::ostream& operator <<(std::ostream& f, const R_4 & P )
+   { f << P.x << ' ' << P.y << ' ' << P.z << ' ' << P.omega; return f; }
+-  friend std::istream& operator >>(std::istream& f,  R4 & P)
++  friend std::istream& operator >>(std::istream& f,  R_4 & P)
+   { f >> P.x >>  P.y >>  P.z >> P.omega ; return f; }
+-  friend std::ostream& operator <<(std::ostream& f, const R4 * P )
++  friend std::ostream& operator <<(std::ostream& f, const R_4 * P )
+   { f << P->x << ' ' << P->y << ' ' << P->z << ' ' << P->omega; return f; }
+-  friend std::istream& operator >>(std::istream& f,  R4 * P)
++  friend std::istream& operator >>(std::istream& f,  R_4 * P)
+   { f >> P->x >>  P->y >>  P->z >> P->omega ; return f; }
+ public:  
+   R  omega;  //la donnee du poids supplementaire
+  
+-  R4 () :omega(1.0) {}  //les constructeurs
+-  R4 (R a,R b,R c,R d):R3(a,b,c),omega(d) {}
+-  R4 (R4 A,R4 B) :R3(B.x-A.x,B.y-A.y,B.z-A.z),omega(B.omega-A.omega) {}
+-
+-  R4   operator+(R4 P)const  {return R4(x+P.x,y+P.y,z+P.z,omega+P.omega);}
+-  R4   operator+=(R4 P)  {x += P.x;y += P.y;z += P.z;omega += P.omega;return *this;}
+-  R4   operator-(R4 P)const  {return R4(x-P.x,y-P.y,z-P.z,omega-P.omega);}
+-  R4   operator-=(R4 P) {x -= P.x;y -= P.y;z -= P.z;omega -= P.omega;return *this;}
+-  R4   operator-()const  {return R4(-x,-y,-z,-omega);}
+-  R4   operator+()const  {return *this;}
+-  R    operator,(R4 P)const {return  x*P.x+y*P.y+z*P.z+omega*P.omega;} // produit scalaire
+-  R4   operator*(R c)const {return R4(x*c,y*c,z*c,omega*c);}
+-  R4   operator*=(R c)  {x *= c; y *= c; z *= c; omega *= c; return *this;}
+-  R4   operator/(R c)const {return R4(x/c,y/c,z/c,omega/c);}
+-  R4   operator/=(R c)  {x /= c; y /= c; z /= c; omega /= c; return *this;}
++  R_4 () :omega(1.0) {}  //les constructeurs
++  R_4 (R a,R b,R c,R d):R_3(a,b,c),omega(d) {}
++  R_4 (R_4 A,R_4 B) :R_3(B.x-A.x,B.y-A.y,B.z-A.z),omega(B.omega-A.omega) {}
++
++  R_4   operator+(R_4 P)const  {return R_4(x+P.x,y+P.y,z+P.z,omega+P.omega);}
++  R_4   operator+=(R_4 P)  {x += P.x;y += P.y;z += P.z;omega += P.omega;return *this;}
++  R_4   operator-(R_4 P)const  {return R_4(x-P.x,y-P.y,z-P.z,omega-P.omega);}
++  R_4   operator-=(R_4 P) {x -= P.x;y -= P.y;z -= P.z;omega -= P.omega;return *this;}
++  R_4   operator-()const  {return R_4(-x,-y,-z,-omega);}
++  R_4   operator+()const  {return *this;}
++  R    operator,(R_4 P)const {return  x*P.x+y*P.y+z*P.z+omega*P.omega;} // produit scalaire
++  R_4   operator*(R c)const {return R_4(x*c,y*c,z*c,omega*c);}
++  R_4   operator*=(R c)  {x *= c; y *= c; z *= c; omega *= c; return *this;}
++  R_4   operator/(R c)const {return R_4(x/c,y/c,z/c,omega/c);}
++  R_4   operator/=(R c)  {x /= c; y /= c; z /= c; omega /= c; return *this;}
+   R  & operator[](int i) {return (&x)[i];}
+-  friend R4 operator*(R c,R4 P) {return P*c;}
++  friend R_4 operator*(R c,R_4 P) {return P*c;}
+ };
+ //quelques fonctions supplementaires sur ces classes
+ //==================================================
+-inline R Aire2d(const R2 A,const R2 B,const R2 C){return (B-A)^(C-A);} 
+-inline R Angle2d(R2 P){ return atan2(P.y,P.x);}
++inline R Aire2d(const R_2 A,const R_2 B,const R_2 C){return (B-A)^(C-A);}
++inline R Angle2d(R_2 P){ return atan2(P.y,P.x);}
+-inline R Norme2_2(const R2 & A){ return (A,A);}
+-inline R Norme2(const R2 & A){ return sqrt((A,A));}
+-inline R NormeInfinie(const R2 & A){return Max(Abs(A.x),Abs(A.y));}
+-
+-inline R Norme2_2(const R3 & A){ return (A,A);}
+-inline R Norme2(const R3 & A){ return sqrt((A,A));}
+-inline R NormeInfinie(const R3 & A){return Max(Abs(A.x),Abs(A.y),Abs(A.z));}
+-
+-inline R Norme2_2(const R4 & A){ return (A,A);}
+-inline R Norme2(const R4 & A){ return sqrt((A,A));}
+-inline R NormeInfinie(const R4 & A){return Max(Abs(A.x),Abs(A.y),Abs(A.z),Abs(A.omega));}
+-
+-inline R2 XY(R3 P) {return R2(P.x, P.y);}  //restriction a R2 d'un R3 par perte de z
+-inline R3 Min(R3 P, R3 Q) 
+-{return R3(P.x<Q.x ? P.x : Q.x, P.y<Q.y ? P.y : Q.y, P.z<Q.z ? P.z : Q.z);} //Pt de xyz Min
+-inline R3 Max(R3 P, R3 Q) 
+-{return R3(P.x>Q.x ? P.x : Q.x, P.y>Q.y ? P.y : Q.y, P.z>Q.z ? P.z : Q.z);} //Pt de xyz Max
++inline R Norme2_2(const R_2 & A){ return (A,A);}
++inline R Norme2(const R_2 & A){ return sqrt((A,A));}
++inline R NormeInfinie(const R_2 & A){return Max(Abs(A.x),Abs(A.y));}
++
++inline R Norme2_2(const R_3 & A){ return (A,A);}
++inline R Norme2(const R_3 & A){ return sqrt((A,A));}
++inline R NormeInfinie(const R_3 & A){return Max(Abs(A.x),Abs(A.y),Abs(A.z));}
++
++inline R Norme2_2(const R_4 & A){ return (A,A);}
++inline R Norme2(const R_4 & A){ return sqrt((A,A));}
++inline R NormeInfinie(const R_4 & A){return Max(Abs(A.x),Abs(A.y),Abs(A.z),Abs(A.omega));}
++
++inline R_2 XY(R_3 P) {return R_2(P.x, P.y);}  //restriction a R_2 d'un R_3 par perte de z
++inline R_3 Min(R_3 P, R_3 Q)
++{return R_3(P.x<Q.x ? P.x : Q.x, P.y<Q.y ? P.y : Q.y, P.z<Q.z ? P.z : Q.z);} //Pt de xyz Min
++inline R_3 Max(R_3 P, R_3 Q)
++{return R_3(P.x>Q.x ? P.x : Q.x, P.y>Q.y ? P.y : Q.y, P.z>Q.z ? P.z : Q.z);} //Pt de xyz Max
+ #endif
+--- a/src/3rdParty/salomesmesh/inc/StdMeshers_MEFISTO_2D.hxx
++++ b/src/3rdParty/salomesmesh/inc/StdMeshers_MEFISTO_2D.hxx
+@@ -64,7 +64,7 @@
+   typedef std::vector< StdMeshers_FaceSidePtr > TWireVector;
+   bool LoadPoints(TWireVector &                       wires,
+-                  R2*                                 uvslf, 
++                  R_2*                                 uvslf,
+                   std::vector< const SMDS_MeshNode*>& mefistoToDS,
+                   double scalex, double               scaley);
+@@ -73,7 +73,7 @@
+                           double& scalex,
+                           double& scaley);
+-  void StoreResult (Z nbst, R2* uvst, Z nbt, Z* nust, 
++  void StoreResult (Z nbst, R_2* uvst, Z nbt, Z* nust,
+                     std::vector< const SMDS_MeshNode*>& mefistoToDS,
+                     double scalex, double scaley);
+                                           
+--- a/src/3rdParty/salomesmesh/inc/aptrte.h
++++ b/src/3rdParty/salomesmesh/inc/aptrte.h
+@@ -60,9 +60,9 @@
+ MEFISTO2D_EXPORT
+   void  aptrte( Z nutysu, R aretmx,
+-              Z nblf,   Z *nudslf, R2 *uvslf,
+-              Z nbpti,  R2 *uvpti,
+-              Z & nbst, R2 * & uvst, Z & nbt, Z * & nust,
++              Z nblf,   Z *nudslf, R_2 *uvslf,
++              Z nbpti,  R_2 *uvpti,
++              Z & nbst, R_2 * & uvst, Z & nbt, Z * & nust,
+               Z & ierr );
+ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ // but : appel de la triangulation par un arbre-4 recouvrant
+@@ -123,7 +123,7 @@
+   #define tesuex   TESUEX
+   #define teamqt   TEAMQT
+   #define nusotr   NUSOTR
+-  #define qutr2d   QUTR2D
++  #define qutr2d   QUTR_2D
+   #define surtd2   SURTD2
+   #define qualitetrte   QUALITETRTE
+   
+@@ -160,7 +160,7 @@
+               __stdcall
+ #endif
+ #endif
+-   qualitetrte( R3 *mnpxyd,
++   qualitetrte( R_3 *mnpxyd,
+                    Z & mosoar, Z & mxsoar, Z *mnsoar,
+                    Z & moartr, Z & mxartr, Z *mnartr,
+                    Z & nbtria, R & quamoy, R & quamin ); }
+@@ -301,7 +301,7 @@
+               __stdcall
+ #endif
+ #endif
+-  teajte( Z & mxsomm, Z &  nbsomm, R3 * mnpxyd,  R3 * comxmi,
++  teajte( Z & mxsomm, Z &  nbsomm, R_3 * mnpxyd,  R_3 * comxmi,
+                             R & aretmx,  Z & mxtree, Z * letree,
+                             Z & ierr );
+ }
+@@ -313,8 +313,8 @@
+               __stdcall
+ #endif
+ #endif
+-  tehote( Z & nutysu, Z & nbarpi, Z &  mxsomm, Z &  nbsomm, R3 * mnpxyd,
+-                            R3 * comxmi, R & aretmx,
++  tehote( Z & nutysu, Z & nbarpi, Z &  mxsomm, Z &  nbsomm, R_3 * mnpxyd,
++                            R_3 * comxmi, R & aretmx,
+                             Z * letree, Z & mxqueu, Z * mnqueu,
+                             Z & ierr );
+ }
+@@ -328,7 +328,7 @@
+               __stdcall
+ #endif
+ #endif
+-  tetrte( R3 * comxmi, R & aretmx, Z & nbarpi, Z & mxsomm, R3 * mnpxyd,
++  tetrte( R_3 * comxmi, R & aretmx, Z & nbarpi, Z & mxsomm, R_3 * mnpxyd,
+                             Z & mxqueu,  Z * mnqueu,  Z * mntree,
+                             Z & mosoar,  Z & mxsoar,  Z & n1soar, Z * mnsoar,
+                             Z & moartr, Z &  mxartr,  Z & n1artr,  Z * mnartr,  Z * mnarst,
+@@ -355,7 +355,7 @@
+               __stdcall
+ #endif
+ #endif
+-  tedela( R3 * mnpxyd, Z * mnarst,
++  tedela( R_3 * mnpxyd, Z * mnarst,
+                             Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar, Z & na,
+                             Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z & n );
+ }
+@@ -369,7 +369,7 @@
+               __stdcall
+ #endif
+ #endif
+-  terefr( Z & nbarpi, R3 * mnpxyd,
++  terefr( Z & nbarpi, R_3 * mnpxyd,
+                             Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
+                             Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z * mnarst,
+                             Z & mxarcf, Z * mnarc1, Z * mnarc2,
+@@ -387,7 +387,7 @@
+ #endif
+ #endif
+   tesuex( Z & nblf, Z * nulftr,
+-                            Z & ndtri0, Z & nbsomm, R3 * mnpxyd, Z * mnslig,
++                            Z & ndtri0, Z & nbsomm, R_3 * mnpxyd, Z * mnslig,
+                             Z & mosoar, Z & mxsoar, Z * mnsoar,
+                             Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z * mnarst,
+                             Z & nbtria, Z * mntrsu, Z & ierr );
+@@ -407,7 +407,7 @@
+                             Z & mxarcf, Z * mntrcf, Z * mnstbo,
+                             Z * n1arcf, Z * mnarcf, Z * mnarc1,
+                             Z & nbarpi, Z & nbsomm, Z & mxsomm,
+-                            R3 * mnpxyd, Z * mnslig,
++                            R_3 * mnpxyd, Z * mnslig,
+                             Z & ierr );
+ }
+ // amelioration de la qualite de la triangulation par
+@@ -434,7 +434,7 @@
+               __stdcall
+ #endif
+ #endif
+-  qutr2d( R3 & p1, R3 & p2, R3 & p3, R & qualite );
++  qutr2d( R_3 & p1, R_3 & p2, R_3 & p3, R & qualite );
+ }
+ //calculer la qualite d'un triangle de R2 de sommets p1, p2, p3
+@@ -445,7 +445,7 @@
+               __stdcall
+ #endif
+ #endif
+-  surtd2( R3 & p1, R3 & p2, R3 & p3 );
++  surtd2( R_3 & p1, R_3 & p2, R_3 & p3 );
+ }
+ //calcul de la surface d'un triangle defini par 3 points de r**2
+--- a/src/3rdParty/salomesmesh/src/MEFISTO2/aptrte.cpp
++++ b/src/3rdParty/salomesmesh/src/MEFISTO2/aptrte.cpp
+@@ -88,9 +88,9 @@
+ void  aptrte( Z   nutysu, R      aretmx,
+-              Z   nblf,   Z  *   nudslf,  R2 * uvslf,
+-              Z   nbpti,  R2 *   uvpti,
+-              Z & nbst,   R2 * & uvst,
++              Z   nblf,   Z  *   nudslf,  R_2 * uvslf,
++              Z   nbpti,  R_2 *   uvpti,
++              Z & nbst,   R_2 * & uvst,
+               Z & nbt,    Z  * & nust,
+               Z & ierr )
+ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+@@ -142,11 +142,11 @@
+                  //no st1, st2, st3, 0 (non quadrangle)
+   R  d, tcpu=0;
+-//  R3 direction=R3(0,0,0);  //direction pour areteideale() inactive ici!
++//  R_3 direction=R_3(0,0,0);  //direction pour areteideale() inactive ici!
+   Z  nbarfr=nudslf[nblf];  //nombre total d'aretes des lignes fermees
+   Z  mxtrou = Max( 1024, nblf );  //nombre maximal de trous dans la surface
+-  R3 *mnpxyd=NULL;
++  R_3 *mnpxyd=NULL;
+   Z  *mnsoar=NULL, mosoar=7, mxsoar, n1soar; //le hachage des aretes
+   Z  *mnartr=NULL, moartr=3, mxartr, n1artr; //le no des 3 aretes des triangles
+   Z  *mntree=NULL, motree=9, mxtree; //L'arbre 4 de TE et nombre d'entiers par TE
+@@ -161,7 +161,7 @@
+   Z  *mnarst=NULL;
+   Z  *mnlftr=NULL;
+-  R3 comxmi[2];            //coordonnees UV Min et Maximales
++  R_3 comxmi[2];            //coordonnees UV Min et Maximales
+   R  aremin, aremax;       //longueur minimale et maximale des aretes
+   R  airemx;               //aire maximale souhaitee d'un triangle
+   R  quamoy, quamin;
+@@ -191,7 +191,7 @@
+  NEWDEPART:
+   //mnpxyd( 3, mxsomm ) les coordonnees UV des sommets et la taille d'arete aux sommets
+   if( mnpxyd!=NULL ) delete [] mnpxyd;
+-  mnpxyd = new R3[mxsomm];
++  mnpxyd = new R_3[mxsomm];
+   if( mnpxyd==NULL ) goto ERREUR;
+   // le tableau mnsoar des aretes des triangles
+@@ -655,7 +655,7 @@
+   // generation du tableau uvst de la surface triangulee
+   // ---------------------------------------------------
+   if( uvst != NULL ) delete [] uvst;
+-  uvst = new R2[nbst];
++  uvst = new R_2[nbst];
+   if( uvst == NULL ) goto ERREUR;
+   nbst=-1;
+@@ -761,7 +761,7 @@
+               __stdcall
+ #endif
+ #endif
+- qualitetrte( R3 *mnpxyd,
++ qualitetrte( R_3 *mnpxyd,
+                    Z & mosoar, Z & mxsoar, Z *mnsoar,
+                    Z & moartr, Z & mxartr, Z *mnartr,
+                    Z & nbtria, R & quamoy, R & quamin )
+--- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MEFISTO_2D.cpp
++++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_MEFISTO_2D.cpp
+@@ -234,12 +234,12 @@
+   Z nblf;                 //nombre de lignes fermees (enveloppe en tete)
+   Z *nudslf = NULL;       //numero du dernier sommet de chaque ligne fermee
+-  R2 *uvslf = NULL;       
++  R_2 *uvslf = NULL;
+   Z nbpti = 0;            //nombre points internes futurs sommets de la triangulation
+-  R2 *uvpti = NULL;
++  R_2 *uvpti = NULL;
+   
+   Z nbst;
+-  R2 *uvst = NULL;
++  R_2 *uvst = NULL;
+   Z nbt;
+   Z *nust = NULL;
+   Z ierr = 0;
+@@ -264,7 +264,7 @@
+     nudslf[iw++] = nbpnt;
+   }
+-  uvslf = new R2[nudslf[nblf]];
++  uvslf = new R_2[nudslf[nblf]];
+   double scalex, scaley;
+   ComputeScaleOnFace(aMesh, F, scalex, scaley);
+@@ -390,7 +390,7 @@
+ //purpose  : prevent failure due to overlapped adjacent links
+ //=======================================================================
+-static bool fixOverlappedLinkUV( R2& uv0, const R2& uv1, const R2& uv2 )
++static bool fixOverlappedLinkUV( R_2& uv0, const R_2& uv1, const R_2& uv2 )
+ {
+   gp_XY v1( uv0.x - uv1.x, uv0.y - uv1.y );
+   gp_XY v2( uv2.x - uv1.x, uv2.y - uv1.y );
+@@ -441,7 +441,7 @@
+ //purpose  : 
+ //=======================================================================
+-static bool fixCommonVertexUV (R2 &                 theUV,
++static bool fixCommonVertexUV (R_2 &                 theUV,
+                                const TopoDS_Vertex& theV,
+                                const TopoDS_Face&   theF,
+                                const TopTools_IndexedDataMapOfShapeListOfShape & theVWMap,
+@@ -540,7 +540,7 @@
+       nextUV  = uv;
+     }
+   }
+-  R2 uv0, uv1, uv2;
++  R_2 uv0, uv1, uv2;
+   uv0.x = thisUV.X();   uv0.y = thisUV.Y();
+   uv1.x = nextUV.X();   uv1.y = nextUV.Y(); 
+   uv2.x = thisUV.X();   uv2.y = thisUV.Y();
+@@ -574,7 +574,7 @@
+ //=============================================================================
+ bool StdMeshers_MEFISTO_2D::LoadPoints(TWireVector &                 wires,
+-                                       R2 *                          uvslf,
++                                       R_2 *                          uvslf,
+                                        vector<const SMDS_MeshNode*>& mefistoToDS,
+                                        double                        scalex,
+                                        double                        scaley)
+@@ -782,7 +782,7 @@
+  */
+ //=============================================================================
+-void StdMeshers_MEFISTO_2D::StoreResult(Z nbst, R2 * uvst, Z nbt, Z * nust,
++void StdMeshers_MEFISTO_2D::StoreResult(Z nbst, R_2 * uvst, Z nbt, Z * nust,
+                                         vector< const SMDS_MeshNode*>&mefistoToDS,
+                                         double scalex, double scaley)
+ {
diff --git a/patches/1070-disable_memory_check.patch b/patches/1070-disable_memory_check.patch
new file mode 100644 (file)
index 0000000..c862c2d
--- /dev/null
@@ -0,0 +1,85 @@
+Description: Disable memory-check in SMDS because sysinfo.h is not working
+ on BSD-systems and causes FTBFS. It is better to disable it only on 
+ BSD-platforms.
+ Or use http://code.google.com/p/sysinfo-bsd/source/browse/sysinfo.c
+ for them.
+Author: Anton Gladky <gladk@debian.org>
+Forwarded: https://github.com/FreeCAD/FreeCAD/pull/9853
+Bug-Debian: https://bugs.debian.org/623560
+Applied-Upstream: https://github.com/FreeCAD/FreeCAD/commit/16d3109987d98fbf09a59888f389e64707ba9026
+Last-Update: 2023-12-09
+
+--- a/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
++++ b/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
+@@ -61,13 +61,6 @@
+ #include <iterator>
+ using namespace std;
+-#ifndef WIN32
+-#if !(defined(__MACH__) && defined(__APPLE__))
+-#include <sys/sysinfo.h>
+-#endif
+-#include <sys/wait.h>
+-#endif
+-
+ // number of added entities to check memory after
+ #define CHECKMEMORY_INTERVAL 100000
+@@ -85,56 +78,7 @@
+ int SMDS_Mesh::CheckMemory(const bool doNotRaise)
+ {
+-#if 0
+-#if (defined(__MACH__) && defined(__APPLE__))
+-        return 1000;
+-#else
+-#ifndef WIN32
+-  struct sysinfo si;
+-  int err = sysinfo( &si );
+-  if ( err )
+-    return -1;
+-
+-  const unsigned long Mbyte = 1024 * 1024;
+-
+-  static int limit = -1;
+-  if ( limit < 0 ) {
+-    int status = system("SMDS_MemoryLimit"); // it returns lower limit of free RAM
+-    if (status >= 0 ) {
+-      limit = WEXITSTATUS(status);
+-    }
+-    else {
+-      double factor = ( si.totalswap == 0 ) ? 0.1 : 0.2;
+-      limit = int(( factor * si.totalram * si.mem_unit ) / Mbyte );
+-    }
+-    if ( limit < 20 )
+-      limit = 20;
+-    else
+-      limit = int ( limit * 1.5 );
+-    MESSAGE ( "SMDS_Mesh::CheckMemory() memory limit = " << limit << " MB" );
+-  }
+-
+-  // compute separately to avoid overflow
+-  int freeMb =
+-    ( si.freeram  * si.mem_unit ) / Mbyte +
+-    ( si.freeswap * si.mem_unit ) / Mbyte;
+-  //cout << "freeMb = " << freeMb << " limit = " << limit << endl;
+-
+-  if ( freeMb > limit )
+-    return freeMb - limit;
+-
+-  if ( doNotRaise )
+-    return 0;
+-
+-  MESSAGE ("SMDS_Mesh::CheckMemory() throws as free memory too low: " << freeMb <<" MB" );
+-  throw std::bad_alloc();
+-#else
+-  return -1;
+-#endif
+-#endif
+-#else
+-  return 1000;
+-#endif
++    return 1000;
+ }
+ ///////////////////////////////////////////////////////////////////////////////
diff --git a/patches/1100-run_single-instance.patch b/patches/1100-run_single-instance.patch
new file mode 100644 (file)
index 0000000..95fc747
--- /dev/null
@@ -0,0 +1,23 @@
+Description: Change XDG desktop entry to only run single instance of FreeCAD.
+ This ensure invoking it to open different files only start the
+ program once, and load new files into the already running instance.
+
+ Related to https://bugs.debian.org/1029846 and
+ https://github.com/FreeCAD/FreeCAD/commit/c7a21ecbeecefe7c2dfc9e950b3d6bb42351d476 .
+
+ Partly applied upstream.  Arguments applied, program name change is not.
+Author: Håvard Flaget Aasen <haavard_aasen@yahoo.no>
+Forwarded: https://github.com/FreeCAD/FreeCAD/pull/9855
+Last-Update: 2021-12-26
+---
+--- a/src/XDGData/org.freecadweb.FreeCAD.desktop
++++ b/src/XDGData/org.freecadweb.FreeCAD.desktop
+@@ -14,7 +14,7 @@
+ GenericName[ko]=CAD 응용프로그램
+ GenericName[pl]=Aplikacja CAD
+ GenericName[ru]=Система автоматизированного проектирования
+-Exec=FreeCAD %F
++Exec=/usr/bin/freecad - --single-instance %F
+ Terminal=false
+ Type=Application
+ Icon=org.freecadweb.FreeCAD
diff --git a/patches/2000-do_not_install_binary_examples.patch b/patches/2000-do_not_install_binary_examples.patch
new file mode 100644 (file)
index 0000000..922aa96
--- /dev/null
@@ -0,0 +1,15 @@
+Description: Do not include binary examples excluded via d/copyright
+Author: Anton Gladky <gladk@debian.org>
+Last-Update: 2018-06-10
+Forwarded: not-needed
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -94,7 +94,6 @@
+ SetGlobalCompilerAndLinkerSettings()
+ add_subdirectory(src)
+-add_subdirectory(data)
+ BuildAndInstallDesignerPlugin()
diff --git a/patches/2010-exclude_ply.patch b/patches/2010-exclude_ply.patch
new file mode 100644 (file)
index 0000000..c335ccf
--- /dev/null
@@ -0,0 +1,20 @@
+Description: exclude ply from build-sources, use packaged version
+Author: Anton Gladky <gladk@debian.org>, Sebastian Hoogen <sebastian@hoogen.de>
+Forwarded: not-needed
+Last-Update: 2013-09-25
+
+--- a/src/Mod/OpenSCAD/CMakeLists.txt
++++ b/src/Mod/OpenSCAD/CMakeLists.txt
+@@ -88,12 +88,6 @@
+ INSTALL(
+     FILES
+-        ${ply_SRCS}
+-    DESTINATION
+-        Mod/OpenSCAD/ply
+-)
+-INSTALL(
+-    FILES
+         ${OpenSCAD_SRCS}
+         ${OpenSCAD_QRC_SRCS}
+     DESTINATION
diff --git a/patches/2020-fix-cmake-extra-license.patch b/patches/2020-fix-cmake-extra-license.patch
new file mode 100644 (file)
index 0000000..5570838
--- /dev/null
@@ -0,0 +1,16 @@
+Description: Don't include extra license file in package
+Author: Kurt Kremitzki <kkremitzki@debian.org>
+Last-Update: 2018-06-13
+Forwarded: not-needed
+
+--- a/src/Mod/Idf/CMakeLists.txt
++++ b/src/Mod/Idf/CMakeLists.txt
+@@ -6,7 +6,7 @@
+ SOURCE_GROUP("" FILES ${Idf_SRCS})
+ SET(IdfLibs_SRCS
+-    Idflibs/License.txt
++    #Idflibs/License.txt
+     Idflibs/0603_SMD.stp
+     Idflibs/0805_SMD.stp
+     Idflibs/1206_SMD.stp
diff --git a/patches/2030-fix-1017598.patch b/patches/2030-fix-1017598.patch
new file mode 100644 (file)
index 0000000..d5bbd82
--- /dev/null
@@ -0,0 +1,34 @@
+Description: Disable failing FEM test case TestSolverCalculix
+ The upstream bug tracker suggests that this is a problem with the test, as it seems
+ floats for the input are very similiar, only differing by the LSB.
+ .
+ This patch disables the test.
+Author: Tobias Frost <tobi@debian.org>
+Bug: https://github.com/FreeCAD/FreeCAD/issues/7188
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1017598
+Forwarded: not-needed, Debian specific.
+Last-Update: 2022-08-18
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/Mod/Fem/femtest/app/test_solver_calculix.py
++++ b/src/Mod/Fem/femtest/app/test_solver_calculix.py
+@@ -270,12 +270,13 @@
+         self.input_file_writing_test(get_namefromdef("test_"))
+     # ********************************************************************************************
+-    def test_constraint_transform_torque(
+-        self
+-    ):
+-        from femexamples.constraint_transform_torque import setup
+-        setup(self.document, "calculix")
+-        self.input_file_writing_test(get_namefromdef("test_"))
++    # disabled, #1017598
++    #def test_constraint_transform_torque(
++    #    self
++    #):
++    #    from femexamples.constraint_transform_torque import setup
++    #    setup(self.document, "calculix")
++    #    self.input_file_writing_test(get_namefromdef("test_"))
+     # ********************************************************************************************
+     def test_frequency_beamsimple(
diff --git a/patches/2040-ftbfs-macappbundle.patch b/patches/2040-ftbfs-macappbundle.patch
new file mode 100644 (file)
index 0000000..fe034a4
--- /dev/null
@@ -0,0 +1,16 @@
+Description: Do not cmake add_subdirectory on removed directory.
+ Avoids a FTBFS.
+Author: Tobias Frost <tobi@debian.org>
+Forwarded: not-needed, Debian specific.
+Last-Update: 2023-12-09 <YYYY-MM-DD, last update of the meta-information, optional>
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -19,5 +19,5 @@
+ endif(BUILD_TEMPLATE)
+ # "if" clause moved into local CMakeLists.txt file to support Conda and Homebrew builds
+-add_subdirectory(MacAppBundle)
++#add_subdirectory(MacAppBundle)
diff --git a/patches/README b/patches/README
new file mode 100644 (file)
index 0000000..80c1584
--- /dev/null
@@ -0,0 +1,3 @@
+0xxx: Grabbed from upstream development.
+1xxx: Possibly relevant for upstream adoption.
+2xxx: Only relevant for official Debian release.
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..583b652
--- /dev/null
@@ -0,0 +1,12 @@
+#0020-python3.8-syntax.patch  -- re-evalute, only partly applied upstream.
+0110-desktop-extra-categories.patch
+1020-fix_gcc8_ftbfs.patch
+1030-fix_armel_FTBFS.patch
+1070-disable_memory_check.patch
+1100-run_single-instance.patch
+2000-do_not_install_binary_examples.patch
+2010-exclude_ply.patch
+2020-fix-cmake-extra-license.patch
+2030-fix-1017598.patch
+2040-ftbfs-macappbundle.patch
+0030-octt78.patch
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..55b1148
--- /dev/null
+++ b/rules
@@ -0,0 +1,78 @@
+#!/usr/bin/make -f
+%:
+       dh $@ --buildsystem=cmake --with python3
+
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all,+bindnow
+
+CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS) -Wall -fpermissive
+CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS) -flto
+CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) $(CPPFLAGS) -I/usr/include/python$(shell py3versions -d -v) -flto
+LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed -Wl,-flto
+
+# architectures with support for QTWebEngine
+with_qt_webengine = amd64 arm64 armhf i386 mips64el
+ifneq (,$(filter $(DEB_TARGET_ARCH),$(with_qt_webengine)))
+  build_web := On
+else
+  build_web := Off
+endif
+
+py3ver = $(shell py3versions -d -v | tr -d .)
+ifeq (1,$(shell expr ${py3ver} \< 38 ))
+    py3ver := $(py3ver)m
+endif
+
+extra_flags += \
+-DBUILD_QT5=ON \
+-DBUILD_FLAT_MESH=ON \
+-DFREECAD_BUILD_DEBIAN=ON \
+-DFREECAD_USE_PYBIND11=ON \
+-DCMAKE_CXX_FLAGS="$(CXXFLAGS)" \
+-DCMAKE_C_FLAGS="$(CFLAGS)" \
+-DCMAKE_SHARED_LINKER_FLAGS="$(LDFLAGS)" \
+-DLIB_SUFFIX="" \
+-DCMAKE_BUILD_TYPE=RelWithDebInfo \
+-DCMAKE_INSTALL_DATADIR="/usr/share/freecad" \
+-DCMAKE_INSTALL_DOCDIR="/usr/share/doc/freecad-doc" \
+-DCMAKE_INSTALL_PREFIX="/usr/share/freecad" \
+-DPYTHON_CONFIG_SUFFIX=".cpython-$(py3ver)-$(DEB_HOST_MULTIARCH)" \
+-DBUILD_WEB="$(build_web)"
+
+py3_flags = \
+-DPYTHON_EXECUTABLE="/usr/bin/python3" \
+-DCMAKE_INSTALL_LIBDIR="/usr/lib/freecad-python3/lib"
+
+override_dh_auto_configure:
+       dh_auto_configure --builddirectory=debian/build-py3 -- \
+           $(extra_flags) \
+           $(py3_flags)
+
+override_dh_auto_build:
+       dh_auto_build --builddirectory=debian/build-py3
+
+override_dh_auto_test:
+       dh_auto_test --builddirectory=debian/build-py3
+
+override_dh_auto_install:
+       dh_auto_install --builddirectory=debian/build-py3
+       mv debian/tmp/usr/share/freecad/bin/FreeCADCmd \
+           debian/tmp/usr/share/freecad/bin/FreeCADCmd-Python3
+       mv debian/tmp/usr/share/freecad/bin/FreeCAD \
+           debian/tmp/usr/share/freecad/bin/FreeCAD-Python3
+
+override_dh_compress:
+       dh_compress -X.qch -X.qhc
+
+override_dh_installexamples:
+
+override_dh_strip_nondeterminism:
+       dh_strip_nondeterminism -X data/corrupted_metadata.zip
+
+override_dh_missing:
+       dh_missing --list-missing
+
+override_dh_auto_clean:
+       dh_auto_clean
+       rm -rf debian/build-py3 $$(find . -name __pycache__ -type d)
diff --git a/salsa-ci.yml b/salsa-ci.yml
new file mode 100644 (file)
index 0000000..33c3a64
--- /dev/null
@@ -0,0 +1,4 @@
+---
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
diff --git a/scripts/get_git_orig_src.sh b/scripts/get_git_orig_src.sh
new file mode 100755 (executable)
index 0000000..3a81dcf
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+# The script creates a tar.xz tarball from git-repository of freecad-project
+# ./get_orig_src.sh commitID   -   creates a tarball of specified commit
+# ./get_orig_src.sh   - creates a tarball of the latest version
+# Packages, that needs to be installed to use the script:
+# atool, git-core
+
+set -e
+
+git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad git_temp_packaging
+
+cd git_temp_packaging
+
+if [ $1 ]
+then
+    echo 'Checking out the revision ' $1
+    git checkout -b newvers $1
+else
+    echo 'Using the latest revision'
+fi 
+
+GIT_CMT_COUNT=$(git rev-list HEAD | wc -l)
+
+DEB_VER=0.13.$GIT_CMT_COUNT-dfsg
+FOLDER_NAME=freecad-$DEB_VER
+TARBALL_NAME=freecad_$DEB_VER.orig.tar.xz
+
+echo $DEB_VER
+echo $FOLDER_NAME
+echo $TARBALL_NAME
+
+python src/Tools/SubWCRev.py
+
+cd ..
+
+rm -fr $FOLDER_NAME
+
+mv git_temp_packaging $FOLDER_NAME
+rm -rf $FOLDER_NAME/.git 
+rm -rf $FOLDER_NAME/src/3rdParty/CxImage
+rm -rf $FOLDER_NAME/src/3rdParty/Pivy
+rm -rf $FOLDER_NAME/src/3rdParty/Pivy-0.5
+rm -rf $FOLDER_NAME/src/3rdParty/ANN/doc/ANNmanual.pdf
+rm -rf $FOLDER_NAME/src/Mod/Ship/simRun/theory/main.pdf
+rm -rf $FOLDER_NAME/src/Mod/Mod/Robot/Lib/Kuka/*.pdf
+rm -rf $FOLDER_NAME/src/Doc/TiddlySaver.jar
+rm -rf $FOLDER_NAME/data/examples/*.FCStd
+
+
+tar Jcvf $TARBALL_NAME $FOLDER_NAME
+
+rm -fr $FOLDER_NAME
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/source/lintian-overrides b/source/lintian-overrides
new file mode 100644 (file)
index 0000000..756af77
--- /dev/null
@@ -0,0 +1,5 @@
+# The following file is an icon from the Tango Desktop Project, licensed under\r
+# public domain\r
+# https://commons.wikimedia.org/wiki/File:Edit-cut.svg\r
+freecad source: license-problem-cc-by-nc-sa src/Gui/Icons/edit-cut.svg\r
+freecad source: license-problem-cc-by-nc-sa src/Mod/TechDraw/Gui/Resources/icons/MRTE/edit-cut.svg\r
diff --git a/tests/control b/tests/control
new file mode 100644 (file)
index 0000000..2afd894
--- /dev/null
@@ -0,0 +1,3 @@
+Tests: freecadtest
+Depends: freecad, xvfb, xauth
+Restrictions: allow-stderr
diff --git a/tests/freecadtest b/tests/freecadtest
new file mode 100755 (executable)
index 0000000..33f3b37
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/dash
+# autopkgtest check
+# (C) 2014 Anton Gladky <gladk@debian.org>
+
+set -e
+
+export FREECAD_USER_HOME="$AUTOPKGTEST_TMP"
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+
+
+# list of tests can be extraced with the FreeCAD python command: (Reference: https://wiki.freecad.org/Testing/de#Get_a_list_of_all_top-level_test_modules)
+# FreeCAD.__unit_test__
+# List of all tests:
+tests_ok="TestSpreadsheet BaseTests UnitTests Document Metadata UnicodeTests TestPythonSyntax TestPathApp TestPartDesignApp TestDraft TestTechDrawApp MeshTestsApp TestSurfaceApp TestSketcherApp TestFemApp TestAddonManagerApp TestPartApp TestArch"
+
+tests_flaky=""
+if dpkg-architecture -e i386 || dpkg-architecture -e s390x ; then
+ tests_flaky="TestPathApp"
+fi
+
+for t in $tests_ok
+do
+  for x in $tests_flaky ; do if [ "$x" = "$t" ] ; then t=""; break; fi ; done
+  if [ -z "$t" ] ; then echo "### SKIPING TEST $x ###" ; continue ; fi
+  echo "### Running CLI Test $t ### "
+  freecadcmd -c -t $t
+done
+
diff --git a/upstream/metadata b/upstream/metadata
new file mode 100644 (file)
index 0000000..b05bd57
--- /dev/null
@@ -0,0 +1,8 @@
+---
+Bug-Database: https://github.com/FreeCAD/FreeCAD/issues
+Bug-Submit: https://github.com/FreeCAD/FreeCAD/issues/new
+Repository: https://github.com/FreeCAD/FreeCAD.git
+Repository-Browse: https://github.com/FreeCAD/FreeCAD
+Registry:
+ - Name: SciCrunch
+   Entry: SCR_022535
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..a26af42
--- /dev/null
+++ b/watch
@@ -0,0 +1,3 @@
+version=4
+opts=repacksuffix=+dfsg1,uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha|b|a)\d*)$/$1~$2/,dversionmangle=s/\+(debian|dfsg|ds|deb)\d*$// \
+https://github.com/FreeCAD/FreeCAD/tags .*/(\d.*).*(?<!_pre)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz))