diff --git a/.cockpit.metadata b/.cockpit.metadata index e89eb46..3e9e1da 100644 --- a/.cockpit.metadata +++ b/.cockpit.metadata @@ -1 +1 @@ -c188051bfac8fc5b7b50f7ad25ba16972584138a SOURCES/cockpit-0.96.tar.xz +2bd41c0c665037e937b1dc37a664c4a793b98195 SOURCES/cockpit-0.103.tar.xz diff --git a/.gitignore b/.gitignore index b75a0cb..a9086ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/cockpit-0.96.tar.xz +SOURCES/cockpit-0.103.tar.xz diff --git a/SOURCES/0001-test-Fix-selenium-test.patch b/SOURCES/0001-test-Fix-selenium-test.patch deleted file mode 100644 index ba0cd71..0000000 --- a/SOURCES/0001-test-Fix-selenium-test.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 0a1baf5a3c9eda9a827cbb69a3bb096983baf359 Mon Sep 17 00:00:00 2001 -From: Jan Scotka -Date: Thu, 3 Mar 2016 16:40:19 +0100 -Subject: [PATCH] test: Fix selenium test - -We shouldn't assume that we're the only ones working in /tmp during -the tests, so take a bit more care with the filenames we choose. - -Also: - - Handle exceptions in avocado tests while fetching results - - Limit length of selenium debug output - -Reviewed-by: Dominik Perpeet ---- - test/avocado/run-tests | 13 +++++++++++-- - test/avocado/selenium-login.py | 31 +++++++++++++++++-------------- - test/avocado/seleniumlib.py | 3 ++- - 3 files changed, 30 insertions(+), 17 deletions(-) - -diff --git a/test/avocado/run-tests b/test/avocado/run-tests -index cc72fb1..e35b7e5 100755 ---- a/test/avocado/run-tests -+++ b/test/avocado/run-tests -@@ -55,7 +55,12 @@ def prepare_avocado_tests(machine): - machine.upload([os.path.join(machine.test_dir, "avocado")], machine_test_dir) - - def tap_output(machine): -- json_info = json.loads(machine.execute(command="cat " + os.path.join(avocado_results_dir, "latest/results.json"), quiet=True)) -+ try: -+ json_info = json.loads(machine.execute(command="cat " + os.path.join(avocado_results_dir, "latest/results.json"), quiet=True)) -+ except Exception as e: -+ print "ERROR: Unable to fetch JSON from remote machine:", os.path.join(avocado_results_dir, "latest/results.json") -+ print e -+ return None - print "\nTAP output -------------------------" - print "1..%s" % len(json_info['tests']) - counter = 1 -@@ -67,7 +72,11 @@ def tap_output(machine): - print "# ----------------------------------------------------------------------" - print "# %s (time %d secs)" % (test_name, test_time) - print "#" -- print machine.execute(command="cat " + test_log, quiet=True) -+ try: -+ print machine.execute(command="cat " + test_log, quiet=True) -+ except Exception as e: -+ print "ERROR: Unable to fetch testlog from remote machine:", test_log -+ print e - print "# TEST LOG END -------" - if test_status == 'PASS': - print "ok %s %s (time %d secs)" % (counter, test_name, test_time) -diff --git a/test/avocado/selenium-login.py b/test/avocado/selenium-login.py -index 29c4404..1e9e081 100755 ---- a/test/avocado/selenium-login.py -+++ b/test/avocado/selenium-login.py -@@ -174,20 +174,23 @@ class BasicTestSuite(SeleniumTest): - self.wait_frame("terminal") - self.wait_id('terminal') - terminal = self.wait_xpath("//*[@class='terminal']") -- self.send_keys(terminal, "touch /tmp/testabc\n", clear=False) -- self.wait_text("touch /tmp/testabc", user, element="div") -- self.send_keys(terminal, "touch /tmp/testabd\n", clear=False) -- self.wait_text("touch /tmp/testabd",user, element="div") -- self.send_keys(terminal, "ls /tmp/test*\n", clear=False) -- self.wait_text("ls /tmp/test*",'/tmp/testabc /tmp/testabd', element="div") -- process.run("ls /tmp/testabc", shell=True) -- process.run("ls /tmp/testabd", shell=True) -- self.send_keys(terminal, "rm /tmp/testabc /tmp/testabd\n", clear=False) -- self.wait_text("rm /tmp/testabc /tmp/testabd",user, element="div") -- self.send_keys(terminal, "ls /tmp/test*\n", clear=False) -- self.wait_text("ls /tmp/test*",'cannot access', element="div") -- process.run("ls /tmp/testabc |wc -l |grep 0", shell=True) -- process.run("ls /tmp/testabd |wc -l |grep 0", shell=True) -+ prefix = "/tmp/cockpitrndadr/" -+ self.send_keys(terminal, "mkdir {0}\n".format(prefix), clear=False) -+ self.wait_text("mkdir {0}".format(prefix), user, element="div") -+ self.send_keys(terminal, "touch {0}abc\n".format(prefix), clear=False) -+ self.wait_text("touch {0}abc".format(prefix), user, element="div") -+ self.send_keys(terminal, "touch {0}abd\n".format(prefix), clear=False) -+ self.wait_text("touch {0}abd".format(prefix), user, element="div") -+ self.send_keys(terminal, "ls {0}*\n".format(prefix), clear=False) -+ self.wait_text("ls {0}*".format(prefix), '{0}abc'.format(prefix), element="div") -+ process.run("ls {0}abc".format(prefix), shell=True) -+ process.run("ls {0}abd".format(prefix), shell=True) -+ self.send_keys(terminal, "rm {0}abc {0}abd\n".format(prefix), clear=False) -+ self.wait_text("rm {0}abc {0}abd".format(prefix), user, element="div") -+ self.send_keys(terminal, "ls {0}*\n".format(prefix), clear=False) -+ self.wait_text("ls {0}*".format(prefix), 'cannot access', element="div") -+ process.run("ls {0}abc |wc -l |grep 0".format(prefix), shell=True) -+ process.run("ls {0}abd |wc -l |grep 0".format(prefix), shell=True) - self.mainframe() - self.error=False - -diff --git a/test/avocado/seleniumlib.py b/test/avocado/seleniumlib.py -index 8d99cd3..e8e05f9 100755 ---- a/test/avocado/seleniumlib.py -+++ b/test/avocado/seleniumlib.py -@@ -111,8 +111,9 @@ class SeleniumTest(Test): - self.log.info('ERR: Unable to close WEBdriver: {0}'.format(e)) - - def get_debug_logs(self, logs=['browser','driver','client','server']): -+ max_line_log_count = 10 - for log in logs: -- receivedlog = self.driver.get_log(log) -+ receivedlog = [x for x in self.driver.get_log(log)][-max_line_log_count:] - if receivedlog: - self.log.info(">>>>> " + log) - for line in receivedlog: --- -1.8.3.1 - diff --git a/SPECS/cockpit.spec b/SPECS/cockpit.spec index 19ffb39..0c5d8a6 100644 --- a/SPECS/cockpit.spec +++ b/SPECS/cockpit.spec @@ -4,12 +4,11 @@ # %define branding auto -%define tag 0.96 -%define rev 2 +%define tag 0.103 +%define rev 1 %if %{defined gitcommit} %define extra_flags CFLAGS='-O2 -Wall -Werror -fPIC -g -DWITH_DEBUG' -%define branding default %endif %if 0%{?centos} @@ -41,8 +40,6 @@ Source0: cockpit-%{version}.tar.gz Source0: https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.xz %endif -Patch1: 0001-test-Fix-selenium-test.patch - BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(polkit-agent-1) >= 0.105 @@ -90,6 +87,7 @@ Recommends: %{name}-docker = %{version}-%{release} %endif Suggests: %{name}-pcp = %{version}-%{release} Suggests: %{name}-kubernetes = %{version}-%{release} +Suggests: %{name}-selinux = %{version}-%{release} # Older releases need to have strict requirements %else @@ -148,14 +146,10 @@ The Cockpit Web Service listens on the network, and authenticates users. %prep %setup -q -%patch1 -p1 %build exec 2>&1 -%if %{defined gitcommit} -env NOCONFIGURE=1 ./autogen.sh -%endif -%configure --disable-silent-rules --with-cockpit-user=cockpit-ws --with-branding=%{branding} --with-selinux-config-type=etc_t +%configure --disable-silent-rules --with-cockpit-user=cockpit-ws --with-branding=auto --with-selinux-config-type=etc_t make -j4 %{?extra_flags} all %check @@ -216,6 +210,14 @@ find %{buildroot}%{_datadir}/%{name}/network -type f >> networkmanager.list echo '%dir %{_datadir}/%{name}/ostree' > ostree.list find %{buildroot}%{_datadir}/%{name}/ostree -type f >> ostree.list +# on RHEL systems we don't have the required setroubleshoot-server packages +%if 0%{?rhel} +rm -rf %{buildroot}%{_datadir}/%{name}/selinux +%else +echo '%dir %{_datadir}/%{name}/selinux' > selinux.list +find %{buildroot}%{_datadir}/%{name}/selinux -type f >> selinux.list +%endif + %ifarch x86_64 armv7hl echo '%dir %{_datadir}/%{name}/docker' > docker.list find %{buildroot}%{_datadir}/%{name}/docker -type f >> docker.list @@ -225,17 +227,14 @@ touch docker.list %endif %ifarch x86_64 -echo '%dir %{_datadir}/%{name}/kubernetes' > kubernetes.list -find %{buildroot}%{_datadir}/%{name}/kubernetes -type f >> kubernetes.list %if %{defined gitcommit} %else -mv %{buildroot}/%{_datadir}/%{name}/registry/manifest.json %{buildroot}/%{_datadir}/%{name}/registry/manifest.disabled +rm %{buildroot}/%{_datadir}/%{name}/kubernetes/override.json %endif -echo '%dir %{_datadir}/%{name}/registry' >> kubernetes.list -find %{buildroot}%{_datadir}/%{name}/registry -type f >> kubernetes.list +echo '%dir %{_datadir}/%{name}/kubernetes' > kubernetes.list +find %{buildroot}%{_datadir}/%{name}/kubernetes -type f >> kubernetes.list %else rm -rf %{buildroot}/%{_datadir}/%{name}/kubernetes -rm -rf %{buildroot}/%{_datadir}/%{name}/registry touch kubernetes.list %endif @@ -365,6 +364,7 @@ This package contains the Cockpit shell UI assets. %package storaged Summary: Cockpit user interface for storage, using Storaged +Requires: %{name}-shell = %{version}-%{release} Requires: storaged >= 2.1.1 Requires: storaged-lvm2 >= 2.1.1 Requires: device-mapper-multipath @@ -377,14 +377,13 @@ The Cockpit component for managing storage. This package uses Storaged. %package ostree Summary: Cockpit user interface for rpm-ostree +Requires: %{name}-shell = %{version}-%{release} %if 0%{?fedora} > 0 && 0%{?fedora} < 24 Requires: rpm-ostree >= 2015.10-1 %else Requires: /usr/libexec/rpm-ostreed -Requires: rpm-ostree-client >= 2015.11-1 %endif - %description ostree The Cockpit components for managing software updates for ostree based systems. @@ -396,6 +395,7 @@ The Cockpit components for managing software updates for ostree based systems. %package sosreport Summary: Cockpit user interface for diagnostic reports +Requires: %{name}-shell = %{version}-%{release} Requires: sos BuildArch: noarch @@ -407,6 +407,7 @@ sosreport tool. %package subscriptions Summary: Cockpit subscription user interface package +Requires: %{name}-shell = %{version}-%{release} Requires: subscription-manager >= 1.13 BuildArch: noarch @@ -416,8 +417,21 @@ subscription management. %files subscriptions -f subscriptions.list +%package selinux +Summary: Cockpit SELinux package +Requires: %{name}-shell = %{version}-%{release} +Requires: setroubleshoot-server >= 3.3.3 +BuildArch: noarch + +%description selinux +This package contains the Cockpit user interface integration with the +utility setroubleshoot to diagnose and resolve SELinux issues. + +%files selinux -f selinux.list + %package networkmanager Summary: Cockpit user interface for networking, using NetworkManager +Requires: %{name}-shell = %{version}-%{release} Requires: NetworkManager BuildArch: noarch @@ -432,6 +446,7 @@ The Cockpit component for managing networking. This package uses NetworkManager %package docker Summary: Cockpit user interface for Docker containers +Requires: %{name}-shell = %{version}-%{release} Requires: docker >= 1.3.0 %description docker @@ -465,6 +480,7 @@ cluster. Installed on the Kubernetes master. This package is not yet complete. %package test-assets Summary: Additional stuff for testing Cockpit +Requires: %{name}-shell = %{version}-%{release} Requires: openssh-clients %description test-assets @@ -478,8 +494,17 @@ pulls in some necessary packages via dependencies. %endif %changelog -* Fri Apr 1 2016 Johnny Hughes - 0.96-2 -- add in Requries rpm-ostree-client to cockpit-ostree for CentOS +* Tue Apr 19 2016 Dominik Perpeet - 0.103-1 +- Update to 0.103 release +- When Cockpit fails to connect to a host, relevant SSH command or host details are displayed to help resolve the issue +- Docker restart policy can be configured when starting a new container +- Display a single combined dialog for creating logical volumes +- Don't offer a 'Computer OU' option when joining IPA domains +- Display binary journal data correctly +- Display IEC names (eg: MiB) for disk or file system sizes +- Refuse to shrink logical volumes and prevent negative sizes in file system partition dialogs +- Apply strict Content-Security-Policy on most of Cockpit to prevent a number of browser based attacks +- Numerous other bug fixes and admin interface improvements * Thu Mar 10 2016 Dominik Perpeet - 0.96-2 - Fix selenium tests