openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2024
- 1 participants
- 1521 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package fx for openSUSE:Factory checked in at 2024-07-01 11:22:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fx (Old)
and /work/SRC/openSUSE:Factory/.fx.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fx"
Mon Jul 1 11:22:13 2024 rev:6 rq:1184197 version:35.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/fx/fx.changes 2024-03-25 21:18:53.636986396 +0100
+++ /work/SRC/openSUSE:Factory/.fx.new.18349/fx.changes 2024-07-01 11:23:03.820935445 +0200
@@ -1,0 +2,16 @@
+Sun Jun 30 17:18:05 UTC 2024 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 35.0.0
+ * Fixed a bug with very long arguments.
+ * Fixed a bug with closing profiles properly.
+ * Fixed bash autocomplete for files without newline at the end.
+ * Fixed a bug with --raw flag reading files without newline at
+ the end.
+ * Updated dependencies.
+- Update to version 34.0.0
+ * Now fx has a built-in JS engine! So, JSON processing will work
+ everywhere!
+ * Added list function to print array as list of strings.
+ * Fixed yanking of wrapped object keys.
+
+-------------------------------------------------------------------
Old:
----
fx-33.0.0.tar.gz
New:
----
fx-35.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fx.spec ++++++
--- /var/tmp/diff_new_pack.wtwonJ/_old 2024-07-01 11:23:04.396956293 +0200
+++ /var/tmp/diff_new_pack.wtwonJ/_new 2024-07-01 11:23:04.400956437 +0200
@@ -18,7 +18,7 @@
Name: fx
-Version: 33.0.0
+Version: 35.0.0
Release: 0
Summary: Terminal JSON viewer
License: MIT
++++++ fx-33.0.0.tar.gz -> fx-35.0.0.tar.gz ++++++
++++ 4329 lines of diff (skipped)
++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/dlclark/regexp2/README.md new/vendor/github.com/dlclark/regexp2/README.md
--- old/vendor/github.com/dlclark/regexp2/README.md 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/dlclark/regexp2/README.md 2024-06-30 19:19:20.000000000 +0200
@@ -92,6 +92,66 @@
This feature is a work in progress and I'm open to ideas for more things to put here (maybe more relaxed character escaping rules?).
+## Catastrophic Backtracking and Timeouts
+
+`regexp2` supports features that can lead to catastrophic backtracking.
+`Regexp.MatchTimeout` can be set to to limit the impact of such behavior; the
+match will fail with an error after approximately MatchTimeout. No timeout
+checks are done by default.
+
+Timeout checking is not free. The current timeout checking implementation starts
+a background worker that updates a clock value approximately once every 100
+milliseconds. The matching code compares this value against the precomputed
+deadline for the match. The performance impact is as follows.
+
+1. A match with a timeout runs almost as fast as a match without a timeout.
+2. If any live matches have a timeout, there will be a background CPU load
+ (`~0.15%` currently on a modern machine). This load will remain constant
+ regardless of the number of matches done including matches done in parallel.
+3. If no live matches are using a timeout, the background load will remain
+ until the longest deadline (match timeout + the time when the match started)
+ is reached. E.g., if you set a timeout of one minute the load will persist
+ for approximately a minute even if the match finishes quickly.
+
+See [PR #58](https://github.com/dlclark/regexp2/pull/58) for more details and
+alternatives considered.
+
+## Goroutine leak error
+If you're using a library during unit tests (e.g. https://github.com/uber-go/goleak) that validates all goroutines are exited then you'll likely get an error if you or any of your dependencies use regex's with a MatchTimeout.
+To remedy the problem you'll need to tell the unit test to wait until the backgroup timeout goroutine is exited.
+
+```go
+func TestSomething(t *testing.T) {
+ defer goleak.VerifyNone(t)
+ defer regexp2.StopTimeoutClock()
+
+ // ... test
+}
+
+//or
+
+func TestMain(m *testing.M) {
+ // setup
+ // ...
+
+ // run
+ m.Run()
+
+ //tear down
+ regexp2.StopTimeoutClock()
+ goleak.VerifyNone(t)
+}
+```
+
+This will add ~100ms runtime to each test (or TestMain). If that's too much time you can set the clock cycle rate of the timeout goroutine in an init function in a test file. `regexp2.SetTimeoutCheckPeriod` isn't threadsafe so it must be setup before starting any regex's with Timeouts.
+
+```go
+func init() {
+ //speed up testing by making the timeout clock 1ms
+ regexp2.SetTimeoutCheckPeriod(time.Millisecond)
+}
+```
+
## ECMAScript compatibility mode
In this mode the engine provides compatibility with the [regex engine](https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp-regular-expression-objects) described in the ECMAScript specification.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/dlclark/regexp2/fastclock.go new/vendor/github.com/dlclark/regexp2/fastclock.go
--- old/vendor/github.com/dlclark/regexp2/fastclock.go 1970-01-01 01:00:00.000000000 +0100
+++ new/vendor/github.com/dlclark/regexp2/fastclock.go 2024-06-30 19:19:20.000000000 +0200
@@ -0,0 +1,129 @@
+package regexp2
+
+import (
+ "sync"
+ "sync/atomic"
+ "time"
+)
+
+// fasttime holds a time value (ticks since clock initialization)
+type fasttime int64
+
+// fastclock provides a fast clock implementation.
+//
+// A background goroutine periodically stores the current time
+// into an atomic variable.
+//
+// A deadline can be quickly checked for expiration by comparing
+// its value to the clock stored in the atomic variable.
+//
+// The goroutine automatically stops once clockEnd is reached.
+// (clockEnd covers the largest deadline seen so far + some
+// extra time). This ensures that if regexp2 with timeouts
+// stops being used we will stop background work.
+type fastclock struct {
+ // instances of atomicTime must be at the start of the struct (or at least 64-bit aligned)
+ // otherwise 32-bit architectures will panic
+
+ current atomicTime // Current time (approximate)
+ clockEnd atomicTime // When clock updater is supposed to stop (>= any existing deadline)
+
+ // current and clockEnd can be read via atomic loads.
+ // Reads and writes of other fields require mu to be held.
+ mu sync.Mutex
+ start time.Time // Time corresponding to fasttime(0)
+ running bool // Is a clock updater running?
+}
+
+var fast fastclock
+
+// reached returns true if current time is at or past t.
+func (t fasttime) reached() bool {
+ return fast.current.read() >= t
+}
+
+// makeDeadline returns a time that is approximately time.Now().Add(d)
+func makeDeadline(d time.Duration) fasttime {
+ // Increase the deadline since the clock we are reading may be
+ // just about to tick forwards.
+ end := fast.current.read() + durationToTicks(d+clockPeriod)
+
+ // Start or extend clock if necessary.
+ if end > fast.clockEnd.read() {
+ extendClock(end)
+ }
+ return end
+}
+
+// extendClock ensures that clock is live and will run until at least end.
+func extendClock(end fasttime) {
+ fast.mu.Lock()
+ defer fast.mu.Unlock()
+
+ if fast.start.IsZero() {
+ fast.start = time.Now()
+ }
+
+ // Extend the running time to cover end as well as a bit of slop.
+ if shutdown := end + durationToTicks(time.Second); shutdown > fast.clockEnd.read() {
+ fast.clockEnd.write(shutdown)
+ }
+
+ // Start clock if necessary
+ if !fast.running {
+ fast.running = true
+ go runClock()
+ }
+}
+
+// stop the timeout clock in the background
+// should only used for unit tests to abandon the background goroutine
+func stopClock() {
+ fast.mu.Lock()
+ if fast.running {
+ fast.clockEnd.write(fasttime(0))
+ }
+ fast.mu.Unlock()
+
+ // pause until not running
+ // get and release the lock
+ isRunning := true
+ for isRunning {
+ time.Sleep(clockPeriod / 2)
+ fast.mu.Lock()
+ isRunning = fast.running
+ fast.mu.Unlock()
+ }
+}
+
+func durationToTicks(d time.Duration) fasttime {
+ // Downscale nanoseconds to approximately a millisecond so that we can avoid
+ // overflow even if the caller passes in math.MaxInt64.
+ return fasttime(d) >> 20
+}
+
+const DefaultClockPeriod = 100 * time.Millisecond
+
+// clockPeriod is the approximate interval between updates of approximateClock.
+var clockPeriod = DefaultClockPeriod
+
+func runClock() {
+ fast.mu.Lock()
+ defer fast.mu.Unlock()
+
+ for fast.current.read() <= fast.clockEnd.read() {
+ // Unlock while sleeping.
+ fast.mu.Unlock()
+ time.Sleep(clockPeriod)
+ fast.mu.Lock()
+
+ newTime := durationToTicks(time.Since(fast.start))
+ fast.current.write(newTime)
+ }
+ fast.running = false
+}
+
+type atomicTime struct{ v int64 } // Should change to atomic.Int64 when we can use go 1.19
+
+func (t *atomicTime) read() fasttime { return fasttime(atomic.LoadInt64(&t.v)) }
+func (t *atomicTime) write(v fasttime) { atomic.StoreInt64(&t.v, int64(v)) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/dlclark/regexp2/regexp.go new/vendor/github.com/dlclark/regexp2/regexp.go
--- old/vendor/github.com/dlclark/regexp2/regexp.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/dlclark/regexp2/regexp.go 2024-06-30 19:19:20.000000000 +0200
@@ -18,13 +18,21 @@
"github.com/dlclark/regexp2/syntax"
)
-// Default timeout used when running regexp matches -- "forever"
-var DefaultMatchTimeout = time.Duration(math.MaxInt64)
+var (
+ // DefaultMatchTimeout used when running regexp matches -- "forever"
+ DefaultMatchTimeout = time.Duration(math.MaxInt64)
+ // DefaultUnmarshalOptions used when unmarshaling a regex from text
+ DefaultUnmarshalOptions = None
+)
// Regexp is the representation of a compiled regular expression.
// A Regexp is safe for concurrent use by multiple goroutines.
type Regexp struct {
- //timeout when trying to find matches
+ // A match will time out if it takes (approximately) more than
+ // MatchTimeout. This is a safety check in case the match
+ // encounters catastrophic backtracking. The default value
+ // (DefaultMatchTimeout) causes all time out checking to be
+ // suppressed.
MatchTimeout time.Duration
// read-only after Compile
@@ -39,7 +47,7 @@
code *syntax.Code // compiled program
// cache of machines for running regexp
- muRun sync.Mutex
+ muRun *sync.Mutex
runner []*runner
}
@@ -68,6 +76,7 @@
capsize: code.Capsize,
code: code,
MatchTimeout: DefaultMatchTimeout,
+ muRun: &sync.Mutex{},
}, nil
}
@@ -92,6 +101,19 @@
return syntax.Unescape(input)
}
+// SetTimeoutPeriod is a debug function that sets the frequency of the timeout goroutine's sleep cycle.
+// Defaults to 100ms. The only benefit of setting this lower is that the 1 background goroutine that manages
+// timeouts may exit slightly sooner after all the timeouts have expired. See Github issue #63
+func SetTimeoutCheckPeriod(d time.Duration) {
+ clockPeriod = d
+}
+
+// StopTimeoutClock should only be used in unit tests to prevent the timeout clock goroutine
+// from appearing like a leaking goroutine
+func StopTimeoutClock() {
+ stopClock()
+}
+
// String returns the source text used to compile the regular expression.
func (re *Regexp) String() string {
return re.pattern
@@ -354,3 +376,20 @@
return -1
}
+
+// MarshalText implements [encoding.TextMarshaler]. The output
+// matches that of calling the [Regexp.String] method.
+func (re *Regexp) MarshalText() ([]byte, error) {
+ return []byte(re.String()), nil
+}
+
+// UnmarshalText implements [encoding.TextUnmarshaler] by calling
+// [Compile] on the encoded value.
+func (re *Regexp) UnmarshalText(text []byte) error {
+ newRE, err := Compile(string(text), DefaultUnmarshalOptions)
+ if err != nil {
+ return err
+ }
+ *re = *newRE
+ return nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/dlclark/regexp2/runner.go new/vendor/github.com/dlclark/regexp2/runner.go
--- old/vendor/github.com/dlclark/regexp2/runner.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/dlclark/regexp2/runner.go 2024-06-30 19:19:20.000000000 +0200
@@ -58,10 +58,9 @@
runmatch *Match // result object
- ignoreTimeout bool
- timeout time.Duration // timeout in milliseconds (needed for actual)
- timeoutChecksToSkip int
- timeoutAt time.Time
+ ignoreTimeout bool
+ timeout time.Duration // timeout in milliseconds (needed for actual)
+ deadline fasttime
operator syntax.InstOp
codepos int
@@ -1551,39 +1550,15 @@
(index < endpos && syntax.IsECMAWordChar(r.runtext[index]))
}
-// this seems like a comment to justify randomly picking 1000 :-P
-// We have determined this value in a series of experiments where x86 retail
-// builds (ono-lab-optimized) were run on different pattern/input pairs. Larger values
-// of TimeoutCheckFrequency did not tend to increase performance; smaller values
-// of TimeoutCheckFrequency tended to slow down the execution.
-const timeoutCheckFrequency int = 1000
-
func (r *runner) startTimeoutWatch() {
if r.ignoreTimeout {
return
}
-
- r.timeoutChecksToSkip = timeoutCheckFrequency
- r.timeoutAt = time.Now().Add(r.timeout)
+ r.deadline = makeDeadline(r.timeout)
}
func (r *runner) checkTimeout() error {
- if r.ignoreTimeout {
- return nil
- }
- r.timeoutChecksToSkip--
- if r.timeoutChecksToSkip != 0 {
- return nil
- }
-
- r.timeoutChecksToSkip = timeoutCheckFrequency
- return r.doCheckTimeout()
-}
-
-func (r *runner) doCheckTimeout() error {
- current := time.Now()
-
- if current.Before(r.timeoutAt) {
+ if r.ignoreTimeout || !r.deadline.reached() {
return nil
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/dlclark/regexp2/syntax/parser.go new/vendor/github.com/dlclark/regexp2/syntax/parser.go
--- old/vendor/github.com/dlclark/regexp2/syntax/parser.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/dlclark/regexp2/syntax/parser.go 2024-06-30 19:19:20.000000000 +0200
@@ -1311,6 +1311,17 @@
// Scans X for \p{X} or \P{X}
func (p *parser) parseProperty() (string, error) {
+ // RE2 and PCRE supports \pX syntax (no {} and only 1 letter unicode cats supported)
+ // since this is purely additive syntax it's not behind a flag
+ if p.charsRight() >= 1 && p.rightChar(0) != '{' {
+ ch := string(p.moveRightGetChar())
+ // check if it's a valid cat
+ if !isValidUnicodeCat(ch) {
+ return "", p.getErr(ErrUnknownSlashP, ch)
+ }
+ return ch, nil
+ }
+
if p.charsRight() < 3 {
return "", p.getErr(ErrIncompleteSlashP)
}
@@ -1427,7 +1438,7 @@
return string(p.pattern[startpos:p.textpos()])
}
-//Scans contents of [] (not including []'s), and converts to a set.
+// Scans contents of [] (not including []'s), and converts to a set.
func (p *parser) scanCharSet(caseInsensitive, scanOnly bool) (*CharSet, error) {
ch := '\x00'
chPrev := '\x00'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/go-sourcemap/sourcemap/.travis.yml new/vendor/github.com/go-sourcemap/sourcemap/.travis.yml
--- old/vendor/github.com/go-sourcemap/sourcemap/.travis.yml 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/go-sourcemap/sourcemap/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-sudo: false
-language: go
-
-go:
- - 1.12.x
- - 1.13.x
- - 1.14.x
- - tip
-
-matrix:
- allow_failures:
- - go: tip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/go-sourcemap/sourcemap/README.md new/vendor/github.com/go-sourcemap/sourcemap/README.md
--- old/vendor/github.com/go-sourcemap/sourcemap/README.md 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/go-sourcemap/sourcemap/README.md 2024-06-30 19:19:20.000000000 +0200
@@ -1,10 +1,11 @@
# Source maps consumer for Golang
-[![Build Status](https://travis-ci.org/go-sourcemap/sourcemap.svg)](https://travis-c…
+[![PkgGoDev](https://pkg.go.dev/badge/github.com/go-sourcemap/sourcemap)](https://pkg.go.dev/github.com/go-sourcemap/sourcemap)
-API docs: https://godoc.org/github.com/go-sourcemap/sourcemap.
-Examples: https://godoc.org/github.com/go-sourcemap/sourcemap#pkg-examples.
-Spec: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0….
+> This package is brought to you by :star: [**uptrace/uptrace**](https://github.com/uptrace/uptrace).
+> Uptrace is an open-source APM tool that supports distributed tracing, metrics, and logs. You can
+> use it to monitor applications and set up automatic alerts to receive notifications via email,
+> Slack, Telegram, and others.
## Installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/go-sourcemap/sourcemap/consumer.go new/vendor/github.com/go-sourcemap/sourcemap/consumer.go
--- old/vendor/github.com/go-sourcemap/sourcemap/consumer.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/go-sourcemap/sourcemap/consumer.go 2024-06-30 19:19:20.000000000 +0200
@@ -184,6 +184,10 @@
func (c *Consumer) source(
m *sourceMap, genLine, genColumn int,
) (source, name string, line, column int, ok bool) {
+ if len(m.mappings) == 0 {
+ return
+ }
+
i := sort.Search(len(m.mappings), func(i int) bool {
m := &m.mappings[i]
if int(m.genLine) == genLine {
@@ -192,19 +196,24 @@
return int(m.genLine) >= genLine
})
- // Mapping not found.
+ var match *mapping
+ // Mapping not found
if i == len(m.mappings) {
- return
- }
-
- match := &m.mappings[i]
-
- // Fuzzy match.
- if int(match.genLine) > genLine || int(match.genColumn) > genColumn {
- if i == 0 {
+ // lets see if the line is correct but the column is bigger
+ match = &m.mappings[i-1]
+ if int(match.genLine) != genLine {
return
}
- match = &m.mappings[i-1]
+ } else {
+ match = &m.mappings[i]
+
+ // Fuzzy match.
+ if int(match.genLine) > genLine || int(match.genColumn) > genColumn {
+ if i == 0 {
+ return
+ }
+ match = &m.mappings[i-1]
+ }
}
if match.sourcesInd >= 0 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/go-sourcemap/sourcemap/mappings.go new/vendor/github.com/go-sourcemap/sourcemap/mappings.go
--- old/vendor/github.com/go-sourcemap/sourcemap/mappings.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/go-sourcemap/sourcemap/mappings.go 2024-06-30 19:19:20.000000000 +0200
@@ -23,8 +23,9 @@
rd *strings.Reader
dec base64vlq.Decoder
- hasName bool
- value mapping
+ hasValue bool
+ hasName bool
+ value mapping
values []mapping
}
@@ -91,6 +92,7 @@
if err != nil {
return err
}
+ m.hasValue = true
}
}
}
@@ -142,10 +144,10 @@
}
func (m *mappings) pushValue() {
- if m.value.sourceLine == 1 && m.value.sourceColumn == 0 {
+ if !m.hasValue {
return
}
-
+ m.hasValue = false
if m.hasName {
m.values = append(m.values, m.value)
m.hasName = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/google/pprof/profile/encode.go new/vendor/github.com/google/pprof/profile/encode.go
--- old/vendor/github.com/google/pprof/profile/encode.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/google/pprof/profile/encode.go 2024-06-30 19:19:20.000000000 +0200
@@ -258,10 +258,10 @@
// If this a main linux kernel mapping with a relocation symbol suffix
// ("[kernel.kallsyms]_text"), extract said suffix.
// It is fairly hacky to handle at this level, but the alternatives appear even worse.
- if strings.HasPrefix(m.File, "[kernel.kallsyms]") {
- m.KernelRelocationSymbol = strings.ReplaceAll(m.File, "[kernel.kallsyms]", "")
+ const prefix = "[kernel.kallsyms]"
+ if strings.HasPrefix(m.File, prefix) {
+ m.KernelRelocationSymbol = m.File[len(prefix):]
}
-
}
functions := make(map[uint64]*Function, len(p.Function))
@@ -530,6 +530,7 @@
func (p *Line) encode(b *buffer) {
encodeUint64Opt(b, 1, p.functionIDX)
encodeInt64Opt(b, 2, p.Line)
+ encodeInt64Opt(b, 3, p.Column)
}
var lineDecoder = []decoder{
@@ -538,6 +539,8 @@
func(b *buffer, m message) error { return decodeUint64(b, &m.(*Line).functionIDX) },
// optional int64 line = 2
func(b *buffer, m message) error { return decodeInt64(b, &m.(*Line).Line) },
+ // optional int64 column = 3
+ func(b *buffer, m message) error { return decodeInt64(b, &m.(*Line).Column) },
}
func (p *Function) decoder() []decoder {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/google/pprof/profile/legacy_java_profile.go new/vendor/github.com/google/pprof/profile/legacy_java_profile.go
--- old/vendor/github.com/google/pprof/profile/legacy_java_profile.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/google/pprof/profile/legacy_java_profile.go 2024-06-30 19:19:20.000000000 +0200
@@ -56,7 +56,7 @@
}
// Strip out addresses for better merge.
- if err = p.Aggregate(true, true, true, true, false); err != nil {
+ if err = p.Aggregate(true, true, true, true, false, false); err != nil {
return nil, err
}
@@ -99,7 +99,7 @@
}
// Strip out addresses for better merge.
- if err = p.Aggregate(true, true, true, true, false); err != nil {
+ if err = p.Aggregate(true, true, true, true, false, false); err != nil {
return nil, err
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/google/pprof/profile/merge.go new/vendor/github.com/google/pprof/profile/merge.go
--- old/vendor/github.com/google/pprof/profile/merge.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/google/pprof/profile/merge.go 2024-06-30 19:19:20.000000000 +0200
@@ -326,12 +326,13 @@
key.addr -= l.Mapping.Start
key.mappingID = l.Mapping.ID
}
- lines := make([]string, len(l.Line)*2)
+ lines := make([]string, len(l.Line)*3)
for i, line := range l.Line {
if line.Function != nil {
lines[i*2] = strconv.FormatUint(line.Function.ID, 16)
}
lines[i*2+1] = strconv.FormatInt(line.Line, 16)
+ lines[i*2+2] = strconv.FormatInt(line.Column, 16)
}
key.lines = strings.Join(lines, "|")
return key
@@ -418,6 +419,7 @@
ln := Line{
Function: pm.mapFunction(src.Function),
Line: src.Line,
+ Column: src.Column,
}
return ln
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/google/pprof/profile/profile.go new/vendor/github.com/google/pprof/profile/profile.go
--- old/vendor/github.com/google/pprof/profile/profile.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/github.com/google/pprof/profile/profile.go 2024-06-30 19:19:20.000000000 +0200
@@ -145,6 +145,7 @@
type Line struct {
Function *Function
Line int64
+ Column int64
functionIDX uint64
}
@@ -436,7 +437,7 @@
// Aggregate merges the locations in the profile into equivalence
// classes preserving the request attributes. It also updates the
// samples to point to the merged locations.
-func (p *Profile) Aggregate(inlineFrame, function, filename, linenumber, address bool) error {
+func (p *Profile) Aggregate(inlineFrame, function, filename, linenumber, columnnumber, address bool) error {
for _, m := range p.Mapping {
m.HasInlineFrames = m.HasInlineFrames && inlineFrame
m.HasFunctions = m.HasFunctions && function
@@ -458,7 +459,7 @@
}
// Aggregate locations
- if !inlineFrame || !address || !linenumber {
+ if !inlineFrame || !address || !linenumber || !columnnumber {
for _, l := range p.Location {
if !inlineFrame && len(l.Line) > 1 {
l.Line = l.Line[len(l.Line)-1:]
@@ -466,6 +467,12 @@
if !linenumber {
for i := range l.Line {
l.Line[i].Line = 0
+ l.Line[i].Column = 0
+ }
+ }
+ if !columnnumber {
+ for i := range l.Line {
+ l.Line[i].Column = 0
}
}
if !address {
@@ -627,10 +634,11 @@
for li := range l.Line {
lnStr := "??"
if fn := l.Line[li].Function; fn != nil {
- lnStr = fmt.Sprintf("%s %s:%d s=%d",
+ lnStr = fmt.Sprintf("%s %s:%d:%d s=%d",
fn.Name,
fn.Filename,
l.Line[li].Line,
+ l.Line[li].Column,
fn.StartLine)
if fn.Name != fn.SystemName {
lnStr = lnStr + "(" + fn.SystemName + ")"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/mmap_nomremap.go new/vendor/golang.org/x/sys/unix/mmap_nomremap.go
--- old/vendor/golang.org/x/sys/unix/mmap_nomremap.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/mmap_nomremap.go 2024-06-30 19:19:20.000000000 +0200
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris
+//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos
package unix
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go new/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go
--- old/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go 2024-06-30 19:19:20.000000000 +0200
@@ -1520,6 +1520,14 @@
return nil
}
+func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
+ return mapper.Mmap(fd, offset, length, prot, flags)
+}
+
+func Munmap(b []byte) (err error) {
+ return mapper.Munmap(b)
+}
+
func Read(fd int, p []byte) (n int, err error) {
n, err = read(fd, p)
if raceenabled {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/syscall_windows.go new/vendor/golang.org/x/sys/windows/syscall_windows.go
--- old/vendor/golang.org/x/sys/windows/syscall_windows.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/syscall_windows.go 2024-06-30 19:19:20.000000000 +0200
@@ -165,6 +165,7 @@
//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW
//sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW
//sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error)
+//sys DisconnectNamedPipe(pipe Handle) (err error)
//sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error)
//sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW
//sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState
@@ -348,8 +349,19 @@
//sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost
//sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32)
//sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error)
+//sys ClearCommBreak(handle Handle) (err error)
+//sys ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error)
+//sys EscapeCommFunction(handle Handle, dwFunc uint32) (err error)
+//sys GetCommState(handle Handle, lpDCB *DCB) (err error)
+//sys GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error)
//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)
+//sys PurgeComm(handle Handle, dwFlags uint32) (err error)
+//sys SetCommBreak(handle Handle) (err error)
+//sys SetCommMask(handle Handle, dwEvtMask uint32) (err error)
+//sys SetCommState(handle Handle, lpDCB *DCB) (err error)
//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)
+//sys SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error)
+//sys WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error)
//sys GetActiveProcessorCount(groupNumber uint16) (ret uint32)
//sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32)
//sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows
@@ -1834,3 +1846,73 @@
// accept arguments that can be casted to uintptr, and Coord can't.
return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size))))
}
+
+// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb.
+const (
+ CBR_110 = 110
+ CBR_300 = 300
+ CBR_600 = 600
+ CBR_1200 = 1200
+ CBR_2400 = 2400
+ CBR_4800 = 4800
+ CBR_9600 = 9600
+ CBR_14400 = 14400
+ CBR_19200 = 19200
+ CBR_38400 = 38400
+ CBR_57600 = 57600
+ CBR_115200 = 115200
+ CBR_128000 = 128000
+ CBR_256000 = 256000
+
+ DTR_CONTROL_DISABLE = 0x00000000
+ DTR_CONTROL_ENABLE = 0x00000010
+ DTR_CONTROL_HANDSHAKE = 0x00000020
+
+ RTS_CONTROL_DISABLE = 0x00000000
+ RTS_CONTROL_ENABLE = 0x00001000
+ RTS_CONTROL_HANDSHAKE = 0x00002000
+ RTS_CONTROL_TOGGLE = 0x00003000
+
+ NOPARITY = 0
+ ODDPARITY = 1
+ EVENPARITY = 2
+ MARKPARITY = 3
+ SPACEPARITY = 4
+
+ ONESTOPBIT = 0
+ ONE5STOPBITS = 1
+ TWOSTOPBITS = 2
+)
+
+// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-esca….
+const (
+ SETXOFF = 1
+ SETXON = 2
+ SETRTS = 3
+ CLRRTS = 4
+ SETDTR = 5
+ CLRDTR = 6
+ SETBREAK = 8
+ CLRBREAK = 9
+)
+
+// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purg….
+const (
+ PURGE_TXABORT = 0x0001
+ PURGE_RXABORT = 0x0002
+ PURGE_TXCLEAR = 0x0004
+ PURGE_RXCLEAR = 0x0008
+)
+
+// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setc….
+const (
+ EV_RXCHAR = 0x0001
+ EV_RXFLAG = 0x0002
+ EV_TXEMPTY = 0x0004
+ EV_CTS = 0x0008
+ EV_DSR = 0x0010
+ EV_RLSD = 0x0020
+ EV_BREAK = 0x0040
+ EV_ERR = 0x0080
+ EV_RING = 0x0100
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/types_windows.go new/vendor/golang.org/x/sys/windows/types_windows.go
--- old/vendor/golang.org/x/sys/windows/types_windows.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/types_windows.go 2024-06-30 19:19:20.000000000 +0200
@@ -3380,3 +3380,27 @@
Size uint32
BlobData *byte
}
+
+type ComStat struct {
+ Flags uint32
+ CBInQue uint32
+ CBOutQue uint32
+}
+
+type DCB struct {
+ DCBlength uint32
+ BaudRate uint32
+ Flags uint32
+ wReserved uint16
+ XonLim uint16
+ XoffLim uint16
+ ByteSize uint8
+ Parity uint8
+ StopBits uint8
+ XonChar byte
+ XoffChar byte
+ ErrorChar byte
+ EofChar byte
+ EvtChar byte
+ wReserved1 uint16
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/zsyscall_windows.go new/vendor/golang.org/x/sys/windows/zsyscall_windows.go
--- old/vendor/golang.org/x/sys/windows/zsyscall_windows.go 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/zsyscall_windows.go 2024-06-30 19:19:20.000000000 +0200
@@ -188,6 +188,8 @@
procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject")
procCancelIo = modkernel32.NewProc("CancelIo")
procCancelIoEx = modkernel32.NewProc("CancelIoEx")
+ procClearCommBreak = modkernel32.NewProc("ClearCommBreak")
+ procClearCommError = modkernel32.NewProc("ClearCommError")
procCloseHandle = modkernel32.NewProc("CloseHandle")
procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole")
procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe")
@@ -212,7 +214,9 @@
procDeleteProcThreadAttributeList = modkernel32.NewProc("DeleteProcThreadAttributeList")
procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW")
procDeviceIoControl = modkernel32.NewProc("DeviceIoControl")
+ procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe")
procDuplicateHandle = modkernel32.NewProc("DuplicateHandle")
+ procEscapeCommFunction = modkernel32.NewProc("EscapeCommFunction")
procExitProcess = modkernel32.NewProc("ExitProcess")
procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW")
procFindClose = modkernel32.NewProc("FindClose")
@@ -236,6 +240,8 @@
procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent")
procGetACP = modkernel32.NewProc("GetACP")
procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount")
+ procGetCommModemStatus = modkernel32.NewProc("GetCommModemStatus")
+ procGetCommState = modkernel32.NewProc("GetCommState")
procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts")
procGetCommandLineW = modkernel32.NewProc("GetCommandLineW")
procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW")
@@ -322,6 +328,7 @@
procProcess32NextW = modkernel32.NewProc("Process32NextW")
procProcessIdToSessionId = modkernel32.NewProc("ProcessIdToSessionId")
procPulseEvent = modkernel32.NewProc("PulseEvent")
+ procPurgeComm = modkernel32.NewProc("PurgeComm")
procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW")
procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW")
procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject")
@@ -335,6 +342,9 @@
procResetEvent = modkernel32.NewProc("ResetEvent")
procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole")
procResumeThread = modkernel32.NewProc("ResumeThread")
+ procSetCommBreak = modkernel32.NewProc("SetCommBreak")
+ procSetCommMask = modkernel32.NewProc("SetCommMask")
+ procSetCommState = modkernel32.NewProc("SetCommState")
procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts")
procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition")
procSetConsoleMode = modkernel32.NewProc("SetConsoleMode")
@@ -342,7 +352,6 @@
procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories")
procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW")
procSetEndOfFile = modkernel32.NewProc("SetEndOfFile")
- procSetFileValidData = modkernel32.NewProc("SetFileValidData")
procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW")
procSetErrorMode = modkernel32.NewProc("SetErrorMode")
procSetEvent = modkernel32.NewProc("SetEvent")
@@ -351,6 +360,7 @@
procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle")
procSetFilePointer = modkernel32.NewProc("SetFilePointer")
procSetFileTime = modkernel32.NewProc("SetFileTime")
+ procSetFileValidData = modkernel32.NewProc("SetFileValidData")
procSetHandleInformation = modkernel32.NewProc("SetHandleInformation")
procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject")
procSetNamedPipeHandleState = modkernel32.NewProc("SetNamedPipeHandleState")
@@ -361,6 +371,7 @@
procSetStdHandle = modkernel32.NewProc("SetStdHandle")
procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW")
procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW")
+ procSetupComm = modkernel32.NewProc("SetupComm")
procSizeofResource = modkernel32.NewProc("SizeofResource")
procSleepEx = modkernel32.NewProc("SleepEx")
procTerminateJobObject = modkernel32.NewProc("TerminateJobObject")
@@ -379,6 +390,7 @@
procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx")
procVirtualUnlock = modkernel32.NewProc("VirtualUnlock")
procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId")
+ procWaitCommEvent = modkernel32.NewProc("WaitCommEvent")
procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects")
procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject")
procWriteConsoleW = modkernel32.NewProc("WriteConsoleW")
@@ -1641,6 +1653,22 @@
return
}
+func ClearCommBreak(handle Handle) (err error) {
+ r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) {
+ r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat)))
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func CloseHandle(handle Handle) (err error) {
r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0)
if r1 == 0 {
@@ -1845,6 +1873,14 @@
return
}
+func DisconnectNamedPipe(pipe Handle) (err error) {
+ r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) {
var _p0 uint32
if bInheritHandle {
@@ -1857,6 +1893,14 @@
return
}
+func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func ExitProcess(exitcode uint32) {
syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0)
return
@@ -2058,6 +2102,22 @@
return
}
+func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func GetCommState(handle Handle, lpDCB *DCB) (err error) {
+ r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {
r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0)
if r1 == 0 {
@@ -2810,6 +2870,14 @@
return
}
+func PurgeComm(handle Handle, dwFlags uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) {
r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max))
n = uint32(r0)
@@ -2924,6 +2992,30 @@
return
}
+func SetCommBreak(handle Handle) (err error) {
+ r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func SetCommMask(handle Handle, dwEvtMask uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func SetCommState(handle Handle, lpDCB *DCB) (err error) {
+ r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {
r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0)
if r1 == 0 {
@@ -2989,14 +3081,6 @@
return
}
-func SetFileValidData(handle Handle, validDataLength int64) (err error) {
- r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0)
- if r1 == 0 {
- err = errnoErr(e1)
- }
- return
-}
-
func SetEnvironmentVariable(name *uint16, value *uint16) (err error) {
r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0)
if r1 == 0 {
@@ -3060,6 +3144,14 @@
return
}
+func SetFileValidData(handle Handle, validDataLength int64) (err error) {
+ r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0)
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) {
r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags))
if r1 == 0 {
@@ -3145,6 +3237,14 @@
return
}
+func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue))
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) {
r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0)
size = uint32(r0)
@@ -3291,6 +3391,14 @@
return
}
+func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) {
+ r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped)))
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {
var _p0 uint32
if waitAll {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt 2024-03-24 11:29:48.000000000 +0100
+++ new/vendor/modules.txt 2024-06-30 19:19:20.000000000 +0200
@@ -33,7 +33,7 @@
# github.com/davecgh/go-spew v1.1.1
## explicit
github.com/davecgh/go-spew/spew
-# github.com/dlclark/regexp2 v1.7.0
+# github.com/dlclark/regexp2 v1.11.0
## explicit; go 1.13
github.com/dlclark/regexp2
github.com/dlclark/regexp2/syntax
@@ -50,7 +50,7 @@
# github.com/fatih/color v1.16.0
## explicit; go 1.17
github.com/fatih/color
-# github.com/go-sourcemap/sourcemap v2.1.3+incompatible
+# github.com/go-sourcemap/sourcemap v2.1.4+incompatible
## explicit
github.com/go-sourcemap/sourcemap
github.com/go-sourcemap/sourcemap/internal/base64vlq
@@ -64,7 +64,7 @@
github.com/goccy/go-yaml/printer
github.com/goccy/go-yaml/scanner
github.com/goccy/go-yaml/token
-# github.com/google/pprof v0.0.0-20230207041349-798e818bf904
+# github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd
## explicit; go 1.19
github.com/google/pprof/profile
# github.com/lucasb-eyer/go-colorful v1.2.0
@@ -111,15 +111,15 @@
## explicit; go 1.20
github.com/stretchr/testify/assert
github.com/stretchr/testify/require
-# golang.org/x/sync v0.6.0
+# golang.org/x/sync v0.7.0
## explicit; go 1.18
golang.org/x/sync/errgroup
-# golang.org/x/sys v0.18.0
+# golang.org/x/sys v0.19.0
## explicit; go 1.18
golang.org/x/sys/plan9
golang.org/x/sys/unix
golang.org/x/sys/windows
-# golang.org/x/term v0.18.0
+# golang.org/x/term v0.19.0
## explicit; go 1.18
golang.org/x/term
# golang.org/x/text v0.14.0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package dino for openSUSE:Factory checked in at 2024-07-01 11:22:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dino (Old)
and /work/SRC/openSUSE:Factory/.dino.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dino"
Mon Jul 1 11:22:11 2024 rev:12 rq:1184196 version:0.4.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/dino/dino.changes 2024-06-18 22:52:25.947740100 +0200
+++ /work/SRC/openSUSE:Factory/.dino.new.18349/dino.changes 2024-07-01 11:23:02.932903306 +0200
@@ -1,0 +2,24 @@
+Mon Jul 1 06:22:17 UTC 2024 - Michael Vetter <mvetter(a)suse.com>
+
+- Update to 0.4.4:
+ * Update appdata
+ * Allow self-signed .onion file transfer certs (#1149)
+ * Self-ping with server-given roomnick (#1594)
+ * Join Channel dialog: Fix displaying of bookmark details
+ * Always export symbols to fix startup on BSDs
+ * AppData/DOAP: Use sentence case for summary.
+ * AppData: Add brand color
+ * Annotating with array_null_terminated doesn't imply a missing array_length
+ * Fix message stanza with body changing MUC subject (#1569)
+ * Fix poor contrast of highlight in search results with dark theme (#1557)
+ * Fix crash on removing conference not in roster (#1516)
+ * Fix http upload for servers without file size limit (#1512)
+ * Start conversation if closed when receiving an audio or video call (#1485)
+ * Fix crash due to gpg binding issue
+ * Fix implicit-function-declaration compiler warnings
+ * Fix subscription notification clearing
+ * fix: Add x node to MUC PM stanza (#1462)
+ * Fix showing the kick option to owners
+- Drop upstreamed dino-0.4.3-vala.patch
+
+-------------------------------------------------------------------
Old:
----
dino-0.4.3-vala.patch
dino-0.4.3.tar.gz
New:
----
dino-0.4.4.tar.gz
BETA DEBUG BEGIN:
Old: * Fix showing the kick option to owners
- Drop upstreamed dino-0.4.3-vala.patch
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dino.spec ++++++
--- /var/tmp/diff_new_pack.au1HG9/_old 2024-07-01 11:23:03.408920534 +0200
+++ /var/tmp/diff_new_pack.au1HG9/_new 2024-07-01 11:23:03.408920534 +0200
@@ -25,7 +25,7 @@
%endif
Name: dino
-Version: 0.4.3
+Version: 0.4.4
Release: 0
Summary: Modern Jabber/XMPP Client using GTK+/Vala
License: GPL-3.0-only
@@ -34,8 +34,6 @@
Source: https://github.com/dino/dino/releases/download/v%{version}/dino-%{version}.…
# PATCH-FEATURE-UPSTREAM -- Add more emoji translations gh/dino/dino#1207
Patch0: dino-0.4.3-emoji.patch
-# PATCH-FIX-UPSTREAM -- Fix build with vala >= 0.56.17 gh/dino/dino#1576
-Patch1: dino-0.4.3-vala.patch
BuildRequires: cmake
BuildRequires: gcc-c++
%if 0%{?suse_version}
++++++ dino-0.4.3.tar.gz -> dino-0.4.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/VERSION new/dino-0.4.4/VERSION
--- old/dino-0.4.3/VERSION 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/VERSION 2024-06-30 23:15:00.000000000 +0200
@@ -1 +1 @@
-RELEASE 0.4.3
+RELEASE 0.4.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/dino.doap new/dino-0.4.4/dino.doap
--- old/dino-0.4.3/dino.doap 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/dino.doap 2024-06-30 23:15:00.000000000 +0200
@@ -3,7 +3,7 @@
<Project>
<name>Dino</name>
<short-name>dino</short-name>
- <shortdesc xml:lang="en">Modern XMPP Chat Client</shortdesc>
+ <shortdesc xml:lang="en">Modern XMPP chat client</shortdesc>
<shortdesc xml:lang="zh-TW">現代化的 XMPP 用戶端聊天軟件</shortdesc>
<shortdesc xml:lang="zh-CN">现代 XMPP 聊天客户端</shortdesc>
<shortdesc xml:lang="tr">Modern XMPP Sohbet İstemcisi</shortdesc>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/dino.doap.in new/dino-0.4.4/dino.doap.in
--- old/dino-0.4.3/dino.doap.in 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/dino.doap.in 2024-06-30 23:15:00.000000000 +0200
@@ -9,7 +9,7 @@
<name>Dino</name>
<short-name>dino</short-name>
- <shortdesc xml:lang="en">Modern XMPP Chat Client</shortdesc>
+ <shortdesc xml:lang="en">Modern XMPP chat client</shortdesc>
<description xml:lang="en">
Dino is a modern open-source chat client for the desktop. It focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.
It supports end-to-end encryption with OMEMO and OpenPGP and allows configuring privacy-related features such as read receipts and typing notifications.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/libdino/src/application.vala new/dino-0.4.4/libdino/src/application.vala
--- old/dino-0.4.3/libdino/src/application.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/libdino/src/application.vala 2024-06-30 23:15:00.000000000 +0200
@@ -40,12 +40,12 @@
PresenceManager.start(stream_interactor);
CounterpartInteractionManager.start(stream_interactor);
BlockingManager.start(stream_interactor);
+ Calls.start(stream_interactor, db);
ConversationManager.start(stream_interactor, db);
MucManager.start(stream_interactor);
AvatarManager.start(stream_interactor, db);
RosterManager.start(stream_interactor, db);
FileManager.start(stream_interactor, db);
- Calls.start(stream_interactor, db);
CallStore.start(stream_interactor, db);
ContentItemStore.start(stream_interactor, db);
ChatInteraction.start(stream_interactor);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/libdino/src/service/calls.vala new/dino-0.4.4/libdino/src/service/calls.vala
--- old/dino-0.4.3/libdino/src/service/calls.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/libdino/src/service/calls.vala 2024-06-30 23:15:00.000000000 +0200
@@ -61,8 +61,6 @@
call_state.initiate_groupchat_call.begin(conversation.counterpart);
}
- conversation.last_active = call.time;
-
call_outgoing(call, call_state, conversation);
return call_state;
@@ -221,7 +219,6 @@
Conversation conversation = stream_interactor.get_module(ConversationManager.IDENTITY).create_conversation(call.counterpart.bare_jid, account, Conversation.Type.CHAT);
stream_interactor.get_module(CallStore.IDENTITY).add_call(call, conversation);
- conversation.last_active = call.time;
var call_state = new CallState(call, stream_interactor);
connect_call_state_signals(call_state);
@@ -294,7 +291,6 @@
Conversation? conversation = stream_interactor.get_module(ConversationManager.IDENTITY).get_conversation(inviter_jid.bare_jid, account);
if (conversation == null) return null;
stream_interactor.get_module(CallStore.IDENTITY).add_call(call, conversation);
- conversation.last_active = call.time;
CallState call_state = new CallState(call, stream_interactor);
connect_call_state_signals(call_state);
@@ -465,7 +461,6 @@
Conversation? conversation = stream_interactor.get_module(ConversationManager.IDENTITY).approx_conversation_for_stanza(from_jid, to_jid, account, message_stanza.type_);
if (conversation == null) return;
- conversation.last_active = call_state.call.time;
if (call_state.call.direction == Call.DIRECTION_INCOMING) {
call_incoming(call_state.call, call_state, conversation, video_requested, multiparty);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/libdino/src/service/conversation_manager.vala new/dino-0.4.4/libdino/src/service/conversation_manager.vala
--- old/dino-0.4.3/libdino/src/service/conversation_manager.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/libdino/src/service/conversation_manager.vala 2024-06-30 23:15:00.000000000 +0200
@@ -29,6 +29,8 @@
stream_interactor.account_removed.connect(on_account_removed);
stream_interactor.get_module(MessageProcessor.IDENTITY).received_pipeline.connect(new MessageListener(stream_interactor));
stream_interactor.get_module(MessageProcessor.IDENTITY).message_sent.connect(handle_sent_message);
+ stream_interactor.get_module(Calls.IDENTITY).call_incoming.connect(handle_new_call);
+ stream_interactor.get_module(Calls.IDENTITY).call_outgoing.connect(handle_new_call);
}
public Conversation create_conversation(Jid jid, Account account, Conversation.Type? type = null) {
@@ -194,6 +196,11 @@
}
}
+ private void handle_new_call(Call call, CallState state, Conversation conversation) {
+ conversation.last_active = call.time;
+ start_conversation(conversation);
+ }
+
private void add_conversation(Conversation conversation) {
if (!conversations[conversation.account].has_key(conversation.counterpart)) {
conversations[conversation.account][conversation.counterpart] = new ArrayList<Conversation>(Conversation.equals_func);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/libdino/src/service/muc_manager.vala new/dino-0.4.4/libdino/src/service/muc_manager.vala
--- old/dino-0.4.3/libdino/src/service/muc_manager.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/libdino/src/service/muc_manager.vala 2024-06-30 23:15:00.000000000 +0200
@@ -54,6 +54,7 @@
}
return true;
});
+ stream_interactor.get_module(MessageProcessor.IDENTITY).build_message_stanza.connect(on_build_message_stanza);
}
// already_autojoin: Without this flag we'd be retrieving bookmarks (to check for autojoin) from the sender on every join
@@ -83,11 +84,6 @@
}
mucs_joining[account].add(jid);
- if (!mucs_todo.has_key(account)) {
- mucs_todo[account] = new HashSet<Jid>(Jid.hash_bare_func, Jid.equals_bare_func);
- }
- mucs_todo[account].add(jid.with_resource(nick_));
-
Muc.JoinResult? res = yield stream.get_module(Xep.Muc.Module.IDENTITY).enter(stream, jid.bare_jid, nick_, password, history_since, receive_history, null);
mucs_joining[account].remove(jid);
@@ -126,6 +122,11 @@
enter_errors[jid] = res.muc_error;
}
+ if (!mucs_todo.has_key(account)) {
+ mucs_todo[account] = new HashSet<Jid>(Jid.hash_bare_func, Jid.equals_bare_func);
+ }
+ mucs_todo[account].add(jid.with_resource(res.nick ?? nick_));
+
return res;
}
@@ -651,6 +652,12 @@
conference_removed(account, jid);
}
+ private void on_build_message_stanza(Entities.Message message, Xmpp.MessageStanza message_stanza, Conversation conversation) {
+ if (conversation.type_ == Conversation.Type.GROUPCHAT_PM) {
+ Xmpp.Xep.Muc.add_muc_pm_message_stanza_x_node(message_stanza);
+ }
+ }
+
private void self_ping(Account account) {
XmppStream? stream = stream_interactor.get_stream(account);
if (stream == null) return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/CMakeLists.txt new/dino-0.4.4/main/CMakeLists.txt
--- old/dino-0.4.3/main/CMakeLists.txt 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/CMakeLists.txt 2024-06-30 23:15:00.000000000 +0200
@@ -232,6 +232,7 @@
add_dependencies(dino ${GETTEXT_PACKAGE}-translations)
target_include_directories(dino PRIVATE src)
target_link_libraries(dino libdino ${MAIN_PACKAGES})
+set_target_properties(dino PROPERTIES ENABLE_EXPORTS TRUE)
if(WIN32)
target_link_libraries(dino -mwindows)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/data/im.dino.Dino.appdata.xml new/dino-0.4.4/main/data/im.dino.Dino.appdata.xml
--- old/dino-0.4.3/main/data/im.dino.Dino.appdata.xml 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/data/im.dino.Dino.appdata.xml 2024-06-30 23:15:00.000000000 +0200
@@ -1,11 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>im.dino.Dino</id>
- <launchable type="desktop-id">im.dino.Dino.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
- <project_license>GPL-3.0+</project_license>
<name>Dino</name>
- <summary>Modern XMPP Chat Client</summary>
+ <summary>Modern XMPP chat client</summary>
<summary xml:lang="zh_TW">現代化的 XMPP 用戶端聊天軟件</summary>
<summary xml:lang="zh_CN">现代 XMPP 聊天客户端</summary>
<summary xml:lang="tr">Modern XMPP Sohbet İstemcisi</summary>
@@ -39,6 +37,8 @@
<summary xml:lang="cs">Moderní XMPP klient</summary>
<summary xml:lang="ca">Client de xat XMPP modern</summary>
<summary xml:lang="ar">تطبيق حديث للدردشة عبر XMPP</summary>
+ <icon type="stock">im.dino.Dino</icon>
+ <icon type="remote" width="128" height="128">https://dino.im/img/appdata/icon-dino-0.4-128x128.png</icon>
<description>
<p>Dino is a modern open-source chat client for the desktop. It focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.</p>
<p xml:lang="zh_TW">Dino 是一個爲桌面打造的現代化開放原始碼用戶端聊天軟件。它致力於提供一份簡洁而可靠的 Jabber/XMPP 體驗,同時亦尊重您的私隱。</p>
@@ -146,24 +146,22 @@
<p xml:lang="ca">Dino recupera l'historial del servidor i sincronitza els missatges amb altres dispositius.</p>
<p xml:lang="ar">يقوم Dino بجلب السِجلّ مِن السيرفر ثم يُزامِن الرسائل مع الأجهزة الأخرى.</p>
</description>
- <screenshots>
- <screenshot type="default">
- <image>https://dino.im/img/appdata/2022-02_screenshot-main.png</image>
- </screenshot>
- <screenshot>
- <image>https://dino.im/img/appdata/2022-02_screenshot-call.png</image>
- </screenshot>
- <screenshot>
- <image>https://dino.im/img/appdata/start_chat.png</image>
- </screenshot>
- </screenshots>
- <translation type="gettext">dino</translation>
- <developer_name>Dino Development Team</developer_name>
+ <categories>
+ <category>Network</category>
+ <category>InstantMessaging</category>
+ <category>Chat</category>
+ <category>GTK</category>
+ </categories>
+ <keywords>
+ <keyword translate="no">Jabber</keyword>
+ <keyword translate="no">XMPP</keyword>
+ </keywords>
<url type="homepage">https://dino.im</url>
<url type="bugtracker">https://github.com/dino/dino/issues</url>
<url type="donation">https://dino.im/#donate</url>
+ <url type="vcs-browser">https://github.com/dino/dino</url>
<url type="translate">https://hosted.weblate.org/projects/dino/</url>
- <update_contact>appstream(a)dino.im</update_contact>
+ <launchable type="desktop-id">im.dino.Dino.desktop</launchable>
<releases>
<release date="2023-02-07" version="0.4">
<description>
@@ -186,8 +184,50 @@
</description>
</release>
</releases>
+ <provides>
+ <mediatype>x-scheme-handler/xmpp</mediatype>
+ </provides>
+ <recommends>
+ <internet>always</internet>
+ </recommends>
+ <supports>
+ <control>pointing</control>
+ <control>keyboard</control>
+ <control>touch</control>
+ </supports>
+ <project_license>GPL-3.0+</project_license>
+ <developer id="im.dino">
+ <name>Dino Development Team</name>
+ <url>https://dino.im/</url>
+ </developer>
+ <!-- Deprecated: -->
+ <developer_name>Dino Development Team</developer_name>
+ <screenshots>
+ <screenshot type="default">
+ <image type="source" width="2244" height="1644" scale="2">https://dino.im/img/appdata/screenshot-dino-0.4-main-2244x1644@2.png</image>
+ <caption>Main screen</caption>
+ </screenshot>
+ <screenshot>
+ <image type="source" width="1441" height="929" scale="2">https://dino.im/img/appdata/screenshot-dino-0.4-call-1441x929@2.png</image>
+ <caption>Video call screen</caption>
+ </screenshot>
+ <screenshot>
+ <image type="source" width="2244" height="1644" scale="2">https://dino.im/img/appdata/screenshot-dino-0.4-search-2244x1644@2.png</image>
+ <caption>Main screen featuring search overlay</caption>
+ </screenshot>
+ <screenshot>
+ <image type="source" width="964" height="1552" scale="2">https://dino.im/img/appdata/screenshot-dino-0.4-mobile-964x1552@2.png</image>
+ <caption>Main screen in mobile size window</caption>
+ </screenshot>
+ </screenshots>
+ <translation type="gettext">dino</translation>
<content_rating type="oars-1.1">
<content_attribute id="social-chat">intense</content_attribute>
<content_attribute id="social-audio">intense</content_attribute>
</content_rating>
+ <update_contact>appstream(a)dino.im</update_contact>
+ <branding>
+ <color type="primary" scheme_preference="light">#B2DFDB</color>
+ <color type="primary" scheme_preference="dark">#004D40</color>
+ </branding>
</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/data/im.dino.Dino.appdata.xml.in new/dino-0.4.4/main/data/im.dino.Dino.appdata.xml.in
--- old/dino-0.4.3/main/data/im.dino.Dino.appdata.xml.in 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/data/im.dino.Dino.appdata.xml.in 2024-06-30 23:15:00.000000000 +0200
@@ -1,34 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>im.dino.Dino</id>
- <launchable type="desktop-id">im.dino.Dino.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
- <project_license>GPL-3.0+</project_license>
<name>Dino</name>
- <summary>Modern XMPP Chat Client</summary>
+ <summary>Modern XMPP chat client</summary>
+ <icon type="stock">im.dino.Dino</icon>
+ <icon type="remote" width="128" height="128">https://dino.im/img/appdata/icon-dino-0.4-128x128.png</icon>
<description>
<p>Dino is a modern open-source chat client for the desktop. It focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.</p>
<p>It supports end-to-end encryption with OMEMO and OpenPGP and allows configuring privacy-related features such as read receipts and typing notifications.</p>
<p>Dino fetches history from the server and synchronizes messages with other devices.</p>
</description>
- <screenshots>
- <screenshot type="default">
- <image>https://dino.im/img/appdata/2022-02_screenshot-main.png</image>
- </screenshot>
- <screenshot>
- <image>https://dino.im/img/appdata/2022-02_screenshot-call.png</image>
- </screenshot>
- <screenshot>
- <image>https://dino.im/img/appdata/start_chat.png</image>
- </screenshot>
- </screenshots>
- <translation type="gettext">dino</translation>
- <developer_name>Dino Development Team</developer_name>
+ <categories>
+ <category>Network</category>
+ <category>InstantMessaging</category>
+ <category>Chat</category>
+ <category>GTK</category>
+ </categories>
+ <keywords>
+ <keyword translate="no">Jabber</keyword>
+ <keyword translate="no">XMPP</keyword>
+ </keywords>
<url type="homepage">https://dino.im</url>
<url type="bugtracker">https://github.com/dino/dino/issues</url>
<url type="donation">https://dino.im/#donate</url>
+ <url type="vcs-browser">https://github.com/dino/dino</url>
<url type="translate">https://hosted.weblate.org/projects/dino/</url>
- <update_contact>appstream(a)dino.im</update_contact>
+ <launchable type="desktop-id">im.dino.Dino.desktop</launchable>
<releases>
<release date="2023-02-07" version="0.4">
<description>
@@ -51,8 +49,50 @@
</description>
</release>
</releases>
+ <provides>
+ <mediatype>x-scheme-handler/xmpp</mediatype>
+ </provides>
+ <recommends>
+ <internet>always</internet>
+ </recommends>
+ <supports>
+ <control>pointing</control>
+ <control>keyboard</control>
+ <control>touch</control>
+ </supports>
+ <project_license>GPL-3.0+</project_license>
+ <developer id="im.dino">
+ <name>Dino Development Team</name>
+ <url>https://dino.im/</url>
+ </developer>
+ <!-- Deprecated: -->
+ <developer_name>Dino Development Team</developer_name>
+ <screenshots>
+ <screenshot type="default">
+ <image type="source" width="2244" height="1644" scale="2">https://dino.im/img/appdata/screenshot-dino-0.4-main-2244x1644@2.png</image>
+ <caption>Main screen</caption>
+ </screenshot>
+ <screenshot>
+ <image type="source" width="1441" height="929" scale="2">https://dino.im/img/appdata/screenshot-dino-0.4-call-1441x929@2.png</image>
+ <caption>Video call screen</caption>
+ </screenshot>
+ <screenshot>
+ <image type="source" width="2244" height="1644" scale="2">https://dino.im/img/appdata/screenshot-dino-0.4-search-2244x1644@2.png</image>
+ <caption>Main screen featuring search overlay</caption>
+ </screenshot>
+ <screenshot>
+ <image type="source" width="964" height="1552" scale="2">https://dino.im/img/appdata/screenshot-dino-0.4-mobile-964x1552@2.png</image>
+ <caption>Main screen in mobile size window</caption>
+ </screenshot>
+ </screenshots>
+ <translation type="gettext">dino</translation>
<content_rating type="oars-1.1">
<content_attribute id="social-chat">intense</content_attribute>
<content_attribute id="social-audio">intense</content_attribute>
</content_rating>
+ <update_contact>appstream(a)dino.im</update_contact>
+ <branding>
+ <color type="primary" scheme_preference="light">#B2DFDB</color>
+ <color type="primary" scheme_preference="dark">#004D40</color>
+ </branding>
</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/ar.po new/dino-0.4.4/main/po/ar.po
--- old/dino-0.4.3/main/po/ar.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/ar.po 2024-06-30 23:15:00.000000000 +0200
@@ -1052,7 +1052,7 @@
msgstr "التدقيق الإملائي"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "تطبيق حديث للدردشة عبر XMPP"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/ca.po new/dino-0.4.4/main/po/ca.po
--- old/dino-0.4.3/main/po/ca.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/ca.po 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr "Revisa l'ortografia"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Client de xat XMPP modern"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/cs.po new/dino-0.4.4/main/po/cs.po
--- old/dino-0.4.3/main/po/cs.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/cs.po 2024-06-30 23:15:00.000000000 +0200
@@ -1038,7 +1038,7 @@
msgstr "Kontrola pravopisu"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Moderní XMPP klient"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/da.po new/dino-0.4.4/main/po/da.po
--- old/dino-0.4.3/main/po/da.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/da.po 2024-06-30 23:15:00.000000000 +0200
@@ -1034,7 +1034,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/de.po new/dino-0.4.4/main/po/de.po
--- old/dino-0.4.3/main/po/de.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/de.po 2024-06-30 23:15:00.000000000 +0200
@@ -1033,7 +1033,7 @@
msgstr "Rechtschreibung prüfen"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Modernes XMPP-Chat-Programm"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/dino.pot new/dino-0.4.4/main/po/dino.pot
--- old/dino-0.4.3/main/po/dino.pot 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/dino.pot 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/el.po new/dino-0.4.4/main/po/el.po
--- old/dino-0.4.3/main/po/el.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/el.po 2024-06-30 23:15:00.000000000 +0200
@@ -1040,7 +1040,7 @@
msgstr "Ορθογραφικός έλεγχος"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Σύγχρονος XMPP Chat Client"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/en.po new/dino-0.4.4/main/po/en.po
--- old/dino-0.4.3/main/po/en.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/en.po 2024-06-30 23:15:00.000000000 +0200
@@ -1025,7 +1025,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/eo.po new/dino-0.4.4/main/po/eo.po
--- old/dino-0.4.3/main/po/eo.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/eo.po 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr "Kontroli ortografion"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Moderna XMPP-Retebabililo"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/es.po new/dino-0.4.4/main/po/es.po
--- old/dino-0.4.3/main/po/es.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/es.po 2024-06-30 23:15:00.000000000 +0200
@@ -1038,7 +1038,7 @@
msgstr "Comprobar ortografía"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Un cliente de XMPP moderno"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/eu.po new/dino-0.4.4/main/po/eu.po
--- old/dino-0.4.3/main/po/eu.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/eu.po 2024-06-30 23:15:00.000000000 +0200
@@ -1037,7 +1037,7 @@
msgstr "Ortografia egiaztatu"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "XMPP txat bezero modernoa"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/fa.po new/dino-0.4.4/main/po/fa.po
--- old/dino-0.4.3/main/po/fa.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/fa.po 2024-06-30 23:15:00.000000000 +0200
@@ -1034,7 +1034,7 @@
msgstr "بررسی املا"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "کلاینت نوین گپ XMPP"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/fi.po new/dino-0.4.4/main/po/fi.po
--- old/dino-0.4.3/main/po/fi.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/fi.po 2024-06-30 23:15:00.000000000 +0200
@@ -1036,7 +1036,7 @@
#: main/data/im.dino.Dino.appdata.xml.in:7
#, fuzzy
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Moderni XMPP-asiakasohjelma"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/fr.po new/dino-0.4.4/main/po/fr.po
--- old/dino-0.4.3/main/po/fr.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/fr.po 2024-06-30 23:15:00.000000000 +0200
@@ -1038,7 +1038,7 @@
msgstr "Vérifier l'orthographe"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Client de clavardage XMPP moderne"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/gl.po new/dino-0.4.4/main/po/gl.po
--- old/dino-0.4.3/main/po/gl.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/gl.po 2024-06-30 23:15:00.000000000 +0200
@@ -1038,7 +1038,7 @@
msgstr "Comprobar ortografía"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Cliente moderno para conversas XMPP"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/hu.po new/dino-0.4.4/main/po/hu.po
--- old/dino-0.4.3/main/po/hu.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/hu.po 2024-06-30 23:15:00.000000000 +0200
@@ -1041,7 +1041,7 @@
msgstr "Helyesírás-ellenőrzés"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Modern XMPP csevegőprogram"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/id.po new/dino-0.4.4/main/po/id.po
--- old/dino-0.4.3/main/po/id.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/id.po 2024-06-30 23:15:00.000000000 +0200
@@ -1030,7 +1030,7 @@
msgstr "Periksa ejaan"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Aplikasi chat XMPP modern"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/ie.po new/dino-0.4.4/main/po/ie.po
--- old/dino-0.4.3/main/po/ie.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/ie.po 2024-06-30 23:15:00.000000000 +0200
@@ -1034,7 +1034,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Un modern client de conversationes XMPP"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/is.po new/dino-0.4.4/main/po/is.po
--- old/dino-0.4.3/main/po/is.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/is.po 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr "Kanna stafsetningu"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Nútímalegt XMPP-spjallforrit"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/it.po new/dino-0.4.4/main/po/it.po
--- old/dino-0.4.3/main/po/it.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/it.po 2024-06-30 23:15:00.000000000 +0200
@@ -1037,7 +1037,7 @@
msgstr "Controlla l'ortografia"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Client di chat moderno per XMPP"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/ja.po new/dino-0.4.4/main/po/ja.po
--- old/dino-0.4.3/main/po/ja.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/ja.po 2024-06-30 23:15:00.000000000 +0200
@@ -1032,7 +1032,7 @@
msgstr "スペルチェック"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "現代的な XMPP チャット クライアント"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/kab.po new/dino-0.4.4/main/po/kab.po
--- old/dino-0.4.3/main/po/kab.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/kab.po 2024-06-30 23:15:00.000000000 +0200
@@ -1034,7 +1034,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/ko.po new/dino-0.4.4/main/po/ko.po
--- old/dino-0.4.3/main/po/ko.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/ko.po 2024-06-30 23:15:00.000000000 +0200
@@ -1038,7 +1038,7 @@
msgstr "맞춤법 확인"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "현대 XMPP 채팅 클라이언트"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/lb.po new/dino-0.4.4/main/po/lb.po
--- old/dino-0.4.3/main/po/lb.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/lb.po 2024-06-30 23:15:00.000000000 +0200
@@ -1030,7 +1030,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Modernen XMPP Chat Client"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/lt.po new/dino-0.4.4/main/po/lt.po
--- old/dino-0.4.3/main/po/lt.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/lt.po 2024-06-30 23:15:00.000000000 +0200
@@ -1041,7 +1041,7 @@
msgstr "Tikrinti rašybą"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Šiuolaikinė XMPP pokalbių kliento programa"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/lv.po new/dino-0.4.4/main/po/lv.po
--- old/dino-0.4.3/main/po/lv.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/lv.po 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/nb.po new/dino-0.4.4/main/po/nb.po
--- old/dino-0.4.3/main/po/nb.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/nb.po 2024-06-30 23:15:00.000000000 +0200
@@ -1039,7 +1039,7 @@
msgstr "Stavekontroll"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Moderne XMPP-sludreklient"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/nl.po new/dino-0.4.4/main/po/nl.po
--- old/dino-0.4.3/main/po/nl.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/nl.po 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr "Spelling controleren"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Een moderne XMPP-chatclient"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/oc.po new/dino-0.4.4/main/po/oc.po
--- old/dino-0.4.3/main/po/oc.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/oc.po 2024-06-30 23:15:00.000000000 +0200
@@ -1037,7 +1037,7 @@
msgstr "Verificar l’ortografia"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Client XMPP modèrn"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/pl.po new/dino-0.4.4/main/po/pl.po
--- old/dino-0.4.3/main/po/pl.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/pl.po 2024-06-30 23:15:00.000000000 +0200
@@ -1042,7 +1042,7 @@
msgstr "Sprawdź pisownie"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Nowoczesny komunikator XMPP"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/pt.po new/dino-0.4.4/main/po/pt.po
--- old/dino-0.4.3/main/po/pt.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/pt.po 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr "Verificar ortografia"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Moderno cliente de chat XMPP"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/pt_BR.po new/dino-0.4.4/main/po/pt_BR.po
--- old/dino-0.4.3/main/po/pt_BR.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/pt_BR.po 2024-06-30 23:15:00.000000000 +0200
@@ -1036,7 +1036,7 @@
msgstr "Verificar ortografia"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Cliente de Chat XMPP Moderno"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/ro.po new/dino-0.4.4/main/po/ro.po
--- old/dino-0.4.3/main/po/ro.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/ro.po 2024-06-30 23:15:00.000000000 +0200
@@ -1042,7 +1042,7 @@
msgstr "Verificare ortografie"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Client XMPP de discuții modern"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/ru.po new/dino-0.4.4/main/po/ru.po
--- old/dino-0.4.3/main/po/ru.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/ru.po 2024-06-30 23:15:00.000000000 +0200
@@ -1040,7 +1040,7 @@
msgstr "Проверка орфографии"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Современный XMPP клиент"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/sq.po new/dino-0.4.4/main/po/sq.po
--- old/dino-0.4.3/main/po/sq.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/sq.po 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr "Kontroll drejtshkrimi"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Klient Modern Fjalosjesh XMPP"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/sv.po new/dino-0.4.4/main/po/sv.po
--- old/dino-0.4.3/main/po/sv.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/sv.po 2024-06-30 23:15:00.000000000 +0200
@@ -1035,7 +1035,7 @@
msgstr "Kontrollera stavning"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Modern XMPP-chattklient"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/ta.po new/dino-0.4.4/main/po/ta.po
--- old/dino-0.4.3/main/po/ta.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/ta.po 2024-06-30 23:15:00.000000000 +0200
@@ -1034,7 +1034,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/tr.po new/dino-0.4.4/main/po/tr.po
--- old/dino-0.4.3/main/po/tr.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/tr.po 2024-06-30 23:15:00.000000000 +0200
@@ -1034,7 +1034,7 @@
msgstr "Yazım denetimi"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "Modern XMPP Sohbet İstemcisi"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/uk.po new/dino-0.4.4/main/po/uk.po
--- old/dino-0.4.3/main/po/uk.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/uk.po 2024-06-30 23:15:00.000000000 +0200
@@ -1039,7 +1039,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/zh_CN.po new/dino-0.4.4/main/po/zh_CN.po
--- old/dino-0.4.3/main/po/zh_CN.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/zh_CN.po 2024-06-30 23:15:00.000000000 +0200
@@ -1031,7 +1031,7 @@
msgstr "检查拼写"
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "现代 XMPP 聊天客户端"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/po/zh_TW.po new/dino-0.4.4/main/po/zh_TW.po
--- old/dino-0.4.3/main/po/zh_TW.po 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/po/zh_TW.po 2024-06-30 23:15:00.000000000 +0200
@@ -1030,7 +1030,7 @@
msgstr ""
#: main/data/im.dino.Dino.appdata.xml.in:7
-msgid "Modern XMPP Chat Client"
+msgid "Modern XMPP chat client"
msgstr "現代化的 XMPP 用戶端聊天軟件"
#: main/data/im.dino.Dino.appdata.xml.in:9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/src/ui/add_conversation/add_conference_dialog.vala new/dino-0.4.4/main/src/ui/add_conversation/add_conference_dialog.vala
--- old/dino-0.4.3/main/src/ui/add_conversation/add_conference_dialog.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/src/ui/add_conversation/add_conference_dialog.vala 2024-06-30 23:15:00.000000000 +0200
@@ -101,6 +101,7 @@
});
select_fragment.remove_jid.connect((row) => {
ConferenceListRow conference_row = row as ConferenceListRow;
+ if (conference_row == null) return;
stream_interactor.get_module(MucManager.IDENTITY).remove_bookmark(conference_row.account, conference_row.bookmark);
});
@@ -162,7 +163,7 @@
details_fragment.clear();
ListRow? row = conference_list_box.get_selected_row() != null ? conference_list_box.get_selected_row().get_child() as ListRow : null;
- ConferenceListRow? conference_row = conference_list_box.get_selected_row() != null ? conference_list_box.get_selected_row() as ConferenceListRow : null;
+ ConferenceListRow? conference_row = conference_list_box.get_selected_row() != null ? conference_list_box.get_selected_row().get_child() as ConferenceListRow : null;
if (conference_row != null) {
details_fragment.account = conference_row.account;
details_fragment.jid = conference_row.bookmark.jid.to_string();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/src/ui/conversation_content_view/conversation_view.vala new/dino-0.4.4/main/src/ui/conversation_content_view/conversation_view.vala
--- old/dino-0.4.3/main/src/ui/conversation_content_view/conversation_view.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/src/ui/conversation_content_view/conversation_view.vala 2024-06-30 23:15:00.000000000 +0200
@@ -606,6 +606,12 @@
widget.dispose();
}
widgets.clear();
+
+ Widget? notification = notifications.get_first_child();
+ while (notification != null) {
+ notifications.remove(notification);
+ notification = notifications.get_first_child();
+ }
}
private void clear_notifications() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/src/ui/global_search.vala new/dino-0.4.4/main/src/ui/global_search.vala
--- old/dino-0.4.3/main/src/ui/global_search.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/src/ui/global_search.vala 2024-06-30 23:15:00.000000000 +0200
@@ -260,7 +260,8 @@
for (; match_info.matches(); match_info.next()) {
int start, end;
match_info.fetch_pos(0, out start, out end);
- markup_text += Markup.escape_text(text[last_end:start]) + "<span bgcolor=\"yellow\">" + Markup.escape_text(text[start:end]) + "</span>";
+ string themed_span = Util.is_dark_theme(label) ? "<span color=\"black\" bgcolor=\"yellow\">" : "<span bgcolor=\"yellow\">";
+ markup_text += Markup.escape_text(text[last_end:start]) + themed_span + Markup.escape_text(text[start:end]) + "</span>";
last_end = end;
}
markup_text += Markup.escape_text(text[last_end:text.length]);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/main/src/ui/notifier_freedesktop.vala new/dino-0.4.4/main/src/ui/notifier_freedesktop.vala
--- old/dino-0.4.3/main/src/ui/notifier_freedesktop.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/main/src/ui/notifier_freedesktop.vala 2024-06-30 23:15:00.000000000 +0200
@@ -267,23 +267,28 @@
}
public async void retract_content_item_notifications() {
- if (content_notifications != null) {
- foreach (uint32 id in content_notifications.values) {
- try {
- dbus_notifications.close_notification.begin(id);
- } catch (Error e) { }
- }
- content_notifications.clear();
+ foreach (uint32 id in content_notifications.values) {
+ try {
+ dbus_notifications.close_notification.begin(id);
+ } catch (Error e) { }
}
+ content_notifications.clear();
}
public async void retract_conversation_notifications(Conversation conversation) {
- if (content_notifications.has_key(conversation)) {
- try {
+ try {
+ if (content_notifications.has_key(conversation)) {
dbus_notifications.close_notification.begin(content_notifications[conversation]);
- } catch (Error e) { }
- }
- content_notifications.unset(conversation);
+ content_notifications.unset(conversation);
+ }
+
+ if (conversation_notifications.has_key(conversation)) {
+ foreach (var notification_id in conversation_notifications[conversation]) {
+ dbus_notifications.close_notification.begin(notification_id);
+ }
+ conversation_notifications.unset(conversation);
+ }
+ } catch (Error e) { }
}
private async Variant get_conversation_icon(Conversation conversation) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/plugins/gpgme-vala/src/gpgme_helper.vala new/dino-0.4.4/plugins/gpgme-vala/src/gpgme_helper.vala
--- old/dino-0.4.3/plugins/gpgme-vala/src/gpgme_helper.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/plugins/gpgme-vala/src/gpgme_helper.vala 2024-06-30 23:15:00.000000000 +0200
@@ -117,6 +117,7 @@
} catch (Error e) {
if (e.code != GPGError.ErrorCode.EOF) throw e;
}
+ context.op_keylist_end();
return keys;
} finally {
global_mutex.unlock();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/plugins/gpgme-vala/vapi/gpgme_public.vapi new/dino-0.4.4/plugins/gpgme-vala/vapi/gpgme_public.vapi
--- old/dino-0.4.3/plugins/gpgme-vala/vapi/gpgme_public.vapi 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/plugins/gpgme-vala/vapi/gpgme_public.vapi 2024-06-30 23:15:00.000000000 +0200
@@ -22,9 +22,9 @@
public string issuer_name;
public string chain_id;
public Validity owner_trust;
- [CCode(array_null_terminated = true)]
+ [CCode (array_length = false, array_null_terminated = true)]
public SubKey[] subkeys;
- [CCode(array_null_terminated = true)]
+ [CCode (array_length = false, array_null_terminated = true)]
public UserID[] uids;
public KeylistMode keylist_mode;
// public string fpr; // requires gpgme >= 1.7.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/plugins/http-files/src/file_provider.vala new/dino-0.4.4/plugins/http-files/src/file_provider.vala
--- old/dino-0.4.3/plugins/http-files/src/file_provider.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/plugins/http-files/src/file_provider.vala 2024-06-30 23:15:00.000000000 +0200
@@ -120,6 +120,11 @@
var head_message = new Soup.Message("HEAD", http_receive_data.url);
head_message.request_headers.append("Accept-Encoding", "identity");
+#if SOUP_3_0
+ string transfer_host = Uri.parse(http_receive_data.url, UriFlags.NONE).get_host();
+ head_message.accept_certificate.connect((peer_cert, errors) => { return ConnectionManager.on_invalid_certificate(transfer_host, peer_cert, errors); });
+#endif
+
try {
#if SOUP_3_0
yield session.send_async(head_message, GLib.Priority.LOW, null);
@@ -153,6 +158,11 @@
var get_message = new Soup.Message("GET", http_receive_data.url);
+#if SOUP_3_0
+ string transfer_host = Uri.parse(http_receive_data.url, UriFlags.NONE).get_host();
+ get_message.accept_certificate.connect((peer_cert, errors) => { return ConnectionManager.on_invalid_certificate(transfer_host, peer_cert, errors); });
+#endif
+
try {
#if SOUP_3_0
InputStream stream = yield session.send_async(get_message, GLib.Priority.LOW, file_transfer.cancellable);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/plugins/http-files/src/file_sender.vala new/dino-0.4.4/plugins/http-files/src/file_sender.vala
--- old/dino-0.4.3/plugins/http-files/src/file_sender.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/plugins/http-files/src/file_sender.vala 2024-06-30 23:15:00.000000000 +0200
@@ -94,7 +94,10 @@
if (stream == null) return;
var put_message = new Soup.Message("PUT", file_send_data.url_up);
+
#if SOUP_3_0
+ string transfer_host = Uri.parse(file_send_data.url_up, UriFlags.NONE).get_host();
+ put_message.accept_certificate.connect((peer_cert, errors) => { return ConnectionManager.on_invalid_certificate(transfer_host, peer_cert, errors); });
put_message.set_request_body(file_meta.mime_type, file_transfer.input_stream, (ssize_t) file_meta.size);
#else
put_message.request_headers.set_content_type(file_meta.mime_type, null);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/plugins/openpgp/src/account_settings_entry.vala new/dino-0.4.4/plugins/openpgp/src/account_settings_entry.vala
--- old/dino-0.4.3/plugins/openpgp/src/account_settings_entry.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/plugins/openpgp/src/account_settings_entry.vala 2024-06-30 23:15:00.000000000 +0200
@@ -116,8 +116,10 @@
SourceFunc callback = fetch_keys.callback;
new Thread<void*> (null, () => { // Querying GnuPG might take some time
try {
- keys = GPGHelper.get_keylist(null, true);
- } catch (Error e) { }
+ keys = GPGHelper.get_keylist(null, true);
+ } catch (Error e) {
+ warning(e.message);
+ }
Idle.add((owned)callback);
return null;
});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/xmpp-vala/src/module/xep/0045_muc/module.vala new/dino-0.4.4/xmpp-vala/src/module/xep/0045_muc/module.vala
--- old/dino-0.4.3/xmpp-vala/src/module/xep/0045_muc/module.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/xmpp-vala/src/module/xep/0045_muc/module.vala 2024-06-30 23:15:00.000000000 +0200
@@ -54,6 +54,11 @@
UNSECURED
}
+public static void add_muc_pm_message_stanza_x_node(MessageStanza message_stanza) {
+ StanzaNode x_node = new StanzaNode.build("x", "http://jabber.org/protocol/muc#user").add_self_xmlns();
+ message_stanza.stanza.put_node(x_node);
+}
+
public class JoinResult {
public MucEnterError? muc_error;
public string? stanza_error;
@@ -203,6 +208,8 @@
case Affiliation.ADMIN:
if (other_affiliation == Affiliation.OWNER) return false;
break;
+ case Affiliation.OWNER:
+ return true;
default:
return false;
}
@@ -278,7 +285,7 @@
private void on_received_message(XmppStream stream, MessageStanza message) {
if (message.type_ == MessageStanza.TYPE_GROUPCHAT) {
StanzaNode? subject_node = message.stanza.get_subnode("subject");
- if (subject_node != null) {
+ if (subject_node != null && message.body == null){
string subject = subject_node.get_string_content();
stream.get_flag(Flag.IDENTITY).set_muc_subject(message.from, subject);
subject_set(stream, subject, message.from);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/xmpp-vala/src/module/xep/0363_http_file_upload.vala new/dino-0.4.4/xmpp-vala/src/module/xep/0363_http_file_upload.vala
--- old/dino-0.4.3/xmpp-vala/src/module/xep/0363_http_file_upload.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/xmpp-vala/src/module/xep/0363_http_file_upload.vala 2024-06-30 23:15:00.000000000 +0200
@@ -181,7 +181,9 @@
}
}
if (max_file_size_str != null) return long.parse(max_file_size_str);
- return -1;
+
+ // If there is no max-file-size node, there is no file size limit
+ return long.MAX;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dino-0.4.3/xmpp-vala/src/module/xep/0384_omemo/omemo_encryptor.vala new/dino-0.4.4/xmpp-vala/src/module/xep/0384_omemo/omemo_encryptor.vala
--- old/dino-0.4.3/xmpp-vala/src/module/xep/0384_omemo/omemo_encryptor.vala 2023-07-09 19:00:00.000000000 +0200
+++ new/dino-0.4.4/xmpp-vala/src/module/xep/0384_omemo/omemo_encryptor.vala 2024-06-30 23:15:00.000000000 +0200
@@ -72,27 +72,27 @@
}
public class EncryptionResult {
- public int lost { get; internal set; }
- public int success { get; internal set; }
- public int unknown { get; internal set; }
- public int failure { get; internal set; }
+ public int lost { get; set; }
+ public int success { get; set; }
+ public int unknown { get; set; }
+ public int failure { get; set; }
}
public class EncryptState {
- public bool encrypted { get; internal set; }
- public int other_devices { get; internal set; }
- public int other_success { get; internal set; }
- public int other_lost { get; internal set; }
- public int other_unknown { get; internal set; }
- public int other_failure { get; internal set; }
- public int other_waiting_lists { get; internal set; }
+ public bool encrypted { get; set; }
+ public int other_devices { get; set; }
+ public int other_success { get; set; }
+ public int other_lost { get; set; }
+ public int other_unknown { get; set; }
+ public int other_failure { get; set; }
+ public int other_waiting_lists { get; set; }
- public int own_devices { get; internal set; }
- public int own_success { get; internal set; }
- public int own_lost { get; internal set; }
- public int own_unknown { get; internal set; }
- public int own_failure { get; internal set; }
- public bool own_list { get; internal set; }
+ public int own_devices { get; set; }
+ public int own_success { get; set; }
+ public int own_lost { get; set; }
+ public int own_unknown { get; set; }
+ public int own_failure { get; set; }
+ public bool own_list { get; set; }
public void add_result(EncryptionResult enc_res, bool own) {
if (own) {
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package eza for openSUSE:Factory checked in at 2024-07-01 11:22:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/eza (Old)
and /work/SRC/openSUSE:Factory/.eza.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "eza"
Mon Jul 1 11:22:09 2024 rev:40 rq:1184194 version:0.18.21+0
Changes:
--------
--- /work/SRC/openSUSE:Factory/eza/eza.changes 2024-06-27 16:05:06.238582788 +0200
+++ /work/SRC/openSUSE:Factory/.eza.new.18349/eza.changes 2024-07-01 11:23:01.340845685 +0200
@@ -1,0 +2,6 @@
+Mon Jul 1 06:06:03 UTC 2024 - Michael Vetter <mvetter(a)suse.com>
+
+- Update to 0.18.21:
+ * Fix missing line breaks in _eza
+
+-------------------------------------------------------------------
Old:
----
eza-0.18.20+0.obscpio
New:
----
eza-0.18.21+0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ eza.spec ++++++
--- /var/tmp/diff_new_pack.XHkQOC/_old 2024-07-01 11:23:02.332881589 +0200
+++ /var/tmp/diff_new_pack.XHkQOC/_new 2024-07-01 11:23:02.332881589 +0200
@@ -17,7 +17,7 @@
Name: eza
-Version: 0.18.20+0
+Version: 0.18.21+0
Release: 0
Summary: Replacement for ls written in Rust
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.XHkQOC/_old 2024-07-01 11:23:02.368882892 +0200
+++ /var/tmp/diff_new_pack.XHkQOC/_new 2024-07-01 11:23:02.372883037 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/eza-community/eza.git</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="scm">git</param>
- <param name="revision">v0.18.20</param>
+ <param name="revision">v0.18.21</param>
<param name="match-tag">*</param>
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
<param name="versionrewrite-replacement">\1</param>
++++++ eza-0.18.20+0.obscpio -> eza-0.18.21+0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eza-0.18.20+0/CHANGELOG.md new/eza-0.18.21+0/CHANGELOG.md
--- old/eza-0.18.20+0/CHANGELOG.md 2024-06-27 06:23:10.000000000 +0200
+++ new/eza-0.18.21+0/CHANGELOG.md 2024-07-01 06:54:39.000000000 +0200
@@ -1,11 +1,21 @@
# Changelog
+## [0.18.21] - 2024-07-01
+
+### Bug Fixes
+
+- Fix missing line breaks in _eza
+
## [0.18.20] - 2024-06-27
### Features
- Add --no-|show-symlinks flags for filtering output
+### Miscellaneous Tasks
+
+- Release eza v0.18.20
+
## [0.18.19] - 2024-06-20
### Bug Fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eza-0.18.20+0/Cargo.lock new/eza-0.18.21+0/Cargo.lock
--- old/eza-0.18.20+0/Cargo.lock 2024-06-27 06:23:10.000000000 +0200
+++ new/eza-0.18.21+0/Cargo.lock 2024-07-01 06:54:39.000000000 +0200
@@ -387,7 +387,7 @@
[[package]]
name = "eza"
-version = "0.18.20"
+version = "0.18.21"
dependencies = [
"ansi-width",
"chrono",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eza-0.18.20+0/Cargo.toml new/eza-0.18.21+0/Cargo.toml
--- old/eza-0.18.20+0/Cargo.toml 2024-06-27 06:23:10.000000000 +0200
+++ new/eza-0.18.21+0/Cargo.toml 2024-07-01 06:54:39.000000000 +0200
@@ -16,7 +16,7 @@
homepage = "https://github.com/eza-community/eza"
license = "MIT"
repository = "https://github.com/eza-community/eza"
-version = "0.18.20"
+version = "0.18.21"
[package.metadata.deb]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/eza-0.18.20+0/completions/zsh/_eza new/eza-0.18.21+0/completions/zsh/_eza
--- old/eza-0.18.20+0/completions/zsh/_eza 2024-06-27 06:23:10.000000000 +0200
+++ new/eza-0.18.21+0/completions/zsh/_eza 2024-07-01 06:54:39.000000000 +0200
@@ -33,8 +33,8 @@
{-A,--almost-all}"[Equivalent to --all; included for compatibility with \'ls -A\']" \
{-d,--list-dirs}"[List directories like regular files]" \
{-D,--only-dirs}"[List only directories]" \
- --no-symlinks"[Do not show symbolic links]"
- --show-symlinks"[Explictly show symbolic links: for use with '--only-dirs'| '--only-files']"
+ --no-symlinks"[Do not show symbolic links]" \
+ --show-symlinks"[Explictly show symbolic links: for use with '--only-dirs'| '--only-files']" \
{-f,--only-files}"[List only files]" \
{-L,--level}"+[Limit the depth of recursion]" \
{-w,--width}"+[Limits column output of grid, 0 implies auto-width]" \
++++++ eza.obsinfo ++++++
--- /var/tmp/diff_new_pack.XHkQOC/_old 2024-07-01 11:23:02.756896936 +0200
+++ /var/tmp/diff_new_pack.XHkQOC/_new 2024-07-01 11:23:02.760897080 +0200
@@ -1,5 +1,5 @@
name: eza
-version: 0.18.20+0
-mtime: 1719462190
-commit: c58ddcb7aa6b2cd0466869983cb701c45b5cbbc3
+version: 0.18.21+0
+mtime: 1719809679
+commit: d414d4bf50e4ed47b5dd82b4f347633782aadf27
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/eza/vendor.tar.zst /work/SRC/openSUSE:Factory/.eza.new.18349/vendor.tar.zst differ: char 234761, line 946
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xfce4-kbdleds-plugin for openSUSE:Factory checked in at 2024-07-01 11:22:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfce4-kbdleds-plugin (Old)
and /work/SRC/openSUSE:Factory/.xfce4-kbdleds-plugin.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfce4-kbdleds-plugin"
Mon Jul 1 11:22:08 2024 rev:2 rq:1184176 version:0.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/xfce4-kbdleds-plugin/xfce4-kbdleds-plugin.changes 2022-04-06 21:52:10.727096521 +0200
+++ /work/SRC/openSUSE:Factory/.xfce4-kbdleds-plugin.new.18349/xfce4-kbdleds-plugin.changes 2024-07-01 11:23:00.612819337 +0200
@@ -2 +2,8 @@
-Sat Apr 2 13:46:40 UTC 2022 - Marcel Kuehlhorn <tux93(a)opensuse.org>
+Sun Jun 30 09:57:14 UTC 2024 - tux93(a)opensuse.org
+
+- Update to version 0.3.0
+ * Ability to show/hide leds
+ * Add missing x11 linker flags
+
+-------------------------------------------------------------------
+Sat Apr 2 13:46:40 UTC 2022 - tux93(a)opensuse.org
Old:
----
xfce4-kbdleds-plugin-0.2.5.tar.gz
New:
----
xfce4-kbdleds-plugin-0.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfce4-kbdleds-plugin.spec ++++++
--- /var/tmp/diff_new_pack.eHbvUE/_old 2024-07-01 11:23:01.016833959 +0200
+++ /var/tmp/diff_new_pack.eHbvUE/_new 2024-07-01 11:23:01.016833959 +0200
@@ -1,7 +1,7 @@
#
# spec file for package xfce4-kbdleds-plugin
#
-# Copyright (c) 2022 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
@@ -17,7 +17,7 @@
Name: xfce4-kbdleds-plugin
-Version: 0.2.5
+Version: 0.3.0
Release: 0
Summary: Keyboard LEDs plugin for the Xfce panel
License: GPL-2.0-only
++++++ xfce4-kbdleds-plugin-0.2.5.tar.gz -> xfce4-kbdleds-plugin-0.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/.gitignore new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/.gitignore
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/.gitignore 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/.gitignore 2024-05-29 17:12:36.000000000 +0200
@@ -14,6 +14,7 @@
autom4te.cache/*
config.guess
config.h
+config.h.in
config.status
config.sub
config.log
@@ -37,9 +38,12 @@
panel-plugin/*.lo
po/.intltool-merge-cache
po/POTFILES
+po/Makefile.in.in
+po/stamp-*
+po/*.lock
+po/*.pot
+po/*.mo
*.anjuta
m4
stamp-*
-po/stamp-*
-po/*.lock
-ChangeLog
\ No newline at end of file
+ChangeLog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/config.h.in new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/config.h.in
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/config.h.in 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/config.h.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,129 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define for debugging support */
-#undef DEBUG
-
-/* Define for tracing support */
-#undef DEBUG_TRACE
-
-/* always defined to indicate that i18n is enabled */
-#undef ENABLE_NLS
-
-/* Name of default gettext domain */
-#undef GETTEXT_PACKAGE
-
-/* Define to 1 if you have the `bind_textdomain_codeset' function. */
-#undef HAVE_BIND_TEXTDOMAIN_CODESET
-
-/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
- CoreFoundation framework. */
-#undef HAVE_CFLOCALECOPYCURRENT
-
-/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
- the CoreFoundation framework. */
-#undef HAVE_CFPREFERENCESCOPYAPPVALUE
-
-/* Define to 1 if you have the `dcgettext' function. */
-#undef HAVE_DCGETTEXT
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the <errno.h> header file. */
-#undef HAVE_ERRNO_H
-
-/* Define if the GNU gettext() function is already present or preinstalled. */
-#undef HAVE_GETTEXT
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define if your <locale.h> file defines LC_MESSAGES. */
-#undef HAVE_LC_MESSAGES
-
-/* Define to 1 if you have the <libintl.h> header file. */
-#undef HAVE_LIBINTL_H
-
-/* Define if libX11 is available */
-#undef HAVE_LIBX11
-
-/* Define to 1 if you have the <locale.h> header file. */
-#undef HAVE_LOCALE_H
-
-/* Define to 1 if you have the <math.h> header file. */
-#undef HAVE_MATH_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <signal.h> header file. */
-#undef HAVE_SIGNAL_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdio.h> header file. */
-#undef HAVE_STDIO_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/prctl.h> header file. */
-#undef HAVE_SYS_PRCTL_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <sys/wait.h> header file. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
-#undef LT_OBJDIR
-
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define to 1 if the X Window System is missing or not being used. */
-#undef X_DISPLAY_MISSING
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/configure.ac.in new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/configure.ac.in
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/configure.ac.in 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/configure.ac.in 2024-05-29 17:12:36.000000000 +0200
@@ -9,8 +9,8 @@
dnl *** Version information ***
dnl ***************************
m4_define([kbdleds_version_major], [0])
-m4_define([kbdleds_version_minor], [2])
-m4_define([kbdleds_version_micro], [5])
+m4_define([kbdleds_version_minor], [3])
+m4_define([kbdleds_version_micro], [0])
m4_define([kbdleds_version_nano], []) dnl leave this empty to have no nano version
m4_define([kbdleds_version_build], [@REVISION@])
m4_define([kbdleds_version_tag], [])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/Makefile.am new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/Makefile.am
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/Makefile.am 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/Makefile.am 2024-05-29 17:12:36.000000000 +0200
@@ -22,6 +22,7 @@
kbdleds-dialogs.h
libkbdleds_la_CFLAGS = \
+ $(LIBX11_CFLAGS) \
$(LIBXFCE4UTIL_CFLAGS) \
$(LIBXFCE4UI_CFLAGS) \
$(LIBXFCE4PANEL_CFLAGS) \
@@ -35,6 +36,7 @@
$(PLATFORM_LDFLAGS)
libkbdleds_la_LIBADD = \
+ $(LIBX11_LIBS) \
$(LIBXFCE4UTIL_LIBS) \
$(LIBXFCE4UI_LIBS) \
$(LIBXFCE4PANEL_LIBS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/kbdleds-dialogs.c new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/kbdleds-dialogs.c
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/kbdleds-dialogs.c 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/kbdleds-dialogs.c 2024-05-29 17:12:36.000000000 +0200
@@ -1,6 +1,6 @@
/* xfce4-kbdleds-plugin - panel plugin for keyboard LEDs
*
- * Copyright (c) 2011-2021 OCo <oco2000(a)gmail.com>
+ * Copyright (c) 2011-2024 OCo <oco2000(a)gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,10 +33,14 @@
/* the website url */
#define PLUGIN_WEBSITE "https://github.com/oco2000/xfce4-kbdleds-plugin"
+/* prototypes */
+gboolean all_disabled(KbdledsPlugin *kbdleds);
+void check_disabled(KbdledsPlugin *kbdleds, GtkWidget *check_button);
+
static void
kbdleds_configure_response (GtkWidget *dialog,
gint response,
- kbdledsPlugin *kbdleds)
+ KbdledsPlugin *kbdleds)
{
gboolean result;
@@ -64,29 +68,62 @@
}
}
-static void change_foreground_color(GtkWidget *button, kbdledsPlugin *kbdleds)
+static void change_foreground_color(GtkWidget *button, KbdledsPlugin *kbdleds)
{
gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(button), &kbdleds->foreground_color);
kbdleds_save (kbdleds->plugin, kbdleds);
refresh();
}
-static void change_background_color(GtkWidget *button, kbdledsPlugin *kbdleds)
+static void change_background_color(GtkWidget *button, KbdledsPlugin *kbdleds)
{
gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(button), &kbdleds->background_color);
kbdleds_save (kbdleds->plugin, kbdleds);
refresh();
}
+gboolean all_disabled(KbdledsPlugin *kbdleds) {
+ return !kbdleds->show_caps && !kbdleds->show_num && !kbdleds->show_scroll;
+}
+
+void check_disabled(KbdledsPlugin *kbdleds, GtkWidget *check_button) {
+ if (!all_disabled(kbdleds)) {
+ kbdleds_save (kbdleds->plugin, kbdleds);
+ refresh();
+ } else {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), TRUE);
+ }
+}
+
+static void change_visibility_caps(GtkWidget *check_button, KbdledsPlugin *kbdleds)
+{
+ kbdleds->show_caps = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check_button));
+ check_disabled(kbdleds, check_button);
+}
+
+static void change_visibility_num(GtkWidget *check_button, KbdledsPlugin *kbdleds)
+{
+ kbdleds->show_num = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check_button));
+ check_disabled(kbdleds, check_button);
+}
+
+static void change_visibility_scroll(GtkWidget *check_button, KbdledsPlugin *kbdleds)
+{
+ kbdleds->show_scroll = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check_button));
+ check_disabled(kbdleds, check_button);
+}
+
void
kbdleds_configure (XfcePanelPlugin *plugin,
- kbdledsPlugin *kbdleds)
+ KbdledsPlugin *kbdleds)
{
GtkWidget *dialog;
GtkBox *global_vbox, *foreground_vbox, *background_vbox;
GtkLabel *foreground_label, *background_label;
GtkColorButton *foreground_button, *background_button;
+ GtkCheckButton *toggle_caps, *toggle_num, *toggle_scroll;
+ GtkWidget *separator;
/* block the plugin menu */
xfce_panel_plugin_block_menu (plugin);
@@ -95,10 +132,12 @@
dialog = xfce_titled_dialog_new_with_buttons (_("Kbdleds Plugin"),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (plugin))),
GTK_DIALOG_DESTROY_WITH_PARENT,
- "gtk-help", GTK_RESPONSE_HELP,
- "gtk-close", GTK_RESPONSE_OK,
NULL);
+ /* add buttons */
+ gtk_dialog_add_button(GTK_DIALOG(dialog), _("Help"), GTK_RESPONSE_HELP);
+ gtk_dialog_add_button(GTK_DIALOG(dialog), _("Close"), GTK_RESPONSE_OK);
+
/* center dialog on the screen */
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
@@ -146,6 +185,26 @@
gtk_widget_show(GTK_WIDGET(background_button));
gtk_box_pack_start(GTK_BOX(background_vbox), GTK_WIDGET(background_button), FALSE, FALSE, 0);
+ /* Separator */
+ separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
+ gtk_widget_show(separator);
+ gtk_container_add(GTK_CONTAINER (global_vbox), separator);
+
+ /* Visibility toggle buttons */
+ toggle_caps = GTK_CHECK_BUTTON(gtk_check_button_new_with_label (_("Show Caps Lock indicator")));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_caps), kbdleds->show_caps);
+ gtk_widget_show(GTK_WIDGET(toggle_caps));
+ gtk_container_add (GTK_CONTAINER (global_vbox), GTK_WIDGET(toggle_caps));
+
+ toggle_num = GTK_CHECK_BUTTON(gtk_check_button_new_with_label (_("Show Num Lock indicator")));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_num), kbdleds->show_num);
+ gtk_widget_show(GTK_WIDGET(toggle_num));
+ gtk_container_add (GTK_CONTAINER (global_vbox), GTK_WIDGET(toggle_num));
+
+ toggle_scroll = GTK_CHECK_BUTTON(gtk_check_button_new_with_label (_("Show Scroll Lock indicator")));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_scroll), kbdleds->show_scroll);
+ gtk_widget_show(GTK_WIDGET(toggle_scroll));
+ gtk_container_add (GTK_CONTAINER (global_vbox), GTK_WIDGET(toggle_scroll));
/* connect the reponse signal to the dialog */
g_signal_connect (G_OBJECT (dialog), "response",
@@ -157,6 +216,14 @@
g_signal_connect (GTK_WIDGET(background_button), "color-set",
G_CALLBACK(change_background_color), kbdleds);
+ g_signal_connect (GTK_WIDGET(toggle_caps), "toggled",
+ G_CALLBACK (change_visibility_caps), kbdleds);
+
+ g_signal_connect (GTK_WIDGET(toggle_num), "toggled",
+ G_CALLBACK (change_visibility_num), kbdleds);
+
+ g_signal_connect (GTK_WIDGET(toggle_scroll), "toggled",
+ G_CALLBACK (change_visibility_scroll), kbdleds);
/* show the entire dialog */
gtk_widget_show (dialog);
}
@@ -182,7 +249,7 @@
"program-name", PACKAGE_NAME,
"comments", _("Kbdleds Plugin"),
"website", PLUGIN_WEBSITE,
- "copyright", "Copyright \xc2\xa9 2011-2021 OCo\n",
+ "copyright", "Copyright \xc2\xa9 2011-2024 OCo\n",
"authors", auth,
NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/kbdleds-dialogs.h new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/kbdleds-dialogs.h
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/kbdleds-dialogs.h 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/kbdleds-dialogs.h 2024-05-29 17:12:36.000000000 +0200
@@ -1,6 +1,6 @@
/* xfce4-kbdleds-plugin - panel plugin for keyboard LEDs
*
- * Copyright (c) 2011-2021 OCo <oco2000(a)gmail.com>
+ * Copyright (c) 2011-2024 OCo <oco2000(a)gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
void
kbdleds_configure (XfcePanelPlugin *plugin,
- kbdledsPlugin *kbdleds);
+ KbdledsPlugin *kbdleds);
void
kbdleds_about (XfcePanelPlugin *plugin);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/kbdleds.c new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/kbdleds.c
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/kbdleds.c 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/kbdleds.c 2024-05-29 17:12:36.000000000 +0200
@@ -1,6 +1,6 @@
/* xfce4-kbdleds-plugin - panel plugin for keyboard LEDs
*
- * Copyright (c) 2011-2021 OCo <oco2000(a)gmail.com>
+ * Copyright (c) 2011-2024 OCo <oco2000(a)gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -26,39 +26,22 @@
#include <ctype.h>
-#include <gtk/gtk.h>
-#include <libxfce4util/libxfce4util.h>
-#include <libxfce4panel/libxfce4panel.h>
-#include <X11/XKBlib.h>
-
#include "kbdleds.h"
#include "kbdleds-dialogs.h"
#include "xkbleds.h"
-kbdledsPlugin *kbdleds;
+KbdledsPlugin *kbdledsplugin;
/* prototypes */
-static void
-kbdleds_construct (XfcePanelPlugin *plugin);
+static void kbdleds_construct (XfcePanelPlugin *plugin);
+gchar* getHexColor(GdkRGBA rgba);
/* register the plugin */
XFCE_PANEL_PLUGIN_REGISTER (kbdleds_construct);
-void show_error(gchar *message) {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *dialog = gtk_message_dialog_new (NULL,
- flags,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "%s",
- message);
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
-}
-
void
kbdleds_save (XfcePanelPlugin *plugin,
- kbdledsPlugin *kbdleds)
+ KbdledsPlugin *kbdleds)
{
XfceRc *rc;
gchar *file;
@@ -77,8 +60,11 @@
g_free (file);
if (G_LIKELY (rc != NULL)) {
- xfce_rc_write_entry (rc, "Foreground_Color", gdk_rgba_to_string(&kbdleds->foreground_color));
- xfce_rc_write_entry (rc, "Background_Color", gdk_rgba_to_string(&kbdleds->background_color));
+ xfce_rc_write_entry(rc, "Foreground_Color", gdk_rgba_to_string(&kbdleds->foreground_color));
+ xfce_rc_write_entry(rc, "Background_Color", gdk_rgba_to_string(&kbdleds->background_color));
+ xfce_rc_write_bool_entry(rc, "Show_Caps", kbdleds->show_caps);
+ xfce_rc_write_bool_entry(rc, "Show_Num", kbdleds->show_num);
+ xfce_rc_write_bool_entry(rc, "Show_Scroll", kbdleds->show_scroll);
/* close the rc file */
xfce_rc_close (rc);
@@ -86,7 +72,7 @@
}
static void
-kbdleds_read (kbdledsPlugin *kbdleds)
+kbdleds_read (KbdledsPlugin *kbdleds)
{
XfceRc *rc;
gchar *file;
@@ -116,6 +102,10 @@
gdk_rgba_parse(&kbdleds->background_color, DEFAULT_BACKGROUND_COLOR);
}
+ kbdleds->show_caps = xfce_rc_read_bool_entry(rc, "Show_Caps", TRUE);
+ kbdleds->show_num = xfce_rc_read_bool_entry(rc, "Show_Num", TRUE);
+ kbdleds->show_scroll = xfce_rc_read_bool_entry(rc, "Show_Scroll", TRUE);
+
/* cleanup */
xfce_rc_close (rc);
@@ -129,17 +119,19 @@
gdk_rgba_parse(&kbdleds->foreground_color, DEFAULT_FOREGROUND_COLOR);
gdk_rgba_parse(&kbdleds->background_color, DEFAULT_BACKGROUND_COLOR);
+ kbdleds->show_caps = TRUE;
+ kbdleds->show_num = TRUE;
+ kbdleds->show_scroll = TRUE;
}
-static kbdledsPlugin *
+static KbdledsPlugin *
kbdleds_new (XfcePanelPlugin *plugin)
{
- kbdledsPlugin *kbdleds;
+ KbdledsPlugin *kbdleds;
GtkOrientation orientation;
- GtkWidget *label;
/* allocate memory for the plugin structure */
- kbdleds = g_slice_new0 (kbdledsPlugin);
+ kbdleds = g_slice_new0 (KbdledsPlugin);
/* pointer to plugin */
kbdleds->plugin = plugin;
@@ -169,7 +161,7 @@
static void
kbdleds_free (XfcePanelPlugin *plugin,
- kbdledsPlugin *kbdleds)
+ KbdledsPlugin *kbdleds)
{
GtkWidget *dialog;
@@ -189,14 +181,14 @@
xkbleds_finish();
/* free the plugin structure */
- g_slice_free (kbdledsPlugin, kbdleds);
+ g_slice_free (KbdledsPlugin, kbdleds);
}
static void
kbdleds_orientation_changed (XfcePanelPlugin *plugin,
GtkOrientation orientation,
- kbdledsPlugin *kbdleds)
+ KbdledsPlugin *kbdleds)
{
/* change the orienation of the box */
gtk_orientable_set_orientation(GTK_ORIENTABLE(kbdleds->hvbox), orientation);
@@ -205,7 +197,7 @@
static gboolean
kbdleds_size_changed (XfcePanelPlugin *plugin,
gint size,
- kbdledsPlugin *kbdleds)
+ KbdledsPlugin *kbdleds)
{
GtkOrientation orientation;
@@ -226,48 +218,53 @@
return g_strdup_printf("#%02X%02X%02X", (int)(rgba.red*255), (int)(rgba.green*255), (int)(rgba.blue*255));
}
-void refresh() {
+void refresh(void) {
int i;
- gchar *str;
gchar *template_on="<span background=\"%s\" foreground=\"%s\">%c</span>";
gchar *template_off="%c";
gchar *led_labels[NUM_LEDS + 1];
gchar *tooltip_labels[NUM_LEDS + 1];
+ int tooltip_count = 0;
gchar *on_off[2]={_("OFF"),_("ON")};
gchar *tooltip_str={""};
gchar *label_str={""};
+ gchar *fColor = getHexColor(kbdledsplugin->foreground_color);
+ gchar *bColor = getHexColor(kbdledsplugin->background_color);
+ gboolean visible[NUM_LEDS] = {kbdledsplugin->show_caps, kbdledsplugin->show_num, kbdledsplugin->show_scroll};
for(i = 0; i < NUM_LEDS; i++) {
- led_labels[i] = g_strdup_printf("%s : %s", lock_names[i], xkb_leds[i] ? on_off[1] : on_off[0]);
-
- if (xkb_leds[i]) {
- gchar *fColor = getHexColor(kbdleds->foreground_color);
- gchar *bColor = getHexColor(kbdleds->background_color);
-
- tooltip_labels[i] = g_strdup_printf(template_on, bColor, fColor, toupper(short_lock_names[i]));
-
- g_free(bColor);
- g_free(fColor);
+ if (visible[i]) {
+ tooltip_labels[tooltip_count] = g_strdup_printf("%s : %s", lock_names[i], xkb_leds[i] ? on_off[1] : on_off[0]);
+ tooltip_count++;
+ if (xkb_leds[i]) {
+ led_labels[i] = g_strdup_printf(template_on, bColor, fColor, toupper(short_lock_names[i]));
+ } else {
+ led_labels[i] = g_strdup_printf(template_off, short_lock_names[i]);
+ }
} else {
- tooltip_labels[i] = g_strdup_printf(template_off, short_lock_names[i]);
+ led_labels[i] = g_strdup("");
}
}
led_labels[NUM_LEDS] = NULL;
- tooltip_labels[NUM_LEDS] = NULL;
+ tooltip_labels[tooltip_count] = NULL;
- tooltip_str = g_strjoinv("\n", led_labels);
- label_str = g_strjoinv(NULL, tooltip_labels);
+ tooltip_str = g_strjoinv("\n", tooltip_labels);
+ label_str = g_strjoinv(NULL, led_labels);
- gtk_label_set_markup((GtkLabel*)kbdleds->label, label_str);
- gtk_widget_set_tooltip_text(kbdleds->label, tooltip_str);
+ gtk_label_set_markup((GtkLabel*)kbdledsplugin->label, label_str);
+ gtk_widget_set_tooltip_text(kbdledsplugin->label, tooltip_str);
for(i = 0; i < NUM_LEDS; i++) {
g_free(led_labels[i]);
- g_free(tooltip_labels[i]);
+ if (i < tooltip_count) {
+ g_free(tooltip_labels[i]);
+ }
}
g_free(tooltip_str);
g_free(label_str);
+ g_free(bColor);
+ g_free(fColor);
}
static void
@@ -278,31 +275,31 @@
xfce_textdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
/* create the plugin */
- kbdleds = kbdleds_new (plugin);
+ kbdledsplugin = kbdleds_new (plugin);
/* add the ebox to the panel */
- gtk_container_add (GTK_CONTAINER (plugin), kbdleds->ebox);
+ gtk_container_add (GTK_CONTAINER (plugin), kbdledsplugin->ebox);
/* show the panel's right-click menu on this ebox */
- xfce_panel_plugin_add_action_widget (plugin, kbdleds->ebox);
+ xfce_panel_plugin_add_action_widget (plugin, kbdledsplugin->ebox);
/* connect plugin signals */
g_signal_connect (G_OBJECT (plugin), "free-data",
- G_CALLBACK (kbdleds_free), kbdleds);
+ G_CALLBACK (kbdleds_free), kbdledsplugin);
g_signal_connect (G_OBJECT (plugin), "save",
- G_CALLBACK (kbdleds_save), kbdleds);
+ G_CALLBACK (kbdleds_save), kbdledsplugin);
g_signal_connect (G_OBJECT (plugin), "size-changed",
- G_CALLBACK (kbdleds_size_changed), kbdleds);
+ G_CALLBACK (kbdleds_size_changed), kbdledsplugin);
g_signal_connect (G_OBJECT (plugin), "orientation-changed",
- G_CALLBACK (kbdleds_orientation_changed), kbdleds);
+ G_CALLBACK (kbdleds_orientation_changed), kbdledsplugin);
/* show the configure menu item and connect signal */
xfce_panel_plugin_menu_show_configure (plugin);
g_signal_connect (G_OBJECT (plugin), "configure-plugin",
- G_CALLBACK (kbdleds_configure), kbdleds);
+ G_CALLBACK (kbdleds_configure), kbdledsplugin);
/* show the about menu item and connect signal */
xfce_panel_plugin_menu_show_about (plugin);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/kbdleds.h new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/kbdleds.h
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/kbdleds.h 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/kbdleds.h 2024-05-29 17:12:36.000000000 +0200
@@ -1,6 +1,6 @@
/* xfce4-kbdleds-plugin - panel plugin for keyboard LEDs
*
- * Copyright (c) 2011-2021 OCo <oco2000(a)gmail.com>
+ * Copyright (c) 2011-2024 OCo <oco2000(a)gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,6 +20,11 @@
#ifndef __KBDLEDS_H__
#define __KBDLEDS_H__
+#include <gtk/gtk.h>
+#include <libxfce4util/libxfce4util.h>
+#include <libxfce4panel/libxfce4panel.h>
+#include <X11/XKBlib.h>
+
G_BEGIN_DECLS
/* plugin structure */
@@ -35,16 +40,19 @@
/* kbdleds settings */
GdkRGBA foreground_color;
GdkRGBA background_color;
+ gboolean show_caps;
+ gboolean show_num;
+ gboolean show_scroll;
}
-kbdledsPlugin;
+KbdledsPlugin;
/* default settings */
-static gchar* DEFAULT_FOREGROUND_COLOR = "#000000";
-static gchar* DEFAULT_BACKGROUND_COLOR = "#00FF00";
+#define DEFAULT_FOREGROUND_COLOR "#000000"
+#define DEFAULT_BACKGROUND_COLOR "#00FF00"
void
kbdleds_save (XfcePanelPlugin *plugin,
- kbdledsPlugin *kbdleds);
+ KbdledsPlugin *kbdleds);
void show_error(gchar *message);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/xkbleds.c new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/xkbleds.c
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/xkbleds.c 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/xkbleds.c 2024-05-29 17:12:36.000000000 +0200
@@ -1,6 +1,6 @@
/* xfce4-kbdleds-plugin - panel plugin for keyboard LEDs
*
- * Copyright (c) 2011-2021 OCo <oco2000(a)gmail.com>
+ * Copyright (c) 2011-2024 OCo <oco2000(a)gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -25,6 +25,7 @@
#include <gdk/gdkx.h>
#include <xkbleds.h>
+#include <kbdleds.h>
int xkb_leds[NUM_LEDS] = {0,0,0};
int xkb_state = -1;
@@ -38,6 +39,10 @@
int i;
int masks[NUM_LEDS]; /* NUM, CAPS, SCROLL: indicator mask, for XKB*/
+void xkbleds_get_initial_state(Display *d);
+GdkFilterReturn kbd_msg_filter_func(GdkXEvent *xevent, GdkEvent *event, gpointer data);
+
+
void xkbleds_get_initial_state(Display *d) {
if (XkbGetIndicatorState(d, XkbUseCoreKbd, &states) != Success) {
@@ -77,13 +82,11 @@
}
// 0 - Success
-int xkbleds_init()
+int xkbleds_init(void)
{
- KeyCode keys[NUM_LEDS];
XkbDescPtr xkb;
char *ind_name = NULL;
int j, mask;
- int idx[NUM_LEDS];/* NUM, CAPS, SCROLL: indicator index, for XKB */
GdkDisplay *disp;
Display *d;
int opcode = 0, errorBase = 0, major = XkbMajorVersion, minor = XkbMinorVersion;
@@ -103,10 +106,6 @@
return 1;
}
-// get keycodes
- for (i = 0; i < NUM_LEDS; i++) {
- keys[i] = XKeysymToKeycode(d, key_syms[i]);
- }
// get the keyboard
xkb = XkbAllocKeyboard();
if (!xkb) {
@@ -126,7 +125,6 @@
if (ind_name && !strcmp(lock_names[j], ind_name)){
if (XkbGetNamedIndicator(d, xkb->names->indicators[i], &mask, NULL, NULL, NULL) == True) {
masks[j] = 1 << mask;
- idx[j] = mask;
} else {
XkbFreeKeyboard(xkb, 0, True);
return 1;
@@ -147,7 +145,7 @@
return 0;
}
-void xkbleds_finish()
+void xkbleds_finish(void)
{
gdk_window_remove_filter(NULL, kbd_msg_filter_func, NULL);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/xkbleds.h new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/xkbleds.h
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/panel-plugin/xkbleds.h 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/panel-plugin/xkbleds.h 2024-05-29 17:12:36.000000000 +0200
@@ -1,6 +1,6 @@
/* xfce4-kbdleds-plugin - panel plugin for keyboard LEDs
*
- * Copyright (c) 2011-2021 OCo <oco2000(a)gmail.com>
+ * Copyright (c) 2011-2024 OCo <oco2000(a)gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -31,7 +31,6 @@
int xkbleds_init();
void xkbleds_finish();
-void refresh();
G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/po/Makefile.in.in new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/po/Makefile.in.in
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/po/Makefile.in.in 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/po/Makefile.in.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,222 +0,0 @@
-# Makefile for program source directory in GNU NLS utilities package.
-# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper(a)gnu.ai.mit.edu>
-# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns(a)gmail.com>
-#
-# This file may be copied and used freely without restrictions. It may
-# be used in projects which are not available under a GNU Public License,
-# but which still want to provide support for the GNU gettext functionality.
-#
-# - Modified by Owen Taylor <otaylor(a)redhat.com> to use GETTEXT_PACKAGE
-# instead of PACKAGE and to look for po2tbl in ./ not in intl/
-#
-# - Modified by jacob berkman <jacob(a)ximian.com> to install
-# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
-#
-# - Modified by Rodney Dawes <dobey.pwns(a)gmail.com> for use with intltool
-#
-# We have the following line for use by intltoolize:
-# INTLTOOL_MAKEFILE
-
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = @top_builddir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-datarootdir = @datarootdir@
-libdir = @libdir@
-localedir = @localedir@
-subdir = po
-install_sh = @install_sh@
-# Automake >= 1.8 provides @mkdir_p@.
-# Until it can be supposed, use the safe fallback:
-mkdir_p = $(install_sh) -d
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT_ARGS = @XGETTEXT_ARGS@
-XGETTEXT = @XGETTEXT@ $(XGETTEXT_ARGS)
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-MSGMERGE = XGETTEXT_ARGS="$(XGETTEXT_ARGS)" INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
-GENPOT = XGETTEXT_ARGS="$(XGETTEXT_ARGS)" INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
-
-ALL_LINGUAS = @ALL_LINGUAS@
-
-PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
-
-USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
-
-USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
-
-POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
-
-DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
-EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
-
-POTFILES = \
-# This comment gets stripped out
-
-CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
-
-.SUFFIXES:
-.SUFFIXES: .po .pox .gmo .mo .msg .cat
-
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V))
-INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
-INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@;
-
-.po.pox:
- $(MAKE) $(GETTEXT_PACKAGE).pot
- $(MSGMERGE) $* $(GETTEXT_PACKAGE).pot -o $*.pox
-
-.po.mo:
- $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
-
-.po.gmo:
- $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \
- && rm -f $$file && $(GMSGFMT) -o $$file $<
-
-.po.cat:
- sed -f ../intl/po2msg.sed < $< > $*.msg \
- && rm -f $@ && gencat $@ $*.msg
-
-
-all: all-@USE_NLS@
-
-all-yes: $(CATALOGS)
-all-no:
-
-$(GETTEXT_PACKAGE).pot: $(POTFILES)
- $(GENPOT)
-
-install: install-data
-install-data: install-data-@USE_NLS@
-install-data-no: all
-install-data-yes: all
- linguas="$(USE_LINGUAS)"; \
- for lang in $$linguas; do \
- dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \
- $(mkdir_p) $$dir; \
- if test -r $$lang.gmo; then \
- $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
- echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
- else \
- $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
- echo "installing $(srcdir)/$$lang.gmo as" \
- "$$dir/$(GETTEXT_PACKAGE).mo"; \
- fi; \
- if test -r $$lang.gmo.m; then \
- $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
- echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
- else \
- if test -r $(srcdir)/$$lang.gmo.m ; then \
- $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
- $$dir/$(GETTEXT_PACKAGE).mo.m; \
- echo "installing $(srcdir)/$$lang.gmo.m as" \
- "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
- else \
- true; \
- fi; \
- fi; \
- done
-
-# Empty stubs to satisfy archaic automake needs
-dvi info ctags tags CTAGS TAGS ID:
-
-# Define this as empty until I found a useful application.
-install-exec installcheck:
-
-uninstall:
- linguas="$(USE_LINGUAS)"; \
- for lang in $$linguas; do \
- rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
- rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
- done
-
-check: all $(GETTEXT_PACKAGE).pot
- rm -f missing notexist
- srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
- if [ -r missing -o -r notexist ]; then \
- exit 1; \
- fi
-
-mostlyclean:
- rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
- rm -f .intltool-merge-cache
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES stamp-it
- rm -f *.mo *.msg *.cat *.cat.m *.gmo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f Makefile.in.in
-
-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: $(DISTFILES)
- dists="$(DISTFILES)"; \
- extra_dists="$(EXTRA_DISTFILES)"; \
- for file in $$extra_dists; do \
- test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
- done; \
- for file in $$dists; do \
- test -f $$file || file="$(srcdir)/$$file"; \
- ln $$file $(distdir) 2> /dev/null \
- || cp -p $$file $(distdir); \
- done
-
-update-po: Makefile
- $(MAKE) $(GETTEXT_PACKAGE).pot
- tmpdir=`pwd`; \
- linguas="$(USE_LINGUAS)"; \
- for lang in $$linguas; do \
- echo "$$lang:"; \
- result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
- if $$result; then \
- if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.gmo failed!"; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi; \
- done
-
-Makefile POTFILES: stamp-it
- @if test ! -f $@; then \
- rm -f stamp-it; \
- $(MAKE) stamp-it; \
- fi
-
-stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
- $(SHELL) ./config.status
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/po/ru.po new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/po/ru.po
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/po/ru.po 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/po/ru.po 2024-05-29 17:12:36.000000000 +0200
@@ -7,45 +7,67 @@
msgstr ""
"Project-Id-Version: xfce4-kbdleds-plugin 0.0.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-26 15:10+0300\n"
-"PO-Revision-Date: 2019-09-26 15:17+0300\n"
+"POT-Creation-Date: 2024-05-29 18:03+0300\n"
+"PO-Revision-Date: 2024-05-29 18:06+0300\n"
"Last-Translator: Oleg Voronin <oco(a)oco.org.ua>\n"
"Language-Team: русский <>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Gtranslator 3.32.0\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Poedit 3.4\n"
-#: ../panel-plugin/kbdleds.c:238
+#: ../panel-plugin/kbdleds.c:228
msgid "OFF"
msgstr "ВЫКЛ"
-#: ../panel-plugin/kbdleds.c:238
+#: ../panel-plugin/kbdleds.c:228
msgid "ON"
msgstr "ВКЛ"
-#: ../panel-plugin/kbdleds-dialogs.c:49
+#: ../panel-plugin/kbdleds-dialogs.c:53
#, c-format
msgid "Unable to open the following url: %s"
msgstr "Не могу открыть адрес: %s"
#. create the dialog
-#: ../panel-plugin/kbdleds-dialogs.c:95 ../panel-plugin/kbdleds-dialogs.c:183
+#: ../panel-plugin/kbdleds-dialogs.c:132 ../panel-plugin/kbdleds-dialogs.c:250
#: ../panel-plugin/kbdleds.desktop.in.h:1
msgid "Kbdleds Plugin"
msgstr "Модуль индикаторов клавиатуры"
-#: ../panel-plugin/kbdleds-dialogs.c:122
+#. add buttons
+#: ../panel-plugin/kbdleds-dialogs.c:138
+msgid "Help"
+msgstr "Помощь"
+
+#: ../panel-plugin/kbdleds-dialogs.c:139
+msgid "Close"
+msgstr "Закрыть"
+
+#: ../panel-plugin/kbdleds-dialogs.c:161
msgid "Active Foreground Color"
msgstr "Активный цвет"
-#: ../panel-plugin/kbdleds-dialogs.c:138
+#: ../panel-plugin/kbdleds-dialogs.c:177
msgid "Active Background Color"
msgstr "Активный цвет фона"
+#. Visibility toggle buttons
+#: ../panel-plugin/kbdleds-dialogs.c:194
+msgid "Show Caps Lock indicator"
+msgstr "Показать индикатор Caps Lock"
+
+#: ../panel-plugin/kbdleds-dialogs.c:199
+msgid "Show Num Lock indicator"
+msgstr "Показать индикатор Num Lock"
+
+#: ../panel-plugin/kbdleds-dialogs.c:204
+msgid "Show Scroll Lock indicator"
+msgstr "Показать индикатор Scroll Lock"
+
#: ../panel-plugin/kbdleds.desktop.in.h:2
msgid "Keyboard LEDs plugin for the Xfce panel"
msgstr "Модуль индикаторов клавиатуры для панели Xfce"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/po/uk.po new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/po/uk.po
--- old/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.2.5/po/uk.po 2021-11-02 20:15:44.000000000 +0100
+++ new/xfce4-kbdleds-plugin-xfce4-kbdleds-plugin-0.3.0/po/uk.po 2024-05-29 17:12:36.000000000 +0200
@@ -7,45 +7,67 @@
msgstr ""
"Project-Id-Version: xfce4-kbdleds-plugin 0.0.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-26 15:10+0300\n"
-"PO-Revision-Date: 2019-09-26 15:17+0300\n"
+"POT-Creation-Date: 2024-05-29 18:03+0300\n"
+"PO-Revision-Date: 2024-05-29 18:04+0300\n"
"Last-Translator: Oleg Voronin <oco(a)oco.org.ua>\n"
"Language-Team: русский <>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Gtranslator 3.32.0\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Poedit 3.4\n"
-#: ../panel-plugin/kbdleds.c:238
+#: ../panel-plugin/kbdleds.c:228
msgid "OFF"
msgstr "ВИКЛ"
-#: ../panel-plugin/kbdleds.c:238
+#: ../panel-plugin/kbdleds.c:228
msgid "ON"
msgstr "ВКЛ"
-#: ../panel-plugin/kbdleds-dialogs.c:49
+#: ../panel-plugin/kbdleds-dialogs.c:53
#, c-format
msgid "Unable to open the following url: %s"
msgstr "Не можу відкрити посилання: %s"
#. create the dialog
-#: ../panel-plugin/kbdleds-dialogs.c:95 ../panel-plugin/kbdleds-dialogs.c:183
+#: ../panel-plugin/kbdleds-dialogs.c:132 ../panel-plugin/kbdleds-dialogs.c:250
#: ../panel-plugin/kbdleds.desktop.in.h:1
msgid "Kbdleds Plugin"
msgstr "Модуль індикаторів клавіатури"
-#: ../panel-plugin/kbdleds-dialogs.c:122
+#. add buttons
+#: ../panel-plugin/kbdleds-dialogs.c:138
+msgid "Help"
+msgstr "Допомога"
+
+#: ../panel-plugin/kbdleds-dialogs.c:139
+msgid "Close"
+msgstr "Закрити"
+
+#: ../panel-plugin/kbdleds-dialogs.c:161
msgid "Active Foreground Color"
msgstr "Активний колір"
-#: ../panel-plugin/kbdleds-dialogs.c:138
+#: ../panel-plugin/kbdleds-dialogs.c:177
msgid "Active Background Color"
msgstr "Активний колір фону"
+#. Visibility toggle buttons
+#: ../panel-plugin/kbdleds-dialogs.c:194
+msgid "Show Caps Lock indicator"
+msgstr "Показати індикатор Caps Lock"
+
+#: ../panel-plugin/kbdleds-dialogs.c:199
+msgid "Show Num Lock indicator"
+msgstr "Показати індикатор Num Lock"
+
+#: ../panel-plugin/kbdleds-dialogs.c:204
+msgid "Show Scroll Lock indicator"
+msgstr "Показати індикатор Scroll Lock"
+
#: ../panel-plugin/kbdleds.desktop.in.h:2
msgid "Keyboard LEDs plugin for the Xfce panel"
msgstr "Модуль індикаторів клавіатури для панелі Xfce"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package smplayer for openSUSE:Factory checked in at 2024-07-01 11:22:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/smplayer (Old)
and /work/SRC/openSUSE:Factory/.smplayer.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "smplayer"
Mon Jul 1 11:22:06 2024 rev:50 rq:1184174 version:24.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/smplayer/smplayer.changes 2023-12-28 23:04:45.585670887 +0100
+++ /work/SRC/openSUSE:Factory/.smplayer.new.18349/smplayer.changes 2024-07-01 11:22:57.980724076 +0200
@@ -1,0 +2,8 @@
+Wed Jun 28 12:44:00 UTC 2024 - hlavki <miso(a)hlavki.eu>
+
+- Update to 24.5.0:
+ * Bug fixes
+ * The Windows portable version now saves the configuration files in
+ the folder "config".
+
+-------------------------------------------------------------------
Old:
----
smplayer-23.12.0.tar.bz2
New:
----
smplayer-24.5.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ smplayer.spec ++++++
--- /var/tmp/diff_new_pack.GaTqks/_old 2024-07-01 11:22:58.468741738 +0200
+++ /var/tmp/diff_new_pack.GaTqks/_new 2024-07-01 11:22:58.472741883 +0200
@@ -17,12 +17,12 @@
Name: smplayer
-Version: 23.12.0
+Version: 24.5.0
Release: 0
Summary: Complete frontend for MPV
License: GPL-2.0-or-later
URL: https://smplayer.info/
-Source: https://downloads.sf.net/%{name}/%{name}-%{version}.tar.bz2
+Source: https://github.com/smplayer-dev/%{name}/releases/download/v%{version}/%{nam…
# PATCH-FIX-OPENSUSE smplayer-makeflags.patch
Patch0: %{name}-makeflags.patch
# PATCH-FEATURE-OPENSUSE smplayer-defaults.patch sor.alexei(a)meowr.ru -- Use PulseAudio, system Qt5 theme, and "Papirus" icon theme by default.
++++++ smplayer-23.12.0.tar.bz2 -> smplayer-24.5.0.tar.bz2 ++++++
++++ 6089 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package qmmp for openSUSE:Factory checked in at 2024-07-01 11:22:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qmmp (Old)
and /work/SRC/openSUSE:Factory/.qmmp.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qmmp"
Mon Jul 1 11:22:04 2024 rev:92 rq:1184172 version:2.1.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/qmmp/qmmp.changes 2024-03-08 18:10:43.693555354 +0100
+++ /work/SRC/openSUSE:Factory/.qmmp.new.18349/qmmp.changes 2024-07-01 11:22:55.756643583 +0200
@@ -1,0 +2,36 @@
+Sun Jun 30 00:53:51 UTC 2024 - jun wang <jgwang(a)suse.com>
+
+- Update to version 2.1.8
+ + changes from version 2.1.8
+ * improved CUE parser
+ * fixed pkg-config files generated by qmake
+ * fixed memory leak
+ * fixed issue with missing mount points in the qmmp file
+ dialog
+ * fixed unexpected startup of the disabled plugin when trying
+ to change
+ it's settings
+ * fixed linking with xcb
+ * fixed crash when trying to remove queued track
+ * fixed copying of the selected tracks to the new playlist
+ * fixed Wayland compatibility on first startup
+ + changes from version 2.1.7
+ * using XWayland for skinned user interface
+ * using floating point output in the sndfile plugin
+ * fixed file type determination by content in the sndfile
+ plugin
+ * fixed memory leak in the hotkey plugin
+ * fixed stream sample rate in the pipewire plugin
+ * fixed issue with KDE6 file dialog
+ + changes from version 2.1.6
+ * added TagLib 2.0 support
+ * fixed settings form in the simple user interface
+ * improved lyrics plugin:
+ - fixed issue with URL formatting
+ - updated lyrics providers
+ - using UTF-8 for all lyrics providers
+ * updated Spanish translation
+ + remove patch qmmp-taglib2.patch because it applied in
+ source code
+
+-------------------------------------------------------------------
Old:
----
qmmp-2.1.5.tar.bz2
qmmp-taglib2.patch
New:
----
qmmp-2.1.8.tar.bz2
BETA DEBUG BEGIN:
Old: * updated Spanish translation
+ remove patch qmmp-taglib2.patch because it applied in
source code
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qmmp.spec ++++++
--- /var/tmp/diff_new_pack.MmHdfd/_old 2024-07-01 11:22:56.212660087 +0200
+++ /var/tmp/diff_new_pack.MmHdfd/_new 2024-07-01 11:22:56.212660087 +0200
@@ -22,7 +22,7 @@
%bcond_with faad
%bcond_with restricted
Name: qmmp
-Version: 2.1.5
+Version: 2.1.8
Release: 0
Summary: Qt-based Multimedia Player
License: GPL-2.0-or-later
@@ -31,8 +31,6 @@
Source: https://qmmp.ylsoftware.com/files/%{name}/%{mver}/%{name}-%{version}.tar.bz2
# PATCH-FEATURE-OPENSUSE qmmp-default_pulse.patch reddwarf(a)opensuse.org -- Use PulseAudio instead of ALSA by default.
Patch0: %{name}-default-pulse.patch
-# PATCH-FIX-UPSTREAM qmmp-taglib2.patch -- Fix build with taglib 2.0 (https://sourceforge.net/p/qmmp-dev/code/11255/)
-Patch1: qmmp-taglib2.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
++++++ qmmp-2.1.5.tar.bz2 -> qmmp-2.1.8.tar.bz2 ++++++
++++ 20605 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gnu_parallel for openSUSE:Factory checked in at 2024-07-01 11:22:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnu_parallel (Old)
and /work/SRC/openSUSE:Factory/.gnu_parallel.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnu_parallel"
Mon Jul 1 11:22:03 2024 rev:95 rq:1184169 version:20240622
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnu_parallel/gnu_parallel.changes 2024-04-29 17:58:13.075091051 +0200
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new.18349/gnu_parallel.changes 2024-07-01 11:22:53.908576697 +0200
@@ -1,0 +2,8 @@
+Sun Jun 30 21:37:39 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 20240622:
+ * Bug fixes and man page updates.
+ * --onall now supports sshpass - user:pass@host.
+ * --memfree kills do not count as --retries.
+
+-------------------------------------------------------------------
Old:
----
parallel-20240422.tar.bz2
parallel-20240422.tar.bz2.sig
New:
----
parallel-20240622.tar.bz2
parallel-20240622.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnu_parallel.spec ++++++
--- /var/tmp/diff_new_pack.6QpDs7/_old 2024-07-01 11:22:54.616602322 +0200
+++ /var/tmp/diff_new_pack.6QpDs7/_new 2024-07-01 11:22:54.616602322 +0200
@@ -17,7 +17,7 @@
Name: gnu_parallel
-Version: 20240422
+Version: 20240622
Release: 0
Summary: Shell tool for executing jobs in parallel
License: GPL-3.0-or-later
++++++ parallel-20240422.tar.bz2 -> parallel-20240622.tar.bz2 ++++++
++++ 26292 lines of diff (skipped)
++++++ parallel-20240422.tar.bz2.sig -> parallel-20240622.tar.bz2.sig ++++++
--- /work/SRC/openSUSE:Factory/gnu_parallel/parallel-20240422.tar.bz2.sig 2024-04-29 17:58:13.503106619 +0200
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new.18349/parallel-20240622.tar.bz2.sig 2024-07-01 11:22:54.140585094 +0200
@@ -2,7 +2,7 @@
# To check the signature run:
# echo | gpg
-# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-20240422.tar.bz2.sig
+# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-20240622.tar.bz2.sig
echo | gpg 2>/dev/null
gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $0
@@ -10,32 +10,32 @@
-----BEGIN PGP SIGNATURE-----
-iQUHBAABCgAdFiEEzaAaQgjE90UGEH570atFFoiIiIgFAmYm0G0ACgkQ0atFFoiI
-iIgeNCaeMk6gywvbRvNB+FY90BvJzeSnltKlvkt2Miiqs9nMTzm7XeW4zs1d3srr
-ZbAiGkTx8G2jW4ZY+XgzbJsU61SoNIfa0E2Q+Kz+M4J/HU5Y5fNfzOE9pvrnHfVx
-PwjaIR5SkVn9NJ8xkGiARd+vdm69HNbKvbW7/Mbw/9+GqZ0Byo/1nl9pchj6BfoZ
-uKavgnrQ1+C5Vd21f1pirj0ppfcxFBEML6qvM1qtCq6ujsmsXz2qYJ5gci5ks/6h
-vjdiX0DxggVvTQ5O2sN21xg1HNe6MwEbkoD96y/RbPGf2C08/33iidnIwLa0rO7U
-6j77KROvMe0dYUQ/0urXZ57kZwRnUlVfY6gkzlle0LmQFezA8h6STGWU8xFhKjOv
-djN23sDoP0N1brw6kiYp2xFMM5RgUhDq9BrGvud4LOu8zPw4sw4Vb+Jjt+Atcl7/
-AZi+w9YufhhVPTU93eH1gU5tpSrfntDivFGGaqeYuz6Zo5u+d2lMewg/hCZfdkcP
-a27cKQjA+54ygT4CdxMc/tRwuqrnUPP65hy8kg2jJQ9gMXhX95Cc/RFanKUDkSgn
-o+nX6vpvB9qvB/F+4OsEYjojsZk5p6n4hVIaOi1IUVEJcjYqjbS0ngTZmEV9Kl7k
-igwLjemutFcUBIFqdCR13eVjDJwJdnAVNQHIkkLasFaIhzAJn8vCEUDvLk0/A8eW
-rH7TqlVuDvEm9HOlmrgwTth/GPplhmFpyX75WshJe42gxdaYzJlzWDrJmfU2VD3E
-jloMkzbO761WlIHd0ijfMXl9wuI447hocFCmgyQ+f8zVwTZLj0pL0ZIlPH0jwD3r
-EvafouGbbfDgq/eVct/B1Nj/z6Uh9ZSVO9CUZY2GRyOv49DveOP4kKfuwTs/Y83z
-UhEuOe7eXBADI+9WGGUY1vwClNqZx/sEVy+0pb3DI2WEPneP3AI36KfFT2awtkOp
-/39t+KzRt8slxfagXdkGyne2XgQwCL+tMbBS3UhHbAdy3YpoyOrAVrXqtoJPt1Xv
-KoJM/Er9NoEZf6cdzAFBsXA3FjCI0CmHsIp2UhVUAs32wrxuMP6j7fes7fCXmDxJ
-thBsCP/xTPpsDXPC4HRXAJHj9Xq1eHCJMV8q0pw9UhePNWjSuk1l5nLRhE2nfZ3a
-hNuPqh0Nku5vgqWilsyx6hgwcirsadG13bzvuMHqg4kW+Mq/34zlbpXhsMAbIYyM
-5NjIHNaRXLzGQYosk4pctP5IcH3pd6p6S2wl8PrzXbnfskuyFnTKTBMSDPTv/n9n
-C0UvMpqo4YeZnEBzoYjMkS/KHu/mbEDmYXzYZ3qZqvSgrOfMN90MdSYZiTUzvZ8+
-CJmdgZ2iCj+KOXdOLrOiWokjmSlGa3xtL4uD6xV7TSqeHXB2oQjuQx6XAjDQF3//
-F0swKBXNJ60cftQUXLlz1tgYcJHD+TkH5+O4/BJIgtC6I10gbFQ3Ep9o2bOCwAy7
-z6VMH3CNDloejx9/5E/KdfOezB7RHxM2G1IVJHYW0j0b7SmnnEjMnGrPtH/ptKS2
-MzbYEKTmj4U9zpzsk53subn0t+dMdIKcbtRUxPVAvU9N+vPw/6KBSh8JQAQafk33
-Q+q+xpVvEFpQr+KJX6lzRUghYyN8nXfOJwcCZmxfpsUo5rMqkptsqNAn
-=+TXi
+iQUHBAABCgAdFiEEzaAaQgjE90UGEH570atFFoiIiIgFAmZ5qLcACgkQ0atFFoiI
+iIh5Uyagr0JWPjKIuqtcmoTiGXOCSYKhx+dt2uvYoJApPElYklpkeRkTwgVuKBI+
+Dm2YksDzhQK6Jgy/SssNjV3FNloAk2EW6NA3FPnC++fpcdocGzRzqtW32aYxvrnn
+dDw0D5Ge+Y7aS2qBp53TK9jrKwCBN+l70MPfZxjyHi9nwb3pfJoi7Crq8XGm9UsL
+UoW33IslehXkmHENrs0glIuNGLARURQ4OqL+HHKtLaxMETceZi4AcUwLFsgP0X0R
+uwB8cqI8U3obDJtm2EkrG/9jzeqpVMRdyPwxNLWvY4Lud7JT7mvrYOSXrqydYz1D
+klEKuXi3NIkLQlCi1htph82sMY8SGUcu+UZHODKUSwubcAY/JsgqWJ+7VaUa/bLq
+RJ6DIKqwJjs+gE03IAZM3LUkdUOfPok8FrAQtAr6xjTHcajlEkE0JzCC9/o/s8E2
+bVp2tdDH6vweOEr1uTU496jYu91FWZ7CY2VNGLqgrrwQZPnVwN41xg0/t8Upu9vn
+wEfsakOYhgDgE6h0llh2f/qoDhAqW4RrVjLld78SSCsEaFnDu8GnBYm2d/Wq87iQ
+/hKiiHy7DZ8cgesmb0szpcCPUFJm1uJYCJpV+awxzHwwF25eQ6onLOU0OpvbSgMp
+jeQsYuuAmslPlYwHTHhVJx4OV474yueA7nWvM5ux39rlmK/B2rQcLJ/iOcwb8fum
+ZbIadHnCc3RZapa4QEydM0lbSJl5YIii4FXMQ7trFJY7Q8imV4XPZ5ufa/T2OVlF
+rK4AIB4awhz4EOpqUee6VQgeaJ/dlRYzqtMAh2SYUW1aEFyiKJMNaC1MZKnEjCFA
+SlTqLitfwQDeZhbdthOmP54twtIxwupNYRTLPfyFD4JGFCc9c+RjuwQtVjj50fEB
+UicFlBEU3gMUzWIPACpUVaXFFc/mjZYnqY9O4Hjg1lF5crxy8O8pF+5SiAFqDlBh
+PrbALCe7dlJPYzDW0gibAEyYT7WrHFln9rC40u0cGgYNZXr/P8eMprHmYyMmSDVg
+szXegoRdvQfMjd0AEa5rwYT1z21x+tJ1umUiyYSpnnRoYctfRrXxnsmRic/hcxaQ
+R7ARdre4MurkNd0l4Sj+purtxbxeWaNSuivRDn8UlELkuSY0bsjWhZbT/rMGUU2Y
+pD6ck7/bSp+fFO4wQrwu/L8wzrGHQmIsJHsPeIUwKcQu1aEIbsbavdV4dScHvN/b
+f6XuzFnAsN7DOOtQMmBIG/l5bHq2dln3poZ01WV5UKgC7Itxcgs+H550i6ZLiZ3U
+7+/BrlpZ8Bb13Gm3+vSrT/AJsjNO2fHxmUt/qCLdIU2lkBpX6NsrJjJk1Xn1dMyG
+UCGezB1derz2nt41RJde6ZIVU0crjpnCoK4EOHXh41TS0PFHpnvbVNf36ByDS8Br
+z51o3qduFkaXMerxJSlOew9xJIPnqL0pz4d7594RwNthc43+QonxR3fjQ7qhXK66
+W31shszmif1s+7nmNuVyARVsSCv0MAQi/sYsXzw2HUOQG6Lb+cvlGZk0wjUNv+Va
+PGNZ9r10z0u+SNeikBLM+T54m11oVEIrDPRRnuHL6Y/moVotRJSYGcdo3Uq+Zbn2
+mYeUZYNH0ytyEsXyvvV4H5AJHNMi7Hg1uupOUQRe7SWbIkmnI9XoIeJ3
+=t2r1
-----END PGP SIGNATURE-----
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package paexec for openSUSE:Factory checked in at 2024-07-01 11:22:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/paexec (Old)
and /work/SRC/openSUSE:Factory/.paexec.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "paexec"
Mon Jul 1 11:22:01 2024 rev:6 rq:1184150 version:1.1.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/paexec/paexec.changes 2021-09-15 22:51:50.854940023 +0200
+++ /work/SRC/openSUSE:Factory/.paexec.new.18349/paexec.changes 2024-07-01 11:22:52.952542096 +0200
@@ -1,0 +2,11 @@
+Sun Jun 30 21:09:30 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.1.6:
+ * option -n: ignore leading spaces and tabs
+ * Add more tests
+ * Fix: Before running commands reset signal handlers for
+ ALRM, PIPE and CHLD to SIG_DFL. Also, unblock these signals.
+ This fixes some misterius problems with commands running alarm(2).
+ * libmaa>=1.5.1 is required for build
+
+-------------------------------------------------------------------
Old:
----
paexec-1.1.4.tar.gz
New:
----
paexec-1.1.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ paexec.spec ++++++
--- /var/tmp/diff_new_pack.Eh5lvr/_old 2024-07-01 11:22:53.420559034 +0200
+++ /var/tmp/diff_new_pack.Eh5lvr/_new 2024-07-01 11:22:53.420559034 +0200
@@ -1,7 +1,7 @@
#
# spec file for package paexec
#
-# Copyright (c) 2021 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
@@ -17,7 +17,7 @@
Name: paexec
-Version: 1.1.4
+Version: 1.1.6
Release: 0
Summary: Utility for task distribution over networks or CPUs
License: MIT
@@ -25,7 +25,7 @@
URL: https://paexec.sourceforge.net/
Source0: https://sourceforge.net/projects/paexec/files/paexec/paexec-%{version}/%{na…
Source1: %{name}-rpmlintrc
-BuildRequires: libmaa-devel
+BuildRequires: libmaa-devel >= 1.5.1
BuildRequires: mk-configure >= 0.27.0
BuildRequires: mk-configure-rpm-macros
BuildRequires: runawk
++++++ paexec-1.1.4.tar.gz -> paexec-1.1.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/Makefile new/paexec-1.1.6/Makefile
--- old/paexec-1.1.4/Makefile 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/Makefile 2024-06-07 14:21:07.000000000 +0200
@@ -11,7 +11,7 @@
SUBPRJ += examples/${d}:tests examples/${d}:examples
.endfor
-tests = transp_closed_stdin scripts
+tests = transp_closed_stdin scripts delayed_output
.for d in ${tests}
SUBPRJ += tests/${d}:tests
.endfor
@@ -41,3 +41,24 @@
.include "use.mk"
.include "Makefile.inc"
.include <mkc.subprj.mk>
+
+# Copyright (c) 2007-2024 Aleksey Cheusov <vle(a)gmx.net>
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/Makefile.inc new/paexec-1.1.6/Makefile.inc
--- old/paexec-1.1.4/Makefile.inc 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/Makefile.inc 2024-06-07 14:21:07.000000000 +0200
@@ -35,4 +35,4 @@
INTEXTS_REPLS += version ${VERSION:U}
#
-VERSION= 1.1.3
+VERSION= 1.1.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/doc/NEWS new/paexec-1.1.6/doc/NEWS
--- old/paexec-1.1.4/doc/NEWS 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/doc/NEWS 2024-06-07 14:21:07.000000000 +0200
@@ -1,4 +1,34 @@
======================================================================
+Version 1.1.6, by Aleksey Cheusov, Fri, 7 Jun 2024 9:19:17 +0400
+
+ option -n: ignore leading spaces and tabs
+
+ Add more tests
+
+======================================================================
+Version 1.1.5, by Aleksey Cheusov, Wed, 29 May 2024 20:06:42 +0400
+
+ Fix: Before running commands reset signal handlers for ALRM, PIPE
+ and CHLD to SIG_DFL. Also, unblock these signals. This fixes some
+ misterius problems with commands running alarm(2).
+
+ libmaa>=1.5.1 is required for build
+
+======================================================================
+Version 1.1.4, by Aleksey Cheusov, Mon, 1 Jun 2020 17:10:38 +0300
+
+ Remove local function pr_open and use it from libmaa library.
+ So, now paexec requires libmaa.
+
+ "mkcmake help" shows configuring variables and descriptions for
+ targets.
+
+ Use mkc's feature "getdelim" instead of local implementation.
+ So, we need at least mk-configure 0.33.0
+
+ Optimization flags defaults to "-O2 -g"
+
+======================================================================
Version 1.1.3, by Aleksey Cheusov, Thu, 14 May 2020 20:54:21 +0300
Fix use of uninitialized array.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/paargs/paargs.1 new/paexec-1.1.6/paargs/paargs.1
--- old/paexec-1.1.4/paargs/paargs.1 2020-06-01 16:44:21.000000000 +0200
+++ new/paexec-1.1.6/paargs/paargs.1 2024-06-07 14:21:17.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "paargs 1"
-.TH paargs 1 "2020-06-01" "" ""
+.TH paargs 1 "2024-06-07" "" ""
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/paexec/Makefile new/paexec-1.1.6/paexec/Makefile
--- old/paexec-1.1.4/paexec/Makefile 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/paexec/Makefile 2024-06-07 14:21:07.000000000 +0200
@@ -25,7 +25,8 @@
MKC_SOURCE_FUNCLIBS = shquote
MKC_REQUIRE_HEADERS = maa.h
-MKC_REQUIRE_FUNCLIBS = pr_open:maa
+MKC_REQUIRE_FUNCLIBS = pr_open2:maa
+MKC_REQUIRE_FUNCS6 = pr_open2:maa.h
MKC_COMMON_DEFINES = -D_GNU_SOURCE
MKC_COMMON_HEADERS = unistd.h stdlib.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/paexec/paexec.1 new/paexec-1.1.6/paexec/paexec.1
--- old/paexec-1.1.4/paexec/paexec.1 2020-06-01 16:44:21.000000000 +0200
+++ new/paexec-1.1.6/paexec/paexec.1 2024-06-07 14:21:17.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "paexec 1"
-.TH paexec 1 "2020-06-01" "" ""
+.TH paexec 1 "2024-06-07" "" ""
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -252,9 +252,9 @@
A number of commands to run in parallel.
.IP "\fB\-n\fR \fInodes\fR" 6
.IX Item "-n nodes"
-List of nodes separated by space character. The first character must be
+List of nodes separated by space or tab characters. The first character must be
alphanumeric, `_' or `/'. All other characters are reserved
-for future extensions.
+for future extensions. Leading and trailing spaces and tabs are ignored.
.IP "\fB\-n\fR \fI:filename\fR" 6
.IX Item "-n :filename"
Filename containing list of nodes, one per line.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/paexec/paexec.c new/paexec-1.1.6/paexec/paexec.c
--- old/paexec-1.1.4/paexec/paexec.c 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/paexec/paexec.c 2024-06-07 14:21:07.000000000 +0200
@@ -445,6 +445,14 @@
}
}
+static void restore_signals(void)
+{
+ unblock_signals();
+ set_sig_handler(SIGALRM, SIG_DFL);
+ set_sig_handler(SIGCHLD, SIG_DFL);
+ set_sig_handler(SIGPIPE, SIG_DFL);
+}
+
static void init__child_processes(void)
{
char full_cmd [2000];
@@ -483,8 +491,9 @@
fprintf(stderr, "running cmd: %s\n", full_cmd);
}
- pids [i] = pr_open(
+ pids [i] = pr_open2(
full_cmd,
+ restore_signals,
PR_CREATE_STDIN | PR_CREATE_STDOUT,
&fd_in [i], &fd_out [i], NULL);
@@ -1079,6 +1088,7 @@
debug = 1;
break;
case 'n':
+ optarg += strspn(optarg, " \t");
assign_str(&arg_nodes, optarg);
break;
case 'c':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/paexec/paexec.pod new/paexec-1.1.6/paexec/paexec.pod
--- old/paexec-1.1.4/paexec/paexec.pod 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/paexec/paexec.pod 2024-06-07 14:21:07.000000000 +0200
@@ -122,9 +122,9 @@
=item B<-n> I<nodes>
-List of nodes separated by space character. The first character must be
+List of nodes separated by space or tab characters. The first character must be
alphanumeric, `_' or `/'. All other characters are reserved
-for future extensions.
+for future extensions. Leading and trailing spaces and tabs are ignored.
=item B<-n> I<:filename>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/paexec/paexec_reorder.1 new/paexec-1.1.6/paexec/paexec_reorder.1
--- old/paexec-1.1.4/paexec/paexec_reorder.1 2020-06-01 16:44:21.000000000 +0200
+++ new/paexec-1.1.6/paexec/paexec_reorder.1 2024-06-07 14:21:17.000000000 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
+.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "paexec_reorder 1"
-.TH paexec_reorder 1 "2020-06-01" "" ""
+.TH paexec_reorder 1 "2024-06-07" "" ""
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
Binary files old/paexec-1.1.4/presentation/paexec.pdf and new/paexec-1.1.6/presentation/paexec.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/Makefile new/paexec-1.1.6/tests/Makefile
--- old/paexec-1.1.4/tests/Makefile 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/Makefile 2024-06-07 14:21:07.000000000 +0200
@@ -1,3 +1,24 @@
+# Copyright (c) 2007-2024 Aleksey Cheusov <vle(a)gmx.net>
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
MKC_CHECK_CUSTOM += sleep_fract
MKC_CUSTOM_FN.sleep_fract = ../checks/sleep_fract
@@ -33,6 +54,7 @@
export PATH=${OBJDIR_make_package}:$$PATH; \
export PATH=${OBJDIR_toupper}:$$PATH; \
export PATH=${OBJDIR_wav2flac}:$$PATH; \
+ export PATH=${OBJDIR_delayed_output}:$$PATH; \
export SLEEP_FRACT=${CUSTOM.sleep_fract:S/0//}; \
export USE_TEST_BUFSIZES=${USE_TEST_BUFSIZES:Q}; \
if ./test.sh; \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/delayed_output/Makefile new/paexec-1.1.6/tests/delayed_output/Makefile
--- old/paexec-1.1.4/tests/delayed_output/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ new/paexec-1.1.6/tests/delayed_output/Makefile 2024-06-07 14:21:07.000000000 +0200
@@ -0,0 +1,8 @@
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
+PROG = delayed_output
+
+WARNS = 4
+
+.include <mkc.mk>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/delayed_output/delayed_output.c new/paexec-1.1.6/tests/delayed_output/delayed_output.c
--- old/paexec-1.1.4/tests/delayed_output/delayed_output.c 1970-01-01 01:00:00.000000000 +0100
+++ new/paexec-1.1.6/tests/delayed_output/delayed_output.c 2024-06-07 14:21:07.000000000 +0200
@@ -0,0 +1,35 @@
+/*
+ * Written by Aleksey Cheusov <vle(a)gmx.net>
+ * Public domain
+ */
+
+#include <errno.h>
+#include <unistd.h>
+#include <signal.h>
+#include <assert.h>
+#include <stdio.h>
+
+static void alarm_handler(int sig)
+{
+ if (sig != SIGALRM)
+ _exit(2);
+}
+
+int main(int argc, char **argv)
+{
+ --argc;
+ ++argv;
+ assert(argc == 1);
+
+ unsigned int remaining;
+ signal(SIGALRM, alarm_handler);
+ alarm(1);
+
+ remaining = sleep(1000);
+ assert(remaining > 0);
+
+ printf("prefix ");
+ puts(argv[0]);
+
+ return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/fakeflac/flac new/paexec-1.1.6/tests/fakeflac/flac
--- old/paexec-1.1.4/tests/fakeflac/flac 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/fakeflac/flac 2024-06-07 14:21:07.000000000 +0200
@@ -1,5 +1,8 @@
#!/usr/bin/env sh
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
set -e
while test $# -ne 0; do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/scripts/Makefile new/paexec-1.1.6/tests/scripts/Makefile
--- old/paexec-1.1.4/tests/scripts/Makefile 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/scripts/Makefile 2024-06-07 14:21:07.000000000 +0200
@@ -1,3 +1,6 @@
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
INSCRIPTS = big_result_cmd transport_broken_rnd \
transport_broken_echo transport_broken_toupper
SCRIPTS = paexec_notransport ${INSCRIPTS}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/scripts/big_result_cmd.in new/paexec-1.1.6/tests/scripts/big_result_cmd.in
--- old/paexec-1.1.4/tests/scripts/big_result_cmd.in 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/scripts/big_result_cmd.in 2024-06-07 14:21:07.000000000 +0200
@@ -1,5 +1,8 @@
#!@awk@ -f
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
BEGIN {
eot = ENVIRON ["PAEXEC_EOT"]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/scripts/paexec_notransport new/paexec-1.1.6/tests/scripts/paexec_notransport
--- old/paexec-1.1.4/tests/scripts/paexec_notransport 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/scripts/paexec_notransport 2024-06-07 14:21:07.000000000 +0200
@@ -1,5 +1,8 @@
#!/usr/bin/env sh
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
shift # skip node
unset PAEXEC_EOT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/scripts/transport_broken_echo.in new/paexec-1.1.6/tests/scripts/transport_broken_echo.in
--- old/paexec-1.1.4/tests/scripts/transport_broken_echo.in 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/scripts/transport_broken_echo.in 2024-06-07 14:21:07.000000000 +0200
@@ -1,5 +1,8 @@
#!@awk@ -f
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
BEGIN {
if (ARGC != 3){
print "usage: transport_broken_echo id ''" > "/dev/stderr"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/scripts/transport_broken_echo2 new/paexec-1.1.6/tests/scripts/transport_broken_echo2
--- old/paexec-1.1.4/tests/scripts/transport_broken_echo2 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/scripts/transport_broken_echo2 2024-06-07 14:21:07.000000000 +0200
@@ -1,5 +1,8 @@
#!/usr/bin/env sh
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
#
# usage: transport <check_filename> <node_id>
#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/scripts/transport_broken_rnd.in new/paexec-1.1.6/tests/scripts/transport_broken_rnd.in
--- old/paexec-1.1.4/tests/scripts/transport_broken_rnd.in 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/scripts/transport_broken_rnd.in 2024-06-07 14:21:07.000000000 +0200
@@ -1,5 +1,8 @@
#!@awk@ -f
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
function sleep (secs){
if (!nosleep && 0 != system("sleep " secs)){
exit 10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/scripts/transport_broken_toupper.in new/paexec-1.1.6/tests/scripts/transport_broken_toupper.in
--- old/paexec-1.1.4/tests/scripts/transport_broken_toupper.in 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/scripts/transport_broken_toupper.in 2024-06-07 14:21:07.000000000 +0200
@@ -1,5 +1,8 @@
#!@awk@ -f
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
BEGIN {
if (ARGC != 3){
print "usage: transport_broken_toupper id ''" > "/dev/stderr"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/test.sh new/paexec-1.1.6/tests/test.sh
--- old/paexec-1.1.4/tests/test.sh 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/test.sh 2024-06-07 14:21:07.000000000 +0200
@@ -1,5 +1,8 @@
#!/usr/bin/env sh
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
export LC_ALL=C
: ${PAEXEC_FIND:=find}
@@ -380,7 +383,7 @@
10 success
'
- # -J
+ # -J
printf 'aaa\nbbb\nz y x\ntrtrtrbrbrbr\nccc\nddd\neee\nfff\ny;x\nggg\n' |
runpaargs -P+2 -I '$$' -c 'awk "BEGIN {print toupper(\"$$\")}"' |
paexec_reorder -lgy -Ms |
@@ -513,6 +516,32 @@
10 success
'
+ printf 'AAA\nBBB\nTRTRTR'\''BRBRBR\nCCC\nDDD\nEEE\nFFF\n"Y;X\nGGG\nZ Y X\n' |
+ runpaargs -P +3 delayed_output |
+ paexec_reorder -lgy -Ms |
+ cmp 'paargs #1.2' \
+'1 prefix AAA
+1 success
+2 prefix BBB
+2 success
+3 prefix TRTRTR'"'"'BRBRBR
+3 success
+4 prefix CCC
+4 success
+5 prefix DDD
+5 success
+6 prefix EEE
+6 success
+7 prefix FFF
+7 success
+8 prefix "Y;X
+8 success
+9 prefix GGG
+9 success
+10 prefix Z Y X
+10 success
+'
+
# -x + -t
export PAEXEC_ENV=' ZZZZ, , ,YYYY,CCCC LALALA '
export ZZZZ=zz1234zz
@@ -605,8 +634,9 @@
'
# -J
+ for t in '' '-t ""'; do
printf 'AAA\nBBB\nZ Y X\nTRTRTR'\''BRBRBR\nCCC\nDDD\nEEE\nFFF\n"Y;X\nGGG\n' |
- runpaexec -J '{}' -c 'echo "xxx{}yyy"' -n +3 | sort |
+ runpaexec -J '{}' -c 'echo "xxx{}yyy"' -n +3 $t | sort |
cmp 'paexec -J #1.1' \
'xxx"Y;Xyyy
xxxAAAyyy
@@ -619,10 +649,12 @@
xxxTRTRTR'"'"'BRBRBRyyy
xxxZ Y Xyyy
'
+ done
# -J
+ for t in '' '-t ""'; do
printf 'aaa\nbbb\nz y x\ntrtrtrbrbrbr\nccc\nddd\neee\nfff\ny;x\nggg\n' |
- runpaexec -n+2 -J '$$' -c 'awk "BEGIN {print toupper(\"$$\")}"' | sort |
+ runpaexec -n+2 -J '$$' $t -c 'awk "BEGIN {print toupper(\"$$\")}"' | sort |
cmp 'paexec -J #1.2' \
'AAA
BBB
@@ -635,6 +667,7 @@
Y;X
Z Y X
'
+ done
# -J
printf 'AAA\nBBB\nZ Y X\nTRTRTR'\''BRBRBR\nCCC\nDDD\nEEE\nFFF\n"Y;X\nGGG\n' |
@@ -931,7 +964,7 @@
printf 'a\nbb\nccc\ndddd\neeeee\nffffff\n' |
( export PAEXEC_EOT=foobarbaz;
runpaexec_resort -l -t paexec_notransport -c cmd_toupper \
- -n '1 2 3 4 5 6 7 8 9'; ) |
+ -n ' 1 2 3 4 5 6 7 8 9 '; ) |
cmp 'paexec toupper #1.1 (PAEXEC_EOT)' \
'1 A
2 BB
@@ -944,7 +977,7 @@
# toupper
printf 'a\nbb\nccc\ndddd\neeeee\nffffff\n' |
runpaexec_resort -l -t ' ' -c cmd_toupper \
- -n '1 2 3 4 5 6 7 8 9' |
+ -n ' 1 2 3 ' |
cmp 'paexec toupper #2' \
'1 A
2 BB
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/transp_closed_stdin/Makefile new/paexec-1.1.6/tests/transp_closed_stdin/Makefile
--- old/paexec-1.1.4/tests/transp_closed_stdin/Makefile 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/transp_closed_stdin/Makefile 2024-06-07 14:21:07.000000000 +0200
@@ -1,3 +1,6 @@
+# Written by Aleksey Cheusov <vle(a)gmx.net>
+# Public domain
+
PROG = transp_closed_stdin
WARNS = 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/paexec-1.1.4/tests/transp_closed_stdin/transp_closed_stdin.c new/paexec-1.1.6/tests/transp_closed_stdin/transp_closed_stdin.c
--- old/paexec-1.1.4/tests/transp_closed_stdin/transp_closed_stdin.c 2020-06-01 16:44:20.000000000 +0200
+++ new/paexec-1.1.6/tests/transp_closed_stdin/transp_closed_stdin.c 2024-06-07 14:21:07.000000000 +0200
@@ -1,3 +1,8 @@
+/*
+ * Written by Aleksey Cheusov <vle(a)gmx.net>
+ * Public domain
+ */
+
#include <stdio.h>
#include <string.h>
#include <unistd.h>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-poetry for openSUSE:Factory checked in at 2024-07-01 11:21:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-poetry (Old)
and /work/SRC/openSUSE:Factory/.python-poetry.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-poetry"
Mon Jul 1 11:21:59 2024 rev:31 rq:1184164 version:1.8.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-poetry/python-poetry.changes 2024-03-20 21:20:24.683417342 +0100
+++ /work/SRC/openSUSE:Factory/.python-poetry.new.18349/python-poetry.changes 2024-07-01 11:22:50.288445677 +0200
@@ -1,0 +2,41 @@
+Sun Jun 30 21:49:44 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.8.3:
+ * Add support for untagged CPython builds with versions ending
+ with a `+` (#9207).
+ * Require `pkginfo>=1.10` to ensure support for packages with
+ metadata version 2.3 (#9130).
+ * Improve locking on FIPS systems (#9152).
+ * Fix an issue where unrecognized package metadata versions
+ silently resulted in empty dependencies (#9203,
+ * #9226).
+ * Fix an issue where trailing slashes in git URLs where not
+ handled correctly (#9205).
+ * Fix an issue where `poetry self` commands printed a warning
+ that the current project cannot be installed (#9302).
+ * Fix an issue where `poetry install` sporadically failed with
+ a `KeyError` due to a race condition (#9335).
+ * Fix incorrect information about `poetry shell` (#9060).
+ * Add a git subdirectory example to `poetry add` (#9080).
+ * Mention interactive credential configuration (#9074).
+ * Add notes for optional advanced installation steps (#9098).
+ * Add reference to configuration credentials in documentation
+ of poetry `publish` (#9110).
+ * Improve documentation for configuring credentials via
+ environment variables (#9121).
+ * Remove misleading wording around virtual environments
+ (#9213).
+ * Remove outdated advice regarding seeding keyring backends
+ (#9213).
+ * Add a `pyproject.toml` example for a dependency with multiple
+ extras (#9138).
+ * Clarify help of `poetry add` (#9230).
+ * Add a note how to configure credentials for TestPyPI for
+ `poetry publish` (#9255).
+ * Fix information about the `--readme` option in `poetry new`
+ (#9260).
+ * Clarify what is special about the Python constraint in
+ `dependencies` (#9256).
+ * Update how to uninstall plugins via `pipx` (#9320).
+
+-------------------------------------------------------------------
Old:
----
poetry-1.8.2.tar.gz
New:
----
poetry-1.8.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-poetry.spec ++++++
--- /var/tmp/diff_new_pack.IYyRO4/_old 2024-07-01 11:22:51.524490412 +0200
+++ /var/tmp/diff_new_pack.IYyRO4/_new 2024-07-01 11:22:51.540490991 +0200
@@ -27,7 +27,7 @@
%{?sle15_python_module_pythons}
Name: python-poetry%{psuffix}
-Version: 1.8.2
+Version: 1.8.3
Release: 0
Summary: Python dependency management and packaging
License: MIT
@@ -58,7 +58,7 @@
Requires: python-keyring >= 24.0
Requires: python-packaging >= 23.1
Requires: python-pexpect >= 4.7.0
-Requires: python-pkginfo >= 1.9.4
+Requires: python-pkginfo >= 1.10.0
Requires: python-pyproject-hooks >= 1.0.0
Requires: python-requests >= 2.26
Requires: python-shellingham >= 1.5
++++++ poetry-1.8.2.tar.gz -> poetry-1.8.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/.cirrus.yml new/poetry-1.8.3/.cirrus.yml
--- old/poetry-1.8.2/.cirrus.yml 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/.cirrus.yml 2024-05-03 16:24:55.000000000 +0200
@@ -1,5 +1,5 @@
freebsd_instance:
- image_family: freebsd-13-2
+ image_family: freebsd-14-0
cpu: 2
memory: 4G
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/.github/workflows/docs.yml new/poetry-1.8.3/.github/workflows/docs.yml
--- old/poetry-1.8.2/.github/workflows/docs.yml 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/.github/workflows/docs.yml 2024-05-03 16:24:55.000000000 +0200
@@ -42,7 +42,8 @@
- name: Set up Python
uses: actions/setup-python@v5
with:
- python-version: "3.10"
+ python-version: "3.12"
+ cache: poetry
- name: Setup Node
uses: actions/setup-node@v4
@@ -54,7 +55,7 @@
- name: Fetch Documentation
run: |
- python -m pip install poetry
+ pipx install poetry
poetry install --no-root --only main
poetry run python bin/website build --local ./poetry
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/.github/workflows/main.yml new/poetry-1.8.3/.github/workflows/main.yml
--- old/poetry-1.8.2/.github/workflows/main.yml 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/.github/workflows/main.yml 2024-05-03 16:24:55.000000000 +0200
@@ -43,26 +43,14 @@
steps:
- uses: actions/checkout@v4
+ - name: Bootstrap poetry
+ run: pipx install poetry
+
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
-
- - name: Get full Python version
- id: full-python-version
- run: echo version=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") >> $GITHUB_OUTPUT
-
- - name: Bootstrap poetry
- run: |
- curl -sSL https://install.python-poetry.org | python - -y
-
- - name: Update PATH
- if: ${{ matrix.os != 'Windows' }}
- run: echo "$HOME/.local/bin" >> $GITHUB_PATH
-
- - name: Update Path for Windows
- if: ${{ matrix.os == 'Windows' }}
- run: echo "$APPDATA\Python\Scripts" >> $GITHUB_PATH
+ cache: poetry
- name: Enable long paths for git on Windows
if: ${{ matrix.os == 'Windows' }}
@@ -71,23 +59,10 @@
run: git config --system core.longpaths true
- name: Configure poetry
- run: poetry config virtualenvs.in-project true
-
- - name: Set up cache
- uses: actions/cache@v4
- id: cache
- with:
- path: .venv
- key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
-
- - name: Ensure cache is healthy
- if: steps.cache.outputs.cache-hit == 'true'
run: |
- # `timeout` is not available on macOS, so we define a custom function.
- [ "$(command -v timeout)" ] || function timeout() { perl -e 'alarm shift; exec @ARGV' "$@"; }
-
- # Using `timeout` is a safeguard against the Poetry command hanging for some reason.
- timeout 10s poetry run pip --version || rm -rf .venv
+ poetry config virtualenvs.in-project true
+ poetry config virtualenvs.options.no-pip true
+ poetry config virtualenvs.options.no-setuptools true
- name: Check lock file
run: poetry check --lock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/.github/workflows/release.yml new/poetry-1.8.3/.github/workflows/release.yml
--- old/poetry-1.8.2/.github/workflows/release.yml 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/.github/workflows/release.yml 2024-05-03 16:24:55.000000000 +0200
@@ -13,17 +13,14 @@
- name: Checkout code
uses: actions/checkout@v4
- - name: Set up Python 3.10
- uses: actions/setup-python@v5
- with:
- python-version: "3.10"
-
- name: Install Poetry
- run: |
- curl -sSL https://install.python-poetry.org | python - -y
+ run: pipx install poetry
- - name: Update PATH
- run: echo "$HOME/.local/bin" >> $GITHUB_PATH
+ - name: Set up Python 3.12
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+ cache: poetry
- name: Build project for distribution
run: poetry build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/CHANGELOG.md new/poetry-1.8.3/CHANGELOG.md
--- old/poetry-1.8.2/CHANGELOG.md 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/CHANGELOG.md 2024-05-03 16:24:55.000000000 +0200
@@ -1,6 +1,43 @@
# Change Log
+## [1.8.3] - 2024-05-03
+
+### Added
+
+- Add support for untagged CPython builds with versions ending with a `+` ([#9207](https://github.com/python-poetry/poetry/pull/9207)).
+
+### Changed
+
+- Require `pkginfo>=1.10` to ensure support for packages with metadata version 2.3 ([#9130](https://github.com/python-poetry/poetry/pull/9130)).
+- Improve locking on FIPS systems ([#9152](https://github.com/python-poetry/poetry/pull/9152)).
+
+### Fixed
+
+- Fix an issue where unrecognized package metadata versions silently resulted in empty dependencies ([#9203](https://github.com/python-poetry/poetry/pull/9203),
+[#9226](https://github.com/python-poetry/poetry/pull/9226)).
+- Fix an issue where trailing slashes in git URLs where not handled correctly ([#9205](https://github.com/python-poetry/poetry/pull/9205)).
+- Fix an issue where `poetry self` commands printed a warning that the current project cannot be installed ([#9302](https://github.com/python-poetry/poetry/pull/9302)).
+- Fix an issue where `poetry install` sporadically failed with a `KeyError` due to a race condition ([#9335](https://github.com/python-poetry/poetry/pull/9335)).
+
+### Docs
+
+- Fix incorrect information about `poetry shell` ([#9060](https://github.com/python-poetry/poetry/pull/9060)).
+- Add a git subdirectory example to `poetry add` ([#9080](https://github.com/python-poetry/poetry/pull/9080)).
+- Mention interactive credential configuration ([#9074](https://github.com/python-poetry/poetry/pull/9074)).
+- Add notes for optional advanced installation steps ([#9098](https://github.com/python-poetry/poetry/pull/9098)).
+- Add reference to configuration credentials in documentation of poetry `publish` ([#9110](https://github.com/python-poetry/poetry/pull/9110)).
+- Improve documentation for configuring credentials via environment variables ([#9121](https://github.com/python-poetry/poetry/pull/9121)).
+- Remove misleading wording around virtual environments ([#9213](https://github.com/python-poetry/poetry/pull/9213)).
+- Remove outdated advice regarding seeding keyring backends ([#9213](https://github.com/python-poetry/poetry/pull/9213)).
+- Add a `pyproject.toml` example for a dependency with multiple extras ([#9138](https://github.com/python-poetry/poetry/pull/9138)).
+- Clarify help of `poetry add` ([#9230](https://github.com/python-poetry/poetry/pull/9230)).
+- Add a note how to configure credentials for TestPyPI for `poetry publish` ([#9255](https://github.com/python-poetry/poetry/pull/9255)).
+- Fix information about the `--readme` option in `poetry new` ([#9260](https://github.com/python-poetry/poetry/pull/9260)).
+- Clarify what is special about the Python constraint in `dependencies` ([#9256](https://github.com/python-poetry/poetry/pull/9256)).
+- Update how to uninstall plugins via `pipx` ([#9320](https://github.com/python-poetry/poetry/pull/9320)).
+
+
## [1.8.2] - 2024-03-02
### Fixed
@@ -10,7 +47,7 @@
- Improve `lazy-wheel` error handling if the index server pretends to support HTTP range requests but does not respect them ([#9084](https://github.com/python-poetry/poetry/pull/9084)).
- Improve `lazy-wheel` to allow redirects for HEAD requests ([#9087](https://github.com/python-poetry/poetry/pull/9087)).
- Improve debug logging for `lazy-wheel` errors ([#9059](https://github.com/python-poetry/poetry/pull/9059)).
-- Fix an issue where the hash of a metadata file could not be calculated correctly due to an encoding issue ([#9048](https://github.com/python-poetry/poetry/pull/9048)).
+- Fix an issue where the hash of a metadata file could not be calculated correctly due to an encoding issue ([#9049](https://github.com/python-poetry/poetry/pull/9049)).
- Fix an issue where `poetry add` failed in non-package mode if no project name was set ([#9046](https://github.com/python-poetry/poetry/pull/9046)).
- Fix an issue where a hint to non-package mode was not compliant with the final name of the setting ([#9073](https://github.com/python-poetry/poetry/pull/9073)).
@@ -2152,7 +2189,8 @@
-[Unreleased]: https://github.com/python-poetry/poetry/compare/1.8.2...master
+[Unreleased]: https://github.com/python-poetry/poetry/compare/1.8.3...master
+[1.8.3]: https://github.com/python-poetry/poetry/releases/tag/1.8.3
[1.8.2]: https://github.com/python-poetry/poetry/releases/tag/1.8.2
[1.8.1]: https://github.com/python-poetry/poetry/releases/tag/1.8.1
[1.8.0]: https://github.com/python-poetry/poetry/releases/tag/1.8.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/docs/_index.md new/poetry-1.8.3/docs/_index.md
--- old/poetry-1.8.2/docs/_index.md 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/docs/_index.md 2024-05-03 16:24:55.000000000 +0200
@@ -62,6 +62,12 @@
{{< step >}}
**Install Poetry (advanced)**
+{{% note %}}
+You can skip this step, if you simply want the latest version and already installed Poetry as described in the
+previous step. This step details advanced usages of this installation method. For example, installing Poetry from
+source, having multiple versions installed at the same time etc.
+{{% /note %}}
+
`pipx` can install different versions of Poetry, using the same syntax as pip:
```bash
@@ -151,6 +157,12 @@
{{< step >}}
**Install Poetry (advanced)**
+{{% note %}}
+You can skip this step, if you simply want the latest version and already installed Poetry as described in the
+previous step. This step details advanced usages of this installation method. For example, installing Poetry from
+source, using a pre-release build, configuring a different installation location etc.
+{{% /note %}}
+
By default, Poetry is installed into a platform and user-specific directory:
- `~/Library/Application Support/pypoetry` on MacOS.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/docs/basic-usage.md new/poetry-1.8.3/docs/basic-usage.md
--- old/poetry-1.8.2/docs/basic-usage.md 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/docs/basic-usage.md 2024-05-03 16:24:55.000000000 +0200
@@ -63,8 +63,29 @@
`tool.poetry.exclude` sections. `tool.poetry.exclude` is additionally implicitly populated by your `.gitignore`. For
full documentation on the project format, see the [pyproject section]({{< relref "pyproject" >}}) of the documentation.
+### Setting a Python Version
+
+{{% note %}}
+Unlike with other packages, Poetry will not automatically install a python interpreter for you.
+If you want to run Python files in your package like a script or application, you must _bring your own_ python interpreter to run them.
+{{% /note %}}
+
Poetry will require you to explicitly specify what versions of Python you intend to support, and its universal locking
will guarantee that your project is installable (and all dependencies claim support for) all supported Python versions.
+Again, it's important to remember that -- unlike other dependencies -- setting a Python version is merely specifying which versions of Python you intend to support.
+
+For example, in this `pyproject.toml` file:
+
+```toml
+[tool.poetry.dependencies]
+python = "^3.7.0"
+```
+
+we are allowing any version of Python 3 that is greater than `3.7.0`.
+
+When you run `poetry install`, you must have access to some version of a Python inrepreter that satisfies this constraint available on your system.
+Poetry will not install a Python interpreter for you.
+If you use a tool like `pyenv`, you can use the experimental configuration value [`virtualenvs.prefer-active-python`]({{< relref "configuration/#virtualenvsprefer-active-python-experimental" >}}).
### Initialising a pre-existing project
@@ -155,6 +176,7 @@
If managing your own virtual environment externally, you do not need to use `poetry run` or `poetry shell` since
you will, presumably, already have activated that virtual environment and made available the correct python instance.
For example, these commands should output the same python path:
+
```shell
conda activate your_env_name
which python
@@ -162,6 +184,7 @@
poetry shell
which python
```
+
{{% /note %}}
### Activating the virtual environment
@@ -197,7 +220,7 @@
To deactivate this virtual environment simply use `deactivate`.
| | POSIX Shell | Windows (PowerShell) | Exit/Deactivate |
-|-------------------| ----------------------------------------------- |----------------------------------------------------------| --------------- |
+| ----------------- | ----------------------------------------------- | -------------------------------------------------------- | --------------- |
| Sub-shell | `poetry shell` | `poetry shell` | `exit` |
| Manual Activation | `source {path_to_venv}/bin/activate` | `{path_to_venv}\Scripts\activate.ps1` | `deactivate` |
| One-liner | `source $(poetry env info --path)/bin/activate` | `& ((poetry env info --path) + "\Scripts\activate.ps1")` | `deactivate` |
@@ -273,7 +296,6 @@
{{% warning %}} If you have added the recommended [`[build-system]`]({{< relref "pyproject#poetry-and-pep-517" >}}) section to your project's pyproject.toml then you _can_ successfully install your project and its dependencies into a virtual environment using a command like `pip install -e .`. However, pip will not use the lock file to determine dependency versions as the poetry-core build system is intended for library developers (see next section).
{{% /warning %}}
-
#### As a library developer
Library developers have more to consider. Your users are application developers, and your library will run in a Python environment you don't control.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/docs/cli.md new/poetry-1.8.3/docs/cli.md
--- old/poetry-1.8.2/docs/cli.md 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/docs/cli.md 2024-05-03 16:24:55.000000000 +0200
@@ -579,6 +579,10 @@
* `--dry-run`: Perform all actions except upload the package.
* `--skip-existing`: Ignore errors from files already existing in the repository.
+{{% note %}}
+See [Configuring Credentials]({{< relref "repositories/#configuring-credentials" >}}) for more information on how to configure credentials.
+{{% /note %}}
+
## config
The `config` command allows you to edit poetry config settings and repositories.
@@ -637,10 +641,13 @@
## shell
-The `shell` command spawns a shell,
-according to the `$SHELL` environment variable,
-within the virtual environment.
-If one doesn't exist yet, it will be created.
+The shell command spawns a shell within the project's virtual environment.
+
+By default, the current active shell is detected and used. Failing that,
+the shell defined via the environment variable `SHELL` (on *nix) or
+`COMSPEC` (on Windows) is used.
+
+If a virtual environment does not exist, it will be created.
```bash
poetry shell
@@ -650,6 +657,11 @@
As such, `exit` should be used to properly exit the shell and the virtual environment instead of `deactivate`.
+{{% note %}}
+Poetry internally uses the [Shellingham](https://github.com/sarugaku/shellingham) project to detect current
+active shell.
+{{% /note %}}
+
## check
The `check` command validates the content of the `pyproject.toml` file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/docs/faq.md new/poetry-1.8.3/docs/faq.md
--- old/poetry-1.8.2/docs/faq.md 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/docs/faq.md 2024-05-03 16:24:55.000000000 +0200
@@ -171,8 +171,8 @@
### I don't want Poetry to manage my virtual environments. Can I disable it?
While Poetry automatically creates virtual environments to always work isolated
-from the global Python installation, there are valid reasons why it's not necessary
-and is an overhead, like when working with containers.
+from the global Python installation, there are rare scenarios where the use a Poetry managed
+virtual environment is not possible or preferred.
In this case, you can disable this feature by setting the `virtualenvs.create` setting to `false`:
@@ -180,6 +180,13 @@
poetry config virtualenvs.create false
```
+{{% warning %}}
+The recommended best practice, including when installing an application within a container, is to make
+use of a virtual environment. This can also be managed by another tool.
+
+The Poetry team strongly encourages the use of a virtual environment.
+{{% /warning %}}
+
### Why is Poetry telling me that the current project's supported Python range is not compatible with one or more packages' Python requirements?
Unlike `pip`, Poetry doesn't resolve for just the Python in the current environment. Instead it makes sure that a dependency
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/docs/plugins.md new/poetry-1.8.3/docs/plugins.md
--- old/poetry-1.8.2/docs/plugins.md 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/docs/plugins.md 2024-05-03 16:24:55.000000000 +0200
@@ -202,7 +202,9 @@
If you want to uninstall a plugin, you can run:
```shell
-pipx runpip poetry uninstall poetry-plugin
+pipx uninject poetry poetry-plugin # For pipx versions >= 1.2.0
+
+pipx runpip poetry uninstall poetry-plugin # For pipx versions < 1.2.0
```
### With `pip`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/docs/pyproject.md new/poetry-1.8.3/docs/pyproject.md
--- old/poetry-1.8.2/docs/pyproject.md 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/docs/pyproject.md 2024-05-03 16:24:55.000000000 +0200
@@ -421,6 +421,10 @@
{{% note %}}
Note that `install --extras` and the variations mentioned above (`--all-extras`, `--extras foo`, etc.) only work on dependencies defined in the current project. If you want to install extras defined by dependencies, you'll have to express that in the dependency itself:
```toml
+[tool.poetry.dependencies]
+pandas = {version="^2.2.1", extras=["computation", "performance"]}
+```
+```toml
[tool.poetry.group.dev.dependencies]
fastapi = {version="^0.92.0", extras=["all"]}
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/docs/repositories.md new/poetry-1.8.3/docs/repositories.md
--- old/poetry-1.8.2/docs/repositories.md 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/docs/repositories.md 2024-05-03 16:24:55.000000000 +0200
@@ -47,6 +47,15 @@
Many shells do not save commands to history when they are prefixed by a space character. For more information, please refer to your shell's documentation.
{{% /warning %}}
+{{% note %}}
+If you would like to provide the password interactively, you can simply omit `<password>` in your command. And
+Poetry will prompt you to enter the credential manually.
+
+```bash
+poetry config http-basic.foo <username>
+```
+{{% /note %}}
+
Once this is done, you can add dependencies to your project from this source.
```bash
@@ -76,6 +85,16 @@
{{% /note %}}
+{{% note %}}
+When configuring a repository using environment variables, note that correct suffixes need to be used.
+
+```bash
+export POETRY_REPOSITORIES_FOO_URL=https://pypi.example.org/legacy/
+export POETRY_HTTP_BASIC_FOO_USERNAME=<username>
+export POETRY_HTTP_BASIC_FOO_PASSWORD=<password>
+```
+{{% /note %}}
+
Now, all the is left is to build and publish your project using the
[`publish`]({{< relref "cli#publish" >}}).
@@ -492,6 +511,10 @@
```bash
poetry config pypi-token.pypi <my-token>
```
+If you have configured **testpypi** as a [Publishable Repository](#publishable-repositories), the token can be set using
+```bash
+poetry config pypi-token.testpypi <your-token>
+```
If you still want to use your username and password, you can do so with the following
call to `config`.
@@ -522,12 +545,6 @@
valid credentials. It will need to be properly installed into Poetry's virtualenv,
preferably by installing a plugin.
-If you are letting Poetry manage your virtual environments you will want a virtualenv
-seeder installed in Poetry's virtualenv that installs the desired keyring backend
-during `poetry install`. To again use Azure DevOps as an example: [azure-devops-artifacts-helpers](https://pypi.org/project/azure-devops-artif…
-provides such a seeder. This would of course best achieved by installing a Poetry plugin
-if it exists for you use case instead of doing it yourself.
-
{{% /note %}}
Alternatively, you can use environment variables to provide the credentials:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/poetry.lock new/poetry-1.8.3/poetry.lock
--- old/poetry-1.8.2/poetry.lock 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/poetry.lock 2024-05-03 16:24:55.000000000 +0200
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.8.0 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.
[[package]]
name = "build"
@@ -902,17 +902,17 @@
[[package]]
name = "pkginfo"
-version = "1.9.6"
+version = "1.10.0"
description = "Query metadata from sdists / bdists / installed packages."
optional = false
python-versions = ">=3.6"
files = [
- {file = "pkginfo-1.9.6-py3-none-any.whl", hash = "sha256:4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546"},
- {file = "pkginfo-1.9.6.tar.gz", hash = "sha256:8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046"},
+ {file = "pkginfo-1.10.0-py3-none-any.whl", hash = "sha256:889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097"},
+ {file = "pkginfo-1.10.0.tar.gz", hash = "sha256:5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297"},
]
[package.extras]
-testing = ["pytest", "pytest-cov"]
+testing = ["pytest", "pytest-cov", "wheel"]
[[package]]
name = "platformdirs"
@@ -1595,4 +1595,4 @@
[metadata]
lock-version = "2.0"
python-versions = "^3.8"
-content-hash = "85d42389685870cb956cc70109a816d5a68c1ea2987121679180ddd1aa4c4498"
+content-hash = "71646f3e3fae85c295e3852270969facafc502957e00610217e52c41c35fb270"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/pyproject.toml new/poetry-1.8.3/pyproject.toml
--- old/poetry-1.8.2/pyproject.toml 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/pyproject.toml 2024-05-03 16:24:55.000000000 +0200
@@ -1,6 +1,6 @@
[tool.poetry]
name = "poetry"
-version = "1.8.2"
+version = "1.8.3"
description = "Python dependency management and packaging made easy."
authors = ["Sébastien Eustace <sebastien(a)eustace.io>"]
maintainers = [
@@ -45,7 +45,7 @@
# packaging uses calver, so version is unclamped
packaging = ">=23.1"
pexpect = "^4.7.0"
-pkginfo = "^1.9.4"
+pkginfo = "^1.10"
platformdirs = ">=3.0.0,<5"
pyproject-hooks = "^1.0.0"
requests = "^2.26"
@@ -102,9 +102,6 @@
target-version = "py38"
[tool.ruff.lint]
-unfixable = [
- "ERA", # do not autoremove commented out code
-]
extend-select = [
"B", # flake8-bugbear
"C4", # flake8-comprehensions
@@ -124,6 +121,12 @@
"B905", # use explicit 'strict=' parameter with 'zip()'
"N818", # Exception name should be named with an Error suffix
]
+extend-safe-fixes = [
+ "TCH", # move import from and to TYPE_CHECKING blocks
+]
+unfixable = [
+ "ERA", # do not autoremove commented out code
+]
[tool.ruff.lint.flake8-tidy-imports]
ban-relative-imports = "all"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/console/commands/add.py new/poetry-1.8.3/src/poetry/console/commands/add.py
--- old/poetry-1.8.2/src/poetry/console/commands/add.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/console/commands/add.py 2024-05-03 16:24:55.000000000 +0200
@@ -16,7 +16,7 @@
class AddCommand(InstallerCommand, InitCommand):
name = "add"
- description = "Adds a new dependency to <comment>pyproject.toml</>."
+ description = "Adds a new dependency to <comment>pyproject.toml</> and installs it."
arguments = [argument("name", "The packages to add.", multiple=True)]
options = [
@@ -79,6 +79,8 @@
- A git url (<b>git+https://github.com/python-poetry/poetry.git</b>)
- A git url with a revision\
(<b>git+https://github.com/python-poetry/poetry.git#develop</b>)
+ - A subdirectory of a git repository\
+ (<b>git+https://github.com/python-poetry/poetry.git#subdirectory=tests/fixtures…</b>)
- A git SSH url (<b>git+ssh://github.com/python-poetry/poetry.git</b>)
- A git SSH url with a revision\
(<b>git+ssh://github.com/python-poetry/poetry.git#develop</b>)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/console/commands/new.py new/poetry-1.8.3/src/poetry/console/commands/new.py
--- old/poetry-1.8.2/src/poetry/console/commands/new.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/console/commands/new.py 2024-05-03 16:24:55.000000000 +0200
@@ -19,7 +19,7 @@
option(
"readme",
None,
- "Specify the readme file format. One of md (default) or rst",
+ "Specify the readme file format. Default is md.",
flag=False,
),
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/console/commands/self/self_command.py new/poetry-1.8.3/src/poetry/console/commands/self/self_command.py
--- old/poetry-1.8.2/src/poetry/console/commands/self/self_command.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/console/commands/self/self_command.py 2024-05-03 16:24:55.000000000 +0200
@@ -73,6 +73,7 @@
package.python_versions = ".".join(str(v) for v in self.env.version_info[:3])
content = Factory.create_pyproject_from_package(package=package)
+ content["tool"]["poetry"]["package-mode"] = False # type: ignore[index]
for key in preserved:
content["tool"]["poetry"][key] = preserved[key] # type: ignore[index]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/console/commands/shell.py new/poetry-1.8.3/src/poetry/console/commands/shell.py
--- old/poetry-1.8.2/src/poetry/console/commands/shell.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/console/commands/shell.py 2024-05-03 16:24:55.000000000 +0200
@@ -1,8 +1,8 @@
from __future__ import annotations
+import os
import sys
-from os import environ
from typing import TYPE_CHECKING
from typing import cast
@@ -17,9 +17,12 @@
name = "shell"
description = "Spawns a shell within the virtual environment."
- help = """The <info>shell</> command spawns a shell, according to the
-<comment>$SHELL</> environment variable, within the virtual environment.
-If one doesn't exist yet, it will be created.
+ help = f"""The <info>shell</> command spawns a shell within the project's virtual environment.
+
+By default, the current active shell is detected and used. Failing that,
+the shell defined via the environment variable <comment>{'COMSPEC' if os.name == 'nt' else 'SHELL'}</> is used.
+
+If a virtual environment does not exist, it will be created.
"""
def handle(self) -> int:
@@ -41,14 +44,14 @@
env = cast("VirtualEnv", env)
# Setting this to avoid spawning unnecessary nested shells
- environ["POETRY_ACTIVE"] = "1"
+ os.environ["POETRY_ACTIVE"] = "1"
shell = Shell.get()
shell.activate(env)
- environ.pop("POETRY_ACTIVE")
+ os.environ.pop("POETRY_ACTIVE")
return 0
def _is_venv_activated(self) -> bool:
- return bool(environ.get("POETRY_ACTIVE")) or getattr(
+ return bool(os.environ.get("POETRY_ACTIVE")) or getattr(
sys, "real_prefix", sys.prefix
) == str(self.env.path)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/inspection/info.py new/poetry-1.8.3/src/poetry/inspection/info.py
--- old/poetry-1.8.2/src/poetry/inspection/info.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/inspection/info.py 2024-05-03 16:24:55.000000000 +0200
@@ -245,6 +245,11 @@
:param dist: The distribution instance to parse information from.
"""
+ if dist.metadata_version not in pkginfo.distribution.HEADER_ATTRS:
+ # This check can be replaced once upstream implements strict parsing
+ # https://bugs.launchpad.net/pkginfo/+bug/2058697
+ raise ValueError(f"Unknown metadata version: {dist.metadata_version}")
+
requirements = None
if dist.requires_dist:
@@ -539,8 +544,8 @@
try:
wheel = pkginfo.Wheel(str(path))
return cls._from_distribution(wheel)
- except ValueError:
- return PackageInfo()
+ except ValueError as e:
+ raise PackageInfoError(path, e)
@classmethod
def from_bdist(cls, path: Path) -> PackageInfo:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/installation/executor.py new/poetry-1.8.3/src/poetry/installation/executor.py
--- old/poetry-1.8.2/src/poetry/installation/executor.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/installation/executor.py 2024-05-03 16:24:55.000000000 +0200
@@ -106,6 +106,10 @@
self._shutdown = False
self._hashes: dict[str, str] = {}
+ # Cache whether decorated output is supported.
+ # https://github.com/python-poetry/cleo/issues/423
+ self._decorated_output: bool = self._io.output.is_decorated()
+
@property
def installations_count(self) -> int:
return self._executed["install"]
@@ -123,7 +127,7 @@
return self._enabled
def supports_fancy_output(self) -> bool:
- return self._io.output.is_decorated() and not self._dry_run
+ return self._decorated_output and not self._dry_run
def disable(self) -> Executor:
self._enabled = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/repositories/http_repository.py new/poetry-1.8.3/src/poetry/repositories/http_repository.py
--- old/poetry-1.8.2/src/poetry/repositories/http_repository.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/repositories/http_repository.py 2024-05-03 16:24:55.000000000 +0200
@@ -4,6 +4,7 @@
import hashlib
from contextlib import contextmanager
+from contextlib import suppress
from pathlib import Path
from typing import TYPE_CHECKING
from typing import Any
@@ -374,7 +375,11 @@
hash_name = get_highest_priority_hash_type(
set(link.hashes.keys()), link.filename
)
- known_hash = getattr(hashlib, hash_name)() if hash_name else None
+ known_hash = None
+ with suppress(ValueError, AttributeError):
+ # Handle ValueError here as well since under FIPS environments
+ # this is what is raised (e.g., for MD5)
+ known_hash = getattr(hashlib, hash_name)() if hash_name else None
required_hash = hashlib.sha256()
chunksize = 4096
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/utils/env/script_strings.py new/poetry-1.8.3/src/poetry/utils/env/script_strings.py
--- old/poetry-1.8.2/src/poetry/utils/env/script_strings.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/utils/env/script_strings.py 2024-05-03 16:24:55.000000000 +0200
@@ -82,7 +82,7 @@
"platform_release": platform.release(),
"platform_system": platform.system(),
"platform_version": platform.version(),
- "python_full_version": platform.python_version(),
+ "python_full_version": platform.python_version().rstrip("+"),
"platform_python_implementation": platform.python_implementation(),
"python_version": ".".join(platform.python_version_tuple()[:2]),
"sys_platform": sys.platform,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/utils/env/system_env.py new/poetry-1.8.3/src/poetry/utils/env/system_env.py
--- old/poetry-1.8.2/src/poetry/utils/env/system_env.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/utils/env/system_env.py 2024-05-03 16:24:55.000000000 +0200
@@ -71,7 +71,8 @@
"platform_release": platform.release(),
"platform_system": platform.system(),
"platform_version": platform.version(),
- "python_full_version": platform.python_version(),
+ # Workaround for https://github.com/python/cpython/issues/99968
+ "python_full_version": platform.python_version().rstrip("+"),
"platform_python_implementation": platform.python_implementation(),
"python_version": ".".join(platform.python_version().split(".")[:2]),
"sys_platform": sys.platform,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/src/poetry/vcs/git/backend.py new/poetry-1.8.3/src/poetry/vcs/git/backend.py
--- old/poetry-1.8.2/src/poetry/vcs/git/backend.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/src/poetry/vcs/git/backend.py 2024-05-03 16:24:55.000000000 +0200
@@ -182,7 +182,7 @@
@staticmethod
def get_name_from_source_url(url: str) -> str:
- return re.sub(r"(.git)?$", "", url.rsplit("/", 1)[-1])
+ return re.sub(r"(.git)?$", "", url.rstrip("/").rsplit("/", 1)[-1])
@classmethod
def _fetch_remote_refs(cls, url: str, local: Repo) -> FetchPackResult:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/tests/console/commands/self/test_install.py new/poetry-1.8.3/tests/console/commands/self/test_install.py
--- old/poetry-1.8.2/tests/console/commands/self/test_install.py 1970-01-01 01:00:00.000000000 +0100
+++ new/poetry-1.8.3/tests/console/commands/self/test_install.py 2024-05-03 16:24:55.000000000 +0200
@@ -0,0 +1,62 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+import pytest
+
+from poetry.console.commands.self.install import SelfInstallCommand
+
+
+if TYPE_CHECKING:
+ from cleo.testers.command_tester import CommandTester
+
+ from tests.types import CommandTesterFactory
+
+
+(a)pytest.fixture
+def tester(command_tester_factory: CommandTesterFactory) -> CommandTester:
+ return command_tester_factory("self install")
+
+
+(a)pytest.mark.parametrize(
+ "pyproject_content",
+ (
+ None,
+ """\
+[tool.poetry]
+name = "poetry-instance"
+version = "1.2"
+description = ""
+authors = []
+license = ""
+# no package-mode -> defaults to true
+
+[tool.poetry.dependencies]
+python = "3.9"
+poetry = "1.2"
+""",
+ ),
+)
+def test_self_install(
+ tester: CommandTester,
+ pyproject_content: str | None,
+) -> None:
+ command = tester.command
+ assert isinstance(command, SelfInstallCommand)
+ pyproject_path = command.system_pyproject
+ if pyproject_content:
+ pyproject_path.write_text(pyproject_content)
+ else:
+ assert not pyproject_path.exists()
+
+ tester.execute()
+
+ expected_output = """\
+Updating dependencies
+Resolving dependencies...
+
+Writing lock file
+"""
+
+ assert tester.io.fetch_output() == expected_output
+ assert tester.io.fetch_error() == ""
Binary files old/poetry-1.8.2/tests/fixtures/distributions/demo_metadata_version_unknown-0.1.0-py2.py3-none-any.whl and new/poetry-1.8.3/tests/fixtures/distributions/demo_metadata_version_unknown-0.1.0-py2.py3-none-any.whl differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/tests/fixtures/extended_with_no_setup/extended/extended.c new/poetry-1.8.3/tests/fixtures/extended_with_no_setup/extended/extended.c
--- old/poetry-1.8.2/tests/fixtures/extended_with_no_setup/extended/extended.c 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/tests/fixtures/extended_with_no_setup/extended/extended.c 2024-05-03 16:24:55.000000000 +0200
@@ -10,7 +10,7 @@
{
"hello",
(PyCFunction) hello,
- NULL,
+ METH_NOARGS,
PyDoc_STR("Say hello.")
},
{NULL}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/tests/inspection/test_info.py new/poetry-1.8.3/tests/inspection/test_info.py
--- old/poetry-1.8.2/tests/inspection/test_info.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/tests/inspection/test_info.py 2024-05-03 16:24:55.000000000 +0200
@@ -179,6 +179,20 @@
assert info._source_url == demo_wheel.resolve().as_posix()
+def test_info_from_wheel_metadata_version_unknown(
+ fixture_dir: FixtureDirGetter,
+) -> None:
+ path = (
+ fixture_dir("distributions")
+ / "demo_metadata_version_unknown-0.1.0-py2.py3-none-any.whl"
+ )
+
+ with pytest.raises(PackageInfoError) as e:
+ PackageInfo.from_wheel(path)
+
+ assert "Unknown metadata version: 999.3" in str(e.value)
+
+
def test_info_from_wheel_metadata(demo_wheel_metadata: RawMetadata) -> None:
info = PackageInfo.from_metadata(demo_wheel_metadata)
demo_check_info(info)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/tests/repositories/test_http_repository.py new/poetry-1.8.3/tests/repositories/test_http_repository.py
--- old/poetry-1.8.2/tests/repositories/test_http_repository.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/tests/repositories/test_http_repository.py 2024-05-03 16:24:55.000000000 +0200
@@ -1,5 +1,6 @@
from __future__ import annotations
+import contextlib
import shutil
from pathlib import Path
@@ -12,6 +13,7 @@
from packaging.metadata import parse_email
from poetry.core.packages.utils.link import Link
+from poetry.inspection.info import PackageInfoError
from poetry.inspection.lazy_wheel import HTTPRangeRequestUnsupported
from poetry.repositories.http_repository import HTTPRepository
from poetry.utils.helpers import HTTPRangeRequestSupported
@@ -116,13 +118,18 @@
# 1. range request and download
mock_metadata_from_wheel_url.side_effect = HTTPRangeRequestUnsupported
- repo._get_info_from_wheel(link)
+
+ with contextlib.suppress(PackageInfoError):
+ repo._get_info_from_wheel(link)
+
assert mock_metadata_from_wheel_url.call_count == 1
assert mock_download.call_count == 1
assert mock_download.call_args[1]["raise_accepts_ranges"] is False
# 2. only download
- repo._get_info_from_wheel(link)
+ with contextlib.suppress(PackageInfoError):
+ repo._get_info_from_wheel(link)
+
assert mock_metadata_from_wheel_url.call_count == 1
assert mock_download.call_count == 2
assert mock_download.call_args[1]["raise_accepts_ranges"] is True
@@ -130,26 +137,105 @@
# 3. download and range request
mock_metadata_from_wheel_url.side_effect = None
mock_download.side_effect = HTTPRangeRequestSupported
- repo._get_info_from_wheel(link)
+
+ with contextlib.suppress(PackageInfoError):
+ repo._get_info_from_wheel(link)
+
assert mock_metadata_from_wheel_url.call_count == 2
assert mock_download.call_count == 3
assert mock_download.call_args[1]["raise_accepts_ranges"] is True
# 4. only range request
- repo._get_info_from_wheel(link)
+ with contextlib.suppress(PackageInfoError):
+ repo._get_info_from_wheel(link)
+
assert mock_metadata_from_wheel_url.call_count == 3
assert mock_download.call_count == 3
# 5. range request and download
mock_metadata_from_wheel_url.side_effect = HTTPRangeRequestUnsupported
mock_download.side_effect = None
- repo._get_info_from_wheel(link)
+
+ with contextlib.suppress(PackageInfoError):
+ repo._get_info_from_wheel(link)
+
assert mock_metadata_from_wheel_url.call_count == 4
assert mock_download.call_count == 4
assert mock_download.call_args[1]["raise_accepts_ranges"] is False
# 6. only range request
mock_metadata_from_wheel_url.side_effect = None
- repo._get_info_from_wheel(link)
+
+ with contextlib.suppress(PackageInfoError):
+ repo._get_info_from_wheel(link)
+
assert mock_metadata_from_wheel_url.call_count == 5
assert mock_download.call_count == 4
+
+
+(a)pytest.mark.parametrize(
+ "mock_hashes",
+ [
+ None,
+ {"sha256": "e216b70f013c47b82a72540d34347632c5bfe59fd54f5fe5d51f6a68b19aaf84"},
+ {"md5": "be7589b4902793e66d7d979bd8581591"},
+ ],
+)
+def test_calculate_sha256(
+ mocker: MockerFixture, mock_hashes: dict[str, Any] | None
+) -> None:
+ filename = "poetry_core-1.5.0-py3-none-any.whl"
+ filepath = MockRepository.DIST_FIXTURES / filename
+ mock_download = mocker.patch(
+ "poetry.repositories.http_repository.download_file",
+ side_effect=lambda _, dest, *args, **kwargs: shutil.copy(filepath, dest),
+ )
+ domain = "foo.com"
+ link = Link(f"https://{domain}/{filename}", hashes=mock_hashes)
+ repo = MockRepository()
+
+ calculated_hash = repo.calculate_sha256(link)
+
+ assert mock_download.call_count == 1
+ assert (
+ calculated_hash
+ == "sha256:e216b70f013c47b82a72540d34347632c5bfe59fd54f5fe5d51f6a68b19aaf84"
+ )
+
+
+def test_calculate_sha256_defaults_to_sha256_on_md5_errors(
+ mocker: MockerFixture,
+) -> None:
+ raised_value_error = False
+
+ def mock_hashlib_md5_error() -> None:
+ nonlocal raised_value_error
+ raised_value_error = True
+ raise ValueError(
+ "[digital envelope routines: EVP_DigestInit_ex] disabled for FIPS"
+ )
+
+ filename = "poetry_core-1.5.0-py3-none-any.whl"
+ filepath = MockRepository.DIST_FIXTURES / filename
+ mock_download = mocker.patch(
+ "poetry.repositories.http_repository.download_file",
+ side_effect=lambda _, dest, *args, **kwargs: shutil.copy(filepath, dest),
+ )
+ mock_hashlib_md5 = mocker.patch("hashlib.md5", side_effect=mock_hashlib_md5_error)
+
+ domain = "foo.com"
+ link = Link(
+ f"https://{domain}/{filename}",
+ hashes={"md5": "be7589b4902793e66d7d979bd8581591"},
+ )
+ repo = MockRepository()
+
+ calculated_hash = repo.calculate_sha256(link)
+
+ assert raised_value_error
+ assert mock_download.call_count == 1
+ assert mock_hashlib_md5.call_count == 1
+ assert (
+ calculated_hash
+ == "sha256:e216b70f013c47b82a72540d34347632c5bfe59fd54f5fe5d51f6a68b19aaf84"
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/tests/utils/env/test_system_env.py new/poetry-1.8.3/tests/utils/env/test_system_env.py
--- old/poetry-1.8.2/tests/utils/env/test_system_env.py 1970-01-01 01:00:00.000000000 +0100
+++ new/poetry-1.8.3/tests/utils/env/test_system_env.py 2024-05-03 16:24:55.000000000 +0200
@@ -0,0 +1,19 @@
+from __future__ import annotations
+
+import sys
+
+from pathlib import Path
+from typing import TYPE_CHECKING
+
+from poetry.utils.env import SystemEnv
+
+
+if TYPE_CHECKING:
+ from pytest_mock import MockerFixture
+
+
+def test_get_marker_env_untagged_cpython(mocker: MockerFixture) -> None:
+ mocker.patch("platform.python_version", return_value="3.11.9+")
+ env = SystemEnv(Path(sys.prefix))
+ marker_env = env.get_marker_env()
+ assert marker_env["python_full_version"] == "3.11.9"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poetry-1.8.2/tests/vcs/git/test_backend.py new/poetry-1.8.3/tests/vcs/git/test_backend.py
--- old/poetry-1.8.2/tests/vcs/git/test_backend.py 2024-03-02 15:56:12.000000000 +0100
+++ new/poetry-1.8.3/tests/vcs/git/test_backend.py 2024-05-03 16:24:55.000000000 +0200
@@ -1,5 +1,8 @@
from __future__ import annotations
+import pytest
+
+from poetry.vcs.git.backend import Git
from poetry.vcs.git.backend import is_revision_sha
@@ -24,3 +27,17 @@
def test_invalid_revision_sha_max_len() -> None:
result = is_revision_sha(VALID_SHA + "42")
assert result is False
+
+
+(a)pytest.mark.parametrize(
+ ("url"),
+ [
+ "git@github.com:python-poetry/poetry.git",
+ "https://github.com/python-poetry/poetry.git",
+ "https://github.com/python-poetry/poetry",
+ "https://github.com/python-poetry/poetry/",
+ ],
+)
+def test_get_name_from_source_url(url: str) -> None:
+ name = Git.get_name_from_source_url(url)
+ assert name == "poetry"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package pyenv for openSUSE:Factory checked in at 2024-07-01 11:21:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pyenv (Old)
and /work/SRC/openSUSE:Factory/.pyenv.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pyenv"
Mon Jul 1 11:21:58 2024 rev:40 rq:1184161 version:2.4.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/pyenv/pyenv.changes 2024-06-11 18:33:13.309485039 +0200
+++ /work/SRC/openSUSE:Factory/.pyenv.new.18349/pyenv.changes 2024-07-01 11:22:47.228334925 +0200
@@ -1,0 +2,11 @@
+Sun Jun 30 21:48:24 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 2.4.5:
+ * python-build: Add ancient versions; 2.4, 2.4.1, 2.4.3, 2.4.4
+ and 2.4.5
+ * python-build: Add alpha releases; 3.4.0a2, 3.4.0a3, 3.4.0a4
+ * python-build: Update default pip version (1.4 -> 1.4.1)
+ * python-build: Update default setuptools version (0.9.7 ->
+ 1.1.6)
+
+-------------------------------------------------------------------
Old:
----
pyenv-2.4.2.tar.gz
New:
----
pyenv-2.4.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pyenv.spec ++++++
--- /var/tmp/diff_new_pack.RoxAqv/_old 2024-07-01 11:22:48.340375172 +0200
+++ /var/tmp/diff_new_pack.RoxAqv/_new 2024-07-01 11:22:48.348375462 +0200
@@ -19,7 +19,7 @@
%define pyenv_dir %{_libexecdir}/pyenv
#
Name: pyenv
-Version: 2.4.2
+Version: 2.4.5
Release: 0
Summary: Python Version Management
License: MIT
++++++ pyenv-2.4.2.tar.gz -> pyenv-2.4.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/CHANGELOG.md new/pyenv-2.4.5/CHANGELOG.md
--- old/pyenv-2.4.2/CHANGELOG.md 2024-06-08 22:49:46.000000000 +0200
+++ new/pyenv-2.4.5/CHANGELOG.md 2024-06-30 19:55:53.000000000 +0200
@@ -1,5 +1,12 @@
# Version History
+## Release v2.4.4
+* Add support for miniconda3 24.5.0-0 with py3.12, py3.11, py3.10, py3.9 by @binbjz in https://github.com/pyenv/pyenv/pull/2994
+* Add support for free-threaded Python by @colesbury in https://github.com/pyenv/pyenv/pull/2995
+
+## Release v2.4.3
+* Add miniconda3 24.4.0-0 by @binbjz in https://github.com/pyenv/pyenv/pull/2982
+
## Release v2.4.2
* Add script to install graalpy development builds by @timfel in https://github.com/pyenv/pyenv/pull/2969
* Correct the Explanation of PATH Variable Lookup by @Y-askour in https://github.com/pyenv/pyenv/pull/2975
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/README.md new/pyenv-2.4.5/README.md
--- old/pyenv-2.4.2/README.md 2024-06-08 22:49:46.000000000 +0200
+++ new/pyenv-2.4.5/README.md 2024-06-30 19:55:53.000000000 +0200
@@ -580,10 +580,13 @@
## Pyenv plugins
-Pyenv provides a simple, flexible and maintainable way to extend and customize its functionality with plugins --
+Pyenv provides a simple way to extend and customize its functionality with plugins --
as simple as creating a plugin directory and dropping a shell script on a certain subpath of it
with whatever extra logic you need to be run at certain moments.
+The main idea is that most things that you can put under `$PYENV_ROOT/<whatever>` you can also put
+under `$PYENV_ROOT/plugins/your_plugin_name/<whatever>`.
+
See [_Plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Plugins) on how to install and use plugins
as well as a catalog of some useful existing plugins for common needs.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/libexec/pyenv---version new/pyenv-2.4.5/libexec/pyenv---version
--- old/pyenv-2.4.2/libexec/pyenv---version 2024-06-08 22:49:46.000000000 +0200
+++ new/pyenv-2.4.5/libexec/pyenv---version 2024-06-30 19:55:53.000000000 +0200
@@ -12,7 +12,7 @@
set -e
[ -n "$PYENV_DEBUG" ] && set -x
-version="2.4.2"
+version="2.4.4"
git_revision=""
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/README.md new/pyenv-2.4.5/plugins/python-build/README.md
--- old/pyenv-2.4.2/plugins/python-build/README.md 2024-06-08 22:49:46.000000000 +0200
+++ new/pyenv-2.4.5/plugins/python-build/README.md 2024-06-30 19:55:53.000000000 +0200
@@ -96,7 +96,10 @@
See the [python-build built-in definitions](https://github.com/pyenv/pyenv/tree/master/plugins/python-buil… as a starting point for
custom definition files.
-[definitions]: https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/pytho…
+#### Adding definitions with a Pyenv plugin
+
+You can add your own definitions with a [Pyenv plugin](https://github.com/pyenv/pyenv?tab=readme-ov-file#pyenv-plugins) by placing them under
+`$PYENV_ROOT/plugins/your_plugin_name/share/python-build`.
### Default build configuration
@@ -197,20 +200,6 @@
```
-### Building with `--enable-shared`
-
-You can build CPython with `--enable-shared` to install a version with
-shared object.
-
-If `--enable-shared` was found in `PYTHON_CONFIGURE_OPTS` or `CONFIGURE_OPTS`,
-`python-build` will automatically set `RPATH` to the pyenv's prefix directory.
-This means you don't have to set `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` for
-the version(s) installed with `--enable-shared`.
-
-```sh
-$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.9
-```
-
### Building for maximum performance
Building CPython with `--enable-optimizations` will result in a faster
@@ -238,14 +227,30 @@
### Package download mirrors
python-build will first attempt to download package files from a mirror hosted on
-GitHub Pages. If a package is not available on the mirror, if the mirror
-is down, or if the download is corrupt, python-build will fall back to the
+GitHub Pages. If this fails, it will fall back to the
official URL specified in the definition file.
You can point python-build to another mirror by specifying the
-`PYTHON_BUILD_MIRROR_URL` environment variable--useful if you'd like to run your
-own local mirror, for example. Package mirror URLs are constructed by joining
-this variable with the SHA2 checksum of the package file.
+`PYTHON_BUILD_MIRROR_URL` environment variable.
+
+Package mirror URLs are constructed by joining
+`$PYTHON_BUILD_MIRROR_URL` with the SHA2 checksum of the package file as specified in the URL
+in the installation script (the part after the hash sign). E.g.:
+
+```
+https://mycache.example.com/0419e9085bf51b7a672009b3f50dbf1859acdf18ba725d0ec19aa5c8503f0ea3
+```
+
+If you have replicated the directory structure of an official site, the easiest way to adapt
+would be to make symlinks at the mirror's root:
+
+```
+0419e9085bf51b7a672009b3f50dbf1859acdf18ba725d0ec19aa5c8503f0ea3 -> 3.10.10/Python-3.10.10.tar.xz
+```
+
+The rationale is to abstract away difference between directory structures of sites
+of various Python flavors and their occasional changes as well as to accomodate
+people who only wish to cache some select downloads. This also allows to mirror multiple sites at once.
If the mirror being used does not have the same checksum (*e.g.* with a
pull-through cache like Artifactory), you can set the
@@ -258,15 +263,15 @@
The official python-build download mirror is provided by
[GitHub Pages](http://yyuu.github.io/pythons/).
-### Package download caching
+### Package download cache
-You can instruct python-build to keep a local cache of downloaded package files
-by setting the `PYTHON_BUILD_CACHE_PATH` environment variable. When set, package
-files will be kept in this directory after the first successful download and
-reused by subsequent invocations of `python-build` and `pyenv install`.
+Python-build will keep a cache of downloaded package files
+at the location specified by the `PYTHON_BUILD_CACHE_PATH` environment variable
+if it exists. The default is `~/.pyenv/cache`, so you can
+enable caching by just creating that directory.
-The `pyenv install` command defaults this path to `~/.pyenv/cache`, so in most
-cases you can enable download caching simply by creating that directory.
+The name of the would-be cached file is reported by Pyenv in the "Downloading <filename>..." message.
+It's possible to warm up the cache by manually putting the file there under an appropriate name.
### Keeping the build directory after installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/bin/python-build new/pyenv-2.4.5/plugins/python-build/bin/python-build
--- old/pyenv-2.4.2/plugins/python-build/bin/python-build 2024-06-08 22:49:46.000000000 +0200
+++ new/pyenv-2.4.5/plugins/python-build/bin/python-build 2024-06-30 19:55:53.000000000 +0200
@@ -822,6 +822,7 @@
use_homebrew_zlib || true
fi
use_dsymutil || true
+ use_free_threading || true
fi
( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then
@@ -1761,6 +1762,12 @@
fi
}
+use_free_threading() {
+ if [[ -n "$PYTHON_BUILD_FREE_THREADING" ]]; then
+ package_option python configure --disable-gil
+ fi
+}
+
build_package_enable_shared() {
package_option python configure --enable-shared
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/3.13.0b2 new/pyenv-2.4.5/plugins/python-build/share/python-build/3.13.0b2
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/3.13.0b2 2024-06-08 22:49:46.000000000 +0200
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/3.13.0b2 1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-prefer_openssl3
-export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
-install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a…" mac_openssl --if has_broken_mac_openssl
-install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca…" mac_readline --if has_broken_mac_readline
-if has_tar_xz_support; then
- install_package "Python-3.13.0b2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b2.tar.xz#bf11be01b42…" standard verify_py313 copy_python_gdb ensurepip
-else
- install_package "Python-3.13.0b2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b2.tgz#c87c42aa813723…" standard verify_py313 copy_python_gdb ensurepip
-fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/3.13.0b3 new/pyenv-2.4.5/plugins/python-build/share/python-build/3.13.0b3
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/3.13.0b3 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/3.13.0b3 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,9 @@
+prefer_openssl3
+export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
+install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a…" mac_openssl --if has_broken_mac_openssl
+install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca…" mac_readline --if has_broken_mac_readline
+if has_tar_xz_support; then
+ install_package "Python-3.13.0b3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b3.tar.xz#3be094ad08b…" standard verify_py313 copy_python_gdb ensurepip
+else
+ install_package "Python-3.13.0b3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b3.tgz#5e9c01cdb3e2fb…" standard verify_py313 copy_python_gdb ensurepip
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/3.13t-dev new/pyenv-2.4.5/plugins/python-build/share/python-build/3.13t-dev
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/3.13t-dev 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/3.13t-dev 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,2 @@
+export PYTHON_BUILD_FREE_THREADING=1
+source "$(dirname "${BASH_SOURCE[0]}")"/3.13-dev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/3.14t-dev new/pyenv-2.4.5/plugins/python-build/share/python-build/3.14t-dev
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/3.14t-dev 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/3.14t-dev 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,2 @@
+export PYTHON_BUILD_FREE_THREADING=1
+source "$(dirname "${BASH_SOURCE[0]}")"/3.14-dev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,25 @@
+case "$(anaconda_architecture 2>/dev/null || true)" in
+"Linux-aarch64" )
+ install_script "Miniconda3-py310_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-aarch64…" "miniconda" verify_py310
+ ;;
+"Linux-s390x" )
+ install_script "Miniconda3-py310_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-s390x.s…" "miniconda" verify_py310
+ ;;
+"Linux-x86_64" )
+ install_script "Miniconda3-py310_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-x86_64.…" "miniconda" verify_py310
+ ;;
+"MacOSX-arm64" )
+ install_script "Miniconda3-py310_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-MacOSX-arm64.…" "miniconda" verify_py310
+ ;;
+"MacOSX-x86_64" )
+ install_script "Miniconda3-py310_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-MacOSX-x86_64…" "miniconda" verify_py310
+ ;;
+* )
+ { echo
+ colorize 1 "ERROR"
+ echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
+ echo
+ } >&2
+ exit 1
+ ;;
+esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.10-24.5.0-0 new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.10-24.5.0-0
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.10-24.5.0-0 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.10-24.5.0-0 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,25 @@
+case "$(anaconda_architecture 2>/dev/null || true)" in
+"Linux-aarch64" )
+ install_script "Miniconda3-py310_24.5.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-Linux-aarch64…" "miniconda" verify_py310
+ ;;
+"Linux-s390x" )
+ install_script "Miniconda3-py310_24.5.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-Linux-s390x.s…" "miniconda" verify_py310
+ ;;
+"Linux-x86_64" )
+ install_script "Miniconda3-py310_24.5.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-Linux-x86_64.…" "miniconda" verify_py310
+ ;;
+"MacOSX-arm64" )
+ install_script "Miniconda3-py310_24.5.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-MacOSX-arm64.…" "miniconda" verify_py310
+ ;;
+"MacOSX-x86_64" )
+ install_script "Miniconda3-py310_24.5.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-MacOSX-x86_64…" "miniconda" verify_py310
+ ;;
+* )
+ { echo
+ colorize 1 "ERROR"
+ echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
+ echo
+ } >&2
+ exit 1
+ ;;
+esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,25 @@
+case "$(anaconda_architecture 2>/dev/null || true)" in
+"Linux-aarch64" )
+ install_script "Miniconda3-py311_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-aarch64…" "miniconda" verify_py311
+ ;;
+"Linux-s390x" )
+ install_script "Miniconda3-py311_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-s390x.s…" "miniconda" verify_py311
+ ;;
+"Linux-x86_64" )
+ install_script "Miniconda3-py311_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-x86_64.…" "miniconda" verify_py311
+ ;;
+"MacOSX-arm64" )
+ install_script "Miniconda3-py311_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-MacOSX-arm64.…" "miniconda" verify_py311
+ ;;
+"MacOSX-x86_64" )
+ install_script "Miniconda3-py311_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-MacOSX-x86_64…" "miniconda" verify_py311
+ ;;
+* )
+ { echo
+ colorize 1 "ERROR"
+ echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
+ echo
+ } >&2
+ exit 1
+ ;;
+esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.11-24.5.0-0 new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.11-24.5.0-0
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.11-24.5.0-0 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.11-24.5.0-0 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,25 @@
+case "$(anaconda_architecture 2>/dev/null || true)" in
+"Linux-aarch64" )
+ install_script "Miniconda3-py311_24.5.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-Linux-aarch64…" "miniconda" verify_py311
+ ;;
+"Linux-s390x" )
+ install_script "Miniconda3-py311_24.5.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-Linux-s390x.s…" "miniconda" verify_py311
+ ;;
+"Linux-x86_64" )
+ install_script "Miniconda3-py311_24.5.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-Linux-x86_64.…" "miniconda" verify_py311
+ ;;
+"MacOSX-arm64" )
+ install_script "Miniconda3-py311_24.5.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-MacOSX-arm64.…" "miniconda" verify_py311
+ ;;
+"MacOSX-x86_64" )
+ install_script "Miniconda3-py311_24.5.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-MacOSX-x86_64…" "miniconda" verify_py311
+ ;;
+* )
+ { echo
+ colorize 1 "ERROR"
+ echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
+ echo
+ } >&2
+ exit 1
+ ;;
+esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,25 @@
+case "$(anaconda_architecture 2>/dev/null || true)" in
+"Linux-aarch64" )
+ install_script "Miniconda3-py312_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-aarch64…" "miniconda" verify_py312
+ ;;
+"Linux-s390x" )
+ install_script "Miniconda3-py312_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-s390x.s…" "miniconda" verify_py312
+ ;;
+"Linux-x86_64" )
+ install_script "Miniconda3-py312_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-x86_64.…" "miniconda" verify_py312
+ ;;
+"MacOSX-arm64" )
+ install_script "Miniconda3-py312_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-MacOSX-arm64.…" "miniconda" verify_py312
+ ;;
+"MacOSX-x86_64" )
+ install_script "Miniconda3-py312_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-MacOSX-x86_64…" "miniconda" verify_py312
+ ;;
+* )
+ { echo
+ colorize 1 "ERROR"
+ echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
+ echo
+ } >&2
+ exit 1
+ ;;
+esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.12-24.5.0-0 new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.12-24.5.0-0
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.12-24.5.0-0 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.12-24.5.0-0 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,25 @@
+case "$(anaconda_architecture 2>/dev/null || true)" in
+"Linux-aarch64" )
+ install_script "Miniconda3-py312_24.5.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-Linux-aarch64…" "miniconda" verify_py312
+ ;;
+"Linux-s390x" )
+ install_script "Miniconda3-py312_24.5.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-Linux-s390x.s…" "miniconda" verify_py312
+ ;;
+"Linux-x86_64" )
+ install_script "Miniconda3-py312_24.5.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-Linux-x86_64.…" "miniconda" verify_py312
+ ;;
+"MacOSX-arm64" )
+ install_script "Miniconda3-py312_24.5.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-MacOSX-arm64.…" "miniconda" verify_py312
+ ;;
+"MacOSX-x86_64" )
+ install_script "Miniconda3-py312_24.5.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-MacOSX-x86_64…" "miniconda" verify_py312
+ ;;
+* )
+ { echo
+ colorize 1 "ERROR"
+ echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
+ echo
+ } >&2
+ exit 1
+ ;;
+esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,25 @@
+case "$(anaconda_architecture 2>/dev/null || true)" in
+"Linux-aarch64" )
+ install_script "Miniconda3-py39_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-aarch64.…" "miniconda" verify_py39
+ ;;
+"Linux-s390x" )
+ install_script "Miniconda3-py39_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-s390x.sh…" "miniconda" verify_py39
+ ;;
+"Linux-x86_64" )
+ install_script "Miniconda3-py39_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-x86_64.s…" "miniconda" verify_py39
+ ;;
+"MacOSX-arm64" )
+ install_script "Miniconda3-py39_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-MacOSX-arm64.s…" "miniconda" verify_py39
+ ;;
+"MacOSX-x86_64" )
+ install_script "Miniconda3-py39_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-MacOSX-x86_64.…" "miniconda" verify_py39
+ ;;
+* )
+ { echo
+ colorize 1 "ERROR"
+ echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
+ echo
+ } >&2
+ exit 1
+ ;;
+esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.9-24.5.0-0 new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.9-24.5.0-0
--- old/pyenv-2.4.2/plugins/python-build/share/python-build/miniconda3-3.9-24.5.0-0 1970-01-01 01:00:00.000000000 +0100
+++ new/pyenv-2.4.5/plugins/python-build/share/python-build/miniconda3-3.9-24.5.0-0 2024-06-30 19:55:53.000000000 +0200
@@ -0,0 +1,25 @@
+case "$(anaconda_architecture 2>/dev/null || true)" in
+"Linux-aarch64" )
+ install_script "Miniconda3-py39_24.5.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-aarch64.…" "miniconda" verify_py39
+ ;;
+"Linux-s390x" )
+ install_script "Miniconda3-py39_24.5.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-s390x.sh…" "miniconda" verify_py39
+ ;;
+"Linux-x86_64" )
+ install_script "Miniconda3-py39_24.5.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-x86_64.s…" "miniconda" verify_py39
+ ;;
+"MacOSX-arm64" )
+ install_script "Miniconda3-py39_24.5.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-MacOSX-arm64.s…" "miniconda" verify_py39
+ ;;
+"MacOSX-x86_64" )
+ install_script "Miniconda3-py39_24.5.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-MacOSX-x86_64.…" "miniconda" verify_py39
+ ;;
+* )
+ { echo
+ colorize 1 "ERROR"
+ echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
+ echo
+ } >&2
+ exit 1
+ ;;
+esac
1
0