236 lines
6.4 KiB
RPMSpec
236 lines
6.4 KiB
RPMSpec
Name: openscad
|
|
Version: 2021.01
|
|
%global upversion %{version}
|
|
Release: %autorelease
|
|
Summary: The Programmers Solid 3D CAD Modeller
|
|
# COPYING contains a linking exception for CGAL
|
|
# Appdata file is CC0
|
|
# Examples are CC0
|
|
License: GPLv2 with exceptions and CC0
|
|
URL: http://www.%{name}.org/
|
|
Source0: http://files.%{name}.org/%{name}-%{upversion}.src.tar.gz
|
|
Patch0: %{name}-polyclipping.patch
|
|
|
|
# CGAL 5.3 fixes from https://github.com/openscad/openscad/pull/3844
|
|
Patch1: %{name}-cgal5.3.patch
|
|
|
|
# Upstream backports:
|
|
%global github https://github.com/openscad/openscad
|
|
|
|
# https://github.com/openscad/openscad/commit/9b79576c1ee9d57d0f4a5de5c1365bb87c548f36
|
|
Patch2: %{name}-2021.01-fix-overloaded-join.patch
|
|
# https://github.com/openscad/openscad/commit/71f2831c0484c3f35cbf44e1d1dc2c857384100b
|
|
Patch3: %{name}-2021.01-cgal-build-fix.patch
|
|
# https://github.com/openscad/openscad/commit/770e3234cbfe66edbc0333f796b46d36a74aa652
|
|
Patch4: CVE-2022-0496.patch
|
|
# https://github.com/openscad/openscad/commit/84addf3c1efbd51d8ff424b7da276400bbfa1a4b
|
|
Patch5: CVE-2022-0497.patch
|
|
|
|
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
|
ExcludeArch: %{ix86}
|
|
|
|
BuildRequires: CGAL-devel >= 3.6
|
|
BuildRequires: ImageMagick
|
|
BuildRequires: Xvfb
|
|
BuildRequires: bison >= 2.4
|
|
BuildRequires: boost-devel >= 1.35
|
|
BuildRequires: cairo-devel
|
|
BuildRequires: desktop-file-utils
|
|
BuildRequires: double-conversion-devel
|
|
BuildRequires: eigen3-devel
|
|
BuildRequires: flex >= 2.5.35
|
|
BuildRequires: freetype-devel >= 2.4
|
|
BuildRequires: fontconfig-devel >= 2.10
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: gettext
|
|
BuildRequires: git-core
|
|
BuildRequires: glew-devel >= 1.6
|
|
BuildRequires: glib2-devel
|
|
BuildRequires: gmp-devel >= 5.0.0
|
|
BuildRequires: harfbuzz-devel >= 0.9.19
|
|
BuildRequires: libspnav-devel
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: make
|
|
BuildRequires: mesa-dri-drivers
|
|
BuildRequires: mpfr-devel >= 3.0.0
|
|
BuildRequires: opencsg-devel >= 1.3.2
|
|
BuildRequires: polyclipping-devel >= 6.1.3
|
|
BuildRequires: procps-ng
|
|
BuildRequires: python3-devel
|
|
BuildRequires: qt5-qtbase-devel
|
|
BuildRequires: qt5-qtgamepad-devel
|
|
BuildRequires: qt5-qtmultimedia-devel
|
|
BuildRequires: qscintilla-qt5-devel
|
|
BuildRequires: pkgconfig(libzip)
|
|
Requires: font(liberationmono)
|
|
Requires: font(liberationsans)
|
|
Requires: font(liberationserif)
|
|
Requires: hicolor-icon-theme
|
|
Recommends: %{name}-MCAD = %{version}-%{release}
|
|
|
|
%bcond_without 3mf
|
|
%if %{with 3mf}
|
|
BuildRequires: lib3mf-devel
|
|
%endif
|
|
|
|
%description
|
|
OpenSCAD is a software for creating solid 3D CAD objects.
|
|
Unlike most free software for creating 3D models (such as the famous
|
|
application Blender) it does not focus on the artistic aspects of 3D
|
|
modeling but instead on the CAD aspects. Thus it might be the application
|
|
you are looking for when you are planning to create 3D models of machine
|
|
parts but pretty sure is not what you are looking for when you are more
|
|
interested in creating computer-animated movies.
|
|
|
|
|
|
###############################################
|
|
%package MCAD
|
|
Summary: OpenSCAD Parametric CAD Library
|
|
License: LGPLv2+ and LGPLv2 and LGPLv3+ and (GPLv3 or LGPLv2) and (GPLv3+ or LGPLv2) and (CC-BY-SA or LGPLv2+) and (CC-BY-SA or LGPLv2) and CC-BY and BSD and MIT and Public Domain
|
|
URL: https://www.github.com/openscad/MCAD
|
|
Requires: %{name} = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description MCAD
|
|
This library contains components commonly used in designing and moching up
|
|
mechanical designs. It is currently unfinished and you can expect some API
|
|
changes, however many things are already working.
|
|
|
|
### LICENSES:
|
|
|
|
## LGPLv2+:
|
|
# 2Dshapes.scad
|
|
# 3d_triangle.scad
|
|
# fonts.scad
|
|
# gridbeam.scad
|
|
# hardware.scad
|
|
# libtriangles.scad
|
|
# multiply.scad
|
|
# shapes.scad
|
|
# screw.scad
|
|
|
|
## LGPLv2:
|
|
# gears.scad
|
|
# involute_gears.scad
|
|
# servos.scad
|
|
# transformations.scad
|
|
# triangles.scad
|
|
# unregular_shapes.scad
|
|
# bitmap/letter_necklace.scad
|
|
|
|
## LGPLv3+:
|
|
# teardrop.scad
|
|
|
|
## GPLv3 or LGPLv2:
|
|
# motors.scad
|
|
# nuts_and_bolts.scad
|
|
|
|
|
|
## GPLv3+ or LGPLv2:
|
|
# metric_fastners.scad
|
|
# regular_shapes.scad
|
|
|
|
## CC-BY-SA or LGPLv2+:
|
|
# bearing.scad
|
|
# materials.scad
|
|
# stepper.scad
|
|
# utilities.scad
|
|
|
|
## CC-BY-SA or LGPLv2:
|
|
# units.scad
|
|
|
|
## CC-BY:
|
|
# polyholes.scad
|
|
# bitmap/alphabet_block.scad
|
|
# bitmap/bitmap.scad
|
|
# bitmap/height_map.scad
|
|
# bitmap/name_tag.scad
|
|
|
|
## BSD
|
|
# boxes.scad
|
|
|
|
## MIT
|
|
# constants.scad
|
|
# curves.scad
|
|
# math.scad
|
|
|
|
## Public Domain
|
|
# lego_compatibility.scad
|
|
# trochoids.scad
|
|
|
|
###############################################
|
|
|
|
%prep
|
|
%autosetup -n %{name}-%{upversion} -p1 -S git
|
|
|
|
# Unbundle polyclipping
|
|
rm src/ext/polyclipping -rf
|
|
|
|
# Remove unwanted things from MCAD, such as nonworking Python tests
|
|
pushd libraries/MCAD
|
|
for FILE in *.py; do
|
|
rm -r $FILE
|
|
done
|
|
mv bitmap/README bitmap-README
|
|
popd
|
|
|
|
# Tests cmake check for MCAD by probing libraries/MCAD/__init__.py
|
|
# But we've just removed it
|
|
sed -i 's@MCAD/__init__.py@MCAD/gears.scad@' tests/CMakeLists.txt
|
|
|
|
%build
|
|
%{qmake_qt5} PREFIX=%{_prefix} VERSION=%{upversion} CONFIG-=debug
|
|
%make_build
|
|
|
|
# tests
|
|
cd tests
|
|
cmake -DPYTHON_EXECUTABLE:STRING=%{python3} .
|
|
%make_build
|
|
cd -
|
|
|
|
%install
|
|
make install INSTALL_ROOT=%{buildroot}
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/fonts
|
|
%find_lang %{name}
|
|
|
|
for FILE in .gitignore lgpl-2.1.txt README.markdown TODO bitmap-README; do
|
|
rm %{buildroot}%{_datadir}/%{name}/libraries/MCAD/$FILE
|
|
done
|
|
|
|
%check
|
|
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
|
|
|
|
# tests
|
|
cd tests
|
|
ctest %{?_smp_mflags} || : # let the tests fail, as they probably won't work in Koji
|
|
cd -
|
|
|
|
%files -f %{name}.lang
|
|
%license COPYING
|
|
%doc README.md RELEASE_NOTES.md
|
|
%attr(755,root,root) %{_bindir}/%{name}
|
|
%{_datadir}/metainfo/*.xml
|
|
%{_datadir}/applications/%{name}.desktop
|
|
%{_datadir}/icons/hicolor/*/apps/%{name}.png
|
|
%{_datadir}/mime/packages/%{name}.xml
|
|
%dir %{_datadir}/%{name}
|
|
%{_datadir}/%{name}/examples/
|
|
%{_datadir}/%{name}/color-schemes/
|
|
%dir %{_datadir}/%{name}/locale
|
|
%dir %{_datadir}/%{name}/libraries
|
|
%{_datadir}/%{name}/templates/
|
|
%{_mandir}/man1/*
|
|
|
|
%files MCAD
|
|
%license libraries/MCAD/lgpl-2.1.txt
|
|
%doc libraries/MCAD/README.markdown
|
|
%doc libraries/MCAD/TODO
|
|
%doc libraries/MCAD/bitmap-README
|
|
%dir %{_datadir}/%{name}/libraries/MCAD
|
|
%dir %{_datadir}/%{name}/libraries/MCAD/bitmap
|
|
%{_datadir}/%{name}/libraries/MCAD/*.scad
|
|
%{_datadir}/%{name}/libraries/MCAD/bitmap/*.scad
|
|
|
|
%changelog
|
|
%autochangelog
|