diff --git a/freecad.desktop b/freecad.desktop index 22ace71..c6d93c1 100644 --- a/freecad.desktop +++ b/freecad.desktop @@ -1,5 +1,4 @@ [Desktop Entry] -Version=1.0 Name=FreeCAD Name[de]=FreeCAD Name[ru]=FreeCAD @@ -9,12 +8,11 @@ Comment[ru]=Параметрический трехмерный редактор GenericName=CAD Application GenericName[de]=CAD-Anwendung GenericName[ru]=САПР -Exec=/usr/bin/FreeCAD %F +Exec=FreeCAD %F Path=/usr/@lib@/freecad Terminal=false Type=Application Icon=freecad Categories=Graphics;Science;Education;Engineering; StartupNotify=true -GenericName[de_DE]=Feature-basierter parametrischer Modellierer MimeType=application/x-extension-fcstd; diff --git a/freecad.rpmlintrc b/freecad.rpmlintrc index 52dafb1..acedc16 100644 --- a/freecad.rpmlintrc +++ b/freecad.rpmlintrc @@ -1 +1,6 @@ +# Freecad is installed in %%_libdir/freecad: +# this tricks rpmlint in thinking the package is a library one +addFilter("E: library-not-linked-against-libc") +addFilter("E: incoherent-version-in-name") + addFilter("E: invalid-soname.*") diff --git a/freecad.spec b/freecad.spec index 1b1b6e2..2083797 100644 --- a/freecad.spec +++ b/freecad.spec @@ -1,51 +1,57 @@ +%define oname FreeCAD +%define oversion 0.15.4664 + Summary: FreeCAD is a general purpose 3D CAD modeler Name: freecad -Version: 0.14.3702 -Release: 4 -License: GPL and LGPL -Group: Graphics +Version: 0.15 +Release: 1 +License: GPLv2+ and LGPLv2+ +Group: Graphics Url: http://free-cad.sourceforge.net/ -Source0: http://dfn.dl.sourceforge.net/sourceforge/free-cad/freecad-%{version}.tar.gz -Source1: freecad.desktop -Source2: freecad.1 +Source0: http://dfn.dl.sourceforge.net/sourceforge/free-cad/%{oname}-%{version}.tar.gz +Source1: %{name}.desktop +Source2: %{name}.1 Source3: %{name}.rpmlintrc # Patch to build with non-backward compatible change in QT4. -# Patch1: freecad-0.13-qt4_cmake.patch +# Patch1: freecad-0.13-qt4_cmake.patch BuildRequires: cmake -BuildRequires: eigen3 +BuildRequires: eigen3 >= 3.0.1 BuildRequires: gcc-gfortran BuildRequires: python-matplotlib -BuildRequires: boost-devel -BuildRequires: opencascade-devel +BuildRequires: boost-devel >= 1.33.1 +BuildRequires: opencascade-devel >= 5.2 BuildRequires: qt4-devel -BuildRequires: pkgconfig(SoQt) -BuildRequires: pkgconfig(Coin) +BuildRequires: pkgconfig(glu) +BuildRequires: pkgconfig(SoQt) >= 1.2.0 +BuildRequires: pkgconfig(Coin) >= 2.4.0 +BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(gstreamer-0.10) BuildRequires: pkgconfig(ode) BuildRequires: pkgconfig(opencv) -BuildRequires: pkgconfig(python) +BuildRequires: pkgconfig(python) >= 2.5 BuildRequires: pkgconfig(shiboken) BuildRequires: pkgconfig(pyside) -BuildRequires: pkgconfig(xerces-c) +BuildRequires: pkgconfig(xerces-c) >= 2.6 %description -FreeCAD will be a general purpose 3D CAD modeler. - -The development will be completely Open Source. As with many modern 3D CAD -modelers it will have a 2D component in order to extract design detail from -the 3D model to create 2D production drawings, although 2D (e.g. AutoCAD LT) -is not the focus, neither are animation and organic shapes (e.g. Maya, -3D StudioMAX and Cinema 4D). +FreeCAD will be a general purpose parametric 3D CAD modeler. The development +is completely Open Source. It is a feature based parametric modeler with a +modular software architecture which makes it easy to provide additional +functionality without modifying the core system. As with many modern 3D CAD +modelers it has many 2D component in order to extract design detail from +the 3D model to create 2D production drawings, but direct 2D drawing (e.g. +AutoCAD LT) is not the focus, neither are animation and organic shapes (e.g. +Maya, 3D StudioMAX, Blender and Cinema 4D). %files %doc ChangeLog.txt copying.lib data/License.txt build/doc/* %{_bindir}/* +%{_libdir}/%{name}/bin/ +%{_libdir}/%{name}/Mod/ +%{_libdir}/%{name}/*.so %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg -%{_libdir}/%{name}/bin/ -%{_libdir}/%{name}/lib/ -%{_libdir}/%{name}/Mod/ %{_datadir}/%{name}/ %{_mandir}/man1/*.1* @@ -60,52 +66,66 @@ Group: Development/C++ Development files for FreeCAD. %files devel -%{_libdir}/%{name}/include/* +%doc ChangeLog.txt copying.lib +%{_libdir}/%{name}/include/ #---------------------------------------------------------------------------- %prep -%setup -q -# %apply_patches +%setup -qn %{oname}-%{version} +#%%apply_patches + +# Fix bogus file perms +find ./src -name "*.py*" |xargs chmod 755 +find ./src -name "*.h*" |xargs chmod 644 +find ./src -name "*.cpp*" |xargs chmod 644 + %build -%define Werror_cflags %nil -%cmake_qt4 \ +#define Werror_cflags %%nil +%cmake_qt4 -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=%{_libdir}/%{name} \ + -DCMAKE_INSTALL_INCLUDEDIR=%{_libdir}/%{name}/include \ -DCMAKE_INSTALL_DATADIR=%{_datadir}/%{name} \ -DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \ - -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ + -DCMAKE_INSTALL_LIBDIR=%{_libdir}/%{name} \ -DRESOURCEDIR=%{_libdir}/freecad %make -# -DCMAKE_INSTALL_PREFIX=%{_libdir}/%{name} \ %install %makeinstall_std -C build # Symlink binaries to /usr/bin -#mkdir -p %{buildroot}%{_bindir} -#pushd %{buildroot}%{_bindir} -#ln -s ../%{_lib}/freecad/bin/FreeCAD . -#ln -s ../%{_lib}/freecad/bin/FreeCADCmd . -#popd +mkdir -p %{buildroot}%{_bindir} +pushd %{buildroot}%{_bindir} +ln -s ../%{_lib}/freecad/bin/FreeCAD . +ln -s ../%{_lib}/freecad/bin/FreeCADCmd . +popd -# Install desktop file -desktop-file-install \ - --dir=%{buildroot}%{_datadir}/applications %{SOURCE1} +# Fix bogus perms +chmod +x %{buildroot}%{_libdir}/%{name}/bin/pivy/sogui.py +chmod +x %{buildroot}%{_libdir}/%{name}/Mod/PartDesign/Scripts/*.py +# Install and fix .desktop file +desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1} sed -i 's,@lib@,%{_lib},g' %{buildroot}%{_datadir}/applications/%{name}.desktop + # Install desktop icon install -pD -m 0644 src/Gui/Icons/%{name}.svg \ - %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg + # Install man page -install -pD -m 0644 %{SOURCE2} \ - %{buildroot}%{_mandir}/man1/%{name}.1 - +install -pD -m 0644 %{SOURCE2} %{buildroot}%{_mandir}/man1/%{name}.1 # Symlink manpage to other binary names pushd %{buildroot}%{_mandir}/man1 -ln -sf %{name}.1.gz FreeCAD.1.gz. -ln -sf %{name}.1.gz FreeCADCmd.1.gz + ln -sf %{name}.1.gz FreeCAD.1.gz. + ln -sf %{name}.1.gz FreeCADCmd.1.gz popd + +# FIXME: Apparently there are no more include files to install. +# For now keep the devel package and manually create the needed (empty) dir +mkdir -p %{buildroot}%{_libdir}/%{name}/include \ No newline at end of file