Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package bolt for openSUSE:Factory checked in at 2022-01-29 20:59:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bolt (Old) and /work/SRC/openSUSE:Factory/.bolt.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bolt" Sat Jan 29 20:59:20 2022 rev:8 rq:949689 version:0.9.2 Changes: -------- --- /work/SRC/openSUSE:Factory/bolt/bolt.changes 2021-10-06 19:50:08.924062167 +0200 +++ /work/SRC/openSUSE:Factory/.bolt.new.1898/bolt.changes 2022-01-29 20:59:21.287773692 +0100 @@ -1,0 +2,14 @@ +Fri Jan 28 08:53:51 UTC 2022 - Paolo Stivanin <i...@paolostivanin.com> + +- Update to 0.9.2 + * This release is compatible with umockdev >= 0.16.3; there was a change in + umockdev that made our test fail with it, since both our test and umockev + were trying to create the same directorires. bolt now allows for the dir + to already exist. + * The license for `90-bolt.rules` has changed from `GPL-2.1+`, which does + not exist and was probably was confused with `LGPL-2.1+`, to `GPL 2.0+`. + * Documentation has been updated and spelling mistakes fixed. + * Various improvements for continuous integration. + * The minimum required version of meson has been bumped to 0.46.0. + +------------------------------------------------------------------- Old: ---- bolt-0.9.1.tar.bz2 New: ---- bolt-0.9.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bolt.spec ++++++ --- /var/tmp/diff_new_pack.jhsQce/_old 2022-01-29 20:59:21.839770113 +0100 +++ /var/tmp/diff_new_pack.jhsQce/_new 2022-01-29 20:59:21.843770087 +0100 @@ -1,7 +1,7 @@ # # spec file for package bolt # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %global _hardened_build 1 Name: bolt -Version: 0.9.1 +Version: 0.9.2 Release: 0 Summary: Thunderbolt 3 device manager License: GPL-2.0-or-later @@ -27,7 +27,7 @@ Source0: https://gitlab.freedesktop.org/bolt/bolt/-/archive/%{version}/bolt-%{version}.tar.bz2 BuildRequires: glib2-devel BuildRequires: glibc-devel >= 2.27 -BuildRequires: meson +BuildRequires: meson >= 0.46 BuildRequires: ninja BuildRequires: polkit-devel BuildRequires: pkgconfig(libudev) ++++++ bolt-0.9.1.tar.bz2 -> bolt-0.9.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/.devcontainer/Dockerfile new/bolt-0.9.2/.devcontainer/Dockerfile --- old/bolt-0.9.1/.devcontainer/Dockerfile 1970-01-01 01:00:00.000000000 +0100 +++ new/bolt-0.9.2/.devcontainer/Dockerfile 2022-01-27 15:50:48.000000000 +0100 @@ -0,0 +1,52 @@ +FROM fedora:latest +RUN dnf install -y \ + asciidoc \ + bat \ + clang-analyzer \ + ccls \ + codespell \ + findutils \ + fish \ + fpaste \ + gcc \ + git \ + glib2-devel \ + glibc-langpack-en \ + gtk-doc \ + hostname \ + ipython3 \ + jq \ + lcov \ + libgudev-devel \ + lsof \ + make \ + meson \ + packit \ + polkit-devel \ + pylint \ + python3 \ + python3-autopep8 \ + python3-dbus \ + python3-dbusmock \ + python3-devel \ + python3-docutils \ + python3-enchant \ + python3-gobject \ + python3-jsonschema \ + python3-pip \ + python3-pycodestyle \ + python3-pylint \ + python3-pytest \ + python3-pyyaml \ + redhat-rpm-config \ + rpm-build \ + rpmlint \ + skopeo \ + strace \ + systemd-devel \ + the_silver_searcher \ + tree \ + umockdev-devel \ + uncrustify + +WORKDIR /workspaces/bolt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/.devcontainer/devcontainer.json new/bolt-0.9.2/.devcontainer/devcontainer.json --- old/bolt-0.9.1/.devcontainer/devcontainer.json 1970-01-01 01:00:00.000000000 +0100 +++ new/bolt-0.9.2/.devcontainer/devcontainer.json 2022-01-27 15:50:48.000000000 +0100 @@ -0,0 +1,39 @@ +{ + "name": "bolt", + "build": { + "dockerfile": "Dockerfile", + "context": "..", + }, + "mounts": [ + "source=bold-share,target=/root/.local/share,type=volume" + ], + "runArgs": [ + "--privileged" + ], + "settings": { + "C_Cpp.autocomplete": "Disabled", + "C_Cpp.formatting": "Disabled", + "C_Cpp.errorSquiggles": "Disabled", + "C_Cpp.intelliSenseEngine": "Disabled", + "terminal.integrated.shell.linux": "/bin/fish", + "python.pythonPath": "/usr/bin/python", + "python.linting.enabled": true, + "python.linting.pylintEnabled": true, + "python.testing.unittestEnabled": false, + "python.testing.nosetestsEnabled": false, + "python.testing.pyTestEnabled": true, + "python.testing.pyTestArgs": [ + "test" + ] + }, + "extensions": [ + "asabil.meson", + "editorconfig.editorconfig", + "ccls-project.ccls", + "laurenttreguier.rpm-spec", + "ms-python.python", + "ms-python.vscode-pylance", + "ms-vscode.cpptools", + "ms-vscode-remote.remote-containers", + ] +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/.gitlab-ci.yml new/bolt-0.9.2/.gitlab-ci.yml --- old/bolt-0.9.1/.gitlab-ci.yml 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/.gitlab-ci.yml 2022-01-27 15:50:48.000000000 +0100 @@ -21,6 +21,7 @@ arch: stage: build + allow_failure: true variables: OS: arch <<: *build @@ -40,7 +41,10 @@ coverity: stage: build only: - - schedules + refs: + - schedules + variables: + - $COVERITY_TOKEN && $COVERITY_EMAIL script: - mkdir build-coverity - docker build --build-arg ORG=gicmo --build-arg PROJECT=bolt --build-arg TOKEN=$COVERITY_TOKEN -t bolt-coverity -f ./contrib/Dockerfile-coverity . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/CHANGELOG.md new/bolt-0.9.2/CHANGELOG.md --- old/bolt-0.9.1/CHANGELOG.md 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/CHANGELOG.md 2022-01-27 15:50:48.000000000 +0100 @@ -1,3 +1,23 @@ +Version 0.9.2 +------------- +_Please get along_ +Released: 2022-01-27 + +* This release is compatible with umockdev >= 0.16.3; there was a change in + umockdev that made our test fail with it, since both our test and umockev + were trying to create the same directorires. bolt now allows for the dir + to already exist. + +* The license for `90-bolt.rules` has changed from `GPL-2.1+`, which does + not exist and was probably was confused with `LGPL-2.1+`, to `GPL 2.0+`. + +* Documentation has been updated and spelling mistakes fixed. + +* Various improvements for continuous integration. + +* The minimum required version of meson has been bumped to 0.46.0. + + Version 0.9.1 ------------- _Unstable icy waters_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/boltd/bolt-store.c new/bolt-0.9.2/boltd/bolt-store.c --- old/bolt-0.9.1/boltd/bolt-store.c 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/boltd/bolt-store.c 2022-01-27 15:50:48.000000000 +0100 @@ -384,8 +384,8 @@ { g_autoptr(GError) err = NULL; g_autoptr(GDir) dir = NULL; - g_autofree char *path = NULL; g_autoptr(GPtrArray) ids = NULL; + g_autofree char *path = NULL; const char *name; g_return_val_if_fail (BOLT_IS_STORE (store), NULL); @@ -498,8 +498,8 @@ g_autoptr(GKeyFile) kf = NULL; g_autoptr(GFile) db = NULL; g_autoptr(GError) err = NULL; - g_autofree char *path = NULL; g_auto(GStrv) bootacl = NULL; + g_autofree char *path = NULL; BoltDomain *domain = NULL; gboolean ok; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/boltd/bolt-sysfs.c new/bolt-0.9.2/boltd/bolt-sysfs.c --- old/bolt-0.9.1/boltd/bolt-sysfs.c 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/boltd/bolt-sysfs.c 2022-01-27 15:50:48.000000000 +0100 @@ -506,6 +506,7 @@ info->full = FALSE; info->parent = NULL; info->generation = 0; + info->syspath = NULL; auth = sysfs_get_sysattr_value_as_int (udev, "authorized"); info->authorized = auth; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/contrib/Dockerfile-arch new/bolt-0.9.2/contrib/Dockerfile-arch --- old/bolt-0.9.1/contrib/Dockerfile-arch 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/contrib/Dockerfile-arch 2022-01-27 15:50:48.000000000 +0100 @@ -1,8 +1,7 @@ ## -*- mode: dockerfile -*- -FROM archlinux/base +FROM archlinux/archlinux:base-devel ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 -RUN rm /usr/share/libalpm/hooks/package-cleanup.hook RUN pacman -Syu --noconfirm RUN pacman -S --noconfirm base-devel RUN pacman -S --noconfirm \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/contrib/Dockerfile-coverity new/bolt-0.9.2/contrib/Dockerfile-coverity --- old/bolt-0.9.1/contrib/Dockerfile-coverity 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/contrib/Dockerfile-coverity 2022-01-27 15:50:48.000000000 +0100 @@ -1,5 +1,5 @@ ## -*- mode: dockerfile -*- -FROM fedora:33 +FROM fedora:34 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en @@ -11,10 +11,11 @@ gcc \ git \ glib2-devel \ + glibc-langpack-en \ gtk-doc \ lcov \ libgudev-devel \ - meson \ + meson-0.56.2-2.fc34 \ polkit-devel \ python3 \ python3-dbus \ @@ -34,9 +35,10 @@ ENV HOME "/root" WORKDIR "$HOME" -RUN wget https://scan.coverity.com/download/linux64 \ - --post-data "token=${TOKEN}&project=${ORG}%2F${PROJECT}" \ - -O coverity_tool.tgz && \ +RUN curl https://scan.coverity.com/download/linux64 \ + --form project=${ORG}/${PROJECT} \ + --form token=${TOKEN} \ + -o coverity_tool.tgz && \ tar zxf coverity_tool.tgz \ && rm coverity_tool.tgz && \ mv cov-analysis-linux64-* cov-analysis-linux64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/contrib/Dockerfile-fedora new/bolt-0.9.2/contrib/Dockerfile-fedora --- old/bolt-0.9.1/contrib/Dockerfile-fedora 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/contrib/Dockerfile-fedora 2022-01-27 15:50:48.000000000 +0100 @@ -1,5 +1,5 @@ ## -*- mode: dockerfile -*- -FROM fedora:32 +FROM fedora:34 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 @@ -10,10 +10,11 @@ gcc \ git \ glib2-devel \ + glibc-langpack-en \ gtk-doc \ lcov \ libgudev-devel \ - meson \ + meson-0.56.2-2.fc34 \ polkit-devel \ python3 \ python3-dbus \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/data/90-bolt.rules new/bolt-0.9.2/data/90-bolt.rules --- old/bolt-0.9.1/data/90-bolt.rules 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/data/90-bolt.rules 2022-01-27 15:50:48.000000000 +0100 @@ -1,11 +1,11 @@ # bolt udev rules # -# SPDX-License-Identifier: GPL-2.1+ +# SPDX-License-Identifier: GPL-2.0-or-later # # Copyright ?? 2017 Red Hat, Inc # # Authors: -# Christian J. Kellner <ckell...@edhat.com> +# Christian J. Kellner <ckell...@redhat.com> # ACTION=="remove", GOTO="bolt_end" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/docs/boltd.8.txt new/bolt-0.9.2/docs/boltd.8.txt --- old/bolt-0.9.1/docs/boltd.8.txt 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/docs/boltd.8.txt 2022-01-27 15:50:48.000000000 +0100 @@ -43,6 +43,11 @@ to the device the first time the device is connected. This key will then be used to verify the identity of the connected device. +*usbonly*:: + One PCIe tunnel is created to a usb controller in a thunderbolt dock; + no other downstream PCIe tunnels are authorized (needs 4.17 kernel and + recent hardware). + The primary task of *boltd* is to authorize thunderbolt peripherals if the security level is either `user` or `secure`. It provides a D-Bus API to list devices, enroll them (authorize and store them in the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/meson.build new/bolt-0.9.2/meson.build --- old/bolt-0.9.1/meson.build 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/meson.build 2022-01-27 15:50:48.000000000 +0100 @@ -1,8 +1,8 @@ project('bolt', 'c', - version: '0.9.1', + version: '0.9.2', license : 'LGPL-2.1+', - meson_version: '>= 0.44.0', + meson_version: '>= 0.46.0', default_options: ['warning_level=1', 'c_std=gnu99', 'buildtype=debugoptimized']) @@ -357,7 +357,7 @@ ]) -executable('boltd', +boltd = executable('boltd', ['boltd/bolt-daemon.c'], dependencies: [libdaemon], c_args : [ @@ -369,7 +369,7 @@ # command line tools -executable('boltctl', +boltctl = executable('boltctl', ['cli/bolt-client.c', 'cli/bolt-device.c', 'cli/bolt-domain.c', @@ -482,7 +482,11 @@ foreach t: tests args = t.split(' ') name = 'integration @0@'.format(args[1]) - test(name, test_it, args: [args[0]], env: test_env, timeout: 120) + test(name, test_it, + args: [args[0]], + env: test_env, + depends: [boltd, boltctl], + timeout: 120) endforeach else msg = '@0@'.format(res.stderr().strip()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/tests/bolt-test.c new/bolt-0.9.2/tests/bolt-test.c --- old/bolt-0.9.1/tests/bolt-test.c 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/tests/bolt-test.c 2022-01-27 15:50:48.000000000 +0100 @@ -385,8 +385,8 @@ bolt_check_kernel_version (int major, int minor) { g_autoptr(GError) err = NULL; - g_autofree char *data = NULL; g_auto(BoltVersion) ver = BOLT_VERSION_INIT (1, 0, 0); + g_autofree char *data = NULL; gboolean ok; gsize length; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/tests/mock-sysfs.c new/bolt-0.9.2/tests/mock-sysfs.c --- old/bolt-0.9.1/tests/mock-sysfs.c 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/tests/mock-sysfs.c 2022-01-27 15:50:48.000000000 +0100 @@ -175,19 +175,21 @@ ms->devices = g_hash_table_new (g_str_hash, g_str_equal); /* udev_enumerate_scan_devices() will return -ENOENT, if - * sys/bus or sys/class directories can not be found + * sys/bus or sys/class directories can not be found; + * fixed in https://github.com/martinpitt/umockdev/commit/5e8296014346 + * but work with older versions as well */ sys = umockdev_testbed_get_sys_dir (ms->bed); bus = g_build_filename (sys, "bus", NULL); r = g_mkdir (bus, 0744); - if (r < 0) + if (r < 0 && errno != EEXIST) g_warning ("could not create %s", bus); cls = g_build_filename (sys, "class", NULL); r = g_mkdir (cls, 0744); - if (r < 0) + if (r < 0 && errno != EEXIST) g_warning ("could not create %s", bus); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/tests/test-common.c new/bolt-0.9.2/tests/test-common.c --- old/bolt-0.9.1/tests/test-common.c 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/tests/test-common.c 2022-01-27 15:50:48.000000000 +0100 @@ -49,6 +49,7 @@ #include <string.h> #include <sys/types.h> #include <sys/stat.h> +#include <sys/statvfs.h> #include <sys/wait.h> #include <unistd.h> /* unlinkat, fork */ @@ -1567,13 +1568,13 @@ ts = g_file_info_get_attribute_uint64 (info, "time::modified"); g_assert_cmpuint (ts, ==, tp + 1); - ts = g_file_info_get_attribute_uint64 (info, "time::access"); - g_assert_cmpuint (ts, ==, tp); + /* No check for access time because it might not be supported + * by the underlying file system */ } static void -test_fs_touch (TestIO *tt, gconstpointer user_data) +test_fs_touch_mtime (TestIO *tt, gconstpointer user_data) { g_autoptr(GFileInfo) info = NULL; g_autoptr(GError) err = NULL; @@ -1596,7 +1597,7 @@ tp = 626648700; touch_and_compare (target, tp); - /* omit one of them, start with atime */ + /* check mtime, omit atime */ ok = bolt_fs_touch (target, 0, 42, &err); g_assert_no_error (err); g_assert_true (ok); @@ -1606,13 +1607,10 @@ g_assert_no_error (err); g_assert_nonnull (info); - ts = g_file_info_get_attribute_uint64 (info, "time::access"); - g_assert_cmpuint (ts, ==, tp); - ts = g_file_info_get_attribute_uint64 (info, "time::modified"); g_assert_cmpuint (ts, ==, 42); - /* omit mtime */ + /* the other way around, where 0 means now */ ok = bolt_fs_touch (target, 42, 0, &err); g_assert_no_error (err); g_assert_true (ok); @@ -1623,9 +1621,6 @@ g_assert_no_error (err); g_assert_nonnull (info); - ts = g_file_info_get_attribute_uint64 (info, "time::access"); - g_assert_cmpuint (ts, ==, 42); - /* mtime 0 means ignore, effectively meaning now, for touch */ ts = g_file_info_get_attribute_uint64 (info, "time::modified"); g_assert_cmpuint (ts, >=, now); @@ -1634,6 +1629,65 @@ } static void +test_fs_touch_atime (TestIO *tt, gconstpointer user_data) +{ + g_autoptr(GFileInfo) info = NULL; + g_autoptr(GError) err = NULL; + g_autoptr(GFile) base = NULL; + g_autoptr(GFile) target = NULL; + struct statvfs sb; + gboolean ok; + guint64 tp; + guint64 ts; + int r; + + /* Access time is not always supported, so support for it is best-effort. + */ + + r = statvfs (tt->path, &sb); + g_assert_cmpint (r, ==, 0); + + if (bolt_flag_isset (sb.f_flag, ST_NOATIME)) + { + g_test_skip ("file system mounted with noatime, can't modify access time"); + return; + } + + base = g_file_new_for_path (tt->path); + target = g_file_get_child (base, "this"); + + ok = g_file_query_exists (target, NULL); + g_assert_false (ok); + + tp = 626648700; + ok = bolt_fs_touch (target, tp, 0, &err); + + g_assert_no_error (err); + g_assert_true (ok); + + info = g_file_query_info (target, TIME_QI, 0, NULL, &err); + + g_assert_no_error (err); + g_assert_nonnull (info); + + ts = g_file_info_get_attribute_uint64 (info, "time::access"); + g_assert_cmpuint (ts, ==, tp); + + ok = bolt_fs_touch (target, 42, 0, &err); + g_assert_no_error (err); + g_assert_true (ok); + + g_clear_object (&info); + info = g_file_query_info (target, TIME_QI, 0, NULL, &err); + + g_assert_no_error (err); + g_assert_nonnull (info); + + ts = g_file_info_get_attribute_uint64 (info, "time::access"); + g_assert_cmpuint (ts, ==, 42); +} + +static void test_str (TestRng *tt, gconstpointer user_data) { GPtrArray *a = NULL; @@ -2552,11 +2606,18 @@ test_fs, test_io_tear_down); - g_test_add ("/common/fs/touch", + g_test_add ("/common/fs/touch/mtime", + TestIO, + NULL, + test_io_setup, + test_fs_touch_mtime, + test_io_tear_down); + + g_test_add ("/common/fs/touch/atime", TestIO, NULL, test_io_setup, - test_fs_touch, + test_fs_touch_atime, test_io_tear_down); g_test_add ("/common/str", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bolt-0.9.1/tests/test-sysfs.c new/bolt-0.9.2/tests/test-sysfs.c --- old/bolt-0.9.1/tests/test-sysfs.c 2020-12-01 12:26:01.000000000 +0100 +++ new/bolt-0.9.2/tests/test-sysfs.c 2022-01-27 15:50:48.000000000 +0100 @@ -132,6 +132,7 @@ .unique_id = "884c6edd-7118-4b21-b186-b02d396ecca0", }; MockDevId id = ref; + struct { const char *name; @@ -269,6 +270,7 @@ .device_name = NULL, .unique_id = id.unique_id, }; + struct { const char *sys_vendor;