Blob Blame History Raw
Name:           cockpit
Version:        0.20
Release:        1%{?dist}
Summary:        A user interface for Linux servers

License:        LGPLv2+
URL:            http://cockpit-project.org/
Source0:        https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.bz2
Source1:        cockpit.pam

BuildRequires: pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(gudev-1.0)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(udisks2) >= 2.1.0
BuildRequires: pkgconfig(libgsystem)
BuildRequires: storaged
BuildRequires: pkgconfig(libsystemd-daemon)
BuildRequires: pkgconfig(polkit-agent-1) >= 0.105
BuildRequires: pkgconfig(accountsservice) >= 0.6.35
BuildRequires: pam-devel
BuildRequires: keyutils-libs-devel

BuildRequires: autoconf automake libtool
BuildRequires: intltool
BuildRequires: jsl 
BuildRequires: gtk-doc
BuildRequires: libssh >= 0.6.0
BuildRequires: libssh-devel
BuildRequires: openssl-devel
BuildRequires: zlib-devel
BuildRequires: krb5-devel
BuildRequires: perl-JavaScript-Minifier-XS
BuildRequires: perl-Locale-PO
BuildRequires: perl-JSON
BuildRequires: libgsystem-devel
BuildRequires: libxslt-devel
BuildRequires: docbook-style-xsl
BuildRequires: dbus-devel
BuildRequires: glib-networking

# For selinux
BuildRequires: selinux-policy-devel
BuildRequires: checkpolicy
BuildRequires: /usr/share/selinux/devel/policyhelp

Requires: dbus
Requires: glib-networking
Requires: realmd
Requires: udisks2 >= 2.1.0
Requires: mdadm
Requires: lvm2
Requires: storaged

Requires: cockpit-assets

# For selinux
Requires: selinux-policy
Requires: selinux-policy-targeted
Requires(post): /usr/sbin/semodule, /sbin/restorecon, /sbin/fixfiles
Requires(postun): /usr/sbin/semodule, /sbin/restorecon, /sbin/fixfiles

Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
BuildRequires: systemd


%description
Cockpit runs in a browser and can manage your network of GNU/Linux
machines.


%package assets
Summary: Web assets for Cockpit
Requires: %{name} = %{version}-%{release}
BuildArch: noarch

%description assets
This package contains the web assets used by Cockpit.


%prep
%setup -q
rm -rf src/libgsystem/*.{c,doap}

%build
%configure --disable-static --disable-silent-rules --with-cockpit-user=cockpit-ws
make %{?_smp_mflags} all selinux

%check
# The check doesnt run on koji as it requires network
#make check

%install
%make_install
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/cockpit
install -d %{buildroot}%{_datadir}/selinux/targeted
install -p -m 644 cockpit.pp %{buildroot}%{_datadir}/selinux/targeted/
rm -f %{buildroot}/%{_libdir}/cockpit/*.so
rm -f %{buildroot}%{_sysconfdir}/dbus-1/system.d/com.redhat.Cockpit.DBusTests.Test.conf
rm -f %{buildroot}%{_unitdir}/cockpit-testing.service
rm -f %{buildroot}%{_unitdir}/cockpit-testing.socket
rm -f %{buildroot}%{_unitdir}/test-server.service
rm -f %{buildroot}%{_unitdir}/test-server.socket
rm -rf %{buildroot}%{_datadir}/cockpit-test-assets


%files
%doc AUTHORS COPYING README.md
%doc %{_mandir}/man5/cockpit.conf.5.gz
%doc %{_mandir}/man8/cockpit-ws.8.gz
%doc %{_mandir}/man8/cockpitd.8.gz
%config(noreplace) %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/pam.d/cockpit
%{_unitdir}/cockpit.service
%{_unitdir}/cockpit.socket
%{_prefix}/lib/firewalld/services/cockpit.xml
%{_datadir}/dbus-1/services/com.redhat.Cockpit.service
%{_sbindir}/remotectl
%{_libexecdir}/cockpitd
%{_libexecdir}/cockpit-ws
%{_libexecdir}/cockpit-agent
# HACK: We need to do attr because stripping debuginfo removes setuid
# https://bugzilla.redhat.com/show_bug.cgi?id=117858
%attr(4755, -, -) %{_libexecdir}/cockpit-polkit
%attr(4750, root, cockpit-ws) %{_libexecdir}/cockpit-session
%{_libdir}/security/pam_reauthorize.so
%attr(775, -, wheel) %{_sharedstatedir}/%{name}
%attr(755, root, root) %{_datadir}/selinux/targeted/cockpit.pp

%files assets
%{_datadir}/%{name}

%pre
getent group cockpit-ws >/dev/null || groupadd -r cockpit-ws
getent group cockpit-user-admin >/dev/null || groupadd -r cockpit-user-admin
getent group cockpit-realm-admin >/dev/null || groupadd -r cockpit-realm-admin
getent group cockpit-storage-admin >/dev/null || groupadd -r cockpit-storage-admin
getent passwd cockpit-ws >/dev/null || useradd -r -g cockpit-ws -d / -s /sbin/nologin -c "User for cockpit-ws" cockpit-ws

%post
%systemd_post cockpit.service
# firewalld only partially picks up changes to its services files without this
test -f %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || true
/usr/sbin/semodule -s targeted -i %{_datadir}/selinux/targeted/cockpit.pp &> /d
/sbin/fixfiles -R cockpit restore || :
/sbin/restorecon -R %{_sharedstatedir}/%{name} || :

%preun
%systemd_preun cockpit.service
if [ $1 -eq 0 ] ; then
  /usr/sbin/semodule -s targeted -r cockpit &> /dev/null || :
  /sbin/fixfiles -R cockpit restore || :
  [ -d %{_sharedstatedir}/%{name} ]  && \
    /sbin/restorecon -R %{_sharedstatedir}/%{name} &> /dev/null || :
fi

%postun
%systemd_postun_with_restart cockpit.service 


%changelog
* Thu Aug 14 2014 Stef Walter <stefw@redhat.com> 0.20-1
- Update to 0.20 release

* Thu Aug 07 2014 Stef Walter <stefw@redhat.com> 0.19-1
- Update to 0.19 release

* Fri Aug 01 2014 Stef Walter <stefw@redhat.com> 0.18-2
- Distribute our own selinux policy in cockpit RPM
  until available for real in F21 and later

* Wed Jul 30 2014 Stef Walter <stefw@redhat.com> 0.18-1
- Update to 0.18 release
- Add glib-networking build requirement

* Thu Jul 17 2014 Stef Walter <stefw@redhat.com> 0.16-1
- Update to 0.16 release

* Thu Jul 10 2014 Stef Walter <stefw@redhat.com> 0.15-1
- Update to 0.15 release
- Put pam_reauthorize.so in the cockpit PAM stack

* Thu Jul 03 2014 Stef Walter <stefw@redhat.com> 0.14-1
- Update to 0.14 release

* Mon Jun 30 2014 Stef Walter <stefw@redhat.com> 0.13-1
- Update to 0.13 release

* Tue Jun 24 2014 Stef Walter <stefw@redhat.com> 0.12-1
- Update to upstream 0.12 release

* Fri Jun 20 2014 Stef Walter <stefw@redhat.com> 0.11-1
- Update to upstream 0.11 release

* Thu Jun 12 2014 Stef Walter <stefw@redhat.com> 0.10-1
- Update to upstream 0.10 release

* Fri May 23 2014 Stef Walter <stefw@redhat.com> 0.9-1
- Update to upstream 0.9 release
- Fix file attribute for cockpit-polkit

* Wed May 21 2014 Stef Walter <stefw@redhat.com> 0.8-1
- Update to upstream 0.8 release
- cockpitd now runs as a user session DBus service

* Mon May 19 2014 Stef Walter <stefw@redhat.com> 0.7-1
- Update to upstream 0.7 release

* Wed May 14 2014 Stef Walter <stefw@redhat.com> 0.6-1
- Update to upstream 0.6 release

* Tue Apr 15 2014 Stef Walter <stefw@redhat.com> 0.5-1
- Update to upstream 0.5 release

* Thu Apr 03 2014 Stef Walter <stefw@redhat.com> 0.4-1
- Update to upstream 0.4 release
- Lots of packaging cleanup and polish

* Fri Mar 28 2014 Stef Walter <stefw@redhat.com> 0.3-1
- Update to upstream 0.3 release

* Wed Feb 05 2014 Patrick Uiterwijk (LOCAL) <puiterwijk@redhat.com> - 0.2-0.4.20140204git5e1faad
- Redid the release tag

* Tue Feb 04 2014 Patrick Uiterwijk (LOCAL) <puiterwijk@redhat.com> - 0.2-0.3.5e1faadgit
- Fixed license tag
- Updated to new FSF address upstream
- Removing libgsystem before build
- Now claiming specific manpages
- Made the config files noreplace
- Removed the test assets
- Put the web assets in a subpackage

* Tue Feb 04 2014 Patrick Uiterwijk (LOCAL) <puiterwijk@redhat.com> - 0.2-0.2.5e1faadgit
- Patch libgsystem out