A new user interface for you! Read more...

File globus-common.spec of Package globus-common

#
# spec file for package globus-common
#
# Copyright (c) 2019 SUSE LINUX 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 https://bugs.opensuse.org/
#


%global soname 0
%global _name globus_common
%if %{?suse_version}%{!?suse_version:0}
%global mainpkg lib%{_name}%{soname}
%global nmainpkg -n %{mainpkg}
%else
%global mainpkg %{name}
%endif
Name:           globus-common
Version:        18.2
Release:        0
Summary:        Grid Community Toolkit - Common Library
License:        Apache-2.0
Group:          Productivity/Networking/System
URL:            https://github.com/gridcf/gct/
Source0:        https://repo.gridcf.org/gct6/sources/%{_name}-%{version}.tar.gz
Source1:        %{name}-rpmlintrc
BuildRequires:  doxygen
BuildRequires:  fdupes
BuildRequires:  gcc
%if %{?suse_version}%{!?suse_version:0}
BuildRequires:  libtool
BuildRequires:  pkgconfig
%else
BuildRequires:  libtool-ltdl-devel
%endif
%if ! %{?suse_version}%{!?suse_version:0}
BuildRequires:  perl-generators
%endif
%if %{?nmainpkg:1}%{!?nmainpkg:0}
%package %{?nmainpkg}
Summary:        Grid Community Toolkit - Common Library
Group:          Productivity/Networking/System
Provides:       %{name} = %{version}-%{release}
Obsoletes:      %{name} < %{version}-%{release}
%endif

%package progs
Summary:        Grid Community Toolkit - Common Library Programs
Group:          Productivity/Networking/System
Requires:       %{mainpkg} = %{version}-%{release}
Requires:       perl-Globus-Core

%package devel
Summary:        Grid Community Toolkit - Common Library Development Files
Group:          Development/Libraries/C and C++
Requires:       %{mainpkg} = %{version}-%{release}
%if %{?suse_version}%{!?suse_version:0}
Requires:       libtool
%else
Requires:       libtool-ltdl-devel
%endif

%package doc
Summary:        Grid Community Toolkit - Common Library Documentation Files
Group:          Documentation/HTML
%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6
BuildArch:      noarch
%endif
%if %{?nmainpkg:1}%{!?nmainpkg:0}
%description %{?nmainpkg}
The Grid Community Toolkit (GCT) is an open source software toolkit used for
building grid systems and applications. It is a fork of the Globus Toolkit
originally created by the Globus Alliance. It is supported by the Grid
Community Forum (GridCF) that provides community-based support for core
software packages in grid computing.

The %{mainpkg} package contains:
Common Library
%endif

%description
The Grid Community Toolkit (GCT) is an open source software toolkit used for
building grid systems and applications. It is a fork of the Globus Toolkit
originally created by the Globus Alliance. It is supported by the Grid
Community Forum (GridCF) that provides community-based support for core
software packages in grid computing.

The %{name} package contains:
Common Library

%description progs
The Grid Community Toolkit (GCT) is an open source software toolkit used for
building grid systems and applications. It is a fork of the Globus Toolkit
originally created by the Globus Alliance. It is supported by the Grid
Community Forum (GridCF) that provides community-based support for core
software packages in grid computing.

The %{name}-progs package contains:
Common Library Programs

%description devel
The Grid Community Toolkit (GCT) is an open source software toolkit used for
building grid systems and applications. It is a fork of the Globus Toolkit
originally created by the Globus Alliance. It is supported by the Grid
Community Forum (GridCF) that provides community-based support for core
software packages in grid computing.

The %{name}-devel package contains:
Common Library Development Files

%package -n perl-Globus-Core
Summary:        Perl module for Globus Core
Group:          Productivity/Networking/System
Requires:       %{mainpkg} = %{version}-%{release}
%if %{?suse_version}%{!?suse_version:0} >= 1200
%{perl_requires}
%else
%if %{?suse_version}%{!?suse_version:0} <= 1200
Requires:       perl = %{perl_version}
%else
Requires:       perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
%endif
%endif

%description -n perl-Globus-Core
The Grid Community Toolkit (GCT) is an open source software toolkit used for
building grid systems and applications. It is a fork of the Globus Toolkit
originally created by the Globus Alliance. It is supported by the Grid
Community Forum (GridCF) that provides community-based support for core
software packages in grid computing.

This package installs the perl modules for %{name}.

%description doc
The Grid Community Toolkit (GCT) is an open source software toolkit used for
building grid systems and applications. It is a fork of the Globus Toolkit
originally created by the Globus Alliance. It is supported by the Grid
Community Forum (GridCF) that provides community-based support for core
software packages in grid computing.

The %{name}-doc package contains:
Common Library Documentation Files

%prep
%setup -q -n %{_name}-%{version}

%build
export GLOBUS_VERSION=6.2
export SH=/bin/sh
%configure --disable-static \
	   --includedir=%{_includedir}/globus \
	   --libexecdir=%{_datadir}/globus \
	   --docdir=%{_docdir}/%{name} \
	   --with-perlmoduledir=%{perl_vendorlib} \
	   --with-backward-compatibility-hack

make %{?_smp_mflags}

%install
%make_install

# Remove libtool archives (.la files)
find %{buildroot} -type f -name "*.la" -delete -print

# Remove environment scripts
rm %{buildroot}%{_datadir}/globus-user-env.csh
rm %{buildroot}%{_datadir}/globus-user-env.sh

# Link duplicated files
%fdupes %{buildroot}%{_docdir}/%{name}/
%fdupes %{buildroot}%{_mandir}/man3/
%fdupes %{buildroot}%{_bindir}

# Remove License file and package it using %%license
rm %{buildroot}%{_docdir}/%{name}/GLOBUS_LICENSE

%check
make %{?_smp_mflags} check VERBOSE=1 NO_EXTERNAL_NET=1

%post %{?nmainpkg} -p /sbin/ldconfig
%postun %{?nmainpkg} -p /sbin/ldconfig

%files %{?nmainpkg}
%{_libdir}/libglobus_common.so.*
%{_libdir}/libglobus_memory_debug.so.*

%files -n perl-Globus-Core
%dir %{perl_vendorlib}/Globus
%dir %{perl_vendorlib}/Globus/Core
%{perl_vendorlib}/Globus/Core/Config.pm
%{perl_vendorlib}/Globus/Core/Paths.pm

%files progs
%{_bindir}/globus-domainname
%{_bindir}/globus-hostname
%{_bindir}/globus-sh-exec
%{_bindir}/globus-version
%{_sbindir}/globus-libc-hostname
%{_sbindir}/globus-redia
%dir %{_datadir}/globus
%{_datadir}/globus/config.guess
%{_datadir}/globus/globus-args-parser-header
%{_datadir}/globus/globus-script-initializer*
%{_datadir}/globus/globus-sh-tools.sh
%{_datadir}/globus/globus-sh-tools-vars.sh
%{_mandir}/man1/globus-domainname.1%{?ext_man}
%{_mandir}/man1/globus-hostname.1%{?ext_man}
%{_mandir}/man1/globus-sh-exec.1%{?ext_man}
%{_mandir}/man1/globus-version.1%{?ext_man}
# This is a loadable module (plugin)
%{_libdir}/libglobus_thread_pthread.so

%files devel
%license GLOBUS_LICENSE
%dir %{_includedir}/globus
%{_includedir}/globus/*
%{_libdir}/libglobus_common.so
%{_libdir}/libglobus_memory_debug.so
%{_libdir}/pkgconfig/%{name}.pc
%{_bindir}/globus-makefile-header
%dir %{_datadir}/globus
%{_datadir}/globus/globus-vararg-enums-doxygen-filter.pl

%files doc
%{_mandir}/man3/*.3%{?ext_man}
%doc %{_docdir}/%{name}/
%if ! %{?suse_version}%{!?suse_version:0}
%license GLOBUS_LICENSE
%endif

%changelog