File globus-simple-ca.spec of Package globus-simple-ca

%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}

Name:		globus-simple-ca
%global _name %(echo %{name} | tr - _)
Version:	5.4
Release:	1%{?dist}
Summary:	Grid Community Toolkit - Simple CA Utility

Group:		Applications/Internet
License:	%{?suse_version:Apache-2.0}%{!?suse_version:ASL 2.0}
URL:		https://github.com/gridcf/gct/
Source:		%{_name}-%{version}.tar.gz
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch:	noarch

%if %{?suse_version}%{!?suse_version:0}
BuildRequires:	pkg-config
%endif
%if %{?suse_version}%{!?suse_version:0} <= 1200
BuildRequires:	openssl1
%else
BuildRequires:	openssl
%endif
#		Additional requirements for make check
BuildRequires:	globus-common-progs >= 14
%if %{?suse_version}%{!?suse_version:0}
BuildRequires:	perl
%else
BuildRequires:	perl-interpreter
%endif
BuildRequires:	perl(File::Temp)
BuildRequires:	perl(IPC::Open3)
BuildRequires:	perl(strict)
BuildRequires:	perl(Symbol)
BuildRequires:	perl(Test::More)
BuildRequires:	perl(warnings)

Requires:	globus-common-progs >= 14
Requires:	globus-gsi-cert-utils-progs
%if %{?suse_version}%{!?suse_version:0} <= 1200
Requires:	openssl1
%else
Requires:	openssl
%endif
%if %{?suse_version}%{!?suse_version:0}
Requires(pre):	shadow
%else
Requires(pre):	shadow-utils
%endif
Requires(post):	globus-common-progs >= 14
Requires(post):	globus-gsi-cert-utils-progs
Requires(post):	openssl

%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:
Simple CA Utility

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

%build
%configure --disable-static \
	   --includedir=%{_includedir}/globus \
	   --libexecdir=%{_datadir}/globus \
	   --docdir=%{_pkgdocdir}

make %{?_smp_mflags}

%install
make install DESTDIR=$RPM_BUILD_ROOT

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

%pre
getent group simpleca >/dev/null || groupadd -r simpleca
getent passwd simpleca >/dev/null || \
useradd -r -g simpleca -d %{_localstatedir}/lib/globus/simple_ca \
   -s /sbin/nologin \
   -c "User to run the SimpleCA" simpleca
exit 0

%post
simplecadir=%{_localstatedir}/lib/globus/simple_ca
mkdir -p ${simplecadir}
if [ ! -f ${simplecadir}/cacert.pem ] ; then
    tempdir=$(mktemp -d)
    cd "$tempdir"
    grid-ca-create -noint -nobuild -dir "${simplecadir}"
    (umask 077; echo globus > ${simplecadir}/passwd)
    simplecahash=`openssl x509 -hash -noout -in ${simplecadir}/cacert.pem`
    cd $simplecadir
    grid-ca-package -cadir ${simplecadir}
    tar --strip 1 --no-same-owner -zx --exclude debian -C /etc/grid-security/certificates -f ${simplecadir}/globus_simple_ca_$simplecahash.tar.gz
    chown -R simpleca:simpleca ${simplecadir}
    chmod -R g+rw ${simplecadir}
    find ${simplecadir} -type d -exec chmod g+xs {} \;
    if [ ! -r /etc/grid-security/globus-user-ssl.conf ]; then
	grid-default-ca -ca $simplecahash
    fi
    hostname=`hostname -f 2>/dev/null`
    if [ ! -f /etc/grid-security/hostcert.pem ] && \
       [ ! -f /etc/grid-security/hostcert_request.pem ] && \
       [ ! -f /etc/grid-security/hostkey.pem ] && \
       [ ! -z "${hostname}" ]; then
	grid-cert-request -cn ${hostname} -host ${hostname}
	su -s /bin/sh simpleca -c "umask 007; grid-ca-sign \
	   -in /etc/grid-security/hostcert_request.pem \
	   -out ${simplecadir}/hostcert.pem"
	cp "${simplecadir}/hostcert.pem" /etc/grid-security/hostcert.pem
    fi
    cd -
    rm -rf "$tempdir"
fi

%files
%defattr(-,root,root,-)
%{_bindir}/grid-ca-create
%{_bindir}/grid-ca-package
%{_bindir}/grid-ca-sign
%doc %{_mandir}/man1/grid-ca-create.1*
%doc %{_mandir}/man1/grid-ca-package.1*
%doc %{_mandir}/man1/grid-ca-sign.1*
%dir %{_pkgdocdir}
%doc %{_pkgdocdir}/GLOBUS_LICENSE

%changelog
* Sun Mar 06 2022 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.4-1
- Use sha256 when signing request

* Fri Aug 20 2021 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.3-1
- Typo fixes

* Wed Jun 03 2020 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.2-1
- Use -nameopt sep_multiline to derive certificate subject string
- Drop support for generating GPT package

* Tue Mar 10 2020 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.1-3
- Add BuildRequires perl-interpreter
- Add additional perl dependencies for tests

* Fri Sep 13 2019 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.1-2
- Check that hostname command succeeds in post install script

* Thu Apr 25 2019 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.1-1
- Fix openssl output format issue (incomplete openssl 1.1 port)

* Thu Nov 15 2018 Frank Scheiner <scheiner@hlrs.de> - 5.0-2
- Include spec file fixes for SLES builds on OBS

* Sat Mar 31 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.0-1
- First Grid Community Toolkit release

* Fri May 12 2017 Globus Toolkit <support@globus.org> - 4.24-4
- Stop leaving files in /

* Thu Sep 08 2016 Globus Toolkit <support@globus.org> - 4.24-3
- Update for el.5 openssl101e, replace docbook with asciidoc

* Fri Aug 26 2016 Globus Toolkit <support@globus.org> - 4.23-4
- Updates for SLES 12

* Tue Aug 16 2016 Globus Toolkit <support@globus.org> - 4.23-1
- Updates for OpenSSL 1.1.0

* Thu Aug 06 2015 Globus Toolkit <support@globus.org> - 4.22-2
- Add vendor

* Tue Jul 28 2015 Globus Toolkit <support@globus.org> - 4.22-1
- Fix test case for ca key bits

* Fri Jul 24 2015 Globus Toolkit <support@globus.org> - 4.21-1
- GT-617: Use 4096-bit RSA key for globus-simple-ca

* Thu May 28 2015 Globus Toolkit <support@globus.org> - 4.20-1
- Increase default key size

* Thu Apr 02 2015 Globus Toolkit <support@globus.org> - 4.19-1
- Add support for additional DN components

* Tue Nov 18 2014 Globus Toolkit <support@globus.org> - 4.18-1
- Avoid make check failures when ~/.rnd is not writable

* Mon Nov 10 2014 Globus Toolkit <support@globus.org> - 4.17-1
- Fix regression writing to cert dir

* Mon Nov 10 2014 Globus Toolkit <support@globus.org> - 4.16-1
- Fix regression writing to cert dir

* Mon Nov 03 2014 Globus Toolkit <support@globus.org> - 4.15-1
- only check for writable dir

* Fri Aug 22 2014 Globus Toolkit <support@globus.org> - 4.14-1
- Merge fixes from ellert-globus_6_branch

* Wed Aug 20 2014 Globus Toolkit <support@globus.org> - 4.13-2
- Fix Source path

* Mon Jun 09 2014 Globus Toolkit <support@globus.org> - 4.13-1
- Merge changes from Mattias Ellert

* Mon Apr 21 2014 Globus Toolkit <support@globus.org> - 4.12-1
- Test fixes

* Fri Apr 18 2014 Globus Toolkit <support@globus.org> - 4.11-1
- Version bump for consistency

* Thu Feb 27 2014 Globus Toolkit <support@globus.org> - 4.10-1
- Packaging fixes, Warning Cleanup

* Tue Feb 25 2014 Globus Toolkit <support@globus.org> - 4.9-1
- Packaging fixes

* Wed Feb 19 2014 Globus Toolkit <support@globus.org> - 4.8-1
- Packaging fixes

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.7-1
- Test fixes

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.6-1
- Packaging fixes

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.5-1
- Test fixes

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.4-1
- Test fixes

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.3-1
- Packaging fixes

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.4-1
- Packaging fixes

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.3-1
- Don't depend on finding initializer/args parser

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.2-1
- Test fixes

* Tue Feb 18 2014 Globus Toolkit <support@globus.org> - 4.1-1
- Packaging fixes

* Wed Jan 22 2014 Globus Toolkit <support@globus.org> - 4.0-1
- Repackage for GT6 without GPT

* Thu Oct 10 2013 Globus Toolkit <support@globus.org> - 3.5-1
- GT-405: Non-portable use of echo in shell script

* Fri Sep 13 2013 Globus Toolkit <support@globus.org> - 3.4-4
- Don't die in postinst if domain name is not qualified

* Mon Jul 08 2013 Globus Toolkit <support@globus.org> - 3.4-3
- license is not a dir

* Wed Jun 26 2013 Globus Toolkit <support@globus.org> - 3.4-2
- GT-424: New Fedora Packaging Guideline - no %%_isa in BuildRequires

* Fri May 24 2013 Globus Toolkit <support@globus.org> - 3.4-1
- Fix test for absolute path on some versions of expr

* Wed Feb 13 2013 Globus Toolkit <support@globus.org> - 3.3-1
- GT-362: simple ca loses spaces in dn in signing policy

* Mon Nov 26 2012 Globus Toolkit <support@globus.org> - 3.2-2
- 5.2.3

* Mon Oct 29 2012 Joseph Bester <bester@mcs.anl.gov> - 3.2-1
- GT-312: automate native simple_ca package more

* Mon Jul 16 2012 Joseph Bester <bester@mcs.anl.gov> - 3.1-3
- GT 5.2.2 final

* Fri Jun 29 2012 Joseph Bester <bester@mcs.anl.gov> - 3.1-2
- GT 5.2.2 Release

* Tue May 22 2012 Joseph Bester <bester@mcs.anl.gov> - 3.1-1
- GT-151: Build RPMS for SuSE 11

* Wed May 09 2012 Joseph Bester <bester@mcs.anl.gov> - 3.0-7
- RHEL 4 patches

* Tue Feb 14 2012 Joseph Bester <bester@mcs.anl.gov> - 3.0-6
- Updated version numbers

* Mon Dec 05 2011 Joseph Bester <bester@mcs.anl.gov> - 3.0-5
- Update for 5.2.0 release

* Mon Dec 05 2011 Joseph Bester <bester@mcs.anl.gov> - 3.0-4
- Last sync prior to 5.2.0

* Tue Oct 11 2011 Joseph Bester <bester@mcs.anl.gov> - 3.0-3
- Add explicit dependencies on >= 5.2 libraries

* Thu Sep 01 2011 Joseph Bester <bester@mcs.anl.gov> - 3.0-2
- Update for 5.1.2 release

* Tue Mar 29 2011 - 2.0-1
- Initial version
openSUSE Build Service is sponsored by