From 81c88f80b54e31c03b63ab461ea0d8fa89f59fa28ac975fe21b23ccc9f0e62c5 Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Sat, 4 Feb 2017 12:14:11 +0000 Subject: [PATCH 1/3] Accepting request 454646 from home:Heinervdm:branches:Education update to 0.9.3b OBS-URL: https://build.opensuse.org/request/show/454646 OBS-URL: https://build.opensuse.org/package/show/Education/fritzing?expand=0&rev=49 --- 0.9.2b.tar.gz | 3 - 0.9.3b.tar.gz | 3 + fritzing-cleanup-build-files.patch | 598 +++++++++++++++++++++++++++++ fritzing-folderutils-fix.patch | 36 ++ fritzing-libgit-0.24.patch | 29 ++ fritzing.changes | 10 + fritzing.spec | 38 +- 7 files changed, 709 insertions(+), 8 deletions(-) delete mode 100644 0.9.2b.tar.gz create mode 100644 0.9.3b.tar.gz create mode 100644 fritzing-cleanup-build-files.patch create mode 100644 fritzing-folderutils-fix.patch create mode 100644 fritzing-libgit-0.24.patch diff --git a/0.9.2b.tar.gz b/0.9.2b.tar.gz deleted file mode 100644 index b27adbf..0000000 --- a/0.9.2b.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6e9dbb94a4ca5e23effc2056f471c78913b9efa4c154ced94de8f72bfe29735f -size 10913985 diff --git a/0.9.3b.tar.gz b/0.9.3b.tar.gz new file mode 100644 index 0000000..5bfdf1f --- /dev/null +++ b/0.9.3b.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d92579cf87bbde2325e641b674b6c340fd27ee28a8ffe4c03e527e9a4307d88 +size 13166645 diff --git a/fritzing-cleanup-build-files.patch b/fritzing-cleanup-build-files.patch new file mode 100644 index 0000000..0ab1105 --- /dev/null +++ b/fritzing-cleanup-build-files.patch @@ -0,0 +1,598 @@ +diff --git a/config.tests/boost/boost.pro b/config.tests/boost/boost.pro +new file mode 100644 +index 0000000..bba41b9 +--- /dev/null ++++ b/config.tests/boost/boost.pro +@@ -0,0 +1 @@ ++SOURCES = main.cpp +diff --git a/config.tests/boost/main.cpp b/config.tests/boost/main.cpp +new file mode 100644 +index 0000000..a245b7c +--- /dev/null ++++ b/config.tests/boost/main.cpp +@@ -0,0 +1,8 @@ ++#include ++#if BOOST_VERSION / 100000 == 1 && BOOST_VERSION / 100 % 1000 == 54 ++#error "Boost 1.54 found" ++#endif ++ ++int main() ++{ ++} +diff --git a/phoenix.pro b/phoenix.pro +index 301ce0c..26e25b5 100644 +--- a/phoenix.pro ++++ b/phoenix.pro +@@ -1,7 +1,7 @@ + # /******************************************************************* + # + # Part of the Fritzing project - http://fritzing.org +-# Copyright (c) 2007-08 Fritzing ++# Copyright (c) 2007-16 Fritzing + # + # Fritzing is free software: you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -30,116 +30,125 @@ + # + # QTPLUGIN += qjpeg qsqlite + +- + CONFIG += debug_and_release + ++unix:!macx { ++ CONFIG += link_pkgconfig ++} ++ ++load(configure) ++ + win32 { + # release build using msvc 2010 needs to use Multi-threaded (/MT) for the code generation/runtime library option + # release build using msvc 2010 needs to add msvcrt.lib;%(IgnoreSpecificDefaultLibraries) to the linker/no default libraries option +- CONFIG -= embed_manifest_exe +- INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtZlib +- DEFINES += _CRT_SECURE_NO_DEPRECATE +- DEFINES += _WINDOWS +- RELEASE_SCRIPT = $$(RELEASE_SCRIPT) # environment variable set from release script +- +- message("target arch: $${QMAKE_TARGET.arch}") +- contains(QMAKE_TARGET.arch, x86_64) { +- RELDIR = ../release64 +- DEBDIR = ../debug64 +- DEFINES += WIN64 +- } +- !contains(QMAKE_TARGET.arch, x86_64) { +- RELDIR = ../release32 +- DEBDIR = ../debug32 +- } ++ CONFIG -= embed_manifest_exe ++ INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtZlib ++ DEFINES += _CRT_SECURE_NO_DEPRECATE ++ DEFINES += _WINDOWS ++ RELEASE_SCRIPT = $$(RELEASE_SCRIPT) # environment variable set from release script + +- Release:DESTDIR = $${RELDIR} +- Release:OBJECTS_DIR = $${RELDIR} +- Release:MOC_DIR = $${RELDIR} +- Release:RCC_DIR = $${RELDIR} +- Release:UI_DIR = $${RELDIR} +- +- Debug:DESTDIR = $${DEBDIR} +- Debug:OBJECTS_DIR = $${DEBDIR} +- Debug:MOC_DIR = $${DEBDIR} +- Debug:RCC_DIR = $${DEBDIR} +- Debug:UI_DIR = $${DEBDIR} +-} +-macx { ++ message("target arch: $${QMAKE_TARGET.arch}") ++ contains(QMAKE_TARGET.arch, x86_64) { + RELDIR = ../release64 + DEBDIR = ../debug64 +- Release:DESTDIR = $${RELDIR} +- Release:OBJECTS_DIR = $${RELDIR} +- Release:MOC_DIR = $${RELDIR} +- Release:RCC_DIR = $${RELDIR} +- Release:UI_DIR = $${RELDIR} +- +- Debug:DESTDIR = $${DEBDIR} +- Debug:OBJECTS_DIR = $${DEBDIR} +- Debug:MOC_DIR = $${DEBDIR} +- Debug:RCC_DIR = $${DEBDIR} +- Debug:UI_DIR = $${DEBDIR} +- +- QMAKE_MAC_SDK = macosx10.11 # uncomment/adapt for your version of OSX +- CONFIG += x86_64 # x86 ppc +- QMAKE_INFO_PLIST = FritzingInfo.plist +- #DEFINES += QT_NO_DEBUG # uncomment this for xcode +- LIBS += -lz +- LIBS += /usr/lib/libz.dylib +- LIBS += /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +- LIBS += /System/Library/Frameworks/Carbon.framework/Carbon +- LIBS += /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit ++ DEFINES += WIN64 ++ } else { ++ RELDIR = ../release32 ++ DEBDIR = ../debug32 ++ } ++ ++ Release:DESTDIR = $${RELDIR} ++ Release:OBJECTS_DIR = $${RELDIR} ++ Release:MOC_DIR = $${RELDIR} ++ Release:RCC_DIR = $${RELDIR} ++ Release:UI_DIR = $${RELDIR} ++ ++ Debug:DESTDIR = $${DEBDIR} ++ Debug:OBJECTS_DIR = $${DEBDIR} ++ Debug:MOC_DIR = $${DEBDIR} ++ Debug:RCC_DIR = $${DEBDIR} ++ Debug:UI_DIR = $${DEBDIR} ++} ++macx { ++ RELDIR = ../release64 ++ DEBDIR = ../debug64 ++ Release:DESTDIR = $${RELDIR} ++ Release:OBJECTS_DIR = $${RELDIR} ++ Release:MOC_DIR = $${RELDIR} ++ Release:RCC_DIR = $${RELDIR} ++ Release:UI_DIR = $${RELDIR} ++ ++ Debug:DESTDIR = $${DEBDIR} ++ Debug:OBJECTS_DIR = $${DEBDIR} ++ Debug:MOC_DIR = $${DEBDIR} ++ Debug:RCC_DIR = $${DEBDIR} ++ Debug:UI_DIR = $${DEBDIR} ++ ++ QMAKE_MAC_SDK = macosx10.11 # uncomment/adapt for your version of OSX ++ CONFIG += x86_64 # x86 ppc ++ QMAKE_INFO_PLIST = FritzingInfo.plist ++ #DEFINES += QT_NO_DEBUG # uncomment this for xcode ++ LIBS += -lz ++ LIBS += /usr/lib/libz.dylib ++ LIBS += /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation ++ LIBS += /System/Library/Frameworks/Carbon.framework/Carbon ++ LIBS += /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit + } + unix { + !macx { # unix is defined on mac + HARDWARE_PLATFORM = $$system(uname -m) +- contains( HARDWARE_PLATFORM, x86_64 ) { ++ contains(HARDWARE_PLATFORM, x86_64) { + DEFINES += LINUX_64 + } else { + DEFINES += LINUX_32 + } +- LIBS += -lz ++ !contains(DEFINES, QUAZIP_INSTALLED) { ++ LIBS += -lz ++ } + } + +- isEmpty(PREFIX) { +- PREFIX = /usr +- } +- BINDIR = $$PREFIX/bin +- DATADIR = $$PREFIX/share +- PKGDATADIR = $$DATADIR/fritzing ++ isEmpty(PREFIX) { ++ PREFIX = /usr ++ } ++ BINDIR = $$PREFIX/bin ++ DATADIR = $$PREFIX/share ++ PKGDATADIR = $$DATADIR/fritzing ++ ++ DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\" + +- DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\" ++ target.path = $$BINDIR + +- target.path =$$BINDIR ++ desktop.path = $$DATADIR/applications ++ desktop.files += fritzing.desktop + +- desktop.path = $$DATADIR/applications +- desktop.files += fritzing.desktop ++ mimedb.path = $$DATADIR/mime/packages ++ mimedb.files += resources/system_icons/linux/fritzing.xml + +- manpage.path = $$DATADIR/man/man1 +- manpage.files += Fritzing.1 ++ manpage.path = $$DATADIR/man/man1 ++ manpage.files += Fritzing.1 + +- icon.path = $$DATADIR/icons +- icon.extra = install -D -m 0644 $$PWD/resources/images/fritzing_icon.png $(INSTALL_ROOT)$$DATADIR/icons/fritzing.png ++ icon.path = $$DATADIR/icons ++ icon.extra = install -D -m 0644 $$PWD/resources/images/fritzing_icon.png $(INSTALL_ROOT)$$DATADIR/icons/fritzing.png + +- parts.path = $$PKGDATADIR +- parts.files += parts ++ parts.path = $$PKGDATADIR ++ parts.files += parts + +- help.path = $$PKGDATADIR +- help.files += help ++ help.path = $$PKGDATADIR ++ help.files += help + +- sketches.path = $$PKGDATADIR +- sketches.files += sketches ++ sketches.path = $$PKGDATADIR ++ sketches.files += sketches + +- bins.path = $$PKGDATADIR +- bins.files += bins ++ bins.path = $$PKGDATADIR ++ bins.files += bins + +- translations.path = $$PKGDATADIR/translations +- translations.extra = find $$PWD/translations -name "*.qm" -size +128c -exec cp -pr {} $(INSTALL_ROOT)$$PKGDATADIR/translations \\; ++ translations.path = $$PKGDATADIR/translations ++ translations.extra = find $$PWD/translations -name "*.qm" -size +128c -exec cp -pr {} $(INSTALL_ROOT)$$PKGDATADIR/translations \\; + +- syntax.path = $$PKGDATADIR/translations/syntax +- syntax.files += translations/syntax/*.xml ++ syntax.path = $$PKGDATADIR/translations/syntax ++ syntax.files += translations/syntax/*.xml + +- INSTALLS += target desktop manpage icon parts sketches bins translations syntax help ++ INSTALLS += target desktop mimedb manpage icon parts sketches bins translations syntax help + } + + ICON = resources/system_icons/macosx/fritzing_icon.icns +@@ -160,61 +169,13 @@ greaterThan(QT_MAJOR_VERSION, 4) { + RC_FILE = fritzing.rc + RESOURCES += phoenixresources.qrc + +- + # Fritzing is using libgit2 since version 0.9.3 +- +-LIBGIT2INCLUDE = ../libgit2/include +-exists($$LIBGIT2INCLUDE/git2.h) { +- message("found libgit2 include path at $$LIBGIT2INCLUDE") +-} +-else { +- message("Fritzing requires libgit2") +- message("Build it from the repo at https://github.com/libgit2") +- message("See https://github.com/fritzing/fritzing-app/wiki for details.") +- +- error("libgit2 include path not found in $$LIBGIT2INCLUDE") +-} +- +-INCLUDEPATH += $$LIBGIT2INCLUDE +- +-win32 { +- contains(QMAKE_TARGET.arch, x86_64) { +- LIBGIT2LIB = ../libgit2/build64 +- } +- else { +- LIBGIT2LIB = ../libgit2/build32 +- } +- +- exists($$LIBGIT2LIB/git2.lib) { +- message("found libgit2 library in $$LIBGIT2LIB") +- } +- else { +- error("libgit2 library not found in $$LIBGIT2LIB") +- } +-} +- +-unix { +- LIBGIT2LIB = ../libgit2/build +- macx { +- exists($$LIBGIT2LIB/libgit2.dylib) { +- message("found libgit2 library in $$LIBGIT2LIB") +- } +- else { +- error("libgit2 library not found in $$LIBGIT2LIB") +- } +- } +- !macx { +- exists($$LIBGIT2LIB/libgit2.so) { +- message("found libgit2 library in $$LIBGIT2LIB") +- } +- else { +- error("libgit2 library not found in $$LIBGIT2LIB") +- } +- } ++packagesExist(libgit2) { ++ PKGCONFIG += libgit2 ++} else { ++ include(pri/libgit2detect.pri) + } + +-LIBS += -L$$LIBGIT2LIB -lgit2 +- + include(pri/kitchensink.pri) + include(pri/mainwindow.pri) + include(pri/partsbinpalette.pri) +@@ -237,16 +198,14 @@ include(pri/translations.pri) + include(pri/program.pri) + include(pri/qtsysteminfo.pri) + +-!contains(DEFINES, QUAZIP_INSTALLED) { +- include(pri/quazip.pri) +-} + contains(DEFINES, QUAZIP_INSTALLED) { +- INCLUDEPATH += /usr/include/quazip /usr/include/minizip +- LIBS += -lquazip -lminizip ++ INCLUDEPATH += /usr/include/quazip ++ LIBS += -lquazip ++} else { ++ include(pri/quazip.pri) + } + + TARGET = Fritzing + TEMPLATE = app + +- + message("libs $$LIBS") +diff --git a/pri/libgit2detect.pri b/pri/libgit2detect.pri +new file mode 100644 +index 0000000..1b64b5a +--- /dev/null ++++ b/pri/libgit2detect.pri +@@ -0,0 +1,60 @@ ++# /******************************************************************* ++# Part of the Fritzing project - http://fritzing.org ++# Copyright (c) 2016 Fritzing ++# Fritzing 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. ++# Fritzing 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 Fritzing. If not, see . ++# ******************************************************************** ++ ++LIBGIT2INCLUDE = ../libgit2/include ++exists($$LIBGIT2INCLUDE/git2.h) { ++ message("found libgit2 include path at $$LIBGIT2INCLUDE") ++} else { ++ message("Fritzing requires libgit2") ++ message("Build it from the repo at https://github.com/libgit2") ++ message("See https://github.com/fritzing/fritzing-app/wiki for details.") ++ ++ error("libgit2 include path not found in $$LIBGIT2INCLUDE") ++} ++ ++INCLUDEPATH += $$LIBGIT2INCLUDE ++ ++win32 { ++ contains(QMAKE_TARGET.arch, x86_64) { ++ LIBGIT2LIB = ../libgit2/build64 ++ } else { ++ LIBGIT2LIB = ../libgit2/build32 ++ } ++ ++ exists($$LIBGIT2LIB/git2.lib) { ++ message("found libgit2 library in $$LIBGIT2LIB") ++ } else { ++ error("libgit2 library not found in $$LIBGIT2LIB") ++ } ++} ++ ++unix { ++ LIBGIT2LIB = ../libgit2/build ++ macx { ++ exists($$LIBGIT2LIB/libgit2.dylib) { ++ message("found libgit2 library in $$LIBGIT2LIB") ++ } else { ++ error("libgit2 library not found in $$LIBGIT2LIB") ++ } ++ } else { ++ exists($$LIBGIT2LIB/libgit2.so) { ++ message("found libgit2 library in $$LIBGIT2LIB") ++ } else { ++ error("libgit2 library not found in $$LIBGIT2LIB") ++ } ++ } ++} ++ ++LIBS += -L$$LIBGIT2LIB -lgit2 +diff --git a/pri/utils.pri b/pri/utils.pri +index ae14ea8..210570f 100644 +--- a/pri/utils.pri ++++ b/pri/utils.pri +@@ -1,6 +1,6 @@ + # /******************************************************************* + # Part of the Fritzing project - http://fritzing.org +-# Copyright (c) 2007-08 Fritzing ++# Copyright (c) 2007-16 Fritzing + # Fritzing 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 +@@ -21,39 +21,24 @@ + BOOSTS = 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + LATESTBOOST = 0 + for(boost, BOOSTS) { +- exists(../src/lib/boost_1_$${boost}_0) { +- LATESTBOOST = $$boost +- } +-} +- +-contains(LATESTBOOST, 0) { +- unix { +- !macx { +- BOOSTINFO = $$system(dpkg -s libboost-dev | grep 'Version') +- BADVERSION = $$find(BOOSTINFO, 1\.54) +- !isEmpty(BADVERSION) { +- message("Boost 1.54 has a bug in a function that Fritzing uses, so download or install some other version") +- error("Easiest to copy the boost library to .../src/lib/, so that you have .../src/lib/boost_1_xx_0") +- } +- isEmpty(BADVERSION) { +- BOOSTVERSION = $$find(BOOSTINFO, 1\...\.0) +- !isEmpty(BOOSTVERSION) { +- LATESTBOOST = installed +- message("using installed BOOST library") +- } +- } +- } ++ exists(../src/lib/boost_1_$${boost}_0) { ++ LATESTBOOST = $$boost + } + } + + contains(LATESTBOOST, 0) { +- message("Please download the boost library--you can find it at http://www.boost.org/") +- message("Note that boost 1.54 has a bug in a function that Fritzing uses, so download some other version") +- error("Copy the boost library to .../src/lib/, so that you have .../src/lib/boost_1_xx_0") ++ qtCompileTest(boost) ++ config_boost { ++ LATESTBOOST = installed ++ message("using installed Boost library") ++ } else { ++ message("Boost 1.54 has a bug in a function that Fritzing uses, so download or install some other version") ++ error("Easiest to copy the Boost library to .../src/lib/, so that you have .../src/lib/boost_1_xx_0") ++ } + } + + !contains(LATESTBOOST, installed) { +- message("using boost from src/lib/boost_1_$${LATESTBOOST}_0") ++ message("using Boost from src/lib/boost_1_$${LATESTBOOST}_0") + INCLUDEPATH += src/lib/boost_1_$${LATESTBOOST}_0 + } + +@@ -110,6 +95,3 @@ src/utils/schematicrectconstants.cpp \ + src/utils/s2s.cpp \ + src/utils/textutils.cpp \ + src/utils/zoomslider.cpp +- +- +- +diff --git a/resources/system_icons/linux/fritzing.xml b/resources/system_icons/linux/fritzing.xml +new file mode 100644 +index 0000000..21c2d8f +--- /dev/null ++++ b/resources/system_icons/linux/fritzing.xml +@@ -0,0 +1,31 @@ ++ ++ ++ ++Fritzing Parts Bin ++ ++ ++ ++Fritzing Parts Bin Bundle ++ ++ ++ ++Fritzing Module ++ ++ ++ ++Fritzing Part Definition ++ ++ ++ ++Fritzing Part Bundle ++ ++ ++ ++Fritzing Sketch ++ ++ ++ ++Fritzing Sketch Bundle ++ ++ ++ +diff --git a/resources/system_icons/linux/x-fritzing-fz.xml b/resources/system_icons/linux/x-fritzing-fz.xml +deleted file mode 100644 +index 95c664b..0000000 +--- a/resources/system_icons/linux/x-fritzing-fz.xml ++++ /dev/null +@@ -1,8 +0,0 @@ +- +- +- +-Fritzing Sketch +- +- +- +- +diff --git a/resources/system_icons/linux/x-fritzing-fzb.xml b/resources/system_icons/linux/x-fritzing-fzb.xml +deleted file mode 100644 +index 855f1fa..0000000 +--- a/resources/system_icons/linux/x-fritzing-fzb.xml ++++ /dev/null +@@ -1,8 +0,0 @@ +- +- +- +-Fritzing Parts Bin +- +- +- +- +diff --git a/resources/system_icons/linux/x-fritzing-fzbz.xml b/resources/system_icons/linux/x-fritzing-fzbz.xml +deleted file mode 100644 +index 6259c91..0000000 +--- a/resources/system_icons/linux/x-fritzing-fzbz.xml ++++ /dev/null +@@ -1,8 +0,0 @@ +- +- +- +-Fritzing Parts Bin Bundle +- +- +- +- +diff --git a/resources/system_icons/linux/x-fritzing-fzm.xml b/resources/system_icons/linux/x-fritzing-fzm.xml +deleted file mode 100644 +index d7bd74c..0000000 +--- a/resources/system_icons/linux/x-fritzing-fzm.xml ++++ /dev/null +@@ -1,8 +0,0 @@ +- +- +- +-Fritzing Module +- +- +- +- +diff --git a/resources/system_icons/linux/x-fritzing-fzp.xml b/resources/system_icons/linux/x-fritzing-fzp.xml +deleted file mode 100644 +index d7eeb8d..0000000 +--- a/resources/system_icons/linux/x-fritzing-fzp.xml ++++ /dev/null +@@ -1,8 +0,0 @@ +- +- +- +-Fritzing Part Definition +- +- +- +- +diff --git a/resources/system_icons/linux/x-fritzing-fzpz.xml b/resources/system_icons/linux/x-fritzing-fzpz.xml +deleted file mode 100644 +index d6e7ea6..0000000 +--- a/resources/system_icons/linux/x-fritzing-fzpz.xml ++++ /dev/null +@@ -1,8 +0,0 @@ +- +- +- +-Fritzing Part Bundle +- +- +- +- +diff --git a/resources/system_icons/linux/x-fritzing-fzz.xml b/resources/system_icons/linux/x-fritzing-fzz.xml +deleted file mode 100644 +index 865b0f1..0000000 +--- a/resources/system_icons/linux/x-fritzing-fzz.xml ++++ /dev/null +@@ -1,8 +0,0 @@ +- +- +- +-Fritzing Sketch Bundle +- +- +- +- diff --git a/fritzing-folderutils-fix.patch b/fritzing-folderutils-fix.patch new file mode 100644 index 0000000..25535aa --- /dev/null +++ b/fritzing-folderutils-fix.patch @@ -0,0 +1,36 @@ +From a31df40b54435500a9806f8f1aa90a98131cb788 Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann +Date: Sat, 4 Feb 2017 10:05:05 +0100 +Subject: [PATCH] folderutils.cpp: Fix getAppPartsSubFolder2 returns current + working directory if fritzing-parts folder is not found + +getApplicationSubFolder returns QDir() if the directory can not be found, +but QDir() returns the current working directory, which nearly always exists and probably is the wrong path. +As getAppPartsSubFolder2 only checks for existence of that directory we end up with the wrong directory if parts folder is used instead for fritzing-parts. +Therefore check if when we ask for fritzing-parts folder we really get a folder with that name. +--- + src/utils/folderutils.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/utils/folderutils.cpp b/src/utils/folderutils.cpp +index 96f10c7..3dfd966 100644 +--- a/src/utils/folderutils.cpp ++++ b/src/utils/folderutils.cpp +@@ -121,12 +121,12 @@ QDir FolderUtils::getAppPartsSubFolder(QString search) { + QDir FolderUtils::getAppPartsSubFolder2(QString search) { + if (m_partsPath.isEmpty()) { + QDir dir = getApplicationSubFolder("fritzing-parts"); +- if (dir.exists()) { ++ if (dir.exists() && dir.dirName().endsWith("fritzing-parts")) { + m_partsPath = dir.absolutePath(); + } + else { + QDir dir = getApplicationSubFolder("parts"); +- if (dir.exists()) { ++ if (dir.exists() && dir.dirName().endsWith("parts")) { + m_partsPath = dir.absolutePath(); + } + } +-- +2.10.2 + diff --git a/fritzing-libgit-0.24.patch b/fritzing-libgit-0.24.patch new file mode 100644 index 0000000..55335ac --- /dev/null +++ b/fritzing-libgit-0.24.patch @@ -0,0 +1,29 @@ +From 4cb5185d464bf98e9da5ceca72d5af907ff824ef Mon Sep 17 00:00:00 2001 +From: Chris Mayo +Date: Sun, 12 Jun 2016 16:31:35 +0100 +Subject: [PATCH] make compatible with libgit2 >= 0.24.0 + +Based on: +https://github.com/fritzing/fritzing-app/pull/3203/commits/1ffea750c05fda78c88b60b84545f6a3e1371159 +--- + src/version/partschecker.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/version/partschecker.cpp b/src/version/partschecker.cpp +index a3e3967..3d54c6b 100644 +--- a/src/version/partschecker.cpp ++++ b/src/version/partschecker.cpp +@@ -121,7 +121,13 @@ bool PartsChecker::newPartsAvailable(const QString &repoPath, const QString & sh + /** + * Connect to the remote. + */ ++#if LIBGIT2_VER_MINOR > 24 ++ error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, NULL); ++#elif LIBGIT2_VER_MINOR == 24 ++ error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL); ++#else + error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks); ++#endif + if (error) { + partsCheckerResult.partsCheckerError = PARTS_CHECKER_ERROR_REMOTE; + partsCheckerResult.errorMessage = QObject::tr("Unable to access network site for '%1'. %2").arg(repoPath).arg(sBoilerPlate1); diff --git a/fritzing.changes b/fritzing.changes index 99cef6d..401e80c 100644 --- a/fritzing.changes +++ b/fritzing.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Wed Feb 1 13:56:20 UTC 2017 - bugs@vdm-design.de + +- Update to version 0.9.3b + * Continuously updated parts library (not working with this package) + * Critical bug fix for messed up PCB traces + * High-DPI display support + * Load/Save uncompressed fritzing files (.fz) + * File icons + ------------------------------------------------------------------- Wed Feb 1 10:49:02 UTC 2017 - adam.majer@suse.de diff --git a/fritzing.spec b/fritzing.spec index 6aa3f68..68615f9 100644 --- a/fritzing.spec +++ b/fritzing.spec @@ -17,7 +17,7 @@ Name: fritzing -Version: 0.9.2b +Version: 0.9.3b Release: 0 Summary: Intuitive EDA platform featuring from prototype to product License: GPL-3.0+ @@ -26,14 +26,21 @@ Url: http://fritzing.org/ Source0: https://github.com/fritzing/fritzing-app/archive/%{version}.tar.gz #PATCH-FIX-UPSTREAM fritzing-restore-qt5.1-compatibility.patch -- this patch restores compatibility with Qt5.1 Patch0: fritzing-restore-qt5.1-compatibility.patch +#PATCH-FIX-UPSTREAM fritzing-libgit-0.24.patch -- make fritzing compatible with libgit2 > 0.23 +Patch1: fritzing-libgit-0.24.patch +#PATCH-FIX-UPSTREAM fritzing-cleanup-build-files.patch -- use system boost, libgit and clean up build files +Patch2: fritzing-cleanup-build-files.patch +#PATCH-FIX-UPSTREAM fritzing-folderutils-fix.patch -- fix folderutils to properly return parts folder +Patch3: fritzing-folderutils-fix.patch %if 0%{?suse_version} > 1325 BuildRequires: libboost_headers-devel %else -BuildRequires: boost-devel +BuildRequires: boost_1_58_0-devel %endif -BuildRequires: desktop-file-utils BuildRequires: fdupes +BuildRequires: libgit2-devel >= 0.23 BuildRequires: libqt5-qtbase-devel +BuildRequires: update-desktop-files BuildRequires: zlib-devel %if 0%{?suse_version} < 1320 BuildRequires: libQt5SerialPort-devel @@ -45,6 +52,10 @@ BuildRequires: libqt5-qtsvg-devel Requires: libQt5Sql5-sqlite %endif Requires: fritzing-parts = %{version} +Requires(post): shared-mime-info +Requires(postun): shared-mime-info +Requires(post): desktop-file-utils +Requires(postun): desktop-file-utils BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -58,18 +69,26 @@ prototypes, and to create a PCB layout for manufacturing. %prep %setup -q -n %{name}-app-%{version} %patch0 -p2 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 sed -i 's/\r$//' LICENSE.CC-BY-SA chmod -x LICENSE* readme.md Fritzing.1 %build -qmake-qt5 +# QMAKE_CFLAGS_ISYSTEM= added to work around gcc6 build problems +qmake-qt5 QMAKE_CFLAGS_ISYSTEM= make %{?_smp_mflags} %install make INSTALL_ROOT=%{buildroot} install install -d %{buildroot}%{_datadir}/pixmaps/ mv %{buildroot}%{_datadir}/icons/fritzing.png %{buildroot}%{_datadir}/pixmaps/ -desktop-file-install --dir=%{buildroot}%{_datadir}/applications fritzing.desktop +sed -i '/X-SuSE-translate=false/d' fritzing.desktop +sed -i '/Version=/d' fritzing.desktop +sed -i '/Categories=/d' fritzing.desktop +sed -i 's/icons\/fritzing_icon.png/fritzing/g' fritzing.desktop +%suse_update_desktop_file --install --reset %name Development IDE find %{buildroot}%{_datadir}/%{name}/ -type f -exec chmod -x {} \; rm -rf %{buildroot}%{_datadir}/%{name}/parts %fdupes %{buildroot}%{_datadir}/%{name}/sketches @@ -85,5 +104,14 @@ rm -rf %{buildroot} %{_datadir}/pixmaps/%{name}.png %{_datadir}/applications/fritzing.desktop %{_mandir}/man1/Fritzing.* +%{_datadir}/mime/packages/*.xml + +%post +%desktop_database_post +%mime_database_post + +%postun +%desktop_database_postun +%mime_database_postun %changelog From 4f6bd4e0b6cc75a4bac24b67007d269566811e4e29b332ce35ac1fcf8ddbd8c8 Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Sat, 4 Feb 2017 12:24:57 +0000 Subject: [PATCH 2/3] OBS-URL: https://build.opensuse.org/package/show/Education/fritzing?expand=0&rev=50 --- fritzing.changes | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fritzing.changes b/fritzing.changes index 401e80c..344b6f8 100644 --- a/fritzing.changes +++ b/fritzing.changes @@ -7,6 +7,12 @@ Wed Feb 1 13:56:20 UTC 2017 - bugs@vdm-design.de * High-DPI display support * Load/Save uncompressed fritzing files (.fz) * File icons +- Add patch fritzing-libgit-0.24.patch + This patch from upstream ensures compatibility to libgit > 0.23 +- Add patch fritzing-folderutils-fix.patch + This patch fixes the logic to find the parts directory and is sent upstream +- Add patch fritzing-cleanup-build-files.patch + This patch from upstream cleans up the qmake project file and removes strange constructions to check for dependencies ------------------------------------------------------------------- Wed Feb 1 10:49:02 UTC 2017 - adam.majer@suse.de From 1c38f27970a929c87f85ce5a3748dd807b78739c753bce274893b023ca537d1d Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Mon, 6 Feb 2017 18:05:41 +0000 Subject: [PATCH 3/3] Accepting request 455066 from home:jengelh:branches:Education - Udpate description OBS-URL: https://build.opensuse.org/request/show/455066 OBS-URL: https://build.opensuse.org/package/show/Education/fritzing?expand=0&rev=51 --- fritzing.changes | 5 +++++ fritzing.spec | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/fritzing.changes b/fritzing.changes index 344b6f8..3552c5a 100644 --- a/fritzing.changes +++ b/fritzing.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Feb 6 15:27:14 UTC 2017 - jengelh@inai.de + +- Udpate description + ------------------------------------------------------------------- Wed Feb 1 13:56:20 UTC 2017 - bugs@vdm-design.de diff --git a/fritzing.spec b/fritzing.spec index 68615f9..64e63ef 100644 --- a/fritzing.spec +++ b/fritzing.spec @@ -19,7 +19,7 @@ Name: fritzing Version: 0.9.3b Release: 0 -Summary: Intuitive EDA platform featuring from prototype to product +Summary: Electronic Design Automation platform featuring prototype to product License: GPL-3.0+ Group: Productivity/Scientific/Electronics Url: http://fritzing.org/ @@ -60,10 +60,10 @@ Requires(postun): desktop-file-utils BuildRoot: %{_tmppath}/%{name}-%{version}-build %description -Fritzing is an open-source initiative to support designers, artists, +Fritzing is an initiative to support designers, artists, researchers and hobbyists to take the step from physical prototyping -to actual product. It is in the spirit of Processing and Arduino which -allows users to document their Arduino and other electronic-based +to an actual product. It is in the spirit of Processing and Arduino which +allow users to document their Arduino and other electronic-based prototypes, and to create a PCB layout for manufacturing. %prep