Blame SPECS/fapolicyd.spec

2ceba8
%global selinuxtype targeted
2ceba8
%global moduletype contrib
c944e2
%define semodule_version 0.4
2ceba8
d51d46
Summary: Application Whitelisting Daemon
d51d46
Name: fapolicyd
abc874
Version: 1.1.3
1be6b6
Release: 8%{?dist}.1
d51d46
License: GPLv3+
d51d46
URL: http://people.redhat.com/sgrubb/fapolicyd
d51d46
Source0: https://people.redhat.com/sgrubb/fapolicyd/%{name}-%{version}.tar.gz
2ceba8
Source1: https://github.com/linux-application-whitelisting/%{name}-selinux/releases/download/v%{semodule_version}/%{name}-selinux-%{semodule_version}.tar.gz
2ceba8
BuildRequires: gcc
d51d46
BuildRequires: kernel-headers
d51d46
BuildRequires: autoconf automake make gcc libtool
abc874
BuildRequires: systemd-devel openssl-devel rpm-devel file-devel file
d51d46
BuildRequires: libcap-ng-devel libseccomp-devel lmdb-devel
d51d46
BuildRequires: python3-devel
2e13dd
BuildRequires: python2-devel
6358ee
BuildRequires: uthash-devel
6358ee
Requires: rpm-plugin-fapolicyd >= 4.14.3-12
2ceba8
Recommends: %{name}-selinux
d51d46
Requires(pre): shadow-utils
d51d46
Requires(post): systemd-units
d51d46
Requires(preun): systemd-units
d51d46
Requires(postun): systemd-units
d51d46
6358ee
# we are making the dnf-plugin completelly dummy because of
6358ee
# https://bugzilla.redhat.com/show_bug.cgi?id=1929163
6358ee
# we require the rpm-plugin from now on and the dnf-plugin still needs to be part of
6358ee
# the fapolicyd package because it provides safe upgrade path
c944e2
Patch1: fapolicyd-dnf-plugin.patch
c944e2
Patch2: fapolicyd-selinux.patch
abc874
Patch3: fagenrules-group.patch
abc874
abc874
Patch4: fapolicyd-fgets-update-thread.patch
abc874
Patch5: fapolicyd-openssl.patch
abc874
Patch6: fapolicyd-user-group-doc.patch
abc874
Patch7: fapolicyd-cli-segfault.patch
abc874
Patch8: fapolicyd-sighup.patch
abc874
Patch9: fapolicyd-readme.patch
099309
1be6b6
# 2137251 - statically linked app can execute untrusted app [rhel-8.7.0.z]
1be6b6
Patch10: fapolicyd-static-app.patch
1be6b6
d51d46
%description
d51d46
Fapolicyd (File Access Policy Daemon) implements application whitelisting
d51d46
to decide file access rights. Applications that are known via a reputation
d51d46
source are allowed access while unknown applications are not. The daemon
d51d46
makes use of the kernel's fanotify interface to determine file access rights.
d51d46
2ceba8
%package        selinux
2ceba8
Summary:        Fapolicyd selinux
2ceba8
Group:          Applications/System
2ceba8
Requires:       %{name} = %{version}-%{release}
2ceba8
BuildRequires:  selinux-policy
2ceba8
BuildRequires:  selinux-policy-devel
2ceba8
BuildArch: noarch
6358ee
%{?selinux_requires}
099309
2ceba8
%description    selinux
2ceba8
The %{name}-selinux package contains selinux policy for the %{name} daemon.
2e13dd
d51d46
%prep
2ceba8
d51d46
%setup -q
d51d46
2ceba8
# selinux
2ceba8
%setup -q -D -T -a 1
2e13dd
c944e2
%patch1 -p1 -b .plugin
6358ee
%patch2 -p1 -b .selinux
abc874
%patch3 -p1 -b .group
abc874
%patch4 -p1 -b .update-thread
abc874
%patch5 -p1 -b .openssl
abc874
%patch6 -p1 -b .user-group
abc874
%patch7 -p1 -b .segfault
abc874
%patch8 -p1 -b .sighup
abc874
%patch9 -p1 -b .readme
6358ee
1be6b6
%patch10 -p1 -b .static
1be6b6
c944e2
# generate rules for python
c944e2
sed -i "s|%python2_path%|`readlink -f %{__python2}`|g" rules.d/*.rules
c944e2
sed -i "s|%python3_path%|`readlink -f %{__python3}`|g" rules.d/*.rules
6358ee
c944e2
interpret=`readelf -e /usr/bin/bash \
c944e2
                   | grep Requesting \
c944e2
                   | sed 's/.$//' \
c944e2
                   | rev | cut -d" " -f1 \
c944e2
                   | rev`
6358ee
c944e2
sed -i "s|%ld_so_path%|`realpath $interpret`|g" rules.d/*.rules
2ceba8
d51d46
%build
d51d46
./autogen.sh
2ceba8
%configure \
2ceba8
    --with-audit \
2ceba8
    --with-rpm \
2ceba8
    --disable-shared
2ceba8
c944e2
%make_build
d51d46
2ceba8
# selinux
2ceba8
pushd %{name}-selinux-%{semodule_version}
2ceba8
make
2ceba8
popd
2ceba8
c944e2
%check
c944e2
make check
c944e2
abc874
# Selinux
2ceba8
%pre selinux
2ceba8
%selinux_relabel_pre -s %{selinuxtype}
2ceba8
d51d46
%install
c944e2
%make_install
d51d46
mkdir -p %{buildroot}/%{python3_sitelib}/dnf-plugins/
d51d46
install -p -m 644 dnf/%{name}-dnf-plugin.py %{buildroot}/%{python3_sitelib}/dnf-plugins/
d51d46
install -p -m 644 -D init/%{name}-tmpfiles.conf %{buildroot}/%{_tmpfilesdir}/%{name}.conf
d51d46
mkdir -p %{buildroot}/%{_localstatedir}/lib/%{name}
d51d46
mkdir -p %{buildroot}/run/%{name}
c944e2
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/trust.d
c944e2
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/rules.d
c944e2
# get list of file names between known-libs and restrictive from sample-rules/README-rules
c944e2
cat %{buildroot}/%{_datadir}/%{name}/sample-rules/README-rules \
c944e2
  | grep -A 100 'known-libs' \
c944e2
  | grep -B 100 'restrictive' \
c944e2
  | grep '^[0-9]' > %{buildroot}/%{_datadir}/%{name}/default-ruleset.known-libs
c944e2
chmod 644 %{buildroot}/%{_datadir}/%{name}/default-ruleset.known-libs
d51d46
2ceba8
# selinux
2ceba8
install -d %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}
2ceba8
install -m 0644 %{name}-selinux-%{semodule_version}/%{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}
2ceba8
install -d -p %{buildroot}%{_datadir}/selinux/devel/include/%{moduletype}
2ceba8
install -p -m 644 %{name}-selinux-%{semodule_version}/%{name}.if %{buildroot}%{_datadir}/selinux/devel/include/%{moduletype}/ipp-%{name}.if
2ceba8
2ceba8
#cleanup
c944e2
find %{buildroot} \( -name '*.la' -o -name '*.a' \) -delete
c944e2
c944e2
%define manage_default_rules   default_changed=0 \
c944e2
  # check changed fapolicyd.rules \
c944e2
  if [ -e %{_sysconfdir}/%{name}/%{name}.rules ]; then \
c944e2
    diff %{_sysconfdir}/%{name}/%{name}.rules %{_datadir}/%{name}/%{name}.rules.known-libs >/dev/null 2>&1 || { \
c944e2
      default_changed=1; \
c944e2
      #echo "change detected in fapolicyd.rules"; \
c944e2
      } \
c944e2
  fi \
c944e2
  if [ -e %{_sysconfdir}/%{name}/rules.d ]; then \
c944e2
    default_ruleset='' \
c944e2
    # get listing of default rule files in known-libs \
c944e2
    [ -e %{_datadir}/%{name}/default-ruleset.known-libs ] && default_ruleset=`cat %{_datadir}/%{name}/default-ruleset.known-libs` \
c944e2
    # check for removed or added files \
c944e2
    default_count=`echo "$default_ruleset" | wc -l` \
c944e2
    current_count=`ls -1 %{_sysconfdir}/%{name}/rules.d/*.rules | wc -l` \
c944e2
    [ $default_count -eq $current_count ] || { \
c944e2
      default_changed=1; \
c944e2
      #echo "change detected in number of rule files d:$default_count vs c:$current_count"; \
c944e2
      } \
c944e2
    for file in %{_sysconfdir}/%{name}/rules.d/*.rules; do \
c944e2
      if echo "$default_ruleset" | grep -q "`basename $file`"; then \
c944e2
        # compare content of the rule files \
c944e2
        diff $file %{_datadir}/%{name}/sample-rules/`basename $file` >/dev/null 2>&1 || { \
c944e2
          default_changed=1; \
c944e2
          #echo "change detected in `basename $file`"; \
c944e2
          } \
c944e2
      else \
c944e2
        # added file detected \
c944e2
        default_changed=1 \
c944e2
        #echo "change detected in added rules file `basename $file`"; \
c944e2
      fi \
c944e2
    done \
c944e2
  fi \
c944e2
  # remove files if no change against default rules detected \
c944e2
  [ $default_changed -eq 0 ] && rm -rf %{_sysconfdir}/%{name}/%{name}.rules %{_sysconfdir}/%{name}/rules.d/* || : \
c944e2
2ceba8
d51d46
%pre
d51d46
getent passwd %{name} >/dev/null || useradd -r -M -d %{_localstatedir}/lib/%{name} -s /sbin/nologin -c "Application Whitelisting Daemon" %{name}
c944e2
if [ $1 -eq 2 ]; then
c944e2
# detect changed default rules in case of upgrade
c944e2
%manage_default_rules
c944e2
fi
099309
d51d46
%post
c944e2
# if no pre-existing rule file
c944e2
if [ ! -e %{_sysconfdir}/%{name}/%{name}.rules ] ; then
c944e2
 files=`ls %{_sysconfdir}/%{name}/rules.d/ 2>/dev/null | wc -w`
c944e2
 # Only if no pre-existing component rules
c944e2
 if [ "$files" -eq 0 ] ; then
c944e2
  ## Install the known libs policy
c944e2
  for rulesfile in `cat %{_datadir}/%{name}/default-ruleset.known-libs`; do
c944e2
    cp %{_datadir}/%{name}/sample-rules/$rulesfile  %{_sysconfdir}/%{name}/rules.d/
c944e2
  done
c944e2
  chgrp %{name} %{_sysconfdir}/%{name}/rules.d/*
c944e2
  if [ -x /usr/sbin/restorecon ] ; then
c944e2
   # restore correct label
c944e2
   /usr/sbin/restorecon -F %{_sysconfdir}/%{name}/rules.d/*
c944e2
  fi
abc874
  fagenrules >/dev/null
c944e2
 fi
c944e2
fi
d51d46
%systemd_post %{name}.service
d51d46
d51d46
%preun
d51d46
%systemd_preun %{name}.service
c944e2
if [ $1 -eq 0 ]; then
c944e2
# detect changed default rules in case of uninstall
c944e2
%manage_default_rules
c944e2
else
c944e2
  [ -e %{_sysconfdir}/%{name}/%{name}.rules ] && rm -rf %{_sysconfdir}/%{name}/rules.d/* || :
c944e2
fi
d51d46
d51d46
%postun
d51d46
%systemd_postun_with_restart %{name}.service
d51d46
d51d46
%files
d51d46
%doc README.md
d51d46
%{!?_licensedir:%global license %%doc}
d51d46
%license COPYING
2ceba8
%attr(755,root,%{name}) %dir %{_datadir}/%{name}
c944e2
%attr(755,root,%{name}) %dir %{_datadir}/%{name}/sample-rules
c944e2
%attr(644,root,%{name}) %{_datadir}/%{name}/default-ruleset.known-libs
c944e2
%attr(644,root,%{name}) %{_datadir}/%{name}/sample-rules/*
c944e2
%attr(644,root,%{name}) %{_datadir}/%{name}/fapolicyd-magic.mgc
d51d46
%attr(750,root,%{name}) %dir %{_sysconfdir}/%{name}
c944e2
%attr(750,root,%{name}) %dir %{_sysconfdir}/%{name}/trust.d
c944e2
%attr(750,root,%{name}) %dir %{_sysconfdir}/%{name}/rules.d
c944e2
%ghost %verify(not md5 size mtime) %attr(644,root,%{name}) %{_sysconfdir}/%{name}/rules.d/*
c944e2
%ghost %verify(not md5 size mtime) %attr(644,root,%{name}) %{_sysconfdir}/%{name}/%{name}.rules
c944e2
%ghost %verify(not md5 size mtime) %attr(644,root,%{name}) %{_sysconfdir}/%{name}/compiled.rules
d51d46
%config(noreplace) %attr(644,root,%{name}) %{_sysconfdir}/%{name}/%{name}.conf
2ceba8
%config(noreplace) %attr(644,root,%{name}) %{_sysconfdir}/%{name}/%{name}.trust
d51d46
%attr(644,root,root) %{_unitdir}/%{name}.service
d51d46
%attr(644,root,root) %{_tmpfilesdir}/%{name}.conf
d51d46
%attr(755,root,root) %{_sbindir}/%{name}
d51d46
%attr(755,root,root) %{_sbindir}/%{name}-cli
c944e2
%attr(755,root,root) %{_sbindir}/fagenrules
d51d46
%attr(644,root,root) %{_mandir}/man8/*
d51d46
%attr(644,root,root) %{_mandir}/man5/*
d51d46
%attr(644,root,root) %{_mandir}/man1/*
c944e2
%ghost %attr(440,%{name},%{name}) %verify(not md5 size mtime) %{_localstatedir}/log/%{name}-access.log
d51d46
%attr(770,root,%{name}) %dir %{_localstatedir}/lib/%{name}
d51d46
%attr(770,root,%{name}) %dir /run/%{name}
c944e2
%ghost %attr(660,root,%{name}) /run/%{name}/%{name}.fifo
c944e2
%ghost %attr(660,%{name},%{name}) %verify(not md5 size mtime) %{_localstatedir}/lib/%{name}/data.mdb
c944e2
%ghost %attr(660,%{name},%{name}) %verify(not md5 size mtime) %{_localstatedir}/lib/%{name}/lock.mdb
d51d46
%{python3_sitelib}/dnf-plugins/%{name}-dnf-plugin.py
d51d46
%{python3_sitelib}/dnf-plugins/__pycache__/%{name}-dnf-plugin.*.pyc
d51d46
2ceba8
# selinux
2ceba8
%files selinux
2ceba8
%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
c944e2
%ghost %verify(not md5 size mode mtime) %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
2ceba8
%{_datadir}/selinux/devel/include/%{moduletype}/ipp-%{name}.if
2ceba8
2ceba8
%post selinux
2ceba8
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
6358ee
%selinux_relabel_post -s %{selinuxtype}
2ceba8
2ceba8
%postun selinux
2ceba8
if [ $1 -eq 0 ]; then
2ceba8
    %selinux_modules_uninstall -s %{selinuxtype} %{name}
2ceba8
fi
2ceba8
2ceba8
%posttrans selinux
2ceba8
%selinux_relabel_post -s %{selinuxtype}
2ceba8
d51d46
%changelog
1be6b6
* Wed Oct 26 2022 Radovan Sroka <rsroka@redhat.com> - 1.1.3-8.1
1be6b6
RHEL 8.7.0.Z ERRATUM
1be6b6
- statically linked app can execute untrusted app
1be6b6
Resolves: rhbz#2137251
1be6b6
abc874
* Fri Aug 05 2022 Radovan Sroka <rsroka@redhat.com> - 1.1.3-8
abc874
RHEL 8.7.0 ERRATUM
abc874
- rebase fapolicyd to the latest stable vesion
abc874
Resolves: rhbz#2100087
abc874
- fapolicyd does not correctly handle SIGHUP
abc874
Resolves: rhbz#2070639
abc874
- fapolicyd often breaks package updates
abc874
Resolves: rhbz#2111243
abc874
- drop libgcrypt in favour of openssl
abc874
Resolves: rhbz#2111935
abc874
- fapolicyd.rules doesn't advertise that using a username/groupname instead of uid/gid also works
abc874
Resolves: rhbz#2103914
abc874
- fapolicyd gets way too easily killed by OOM killer
abc874
Resolves: rhbz#2100089
abc874
- compiled.rules file ownership and mode
abc874
Resolves: rhbz#2066653
7478ff
- Faulty handling of static applications
abc874
Resolves: rhbz#2084497
abc874
- Introduce ppid rule attribute
abc874
Resolves: rhbz#2102563
abc874
- CVE-2022-1117 fapolicyd: fapolicyd wrongly prepares ld.so path [rhel-8.7.0]
abc874
Resolves: rhbz#2069121
abc874
- Fapolicyd denies access to /usr/lib64/ld-2.28.so [rhel-8.7.0]
abc874
Resolves: rhbz#2068105
c944e2
c944e2
* Wed Feb 16 2022 Radovan Sroka <rsroka@redhat.com> - 1.1-1
c944e2
RHEL 8.6.0 ERRATUM
c944e2
- rebase to 1.1
c944e2
Resolves: rhbz#1939379
c944e2
- introduce rules.d feature
c944e2
Resolves: rhbz#2054741
c944e2
- remove pretrans scriptlet
c944e2
Resolves: rhbz#2051485
c944e2
c944e2
* Mon Dec 13 2021 Zoltan Fridrich <zfridric@redhat.com> - 1.0.4-2
c944e2
RHEL 8.6.0 ERRATUM
c944e2
- rebase to 1.0.4
c944e2
- added rpm_sha256_only option
c944e2
- added trust.d directory
c944e2
- allow file names with whitespace in trust files
c944e2
- use full paths in trust files
c944e2
Resolves: rhbz#1939379
c944e2
- fix libc.so getting identified as application/x-executable
c944e2
Resolves: rhbz#1989272
c944e2
- fix fapolicyd-dnf-plugin reporting as '<invalid>'
c944e2
Resolves: rhbz#1997414
c944e2
- fix selinux DSP module definition in spec file
c944e2
Resolves: rhbz#2014445
c944e2
c944e2
* Thu Aug 19 2021 Radovan Sroka <rsroka@redhat.com> - 1.0.2-7
6358ee
- fapolicyd abnormally exits by executing sosreport
6358ee
- fixed multiple problems with unlink()
6358ee
- fapolicyd breaks system upgrade, leaving system in dead state - complete fix
c944e2
Resolves: rhbz#1943251
6358ee
6358ee
* Tue Feb 16 2021 Radovan Sroka <rsroka@redhat.com> - 1.0.2-3
6358ee
RHEL 8.4.0 ERRATUM
6358ee
- rebase to 1.0.2
6358ee
- strong dependency on rpm/rpm-plugin-fapolicyd
6358ee
- installed dnf-plugin is dummy and we are not using it anymore
6358ee
- enabled integrity setting
6358ee
Resolves: rhbz#1887451
6358ee
- added make check
6358ee
- Adding DISA STIG during OS installation causes 'ipa-server-install' to fail
0af8c4
- fixed java detection
6358ee
Resolves: rhbz#1895435
6358ee
- dnf update fails when fapolicyd is enabled
6358ee
Resolves: rhbz#1876975
6358ee
- fapolicyd breaks system upgrade, leaving system in dead state - complete fix
6358ee
Resolves: rhbz#1896875
099309
2ceba8
* Tue Jun 30 2020 Radovan Sroka <rsroka@redhat.com> - 1.0-3
2ceba8
RHEL 8.3 ERRATUM
2ceba8
- fixed manpage fapolicyd-conf
2ceba8
Resolves: rhbz#1817413
2ceba8
2ceba8
* Mon May 25 2020 Radovan Sroka <rsroka@redhat.com> - 1.0-2
2ceba8
RHEL 8.3 ERRATUM
2ceba8
- rebase to v1.0
2ceba8
- installed multiple policies to /usr/share/fapolicyd
2ceba8
  - known-libs (default)
2ceba8
  - restrictive
2ceba8
- installed fapolicyd.trust file
2ceba8
- enhanced fapolicyd-cli
2ceba8
Resolves: rhbz#1817413
2ceba8
- introduced fapolicyd-selinux that provides SELinux policy module
2ceba8
Resolves: rhbz#1714529
2ceba8
2e13dd
* Tue Mar 03 2020 Radovan Sroka <rsroka@redhat.com> - 0.9.1-4
2e13dd
RHEL 8.2 ERRATUM
2e13dd
- fixed possible heap buffer overflow in elf parser
2e13dd
Resolves: rhbz#1807912
2e13dd
2e13dd
* Tue Feb 11 2020 Radovan Sroka <rsroka@redhat.com> - 0.9.1-3
2e13dd
RHEL 8.2 ERRATUM
2e13dd
- fixed build time python interpreter detection (spec)
2e13dd
- added python2-devel as a BuildRequires (spec)
2e13dd
- allow running bash scripts in home directories
2e13dd
Resolves: rhbz#1801872
2e13dd
2e13dd
* Wed Nov 20 2019 Radovan Sroka <rsroka@redhat.com> - 0.9.1-2
2e13dd
RHEL 8.2 ERRATUM
2e13dd
- rebase to v0.9.1
2e13dd
- updated default configuration with new syntax
2e13dd
- removed daemon mounts configuration
2e13dd
Resolves: rhbz#1759895
2e13dd
- default fapolicyd policy prevents Ansible from running
2e13dd
- added ansible rule to default ruleset
2e13dd
Resolves: rhbz#1746464
2e13dd
- suspicious logs on service start
2e13dd
Resolves: rhbz#1747494
2e13dd
- fapolicyd blocks dracut from generating initramfs
2e13dd
- added dracut rule to default configuration
2e13dd
Resolves: rhbz#1757736
2e13dd
- fapolicyd fails to identify perl interpreter
2e13dd
Resolves: rhbz#1765039
dcf032
d51d46
* Wed Jul 24 2019 Radovan Sroka <rsroka@redhat.com> - 0.8.10-3
d51d46
- added missing manpage for fapolicyd-cli
d51d46
Resolves: rhbz#1708015
d51d46
d51d46
* Mon Jul 22 2019 Radovan Sroka <rsroka@redhat.com> - 0.8.10-2
d51d46
- Convert hashes to lowercase like sha256sum outputs
d51d46
- Stop littering STDOUT output for dnf plugin in fapolicyd
d51d46
Resolves: rhbz#1721496
d51d46
d51d46
* Tue Jun 18 2019 Radovan Sroka <rsroka@redhat.com> - 0.8.10-1
d51d46
- new upstream release
d51d46
Resolves: rhbz#1673323
d51d46
d51d46
* Mon May 06 2019 Radovan Sroka <rsroka@redhat.com> - 0.8.9-1
d51d46
- New upstream release
d51d46
- imported from fedora30
d51d46
  resolves: rhbz#1673323
d51d46
d51d46
* Wed Mar 13 2019 Radovan Sroka <rsroka@redhat.com> - 0.8.8-2
d51d46
- backport some patches to resolve dac_override for fapolicyd
d51d46
d51d46
* Mon Mar 11 2019 Radovan Sroka <rsroka@redhat.com> - 0.8.8-1
d51d46
- New upstream release
d51d46
- Added new DNF plugin that can update the trust database when rpms are installed
d51d46
- Added support for FAN_OPEN_EXEC_PERM
d51d46
d51d46
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.7-3
d51d46
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
d51d46
d51d46
d51d46
* Wed Oct 03 2018 Steve Grubb <sgrubb@redhat.com> 0.8.7-1
d51d46
- New upstream bugfix release
d51d46
d51d46
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.6-2
d51d46
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
d51d46
d51d46
* Thu Jun 07 2018 Steve Grubb <sgrubb@redhat.com> 0.8.6-1
d51d46
- New upstream feature release
d51d46
d51d46
* Fri May 18 2018 Steve Grubb <sgrubb@redhat.com> 0.8.5-2
d51d46
- Add dist tag (#1579362)
d51d46
d51d46
* Fri Feb 16 2018 Steve Grubb <sgrubb@redhat.com> 0.8.5-1
d51d46
- New release