%if 0%{?el4}%{?el5} %define _initddir %{_sysconfdir}/rc.d/init.d %endif Name: munge Version: 0.5.8 Release: 4%{?dist} Summary: Enables uid & gid authentication across a host cluster Group: Applications/System License: GPLv2+ URL: http://home.gna.org/munge/ Source0: http://download.gna.org/munge/%{version}/munge-%{version}.tar.bz2 Source1: create-munge-key Source2: munge.logrotate Patch0: initd-pass-rpmlint.patch Patch2: runas-munge-user.patch Patch3: check-key-exists.patch Patch4: remove-GPL_LICENSED-cpp.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: zlib-devel bzip2-devel openssl-devel Requires(post): chkconfig Requires(pre): shadow-utils Requires(preun): chkconfig, initscripts Requires(postun): initscripts %description MUNGE (MUNGE Uid 'N' Gid Emporium) is an authentication service for creating and validating credentials. It is designed to be highly scalable for use in an HPC cluster environment. It allows a process to authenticate the UID and GID of another local or remote process within a group of hosts having common users and groups. These hosts form a security realm that is defined by a shared cryptographic key. Clients within this security realm can create and validate credentials without the use of root privileges, reserved ports, or platform-specific methods. %package devel Summary: Development files for uid * gid authentication acrosss a host cluster Requires: %{name} = %{version}-%{release} Group: Applications/System %description devel Header files for developing using MUNGE. %prep %setup -q %patch0 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %build # Won't compile without -DGNU_SOURCE on fc11,12 at least. %if ! 0%{?el4}%{?el5} export CFLAGS="%{optflags} -D_GNU_SOURCE" %endif %configure --disable-static # Get rid of some rpaths for /usr/sbin sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT # mv init.d script form /etc/init.d to %{_initddir} mkdir -p $RPM_BUILD_ROOT/%{_initddir} mv $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/munge $RPM_BUILD_ROOT/%{_initddir}/munge # chmod 644 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/munge # Exclude .la files rm $RPM_BUILD_ROOT/%{_libdir}/libmunge.la install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT/%{_sbindir}/create-munge-key install -p -D -m 644 %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/munge # Fix a few permissions chmod 700 $RPM_BUILD_ROOT%{_var}/lib/munge $RPM_BUILD_ROOT%{_var}/log/munge chmod 700 $RPM_BUILD_ROOT%{_sysconfdir}/munge # Create and empty key file to be marked as a ghost file below. # i.e it is not actually included in the rpm, only the record # of it is. # Can't be done on .el4 or .el5. %if ! 0%{?el4}%{?el5} touch $RPM_BUILD_ROOT%{_sysconfdir}/munge/munge.key chmod 400 $RPM_BUILD_ROOT%{_sysconfdir}/munge/munge.key %endif %clean rm -rf $RPM_BUILD_ROOT %postun /sbin/ldconfig if [ "$1" -ge "1" ] ; then /sbin/service munge condrestart >/dev/null 2>&1 || : fi %preun if [ $1 = 0 ]; then /sbin/service munge stop > /dev/null 2>&1 || : /sbin/chkconfig --del munge || : fi %pre getent group munge >/dev/null || groupadd -r munge getent passwd munge >/dev/null || \ useradd -r -g munge -d %{_var}/run/munge -s /sbin/nologin \ -c "Runs Uid 'N' Gid Emporium" munge exit 0 %post /sbin/chkconfig --add munge || : /sbin/ldconfig %files %defattr(-,root,root,-) %{_initddir}/munge %{_bindir}/munge %{_bindir}/remunge %{_bindir}/unmunge %{_sbindir}/munged %{_sbindir}/create-munge-key %{_mandir}/man1/munge.1.gz %{_mandir}/man1/remunge.1.gz %{_mandir}/man1/unmunge.1.gz %{_mandir}/man7/munge.7.gz %{_mandir}/man8/munged.8.gz %{_libdir}/libmunge.so.2 %{_libdir}/libmunge.so.2.0.0 %attr(0700,munge,munge) %dir %{_var}/run/munge %attr(0700,munge,munge) %dir %{_var}/log/munge %attr(0700,munge,munge) %dir %{_sysconfdir}/munge %if ! 0%{?el4}%{?el5} %attr(0400,munge,munge) %ghost %{_sysconfdir}/%{name}/%{name}.key %endif %attr(0700,munge,munge) %dir %{_var}/lib/munge %config(noreplace) %{_sysconfdir}/sysconfig/munge %config(noreplace) %{_sysconfdir}/logrotate.d/munge %doc AUTHORS BUGS ChangeLog COPYING DISCLAIMER %doc JARGON META NEWS QUICKSTART README %doc doc %files devel %defattr(-,root,root,-) %{_includedir}/munge.h %{_libdir}/libmunge.so %{_mandir}/man3/munge.3.gz %{_mandir}/man3/munge_ctx.3.gz %{_mandir}/man3/munge_ctx_copy.3.gz %{_mandir}/man3/munge_ctx_create.3.gz %{_mandir}/man3/munge_ctx_destroy.3.gz %{_mandir}/man3/munge_ctx_get.3.gz %{_mandir}/man3/munge_ctx_set.3.gz %{_mandir}/man3/munge_ctx_strerror.3.gz %{_mandir}/man3/munge_decode.3.gz %{_mandir}/man3/munge_encode.3.gz %{_mandir}/man3/munge_enum.3.gz %{_mandir}/man3/munge_enum_int_to_str.3.gz %{_mandir}/man3/munge_enum_is_valid.3.gz %{_mandir}/man3/munge_enum_str_to_int.3.gz %{_mandir}/man3/munge_strerror.3.gz %changelog * Thu Jul 22 2009 Steve Traylen - 0.5.8-4 - Expand defattr with 4th argument for default directory perms. - Explict attr for non 0644 files and 0755 directories. * Thu Jul 22 2009 Steve Traylen - 0.5.8-3 - Append -DGNU_SOURCE to default CFLAGS. * Wed Jul 22 2009 Steve Traylen - 0.5.8-2 - Correct License to GPLv2+ - Move man3 pages to the devel package. - Remove +x bit from create-munge-key source. - Preserve timestamps when installing files. - ldconfig not needed on -devel package. - Do a condrestart when upgrading. - Remove redundant files from docs. - chmod /var/lib/munge /var/log/munge and /etc/munge to 700. - Apply patch to not error when GPL_LICENSED is not set. - Patch service script to print error on if munge.key not present on start only and with a better error. - Remove dont-exit-form-lib.patch. munge is expecting munge to do this. - Remove libgcrypt-devel from BuildRequires, uses openssl by default anyway. - Mark the munge.key as a ghost file. * Fri Jun 12 2009 Steve Traylen - 0.5.8-1 - First Build