Blame gnatcoll-bindings.spec

Björn Persson 98058fe
Name:           gnatcoll-bindings
Björn Persson 98058fe
Version:        2018
f2e90ce
Release:        4%{?dist}
Björn Persson 98058fe
Summary:        The GNAT Components Collection – bindings
Björn Persson 98058fe
Summary(sv):    GNAT Components Collection – bindningar
Björn Persson 98058fe
Björn Persson 98058fe
License:        GPLv3+
Björn Persson 98058fe
# The source files are GPLv3+ and GPLv2+. These combine into GPLv3+ on the
Björn Persson 98058fe
# binary code.
Björn Persson 98058fe
URL:            https://github.com/AdaCore/gnatcoll-bindings
Björn Persson 98058fe
Source:         http://mirrors.cdn.adacore.com/art/5b0ce9cfc7a4475261f97ca5#/gnatcoll-bindings-gpl-2018-src.tar.gz
Björn Persson 98058fe
# The long hexadecimal number is what identifies the file on the server.
Björn Persson 98058fe
# Don't forget to update it!
Björn Persson 98058fe
# The latest known address of the download page is:
Björn Persson 98058fe
# https://www.adacore.com/download/more
Björn Persson 98058fe
Björn Persson 98058fe
BuildRequires:  gcc-gnat gprbuild fedora-gnat-project-common sed dos2unix
Björn Persson 98058fe
BuildRequires:  gnatcoll-core-devel = %{version}
Björn Persson 98058fe
# Although it's not explicitly stated, I guess it's best to keep all the parts
Björn Persson 98058fe
# of Gnatcoll on the same version number.
Björn Persson 98058fe
BuildRequires:  gmp-devel python3-devel readline-devel
Björn Persson 98058fe
# Build only on architectures where GPRbuild is available:
Björn Persson 98058fe
ExclusiveArch:  %{GPRbuild_arches}
Björn Persson 98058fe
Björn Persson 98058fe
# Gnatcoll.Python is excluded because of undefined symbols. It can be built by
Björn Persson 98058fe
# passing "--with python" to RPMbuild.
Björn Persson 98058fe
%bcond_with python
Björn Persson 98058fe
Björn Persson 98058fe
%global common_description_en \
Björn Persson 98058fe
This is the bindings module of the GNAT Components Collection. It provides \
Björn Persson 98058fe
bindings to GMP, Iconv, %{?with_python:Python, }Readline and Syslog. \
Björn Persson 98058fe
%{!?with_python:The Python binding is excluded until it works with Python 3.}
Björn Persson 98058fe
Björn Persson 98058fe
%global common_description_sv \
Björn Persson 98058fe
Detta är bindningsmodulen i GNAT Components Collection. Den tillhandahåller \
Björn Persson 98058fe
bindningar till GMP, Iconv, %{?with_python:Python, }Readline och Syslog. \
Björn Persson 98058fe
%{!?with_python:Pythonbindningen är utelämnad tills den fungerar med Python 3.}
Björn Persson 98058fe
Björn Persson 98058fe
%description %{common_description_en}
Björn Persson 98058fe
Björn Persson 98058fe
%description -l sv %{common_description_sv}
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%package -n gnatcoll-gmp
Björn Persson 98058fe
Summary:        The GNAT Components Collection – GMP binding
Björn Persson 98058fe
Summary(sv):    GNAT Components Collection – GMP-bindning
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-gmp
Björn Persson 98058fe
This is the GMP component of the GNAT Components Collection. It is an interface
Björn Persson 98058fe
to the GNU Multiple Precision (GMP) arithmetic library.
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-gmp -l sv
Björn Persson 98058fe
Detta är GMP-komponenten i GNAT Components Collection. Den är ett gränssnitt
Björn Persson 98058fe
mot biblioteket GNU Multiple Precision (GMP) för godtyckligt precisa
Björn Persson 98058fe
beräkningar.
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%package -n gnatcoll-iconv
Björn Persson 98058fe
Summary:        The GNAT Components Collection – Iconv binding
Björn Persson 98058fe
Summary(sv):    GNAT Components Collection – Iconvbindning
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-iconv
Björn Persson 98058fe
This is the Iconv component of the GNAT Components Collection. It is an
Björn Persson 98058fe
interface to libiconv for conversion between character encodings.
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-iconv -l sv
Björn Persson 98058fe
Detta är Iconv-komponenten i GNAT Components Collection. Den är ett gränssnitt
Björn Persson 98058fe
mot biblioteket Iconv för omvandling mellan teckenkodningar.
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%if %{with python}
Björn Persson 98058fe
%package -n gnatcoll-python
Björn Persson 98058fe
Summary:        The GNAT Components Collection – Python binding
Björn Persson 98058fe
Summary(sv):    GNAT Components Collection – Pythonbindning
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-python
Björn Persson 98058fe
This is the Python component of the GNAT Components Collection. It is an
Björn Persson 98058fe
interface to the Python interpreter.
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-python -l sv
Björn Persson 98058fe
Detta är Python-komponenten i GNAT Components Collection. Den är ett gränssnitt
Björn Persson 98058fe
mot pythontolken.
Björn Persson 98058fe
%endif
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%package -n gnatcoll-readline
Björn Persson 98058fe
Summary:        The GNAT Components Collection – Readline binding
Björn Persson 98058fe
Summary(sv):    GNAT Components Collection – Readlinebindning
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-readline
Björn Persson 98058fe
This is the Readline component of the GNAT Components Collection. It is an
Björn Persson 98058fe
interface to the Readline library for interactive input from the user.
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-readline -l sv
Björn Persson 98058fe
Detta är Readline-komponenten i GNAT Components Collection. Den är ett
Björn Persson 98058fe
gränssnitt mot biblioteket Readline för interaktiv inmatning från användaren.
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%package -n gnatcoll-syslog
Björn Persson 98058fe
Summary:        The GNAT Components Collection – Syslog binding
Björn Persson 98058fe
Summary(sv):    GNAT Components Collection – Syslogbindning
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-syslog
Björn Persson 98058fe
This is the Syslog component of the GNAT Components Collection. It is an
Björn Persson 98058fe
interface to the system logger on Unix-like systems.
Björn Persson 98058fe
Björn Persson 98058fe
%description -n gnatcoll-syslog -l sv
Björn Persson 98058fe
Detta är Syslog-komponenten i GNAT Components Collection. Den är ett gränssnitt
Björn Persson 98058fe
mot Unixlika operativsystems loggfunktion.
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%package devel
Björn Persson 98058fe
Summary:        Development files for the GNAT Components Collection – bindings
Björn Persson 98058fe
Summary(sv):    Filer för programmering med GNAT Components Collection – bindningar
Björn Persson 98058fe
Requires:       gnatcoll-gmp%{?_isa} = %{version}-%{release}
Björn Persson 98058fe
Requires:       gnatcoll-iconv%{?_isa} = %{version}-%{release}
Björn Persson 98058fe
%if %{with python}
Björn Persson 98058fe
Requires:       gnatcoll-python%{?_isa} = %{version}-%{release}
Björn Persson 98058fe
%endif
Björn Persson 98058fe
Requires:       gnatcoll-readline%{?_isa} = %{version}-%{release}
Björn Persson 98058fe
Requires:       gnatcoll-syslog%{?_isa} = %{version}-%{release}
Björn Persson 98058fe
Requires:       fedora-gnat-project-common gnatcoll-core-devel
Björn Persson 98058fe
Björn Persson 98058fe
%description devel %{common_description_en}
Björn Persson 98058fe
Björn Persson 98058fe
The gnatcoll-bindings-devel package contains source code and linking information
Björn Persson 98058fe
for developing applications that use the GNAT Components Collection bindings.
Björn Persson 98058fe
Björn Persson 98058fe
%description devel -l sv %{common_description_sv}
Björn Persson 98058fe
Björn Persson 98058fe
Paketet gnatcoll-bindings-devel innehåller källkod och länkningsinformation som
Björn Persson 98058fe
behövs för att utveckla program som använder GNAT Components Collections
Björn Persson 98058fe
bindningar.
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%global set_env export GNATCOLL_VERSION=%{version} \
Björn Persson 98058fe
                export BUILD=PROD \
Björn Persson 98058fe
                export LIBRARY_TYPE=relocatable \
Björn Persson 98058fe
                export GNATCOLL_ICONV_OPT=@/dev/null \
Björn Persson 98058fe
                export GNATCOLL_PYTHON_CFLAGS=`python3-config --cflags` \
Björn Persson 98058fe
                export GNATCOLL_PYTHON_LIBS=`python3-config --ldflags`
Björn Persson 98058fe
# Iconv is not a separate library, but an empty GNATCOLL_ICONV_OPT doesn't
Björn Persson 98058fe
# prevent GPRbuild from using the default "-liconv", so it's set to a value
Björn Persson 98058fe
# that makes no difference.
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%prep
Björn Persson 98058fe
%autosetup -n gnatcoll-bindings-gpl-%{version}-src
Björn Persson 98058fe
Björn Persson 98058fe
# Convert line breaks.
Björn Persson 98058fe
dos2unix --keepdate gmp/examples/gmp_examples.gpr
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%build
Björn Persson 98058fe
%{set_env}
Björn Persson 98058fe
for subdir in gmp iconv %{?with_python:python} readline syslog ; do
Björn Persson 98058fe
    component=gnatcoll_${subdir}
Björn Persson 98058fe
    gprbuild -P ${subdir}/${component}.gpr %{GPRbuild_optflags}
Björn Persson 98058fe
done
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%install
Björn Persson 98058fe
%{set_env}
Björn Persson 98058fe
for subdir in gmp iconv %{?with_python:python} readline syslog ; do
Björn Persson 98058fe
    component=gnatcoll_${subdir}
Björn Persson 98058fe
    gprinstall -P ${subdir}/${component}.gpr \
Björn Persson 98058fe
               --prefix=%{buildroot}%{_prefix} \
Björn Persson 98058fe
               --lib-subdir=%{buildroot}%{_libdir} \
Björn Persson 98058fe
               --ali-subdir=%{buildroot}%{_libdir}/${component} \
Björn Persson 98058fe
               --no-lib-link -m --create-missing-dirs
Björn Persson 98058fe
    ln --symbolic --force lib${component}.so.%{version} \
Björn Persson 98058fe
       %{buildroot}%{_libdir}/lib${component}.so
Björn Persson 98058fe
Björn Persson 98058fe
    # Make the generated usage project file architecture-independent.
Björn Persson 98058fe
    sed --regexp-extended --in-place \
Björn Persson 98058fe
        '--expression=1i with "directories";' \
Björn Persson 98058fe
        '--expression=/^--  This project has been generated/d' \
Björn Persson 98058fe
        '--expression=/package Linker is/,/end Linker/d' \
Björn Persson 98058fe
        '--expression=/python_(cflags|libs)/d' \
Björn Persson 98058fe
        '--expression=s|^( *for +Source_Dirs +use +).*;$|\1(Directories.Includedir \& "/'${component}'");|i' \
Björn Persson 98058fe
        '--expression=s|^( *for +Library_Dir +use +).*;$|\1Directories.Libdir;|i' \
Björn Persson 98058fe
        '--expression=s|^( *for +Library_ALI_Dir +use +).*;$|\1Directories.Libdir \& "/'${component}'";|i' \
Björn Persson 98058fe
        %{buildroot}%{_GNAT_project_dir}/${component}.gpr
Björn Persson 98058fe
    # The Sed commands are:
Björn Persson 98058fe
    # 1: Insert a with clause before the first line to import the directories
Björn Persson 98058fe
    #    project.
Björn Persson 98058fe
    # 2: Delete a comment that mentions the architecture.
Björn Persson 98058fe
    # 3: Delete the package Linker, which contains linker parameters that a
Björn Persson 98058fe
    #    shared library normally doesn't need, and can contain architecture-
Björn Persson 98058fe
    #    specific pathnames.
Björn Persson 98058fe
    # 4: Delete two unused variables with architecture- specific values from
Björn Persson 98058fe
    #    gnatcoll_python.gpr.
Björn Persson 98058fe
    # 5: Replace the value of Source_Dirs with a pathname based on
Björn Persson 98058fe
    #    Directories.Includedir.
Björn Persson 98058fe
    # 6: Replace the value of Library_Dir with Directories.Libdir.
Björn Persson 98058fe
    # 7: Replace the value of Library_ALI_Dir with a pathname based on
Björn Persson 98058fe
    #    Directories.Libdir.
Björn Persson 98058fe
done
Björn Persson 98058fe
Björn Persson 98058fe
# GPRinstall's manifest files are architecture-specific because they contain
Björn Persson 98058fe
# what seems to be checksums of architecture-specific files, so they must not
Björn Persson 98058fe
# be under _datadir. Their function is poorly documented, but they seem to be
Björn Persson 98058fe
# used when GPRinstall uninstalls packages. The manifest files are therefore
Björn Persson 98058fe
# irrelevant in this RPM package, so delete them.
Björn Persson 98058fe
rm --recursive --force %{buildroot}%{_GNAT_project_dir}/manifests
Björn Persson 98058fe
Björn Persson 98058fe
# These files may be of some value to developers:
Björn Persson 98058fe
for subdir in iconv readline syslog ; do
Björn Persson 98058fe
    mkdir --parents %{buildroot}%{_docdir}/gnatcoll/${subdir}
Björn Persson 98058fe
    cp --preserve=timestamps ${subdir}/README.md \
Björn Persson 98058fe
       %{buildroot}%{_docdir}/gnatcoll/${subdir}/
Björn Persson 98058fe
done
Björn Persson 98058fe
Björn Persson 98058fe
# Move the examples to their proper place.
Björn Persson 98058fe
mv %{buildroot}%{_datadir}/examples/gnatcoll %{buildroot}%{_docdir}/gnatcoll/examples
Björn Persson 98058fe
Björn Persson 98058fe
# Install the license with a single pathname that is shared by the subpackages.
Björn Persson 98058fe
mkdir --parents %{buildroot}%{_licensedir}/%{name}
Björn Persson 98058fe
cp --preserve=timestamps COPYING3 %{buildroot}%{_licensedir}/%{name}/
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%check
Björn Persson 98058fe
%{_rpmconfigdir}/check-rpaths
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%files -n gnatcoll-gmp
Björn Persson 98058fe
%{_libdir}/libgnatcoll_gmp.so.*
Björn Persson 20d1e62
%license %{_licensedir}/%{name}
Björn Persson 98058fe
Björn Persson 98058fe
%files -n gnatcoll-iconv
Björn Persson 98058fe
%{_libdir}/libgnatcoll_iconv.so.*
Björn Persson 20d1e62
%license %{_licensedir}/%{name}
Björn Persson 98058fe
Björn Persson 98058fe
%if %{with python}
Björn Persson 98058fe
%files -n gnatcoll-python
Björn Persson 98058fe
%{_libdir}/libgnatcoll_python.so.*
Björn Persson 20d1e62
%license %{_licensedir}/%{name}
Björn Persson 98058fe
%endif
Björn Persson 98058fe
Björn Persson 98058fe
%files -n gnatcoll-readline
Björn Persson 98058fe
%{_libdir}/libgnatcoll_readline.so.*
Björn Persson 20d1e62
%license %{_licensedir}/%{name}
Björn Persson 98058fe
Björn Persson 98058fe
%files -n gnatcoll-syslog
Björn Persson 98058fe
%{_libdir}/libgnatcoll_syslog.so.*
Björn Persson 20d1e62
%license %{_licensedir}/%{name}
Björn Persson 98058fe
Björn Persson 98058fe
%files devel
Björn Persson 98058fe
%{_includedir}/*
Björn Persson 98058fe
%{_libdir}/*.so
Björn Persson 98058fe
%{_libdir}/gnatcoll*
Björn Persson 98058fe
%{_GNAT_project_dir}/*
Björn Persson 98058fe
%{_docdir}/gnatcoll
Björn Persson 98058fe
Björn Persson 98058fe
Björn Persson 98058fe
%changelog
f2e90ce
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2018-4
f2e90ce
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
f2e90ce
Björn Persson 20d1e62
* Wed May 29 2019 Björn Persson <Bjorn@Rombobjörn.se> - 2018-3
Björn Persson 20d1e62
- Tagged the license file as such.
Björn Persson 20d1e62
Björn Persson 98058fe
* Fri Mar 29 2019 Björn Persson <Bjorn@Rombobjörn.se> - 2018-2
Björn Persson 98058fe
- Added more macro usage, more comments and ownership of a directory.
Björn Persson 98058fe
Björn Persson 98058fe
* Sat Mar 16 2019 Björn Persson <Bjorn@Rombobjörn.se> - 2018-1
Björn Persson 98058fe
- new package