openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
November 2022
- 1 participants
- 2424 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-protonvpn-nm-lib for openSUSE:Factory checked in at 2022-11-30 16:51:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-protonvpn-nm-lib (Old)
and /work/SRC/openSUSE:Factory/.python-protonvpn-nm-lib.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-protonvpn-nm-lib"
Wed Nov 30 16:51:44 2022 rev:6 rq:1039120 version:3.14.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-protonvpn-nm-lib/python-protonvpn-nm-lib.changes 2022-07-04 11:32:49.972019059 +0200
+++ /work/SRC/openSUSE:Factory/.python-protonvpn-nm-lib.new.1597/python-protonvpn-nm-lib.changes 2022-11-30 16:51:45.301380599 +0100
@@ -1,0 +2,8 @@
+Mon Nov 28 14:07:39 UTC 2022 - Alexandre Vicenzi <alexandre.vicenzi(a)suse.com>
+
+- Update to 3.14.0
+ * When vpn session is invalid and an api request is made, ensure that user is logged out
+ * Properly handle session refresh
+ * Display propper error message when unable to establish VPN tunnel
+
+-------------------------------------------------------------------
Old:
----
protonvpn-nm-lib-3.11.0.tar.gz
New:
----
protonvpn-nm-lib-3.14.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-protonvpn-nm-lib.spec ++++++
--- /var/tmp/diff_new_pack.MHIDcA/_old 2022-11-30 16:51:45.833383434 +0100
+++ /var/tmp/diff_new_pack.MHIDcA/_new 2022-11-30 16:51:45.841383477 +0100
@@ -21,7 +21,7 @@
# test suite requires network connection, you can test locally with `rpmbuild --with test`
%bcond_with test
Name: python-protonvpn-nm-lib
-Version: 3.11.0
+Version: 3.14.0
Release: 0
Summary: Proton VPN NetworkManager library
License: GPL-3.0-or-later
++++++ protonvpn-nm-lib-3.11.0.tar.gz -> protonvpn-nm-lib-3.14.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/.gitlab-ci.yml new/protonvpn-nm-lib-3.14.0/.gitlab-ci.yml
--- old/protonvpn-nm-lib-3.11.0/.gitlab-ci.yml 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/.gitlab-ci.yml 2022-10-20 17:13:58.000000000 +0200
@@ -70,18 +70,12 @@
extends: make-image-deb
script:
- make image-fed36 branch=$CI_COMMIT_REF_SLUG src=fedora36
-
-make-image-fed34:
- stage: image
- extends: make-image-deb
- script:
- - make image-fed34 branch=$CI_COMMIT_REF_SLUG src=fedora34
-
-make-image-fed35:
+
+make-image-fed37:
stage: image
extends: make-image-deb
script:
- - make image-fed35 branch=$CI_COMMIT_REF_SLUG src=fedora35
+ - make image-fed37 branch=$CI_COMMIT_REF_SLUG src=fedora37
######### CI Test Jobs ##########
test-deb:
@@ -105,18 +99,12 @@
needs:
- job: make-image-fed36
image: $CI_REGISTRY_IMAGE/fedora36:branch-$CI_COMMIT_REF_SLUG
-
-test-fed34:
- extends: test-deb
- needs:
- - job: make-image-fed34
- image: $CI_REGISTRY_IMAGE/fedora34:branch-$CI_COMMIT_REF_SLUG
-
-test-fed35:
+
+test-fed37:
extends: test-deb
needs:
- - job: make-image-fed35
- image: $CI_REGISTRY_IMAGE/fedora35:branch-$CI_COMMIT_REF_SLUG
+ - job: make-image-fed37
+ image: $CI_REGISTRY_IMAGE/fedora37:branch-$CI_COMMIT_REF_SLUG
## Jobs to publish commits + tags from master to github
@@ -125,8 +113,7 @@
needs:
- job: build-deb
- job: build-fed36
- - job: build-fed34
- - job: build-fed35
+ - job: build-fed37
when: manual
variables:
RELEASE_SYNC_PUBLIC_URL: git@github.com:ProtonVPN/protonvpn-nm-lib.git
@@ -139,8 +126,7 @@
needs:
- job: build-deb
- job: build-fed36
- - job: build-fed34
- - job: build-fed35
+ - job: build-fed37
when: manual
variables:
RELEASE_SYNC_PUBLIC_URL: git@github.com:ProtonVPN/protonvpn-nm-lib.git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/Dockerfile.fed34 new/protonvpn-nm-lib-3.14.0/Dockerfile.fed34
--- old/protonvpn-nm-lib-3.11.0/Dockerfile.fed34 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/Dockerfile.fed34 1970-01-01 01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
-FROM IMAGE_URL_FED34
-ARG git_repo
-ENV git_repo=${git_repo:-GIT_REPO}
-ARG git_branch
-ENV git_branch=${git_branch:-GIT_BRANCH}
-
-RUN dnf update -y
-
-#��Install a few useful packages
-
-RUN dnf install -y net-tools \
- gcc \
- sudo \
- git \
- rpm-build \
- rpm-devel \
- rpmlint \
- rpmdevtools \
- rpm-sign \
- python3 \
- python3-pip \
- NetworkManager \
- NetworkManager-openvpn \
- sudo \
- vim \
- nano \
- pkg-config \
- openvpn \
- openssl-devel \
- openssl-libs \
- dbus-x11 \
- gnome-keyring \
- libsecret \
- gtk3 \
- polkit
-
-RUN dnf install -y \
- python3-pyxdg \
- python3-dbus \
- python3-keyring \
- python3-distro \
- python3-gobject \
- python3-jinja2 \
- python3-systemd
-
-RUN dnf install -y \
- python3-pytest \
- python3-pytest-cov
-
-RUN dnf install -y \
- python3-requests \
- python3-pyOpenSSL \
- python3-bcrypt \
- python3-gnupg
-
-RUN python3 -m pip install --upgrade sentry-sdk==0.10.2
-
-RUN git clone --single-branch --branch $git_branch $git_repo
-RUN cd proton-python-client && pip3 install -e .
-RUN cd ..
-
-RUN useradd -ms /bin/bash user
-RUN usermod -a -G wheel user
-RUN echo '%wheel ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
-
-COPY docker_entry_rpm.sh /usr/local/bin
-COPY . /home/user/protonvpn-nm-lib
-
-RUN chown -R user:user /home/user/protonvpn-nm-lib
-WORKDIR /home/user/protonvpn-nm-lib
-
-USER user
-
-ENTRYPOINT ["/usr/local/bin/docker_entry_rpm.sh"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/Dockerfile.fed35 new/protonvpn-nm-lib-3.14.0/Dockerfile.fed35
--- old/protonvpn-nm-lib-3.11.0/Dockerfile.fed35 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/Dockerfile.fed35 1970-01-01 01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
-FROM IMAGE_URL_FED35
-ARG git_repo
-ENV git_repo=${git_repo:-GIT_REPO}
-ARG git_branch
-ENV git_branch=${git_branch:-GIT_BRANCH}
-
-RUN dnf update -y
-
-#��Install a few useful packages
-
-RUN dnf install -y net-tools \
- gcc \
- sudo \
- git \
- rpm-build \
- rpm-devel \
- rpmlint \
- rpmdevtools \
- rpm-sign \
- python3 \
- python3-pip \
- NetworkManager \
- NetworkManager-openvpn \
- sudo \
- vim \
- nano \
- pkg-config \
- openvpn \
- openssl-devel \
- openssl-libs \
- dbus-x11 \
- gnome-keyring \
- libsecret \
- gtk3 \
- polkit
-
-RUN dnf install -y \
- python3-pyxdg \
- python3-dbus \
- python3-keyring \
- python3-distro \
- python3-gobject \
- python3-jinja2 \
- python3-systemd
-
-RUN dnf install -y \
- python3-pytest \
- python3-pytest-cov
-
-RUN dnf install -y \
- python3-requests \
- python3-pyOpenSSL \
- python3-bcrypt \
- python3-gnupg
-
-RUN python3 -m pip install --upgrade sentry-sdk==0.10.2
-
-RUN git clone --single-branch --branch $git_branch $git_repo
-RUN cd proton-python-client && pip3 install -e .
-RUN cd ..
-
-RUN useradd -ms /bin/bash user
-RUN usermod -a -G wheel user
-RUN echo '%wheel ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
-
-COPY docker_entry_rpm.sh /usr/local/bin
-COPY . /home/user/protonvpn-nm-lib
-
-RUN chown -R user:user /home/user/protonvpn-nm-lib
-WORKDIR /home/user/protonvpn-nm-lib
-
-USER user
-
-ENTRYPOINT ["/usr/local/bin/docker_entry_rpm.sh"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/Dockerfile.fed37 new/protonvpn-nm-lib-3.14.0/Dockerfile.fed37
--- old/protonvpn-nm-lib-3.11.0/Dockerfile.fed37 1970-01-01 01:00:00.000000000 +0100
+++ new/protonvpn-nm-lib-3.14.0/Dockerfile.fed37 2022-10-20 17:13:58.000000000 +0200
@@ -0,0 +1,74 @@
+FROM IMAGE_URL_FED37
+ARG git_repo
+ENV git_repo=${git_repo:-GIT_REPO}
+ARG git_branch
+ENV git_branch=${git_branch:-GIT_BRANCH}
+
+RUN dnf update -y
+
+#��Install a few useful packages
+
+RUN dnf install -y net-tools \
+ gcc \
+ sudo \
+ git \
+ rpm-build \
+ rpm-devel \
+ rpmlint \
+ rpmdevtools \
+ rpm-sign \
+ python3 \
+ python3-pip \
+ NetworkManager \
+ NetworkManager-openvpn \
+ sudo \
+ vim \
+ nano \
+ pkg-config \
+ openvpn \
+ openssl-devel \
+ openssl-libs \
+ dbus-x11 \
+ gnome-keyring \
+ libsecret \
+ gtk3 \
+ polkit
+
+RUN dnf install -y \
+ python3-pyxdg \
+ python3-dbus \
+ python3-keyring \
+ python3-distro \
+ python3-gobject \
+ python3-jinja2 \
+ python3-systemd
+
+RUN dnf install -y \
+ python3-pytest \
+ python3-pytest-cov
+
+RUN dnf install -y \
+ python3-requests \
+ python3-pyOpenSSL \
+ python3-bcrypt \
+ python3-gnupg
+
+RUN python3 -m pip install --upgrade sentry-sdk==0.10.2
+
+RUN git clone --single-branch --branch $git_branch $git_repo
+RUN cd proton-python-client && pip3 install -e .
+RUN cd ..
+
+RUN useradd -ms /bin/bash user
+RUN usermod -a -G wheel user
+RUN echo '%wheel ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
+
+COPY docker_entry_rpm.sh /usr/local/bin
+COPY . /home/user/protonvpn-nm-lib
+
+RUN chown -R user:user /home/user/protonvpn-nm-lib
+WORKDIR /home/user/protonvpn-nm-lib
+
+USER user
+
+ENTRYPOINT ["/usr/local/bin/docker_entry_rpm.sh"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/Makefile new/protonvpn-nm-lib-3.14.0/Makefile
--- old/protonvpn-nm-lib-3.11.0/Makefile 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/Makefile 2022-10-20 17:13:58.000000000 +0200
@@ -14,12 +14,11 @@
IMAGE_URL_DEB = ubuntu:latest
IMAGE_URL_FED36 = fedora:36
-IMAGE_URL_FED34 = fedora:34
-IMAGE_URL_FED35 = fedora:35
+IMAGE_URL_FED37 = fedora:37
IMAGE_URL_ARCH = archlinux:latest
# Run make base to build both images based on ubuntu and fedora
-base: image-deb image-fed36 image-fed34 image-fed35 image-arch
+base: image-deb image-fed36 image-fed37 image-arch
# Create the image based on ubuntu
image-deb: image
@@ -32,25 +31,15 @@
image-arch: src = archlinux
-# Create the image based on fedora 31
-image-fed31: image
-image-fed31: DOCKER_FILE_SOURCE = Dockerfile.fed31
-image-fed31: src = fedora31
-
# Create the image based on fedora 36
image-fed36: image
image-fed36: DOCKER_FILE_SOURCE = Dockerfile.fed36
image-fed36: src = fedora36
-# Create the image based on fedora 34
-image-fed34: image
-image-fed34: DOCKER_FILE_SOURCE = Dockerfile.fed34
-image-fed34: src = fedora34
-
-# Create the image based on fedora 35
-image-fed35: image
-image-fed35: DOCKER_FILE_SOURCE = Dockerfile.fed35
-image-fed35: src = fedora35
+# Create the image based on fedora 37
+image-fed37: image
+image-fed37: DOCKER_FILE_SOURCE = Dockerfile.fed37
+image-fed37: src = fedora37
## Make remote image form a branch make image branch=<branchName> (master default)
@@ -61,7 +50,7 @@
## We host our own copy of the image ubuntu:latest
docker-source:
- sed "s|IMAGE_URL_FED36|$(IMAGE_URL_FED36)|; s|IMAGE_URL_FED34|$(IMAGE_URL_FED34)|; s|IMAGE_URL_FED35|$(IMAGE_URL_FED35)|; s|IMAGE_URL_DEB|$(IMAGE_URL_DEB)|; s|IMAGE_URL_ARCH|$(IMAGE_URL_ARCH)|" $(DOCKER_FILE_SOURCE) > /tmp/Dockerfile.image
+ sed "s|IMAGE_URL_FED36|$(IMAGE_URL_FED36)|; s|IMAGE_URL_FED37|$(IMAGE_URL_FED37)|; s|IMAGE_URL_DEB|$(IMAGE_URL_DEB)|; s|IMAGE_URL_ARCH|$(IMAGE_URL_ARCH)|" $(DOCKER_FILE_SOURCE) > /tmp/Dockerfile.image
requirements.txt:
@ touch requirements.txt
@@ -78,7 +67,7 @@
@ rm -rf __SOURCE_APP || true
local: NAME_IMAGE = protonvpn-nm-lib:latest
-local-base: local-deb local-fed36 local-fed34 local-fed35 local-arch
+local-base: local-deb local-fed36 local-fed37 local-arch
local-deb: local
local-deb: DOCKER_FILE_SOURCE = Dockerfile.deb
@@ -86,11 +75,8 @@
local-fed36: local
local-fed36: DOCKER_FILE_SOURCE = Dockerfile.fed36
-local-fed34: local
-local-fed34: DOCKER_FILE_SOURCE = Dockerfile.fed34
-
-local-fed35: local
-local-fed35: DOCKER_FILE_SOURCE = Dockerfile.fed35
+local-fed37: local
+local-fed37: DOCKER_FILE_SOURCE = Dockerfile.fed37
local-arch: local
local-arch: DOCKER_FILE_SOURCE = Dockerfile.arch
@@ -125,18 +111,8 @@
--volume $(PWD)/.env:/home/user/proton-python-client.env \
proton-python-client:latest \
python3 -m pytest
-
-test-fed34: local-fed34
- # Keep -it because with colors it's better
- @ docker run \
- --rm \
- -it \
- --privileged \
- --volume $(PWD)/.env:/home/user/proton-python-client.env \
- proton-python-client:latest \
- python3 -m pytest
-test-fed35: local-fed35
+test-fed37: local-fed37
# Keep -it because with colors it's better
@ docker run \
--rm \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/arch/PKGBUILD new/protonvpn-nm-lib-3.14.0/arch/PKGBUILD
--- old/protonvpn-nm-lib-3.11.0/arch/PKGBUILD 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/arch/PKGBUILD 2022-10-20 17:13:58.000000000 +0200
@@ -1,7 +1,7 @@
# Maintainer: Proton Technologies AG <opensource(a)proton.me>
pkgname=python-protonvpn-nm-lib
-pkgver=3.11.0
-pkgrel=2
+pkgver=3.12.0
+pkgrel=1
pkgdesc="Official Proton VPN NetworkManager library."
arch=("any")
url="https://github.com/ProtonVPN"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/debian/changelog new/protonvpn-nm-lib-3.14.0/debian/changelog
--- old/protonvpn-nm-lib-3.11.0/debian/changelog 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/debian/changelog 2022-10-20 17:13:58.000000000 +0200
@@ -1,3 +1,21 @@
+protonvpn-nm-lib (3.14.0-1) unstable; urgency=medium
+
+ * Fix: When vpn session is invalid and an api request is made, ensure that user is logged out
+
+ -- Proton Technologies AG <opensource(a)proton.me> Tue, 18 Oct 2022 16:00:00 +0000
+
+protonvpn-nm-lib (3.13.0-1) unstable; urgency=medium
+
+ * Fix: Properly handle session refresh
+
+ -- Proton Technologies AG <opensource(a)proton.me> Wed, 31 Aug 2022 16:00:00 +0000
+
+protonvpn-nm-lib (3.12.0-1) unstable; urgency=medium
+
+ * Fix: Display propper error message when unable to establish VPN tunnel
+
+ -- Proton Technologies AG <opensource(a)proton.me> Fri, 29 Jul 2022 16:00:00 +0000
+
protonvpn-nm-lib (3.11.0-2) unstable; urgency=medium
* Fix: When loading a session from keyring, update the app version and user agent with the current ones
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/constants.py new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/constants.py
--- old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/constants.py 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/constants.py 2022-10-20 17:13:58.000000000 +0200
@@ -13,7 +13,7 @@
SecureCoreStatusEnum, UserSettingConnectionEnum,
UserSettingStatusEnum)
-APP_VERSION = "3.11.0"
+APP_VERSION = "3.14.0"
API_URL = "https://api.protonvpn.ch"
IPv6_LEAK_PROTECTION_CONN_NAME = "pvpn-ipv6leak-protection"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/core/accounting/default_accounting.py new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/core/accounting/default_accounting.py
--- old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/core/accounting/default_accounting.py 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/core/accounting/default_accounting.py 2022-10-20 17:13:58.000000000 +0200
@@ -66,4 +66,4 @@
except: # noqa
current_sessions = self._env.api_session.max_connections
- return current_sessions >= self._env.api_session.max_connections
+ return current_sessions > self._env.api_session.max_connections
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/core/notification/notifications.py new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/core/notification/notifications.py
--- old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/core/notification/notifications.py 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/core/notification/notifications.py 2022-10-20 17:13:58.000000000 +0200
@@ -44,11 +44,12 @@
)
def get_all_notifications(self):
- try:
- _data = self.__data.get("Notifications", None)[0]
- except (IndexError, AttributeError) as e:
- logger.exception(e)
+ notifications = self.__data.get("Notifications", None)
+ if len(notifications) < 1:
+ logger.info("Nofitications are empty: {}".format(notifications))
_data = {}
+ else:
+ _data = notifications[0]
return BaseNotificationType.factory(_data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/core/session/session.py new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/core/session/session.py
--- old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/core/session/session.py 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/core/session/session.py 2022-10-20 17:13:58.000000000 +0200
@@ -91,14 +91,13 @@
# Common handlers retries
def _handle_429(self, error, session, *args, **kwargs):
- logger.info("Catched 429 error, will retry")
+ logger.info("Catched 429 error, retrying new request if retry header present")
- hold_request_time = error.headers["Retry-After"]
+ hold_request_time = error.headers.get("Retry-After")
try:
hold_request_time = int(hold_request_time)
except ValueError:
- # Wait at least two seconds, and up to 20
- hold_request_time = 2 + random.random() * 18
+ raise UnreacheableAPIError(error)
logger.info("Retrying after {} seconds".format(hold_request_time))
time.sleep(hold_request_time)
@@ -106,12 +105,24 @@
# Retry
return self._call_original_function(session, *args, **kwargs)
+ def _handle_500(self, error, session, *args, **kwargs):
+ logger.info("Catched 500 error, raising exception")
+
+ raise UnreacheableAPIError(error)
+
def _handle_503(self, error, session, *args, **kwargs):
- logger.info("Catched 503 error, retrying new request")
+ logger.info("Catched 503 error, retrying new request if retry header present")
+
+ hold_request_time = error.headers.get("Retry-After")
+ try:
+ hold_request_time = int(hold_request_time)
+ except ValueError:
+ raise UnreacheableAPIError(error)
- # Wait between 2 and 10 seconds
- hold_request_time = 2 + random.random() * 8
+ logger.info("Retrying after {} seconds".format(hold_request_time))
time.sleep(hold_request_time)
+
+ # Retry
return self._call_original_function(session, *args, **kwargs)
def _handle_2011(self, error, session, *args, **kwargs):
@@ -145,17 +156,29 @@
return self._call_without_error_handling(session, *args, **kwargs)
def _handle_403(self, error, session, *args, **kwargs):
+ logger.info("Catched 403 error, missing scopes. Re-authentication needed.")
raise API403Error(error)
def _handle_5002(self, error, session, *args, **kwargs):
+ logger.info("Catched 5002 error, invalid version.")
raise API5002Error(error)
def _handle_5003(self, error, session, *args, **kwargs):
+ logger.info("Catched 5003 error, bad version.")
raise API5003Error(error)
def _handle_10013(self, error, session, *args, **kwargs):
+ logger.info("Catched 10013 error, session invalid.")
raise API10013Error(error)
+ def _handle_400(self, error, session, *args, **kwargs):
+ logger.info("Catched 400 error, session invalid.")
+ raise APISessionIsNotValidError(error)
+
+ def _handle_422(self, error, session, *args, **kwargs):
+ logger.info("Catched 422 error, session invalid.")
+ raise APISessionIsNotValidError(error)
+
class ErrorStrategyAuthenticate(ErrorStrategy):
def _handle_401(self, error, session, *args, **kwargs):
@@ -163,15 +186,33 @@
pass
def _handle_403(self, error, session, *args, **kwargs):
- logger.info("Ignored a 401 at authenticate")
+ logger.info("Ignored a 403 at authenticate")
pass
def _handle_8002(self, error, session, *args, **kwargs):
+ logger.info("Catched 8002, incorrect credentials.")
raise API8002Error(error)
class ErrorStrategyRefresh(ErrorStrategy):
- pass
+ def _handle_409(self, error, session, *args, **kwargs):
+ logger.info(
+ "Catched 409 error, possible race condition,"
+ "retry with error handling."
+ )
+ return self._call_without_error_handling(session, *args, **kwargs)
+
+ def _handle_10013(self, error, session, *args, **kwargs):
+ logger.info("Catched 10013 error, session invalid.")
+ raise APISessionIsNotValidError(error)
+
+ def _handle_400(self, error, session, *args, **kwargs):
+ logger.info("Catched 400 error, session invalid.")
+ raise APISessionIsNotValidError(error)
+
+ def _handle_422(self, error, session, *args, **kwargs):
+ logger.info("Catched 422 error, session invalid.")
+ raise APISessionIsNotValidError(error)
class APISession:
@@ -193,13 +234,12 @@
"""
- # Probably would be better to have that somewhere else
- FULL_CACHE_TIME_EXPIRE = 3 * (60 * 60) # 3h in seconds
- STREAMING_SERVICES_TIME_EXPIRE = FULL_CACHE_TIME_EXPIRE
- CLIENT_CONFIG_TIME_EXPIRE = FULL_CACHE_TIME_EXPIRE
- STREAMING_ICON_TIME_EXPIRE = 8 * (60 * 60) # 8h in seconds
- NOTIFICATIONS_TIME_EXPIRE = 12 * (60 * 60) # 12h in seconds
- LOADS_CACHE_TIME_EXPIRE = 15 * 60 # 15min in seconds
+ FULL_CACHE_TIME_EXPIRE = 10800 # 3h in seconds
+ STREAMING_SERVICES_TIME_EXPIRE = 10800
+ CLIENT_CONFIG_TIME_EXPIRE = 10800
+ STREAMING_ICON_TIME_EXPIRE = 28800 # 8h in seconds
+ NOTIFICATIONS_TIME_EXPIRE = 43200 # 12h in seconds
+ LOADS_CACHE_TIME_EXPIRE = 900 # 15min in seconds
RANDOM_FRACTION = 0.22 # Generate a value of the timeout, +/- up to 22%, at random
TIMEOUT = (3.05, 3.05)
@@ -633,6 +673,8 @@
try:
self.update_servers_if_needed()
+ except APISessionIsNotValidError:
+ raise
except: # noqa
pass
@@ -798,6 +840,8 @@
try:
self._update_notifications_if_needed()
+ except APISessionIsNotValidError:
+ raise
except: # noqa
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/exceptions.py new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/exceptions.py
--- old/protonvpn-nm-lib-3.11.0/protonvpn_nm_lib/exceptions.py 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/protonvpn_nm_lib/exceptions.py 2022-10-20 17:13:58.000000000 +0200
@@ -110,6 +110,14 @@
"""Proton session wrapper error."""
+class API400Error(ProtonSessionWrapperError):
+ """Error 400.
+
+ Upon refreshing tokens, wwhen a request is badly formatted this exception
+ is raised. Usually requires a user to re-login.
+ """
+
+
class API401Error(ProtonSessionWrapperError):
"""Error 401.
@@ -124,6 +132,14 @@
"""
+class API422Error(ProtonSessionWrapperError):
+ """Error 422.
+
+ Upon refreshing tokens, this exception is raised
+ session has experied and re-login is required.
+ """
+
+
class API429Error(ProtonSessionWrapperError):
"""Error 429.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/rpmbuild/SPECS/python3-protonvpn-nm-lib.spec new/protonvpn-nm-lib-3.14.0/rpmbuild/SPECS/python3-protonvpn-nm-lib.spec
--- old/protonvpn-nm-lib-3.11.0/rpmbuild/SPECS/python3-protonvpn-nm-lib.spec 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/rpmbuild/SPECS/python3-protonvpn-nm-lib.spec 2022-10-20 17:13:58.000000000 +0200
@@ -1,6 +1,6 @@
%define unmangled_name protonvpn-nm-lib
-%define version 3.11.0
-%define release 2
+%define version 3.14.0
+%define release 1
Prefix: %{_prefix}
@@ -60,6 +60,18 @@
%defattr(-,root,root)
%changelog
+* Tue Oct 18 2022 Proton Technologies AG <opensource(a)proton.me> 3.14.0-1
+- Fix: When vpn session is invalid, ensure that user is logged out
+
+* Thu Sep 22 2022 Proton Technologies AG <opensource(a)proton.me> 3.13.0-2
+- Drop F34-35 and add F37
+
+* Fri Aug 31 2022 Proton Technologies AG <opensource(a)proton.me> 3.13.0-1
+- Fix: Properly handle session refresh
+
+* Fri Jul 29 2022 Proton Technologies AG <opensource(a)proton.me> 3.12.0-1
+- Fix: Display propper error message when unable to establish VPN tunnel
+
* Tue May 31 2022 Proton Technologies AG <opensource(a)proton.me> 3.11.0-2
- Fix: When loading a session from keyring, update the app version and user agent with the current ones
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/protonvpn-nm-lib-3.11.0/tests/test_default_accounting.py new/protonvpn-nm-lib-3.14.0/tests/test_default_accounting.py
--- old/protonvpn-nm-lib-3.11.0/tests/test_default_accounting.py 2022-05-31 16:19:23.000000000 +0200
+++ new/protonvpn-nm-lib-3.14.0/tests/test_default_accounting.py 2022-10-20 17:13:58.000000000 +0200
@@ -92,7 +92,7 @@
super().__init__()
def get_sessions(self):
- return ["MockSession1", "MockSession2"]
+ return ["MockSession1", "MockSession2", "MockSession3"]
class TestDefaultAccounting:
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2022-11-30 16:43:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Wed Nov 30 16:43:15 2022 rev:1965 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-release.spec ++++++
--- /var/tmp/diff_new_pack.nT8by4/_old 2022-11-30 16:43:18.110723418 +0100
+++ /var/tmp/diff_new_pack.nT8by4/_new 2022-11-30 16:43:18.114723439 +0100
@@ -17,7 +17,7 @@
Name: MicroOS-release
-Version: 20221129
+Version: 20221130
Release: 0
Summary: openSUSE MicroOS
License: GPL-2.0-or-later
@@ -176,9 +176,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = MicroOS
-Provides: product(MicroOS) = 20221129-0
+Provides: product(MicroOS) = 20221130-0
Provides: product-label() = openSUSE%20MicroOS
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20221129
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20221130
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-endoflife()
Requires: product_flavor(MicroOS)
@@ -194,7 +194,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(MicroOS) = 20221129-0
+Provides: product_flavor(MicroOS) = 20221130-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description dvd
@@ -210,7 +210,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(MicroOS) = 20221129-0
+Provides: product_flavor(MicroOS) = 20221130-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description appliance
@@ -224,24 +224,22 @@
%prep
+%setup -qcT
+mkdir license
+if [ -f /CD1/license.tar.gz ]; then
+ tar -C license -xzf /CD1/license.tar.gz
+elif [ -f %{_prefix}/lib/skelcd/CD1/license.tar.gz ]; then
+ tar -C license -xzf %{_prefix}/lib/skelcd/CD1/license.tar.gz
+fi
%build
%install
-mkdir -p %{buildroot}%{_sysconfdir}
-mkdir -p %{buildroot}%{_prefix}/lib/issue.d
+mkdir -p %{buildroot}%{_sysconfdir} %{buildroot}%{_prefix}/lib/issue.d %{buildroot}/run
+
echo -e "\nWelcome to openSUSE MicroOS (%{_target_cpu}) - Kernel \\\r (\\\l).\n" > %{buildroot}%{_prefix}/lib/issue.d/10-OS
echo -e "\n" > %{buildroot}%{_prefix}/lib/issue.d/90-OS
-# Put EULA into correct place
-mkdir -p %{buildroot}/%{_sysconfdir}/YaST2/licenses/base
-cd %{buildroot}/%{_sysconfdir}/YaST2/licenses/base
-if [ -f /CD1/license.tar.gz ]; then
- tar -xzf /CD1/license.tar.gz
-elif [ -f %{_prefix}/lib/skelcd/CD1/license.tar.gz ]; then
- tar -xzf %{_prefix}/lib/skelcd/CD1/license.tar.gz
-fi
-
VERSION_ID=`echo %{version}|tr '[:upper:]' '[:lower:]'|sed -e 's/ //g;'`
# note: VERSION is an optional field and has no meaning other than informative on a rolling distro
# We do thus not add it to the os-release file
@@ -261,17 +259,26 @@
EOF
ln -s ..%{_prefix}/lib/os-release %{buildroot}%{_sysconfdir}/os-release
+# Put EULA into correct place
+install -D -d -m 755 "%{buildroot}%_defaultlicensedir/product/base"
+install -D -d -m 755 "%{buildroot}%_defaultlicensedir"
+cp -a license "%{buildroot}%_defaultlicensedir/%name"
+pushd license
+for i in *; do
+ ln -s "%_defaultlicensedir/%name/$i" %{buildroot}%_defaultlicensedir/product/base/$i
+done
+
mkdir -p %{buildroot}%{_sysconfdir}/products.d
cat >%{buildroot}%{_sysconfdir}/products.d/MicroOS.prod << EOF
<?xml version="1.0" encoding="UTF-8"?>
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>MicroOS</name>
- <version>20221129</version>
+ <version>20221130</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:microos:20221129</cpeid>
+ <cpeid>cpe:/o:opensuse:microos:20221130</cpeid>
<productline>MicroOS</productline>
<register>
<pool>
@@ -338,16 +345,13 @@
%files
%defattr(644,root,root,755)
+%dir %_defaultlicensedir/product
+%_defaultlicensedir/product/base
+%license license/*
%{_sysconfdir}/os-release
%{_prefix}/lib/os-release
%dir %{_sysconfdir}/products.d
%{_sysconfdir}/products.d/*
-%dir %{_sysconfdir}/YaST2/
-%dir %{_sysconfdir}/YaST2/licenses/
-%dir %{_sysconfdir}/YaST2/licenses/base/
-# no %doc here, or we will not install them
-%{_sysconfdir}/YaST2/licenses/base/license*txt
-%{_sysconfdir}/YaST2/licenses/base/no-acceptance-needed
%dir %{_prefix}/lib/issue.d
%{_prefix}/lib/issue.d/*-OS
++++++ openSUSE-Addon-NonOss-release.spec ++++++
--- /var/tmp/diff_new_pack.nT8by4/_old 2022-11-30 16:43:18.142723587 +0100
+++ /var/tmp/diff_new_pack.nT8by4/_new 2022-11-30 16:43:18.146723608 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package openSUSE-Addon-NonOss-release (Version 20221129)
+# spec file for package openSUSE-Addon-NonOss-release (Version 20221130)
#
# Copyright (c) 2022 openSUSE.
#
@@ -16,7 +16,7 @@
Name: openSUSE-Addon-NonOss-release
%define product openSUSE-Addon-NonOss
Summary: openSUSE NonOSS Addon%{?betaversion: %{betaversion}}
-Version: 20221129
+Version: 20221130
Release: 0
License: BSD-3-Clause
Group: System/Fhs
@@ -24,9 +24,9 @@
Provides: %name-%version
Provides: product() = openSUSE%2DAddon%2DNonOss
-Provides: product(openSUSE-Addon-NonOss) = 20221129-0
+Provides: product(openSUSE-Addon-NonOss) = 20221130-0
Provides: product-label() = non%20oss%20addon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20221129
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20221130
AutoReqProv: on
@@ -49,10 +49,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20221129</version>
+ <version>20221130</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20221129</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20221130</cpeid>
<register>
<pool>
</pool>
++++++ openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.nT8by4/_old 2022-11-30 16:43:18.170723735 +0100
+++ /var/tmp/diff_new_pack.nT8by4/_new 2022-11-30 16:43:18.178723777 +0100
@@ -20,7 +20,7 @@
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
-Version: 20221129
+Version: 20221130
Release: 0
# 0 is the product release, not the build release of this package
Summary: openSUSE Tumbleweed
@@ -178,7 +178,7 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = openSUSE
-Provides: product(openSUSE) = 20221129-0
+Provides: product(openSUSE) = 20221130-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
@@ -192,7 +192,7 @@
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20221129
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20221130
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Ftumbleweed%2Frepo%2Foss%2F
Requires: product_flavor(openSUSE)
@@ -206,7 +206,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description ftp
@@ -221,7 +221,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(mini)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description mini
@@ -236,7 +236,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description dvd
@@ -251,7 +251,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-kde)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-kde
@@ -266,7 +266,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-x11)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-x11
@@ -281,7 +281,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-gnome)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-gnome
@@ -296,7 +296,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-xfce)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-xfce
@@ -311,7 +311,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-kde)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-kde
@@ -326,7 +326,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-gnome)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-gnome
@@ -341,7 +341,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-x11)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-x11
@@ -356,7 +356,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance
@@ -371,7 +371,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-docker)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-docker
@@ -386,7 +386,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-kvm)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-kvm
@@ -401,7 +401,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vmware)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vmware
@@ -416,7 +416,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-openstack)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-openstack
@@ -431,7 +431,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-hyperv)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-hyperv
@@ -446,7 +446,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vagrant)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vagrant
@@ -461,7 +461,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-wsl)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-wsl
@@ -476,7 +476,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-custom)
-Provides: product_flavor(openSUSE) = 20221129-0
+Provides: product_flavor(openSUSE) = 20221130-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-custom
@@ -540,9 +540,7 @@
mkdir -p %{buildroot}%{_sysconfdir}/zypp/vendors.d
echo -e "[main]\nvendors=openSUSE,SUSE,SUSE LLC <https://www.suse.com/>\n" > %{buildroot}%{_sysconfdir}/zypp/vendors.d/00-openSUSE.conf
-
-# fate#319341, make openSUSE-release own YaST license files. TODO:
-# get rid of /etc/YaST2/licenses
+# fate#319341, make openSUSE-release own YaST license files.
install -D -d -m 755 "%{buildroot}%_defaultlicensedir/product/base"
install -D -d -m 755 "%{buildroot}%_defaultlicensedir"
cp -a license "%{buildroot}%_defaultlicensedir/%name"
@@ -557,10 +555,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20221129</version>
+ <version>20221130</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20221129</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20221130</cpeid>
<productline>openSUSE</productline>
<register>
<pool>
@@ -758,10 +756,11 @@
%config %{_sysconfdir}/YaST2/control.xml
%config %{_sysconfdir}/zypp/vendors.d/00-openSUSE.conf
%{_prefix}/lib/motd.d/welcome
-%dir %{_prefix}/lib/issue.d/
+%config(noreplace) %{_sysconfdir}/issue.net
+%dir %{_sysconfdir}/products.d
+%{_sysconfdir}/products.d/*
+%dir %{_prefix}/lib/issue.d
%{_prefix}/lib/issue.d/10-openSUSE.conf
%{_prefix}/lib/issue.d/90-openSUSE.conf
-%config(noreplace) %{_sysconfdir}/issue.net
-%{_sysconfdir}/products.d
%changelog
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package suse-prime for openSUSE:Factory checked in at 2022-11-30 16:33:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/suse-prime (Old)
and /work/SRC/openSUSE:Factory/.suse-prime.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "suse-prime"
Wed Nov 30 16:33:17 2022 rev:39 rq:1039126 version:0.8.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/suse-prime/suse-prime.changes 2022-10-24 11:13:32.071251557 +0200
+++ /work/SRC/openSUSE:Factory/.suse-prime.new.1597/suse-prime.changes 2022-11-30 16:33:18.547538632 +0100
@@ -1,0 +2,7 @@
+Wed Nov 30 13:53:46 UTC 2022 - Stefan Dirsch <sndirsch(a)suse.com>
+
+- SUSEPrime-0.8.10
+ * prime-select.sh: fix kdeglobals path (github issue#91)
+- require sudo command/package (github issue#91)
+
+-------------------------------------------------------------------
Old:
----
SUSEPrime-0.8.9.tar.gz
New:
----
SUSEPrime-0.8.10.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ suse-prime.spec ++++++
--- /var/tmp/diff_new_pack.skolH5/_old 2022-11-30 16:33:19.223542217 +0100
+++ /var/tmp/diff_new_pack.skolH5/_new 2022-11-30 16:33:19.227542239 +0100
@@ -23,7 +23,7 @@
%global modprobe_d_files 09-nvidia-modprobe-bbswitch-G04.conf 09-nvidia-modprobe-pm-G05.conf
Name: suse-prime
-Version: 0.8.9
+Version: 0.8.10
Release: 0
Summary: GPU (nvidia/intel) selection for NVIDIA optimus laptops with bbswitch support
License: SUSE-Public-Domain
@@ -37,6 +37,8 @@
Provides: suse-prime-bbswitch = %{version}
BuildRequires: pkgconfig(systemd)
BuildArch: noarch
+Requires: coreutils
+Requires: sudo
%{?systemd_ordering}
%description
++++++ SUSEPrime-0.8.9.tar.gz -> SUSEPrime-0.8.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SUSEPrime-0.8.9/prime-select.sh new/SUSEPrime-0.8.10/prime-select.sh
--- old/SUSEPrime-0.8.9/prime-select.sh 2022-10-23 22:48:54.000000000 +0200
+++ new/SUSEPrime-0.8.10/prime-select.sh 2022-11-30 14:27:51.000000000 +0100
@@ -220,7 +220,7 @@
panel_name=${1}
- kdeglobals="$(sudo -u $user -i eval 'echo -n $HOME')/.config/kdeglobals"
+ kdeglobals="$(sudo -u $user /usr/bin/printenv HOME)/.config/kdeglobals"
if [ -f $kdeglobals ]; then
sudo -u $user sed -i -r "s/(ScreenScaleFactors=)$panel_nvidia|$panel_intel|$panel_intel2/\1$panel_name/" "$kdeglobals"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package efl for openSUSE:Factory checked in at 2022-11-30 16:07:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/efl (Old)
and /work/SRC/openSUSE:Factory/.efl.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "efl"
Wed Nov 30 16:07:58 2022 rev:52 rq:1039026 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/efl/efl.changes 2022-10-01 17:41:38.593504636 +0200
+++ /work/SRC/openSUSE:Factory/.efl.new.1597/efl.changes 2022-11-30 16:07:59.263519975 +0100
@@ -1,0 +2,5 @@
+Tue Nov 29 17:52:47 UTC 2022 - Michal Suchanek <msuchanek(a)suse.com>
+
+- luajit no longer available on ppc64
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ efl.spec ++++++
--- /var/tmp/diff_new_pack.bDdQob/_old 2022-11-30 16:08:00.675527701 +0100
+++ /var/tmp/diff_new_pack.bDdQob/_new 2022-11-30 16:08:00.683527745 +0100
@@ -36,7 +36,7 @@
%else
%define xine_present 1
%endif
-%ifarch %ix86 x86_64 aarch64 %{arml} ppc ppc64le
+%ifarch %ix86 x86_64 aarch64 %{arml} ppc
%if !0%{?suse_version} || 0%{?is_opensuse}
%define luajit_present 1
%endif
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package spice for openSUSE:Factory checked in at 2022-11-30 16:07:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spice (Old)
and /work/SRC/openSUSE:Factory/.spice.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spice"
Wed Nov 30 16:07:56 2022 rev:41 rq:1039021 version:0.15.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/spice/spice.changes 2022-04-02 18:20:37.230221255 +0200
+++ /work/SRC/openSUSE:Factory/.spice.new.1597/spice.changes 2022-11-30 16:07:57.391509733 +0100
@@ -1,0 +2,7 @@
+Tue Nov 29 13:52:13 MST 2022 - carnold(a)suse.com
+
+- Update to v0.15.1 release
+ * This is a bug fix release with no upstream changelog
+- Drop fix-build-with-gstreamer-1.20.patch
+
+-------------------------------------------------------------------
Old:
----
fix-build-with-gstreamer-1.20.patch
spice-0.15.0.tar.bz2
spice-0.15.0.tar.bz2.sig
New:
----
spice-0.15.1.tar.bz2
spice-0.15.1.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ spice.spec ++++++
--- /var/tmp/diff_new_pack.q8kYTY/_old 2022-11-30 16:07:57.967512885 +0100
+++ /var/tmp/diff_new_pack.q8kYTY/_new 2022-11-30 16:07:57.971512907 +0100
@@ -22,7 +22,7 @@
%define libname libspice-server1
Name: spice
-Version: 0.15.0
+Version: 0.15.1
Release: 0
Summary: SPICE client and server library
License: GPL-2.0-or-later OR LGPL-2.1-or-later
@@ -32,8 +32,6 @@
Source1: https://www.spice-space.org/download/releases/spice-server/%{name}-%{versio…
Source2: %{name}.keyring
Source99: %{name}.rpmlintrc
-# PATCH-FIX-UPSTREAM https://gitlab.freedesktop.org/spice/spice/-/merge_requests/207
-Patch0: fix-build-with-gstreamer-1.20.patch
BuildRequires: gcc-c++
BuildRequires: libjpeg-devel
@@ -97,7 +95,6 @@
%prep
%setup -q
-%patch0 -p1
%build
%configure \
++++++ spice-0.15.0.tar.bz2 -> spice-0.15.1.tar.bz2 ++++++
++++ 24494 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-py for openSUSE:Factory checked in at 2022-11-30 16:07:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-py (Old)
and /work/SRC/openSUSE:Factory/.python-py.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-py"
Wed Nov 30 16:07:55 2022 rev:39 rq:1038945 version:1.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-py/python-py.changes 2022-03-17 17:01:22.585679758 +0100
+++ /work/SRC/openSUSE:Factory/.python-py.new.1597/python-py.changes 2022-11-30 16:07:55.339498507 +0100
@@ -1,0 +2,8 @@
+Tue Nov 29 17:04:41 UTC 2022 - Daniel Garcia <daniel.garcia(a)suse.com>
+
+- Remove python_module macro definition
+- Add python-py dep for testing
+- Use autosetup insteado of setup + patch
+- More specific python_sitelib in %files
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-py.spec ++++++
--- /var/tmp/diff_new_pack.VoA9cZ/_old 2022-11-30 16:07:55.851501308 +0100
+++ /var/tmp/diff_new_pack.VoA9cZ/_new 2022-11-30 16:07:55.855501330 +0100
@@ -17,7 +17,6 @@
%define oldpython python
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
@@ -47,6 +46,7 @@
Obsoletes: %{oldpython}-py-docs
BuildArch: noarch
%if %{with test}
+BuildRequires: %{python_module py = %{version}}
BuildRequires: %{python_module pytest}
%endif
%python_subpackages
@@ -62,8 +62,7 @@
* py.path: uniform local and svn path objects
%prep
-%setup -q -n py-%{version}
-%patch0 -p1
+%autosetup -p1 -n py-%{version}
rm -rf py.egg-info
rm -f tox.ini
@@ -92,7 +91,8 @@
%files %{python_files}
%doc README.rst
%license LICENSE
-%{python_sitelib}/*
+%{python_sitelib}/py
+%{python_sitelib}/py-%{version}*-info
%endif
%changelog
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-execnet for openSUSE:Factory checked in at 2022-11-30 16:07:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-execnet (Old)
and /work/SRC/openSUSE:Factory/.python-execnet.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-execnet"
Wed Nov 30 16:07:53 2022 rev:14 rq:1038942 version:1.9.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-execnet/python-execnet.changes 2021-12-16 21:19:07.798517076 +0100
+++ /work/SRC/openSUSE:Factory/.python-execnet.new.1597/python-execnet.changes 2022-11-30 16:07:54.211492336 +0100
@@ -1,0 +2,7 @@
+Tue Nov 29 16:58:39 UTC 2022 - Daniel Garcia <daniel.garcia(a)suse.com>
+
+- Remove python_module macro definition
+- Add python-py dependency required because python-pytest removed that
+ dependency
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-execnet.spec ++++++
--- /var/tmp/diff_new_pack.9Fp9yG/_old 2022-11-30 16:07:54.671494852 +0100
+++ /var/tmp/diff_new_pack.9Fp9yG/_new 2022-11-30 16:07:54.679494896 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-execnet
#
-# 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
@@ -16,7 +16,6 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-execnet
Version: 1.9.0
Release: 0
@@ -26,6 +25,7 @@
URL: https://github.com/pytest-dev/execnet
Source0: https://files.pythonhosted.org/packages/source/e/execnet/execnet-%{version}…
BuildRequires: %{python_module pytest}
+BuildRequires: %{python_module py}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package chrony for openSUSE:Factory checked in at 2022-11-30 16:07:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chrony (Old)
and /work/SRC/openSUSE:Factory/.chrony.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chrony"
Wed Nov 30 16:07:50 2022 rev:38 rq:1038940 version:4.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/chrony/chrony.changes 2022-09-09 18:22:55.180159612 +0200
+++ /work/SRC/openSUSE:Factory/.chrony.new.1597/chrony.changes 2022-11-30 16:07:52.103480803 +0100
@@ -1,0 +2,6 @@
+Wed Nov 16 11:37:25 UTC 2022 - Clemens Famulla-Conrad <cfamullaconrad(a)suse.com>
+
+- Install chrony DHCP dispatcher script for Networkmanager
+ * chrony.nm-dispatcher.dhcp.patch /var/run to /run
+
+-------------------------------------------------------------------
New:
----
chrony.nm-dispatcher.dhcp.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ chrony.spec ++++++
--- /var/tmp/diff_new_pack.Ay2Jrn/_old 2022-11-30 16:07:52.903485179 +0100
+++ /var/tmp/diff_new_pack.Ay2Jrn/_new 2022-11-30 16:07:52.907485201 +0100
@@ -69,6 +69,7 @@
Patch2: chrony-logrotate.patch
Patch3: chrony-service-ordering.patch
Patch7: chrony-htonl.patch
+Patch8: chrony.nm-dispatcher.dhcp.patch
BuildRequires: NetworkManager-devel
BuildRequires: bison
BuildRequires: findutils
@@ -179,6 +180,7 @@
%patch2 -p1
%patch3
%patch7
+%patch8
# Remove pool statements from the default /etc/chrony.conf. They will
# be provided by branding packages in /etc/chrony.d/pool.conf .
@@ -190,6 +192,10 @@
# Also include any directives found in configuration files in /etc/chrony.d
include %{_sysconfdir}/chrony.d/*.conf
+
+# Add sourcedir needed by NetworkManager DHCP dispatcher
+sourcedir /run/chrony-dhcp
+
EOF
touch -r examples/chrony.conf.example2 chrony.conf
@@ -231,7 +237,9 @@
install -Dpm 0640 examples/chrony.keys.example \
%{buildroot}%{_sysconfdir}/chrony.keys
install -Dpm 0755 examples/chrony.nm-dispatcher.onoffline \
- %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony
+ %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony-onoffline
+install -Dpm 0755 examples/chrony.nm-dispatcher.dhcp \
+ %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony-dhcp
install -Dpm 0755 %{SOURCE3} \
%{buildroot}%{_sysconfdir}/dhcp/dhclient.d/chrony.sh
%if %{with usr_etc}
@@ -337,7 +345,8 @@
%else
%config(noreplace) %{_sysconfdir}/logrotate.d/chrony
%endif
-%attr(0755,root,root) %{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony
+%attr(0755,root,root) %{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony-onoffline
+%attr(0755,root,root) %{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony-dhcp
%dir %{_sysconfdir}/chrony.d/
%dir %{_sysconfdir}/dhcp/
%dir %{_sysconfdir}/dhcp/dhclient.d/
++++++ chrony.nm-dispatcher.dhcp.patch ++++++
--- examples/chrony.nm-dispatcher.dhcp.orig
+++ examples/chrony.nm-dispatcher.dhcp
@@ -10,7 +10,7 @@
chronyc=/usr/bin/chronyc
server_options=iburst
-server_dir=/var/run/chrony-dhcp
+server_dir=/run/chrony-dhcp
dhcp_server_file=$server_dir/$interface.sources
dhcp_ntp_servers="$DHCP4_NTP_SERVERS $DHCP6_DHCP6_NTP_SERVERS"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package umockdev for openSUSE:Factory checked in at 2022-11-30 16:07:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/umockdev (Old)
and /work/SRC/openSUSE:Factory/.umockdev.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "umockdev"
Wed Nov 30 16:07:49 2022 rev:14 rq:1038920 version:0.17.15
Changes:
--------
--- /work/SRC/openSUSE:Factory/umockdev/umockdev.changes 2022-07-08 14:01:31.486421824 +0200
+++ /work/SRC/openSUSE:Factory/.umockdev.new.1597/umockdev.changes 2022-11-30 16:07:49.147464630 +0100
@@ -1,0 +2,11 @@
+Sun Nov 27 10:24:04 UTC 2022 - Atri Bhattacharya <badshah400(a)gmail.com>
+
+- Update to version 0.17.15:
+ * Fixes for tests.
+- Changes from version 0.17.14:
+ * ioctl: Make data object usable from Python.
+ * preload: Wrap statfs().
+ * Move to gnu11 C standard.
+ * Lots of small potential bug fixes spotted by Coverity.
+
+-------------------------------------------------------------------
Old:
----
umockdev-0.17.13.tar.xz
New:
----
umockdev-0.17.15.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ umockdev.spec ++++++
--- /var/tmp/diff_new_pack.BYEHUK/_old 2022-11-30 16:07:49.627467257 +0100
+++ /var/tmp/diff_new_pack.BYEHUK/_new 2022-11-30 16:07:49.631467278 +0100
@@ -19,7 +19,7 @@
%define shlib libumockdev0
%define shlibpre libumockdev-preload0
Name: umockdev
-Version: 0.17.13
+Version: 0.17.15
Release: 0
Summary: Mock hardware devices for creating unit tests and bug reporting
License: LGPL-2.1-or-later
++++++ umockdev-0.17.13.tar.xz -> umockdev-0.17.15.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/.github/release.eloquent.yml new/umockdev-0.17.15/.github/release.eloquent.yml
--- old/umockdev-0.17.13/.github/release.eloquent.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/umockdev-0.17.15/.github/release.eloquent.yml 2022-11-24 16:02:22.000000000 +0100
@@ -0,0 +1,2 @@
+assets:
+ - path: umockdev-*.tar.xz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/.github/workflows/release.yml new/umockdev-0.17.15/.github/workflows/release.yml
--- old/umockdev-0.17.13/.github/workflows/release.yml 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/.github/workflows/release.yml 2022-11-24 16:02:22.000000000 +0100
@@ -9,16 +9,19 @@
runs-on: ubuntu-latest
steps:
- name: Clone repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
+ with:
+ # need this to also fetch tags
+ fetch-depth: 0
+
+ - name: Workaround for https://github.com/actions/checkout/pull/697
+ run: git fetch --force origin $(git describe --tags):refs/tags/$(git describe --tags)
- name: Build release tarball
# run as root; current Ubuntu podman breaks user networking ("could not find slirp4netns")
run: sudo PUBLISH_TAR=1 tests/run-apt
- name: Create GitHub release
- uses: docker://antonyurchenko/git-release:latest
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- CHANGELOG_FILE: "NEWS"
+ uses: eloquent/github-release-action@v2
with:
- args: umockdev-*.tar.xz
+ prerelease: "false"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/.github/workflows/tests.yml new/umockdev-0.17.15/.github/workflows/tests.yml
--- old/umockdev-0.17.13/.github/workflows/tests.yml 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/.github/workflows/tests.yml 2022-11-24 16:02:22.000000000 +0100
@@ -30,7 +30,10 @@
timeout-minutes: 30
steps:
- name: Clone repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
+ with:
+ # need this to also fetch tags
+ fetch-depth: 0
- name: Run unit tests
run: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/.gitignore new/umockdev-0.17.15/.gitignore
--- old/umockdev-0.17.13/.gitignore 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/.gitignore 2022-11-24 16:02:22.000000000 +0100
@@ -2,6 +2,7 @@
.deps
.dirstamp
.libs
+.version
*.la
*.lo
*.o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/.version new/umockdev-0.17.15/.version
--- old/umockdev-0.17.13/.version 1970-01-01 01:00:00.000000000 +0100
+++ new/umockdev-0.17.15/.version 2022-11-24 16:06:12.774316300 +0100
@@ -0,0 +1 @@
+0.17.15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/NEWS new/umockdev-0.17.15/NEWS
--- old/umockdev-0.17.13/NEWS 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/NEWS 2022-11-24 16:02:22.000000000 +0100
@@ -1,3 +1,5 @@
+OBSOLETE: Release news of newer versions are contained in the tag descriptions.
+
## [0.17.13] - 2022-05-30
- preload: Wrap fstatfs(), to work with systemd 251 also with Python tests
- Fix tests in Gentoo sandbox build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/README.md new/umockdev-0.17.15/README.md
--- old/umockdev-0.17.13/README.md 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/README.md 2022-11-24 16:02:22.000000000 +0100
@@ -1,3 +1,5 @@
+![CI status](https://github.com/martinpitt/umockdev/actions/workflows/tests.yml/…
+
umockdev
========
umockdev mocks Linux devices for creating integration tests for hardware
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/do-release new/umockdev-0.17.15/do-release
--- old/umockdev-0.17.13/do-release 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/do-release 1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-#!/bin/sh
-set -e
-
-# This script does all the steps necessary for doing a new upstream release. It
-# should solely be used by upstream developers, distributors do not need to
-# worry about it.
-
-# check for anything uncommitted
-if LC_MESSAGES=C git status | grep -Eiq 'modified|untracked'; then
- echo "untracked/modified files, see git status" >&2
- exit 1
-fi
-
-git clean -fdx
-
-# update NEWS
-version=$(sed -rn '1 { s/^.*\[([0-9.]+)\].*/\1/; p }' NEWS)
-[ -n "$version" ] || {
- echo "failed to parse version" >&2
- exit 1
-}
-sed -i "s/- UNRELEASED/- $(date '+%Y-%m-%d')/" NEWS
-
-# commit the release and tag
-git commit -a -m "release $version"
-changes=$(sed -n '/^$/ q; /^- / p' NEWS)
-printf "$version\n\n$changes\n" | git tag -s -F- $version
-git push
-git push --tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/meson.build new/umockdev-0.17.15/meson.build
--- old/umockdev-0.17.13/meson.build 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/meson.build 2022-11-24 16:02:22.000000000 +0100
@@ -1,5 +1,5 @@
project('umockdev', 'c', 'vala',
- version: run_command('sed', '-rn', '1 { s/^.*\[([0-9.]+)\].*/\\1/; p }', 'NEWS', check: true).stdout().strip(),
+ version: run_command(meson.current_source_dir() / 'src' / 'getversion.sh', check: true).stdout().strip(),
license: 'LGPLv2.1+')
srcdir = meson.current_source_dir() / 'src'
@@ -7,11 +7,15 @@
lib_version = '0.3.0'
add_project_arguments(
+ '-std=gnu11',
'-Werror=missing-prototypes',
'-Werror=strict-prototypes',
'-Werror=nested-externs',
'-Werror=pointer-arith',
'-Werror=implicit-function-declaration',
+ '-Werror=implicit-int',
+ '-Werror=int-conversion',
+ '-Werror=old-style-definition',
'-Werror=pointer-arith',
'-Werror=init-self',
'-Werror=format-security',
@@ -26,6 +30,8 @@
'-Wno-error=pragmas',
language: 'c')
+add_project_arguments('--abi-stability', language: 'vala')
+
# let's not clutter the code with too many #ifdefs
if get_option('b_ndebug') == 'true'
add_project_arguments('-Wno-error=unused-but-set-variable', '-Wno-error=unused-variable', language: 'c')
@@ -44,6 +50,8 @@
add_project_arguments('-DHAVE_FXSTATAT', language: 'c')
endif
+meson.add_dist_script(srcdir / 'getversion.sh')
+
#
# dependencies
#
@@ -240,7 +248,7 @@
test('umockdev-vala', executable('test-umockdev-vala',
'tests/test-umockdev-vala.vala',
dependencies: [glib, gobject, gio, gudev, vapi_posix, vapi_assertions, vapi_ioctl],
- link_with: [umockdev_lib]),
+ link_with: [umockdev_lib, umockdev_utils_lib]),
depends: [preload_lib],
suite: 'fails-valgrind')
endif
@@ -256,13 +264,13 @@
test('umockdev-run', executable('test-umockdev-run',
'tests/test-umockdev-run.vala',
dependencies: [glib, gobject, gio, vapi_posix, vapi_assertions, vapi_config],
- link_with: [umockdev_lib]),
+ link_with: [umockdev_lib, umockdev_utils_lib]),
depends: [umockdev_run_exe, preload_lib, test_chatter_exe, test_chatter_stream_exe])
test('umockdev-record', executable('test-umockdev-record',
'tests/test-umockdev-record.vala',
dependencies: [glib, gobject, gio, gio_unix, vapi_posix, vapi_linux, vapi_assertions, vapi_config, vala_libutil],
- link_with: [umockdev_lib]),
+ link_with: [umockdev_lib, umockdev_utils_lib]),
depends: [umockdev_record_exe, preload_lib, test_readbyte_exe, test_chatter_exe, test_chatter_stream_exe],
suite: 'fails-valgrind')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/packaging/umockdev.spec new/umockdev-0.17.15/packaging/umockdev.spec
--- old/umockdev-0.17.13/packaging/umockdev.spec 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/packaging/umockdev.spec 2022-11-24 16:02:22.000000000 +0100
@@ -39,6 +39,9 @@
%meson_build
%check
+# don't be too picky about timing; upstream CI and local developer tests
+# are strict, but many koji arches are emulated and utterly slow
+export SLOW_TESTBED_FACTOR=10
%meson_test
%install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/packit.yaml new/umockdev-0.17.15/packit.yaml
--- old/umockdev-0.17.13/packit.yaml 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/packit.yaml 2022-11-24 16:02:22.000000000 +0100
@@ -7,42 +7,52 @@
downstream_package_name: umockdev
# HACK: should be implied, but fails propose_downstream: https://github.com/packit/packit-service/issues/1511
specfile_path: packaging/umockdev.spec
-srpm_build_deps: []
+
+actions:
+ create-archive:
+ - meson tmp/dist
+ # ignore local spec changes from packit
+ - meson dist -C tmp/dist --no-tests --allow-dirty
+ - sh -ec 'mv tmp/dist/meson-dist/umockdev-*.tar.xz packaging/; ls packaging/umockdev-*.tar.xz'
+
+srpm_build_deps:
+ - meson
+ - gcc
+ - vala
+ - libpcap-devel
+ - glib2-devel
+ - systemd-devel
jobs:
- job: copr_build
trigger: pull_request
- metadata:
- targets:
- - fedora-development-x86_64
- - fedora-development-i386
- - fedora-development-aarch64
- - fedora-development-ppc64le
- - fedora-development-s390x
- - fedora-development-armhfp
+ targets:
+ - fedora-development-x86_64
+ - fedora-development-i386
+ - fedora-development-aarch64
+ - fedora-development-ppc64le
+ - fedora-development-s390x
+ - fedora-development-armhfp
- job: tests
trigger: pull_request
- metadata:
- targets:
- - fedora-latest
+ targets:
+ - fedora-latest
+ - centos-stream-9-x86_64
- job: propose_downstream
trigger: release
- metadata:
- dist_git_branches:
- - fedora-development
- - fedora-stable
+ dist_git_branches:
+ - fedora-development
+ - fedora-stable
- job: koji_build
trigger: commit
- metadata:
- dist_git_branches:
- - fedora-all
+ dist_git_branches:
+ - fedora-all
- job: bodhi_update
trigger: commit
- metadata:
- dist_git_branches:
- # rawhide updates are created automatically
- - fedora-branched
+ dist_git_branches:
+ # rawhide updates are created automatically
+ - fedora-branched
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/src/getversion.sh new/umockdev-0.17.15/src/getversion.sh
--- old/umockdev-0.17.13/src/getversion.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/umockdev-0.17.15/src/getversion.sh 2022-11-24 16:02:22.000000000 +0100
@@ -0,0 +1,15 @@
+#!/bin/sh
+ROOT=$(dirname $(dirname $(realpath "$0")))
+if [ -n "${MESON_SOURCE_ROOT:-}/.git" ] && VER=$(git -C "$MESON_SOURCE_ROOT" describe); then
+ # make version number distribution friendly
+ VER=$(echo "$VER" | sed 's/-/./g')
+ # when invoked as dist script, write the stamp; this is false when invoked from project.version()
+ [ -z "${MESON_DIST_ROOT:-}" ] || echo "$VER" > "${MESON_DIST_ROOT}/.version"
+ echo "$VER"
+# when invoked from a tarball, it should be in the source root
+elif [ -e "${ROOT}/.version" ]; then
+ cat "${ROOT}/.version"
+else
+ echo "ERROR: Neither a git checkout nor .version, cannot determine version" >&2
+ exit 1
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/src/libumockdev-preload.c new/umockdev-0.17.15/src/libumockdev-preload.c
--- old/umockdev-0.17.13/src/libumockdev-preload.c 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/src/libumockdev-preload.c 2022-11-24 16:02:22.000000000 +0100
@@ -131,12 +131,23 @@
/* multi-thread locking for trap_path users */
pthread_mutex_t trap_path_lock = PTHREAD_MUTEX_INITIALIZER;
+static sigset_t trap_path_sig_restore;
/* multi-thread locking for ioctls */
pthread_mutex_t ioctl_lock = PTHREAD_MUTEX_INITIALIZER;
-#define TRAP_PATH_LOCK pthread_mutex_lock (&trap_path_lock)
-#define TRAP_PATH_UNLOCK pthread_mutex_unlock (&trap_path_lock)
+#define TRAP_PATH_LOCK \
+ do { \
+ sigset_t sig_set; \
+ sigfillset(&sig_set); \
+ pthread_sigmask(SIG_SETMASK, &sig_set, &trap_path_sig_restore); \
+ pthread_mutex_lock (&trap_path_lock); \
+ } while (0)
+#define TRAP_PATH_UNLOCK \
+ do { \
+ pthread_mutex_unlock (&trap_path_lock); \
+ pthread_sigmask(SIG_SETMASK, &trap_path_sig_restore, NULL); \
+ } while (0)
#define IOCTL_LOCK pthread_mutex_lock (&ioctl_lock)
#define IOCTL_UNLOCK pthread_mutex_unlock (&ioctl_lock)
@@ -1431,39 +1442,76 @@
return r;
}
+static bool is_dir_or_contained(const char *path, const char *dir, const char *subdir)
+{
+ if (!path || !dir)
+ return false;
+
+ const ssize_t subdir_len = strlen(subdir);
+ const size_t dir_len = strlen(dir);
+
+ return (dir_len + subdir_len <= strlen(path) &&
+ strncmp(path, dir, dir_len) == 0 &&
+ strncmp(path + dir_len, subdir, subdir_len) == 0 &&
+ (path[dir_len + subdir_len] == '\0' || path[dir_len + subdir_len] == '/'));
+}
+
+static bool is_fd_in_mock(int fd, const char *subdir)
+{
+ static char fdpath[PATH_MAX];
+ static char linkpath[PATH_MAX];
+ libc_func(readlink, ssize_t, const char*, char *, size_t);
+
+ snprintf(fdpath, sizeof fdpath, "/proc/self/fd/%i", fd);
+ int orig_errno = errno;
+ ssize_t linklen = _readlink(fdpath, linkpath, sizeof linkpath);
+ errno = orig_errno;
+ if (linklen < 0 || linklen >= sizeof linkpath) {
+ perror("umockdev: failed to map fd to a path");
+ return false;
+ }
+ linkpath[linklen] = '\0';
+
+ return is_dir_or_contained(linkpath, getenv("UMOCKDEV_DIR"), subdir);
+}
+
#define WRAP_FSTATFS(suffix) \
int fstatfs ## suffix(int fd, struct statfs ## suffix *buf) \
{ \
libc_func(fstatfs ## suffix, int, int, struct statfs ## suffix *buf); \
int r = _fstatfs ## suffix(fd, buf); \
- if (r != 0) \
- return r; \
- \
- static char fdpath[PATH_MAX]; \
- static char linkpath[PATH_MAX]; \
- snprintf(fdpath, sizeof fdpath, "/proc/self/fd/%i", fd); \
- ssize_t linklen = readlink(fdpath, linkpath, sizeof linkpath); \
- if (linklen < 0) { \
- perror("umockdev: failed to map fd to a path"); \
- return 0; \
- } \
-\
- const char *prefix = getenv("UMOCKDEV_DIR"); \
- if (prefix) { \
- size_t prefix_len = strlen(prefix); \
- if (prefix_len + 5 <= strlen(linkpath) && \
- strncmp(prefix, linkpath, prefix_len) == 0 && \
- strncmp(linkpath + prefix_len, "/sys/", 5) == 0) { \
- DBG(DBG_PATH, "testbed wrapped fstatfs64 (%i) points into mocked /sys; adjusting f_type\n", fd); \
- buf->f_type = SYSFS_MAGIC; \
- } \
+ if (r == 0 && is_fd_in_mock (fd, "/sys")) { \
+ DBG(DBG_PATH, "testbed wrapped fstatfs64 (%i) points into mocked /sys; adjusting f_type\n", fd); \
+ buf->f_type = SYSFS_MAGIC; \
} \
- return 0; \
+ return r; \
}
WRAP_FSTATFS();
WRAP_FSTATFS(64);
+#define WRAP_STATFS(suffix) \
+int statfs ## suffix(const char *path, struct statfs ## suffix *buf) { \
+ libc_func(statfs ## suffix, int, const char*, struct statfs ## suffix *buf); \
+ int r; \
+ TRAP_PATH_LOCK; \
+ const char *p = trap_path(path); \
+ if (p == NULL || p == path) { \
+ r = _statfs ## suffix(path, buf); \
+ TRAP_PATH_UNLOCK; \
+ return r; \
+ } \
+ DBG(DBG_PATH, "testbed wrapped statfs" #suffix "(%s) -> %s\n", path, p); \
+ r = _statfs ## suffix(p, buf); \
+ TRAP_PATH_UNLOCK; \
+ if (r == 0 && is_dir_or_contained(path, "/sys", "")) \
+ buf->f_type = SYSFS_MAGIC; \
+ return r; \
+}
+
+WRAP_STATFS();
+WRAP_STATFS(64);
+
#endif
int __open_2(const char *path, int flags);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/src/uevent_sender.c new/umockdev-0.17.15/src/uevent_sender.c
--- old/umockdev-0.17.13/src/uevent_sender.c 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/src/uevent_sender.c 2022-11-24 16:02:22.000000000 +0100
@@ -73,7 +73,6 @@
struct sockaddr_un event_addr;
int fd;
int ret;
- /* ssize_t count; */
/* create uevent socket address */
strncpy(event_addr.sun_path, path, sizeof(event_addr.sun_path) - 1);
@@ -98,7 +97,11 @@
}
const struct msghdr msg = { .msg_name = &event_addr, .msg_iov = iov, .msg_iovlen = iov_len };
- /* count = */ sendmsg(fd, &msg, 0);
+ ssize_t count = sendmsg(fd, &msg, 0);
+ if (count < 0) {
+ perror("uevent_sender sendmsg_one: sendmsg failed");
+ abort();
+ }
/* printf("passed %zi bytes to event socket %s\n", count, path); */
close(fd);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/src/umockdev-ioctl.vala new/umockdev-0.17.15/src/umockdev-ioctl.vala
--- old/umockdev-0.17.13/src/umockdev-ioctl.vala 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/src/umockdev-ioctl.vala 2022-11-24 16:02:22.000000000 +0100
@@ -43,7 +43,7 @@
*
* Since: 0.16
*/
-public class IoctlData {
+public class IoctlData : GLib.Object {
/* Local cache to check if data is dirty before flushing. This is both an
* optimization as it avoids flushes, but is also necessary to avoid
* writing into read-only memory.
@@ -66,6 +66,30 @@
}
/**
+ * umockdev_ioctl_data_ref:
+ * @self: A #UMockdevIoctlData
+ *
+ * Deprecated, same as g_object_ref().
+ */
+ [CCode(cname="umockdev_ioctl_data_ref")]
+ public new IoctlData? compat_ref()
+ {
+ return (IoctlData?) this;
+ }
+
+ /**
+ * umockdev_ioctl_data_unref:
+ * @self: A #UMockdevIoctlData
+ *
+ * Deprecated, same as g_object_unref().
+ */
+ [CCode(cname="umockdev_ioctl_data_unref")]
+ public new void compat_unref()
+ {
+ this.unref();
+ }
+
+ /**
* umockdev_ioctl_data_resolve:
* @self: A #UMockdevIoctlData
* @offset: Byte offset of pointer inside data
@@ -173,6 +197,42 @@
return true;
}
+ /**
+ * umockdev_ioctl_update:
+ * @self: A #UMockdevIoctlData
+ * @offset: Offset into data
+ * @new_data: (array length=length): Data to set
+ * @new_data_length1: Lenght of binary data, must be smaller or equal to actual length
+ *
+ * Set data to a specific value. This is essentially a memcpy call, it is
+ * only useful for e.g. python where the bindings cannot make the data
+ * writable otherwise.
+ *
+ * Since: 0.18
+ */
+ public void update(size_t offset, uint8[] new_data) {
+ assert(offset + new_data.length <= data.length);
+
+ Posix.memcpy(&data[offset], new_data, new_data.length);
+ }
+
+ /**
+ * umockdev_ioctl_retrieve:
+ * @self: A #UMockdevIoctlData
+ * @read_data: (array length=length) (out): Data to set
+ * @read_data_length1: (out): Lenght of binary data, must be smaller or equal to actual length
+ *
+ * Simply returns the data struct member. This function purely exists for
+ * GIR based bindings, as the vala generated bindings do not correctly
+ * tag the array length, and direct access to the struct member is not
+ * possible.
+ *
+ * Since: 0.18
+ */
+ public void retrieve(out uint8[] read_data) {
+ read_data = data;
+ }
+
internal void load_data() throws IOError {
OutputStream output = stream.get_output_stream();
InputStream input = stream.get_input_stream();
@@ -737,8 +797,7 @@
error("Could not accept new connection: %s", e.message);
}
- lock (listeners)
- listeners.remove(devnode);
+ listener.close();
}
#if INTERNAL_REGISTER_API
@@ -748,6 +807,8 @@
Cancellable cancellable = new Cancellable();
+ cancellable.set_data("sockpath", sockpath);
+
/* We create new listener for each file; purely because we may not
* have the correct main context in construct yet. */
SocketListener listener;
@@ -772,8 +833,11 @@
#if INTERNAL_UNREGISTER_PATH_API
internal void unregister_path(string devnode)
{
- lock (listeners)
- listeners[devnode].cancel();
+ lock (listeners) {
+ listeners[devnode].cancel();
+ Posix.unlink(listeners[devnode].get_data("sockpath"));
+ listeners.remove(devnode);
+ }
}
#endif
@@ -781,8 +845,10 @@
internal void unregister_all()
{
lock (listeners) {
- listeners.foreach((key, val) => {
+ listeners.foreach_remove((key, val) => {
val.cancel();
+ Posix.unlink(val.get_data("sockpath"));
+ return true;
});
}
}
@@ -790,12 +856,6 @@
#endif // INTERNAL_REGISTER_API
- public virtual signal void client_connected(IoctlClient client) {
- }
-
- public virtual signal void client_vanished(IoctlClient client) {
- }
-
/* Not a normal signal because we need the accumulator. */
public virtual bool handle_ioctl(IoctlClient client) {
return false;
@@ -808,6 +868,12 @@
public virtual bool handle_write(IoctlClient client) {
return false;
}
+
+ public virtual signal void client_connected(IoctlClient client) {
+ }
+
+ public virtual signal void client_vanished(IoctlClient client) {
+ }
}
/* Mirror of ioctl_tree.c usbdevfs_reapurb_execute submit_urb static variable */
@@ -939,6 +1005,8 @@
if (!write_log)
return;
+ assert (device != null);
+
log = Posix.FILE.open(logfile, "w+");
log.printf("@DEV %s\n", device);
tree.write(log);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/src/umockdev-record.vala new/umockdev-0.17.15/src/umockdev-record.vala
--- old/umockdev-0.17.13/src/umockdev-record.vala 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/src/umockdev-record.vala 2022-11-24 16:02:22.000000000 +0100
@@ -23,14 +23,6 @@
using UMockdevUtils;
static void
-exit_error(string message, ...)
-{
- stderr.vprintf(message, va_list());
- stderr.puts("\n");
- Process.exit(1);
-}
-
-static void
devices_from_dir (string dir, ref GenericArray<string> devs)
{
Dir d;
@@ -75,7 +67,7 @@
{
Posix.Stat st;
if (Posix.stat(dev, out st) != 0)
- exit_error("Cannot access device %s: %s", dev, strerror(errno));
+ error("Cannot access device %s: %m", dev);
uint maj = Posix.major(st.st_rdev);
uint min = Posix.minor(st.st_rdev);
@@ -96,7 +88,7 @@
real = link;
if (!FileUtils.test(Path.build_filename(real, "uevent"), FileTest.EXISTS))
- exit_error("Invalid device %s, has no uevent attribute", real);
+ error("Invalid device %s, has no uevent attribute", real);
return real;
}
@@ -175,7 +167,7 @@
d = Dir.open(attr_dir);
} catch (Error e) {
if (subdir == "") {
- exit_error("Cannot open directory %s: %s", attr_dir, e.message);
+ error("Cannot open directory %s: %s", attr_dir, e.message);
} else {
// we ignore this on subdirs, some might be transient or
// inaccessible
@@ -204,7 +196,7 @@
try {
stdout.printf("L: %s=%s\n", attr_name, FileUtils.read_link(attr_path));
} catch (Error e) {
- exit_error("Cannot read link %s: %s", attr_path, e.message);
+ error("Cannot read link %s: %s", attr_path, e.message);
}
} else if (FileUtils.test(attr_path, FileTest.IS_REGULAR)) {
uint8[] contents;
@@ -238,7 +230,7 @@
if (exitcode != 0)
throw new SpawnError.FAILED("udevadm exited with code %i\n%s".printf(exitcode, u_err));
} catch (Error e) {
- exit_error("Cannot call udevadm: %s", e.message);
+ error("Cannot call udevadm: %s", e.message);
}
var properties = new List<string>();
@@ -305,14 +297,14 @@
{
string[] parts = arg.split ("=", 2); // devname, ioctlfilename
if (parts.length != 2)
- exit_error("--ioctl argument must be devname=filename");
+ error("--ioctl argument must be devname=filename");
dev = parts[0];
fname = parts[1];
// build device major/minor
Posix.Stat st;
if (Posix.stat(dev, out st) != 0)
- exit_error("Cannot access device %s: %s", dev, strerror(errno));
+ error("Cannot access device %s: %m", dev);
is_block = Posix.S_ISBLK(st.st_mode);
if (Posix.S_ISCHR(st.st_mode) || Posix.S_ISBLK(st.st_mode)) {
@@ -326,7 +318,7 @@
try {
FileUtils.get_contents(Path.build_filename(dev, "dev"), out devnum);
} catch (Error e) {
- exit_error("Cannot open %s/dev: %s", dev, e.message);
+ error("Cannot open %s/dev: %s", dev, e.message);
}
}
}
@@ -362,10 +354,10 @@
split_devfile_arg(arg, out dev, out devnum, out is_block, out outfile);
string c = record_script_counter.to_string();
- Environment.set_variable("UMOCKDEV_SCRIPT_RECORD_FILE_" + c, outfile, true);
- Environment.set_variable("UMOCKDEV_SCRIPT_RECORD_DEV_" + c, devnum, true);
- Environment.set_variable("UMOCKDEV_SCRIPT_RECORD_DEVICE_PATH_" + c, dev, true);
- Environment.set_variable("UMOCKDEV_SCRIPT_RECORD_FORMAT_" + c, format, true);
+ checked_setenv("UMOCKDEV_SCRIPT_RECORD_FILE_" + c, outfile);
+ checked_setenv("UMOCKDEV_SCRIPT_RECORD_DEV_" + c, devnum);
+ checked_setenv("UMOCKDEV_SCRIPT_RECORD_DEVICE_PATH_" + c, dev);
+ checked_setenv("UMOCKDEV_SCRIPT_RECORD_FORMAT_" + c, format);
record_script_counter++;
}
@@ -416,7 +408,7 @@
try {
oc.parse (ref args);
} catch (Error e) {
- exit_error("Error: %s\nRun %s --help for how to use this program", e.message, args[0]);
+ error("Error: %s\nRun %s --help for how to use this program", e.message, args[0]);
}
if (opt_version) {
@@ -425,12 +417,12 @@
}
if (opt_all && opt_devices.length > 0)
- exit_error("Specifying a device list together with --all is invalid.");
+ error("Specifying a device list together with --all is invalid.");
if (!opt_all && opt_devices.length == 0)
- exit_error("Need to specify at least one device or --all.");
+ error("Need to specify at least one device or --all.");
if ((opt_ioctl != null || opt_script.length > 0 || opt_evemu_events.length > 0) &&
(opt_all || opt_devices.length < 1))
- exit_error("For recording ioctls or scripts you have to specify a command to run");
+ error("For recording ioctls or scripts you have to specify a command to run");
// device dump mode
if (opt_ioctl == null && opt_script.length == 0 && opt_evemu_events.length == 0) {
@@ -452,11 +444,11 @@
preload = "";
else
preload = preload + ":";
- Environment.set_variable("LD_PRELOAD", preload + "libumockdev-preload.so.0", true);
+ checked_setenv("LD_PRELOAD", preload + "libumockdev-preload.so.0");
try {
root_dir = DirUtils.make_tmp("umockdev.XXXXXX");
- Environment.set_variable("UMOCKDEV_DIR", root_dir, true);
+ checked_setenv("UMOCKDEV_DIR", root_dir);
} catch (FileError e) {
error("Cannot create temporary directory: %s", e.message);
}
@@ -478,9 +470,8 @@
try {
child_pid = spawn_process_under_test (opt_devices, child_watch_cb);
} catch (Error e) {
- stderr.printf ("Cannot run %s: %s\n", opt_devices[0], e.message);
remove_dir (root_dir);
- Process.exit (1);
+ error ("Cannot run %s: %s", opt_devices[0], e.message);
}
loop.run();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/src/umockdev-run.vala new/umockdev-0.17.15/src/umockdev-run.vala
--- old/umockdev-0.17.13/src/umockdev-run.vala 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/src/umockdev-run.vala 2022-11-24 16:02:22.000000000 +0100
@@ -95,7 +95,7 @@
preload = "";
else
preload = preload + ":";
- Environment.set_variable ("LD_PRELOAD", preload + "libumockdev-preload.so.0", true);
+ checked_setenv ("LD_PRELOAD", preload + "libumockdev-preload.so.0");
var testbed = new UMockdev.Testbed ();
@@ -196,8 +196,7 @@
try {
child_pid = spawn_process_under_test (opt_program, child_watch_cb);
} catch (Error e) {
- stderr.printf ("Cannot run %s: %s\n", opt_program[0], e.message);
- Process.exit (1);
+ error("Cannot run %s: %s", opt_program[0], e.message);
}
loop.run();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/src/umockdev-utils.vala new/umockdev-0.17.15/src/umockdev-utils.vala
--- old/umockdev-0.17.13/src/umockdev-utils.vala 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/src/umockdev-utils.vala 2022-11-24 16:02:22.000000000 +0100
@@ -1,6 +1,21 @@
namespace UMockdevUtils {
+public void
+checked_setenv(string variable, string value)
+{
+ if (!Environment.set_variable(variable, value, true))
+ error("Failed to set env variable %s", variable);
+}
+
+// only use this in tests, not in runtime code!
+public void
+checked_remove(string path)
+{
+ if (FileUtils.remove(path) < 0)
+ error("cannot remove %s: %m", path);
+}
+
// Recursively remove a directory and all its contents.
public void
remove_dir (string path, bool remove_toplevel=true)
@@ -20,8 +35,7 @@
}
if (remove_toplevel)
- if (FileUtils.remove(path) < 0)
- warning("cannot remove %s: %s", path, strerror(errno));
+ checked_remove(path);
}
private static Pid process_under_test;
@@ -35,8 +49,8 @@
debug ("umockdev: caught signal %i, propagating to child\n", sig);
if (Posix.kill (process_under_test, sig) != 0)
- stderr.printf ("umockdev: unable to propagate signal %i to child %i: %s\n",
- sig, process_under_test, strerror (errno));
+ stderr.printf ("umockdev: unable to propagate signal %i to child %i: %m\n",
+ sig, process_under_test);
}
static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/src/umockdev.vala new/umockdev-0.17.15/src/umockdev.vala
--- old/umockdev-0.17.13/src/umockdev.vala 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/src/umockdev.vala 2022-11-24 16:02:22.000000000 +0100
@@ -23,6 +23,18 @@
private bool __in_mock_env_initialized = false;
private bool __in_mock_env_result = false;
+static void checked_mkdir (string path, int mode)
+{
+ if (DirUtils.create(path, mode) < 0)
+ error("cannot create directory %s: %m", path);
+}
+
+static void checked_mkdir_with_parents (string path, int mode)
+{
+ if (DirUtils.create_with_parents(path, mode) < 0)
+ error("cannot create directory with parents %s: %m", path);
+}
+
/**
* SECTION:umockdev
* @title: umockdev
@@ -85,13 +97,13 @@
error("Cannot create temporary directory: %s", e.message);
}
this.sys_dir = Path.build_filename(this.root_dir, "sys");
- DirUtils.create(this.sys_dir, 0755);
+ checked_mkdir(this.sys_dir, 0755);
/* Create "bus" and "class" directories to make libudev happy */
string bus_path = Path.build_filename(this.sys_dir, "bus");
- DirUtils.create(bus_path, 0755);
+ checked_mkdir(bus_path, 0755);
string class_path = Path.build_filename(this.sys_dir, "class");
- DirUtils.create(class_path, 0755);
+ checked_mkdir(class_path, 0755);
this.dev_fd = new HashTable<string, int> (str_hash, str_equal);
this.dev_script_runner = new HashTable<string, ScriptRunner> (str_hash, str_equal);
@@ -106,7 +118,7 @@
string sockpath = Path.build_filename(this.root_dir, "ioctl", "_default");
handler.register_path(this.worker_ctx, "_default", sockpath);
- Environment.set_variable("UMOCKDEV_DIR", this.root_dir, true);
+ checked_setenv ("UMOCKDEV_DIR", this.root_dir);
debug("Created udev test bed %s", this.root_dir);
}
@@ -200,8 +212,7 @@
var attr_path = Path.build_filename(this.root_dir, devpath, name);
if ("/" in name) {
string d = Path.get_dirname(attr_path);
- if (DirUtils.create_with_parents(d, 0755) != 0)
- error("cannot create attribute subdir '%s': %s", d, strerror(errno));
+ checked_mkdir_with_parents(d, 0755);
}
try {
@@ -256,10 +267,9 @@
{
var path = Path.build_filename(this.root_dir, devpath, name);
var dir = Path.get_dirname(path);
- if (DirUtils.create_with_parents(dir, 0755) != 0)
- error("cannot create attribute dir '%s': %s", dir, strerror(errno));
+ checked_mkdir_with_parents(dir, 0755);
if (FileUtils.symlink(value, path) < 0) {
- error("Cannot create symlink %s: %s", path, strerror(errno));
+ error("Cannot create symlink %s: %m", path);
}
}
@@ -423,13 +433,11 @@
string dev_path_no_sys = dev_path.substring(dev_path.index_of("/devices/"));
/* create device and corresponding subsystem dir */
- if (DirUtils.create_with_parents(dev_dir, 0755) != 0)
- error("cannot create dev dir '%s': %s", dev_dir, strerror(errno));
+ checked_mkdir_with_parents(dev_dir, 0755);
if (!subsystem_is_bus(subsystem)) {
/* class/ symlinks */
var class_dir = Path.build_filename(this.sys_dir, "class", subsystem);
- if (DirUtils.create_with_parents(class_dir, 0755) != 0)
- error("cannot create class dir '%s': %s", class_dir, strerror(errno));
+ checked_mkdir_with_parents(class_dir, 0755);
/* subsystem symlink */
assert(FileUtils.symlink(Path.build_filename(make_dotdots(dev_path), "class", subsystem),
@@ -443,7 +451,7 @@
} else {
/* bus symlink */
var bus_dir = Path.build_filename(this.sys_dir, "bus", subsystem, "devices");
- assert(DirUtils.create_with_parents(bus_dir, 0755) == 0);
+ checked_mkdir_with_parents(bus_dir, 0755);
assert(FileUtils.symlink(Path.build_filename("..", "..", "..", dev_path_no_sys),
Path.build_filename(bus_dir, Path.get_basename(name))) == 0);
@@ -455,8 +463,7 @@
/* /sys/block symlink */
if (subsystem == "block") {
var block_dir = Path.build_filename(this.sys_dir, "block");
- if (DirUtils.create_with_parents(block_dir, 0755) != 0)
- error("cannot create block dir '%s': %s", block_dir, strerror(errno));
+ checked_mkdir_with_parents(block_dir, 0755);
assert (FileUtils.symlink(Path.build_filename("..", dev_path_no_sys),
Path.build_filename(block_dir, Path.get_basename(name))) == 0);
}
@@ -482,19 +489,18 @@
var val = attributes[i+1].strip(); // strip off trailing \n
/* put the major/minor information into /dev for our preload */
string infodir = Path.build_filename(this.root_dir, "dev", ".node");
- DirUtils.create_with_parents(infodir, 0755);
+ checked_mkdir_with_parents(infodir, 0755);
assert(FileUtils.symlink(val, Path.build_filename(infodir, dev_node.replace("/", "_"))) == 0);
/* create a /sys/dev link for it, like in real sysfs */
string sysdev_dir = Path.build_filename(this.sys_dir, "dev",
(dev_path.contains("/block/") ? "block" : "char"));
- if (DirUtils.create_with_parents(sysdev_dir, 0755) != 0)
- error("cannot create dir '%s': %s", sysdev_dir, strerror(errno));
+ checked_mkdir_with_parents(sysdev_dir, 0755);
string dest = Path.build_filename(sysdev_dir, val);
if (!FileUtils.test(dest, FileTest.EXISTS)) {
if (FileUtils.symlink("../../" + dev_path.substring(5), dest) < 0)
- error("add_device %s: failed to symlink %s to %s: %s", name, dest,
- dev_path.substring(5), strerror(errno));
+ error("add_device %s: failed to symlink %s to %s: %m", name, dest,
+ dev_path.substring(5));
}
}
}
@@ -895,7 +901,7 @@
recording.seek(0, SeekType.SET);
string dest = Path.build_filename(this.root_dir, "ioctl", owned_dev + ".tree");
- assert(DirUtils.create_with_parents(Path.get_dirname(dest), 0755) == 0);
+ checked_mkdir_with_parents(Path.get_dirname(dest), 0755);
string? contents = recording.read_upto("", 0, null);
if (contents == null)
@@ -945,7 +951,7 @@
sockpath = Path.build_filename(this.root_dir, "ioctl", owned_dev);
- assert(DirUtils.create_with_parents(Path.get_dirname(sockpath), 0755) == 0);
+ checked_mkdir_with_parents(Path.get_dirname(sockpath), 0755);
IoctlUsbPcapHandler handler = new IoctlUsbPcapHandler(recordfile, busnum, devnum);
handler.register_path(this.worker_ctx, owned_dev, sockpath);
@@ -1019,13 +1025,10 @@
{
int fd = Posix.socket (Posix.AF_UNIX, type, 0);
if (fd < 0)
- throw new FileError.INVAL ("Cannot create socket type %i: %s".printf(
- type, strerror(errno)));
+ throw new FileError.INVAL ("Cannot create socket type %i: %m".printf(type));
string real_path = Path.build_filename (this.root_dir, path);
- if (DirUtils.create_with_parents(Path.get_dirname(real_path), 0755) != 0)
- throw new FileError.INVAL ("Cannot create socket path: %s".printf(
- strerror(errno)));
+ checked_mkdir_with_parents(Path.get_dirname(real_path), 0755);
// start thread to accept client connections at first socket creation
if (this.socket_server == null)
@@ -1379,7 +1382,7 @@
/* create symlinks */
for (int i = 0; i < devnode_links.length; i++) {
- assert (DirUtils.create_with_parents(Path.get_dirname(devnode_links[i]), 0755) == 0);
+ checked_mkdir_with_parents(Path.get_dirname(devnode_links[i]), 0755);
if (FileUtils.symlink(devnode_path, devnode_links[i]) < 0)
warning ("failed to create %s -> %s symlink for device %s: %m",
devnode_links[i], devnode_path, devpath);
@@ -1400,7 +1403,7 @@
create_node_for_device (string subsystem, string node_path, uint8[] node_contents, string? majmin)
throws UMockdev.Error
{
- assert (DirUtils.create_with_parents(Path.get_dirname(node_path), 0755) == 0);
+ checked_mkdir_with_parents(Path.get_dirname(node_path), 0755);
// for pre-defined contents, block, and USB devices we create a normal file
if (node_contents.length > 0 || subsystem == "block" || subsystem == "usb") {
@@ -1422,7 +1425,7 @@
int ptym, ptys;
char[] ptyname_array = new char[8192];
if (Linux.openpty (out ptym, out ptys, ptyname_array, null, null) < 0)
- error ("umockdev Testbed.create_node_for_device: openpty() failed: %s", strerror (errno));
+ error ("umockdev Testbed.create_node_for_device: openpty() failed: %m");
string ptyname = (string) ptyname_array;
debug ("create_node_for_device: creating pty device %s: got pty %s", node_path, ptyname);
Posix.close (ptys);
@@ -1443,7 +1446,7 @@
// we can map from an fd -> ttyname -> device we emulate
if (majmin != null) {
string mapdir = Path.build_filename (this.root_dir, "dev", ".ptymap");
- DirUtils.create_with_parents (mapdir, 0755);
+ checked_mkdir_with_parents (mapdir, 0755);
string dest = Path.build_filename (mapdir, ptyname.replace("/", "_"));
debug ("create_node_for_device: creating ptymap symlink %s", dest);
assert (FileUtils.symlink(majmin, dest) == 0);
@@ -1525,7 +1528,8 @@
*/
public void enable()
{
- FileUtils.remove(Path.build_filename(this.root_dir, "disabled"));
+ if (FileUtils.remove(Path.build_filename(this.root_dir, "disabled")) < 0)
+ debug("enable: failed to remove /disabled flag, ignoring: %m");
}
/**
@@ -1540,7 +1544,7 @@
{
remove_dir (this.root_dir, false);
// /sys should always exist
- DirUtils.create(this.sys_dir, 0755);
+ checked_mkdir_with_parents(this.sys_dir, 0755);
}
/**
@@ -1708,7 +1712,7 @@
debug ("ScriptRunner[%s]: read op after sleep; writing data '%s'", this.device, encode(data));
ssize_t l = Posix.write (this.fd, data, data.length);
if (l < 0)
- error ("ScriptRunner[%s]: write failed: %s", this.device, strerror (errno));
+ error ("ScriptRunner[%s]: write failed: %m", this.device);
assert (l == data.length);
break;
@@ -1794,8 +1798,7 @@
if (res < 0) {
if (errno == Posix.EINTR)
continue;
- error ("ScriptRunner op_write[%s]: select() failed: %s",
- this.device, strerror (errno));
+ error ("ScriptRunner op_write[%s]: select() failed: %m", this.device);
}
if (res == 0) {
@@ -1985,7 +1988,7 @@
if (res < 0) {
if (errno == Posix.EINTR)
continue;
- error ("socket server thread: select() failed: %s", strerror (errno));
+ error ("socket server thread: select() failed: %m");
}
if (res == 0)
continue; // timeout
@@ -2012,7 +2015,7 @@
if (Posix.FD_ISSET (s.fd, fds) > 0) {
int fd = Posix.accept (s.fd, null, null);
if (fd < 0)
- error ("socket server thread: accept() failed: %s", strerror (errno));
+ error ("socket server thread: accept() failed: %m");
string sock_path = null;
try {
sock_path = ((UnixSocketAddress) s.get_local_address()).path;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/run-alpine new/umockdev-0.17.15/tests/run-alpine
--- old/umockdev-0.17.13/tests/run-alpine 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/run-alpine 2022-11-24 16:02:22.000000000 +0100
@@ -15,11 +15,13 @@
trap '[ \$? -eq 0 ] || exit 1' EXIT
# install build dependencies
-apk add --no-cache meson gcc musl-dev glib-dev eudev-dev libpcap-dev make vala linux-headers xz usbutils ${EXTRA_PACKAGES:-}
+apk add --no-cache meson git gcc musl-dev glib-dev eudev-dev libpcap-dev make vala linux-headers xz usbutils ${EXTRA_PACKAGES:-}
# run build as user
-su -s /bin/sh - guest << EOG
+adduser -D build
+su -s /bin/sh - build << EOG
set -ex
+git config --global safe.directory /source
export BRITTLE_TESTS="${BRITTLE_TESTS:-}"
cd /source
meson setup /tmp/dbg --buildtype debug --werror
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/run-apt new/umockdev-0.17.15/tests/run-apt
--- old/umockdev-0.17.13/tests/run-apt 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/run-apt 2022-11-24 16:02:22.000000000 +0100
@@ -40,7 +40,7 @@
meson setup /tmp/dbg --buildtype debug --prefix /usr -Dgtk_doc=true --werror
cd /tmp/dbg
if meson dist --help | grep -q no-tests; then
- if meson --version | grep -q "^0.62"; then
+ if { meson --version; echo 0.62.0; } | sort -V | head -n1 | grep -q "^0.62.0"; then
# HACK: --allow-dirty workaround for https://github.com/mesonbuild/meson/issues/10329
meson dist --no-test --allow-dirty
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/run-dnf new/umockdev-0.17.15/tests/run-dnf
--- old/umockdev-0.17.13/tests/run-dnf 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/run-dnf 2022-11-24 16:02:22.000000000 +0100
@@ -37,6 +37,7 @@
useradd guest
su -s /bin/sh - guest << EOG
set -eux
+git config --global safe.directory /source
export BRITTLE_TESTS="${BRITTLE_TESTS:-}"
cd /source
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/run-gentoo new/umockdev-0.17.15/tests/run-gentoo
--- old/umockdev-0.17.13/tests/run-gentoo 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/run-gentoo 2022-11-24 16:02:22.000000000 +0100
@@ -19,6 +19,10 @@
docker.io/gentoo/stage3 /bin/sh -eux <<EOF
# install build dependencies
ACCEPT_KEYWORDS="~*" emerge dev-util/umockdev --with-test-deps --onlydeps
+# install git, "meson dist" dependency
+emerge dev-vcs/git
+
+git config --global safe.directory /source
cd /source
export VALAC=\$(ls /usr/bin/valac-* |sort | tail -n1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/run-nix new/umockdev-0.17.15/tests/run-nix
--- old/umockdev-0.17.13/tests/run-nix 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/run-nix 2022-11-24 16:02:22.000000000 +0100
@@ -26,8 +26,9 @@
preCheck = "";
doCheck = true;
nativeBuildInputs = attrs.nativeBuildInputs ++ [ ${DEBUG:+pkgs.breakpointHook} ];
+ # git is a "meson dist" time dependency
# libpcap is a new dependency, it can be removed again later
- buildInputs = attrs.buildInputs ++ [ pkgs.libpcap ];
+ buildInputs = attrs.buildInputs ++ [ pkgs.git pkgs.libpcap ];
})
EOG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/test-umockdev-record.vala new/umockdev-0.17.15/tests/test-umockdev-record.vala
--- old/umockdev-0.17.13/tests/test-umockdev-record.vala 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/test-umockdev-record.vala 2022-11-24 16:02:22.000000000 +0100
@@ -19,6 +19,7 @@
* along with this program; If not, see <http://www.gnu.org/licenses/>.
*/
+using UMockdevUtils;
using Assertions;
string readbyte_path;
@@ -246,7 +247,7 @@
}
spawn ("umockdev-record" + " /sys/class", out sout, out serr, out exit);
- assert_cmpstr (serr, CompareOperator.EQ, "Invalid device /sys/class, has no uevent attribute\n");
+ assert (serr.contains("Invalid device /sys/class, has no uevent attribute\n"));
assert_cmpstr (sout, CompareOperator.EQ, "");
assert_cmpint (exit, CompareOperator.NE, 0);
@@ -299,7 +300,7 @@
assert (FileUtils.test (log, FileTest.EXISTS));
assert_cmpstr (file_contents (log), CompareOperator.EQ, "@DEV /dev/zero\n");
- FileUtils.remove (log);
+ checked_remove (log);
// invalid syntax
spawn ("umockdev-record" + " --ioctl /dev/null -- " + readbyte_path + " /dev/zero",
@@ -342,7 +343,7 @@
// should not change original record
assert_cmpstr (file_contents (log), CompareOperator.EQ, orig_contents);
- FileUtils.remove (log);
+ checked_remove (log);
}
/*
@@ -383,7 +384,7 @@
assert_cmpint (int.parse(logwords[1]), CompareOperator.LE, 5 * slow_testbed_factor);
assert_cmpstr (logwords[2], CompareOperator.EQ, "^@");
- FileUtils.remove (log);
+ checked_remove (log);
}
/*
@@ -426,7 +427,7 @@
assert_cmpint (int.parse(logwords[1]), CompareOperator.LE, 5 * slow_testbed_factor);
assert_cmpstr (logwords[2], CompareOperator.EQ, "^@");
- FileUtils.remove (log);
+ checked_remove (log);
}
static void
@@ -472,7 +473,7 @@
assert_cmpint (int.parse(logwords[1]), CompareOperator.LE, 5 * slow_testbed_factor);
assert_cmpstr (logwords[2], CompareOperator.EQ, "^@");
- FileUtils.remove (log);
+ checked_remove (log);
}
static void
@@ -504,7 +505,7 @@
// should not change original record
assert_cmpstr (file_contents (log), CompareOperator.EQ, orig_contents);
- FileUtils.remove (log);
+ checked_remove (log);
}
static string
@@ -626,7 +627,7 @@
// verify EOF
assert_cmpint (log_stream.scanf ("%*c"), CompareOperator.EQ, -1);
- FileUtils.remove (log);
+ checked_remove (log);
}
/*
@@ -705,10 +706,10 @@
Thread.usleep (20000);
conn.send ("recv()".data);
} catch (Error e) {
- FileUtils.remove (spath);
+ checked_remove (spath);
error ("Error: %s", e.message);
}
- FileUtils.remove (spath);
+ checked_remove (spath);
int status;
assert_cmpint ((int) Posix.waitpid (chatter_pid, out status, 0), CompareOperator.EQ, (int) chatter_pid);
@@ -730,7 +731,7 @@
assert_cmpint (time, CompareOperator.GE, 20);
assert_cmpint (time, CompareOperator.LE, 60 * slow_testbed_factor);
- FileUtils.remove (log);
+ checked_remove (log);
}
/*
@@ -781,7 +782,7 @@
// unchanged
assert_cmpstr (file_contents (log), CompareOperator.EQ, "# EVEMU 1.2\n# device /dev/null\n\n");
- FileUtils.remove (log);
+ checked_remove (log);
// invalid syntax
spawn ("umockdev-record" + " --evemu-events /dev/null -- true",
@@ -867,8 +868,8 @@
assert_cmpint (exit, CompareOperator.EQ, 0);
assert_cmpstr (sout, CompareOperator.EQ, sout_record);
- FileUtils.remove ("gphoto-test.umockdev");
- FileUtils.remove ("gphoto-test.ioctl");
+ checked_remove ("gphoto-test.umockdev");
+ checked_remove ("gphoto-test.ioctl");
}
int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/test-umockdev-run.vala new/umockdev-0.17.15/tests/test-umockdev-run.vala
--- old/umockdev-0.17.13/tests/test-umockdev-run.vala 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/test-umockdev-run.vala 2022-11-24 16:02:22.000000000 +0100
@@ -18,6 +18,7 @@
* along with this program; If not, see <http://www.gnu.org/licenses/>.
*/
+using UMockdevUtils;
using Assertions;
const string umockdev_run_command = "env LC_ALL=C umockdev-run ";
@@ -120,7 +121,6 @@
assert_in (expected_err, serr);
assert_cmpint (exit, CompareOperator.NE, 0);
- assert (Process.if_exited (exit));
assert_cmpstr (sout, CompareOperator.EQ, "");
}
@@ -207,7 +207,7 @@
assert (sout.contains ("E: MAJOR=7"));
assert (sout.contains ("E: MINOR=23"));
- FileUtils.remove (umockdev_file);
+ checked_remove (umockdev_file);
}
static void
@@ -333,7 +333,7 @@
check_program_out("true", "-d " + umockdev_file + " -- stat -c '%n %F %t %T' /dev/null",
"/dev/null character special file 1 3\n");
- FileUtils.remove (umockdev_file);
+ checked_remove (umockdev_file);
}
static void
@@ -361,8 +361,8 @@
" -- " + tests_dir + "/chatter /dev/ttyS0",
"Got input: Joe Tester\nGot input: somejunk\n");
- FileUtils.remove (umockdev_file);
- FileUtils.remove (script_file);
+ checked_remove (umockdev_file);
+ checked_remove (script_file);
}
static void
@@ -383,7 +383,7 @@
" -- " + tests_dir + "/chatter-socket-stream /dev/socket/chatter",
"Got name: Joe Tester\n\nGot recv: somejunk\n");
- FileUtils.remove (script_file);
+ checked_remove (script_file);
}
static void
@@ -484,8 +484,8 @@
assert (Posix.stat("thumb_IMG_0002.jpg", out st) == 0);
assert_cmpuint ((uint) st.st_size, CompareOperator.GT, 500);
- FileUtils.remove ("thumb_IMG_0001.jpg");
- FileUtils.remove ("thumb_IMG_0002.jpg");
+ checked_remove ("thumb_IMG_0001.jpg");
+ checked_remove ("thumb_IMG_0002.jpg");
}
static void
t_gphoto_download ()
@@ -512,8 +512,8 @@
assert (Posix.stat("IMG_0002.JPG", out st) == 0);
assert_cmpuint ((uint) st.st_size, CompareOperator.GT, 5000);
- FileUtils.remove ("IMG_0001.JPG");
- FileUtils.remove ("IMG_0002.JPG");
+ checked_remove ("IMG_0001.JPG");
+ checked_remove ("IMG_0002.JPG");
}
*/
@@ -588,11 +588,12 @@
int status;
Posix.waitpid (xorg_pid, out status, 0);
Process.close_pid (xorg_pid);
- FileUtils.remove (logfile);
- FileUtils.remove (logfile + ".old");
+ checked_remove (logfile);
+ checked_remove (logfile + ".old");
// clean up lockfile after killed X server
- FileUtils.remove ("/tmp/.X5-lock");
- FileUtils.remove ("/tmp/.X11-unix/X5");
+ if (FileUtils.remove ("/tmp/.X5-lock") < 0)
+ debug("failed to clean up /tmp/.X5-lock: %m");
+ checked_remove ("/tmp/.X11-unix/X5");
assert_cmpstr (xinput_err, CompareOperator.EQ, "");
assert_cmpint (xinput_exit, CompareOperator.EQ, 0);
@@ -732,7 +733,7 @@
// our script covers 0.5 seconds, give it some slack
Posix.sleep (1 * slow_testbed_factor);
- FileUtils.remove (evemu_file);
+ checked_remove (evemu_file);
#if VALA_0_40
Posix.kill (evtest_pid, Posix.Signal.TERM);
#else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/test-umockdev-vala.vala new/umockdev-0.17.15/tests/test-umockdev-vala.vala
--- old/umockdev-0.17.13/tests/test-umockdev-vala.vala 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/test-umockdev-vala.vala 2022-11-24 16:02:22.000000000 +0100
@@ -18,6 +18,7 @@
* along with this program; If not, see <http://www.gnu.org/licenses/>.
*/
+using UMockdevUtils;
using Assertions;
string rootdir;
@@ -280,7 +281,7 @@
} catch (Error e) {
error ("Cannot load ioctls: %s", e.message);
}
- FileUtils.unlink (tmppath);
+ checked_remove (tmppath);
fd = Posix.open ("/dev/001", Posix.O_RDWR, 0);
assert_cmpint (fd, CompareOperator.GE, 0);
@@ -378,7 +379,7 @@
} catch (Error e) {
error ("Cannot load ioctls: %s", e.message);
}
- FileUtils.unlink (tmppath);
+ checked_remove (tmppath);
fd = Posix.open ("/dev/001", Posix.O_RDWR, 0);
assert_cmpint (fd, CompareOperator.GE, 0);
@@ -424,7 +425,7 @@
} catch (Error e) {
error ("Cannot load ioctls: %s", e.message);
}
- FileUtils.unlink (tmppath);
+ checked_remove (tmppath);
fd = Posix.open ("/dev/002", Posix.O_RDWR, 0);
assert_cmpint (fd, CompareOperator.GE, 0);
@@ -477,7 +478,7 @@
} catch (Error e) {
error ("Cannot load ioctls: %s", e.message);
}
- FileUtils.unlink (tmppath);
+ checked_remove (tmppath);
int fd = Posix.open ("/dev/001", Posix.O_RDWR, 0);
assert_cmpint (fd, CompareOperator.GE, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/test-umockdev.c new/umockdev-0.17.15/tests/test-umockdev.c
--- old/umockdev-0.17.13/tests/test-umockdev.c 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/test-umockdev.c 2022-11-24 16:02:22.000000000 +0100
@@ -32,8 +32,10 @@
#include <sys/socket.h>
#include <sys/sysmacros.h>
#include <sys/un.h>
+#include <sys/vfs.h>
#include <linux/usbdevice_fs.h>
#include <linux/input.h>
+#include <linux/magic.h>
#include <libudev.h>
#include <gudev/gudev.h>
@@ -1193,6 +1195,40 @@
g_assert_cmpint(statx (AT_FDCWD, "/sys/bus/pci/devices/dev1", 0, STATX_TYPE|STATX_NLINK|STATX_UID, &stx), ==, 0);
g_assert_cmpuint(stx.stx_uid, ==, uid);
g_assert(S_ISDIR(stx.stx_mode));
+
+ struct statfs buf;
+ dirfd = open("/sys", O_RDONLY | O_DIRECTORY);
+ g_assert_cmpint(dirfd, >=, 0);
+ g_assert_cmpint(fstatfs(dirfd, &buf), ==, 0);
+ g_assert_cmpint(buf.f_type, ==, SYSFS_MAGIC);
+ close (dirfd);
+ memset(&buf, 0, sizeof buf);
+
+ dirfd = open("/sys/bus/pci/devices/dev1", O_RDONLY | O_DIRECTORY);
+ g_assert_cmpint(dirfd, >=, 0);
+ g_assert_cmpint(fstatfs(dirfd, &buf), ==, 0);
+ g_assert_cmpint(buf.f_type, ==, SYSFS_MAGIC);
+ close (dirfd);
+ memset(&buf, 0, sizeof buf);
+
+ dirfd = open("/dev", O_RDONLY | O_DIRECTORY);
+ g_assert_cmpint(dirfd, >=, 0);
+ g_assert_cmpint(fstatfs(dirfd, &buf), ==, 0);
+ g_assert_cmpint(buf.f_type, !=, SYSFS_MAGIC);
+ close (dirfd);
+ memset(&buf, 0, sizeof buf);
+
+ g_assert_cmpint(statfs("/sys", &buf), ==, 0);
+ g_assert_cmpint(buf.f_type, ==, SYSFS_MAGIC);
+ memset(&buf, 0, sizeof buf);
+
+ g_assert_cmpint(statfs("/sys/bus/pci/devices/dev1", &buf), ==, 0);
+ g_assert_cmpint(buf.f_type, ==, SYSFS_MAGIC);
+ memset(&buf, 0, sizeof buf);
+
+ g_assert_cmpint(statfs("/dev", &buf), ==, 0);
+ g_assert_cmpint(buf.f_type, !=, SYSFS_MAGIC);
+ memset(&buf, 0, sizeof buf);
#endif
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.17.13/tests/test-umockdev.py new/umockdev-0.17.15/tests/test-umockdev.py
--- old/umockdev-0.17.13/tests/test-umockdev.py 2022-05-30 12:16:30.000000000 +0200
+++ new/umockdev-0.17.15/tests/test-umockdev.py 2022-11-24 16:02:22.000000000 +0100
@@ -21,6 +21,8 @@
import sys
import os.path
import unittest
+import fcntl
+import struct
try:
import gi
@@ -212,4 +214,37 @@
with assertRaisesRegex(GLib.GError, 'malformed attribute') as cm:
self.testbed.add_from_string ('P: /devices/dev1\nE: SIMPLE_PROP\n')
+ def test_custom_ioctl(self):
+ handler = UMockdev.IoctlBase()
+
+ def handle_ioctl(handler, client):
+ if client.get_request() != 1:
+ return False
+
+ in_data = struct.pack('l', -1)
+ out_data = struct.pack('l', 1)
+ arg = client.get_arg()
+ data = arg.resolve(0, len(out_data))
+ if data.retrieve() != in_data:
+ return False
+ data.update(0, out_data)
+
+ client.complete(99, 0)
+ return True
+
+ handler.connect("handle-ioctl", handle_ioctl)
+
+ self.testbed.add_from_string ('P: /devices/test\nN: test\nE: SUBSYSTEM=test')
+ self.testbed.attach_ioctl('/dev/test', handler)
+
+ fd = os.open('/dev/test', os.O_RDONLY)
+ arg = bytearray(struct.pack('l', -1))
+ self.assertEqual(fcntl.ioctl(fd, 1, arg, True), 99)
+ arg = struct.unpack('l', arg)[0]
+ self.assertEqual(arg, 1)
+
+ # Check that an detach/attach works
+ self.testbed.detach_ioctl('/dev/test')
+ self.testbed.attach_ioctl('/dev/test', handler)
+
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout, verbosity=2))
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ovmf for openSUSE:Factory checked in at 2022-11-30 16:07:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ovmf (Old)
and /work/SRC/openSUSE:Factory/.ovmf.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ovmf"
Wed Nov 30 16:07:46 2022 rev:84 rq:1038917 version:202211
Changes:
--------
--- /work/SRC/openSUSE:Factory/ovmf/ovmf.changes 2022-11-12 17:40:08.837802992 +0100
+++ /work/SRC/openSUSE:Factory/.ovmf.new.1597/ovmf.changes 2022-11-30 16:07:47.215454061 +0100
@@ -1,0 +2,418 @@
+Tue Nov 29 14:48:03 UTC 2022 - Joey Lee <jlee(a)suse.com>
+
+- In the PFLASH_CODE in ovmf-build-funcs.sh, Use readonly=on instead of
+ readonly becuase we got the following message when building ovmf
+ on SLE15-SP3/SP4 code base:
+
+[ 981s] qemu-system-x86_64: -drive if=pflash,format=raw,unit=0,readonly,file=ovmf-x86_64-ms-code.bin: warning: short-form boolean option 'readonly' deprecated
+[ 981s] Please use readonly=on instead
+[ 981s] char device redirected to /dev/pts/0 (label charserial1)
+
+-------------------------------------------------------------------
+Mon Nov 28 14:32:39 UTC 2022 - Joey Lee <jlee(a)suse.com>
+
+- Update to edk2-stable202211 (jsc#PED-1410)
+ - Features (https://github.com/tianocore/edk2/releases)
+ CryptoPkg remove EC PCD and merge optimized openssl libs
+ Add GoogleTest unit test support to UnitTestFrameworkPkg
+ Add Raw algorithm support using Arm FW-TRNG interface
+ TDVF Lazy Accept in OvmfPkg
+ Debug code to audit BIOS TPM extend operations
+ Add a new feature to enable LoongArch prot for EDKII
+ CryptoPkg: Need to add additional cipher algos and TLS API to meet WPA3
+ IntelFsp2(Wrapper)Pkg: Support FSP 2.4 MultiPhaseInit
+ CryptoPkg: Need to support EC and BN API due to WPA3 feature
+ Add PCI_DEVICE_PPI support for NvmExpressPei
+ - Patches (git log --oneline --date-order edk2-stable202208..edk2-stable202211):
+ fff6d81270 pip-requirements.txt: Update to edk2-pytool-extensions 0.20.0
+ 2ddc8e1b67 pip-requirements.txt: Update to edk2-pytool-library 0.12.1
+ 93629f2c7c ArmPkg/ArmTrngLib: Remove ASSERT in GetArmTrngVersion()
+ 0cb30c3f5e Maintainers: Update the VmgExitLib to CcExitLib
+ 765ba5bf05 OvmfPkg/UefiCpuPkg: Add CcExit prefix to the APIs of CcExitLib
+ a89f558d3c OvmfPkg/UefiCpuPkg/UefiPayloadPkg: Rename VmgExitLib to CcExitLib
+ b9e702c3c9 UefiCpuPkg/ResetVector:Add Option to reserve 4K region at 4GB
+ 6d55ad9a59 MdePkg/Test: Add port of BaseSafeIntLib unit tests to GoogleTest
+ 31377aba8f BaseTools/Plugin/HostBaseUnitTestRunner: Enable gtest xml output
+ 80f097711b .pytool: Add googletest submodule to CISettings.py
+ d4586fe3ae UnitTestFrameworkPkg/Library/CmockaLib: Generate symbol information
+ cef0c5c684 UnitTestFrameworkPkg: Add googletest submodule and GoogleTestLib
+ c1b073a9dc MdePkg/Include/Library: Undefine _ASSERT() if already defined
+ 933b4c333c MdePkg/Include: Update Base.h to improve C++ compatibility
+ 3182843f3b IntelFsp2Pkg: Improvement of supporting null UPD pointer in FSP-T
+ c8fb724046 ArmPkg/ArmTrngLib: Fix incorrect GUID reference in DEBUG() output
+ 3b1f3414f2 .github/workflows: Update CodeQL to install Python 3.10.6
+ c17c3c24d8 ShellPkg:Improved Smbios Type9 data under smbiosview
+ 342813a3f7 pip-requirements.txt: Update edk2-pytool-library to 0.12.0
+ b0fd309719 edk2.qls: Allow error severity results and add new queries
+ 179efe5d69 BaseTools: Fix wrong type of arguments to formatting functions
+ 0be81a4d83 BaseTools/Source/C: Use /Z7 instead of /Zi for host tools
+ 6032b46dce PrmPkg/PrmSsdtInstallDxe: Update PRMT Device CID to PNP0C02.
+ 6c1a4a376e .github: Add initial CodeQL config and workflow files
+ c7aecf2a4f Maintainers.txt: Add .github maintainers and reviewers
+ 50bee4cc12 CryptoPkg: Sha1 functions causing build errors
+ 239bcf7805 PrmPkg: Use UnitTestFrameworkPkg UEFI BS library
+ 6e8b0b6913 UnitTestFrameworkPkg: Add UnitTestUefiBootServicesTableLib
+ 82e70d9ac0 CryptoPkg/Readme.md: typo and grammar fixes
+ 35043a5ec0 MdePkg/BaseLib: Fix out-of-bounds reads in SafeString
+ b556f2445c ArmVirtPkg: Kvmtool: Add RNG support using Arm TRNG interface
+ 9eb5ccda50 SecurityPkg/RngDxe: Add Arm support of RngDxe
+ ff29cdb968 SecurityPkg/RngDxe: Rename AArch64/RngDxe.c
+ 6cdddccf00 SecurityPkg/RngDxe: Add debug warning for NULL PcdCpuRngSupportedAlgorithm
+ 863fe9e191 SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through ArmTrngLib
+ 4b3e9d80be SecurityPkg/RngDxe: Check before advertising Cpu Rng algo
+ 199031b2b0 SecurityPkg/RngDxe: Documentation/include/parameter cleanup
+ 922bf317f1 SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms()
+ aade3b93fe SecurityPkg/RngDxe: Replace Pcd with Sp80090Ctr256Guid
+ 8a89747844 SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic name
+ e00ec499c5 ArmPkg/ArmTrngLib: Add Arm TRNG library
+ 351fe77666 ArmPkg: Add FID definitions for Arm TRNG
+ ef4cf3d88d MdePkg/ArmTrngLib: Add NULL instance of Arm TRNG Library
+ cbce5a1a93 MdePkg/ArmTrngLib: Definition for Arm TRNG library class interface
+ 3d480a93de ArmPkg/ArmHvcLibNull: Add NULL instance of ArmHvcLib
+ 9d8ed9c8ee ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
+ aa0f522471 ArmPkg/ArmMonitorLib: Add ArmMonitorLib
+ 9a50990cdb ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class
+ dcf8c79056 ArmPkg: PCD to select conduit for monitor calls
+ cc650a0378 ArmPlatformPkg: Retire NorFlashDxe driver
+ eff44c008d OvmfPkg/VmgExitLig: HALT on #VE when access to private memory
+ 2695e49219 UefiPayloadPkg: Boot mode in PHIT HOB will not be updated
+ ee3da09bb2 MdeModulePkg/Ufs :Coverity scan flags multiple issues in edk2-stable202205
+ eae9e51d98 MdeModulePkg/scsi :Coverity scan flags multiple issues in edk2-stable202205
+ b84f32ae5b IntelFsp2Pkg: FSP should support input UPD as NULL.
+ cab1f02565 MdeModulePkg/PiSmmCore: SmmEntryPoint underflow��(CVE-2021-38578)
+ c46204e25f IntelFsp2Pkg: Update Function header to support IA32/X64.
+ 957a15adaf UefiCpuPkg/SmmCpuFeaturesLib: Clean up header file inclusion in SmmStm.c
+ ae62a6e44d UefiCpuPkg/SmmCpuFeaturesLib: Abstract arch dependent code
+ ed8bfada03 UefiCpuPkg/SmmCpuFeaturesLib: Rename the common C file
+ 8487ec0ee7 CryptoPkg/Test: Simplify BaseCryptLib host based unit tests
+ b5dbf8267b pip-requirements.txt: Bump pytool extensions and library
+ 85dba961c7 UnitTestFrameworkPkg: Support FILE_GUID override in host based unit tests
+ 720c25ab41 OvmfPkg: Call gEdkiiMemoryAcceptProtocolGuid to accept pages
+ 7dcc2f3870 OvmfPkg: Realize EdkiiMemoryAcceptProtocol in TdxDxe
+ 2af33db365 MdePkg: The prototype definition of EdkiiMemoryAcceptProtocol
+ d1e41c620f OvmfPkg: Introduce lazy accept in PlatformInitLib and PlatformPei
+ 6ca9f410d1 ShellPkg: Update shell command memmap to show unaccepted memory
+ 43e306806e MdeModulePkg: Update Dxe to handle unaccepted memory type
+ 502c01c502 MdePkg: Add UEFI Unaccepted memory definition
+ 9b648112a5 OvmfPkg: Use BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED defined in MdeModulePkg
+ 32c5a470ad MdePkg: Increase EFI_RESOURCE_MAX_MEMORY_TYPE
+ 00bbb1e584 MdeModulePkg: Add PrePiHob.h
+ df7ce74e6c RedfishPkg/RedfishDiscoverDxe: Fix memory free issue
+ 66772bc852 Maintainers.txt: Add 'Pierre Gondois' as DynamicTablesPkg reviewer
+ e9a3613ce0 ShellPkg/AcpiView: Update PCCT fields for ACPI 6.5
+ c9a4df88fd DynamicTablesPkg: Readme.md: Update available tables for generation
+ 1729fb8a82 DynamicTablesPkg/AmlLib: Allow larger AccessSize for Pcc address space
+ 8405b1480f DynamicTablesPkg: Add PCCT Generator
+ dab7bac94c DynamicTablesPkg: Add PCCT related objects
+ a5672d43a6 DynamicTablesPkg: Fix Ssdt PCI generation comments
+ 5acd6489df DynamicTablesPkg: FdtHwInfoParserLib: Remove wrong comment
+ 0bcd3cc06e DynamicTablesPkg: Remove deprecated APIs
+ 2ef32f914a DynamicTablesPkg: Fix wrong/missing fields in CmObjParser
+ a64cc43552 DynamicTablesPkg: Fix GTBlock and GTBlockTimerFrame CmObjParsers
+ 3bcc2e22ef DynamicTablesPkg: Update CmObjParser for MinorRevision
+ 44b7a856f0 DynamicTablesPkg: Update CmObjParser for IORT Rev E.d
+ 48c6e7dbcd DynamicTablesPkg: Add PrintString to CmObjParser
+ 020891f173 DynamicTablesPkg: Use correct print formatter
+ 52199bf532 MdeModulePkg/ScsiDiskDxe: Update proper device name for ScsiDisk drive
+ d98efb4682 UefiCpuPkg: Restore HpetTimer after CpuExceptionHandlerLib test
+ 99338ef81e ArmVirtPkg/ArmVirtKvmTool: Migrate to OVMF's VirtNorFlashDxe
+ b92298af82 ArmVirtPkg/ArmVirtQemu: migrate to OVMF's VirtNorFlashDxe
+ 789a723285 OvmfPkg/VirtNorFlashDxe: use EFI_MEMORY_WC and drop AlignedCopyMem()
+ 25589c4a76 OvmfPkg/VirtNorFlashDxe: avoid switching between modes in a tight loop
+ ca01e6216a OvmfPkg/VirtNorFlashDxe: avoid array mode switch after each word write
+ 83f11f9572 OvmfPkg/VirtNorFlashDxe: drop block I/O protocol implementation
+ 68d234989b OvmfPkg/VirtNorFlashDxe: remove disk I/O protocol implementation
+ 0a64106c56 OvmfPkg/VirtNorFlashDxe: remove CheckBlockLocked feature
+ c1ff81f799 OvmfPkg/VirtNorFlashDxe: clone ArmPlatformPkg's NOR flash driver
+ 16bf588b60 OvmfPkg: clone NorFlashPlatformLib into VirtNorFlashPlatformLib
+ 115cebbe4d ArmVirtPkg/ArmVirtQemu: Clear XIP flags instead of overriding them
+ b6efc505e4 ArmVirtPkg/ArmVirtQemu: omit PCD PEIM unless TPM support is enabled
+ 7136d5491e ArmVirtPkg/QemuVirtMemInfoLib: use HOB not PCD to record the memory size
+ fead469a3b ArmVirtPkg/ArmVirtQemu: avoid shadowing PEIMs unless necessary
+ 75d2be4a37 ArmVirtPkg/ArmVirtQemu: Drop unused variable PEIM
+ 07be1d34d9 ArmVirtPkg/ArmVirtQemu: enable initial ID map at early boot
+ a26050f74d ArmVirtPkg/ArmVirtQemu: use first 128 MiB as permanent PEI memory
+ 2eff4ddc77 ArmVirtPkg/ArmVirtQemu: implement ArmPlatformLib with static ID map
+ 9ca2dc7bec ArmVirtPkg/ArmVirtQemu: wire up timeout PCD to Timeout variable
+ 2997ae3873 ArmVirtPkg: make EFI_LOADER_DATA non-executable
+ 9e2c88b16e Maintainers.txt: Update maintainers and reviewers for LoongArch64
+ 9670f79937 Maintainers.txt: Update maintainers list
+ 26638d2aa3 IntelFsp2WrapperPkg: Check header revision for MultiPhase support.
+ 7464db4474 MdeModulePkg: Fix spelling error in PciSioSerialDxe
+ 56035d1c8b ArmPlatformPkg/PrePeiCore: Print the firmware version early in boot
+ db2c22633f Ps2KbdCtrller: Make wait for SUCCESS after BAT non-fatal
+ fb493ac84e ArmPlatformPkg/PrePeiCore: permit entry with the MMU enabled
+ b28acb22e0 ArmVirtPkg: do not enable iSCSI driver by default
+ f4213fed34 ArmVirtPkg: remove EbcDxe from all platforms
+ acb2acccfd BaseTools/Tests: Use quotes around PYTHON_COMMAND
+ 4fcd5d2620 CryptoPkg/Library/OpensslLib: update auto-generated files
+ 0882d6a32d CryptoPkg/Library/OpensslLib: Add generated flag to Accel INF
+ d79295b5c5 CryptoPkg/Library/OpensslLib: Update process_files.pl INF generation
+ 3b46a1e243 Revert "CryptoPkg: Update process_files.pl to auto add PCD config option"
+ 244ce33bdd CryptoPkg: Add Readme.md
+ 584b246e88 CryptoPkg: Fixed host-based unit tests
+ 0c9744787e CryptoPkg: Update DSC to improve CI test coverage
+ dfc7c3dc8c CryptoPkg: Remove PcdOpensslEcEnabled from CryptoPkg.dec
+ a57b4c11a5 CryptoPkg/Library/OpensslLib: Remove PrintLib from INF files
+ e75951ca89 CryptoPkg/Library/OpensslLib: Produce consistent set of APIs
+ ea6d859b50 CryptoPkg/Library/OpensslLib: Combine all performance optimized INFs
+ dd00f92b2f CryptoPkg/Library: Cleanup BaseCryptLib and TlsLib
+ 961fadf60c CryptoPkg/Test/UnitTest/Library/BaseCryptLib: Unit test fixes
+ 8f8372439d CryptoPkg/Library/BaseCryptLib: Update internal functions/variables
+ 8437368c69 CryptoPkg/Library/BaseCryptLib: Add missing UNI file and fix format
+ d7d9866ef4 CryptoPkg: Document and disable deprecated crypto services
+ 4d29da411f remove GCC build warning
+ 6fd754ec0f BaseTools: Fixed the multiple pairs brackets issue in GenFv
+ 2355f0c09c BaseTools: Fix check for ${PYTHON_COMMAND} in Tests/GNUmakefile
+ 913a308df9 BaseTools/Scripts/PatchCheck.py: Allow tab in Makefile
+ c6720db5dd MdeModulePkg/XhciDxe: Add boundary check for TRB ring allocation
+ 31b1638468 ArmPkg/ArmMmuLib: Reuse XIP MMU routines when splitting entries
+ 999c53e2ca ArmPkg/ArmMmuLib: permit initial configuration with MMU enabled
+ 0487cac09f ArmPkg/ArmMmuLib: Disable and re-enable MMU only when needed
+ ab644cfac5 ArmPkg/ArmMmuLib: don't replace table entries with block entries
+ 0f6eccdbf7 BaseTools: Add missing spaces for PCD expression values in AutoGenC
+ 1d0ff11526 BaseTools: Correct initialization data size check for array PCDs
+ d23eb3aa99 BaseTools/GenFds: Correct file type set for the PIC section
+ 0a29933ea9 BaseTools: Support COMPAT16 section generation
+ 225810a182 BaseTools: Add support for SUBTYPE_GUID section generation
+ 81aeb94648 BaseTools: Correct BPDG tool error prints
+ 09e74b81ba BaseTools/FMMT: Add Shrink Fv function
+ 0e6db46b1b BaseTools/FMMT: Add Extract FV function
+ b03dceb87f BaseTools: Remove duplicated words in Python tools
+ c4663e7277 pip-requirement: Upgrade the edk2-basetools version from 0.1.29 to 0.1.39
+ 9d6915ca91 UefiCpuPkg/Test: Add unit tests for MP service PPI and Protocol
+ 6f1bb567aa UefiCpuPkg: Add R8/R9 etc in EccCheck ExceptionList
+ 012e424601 UefiCpuPkg: Add Pei/DxeCpuExceptionHandlerLibUnitTest in dsc
+ 055eaacc34 UefiCpuPkg: Add Unit tests for PeiCpuExceptionHandlerLib
+ beabde5875 UefiCpuPkg: Add Unit tests for DxeCpuExceptionHandlerLib
+ b8e54e15de UefiCpuPkg/CpuPageTableLib:Support PAE paging for PageTableParse
+ a7e070808c UefiCpuPkg:Add RegisterExceptionHandler in PeiCpuExceptionHandlerLib
+ d618fe05bf BaseTools: Remove duplicated words in C tools
+ 8fc06b6e19 Fix bug on SRIOV ReservedBusNum when ARI enable.
+ 4aa7e66c06 MdeModulePkg: Fixed extra 1 SR-IOV reserved bus
+ e0200cc47a NetworkPkg: Add LoongArch64 architecture.
+ 2ce4bfb843 MdeModulePkg/DxeIplPeim : LoongArch DxeIPL implementation.
+ 380821a949 MdeModulePkg/CapsuleRuntimeDxe: Add LoongArch64 architecture.
+ dad7fc29d9 MdeModulePkg/Logo: Add LoongArch64 architecture.
+ ced203c3d5 MdePkg/BaseSafeIntLib: Add LoongArch64 architecture for BaseSafeIntLib.
++++ 221 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/ovmf/ovmf.changes
++++ and /work/SRC/openSUSE:Factory/.ovmf.new.1597/ovmf.changes
Old:
----
edk2-edk2-stable202208.tar.gz
ovmf-add-exclude-shell-flag.patch
ovmf-bsc1199156-OvmfPkg-IncompatiblePciDeviceSupportDxe-Ignore-Optio.patch
New:
----
edk2-edk2-stable202211.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ovmf.spec ++++++
--- /var/tmp/diff_new_pack.pd4WIr/_old 2022-11-30 16:07:48.211459510 +0100
+++ /var/tmp/diff_new_pack.pd4WIr/_new 2022-11-30 16:07:48.215459532 +0100
@@ -22,7 +22,7 @@
%global softfloat_version b64af41c3276f
Name: ovmf
-Version: 202208
+Version: 202211
Release: 0
Summary: Open Virtual Machine Firmware
License: BSD-2-Clause-Patent
@@ -45,22 +45,19 @@
Source101: gdb_uefi.py.in
Source102: gen-key-enrollment-iso.sh
Source103: ovmf-build-funcs.sh
-Patch1: %{name}-add-exclude-shell-flag.patch
-Patch2: %{name}-gdb-symbols.patch
-Patch3: %{name}-pie.patch
-Patch4: %{name}-disable-ia32-firmware-piepic.patch
-Patch5: %{name}-set-fixed-enroll-time.patch
-Patch6: %{name}-disable-brotli.patch
-Patch7: %{name}-ignore-spurious-GCC-12-warning.patch
-Patch8: %{name}-tools_def-add-fno-omit-frame-pointer-to-GCC48_-IA32-.patch
+Patch1: %{name}-gdb-symbols.patch
+Patch2: %{name}-pie.patch
+Patch3: %{name}-disable-ia32-firmware-piepic.patch
+Patch4: %{name}-set-fixed-enroll-time.patch
+Patch5: %{name}-disable-brotli.patch
+Patch6: %{name}-ignore-spurious-GCC-12-warning.patch
+Patch7: %{name}-tools_def-add-fno-omit-frame-pointer-to-GCC48_-IA32-.patch
# PED-1359, because nasm-2.14 doesn't support corresponding instructions.
-Patch9: %{name}-Revert-MdePkg-Remove-the-macro-definitions-regarding.patch
-Patch10: %{name}-Revert-UefiCpuPkg-Replace-Opcode-with-the-correspond.patch
-Patch11: %{name}-Revert-SourceLevelDebugPkg-Replace-Opcode-with-the-c.patch
-Patch12: %{name}-Revert-MdePkg-Replace-Opcode-with-the-corresponding-.patch
-Patch13: %{name}-Revert-MdeModulePkg-Replace-Opcode-with-the-correspo.patch
-# bsc#1199156 OVMF exposed Invalid MMIO opcode (F6) error when enabled sev and sev-es
-Patch14: %{name}-bsc1199156-OvmfPkg-IncompatiblePciDeviceSupportDxe-Ignore-Optio.patch
+Patch8: %{name}-Revert-MdePkg-Remove-the-macro-definitions-regarding.patch
+Patch9: %{name}-Revert-UefiCpuPkg-Replace-Opcode-with-the-correspond.patch
+Patch10: %{name}-Revert-SourceLevelDebugPkg-Replace-Opcode-with-the-c.patch
+Patch11: %{name}-Revert-MdePkg-Replace-Opcode-with-the-corresponding-.patch
+Patch12: %{name}-Revert-MdeModulePkg-Replace-Opcode-with-the-correspo.patch
BuildRequires: bc
BuildRequires: cross-arm-binutils
BuildRequires: cross-arm-gcc%{gcc_version}
@@ -177,15 +174,13 @@
%patch5 -p1
%patch6 -p1
%patch7 -p1
-%patch8 -p1
%if 0%{?suse_version} == 1500 && 0%{?sle_version} < 150500
+%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
-%patch13 -p1
%endif
-%patch14 -p1
# add openssl
pushd CryptoPkg/Library/OpensslLib/openssl
@@ -321,9 +316,9 @@
declare -A EXTRA_FLAGS_X64
EXTRA_FLAGS_X64=(
- [ovmf-x86_64]="-p OvmfPkg/OvmfPkgX64.dsc -D FD_SIZE_2MB -D EXCLUDE_SHELL"
+ [ovmf-x86_64]="-p OvmfPkg/OvmfPkgX64.dsc -D FD_SIZE_2MB -D BUILD_SHELL=FALSE"
[ovmf-x86_64-4m]="-p OvmfPkg/OvmfPkgX64.dsc -D FD_SIZE_4MB -D NETWORK_TLS_ENABLE"
- [ovmf-x86_64-smm]="-a IA32 -p OvmfPkg/OvmfPkgIa32X64.dsc -D FD_SIZE_4MB -D NETWORK_TLS_ENABLE -D SMM_REQUIRE -D EXCLUDE_SHELL"
+ [ovmf-x86_64-smm]="-a IA32 -p OvmfPkg/OvmfPkgIa32X64.dsc -D FD_SIZE_4MB -D NETWORK_TLS_ENABLE -D SMM_REQUIRE -D BUILD_SHELL=FALSE"
)
declare -A OUTDIR_X64
OUTDIR_X64=(
++++++ edk2-edk2-stable202208.tar.gz -> edk2-edk2-stable202211.tar.gz ++++++
/work/SRC/openSUSE:Factory/ovmf/edk2-edk2-stable202208.tar.gz /work/SRC/openSUSE:Factory/.ovmf.new.1597/edk2-edk2-stable202211.tar.gz differ: char 16, line 1
++++++ ovmf-build-funcs.sh ++++++
--- /var/tmp/diff_new_pack.pd4WIr/_old 2022-11-30 16:07:48.395460516 +0100
+++ /var/tmp/diff_new_pack.pd4WIr/_new 2022-11-30 16:07:48.399460538 +0100
@@ -29,7 +29,7 @@
local FW_VARS_ORIG="${PREFIX}-vars.bin"
local FW_CODE="${PREFIX}-${KEY}-code.bin"
local FW_VARS="${PREFIX}-${KEY}-vars.bin"
- local PFLASH_CODE="-drive if=pflash,format=raw,unit=0,readonly,file=$FW_CODE"
+ local PFLASH_CODE="-drive if=pflash,format=raw,unit=0,readonly=on,file=$FW_CODE"
local PFLASH_VARS="-drive if=pflash,format=raw,unit=1,file=$FW_VARS"
ln -s "$FW_CODE_ORIG" "$FW_CODE"
1
0