kicad/kicad.spec
2017-02-17 11:00:51 +03:00

413 lines
16 KiB
RPMSpec

%define Werror_cflags %{nil}
%define docname kicad-doc
%define libname kicad-library
%define i18nname kicad-i18n
Summary: EDA software suite for creation of schematic diagrams and PCBs
Name: kicad
Version: 4.0.4
Release: 2
Epoch: 2
License: GPLv2+
Group: Sciences/Computer science
Url: http://www.kicad-pcb.org
Source0: https://launchpad.net/%{name}/4.0/%{version}/+download/%{name}-%{version}.tar.xz
Source1: https://github.com/KiCad/%{docname}/archive/%{docname}-%{version}.tar.gz
Source2: https://github.com/KiCad/%{libname}/archive/%{libname}-%{version}.tar.gz
Source3: https://github.com/KiCad/%{i18nname}/archive/%{i18nname}-%{version}.tar.gz
# This needs to be aligned with kicad-library-*/template/fp-lib-table.for-pretty
Source4: https://github.com/KiCad/Air_Coils_SML_NEOSID.pretty/archive/Air_Coils_SML_NEOSID.pretty-%{version}.tar.gz
Source5: https://github.com/KiCad/Buttons_Switches_SMD.pretty/archive/Buttons_Switches_SMD.pretty-%{version}.tar.gz
Source6: https://github.com/KiCad/Buttons_Switches_ThroughHole.pretty/archive/Buttons_Switches_ThroughHole.pretty-%{version}.tar.gz
Source7: https://github.com/KiCad/Buzzers_Beepers.pretty/archive/Buzzers_Beepers.pretty-%{version}.tar.gz
Source8: https://github.com/KiCad/Capacitors_SMD.pretty/archive/Capacitors_SMD.pretty-%{version}.tar.gz
Source9: https://github.com/KiCad/Capacitors_Tantalum_SMD.pretty/archive/Capacitors_Tantalum_SMD.pretty-%{version}.tar.gz
Source10: https://github.com/KiCad/Capacitors_ThroughHole.pretty/archive/Capacitors_ThroughHole.pretty-%{version}.tar.gz
Source11: https://github.com/KiCad/Choke_Axial_ThroughHole.pretty/archive/Choke_Axial_ThroughHole.pretty-%{version}.tar.gz
Source12: https://github.com/KiCad/Choke_Common-Mode_Wurth.pretty/archive/Choke_Common-Mode_Wurth.pretty-%{version}.tar.gz
Source13: https://github.com/KiCad/Choke_Radial_ThroughHole.pretty/archive/Choke_Radial_ThroughHole.pretty-%{version}.tar.gz
Source14: https://github.com/KiCad/Choke_SMD.pretty/archive/Choke_SMD.pretty-%{version}.tar.gz
Source15: https://github.com/KiCad/Choke_Toroid_ThroughHole.pretty/archive/Choke_Toroid_ThroughHole.pretty-%{version}.tar.gz
Source16: https://github.com/KiCad/Connectors_Molex.pretty/archive/Connectors_Molex.pretty-%{version}.tar.gz
Source17: https://github.com/KiCad/Connect.pretty/archive/Connect.pretty-%{version}.tar.gz
Source18: https://github.com/KiCad/Converters_DCDC_ACDC.pretty/archive/Converters_DCDC_ACDC.pretty-%{version}.tar.gz
Source19: https://github.com/KiCad/Crystals.pretty/archive/Crystals.pretty-%{version}.tar.gz
Source20: https://github.com/KiCad/Diodes_SMD.pretty/archive/Diodes_SMD.pretty-%{version}.tar.gz
Source21: https://github.com/KiCad/Diodes_ThroughHole.pretty/archive/Diodes_ThroughHole.pretty-%{version}.tar.gz
Source22: https://github.com/KiCad/Discret.pretty/archive/Discret.pretty-%{version}.tar.gz
Source23: https://github.com/KiCad/Display.pretty/archive/Display.pretty-%{version}.tar.gz
Source24: https://github.com/KiCad/Displays_7-Segment.pretty/archive/Displays_7-Segment.pretty-%{version}.tar.gz
Source25: https://github.com/KiCad/Divers.pretty/archive/Divers.pretty-%{version}.tar.gz
Source26: https://github.com/KiCad/EuroBoard_Outline.pretty/archive/EuroBoard_Outline.pretty-%{version}.tar.gz
Source27: https://github.com/KiCad/Fiducials.pretty/archive/Fiducials.pretty-%{version}.tar.gz
Source28: https://github.com/KiCad/Filters_HF_Coils_NEOSID.pretty/archive/Filters_HF_Coils_NEOSID.pretty-%{version}.tar.gz
Source29: https://github.com/KiCad/Fuse_Holders_and_Fuses.pretty/archive/Fuse_Holders_and_Fuses.pretty-%{version}.tar.gz
Source30: https://github.com/KiCad/Hall-Effect_Transducers_LEM.pretty/archive/Hall-Effect_Transducers_LEM.pretty-%{version}.tar.gz
Source31: https://github.com/KiCad/Heatsinks.pretty/archive/Heatsinks.pretty-%{version}.tar.gz
Source32: https://github.com/KiCad/Housings_DFN_QFN.pretty/archive/Housings_DFN_QFN.pretty-%{version}.tar.gz
Source33: https://github.com/KiCad/Housings_DIP.pretty/archive/Housings_DIP.pretty-%{version}.tar.gz
Source34: https://github.com/KiCad/Housings_QFP.pretty/archive/Housings_QFP.pretty-%{version}.tar.gz
Source35: https://github.com/KiCad/Housings_SIP.pretty/archive/Housings_SIP.pretty-%{version}.tar.gz
Source36: https://github.com/KiCad/Housings_SOIC.pretty/archive/Housings_SOIC.pretty-%{version}.tar.gz
Source37: https://github.com/KiCad/Housings_SSOP.pretty/archive/Housings_SSOP.pretty-%{version}.tar.gz
Source38: https://github.com/KiCad/Inductors_NEOSID.pretty/archive/Inductors_NEOSID.pretty-%{version}.tar.gz
Source39: https://github.com/KiCad/Inductors.pretty/archive/Inductors.pretty-%{version}.tar.gz
Source40: https://github.com/KiCad/IR-DirectFETs.pretty/archive/IR-DirectFETs.pretty-%{version}.tar.gz
Source41: https://github.com/KiCad/Labels.pretty/archive/Labels.pretty-%{version}.tar.gz
Source42: https://github.com/KiCad/LEDs.pretty/archive/LEDs.pretty-%{version}.tar.gz
Source43: https://github.com/KiCad/Measurement_Points.pretty/archive/Measurement_Points.pretty-%{version}.tar.gz
Source44: https://github.com/KiCad/Measurement_Scales.pretty/archive/Measurement_Scales.pretty-%{version}.tar.gz
Source45: https://github.com/KiCad/Mechanical_Sockets.pretty/archive/Mechanical_Sockets.pretty-%{version}.tar.gz
Source46: https://github.com/KiCad/Microwave.pretty/archive/Microwave.pretty-%{version}.tar.gz
Source47: https://github.com/KiCad/Mounting_Holes.pretty/archive/Mounting_Holes.pretty-%{version}.tar.gz
Source48: https://github.com/KiCad/NF-Transformers_ETAL.pretty/archive/NF-Transformers_ETAL.pretty-%{version}.tar.gz
Source49: https://github.com/KiCad/Oddities.pretty/archive/Oddities.pretty-%{version}.tar.gz
Source50: https://github.com/KiCad/Opto-Devices.pretty/archive/Opto-Devices.pretty-%{version}.tar.gz
Source51: https://github.com/KiCad/Oscillators.pretty/archive/Oscillators.pretty-%{version}.tar.gz
Source52: https://github.com/KiCad/PFF_PSF_PSS_Leadforms.pretty/archive/PFF_PSF_PSS_Leadforms.pretty-%{version}.tar.gz
Source53: https://github.com/KiCad/Pin_Headers.pretty/archive/Pin_Headers.pretty-%{version}.tar.gz
Source54: https://github.com/KiCad/Potentiometers.pretty/archive/Potentiometers.pretty-%{version}.tar.gz
Source55: https://github.com/KiCad/Power_Integrations.pretty/archive/Power_Integrations.pretty-%{version}.tar.gz
Source56: https://github.com/KiCad/Relays_ThroughHole.pretty/archive/Relays_ThroughHole.pretty-%{version}.tar.gz
Source57: https://github.com/KiCad/Resistors_SMD.pretty/archive/Resistors_SMD.pretty-%{version}.tar.gz
Source58: https://github.com/KiCad/Resistors_ThroughHole.pretty/archive/Resistors_ThroughHole.pretty-%{version}.tar.gz
Source59: https://github.com/KiCad/Resistors_Universal.pretty/archive/Resistors_Universal.pretty-%{version}.tar.gz
Source60: https://github.com/KiCad/SMD_Packages.pretty/archive/SMD_Packages.pretty-%{version}.tar.gz
Source61: https://github.com/KiCad/Sockets_BNC.pretty/archive/Sockets_BNC.pretty-%{version}.tar.gz
Source62: https://github.com/KiCad/Sockets_Mini-Universal.pretty/archive/Sockets_Mini-Universal.pretty-%{version}.tar.gz
Source63: https://github.com/KiCad/Sockets_MOLEX_KK-System.pretty/archive/Sockets_MOLEX_KK-System.pretty-%{version}.tar.gz
Source64: https://github.com/KiCad/Sockets.pretty/archive/Sockets.pretty-%{version}.tar.gz
Source65: https://github.com/KiCad/Socket_Strips.pretty/archive/Socket_Strips.pretty-%{version}.tar.gz
Source66: https://github.com/KiCad/Sockets_WAGO734.pretty/archive/Sockets_WAGO734.pretty-%{version}.tar.gz
Source67: https://github.com/KiCad/Symbols.pretty/archive/Symbols.pretty-%{version}.tar.gz
Source68: https://github.com/KiCad/Terminal_Blocks.pretty/archive/Terminal_Blocks.pretty-%{version}.tar.gz
Source69: https://github.com/KiCad/TO_SOT_Packages_SMD.pretty/archive/TO_SOT_Packages_SMD.pretty-%{version}.tar.gz
Source70: https://github.com/KiCad/TO_SOT_Packages_THT.pretty/archive/TO_SOT_Packages_THT.pretty-%{version}.tar.gz
Source71: https://github.com/KiCad/Transformers_CHK.pretty/archive/Transformers_CHK.pretty-%{version}.tar.gz
Source72: https://github.com/KiCad/Transformers_SMPS_ThroughHole.pretty/archive/Transformers_SMPS_ThroughHole.pretty-%{version}.tar.gz
Source73: https://github.com/KiCad/Transistors_OldSowjetAera.pretty/archive/Transistors_OldSowjetAera.pretty-%{version}.tar.gz
Source74: https://github.com/KiCad/Valves.pretty/archive/Valves.pretty-%{version}.tar.gz
Source75: https://github.com/KiCad/Varistors.pretty/archive/Varistors.pretty-%{version}.tar.gz
Source76: https://github.com/KiCad/Wire_Connections_Bridges.pretty/archive/Wire_Connections_Bridges.pretty-%{version}.tar.gz
Source77: https://github.com/KiCad/Wire_Pads.pretty/archive/Wire_Pads.pretty-%{version}.tar.gz
Patch0: kicad-boost-1_61-boost-context-changes.patch
Patch1: kicad-set-cxx-version.patch
Patch2: kicad-2015.01.02-nostrip.patch
BuildRequires: cmake
BuildRequires: desktop-file-utils
BuildRequires: doxygen
BuildRequires: swig
BuildRequires: boost-devel
BuildRequires: wxgtku3.0-devel
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(python)
# doc
BuildRequires: a2x
BuildRequires: asciidoc
BuildRequires: dblatex
BuildRequires: git
BuildRequires: po4a
BuildRequires: source-highlight
BuildRequires: perl(Unicode::GCString)
Requires: electronics-menu
%rename kicad-library
%rename kicad-locales-ca
%rename kicad-locales-cs
%rename kicad-locales-de
%rename kicad-locales-es
%rename kicad-locales-fi
%rename kicad-locales-fr
%rename kicad-locales-hu
%rename kicad-locales-it
%rename kicad-locales-ja
%rename kicad-locales-ko
%rename kicad-locales-nl
%rename kicad-locales-pl
%rename kicad-locales-pt
%rename kicad-locales-ru
%rename kicad-locales-sl
%rename kicad-locales-sv
%rename kicad-locales-zh-cn
%description
KiCad is an EDA software to design electronic schematic
diagrams and printed circuit board artwork up to 16 layers.
KiCad is a set of four softwares and a project manager:
- KiCad: project manager
- Eeschema: schematic entry
- Pcbnew: board editor
- Cvpcb: footprint selector for components used in the circuit design
- Gerbview: GERBER viewer (photoplotter documents)
%files -f %{name}.lang
%{_bindir}/*
%{_libdir}/%{name}
%{_datadir}/%{name}/
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/mimetypes/application-x-*.*
%{_datadir}/icons/hicolor/*/apps/*.*
%{_datadir}/mime/packages/%{name}.xml
%{_datadir}/mimelnk/application/x-%{name}-*.desktop
%{_docdir}/%{name}/*.txt
%{python2_sitelib}/_pcbnew.so
%{python2_sitelib}/pcbnew.*
#----------------------------------------------------------------------------
%package doc
Summary: Documentation for KiCad
Group: Documentation
Obsoletes: %{name}-doc-hu < %{EVRD}
Obsoletes: %{name}-doc-pt < %{EVRD}
Obsoletes: %{name}-doc-zh_CN < %{EVRD}
BuildArch: noarch
%description doc
Documentation and tutorials for KiCad in English.
%files doc
%dir %{_docdir}/%{name}/
%{_docdir}/%{name}/help/en
%{_docdir}/%{name}/scripts
#----------------------------------------------------------------------------
%package doc-ca
Summary: Documentation for KiCad in Catalan
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-ca
BuildArch: noarch
%description doc-ca
Documentation and tutorials for KiCad in Catalan.
%files doc-ca
%{_docdir}/%{name}/help/ca
#----------------------------------------------------------------------------
%package doc-de
Summary: Documentation for KiCad in German
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-de
BuildArch: noarch
%description doc-de
Documentation and tutorials for KiCad in German.
%files doc-de
%{_docdir}/%{name}/help/de
#----------------------------------------------------------------------------
%package doc-es
Summary: Documentation for KiCad in Spanish
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-es
BuildArch: noarch
%description doc-es
Documentation and tutorials for KiCad in Spanish.
%files doc-es
%{_docdir}/%{name}/help/es
#----------------------------------------------------------------------------
%package doc-fr
Summary: Documentation for KiCad in French
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-fr
BuildArch: noarch
%description doc-fr
Documentation and tutorials for KiCad in French.
%files doc-fr
%{_docdir}/%{name}/help/fr
#----------------------------------------------------------------------------
%package doc-it
Summary: Documentation for KiCad in Italian
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-it
BuildArch: noarch
%description doc-it
Documentation and tutorials for KiCad in Italian.
%files doc-it
%{_docdir}/%{name}/help/it
#----------------------------------------------------------------------------
%package doc-ja
Summary: Documentation for KiCad in Japanese
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-ja
BuildArch: noarch
%description doc-ja
Documentation and tutorials for KiCad in Japanese.
%files doc-ja
%{_docdir}/%{name}/help/ja
#----------------------------------------------------------------------------
%package doc-nl
Summary: Documentation for KiCad in Dutch
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-nl
BuildArch: noarch
%description doc-nl
Documentation and tutorials for KiCad in Dutch.
%files doc-nl
%{_docdir}/%{name}/help/nl
#----------------------------------------------------------------------------
%package doc-pl
Summary: Documentation for KiCad in Polish
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-pl
BuildArch: noarch
%description doc-pl
Documentation and tutorials for KiCad in Polish
%files doc-pl
%{_docdir}/%{name}/help/pl
#----------------------------------------------------------------------------
%package doc-ru
Summary: Documentation for KiCad in Russian
Group: Documentation
Requires: %{name}-doc = %{EVRD}
Requires: locales-ru
BuildArch: noarch
%description doc-ru
Documentation and tutorials for KiCad in Russian.
%files doc-ru
%{_docdir}/%{name}/help/ru
#----------------------------------------------------------------------------
%prep
%setup -q -a1 -a2 -a3
%patch0 -p0
%patch1 -p0
%patch2 -p1
#multilibs
%ifarch x86_64
sed -i "s|KICAD_PLUGINS lib/kicad/plugins|KICAD_PLUGINS lib64/kicad/plugins|" CMakeLists.txt
%endif
%build
# Symbols libraries
pushd %{libname}-%{version}
%cmake \
-DKICAD_STABLE_VERSION:BOOL=ON \
-DCMAKE_BUILD_TYPE=Release
%make
popd
# Build kicad-i18n
pushd %{i18nname}-%{version}
%cmake \
-DKICAD_STABLE_VERSION:BOOL=ON \
-DCMAKE_BUILD_TYPE=Release \
-DKICAD_I18N_UNIX_STRICT_PATH=ON
%make
popd
# Build kicad-doc
pushd %{docname}-%{version}
%cmake \
-DKICAD_STABLE_VERSION:BOOL=ON \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_FORMATS=html
%make
popd
# Build kicad
%cmake \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DKICAD_STABLE_VERSION:BOOL=ON \
-DCMAKE_BUILD_TYPE=Release \
-DKICAD_SKIP_BOOST=ON \
-DKICAD_REPO_NAME=stable \
-DKICAD_BUILD_VERSION=%{version} \
-DBUILD_GITHUB_PLUGIN=ON \
-DKICAD_SCRIPTING=ON \
-DKICAD_SCRIPTING_MODULES=ON \
-DKICAD_SCRIPTING_WXPYTHON=OFF
%make VERBOSE=1
%install
%makeinstall_std -C build
for desktopfile in %{buildroot}%{_datadir}/applications/*.desktop ; do
desktop-file-install \
--dir %{buildroot}%{_datadir}/applications \
--remove-category Development \
--delete-original \
${desktopfile}
done
# Localization
pushd %{i18nname}-%{version}
%makeinstall_std -C build
popd
# Symbols libraries
pushd %{libname}-%{version}
%makeinstall_std -C build
popd
# Install template
install -d %{buildroot}%{_datadir}/%{name}/template
install -m 644 template/%{name}.pro %{buildroot}%{_datadir}/%{name}/template
# Footprints
mkdir -p %{buildroot}%{_datadir}/%{name}/modules
for S in %{sources}; do
P=$(basename $S |sed -n 's/\.pretty-.*/.pretty/p')
[ "$P" ] || continue
mkdir -p %{buildroot}%{_datadir}/%{name}/modules/$P
tar xzf $S --strip-components=1 -C %{buildroot}%{_datadir}/%{name}/modules/$P
done
ln -f %{buildroot}%{_datadir}/%{name}/template/fp-lib-table{.for-pretty,}
# Install kicad-doc
pushd %{docname}-%{version}
%makeinstall_std -C build
popd
%find_lang %{name}