Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cnf for openSUSE:Factory checked in at 2025-08-25 20:36:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cnf (Old) and /work/SRC/openSUSE:Factory/.cnf.new.30751 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cnf" Mon Aug 25 20:36:40 2025 rev:8 rq:1301132 version:0.8.0~0 Changes: -------- --- /work/SRC/openSUSE:Factory/cnf/cnf.changes 2025-06-13 18:43:06.557123735 +0200 +++ /work/SRC/openSUSE:Factory/.cnf.new.30751/cnf.changes 2025-08-25 20:37:18.458104020 +0200 @@ -1,0 +2,16 @@ +Sun Aug 24 11:59:33 UTC 2025 - michal.vysko...@gmail.com + +- Update to version 0.8.0~0: + * (build): do not depend on obsolete Rust toolchain by default + * (fix): Duplicate entries shown (GH #26) + * Translated using Weblate (Slovenian) + * Translated using Weblate (French) + * Translated using Weblate (German) + * Translated using Weblate (Chinese (Taiwan) (zh_TW)) + * Translated using Weblate (Catalan) + * Sync i18n.toml with the i18n directory + * Rename cnf/i18n/po/ku to cnf/i18n/po/kmr +- Install shell integration files from upstream tarball +- Update shlex to 1.3.0 (bsc#1229375) + +------------------------------------------------------------------- Old: ---- cnf-0.7.1~0.tar.zst command_not_found.bash command_not_found.zsh New: ---- cnf-0.8.0~0.tar.zst ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cnf.spec ++++++ --- /var/tmp/diff_new_pack.xkp92C/_old 2025-08-25 20:37:19.626152954 +0200 +++ /var/tmp/diff_new_pack.xkp92C/_new 2025-08-25 20:37:19.626152954 +0200 @@ -1,7 +1,7 @@ # # spec file for package cnf # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,16 +18,13 @@ Name: cnf # This will be set by osc services, that will run after this. -Version: 0.7.1~0 +Version: 0.8.0~0 Release: 0 Summary: A command-not-found handler for openSUSE License: MIT URL: https://github.com/openSUSE/cnf Source0: %{name}-%{version}.tar.zst Source1: vendor.tar.zst -# TODO: move files into git -Source10: command_not_found.bash -Source11: command_not_found.zsh BuildRequires: cargo-packaging BuildRequires: gettext-tools BuildRequires: libsolv-devel @@ -103,8 +100,8 @@ ln -sfr %{buildroot}/%{_bindir}/cnf %{buildroot}/%{_bindir}/command-not-found # shell integrations -install -D -m 0644 %{SOURCE10} %{buildroot}%{_sysconfdir}/bash_command_not_found -install -D -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/zsh_command_not_found +install -D -m 0644 command_not_found.bash %{buildroot}%{_sysconfdir}/bash_command_not_found +install -D -m 0644 command_not_found.zsh %{buildroot}%{_sysconfdir}/zsh_command_not_found # i18n ls -1 i18n/po/ | while read LOCALE; do ++++++ _service ++++++ --- /var/tmp/diff_new_pack.xkp92C/_old 2025-08-25 20:37:19.658154294 +0200 +++ /var/tmp/diff_new_pack.xkp92C/_new 2025-08-25 20:37:19.662154462 +0200 @@ -23,7 +23,6 @@ <!-- ✨ The name of the project here ✨ --> <param name="srcdir">cnf</param> <param name="compression">zst</param> - <param name="update">false</param> </service> <!-- must stay here despite cargo_vendor says otherwise --> <service name="cargo_audit" mode="manual" /> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.xkp92C/_old 2025-08-25 20:37:19.686155467 +0200 +++ /var/tmp/diff_new_pack.xkp92C/_new 2025-08-25 20:37:19.686155467 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/cnf.git</param> - <param name="changesrevision">41ae2c06ec1c58a11c21ecfe8658eff76bd249df</param></service></servicedata> + <param name="changesrevision">4ba011a5488af4437a16906840f3129c003f5616</param></service></servicedata> (No newline at EOF) ++++++ cnf-0.7.1~0.tar.zst -> cnf-0.8.0~0.tar.zst ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/.github/workflows/pr_check.yml new/cnf-0.8.0~0/.github/workflows/pr_check.yml --- old/cnf-0.7.1~0/.github/workflows/pr_check.yml 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/.github/workflows/pr_check.yml 2025-08-24 13:49:24.000000000 +0200 @@ -38,6 +38,12 @@ env: RUSTFLAGS: "-Dwarnings" + - name: Install cargo-audit + run: cargo install cargo-audit + + - name: Run cargo audit + run: cargo audit --deny warnings + - uses: docker/setup-buildx-action@v2 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/Cargo.lock new/cnf-0.8.0~0/Cargo.lock --- old/cnf-0.7.1~0/Cargo.lock 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/Cargo.lock 2025-08-24 13:49:24.000000000 +0200 @@ -13,17 +13,15 @@ [[package]] name = "bindgen" -version = "0.68.1" +version = "0.72.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" +checksum = "4f72209734318d0b619a5e0f5129918b848c416e122a3c4ce054e03cb87b726f" dependencies = [ "bitflags", "cexpr", "clang-sys", - "lazy_static", - "lazycell", + "itertools", "log", - "peeking_take_while", "prettyplease", "proc-macro2", "quote", @@ -31,14 +29,13 @@ "rustc-hash", "shlex", "syn", - "which", ] [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" [[package]] name = "block" @@ -48,9 +45,9 @@ [[package]] name = "cc" -version = "1.2.17" +version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "shlex", ] @@ -66,9 +63,9 @@ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "clang-sys" @@ -86,6 +83,7 @@ version = "0.7.0" dependencies = [ "bindgen", + "cc", "glob", "libc", "tr", @@ -98,16 +96,6 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] name = "gettext-rs" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -129,17 +117,17 @@ [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] -name = "home" -version = "0.5.9" +name = "itertools" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ - "windows-sys 0.52.0", + "either", ] [[package]] @@ -149,34 +137,22 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] name = "libc" -version = "0.2.171" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", "windows-targets", ] [[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] name = "locale_config" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -191,9 +167,9 @@ [[package]] name = "log" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "malloc_buf" @@ -206,9 +182,9 @@ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "minimal-lexical" @@ -256,22 +232,10 @@ ] [[package]] -name = "once_cell" -version = "1.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - -[[package]] name = "prettyplease" -version = "0.2.31" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", "syn", @@ -279,9 +243,9 @@ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -326,22 +290,9 @@ [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "shlex" @@ -351,9 +302,9 @@ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -362,18 +313,17 @@ [[package]] name = "temp-dir" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc1ee6eef34f12f765cb94725905c6312b6610ab2b0940889cfe58dae7bc3c72" +checksum = "83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964" [[package]] name = "tr" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a592877f7cb2e5a6327b8c908fa6d51098482b1c87d478abdd783e61218f8151" +checksum = "79d30c7e79732253d80e9d619007002c8f3a362b0816e37340af648d4e2c6092" dependencies = [ "gettext-rs", - "lazy_static", ] [[package]] @@ -383,18 +333,6 @@ checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] - -[[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -417,29 +355,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows-sys" -version = "0.52.0" +name = "windows-link" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-targets" -version = "0.52.6" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link", "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", @@ -452,48 +379,48 @@ [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.6" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" -version = "0.52.6" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" -version = "0.52.6" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" [[package]] name = "windows_i686_gnullvm" -version = "0.52.6" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" -version = "0.52.6" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" -version = "0.52.6" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.6" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" -version = "0.52.6" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/Cargo.toml new/cnf-0.8.0~0/Cargo.toml --- old/cnf-0.7.1~0/Cargo.toml 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/Cargo.toml 2025-08-24 13:49:24.000000000 +0200 @@ -12,7 +12,8 @@ tr = "0.1.7" [build-dependencies] -bindgen = "~0.68.1" +cc = "1" +bindgen = "0.72.0" [profile.release] lto = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/README.md new/cnf-0.8.0~0/README.md --- old/cnf-0.7.1~0/README.md 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/README.md 2025-08-24 13:49:24.000000000 +0200 @@ -94,7 +94,8 @@ > 6 tests, 0 failures > ``` -Every test can be executed on a command line. The `root.sh` wrapper mounts the binary to `/usr/bin/cnf` and mounts the `libsolv.so.1` if running on ubuntu-amd64 or if shared library is in `test/libsolv.so.1`. This is done in order to solve the packaging difference of a libsolv between openSUSE and Ubuntu. +Every test can be executed on a command line. The `root.sh` wrapper mounts the +binary to `/usr/bin/cnf` and bash/fish integrations. ```.sh ./root.sh /usr/bin/cnf rpm @@ -105,7 +106,9 @@ ## **PowerShell users** -As `cnf` does not integrate with PowerShell by default, please read the issue comment https://github.com/openSUSE/cnf/issues/8#issuecomment-1854638267 to learn how to configure your system properly: +As `cnf` does not integrate with PowerShell by default, please read the issue +comment https://github.com/openSUSE/cnf/issues/8#issuecomment-1854638267 to +learn how to configure your system properly: <blockQuote> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/build.rs new/cnf-0.8.0~0/build.rs --- old/cnf-0.7.1~0/build.rs 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/build.rs 2025-08-24 13:49:24.000000000 +0200 @@ -5,19 +5,23 @@ fn main() { // Tell cargo to look for libraries for various distributions - if std::path::Path::new("/usr/lib64/libsolv.a").exists() { - // openSUSE: has a static library only - println!("cargo:rustc-link-search=/usr/lib64"); - println!("cargo:rustc-link-lib=static=solv"); + if std::path::Path::new("/lib64/libsolv.so.1").exists() { + // openSUSE and SUSE + println!("cargo:rustc-link-search=/lib64"); } else { - // ubuntu-latest: this gets used on github actions and has a dynamic library only + // ubuntu-latest: this gets used on github actions and has a different path println!("cargo:rustc-link-search=/usr/lib/x86_64-linux-gnu"); - println!("cargo:rustc-link-lib=solv"); } + println!("cargo:rustc-link-lib=solv"); // Tell cargo to invalidate the built crate whenever the wrapper changes println!("cargo:rerun-if-changed=wrapper.h"); + // Compile the shim into a .a + cc::Build::new() + .file("src/solv_shim.c") + .compile("solv_shim"); + // The bindgen::Builder is the main entry point // to bindgen, and lets you build up options for // the resulting bindings. @@ -27,11 +31,12 @@ .header("wrapper.h") // Tell cargo to invalidate the built crate whenever any of the // included header files changed. - .parse_callbacks(Box::new(bindgen::CargoCallbacks)) + .parse_callbacks(Box::new(bindgen::CargoCallbacks::new())) .allowlist_type(".*Pool") .allowlist_type("solv_knownid.*") .allowlist_var("SEARCH_STRING") .allowlist_function("pool_search") + .allowlist_function("pool_setarch") .allowlist_function("pool_create") .allowlist_function("pool_free") .allowlist_function("repo_create") @@ -40,6 +45,7 @@ .allowlist_function("fclose") .allowlist_function("solvable_lookup_str") .allowlist_function("repodata_dir2str") + .allowlist_function("cnf.*") // Finish the builder and generate the bindings. .generate() // Unwrap the Result and panic on failure. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/i18n/po/ca/cnf.po new/cnf-0.8.0~0/i18n/po/ca/cnf.po --- old/cnf-0.7.1~0/i18n/po/ca/cnf.po 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/i18n/po/ca/cnf.po 2025-08-24 13:49:24.000000000 +0200 @@ -7,31 +7,30 @@ "Project-Id-Version: cnf 0.3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-05-29 11:17+0000\n" -"PO-Revision-Date: 2020-02-12 17:54+0000\n" +"PO-Revision-Date: 2025-05-06 12:59+0000\n" "Last-Translator: David Medina <medi...@gmail.com>\n" -"Language-Team: Catalan <https://l10n.opensuse.org/projects/scout/command-not-" -"found-master/ca/>\n" +"Language-Team: Catalan <https://l10n.opensuse.org/projects/cnf/main/ca/>\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.6.1\n" +"X-Generator: Weblate 5.11.3\n" #: src/main.rs:47 msgid "" "Absolute path to '{}' is '{}'. Please check your $PATH variable to see " "whether it contains the mentioned path." msgstr "" -"El camí absolut a '{}' és '{}'. Si us plau, comproveu la variable $PATH per " -"si conté el camí mencionat." +"El camí absolut a {} és {}. Si us plau, comproveu la variable $PATH per si " +"conté el camí mencionat." #: src/main.rs:53 msgid "" "Absolute path to '{}' is '{}', so running it may require superuser " "privileges (eg. root)." msgstr "" -"El camí absolut a \"{}\" és \"{}\", i executar-lo pot requerir privilegis de " +"El camí absolut a {} és {}, i executar-lo pot requerir privilegis de " "superusuari (per exemple: arrel)." #: src/main.rs:82 @@ -41,8 +40,8 @@ #: src/main.rs:89 msgid "The program '{}' can be found in the following package:" msgid_plural "The program '{}' can be found in following packages:" -msgstr[0] "El programa '{}' es pot trobar dins del paquet següent:" -msgstr[1] "El programa '{}' es pot trobar dins dels paquets següents:" +msgstr[0] "El programa {} es pot trobar dins del paquet següent:" +msgstr[1] "El programa {} es pot trobar dins dels paquets següents:" #: src/main.rs:99 msgid " * {} [ path: {}/{}, repository: {} ]" @@ -53,7 +52,7 @@ "Try installing with:\n" " " msgstr "" -"Proveu d'instal·lar-ho amb\n" +"Proveu d'instal·lar-lo amb\n" " " #: src/main.rs:142 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/i18n/po/de/cnf.po new/cnf-0.8.0~0/i18n/po/de/cnf.po --- old/cnf-0.7.1~0/i18n/po/de/cnf.po 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/i18n/po/de/cnf.po 2025-08-24 13:49:24.000000000 +0200 @@ -10,16 +10,15 @@ "Project-Id-Version: cnf 0.3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-05-29 11:17+0000\n" -"PO-Revision-Date: 2022-03-04 13:12+0000\n" +"PO-Revision-Date: 2025-08-01 14:59+0000\n" "Last-Translator: Gemineo <vista...@gemineo.de>\n" -"Language-Team: German <https://l10n.opensuse.org/projects/scout/command-not-" -"found-master/de/>\n" +"Language-Team: German <https://l10n.opensuse.org/projects/cnf/main/de/>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9.1\n" +"X-Generator: Weblate 5.12.2\n" #: src/main.rs:47 msgid "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/i18n/po/fr/cnf.po new/cnf-0.8.0~0/i18n/po/fr/cnf.po --- old/cnf-0.7.1~0/i18n/po/fr/cnf.po 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/i18n/po/fr/cnf.po 2025-08-24 13:49:24.000000000 +0200 @@ -7,16 +7,15 @@ "Project-Id-Version: cnf 0.3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-05-29 11:17+0000\n" -"PO-Revision-Date: 2021-06-16 02:58+0000\n" -"Last-Translator: Antoine Belvire <antoine.belv...@opensuse.org>\n" -"Language-Team: French <https://l10n.opensuse.org/projects/scout/command-not-" -"found-master/fr/>\n" +"PO-Revision-Date: 2025-08-04 14:59+0000\n" +"Last-Translator: Sophie Leroy <sop...@stoquart.com>\n" +"Language-Team: French <https://l10n.opensuse.org/projects/cnf/main/fr/>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.6.2\n" +"X-Generator: Weblate 5.12.2\n" "X-Poedit-Language: French\n" "X-Poedit-Country: FRANCE\n" @@ -26,15 +25,15 @@ "whether it contains the mentioned path." msgstr "" "Le chemin absolu vers '{}' est '{}'. Veuillez vérifier votre variable $PATH " -"pour voir si il contient le chemin mentionné." +"pour voir si elle contient le chemin mentionné." #: src/main.rs:53 msgid "" "Absolute path to '{}' is '{}', so running it may require superuser " "privileges (eg. root)." msgstr "" -"Le chemin absolu vers '{}' est '{}', donc son lancement peut necessiter les " -"privilèges super utilisateur (root)." +"Le chemin absolu vers '{}' est '{}', donc son lancement peut nécessiter les " +"privilèges de superutilisateur (root)." #: src/main.rs:82 msgid "<selected_package>" @@ -60,4 +59,4 @@ #: src/main.rs:142 msgid "command not found" -msgstr "commande non trouvée" +msgstr "commande introuvable" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/i18n/po/kmr/cnf.po new/cnf-0.8.0~0/i18n/po/kmr/cnf.po --- old/cnf-0.7.1~0/i18n/po/kmr/cnf.po 1970-01-01 01:00:00.000000000 +0100 +++ new/cnf-0.8.0~0/i18n/po/kmr/cnf.po 2025-08-24 13:49:24.000000000 +0200 @@ -0,0 +1,57 @@ +# Kurdish translations for cnf package. +# Copyright (C) 2023 openSUSE project +# This file is distributed under the same license as the cnf package. +# Copyright © 2009 SUSE Linux Products GmbH. +# Kurdish Team <i...@suse.de>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: cnf 0.3.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-29 11:17+0000\n" +"PO-Revision-Date: 2005-09-23 00:15+0200\n" +"Last-Translator: Kurdish Team <i...@suse.de>\n" +"Language-Team: Kurdish Team <i...@suse.de>\n" +"Language: ku\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1\n" + +#: src/main.rs:47 +msgid "" +"Absolute path to '{}' is '{}'. Please check your $PATH variable to see " +"whether it contains the mentioned path." +msgstr "" + +#: src/main.rs:53 +msgid "" +"Absolute path to '{}' is '{}', so running it may require superuser " +"privileges (eg. root)." +msgstr "" + +#: src/main.rs:82 +msgid "<selected_package>" +msgstr "Pakêtên tên pêşniyaz kirin" + +#: src/main.rs:89 +msgid "The program '{}' can be found in the following package:" +msgid_plural "The program '{}' can be found in following packages:" +msgstr[0] "" +msgstr[1] "" + +#: src/main.rs:99 +msgid " * {} [ path: {}/{}, repository: {} ]" +msgstr "" + +#: src/main.rs:111 +msgid "" +"Try installing with:\n" +" " +msgstr "" +"Tê sazkirin\n" +" " + +#: src/main.rs:142 +msgid "command not found" +msgstr "Fermanên Xebitandinê" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/i18n/po/ku/cnf.po new/cnf-0.8.0~0/i18n/po/ku/cnf.po --- old/cnf-0.7.1~0/i18n/po/ku/cnf.po 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/i18n/po/ku/cnf.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,57 +0,0 @@ -# Kurdish translations for cnf package. -# Copyright (C) 2023 openSUSE project -# This file is distributed under the same license as the cnf package. -# Copyright © 2009 SUSE Linux Products GmbH. -# Kurdish Team <i...@suse.de>, 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: cnf 0.3.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-29 11:17+0000\n" -"PO-Revision-Date: 2005-09-23 00:15+0200\n" -"Last-Translator: Kurdish Team <i...@suse.de>\n" -"Language-Team: Kurdish Team <i...@suse.de>\n" -"Language: ku\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1\n" - -#: src/main.rs:47 -msgid "" -"Absolute path to '{}' is '{}'. Please check your $PATH variable to see " -"whether it contains the mentioned path." -msgstr "" - -#: src/main.rs:53 -msgid "" -"Absolute path to '{}' is '{}', so running it may require superuser " -"privileges (eg. root)." -msgstr "" - -#: src/main.rs:82 -msgid "<selected_package>" -msgstr "Pakêtên tên pêşniyaz kirin" - -#: src/main.rs:89 -msgid "The program '{}' can be found in the following package:" -msgid_plural "The program '{}' can be found in following packages:" -msgstr[0] "" -msgstr[1] "" - -#: src/main.rs:99 -msgid " * {} [ path: {}/{}, repository: {} ]" -msgstr "" - -#: src/main.rs:111 -msgid "" -"Try installing with:\n" -" " -msgstr "" -"Tê sazkirin\n" -" " - -#: src/main.rs:142 -msgid "command not found" -msgstr "Fermanên Xebitandinê" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/i18n/po/sl/cnf.po new/cnf-0.8.0~0/i18n/po/sl/cnf.po --- old/cnf-0.7.1~0/i18n/po/sl/cnf.po 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/i18n/po/sl/cnf.po 2025-08-24 13:49:24.000000000 +0200 @@ -8,51 +8,57 @@ "Project-Id-Version: cnf 0.3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-05-29 11:17+0000\n" -"PO-Revision-Date: 2005-08-24 17:37+0200\n" -"Last-Translator: Janez Krek <janez.k...@euroteh.si>\n" -"Language-Team: Slovenščina <s...@li.org>\n" +"PO-Revision-Date: 2025-08-11 16:59+0000\n" +"Last-Translator: Jure Repinc <j...@holodeck1.com>\n" +"Language-Team: Slovenian <https://l10n.opensuse.org/projects/cnf/main/sl/>\n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.3.1\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " -"n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3;\n" +"X-Generator: Weblate 5.12.2\n" #: src/main.rs:47 msgid "" "Absolute path to '{}' is '{}'. Please check your $PATH variable to see " "whether it contains the mentioned path." msgstr "" +"Absolutna pot do »{}« je »{}«. Preverite, ali okoljska spremenljivka $PATH " +"vsebuje omenjeno pot." #: src/main.rs:53 msgid "" "Absolute path to '{}' is '{}', so running it may require superuser " "privileges (eg. root)." msgstr "" +"Absolutna pot do »{}« je »{}« in zagon morda zahteva pravice skrbnika (npr. " +"root)." #: src/main.rs:82 msgid "<selected_package>" -msgstr "" +msgstr "<izbrani_paket>" #: src/main.rs:89 msgid "The program '{}' can be found in the following package:" msgid_plural "The program '{}' can be found in following packages:" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Program »{}« lahko najdete v naslednjem paketu:" +msgstr[1] "Program »{}« lahko najdete v naslednjih paketih:" +msgstr[2] "Program »{}« lahko najdete v naslednjih paketih:" +msgstr[3] "Program »{}« lahko najdete v naslednjih paketih:" #: src/main.rs:99 msgid " * {} [ path: {}/{}, repository: {} ]" -msgstr "" +msgstr " * {} [ pot: {}/{}, vir: {} ]" #: src/main.rs:111 msgid "" "Try installing with:\n" " " msgstr "" +"Poskusite ga namestiti z:\n" +" " #: src/main.rs:142 msgid "command not found" -msgstr "Gostitelja %s ni." +msgstr "ukaz ni bil najden" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/i18n/po/zh_TW/cnf.po new/cnf-0.8.0~0/i18n/po/zh_TW/cnf.po --- old/cnf-0.7.1~0/i18n/po/zh_TW/cnf.po 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/i18n/po/zh_TW/cnf.po 2025-08-24 13:49:24.000000000 +0200 @@ -10,16 +10,16 @@ "Project-Id-Version: cnf 0.3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-05-29 11:17+0000\n" -"PO-Revision-Date: 2018-10-05 13:11+0000\n" -"Last-Translator: Yi-Jyun Pan <pan93...@gmail.com>\n" -"Language-Team: Chinese (Taiwan) <https://l10n.opensuse.org/projects/scout/" -"command-not-found-master/zh_TW/>\n" +"PO-Revision-Date: 2025-07-22 12:59+0000\n" +"Last-Translator: Julia Faltenbacher <julia.faltenbac...@suse.com>\n" +"Language-Team: Chinese (Taiwan) <https://l10n.opensuse.org/projects/cnf/main/" +"zh_TW/>\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.18\n" +"X-Generator: Weblate 5.12.2\n" #: src/main.rs:47 msgid "" @@ -38,7 +38,7 @@ #: src/main.rs:82 msgid "<selected_package>" -msgstr "" +msgstr "<selected_package>" #: src/main.rs:89 msgid "The program '{}' can be found in the following package:" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/i18n.toml new/cnf-0.8.0~0/i18n.toml --- old/cnf-0.7.1~0/i18n.toml 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/i18n.toml 2025-08-24 13:49:24.000000000 +0200 @@ -12,7 +12,9 @@ "be", "bg", "bn", + "bs", "ca", + "cs", "da", "de", "el", @@ -33,8 +35,8 @@ "ja", "ka", "km", + "kmr", "ko", - "ku", "lt", "mk", "mr", @@ -49,6 +51,7 @@ "ru", "sk", "sl", + "sr", "sv", "ta", "th", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/rust-toolchain.toml new/cnf-0.8.0~0/rust-toolchain.toml --- old/cnf-0.7.1~0/rust-toolchain.toml 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/rust-toolchain.toml 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +0,0 @@ -[toolchain] -channel = "1.77.0" -components = ["rustfmt", "clippy"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/src/pool.rs new/cnf-0.8.0~0/src/pool.rs --- old/cnf-0.7.1~0/src/pool.rs 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/src/pool.rs 2025-08-24 13:49:24.000000000 +0200 @@ -2,17 +2,21 @@ #![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(dead_code)] +#![allow(unnecessary_transmutes)] #![allow(clippy::upper_case_acronyms)] +#![allow(clippy::ptr_offset_with_cast)] include!(concat!(env!("OUT_DIR"), "/bindings.rs")); extern crate libc; use crate::{ErrorKind, SolvInput}; +use libc::{uname, utsname}; use std::env; use std::ffi::CStr; use std::ffi::CString; use std::io; +use std::os::raw::c_char; pub struct SPool { pool: *mut Pool, @@ -31,6 +35,15 @@ if ptr.is_null() { return Err(ErrorKind::IsNULL("pool_create")); } + + let mut uts = std::mem::zeroed::<utsname>(); + if uname(&mut uts) == 0 { + pool_setarch(ptr, uts.machine.as_ptr() as *const c_char); + } else { + let errno = *libc::__errno_location(); + return Err(ErrorKind::IOError(io::Error::from_raw_os_error(errno))); + } + ptr }; @@ -123,11 +136,10 @@ kv: *mut s_KeyValue, ) -> i32 { // code does not assert callback data, those are a responsibility of a libsolv/caller - let append: &mut &mut dyn FnMut(Result<(String, String, String), ErrorKind<'static>>) = &mut *(cbdata as *mut _); - let result: Result<(String, String, String), ErrorKind<'static>> = + let result: Result<(bool, String, String, String), ErrorKind<'static>> = CStr::from_ptr((*(*s).repo).name) .to_str() .map_err(|err: std::str::Utf8Error| -> ErrorKind { ErrorKind::String(err.to_string()) }) @@ -151,12 +163,32 @@ }) .map(|path| (repo, name, path)) }) - .map(|(repo, name, path)| (String::from(repo), String::from(name), String::from(path))); + .map(|(repo, name, path)| { + ( + is_installable(s), + String::from(repo), + String::from(name), + String::from(path), + ) + }); - let ret = match result { + match result { Err(_) => -1, - _ => 0, - }; - append(result); - ret + Ok((false, _, _, _)) => 0, + Ok((true, r, n, p)) => { + append(Ok((r, n, p))); + 0 + } + } +} + +unsafe fn is_installable(s: *mut s_Solvable) -> bool { + let solvable: &s_Solvable = &*s; + let s_repo = solvable.repo; + let mut installable = false; + if !s_repo.is_null() { + let pool = (*s_repo).pool; + installable = cnf_pool_installable(pool, s) == 1; + } + installable } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/src/solv_shim.c new/cnf-0.8.0~0/src/solv_shim.c --- old/cnf-0.7.1~0/src/solv_shim.c 1970-01-01 01:00:00.000000000 +0100 +++ new/cnf-0.8.0~0/src/solv_shim.c 2025-08-24 13:49:24.000000000 +0200 @@ -0,0 +1,7 @@ +#include <solv/pool.h> +#include <solv/repo.h> +#include <solv/solvable.h> + +int cnf_pool_installable(Pool *pool, Solvable *s) { + return pool_installable(pool, s); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/test/Dockerfile new/cnf-0.8.0~0/test/Dockerfile --- old/cnf-0.7.1~0/test/Dockerfile 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/test/Dockerfile 2025-08-24 13:49:24.000000000 +0200 @@ -8,6 +8,8 @@ RUN zypper refresh # minimize number of packages installed RUN zypper --non-interactive addlock busybox dbus diffutils pam-config perl-base pkgconf-m4 systemd groff man -RUN zypper --non-interactive install --no-recommends zsh fish +RUN zypper --non-interactive install --no-recommends zsh fish libsolv1 +RUN zypper --non-interactive addrepo https://download.opensuse.org/repositories/GNOME:/Next/openSUSE_Factory/GNOME:Next.repo +RUN zypper --gpg-auto-import-keys refresh GNOME_Next WORKDIR /src diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/test/root.sh new/cnf-0.8.0~0/test/root.sh --- old/cnf-0.7.1~0/test/root.sh 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/test/root.sh 2025-08-24 13:49:24.000000000 +0200 @@ -3,8 +3,8 @@ set -e # -# Runs cnf binary inside (openSUSE) container. Mounts the cnf, bash integration and -# libsolv.so.1 into container ensuring the tool can run there. +# Runs cnf binary inside (openSUSE) container. Mounts the cnf, bash and fish +# integration and into container ensuring the tool can run there. # # To be executed manually or via bats test.bats # @@ -15,27 +15,16 @@ ZSH_CNF=$(readlink -f "${PROJECT_DIR}/command_not_found.zsh") USER="root" -if [[ "${0}" =~ "nonroot.sh" ]]; then +if [[ "${0}" =~ nonroot.sh ]]; then USER="nonroot" fi VOLUMES=() -VOLUMES[0]="--volume "${CNF_SRC}":/usr/bin/cnf:ro" +VOLUMES[0]="--volume ${CNF_SRC}:/usr/bin/cnf:ro" # needed for fish shell: boo#1215428 -VOLUMES[1]="--volume "${CNF_SRC}":/usr/bin/command-not-found:ro" -VOLUMES[2]="--volume "${BASH_CNF}":/usr/etc/bash_command_not_found:ro" -VOLUMES[3]="--volume "${ZSH_CNF}":/usr/etc/zsh_command_not_found:ro" - -# github action uses the ubuntu-latest with libsolv-dev, which is a shared library -# openSUSE distributes libsolv only as static library on the other hand -# so if running the script on ubuntu-latest, mount the shared library into openSUSE container -# to make it run there -if [[ -f /usr/lib/x86_64-linux-gnu/libsolv.so.1 ]]; then - VOLUMES[4]="--volume /usr/lib/x86_64-linux-gnu/libsolv.so.1:/usr/lib64/libsolv.so.1:ro" -elif [[ -f "${PROJECT_DIR}/test/libsolv.so.1" ]]; then - # mount the libsolv.so.1 if it is in test/ directory: this supports the development - VOLUMES[4]="--volume "${PROJECT_DIR}/test/libsolv.so.1":/usr/lib64/libsolv.so.1:ro" -fi +VOLUMES[1]="--volume ${CNF_SRC}:/usr/bin/command-not-found:ro" +VOLUMES[2]="--volume ${BASH_CNF}:/usr/etc/bash_command_not_found:ro" +VOLUMES[3]="--volume ${ZSH_CNF}:/usr/etc/zsh_command_not_found:ro" docker \ run \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/test/test.bats new/cnf-0.8.0~0/test/test.bats --- old/cnf-0.7.1~0/test/test.bats 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/test/test.bats 2025-08-24 13:49:24.000000000 +0200 @@ -67,4 +67,10 @@ assert_output --partial "The program 'cmake' can be found in following packages:" } +@test "issue26: do not list not installable files" { + run root.sh '/usr/bin/cnf' 'fractal' + pkg_lines="$(printf '%s\n' "$output" | grep -c -E '^ \*')" + [ "$pkg_lines" -eq 2 ] +} + # TODO: install i18n diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cnf-0.7.1~0/wrapper.h new/cnf-0.8.0~0/wrapper.h --- old/cnf-0.7.1~0/wrapper.h 2025-03-23 19:57:18.000000000 +0100 +++ new/cnf-0.8.0~0/wrapper.h 2025-08-24 13:49:24.000000000 +0200 @@ -1,5 +1,9 @@ +#pragma once + #include <solv/pool.h> #include <solv/repo.h> #include <solv/repo_solv.h> #include <solv/dataiterator.h> #include <solv/knownid.h> + +int cnf_pool_installable(Pool *pool, Solvable *s); ++++++ cnf.obsinfo ++++++ --- /var/tmp/diff_new_pack.xkp92C/_old 2025-08-25 20:37:22.514273947 +0200 +++ /var/tmp/diff_new_pack.xkp92C/_new 2025-08-25 20:37:22.550275455 +0200 @@ -1,5 +1,5 @@ name: cnf -version: 0.7.1~0 -mtime: 1742756238 -commit: 41ae2c06ec1c58a11c21ecfe8658eff76bd249df +version: 0.8.0~0 +mtime: 1756036164 +commit: 4ba011a5488af4437a16906840f3129c003f5616 ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/cnf/vendor.tar.zst /work/SRC/openSUSE:Factory/.cnf.new.30751/vendor.tar.zst differ: char 7, line 1