openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
July 2024
- 1 participants
- 268 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cilium-cli for openSUSE:Factory checked in at 2024-07-04 16:24:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cilium-cli (Old)
and /work/SRC/openSUSE:Factory/.cilium-cli.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cilium-cli"
Thu Jul 4 16:24:45 2024 rev:69 rq:1185180 version:0.16.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/cilium-cli/cilium-cli.changes 2024-06-10 17:37:35.666865548 +0200
+++ /work/SRC/openSUSE:Factory/.cilium-cli.new.2080/cilium-cli.changes 2024-07-04 16:26:04.913662544 +0200
@@ -1,0 +2,61 @@
+Wed Jul 03 16:10:01 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 0.16.11:
+ * Prepare for v0.16.11 release
+ * ci: speedup workflows
+ * sysdump: derive operator namespace from agent namespace if
+ specified
+ * sysdump: fix no Cilium output if operator was not detected
+ * fix(deps): update all go dependencies main
+ * image: Push Docker image on tag push
+ * Remove cilium-cli-test-job-chart
+ * aks: Temporarily disable Hubble Relay
+ * fix(deps): update module github.com/cilium/cilium to
+ v1.16.0-rc.0
+ * multicluster: Run cilium-cli inside a container
+ * chore(deps): update docker/build-push-action action to v6.2.0
+ * fix: ExternalTargetCANamespace name
+ * eks: Run cilium-cli inside a container
+ * connectivity: Ensure Hubble Relay is connected to all the nodes
+ * external-workloads: Run cilium-cli inside a container
+ * gke: Run cilium-cli inside a container
+ * gha: fix cluster names in kind workflow
+ * autodetect: try to sanitize autodetected cluster name
+ * azure: directly retrieve cluster name from kubeconfig
+ * action: Add an option to run cilium-cli inside a container
+ * connectivity: Add pod-to-pod-no-frag
+ * connectivity: Extend PingCommand to accept extra args
+ * chore(deps): pin ubuntu docker tag to 2e863c4
+ * connectivity: refactor initClients
+ * connectivity: introduce detectSingleNode method
+ * Dockerfile: Install aws / azure / gcloud CLIs
+ * chore(deps): update docker/build-push-action action to v6.1.0
+ * chore(deps): update all github action dependencies
+ * chore(deps): update golang:1.22.4-alpine3.19 docker digest to
+ c46c460
+ * chore(deps): update docker.io/library/golang:1.22.4-alpine3.19
+ docker digest to c46c460
+ * chore(deps): update quay.io/cilium/alpine-curl docker tag to
+ v1.10.0
+ * chore(deps): update docker.io/library/golang:1.22.4-alpine3.19
+ docker digest to e43a04e
+ * chore(deps): update golang-images
+ * gh/workflows: Fix display img digest step
+ * connectivity: Display last assertion error on failure
+ * connectivity: Extend pod-to-pod encryption tests
+ * chore(deps): update docker/build-push-action action to v6
+ * fix(deps): update all go dependencies main
+ * chore(deps): update docker.io/library/golang:1.22.4-alpine3.19
+ docker digest to d9b1f00
+ * chore(deps): update docker/build-push-action action to v5.4.0
+ * chore(deps): update golangci/golangci-lint docker tag to
+ v1.59.1
+ * chore(deps): update golang-images
+ * Pick up the latest cilium/cilium from main branch
+ * chore(deps): update dependency cilium/cilium to v1.15.6
+ * chore(deps): update actions/checkout action to v4.1.7
+ * gha: increase disk size for GKE clusters
+ * fix(deps): update github.com/cilium/charts digest to 4be5659
+ * Update stable release to v0.16.10
+
+-------------------------------------------------------------------
Old:
----
cilium-cli-0.16.10.obscpio
New:
----
cilium-cli-0.16.11.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cilium-cli.spec ++++++
--- /var/tmp/diff_new_pack.T0zUlr/_old 2024-07-04 16:26:10.585869693 +0200
+++ /var/tmp/diff_new_pack.T0zUlr/_new 2024-07-04 16:26:10.597870131 +0200
@@ -21,7 +21,7 @@
%define executable_name cilium
Name: cilium-cli
-Version: 0.16.10
+Version: 0.16.11
Release: 0
Summary: CLI to install, manage & troubleshoot Kubernetes clusters running Cilium
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.T0zUlr/_old 2024-07-04 16:26:10.913881672 +0200
+++ /var/tmp/diff_new_pack.T0zUlr/_new 2024-07-04 16:26:10.937882548 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/cilium/cilium-cli</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.16.10</param>
+ <param name="revision">v0.16.11</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.T0zUlr/_old 2024-07-04 16:26:11.073887516 +0200
+++ /var/tmp/diff_new_pack.T0zUlr/_new 2024-07-04 16:26:11.105888685 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/cilium/cilium-cli</param>
- <param name="changesrevision">511f0173c21db1c3c959b96fd68eef18f83a0a9f</param></service></servicedata>
+ <param name="changesrevision">9d071f99ae32af95cb15c3e0a280d222b569a1cf</param></service></servicedata>
(No newline at EOF)
++++++ cilium-cli-0.16.10.obscpio -> cilium-cli-0.16.11.obscpio ++++++
/work/SRC/openSUSE:Factory/cilium-cli/cilium-cli-0.16.10.obscpio /work/SRC/openSUSE:Factory/.cilium-cli.new.2080/cilium-cli-0.16.11.obscpio differ: char 49, line 1
++++++ cilium-cli.obsinfo ++++++
--- /var/tmp/diff_new_pack.T0zUlr/_old 2024-07-04 16:26:11.437900810 +0200
+++ /var/tmp/diff_new_pack.T0zUlr/_new 2024-07-04 16:26:11.461901686 +0200
@@ -1,5 +1,5 @@
name: cilium-cli
-version: 0.16.10
-mtime: 1717801773
-commit: 511f0173c21db1c3c959b96fd68eef18f83a0a9f
+version: 0.16.11
+mtime: 1719503043
+commit: 9d071f99ae32af95cb15c3e0a280d222b569a1cf
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/cilium-cli/vendor.tar.gz /work/SRC/openSUSE:Factory/.cilium-cli.new.2080/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package oc for openSUSE:Factory checked in at 2024-07-04 16:24:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/oc (Old)
and /work/SRC/openSUSE:Factory/.oc.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oc"
Thu Jul 4 16:24:36 2024 rev:2 rq:1185176 version:4.16.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/oc/oc.changes 2024-04-15 20:23:16.471259664 +0200
+++ /work/SRC/openSUSE:Factory/.oc.new.2080/oc.changes 2024-07-04 16:25:56.085340133 +0200
@@ -1,0 +2,175 @@
+Wed Jul 03 16:02:57 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 4.16.0:
+ * OCPBUGS-33762: Hardcode resource groups/kinds for now
+ * update status: minor code cleanups
+ * `upgrade status`: polish alert insights
+ * inspectalerts: refactor `getWithBearer` to try all urls in
+ route
+ * inspectalerts: use client-go wrappers for thanos call debugging
+ * OCPBUGS-33896: `status/inspect-alerts`: handle non-200 by
+ Thanos
+ * add mock tests for alerts in oc adm upgrade status
+ * add alerts to update health in oc adm upgrade status
+ * `upgrade status`: upgrade -> update
+ * OCPBUGS-33903: Simplify output when not updating
+ * pkg/cli/admin/upgrade/rollback: Gate on
+ OC_ENABLE_CMD_UPGRADE_ROLLBACK
+ * adm update status: Fix target version field for install.
+ * adm update status: Show information about upgrade target
+ version
+ * Add s390x based oc into extraction target
+ * OCPBUGS-32682: Fix the retrieval of API objects with an empty
+ name (#1765)
+ * Support multiple icsps in migrate icsp
+ * [OCPNODE-2282]Support multiple ImageDigestMirrorSet objects in
+ the the single file
+ * Switch cli-artifacts default oc to RHEL9
+ * OTA-1275: cli/admin/release/git: use optimized git flags
+ * Switch cli image to RHEL9 base image
+ * pkg/cli/admin/upgrade/status: Drop free-form Progressing output
+ line
+ * pkg/cli/admin/upgrade/status: Move Failing from free-form to
+ updateInsight
+ * OTA-1174: `update status`: unify on `--details`
+ * Bump go-jose indirect reference to 2.6.3
+ * Improve error message when binary is not in target list
+ * `upgrade status`: hint at using `--details=health`
+ * `upgrade status`: ellipsize (duplicate) long names in messages
+ * `upgrade status --detailed=health`: show involved resources
+ * `update status`: Simplify CO status line
+ * oc image extract: Print an error msg instead of panicking when
+ all images are filtered out from the manifest list.
+ * oc adm must-gather: print timestamp when logging
+ * Changing the conditional risk to known issues
+ * release: extract ccoctl.rhel8 and ccoctl.rhel9
+ * `upgrade status`: always tabulate 'All is well'
+ * `upgrade status`: ignore incomplete insights
+ * `upgrade status`: pad linebreaks in descriptions
+ * `upgrade status`: populate descriptions and refs for insights
+ * `upgrade status`: `--details=health` shows reference and
+ description
+ * `upgrade status`: test `--detailed=all` in examples integration
+ test
+ * `upgrade status`: add `--detailed=nodes` that shows all nodes
+ * add prune renderedmachineconfigs
+ * indicate how many tests each feature has
+ * update library-go for new api
+ * update API for test reporting types
+ * adm update status: Refactor node status
+ * adm update status: Add status of control plane nodes
+ * WRKLDS-1171: Add openshift-install-fips target to oc release
+ extract
+ * OCPBUGS-20097: Migrate tools image to RHEL9
+ * Add help text the behavior of filter-by-os against single image
+ * Add OIDC specific certificate authority bundle flag
+ * update library-go
+ * adjust rendering
+ * update vendor for featuregate diffing
+ * update featureset changes to table based view
+ * Revert "WRKLDS-1128: cli/admin/release/git: use optimized git
+ flags"
+ * Remove some of newapp unit tests relying on external deprecated
+ images
+ * pkg/cli/admin/release/info: add back disk space note
+ * Bump coreos/go-oidc to 3.10.0
+ * pkg/cli/admin/release: fix git extract
+ * pkg/cli/admin/release/git: fetch with blob:none
+ * cli/admin/release/git: use optimized git flags
+ * tools: extend the image with sosreport
+ * vendor: Add machineconfiguration client and API
+ * adm update status: Add MCO logic needed for worker node status
+ * adm update status: Fix "Omitted additional... nodes" text
+ * adm update status: Fix update duration after control plane is
+ updated
+ * adm update status: Add worker pool status
+ * pkg/cli/admin/upgrade/status/examples: Add examples for worker
+ pool status
+ * Add images mismatching kubectl version into warning to track
+ * pkg/cli/admin/upgrade/status/examples: Update examples
+ * Drop issuer-url extraction instead rely on issuer-url flag
+ * Introduce --issuer-url flag in oc login
+ * Introduce certificate-authority flag for image related commands
+ * oc idle: Remove redundant endpoint resource modification
+ * Extract oc also for linux/ppc64le
+ * Update some commands incorrect examples
+ * oc adm catalog mirror: reconstruct the original digest with ':'
+ for sha256 and sha512 algorithms on Windows
+ * Print log rather than returning an error when kubectl version
+ mistmaches
+ * Revert "Revert "NO-JIRA: Bump k8s dependencies to 1.29.1""
+ * Tools image no longer has python;adding
+ * Revert "NO-JIRA: Bump k8s dependencies to 1.29.1"
+ * oc adm catalog mirror: use ToSlash and FromSlash to unify the
+ path separators
+ * pkg/cli/admin/inspectalerts/OWNERS: Assign to monitoring team
+ * pkg/cli/admin/inspectalerts: Pivot to Thanos /api/v1/alerts
+ * pkg/cli/admin/inspectalerts: New tech-preview inspect-alerts
+ subcommand
+ * Bump k8s dependencies to 1.29.1
+ * Revert "Fix --parallelism flag formatting in help"
+ * Copy oc.rhel8 instead of symlink
+ * Bump joelanford/ignore to bump go-git to 5.11.0
+ * add FallbackToLogsOnError for easier debugging
+ * pkg/cli/admin/inspect: use since/since-time for previous
+ container logs
+ * Fix --parallelism flag formatting in help
+ * pkg/cli/admin/inspect: format RFC3339 parse error
+ * Simplified kubectl component version check
+ * Revert "Revert "WRKLDS-1016: Bump kube dependencies to 1.29.0""
+ * Revert "WRKLDS-1016: Bump kube dependencies to 1.29.0"
+ * Use correct hash sum of extracted tarball after re-signing with
+ codesign
+ * Add missing resources for describer test
+ * React to argument order change in library-go func
+ * Bump openshift dependencies to align with 1.29.0
+ * React to plugin resolution to beta promotion
+ * Wire warning printer to configflags for shortname warnings
+ * Change type to VolumeResourceRequirements
+ * Bump to 1.29.0
+ * Wire oc login external OIDC issuer to oc get-token cred exec
+ plugin
+ * Add coreos/go-oidc and int128/oauth2cli and bump oauth2
+ dependencies
+ * Add get-token command as cred exec plugin
+ * Unit tests for must-gather all-images
+ * Add --all-images flag to must-gather
+ * Consider kubectl version checks only in cli and cli-artifact
+ images
+ * Write oc adm must-gather logs into a file
+ * oc adm must-gather: pull gather container logs
+ * pkg/cli/admin/mustgather: add since and since-time flags to
+ limit logs
+ * adm update status: add TODOs to remind us to revise early
+ decisions
+ * pkg/cli/admin/inspect: use since/since-time for rotated logs
+ * report kubectl version to the release controller
+ * add markdown representation of features
+ * add information about featuregate diff in a particular release
+ * Skip rhel9 binary not found error for older releases
+ * Allow extracted binary name can be set to different
+ * Generate RHEL8 based oc and add as target to extract
+ * Add RHEL9 oc as linux command in target list
+ * Skip release-arch and arch type collision per command
+ * OTA-1087: Add update health section to `adm update status`
+ * `adm update status`: add fixtures with degraded/unavailable COs
+ * Sanitize path using filepath Clean
+ * oc adm prune images: fix --certificate-authority flag name in
+ validation code
+ * pkg/cli/admin/upgrade/rollback: New rollback command
+ * pkg/cli/tag: validate tag name on creation
+ * Generate oc rhel9 fips compatible binary compiled in rhel9
+ * Bump ocp images to 4.16 in addition to go 1.21
+ * oc release extract: Introduce --idms-file and deprecate
+ icsp-file
+ * Skip network.openshift.io/v1alpha1 in describer unit test
+ * Bump openshift/api to include to the new CloudCredential
+ capability
+ * Remove deprecated password defaulting in default config flag
+ * Migrate from deprecated ioutils to relevant libraries
+ * pkg/cli/admin/release/extract: Log a warning on
+ --credentials-requests without --included
+ * Do not force the ancient OS version dist tag, just use whatever
+ the OS in question sets.
+
+-------------------------------------------------------------------
Old:
----
oc-4.15.0.obscpio
New:
----
oc-4.16.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ oc.spec ++++++
--- /var/tmp/diff_new_pack.TwRQfu/_old 2024-07-04 16:25:57.653397398 +0200
+++ /var/tmp/diff_new_pack.TwRQfu/_new 2024-07-04 16:25:57.653397398 +0200
@@ -1,7 +1,7 @@
#
# spec file for package oc
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,7 +25,7 @@
%define OC_COMMIT 0c63f9da
Name: oc
-Version: 4.15.0
+Version: 4.16.0
Release: 0
Summary: Openshift / OKD Client CLI
License: Apache-2.0
@@ -33,13 +33,13 @@
Source: oc-%{version}.tar.gz
Source1: vendor.tar.gz
BuildRequires: go >= 1.21
-BuildRequires: libgpgme-devel
BuildRequires: krb5-devel
+BuildRequires: libgpgme-devel
# this package contains a kubectl link, so we need a Conflicts
Conflicts: kubernetes-client
-Conflicts: kubernetes-client-provider
Conflicts: kuberlr
+Conflicts: kubernetes-client-provider
%description
With OpenShift Client CLI (oc), you can create applications and manage OpenShift resources. It is built on top of kubectl which means it provides its full capabilities to connect with any kubernetes compliant cluster, and on top adds commands simplifying interaction with an OpenShift cluster.
++++++ _service ++++++
--- /var/tmp/diff_new_pack.TwRQfu/_old 2024-07-04 16:25:57.685398567 +0200
+++ /var/tmp/diff_new_pack.TwRQfu/_new 2024-07-04 16:25:57.689398713 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/openshift/oc</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">openshift-clients-4.15.0-202402082307</param>
+ <param name="revision">openshift-clients-4.16.0-202406131906</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">openshift-clients-(.*)-20..........</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.TwRQfu/_old 2024-07-04 16:25:57.705399298 +0200
+++ /var/tmp/diff_new_pack.TwRQfu/_new 2024-07-04 16:25:57.709399444 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openshift/oc</param>
- <param name="changesrevision">48dcf5980a6671b5933707e5a055def023c7a13a</param></service></servicedata>
+ <param name="changesrevision">a2450418f7b12a71e8f3562a4e9aa8a976bbf85b</param></service></servicedata>
(No newline at EOF)
++++++ oc-4.15.0.obscpio -> oc-4.16.0.obscpio ++++++
/work/SRC/openSUSE:Factory/oc/oc-4.15.0.obscpio /work/SRC/openSUSE:Factory/.oc.new.2080/oc-4.16.0.obscpio differ: char 48, line 1
++++++ oc.obsinfo ++++++
--- /var/tmp/diff_new_pack.TwRQfu/_old 2024-07-04 16:25:57.749400905 +0200
+++ /var/tmp/diff_new_pack.TwRQfu/_new 2024-07-04 16:25:57.753401051 +0200
@@ -1,5 +1,5 @@
name: oc
-version: 4.15.0
-mtime: 1707280963
-commit: 48dcf5980a6671b5933707e5a055def023c7a13a
+version: 4.16.0
+mtime: 1717587587
+commit: a2450418f7b12a71e8f3562a4e9aa8a976bbf85b
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/oc/vendor.tar.gz /work/SRC/openSUSE:Factory/.oc.new.2080/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package inspektor-gadget for openSUSE:Factory checked in at 2024-07-04 16:24:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/inspektor-gadget (Old)
and /work/SRC/openSUSE:Factory/.inspektor-gadget.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "inspektor-gadget"
Thu Jul 4 16:24:27 2024 rev:2 rq:1185167 version:0.30.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/inspektor-gadget/inspektor-gadget.changes 2024-06-09 20:24:34.770931773 +0200
+++ /work/SRC/openSUSE:Factory/.inspektor-gadget.new.2080/inspektor-gadget.changes 2024-07-04 16:25:43.532881715 +0200
@@ -1,0 +2,143 @@
+Wed Jul 03 15:51:22 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 0.30.0:
+ * ci: Set DOCKER_BUILD_NO_SUMMARY.
+ * gadgets/trace_capabilities: Add special check for exec-family
+ syscalls
+ * gadgets: Add trace_capabilities
+ * gadgets/trace_tcpdrop: Add kernel stack field
+ * pkg/operators/ebpf: Support kernel stack map
+ * pkg/oci: Add new options to restrain execution by digest.
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * gadgets: update README.md
+ * gadgets/Makefile: add readme target
+ * gadgets/trace_exec: Add tests
+ * testing: Add helper to sleep
+ * treewide: Remove unneeded systemd workaround.
+ * ci: Use eastus2 for AKS
+ * go: bump github.com/moby/moby
+ * go: bump github.com/docker/cli
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * test/images: Test that export command is deterministic
+ * build: Allow reproducible builds
+ * kubemanager: Check ParamAllNamespaces in PreStart too
+ * datasource: Return error on New()
+ * go: bump github.com/moby/moby
+ * go: bump github.com/docker/cli
+ * ci: Remove ARO from release needs.
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * gadgets/snapshot_process: Port test to use new testing
+ framework
+ * pkg/testing/match: Add unittests
+ * testing: Consolidate match logic in pkg/testing/match
+ * CI: Use multinode cluster for testing gadgets on kubernetes
+ * trace_mount: Add call column and flag decoding
+ * docs: Remove mouting /run for ig.
+ * pkg/container-utils: Preprend HOST_ROOT to
+ /run/cri-dockerd.sock.
+ * cmd/ig: Preprend host.HostRoot to runtime socket path.
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * docs: Add instruction to verify ebpf-builder image.
+ * ci: Verify eBPF builder image before building gadgets.
+ * Revert "container-collection: add process metadata enricher"
+ * gadgets/trace_exec: Update metadata.
+ * ci: bump docker/build-push-action from 5 to 6
+ * ci: bump aquasecurity/trivy-action from 0.22.0 to 0.23.0
+ * add sort operator import to ig and gadgettracermanager binaries
+ * pkg/datasource: add @flyth as code owner
+ * pkg/datasource: improve subscription handling
+ * Fix codeowners
+ * trace_tcp{drop,retrans}: Use bitfields for flags
+ * ebpf/formatters: Support formatting bitfields
+ * trace_open: Add missing fields
+ * gadgets/test: Run tests even if wasm module exists
+ * ig/build: Always pull builder-image if latest tag is used
+ * tests: Disable TestTraceNetwork on cri-o
+ * gadgets/trace_sni: Port test to use new testing framework
+ * pkg/operators/sort: add unit tests
+ * add sort operator
+ * pkg/datasource: add Swap() method to DataArray
+ * gadgets/ports: Convert to host endianess inside the gadget
+ * go: bump github.com/containers/image/v5 from 5.31.0 to 5.31.1
+ * go: bump github.com/tetratelabs/wazero from 1.7.1 to 1.7.3
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * gadgets/trace_exec: Add wasm module to handle args field
+ * docs: Add guide to use wasm from a gadget
+ * docs/reference: Add wasm reference docs
+ * wasm: Add test to check consts are in sync
+ * operators/wasm: Add tests
+ * operators: Add wasm operator
+ * image/build: Use correct Inspektor Gadget code in in-tree
+ gadgets
+ * gadgets: Port trace_tcp_test to gadgets
+ * pkg/container-hook: Check container PID bound before converting
+ it.
+ * ci: bump actions/{download,upload}-artifact from 3 to 4
+ * formatters: Avoid changing name of the field
+ * operators/ebpf: Rename converters to formatters
+ * ci: Use westeurope for AKS.
+ * container-hook: delete old entries and marks after timeout
+ * container-hook: use a single fanotify to watch pid files
+ * integration/kubectl-gadget: Add an option to skip image
+ verification
+ * gadgets/test: Add an option skip image verification
+ * ci: Skip signing ig-k8s image/gadget images on fork
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * go: bump github.com/miekg/dns from 1.1.59 to 1.1.61 in
+ /tools/dnstester
+ * execsnoop: add parent upper layer
+ * gadgets/signal: Add test using the new framework.
+ * integration/Command: Enhance error messages for kill
+ * pkg/oci: Remove undeeded authOpts for getSigningInformation().
+ * container-collection: add process metadata enricher
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * gadgets/trace_mount: Implement test using new framework
+ * tests: Remove duplicated test
+ * testing/containers: Add support for privileged mode
+ * gadgets/trace_open: Improve tests
+ * gadgets/trace_exec: drop uid filter on sys_exit_execve
+ * pkg/gadgets/trace_exec: drop uid filter on sys_exit_execve
+ * pkg/gadgets/capabilities: Fix pid field
+ * container-hook: add new test
+ * pkg/gadgets/capabilities: fix pid and tgid fields
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * ci: Use --format to retrieve image digest instead of grep and
+ awk.
+ * go: bump github.com/spf13/cobra from 1.8.0 to 1.8.1
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * go: bump github.com/docker/docker
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * ci: Sign helper images.
+ * go: bump github.com/moby/moby
+ * ci: Sign ig container image.
+ * ci: Add action to sign container image.
+ * go: bump the k8s group with 8 updates
+ * uprobetracer: use secureopen to avoid TOCTOU issues
+ * New pkg: secureopen: open files in containers
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * go: bump google.golang.org/protobuf from 1.34.1 to 1.34.2
+ * Align k8s json and columns name
+ * trace exec: extract fixup for execve as a common header
+ * fields: Mark fields hidden based on attributes
+ * ci: bump aquasecurity/trivy-action from 0.21.0 to 0.22.0
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * go: bump sigs.k8s.io/controller-runtime from 0.18.3 to 0.18.4
+ * go: bump github.com/docker/{cli,docker} and
+ github.com/moby/moby
+ * go: bump github.com/containerd/containerd from 1.7.17 to 1.7.18
+ * go: bump the golang-x group with 3 updates
+ * go: bump github.com/containers/common from 0.59.0 to 0.59.1
+ * Updating trace_open test to support testing in k8s and adding
+ ci job for testing with k8s
+ * adding helper functions for testing with k8s
+ * gadgets/trace_exec: extract fixup for execve as a common header
+ * go: bump github.com/spf13/viper from 1.18.2 to 1.19.0
+ * go: bump github.com/mdlayher/socket from 0.4.1 to 0.5.1 in
+ /examples
+ * Artifact Hub: Update gadgets version to v0.29.0
+ * container-collection: Don't rely on k8s.io/kubernetes/pkg/...
+ * go: bump github.com/aws/aws-sdk-go in /tools/eks-cleanup
+ * implementing container factory interface for k8s
+ * updating field names: pod and container
+
+-------------------------------------------------------------------
Old:
----
inspektor-gadget-0.29.0.obscpio
New:
----
inspektor-gadget-0.30.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ inspektor-gadget.spec ++++++
--- /var/tmp/diff_new_pack.Va3hLe/_old 2024-07-04 16:25:46.144977109 +0200
+++ /var/tmp/diff_new_pack.Va3hLe/_new 2024-07-04 16:25:46.160977694 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: inspektor-gadget
-Version: 0.29.0
+Version: 0.30.0
Release: 0
Summary: A eBPF tool and systems inspection framework
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Va3hLe/_old 2024-07-04 16:25:46.356984852 +0200
+++ /var/tmp/diff_new_pack.Va3hLe/_new 2024-07-04 16:25:46.396986313 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/inspektor-gadget/inspektor-gadget</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.29.0</param>
+ <param name="revision">v0.30.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Va3hLe/_old 2024-07-04 16:25:46.592993471 +0200
+++ /var/tmp/diff_new_pack.Va3hLe/_new 2024-07-04 16:25:46.636995078 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/inspektor-gadget/inspektor-gadget</param>
- <param name="changesrevision">7c386267cd5f8e46b6be12d56f7475811e6f222e</param></service></servicedata>
+ <param name="changesrevision">8d4753f66034450890bc67dbeaaff58edb118e37</param></service></servicedata>
(No newline at EOF)
++++++ inspektor-gadget-0.29.0.obscpio -> inspektor-gadget-0.30.0.obscpio ++++++
/work/SRC/openSUSE:Factory/inspektor-gadget/inspektor-gadget-0.29.0.obscpio /work/SRC/openSUSE:Factory/.inspektor-gadget.new.2080/inspektor-gadget-0.30.0.obscpio differ: char 49, line 1
++++++ inspektor-gadget.obsinfo ++++++
--- /var/tmp/diff_new_pack.Va3hLe/_old 2024-07-04 16:25:46.897004574 +0200
+++ /var/tmp/diff_new_pack.Va3hLe/_new 2024-07-04 16:25:46.929005742 +0200
@@ -1,5 +1,5 @@
name: inspektor-gadget
-version: 0.29.0
-mtime: 1717178103
-commit: 7c386267cd5f8e46b6be12d56f7475811e6f222e
+version: 0.30.0
+mtime: 1719825849
+commit: 8d4753f66034450890bc67dbeaaff58edb118e37
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/inspektor-gadget/vendor.tar.gz /work/SRC/openSUSE:Factory/.inspektor-gadget.new.2080/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package FreeFileSync for openSUSE:Factory checked in at 2024-07-04 16:24:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/FreeFileSync (Old)
and /work/SRC/openSUSE:Factory/.FreeFileSync.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "FreeFileSync"
Thu Jul 4 16:24:14 2024 rev:25 rq:1185084 version:13.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/FreeFileSync/FreeFileSync.changes 2024-05-15 21:29:10.755200524 +0200
+++ /work/SRC/openSUSE:Factory/.FreeFileSync.new.2080/FreeFileSync.changes 2024-07-04 16:25:29.768379035 +0200
@@ -1,0 +2,9 @@
+Wed Jul 3 08:22:31 UTC 2024 - Christophe Marin <christophe(a)krop.fr>
+
+- Update to 13.7
+ * Support copying symlinks between SFTP devices
+ * Fixed input focus not being restored after comparison/sync
+ * Fixed log file pruning not considering selected configuration
+ * Show startup error details when running outside terminal (Linux)
+
+-------------------------------------------------------------------
Old:
----
FreeFileSync_13.6_Source.zip
New:
----
FreeFileSync_13.7_Source.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ FreeFileSync.spec ++++++
--- /var/tmp/diff_new_pack.QqmAjM/_old 2024-07-04 16:25:31.080426951 +0200
+++ /var/tmp/diff_new_pack.QqmAjM/_new 2024-07-04 16:25:31.080426951 +0200
@@ -21,7 +21,7 @@
%endif
Name: FreeFileSync
-Version: 13.6
+Version: 13.7
Release: 0
Summary: Backup software to synchronize files and folders
License: GPL-3.0-or-later
++++++ FreeFileSync_13.6_Source.zip -> FreeFileSync_13.7_Source.zip ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Changelog.txt new/Changelog.txt
--- old/Changelog.txt 2024-05-10 18:03:31.000000000 +0200
+++ new/Changelog.txt 2024-06-23 09:46:57.000000000 +0200
@@ -1,3 +1,11 @@
+FreeFileSync 13.7 [2024-06-20]
+------------------------------
+Support copying symlinks between SFTP devices
+Fixed input focus not being restored after comparison/sync
+Fixed log file pruning not considering selected configuration
+Show startup error details when running outside terminal (Linux)
+
+
FreeFileSync 13.6 [2024-05-10]
------------------------------
Compact parent path display for medium/large row sizes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/afs/sftp.cpp new/FreeFileSync/Source/afs/sftp.cpp
--- old/FreeFileSync/Source/afs/sftp.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/afs/sftp.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -1474,10 +1474,10 @@
{
if (!fileHandle_)
throw std::logic_error(std::string(__FILE__) + '[' + numberTo<std::string>(__LINE__) + "] Contract violation!");
+
+ ZEN_ON_SCOPE_EXIT(fileHandle_ = nullptr); //reset on error, too! there's no point in, calling libssh2_sftp_close() a second time in ~OutputStreamSftp()
try
{
- ZEN_ON_SCOPE_EXIT(fileHandle_ = nullptr); //reset on error, too! there's no point in, calling libssh2_sftp_close() a second time in ~OutputStreamSftp()
-
session_->executeBlocking("libssh2_sftp_close", //throw SysError, SysErrorSftpProtocol
[&](const SshSession::Details& sd) { return ::libssh2_sftp_close(fileHandle_); }); //noexcept!
}
@@ -1733,26 +1733,31 @@
catch (const SysError& e) { throw FileError(replaceCpy(_("Cannot determine final path for %x."), L"%x", fmtPath(getDisplayPath(linkPath))), e.toString()); }
}
+ static std::string getSymlinkContentImpl(const SftpFileSystem& sftpFs, const AfsPath& linkPath) //throw SysError
+ {
+ std::string buf(10000, '\0');
+ int rc = 0;
+
+ runSftpCommand(sftpFs.login_, "libssh2_sftp_readlink", //throw SysError, SysErrorSftpProtocol
+ [&](const SshSession::Details& sd) { return rc = ::libssh2_sftp_readlink(sd.sftpChannel, getLibssh2Path(linkPath), buf.data(), buf.size()); }); //noexcept!
+
+ ASSERT_SYSERROR(makeUnsigned(rc) <= buf.size()); //better safe than sorry
+
+ buf.resize(rc);
+ return buf;
+ }
+
bool equalSymlinkContentForSameAfsType(const AfsPath& linkPathL, const AbstractPath& linkPathR) const override //throw FileError
{
- auto getTargetPath = [](const SftpFileSystem& sftpFs, const AfsPath& linkPath)
+ auto getLinkContent = [](const SftpFileSystem& sftpFs, const AfsPath& linkPath)
{
- std::string buf(10000, '\0');
- int rc = 0;
try
{
- runSftpCommand(sftpFs.login_, "libssh2_sftp_readlink", //throw SysError, SysErrorSftpProtocol
- [&](const SshSession::Details& sd) { return rc = ::libssh2_sftp_readlink(sd.sftpChannel, getLibssh2Path(linkPath), buf.data(), buf.size()); }); //noexcept!
-
- ASSERT_SYSERROR(makeUnsigned(rc) <= buf.size()); //better safe than sorry
+ return getSymlinkContentImpl(sftpFs, linkPath); //throw SysError
}
catch (const SysError& e) { throw FileError(replaceCpy(_("Cannot resolve symbolic link %x."), L"%x", fmtPath(sftpFs.getDisplayPath(linkPath))), e.toString()); }
-
- buf.resize(rc);
- return buf;
};
-
- return getTargetPath(*this, linkPathL) == getTargetPath(static_cast<const SftpFileSystem&>(linkPathR.afsDevice.ref()), linkPathR.afsPath);
+ return getLinkContent(*this, linkPathL) == getLinkContent(static_cast<const SftpFileSystem&>(linkPathR.afsDevice.ref()), linkPathR.afsPath); //throw FileError
}
//----------------------------------------------------------------------------------------------------------------
@@ -1802,12 +1807,25 @@
throw FileError(replaceCpy(_("Cannot write permissions of %x."), L"%x", fmtPath(AFS::getDisplayPath(targetPath))), _("Operation not supported by device."));
}
- //already existing: fail
- void copySymlinkForSameAfsType(const AfsPath& sourcePath, const AbstractPath& targetPath, bool copyFilePermissions) const override
+ //already existing: fail (SSH_FX_FAILURE)
+ void copySymlinkForSameAfsType(const AfsPath& sourcePath, const AbstractPath& targetPath, bool copyFilePermissions) const override //throw FileError
{
- throw FileError(replaceCpy(replaceCpy(_("Cannot copy symbolic link %x to %y."),
- L"%x", L'\n' + fmtPath(getDisplayPath(sourcePath))),
- L"%y", L'\n' + fmtPath(AFS::getDisplayPath(targetPath))), _("Operation not supported by device."));
+ try
+ {
+ const std::string buf = getSymlinkContentImpl(*this, sourcePath); //throw SysError
+
+ runSftpCommand(static_cast<const SftpFileSystem&>(targetPath.afsDevice.ref()).login_, "libssh2_sftp_symlink", //throw SysError, SysErrorSftpProtocol
+ [&](const SshSession::Details& sd) //noexcept!
+ {
+ return ::libssh2_sftp_symlink(sd.sftpChannel, getLibssh2Path(targetPath.afsPath), buf);
+ });
+ }
+ catch (const SysError& e)
+ {
+ throw FileError(replaceCpy(replaceCpy(_("Cannot copy symbolic link %x to %y."),
+ L"%x", L'\n' + fmtPath(getDisplayPath(sourcePath))),
+ L"%y", L'\n' + fmtPath(AFS::getDisplayPath(targetPath))), e.toString());
+ }
}
//already existing: undefined behavior! (e.g. fail/overwrite)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/application.cpp new/FreeFileSync/Source/application.cpp
--- old/FreeFileSync/Source/application.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/application.cpp 2024-06-23 09:46:58.000000000 +0200
@@ -530,10 +530,6 @@
-> WinInet not working when FFS is running as a service!!! https://support.microsoft.com/en-us/help/238425/info-wininet-not-supported-… */
- std::set<AbstractPath> logFilePathsToKeep;
- for (const ConfigFileItem& item : globalCfg.mainDlg.config.fileHistory)
- logFilePathsToKeep.insert(item.lastRunStats.logFilePath);
-
const std::chrono::system_clock::time_point syncStartTime = std::chrono::system_clock::now();
const WindowLayout::Dimensions progressDim
@@ -666,26 +662,33 @@
}
//--------------------- save log file ----------------------
+ std::set<AbstractPath> logsToKeepPaths;
+ for (const ConfigFileItem& cfi : globalCfg.mainDlg.config.fileHistory)
+ if (!equalNativePath(cfi.cfgFilePath, cfgFilePath)) //exception: don't keep old log for the selected cfg file!
+ logsToKeepPaths.insert(cfi.lastRunStats.logFilePath);
+
try //create not before destruction: 1. avoid issues with FFS trying to sync open log file 2. include status in log file name without extra rename
{
//do NOT use tryReportingError()! saving log files should not be cancellable!
- saveLogFile(logFilePath, r.summary, r.errorLog.ref(), globalCfg.logfilesMaxAgeDays, globalCfg.logFormat, logFilePathsToKeep, notifyStatusNoThrow); //throw FileError
+ saveLogFile(logFilePath, r.summary, r.errorLog.ref(), globalCfg.logfilesMaxAgeDays, globalCfg.logFormat, logsToKeepPaths, notifyStatusNoThrow); //throw FileError
}
catch (const FileError& e)
{
- logMsg(r.errorLog.ref(), e.toString(), MSG_TYPE_ERROR);
+ try //fallback: log file *must* be saved no matter what!
+ {
+ const AbstractPath logFileDefaultPath = AFS::appendRelPath(createAbstractPath(getLogFolderDefaultPath()), generateLogFileName(globalCfg.logFormat, r.summary));
+ if (logFilePath == logFileDefaultPath)
+ throw;
- const AbstractPath logFileDefaultPath = AFS::appendRelPath(createAbstractPath(getLogFolderDefaultPath()), generateLogFileName(globalCfg.logFormat, r.summary));
- if (logFilePath != logFileDefaultPath) //fallback: log file *must* be saved no matter what!
- try
- {
- logFilePath = logFileDefaultPath;
- saveLogFile(logFileDefaultPath, r.summary, r.errorLog.ref(), globalCfg.logfilesMaxAgeDays, globalCfg.logFormat, logFilePathsToKeep, notifyStatusNoThrow); //throw FileError
- }
- catch (const FileError& e2) { logMsg(r.errorLog.ref(), e2.toString(), MSG_TYPE_ERROR); assert(false); } //should never happen!!!
+ logMsg(r.errorLog.ref(), e.toString(), MSG_TYPE_ERROR);
+
+ logFilePath = logFileDefaultPath;
+ saveLogFile(logFileDefaultPath, r.summary, r.errorLog.ref(), globalCfg.logfilesMaxAgeDays, globalCfg.logFormat, logsToKeepPaths, notifyStatusNoThrow); //throw FileError
+ }
+ catch (const FileError& e2) { logMsg(r.errorLog.ref(), e2.toString(), MSG_TYPE_ERROR); logExtraError(e2.toString()); } //should never happen!!!
}
- //--------- update last sync stats for the selected cfg files ---------
+ //--------- update last sync stats for the selected cfg file ---------
const ErrorLogStats& logStats = getStats(r.errorLog.ref());
for (ConfigFileItem& cfi : globalCfg.mainDlg.config.fileHistory)
@@ -702,8 +705,8 @@
r.summary.statsProcessed.items,
r.summary.statsProcessed.bytes,
r.summary.totalTime,
- logStats.error,
- logStats.warning,
+ logStats.errors,
+ logStats.warnings,
};
break;
}
@@ -726,9 +729,9 @@
}
//email sending, or saving log file failed? at least this should affect the exit code:
- if (logStats.error > 0)
+ if (logStats.errors > 0)
raiseExitCode(exitCode_, FfsExitCode::error);
- else if (logStats.warning > 0)
+ else if (logStats.warnings > 0)
raiseExitCode(exitCode_, FfsExitCode::warning);
//---------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/base/db_file.cpp new/FreeFileSync/Source/base/db_file.cpp
--- old/FreeFileSync/Source/base/db_file.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/base/db_file.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -55,7 +55,7 @@
- precomposed/decomposed UTF: differences already ignored
- 32 vs 64-bit: already handled
- => give db files different names: */
+ => give DB files different names: */
const Zstring dbName = Zstr(".sync"); //files beginning with dots are usually hidden
return AFS::appendRelPath(baseFolder.getAbstractPath<side>(), dbName + SYNC_DB_FILE_ENDING);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/log_file.cpp new/FreeFileSync/Source/log_file.cpp
--- old/FreeFileSync/Source/log_file.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/log_file.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -50,8 +50,8 @@
const ErrorLogStats logCount = getStats(log);
- if (logCount.error > 0) summary.push_back(tabSpace + utfTo<std::string>(_("Errors:") + L' ' + formatNumber(logCount.error)));
- if (logCount.warning > 0) summary.push_back(tabSpace + utfTo<std::string>(_("Warnings:") + L' ' + formatNumber(logCount.warning)));
+ if (logCount.errors > 0) summary.push_back(tabSpace + utfTo<std::string>(_("Errors:") + L' ' + formatNumber(logCount.errors)));
+ if (logCount.warnings > 0) summary.push_back(tabSpace + utfTo<std::string>(_("Warnings:") + L' ' + formatNumber(logCount.warnings)));
summary.push_back(tabSpace + utfTo<std::string>(_("Items processed:") + L' ' + formatNumber(s.statsProcessed.items) + //show always, even if 0!
L" (" + formatFilesizeShort(s.statsProcessed.bytes) + L')'));
@@ -79,7 +79,7 @@
output += '|' + std::string(sepLineLen, '_') + "\n\n";
//------------ warnings/errors preview ----------------
- const int logFailTotal = logCount.warning + logCount.error;
+ const int logFailTotal = logCount.warnings + logCount.errors;
if (logFailTotal > 0)
{
output += '\n' + utfTo<std::string>(_("Errors and warnings:")) + '\n';
@@ -251,20 +251,20 @@
const ErrorLogStats logCount = getStats(log);
- if (logCount.error > 0)
+ if (logCount.errors > 0)
output += R"(
<tr>
<td>)" + htmlTxt(_("Errors:")) + R"(</td>
<td><img src="https://freefilesync.org/images/log/msg-error.png" width="24" height="24" alt=""></td>
- <td><span style="font-weight:600;">)" + htmlTxt(formatNumber(logCount.error)) + R"(</span></td>
+ <td><span style="font-weight:600;">)" + htmlTxt(formatNumber(logCount.errors)) + R"(</span></td>
</tr>)";
- if (logCount.warning > 0)
+ if (logCount.warnings > 0)
output += R"(
<tr>
<td>)" + htmlTxt(_("Warnings:")) + R"(</td>
<td><img src="https://freefilesync.org/images/log/msg-warning.png" width="24" height="24" alt=""></td>
- <td><span style="font-weight:600;">)" + htmlTxt(formatNumber(logCount.warning)) + R"(</span></td>
+ <td><span style="font-weight:600;">)" + htmlTxt(formatNumber(logCount.warnings)) + R"(</span></td>
</tr>)";
output += R"(
@@ -299,7 +299,7 @@
)";
//------------ warnings/errors preview ----------------
- const int logFailTotal = logCount.warning + logCount.error;
+ const int logFailTotal = logCount.warnings + logCount.errors;
if (logFailTotal > 0)
{
output += R"(
@@ -526,7 +526,7 @@
void limitLogfileCount(const AbstractPath& logFolderPath, //throw FileError, X
int logfilesMaxAgeDays, //<= 0 := no limit
- const std::set<AbstractPath>& logFilePathsToKeep,
+ const std::set<AbstractPath>& logsToKeepPaths,
const std::function<void(std::wstring&& msg)>& notifyStatus /*throw X*/)
{
if (logfilesMaxAgeDays > 0)
@@ -551,7 +551,7 @@
for (const LogFileInfo& lfi : logFiles)
if (lfi.timeStamp < cutOffTime &&
- !logFilePathsToKeep.contains(lfi.filePath)) //don't trim latest log files corresponding to last used config files!
+ !logsToKeepPaths.contains(lfi.filePath)) //don't trim latest log files corresponding to last used config files!
//nitpicker's corner: what about path differences due to case? e.g. user-overriden log file path changed in case
{
if (notifyStatus) notifyStatus(statusPrefix + fmtPath(AFS::getDisplayPath(lfi.filePath))); //throw X
@@ -635,7 +635,7 @@
const ErrorLog& log,
int logfilesMaxAgeDays,
LogFileFormat logFormat,
- const std::set<AbstractPath>& logFilePathsToKeep,
+ const std::set<AbstractPath>& logsToKeepPaths,
const std::function<void(std::wstring&& msg)>& notifyStatus /*throw X*/)
{
std::exception_ptr firstError;
@@ -648,9 +648,8 @@
try
{
const std::optional<AbstractPath> logFolderPath = AFS::getParentPath(logFilePath);
- assert(logFolderPath);
- if (logFolderPath) //else: logFilePath == device root; not possible with generateLogFilePath()
- limitLogfileCount(*logFolderPath, logfilesMaxAgeDays, logFilePathsToKeep, notifyStatus); //throw FileError, X
+ assert(logFolderPath); //else: logFilePath == device root; not possible with generateLogFilePath()
+ limitLogfileCount(*logFolderPath, logfilesMaxAgeDays, logsToKeepPaths, notifyStatus); //throw FileError, X
}
catch (const FileError&) { if (!firstError) firstError = std::current_exception(); };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/log_file.h new/FreeFileSync/Source/log_file.h
--- old/FreeFileSync/Source/log_file.h 2024-05-10 18:03:31.000000000 +0200
+++ new/FreeFileSync/Source/log_file.h 2024-06-23 09:46:57.000000000 +0200
@@ -29,7 +29,7 @@
const zen::ErrorLog& log,
int logfilesMaxAgeDays,
LogFileFormat logFormat,
- const std::set<AbstractPath>& logFilePathsToKeep,
+ const std::set<AbstractPath>& logsToKeepPaths,
const std::function<void(std::wstring&& msg)>& notifyStatus /*throw X*/);
void sendLogAsEmail(const std::string& email, //throw FileError, X
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/ui/batch_status_handler.cpp new/FreeFileSync/Source/ui/batch_status_handler.cpp
--- old/FreeFileSync/Source/ui/batch_status_handler.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/ui/batch_status_handler.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -85,9 +85,9 @@
return TaskResult::cancelled;
}
const ErrorLogStats logCount = getStats(errorLog_.ref());
- if (logCount.error > 0)
+ if (logCount.errors > 0)
return TaskResult::error;
- else if (logCount.warning > 0)
+ else if (logCount.warnings > 0)
return TaskResult::warning;
if (getTotalStats() == ProgressStats())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/ui/gui_status_handler.cpp new/FreeFileSync/Source/ui/gui_status_handler.cpp
--- old/FreeFileSync/Source/ui/gui_status_handler.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/ui/gui_status_handler.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -156,9 +156,9 @@
}
const ErrorLogStats logCount = getStats(errorLog_);
- if (logCount.error > 0)
+ if (logCount.errors > 0)
return TaskResult::error;
- else if (logCount.warning > 0)
+ else if (logCount.warnings > 0)
return TaskResult::warning;
else
return TaskResult::success;
@@ -430,9 +430,9 @@
}
const ErrorLogStats logCount = getStats(errorLog_.ref());
- if (logCount.error > 0)
+ if (logCount.errors > 0)
return TaskResult::error;
- else if (logCount.warning > 0)
+ else if (logCount.warnings > 0)
return TaskResult::warning;
if (getTotalStats() == ProgressStats())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/ui/log_panel.cpp new/FreeFileSync/Source/ui/log_panel.cpp
--- old/FreeFileSync/Source/ui/log_panel.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/ui/log_panel.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -354,17 +354,17 @@
btn.SetToolTip(tooltip);
};
- initButton(*m_bpButtonErrors, "msg_error", _("Error" ) + L" (" + formatNumber(logCount.error) + L')');
- initButton(*m_bpButtonWarnings, "msg_warning", _("Warning") + L" (" + formatNumber(logCount.warning) + L')');
- initButton(*m_bpButtonInfo, "msg_info", _("Info" ) + L" (" + formatNumber(logCount.info) + L')');
+ initButton(*m_bpButtonErrors, "msg_error", _("Error" ) + L" (" + formatNumber(logCount.errors) + L')');
+ initButton(*m_bpButtonWarnings, "msg_warning", _("Warning") + L" (" + formatNumber(logCount.warnings) + L')');
+ initButton(*m_bpButtonInfo, "msg_info", _("Info" ) + L" (" + formatNumber(logCount.infos) + L')');
m_bpButtonErrors ->setActive(true);
m_bpButtonWarnings->setActive(true);
- m_bpButtonInfo ->setActive(logCount.warning + logCount.error == 0);
+ m_bpButtonInfo ->setActive(logCount.warnings + logCount.errors == 0);
- m_bpButtonErrors ->Show(logCount.error != 0);
- m_bpButtonWarnings->Show(logCount.warning != 0);
- m_bpButtonInfo ->Show(logCount.info != 0);
+ m_bpButtonErrors ->Show(logCount.errors != 0);
+ m_bpButtonWarnings->Show(logCount.warnings != 0);
+ m_bpButtonInfo ->Show(logCount.infos != 0);
m_gridMessages->setDataProvider(std::make_shared<GridDataMessages>(newLog));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/ui/main_dlg.cpp new/FreeFileSync/Source/ui/main_dlg.cpp
--- old/FreeFileSync/Source/ui/main_dlg.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/ui/main_dlg.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -302,64 +302,38 @@
//---------------------------------------------------------------------------------------------
-/* mitigate unwanted reentrancy caused by wxApp::Yield()
-
- CAVEAT: This doesn't block all theoretically possible Window events that were queued *before* disableGuiElementsImpl() takes effect,
- but at least the 90% case of (rare!) crashes caused by a duplicate click event on comparison or sync button. */
-class MainDialog::SingleOperationBlocker
+class MainDialog::UiInputDisabler
{
public:
- explicit SingleOperationBlocker(MainDialog& mainDlg) : mainDlg_(mainDlg) {}
+ UiInputDisabler(MainDialog& mainDlg, bool enableAbort) : mainDlg_(mainDlg)
+ {
+ disableGuiElementsImpl(enableAbort);
+ }
- ~SingleOperationBlocker()
+ ~UiInputDisabler()
{
- if (opStarted_)
+ if (!dismissed_ )
{
- if (guiDisabled_)
- {
- wxTheApp->Yield(); //GUI update before enabling buttons again: prevent strange behaviour of delayed button clicks
- enableGuiElementsImpl();
- }
- assert(mainDlg_.operationInProgress_);
- mainDlg_.operationInProgress_ = false;
+ wxTheApp->Yield(); //GUI update before enabling buttons again: prevent strange behaviour of delayed button clicks
+ enableGuiElementsImpl();
}
- else assert(!guiDisabled_);
}
- bool start() //disabling GUI elements is NOT enough! e.g. reentrancy when there's a second click event *already* in the Windows message queue
- {
- if (mainDlg_.operationInProgress_)
- return false;
-
- return mainDlg_.operationInProgress_ = opStarted_ = true;
- }
-
- void disableGui(bool enableAbort) //=> logically belongs into start()! But keep seperate: modal dialogs look better when GUI is not yet disabled
- {
- assert(opStarted_ && !guiDisabled_);
- guiDisabled_ = true;
- disableGuiElementsImpl(enableAbort);
- }
-
- void dismiss()
- {
- opStarted_ = guiDisabled_ = false;
- }
+ void dismiss() { dismissed_ = true; }
private:
- SingleOperationBlocker (const SingleOperationBlocker&) = delete;
- SingleOperationBlocker& operator=(const SingleOperationBlocker&) = delete;
+ UiInputDisabler (const UiInputDisabler&) = delete;
+ UiInputDisabler& operator=(const UiInputDisabler&) = delete;
void disableGuiElementsImpl(bool enableAbort); //dis-/enable all elements (except abort button) that might receive unwanted user input
void enableGuiElementsImpl(); //during long-running processes: comparison, deletion
MainDialog& mainDlg_;
- bool opStarted_ = false;
- bool guiDisabled_ = false;
+ bool dismissed_ = false;
};
-void MainDialog::SingleOperationBlocker::disableGuiElementsImpl(bool enableAbort)
+void MainDialog::UiInputDisabler::disableGuiElementsImpl(bool enableAbort)
{
//disables all elements (except abort button) that might receive user input during long-running processes:
//when changing consider: comparison, synchronization, manual deletion
@@ -410,7 +384,7 @@
}
-void MainDialog::SingleOperationBlocker::enableGuiElementsImpl()
+void MainDialog::UiInputDisabler::enableGuiElementsImpl()
{
//wxGTK, yet another QOI issue: some stupid bug keeps moving main dialog to top!!
mainDlg_.EnableCloseButton(true);
@@ -1154,7 +1128,7 @@
if (!extraLog.empty())
{
const ErrorLogStats logCount = getStats(extraLog);
- const TaskResult taskResult = logCount.error > 0 ? TaskResult::error : (logCount.warning > 0 ? TaskResult::warning : TaskResult::success);
+ const TaskResult taskResult = logCount.errors > 0 ? TaskResult::error : (logCount.warnings > 0 ? TaskResult::warning : TaskResult::success);
setLastOperationLog({.result = taskResult}, make_shared<const ErrorLog>(std::move(extraLog)));
showLogPanel(true);
}
@@ -1626,9 +1600,9 @@
void MainDialog::copyToAlternateFolder(const std::vector<FileSystemObject*>& selectionL,
const std::vector<FileSystemObject*>& selectionR)
{
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start())
+ if (std::exchange(operationInProgress_, true))
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
std::vector<const FileSystemObject*> copyLeft;
std::vector<const FileSystemObject*> copyRight;
@@ -1668,7 +1642,7 @@
const auto& guiCfg = getConfig();
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
StatusHandlerTemporaryPanel statusHandler(*this, std::chrono::system_clock::now() /*startTime*/,
false /*ignoreErrors*/,
@@ -1698,9 +1672,9 @@
void MainDialog::deleteSelectedFiles(const std::vector<FileSystemObject*>& selectionL,
const std::vector<FileSystemObject*>& selectionR, bool moveToRecycler)
{
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start())
+ if (std::exchange(operationInProgress_, true))
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
std::vector<FileSystemObject*> deleteLeft = selectionL;
std::vector<FileSystemObject*> deleteRight = selectionR;
@@ -1730,7 +1704,7 @@
//wxBusyCursor dummy; -> redundant: progress already shown in status bar!
const auto& guiCfg = getConfig();
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
StatusHandlerTemporaryPanel statusHandler(*this, std::chrono::system_clock::now() /*startTime*/,
false /*ignoreErrors*/,
@@ -1763,9 +1737,9 @@
void MainDialog::renameSelectedFiles(const std::vector<FileSystemObject*>& selectionL,
const std::vector<FileSystemObject*>& selectionR)
{
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start())
+ if (std::exchange(operationInProgress_, true))
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
std::vector<FileSystemObject*> renameLeft = selectionL;
std::vector<FileSystemObject*> renameRight = selectionR;
@@ -1793,7 +1767,7 @@
//wxBusyCursor dummy; -> redundant: progress already shown in status bar!
const auto& guiCfg = getConfig();
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
StatusHandlerTemporaryPanel statusHandler(*this, std::chrono::system_clock::now() /*startTime*/,
false /*ignoreErrors*/,
@@ -1936,9 +1910,9 @@
const std::vector<FileSystemObject*>& selectionL,
const std::vector<FileSystemObject*>& selectionR)
{
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start())
+ if (std::exchange(operationInProgress_, true))
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
try
{
@@ -2027,7 +2001,7 @@
FocusPreserver fp;
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
StatusHandlerTemporaryPanel statusHandler(*this, std::chrono::system_clock::now() /*startTime*/,
false /*ignoreErrors*/,
@@ -3286,6 +3260,8 @@
void MainDialog::cfgHistoryRemoveObsolete(const std::vector<Zstring>& filePaths)
{
+ warn_static("shouldn't delete on access denied!?") //https://freefilesync.org/forum/viewtopic.php?t=11363
+
auto getUnavailableCfgFilesAsync = [filePaths] //don't use wxString: NOT thread-safe! (e.g. non-atomic ref-count)
{
std::vector<std::future<bool>> availableFiles; //check existence of all config files in parallel!
@@ -3767,9 +3743,9 @@
void MainDialog::removeSelectedCfgHistoryItems(bool deleteFromDisk)
{
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start())
+ if (std::exchange(operationInProgress_, true))
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
const std::vector<size_t> selectedRows = m_gridCfgHistory->getSelectedRows();
if (!selectedRows.empty())
@@ -3795,7 +3771,7 @@
moveToRecycler) != ConfirmationButton::accept)
return;
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
StatusHandlerTemporaryPanel statusHandler(*this, std::chrono::system_clock::now() /*startTime*/,
false /*ignoreErrors*/,
@@ -4583,9 +4559,14 @@
void MainDialog::onCompare(wxCommandEvent& event)
{
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start())
+ /* mitigate unwanted reentrancy caused by wxApp::Yield():
+ disabling GUI elements is NOT enough! e.g. reentrancy when there's a second click event *already* in the Windows message queue
+
+ CAVEAT: This doesn't block all theoretically possible Window events that were queued *before* disableGuiElementsImpl() takes effect,
+ but at least the 90% case of (rare!) crashes caused by a duplicate click event on comparison or sync button. */
+ if (std::exchange(operationInProgress_, true))
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
//wxBusyCursor dummy; -> redundant: progress already shown in progress dialog!
@@ -4609,7 +4590,7 @@
const std::vector<FolderPairCfg>& fpCfgList = extractCompareCfg(guiCfg.mainCfg);
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
//handle status display and error messages
StatusHandlerTemporaryPanel statusHandler(*this, std::chrono::system_clock::now(),
@@ -4844,9 +4825,10 @@
return;
}
- SingleOperationBlocker opBlock(*this); //*after* simluated comparison button click!
- if (!opBlock.start())
+ if (std::exchange(operationInProgress_, true)) //*after* simluated comparison button click!
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
+ //------------------------------------------------------------------
const auto& guiCfg = getConfig();
@@ -4863,10 +4845,6 @@
globalCfg_.confirmDlgs.confirmSyncStart = !dontShowAgain;
}
- std::set<AbstractPath> logFilePathsToKeep;
- for (const ConfigFileItem& item : cfggrid::getDataView(*m_gridCfgHistory).get())
- logFilePathsToKeep.insert(item.lastRunStats.logFilePath);
-
const std::chrono::system_clock::time_point syncStartTime = std::chrono::system_clock::now();
const WindowLayout::Dimensions progressDim
@@ -4876,7 +4854,7 @@
globalCfg_.dpiLayouts[getDpiScalePercent()].progressDlg.isMaximized
};
- opBlock.disableGui(false /*enableAbort*/); //StatusHandlerFloatingDialog will internally process Window messages, so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, false /*enableAbort*/); //StatusHandlerFloatingDialog will internally process Window messages, so avoid unexpected callbacks!
//class handling status updates and error messages
StatusHandlerFloatingDialog statusHandler(this, getJobNames(), syncStartTime,
@@ -5018,23 +4996,33 @@
}
//--------------------- save log file ----------------------
+ std::set<AbstractPath> logsToKeepPaths;
+ {
+ const std::set<Zstring /*cfg file path*/, LessNativePath> activeCfgSorted(activeConfigFiles_.begin(), activeConfigFiles_.end());
+
+ for (const ConfigFileItem& cfi : cfggrid::getDataView(*m_gridCfgHistory).get())
+ if (!activeCfgSorted.contains(cfi.cfgFilePath)) //exception: don't keep old logs for the selected cfg files!
+ logsToKeepPaths.insert(cfi.lastRunStats.logFilePath);
+ }
try //create not before destruction: 1. avoid issues with FFS trying to sync open log file 2. include status in log file name without extra rename
{
//do NOT use tryReportingError()! saving log files should not be cancellable!
- saveLogFile(logFilePath, fullSummary, fullLog, globalCfg_.logfilesMaxAgeDays, globalCfg_.logFormat, logFilePathsToKeep, notifyStatusNoThrow); //throw FileError
+ saveLogFile(logFilePath, fullSummary, fullLog, globalCfg_.logfilesMaxAgeDays, globalCfg_.logFormat, logsToKeepPaths, notifyStatusNoThrow); //throw FileError
}
catch (const FileError& e)
{
- logMsg2(e.toString(), MSG_TYPE_ERROR);
+ try //fallback: log file *must* be saved no matter what!
+ {
+ const AbstractPath logFileDefaultPath = AFS::appendRelPath(createAbstractPath(getLogFolderDefaultPath()), generateLogFileName(globalCfg_.logFormat, fullSummary));
+ if (logFilePath == logFileDefaultPath)
+ throw;
- const AbstractPath logFileDefaultPath = AFS::appendRelPath(createAbstractPath(getLogFolderDefaultPath()), generateLogFileName(globalCfg_.logFormat, fullSummary));
- if (logFilePath != logFileDefaultPath) //fallback: log file *must* be saved no matter what!
- try
- {
- logFilePath = logFileDefaultPath;
- saveLogFile(logFileDefaultPath, fullSummary, fullLog, globalCfg_.logfilesMaxAgeDays, globalCfg_.logFormat, logFilePathsToKeep, notifyStatusNoThrow); //throw FileError
- }
- catch (const FileError& e2) { logMsg2(e2.toString(), MSG_TYPE_ERROR); assert(false); } //should never happen!!!
+ logMsg2(e.toString(), MSG_TYPE_ERROR);
+
+ logFilePath = logFileDefaultPath;
+ saveLogFile(logFileDefaultPath, fullSummary, fullLog, globalCfg_.logfilesMaxAgeDays, globalCfg_.logFormat, logsToKeepPaths, notifyStatusNoThrow); //throw FileError
+ }
+ catch (const FileError& e2) { logMsg2(e2.toString(), MSG_TYPE_ERROR); logExtraError(e2.toString()); } //should never happen!!!
}
//--------- update last sync stats for the selected cfg files ---------
@@ -5048,8 +5036,8 @@
fullSummary.statsProcessed.items,
fullSummary.statsProcessed.bytes,
fullSummary.totalTime,
- fullLogStats.error,
- fullLogStats.warning,
+ fullLogStats.errors,
+ fullLogStats.warnings,
});
//re-apply selection: sort order changed if sorted by last sync time
cfggrid::addAndSelect(*m_gridCfgHistory, activeConfigFiles_, false /*scrollToSelection*/);
@@ -5080,7 +5068,7 @@
case FinalRequest::exit:
Destroy(); //don't use Close() which prompts to save current config in onClose()
- opBlock.dismiss(); //...or else we'll crash when ~SingleOperationBlocker() calls Yield()!
+ uiBlock.dismiss(); //...or else: crash when ~UiInputDisabler() calls Yield() + enableGuiElementsImpl()!
break;
case FinalRequest::shutdown:
@@ -5119,9 +5107,9 @@
void MainDialog::startSyncForSelecction(const std::vector<FileSystemObject*>& selection)
{
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start())
+ if (std::exchange(operationInProgress_, true))
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
//------------------ analyze selection ------------------
std::unordered_set<const BaseFolderPair*> basePairsSelect;
@@ -5217,7 +5205,7 @@
//last sync log file? => let's go without; same behavior as manual deletion
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
StatusHandlerTemporaryPanel statusHandler(*this, syncStartTime,
guiCfg.mainCfg.ignoreErrors,
@@ -5284,9 +5272,9 @@
if (errorLog)
{
const ErrorLogStats logCount = getStats(*errorLog);
- if (logCount.error > 0)
+ if (logCount.errors > 0)
return loadImage("msg_error", dipToScreen(getMenuIconDipSize()));
- if (logCount.warning > 0)
+ if (logCount.warnings > 0)
return loadImage("msg_warning", dipToScreen(getMenuIconDipSize()));
//return loadImage("msg_success", dipToScreen(getMenuIconDipSize())); -> too noisy?
@@ -5432,9 +5420,11 @@
void MainDialog::swapSides()
{
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start())
+ if (std::exchange(operationInProgress_, true))
return;
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
+
+ FocusPreserver fp;
if (!folderCmp_.empty() && //require confirmation only *after* comparison
globalCfg_.confirmDlgs.confirmSwapSides)
@@ -5494,9 +5484,7 @@
{
const auto& guiCfg = getConfig();
- FocusPreserver fp;
-
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
StatusHandlerTemporaryPanel statusHandler(*this, std::chrono::system_clock::now() /*startTime*/,
false /*ignoreErrors*/,
@@ -5730,16 +5718,17 @@
{
if (!folderCmp_.empty())
{
- const auto& guiCfg = getConfig();
- const auto& directCfgs = extractDirectionCfg(folderCmp_, getConfig().mainCfg);
-
- SingleOperationBlocker opBlock(*this);
- if (!opBlock.start()) //can't just skip, but now's a really bad time! Hopefully never happens!?
+ if (std::exchange(operationInProgress_, true))
+ //can't just skip:t now's a really bad time! Hopefully never happens!?
throw std::runtime_error(std::string(__FILE__) + '[' + numberTo<std::string>(__LINE__) + "] Sync direction changed while other operation running.");
+ ZEN_ON_SCOPE_EXIT(operationInProgress_ = false);
FocusPreserver fp;
- opBlock.disableGui(true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+ UiInputDisabler uiBlock(*this, true /*enableAbort*/); //StatusHandlerTemporaryPanel calls wxApp::Yield(), so avoid unexpected callbacks!
+
+ const auto& guiCfg = getConfig();
+ const auto& directCfgs = extractDirectionCfg(folderCmp_, getConfig().mainCfg);
StatusHandlerTemporaryPanel statusHandler(*this, std::chrono::system_clock::now() /*startTime*/,
false /*ignoreErrors*/,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/ui/main_dlg.h new/FreeFileSync/Source/ui/main_dlg.h
--- old/FreeFileSync/Source/ui/main_dlg.h 2024-05-10 18:03:32.000000000 +0200
+++ new/FreeFileSync/Source/ui/main_dlg.h 2024-06-23 09:46:58.000000000 +0200
@@ -66,7 +66,7 @@
friend class FolderPairCallback;
friend class PanelMoveWindow;
- class SingleOperationBlocker; //mitigate unwanted reentrancy caused by wxApp::Yield()
+ class UiInputDisabler;
//configuration load/save
void setLastUsedConfig(const XmlGuiConfig& guiConfig, const std::vector<Zstring>& cfgFilePaths);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/ui/progress_indicator.cpp new/FreeFileSync/Source/ui/progress_indicator.cpp
--- old/FreeFileSync/Source/ui/progress_indicator.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/ui/progress_indicator.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -1511,7 +1511,7 @@
//show log instead of graph if errors occurred! (not required for ignored warnings)
const ErrorLogStats logCount = getStats(log.ref());
- if (logCount.error > 0)
+ if (logCount.errors > 0)
pnl_.m_notebookResult->ChangeSelection(pagePosLog);
//fill image list to cope with wxNotebook image setting design desaster...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/ui/small_dlgs.cpp new/FreeFileSync/Source/ui/small_dlgs.cpp
--- old/FreeFileSync/Source/ui/small_dlgs.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/FreeFileSync/Source/ui/small_dlgs.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -1129,7 +1129,7 @@
void DeleteDialog::onOkay(wxCommandEvent& event)
{
- //additional safety net, similar to Windows Explorer: time delta between DEL and ENTER must be at least 50ms to avoid accidental deletion!
+ //additional safety net, similar to File Explorer: time delta between DEL and ENTER must be at least 50ms to avoid accidental deletion!
if (std::chrono::steady_clock::now() < dlgStartTime_ + std::chrono::milliseconds(50)) //considers chrono-wrap-around!
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/FreeFileSync/Source/version/version.h new/FreeFileSync/Source/version/version.h
--- old/FreeFileSync/Source/version/version.h 2024-05-10 18:03:32.000000000 +0200
+++ new/FreeFileSync/Source/version/version.h 2024-06-23 09:46:58.000000000 +0200
@@ -3,7 +3,7 @@
namespace fff
{
-const char ffsVersion[] = "13.6"; //internal linkage!
+const char ffsVersion[] = "13.7"; //internal linkage!
const char FFS_VERSION_SEPARATOR = '.';
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcurl/curl_wrap.cpp new/libcurl/curl_wrap.cpp
--- old/libcurl/curl_wrap.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/libcurl/curl_wrap.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -402,9 +402,10 @@
ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CLIENTCERT);
ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNRECOVERABLE_POLL);
ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TOO_LARGE);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_ECH_REQUIRED);
ZEN_CHECK_CASE_FOR_CONSTANT(CURL_LAST);
}
- static_assert(CURL_LAST == CURLE_TOO_LARGE + 1);
+ static_assert(CURL_LAST == CURLE_ECH_REQUIRED + 1);
return replaceCpy<std::wstring>(L"Curl status %x", L"%x", numberTo<std::wstring>(static_cast<int>(sc)));
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libssh2/libssh2_wrap.h new/libssh2/libssh2_wrap.h
--- old/libssh2/libssh2_wrap.h 2024-05-10 18:03:32.000000000 +0200
+++ new/libssh2/libssh2_wrap.h 2024-06-23 09:46:58.000000000 +0200
@@ -107,6 +107,20 @@
return libssh2_sftp_symlink_ex(sftp, path.c_str(), static_cast<unsigned int>(path.size()), buf, static_cast<unsigned int>(bufSize), LIBSSH2_SFTP_READLINK);
}
+#undef libssh2_sftp_symlink
+inline int libssh2_sftp_symlink(LIBSSH2_SFTP* sftp, const std::string& path, const std::string_view buf)
+{
+ return libssh2_sftp_symlink_ex(sftp,
+ /* CAVEAT: https://www.sftp.net/spec/openssh-sftp-extensions.txt
+ "When OpenSSH's sftp-server was implemented, the order of the arguments
+ to the SSH_FXP_SYMLINK method was inadvertently reversed."
+
+ => of course libssh2 didn't get the memo: fix this shit: */
+ /**/ buf .data (), static_cast<unsigned int>(buf .size()),
+ const_cast<char*>(path.c_str()), static_cast<unsigned int>(path.size()),
+ LIBSSH2_SFTP_SYMLINK);
+}
+
#undef libssh2_sftp_rename
inline int libssh2_sftp_rename(LIBSSH2_SFTP* sftp, const std::string& pathFrom, const std::string& pathTo, long flags)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wx+/grid.cpp new/wx+/grid.cpp
--- old/wx+/grid.cpp 2024-05-10 18:03:33.000000000 +0200
+++ new/wx+/grid.cpp 2024-06-23 09:46:59.000000000 +0200
@@ -163,7 +163,7 @@
if (extentTrunc.GetWidth() > rect.width)
{
- //unlike Windows Explorer, we truncate UTF-16 correctly: e.g. CJK-Ideograph encodes to TWO wchar_t: utfTo<std::wstring>("\xf0\xa4\xbd\x9c");
+ //unlike File Explorer, we truncate UTF-16 correctly: e.g. CJK-Ideograph encodes to TWO wchar_t: utfTo<std::wstring>("\xf0\xa4\xbd\x9c");
size_t low = 0; //number of Unicode chars!
size_t high = unicodeLength(text); //
if (high > 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wx+/window_tools.h new/wx+/window_tools.h
--- old/wx+/window_tools.h 2024-05-10 18:03:32.000000000 +0200
+++ new/wx+/window_tools.h 2024-06-23 09:46:58.000000000 +0200
@@ -79,7 +79,10 @@
if (oldFocusId_ != wxID_ANY)
if (wxWindow* oldFocusWin = wxWindow::FindWindowById(oldFocusId_))
+ {
+ assert(oldFocusWin->IsEnabled()); //only enabled windows can have focus, so why wouldn't it be anymore?
setFocusIfActive(*oldFocusWin);
+ }
}
wxWindowID getFocusId() const { return oldFocusId_; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zen/error_log.h new/zen/error_log.h
--- old/zen/error_log.h 2024-05-10 18:03:32.000000000 +0200
+++ new/zen/error_log.h 2024-06-23 09:46:58.000000000 +0200
@@ -38,9 +38,9 @@
struct ErrorLogStats
{
- int info = 0;
- int warning = 0;
- int error = 0;
+ int infos = 0;
+ int warnings = 0;
+ int errors = 0;
};
ErrorLogStats getStats(const ErrorLog& log);
@@ -66,16 +66,16 @@
switch (entry.type)
{
case MSG_TYPE_INFO:
- ++count.info;
+ ++count.infos;
break;
case MSG_TYPE_WARNING:
- ++count.warning;
+ ++count.warnings;
break;
case MSG_TYPE_ERROR:
- ++count.error;
+ ++count.errors;
break;
}
- assert(std::ssize(log) == count.info + count.warning + count.error);
+ assert(std::ssize(log) == count.infos + count.warnings + count.errors);
return count;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zen/file_access.h new/zen/file_access.h
--- old/zen/file_access.h 2024-05-10 18:03:32.000000000 +0200
+++ new/zen/file_access.h 2024-06-23 09:46:58.000000000 +0200
@@ -24,7 +24,7 @@
using FileIndex = ino_t;
using FileTimeNative = timespec;
-inline time_t nativeFileTimeToTimeT(const timespec& ft) { return ft.tv_sec; } //follow Windows Explorer: always round down!
+inline time_t nativeFileTimeToTimeT(const timespec& ft) { return ft.tv_sec; } //follow File Explorer: always round down!
inline timespec timetToNativeFileTime(time_t utcTime) { return {.tv_sec = utcTime}; }
enum class ItemType
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zen/format_unit.h new/zen/format_unit.h
--- old/zen/format_unit.h 2024-05-10 18:03:32.000000000 +0200
+++ new/zen/format_unit.h 2024-06-23 09:46:58.000000000 +0200
@@ -17,7 +17,7 @@
std::wstring formatFilesizeShort(int64_t filesize);
std::wstring formatRemainingTime(double timeInSec);
std::wstring formatProgressPercent(double fraction /*[0, 1]*/, int decPlaces = 0 /*[0, 9]*/); //rounded down!
-std::wstring formatUtcToLocalTime(time_t utcTime); //like Windows Explorer would...
+std::wstring formatUtcToLocalTime(time_t utcTime); //like File Explorer would...
std::wstring formatTwoDigitPrecision (double value); //format with fixed number of digits
std::wstring formatThreeDigitPrecision(double value); //(unless value is too large)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zen/socket.h new/zen/socket.h
--- old/zen/socket.h 2024-05-10 18:03:32.000000000 +0200
+++ new/zen/socket.h 2024-06-23 09:46:58.000000000 +0200
@@ -141,16 +141,6 @@
}
setNonBlocking(testSocket, false); //throw SysError
- //-----------------------------------------------------------
-
- int noDelay = 1; //disable Nagle algorithm: https://brooker.co.za/blog/2024/05/09/nagle.html
- //e.g. test case "website sync": 23% shorter comparison time!
- if (::setsockopt(testSocket, //_In_ SOCKET s
- IPPROTO_TCP, //_In_ int level
- TCP_NODELAY, //_In_ int optname
- reinterpret_cast<char*>(&noDelay), //_In_ const char* optval
- sizeof(noDelay)) != 0) //_In_ int optlen
- THROW_LAST_SYS_ERROR_WSA("setsockopt(TCP_NODELAY)");
return testSocket;
};
@@ -163,11 +153,26 @@
try
{
socket_ = getConnectedSocket(*si); //throw SysError; pass ownership
- return;
+ firstError = std::nullopt;
+ break;
}
catch (const SysError& e) { if (!firstError) firstError = e; }
- throw* firstError; //list was not empty, so there must have been an error!
+ if (firstError)
+ throw* firstError;
+ assert(socket_ != invalidSocket); //list was non-empty, so there's either an error, or a valid socket
+ ZEN_ON_SCOPE_FAIL(closeSocket(socket_));
+ //-----------------------------------------------------------
+ //configure *after* selecting appropriate socket: cfg-failure should not discard otherwise fine connection!
+
+ int noDelay = 1; //disable Nagle algorithm: https://brooker.co.za/blog/2024/05/09/nagle.html
+ //e.g. test case "website sync": 23% shorter comparison time!
+ if (::setsockopt(socket_, //_In_ SOCKET s
+ IPPROTO_TCP, //_In_ int level
+ TCP_NODELAY, //_In_ int optname
+ reinterpret_cast<const char*>(&noDelay), //_In_ const char* optval
+ sizeof(noDelay)) != 0) //_In_ int optlen
+ THROW_LAST_SYS_ERROR_WSA("setsockopt(TCP_NODELAY)");
}
~Socket() { closeSocket(socket_); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zen/type_traits.h new/zen/type_traits.h
--- old/zen/type_traits.h 2024-05-10 18:03:33.000000000 +0200
+++ new/zen/type_traits.h 2024-06-23 09:46:58.000000000 +0200
@@ -30,6 +30,7 @@
using Type = decltype(dummyFun(F()));
};
template <class F> using FunctionReturnTypeT = typename FunctionReturnType<F>::Type;
+//yes, there's std::invoke_result_t, but it requires to specify function argument types for no good reason
//=============================================================================
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package typescript for openSUSE:Factory checked in at 2024-07-04 16:24:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/typescript (Old)
and /work/SRC/openSUSE:Factory/.typescript.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "typescript"
Thu Jul 4 16:24:12 2024 rev:26 rq:1185074 version:5.5.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/typescript/typescript.changes 2024-06-24 20:55:33.861284041 +0200
+++ /work/SRC/openSUSE:Factory/.typescript.new.2080/typescript.changes 2024-07-04 16:25:27.832308329 +0200
@@ -1,0 +2,11 @@
+Wed Jul 3 08:21:30 UTC 2024 - Andrea Manzini <andrea.manzini(a)suse.com>
+
+- Update to version 5.5.3
+ * fixed #59032 JavaScript and TypeScript language service has been disabled
+ after crashing repeatedly
+ * fixed #58955 @import JSDoc tag doesn't seem to account for resolution-mode
+ import attribute in TS v5.5.2
+
+For the full changelog see https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/
+
+-------------------------------------------------------------------
Old:
----
typescript-5.5.2.tgz
New:
----
typescript-5.5.3.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ typescript.spec ++++++
--- /var/tmp/diff_new_pack.Dy4lTy/_old 2024-07-04 16:25:28.348327174 +0200
+++ /var/tmp/diff_new_pack.Dy4lTy/_new 2024-07-04 16:25:28.352327320 +0200
@@ -17,7 +17,7 @@
Name: typescript
-Version: 5.5.2
+Version: 5.5.3
Release: 0
Summary: A language for application scale JavaScript development
License: Apache-2.0
++++++ typescript-5.5.2.tgz -> typescript-5.5.3.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/package/lib/tsc.js new/package/lib/tsc.js
--- old/package/lib/tsc.js 1985-10-26 09:15:00.000000000 +0100
+++ new/package/lib/tsc.js 1985-10-26 09:15:00.000000000 +0100
@@ -18,7 +18,7 @@
// src/compiler/corePublic.ts
var versionMajorMinor = "5.5";
-var version = "5.5.2";
+var version = "5.5.3";
// src/compiler/core.ts
var emptyArray = [];
@@ -48048,7 +48048,7 @@
}
if (moduleResolutionKind === 3 /* Node16 */ || moduleResolutionKind === 99 /* NodeNext */) {
const isSyncImport = currentSourceFile.impliedNodeFormat === 1 /* CommonJS */ && !findAncestor(location, isImportCall) || !!findAncestor(location, isImportEqualsDeclaration);
- const overrideHost = findAncestor(location, (l) => isImportTypeNode(l) || isExportDeclaration(l) || isImportDeclaration(l));
+ const overrideHost = findAncestor(location, (l) => isImportTypeNode(l) || isExportDeclaration(l) || isImportDeclaration(l) || isJSDocImportTag(l));
if (isSyncImport && sourceFile.impliedNodeFormat === 99 /* ESNext */ && !hasResolutionModeOverride(overrideHost)) {
if (findAncestor(location, isImportEqualsDeclaration)) {
error(errorNode, Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead, moduleReference);
@@ -118604,7 +118604,7 @@
}
function getModeForUsageLocationWorker(file, usage, compilerOptions) {
var _a;
- if (isImportDeclaration(usage.parent) || isExportDeclaration(usage.parent)) {
+ if (isImportDeclaration(usage.parent) || isExportDeclaration(usage.parent) || isJSDocImportTag(usage.parent)) {
const isTypeOnly = isExclusivelyTypeOnlyImportOrExport(usage.parent);
if (isTypeOnly) {
const override = getResolutionModeOverride(usage.parent.attributes);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/package/lib/typescript.js new/package/lib/typescript.js
--- old/package/lib/typescript.js 1985-10-26 09:15:00.000000000 +0100
+++ new/package/lib/typescript.js 1985-10-26 09:15:00.000000000 +0100
@@ -2366,7 +2366,7 @@
// src/compiler/corePublic.ts
var versionMajorMinor = "5.5";
-var version = "5.5.2";
+var version = "5.5.3";
var Comparison = /* @__PURE__ */ ((Comparison3) => {
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -52812,7 +52812,7 @@
}
if (moduleResolutionKind === 3 /* Node16 */ || moduleResolutionKind === 99 /* NodeNext */) {
const isSyncImport = currentSourceFile.impliedNodeFormat === 1 /* CommonJS */ && !findAncestor(location, isImportCall) || !!findAncestor(location, isImportEqualsDeclaration);
- const overrideHost = findAncestor(location, (l) => isImportTypeNode(l) || isExportDeclaration(l) || isImportDeclaration(l));
+ const overrideHost = findAncestor(location, (l) => isImportTypeNode(l) || isExportDeclaration(l) || isImportDeclaration(l) || isJSDocImportTag(l));
if (isSyncImport && sourceFile.impliedNodeFormat === 99 /* ESNext */ && !hasResolutionModeOverride(overrideHost)) {
if (findAncestor(location, isImportEqualsDeclaration)) {
error2(errorNode, Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead, moduleReference);
@@ -123600,7 +123600,7 @@
}
function getModeForUsageLocationWorker(file, usage, compilerOptions) {
var _a;
- if (isImportDeclaration(usage.parent) || isExportDeclaration(usage.parent)) {
+ if (isImportDeclaration(usage.parent) || isExportDeclaration(usage.parent) || isJSDocImportTag(usage.parent)) {
const isTypeOnly = isExclusivelyTypeOnlyImportOrExport(usage.parent);
if (isTypeOnly) {
const override = getResolutionModeOverride(usage.parent.attributes);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/package/package.json new/package/package.json
--- old/package/package.json 1985-10-26 09:15:00.000000000 +0100
+++ new/package/package.json 1985-10-26 09:15:00.000000000 +0100
@@ -2,7 +2,7 @@
"name": "typescript",
"author": "Microsoft Corp.",
"homepage": "https://www.typescriptlang.org/",
- "version": "5.5.2",
+ "version": "5.5.3",
"license": "Apache-2.0",
"description": "TypeScript is a language for application scale JavaScript development",
"keywords": [
@@ -112,5 +112,5 @@
"node": "20.1.0",
"npm": "8.19.4"
},
- "gitHead": "ce2e60e4ea15a65992e54a9e8877d16be9d42abb"
+ "gitHead": "f0e992167440686f948965e5441a918b34251886"
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ffmpeg-7 for openSUSE:Factory checked in at 2024-07-04 16:24:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ffmpeg-7 (Old)
and /work/SRC/openSUSE:Factory/.ffmpeg-7.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffmpeg-7"
Thu Jul 4 16:24:10 2024 rev:2 rq:1185067 version:7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ffmpeg-7/ffmpeg-7.changes 2024-04-23 18:56:31.911454027 +0200
+++ /work/SRC/openSUSE:Factory/.ffmpeg-7.new.2080/ffmpeg-7.changes 2024-07-04 16:25:25.556225206 +0200
@@ -1,0 +2,15 @@
+Tue Jul 2 12:26:28 UTC 2024 - Cliff Zhao <qzhao(a)suse.com>
+
+- Add ffmpeg-7-CVE-2024-32230.patch:
+ Backporting 96449cfe from upstream, Fix 1 line and one column images.
+ (CVE-2024-32230 bsc#1227296)
+
+-------------------------------------------------------------------
+Tue Jul 2 11:57:01 UTC 2024 - Cliff Zhao <qzhao(a)suse.com>
+
+- Add ffmpeg-7-CVE-2024-32228.patch:
+ Backporting 45964876 from upstream, Fix segfault on invalid film
+ grain metadata.
+ (CVE-2024-32228, bsc#1227277)
+
+-------------------------------------------------------------------
New:
----
ffmpeg-7-CVE-2024-32228.patch
ffmpeg-7-CVE-2024-32230.patch
BETA DEBUG BEGIN:
New:
- Add ffmpeg-7-CVE-2024-32228.patch:
Backporting 45964876 from upstream, Fix segfault on invalid film
New:
- Add ffmpeg-7-CVE-2024-32230.patch:
Backporting 96449cfe from upstream, Fix 1 line and one column images.
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ffmpeg-7.spec ++++++
--- /var/tmp/diff_new_pack.DaKB4k/_old 2024-07-04 16:25:26.236250041 +0200
+++ /var/tmp/diff_new_pack.DaKB4k/_new 2024-07-04 16:25:26.240250187 +0200
@@ -104,7 +104,6 @@
Source92: ffmpeg_get_dlopen_headers.sh
Source98: http://ffmpeg.org/ffmpeg-devel.asc#/ffmpeg-7.keyring
Source99: baselibs.conf
-
Patch1: ffmpeg-arm6l.diff
Patch2: ffmpeg-new-coder-errors.diff
Patch3: ffmpeg-codec-choice.diff
@@ -112,7 +111,8 @@
Patch5: work-around-abi-break.patch
Patch10: ffmpeg-chromium.patch
Patch91: ffmpeg-dlopen-openh264.patch
-
+Patch92: ffmpeg-7-CVE-2024-32228.patch
+Patch93: ffmpeg-7-CVE-2024-32230.patch
BuildRequires: ladspa-devel
BuildRequires: libgsm-devel
BuildRequires: libmp3lame-devel >= 3.98.3
++++++ ffmpeg-7-CVE-2024-32228.patch ++++++
From 459648761f5412acdc3317d5bac982ceaa257584 Mon Sep 17 00:00:00 2001
From: Niklas Haas <git(a)haasn.dev>
Date: Sat Apr 6 13:11:09 2024 +0200
Subject: avcodec/hevcdec: fix segfault on invalid film grain metadata
References: CVE-2024-32228
References: https://bugzilla.opensuse.org/1227277
Upstream: Backport from upstream
Invalid input files may contain film grain metadata which survives
ff_h274_film_grain_params_supported() but does not pass
av_film_grain_params_select(), leading to a SIGSEGV on hevc_frame_end().
Fix this by duplicating the av_film_grain_params_select() check at frame
init time.
An alternative solution here would be to defer the incompatibility check
to hevc_frame_end(), but this has the downside of allocating a film
grain buffer even when we already know we can't apply film grain.
Fixes: https://trac.ffmpeg.org/ticket/10951
--- ffmpeg-7.0/libavcodec/hevcdec.c 2024-04-05 07:22:59.000000000 +0800
+++ ffmpeg-7.0_new/libavcodec/hevcdec.c 2024-07-02 22:48:49.293996651 +0800
@@ -2892,10 +2892,16 @@
!(s->avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN) &&
!s->avctx->hwaccel;
+ ret = set_side_data(s);
+ if (ret < 0)
+ goto fail;
+
if (s->ref->needs_fg &&
- s->sei.common.film_grain_characteristics.present &&
- !ff_h274_film_grain_params_supported(s->sei.common.film_grain_characteristics.model_id,
- s->ref->frame->format)) {
+ ( s->sei.common.film_grain_characteristics.present &&
+ !ff_h274_film_grain_params_supported(s->sei.common.film_grain_characteristics.model_id,
+ s->ref->frame->format))
+ || !av_film_grain_params_select(s->ref->frame)) {
+
av_log_once(s->avctx, AV_LOG_WARNING, AV_LOG_DEBUG, &s->film_grain_warning_shown,
"Unsupported film grain parameters. Ignoring film grain.\n");
s->ref->needs_fg = 0;
@@ -2909,10 +2915,6 @@
goto fail;
}
- ret = set_side_data(s);
- if (ret < 0)
- goto fail;
-
s->frame->pict_type = 3 - s->sh.slice_type;
if (!IS_IRAP(s))
++++++ ffmpeg-7-CVE-2024-32230.patch ++++++
From 96449cfeaeb95fcfd7a2b8d9ccf7719e97471ed1 Mon Sep 17 00:00:00 2001
Author: Michael Niedermayer <michael(a)niedermayer.cc>
Date: Mon Apr 8 18:38:42 2024 +0200
Subject: avcodec/mpegvideo_enc: Fix 1 line and one column images
References: CVE-2024-32230
References: https://bugzilla.opensuse.org/1227296
Upstream: Backport from upstream
Fixes: Ticket10952
Fixes: poc21ffmpeg
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
--- ffmpeg-7.0/libavcodec/mpegvideo_enc.c 2024-04-05 07:22:59.000000000 +0800
+++ ffmpeg-7.0_new/libavcodec/mpegvideo_enc.c 2024-07-02 23:24:47.410634866 +0800
@@ -1198,8 +1198,8 @@
ptrdiff_t dst_stride = i ? s->uvlinesize : s->linesize;
int h_shift = i ? s->chroma_x_shift : 0;
int v_shift = i ? s->chroma_y_shift : 0;
- int w = s->width >> h_shift;
- int h = s->height >> v_shift;
+ int w = AV_CEIL_RSHIFT(s->width , h_shift);
+ int h = AV_CEIL_RSHIFT(s->height, v_shift);
const uint8_t *src = pic_arg->data[i];
uint8_t *dst = pic->f->data[i];
int vpad = 16;
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package sdl_bomber for openSUSE:Factory checked in at 2024-07-04 16:23:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sdl_bomber (Old)
and /work/SRC/openSUSE:Factory/.sdl_bomber.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sdl_bomber"
Thu Jul 4 16:23:58 2024 rev:2 rq:1185050 version:1.0.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/sdl_bomber/sdl_bomber.changes 2016-01-16 11:56:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.sdl_bomber.new.2080/sdl_bomber.changes 2024-07-04 16:25:18.375962982 +0200
@@ -1,0 +2,5 @@
+Wed Jun 19 08:39:11 UTC 2024 - hui <sturm-fr(a)web.de>
+
+- Fix broken file path in sdl_bomber.sh boo#1218788
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sdl_bomber.spec ++++++
--- /var/tmp/diff_new_pack.A2xvqr/_old 2024-07-04 16:25:19.219993806 +0200
+++ /var/tmp/diff_new_pack.A2xvqr/_new 2024-07-04 16:25:19.223993952 +0200
@@ -1,7 +1,7 @@
#
# spec file for package ssdl_bomber
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2024 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
++++++ sdl_bomber.sh ++++++
--- /var/tmp/diff_new_pack.A2xvqr/_old 2024-07-04 16:25:19.275995851 +0200
+++ /var/tmp/diff_new_pack.A2xvqr/_new 2024-07-04 16:25:19.279995998 +0200
@@ -1,5 +1,5 @@
#!/bin/sh
-cd /usr/lib/sdl_bomber
+cd /usr/libexec/sdl_bomber
exec ./bomber "${@}"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package plymouth-theme-breeze6 for openSUSE:Factory checked in at 2024-07-04 16:23:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plymouth-theme-breeze6 (Old)
and /work/SRC/openSUSE:Factory/.plymouth-theme-breeze6.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plymouth-theme-breeze6"
Thu Jul 4 16:23:42 2024 rev:8 rq:1185033 version:6.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/plymouth-theme-breeze6/plymouth-theme-breeze6.changes 2024-06-27 16:03:04.650115701 +0200
+++ /work/SRC/openSUSE:Factory/.plymouth-theme-breeze6.new.2080/plymouth-theme-breeze6.changes 2024-07-04 16:25:06.667535389 +0200
@@ -1,0 +2,9 @@
+Tue Jul 2 17:34:32 UTC 2024 - Fabian Vogt <fabian(a)ritter-vogt.de>
+
+- Update to 6.1.2:
+ * New bugfix release
+ * For more details see https://kde.org/announcements/plasma/6/6.1.2
+- Changes since 6.1.1:
+ * update version for new release
+
+-------------------------------------------------------------------
Old:
----
breeze-plymouth-6.1.1.tar.xz
breeze-plymouth-6.1.1.tar.xz.sig
New:
----
breeze-plymouth-6.1.2.tar.xz
breeze-plymouth-6.1.2.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plymouth-theme-breeze6.spec ++++++
--- /var/tmp/diff_new_pack.K37fc6/_old 2024-07-04 16:25:07.103551313 +0200
+++ /var/tmp/diff_new_pack.K37fc6/_new 2024-07-04 16:25:07.103551313 +0200
@@ -40,7 +40,7 @@
%bcond_without released
Name: plymouth-theme-breeze6
-Version: 6.1.1
+Version: 6.1.2
Release: 0
Summary: Plymouth "Breeze" theme
License: GPL-2.0-or-later
++++++ breeze-plymouth-6.1.1.tar.xz -> breeze-plymouth-6.1.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breeze-plymouth-6.1.1/CMakeLists.txt new/breeze-plymouth-6.1.2/CMakeLists.txt
--- old/breeze-plymouth-6.1.1/CMakeLists.txt 2024-06-25 17:39:16.000000000 +0200
+++ new/breeze-plymouth-6.1.2/CMakeLists.txt 2024-07-02 11:12:19.000000000 +0200
@@ -1,5 +1,5 @@
project(breeze-plymouth)
-set(PROJECT_VERSION "6.1.1")
+set(PROJECT_VERSION "6.1.2")
set(PROJECT_VERSION_MAJOR 6)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package plasma6-workspace-wallpapers for openSUSE:Factory checked in at 2024-07-04 16:23:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma6-workspace-wallpapers (Old)
and /work/SRC/openSUSE:Factory/.plasma6-workspace-wallpapers.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma6-workspace-wallpapers"
Thu Jul 4 16:23:38 2024 rev:8 rq:1185032 version:6.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma6-workspace-wallpapers/plasma6-workspace-wallpapers.changes 2024-06-27 16:02:59.613930675 +0200
+++ /work/SRC/openSUSE:Factory/.plasma6-workspace-wallpapers.new.2080/plasma6-workspace-wallpapers.changes 2024-07-04 16:25:04.715464099 +0200
@@ -1,0 +2,9 @@
+Tue Jul 2 17:34:31 UTC 2024 - Fabian Vogt <fabian(a)ritter-vogt.de>
+
+- Update to 6.1.2:
+ * New bugfix release
+ * For more details see https://kde.org/announcements/plasma/6/6.1.2
+- Changes since 6.1.1:
+ * update version for new release
+
+-------------------------------------------------------------------
Old:
----
plasma-workspace-wallpapers-6.1.1.tar.xz
plasma-workspace-wallpapers-6.1.1.tar.xz.sig
New:
----
plasma-workspace-wallpapers-6.1.2.tar.xz
plasma-workspace-wallpapers-6.1.2.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma6-workspace-wallpapers.spec ++++++
--- /var/tmp/diff_new_pack.6ujIjh/_old 2024-07-04 16:25:05.631497553 +0200
+++ /var/tmp/diff_new_pack.6ujIjh/_new 2024-07-04 16:25:05.631497553 +0200
@@ -22,7 +22,7 @@
%bcond_without released
Name: plasma6-workspace-wallpapers
-Version: 6.1.1
+Version: 6.1.2
Release: 0
Summary: Additional Plasma Wallpapers
License: GPL-2.0-or-later
++++++ plasma-workspace-wallpapers-6.1.1.tar.xz -> plasma-workspace-wallpapers-6.1.2.tar.xz ++++++
/work/SRC/openSUSE:Factory/plasma6-workspace-wallpapers/plasma-workspace-wallpapers-6.1.1.tar.xz /work/SRC/openSUSE:Factory/.plasma6-workspace-wallpapers.new.2080/plasma-workspace-wallpapers-6.1.2.tar.xz differ: char 26, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package plasma6-welcome for openSUSE:Factory checked in at 2024-07-04 16:23:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma6-welcome (Old)
and /work/SRC/openSUSE:Factory/.plasma6-welcome.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma6-welcome"
Thu Jul 4 16:23:35 2024 rev:8 rq:1185030 version:6.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma6-welcome/plasma6-welcome.changes 2024-06-27 16:02:55.937795708 +0200
+++ /work/SRC/openSUSE:Factory/.plasma6-welcome.new.2080/plasma6-welcome.changes 2024-07-04 16:24:56.103149577 +0200
@@ -1,0 +2,9 @@
+Tue Jul 2 17:34:28 UTC 2024 - Fabian Vogt <fabian(a)ritter-vogt.de>
+
+- Update to 6.1.2:
+ * New bugfix release
+ * For more details see https://kde.org/announcements/plasma/6/6.1.2
+- Changes since 6.1.1:
+ * update version for new release
+
+-------------------------------------------------------------------
Old:
----
plasma-welcome-6.1.1.tar.xz
plasma-welcome-6.1.1.tar.xz.sig
New:
----
plasma-welcome-6.1.2.tar.xz
plasma-welcome-6.1.2.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma6-welcome.spec ++++++
--- /var/tmp/diff_new_pack.bpbhNV/_old 2024-07-04 16:24:56.883178063 +0200
+++ /var/tmp/diff_new_pack.bpbhNV/_new 2024-07-04 16:24:56.887178209 +0200
@@ -26,7 +26,7 @@
%{!?_plasma6_version: %define _plasma6_version %(echo %{_plasma6_bugfix} | awk -F. '{print $1"."$2}')}
%bcond_without released
Name: plasma6-welcome
-Version: 6.1.1
+Version: 6.1.2
Release: 0
Summary: Onboarding wizard for Plasma
License: GPL-2.0-only OR GPL-3.0-only
++++++ plasma-welcome-6.1.1.tar.xz -> plasma-welcome-6.1.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-welcome-6.1.1/CMakeLists.txt new/plasma-welcome-6.1.2/CMakeLists.txt
--- old/plasma-welcome-6.1.1/CMakeLists.txt 2024-06-25 17:41:17.000000000 +0200
+++ new/plasma-welcome-6.1.2/CMakeLists.txt 2024-07-02 11:14:19.000000000 +0200
@@ -3,11 +3,11 @@
# SPDX-FileCopyrightText: 2022 Nate Graham <nate(a)kde.org>
project(welcome)
-set(PROJECT_VERSION "6.1.1")
+set(PROJECT_VERSION "6.1.2")
cmake_minimum_required(VERSION 3.16)
-set(PROJECT_DEP_VERSION "6.1.1")
+set(PROJECT_DEP_VERSION "6.1.2")
set(QT_MIN_VERSION "6.6.0")
set(KF6_MIN_VERSION "6.2.0")
set(KDE_COMPILERSETTINGS_LEVEL "5.82")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-welcome-6.1.1/org.kde.plasma-welcome.appdata.xml new/plasma-welcome-6.1.2/org.kde.plasma-welcome.appdata.xml
--- old/plasma-welcome-6.1.1/org.kde.plasma-welcome.appdata.xml 2024-06-25 17:41:17.000000000 +0200
+++ new/plasma-welcome-6.1.2/org.kde.plasma-welcome.appdata.xml 2024-07-02 11:14:19.000000000 +0200
@@ -292,6 +292,7 @@
<project_group>KDE</project_group>
<compulsory_for_desktop>KDE</compulsory_for_desktop>
<releases>
+ <release version="6.1.2" date="2024-07-02"/>
<release version="6.1.1" date="2024-06-25"/>
<release version="6.1.0" date="2024-06-18"/>
<release version="6.0.5" date="2024-05-21"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-welcome-6.1.1/po/is/plasma-welcome.po new/plasma-welcome-6.1.2/po/is/plasma-welcome.po
--- old/plasma-welcome-6.1.1/po/is/plasma-welcome.po 2024-06-25 17:41:17.000000000 +0200
+++ new/plasma-welcome-6.1.2/po/is/plasma-welcome.po 2024-07-02 11:14:19.000000000 +0200
@@ -8,7 +8,7 @@
"Project-Id-Version: plasma-welcome\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2024-06-15 02:27+0000\n"
-"PO-Revision-Date: 2024-05-06 15:20+0000\n"
+"PO-Revision-Date: 2024-06-27 16:16+0000\n"
"Last-Translator: Gummi <gudmundure(a)gmail.com>\n"
"Language-Team: Icelandic <kde-i18n-doc(a)kde.org>\n"
"Language: is\n"
@@ -16,7 +16,7 @@
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 23.08.3\n"
+"X-Generator: Lokalize 23.08.5\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -214,7 +214,7 @@
#: src/qml/mock/MockKRunner.qml:82
#, kde-format
msgid "Search…"
-msgstr ""
+msgstr "Leita…"
#: src/qml/PageError.qml:18
#, kde-format
@@ -278,7 +278,7 @@
#, kde-format
msgctxt "@title:window"
msgid "Enjoy It!"
-msgstr ""
+msgstr "Njóttu!"
#: src/qml/pages/Enjoy.qml:18
#, kde-kuit-format
@@ -288,6 +288,9 @@
"to jump right in. Explore its features, install your favorite apps and "
"games, and get busy doing what makes you you!"
msgstr ""
+"Við vonum að þér líki jafnvel við Plasma og við höfum notið þess að búa það "
+"til fyrir þig! Kannaðu eiginleika þess, settu upp uppáhaldsforritin og -"
+"leikina og taktu til við að gera það sem gerir þig þig!"
#: src/qml/pages/Enjoy.qml:23 src/qml/pages/Welcome.qml:40
#, kde-format
@@ -299,7 +302,7 @@
#, kde-format
msgctxt "@action:button"
msgid "Get help at KDE's discussion forums"
-msgstr ""
+msgstr "Fá hjálp í umræðuhópum KDE"
#: src/qml/pages/Enjoy.qml:56
#, kde-kuit-format
@@ -309,6 +312,9 @@
"is an international volunteer community, not a big company; your "
"contributions make a real difference!"
msgstr ""
+"Ef Plasma reynist þér vel skaltu endilega íhuga að taka þátt í verkefninu "
+"eða styrkja það. KDE er alþjóðlegt samfélag sjálfboðaliða, ekki "
+"stórfyrirtæki. Framlag þitt skiptir sköpum!"
#: src/qml/pages/Enjoy.qml:60 src/qml/pages/plasmaupdate/Update.qml:74
#, kde-format
@@ -317,9 +323,7 @@
msgstr "Styrkja verkefnið"
#: src/qml/pages/Enjoy.qml:65
-#, fuzzy, kde-format
-#| msgctxt "@title:window"
-#| msgid "Get Involved"
+#, kde-format
msgctxt "@action:button"
msgid "Get involved"
msgstr "Taktu þátt"
@@ -328,26 +332,21 @@
#, kde-format
msgctxt "@action:button"
msgid "Supporting Members"
-msgstr ""
+msgstr "Stuðningsaðilar"
#: src/qml/pages/enjoy/Supporters.qml:16
#, kde-format
msgctxt "@title:window"
msgid "Supporting Members"
-msgstr ""
+msgstr "Stuðningsaðilar"
#: src/qml/pages/enjoy/Supporters.qml:17
-#, fuzzy, kde-kuit-format
-#| msgctxt "@info:usagetip"
-#| msgid ""
-#| "We thank the following supporting members for joining us in the Plasma 6 "
-#| "fundraising campaign:"
+#, kde-kuit-format
msgctxt "@info:usagetip"
msgid ""
"We thank the following supporting members for their recurring donation to "
"KDE:"
-msgstr ""
-"Við þökkum eftirfarandi aðilum fyrir stuðninginn í söfnunarátaki Plasma 6:"
+msgstr "Við þökkum eftirfarandi stuðningsaðilum fyrir að styrja KDE reglulega:"
#: src/qml/pages/enjoy/Supporters.qml:27
#, kde-format
@@ -721,25 +720,7 @@
msgstr "KRunner"
#: src/qml/pages/powerfulwhenneeded/KRunner.qml:20
-#, fuzzy, kde-kuit-format
-#| msgctxt ""
-#| "@info:usagetip translators: In the example queries, make sure to use the "
-#| "keywords as they are localized in the actual runner plugins. If needed, "
-#| "change 'Shanghai' to a city that on the other side of the world from "
-#| "likely speakers of the language"
-#| msgid ""
-#| "KRunner is Plasma's exceptionally powerful and versatile search system. "
-#| "It powers the search functionality in the Application Launcher menu and "
-#| "the Overview screen, and it can be accessed as a standalone search bar "
-#| "using the <shortcut>Alt+Space</shortcut> keyboard shortcut.<nl/><nl/>In "
-#| "addition to finding your files and folders, KRunner can launch apps, "
-#| "search the web, convert between currencies, calculate math problems, and "
-#| "a lot more. Try typing any of the following into one of those search "
-#| "fields:<nl/><list><item>\"time Shanghai\"</item><item>\"27/3\"</"
-#| "item><item>\"200 EUR in USD\"</item><item>\"25 miles in km\"</item><item>…"
-#| "And much more!</item></list><nl/>To learn more, open the KRunner search "
-#| "bar using the <shortcut>Alt+Space</shortcut> keyboard shortcut and click "
-#| "on the question mark icon."
+#, kde-kuit-format
msgctxt "@info:usagetip"
msgid ""
"KRunner is Plasma's exceptionally powerful and versatile search system. It "
@@ -749,17 +730,12 @@
"finding your files and folders, KRunner can launch apps, search the web, "
"convert between currencies, calculate math problems, and a lot more."
msgstr ""
-"KRunner er leitarkerfi Plasma og er ótrúlega öflugt og fjölhæft. Það keyrir "
+"KRunner er ótrúlega öflugt og fjölhæft leitarkerfi Plasma. Það keyrir "
"leitarvirknina í forritaræsisvalmyndinni og á yfirlitsskjánum og hægt er að "
"opna það sem sjálfstæðan leitarglugga með því að ýta á<shortcut>Alt+Space</"
"shortcut>.<nl/><nl/>Auk þess að finna skrárnar þínar og möppur getur KRunner "
"opnað forrit, leitað á netinu, umreiknað á milli gjaldmiðla, reiknað "
-"stærðfræðidæmi og margt fleira. Prófaðu að slá inn eitthvað af eftirfarandi "
-"í einn af þessum leitargluggum:<nl/><list><item>\"time Shanghai\"</"
-"item><item>\"27/3\"</item><item>\"200 EUR in USD\"</item><item>\"25 miles in "
-"km\"</item><item>…Og margt fleira!</item></list><nl/>Opnaðu KRunner-"
-"leitargluggann með flýtilyklinum <shortcut>Alt+Space</shortcut> og smelltu á "
-"spurningamerkið til að fá meiri upplýsingar."
+"stærðfræðidæmi og margt fleira."
#: src/qml/pages/powerfulwhenneeded/KRunner.qml:60
#, kde-kuit-format
@@ -768,6 +744,8 @@
"To learn more, open the KRunner search bar using the <shortcut>Alt+Space</"
"shortcut> keyboard shortcut and click on the question mark icon."
msgstr ""
+"Opnaðu KRunner leitargluggann með <shortcut>Alt+Space</shortcut> "
+"flýtilyklinum og smelltu á spurningamerkið til að fá meiri upplýsingar."
#: src/qml/pages/powerfulwhenneeded/KRunner.qml:72
#, kde-format
@@ -777,7 +755,7 @@
"city that on the other side of the world from likely speakers of the "
"language."
msgid "time Shanghai"
-msgstr ""
+msgstr "tími Shanghai"
#: src/qml/pages/powerfulwhenneeded/KRunner.qml:74
#, kde-format
@@ -785,7 +763,7 @@
"@info:usagetip An example KRunner query, ensure keywords are localized as "
"they are in the actual runner plugins."
msgid "27 / 3"
-msgstr ""
+msgstr "27 / 3"
#: src/qml/pages/powerfulwhenneeded/KRunner.qml:76
#, kde-format
@@ -794,7 +772,7 @@
"they are in the actual runner plugins. If needed, change the currency "
"conversion to a likely one for speakers of the language."
msgid "200 EUR in USD"
-msgstr ""
+msgstr "200 EUR í USD"
#: src/qml/pages/powerfulwhenneeded/KRunner.qml:78
#, kde-format
@@ -803,7 +781,7 @@
"they are in the actual runner plugins. If needed, change the conversion to a "
"likely one for speakers of the language."
msgid "25 miles in km"
-msgstr ""
+msgstr "25 miles in km"
#: src/qml/pages/powerfulwhenneeded/KRunner.qml:80
#, kde-format
@@ -811,7 +789,7 @@
"@info:usagetip An addendum to example KRunner queries, intentionally using "
"'...' as these are the characters a person would type for ellipses"
msgid "...and much more!"
-msgstr ""
+msgstr "...og margt fleira!"
#: src/qml/pages/powerfulwhenneeded/Overview.qml:16
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-welcome-6.1.1/src/kded/kded_plasma-welcome.json new/plasma-welcome-6.1.2/src/kded/kded_plasma-welcome.json
--- old/plasma-welcome-6.1.1/src/kded/kded_plasma-welcome.json 2024-06-25 17:41:17.000000000 +0200
+++ new/plasma-welcome-6.1.2/src/kded/kded_plasma-welcome.json 2024-07-02 11:14:19.000000000 +0200
@@ -7,7 +7,6 @@
"Description[ca]": "Inicia automàticament el centre de benvinguda després d'una instal·lació nova del sistema o d'una actualització",
"Description[cs]": "Automaticky spustí uvítací centrum při instalaci nového systému nebo při aktualizaci",
"Description[de]": "Startet den Begrüßungsassistenten automatisch nach der Neuinstallation oder Aktualisierung des Systems",
- "Description[en_GB]": "Autostarts Welcome Center after new system installation or update",
"Description[eo]": "Aŭtomate startigas Bonvencentron post nova sisteminstalo aŭ ĝisdatigo",
"Description[es]": "Inicia automáticamente el centro de bienvenida tras una nueva instalación o actualización del sistema",
"Description[eu]": "Ongietorri Gunea automatikoki abiatzen du sistema berria instalatu edo eguneratu ondoren",
@@ -49,7 +48,6 @@
"Name[ca]": "Llançador del centre de benvinguda",
"Name[cs]": "Spouštěč uvítacího centra",
"Name[de]": "Begrüßungsassistent-Starter",
- "Name[en_GB]": "Welcome Center Launcher",
"Name[eo]": "Lanĉilo por Welcome Center",
"Name[es]": "Lanzador del centro de bienvenida",
"Name[eu]": "Ongietorri Gune abiarazlea",
1
0