Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cxx-rust-cssparser for
openSUSE:Factory checked in at 2026-09-18 22:03:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cxx-rust-cssparser (Old)
and /work/SRC/openSUSE:Factory/.cxx-rust-cssparser.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cxx-rust-cssparser"
Fri Sep 18 22:03:49 2026 rev:2 rq:1378587 version:1.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/cxx-rust-cssparser/cxx-rust-cssparser.changes
2026-05-21 18:28:54.830442226 +0200
+++
/work/SRC/openSUSE:Factory/.cxx-rust-cssparser.new.383539/cxx-rust-cssparser.changes
2026-09-18 22:04:41.560951865 +0200
@@ -1,0 +2,16 @@
+Thu Sep 10 10:17:37 UTC 2026 - Fabian Vogt <[email protected]>
+
+- Update to 1.1.0:
+ * cmake: bump version to 1.1.0 in master branch
+ * Make an option for toggling using corrosion for bridge building
+ * Correct the include path used by the non-corrosion cxxbridge
+ * Fix the empty KDE License
+ * Fix leaking stylesheet
+ * rust: Update cargo packages to latest version
+ * Simplify building by removing the option to build with
corrosion_add_cxxbridge
+ * Support parsing the ::part() pseudo-element selector
+ * rust: Support parsing the ":state()" pseudo-class function as pseudo class
+- Drop patches, now upstream:
+ * Fix_offline_build.patch
+
+-------------------------------------------------------------------
Old:
----
Fix_offline_build.patch
cxx-rust-cssparser-1.0.0.tar.xz
cxx-rust-cssparser-1.0.0.tar.xz.sig
New:
----
cxx-rust-cssparser-1.1.0.tar.xz
cxx-rust-cssparser-1.1.0.tar.xz.sig
----------(Old B)----------
Old:- Drop patches, now upstream:
* Fix_offline_build.patch
----------(Old E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cxx-rust-cssparser.spec ++++++
--- /var/tmp/diff_new_pack.DdYVE6/_old 2026-09-18 22:04:42.816004464 +0200
+++ /var/tmp/diff_new_pack.DdYVE6/_new 2026-09-18 22:04:42.819004590 +0200
@@ -21,7 +21,7 @@
%bcond_without released
Name: cxx-rust-cssparser
-Version: 1.0.0
+Version: 1.1.0
Release: 0
Summary: Library for parsing CSS using the Rust cssparser crate
License: LGPL-2.1-or-later
@@ -32,8 +32,6 @@
Source2: cxx-rust-cssparser.keyring
%endif
Source3: vendor.tar.zst
-# PATCH-FIX-UPSTREAM
-Patch0: Fix_offline_build.patch
BuildRequires: corrosion
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
BuildRequires: zstd
++++++ cxx-rust-cssparser-1.0.0.tar.xz -> cxx-rust-cssparser-1.1.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/CMakeLists.txt
new/cxx-rust-cssparser-1.1.0/CMakeLists.txt
--- old/cxx-rust-cssparser-1.0.0/CMakeLists.txt 2026-05-14 08:31:26.000000000
+0200
+++ new/cxx-rust-cssparser-1.1.0/CMakeLists.txt 2026-09-10 11:22:16.000000000
+0200
@@ -3,7 +3,7 @@
cmake_minimum_required(VERSION 3.27)
-project(cxx-rust-cssparser VERSION 1.0.0)
+project(cxx-rust-cssparser VERSION 1.1.0)
set(KF_DEP_VERSION 6.10.0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cxx-rust-cssparser-1.0.0/LICENSES/LicenseRef-KDE-Accepted-LGPL.txt
new/cxx-rust-cssparser-1.1.0/LICENSES/LicenseRef-KDE-Accepted-LGPL.txt
--- old/cxx-rust-cssparser-1.0.0/LICENSES/LicenseRef-KDE-Accepted-LGPL.txt
2026-05-14 08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/LICENSES/LicenseRef-KDE-Accepted-LGPL.txt
2026-09-10 11:22:16.000000000 +0200
@@ -0,0 +1,12 @@
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 3 of the license or (at your option) any later version
+that is accepted by the membership of KDE e.V. (or its successor
+approved by the membership of KDE e.V.), which shall act as a
+proxy as defined in Section 6 of version 3 of the license.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/cpp/CMakeLists.txt
new/cxx-rust-cssparser-1.1.0/cpp/CMakeLists.txt
--- old/cxx-rust-cssparser-1.0.0/cpp/CMakeLists.txt 2026-05-14
08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/cpp/CMakeLists.txt 2026-09-10
11:22:16.000000000 +0200
@@ -28,12 +28,7 @@
${CMAKE_CURRENT_BINARY_DIR}/cssparser_export.h
)
-if(DEFINED ENV{FLATPAK_ID})
- target_link_libraries(cxx-rust-cssparser PRIVATE cxx_rust_cssparser_impl)
-else()
- target_link_libraries(cxx-rust-cssparser PRIVATE
cxx-rust-cssparser-impl-bridge)
-endif()
-
+target_link_libraries(cxx-rust-cssparser PRIVATE
cxx-rust-cssparser-impl-bridge)
target_include_directories(cxx-rust-cssparser PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/cxx-rust-cssparser>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/cpp/Color.cpp
new/cxx-rust-cssparser-1.1.0/cpp/Color.cpp
--- old/cxx-rust-cssparser-1.0.0/cpp/Color.cpp 2026-05-14 08:31:26.000000000
+0200
+++ new/cxx-rust-cssparser-1.1.0/cpp/Color.cpp 2026-09-10 11:22:16.000000000
+0200
@@ -5,7 +5,7 @@
#include <format>
-#include "cxx-rust-cssparser-impl-bridge/ffi.h"
+#include "ffi.rs.h"
using namespace std::string_literals;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/cpp/CssParser.cpp
new/cxx-rust-cssparser-1.1.0/cpp/CssParser.cpp
--- old/cxx-rust-cssparser-1.0.0/cpp/CssParser.cpp 2026-05-14
08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/cpp/CssParser.cpp 2026-09-10
11:22:16.000000000 +0200
@@ -6,7 +6,7 @@
#include <iostream>
#include <fstream>
-#include "cxx-rust-cssparser-impl-bridge/ffi.h"
+#include "ffi.rs.h"
using namespace std::string_literals;
@@ -52,23 +52,25 @@
struct StyleSheet::Private
{
+ Private(std::filesystem::path path)
+ : path(path)
+ , stylesheet(rust::create_stylesheet(path.string()))
+ {
+ }
+
void update();
std::filesystem::path path;
- rust::StyleSheet *stylesheet;
+ ::rust::Box<rust::StyleSheet> stylesheet;
std::vector<Rule> rules;
std::vector<Error> errors;
std::vector<std::filesystem::path> paths;
};
StyleSheet::StyleSheet(const std::filesystem::path &path)
- : d(std::make_unique<Private>())
+ : d(std::make_unique<Private>(path))
{
- d->path = path;
-
- auto sheet = rust::create_stylesheet(path.string());
- d->stylesheet = sheet.into_raw();
}
StyleSheet::~StyleSheet() = default;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/cpp/Selector.cpp
new/cxx-rust-cssparser-1.1.0/cpp/Selector.cpp
--- old/cxx-rust-cssparser-1.0.0/cpp/Selector.cpp 2026-05-14
08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/cpp/Selector.cpp 2026-09-10
11:22:16.000000000 +0200
@@ -5,7 +5,7 @@
#include <format>
-#include "cxx-rust-cssparser-impl-bridge/ffi.h"
+#include "ffi.rs.h"
using namespace std::string_literals;
@@ -51,12 +51,16 @@
return "PseudoClass"s;
case SelectorPart::Kind::DocumentRoot:
return "DocumentRoot"s;
+ case SelectorPart::Kind::Part:
+ return "Part"s;
case SelectorPart::Kind::DescendantCombinator:
return "DescendantCombinator"s;
case SelectorPart::Kind::ChildCombinator:
return "ChildCombinator"s;
case SelectorPart::Kind::CombinatorStart:
return "CombinatorStart"s;
+ case SelectorPart::Kind::PartCombinator:
+ return "PartCombinator"s;
}
return "Unknown"s;
@@ -71,6 +75,7 @@
case SelectorPart::Kind::DocumentRoot:
case SelectorPart::Kind::DescendantCombinator:
case SelectorPart::Kind::ChildCombinator:
+ case SelectorPart::Kind::PartCombinator:
return std::format("SelectorPart(type: {})", kind);
default:
return std::format("SelectorPart(type: {}, value: {})", kind,
m_value.toString());
@@ -98,10 +103,14 @@
return SelectorPart::Kind::RelativeParent;
case rust::SelectorKind::DocumentRoot:
return SelectorPart::Kind::DocumentRoot;
+ case rust::SelectorKind::Part:
+ return SelectorPart::Kind::Part;
case rust::SelectorKind::DescendantCombinator:
return SelectorPart::Kind::DescendantCombinator;
case rust::SelectorKind::ChildCombinator:
return SelectorPart::Kind::ChildCombinator;
+ case rust::SelectorKind::PartCombinator:
+ return SelectorPart::Kind::PartCombinator;
}
assert(false && "Mismatch between SelectorPart kinds in C++ and Rust,
update C++ code!");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/cpp/Selector.h
new/cxx-rust-cssparser-1.1.0/cpp/Selector.h
--- old/cxx-rust-cssparser-1.0.0/cpp/Selector.h 2026-05-14 08:31:26.000000000
+0200
+++ new/cxx-rust-cssparser-1.1.0/cpp/Selector.h 2026-09-10 11:22:16.000000000
+0200
@@ -78,12 +78,14 @@
Attribute,
RelativeParent,
DocumentRoot,
+ Part,
// Special value to mark the start of combinator selectors
CombinatorStart,
DescendantCombinator,
ChildCombinator,
+ PartCombinator,
};
SelectorPart();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/cpp/Value.cpp
new/cxx-rust-cssparser-1.1.0/cpp/Value.cpp
--- old/cxx-rust-cssparser-1.0.0/cpp/Value.cpp 2026-05-14 08:31:26.000000000
+0200
+++ new/cxx-rust-cssparser-1.1.0/cpp/Value.cpp 2026-09-10 11:22:16.000000000
+0200
@@ -5,7 +5,7 @@
#include <format>
-#include "cxx-rust-cssparser-impl-bridge/ffi.h"
+#include "ffi.rs.h"
using namespace std::string_literals;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/rust/CMakeLists.txt
new/cxx-rust-cssparser-1.1.0/rust/CMakeLists.txt
--- old/cxx-rust-cssparser-1.0.0/rust/CMakeLists.txt 2026-05-14
08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/rust/CMakeLists.txt 2026-09-10
11:22:16.000000000 +0200
@@ -2,29 +2,29 @@
# SPDX-FileCopyrightText: 2025 Arjen Hiemstra <[email protected]>
corrosion_import_crate(MANIFEST_PATH Cargo.toml)
+corrosion_set_env_vars(cxx_rust_cssparser_impl
CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}/output)
-if(DEFINED ENV{FLATPAK_ID})
- # Flatpak: use cxx_build output directly instead of
corrosion_add_cxxbridge.
- string(SHA1 _cargo_path_hash ${CMAKE_CURRENT_SOURCE_DIR}/Cargo.toml)
- string(SUBSTRING "${_cargo_path_hash}" 0 5 _cargo_path_hash)
- set(_cxxbridge_dir
${CMAKE_BINARY_DIR}/cargo/rust_${_cargo_path_hash}/${Rust_CARGO_TARGET}/cxxbridge)
-
- # Forward the cxx_build header to the path corrosion_add_cxxbridge would
use.
- set(_bridge_include_dir
${CMAKE_CURRENT_BINARY_DIR}/corrosion_generated/cxxbridge)
- file(MAKE_DIRECTORY ${_bridge_include_dir}/cxx-rust-cssparser-impl-bridge)
- file(WRITE ${_bridge_include_dir}/cxx-rust-cssparser-impl-bridge/ffi.h
- "#pragma once\n#include
\"${_cxxbridge_dir}/cxx_rust_cssparser_impl/src/ffi.rs.h\"\n"
- )
-
- target_include_directories(cxx_rust_cssparser_impl INTERFACE
${_bridge_include_dir})
-else()
- corrosion_add_cxxbridge(cxx-rust-cssparser-impl-bridge
- CRATE cxx_rust_cssparser_impl
- FILES ffi.rs
- )
+set_source_files_properties(
+
${CMAKE_CURRENT_BINARY_DIR}/output/cxxbridge/cxx-rust-cssparser-impl/src/ffi.rs.cc
+
${CMAKE_CURRENT_BINARY_DIR}/output/cxxbridge/cxx-rust-cssparser-impl/src/ffi.rs.h
+ PROPERTIES GENERATED ON
+)
+
+add_library(cxx-rust-cssparser-impl-bridge STATIC)
+target_sources(cxx-rust-cssparser-impl-bridge PRIVATE
+
${CMAKE_CURRENT_BINARY_DIR}/output/cxxbridge/cxx-rust-cssparser-impl/src/ffi.rs.cc
+
${CMAKE_CURRENT_BINARY_DIR}/output/cxxbridge/cxx-rust-cssparser-impl/src/ffi.rs.h
+)
+
+target_include_directories(cxx-rust-cssparser-impl-bridge PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/output/cxxbridge/cxx-rust-cssparser-impl/src
+)
+
+set_target_properties(cxx-rust-cssparser-impl-bridge PROPERTIES
POSITION_INDEPENDENT_CODE ON)
+target_compile_options(cxx-rust-cssparser-impl-bridge PRIVATE
-Wno-maybe-uninitialized)
+target_link_libraries(cxx-rust-cssparser-impl-bridge PRIVATE
cxx_rust_cssparser_impl)
- set_target_properties(cxx-rust-cssparser-impl-bridge PROPERTIES
POSITION_INDEPENDENT_CODE TRUE)
-endif()
+add_dependencies(cxx-rust-cssparser-impl-bridge cxx_rust_cssparser_impl)
if (BUILD_TESTING)
add_test(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/rust/Cargo.lock
new/cxx-rust-cssparser-1.1.0/rust/Cargo.lock
--- old/cxx-rust-cssparser-1.0.0/rust/Cargo.lock 2026-05-14
08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/rust/Cargo.lock 2026-09-10
11:22:16.000000000 +0200
@@ -10,21 +10,15 @@
[[package]]
name = "bitflags"
-version = "2.11.1"
+version = "2.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
-
-[[package]]
-name = "byteorder"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
[[package]]
name = "cc"
-version = "1.2.60"
+version = "1.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20"
+checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273"
dependencies = [
"find-msvc-tools",
"shlex",
@@ -32,18 +26,18 @@
[[package]]
name = "clap"
-version = "4.6.1"
+version = "4.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
+checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
dependencies = [
"clap_builder",
]
[[package]]
name = "clap_builder"
-version = "4.6.0"
+version = "4.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
+checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
dependencies = [
"anstyle",
"clap_lex",
@@ -69,9 +63,9 @@
[[package]]
name = "cssparser"
-version = "0.35.0"
+version = "0.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa"
+checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98"
dependencies = [
"cssparser-macros",
"dtoa-short",
@@ -82,28 +76,28 @@
[[package]]
name = "cssparser-color"
-version = "0.3.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6eeef9ae8c0e112edd89eb6406b3156ffa99c7e037b3baef1dbdf4158d35c324"
+checksum = "bbaa233e1dcd9c13a5d3e3a8a2c0f5a727bac380398345dbcb31db4597edc86b"
dependencies = [
"cssparser",
]
[[package]]
name = "cssparser-macros"
-version = "0.6.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
+checksum = "10a2a99df6e410a8ff4245aa2006499ea662245f967cc7c0a38c83ef8eb44dbf"
dependencies = [
"quote",
- "syn",
+ "syn 2.0.119",
]
[[package]]
name = "cxx"
-version = "1.0.194"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "747d8437319e3a2f43d93b341c137927ca70c0f5dabeea7a005a73665e247c7e"
+checksum = "824894a4a85dca76d4c95c2b9098c036f5a29f627b30c12780774f6654e60974"
dependencies = [
"cc",
"cxx-build",
@@ -116,9 +110,9 @@
[[package]]
name = "cxx-build"
-version = "1.0.194"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0f4697d190a142477b16aef7da8a99bfdc41e7e8b1687583c0d23a79c7afc1e"
+checksum = "f1ae0b651ea5b0000b19513aef5a03f194d7e3486f2d9258b658da8677fe9036"
dependencies = [
"cc",
"codespan-reporting",
@@ -126,7 +120,7 @@
"proc-macro2",
"quote",
"scratch",
- "syn",
+ "syn 3.0.4",
]
[[package]]
@@ -144,45 +138,55 @@
[[package]]
name = "cxxbridge-cmd"
-version = "1.0.194"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0956799fa8678d4c50eed028f2de1c0552ae183c76e976cf7ca8c4e36a7c328"
+checksum = "fb05f91d3fb8435d9bab6ac5ce6ac1868be774325fb7fb2a91be39393b21388e"
dependencies = [
"clap",
"codespan-reporting",
"indexmap",
"proc-macro2",
"quote",
- "syn",
+ "syn 3.0.4",
]
[[package]]
name = "cxxbridge-flags"
-version = "1.0.194"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23384a836ab4f0ad98ace7e3955ad2de39de42378ab487dc28d3990392cb283a"
+checksum = "bf293202e0e3e98495785745389e8d0755b217e66f19194a5c695c25e03282ef"
[[package]]
name = "cxxbridge-macro"
-version = "1.0.194"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6acc6b5822b9526adfb4fc377b67128fdd60aac757cc4a741a6278603f763cf"
+checksum = "ca001d746947c7249ed9d332a10f7a59daedbafeb0ec68c5c18a7db7a93f6ccc"
dependencies = [
"indexmap",
"proc-macro2",
"quote",
- "syn",
+ "syn 3.0.4",
]
[[package]]
name = "derive_more"
-version = "0.99.20"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
+dependencies = [
+ "derive_more-impl",
+]
+
+[[package]]
+name = "derive_more-impl"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f"
+checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "rustc_version",
+ "syn 2.0.119",
]
[[package]]
@@ -207,10 +211,16 @@
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
+name = "fastrand"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
+
+[[package]]
name = "find-msvc-tools"
-version = "0.1.9"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
+checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
[[package]]
name = "foldhash"
@@ -219,25 +229,16 @@
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
[[package]]
-name = "fxhash"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
name = "hashbrown"
-version = "0.17.0"
+version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51"
+checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
[[package]]
name = "indexmap"
-version = "2.14.0"
+version = "2.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
+checksum = "07aa2048142242915a31d35844fb311e0e53fcca590c3a0a40dcf1b841fa09eb"
dependencies = [
"equivalent",
"hashbrown",
@@ -260,15 +261,15 @@
[[package]]
name = "log"
-version = "0.4.29"
+version = "0.4.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
+checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
[[package]]
name = "memchr"
-version = "2.8.0"
+version = "2.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
+checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
[[package]]
name = "new_debug_unreachable"
@@ -287,19 +288,20 @@
[[package]]
name = "phf"
-version = "0.11.3"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
+checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
dependencies = [
"phf_macros",
"phf_shared",
+ "serde",
]
[[package]]
name = "phf_codegen"
-version = "0.11.3"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
+checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"
dependencies = [
"phf_generator",
"phf_shared",
@@ -307,32 +309,32 @@
[[package]]
name = "phf_generator"
-version = "0.11.3"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
+checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
dependencies = [
+ "fastrand",
"phf_shared",
- "rand",
]
[[package]]
name = "phf_macros"
-version = "0.11.3"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
+checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
dependencies = [
"phf_generator",
"phf_shared",
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.119",
]
[[package]]
name = "phf_shared"
-version = "0.11.3"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
+checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
dependencies = [
"siphasher",
]
@@ -345,36 +347,36 @@
[[package]]
name = "proc-macro2"
-version = "1.0.106"
+version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
+checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.45"
+version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
+checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
dependencies = [
"proc-macro2",
]
[[package]]
-name = "rand"
-version = "0.8.6"
+name = "rustc-hash"
+version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"
-dependencies = [
- "rand_core",
-]
+checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
[[package]]
-name = "rand_core"
-version = "0.6.4"
+name = "rustc_version"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+dependencies = [
+ "semver",
+]
[[package]]
name = "scratch"
@@ -384,28 +386,34 @@
[[package]]
name = "selectors"
-version = "0.27.0"
+version = "0.40.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b75e048a93e14929e68e37b82e207db957cbb368375a80ed3ca28ac75080856"
+checksum = "eeee001a77567bb05e71652718d3ff76d8697c151ac523e68e9513194eb2b75a"
dependencies = [
"bitflags",
"cssparser",
"derive_more",
- "fxhash",
"log",
"new_debug_unreachable",
"phf",
"phf_codegen",
"precomputed-hash",
+ "rustc-hash",
"servo_arc",
"smallvec",
]
[[package]]
+name = "semver"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
+
+[[package]]
name = "serde"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
dependencies = [
"serde_core",
"serde_derive",
@@ -413,22 +421,22 @@
[[package]]
name = "serde_core"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 3.0.4",
]
[[package]]
@@ -442,21 +450,21 @@
[[package]]
name = "shlex"
-version = "1.3.0"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
[[package]]
name = "siphasher"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
+checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
[[package]]
name = "smallvec"
-version = "1.15.1"
+version = "1.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
[[package]]
name = "stable_deref_trait"
@@ -472,9 +480,20 @@
[[package]]
name = "syn"
-version = "2.0.117"
+version = "2.0.119"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "3.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
+checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f"
dependencies = [
"proc-macro2",
"quote",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/rust/Cargo.toml
new/cxx-rust-cssparser-1.1.0/rust/Cargo.toml
--- old/cxx-rust-cssparser-1.0.0/rust/Cargo.toml 2026-05-14
08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/rust/Cargo.toml 2026-09-10
11:22:16.000000000 +0200
@@ -8,9 +8,9 @@
[dependencies]
cxx = "1.0"
-cssparser = "0.35"
-cssparser-color = "0.3"
-selectors = "0.27.0"
+cssparser = "0.37"
+cssparser-color = "0.5"
+selectors = "0.40.0"
precomputed-hash = "0.1.1"
nom = "8.0.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/rust/build.rs
new/cxx-rust-cssparser-1.1.0/rust/build.rs
--- old/cxx-rust-cssparser-1.0.0/rust/build.rs 2026-05-14 08:31:26.000000000
+0200
+++ new/cxx-rust-cssparser-1.1.0/rust/build.rs 2026-09-10 11:22:16.000000000
+0200
@@ -4,5 +4,6 @@
fn main() {
cxx_build::bridge("src/ffi.rs")
.std("c++20")
+ .flag("-Wno-maybe-uninitialized")
.compile("cxx-rust-cssparser-impl");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cxx-rust-cssparser-1.0.0/rust/src/details/selectorparser.rs
new/cxx-rust-cssparser-1.1.0/rust/src/details/selectorparser.rs
--- old/cxx-rust-cssparser-1.0.0/rust/src/details/selectorparser.rs
2026-05-14 08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/rust/src/details/selectorparser.rs
2026-09-10 11:22:16.000000000 +0200
@@ -142,6 +142,10 @@
});
},
+ selectors::parser::Component::Part(part) => {
+ parts.insert(0,
SelectorPart::new_with_value(SelectorKind::Part,
Value::from(part.first().unwrap())))
+ },
+
selectors::parser::Component::Combinator(combinator) => {
selector.parts.extend(parts);
parts = Vec::new();
@@ -149,6 +153,7 @@
match combinator {
selectors::parser::Combinator::Descendant =>
selector.parts.push(SelectorPart::new_with_empty(SelectorKind::DescendantCombinator)),
selectors::parser::Combinator::Child =>
selector.parts.push(SelectorPart::new_with_empty(SelectorKind::ChildCombinator)),
+ selectors::parser::Combinator::Part =>
selector.parts.push(SelectorPart::new_with_empty(SelectorKind::PartCombinator)),
_ => println!("Warning: Combinator {:#?} not
implemented", combinator),
}
}
@@ -176,6 +181,20 @@
Ok(PseudoClass(name.to_string()))
}
+ fn parse_non_ts_functional_pseudo_class<'t>(
+ &self,
+ name: cssparser::CowRcStr<'i>,
+ parser: &mut cssparser::Parser<'i, 't>,
+ _after_part: bool,
+ ) -> Result<<Self::Impl as selectors::SelectorImpl>::NonTSPseudoClass,
cssparser::ParseError<'i, Self::Error>> {
+ if name == "state" {
+ let state_name = parser.expect_ident()?;
+ Ok(PseudoClass(state_name.to_string()))
+ } else {
+
Err(parser.new_custom_error(selectors::parser::SelectorParseErrorKind::UnsupportedPseudoClassOrElement(name)))
+ }
+ }
+
fn parse_pseudo_element(
&self,
_location: cssparser::SourceLocation,
@@ -187,4 +206,8 @@
fn parse_parent_selector(&self) -> bool {
true
}
+
+ fn parse_part(&self) -> bool {
+ true
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/rust/src/ffi.rs
new/cxx-rust-cssparser-1.1.0/rust/src/ffi.rs
--- old/cxx-rust-cssparser-1.0.0/rust/src/ffi.rs 2026-05-14
08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/rust/src/ffi.rs 2026-09-10
11:22:16.000000000 +0200
@@ -112,8 +112,10 @@
Attribute,
RelativeParent,
DocumentRoot,
+ Part,
DescendantCombinator,
ChildCombinator,
+ PartCombinator,
}
#[derive(Debug, Clone, Copy)]
@@ -256,8 +258,10 @@
SelectorKind::Attribute => Attribute,
SelectorKind::RelativeParent => RelativeParent,
SelectorKind::DocumentRoot => DocumentRoot,
+ SelectorKind::Part => Part,
SelectorKind::DescendantCombinator => DescendantCombinator,
SelectorKind::ChildCombinator => ChildCombinator,
+ SelectorKind::PartCombinator => PartCombinator,
});
convert_enum!(value::ColorOperation, ffi::ColorOperationType, {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cxx-rust-cssparser-1.0.0/rust/src/selector.rs
new/cxx-rust-cssparser-1.1.0/rust/src/selector.rs
--- old/cxx-rust-cssparser-1.0.0/rust/src/selector.rs 2026-05-14
08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/rust/src/selector.rs 2026-09-10
11:22:16.000000000 +0200
@@ -26,8 +26,10 @@
Attribute,
RelativeParent,
DocumentRoot,
+ Part,
DescendantCombinator,
ChildCombinator,
+ PartCombinator,
}
#[derive(Debug, Clone, PartialEq)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cxx-rust-cssparser-1.0.0/rust/src/tests/selectorparser.rs
new/cxx-rust-cssparser-1.1.0/rust/src/tests/selectorparser.rs
--- old/cxx-rust-cssparser-1.0.0/rust/src/tests/selectorparser.rs
2026-05-14 08:31:26.000000000 +0200
+++ new/cxx-rust-cssparser-1.1.0/rust/src/tests/selectorparser.rs
2026-09-10 11:22:16.000000000 +0200
@@ -12,7 +12,11 @@
let mut css_parser = cssparser::Parser::new(&mut parser_input);
let result = parser.parse(&mut css_parser, relative);
- assert_eq!(result.ok().unwrap(), expected)
+ if result.is_err() {
+ assert_eq!("", result.err().unwrap().to_string());
+ } else {
+ assert_eq!(result.ok().unwrap(), expected)
+ }
}
fn check_selector_toplevel(input: &str, expected: Vec<Selector>) {
@@ -173,5 +177,34 @@
SelectorPart::new_with_empty(SelectorKind::DescendantCombinator),
SelectorPart::new_with_empty(SelectorKind::RelativeParent),
])
- ]
+ ];
+
+ part:
+ check_selector_toplevel "type::part(subelement)", vec![
+ Selector::from_parts(&[
+ SelectorPart::new_with_value(SelectorKind::Type,
Value::from("type")),
+ SelectorPart::new_with_empty(SelectorKind::PartCombinator),
+ SelectorPart::new_with_value(SelectorKind::Part,
Value::from("subelement")),
+ ])
+ ];
+
+ part_with_state:
+ check_selector_toplevel "type::part(subelement):hovered", vec![
+ Selector::from_parts(&[
+ SelectorPart::new_with_value(SelectorKind::Type,
Value::from("type")),
+ SelectorPart::new_with_empty(SelectorKind::PartCombinator),
+ SelectorPart::new_with_value(SelectorKind::Part,
Value::from("subelement")),
+ SelectorPart::new_with_value(SelectorKind::PseudoClass,
Value::from("hovered")),
+ ])
+ ];
+
+ part_with_state_function:
+ check_selector_toplevel "type::part(subelement):state(some_state)",
vec![
+ Selector::from_parts(&[
+ SelectorPart::new_with_value(SelectorKind::Type,
Value::from("type")),
+ SelectorPart::new_with_empty(SelectorKind::PartCombinator),
+ SelectorPart::new_with_value(SelectorKind::Part,
Value::from("subelement")),
+ SelectorPart::new_with_value(SelectorKind::PseudoClass,
Value::from("some_state")),
+ ])
+ ];
}
++++++ vendor.tar.zst ++++++
++++ 857549 lines of diff (skipped)