File klayout.spec of Package klayout
#
# spec file for package klayout
#
# Copyright (c) 2017 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: klayout
Version: 0.27.2
Release: c4m.1.<CI_INT>.<B_INT>
Summary: KLayout, viewer and editor for mask layouts
License: GPL-2.0+
Group: Productivity/Scientific/Electronics
Url: http://www.klayout.de
Source0: %{name}-%{version}.tar.gz
# BuildRoot: %{_tmppath}/%{name}-%{version}-build
# Disable auto-detection of dependencies (to prevent including the
# so's of klayout itself)
AutoReqProv: no
# CentOS 8 and higher, Fedora requirements
%if (0%{?rhel} >= 8) || 0%{?fedora}
Requires: ruby >= 2.5.5
Requires: python3 >= 3.6.0
Requires: qt5-qtbase >= 5.11.1
Requires: qt5-qtmultimedia >= 5.11.1
Requires: qt5-qtxmlpatterns >= 5.11.1
Requires: qt5-qtsvg >= 5.11.1
Requires: qt5-qttools >= 5.11.1
BuildRequires: ruby-devel
%if 0%{?rhel} == 8
BuildRequires: platform-python-devel
%define buildopt8 -python /usr/libexec/platform-python
%else
BuildRequires: python3-devel
%endif
BuildRequires: clang-libs
BuildRequires: qt5-qtmultimedia-devel
BuildRequires: qt5-qtxmlpatterns-devel
BuildRequires: qt5-qtsvg-devel
BuildRequires: qt5-qttools-devel
%define buildopt %{?buildopt8} -j2
%define pylib %{python_sitearch}
%define __python /usr/bin/python3
%endif
# CentOS7 requirements
%if 0%{?rhel} == 7
Requires: ruby >= 2.0.0
Requires: python >= 2.7.5
Requires: qt-x11 >= 4.8.5
BuildRequires: ruby-devel
BuildRequires: python3-devel
BuildRequires: qt-devel
%define buildopt -j2
%define pylib %{python_sitearch}
%endif
%if 0%{?is_opensuse}
# We only support opensuse version with qt5
Requires: ruby
Requires: python3
Requires: libqt5-qtbase
Requires: libqt5-qtxmlpatterns
Requires: libqt5-qtmultimedia
Requires: libqt5-qtsvg
%define buildopt -j2
%define pylib %{python3_sitearch}
BuildRequires: ruby-devel
BuildRequires: python3-devel
BuildRequires: libqt5-qtbase-devel
BuildRequires: libqt5-qtxmlpatterns-devel
BuildRequires: libqt5-qtmultimedia-devel
BuildRequires: libqt5-qtsvg-devel
BuildRequires: libqt5-qttools-devel
%endif
%description
Mask layout viewer and editor for the chip design engineer.
For details see README.md
%prep
%setup -q
%build
TARGET="linux-release"
cd %{_builddir}/%{name}-%{version}
# clean bin dir
rm -rf %{_builddir}/bin.$TARGET
# do the actual build
./build.sh -rpath %{_libdir}/klayout \
-bin %{_builddir}/bin.$TARGET \
-build %{_builddir}/build.$TARGET \
%{buildopt}
cp -p LICENSE Changelog CONTRIB %{_builddir}
strip %{_builddir}/bin.$TARGET/*.so
strip %{_builddir}/bin.$TARGET/*/*.so
strip %{_builddir}/bin.$TARGET/*/*/*.so
strip %{_builddir}/bin.$TARGET/klayout
strip %{_builddir}/bin.$TARGET/strm*
%install
TARGET="linux-release"
# create and populate pylib
mkdir -p %{buildroot}%{pylib}/klayout
cp -pd %{_builddir}/bin.$TARGET/pymod/klayout/*.so %{buildroot}%{pylib}/klayout
cp -pd %{_builddir}/bin.$TARGET/pymod/klayout/*.py %{buildroot}%{pylib}/klayout
chmod 644 %{buildroot}%{pylib}/klayout/*
for d in tl db rdb; do
mkdir -p %{buildroot}%{pylib}/klayout/$d
cp -pd %{_builddir}/bin.$TARGET/pymod/klayout/$d/*.py %{buildroot}%{pylib}/klayout/$d
chmod 644 %{buildroot}%{pylib}/klayout/$d/*
done
# create and populate libdir
mkdir -p %{buildroot}%{_libdir}/klayout
mkdir -p %{buildroot}%{_libdir}/klayout/db_plugins
mkdir -p %{buildroot}%{_libdir}/klayout/lay_plugins
cp -pd %{_builddir}/bin.$TARGET/lib*.so* %{buildroot}%{_libdir}/klayout
cp -pd %{_builddir}/bin.$TARGET/db_plugins/lib*.so* %{buildroot}%{_libdir}/klayout/db_plugins
cp -pd %{_builddir}/bin.$TARGET/lay_plugins/lib*.so* %{buildroot}%{_libdir}/klayout/lay_plugins
chmod 644 %{buildroot}%{_libdir}/klayout/*.so*
chmod 644 %{buildroot}%{_libdir}/klayout/db_plugins/*.so*
chmod 644 %{buildroot}%{_libdir}/klayout/lay_plugins/*.so*
# create and populate bindir
mkdir -p %{buildroot}%{_bindir}
cp -pd %{_builddir}/bin.$TARGET/klayout %{_builddir}/bin.$TARGET/strm* %{buildroot}%{_bindir}
chmod 755 %{buildroot}%{_bindir}/*
# other files
ls %{_sourcedir}
install -Dm644 etc/%{name}.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
install -Dm644 etc/logo.png %{buildroot}%{_datadir}/pixmaps/%{name}.png
# TODO: remove this? This macro does not expand to anything in SuSE 42.x
#%if 0%{?suse_version}%{?sles_version}
#%suse_update_desktop_file -n %{name}
#%endif
%files
%defattr(-,root,root)
%doc LICENSE
%doc Changelog
%doc CONTRIB
%{_bindir}/klayout
%{_bindir}/strm*
%{pylib}/klayout
%{pylib}/klayout/*
%{_libdir}/klayout
%{_libdir}/klayout/*
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%changelog