850e4b0
%bcond_without check
850e4b0
e836f2a
Name:           munge
e73958b
Version:        0.5.16
30f2b8a
Release:        %autorelease
e836f2a
Summary:        Enables uid & gid authentication across a host cluster
e836f2a
ff103d6
# The libs and devel package is GPLv3+ and LGPLv3+ where as the main package is GPLv3 only.
06b320c
License:        GPL-3.0-or-later AND LGPL-3.0-or-later
41bc2ed
URL:            https://dun.github.io/munge/
227e27a
Source0:        https://github.com/dun/munge/releases/download/munge-%{version}/munge-%{version}.tar.xz
850e4b0
Source1:        https://github.com/dun/munge/releases/download/%{name}-%{version}/%{name}-%{version}.tar.xz.asc
850e4b0
Source2:        https://github.com/dun.gpg
dd0498e
Source3:        munge.sysusers
850e4b0
Source4:        README.md
9cfb1ea
9cfb1ea
BuildRequires:  make
Igor Gnatenko c0fb5e3
BuildRequires:  gcc
9cfb1ea
BuildRequires:  git-core
850e4b0
BuildRequires:  gnupg2
dd0498e
BuildRequires:  systemd-rpm-macros
Pokorra, Gerd 17c3d0a
BuildRequires:  zlib-devel bzip2-devel openssl-devel
7b0caca
Requires:       munge-libs = %{version}-%{release}
Pokorra, Gerd 28ebbd4
Requires:       logrotate
e836f2a
850e4b0
%if %{with check}
850e4b0
BuildRequires:  procps-ng
850e4b0
BuildRequires:  util-linux
850e4b0
%endif
850e4b0
850e4b0
ab9ede3
%{?systemd_requires}
dd0498e
%{?sysusers_requires_compat}
e836f2a
e836f2a
%description
cc133c5
MUNGE (MUNGE Uid 'N' Gid Emporium) is an authentication service for creating
cc133c5
and validating credentials. It is designed to be highly scalable for use
cc133c5
in an HPC cluster environment.
cc133c5
It allows a process to authenticate the UID and GID of another local or
cc133c5
remote process within a group of hosts having common users and groups.
cc133c5
These hosts form a security realm that is defined by a shared cryptographic
cc133c5
key. Clients within this security realm can create and validate credentials
cc133c5
without the use of root privileges, reserved ports, or platform-specific
e836f2a
methods.
e836f2a
e836f2a
%package devel
ecacefc
Summary:        Development files for uid * gid authentication across a host cluster
64d8dce
Requires:       munge-libs%{?_isa} = %{version}-%{release}
e836f2a
e836f2a
%description devel
e836f2a
Header files for developing using MUNGE.
e836f2a
a178a82
%package libs
ecacefc
Summary:        Runtime libs for uid * gid authentication across a host cluster
a178a82
a178a82
%description libs
a178a82
Runtime libraries for using MUNGE.
a178a82
a178a82
e836f2a
%prep
850e4b0
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
9cfb1ea
%autosetup -N -S git
850e4b0
cp "%{SOURCE4}"  README-Fedora.md
9cfb1ea
9cfb1ea
%autopatch
e836f2a
e836f2a
%build
850e4b0
%configure  --disable-static --with-crypto-lib=openssl --runstatedir="%{_rundir}" --with-systemdunitdir="%{_unitdir}"  --with-sysconfigdir="%{_sysconfdir}/sysconfig/" --with-logrotateddir="%{_sysconfdir}/logrotate.d/"
e836f2a
# Get rid of some rpaths for /usr/sbin
e836f2a
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
e836f2a
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
ab9ede3
%make_build
e836f2a
e836f2a
e836f2a
%install
dd0498e
%make_install
e836f2a
36d33fc
# Install extra files.
dd0498e
install -p -D -m 0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/munge.conf
dd0498e
36d33fc
# rm unneeded files.
cc133c5
# Exclude .la files
7b0caca
rm %{buildroot}/%{_libdir}/libmunge.la
e836f2a
e836f2a
e836f2a
# Fix a few permissions
7b0caca
chmod 700 %{buildroot}%{_var}/lib/munge %{buildroot}%{_var}/log/munge
7b0caca
chmod 700 %{buildroot}%{_sysconfdir}/munge
e836f2a
44108b7
# Create and empty key file and pid file to be marked as a ghost file below.
cc133c5
# i.e it is not actually included in the rpm, only the record
e836f2a
# of it is.
11e658d
mkdir -p %{buildroot}%{_rundir}/munge
850e4b0
touch %{buildroot}%{_rundir}/munge/munged.pid
850e4b0
850e4b0
%check
850e4b0
%if %{with check}
850e4b0
%make_build check \
850e4b0
    LD_LIBRARY_PATH=%{buildroot}%{_libdir} \
8be7c81
    root=/tmp/munge-$$ VERBOSE=t verbose=t
850e4b0
%endif
850e4b0
e836f2a
dd0498e
%pre
dd0498e
%sysusers_create_compat %{SOURCE3}
e836f2a
e836f2a
%preun
7b0caca
%systemd_preun munge.service
e836f2a
e836f2a
%post
7b0caca
%systemd_post munge.service
e836f2a
dd0498e
%postun
dd0498e
%systemd_postun_with_restart munge.service
dd0498e
c556f49
%ldconfig_scriptlets   libs
e836f2a
e836f2a
%files
e836f2a
%{_bindir}/munge
e836f2a
%{_bindir}/remunge
e836f2a
%{_bindir}/unmunge
e836f2a
%{_sbindir}/munged
850e4b0
%{_sbindir}/mungekey
e836f2a
%{_mandir}/man1/munge.1.gz
e836f2a
%{_mandir}/man1/remunge.1.gz
e836f2a
%{_mandir}/man1/unmunge.1.gz
e836f2a
%{_mandir}/man7/munge.7.gz
e836f2a
%{_mandir}/man8/munged.8.gz
850e4b0
%{_mandir}/man8/mungekey.8.gz
7b0caca
%{_unitdir}/munge.service
e836f2a
e836f2a
%attr(0700,munge,munge) %dir  %{_var}/log/munge
e836f2a
%attr(0700,munge,munge) %dir  %{_var}/lib/munge
Pokorra, Gerd 28ebbd4
%attr(0700,munge,munge) %dir %{_sysconfdir}/munge
162fdcc
%attr(0755,munge,munge) %ghost %dir  /run/munge/
Pokorra, Gerd 28ebbd4
%attr(0644,munge,munge) %ghost /run/munge/munged.pid
e836f2a
dd0498e
%{_sysusersdir}/munge.conf
e836f2a
%config(noreplace) %{_sysconfdir}/logrotate.d/munge
850e4b0
%config(noreplace) %{_sysconfdir}/sysconfig/munge
e836f2a
Pokorra, Gerd 6219536
%license COPYING COPYING.LESSER
850e4b0
%doc README-Fedora.md
7b0caca
%doc AUTHORS
850e4b0
%doc JARGON NEWS QUICKSTART README
e836f2a
%doc doc
e836f2a
a178a82
%files libs
a178a82
%{_libdir}/libmunge.so.2
a178a82
%{_libdir}/libmunge.so.2.0.0
e836f2a
e836f2a
%files devel
e836f2a
%{_includedir}/munge.h
e836f2a
%{_libdir}/libmunge.so
7b0caca
%{_libdir}/pkgconfig/munge.pc
e836f2a
%{_mandir}/man3/munge.3.gz
e836f2a
%{_mandir}/man3/munge_ctx.3.gz
e836f2a
%{_mandir}/man3/munge_ctx_copy.3.gz
e836f2a
%{_mandir}/man3/munge_ctx_create.3.gz
e836f2a
%{_mandir}/man3/munge_ctx_destroy.3.gz
e836f2a
%{_mandir}/man3/munge_ctx_get.3.gz
e836f2a
%{_mandir}/man3/munge_ctx_set.3.gz
e836f2a
%{_mandir}/man3/munge_ctx_strerror.3.gz
e836f2a
%{_mandir}/man3/munge_decode.3.gz
e836f2a
%{_mandir}/man3/munge_encode.3.gz
e836f2a
%{_mandir}/man3/munge_enum.3.gz
e836f2a
%{_mandir}/man3/munge_enum_int_to_str.3.gz
e836f2a
%{_mandir}/man3/munge_enum_is_valid.3.gz
e836f2a
%{_mandir}/man3/munge_enum_str_to_int.3.gz
e836f2a
%{_mandir}/man3/munge_strerror.3.gz
e836f2a
e836f2a
e836f2a
%changelog
30f2b8a
%autochangelog