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
June 2024
- 2 participants
- 1220 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package go1.21 for openSUSE:Factory checked in at 2024-06-06 12:30:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/go1.21 (Old)
and /work/SRC/openSUSE:Factory/.go1.21.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go1.21"
Thu Jun 6 12:30:25 2024 rev:17 rq:1178640 version:1.21.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/go1.21/go1.21.changes 2024-05-09 12:07:44.345582258 +0200
+++ /work/SRC/openSUSE:Factory/.go1.21.new.24587/go1.21.changes 2024-06-06 12:30:32.039911149 +0200
@@ -1,0 +2,18 @@
+Tue Jun 4 18:11:01 UTC 2024 - Jeff Kowalczyk <jkowalczyk(a)suse.com>
+
+- go1.21.11 (released 2024-06-04) includes security fixes to the
+ archive/zip and net/netip packages, as well as bug fixes to the
+ compiler, the go command, the runtime, and the os package.
+ Refs boo#1212475 go1.21 release tracking
+ CVE-2024-24789 CVE-2024-24790
+ * go#67553 go#66869 boo#1225973 security: fix CVE-2024-24789 archive/zip: EOCDR comment length handling is inconsistent with other ZIP implementations
+ * go#67681 go#67680 boo#1225974 security: fix CVE-2024-24790 net/netip: unexpected behavior from Is methods for IPv4-mapped IPv6 addresses
+ * go#64586 cmd/go: spurious "v1.x.y is not a tag" error when a tag's commit was previously download without the tag
+ * go#67164 cmd/compile: SIGBUS unaligned access on mips64 via qemu-mips64
+ * go#67187 runtime/metrics: /memory/classes/heap/unused:bytes spikes
+ * go#67235 cmd/go: mod tidy reports toolchain not available with 'go 1.21'
+ * go#67310 cmd/go: TestScript/gotoolchain_issue66175 fails on tip locally
+ * go#67351 crypto/x509: TestPlatformVerifier failures on Windows due to broken connections
+ * go#67695 os: RemoveAll susceptible to symlink race
+
+-------------------------------------------------------------------
Old:
----
go1.21.10.src.tar.gz
New:
----
go1.21.11.src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ go1.21.spec ++++++
--- /var/tmp/diff_new_pack.b2fnSU/_old 2024-06-06 12:30:33.771974408 +0200
+++ /var/tmp/diff_new_pack.b2fnSU/_new 2024-06-06 12:30:33.775974554 +0200
@@ -126,7 +126,7 @@
%endif
Name: go1.21
-Version: 1.21.10
+Version: 1.21.11
Release: 0
Summary: A compiled, garbage-collected, concurrent programming language
License: BSD-3-Clause
++++++ go1.21.10.src.tar.gz -> go1.21.11.src.tar.gz ++++++
/work/SRC/openSUSE:Factory/go1.21/go1.21.10.src.tar.gz /work/SRC/openSUSE:Factory/.go1.21.new.24587/go1.21.11.src.tar.gz differ: char 110, line 2
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cargo-c for openSUSE:Factory checked in at 2024-06-06 12:30:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cargo-c (Old)
and /work/SRC/openSUSE:Factory/.cargo-c.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cargo-c"
Thu Jun 6 12:30:21 2024 rev:17 rq:1178628 version:0.9.32~git0.56dfe34
Changes:
--------
--- /work/SRC/openSUSE:Factory/cargo-c/cargo-c.changes 2023-10-20 23:15:55.928692147 +0200
+++ /work/SRC/openSUSE:Factory/.cargo-c.new.24587/cargo-c.changes 2024-06-06 12:30:23.095584481 +0200
@@ -1,0 +2,15 @@
+Tue Jun 04 19:59:22 UTC 2024 - david.mulder(a)suse.com
+
+- Update to version 0.9.32~git0.56dfe34:
+ * Prepare for release
+ * Bump cargo version
+ * Use clone_from/clone_into
+ * Do not install the versioned links and lib on Android
+ * docs: add rustls-ffi to README users list
+ * Bump the msrv again
+ * Bump msrv
+ * Bump cargo version
+ * Match the beaviour of meson regarding relative paths in the install directories
+ * Bump cargo version
+
+-------------------------------------------------------------------
Old:
----
cargo-c-0.9.27~git0.54774e0.tar.xz
New:
----
cargo-c-0.9.32~git0.56dfe34.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cargo-c.spec ++++++
--- /var/tmp/diff_new_pack.ZWcQCr/_old 2024-06-06 12:30:25.979689815 +0200
+++ /var/tmp/diff_new_pack.ZWcQCr/_new 2024-06-06 12:30:25.979689815 +0200
@@ -1,7 +1,7 @@
#
# spec file for package cargo-c
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2019 Andreas Schneider <asn(a)cryptomilk.org>.
#
# All modifications and additions to the file contributed by third parties
@@ -20,7 +20,7 @@
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now -C debuginfo=2
Name: cargo-c
-Version: 0.9.27~git0.54774e0
+Version: 0.9.32~git0.56dfe34
Release: 0
Summary: Helper to build and install c-like libraries from Rust
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.ZWcQCr/_old 2024-06-06 12:30:26.363703841 +0200
+++ /var/tmp/diff_new_pack.ZWcQCr/_new 2024-06-06 12:30:26.403705302 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/lu-zero/cargo-c.git</param>
<param name="versionformat">@PARENT_TAG@~git@TAG_OFFSET@.%h</param>
<param name="scm">git</param>
- <param name="revision">v0.9.27</param>
+ <param name="revision">v0.9.32</param>
<param name="match-tag">*</param>
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
<param name="versionrewrite-replacement">\1</param>
++++++ cargo-c-0.9.27~git0.54774e0.tar.xz -> cargo-c-0.9.32~git0.56dfe34.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/Cargo.toml new/cargo-c-0.9.32~git0.56dfe34/Cargo.toml
--- old/cargo-c-0.9.27~git0.54774e0/Cargo.toml 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/Cargo.toml 2024-05-04 09:41:19.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "cargo-c"
-version = "0.9.27+cargo-0.74.0"
+version = "0.9.32+cargo-0.79.0"
authors = ["Luca Barbato <lu_zero(a)gentoo.org>"]
description = "Helper program to build and install c-like libraries"
license = "MIT"
@@ -9,7 +9,7 @@
repository = "https://github.com/lu-zero/cargo-c"
categories = ["command-line-utilities", "development-tools::cargo-plugins"]
keywords = ["cargo", "cdylib"]
-rust-version = "1.70"
+rust-version = "1.76"
[[bin]]
name = "cargo-capi"
@@ -28,25 +28,25 @@
path = "src/bin/ctest.rs"
[dependencies]
-cargo = "0.74.0"
+cargo = "0.79.0"
cargo-util = "0.2"
semver = "1.0.3"
log = "0.4"
clap = { version="4.0.29", features=["color", "derive", "cargo"] }
regex = "1.5.6"
cbindgen = { version="0.26.0", default-features=false }
-toml = "0.7"
+toml = "0.8"
serde = "1.0.123"
serde_derive = "1.0"
serde_json = "1.0.62"
anyhow = "1.0"
cc = "1.0"
glob = "0.3"
-itertools = "0.11"
+itertools = "0.12"
# workaround cargo
[target.'cfg(windows)'.dependencies.windows-sys]
-version = "0.48"
+version = "0.52"
features = [
"Win32_Foundation",
"Win32_Storage_FileSystem",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/README.md new/cargo-c-0.9.32~git0.56dfe34/README.md
--- old/cargo-c-0.9.27~git0.54774e0/README.md 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/README.md 2024-05-04 09:41:19.000000000 +0200
@@ -135,6 +135,10 @@
install_subdir = "gstreamer-1.0"
# Used to disable versioning links when installing the dynamic library
versioning = false
+# Instead of using semver, select a fixed number of version components for your SONAME version suffix:
+# Setting this to 1 with a version of 0.0.0 allows a suffix of `.so.0`
+# Setting this to 3 always includes the full version in the SONAME (indicate any update is ABI breaking)
+#version_suffix_components = 2
# Add `-Cpanic=abort` to the RUSTFLAGS automatically, it may be useful in case
# something might panic in the crates used by the library.
rustflags = "-Cpanic=abort"
@@ -181,6 +185,7 @@
- [libdovi](https://github.com/quietvoid/dovi_tool/tree/main/dolby_vision#libd…
- [libimagequant](https://github.com/ImageOptim/libimagequant#building-with-ca…
- [rav1e](https://github.com/xiph/rav1e)
+- [rustls-ffi](https://github.com/rustls/rustls-ffi)
- [sled](https://github.com/spacejam/sled/tree/master/bindings/sled-native)
- [pathfinder](https://github.com/servo/pathfinder#c)
- [udbserver](https://github.com/bet4it/udbserver)
@@ -209,6 +214,28 @@
[![Packaging status](https://repology.org/badge/vertical-allrepos/cargo-c.svg)](https://…
+## Troubleshooting
+
+### Shared libraries are not built on musl systems
+
+When running on a musl-based system (e.g. Alpine Linux), it could be that using the `cdylib` library type results in the following error (as reported [here](https://github.com/lu-zero/cargo-c/issues/180))
+
+> Error: CliError { error: Some(cannot produce cdylib for <package> as the target x86_64-unknown-linux-musl does not support these crate types), exit_code: 101 }
+
+This suggests that Rust was not built with `crt-static=false` and it typically happens if Rust has been installed through rustup.
+
+Shared libraries can be enabled manually in this case, by editing the file `.cargo/config` like so:
+
+```toml
+# .cargo/config
+
+[target.x86_64-unknown-linux-musl]
+rustflags = [
+ "-C", "target-feature=-crt-static",
+]
+```
+
+However, it is preferred to install Rust through the system package manager instead of rustup (e.g. with `apk add rust`), because the provided package should already handle this (see e.g. [here](https://git.alpinelinux.org/aports/tree/main/rust/APKBUILD?h=3.19-sta…)
## Acknowledgements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/bin/capi.rs new/cargo-c-0.9.32~git0.56dfe34/src/bin/capi.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/bin/capi.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/bin/capi.rs 2024-05-04 09:41:19.000000000 +0200
@@ -5,13 +5,12 @@
use cargo::util::command_prelude::flag;
use cargo::util::command_prelude::ArgMatchesExt;
-use cargo::CliResult;
-use cargo::Config;
+use cargo::{CliResult, GlobalContext};
use clap::*;
fn main() -> CliResult {
- let mut config = Config::default()?;
+ let mut config = GlobalContext::default()?;
let cli_build = subcommand_build("build", "Build the crate C-API");
let cli_install = subcommand_install("install", "Install the crate C-API");
@@ -60,7 +59,7 @@
return Ok(());
}
- config_configure(&mut config, subcommand_args)?;
+ global_context_configure(&mut config, subcommand_args)?;
let mut ws = subcommand_args.workspace(&config)?;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/bin/cbuild.rs new/cargo-c-0.9.32~git0.56dfe34/src/bin/cbuild.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/bin/cbuild.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/bin/cbuild.rs 2024-05-04 09:41:19.000000000 +0200
@@ -1,6 +1,6 @@
use cargo::util::command_prelude::ArgMatchesExt;
use cargo::CliResult;
-use cargo::Config;
+use cargo::GlobalContext;
use cargo_c::build::*;
use cargo_c::cli::run_cargo_fallback;
@@ -8,7 +8,7 @@
use cargo_c::config::*;
fn main() -> CliResult {
- let mut config = Config::default()?;
+ let mut config = GlobalContext::default()?;
let subcommand = subcommand_build("cbuild", "Build the crate C-API");
let mut app = clap::command!()
@@ -35,7 +35,7 @@
return Ok(());
}
- config_configure(&mut config, subcommand_args)?;
+ global_context_configure(&mut config, subcommand_args)?;
let mut ws = subcommand_args.workspace(&config)?;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/bin/cinstall.rs new/cargo-c-0.9.32~git0.56dfe34/src/bin/cinstall.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/bin/cinstall.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/bin/cinstall.rs 2024-05-04 09:41:19.000000000 +0200
@@ -1,15 +1,15 @@
use cargo::util::command_prelude::ArgMatchesExt;
use cargo::CliResult;
-use cargo::Config;
+use cargo::GlobalContext;
use cargo_c::build::cbuild;
use cargo_c::cli::run_cargo_fallback;
use cargo_c::cli::subcommand_install;
-use cargo_c::config::config_configure;
+use cargo_c::config::global_context_configure;
use cargo_c::install::cinstall;
fn main() -> CliResult {
- let mut config = Config::default()?;
+ let mut config = GlobalContext::default()?;
let subcommand = subcommand_install("cinstall", "Install the crate C-API");
let mut app = clap::command!()
@@ -36,7 +36,7 @@
return Ok(());
}
- config_configure(&mut config, subcommand_args)?;
+ global_context_configure(&mut config, subcommand_args)?;
let mut ws = subcommand_args.workspace(&config)?;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/bin/ctest.rs new/cargo-c-0.9.32~git0.56dfe34/src/bin/ctest.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/bin/ctest.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/bin/ctest.rs 2024-05-04 09:41:19.000000000 +0200
@@ -1,6 +1,4 @@
use cargo::util::command_prelude::*;
-use cargo::CliResult;
-use cargo::Config;
use cargo_c::build::*;
use cargo_c::cli::run_cargo_fallback;
@@ -8,7 +6,7 @@
use cargo_c::config::*;
fn main() -> CliResult {
- let mut config = Config::default()?;
+ let mut config = GlobalContext::default()?;
let subcommand = subcommand_test("ctest");
@@ -36,7 +34,7 @@
return Ok(());
}
- config_configure(&mut config, subcommand_args)?;
+ global_context_configure(&mut config, subcommand_args)?;
let mut ws = subcommand_args.workspace(&config)?;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/build.rs new/cargo-c-0.9.32~git0.56dfe34/src/build.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/build.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/build.rs 2024-05-04 09:41:19.000000000 +0200
@@ -4,16 +4,15 @@
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::{Arc, Mutex};
-use cargo::core::compiler::unit_graph::UnitDep;
-use cargo::core::compiler::unit_graph::UnitGraph;
-use cargo::core::compiler::Unit;
-use cargo::core::{compiler::Executor, profiles::Profiles};
-use cargo::core::{TargetKind, Workspace};
+use cargo::core::compiler::{unit_graph::UnitDep, unit_graph::UnitGraph, Executor, Unit};
+use cargo::core::profiles::Profiles;
+use cargo::core::{FeatureValue, Package, PackageId, Target, TargetKind, Workspace};
use cargo::ops::{self, CompileFilter, CompileOptions, FilterRule, LibRule};
use cargo::util::command_prelude::{ArgMatches, ArgMatchesExt, CompileMode, ProfileChecking};
use cargo::util::interning::InternedString;
-use cargo::{CliResult, Config};
+use cargo::{CliResult, GlobalContext};
+use anyhow::Context as _;
use cargo_util::paths::{copy, create, create_dir_all, open, read, read_bytes, write};
use semver::Version;
@@ -30,7 +29,7 @@
root_output: &Path,
root_path: &Path,
) -> anyhow::Result<()> {
- ws.config()
+ ws.gctx()
.shell()
.status("Building", "header file using cbindgen")?;
let mut header_name = PathBuf::from(name);
@@ -65,7 +64,7 @@
build_targets: &BuildTargets,
root_output: &Path,
) -> anyhow::Result<()> {
- let mut shell = ws.config().shell();
+ let mut shell = ws.gctx().shell();
shell.status("Populating", "uninstalled header directory")?;
let path = &format!("PKG_CONFIG_PATH=\"{}\"", root_output.display());
shell.verbose(move |s| s.note(path))?;
@@ -91,7 +90,7 @@
root_output: &Path,
pc: &PkgConfig,
) -> anyhow::Result<()> {
- ws.config().shell().status("Building", "pkg-config files")?;
+ ws.gctx().shell().status("Building", "pkg-config files")?;
build_pc_file(filename, root_output, pc)?;
let pc_uninstalled = pc.uninstalled(root_output);
build_pc_file(
@@ -141,7 +140,7 @@
let env = &target.env;
if os == "windows" && env == "msvc" {
- ws.config()
+ ws.gctx()
.shell()
.status("Building", ".def file using dumpbin")?;
@@ -214,7 +213,7 @@
if os == "windows" {
let arch = &target.arch;
if env == "gnu" {
- ws.config()
+ ws.gctx()
.shell()
.status("Building", "implib using dlltool")?;
@@ -243,7 +242,7 @@
Err(anyhow::anyhow!("Command failed {:?}", dlltool_command))
}
} else {
- ws.config().shell().status("Building", "implib using lib")?;
+ ws.gctx().shell().status("Building", "implib using lib")?;
let target_str = format!("{}-pc-windows-msvc", &target.arch);
let mut lib = match cc::windows_registry::find(&target_str, "lib.exe") {
Some(command) => command,
@@ -401,15 +400,42 @@
}
#[derive(Debug)]
+pub enum VersionSuffix {
+ Major,
+ MajorMinor,
+ MajorMinorPatch,
+}
+
+#[derive(Debug)]
pub struct LibraryCApiConfig {
pub name: String,
pub version: Version,
pub install_subdir: Option<String>,
pub versioning: bool,
+ pub version_suffix_components: Option<VersionSuffix>,
pub import_library: bool,
pub rustflags: Vec<String>,
}
+impl LibraryCApiConfig {
+ pub fn sover(&self) -> String {
+ let major = self.version.major;
+ let minor = self.version.minor;
+ let patch = self.version.patch;
+
+ match self.version_suffix_components {
+ None => match (major, minor, patch) {
+ (0, 0, patch) => format!("0.0.{patch}"),
+ (0, minor, _) => format!("0.{minor}"),
+ (major, _, _) => format!("{major}"),
+ },
+ Some(VersionSuffix::Major) => format!("{major}"),
+ Some(VersionSuffix::MajorMinor) => format!("{major}.{minor}"),
+ Some(VersionSuffix::MajorMinorPatch) => format!("{major}.{minor}.{patch}"),
+ }
+ }
+}
+
#[derive(Debug, Default)]
pub struct InstallCApiConfig {
pub include: Vec<InstallTarget>,
@@ -484,7 +510,10 @@
}
}
-fn load_manifest_capi_config(pkg: &Package) -> anyhow::Result<CApiConfig> {
+fn load_manifest_capi_config(
+ pkg: &Package,
+ rustc_target: &target::Target,
+) -> anyhow::Result<CApiConfig> {
let name = &pkg
.manifest()
.targets()
@@ -619,6 +648,7 @@
let mut version = pkg.version().clone();
let mut install_subdir = None;
let mut versioning = true;
+ let mut version_suffix_components = None;
let mut import_library = true;
let mut rustflags = Vec::new();
@@ -636,6 +666,19 @@
.get("versioning")
.and_then(|v| v.as_bool())
.unwrap_or(true);
+
+ if let Some(value) = library.get("version_suffix_components") {
+ let value = value.as_integer().with_context(|| {
+ format!("Value for `version_suffix_components` is not an integer: {value:?}")
+ })?;
+ version_suffix_components = Some(match value {
+ 1 => VersionSuffix::Major,
+ 2 => VersionSuffix::MajorMinor,
+ 3 => VersionSuffix::MajorMinorPatch,
+ _ => anyhow::bail!("Out of range value for version suffix components: {value}"),
+ });
+ }
+
import_library = library
.get("import_library")
.and_then(|v| v.as_bool())
@@ -650,11 +693,16 @@
}
}
+ if rustc_target.os == "android" {
+ versioning = false;
+ }
+
let library = LibraryCApiConfig {
name: lib_name,
version,
install_subdir,
versioning,
+ version_suffix_components,
import_library,
rustflags,
};
@@ -754,14 +802,14 @@
fn compile_options(
ws: &Workspace,
- config: &Config,
+ gctx: &GlobalContext,
args: &ArgMatches,
profile: InternedString,
compile_mode: CompileMode,
) -> anyhow::Result<CompileOptions> {
use cargo::core::compiler::CompileKind;
let mut compile_opts =
- args.compile_options(config, compile_mode, Some(ws), ProfileChecking::Custom)?;
+ args.compile_options(gctx, compile_mode, Some(ws), ProfileChecking::Custom)?;
compile_opts.build_config.requested_profile = profile;
@@ -779,12 +827,12 @@
compile_opts.build_config.unit_graph = false;
- let rustc = config.load_global_rustc(Some(ws))?;
+ let rustc = gctx.load_global_rustc(Some(ws))?;
// Always set the target, requested_kinds is a vec of a single element.
if compile_opts.build_config.requested_kinds[0].is_host() {
compile_opts.build_config.requested_kinds =
- CompileKind::from_requested_targets(config, &[rustc.host.to_string()])?
+ CompileKind::from_requested_targets(gctx, &[rustc.host.to_string()])?
}
Ok(compile_opts)
@@ -796,7 +844,6 @@
link_line: Mutex<HashMap<PackageId, String>>,
}
-use cargo::core::*;
use cargo::CargoResult;
use cargo_util::ProcessBuilder;
@@ -846,7 +893,6 @@
use cargo::core::compiler::{unit_graph, UnitInterner};
use cargo::ops::create_bcx;
-use cargo::util::profile;
fn set_deps_args(
dep: &UnitDep,
@@ -880,7 +926,7 @@
for unit in bcx.roots.iter() {
let pkg = &unit.pkg;
- let capi_config = load_manifest_capi_config(pkg)?;
+ let capi_config = load_manifest_capi_config(pkg, rustc_target)?;
let name = &capi_config.library.name;
let install_paths = InstallPaths::new(name, args, &capi_config);
let pkg_rustflags = &capi_config.library.rustflags;
@@ -912,11 +958,10 @@
}
if options.build_config.unit_graph {
- unit_graph::emit_serialized_unit_graph(&bcx.roots, &bcx.unit_graph, ws.config())?;
+ unit_graph::emit_serialized_unit_graph(&bcx.roots, &bcx.unit_graph, ws.gctx())?;
return Ok(HashMap::new());
}
- let _p = profile::start("compiling");
- let cx = cargo::core::compiler::Context::new(&bcx)?;
+ let cx = cargo::core::compiler::BuildRunner::new(&bcx)?;
let r = cx.compile(exec)?;
@@ -967,7 +1012,7 @@
let id = pkg.package_id();
let version = pkg.version().clone();
let root_path = pkg.root().to_path_buf();
- let capi_config = load_manifest_capi_config(pkg)?;
+ let capi_config = load_manifest_capi_config(pkg, rustc_target)?;
patch_target(pkg, libkinds, &capi_config)?;
@@ -992,12 +1037,12 @@
pub fn cbuild(
ws: &mut Workspace,
- config: &Config,
+ config: &GlobalContext,
args: &ArgMatches,
default_profile: &str,
) -> anyhow::Result<(Vec<CPackage>, CompileOptions)> {
let rustc = config.load_global_rustc(Some(ws))?;
- let targets = args.targets();
+ let targets = args.targets()?;
let target = match targets.len() {
0 => rustc.host.to_string(),
1 => targets[0].to_string(),
@@ -1193,7 +1238,7 @@
pub fn ctest(
ws: &Workspace,
- config: &Config,
+ config: &GlobalContext,
args: &ArgMatches,
packages: &[CPackage],
mut compile_opts: CompileOptions,
@@ -1246,3 +1291,66 @@
ops::run_tests(ws, &ops, &test_args)
}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use semver::Version;
+
+ fn make_test_library_config(version: &str) -> LibraryCApiConfig {
+ LibraryCApiConfig {
+ name: "example".to_string(),
+ version: Version::parse(version).unwrap(),
+ install_subdir: None,
+ versioning: true,
+ version_suffix_components: None,
+ import_library: true,
+ rustflags: vec![],
+ }
+ }
+
+ #[test]
+ pub fn test_semver_zero_zero_zero() {
+ let library = make_test_library_config("0.0.0");
+ let sover = library.sover();
+ assert_eq!(sover, "0.0.0");
+ }
+
+ #[test]
+ pub fn test_semver_zero_one_zero() {
+ let library = make_test_library_config("0.1.0");
+ let sover = library.sover();
+ assert_eq!(sover, "0.1");
+ }
+
+ #[test]
+ pub fn test_semver_one_zero_zero() {
+ let library = make_test_library_config("1.0.0");
+ let sover = library.sover();
+ assert_eq!(sover, "1");
+ }
+
+ #[test]
+ pub fn text_one_fixed_zero_zero_zero() {
+ let mut library = make_test_library_config("0.0.0");
+ library.version_suffix_components = Some(VersionSuffix::Major);
+ let sover = library.sover();
+ assert_eq!(sover, "0");
+ }
+
+ #[test]
+ pub fn text_two_fixed_one_zero_zero() {
+ let mut library = make_test_library_config("1.0.0");
+ library.version_suffix_components = Some(VersionSuffix::MajorMinor);
+ let sover = library.sover();
+ assert_eq!(sover, "1.0");
+ }
+
+ #[test]
+ pub fn text_three_fixed_one_zero_zero() {
+ let mut library = make_test_library_config("1.0.0");
+ library.version_suffix_components = Some(VersionSuffix::MajorMinorPatch);
+ let sover = library.sover();
+ assert_eq!(sover, "1.0.0");
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/build_targets.rs new/cargo-c-0.9.32~git0.56dfe34/src/build_targets.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/build_targets.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/build_targets.rs 2024-05-04 09:41:19.000000000 +0200
@@ -89,7 +89,7 @@
let shared_lib = targetdir.join(format!("lib{lib_name}.so"));
(shared_lib, static_lib, None, None)
}
- ("macos", _) | ("ios", _) => {
+ ("macos", _) | ("ios", _) | ("tvos", _) => {
let static_lib = targetdir.join(format!("lib{lib_name}.a"));
let shared_lib = targetdir.join(format!("lib{lib_name}.dylib"));
(shared_lib, static_lib, None, None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/cli.rs new/cargo-c-0.9.32~git0.56dfe34/src/cli.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/cli.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/cli.rs 2024-05-04 09:41:19.000000000 +0200
@@ -16,27 +16,32 @@
/// Path to directory where target should be copied to
#[clap(long = "destdir")]
destdir: Option<PathBuf>,
- /// Directory path used to construct default values of
- /// includedir, libdir, bindir, pkgconfigdir
- #[clap(long = "prefix")]
- prefix: Option<PathBuf>,
+ /// Directory path used to construct the values of
+ /// `bindir`, `datarootdir`, `includedir`, `libdir`
+ ///
+ /// If they are absolute the prefix is ignored.
+ #[clap(long = "prefix", default_value = "/usr/local")]
+ prefix: PathBuf,
/// Path to directory for installing generated library files
- #[clap(long = "libdir")]
- libdir: Option<PathBuf>,
+ #[clap(long = "libdir", default_value = "lib")]
+ libdir: PathBuf,
/// Path to directory for installing generated headers files
- #[clap(long = "includedir")]
- includedir: Option<PathBuf>,
+ #[clap(long = "includedir", default_value = "include")]
+ includedir: PathBuf,
/// Path to directory for installing generated executable files
- #[clap(long = "bindir")]
- bindir: Option<PathBuf>,
+ #[clap(long = "bindir", default_value = "bin")]
+ bindir: PathBuf,
/// Path to directory for installing generated pkg-config .pc files
+ ///
+ /// [default: {libdir}/pkgconfig]
#[clap(long = "pkgconfigdir")]
pkgconfigdir: Option<PathBuf>,
- /// Path to directory for installing read-only data (defaults to {prefix}/share)
- #[clap(long = "datarootdir")]
- datarootdir: Option<PathBuf>,
+ /// Path to directory for installing read-only data
+ #[clap(long = "datarootdir", default_value = "share")]
+ datarootdir: PathBuf,
/// Path to directory for installing read-only application-specific data
- /// (defaults to {datarootdir})
+ ///
+ /// [default: {datarootdir}]
#[clap(long = "datadir")]
datadir: Option<PathBuf>,
#[clap(long = "dlltool")]
@@ -62,7 +67,7 @@
.action(ArgAction::Count)
.global(true),
)
- .arg_quiet()
+ .arg_silent_suggestion()
.arg(
opt("color", "Coloring: auto, always, never")
.value_name("WHEN")
@@ -80,7 +85,7 @@
.action(ArgAction::Append)
.global(true),
)
- .arg_jobs()
+ .arg_parallel()
.arg_targets_all(
"Build only this package's library",
"Build only the specified binary",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/config.rs new/cargo-c-0.9.32~git0.56dfe34/src/config.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/config.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/config.rs 2024-05-04 09:41:19.000000000 +0200
@@ -1,7 +1,7 @@
use std::env;
use cargo::util::command_prelude::{ArgMatches, ArgMatchesExt};
-use cargo::{CliResult, Config};
+use cargo::{CliResult, GlobalContext};
// Take the original cargo instance and save it as a separate env var if not already set.
fn setup_env() {
@@ -12,14 +12,14 @@
}
}
-pub fn config_configure(config: &mut Config, args: &ArgMatches) -> CliResult {
- let arg_target_dir = &args.value_of_path("target-dir", config);
+pub fn global_context_configure(gctx: &mut GlobalContext, args: &ArgMatches) -> CliResult {
+ let arg_target_dir = &args.value_of_path("target-dir", gctx);
let config_args: Vec<_> = args
.get_many::<String>("config")
.unwrap_or_default()
.map(|s| s.to_owned())
.collect();
- config.configure(
+ gctx.configure(
args.verbose(),
args.flag("quiet"),
args.get_one::<String>("color").map(String::as_str),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/install.rs new/cargo-c-0.9.32~git0.56dfe34/src/install.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/install.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/install.rs 2024-05-04 09:41:19.000000000 +0200
@@ -3,11 +3,9 @@
use cargo::core::Workspace;
use cargo_util::paths::{copy, create_dir_all};
-use semver::Version;
use crate::build::*;
use crate::build_targets::BuildTargets;
-use crate::VersionExt;
fn append_to_destdir(destdir: Option<&Path>, path: &Path) -> PathBuf {
if let Some(destdir) = destdir {
@@ -93,7 +91,7 @@
| ("haiku", _)
| ("illumos", _)
| ("emscripten", _) => LibType::So,
- ("macos", _) | ("ios", _) => LibType::Dylib,
+ ("macos", _) | ("ios", _) | ("tvos", _) => LibType::Dylib,
("windows", _) => LibType::Windows,
_ => unimplemented!("The target {}-{} is not supported yet", os, env),
}
@@ -107,8 +105,10 @@
}
impl UnixLibNames {
- pub(crate) fn new(lib_type: LibType, lib_name: &str, lib_version: &Version) -> Option<Self> {
- let main_version = lib_version.main_version();
+ pub(crate) fn new(lib_type: LibType, library: &LibraryCApiConfig) -> Option<Self> {
+ let lib_name = &library.name;
+ let lib_version = &library.version;
+ let main_version = library.sover();
match lib_type {
LibType::So => {
@@ -198,9 +198,7 @@
create_dir_all(&install_path_lib)?;
create_dir_all(&install_path_pc)?;
- ws.config()
- .shell()
- .status("Installing", "pkg-config file")?;
+ ws.gctx().shell().status("Installing", "pkg-config file")?;
copy(
&build_targets.pc,
@@ -208,7 +206,7 @@
)?;
if capi_config.header.enabled {
- ws.config().shell().status("Installing", "header file")?;
+ ws.gctx().shell().status("Installing", "header file")?;
for (from, to) in build_targets.extra.include.iter() {
let to = install_path_include.join(to);
create_dir_all(to.parent().unwrap())?;
@@ -217,7 +215,7 @@
}
if !build_targets.extra.data.is_empty() {
- ws.config().shell().status("Installing", "data file")?;
+ ws.gctx().shell().status("Installing", "data file")?;
for (from, to) in build_targets.extra.data.iter() {
let to = install_path_data.join(to);
create_dir_all(to.parent().unwrap())?;
@@ -226,7 +224,7 @@
}
if let Some(ref static_lib) = build_targets.static_lib {
- ws.config().shell().status("Installing", "static library")?;
+ ws.gctx().shell().status("Installing", "static library")?;
copy(
static_lib,
install_path_lib.join(static_lib.file_name().unwrap()),
@@ -234,14 +232,12 @@
}
if let Some(ref shared_lib) = build_targets.shared_lib {
- ws.config().shell().status("Installing", "shared library")?;
+ ws.gctx().shell().status("Installing", "shared library")?;
- let lib_name = &capi_config.library.name;
let lib_type = LibType::from_build_targets(build_targets);
match lib_type {
LibType::So | LibType::Dylib => {
- let lib = UnixLibNames::new(lib_type, lib_name, &capi_config.library.version)
- .unwrap();
+ let lib = UnixLibNames::new(lib_type, &capi_config.library).unwrap();
lib.install(capi_config, shared_lib, &install_path_lib)?;
}
LibType::Windows => {
@@ -291,32 +287,20 @@
.get_one::<PathBuf>("prefix")
.map(PathBuf::from)
.unwrap_or_else(|| "/usr/local".into());
- let libdir = args
- .get_one::<PathBuf>("libdir")
- .map(PathBuf::from)
- .unwrap_or_else(|| prefix.join("lib"));
- let includedir = args
- .get_one::<PathBuf>("includedir")
- .map(PathBuf::from)
- .unwrap_or_else(|| prefix.join("include"));
- let datarootdir = args
- .get_one::<PathBuf>("datarootdir")
- .map(PathBuf::from)
- .unwrap_or_else(|| prefix.join("share"));
+ let libdir = prefix.join(args.get_one::<PathBuf>("libdir").unwrap());
+ let includedir = prefix.join(args.get_one::<PathBuf>("includedir").unwrap());
+ let datarootdir = prefix.join(args.get_one::<PathBuf>("datarootdir").unwrap());
let datadir = args
.get_one::<PathBuf>("datadir")
- .map(PathBuf::from)
+ .map(|d| prefix.join(d))
.unwrap_or_else(|| datarootdir.clone());
let subdir_name = PathBuf::from(&capi_config.header.subdirectory);
- let bindir = args
- .get_one::<PathBuf>("bindir")
- .map(PathBuf::from)
- .unwrap_or_else(|| prefix.join("bin"));
+ let bindir = prefix.join(args.get_one::<PathBuf>("bindir").unwrap());
let pkgconfigdir = args
.get_one::<PathBuf>("pkgconfigdir")
- .map(PathBuf::from)
+ .map(|d| prefix.join(d))
.unwrap_or_else(|| libdir.join("pkgconfig"));
InstallPaths {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/lib.rs new/cargo-c-0.9.32~git0.56dfe34/src/lib.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/lib.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/lib.rs 2024-05-04 09:41:19.000000000 +0200
@@ -5,18 +5,3 @@
pub mod install;
pub mod pkg_config_gen;
pub mod target;
-
-trait VersionExt {
- /// build the main version string
- fn main_version(&self) -> String;
-}
-
-impl VersionExt for semver::Version {
- fn main_version(&self) -> String {
- match (self.major, self.minor, self.patch) {
- (0, 0, patch) => format!("0.0.{patch}"),
- (0, minor, _) => format!("0.{minor}"),
- (major, _, _) => format!("{major}"),
- }
- }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/pkg_config_gen.rs new/cargo-c-0.9.32~git0.56dfe34/src/pkg_config_gen.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/pkg_config_gen.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/pkg_config_gen.rs 2024-05-04 09:41:19.000000000 +0200
@@ -129,7 +129,7 @@
) -> Self {
let mut pc = PkgConfig::new(name, capi_config);
- pc.prefix = install_paths.prefix.clone();
+ pc.prefix.clone_from(&install_paths.prefix);
// TODO: support exec_prefix
if args.contains_id("includedir") {
if let Ok(suffix) = install_paths.includedir.strip_prefix(&pc.prefix) {
@@ -137,7 +137,7 @@
includedir.push(suffix);
pc.includedir = includedir;
} else {
- pc.includedir = install_paths.includedir.clone();
+ pc.includedir.clone_from(&install_paths.includedir);
}
}
if args.contains_id("libdir") {
@@ -146,7 +146,7 @@
libdir.push(suffix);
pc.libdir = libdir;
} else {
- pc.libdir = install_paths.libdir.clone();
+ pc.libdir.clone_from(&install_paths.libdir);
}
}
pc
@@ -164,7 +164,7 @@
}
pub fn set_description<S: AsRef<str>>(&mut self, descr: S) -> &mut Self {
- self.description = descr.as_ref().to_owned();
+ descr.as_ref().clone_into(&mut self.description);
self
}
@@ -298,6 +298,7 @@
version: Version::parse("0.1.0").unwrap(),
install_subdir: None,
versioning: true,
+ version_suffix_components: None,
import_library: true,
rustflags: Vec::default(),
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cargo-c-0.9.27~git0.54774e0/src/target.rs new/cargo-c-0.9.32~git0.56dfe34/src/target.rs
--- old/cargo-c-0.9.27~git0.54774e0/src/target.rs 2023-10-12 00:51:34.000000000 +0200
+++ new/cargo-c-0.9.32~git0.56dfe34/src/target.rs 2024-05-04 09:41:19.000000000 +0200
@@ -3,7 +3,6 @@
use anyhow::*;
use crate::build::CApiConfig;
-use crate::VersionExt;
/// Split a target string to its components
///
@@ -70,7 +69,7 @@
let os = &self.os;
let env = &self.env;
- let sover = version.main_version();
+ let sover = capi_config.library.sover();
if os == "android" {
lines.push(format!("-Wl,-soname,lib{lib_name}.so"));
@@ -86,7 +85,7 @@
} else {
format!("-Wl,-soname,lib{lib_name}.so")
});
- } else if os == "macos" || os == "ios" {
+ } else if os == "macos" || os == "ios" || os == "tvos" {
let line = if capi_config.library.versioning {
format!("-Wl,-install_name,{1}/lib{0}.{5}.dylib,-current_version,{2}.{3}.{4},-compatibility_version,{5}",
lib_name, libdir.display(), major, minor, patch, sover)
++++++ vendor.tar.xz ++++++
/work/SRC/openSUSE:Factory/cargo-c/vendor.tar.xz /work/SRC/openSUSE:Factory/.cargo-c.new.24587/vendor.tar.xz differ: char 8, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package opera for openSUSE:Factory:NonFree checked in at 2024-06-06 12:29:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/opera (Old)
and /work/SRC/openSUSE:Factory:NonFree/.opera.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opera"
Thu Jun 6 12:29:48 2024 rev:224 rq:1178907 version:110.0.5130.64
Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/opera/opera.changes 2024-06-03 17:39:48.990963215 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.opera.new.24587/opera.changes 2024-06-06 12:29:49.718365461 +0200
@@ -1,0 +2,17 @@
+Tue Jun 4 14:54:58 UTC 2024 - Carsten Ziepke <kieltux(a)gmail.com>
+
+- Update to 110.0.5130.64
+ * CHR-9748 Update Chromium on desktop-stable-124-5130
+ to 124.0.6367.243
+ * DNA-116317 Create outline or shadow around emojis on tab strip
+ * DNA-116320 Create animation for emoji disappearing from
+ tab strip
+ * DNA-116564 Assign custom emoji from emoji picker
+ * DNA-116690 Make chrome://emoji-picker attachable by webdriver
+ * DNA-116732 Introduce stat event for setting / unsetting emoji
+ on a tab
+ * DNA-116753 Emoji picker does not follow browser theme
+ * DNA-116755 Record tab emojis added / removed
+ * DNA-116777 Enable #tab-art on all streams
+
+-------------------------------------------------------------------
Old:
----
opera-stable_110.0.5130.49_amd64.rpm
New:
----
opera-stable_110.0.5130.64_amd64.rpm
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ opera.spec ++++++
--- /var/tmp/diff_new_pack.NFT3Mf/_old 2024-06-06 12:29:51.478429742 +0200
+++ /var/tmp/diff_new_pack.NFT3Mf/_new 2024-06-06 12:29:51.478429742 +0200
@@ -20,7 +20,7 @@
# libffmpeg.so*, libfreetype.so* and libGLESv2.so* are currently bundled.
%global __requires_exclude ^lib(ffmpeg|freetype|GLESv2)\\.so.*$
Name: opera
-Version: 110.0.5130.49
+Version: 110.0.5130.64
Release: 0
Summary: Proprietary web browser
License: NonFree
++++++ opera-stable_110.0.5130.49_amd64.rpm -> opera-stable_110.0.5130.64_amd64.rpm ++++++
/work/SRC/openSUSE:Factory:NonFree/opera/opera-stable_110.0.5130.49_amd64.rpm /work/SRC/openSUSE:Factory:NonFree/.opera.new.24587/opera-stable_110.0.5130.64_amd64.rpm differ: char 35, line 1
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 2024-06-05 20:14:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Wed Jun 5 20:14:09 2024 rev:2939 rq: version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/000release-packages/Aeon-release.changes 2024-06-05 18:41:29.787711711 +0200
+++ /work/SRC/openSUSE:Factory/.000release-packages.new.24587/Aeon-release.changes 2024-06-05 20:14:11.730591507 +0200
@@ -2 +2 @@
-Wed Jun 05 16:41:25 UTC 2024 - openSUSE <packaging(a)lists.opensuse.org>
+Wed Jun 05 18:14:07 UTC 2024 - openSUSE <packaging(a)lists.opensuse.org>
Kalpa-release.changes: same change
MicroOS-release.changes: same change
openSUSE-Addon-NonOss-release.changes: same change
openSUSE-release.changes: same change
stub.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
Kalpa-release.spec: same change
MicroOS-release.spec: same change
openSUSE-Addon-NonOss-release.spec: same change
openSUSE-release.spec: same change
stub.spec: same change
++++++ weakremovers.inc ++++++
--- /var/tmp/diff_new_pack.l7tA12/_old 2024-06-05 20:14:13.582658812 +0200
+++ /var/tmp/diff_new_pack.l7tA12/_new 2024-06-05 20:14:13.598659394 +0200
@@ -12792,10 +12792,14 @@
Provides: weakremover(libflux0_161_0)
Provides: weakremover(libflux0_171_0)
Provides: weakremover(libflux0_193_0)
+Provides: weakremover(libfm-qt-data)
+Provides: weakremover(libfm-qt-devel)
+Provides: weakremover(libfm-qt-lang)
Provides: weakremover(libfm-qt10)
Provides: weakremover(libfm-qt11)
Provides: weakremover(libfm-qt12)
Provides: weakremover(libfm-qt13)
+Provides: weakremover(libfm-qt14)
Provides: weakremover(libfm-qt3)
Provides: weakremover(libfm-qt5)
Provides: weakremover(libfm-qt6)
@@ -14780,8 +14784,11 @@
Provides: weakremover(liblwres160)
Provides: weakremover(liblwres160-32bit)
Provides: weakremover(liblxqt-globalkeys-ui0)
+Provides: weakremover(liblxqt-globalkeys-ui1)
Provides: weakremover(liblxqt-globalkeys0)
+Provides: weakremover(liblxqt-globalkeys1)
Provides: weakremover(liblxqt0)
+Provides: weakremover(liblxqt1)
Provides: weakremover(liblz4-1_7)
Provides: weakremover(liblz4-1_7-32bit)
Provides: weakremover(liblzmasdk16)
@@ -15106,6 +15113,7 @@
Provides: weakremover(libnco-5_1_3)
Provides: weakremover(libnco-5_1_4)
Provides: weakremover(libnco-5_1_7)
+Provides: weakremover(libnco-5_1_9)
Provides: weakremover(libnco_c++-4_9_7)
Provides: weakremover(libnco_c++-4_9_8)
Provides: weakremover(libnco_c++-5_0_0)
@@ -15115,6 +15123,7 @@
Provides: weakremover(libnco_c++-5_1_3)
Provides: weakremover(libnco_c++-5_1_4)
Provides: weakremover(libnco_c++-5_1_7)
+Provides: weakremover(libnco_c++-5_1_9)
Provides: weakremover(libndpi2)
Provides: weakremover(libndpi3)
Provides: weakremover(libnetcdf-cxx4_4_3_0-gnu-hpc)
@@ -16709,6 +16718,7 @@
Provides: weakremover(librssguard-4_5_5)
Provides: weakremover(librssguard-4_6_3)
Provides: weakremover(librssguard-4_6_6)
+Provides: weakremover(librssguard-4_7_0)
Provides: weakremover(librsvg-lang)
Provides: weakremover(librtaudio6)
Provides: weakremover(librtlsdr0)
@@ -17834,6 +17844,7 @@
Provides: weakremover(libwtdbo4_5_0)
Provides: weakremover(libwtdbo4_5_1)
Provides: weakremover(libwtdbo4_6_1)
+Provides: weakremover(libwtdbo4_8_1)
Provides: weakremover(libwtdbo51)
Provides: weakremover(libwtdbomysql39)
Provides: weakremover(libwtdbomysql45)
@@ -17843,6 +17854,7 @@
Provides: weakremover(libwtdbomysql4_5_0)
Provides: weakremover(libwtdbomysql4_5_1)
Provides: weakremover(libwtdbomysql4_6_1)
+Provides: weakremover(libwtdbomysql4_8_1)
Provides: weakremover(libwtdbomysql51)
Provides: weakremover(libwtdbopostgres39)
Provides: weakremover(libwtdbopostgres45)
@@ -17852,6 +17864,7 @@
Provides: weakremover(libwtdbopostgres4_5_0)
Provides: weakremover(libwtdbopostgres4_5_1)
Provides: weakremover(libwtdbopostgres4_6_1)
+Provides: weakremover(libwtdbopostgres4_8_1)
Provides: weakremover(libwtdbopostgres51)
Provides: weakremover(libwv-1_2-3)
Provides: weakremover(libwx_baseu-suse-nostl3)
@@ -18811,6 +18824,8 @@
Provides: weakremover(lxmusic-lang)
Provides: weakremover(lxpanel-plugin-power-manager)
Provides: weakremover(lxqt-admin-lang)
+Provides: weakremover(lxqt-common)
+Provides: weakremover(lxqt-l10n)
Provides: weakremover(machinery)
Provides: weakremover(machinery-doc)
Provides: weakremover(mailman)
@@ -43821,8 +43836,6 @@
Provides: weakremover(udisks-devel)
Provides: weakremover(udisks-glue)
Provides: weakremover(udisks2-devel)
-Provides: weakremover(ufw)
-Provides: weakremover(ufw-lang)
Provides: weakremover(ugrep-indexer)
Provides: weakremover(uim-32bit)
Provides: weakremover(uim-gtk2-32bit)
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 2024-06-05 18:41:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Wed Jun 5 18:41:27 2024 rev:2938 rq: version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/000release-packages/Aeon-release.changes 2024-06-04 15:12:59.909977142 +0200
+++ /work/SRC/openSUSE:Factory/.000release-packages.new.24587/Aeon-release.changes 2024-06-05 18:41:29.787711711 +0200
@@ -2 +2 @@
-Tue Jun 04 13:12:56 UTC 2024 - openSUSE <packaging(a)lists.opensuse.org>
+Wed Jun 05 16:41:25 UTC 2024 - openSUSE <packaging(a)lists.opensuse.org>
Kalpa-release.changes: same change
MicroOS-release.changes: same change
openSUSE-Addon-NonOss-release.changes: same change
openSUSE-release.changes: same change
stub.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ Aeon-release.spec ++++++
--- /var/tmp/diff_new_pack.8efgLa/_old 2024-06-05 18:41:31.675781250 +0200
+++ /var/tmp/diff_new_pack.8efgLa/_new 2024-06-05 18:41:31.679781397 +0200
@@ -17,7 +17,7 @@
Name: Aeon-release
-Version: 20240604
+Version: 20240605
Release: 0
Summary: openSUSE Aeon
License: GPL-2.0-or-later
@@ -174,9 +174,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = Aeon
-Provides: product(Aeon) = 20240604-0
+Provides: product(Aeon) = 20240605-0
Provides: product-label() = openSUSE%20Aeon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aaeon%3A20240604
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aaeon%3A20240605
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(Aeon)
@@ -192,7 +192,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(Aeon) = 20240604-0
+Provides: product_flavor(Aeon) = 20240605-0
Summary: openSUSE Aeon%{?betaversion: %{betaversion}}
%description appliance
@@ -257,11 +257,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>Aeon</name>
- <version>20240604</version>
+ <version>20240605</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:aeon:20240604</cpeid>
+ <cpeid>cpe:/o:opensuse:aeon:20240605</cpeid>
<productline>Aeon</productline>
<register>
<pool>
++++++ Kalpa-release.spec ++++++
--- /var/tmp/diff_new_pack.8efgLa/_old 2024-06-05 18:41:31.719782871 +0200
+++ /var/tmp/diff_new_pack.8efgLa/_new 2024-06-05 18:41:31.723783018 +0200
@@ -17,7 +17,7 @@
Name: Kalpa-release
-Version: 20240604
+Version: 20240605
Release: 0
Summary: openSUSE Kalpa
License: GPL-2.0-or-later
@@ -174,9 +174,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = Kalpa
-Provides: product(Kalpa) = 20240604-0
+Provides: product(Kalpa) = 20240605-0
Provides: product-label() = openSUSE%20Kalpa
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Akalpa%3A20240604
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Akalpa%3A20240605
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(Kalpa)
@@ -192,7 +192,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(Kalpa) = 20240604-0
+Provides: product_flavor(Kalpa) = 20240605-0
Summary: openSUSE Kalpa%{?betaversion: %{betaversion}}
%description appliance
@@ -257,11 +257,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>Kalpa</name>
- <version>20240604</version>
+ <version>20240605</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:kalpa:20240604</cpeid>
+ <cpeid>cpe:/o:opensuse:kalpa:20240605</cpeid>
<productline>Kalpa</productline>
<register>
<pool>
++++++ MicroOS-release.spec ++++++
--- /var/tmp/diff_new_pack.8efgLa/_old 2024-06-05 18:41:31.767784638 +0200
+++ /var/tmp/diff_new_pack.8efgLa/_new 2024-06-05 18:41:31.771784786 +0200
@@ -17,7 +17,7 @@
Name: MicroOS-release
-Version: 20240604
+Version: 20240605
Release: 0
Summary: openSUSE MicroOS
License: GPL-2.0-or-later
@@ -179,9 +179,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = MicroOS
-Provides: product(MicroOS) = 20240604-0
+Provides: product(MicroOS) = 20240605-0
Provides: product-label() = openSUSE%20MicroOS
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20240604
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20240605
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)
@@ -197,7 +197,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(MicroOS) = 20240604-0
+Provides: product_flavor(MicroOS) = 20240605-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description dvd
@@ -213,7 +213,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(MicroOS) = 20240604-0
+Provides: product_flavor(MicroOS) = 20240605-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description appliance
@@ -278,11 +278,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>MicroOS</name>
- <version>20240604</version>
+ <version>20240605</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:microos:20240604</cpeid>
+ <cpeid>cpe:/o:opensuse:microos:20240605</cpeid>
<productline>MicroOS</productline>
<register>
<pool>
++++++ openSUSE-Addon-NonOss-release.spec ++++++
--- /var/tmp/diff_new_pack.8efgLa/_old 2024-06-05 18:41:31.815786406 +0200
+++ /var/tmp/diff_new_pack.8efgLa/_new 2024-06-05 18:41:31.819786554 +0200
@@ -18,7 +18,7 @@
Name: openSUSE-Addon-NonOss-release
%define product openSUSE-Addon-NonOss
-Version: 20240604
+Version: 20240605
#!BcntSyncTag: openSUSE-Addon-NonOss
Release: 0
Summary: openSUSE NonOSS Addon
@@ -26,9 +26,9 @@
Group: System/Fhs
Provides: %name-%version
Provides: product() = openSUSE%2DAddon%2DNonOss
-Provides: product(openSUSE-Addon-NonOss) = 20240604-0
+Provides: product(openSUSE-Addon-NonOss) = 20240605-0
Provides: product-label() = non%20oss%20addon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20240604
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20240605
@@ -48,10 +48,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20240604</version>
+ <version>20240605</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20240604</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20240605</cpeid>
<register>
<pool>
</pool>
++++++ openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.8efgLa/_old 2024-06-05 18:41:31.859788028 +0200
+++ /var/tmp/diff_new_pack.8efgLa/_new 2024-06-05 18:41:31.859788028 +0200
@@ -20,7 +20,7 @@
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
-Version: 20240604
+Version: 20240605
Release: 0
# 0 is the product release, not the build release of this package
Summary: openSUSE Tumbleweed
@@ -185,7 +185,7 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = openSUSE
-Provides: product(openSUSE) = 20240604-0
+Provides: product(openSUSE) = 20240605-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
@@ -199,7 +199,7 @@
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20240604
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20240605
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)
@@ -213,7 +213,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description ftp
@@ -228,7 +228,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(mini)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description mini
@@ -243,7 +243,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description dvd
@@ -258,7 +258,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-kde)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-kde
@@ -273,7 +273,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-x11)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-x11
@@ -288,7 +288,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-gnome)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-gnome
@@ -303,7 +303,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-xfce)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-xfce
@@ -318,7 +318,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-kde)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-kde
@@ -333,7 +333,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-gnome)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-gnome
@@ -348,7 +348,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-x11)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-x11
@@ -363,7 +363,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance
@@ -378,7 +378,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-docker)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-docker
@@ -393,7 +393,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-kvm)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-kvm
@@ -408,7 +408,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vmware)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vmware
@@ -423,7 +423,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-openstack)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-openstack
@@ -438,7 +438,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-hyperv)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-hyperv
@@ -453,7 +453,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vagrant)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vagrant
@@ -468,7 +468,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-wsl)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-wsl
@@ -483,7 +483,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-custom)
-Provides: product_flavor(openSUSE) = 20240604-0
+Provides: product_flavor(openSUSE) = 20240605-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-custom
@@ -566,10 +566,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20240604</version>
+ <version>20240605</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20240604</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20240605</cpeid>
<productline>openSUSE</productline>
<register>
<target>openSUSE-Tumbleweed-x86_64</target>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gearlever for openSUSE:Factory checked in at 2024-06-05 17:43:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gearlever (Old)
and /work/SRC/openSUSE:Factory/.gearlever.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gearlever"
Wed Jun 5 17:43:00 2024 rev:3 rq:1178722 version:1.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gearlever/gearlever.changes 2024-05-11 18:24:17.972990713 +0200
+++ /work/SRC/openSUSE:Factory/.gearlever.new.24587/gearlever.changes 2024-06-05 17:43:41.232917676 +0200
@@ -1,0 +2,9 @@
+Tue Jun 04 21:08:56 UTC 2024 - Rodrigo Pedra Brum <rodrigo.pedra(a)gmail.com>
+
+- Update to 1.6.0
+ * Improved app analysis performance
+ * Improved debug logs
+ * Fixed some issues with special characters in filenames
+- Drop 0001-Rename-icon-with-generic-name-that-conflicts-with-an.patch
+
+-------------------------------------------------------------------
Old:
----
0001-Rename-icon-with-generic-name-that-conflicts-with-an.patch
gearlever-1.5.2.tar.gz
New:
----
gearlever-1.6.0.tar.gz
BETA DEBUG BEGIN:
Old: * Fixed some issues with special characters in filenames
- Drop 0001-Rename-icon-with-generic-name-that-conflicts-with-an.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gearlever.spec ++++++
--- /var/tmp/diff_new_pack.SHoTFE/_old 2024-06-05 17:43:41.936943316 +0200
+++ /var/tmp/diff_new_pack.SHoTFE/_new 2024-06-05 17:43:41.940943461 +0200
@@ -18,14 +18,13 @@
%define appid it.mijorus.gearlever
Name: gearlever
-Version: 1.5.2
+Version: 1.6.0
Release: 0
Summary: Manage AppImages
License: GPL-3.0-or-later
URL: https://gearlever.mijorus.it/
Source: https://github.com/mijorus/gearlever/archive/refs/tags/%{version}.tar.gz#/%…
# PATCH-FIX-UPSTREAM: https://github.com/mijorus/gearlever/pull/80
-Patch1: 0001-Rename-icon-with-generic-name-that-conflicts-with-an.patch
Group: System/X11/Utilities
BuildArch: noarch
BuildRequires: fdupes
++++++ gearlever-1.5.2.tar.gz -> gearlever-1.6.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/gearlever/gearlever-1.5.2.tar.gz /work/SRC/openSUSE:Factory/.gearlever.new.24587/gearlever-1.6.0.tar.gz differ: char 13, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package host-spawn for openSUSE:Factory checked in at 2024-06-05 17:42:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/host-spawn (Old)
and /work/SRC/openSUSE:Factory/.host-spawn.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "host-spawn"
Wed Jun 5 17:42:52 2024 rev:3 rq:1178700 version:1.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/host-spawn/host-spawn.changes 2024-05-01 14:57:52.369000849 +0200
+++ /work/SRC/openSUSE:Factory/.host-spawn.new.24587/host-spawn.changes 2024-06-05 17:43:31.692570240 +0200
@@ -1,0 +2,7 @@
+Tue Jun 04 14:39:54 UTC 2024 - michal.vyskocil(a)gmail.com
+
+- Update to version v1.6.0:
+ * Add -cwd flag to change the working directory of the spawned process.
+ Thanks @someone13574.
+
+-------------------------------------------------------------------
Old:
----
host-spawn-1.5.1.tar.zst
New:
----
host-spawn-v1.6.0.tar.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ host-spawn.spec ++++++
--- /var/tmp/diff_new_pack.6jZeJG/_old 2024-06-05 17:43:32.532600833 +0200
+++ /var/tmp/diff_new_pack.6jZeJG/_new 2024-06-05 17:43:32.536600978 +0200
@@ -17,21 +17,22 @@
Name: host-spawn
-Version: 1.5.1
+Version: 1.6.0
Release: 0
Summary: A reimplementation of flatpak-spawn --host
License: MIT-0
URL: https://github.com/1player/host-spawn
-Source0: %{name}-%{version}.tar.zst
+Source0: %{name}-v%{version}.tar.zst
Source1: vendor.tar.zst
-BuildRequires: zstd
+# Go packaging wiki suggests golang-packaging, but this does not work on 15.5
BuildRequires: golang(API) >= 1.18
+BuildRequires: zstd
%description
Run commands on your host machine from inside your flatpak sandbox, toolbox or distrobox containers.
%prep
-%autosetup -p1 -a1
+%autosetup -p1 -a1 -n %{name}-v%{version}
%build
# https://github.com/1player/host-spawn/blob/master/build.sh#L22
++++++ _service ++++++
--- /var/tmp/diff_new_pack.6jZeJG/_old 2024-06-05 17:43:32.584602726 +0200
+++ /var/tmp/diff_new_pack.6jZeJG/_new 2024-06-05 17:43:32.588602872 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/1player/host-spawn</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">1.5.1</param>
+ <param name="revision">v1.6.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.6jZeJG/_old 2024-06-05 17:43:32.616603891 +0200
+++ /var/tmp/diff_new_pack.6jZeJG/_new 2024-06-05 17:43:32.620604037 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/1player/host-spawn</param>
- <param name="changesrevision">d1b5a7092d604f8467bc57a5470c3e25969da196</param></service></servicedata>
+ <param name="changesrevision">e150d2cf98d93e08db9fba7a87cabc51a9c9e34a</param></service></servicedata>
(No newline at EOF)
++++++ vendor.tar.zst ++++++
++++ 1661 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ocrs for openSUSE:Factory checked in at 2024-06-05 17:42:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ocrs (Old)
and /work/SRC/openSUSE:Factory/.ocrs.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocrs"
Wed Jun 5 17:42:49 2024 rev:3 rq:1178678 version:0.8.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ocrs/ocrs.changes 2024-05-20 18:14:24.640417779 +0200
+++ /work/SRC/openSUSE:Factory/.ocrs.new.24587/ocrs.changes 2024-06-05 17:43:29.920505706 +0200
@@ -1,0 +2,11 @@
+Wed Jun 5 07:53:14 UTC 2024 - Muhammad Akbar Yanuar Mantari <mantarimay(a)pm.me>
+
+- Update to version 0.8.0
+ * Updated rten to v0.10.0: This improves performance when
+ recognizing long lines of text and improves efficiency by
+ setting the number of threads to match the number of physical
+ cores.
+ * Errors that occur when running the text recognition model are
+ now propagated to the caller instead of causing a panic.
+
+-------------------------------------------------------------------
Old:
----
ocrs-ocrs-v0.7.0.tar.gz
New:
----
ocrs-ocrs-v0.8.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ocrs.spec ++++++
--- /var/tmp/diff_new_pack.GJtFtM/_old 2024-06-05 17:43:30.872540377 +0200
+++ /var/tmp/diff_new_pack.GJtFtM/_new 2024-06-05 17:43:30.876540523 +0200
@@ -22,7 +22,7 @@
%bcond_without test
%endif
Name: ocrs
-Version: 0.7.0
+Version: 0.8.0
Release: 0
Summary: A modern OCR engine written in Rust
License: Apache-2.0 AND MIT
++++++ ocrs-ocrs-v0.7.0.tar.gz -> ocrs-ocrs-v0.8.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/CHANGELOG.md new/ocrs-ocrs-v0.8.0/CHANGELOG.md
--- old/ocrs-ocrs-v0.7.0/CHANGELOG.md 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/CHANGELOG.md 2024-05-25 10:41:11.000000000 +0200
@@ -5,6 +5,26 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.8.0] - 2024-05-25
+
+### Breaking changes
+
+This release changes Ocrs's internal use of threads, which may affect consumers
+that are using their own parallelism. Specifically Ocrs no longer uses the
+global Rayon thread pool but instead a custom thread pool which is sized to
+match the number of physical rather than logical cores. See
+https://github.com/robertknight/ocrs/pull/79 for more details and information on
+adapting.
+
+### Changes
+
+- Updated rten to v0.10.0. This improves performance when recognizing long lines
+ of text (https://github.com/robertknight/ocrs/pull/79) and improves efficiency
+ by setting the number of threads to match the number of physical cores.
+
+- Errors that occur when running the text recognition model are now propagated
+ to the caller instead of causing a panic (https://github.com/robertknight/ocrs/pull/77)
+
## [0.7.0] - 2024-05-16
### Breaking changes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/Cargo.lock new/ocrs-ocrs-v0.8.0/Cargo.lock
--- old/ocrs-ocrs-v0.7.0/Cargo.lock 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/Cargo.lock 2024-05-25 10:41:11.000000000 +0200
@@ -173,6 +173,12 @@
]
[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
name = "home"
version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -266,8 +272,18 @@
]
[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
name = "ocrs"
-version = "0.7.0"
+version = "0.8.0"
dependencies = [
"anyhow",
"fastrand",
@@ -283,7 +299,7 @@
[[package]]
name = "ocrs-cli"
-version = "0.7.0"
+version = "0.8.0"
dependencies = [
"anyhow",
"home",
@@ -378,13 +394,15 @@
[[package]]
name = "rten"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb9d6d80601e57cab46f477955be6e3be1a4c92ed0aebb3376e1f19d24e83bb1"
+checksum = "09c030cdf90e64c5eeeba389ca59da14b0a106b1b8366c15591251bb6a2e777f"
dependencies = [
"flatbuffers",
"libm",
+ "num_cpus",
"rayon",
+ "rten-simd",
"rten-tensor",
"rten-vecmath",
"rustc-hash",
@@ -394,27 +412,36 @@
[[package]]
name = "rten-imageproc"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "529fdef25f8232ebb08fb6cfc785ec97a7fb268bebc4895e36e8750e2bbeaa51"
+checksum = "5ba61077269b2b2c90445bfd55fb798dcd544b56e7fd78faaea51940b8e429ae"
dependencies = [
"rten-tensor",
]
[[package]]
+name = "rten-simd"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eb16da64e0d08ce56dc17d8304ab2da541176ee30430c0b0e581a7841a660ae"
+
+[[package]]
name = "rten-tensor"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffa78180a98337a43163e9da8f202120e9ae3b82366cccfb05a5a854e48cd581"
+checksum = "52f5e53d2e43bb736e89e4ea41b707e024190f8ba47c3eddf5a3c2d022089909"
dependencies = [
"smallvec",
]
[[package]]
name = "rten-vecmath"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "495f48d459768d61ca37b418f79ac7aac3a707024c79fa49a14dd2c1ad8a2c0e"
+checksum = "56eccc46a7e7a2df2cebb7ba95e613a01942a01e0f2f2f7d6122176ab7372e9f"
+dependencies = [
+ "rten-simd",
+]
[[package]]
name = "rustc-hash"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/Cargo.toml new/ocrs-ocrs-v0.8.0/Cargo.toml
--- old/ocrs-ocrs-v0.7.0/Cargo.toml 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/Cargo.toml 2024-05-25 10:41:11.000000000 +0200
@@ -4,3 +4,8 @@
"ocrs",
"ocrs-cli",
]
+
+[workspace.dependencies]
+rten = { version = "0.10.0" }
+rten-imageproc = { version = "0.10.0" }
+rten-tensor = { version = "0.10.0" }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/Makefile new/ocrs-ocrs-v0.8.0/Makefile
--- old/ocrs-ocrs-v0.7.0/Makefile 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/Makefile 2024-05-25 10:41:11.000000000 +0200
@@ -41,5 +41,12 @@
wasm-bindgen target/wasm32-unknown-unknown/release/ocrs.wasm --out-dir js/dist/ --target web --reference-types --weak-refs
tools/optimize-wasm.sh js/dist/ocrs_bg.wasm
+# Build Ocrs CLI for non-browser WebAssembly runtimes (eg. wasmtime). Run using:
+#
+# wasmtime --dir . target/wasm32-wasi/release/ocrs.wasm --detect-model text-detection.rten --rec-model text-recognition.rten ocrs-cli/test-data/why-rust.png
+.PHONY: wasm-wasi
+wasm-wasi:
+ RUSTFLAGS="-C target-feature=+simd128" cargo build --release --target wasm32-wasi --package ocrs-cli
+
.PHONY: wasm-all
wasm-all: wasm wasm-nosimd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/ocrs/Cargo.toml new/ocrs-ocrs-v0.8.0/ocrs/Cargo.toml
--- old/ocrs-ocrs-v0.7.0/ocrs/Cargo.toml 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/ocrs/Cargo.toml 2024-05-25 10:41:11.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "ocrs"
-version = "0.7.0"
+version = "0.8.0"
edition = "2021"
authors = ["Robert Knight"]
description = "OCR engine"
@@ -11,9 +11,9 @@
[dependencies]
anyhow = "1.0.80"
rayon = "1.10.0"
-rten = { version = "0.9.0" }
-rten-imageproc = { version = "0.9.0" }
-rten-tensor = { version = "0.9.0" }
+rten = { workspace = true }
+rten-imageproc = { workspace = true }
+rten-tensor = { workspace = true }
thiserror = "1.0.59"
[target.'cfg(target_arch = "wasm32")'.dependencies]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/ocrs/src/errors.rs new/ocrs-ocrs-v0.8.0/ocrs/src/errors.rs
--- old/ocrs-ocrs-v0.7.0/ocrs/src/errors.rs 1970-01-01 01:00:00.000000000 +0100
+++ new/ocrs-ocrs-v0.8.0/ocrs/src/errors.rs 2024-05-25 10:41:11.000000000 +0200
@@ -0,0 +1,25 @@
+use std::error::Error;
+use std::fmt;
+
+/// The error type returned when running a machine learning model fails.
+#[derive(Debug)]
+pub enum ModelRunError {
+ /// Model execution failed.
+ RunFailed(Box<dyn Error + Send + Sync>),
+
+ /// The model output had a different data type or shape than expected.
+ WrongOutput,
+}
+
+impl fmt::Display for ModelRunError {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
+ match self {
+ ModelRunError::RunFailed(err) => write!(f, "model run failed: {}", err),
+ ModelRunError::WrongOutput => {
+ write!(f, "model output had unexpected type or shape")
+ }
+ }
+ }
+}
+
+impl Error for ModelRunError {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/ocrs/src/lib.rs new/ocrs-ocrs-v0.8.0/ocrs/src/lib.rs
--- old/ocrs-ocrs-v0.7.0/ocrs/src/lib.rs 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/ocrs/src/lib.rs 2024-05-25 10:41:11.000000000 +0200
@@ -5,6 +5,7 @@
use rten_tensor::NdTensor;
mod detection;
+mod errors;
mod geom_util;
mod layout_analysis;
mod log;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/ocrs/src/recognition.rs new/ocrs-ocrs-v0.8.0/ocrs/src/recognition.rs
--- old/ocrs-ocrs-v0.7.0/ocrs/src/recognition.rs 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/ocrs/src/recognition.rs 2024-05-25 10:41:11.000000000 +0200
@@ -3,13 +3,14 @@
use anyhow::anyhow;
use rayon::prelude::*;
use rten::ctc::{CtcDecoder, CtcHypothesis};
-use rten::{Dimension, FloatOperators, Model, NodeId};
+use rten::{thread_pool, Dimension, FloatOperators, Model, NodeId};
use rten_imageproc::{
bounding_rect, BoundingRect, Line, Point, PointF, Polygon, Rect, RotatedRect,
};
use rten_tensor::prelude::*;
use rten_tensor::{NdTensor, NdTensorView, Tensor};
+use crate::errors::ModelRunError;
use crate::geom_util::{downwards_line, leftmost_edge, rightmost_edge};
use crate::preprocess::BLACK_VALUE;
use crate::text_items::{TextChar, TextLine};
@@ -359,12 +360,14 @@
/// Run text recognition on an NCHW batch of text line images, and return
/// a `[batch, seq, label]` tensor of class probabilities.
- fn run(&self, input: NdTensor<f32, 4>) -> anyhow::Result<NdTensor<f32, 3>> {
+ fn run(&self, input: NdTensor<f32, 4>) -> Result<NdTensor<f32, 3>, ModelRunError> {
let input: Tensor<f32> = input.into();
- let [output] =
- self.model
- .run_n(&[(self.input_id, (&input).into())], [self.output_id], None)?;
- let mut rec_sequence: NdTensor<f32, 3> = output.try_into()?;
+ let [output] = self
+ .model
+ .run_n(&[(self.input_id, (&input).into())], [self.output_id], None)
+ .map_err(|err| ModelRunError::RunFailed(err.into()))?;
+ let mut rec_sequence: NdTensor<f32, 3> =
+ output.try_into().map_err(|_| ModelRunError::WrongOutput)?;
// Transpose from [seq, batch, class] => [batch, seq, class]
rec_sequence.permute([1, 0, 2]);
@@ -470,52 +473,59 @@
.collect();
// Run text recognition on batches of lines.
- let mut line_rec_results: Vec<LineRecResult> = line_groups
- .into_par_iter()
- .flat_map(|(group_width, lines)| {
- if debug {
- println!(
- "Processing group of {} lines of width {}",
- lines.len(),
- group_width,
- );
- }
-
- let rec_input = prepare_text_line_batch(
- &image,
- &lines,
- page_rect,
- rec_img_height as usize,
- group_width as usize,
- );
-
- // TODO - Propagate errors from recognition model to caller.
- let rec_output = self.run(rec_input).expect("recognition failed");
- let ctc_input_len = rec_output.shape()[1];
-
- // Apply CTC decoding to get the label sequence for each line.
- lines
- .into_iter()
- .enumerate()
- .map(|(group_line_index, line)| {
- let decoder = CtcDecoder::new();
- let input_seq = rec_output.slice([group_line_index]);
- let ctc_output = match decode_method {
- DecodeMethod::Greedy => decoder.decode_greedy(input_seq),
- DecodeMethod::BeamSearch { width } => {
- decoder.decode_beam(input_seq, width)
- }
- };
- LineRecResult {
- line,
- rec_input_len: group_width as usize,
- ctc_input_len,
- ctc_output,
+ let batch_rec_results: Result<Vec<Vec<LineRecResult>>, ModelRunError> =
+ thread_pool().run(|| {
+ line_groups
+ .into_par_iter()
+ .map(|(group_width, lines)| {
+ if debug {
+ println!(
+ "Processing group of {} lines of width {}",
+ lines.len(),
+ group_width,
+ );
}
+
+ let rec_input = prepare_text_line_batch(
+ &image,
+ &lines,
+ page_rect,
+ rec_img_height as usize,
+ group_width as usize,
+ );
+
+ let rec_output = self.run(rec_input)?;
+ let ctc_input_len = rec_output.shape()[1];
+
+ // Apply CTC decoding to get the label sequence for each line.
+ let line_rec_results = lines
+ .into_iter()
+ .enumerate()
+ .map(|(group_line_index, line)| {
+ let decoder = CtcDecoder::new();
+ let input_seq = rec_output.slice([group_line_index]);
+ let ctc_output = match decode_method {
+ DecodeMethod::Greedy => decoder.decode_greedy(input_seq),
+ DecodeMethod::BeamSearch { width } => {
+ decoder.decode_beam(input_seq, width)
+ }
+ };
+ LineRecResult {
+ line,
+ rec_input_len: group_width as usize,
+ ctc_input_len,
+ ctc_output,
+ }
+ })
+ .collect::<Vec<_>>();
+
+ Ok(line_rec_results)
})
- .collect::<Vec<_>>()
- })
- .collect();
+ .collect()
+ });
+
+ let mut line_rec_results: Vec<LineRecResult> =
+ batch_rec_results?.into_iter().flatten().collect();
// The recognition outputs are in a different order than the inputs due to
// batching and parallel processing. Re-sort them into input order.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/ocrs-cli/Cargo.toml new/ocrs-ocrs-v0.8.0/ocrs-cli/Cargo.toml
--- old/ocrs-ocrs-v0.7.0/ocrs-cli/Cargo.toml 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/ocrs-cli/Cargo.toml 2024-05-25 10:41:11.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "ocrs-cli"
-version = "0.7.0"
+version = "0.8.0"
edition = "2021"
authors = ["Robert Knight"]
description = "OCR CLI tool for extracting text from images"
@@ -12,16 +12,18 @@
image = { version = "0.25.1", default-features = false, features = ["png", "jpeg", "webp"] }
png = "0.17.6"
serde_json = "1.0.116"
-rten = { version = "0.9.0" }
-rten-imageproc = { version = "0.9.0" }
-rten-tensor = { version = "0.9.0" }
-ocrs = { path = "../ocrs", version = "0.7.0" }
+rten = { workspace = true }
+rten-imageproc = { workspace = true }
+rten-tensor = { workspace = true }
+ocrs = { path = "../ocrs", version = "0.8.0" }
lexopt = "0.3.0"
-ureq = "2.9.7"
url = "2.4.0"
-home = "0.5.9"
anyhow = "1.0.79"
+[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
+ureq = "2.9.7"
+home = "0.5.9"
+
[features]
# Use AVX-512 instructions if available. Requires nightly Rust.
avx512 = ["rten/avx512"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocrs-ocrs-v0.7.0/ocrs-cli/src/models.rs new/ocrs-ocrs-v0.8.0/ocrs-cli/src/models.rs
--- old/ocrs-ocrs-v0.7.0/ocrs-cli/src/models.rs 2024-05-16 10:41:41.000000000 +0200
+++ new/ocrs-ocrs-v0.8.0/ocrs-cli/src/models.rs 2024-05-25 10:41:11.000000000 +0200
@@ -1,13 +1,18 @@
use std::fmt;
-use std::fs;
-use std::path::{Path, PathBuf};
+use std::path::PathBuf;
+
+#[cfg(not(target_arch = "wasm32"))]
+use std::{fs, path::Path};
use anyhow::anyhow;
use rten::Model;
+
+#[cfg(not(target_arch = "wasm32"))]
use url::Url;
/// Return the path to the directory in which cached models etc. should be
/// saved.
+#[cfg(not(target_arch = "wasm32"))]
fn cache_dir() -> Result<PathBuf, anyhow::Error> {
let mut cache_dir: PathBuf =
home::home_dir().ok_or(anyhow!("Failed to determine home directory"))?;
@@ -22,6 +27,7 @@
/// Extract the last path segment from a URL.
///
/// eg. "https://models.com/text-detection.rten" => "text-detection.rten".
+#[cfg(not(target_arch = "wasm32"))]
#[allow(rustdoc::bare_urls)]
fn filename_from_url(url: &str) -> Option<String> {
let parsed = Url::parse(url).ok()?;
@@ -33,6 +39,7 @@
/// Download a file from `url` to a local cache, if not already fetched, and
/// return the path to the local file.
+#[cfg(not(target_arch = "wasm32"))]
fn download_file(url: &str, filename: Option<&str>) -> Result<PathBuf, anyhow::Error> {
let cache_dir = cache_dir()?;
let filename = match filename {
@@ -55,6 +62,13 @@
Ok(file_path)
}
+#[cfg(target_arch = "wasm32")]
+fn download_file(_url: &str, _filename: Option<&str>) -> Result<PathBuf, anyhow::Error> {
+ Err(anyhow!(
+ "Downloading models from a URL is not supported on the current platform"
+ ))
+}
+
/// Location that a model can be loaded from.
#[derive(Clone, Copy)]
pub enum ModelSource<'a> {
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/ocrs/vendor.tar.zst /work/SRC/openSUSE:Factory/.ocrs.new.24587/vendor.tar.zst differ: char 255581, line 1058
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ast-grep for openSUSE:Factory checked in at 2024-06-05 17:42:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ast-grep (Old)
and /work/SRC/openSUSE:Factory/.ast-grep.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ast-grep"
Wed Jun 5 17:42:45 2024 rev:25 rq:1178664 version:0.22.6+0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ast-grep/ast-grep.changes 2024-06-03 17:44:29.097283602 +0200
+++ /work/SRC/openSUSE:Factory/.ast-grep.new.24587/ast-grep.changes 2024-06-05 17:43:27.120403733 +0200
@@ -1,0 +2,9 @@
+Wed Jun 5 06:17:51 UTC 2024 - Michael Vetter <mvetter(a)suse.com>
+
+- Update to 0.22.6:
+ * fix: add Edit to export list #1186
+ * feat: add modify edit range feature in pyo3 1e31253
+ * test: add test for modifying edit 7044811
+ * fix: addClass Edit in pyo3 d81c6c3
+
+-------------------------------------------------------------------
Old:
----
ast-grep-0.22.5+0.tar.zst
New:
----
ast-grep-0.22.6+0.tar.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ast-grep.spec ++++++
--- /var/tmp/diff_new_pack.mQ89zG/_old 2024-06-05 17:43:28.904468705 +0200
+++ /var/tmp/diff_new_pack.mQ89zG/_new 2024-06-05 17:43:28.908468851 +0200
@@ -17,7 +17,7 @@
Name: ast-grep
-Version: 0.22.5+0
+Version: 0.22.6+0
Release: 0
Summary: A CLI tool for code structural search, lint and rewriting
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.mQ89zG/_old 2024-06-05 17:43:28.956470599 +0200
+++ /var/tmp/diff_new_pack.mQ89zG/_new 2024-06-05 17:43:28.964470890 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/ast-grep/ast-grep.git</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="scm">git</param>
- <param name="revision">0.22.5</param>
+ <param name="revision">0.22.6</param>
<param name="match-tag">*</param>
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
<param name="versionrewrite-replacement">\1</param>
++++++ ast-grep-0.22.5+0.tar.zst -> ast-grep-0.22.6+0.tar.zst ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/CHANGELOG.md new/ast-grep-0.22.6+0/CHANGELOG.md
--- old/ast-grep-0.22.5+0/CHANGELOG.md 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/CHANGELOG.md 2024-06-05 03:00:51.000000000 +0200
@@ -4,8 +4,17 @@
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
+#### [0.22.6](https://github.com/ast-grep/ast-grep/compare/0.22.5...0.22.6)
+
+- fix: add Edit to export list [`#1186`](https://github.com/ast-grep/ast-grep/issues/1186)
+- feat: add modify edit range feature in pyo3 [`1e31253`](https://github.com/ast-grep/ast-grep/commit/1e312535a41886c7ba811a9bb0d1a797ec5c403b)
+- test: add test for modifying edit [`7044811`](https://github.com/ast-grep/ast-grep/commit/7044811ad89e673d5f8803ae2ddda472c84ecf1e)
+- fix: addClass Edit in pyo3 [`d81c6c3`](https://github.com/ast-grep/ast-grep/commit/d81c6c32e4fb9f1f7d9b2d9050b46efa4ad6e4e8)
+
#### [0.22.5](https://github.com/ast-grep/ast-grep/compare/0.22.4...0.22.5)
+> 2 June 2024
+
- feat: support all languages in napi [`#1170`](https://github.com/ast-grep/ast-grep/issues/1170)
- **Breaking change:** refactor: rename Frontend Language to Lang [`c582c16`](https://github.com/ast-grep/ast-grep/commit/c582c164028bbdafa9fffab7c5fdadf37170af5e)
- refactor: move find files operations to standalone files [`8ebb888`](https://github.com/ast-grep/ast-grep/commit/8ebb8881ccf5a3615cc91e39b32f0fde7efc4c1f)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/Cargo.lock new/ast-grep-0.22.6+0/Cargo.lock
--- old/ast-grep-0.22.5+0/Cargo.lock 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/Cargo.lock 2024-06-05 03:00:51.000000000 +0200
@@ -113,7 +113,7 @@
[[package]]
name = "ast-grep"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"ansi_term",
"anyhow",
@@ -144,7 +144,7 @@
[[package]]
name = "ast-grep-config"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"anyhow",
"ast-grep-core",
@@ -160,7 +160,7 @@
[[package]]
name = "ast-grep-core"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"bit-set",
"regex",
@@ -171,7 +171,7 @@
[[package]]
name = "ast-grep-dynamic"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"ast-grep-core",
"ignore",
@@ -183,7 +183,7 @@
[[package]]
name = "ast-grep-language"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"ast-grep-core",
"ignore",
@@ -214,7 +214,7 @@
[[package]]
name = "ast-grep-lsp"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"ast-grep-config",
"ast-grep-core",
@@ -228,7 +228,7 @@
[[package]]
name = "ast-grep-napi"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"ast-grep-config",
"ast-grep-core",
@@ -247,7 +247,7 @@
[[package]]
name = "ast-grep-py"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"anyhow",
"ast-grep-config",
@@ -313,7 +313,7 @@
[[package]]
name = "benches"
-version = "0.22.5"
+version = "0.22.6"
dependencies = [
"ast-grep-config",
"ast-grep-core",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/Cargo.toml new/ast-grep-0.22.6+0/Cargo.toml
--- old/ast-grep-0.22.5+0/Cargo.toml 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/Cargo.toml 2024-06-05 03:00:51.000000000 +0200
@@ -11,7 +11,7 @@
lto = true
[workspace.package]
-version = "0.22.5"
+version = "0.22.6"
authors = ["Herrington Darkholme <2883231+HerringtonDarkholme(a)users.noreply.github.com>"]
edition = "2021"
license = "MIT"
@@ -22,11 +22,11 @@
readme = "README.md"
[workspace.dependencies]
-ast-grep-core = { path = "crates/core", version = "0.22.5" }
-ast-grep-config = { path = "crates/config", version = "0.22.5" }
-ast-grep-dynamic = { path = "crates/dynamic", version = "0.22.5" }
-ast-grep-language = { path = "crates/language", version = "0.22.5" }
-ast-grep-lsp = { path = "crates/lsp", version = "0.22.5" }
+ast-grep-core = { path = "crates/core", version = "0.22.6" }
+ast-grep-config = { path = "crates/config", version = "0.22.6" }
+ast-grep-dynamic = { path = "crates/dynamic", version = "0.22.6" }
+ast-grep-language = { path = "crates/language", version = "0.22.6" }
+ast-grep-lsp = { path = "crates/lsp", version = "0.22.6" }
bit-set = { version = "0.5.3" }
ignore = { version = "0.4.22" }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/__test__/index.spec.ts new/ast-grep-0.22.6+0/crates/napi/__test__/index.spec.ts
--- old/ast-grep-0.22.5+0/crates/napi/__test__/index.spec.ts 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/__test__/index.spec.ts 2024-06-05 03:00:51.000000000 +0200
@@ -112,6 +112,16 @@
t.deepEqual(newCode, 'いいよ = log(114514) + log(114514)')
})
+test('test code fix with user defined range', t => {
+ const sg = parse('いいよ = log(123)')
+ const match = sg.root().find(js.kind('number'))!
+ const edit = match.replace('514')
+ edit.position -= 1
+ edit.deletedLength += 2
+ const newCode = sg.root().commitEdits([edit])
+ t.deepEqual(newCode, 'いいよ = log514')
+})
+
test('findAll from native code', t => {
const sg = parse('console.log(123); let a = console.log.bind(console);')
const match = sg.root().findAll('console.log')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/npm/darwin-arm64/package.json new/ast-grep-0.22.6+0/crates/napi/npm/darwin-arm64/package.json
--- old/ast-grep-0.22.5+0/crates/napi/npm/darwin-arm64/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/npm/darwin-arm64/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi-darwin-arm64",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"darwin"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/npm/darwin-x64/package.json new/ast-grep-0.22.6+0/crates/napi/npm/darwin-x64/package.json
--- old/ast-grep-0.22.5+0/crates/napi/npm/darwin-x64/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/npm/darwin-x64/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi-darwin-x64",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"darwin"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/npm/linux-arm64-gnu/package.json new/ast-grep-0.22.6+0/crates/napi/npm/linux-arm64-gnu/package.json
--- old/ast-grep-0.22.5+0/crates/napi/npm/linux-arm64-gnu/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/npm/linux-arm64-gnu/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi-linux-arm64-gnu",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"linux"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/npm/linux-x64-gnu/package.json new/ast-grep-0.22.6+0/crates/napi/npm/linux-x64-gnu/package.json
--- old/ast-grep-0.22.5+0/crates/napi/npm/linux-x64-gnu/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/npm/linux-x64-gnu/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi-linux-x64-gnu",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"linux"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/npm/linux-x64-musl/package.json new/ast-grep-0.22.6+0/crates/napi/npm/linux-x64-musl/package.json
--- old/ast-grep-0.22.5+0/crates/napi/npm/linux-x64-musl/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/npm/linux-x64-musl/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi-linux-x64-musl",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"linux"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/npm/win32-arm64-msvc/package.json new/ast-grep-0.22.6+0/crates/napi/npm/win32-arm64-msvc/package.json
--- old/ast-grep-0.22.5+0/crates/napi/npm/win32-arm64-msvc/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/npm/win32-arm64-msvc/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi-win32-arm64-msvc",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"win32"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/npm/win32-ia32-msvc/package.json new/ast-grep-0.22.6+0/crates/napi/npm/win32-ia32-msvc/package.json
--- old/ast-grep-0.22.5+0/crates/napi/npm/win32-ia32-msvc/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/npm/win32-ia32-msvc/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi-win32-ia32-msvc",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"win32"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/npm/win32-x64-msvc/package.json new/ast-grep-0.22.6+0/crates/napi/npm/win32-x64-msvc/package.json
--- old/ast-grep-0.22.5+0/crates/napi/npm/win32-x64-msvc/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/npm/win32-x64-msvc/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi-win32-x64-msvc",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"win32"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/napi/package.json new/ast-grep-0.22.6+0/crates/napi/package.json
--- old/ast-grep-0.22.5+0/crates/napi/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/napi/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/napi",
- "version": "0.22.5",
+ "version": "0.22.6",
"description": "Search and Rewrite code at large scale using precise AST pattern",
"homepage": "https://ast-grep.github.io",
"main": "index.js",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/pyo3/ast_grep_py/__init__.py new/ast-grep-0.22.6+0/crates/pyo3/ast_grep_py/__init__.py
--- old/ast-grep-0.22.5+0/crates/pyo3/ast_grep_py/__init__.py 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/pyo3/ast_grep_py/__init__.py 2024-06-05 03:00:51.000000000 +0200
@@ -1,7 +1,7 @@
from __future__ import annotations
from typing import List, TypedDict, Literal, Dict, Union, Mapping
-from .ast_grep_py import SgNode, SgRoot, Pos, Range
+from .ast_grep_py import SgNode, SgRoot, Pos, Range, Edit
class Pattern(TypedDict):
selector: str
@@ -55,4 +55,5 @@
"SgRoot",
"Pos",
"Range",
+ "Edit",
]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/pyo3/pyproject.toml new/ast-grep-0.22.6+0/crates/pyo3/pyproject.toml
--- old/ast-grep-0.22.5+0/crates/pyo3/pyproject.toml 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/pyo3/pyproject.toml 2024-06-05 03:00:51.000000000 +0200
@@ -5,7 +5,7 @@
[project]
name = "ast-grep-py"
requires-python = ">=3.8"
-version = "0.22.5"
+version = "0.22.6"
description = "Structural Search and Rewrite code at large scale using precise AST pattern."
authors = [{ name = "Herrington Darkholme", email = "2883231+HerringtonDarkholme(a)users.noreply.github.com" }]
maintainers = [{ name = "Herrington Darkholme", email = "2883231+HerringtonDarkholme(a)users.noreply.github.com" }]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/pyo3/src/lib.rs new/ast-grep-0.22.6+0/crates/pyo3/src/lib.rs
--- old/ast-grep-0.22.5+0/crates/pyo3/src/lib.rs 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/pyo3/src/lib.rs 2024-06-05 03:00:51.000000000 +0200
@@ -3,7 +3,7 @@
mod py_node;
mod range;
mod unicode_position;
-use py_node::SgNode;
+use py_node::{Edit, SgNode};
use range::{Pos, Range};
use ast_grep_core::{AstGrep, Language, NodeMatch, StrDoc};
@@ -19,6 +19,7 @@
m.add_class::<SgNode>()?;
m.add_class::<Range>()?;
m.add_class::<Pos>()?;
+ m.add_class::<Edit>()?;
Ok(())
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/pyo3/src/py_node.rs new/ast-grep-0.22.6+0/crates/pyo3/src/py_node.rs
--- old/ast-grep-0.22.5+0/crates/pyo3/src/py_node.rs 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/pyo3/src/py_node.rs 2024-06-05 03:00:51.000000000 +0200
@@ -371,7 +371,7 @@
Ok(matcher)
}
-#[pyclass(frozen, get_all)]
+#[pyclass(get_all, set_all)]
#[derive(Clone, PartialEq, Eq, Hash)]
pub struct Edit {
/// The char position of the edit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/crates/pyo3/tests/test_fix.py new/ast-grep-0.22.6+0/crates/pyo3/tests/test_fix.py
--- old/ast-grep-0.22.5+0/crates/pyo3/tests/test_fix.py 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/crates/pyo3/tests/test_fix.py 2024-06-05 03:00:51.000000000 +0200
@@ -38,4 +38,15 @@
nodes = root.find_all(kind="identifier")
edits = [node.replace('114514') for node in nodes]
s = root.commit_edits(edits)
- assert s == "114514 = 114514(114514)"
\ No newline at end of file
+ assert s == "114514 = 114514(114514)"
+
+def test_modified_fix():
+ sg = SgRoot('いいよ = log(514)', "javascript")
+ root = sg.root()
+ node = root.find(kind="number")
+ assert node
+ edit = node.replace('こいよ')
+ edit.position -= 1
+ edit.deleted_length += 2
+ s = root.commit_edits([edit])
+ assert s == "いいよ = logこいよ"
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/npm/package.json new/ast-grep-0.22.6+0/npm/package.json
--- old/ast-grep-0.22.5+0/npm/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/npm/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/cli",
- "version": "0.22.5",
+ "version": "0.22.6",
"publishConfig": {
"access": "public"
},
@@ -29,13 +29,13 @@
"postinstall": "node postinstall.js"
},
"optionalDependencies": {
- "@ast-grep/cli-win32-arm64-msvc": "0.22.5",
- "@ast-grep/cli-win32-ia32-msvc": "0.22.5",
- "@ast-grep/cli-win32-x64-msvc": "0.22.5",
- "@ast-grep/cli-darwin-arm64": "0.22.5",
- "@ast-grep/cli-darwin-x64": "0.22.5",
- "@ast-grep/cli-linux-arm64-gnu": "0.22.5",
- "@ast-grep/cli-linux-x64-gnu": "0.22.5"
+ "@ast-grep/cli-win32-arm64-msvc": "0.22.6",
+ "@ast-grep/cli-win32-ia32-msvc": "0.22.6",
+ "@ast-grep/cli-win32-x64-msvc": "0.22.6",
+ "@ast-grep/cli-darwin-arm64": "0.22.6",
+ "@ast-grep/cli-darwin-x64": "0.22.6",
+ "@ast-grep/cli-linux-arm64-gnu": "0.22.6",
+ "@ast-grep/cli-linux-x64-gnu": "0.22.6"
},
"bin": {
"sg": "sg",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/npm/platforms/darwin-arm64/package.json new/ast-grep-0.22.6+0/npm/platforms/darwin-arm64/package.json
--- old/ast-grep-0.22.5+0/npm/platforms/darwin-arm64/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/npm/platforms/darwin-arm64/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/cli-darwin-arm64",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"darwin"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/npm/platforms/darwin-x64/package.json new/ast-grep-0.22.6+0/npm/platforms/darwin-x64/package.json
--- old/ast-grep-0.22.5+0/npm/platforms/darwin-x64/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/npm/platforms/darwin-x64/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/cli-darwin-x64",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"darwin"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/npm/platforms/linux-arm64-gnu/package.json new/ast-grep-0.22.6+0/npm/platforms/linux-arm64-gnu/package.json
--- old/ast-grep-0.22.5+0/npm/platforms/linux-arm64-gnu/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/npm/platforms/linux-arm64-gnu/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/cli-linux-arm64-gnu",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"linux"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/npm/platforms/linux-x64-gnu/package.json new/ast-grep-0.22.6+0/npm/platforms/linux-x64-gnu/package.json
--- old/ast-grep-0.22.5+0/npm/platforms/linux-x64-gnu/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/npm/platforms/linux-x64-gnu/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/cli-linux-x64-gnu",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"linux"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/npm/platforms/win32-arm64-msvc/package.json new/ast-grep-0.22.6+0/npm/platforms/win32-arm64-msvc/package.json
--- old/ast-grep-0.22.5+0/npm/platforms/win32-arm64-msvc/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/npm/platforms/win32-arm64-msvc/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/cli-win32-arm64-msvc",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"win32"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/npm/platforms/win32-ia32-msvc/package.json new/ast-grep-0.22.6+0/npm/platforms/win32-ia32-msvc/package.json
--- old/ast-grep-0.22.5+0/npm/platforms/win32-ia32-msvc/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/npm/platforms/win32-ia32-msvc/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/cli-win32-ia32-msvc",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"win32"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/npm/platforms/win32-x64-msvc/package.json new/ast-grep-0.22.6+0/npm/platforms/win32-x64-msvc/package.json
--- old/ast-grep-0.22.5+0/npm/platforms/win32-x64-msvc/package.json 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/npm/platforms/win32-x64-msvc/package.json 2024-06-05 03:00:51.000000000 +0200
@@ -1,6 +1,6 @@
{
"name": "@ast-grep/cli-win32-x64-msvc",
- "version": "0.22.5",
+ "version": "0.22.6",
"os": [
"win32"
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ast-grep-0.22.5+0/pyproject.toml new/ast-grep-0.22.6+0/pyproject.toml
--- old/ast-grep-0.22.5+0/pyproject.toml 2024-06-03 00:04:15.000000000 +0200
+++ new/ast-grep-0.22.6+0/pyproject.toml 2024-06-05 03:00:51.000000000 +0200
@@ -4,7 +4,7 @@
[project]
name = "ast-grep-cli"
-version = "0.22.5"
+version = "0.22.6"
description = "Structural Search and Rewrite code at large scale using precise AST pattern."
authors = [{ name = "Herrington Darkholme", email = "2883231+HerringtonDarkholme(a)users.noreply.github.com" }]
maintainers = [{ name = "Herrington Darkholme", email = "2883231+HerringtonDarkholme(a)users.noreply.github.com" }]
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/ast-grep/vendor.tar.zst /work/SRC/openSUSE:Factory/.ast-grep.new.24587/vendor.tar.zst differ: char 243173, line 1011
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package minio-client for openSUSE:Factory checked in at 2024-06-05 17:42:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/minio-client (Old)
and /work/SRC/openSUSE:Factory/.minio-client.new.24587 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "minio-client"
Wed Jun 5 17:42:35 2024 rev:80 rq:1178651 version:20240601T150335Z
Changes:
--------
--- /work/SRC/openSUSE:Factory/minio-client/minio-client.changes 2024-05-31 22:16:48.788012646 +0200
+++ /work/SRC/openSUSE:Factory/.minio-client.new.24587/minio-client.changes 2024-06-05 17:43:17.892067660 +0200
@@ -1,0 +2,9 @@
+Wed Jun 05 05:29:26 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 20240601T150335Z:
+ * fix: rm command with `--newer-than` not working (#4944)
+ * Fix support top net JSON (#4948)
+ * fix: avoid HeadObject call for mc get (#4947)
+ * remote flaky bucket_replication test for now
+
+-------------------------------------------------------------------
Old:
----
mc-20240524T090849Z.obscpio
New:
----
mc-20240601T150335Z.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ minio-client.spec ++++++
--- /var/tmp/diff_new_pack.3rqQNE/_old 2024-06-05 17:43:18.756099127 +0200
+++ /var/tmp/diff_new_pack.3rqQNE/_new 2024-06-05 17:43:18.760099272 +0200
@@ -22,7 +22,7 @@
%define binary_name minio-client
Name: minio-client
-Version: 20240524T090849Z
+Version: 20240601T150335Z
Release: 0
Summary: Client for MinIO
License: AGPL-3.0-only
++++++ _service ++++++
--- /var/tmp/diff_new_pack.3rqQNE/_old 2024-06-05 17:43:18.800100729 +0200
+++ /var/tmp/diff_new_pack.3rqQNE/_new 2024-06-05 17:43:18.808101020 +0200
@@ -5,7 +5,7 @@
<param name="exclude">.git</param>
<param name="changesgenerate">enable</param>
<param name="versionformat">@PARENT_TAG@</param>
- <param name="revision">RELEASE.2024-05-24T09-08-49Z</param>
+ <param name="revision">RELEASE.2024-06-01T15-03-35Z</param>
<param name="match-tag">RELEASE.*</param>
<param name="versionrewrite-pattern">RELEASE\.(.*)-(.*)-(.*)-(.*)-(.*)</param>
<param name="versionrewrite-replacement">\1\2\3\4\5</param>
@@ -19,7 +19,7 @@
<param name="compression">gz</param>
</service>
<service name="go_modules" mode="manual">
- <param name="archive">mc-20240524T090849Z.obscpio</param>
+ <param name="archive">mc-20240601T150335Z.obscpio</param>
</service>
</services>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.3rqQNE/_old 2024-06-05 17:43:18.832101894 +0200
+++ /var/tmp/diff_new_pack.3rqQNE/_new 2024-06-05 17:43:18.836102040 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/minio/mc</param>
- <param name="changesrevision">a8fdcbe7cb2f85ce98d60e904717aa00016a7d37</param></service></servicedata>
+ <param name="changesrevision">3cfa8642fdab18e3c1599360be26167e377063cf</param></service></servicedata>
(No newline at EOF)
++++++ mc-20240524T090849Z.obscpio -> mc-20240601T150335Z.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240524T090849Z/cmd/client-s3.go new/mc-20240601T150335Z/cmd/client-s3.go
--- old/mc-20240524T090849Z/cmd/client-s3.go 2024-05-24 11:08:49.000000000 +0200
+++ new/mc-20240601T150335Z/cmd/client-s3.go 2024-06-01 17:03:35.000000000 +0200
@@ -953,7 +953,8 @@
// Disallow automatic decompression for some objects with content-encoding set.
o.Set("Accept-Encoding", "identity")
- reader, e := c.api.GetObject(ctx, bucket, object, o)
+ cr := minio.Core{Client: c.api}
+ reader, objectInfo, _, e := cr.GetObject(ctx, bucket, object, o)
if e != nil {
errResponse := minio.ToErrorResponse(e)
if errResponse.Code == "NoSuchBucket" {
@@ -971,25 +972,7 @@
}
return nil, nil, probe.NewError(e)
}
- objStat, e := reader.Stat()
- if e != nil {
- errResponse := minio.ToErrorResponse(e)
- if errResponse.Code == "NoSuchBucket" {
- return nil, nil, probe.NewError(BucketDoesNotExist{
- Bucket: bucket,
- })
- }
- if errResponse.Code == "InvalidBucketName" {
- return nil, nil, probe.NewError(BucketInvalid{
- Bucket: bucket,
- })
- }
- if errResponse.Code == "NoSuchKey" {
- return nil, nil, probe.NewError(ObjectMissing{})
- }
- return nil, nil, probe.NewError(e)
- }
- return reader, c.objectInfo2ClientContent(bucket, objStat), nil
+ return reader, c.objectInfo2ClientContent(bucket, objectInfo), nil
}
// Copy - copy object, uses server side copy API. Also uses an abstracted API
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240524T090849Z/cmd/rm-main.go new/mc-20240601T150335Z/cmd/rm-main.go
--- old/mc-20240524T090849Z/cmd/rm-main.go 2024-05-24 11:08:49.000000000 +0200
+++ new/mc-20240601T150335Z/cmd/rm-main.go 2024-06-01 17:03:35.000000000 +0200
@@ -329,7 +329,7 @@
}
// We should not proceed
- if ignoreStatError && opts.olderThan != "" || opts.newerThan != "" {
+ if ignoreStatError && (opts.olderThan != "" || opts.newerThan != "") {
errorIf(pErr.Trace(url), "Unable to stat `"+url+"`.")
return exitStatus(globalErrorExitStatus)
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240524T090849Z/cmd/support-top-net.go new/mc-20240601T150335Z/cmd/support-top-net.go
--- old/mc-20240524T090849Z/cmd/support-top-net.go 2024-05-24 11:08:49.000000000 +0200
+++ new/mc-20240601T150335Z/cmd/support-top-net.go 2024-06-01 17:03:35.000000000 +0200
@@ -34,6 +34,11 @@
Usage: "interval between requests in seconds",
Value: 1,
},
+ cli.IntFlag{
+ Name: "n",
+ Usage: "number of requests to run before exiting. 0 for endless (default)",
+ Value: 0,
+ },
}
var supportTopNetCmd = cli.Command{
@@ -94,42 +99,42 @@
opts := madmin.MetricsOptions{
Type: madmin.MetricNet,
Interval: time.Duration(ctx.Int("interval")) * time.Second,
+ N: ctx.Int("n"),
ByHost: true,
Hosts: hosts,
}
-
+ if globalJSON {
+ e := client.Metrics(ctxt, opts, func(metrics madmin.RealtimeMetrics) {
+ printMsg(metricsMessage{RealtimeMetrics: metrics})
+ })
+ if e != nil && !errors.Is(e, context.Canceled) {
+ fatalIf(probe.NewError(e).Trace(aliasedURL), "Unable to fetch scanner metrics")
+ }
+ return nil
+ }
p := tea.NewProgram(initTopNetUI())
go func() {
- if globalJSON {
- e := client.Metrics(ctxt, opts, func(metrics madmin.RealtimeMetrics) {
- printMsg(metricsMessage{RealtimeMetrics: metrics})
- })
- if e != nil && !errors.Is(e, context.Canceled) {
- fatalIf(probe.NewError(e).Trace(aliasedURL), "Unable to fetch scanner metrics")
- }
- } else {
- out := func(m madmin.RealtimeMetrics) {
- for endPoint, metric := range m.ByHost {
- if metric.Net != nil {
- p.Send(topNetResult{
- endPoint: endPoint,
- stats: *metric.Net,
- })
- }
- }
- if len(m.Errors) != 0 && len(m.Hosts) != 0 {
+ out := func(m madmin.RealtimeMetrics) {
+ for endPoint, metric := range m.ByHost {
+ if metric.Net != nil {
p.Send(topNetResult{
- endPoint: m.Hosts[0],
- error: m.Errors[0],
+ endPoint: endPoint,
+ stats: *metric.Net,
})
}
}
-
- e := client.Metrics(ctxt, opts, out)
- if e != nil {
- fatalIf(probe.NewError(e), "Unable to fetch top net events")
+ if len(m.Errors) != 0 && len(m.Hosts) != 0 {
+ p.Send(topNetResult{
+ endPoint: m.Hosts[0],
+ error: m.Errors[0],
+ })
}
}
+
+ e := client.Metrics(ctxt, opts, out)
+ if e != nil {
+ fatalIf(probe.NewError(e), "Unable to fetch top net events")
+ }
p.Quit()
}()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240524T090849Z/functional-tests.sh new/mc-20240601T150335Z/functional-tests.sh
--- old/mc-20240524T090849Z/functional-tests.sh 2024-05-24 11:08:49.000000000 +0200
+++ new/mc-20240601T150335Z/functional-tests.sh 2024-06-01 17:03:35.000000000 +0200
@@ -1009,36 +1009,6 @@
log_success "$start_time" "${FUNCNAME[0]}"
}
-function test_bucket_replication() {
- show "${FUNCNAME[0]}"
-
- start_time=$(get_time)
- object_name="mc-test-replicate-$RANDOM"
- bkt1="${object_name}-bucket1"
- bkt2="${object_name}-bucket2"
-
- assert_success "$start_time" "${FUNCNAME[0]}" mc_cmd mb "${SERVER_ALIAS}/${bkt1}"
- assert_success "$start_time" "${FUNCNAME[0]}" mc_cmd version enable "${SERVER_ALIAS}/${bkt1}"
- assert_success "$start_time" "${FUNCNAME[0]}" mc_cmd mb "${SERVER_ALIAS}/${bkt2}"
- assert_success "$start_time" "${FUNCNAME[0]}" mc_cmd version enable "${SERVER_ALIAS}/${bkt2}"
- assert_success "$start_time" "${FUNCNAME[0]}" mc_cmd replicate add "${SERVER_ALIAS}/${bkt1}" --remote-bucket "${SERVER_ALIAS}/${bkt2}"
- loop_count=0
- while true; do
- if [ $loop_count -eq 100 ]; then
- break
- fi
- assert_success "$start_time" "${FUNCNAME[0]}" mc_cmd cp "$FILE_0_B" "${SERVER_ALIAS}/${bkt1}/${object_name}"
- assert_success "$start_time" "${FUNCNAME[0]}" mc_cmd rm "${SERVER_ALIAS}/${bkt1}/${object_name}"
- assert_failure "$start_time" "${FUNCNAME[0]}" mc_cmd stat "${SERVER_ALIAS}/${bkt1}/${object_name}"
- loop_count=$((loop_count + 1))
- done
-
- diff -bB <(mc_cmd --json ls "${SERVER_ALIAS}/${bkt1}/${object_name}" | jq -r .key) <(mc_cmd --json ls "${SERVER_ALIAS}/${bkt2}/${object_name}" | jq -r .key) >/dev/null 2>&1
- assert_success "$start_time" "${FUNCNAME[0]}" show_on_failure $? "replication list differs"
-
- log_success "$start_time" "${FUNCNAME[0]}"
-}
-
function run_test() {
test_make_bucket
test_make_bucket_error
++++++ mc.obsinfo ++++++
--- /var/tmp/diff_new_pack.3rqQNE/_old 2024-06-05 17:43:19.116112237 +0200
+++ /var/tmp/diff_new_pack.3rqQNE/_new 2024-06-05 17:43:19.120112383 +0200
@@ -1,5 +1,5 @@
name: mc
-version: 20240524T090849Z
-mtime: 1716541729
-commit: a8fdcbe7cb2f85ce98d60e904717aa00016a7d37
+version: 20240601T150335Z
+mtime: 1717254215
+commit: 3cfa8642fdab18e3c1599360be26167e377063cf
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/minio-client/vendor.tar.gz /work/SRC/openSUSE:Factory/.minio-client.new.24587/vendor.tar.gz differ: char 5, line 1
1
0