diff --git a/.cockpit.metadata b/.cockpit.metadata
index 8a82ffa..c7db194 100644
--- a/.cockpit.metadata
+++ b/.cockpit.metadata
@@ -1 +1 @@
-70a78561a0c958723655b998ed85bff6be166cdb SOURCES/cockpit-176.tar.xz
+9de4e1b0b328c6d1bb923f373d3f72e9ba2e0ede SOURCES/cockpit-173.1.tar.xz
diff --git a/.gitignore b/.gitignore
index 60d5ad0..44bd084 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/cockpit-176.tar.xz
+SOURCES/cockpit-173.1.tar.xz
diff --git a/SPECS/cockpit.spec b/SPECS/cockpit.spec
index 1ae0660..8fdce44 100644
--- a/SPECS/cockpit.spec
+++ b/SPECS/cockpit.spec
@@ -19,23 +19,14 @@
 
 %define _hardened_build 1
 
-# define to build the dashboard; i686 buildroot does not have libssh-devel
-%ifarch x86_64 %{arm} aarch64 ppc64le s390x
-%define build_dashboard 1
-%endif
+# define to build the dashboard
+# define build_dashboard 1
 
 # build basic packages like cockpit-bridge
 %define build_basic 1
 # build optional extensions like cockpit-docker
 %define build_optional 1
 
-# cockpit's firewall service definition moved to firewalld
-%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8
-%define firewalld_service 0
-%else
-%define firewalld_service 1
-%endif
-
 %define __lib lib
 
 # on RHEL 7.x we build subscriptions; superseded later by
@@ -66,12 +57,12 @@ Summary:        A user interface for Linux servers
 License:        LGPLv2+
 URL:            https://cockpit-project.org/
 
-Version:        176
+Version:        173.1
 %if %{defined wip}
-Release:        2.%{wip}%{?dist}
+Release:        1.%{wip}%{?dist}
 Source0:        cockpit-%{version}.tar.gz
 %else
-Release:        3%{?dist}
+Release:        1%{?dist}
 Source0:        https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.xz
 %endif
 
@@ -148,7 +139,7 @@ if [ -n "%{patches}" ]; then
     git config core.autocrlf false && git config core.safecrlf false && git config gc.auto 0
     git add -f . && git commit -a -q -m "Base" && git tag -a initial --message="initial"
     git am --whitespace=nowarn %{patches}
-    touch -r $(git diff --name-only initial..HEAD) .git Makefile.in
+    touch -r $(git diff --name-only initial..HEAD) .git dist/storaged/stamp $(find dist -type f)
     rm -rf .git
 fi
 
@@ -156,13 +147,11 @@ fi
 exec 2>&1
 %configure \
     --disable-silent-rules \
-    %{!?build_dashboard:--disable-ssh} \
     --with-cockpit-user=cockpit-ws \
     --with-selinux-config-type=etc_t \
-%if 0%{?rhel} >= 7 && 0%{?rhel} < 8
-    --without-storaged-iscsi-sessions \
-%endif
+    %{?rhel:--without-storaged-iscsi-sessions} \
     --with-appstream-data-packages='[ "appstream-data" ]' \
+    %{!?build_dashboard:--disable-ssh} \
     --with-nfs-client-package='"nfs-utils"' \
     %{?vdo_on_demand:--with-vdo-package='"vdo"'}
 make -j4 %{?extra_flags} all
@@ -177,9 +166,6 @@ make install-tests DESTDIR=%{buildroot}
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
 install -p -m 644 tools/cockpit.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/cockpit
 rm -f %{buildroot}/%{_libdir}/cockpit/*.so
-%if 0%{?firewalld_service} == 0
-rm -f %{buildroot}/%{_prefix}/%{__lib}/firewalld/services/cockpit.xml
-%endif
 install -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/
 
 # On RHEL we don't yet show options for changing language
@@ -204,7 +190,8 @@ echo '%{_libexecdir}/cockpit-ssh' >> base.list
 echo '%dir %{_datadir}/cockpit/dashboard' >> dashboard.list
 find %{buildroot}%{_datadir}/cockpit/dashboard -type f >> dashboard.list
 %else
-rm -rf %{buildroot}/%{_datadir}/cockpit/dashboard %{buildroot}/%{_datadir}/cockpit/ssh
+rm -rf %{buildroot}/%{_datadir}/cockpit/dashboard
+rm -rf %{buildroot}/%{_datadir}/%{name}/ssh
 touch dashboard.list
 %endif
 
@@ -245,9 +232,15 @@ find %{buildroot}%{_datadir}/cockpit/storaged -type f >> storaged.list
 echo '%dir %{_datadir}/cockpit/networkmanager' > networkmanager.list
 find %{buildroot}%{_datadir}/cockpit/networkmanager -type f >> networkmanager.list
 
+echo '%dir %{_datadir}/cockpit/ostree' > ostree.list
+find %{buildroot}%{_datadir}/cockpit/ostree -type f >> ostree.list
+
 echo '%dir %{_datadir}/cockpit/packagekit' >> packagekit.list
 find %{buildroot}%{_datadir}/cockpit/packagekit -type f >> packagekit.list
 
+echo '%dir %{_datadir}/cockpit/apps' >> packagekit.list
+find %{buildroot}%{_datadir}/cockpit/apps -type f >> packagekit.list
+
 echo '%dir %{_datadir}/cockpit/machines' > machines.list
 find %{buildroot}%{_datadir}/cockpit/machines -type f >> machines.list
 
@@ -311,7 +304,7 @@ rm -f %{buildroot}%{_libexecdir}/cockpit-ssh
 
 # when not building optional packages, remove their files
 %if 0%{?build_optional} == 0
-for pkg in apps dashboard docker kubernetes machines ovirt packagekit pcp playground storaged; do
+for pkg in apps dashboard docker kubernetes machines ostree ovirt packagekit pcp playground storaged; do
     rm -rf %{buildroot}/%{_datadir}/cockpit/$pkg
 done
 # files from -tests
@@ -322,11 +315,6 @@ rm -r %{buildroot}/%{_libexecdir}/cockpit-pcp %{buildroot}/%{_localstatedir}/lib
 rm -f %{buildroot}/%{_libexecdir}/cockpit-kube-auth %{buildroot}/%{_libexecdir}/cockpit-kube-launch %{buildroot}/%{_libexecdir}/cockpit-stub
 %endif
 
-# On RHEL, apps is not currently built
-%if 0%{?rhel}
-rm -rf %{buildroot}/%{_datadir}/%{name}/apps
-%endif
-
 sed -i "s|%{buildroot}||" *.list
 
 # Build the package lists for debug package, and move debug files to installed locations
@@ -469,11 +457,6 @@ Summary: Cockpit Web Service
 Requires: glib-networking
 Requires: openssl
 Requires: glib2 >= 2.37.4
-%if 0%{?firewalld_service}
-Conflicts: firewalld >= 0.6.0-1
-%else
-Conflicts: firewalld < 0.6.0-1
-%endif
 %if 0%{?fedora} >= 24 || 0%{?rhel} >= 8
 Recommends: sscg >= 2.3
 %endif
@@ -491,16 +474,14 @@ The Cockpit Web Service listens on the network, and authenticates users.
 %doc %{_mandir}/man8/pam_ssh_add.8.gz
 %config(noreplace) %{_sysconfdir}/cockpit/ws-certs.d
 %config(noreplace) %{_sysconfdir}/pam.d/cockpit
-%config %{_sysconfdir}/issue.d/cockpit.issue
+%config %{_sysconfdir}/issue.d/cockpit
 %config %{_sysconfdir}/motd.d/cockpit
 %{_datadir}/cockpit/motd/update-motd
 %{_datadir}/cockpit/motd/inactive.motd
 %{_unitdir}/cockpit.service
 %{_unitdir}/cockpit-motd.service
 %{_unitdir}/cockpit.socket
-%if 0%{?firewalld_service}
 %{_prefix}/%{__lib}/firewalld/services/cockpit.xml
-%endif
 %{_prefix}/%{__lib}/tmpfiles.d/cockpit-tempfiles.conf
 %{_sbindir}/remotectl
 %{_libdir}/security/pam_ssh_add.so
@@ -615,10 +596,25 @@ Dummy package from building optional packages only; never install or publish me.
 %package -n cockpit-storaged
 Summary: Cockpit user interface for storage, using udisks
 Requires: cockpit-shell >= %{required_base}
+%if 0%{?rhel} == 7 || 0%{?centos} == 7
 Requires: udisks2 >= 2.6
 Requires: udisks2-lvm2 >= 2.6
 Requires: udisks2-iscsi >= 2.6
 Requires: device-mapper-multipath
+%else
+%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
+Requires: udisks2 >= 2.6
+Recommends: udisks2-lvm2 >= 2.6
+Recommends: udisks2-iscsi >= 2.6
+Recommends: device-mapper-multipath
+%else
+# Fedora < 27
+Requires: storaged >= 2.1.1
+Recommends: storaged-lvm2 >= 2.1.1
+Recommends: storaged-iscsi >= 2.1.1
+Recommends: device-mapper-multipath
+%endif
+%endif
 %if 0%{?fedora} || 0%{?rhel} >= 8
 Requires: python3
 Requires: python3-dbus
@@ -652,6 +648,7 @@ These files are not required for running Cockpit.
 %{_prefix}/%{__lib}/cockpit-test-assets
 
 %package -n cockpit-machines
+BuildArch: noarch
 Summary: Cockpit user interface for virtual machines
 Requires: cockpit-bridge >= %{required_base}
 Requires: cockpit-system >= %{required_base}
@@ -686,6 +683,23 @@ The Cockpit components for managing oVirt virtual machines.
 
 %files -n cockpit-machines-ovirt -f ovirt.list
 
+%package -n cockpit-ostree
+BuildArch: noarch
+Summary: Cockpit user interface for rpm-ostree
+# Requires: Uses new translations functionality
+Requires: cockpit-bridge >= %{required_base}
+Requires: cockpit-system >= %{required_base}
+%if 0%{?fedora} > 0 && 0%{?fedora} < 24
+Requires: rpm-ostree >= 2015.10-1
+%else
+Requires: /usr/libexec/rpm-ostreed
+%endif
+
+%description -n cockpit-ostree
+The Cockpit components for managing software updates for ostree based systems.
+
+%files -n cockpit-ostree -f ostree.list
+
 %package -n cockpit-pcp
 Summary: Cockpit PCP integration
 Requires: cockpit-bridge >= %{required_base}
@@ -777,108 +791,67 @@ cluster. Installed on the Kubernetes master. This package is not yet complete.
 %endif
 
 %package -n cockpit-packagekit
-Summary: Cockpit user interface for package updates
+Summary: Cockpit user interface for packages
+BuildArch: noarch
 Requires: cockpit-bridge >= %{required_base}
 Requires: PackageKit
 
 %description -n cockpit-packagekit
-The Cockpit component for installing package updates, via PackageKit.
+The Cockpit components for installing OS updates and Cockpit add-ons,
+via PackageKit.
 
 %files -n cockpit-packagekit -f packagekit.list
 
 %endif # build optional extension packages
 
 %changelog
-* Thu Aug 30 2018 Martin Pitt <mpitt@redhat.com> 176-3
-- Storage: Offer installation of VDO on demand
-- Machines: Add disks to a virtual machine
-
-* Tue Aug 14 2018 Martin Pitt <mpitt@redhat.com> 173-3
-- Re-enable cockpit-kubernetes, Go is now available in
-  extras-rhel-7.6-go-toolset. (RCM-38564)
-
-* Tue Jul 31 2018 Martin Pitt <mpitt@redhat.com> 173-2
-- Update to 173 release
-- Kubernetes: VM detail page
-- Realmd: Install on demand
-- Temporarily disable cockpit-kubernetes, until Go becomes available
-  (RCM-38564)
-
-* Mon Jul 16 2018 Martin Pitt <mpitt@redhat.com> 172-2
-- Update to 172 release
-- Software Updates: Layout rework
-- Machines: Add virtual CPU configuration
-- Docker: Show container volumes
-
-* Thu Jun 14 2018 Martin Pitt <mpitt@redhat.com> 170-1
-- Update to 170 release
-- Software Updates: Layout rework
-- oVirt: Use authenticated libvirt connection by default rhbz#1297037
-
-* Wed May 30 2018 Martin Pitt <mpitt@redhat.com> 169-1
-- Update to 169 release
-- Storage: Offer installation of NFS client support on demand
-- Containers: Don't try to manage "overlay2" storage without a volume group
-- Machines: Fix "Start VM" checkbox layout
-- Software Updates: Fix security update icon rhbz#1582570
-- Drop obsolete cockpit-bashboard SELinux %post hack rhbz#1570833
-
-* Tue Apr 17 2018 Martin Pitt <mpitt@redhat.com> 165-3
-- Revert "noarch" change for cockpit-doc as well
-
-* Tue Apr 17 2018 Martin Pitt <mpitt@redhat.com> 165-2
-- Revert "noarch" changes from 165-1, they cause too much fallout
-
-* Fri Apr 13 2018 Martin Pitt <mpitt@redhat.com> 165-1
-- Update to 165 release
-- New VMs can be created on Machines page
-- Improve LVM volume resizing
-- Hide Docker storage pool reset button when it cannot work properly
-- Move NFS management into new details page
-- Show more details of sessions and services that keep NFS busy
-- Machines page now shows proper error notifications
-- Show virtual machines that are being created
-- Detect if libvirtd is not running and offer to start and/or enable it
-- Enable building of cockpit-machines-ovirt rhbz#1515796
-
-* Mon Feb 26 2018 Martin Pitt <mpitt@redhat.com> 160-3
-- storaged: Drop VDO async option rhbz#1548988
-
-* Mon Jan 29 2018 Martin Pitt <mpitt@redhat.com> 160-2
-- Add kubevirt Virtual Machines overview
-- Redesign package list on Software Updates page and show RHEL Errata
-
-* Wed Jan 10 2018 Martin Pitt <mpitt@redhat.com> 159-1
-- Update to 159 release
-- Configure data deduplication with VDO devices on Storage page
-- Add serial console to virtual Machines page and redesign the Consoles tab
-- Show more error message details for failures on virtual Machines page
-
-* Thu Dec 14 2017 Martin Pitt <mpitt@redhat.com> 158-1
-- Update to 158 release
-- New package "cockpit-packagekit", which provides a "Software Updates" page
-  for installing package updates rhbz#1479836
-- Add NFS client support to the Storage page
-- Add checkboxes for common Storage encryption and mount options
-- Adjust cockpit-storaged dependencies to storaged → udisks2 rename
-  rhbz#1510667
-
-* Thu Jun 29 2017 Dominik Perpeet <dperpeet@redhat.com> 141-4
-- Bump for rebuild on more architectures
-
-* Thu Jun 29 2017 Dominik Perpeet <dperpeet@redhat.com> 141-3
-- Fix dashboard dependency rhbz#1466423
-
-* Mon Jun 05 2017 Dominik Perpeet <dperpeet@redhat.com> 141-2
-- Build on more architectures
-
-* Mon Jun 05 2017 Dominik Perpeet <dperpeet@redhat.com> 141-1
-- Update to 141 release
-- Allow users to change Docker container environment variables
-- Allow auth commands to store credentials for future challenges
-- Attempt to tear down used partitions when formatting disks
-- Show the correct known_hosts path on missing/mismatching host keys
-- Set HTML content type when serving login page, for better reverse proxy operation
+* Tue Oct 30 2018 Martin Pitt <mpitt@redhat.com> 173.1-1
+- Crash fixes spotted by coverity rhbz#1644345
+- Fix race condition with fslist channels rhbz#1644346
+- Fix remotectl crash on errors rhbz#1644348
+
+* Tue Sep 25 2018 Martin Pitt <mpitt@redhat.com> 173-7
+- Build against fixed build root with all architectures again rhbz#1628490
+
+* Wed Sep 12 2018 Martin Pitt <mpitt@redhat.com> 173-6
+- Fix remote unauthenticated crash with crafted URLs rhbz#1627631
+- Fix off-by-one error in flow control rhbz#1626846
+
+* Tue Aug 21 2018 Martin Pitt <mpitt@redhat.com> 173-5
+- Storage: Fix crash when cancelling package install
+- Update translations rhbz#1569423
+
+* Thu Jul 26 2018 Martin Pitt <mpitt@redhat.com> 173-1
+- Rebase to version 173 rhbz#1568728
+
+* Thu Jul 12 2018 Martin Pitt <mpitt@redhat.com> 172-1
+- Rebase to version 172 rhbz#1568728
+
+* Wed Jun 27 2018 Martin Pitt <mpitt@redhat.com> 171-1
+- Rebase to version 171 rhbz#1568728
+
+* Tue Jun 05 2018 Martin Pitt <mpitt@redhat.com> 169-3
+- Rebase to version 169, drop all patches rhbz#1568728
+- Fix Subscriptions page hang when accessing as non-admin rhbz#1442540
+- Show an indicator on front page if updates are available rhbz#1495543
+- Properly localize "Log in" rhbz#1541454
+- Improve check for root privilege availability, to e. g. also work for FreeIPA
+  admins rhbz#1574630
+
+* Mon Jan 08 2018 Martin Pitt <mpitt@redhat.com> 154-3
+- Update source po for Japanese translations rhbz#1512923
+- Adjust build system to avoid build failure for the above
+
+* Mon Dec 11 2017 Martin Pitt <mpitt@redhat.com> 154-2
+- Update Japanese translations rhbz#1512923
+
+* Tue Oct 17 2017 Martin Pitt <mpitt@redhat.com> 154-1
+- Rebase to version 154, drop all patches rhbz#1470780
+- This allows ssh keys to be loaded from arbitrary directories
+  rhbz#1425887
+
+* Thu Jun 22 2017 Dominik Perpeet <dperpeet@redhat.com> 138-9
+- Add Japanese translation rhbz#1461085
 
 * Wed May 24 2017 Dominik Perpeet <dperpeet@redhat.com> 138-8
 - Rebuild for new dependencies