diff --git a/kicad.changes b/kicad.changes index 1b203c0..a36d9f5 100644 --- a/kicad.changes +++ b/kicad.changes @@ -1,3 +1,13 @@ +Sat Sep 29 00:56:45 UTC 2018 - Stefan BrĂ¼ns + +- Enable spice simulator support +- Install python bindings in python_sitearch +- Deduplicate pcbnew python binary module +- Adapt libboost_* BuildRequires for current distribution versions +- Remove obsolete CMAKE options +- Set various pathes using using CMAKE options instead of patching + files. + ------------------------------------------------------------------- Tue Sep 18 09:10:20 UTC 2018 - davejplater@gmail.com diff --git a/kicad.spec b/kicad.spec index 91d6a39..dba5ce0 100644 --- a/kicad.spec +++ b/kicad.spec @@ -24,27 +24,21 @@ License: GPL-2.0-or-later AND GPL-3.0-or-later Group: Productivity/Scientific/Electronics Url: http://kicad-pcb.org Source: https://launchpad.net/kicad/5.0/%{version}/+download/kicad-%{version}.tar.xz -# License file was removed due to GPL-3.0+ code -# https://github.com/KiCad/kicad-source-mirror/commit/681090b8ef3a362af75e8ca4417e18622747b63b +# License file is not include in the repository or tarball +# According to the webpage and the included copyright.h, license is GPL-3.0-or-later Source2: COPYRIGHT.txt # PATCH-FEATURE-OPENSUSE kicad-user-library.patch -- add user library path Patch1: kicad-user-library.patch # PATCH-FEATURE-OPENSUSE kicad-library-repos-install.patch Patch2: kicad-library-repos-install.patch # PATCH-FIX-OPENSUSE davejplater@gmail.com -kicad-suse-help-path.patch - kicad looks in /usr/share/doc/kicad for help files and doesn't find them. -# this patch adds packges/ befor kicad. +# this patch adds packges/ befor kicad and enables help to function. Patch3: kicad-suse-help-path.patch Patch4: kicad-fix-boost168-build.patch %if 0%{?suse_version} > 1325 -BuildRequires: libboost_context-devel -BuildRequires: libboost_filesystem-devel -BuildRequires: libboost_iostreams-devel -BuildRequires: libboost_locale-devel -BuildRequires: libboost_program_options-devel -BuildRequires: libboost_regex-devel +BuildRequires: libboost_system-devel BuildRequires: libboost_test-devel -BuildRequires: libboost_thread-devel %else BuildRequires: boost-devel >= 1.56 %endif @@ -52,33 +46,36 @@ BuildRequires: cmake BuildRequires: doxygen BuildRequires: fdupes BuildRequires: gcc-c++ -BuildRequires: libcurl-devel +BuildRequires: glm-devel BuildRequires: libngspice-devel BuildRequires: oce-devel BuildRequires: pkg-config -BuildRequires: python-devel BuildRequires: update-desktop-files -BuildRequires: cmake(glm) # Use direct version to avoid problems with wx 3.2 BuildRequires: wxWidgets-3_0-devel >= 3 # Fix bug in old python-wxWidgets-3_0-devel BuildRequires: python-wxWidgets-3_0 >= 3 BuildRequires: python-wxWidgets-3_0-devel >= 3 -BuildRequires: swig +BuildRequires: swig >= 3 BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(glew) +BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(python) BuildRequires: pkgconfig(zlib) # Fix directory owner BuildRequires: hicolor-icon-theme BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: python-wxWidgets-3_0 >= 3 -# The help function doesn't work without the doc package +# The help function gives an error without the doc package Requires: %{name}-doc = %{version} +# You cannot build a schematic without symbols Requires: %{name}-symbols = %{version} +# You cannot create a pcb layout without footprints +Requires: %{name}-footprints = %{version} +# Kicad functions without these packages Recommends: %{name}-library-install = %{version} -Recommends: %{name}-footprints = %{version} Recommends: %{name}-packages3D Obsoletes: kicad = 20140120 @@ -115,42 +112,29 @@ This package contains script for KiCad libraries downloading. cp %{SOURCE2} . -# Fix plugin directory -sed -i 's|KICAD_PLUGINS lib/kicad/plugins|KICAD_PLUGINS %{_lib}/kicad/plugins|' CMakeLists.txt -# Fix documentation directory -sed -i 's|KICAD_DOCS share/doc/kicad|KICAD_DOCS share/doc/packages/kicad|' CMakeLists.txt -# Fix python shebangs -for i in `grep -rl "/usr/bin/env python"`;do sed -i '1s/^#!.*/#!\/usr\/bin\/python2/' ${i} ;done -for i in `grep -rl "/usr/bin/env python2"`;do sed -i '1s/^#!.*/#!\/usr\/bin\/python2/' ${i} ;done - %build -export CFLAGS="%{optflags} -fPIE" -export CXXFLAGS="$CFLAGS" +# -DKICAD_PLUGINS:PATH=%%{_libdir}/kicad/plugins \ +# The above path is for .py scripts and other text files install places these files correctly. +# The KICAD_USER_PLUGIN is for binary plugins. %cmake \ - -DKICAD_REPO_NAME=stable \ - -DKICAD_BUILD_VERSION=%{version} \ - -DKICAD_SKIP_BOOST=ON \ + -DKICAD_VERSION_EXTRA=%{version} \ + -DKICAD_LIB:PATH=%{_libdir} \ + -DKICAD_USER_PLUGIN:PATH=%{_libdir}/kicad/plugins \ + -DKICAD_DOCS:PATH=%{_docdir}/kicad \ + -DKICAD_DATA:PATH=%{_datadir}/kicad \ -DBUILD_GITHUB_PLUGIN=ON \ -DKICAD_SCRIPTING=ON \ -DKICAD_SCRIPTING_MODULES=ON \ -DKICAD_SCRIPTING_WXPYTHON=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -pie" + -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -pie" \ + -DPYTHON_SITE_PACKAGE_PATH=%{python_sitearch} \ + -DKICAD_SPICE=ON make %{?_smp_mflags} %install %cmake_install -find %{buildroot}%{_datadir}/kicad/scripting/plugins -name "*.py" -exec chmod 0644 "{}" "+" -#Change permissions back for executable scripts -chmod -f 0755 `find %{buildroot}%{_datadir}/kicad/scripting/plugins -name "*.py" -perm 0644 -print0|xargs -0r grep -l '#!/usr'` -# Move scripts under doc to kicad directory. -mv %{buildroot}%{_datadir}/doc/%{name}/scripts %{buildroot}%{_datadir}/%{name} -rm -rf %{buildroot}%{_datadir}/doc -chmod -f 0755 `find %{buildroot}%{_datadir}/kicad/scripts -name "*py" -perm 0644 -print0|xargs -0r grep -l '#!/usr'` -chmod -f 0755 `find %{buildroot}%{_datadir}/kicad/scripts -name "*sh" -perm 0644 -print0|xargs -0r grep -l '#!/bin'` -chmod 0644 %{buildroot}%{_datadir}/kicad/scripting/kicad_pyshell/__init__.py - %suse_update_desktop_file -r bitmap2component "Education;Engineering" %suse_update_desktop_file -r eeschema "Education;Engineering" %suse_update_desktop_file -r gerbview "Education;Engineering" @@ -163,8 +147,24 @@ rm -rf %{buildroot}%{_libdir}/libkicad_3dsg.so install -D scripts/library-repos-install.sh %{buildroot}%{_bindir}/kicad-library-install.sh +# Delete packaging/maintenance scripts +for f in get_libngspice_so.sh library-repos-install.sh mk_macos_icons.py mk_mime_icons.py test_kicad_plugin.py test_plugin.py ; do + rm "%{buildroot}%{_docdir}/kicad/scripts/$f" +done +# Move remaining standalone scripts to kicad directory +mv %{buildroot}%{_docdir}/kicad/scripts %{buildroot}%{_datadir}/kicad/ +sed -i '1s@^#!.*python.*@#!/usr/bin/python2@' %{buildroot}%{_datadir}/kicad/scripts/*.py +chmod +x %{buildroot}%{_datadir}/kicad/scripts/*.py + +# Fix executable bits for scripts executed directly from kicad, remove she-bangs +chmod -x %{buildroot}%{_datadir}/kicad/scripting/*/*.py +sed -i '1s@^#!.*@@' %{buildroot}%{_datadir}/kicad/scripting/*/*.py + %fdupes -s %{buildroot}%{_datadir}/kicad %fdupes -s %{buildroot}%{_datadir}/icons/hicolor +# the pcbnew kiface and the python module are actually the same file +cmp --quiet %{buildroot}%{_bindir}/_pcbnew.kiface %{buildroot}%{python_sitearch}/_pcbnew.so && \ + ln -sf %{_bindir}/_pcbnew.kiface %{buildroot}%{python_sitearch}/_pcbnew.so %if 0%{?suse_version} < 1330 %post @@ -186,13 +186,13 @@ install -D scripts/library-repos-install.sh %{buildroot}%{_bindir}/kicad-library %files %defattr(-,root,root) -%doc README.txt Documentation/changelogs +%doc README.txt Documentation/changelogs %license COPYRIGHT.txt %{_bindir}/* %exclude %{_bindir}/kicad-library-install.sh %{_libdir}/kicad/ %{_datadir}/kicad/ -%{python_sitelib}/* +%{python_sitearch}/* %{_datadir}/appdata/kicad.appdata.xml %{_datadir}/applications/*.desktop %{_datadir}/mime/packages/%{name}-*.xml