diff --git a/librecad-dxflib25.diff b/librecad-dxflib25.diff index c198e73..e0e2a99 100644 --- a/librecad-dxflib25.diff +++ b/librecad-dxflib25.diff @@ -12,10 +12,10 @@ but it seems that is the same as was done with dxflib 2.2. src/lib/filters/rs_filterdxf.h | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) -Index: LibreCAD/src/lib/filters/rs_filterdxf.cpp +Index: LibreCAD-LibreCAD-a5c34b2/src/lib/filters/rs_filterdxf.cpp =================================================================== ---- LibreCAD.orig/src/lib/filters/rs_filterdxf.cpp -+++ LibreCAD/src/lib/filters/rs_filterdxf.cpp +--- LibreCAD-LibreCAD-a5c34b2.orig/src/lib/filters/rs_filterdxf.cpp ++++ LibreCAD-LibreCAD-a5c34b2/src/lib/filters/rs_filterdxf.cpp @@ -1197,7 +1197,7 @@ bool RS_FilterDXF::fileExport(RS_Graphic exportVersion = DL_Codes::AC1015; } @@ -79,10 +79,10 @@ Index: LibreCAD/src/lib/filters/rs_filterdxf.cpp for (int i=0; i<3; ++i) { dxf.writeLine( dw, -Index: LibreCAD/src/lib/filters/rs_filterdxf.h +Index: LibreCAD-LibreCAD-a5c34b2/src/lib/filters/rs_filterdxf.h =================================================================== ---- LibreCAD.orig/src/lib/filters/rs_filterdxf.h -+++ LibreCAD/src/lib/filters/rs_filterdxf.h +--- LibreCAD-LibreCAD-a5c34b2.orig/src/lib/filters/rs_filterdxf.h ++++ LibreCAD-LibreCAD-a5c34b2/src/lib/filters/rs_filterdxf.h @@ -79,6 +79,7 @@ public: virtual bool fileImport(RS_Graphic& g, const QString& file, RS2::FormatType /*type*/); diff --git a/librecad-external-dxflib.diff b/librecad-external-dxflib.diff new file mode 100644 index 0000000..11ade99 --- /dev/null +++ b/librecad-external-dxflib.diff @@ -0,0 +1,60 @@ +Description: use debian packaged fparser +Author: Scott Howard +Author: Lisandro Damián Nicanor Pérez Meyer +Last-Update: 2011-08-05 + + +--- + librecad.pro | 18 +++--------------- + 1 file changed, 3 insertions(+), 15 deletions(-) + +Index: LibreCAD-LibreCAD-a5c34b2/librecad.pro +=================================================================== +--- LibreCAD-LibreCAD-a5c34b2.orig/librecad.pro ++++ LibreCAD-LibreCAD-a5c34b2/librecad.pro +@@ -69,8 +69,8 @@ win32 { + + + # Additional libraries to load +-# LIBS += \ +-# -Ldxflib/lib -ldxf \ ++LIBS += \ ++ -ldxflib + # Store intermedia stuff somewhere else + OBJECTS_DIR = intermediate/obj + MOC_DIR = intermediate/moc +@@ -84,7 +84,7 @@ RESOURCES += res/extui/extui.qrc + LIBS += -lmuparser + + INCLUDEPATH += \ +- dxflib/src \ ++ /usr/include/dxflib \ + src/cmd \ + src/lib/actions \ + src/lib/creation \ +@@ -109,16 +109,6 @@ DEPENDPATH = $$INCLUDEPATH + # ################################################################################ + # Library + HEADERS = \ +- dxflib/src/dl_attributes.h \ +- dxflib/src/dl_codes.h \ +- dxflib/src/dl_creationadapter.h \ +- dxflib/src/dl_creationinterface.h \ +- dxflib/src/dl_dxf.h \ +- dxflib/src/dl_entities.h \ +- dxflib/src/dl_exception.h \ +- dxflib/src/dl_extrusion.h \ +- dxflib/src/dl_writer.h \ +- dxflib/src/dl_writer_ascii.h \ + src/lib/actions/rs_actioninterface.h \ + src/lib/actions/rs_preview.h \ + src/lib/actions/rs_previewactioninterface.h \ +@@ -216,8 +206,6 @@ HEADERS = \ + src/plugins/intern/qc_actiongetent.h + + SOURCES = \ +- dxflib/src/dl_dxf.cpp \ +- dxflib/src/dl_writer_ascii.cpp \ + src/lib/actions/rs_actioninterface.cpp \ + src/lib/actions/rs_preview.cpp \ + src/lib/actions/rs_previewactioninterface.cpp \ diff --git a/librecad-install.diff b/librecad-install.diff new file mode 100644 index 0000000..12afcc6 --- /dev/null +++ b/librecad-install.diff @@ -0,0 +1,30 @@ +--- + librecad.pro | 1 - + scripts/postprocess-unix.sh | 2 +- + 2 files changed, 1 insertion(+), 2 deletions(-) + +Index: LibreCAD-LibreCAD-a5c34b2/librecad.pro +=================================================================== +--- LibreCAD-LibreCAD-a5c34b2.orig/librecad.pro ++++ LibreCAD-LibreCAD-a5c34b2/librecad.pro +@@ -49,7 +49,6 @@ unix { + INCLUDEPATH += "/usr/include/muParser" + } + +- QMAKE_POST_LINK = scripts/postprocess-unix.sh + } + } + win32 { +Index: LibreCAD-LibreCAD-a5c34b2/scripts/postprocess-unix.sh +=================================================================== +--- LibreCAD-LibreCAD-a5c34b2.orig/scripts/postprocess-unix.sh ++++ LibreCAD-LibreCAD-a5c34b2/scripts/postprocess-unix.sh +@@ -1,7 +1,7 @@ + #!/bin/bash + + THISDIR="`pwd`" +-RESOURCEDIR="${THISDIR}/unix/resources" ++RESOURCEDIR=$BUILDDIR + TSDIR="${THISDIR}/ts" + DOCDIR="${THISDIR}/support/doc" + diff --git a/librecad-no-date.diff b/librecad-no-date.diff index 1467604..e5f733e 100644 --- a/librecad-no-date.diff +++ b/librecad-no-date.diff @@ -2,11 +2,11 @@ src/main/qc_applicationwindow.cpp | 1 - 1 file changed, 1 deletion(-) -Index: LibreCAD/src/main/qc_applicationwindow.cpp +Index: LibreCAD-LibreCAD-a5c34b2/src/main/qc_applicationwindow.cpp =================================================================== ---- LibreCAD.orig/src/main/qc_applicationwindow.cpp -+++ LibreCAD/src/main/qc_applicationwindow.cpp -@@ -2933,7 +2933,6 @@ void QC_ApplicationWindow::slotHelpAbout +--- LibreCAD-LibreCAD-a5c34b2.orig/src/main/qc_applicationwindow.cpp ++++ LibreCAD-LibreCAD-a5c34b2/src/main/qc_applicationwindow.cpp +@@ -2966,7 +2966,6 @@ void QC_ApplicationWindow::slotHelpAbout #ifdef QC_SCMREVISION tr("SCM Revision: %1").arg(XSTR(QC_SCMREVISION)) + "
" + #endif diff --git a/librecad-plugindir.diff b/librecad-plugindir.diff new file mode 100644 index 0000000..78e9569 --- /dev/null +++ b/librecad-plugindir.diff @@ -0,0 +1,22 @@ +From: Jan Engelhardt +Date: 2012-05-11 08:16:47.544680812 +0200 + +Look in the right spot for plugins. + +--- + src/lib/engine/rs_system.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +Index: LibreCAD-LibreCAD-a5c34b2/src/lib/engine/rs_system.cpp +=================================================================== +--- LibreCAD-LibreCAD-a5c34b2.orig/src/lib/engine/rs_system.cpp ++++ LibreCAD-LibreCAD-a5c34b2/src/lib/engine/rs_system.cpp +@@ -548,6 +548,8 @@ QStringList RS_System::getDirectoryList( + } + RS_SETTINGS->endGroup(); + ++ dirList.append(CONFIG_LIBDIR "/" + appDirName + "/" + subDirectory); ++ + QStringList ret; + + RS_DEBUG->print("RS_System::getDirectoryList: Paths:"); diff --git a/librecad.mime.desktop b/librecad.mime.desktop new file mode 100644 index 0000000..b1687c0 --- /dev/null +++ b/librecad.mime.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=MimeType +MimeType=image/vnd.dxf +Icon=librecad +Patterns=*.dxf;*.DXF; +Comment=DXF Vectorial Graphic +X-KDE-AutoEmbed=false diff --git a/librecad.spec b/librecad.spec index 1dc79b3..2a8acb5 100644 --- a/librecad.spec +++ b/librecad.spec @@ -27,30 +27,94 @@ Provides: qcad Obsoletes: qcad <= 2.0.5 #Git-Clone: git://github.com/LibreCAD/LibreCAD -Source: librecad-%version.tar.xz +#Git-Web: https://github.com/LibreCAD/LibreCAD/tags +#DL-URL: https://github.com/LibreCAD/LibreCAD/tarball/v1.0.2 +Source: %name-%version.tar.xz Source2: %name-rpmlintrc -Patch1: librecad-dxflib25.diff -Patch2: librecad-no-date.diff +Source3: librecad.mime.desktop +Patch1: librecad-no-date.diff +Patch2: librecad-dxflib25.diff +Patch3: librecad-external-dxflib.diff +Patch4: librecad-install.diff +Patch5: librecad-plugindir.diff BuildRoot: %_tmppath/%name-%version-build -BuildRequires: gcc-c++, dxflib-devel, fparser-devel, libqt4-devel, xz +BuildRequires: bash, fdupes, gcc-c++, dxflib-devel, muparser-devel +BuildRequires: libqt4-devel, libqt4-devel-doc, update-desktop-files, xz +Requires(post): shared-mime-info +Requires(postun): shared-mime-info +Recommends: %name-parts %description +LibreCAD is a Qt4 application to design 2D CAD drawings. + +%package parts +Summary: Parts collection for LibreCAD +Requires: %name +Group: Productivity/Graphics/CAD +BuildArch: noarch + +%description parts +Collection of parts for LibreCAD, a Qt4 application to design 2D +CAD drawings. %prep %setup -qn LibreCAD-LibreCAD-a5c34b2 -%patch -P 1 -P 2 -p1 +%patch -P 1 -P 2 -P 3 -P 4 -P 5 -p1 %build -qmake QMAKE_CFLAGS+="%optflags" QMAKE_CXXFLAGS+="%optflags"; +# qmake seems to have an extra expansion step, so we need one more escape step. +f="%optflags -DCONFIG_LIBDIR=\\\\\\\"%_libdir\\\\\\\""; +qmake CONFIG+="release" QMAKE_CFLAGS+="$f" QMAKE_CXXFLAGS+="$f"; make %{?_smp_mflags}; +pushd plugins/; +qmake CONFIG+="release" QMAKE_CFLAGS+="%optflags" QMAKE_CXXFLAGS+="%optflags"; +make %{?_smp_mflags}; +popd; %install b="%buildroot"; -mkdir -p "$b/%_bindir"; -install -pm0755 unix/librecad "$b/%_bindir/"; +# No make install :( +export BUILDDIR="%buildroot/%_datadir/%name"; +bash scripts/postprocess-unix.sh; + +install -Dpm0755 "unix/%name" "$b/%_bindir/%name"; +install -Dpm0644 desktop/%name.1 "$b/%_mandir/man1/%name.1"; +p="$b/%_libdir/%name/plugins"; +mkdir -p "$p"; +install -Dpm0755 unix/resources/plugins/* "$p/"; +install -Dpm0644 "desktop/%name.desktop" "$b/%_datadir/applications/%name.desktop"; +install -Dpm0644 "res/main/%name.png" "$b/%_datadir/pixmaps/%name.png"; +install -Dpm0644 "%{S:3}" "$b/%_datadir/mime/image/dxf.desktop"; + +#find "$b/%_datadir/%name" -type f -exec chmod a-x "{}" "+"; + +%if 0%{?suse_version} +%suse_update_desktop_file -r %name Graphics VectorGraphics +%suse_update_desktop_file %buildroot/%_datadir/mime/image/dxf.desktop +%endif + +%post +%_bindir/update-mime-database %_datadir/mime >/dev/null || : + +%postun +%_bindir/update-mime-database %_datadir/mime >/dev/null || : %files %defattr(-,root,root) %_bindir/librecad +%_libdir/%name +%_mandir/man1/librecad.1* +%_datadir/applications/librecad.desktop +%_datadir/mime/image/dxf.desktop +%_datadir/pixmaps/librecad.png +%dir %_datadir/%name +%_datadir/%name/fonts +%_datadir/%name/patterns +%_datadir/%name/qm + +%files parts +%defattr(-,root,root) +%dir %_datadir/%name +%_datadir/%name/library %changelog