openSUSE Commits
Threads by month
- ----- 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
May 2023
- 1 participants
- 2432 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package fzf for openSUSE:Factory checked in at 2023-05-01 18:51:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fzf (Old)
and /work/SRC/openSUSE:Factory/.fzf.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fzf"
Mon May 1 18:51:18 2023 rev:33 rq:1083792 version:0.40.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/fzf/fzf.changes 2023-04-19 17:44:34.680751628 +0200
+++ /work/SRC/openSUSE:Factory/.fzf.new.1533/fzf.changes 2023-05-01 18:51:20.661413319 +0200
@@ -1,0 +2,34 @@
+Sun Apr 30 21:45:37 UTC 2023 - Matej Cepl <mcepl(a)suse.com>
+
+- Update to version 0.40.0:
+ - Added `zero` event that is triggered when there's no match
+ ```sh
+ # Reload the candidate list when there's no match
+ echo $RANDOM | fzf --bind 'zero:reload(echo $RANDOM)+clear-query' --height 3
+ ```
+ - New actions
+ - Added `track` action which makes fzf track the current item when the
+ search result is updated. If the user manually moves the cursor, or the
+ item is not in the updated search result, tracking is automatically
+ disabled. Tracking is useful when you want to see the surrounding items
+ by deleting the query string.
+ ```sh
+ # Narrow down the list with a query, point to a command,
+ # and hit CTRL-T to see its surrounding commands.
+ export FZF_CTRL_R_OPTS="
+ --preview 'echo {}' --preview-window up:3:hidden:wrap
+ --bind 'ctrl-/:toggle-preview'
+ --bind 'ctrl-t:track+clear-query'
+ --bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort'
+ --color header:italic
+ --header 'Press CTRL-Y to copy command into clipboard'"
+ ```
+ - Added `change-header(...)`
+ - Added `transform-header(...)`
+ - Added `toggle-track` action
+ - Fixed `--track` behavior when used with `--tac`
+ - However, using `--track` with `--tac` is not recommended. The resulting
+ behavior can be very confusing.
+ - Bug fixes and improvements
+
+-------------------------------------------------------------------
Old:
----
fzf-0.39.0.tar.gz
New:
----
fzf-0.40.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fzf.spec ++++++
--- /var/tmp/diff_new_pack.XLAq6A/_old 2023-05-01 18:51:21.381417594 +0200
+++ /var/tmp/diff_new_pack.XLAq6A/_new 2023-05-01 18:51:21.385417618 +0200
@@ -18,7 +18,7 @@
%global _lto_cflags %nil
Name: fzf
-Version: 0.39.0
+Version: 0.40.0
Release: 0
Summary: A command-line fuzzy finder
License: MIT
++++++ fzf-0.39.0.tar.gz -> fzf-0.40.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/CHANGELOG.md new/fzf-0.40.0/CHANGELOG.md
--- old/fzf-0.39.0/CHANGELOG.md 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/CHANGELOG.md 2023-04-30 18:59:21.000000000 +0200
@@ -1,6 +1,38 @@
CHANGELOG
=========
+0.40.0
+------
+- Added `zero` event that is triggered when there's no match
+ ```sh
+ # Reload the candidate list when there's no match
+ echo $RANDOM | fzf --bind 'zero:reload(echo $RANDOM)+clear-query' --height 3
+ ```
+- New actions
+ - Added `track` action which makes fzf track the current item when the
+ search result is updated. If the user manually moves the cursor, or the
+ item is not in the updated search result, tracking is automatically
+ disabled. Tracking is useful when you want to see the surrounding items
+ by deleting the query string.
+ ```sh
+ # Narrow down the list with a query, point to a command,
+ # and hit CTRL-T to see its surrounding commands.
+ export FZF_CTRL_R_OPTS="
+ --preview 'echo {}' --preview-window up:3:hidden:wrap
+ --bind 'ctrl-/:toggle-preview'
+ --bind 'ctrl-t:track+clear-query'
+ --bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort'
+ --color header:italic
+ --header 'Press CTRL-Y to copy command into clipboard'"
+ ```
+ - Added `change-header(...)`
+ - Added `transform-header(...)`
+ - Added `toggle-track` action
+- Fixed `--track` behavior when used with `--tac`
+ - However, using `--track` with `--tac` is not recommended. The resulting
+ behavior can be very confusing.
+- Bug fixes and improvements
+
0.39.0
------
- Added `one` event that is triggered when there's only one match
@@ -176,7 +208,7 @@
- Added color name `preview-label` for `--preview-label` (defaults to `label`
for `--border-label`)
- Better support for (Windows) terminals where each box-drawing character
- takes 2 columns. Set `RUNEWIDTH_EASTASIAN` environment variable to `1`.
+ takes 2 columns. Set `RUNEWIDTH_EASTASIAN` environment variable to `0` or `1`.
- On Vim, the variable will be automatically set if `&ambiwidth` is `double`
- Behavior changes
- fzf will always execute the preview command if the command template
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/bin/fzf-tmux new/fzf-0.40.0/bin/fzf-tmux
--- old/fzf-0.39.0/bin/fzf-tmux 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/bin/fzf-tmux 2023-04-30 18:59:21.000000000 +0200
@@ -180,7 +180,7 @@
envs="export TERM=$TERM "
if [[ "$opt" =~ "-E" ]]; then
tmux_version=$(tmux -V | sed 's/[^0-9.]//g')
- if [[ $(bc -l <<< "$tmux_version > 3.2") = 1 ]]; then
+ if [[ $(awk '{print ($1 > 3.2)}' <<< "$tmux_version" 2> /dev/null || bc -l <<< "$tmux_version > 3.2") = 1 ]]; then
FZF_DEFAULT_OPTS="--border $FZF_DEFAULT_OPTS"
opt="-B $opt"
elif [[ $tmux_version = 3.2 ]]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/go.mod new/fzf-0.40.0/go.mod
--- old/fzf-0.39.0/go.mod 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/go.mod 2023-04-30 18:59:21.000000000 +0200
@@ -7,8 +7,8 @@
github.com/mattn/go-shellwords v1.0.12
github.com/rivo/uniseg v0.4.4
github.com/saracen/walker v0.1.3
- golang.org/x/sys v0.6.0
- golang.org/x/term v0.6.0
+ golang.org/x/sys v0.7.0
+ golang.org/x/term v0.7.0
)
require (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/go.sum new/fzf-0.40.0/go.sum
--- old/fzf-0.39.0/go.sum 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/go.sum 2023-04-30 18:59:21.000000000 +0200
@@ -32,12 +32,12 @@
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
+golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
-golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
+golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
+golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/install new/fzf-0.40.0/install
--- old/fzf-0.39.0/install 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/install 2023-04-30 18:59:21.000000000 +0200
@@ -2,7 +2,7 @@
set -u
-version=0.39.0
+version=0.40.0
auto_completion=
key_bindings=
update_config=2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/install.ps1 new/fzf-0.40.0/install.ps1
--- old/fzf-0.39.0/install.ps1 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/install.ps1 2023-04-30 18:59:21.000000000 +0200
@@ -1,4 +1,4 @@
-$version="0.39.0"
+$version="0.40.0"
$fzf_base=Split-Path -Parent $MyInvocation.MyCommand.Definition
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/main.go new/fzf-0.40.0/main.go
--- old/fzf-0.39.0/main.go 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/main.go 2023-04-30 18:59:21.000000000 +0200
@@ -5,7 +5,7 @@
"github.com/junegunn/fzf/src/protector"
)
-var version string = "0.39"
+var version string = "0.40"
var revision string = "devel"
func main() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/man/man1/fzf-tmux.1 new/fzf-0.40.0/man/man1/fzf-tmux.1
--- old/fzf-0.39.0/man/man1/fzf-tmux.1 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/man/man1/fzf-tmux.1 2023-04-30 18:59:21.000000000 +0200
@@ -21,7 +21,7 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
..
-.TH fzf-tmux 1 "Apr 2023" "fzf 0.39.0" "fzf-tmux - open fzf in tmux split pane"
+.TH fzf-tmux 1 "May 2023" "fzf 0.40.0" "fzf-tmux - open fzf in tmux split pane"
.SH NAME
fzf-tmux - open fzf in tmux split pane
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/man/man1/fzf.1 new/fzf-0.40.0/man/man1/fzf.1
--- old/fzf-0.39.0/man/man1/fzf.1 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/man/man1/fzf.1 2023-04-30 18:59:21.000000000 +0200
@@ -21,7 +21,7 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
..
-.TH fzf 1 "Apr 2023" "fzf 0.39.0" "fzf - a command-line fuzzy finder"
+.TH fzf 1 "May 2023" "fzf 0.40.0" "fzf - a command-line fuzzy finder"
.SH NAME
fzf - a command-line fuzzy finder
@@ -94,7 +94,10 @@
.TP
.B "--track"
Make fzf track the current selection when the result list is updated.
-This can be useful when browsing logs using fzf with sorting disabled.
+This can be useful when browsing logs using fzf with sorting disabled. It is
+not recommended to use this option with \fB--tac\fR as the resulting behavior
+can be confusing. Also, consider using \fBtrack\fR action instead of this
+option.
.RS
e.g.
@@ -241,8 +244,9 @@
.br
If you use a terminal emulator where each box-drawing character takes
-2 columns, try setting \fBRUNEWIDTH_EASTASIAN\fR to \fB1\fR. If the border is
-still not properly rendered, set \fB--no-unicode\fR.
+2 columns, try setting \fBRUNEWIDTH_EASTASIAN\fR environment variable to
+\fB0\fR or \fB1\fR. If the border is still not properly rendered, set
+\fB--no-unicode\fR.
.TP
.BI "--border-label" [=LABEL]
@@ -1004,6 +1008,17 @@
\fB# Automatically select the only match
seq 10 | fzf --bind one:accept\fR
.RE
+\fIzero\fR
+.RS
+Triggered when there's no match. \fBzero:abort\fR binding is comparable to
+\fB--exit-0\fR option, but the difference is that \fB--exit-0\fR is only
+effective before the interactive finder starts but \fBzero\fR event is
+triggered by the interactive finder.
+
+e.g.
+ \fB# Reload the candidate list when there's no match
+ echo $RANDOM | fzf --bind 'zero:reload(echo $RANDOM)+clear-query' --height 3\fR
+.RE
\fIbackward-eof\fR
.RS
@@ -1030,6 +1045,7 @@
\fBbeginning-of-line\fR \fIctrl-a home\fR
\fBcancel\fR (clear query string if not empty, abort fzf otherwise)
\fBchange-border-label(...)\fR (change \fB--border-label\fR to the given string)
+ \fBchange-header(...)\fR (change header to the given string; doesn't affect \fB--header-lines\fR)
\fBchange-preview(...)\fR (change \fB--preview\fR option)
\fBchange-preview-label(...)\fR (change \fB--preview-label\fR to the given string)
\fBchange-preview-window(...)\fR (change \fB--preview-window\fR option; rotate through the multiple option sets separated by '|')
@@ -1097,8 +1113,11 @@
\fBtoggle-preview-wrap\fR
\fBtoggle-search\fR (toggle search functionality)
\fBtoggle-sort\fR
+ \fBtoggle-track\fR
\fBtoggle+up\fR \fIbtab (shift-tab)\fR
+ \fBtrack\fR (track the current item; automatically disabled if focus changes)
\fBtransform-border-label(...)\fR (transform border label using an external command)
+ \fBtransform-header(...)\fR (transform header using an external command)
\fBtransform-preview-label(...)\fR (transform preview label using an external command)
\fBtransform-prompt(...)\fR (transform prompt string using an external command)
\fBtransform-query(...)\fR (transform query string using an external command)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/plugin/fzf.vim new/fzf-0.40.0/plugin/fzf.vim
--- old/fzf-0.39.0/plugin/fzf.vim 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/plugin/fzf.vim 2023-04-30 18:59:21.000000000 +0200
@@ -164,7 +164,7 @@
if has_key(s:versions, a:bin)
return s:versions[a:bin]
end
- let command = (&shell =~ 'powershell' ? '&' : '') . s:fzf_call('shellescape', a:bin) . ' --version --no-height'
+ let command = (&shell =~ 'powershell\|pwsh' ? '&' : '') . s:fzf_call('shellescape', a:bin) . ' --version --no-height'
let output = systemlist(command)
if v:shell_error || empty(output)
return ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/src/core.go new/fzf-0.40.0/src/core.go
--- old/fzf-0.39.0/src/core.go 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/src/core.go 2023-04-30 18:59:21.000000000 +0200
@@ -299,10 +299,12 @@
case EvtSearchNew:
var command *string
+ var changed bool
switch val := value.(type) {
case searchRequest:
sort = val.sort
command = val.command
+ changed = val.changed
if command != nil {
useSnapshot = val.sync
}
@@ -314,10 +316,17 @@
} else {
restart(*command)
}
+ }
+ if !changed {
break
}
if !useSnapshot {
- snapshot, _ = chunkList.Snapshot()
+ newSnapshot, _ := chunkList.Snapshot()
+ // We want to avoid showing empty list when reload is triggered
+ // and the query string is changed at the same time i.e. command != nil && changed
+ if command == nil || len(newSnapshot) > 0 {
+ snapshot = newSnapshot
+ }
}
reset := !useSnapshot && clearCache()
matcher.Reset(snapshot, input(reset), true, !reading, sort, reset)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/src/merger.go new/fzf-0.40.0/src/merger.go
--- old/fzf-0.39.0/src/merger.go 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/src/merger.go 2023-04-30 18:59:21.000000000 +0200
@@ -60,17 +60,30 @@
return mg.count
}
+func (mg *Merger) First() Result {
+ if mg.tac && !mg.sorted {
+ return mg.Get(mg.count - 1)
+ }
+ return mg.Get(0)
+}
+
// FindIndex returns the index of the item with the given item index
func (mg *Merger) FindIndex(itemIndex int32) int {
+ index := -1
if mg.pass {
- return int(itemIndex)
- }
- for i := 0; i < mg.count; i++ {
- if mg.Get(i).item.Index() == itemIndex {
- return i
+ index = int(itemIndex)
+ if mg.tac {
+ index = mg.count - index - 1
+ }
+ } else {
+ for i := 0; i < mg.count; i++ {
+ if mg.Get(i).item.Index() == itemIndex {
+ index = i
+ break
+ }
}
}
- return -1
+ return index
}
// Get returns the pointer to the Result object indexed by the given integer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/src/options.go new/fzf-0.40.0/src/options.go
--- old/fzf-0.39.0/src/options.go 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/src/options.go 2023-04-30 18:59:21.000000000 +0200
@@ -165,6 +165,14 @@
return [4]sizeSpec{}
}
+type trackOption int
+
+const (
+ trackDisabled trackOption = iota
+ trackEnabled
+ trackCurrent
+)
+
type windowPosition int
const (
@@ -267,7 +275,7 @@
WithNth []Range
Delimiter Delimiter
Sort int
- Track bool
+ Track trackOption
Tac bool
Criteria []criterion
Multi int
@@ -340,7 +348,7 @@
WithNth: make([]Range, 0),
Delimiter: Delimiter{},
Sort: 1000,
- Track: false,
+ Track: trackDisabled,
Tac: false,
Criteria: []criterion{byScore, byLength},
Multi: 0,
@@ -624,6 +632,8 @@
add(tui.Focus)
case "one":
add(tui.One)
+ case "zero":
+ add(tui.Zero)
case "alt-enter", "alt-return":
chords[tui.CtrlAltKey('m')] = key
case "alt-space":
@@ -927,7 +937,7 @@
func init() {
executeRegexp = regexp.MustCompile(
- `(?si)[:+](become|execute(?:-multi|-silent)?|reload(?:-sync)?|preview|(?:change|transform)-(?:query|prompt|border-label|preview-label)|change-preview-window|change-preview|(?:re|un)bind|pos|put)`)
+ `(?si)[:+](become|execute(?:-multi|-silent)?|reload(?:-sync)?|preview|(?:change|transform)-(?:header|query|prompt|border-label|preview-label)|change-preview-window|change-preview|(?:re|un)bind|pos|put)`)
splitRegexp = regexp.MustCompile("[,:]+")
actionNameRegexp = regexp.MustCompile("(?i)^[a-z-]+")
}
@@ -1083,6 +1093,10 @@
appendAction(actToggleAll)
case "toggle-search":
appendAction(actToggleSearch)
+ case "toggle-track":
+ appendAction(actToggleTrack)
+ case "track":
+ appendAction(actTrack)
case "select":
appendAction(actSelect)
case "select-all":
@@ -1247,6 +1261,8 @@
return actPreview
case "change-border-label":
return actChangeBorderLabel
+ case "change-header":
+ return actChangeHeader
case "change-preview-label":
return actChangePreviewLabel
case "change-preview-window":
@@ -1271,6 +1287,8 @@
return actTransformBorderLabel
case "transform-preview-label":
return actTransformPreviewLabel
+ case "transform-header":
+ return actTransformHeader
case "transform-prompt":
return actTransformPrompt
case "transform-query":
@@ -1568,9 +1586,9 @@
case "+s", "--no-sort":
opts.Sort = 0
case "--track":
- opts.Track = true
+ opts.Track = trackEnabled
case "--no-track":
- opts.Track = false
+ opts.Track = trackDisabled
case "--tac":
opts.Tac = true
case "--no-tac":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/src/terminal.go new/fzf-0.40.0/src/terminal.go
--- old/fzf-0.39.0/src/terminal.go 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/src/terminal.go 2023-04-30 18:59:21.000000000 +0200
@@ -3,6 +3,7 @@
import (
"bufio"
"fmt"
+ "io"
"io/ioutil"
"math"
"os"
@@ -183,7 +184,7 @@
multi int
sort bool
toggleSort bool
- track bool
+ track trackOption
delimiter Delimiter
expect map[tui.Event]string
keymap map[tui.Event][]*action
@@ -310,6 +311,7 @@
actBackwardWord
actCancel
actChangeBorderLabel
+ actChangeHeader
actChangePreviewLabel
actChangePrompt
actChangeQuery
@@ -337,6 +339,8 @@
actToggleUp
actToggleIn
actToggleOut
+ actToggleTrack
+ actTrack
actDown
actUp
actPageUp
@@ -355,6 +359,7 @@
actTogglePreview
actTogglePreviewWrap
actTransformBorderLabel
+ actTransformHeader
actTransformPreviewLabel
actTransformPrompt
actTransformQuery
@@ -403,6 +408,7 @@
sort bool
sync bool
command *string
+ changed bool
}
type previewRequest struct {
@@ -623,7 +629,7 @@
cycle: opts.Cycle,
headerFirst: opts.HeaderFirst,
headerLines: opts.HeaderLines,
- header: header,
+ header: []string{},
header0: header,
ellipsis: opts.Ellipsis,
ansi: opts.Ansi,
@@ -882,10 +888,21 @@
return reversed
}
+func (t *Terminal) changeHeader(header string) bool {
+ lines := strings.Split(strings.TrimSuffix(header, "\n"), "\n")
+ switch t.layout {
+ case layoutDefault, layoutReverseList:
+ lines = reverseStringArray(lines)
+ }
+ needFullRedraw := len(t.header0) != len(lines)
+ t.header0 = lines
+ return needFullRedraw
+}
+
// UpdateHeader updates the header
func (t *Terminal) UpdateHeader(header []string) {
t.mutex.Lock()
- t.header = append(append([]string{}, t.header0...), header...)
+ t.header = header
t.mutex.Unlock()
t.reqBox.Set(reqHeader, nil)
}
@@ -907,8 +924,12 @@
func (t *Terminal) UpdateList(merger *Merger, reset bool) {
t.mutex.Lock()
var prevIndex int32 = -1
- if !reset && t.track && t.merger.Length() > 0 {
- prevIndex = t.merger.Get(t.cy).item.Index()
+ if !reset && t.track != trackDisabled {
+ if t.merger.Length() > 0 {
+ prevIndex = t.merger.Get(t.cy).item.Index()
+ } else if merger.Length() > 0 {
+ prevIndex = merger.First().item.Index()
+ }
}
t.progress = 100
t.merger = merger
@@ -916,7 +937,7 @@
t.selected = make(map[int32]selectedItem)
t.version++
}
- if t.hasLoadActions && t.triggerLoad {
+ if t.triggerLoad {
t.triggerLoad = false
t.eventChan <- tui.Load.AsEvent()
}
@@ -927,15 +948,27 @@
if i >= 0 {
t.cy = i
t.offset = t.cy - pos
+ } else if t.track == trackCurrent {
+ t.track = trackDisabled
+ t.cy = pos
+ t.offset = 0
} else if t.cy > count {
// Try to keep the vertical position when the list shrinks
t.cy = count - util.Min(count, t.maxItems()) + pos
}
}
- if !t.reading && t.merger.Length() == 1 {
- one := tui.One.AsEvent()
- if _, prs := t.keymap[one]; prs {
- t.eventChan <- one
+ if !t.reading {
+ switch t.merger.Length() {
+ case 0:
+ zero := tui.Zero.AsEvent()
+ if _, prs := t.keymap[zero]; prs {
+ t.eventChan <- zero
+ }
+ case 1:
+ one := tui.One.AsEvent()
+ if _, prs := t.keymap[one]; prs {
+ t.eventChan <- one
+ }
}
}
t.mutex.Unlock()
@@ -1340,7 +1373,7 @@
case layoutDefault:
y = h - y - 1
case layoutReverseList:
- n := 2 + len(t.header)
+ n := 2 + len(t.header0) + len(t.header)
if t.noInfoLine() {
n--
}
@@ -1460,6 +1493,9 @@
output += " -S"
}
}
+ if t.track != trackDisabled {
+ output += " +T"
+ }
if t.multi > 0 {
if t.multi == maxMulti {
output += fmt.Sprintf(" (%d)", len(t.selected))
@@ -1485,7 +1521,7 @@
}
func (t *Terminal) printHeader() {
- if len(t.header) == 0 {
+ if len(t.header0)+len(t.header) == 0 {
return
}
max := t.window.Height()
@@ -1496,7 +1532,7 @@
}
}
var state *ansiState
- for idx, lineStr := range t.header {
+ for idx, lineStr := range append(append([]string{}, t.header0...), t.header...) {
line := idx
if !t.headerFirst {
line++
@@ -1530,7 +1566,7 @@
if t.layout == layoutDefault {
i = maxy - 1 - j
}
- line := i + 2 + len(t.header)
+ line := i + 2 + len(t.header0) + len(t.header)
if t.noInfoLine() {
line--
}
@@ -1836,7 +1872,7 @@
if ansi != nil {
ansi.lbg = -1
}
- line = strings.TrimSuffix(line, "\n")
+ line = strings.TrimRight(line, "\r\n")
if lineNo >= height || t.pwindow.Y() == height-1 && t.pwindow.X() > 0 {
t.previewed.filled = true
t.previewer.scrollable = true
@@ -2268,12 +2304,12 @@
t.printAll()
}
-func (t *Terminal) executeCommand(template string, forcePlus bool, background bool, captureFirstLine bool) string {
+func (t *Terminal) executeCommand(template string, forcePlus bool, background bool, capture bool, firstLineOnly bool) string {
line := ""
valid, list := t.buildPlusList(template, forcePlus)
- // captureFirstLine is used for transform-{prompt,query} and we don't want to
+ // 'capture' is used for transform-* and we don't want to
// return an empty string in those cases
- if !valid && !captureFirstLine {
+ if !valid && !capture {
return line
}
command := t.replacePlaceholder(template, forcePlus, string(t.input), list)
@@ -2290,12 +2326,17 @@
t.redraw()
t.refresh()
} else {
- if captureFirstLine {
+ if capture {
out, _ := cmd.StdoutPipe()
reader := bufio.NewReader(out)
cmd.Start()
- line, _ = reader.ReadString('\n')
- line = strings.TrimRight(line, "\r\n")
+ if firstLineOnly {
+ line, _ = reader.ReadString('\n')
+ line = strings.TrimRight(line, "\r\n")
+ } else {
+ bytes, _ := io.ReadAll(reader)
+ line = string(bytes)
+ }
cmd.Wait()
} else {
cmd.Run()
@@ -2706,6 +2747,10 @@
currentIndex = currentItem.Index()
}
focusChanged := focusedIndex != currentIndex
+ if focusChanged && t.track == trackCurrent {
+ t.track = trackDisabled
+ t.printInfo()
+ }
if onFocus != nil && focusChanged {
t.serverChan <- onFocus
}
@@ -2818,7 +2863,7 @@
}
select {
case event = <-t.eventChan:
- needBarrier = event != tui.Load.AsEvent()
+ needBarrier = !event.Is(tui.Load, tui.One, tui.Zero)
case actions = <-t.serverChan:
event = tui.Invalid.AsEvent()
needBarrier = false
@@ -2913,9 +2958,9 @@
}
}
case actExecute, actExecuteSilent:
- t.executeCommand(a.a, false, a.t == actExecuteSilent, false)
+ t.executeCommand(a.a, false, a.t == actExecuteSilent, false, false)
case actExecuteMulti:
- t.executeCommand(a.a, true, false, false)
+ t.executeCommand(a.a, true, false, false, false)
case actInvalid:
t.mutex.Unlock()
return false
@@ -2949,11 +2994,11 @@
req(reqPreviewRefresh)
}
case actTransformPrompt:
- prompt := t.executeCommand(a.a, false, true, true)
+ prompt := t.executeCommand(a.a, false, true, true, true)
t.prompt, t.promptLen = t.parsePrompt(prompt)
req(reqPrompt)
case actTransformQuery:
- query := t.executeCommand(a.a, false, true, true)
+ query := t.executeCommand(a.a, false, true, true, true)
t.input = []rune(query)
t.cx = len(t.input)
case actToggleSort:
@@ -3002,6 +3047,19 @@
case actChangeQuery:
t.input = []rune(a.a)
t.cx = len(t.input)
+ case actTransformHeader:
+ header := t.executeCommand(a.a, false, true, true, false)
+ if t.changeHeader(header) {
+ req(reqFullRedraw)
+ } else {
+ req(reqHeader)
+ }
+ case actChangeHeader:
+ if t.changeHeader(a.a) {
+ req(reqFullRedraw)
+ } else {
+ req(reqHeader)
+ }
case actChangeBorderLabel:
if t.border != nil {
t.borderLabel, t.borderLabelLen = t.ansiLabelPrinter(a.a, &tui.ColBorderLabel, false)
@@ -3014,13 +3072,13 @@
}
case actTransformBorderLabel:
if t.border != nil {
- label := t.executeCommand(a.a, false, true, true)
+ label := t.executeCommand(a.a, false, true, true, true)
t.borderLabel, t.borderLabelLen = t.ansiLabelPrinter(label, &tui.ColBorderLabel, false)
req(reqRedrawBorderLabel)
}
case actTransformPreviewLabel:
if t.pborder != nil {
- label := t.executeCommand(a.a, false, true, true)
+ label := t.executeCommand(a.a, false, true, true, true)
t.previewLabel, t.previewLabelLen = t.ansiLabelPrinter(label, &tui.ColPreviewLabel, false)
req(reqRedrawPreviewLabel)
}
@@ -3270,6 +3328,19 @@
t.paused = !t.paused
changed = !t.paused
req(reqPrompt)
+ case actToggleTrack:
+ switch t.track {
+ case trackEnabled:
+ t.track = trackDisabled
+ case trackDisabled:
+ t.track = trackEnabled
+ }
+ req(reqInfo)
+ case actTrack:
+ if t.track == trackDisabled {
+ t.track = trackCurrent
+ }
+ req(reqInfo)
case actEnableSearch:
t.paused = false
changed = true
@@ -3347,7 +3418,7 @@
// Translate coordinates
mx -= t.window.Left()
my -= t.window.Top()
- min := 2 + len(t.header)
+ min := 2 + len(t.header0) + len(t.header)
if t.noInfoLine() {
min--
}
@@ -3552,7 +3623,7 @@
t.mutex.Unlock() // Must be unlocked before touching reqBox
if changed || newCommand != nil {
- t.eventBox.Set(EvtSearchNew, searchRequest{sort: t.sort, sync: reloadSync, command: newCommand})
+ t.eventBox.Set(EvtSearchNew, searchRequest{sort: t.sort, sync: reloadSync, command: newCommand, changed: changed})
}
for _, event := range events {
t.reqBox.Set(event, nil)
@@ -3616,7 +3687,7 @@
}
func (t *Terminal) maxItems() int {
- max := t.window.Height() - 2 - len(t.header)
+ max := t.window.Height() - 2 - len(t.header0) - len(t.header)
if t.noInfoLine() {
max++
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/src/tui/tui.go new/fzf-0.40.0/src/tui/tui.go
--- old/fzf-0.39.0/src/tui/tui.go 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/src/tui/tui.go 2023-04-30 18:59:21.000000000 +0200
@@ -94,6 +94,7 @@
Load
Focus
One
+ Zero
AltBS
@@ -283,6 +284,15 @@
MouseEvent *MouseEvent
}
+func (e Event) Is(types ...EventType) bool {
+ for _, t := range types {
+ if e.Type == t {
+ return true
+ }
+ }
+ return false
+}
+
type MouseEvent struct {
Y int
X int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.39.0/test/test_go.rb new/fzf-0.40.0/test/test_go.rb
--- old/fzf-0.39.0/test/test_go.rb 2023-04-02 16:33:37.000000000 +0200
+++ new/fzf-0.40.0/test/test_go.rb 2023-04-30 18:59:21.000000000 +0200
@@ -1865,6 +1865,67 @@
tmux.until { |lines| assert_equal '>', lines.last }
end
+ def test_change_and_transform_header
+ [
+ 'space:change-header:$(seq 4)',
+ 'space:transform-header:seq 4'
+ ].each_with_index do |binding, i|
+ tmux.send_keys %(seq 3 | #{FZF} --header-lines 2 --header bar --bind "#{binding}"), :Enter
+ expected = <<~OUTPUT
+ > 3
+ 2
+ 1
+ bar
+ 1/1
+ >
+ OUTPUT
+ tmux.until { assert_block(expected, _1) }
+ tmux.send_keys :Space
+ expected = <<~OUTPUT
+ > 3
+ 2
+ 1
+ 1
+ 2
+ 3
+ 4
+ 1/1
+ >
+ OUTPUT
+ tmux.until { assert_block(expected, _1) }
+ next unless i.zero?
+
+ teardown
+ setup
+ end
+ end
+
+ def test_change_header
+ tmux.send_keys %(seq 3 | #{FZF} --header-lines 2 --header bar --bind "space:change-header:$(seq 4)"), :Enter
+ expected = <<~OUTPUT
+ > 3
+ 2
+ 1
+ bar
+ 1/1
+ >
+ OUTPUT
+ tmux.until { assert_block(expected, _1) }
+ tmux.send_keys :Space
+ expected = <<~OUTPUT
+ > 3
+ 2
+ 1
+ 1
+ 2
+ 3
+ 4
+ 1/1
+ >
+ OUTPUT
+ tmux.until { assert_block(expected, _1) }
+ end
+
def test_change_query
tmux.send_keys %(: | #{FZF} --query foo --bind space:change-query:foobar), :Enter
tmux.until { |lines| assert_equal 0, lines.item_count }
@@ -2681,7 +2742,7 @@
end
def test_track
- tmux.send_keys "seq 1000 | #{FZF} --query 555 --track", :Enter
+ tmux.send_keys "seq 1000 | #{FZF} --query 555 --track --bind t:toggle-track", :Enter
tmux.until do |lines|
assert_equal 1, lines.match_count
assert_includes lines, '> 555'
@@ -2701,20 +2762,97 @@
assert_equal 1000, lines.match_count
assert_equal '> 555', lines[index]
end
+ tmux.send_keys '555'
+ tmux.until do |lines|
+ assert_equal 1, lines.match_count
+ assert_includes lines, '> 555'
+ assert_includes lines[-2], '+T'
+ end
+ tmux.send_keys 't'
+ tmux.until do |lines|
+ refute_includes lines[-2], '+T'
+ end
+ tmux.send_keys :BSpace
+ tmux.until do |lines|
+ assert_equal 28, lines.match_count
+ assert_includes lines, '> 55'
+ end
+ tmux.send_keys :BSpace
+ tmux.until do |lines|
+ assert_equal 271, lines.match_count
+ assert_includes lines, '> 5'
+ end
+ tmux.send_keys 't'
+ tmux.until do |lines|
+ assert_includes lines[-2], '+T'
+ end
+ tmux.send_keys :BSpace
+ tmux.until do |lines|
+ assert_equal 1000, lines.match_count
+ assert_includes lines, '> 5'
+ end
+ end
+
+ def test_track_action
+ tmux.send_keys "seq 1000 | #{FZF} --query 555 --bind t:track", :Enter
+ tmux.until do |lines|
+ assert_equal 1, lines.match_count
+ assert_includes lines, '> 555'
+ end
+ tmux.send_keys :BSpace
+ tmux.until do |lines|
+ assert_equal 28, lines.match_count
+ assert_includes lines, '> 55'
+ end
+ tmux.send_keys :t
+ tmux.until do |lines|
+ assert_includes lines[-2], '+T'
+ end
+ tmux.send_keys :BSpace
+ tmux.until do |lines|
+ assert_equal 271, lines.match_count
+ assert_includes lines, '> 55'
+ end
+
+ # Automatically disabled when the tracking item is no longer visible
+ tmux.send_keys '4'
+ tmux.until do |lines|
+ assert_equal 28, lines.match_count
+ refute_includes lines[-2], '+T'
+ end
+ tmux.send_keys :BSpace
+ tmux.until do |lines|
+ assert_equal 271, lines.match_count
+ assert_includes lines, '> 5'
+ end
+ tmux.send_keys :t
+ tmux.until do |lines|
+ assert_includes lines[-2], '+T'
+ end
+ tmux.send_keys :Up
+ tmux.until do |lines|
+ refute_includes lines[-2], '+T'
+ end
end
- def test_one
- tmux.send_keys "seq 10 | #{FZF} --bind 'one:preview:echo {} is the only match'", :Enter
+ def test_one_and_zero
+ tmux.send_keys "seq 10 | #{FZF} --bind 'zero:preview(echo no match),one:preview(echo {} is the only match)'", :Enter
tmux.send_keys '1'
tmux.until do |lines|
assert_equal 2, lines.match_count
refute(lines.any? { _1.include?('only match') })
+ refute(lines.any? { _1.include?('no match') })
end
tmux.send_keys '0'
tmux.until do |lines|
assert_equal 1, lines.match_count
assert(lines.any? { _1.include?('only match') })
end
+ tmux.send_keys '0'
+ tmux.until do |lines|
+ assert_equal 0, lines.match_count
+ assert(lines.any? { _1.include?('no match') })
+ end
end
def test_height_range_with_exit_0
@@ -2723,6 +2861,11 @@
tmux.send_keys :c
tmux.until { |lines| assert_equal 0, lines.match_count }
end
+
+ def test_reload_and_change
+ tmux.send_keys "(echo foo; echo bar) | #{FZF} --bind 'load:reload-sync(sleep 60)+change-query(bar)'", :Enter
+ tmux.until { |lines| assert_equal 1, lines.match_count }
+ end
end
module TestShell
++++++ vendor.tar.zst ++++++
Binary files /var/tmp/diff_new_pack.XLAq6A/_old and /var/tmp/diff_new_pack.XLAq6A/_new differ
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package haguichi for openSUSE:Factory checked in at 2023-05-01 18:51:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/haguichi (Old)
and /work/SRC/openSUSE:Factory/.haguichi.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "haguichi"
Mon May 1 18:51:17 2023 rev:7 rq:1083786 version:1.4.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/haguichi/haguichi.changes 2021-12-08 22:10:56.234918362 +0100
+++ /work/SRC/openSUSE:Factory/.haguichi.new.1533/haguichi.changes 2023-05-01 18:51:18.673401519 +0200
@@ -1,0 +2,14 @@
+Sun Apr 30 18:47:43 UTC 2023 - Stephen Brandt <stephen(a)stephenbrandt.com>
+
+- update to 1.4.6
+ * Implemented separate thread and mode for configuring.
+ * Improved display of long text input in commands editor.
+ * Now using actual Gtk.SearchBar widget for search bar.
+ * Now using pill style action buttons in message box.
+ * Added support for kgx (GNOME Console).
+ * Dropped support for pantheon-terminal and pantheon-files.
+ * Removed stylesheet for Mint themes.
+ * Removed Control+F1 as accelerator to open keyboard shortcuts window.
+ * Updated Brazilian Portuguese, French, Indonesian, Italian, Japanese, Lithuanian, Polish, Portuguese, Russian, Spanish, Swedish and Ukrainian translations.
+
+-------------------------------------------------------------------
Old:
----
haguichi-1.4.5.tar.xz
New:
----
haguichi-1.4.6.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ haguichi.spec ++++++
--- /var/tmp/diff_new_pack.fr4vWP/_old 2023-05-01 18:51:19.633407218 +0200
+++ /var/tmp/diff_new_pack.fr4vWP/_new 2023-05-01 18:51:19.641407265 +0200
@@ -1,7 +1,7 @@
#
# spec file for package haguichi
#
-# Copyright (c) 2013-2021 Stephen Brandt <stephen(a)stephenbrandt.com>
+# Copyright (c) 2013-2023 Stephen Brandt <stephen(a)stephenbrandt.com>
# Copyright (c) 2018 Alexei Podvalsky <avvissu(a)yandex.by>
# Copyright (c) 2010-2012 Adam Mizerski <adam(a)mizerski.pl>
#
@@ -20,7 +20,7 @@
%define rdnn com.github.ztefn.%{name}
Name: haguichi
-Version: 1.4.5
+Version: 1.4.6
Release: 0
Summary: Hamachi Network Manager
License: GPL-3.0-or-later
++++++ haguichi-1.4.5.tar.xz -> haguichi-1.4.6.tar.xz ++++++
++++ 22953 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rssguard for openSUSE:Factory checked in at 2023-05-01 18:51:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rssguard (Old)
and /work/SRC/openSUSE:Factory/.rssguard.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rssguard"
Mon May 1 18:51:15 2023 rev:42 rq:1083780 version:4.3.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/rssguard/rssguard.changes 2023-04-10 20:16:53.576927336 +0200
+++ /work/SRC/openSUSE:Factory/.rssguard.new.1533/rssguard.changes 2023-05-01 18:51:17.333393565 +0200
@@ -1,0 +2,34 @@
+Wed Apr 26 20:17:04 UTC 2023 - Jaime Marqu��nez Ferr��ndiz <jaime.marquinez.ferrandiz(a)fastmail.net>
+
+- Update to version 4.3.4
+ + Added:
+ - Persistent article/item viewer. By default it is on. If no article is
+ selected but feed/category is, then miscellaneous information about
+ selected feed list item is displayed. (gh#martinrotter/rssguard#424)
+ - Reworked logic of determining which article states
+ (read/unread/starred/unstarred) have changed when synchronizing states to
+ remote feed servers. This concerns all synchronized plugins like Gmail,
+ Greader, Feedly, etc. and show in theory lead to much better performance
+ when you mark many articles as read or unread.
+ - Couple of extra QoL enhancements for Gmail like proper encoding of
+ attachment filenames, turned off displaying of "enclosures" as these are
+ displayed in other way, etc.
+ + Fixed:
+ - Deadlock when fetching feeds in some corner situations is now resolved.
+ (gh#martinrotter/rssguard#910)
+ - URLs of articles are now sanitized from leading and trailing spaces.
+ (gh#martinrotter/rssguard#914)
+ - ATOM feeds were mistakenly changed to RSS feeds during OPML import.
+ (gh#martinrotter/rssguard#913)
+ - Now compiles with GCC 13. (gh#martinrotter/rssguard#911)
+ - Freezing of GUI when fetching feeds should now be gone even on newer Qt
+ library.
+ - Correct account-wide proxy is used when importing feeds.
+ - Article duplicity checks are now much more useful and actually working in
+ article filters.
+ - Translations synced.
+ - All buttons from article toolbar now correctly follow tool button style.
+- Add rssguard-4.3.4-fix-build.patch
+- Drop rssguard-4.3.3-fix-build.patch
+
+-------------------------------------------------------------------
Old:
----
rssguard-4.3.3-fix-build.patch
rssguard-4.3.3.tar.gz
New:
----
rssguard-4.3.4-fix-build.patch
rssguard-4.3.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rssguard.spec ++++++
--- /var/tmp/diff_new_pack.YXvCFa/_old 2023-05-01 18:51:18.389399833 +0200
+++ /var/tmp/diff_new_pack.YXvCFa/_new 2023-05-01 18:51:18.397399880 +0200
@@ -16,9 +16,9 @@
#
-%define libver 4_3_3
+%define libver 4_3_4
Name: rssguard
-Version: 4.3.3
+Version: 4.3.4
Release: 0
Summary: RSS/ATOM/RDF feed reader
License: AGPL-3.0-or-later AND GPL-3.0-only
@@ -27,8 +27,8 @@
Source1: %{name}.changes
# PATCH-FIX-OPENSUSE rssguard-4.2.2-add_library_version.patch aloisio(a)gmx.com -- add version to shared library
Patch0: rssguard-4.2.2-add_library_version.patch
-# PATCH-FIX-UPSTREAM rssguard-4.3.3-fix-build.patch adam(a)mizerski.pl -- https://github.com/martinrotter/rssguard/issues/911
-Patch1: rssguard-4.3.3-fix-build.patch
+# PATCH-FIX-UPSTREAM rssguard-4.3.4-fix-build.patch jaime.marquinez.ferrandiz(a)fastmail.net -- https://github.com/martinrotter/rssguard/pull/928
+Patch1: rssguard-4.3.4-fix-build.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
++++++ rssguard-4.3.3-fix-build.patch -> rssguard-4.3.4-fix-build.patch ++++++
--- /work/SRC/openSUSE:Factory/rssguard/rssguard-4.3.3-fix-build.patch 2023-04-10 20:16:53.308925769 +0200
+++ /work/SRC/openSUSE:Factory/.rssguard.new.1533/rssguard-4.3.4-fix-build.patch 2023-05-01 18:51:17.065391973 +0200
@@ -1,13 +1,29 @@
-Index: rssguard-4.3.3/src/librssguard/3rd-party/mimesis/quoted-printable.cpp
-===================================================================
---- rssguard-4.3.3.orig/src/librssguard/3rd-party/mimesis/quoted-printable.cpp
-+++ rssguard-4.3.3/src/librssguard/3rd-party/mimesis/quoted-printable.cpp
-@@ -19,6 +19,8 @@
-
- #include "quoted-printable.hpp"
-
-+#include <cstdint>
-+
- using namespace std;
-
- string quoted_printable_decode(string_view in) {
+From 0fe76799f4bed92aea4fe38ac29e52879af63266 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jaime=20Marqui=CC=81nez=20Ferra=CC=81ndiz?=
+ <jaime.marquinez.ferrandiz(a)fastmail.net>
+Date: Wed, 26 Apr 2023 21:54:25 +0200
+Subject: [PATCH] Fix build error with the -Werror=return-type flag
+
+---
+ src/librssguard/core/messageobject.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/librssguard/core/messageobject.cpp b/src/librssguard/core/messageobject.cpp
+index fa7ee17f4..3f18926ef 100644
+--- a/src/librssguard/core/messageobject.cpp
++++ b/src/librssguard/core/messageobject.cpp
+@@ -178,9 +178,11 @@ QString MessageObject::createLabelId(const QString& title, const QString& hex_co
+
+ if (hex_color.isEmpty()) {
+ // Generate color.
++ return nullptr;
+ }
+
+ // TODO: CONTINUE
++ return nullptr;
+ }
+
+ void MessageObject::addEnclosure(const QString& url, const QString& mime_type) const {
+--
+2.40.0
+
++++++ rssguard-4.3.3.tar.gz -> rssguard-4.3.4.tar.gz ++++++
/work/SRC/openSUSE:Factory/rssguard/rssguard-4.3.3.tar.gz /work/SRC/openSUSE:Factory/.rssguard.new.1533/rssguard-4.3.4.tar.gz differ: char 13, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package qtodotxt for openSUSE:Factory checked in at 2023-05-01 18:51:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qtodotxt (Old)
and /work/SRC/openSUSE:Factory/.qtodotxt.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qtodotxt"
Mon May 1 18:51:11 2023 rev:6 rq:1083766 version:1.9.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/qtodotxt/qtodotxt.changes 2017-06-26 15:55:52.237140477 +0200
+++ /work/SRC/openSUSE:Factory/.qtodotxt.new.1533/qtodotxt.changes 2023-05-01 18:51:11.625359681 +0200
@@ -1,0 +2,5 @@
+Sun Apr 30 13:54:50 UTC 2023 - Bernd Singer <singer(a)nefkom.net>
+
+- Fix a crash with Python >= 3.10.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qtodotxt.spec ++++++
--- /var/tmp/diff_new_pack.ImlHP8/_old 2023-05-01 18:51:12.633365665 +0200
+++ /var/tmp/diff_new_pack.ImlHP8/_new 2023-05-01 18:51:12.637365688 +0200
@@ -1,7 +1,7 @@
#
# spec file for package qtodotxt
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -21,9 +21,9 @@
Version: 1.9.0
Release: 0
Summary: User interface client for todo.txt files
-License: GPL-3.0+
+License: GPL-3.0-or-later
Group: Productivity/Office/Organizers
-Url: https://github.com/mNantern/QTodoTxt
+URL: https://github.com/mNantern/QTodoTxt
Source: https://github.com/mNantern/%{_name}/archive/%{version}.tar.gz#/%{_name}-%{…
BuildRequires: ImageMagick
BuildRequires: fdupes
@@ -45,6 +45,8 @@
%prep
%setup -q -n %{_name}-%{version}
sed -e 's/^Icon=.*$/Icon=%{name}/;/^Keywords/d' packaging/Debian/%{name}.desktop > %{name}.desktop
+# Patch for compatibility (Python >= 3.10) - already reported to Upstream
+sed -e 's|sz\.height()) / 2)|sz.height()) // 2)|' -i qtodotxt/ui/views/tasks_search_view.py
%build
python3 setup.py build
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pytest-jupyter for openSUSE:Factory checked in at 2023-05-01 18:51:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-jupyter (Old)
and /work/SRC/openSUSE:Factory/.python-pytest-jupyter.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-jupyter"
Mon May 1 18:51:10 2023 rev:3 rq:1083771 version:0.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest-jupyter/python-pytest-jupyter.changes 2023-02-03 22:16:55.463321927 +0100
+++ /work/SRC/openSUSE:Factory/.python-pytest-jupyter.new.1533/python-pytest-jupyter.changes 2023-05-01 18:51:10.629353768 +0200
@@ -1,0 +2,7 @@
+Sun Apr 23 17:24:28 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to 0.7.0
+ * Enable header overrides in jp_ws_fetch fixture by @kevin-bates
+ in #51
+
+-------------------------------------------------------------------
Old:
----
pytest_jupyter-0.6.2.tar.gz
New:
----
pytest_jupyter-0.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest-jupyter.spec ++++++
--- /var/tmp/diff_new_pack.VLyeJa/_old 2023-05-01 18:51:11.069356380 +0200
+++ /var/tmp/diff_new_pack.VLyeJa/_new 2023-05-01 18:51:11.073356404 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package python-pytest-jupyter
+# spec file
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -26,10 +26,10 @@
%endif
Name: python-pytest-jupyter%{psuffix}
-Version: 0.6.2
+Version: 0.7.0
Release: 0
Summary: A pytest plugin for testing Jupyter libraries and extensions
-License: MIT AND BSD-3-Clause
+License: BSD-3-Clause AND MIT
URL: https://github.com/jupyter-server/pytest-jupyter
Source: https://files.pythonhosted.org/packages/source/p/pytest_jupyter/pytest_jupy…
BuildRequires: %{python_module base >= 3.7}
++++++ pytest_jupyter-0.6.2.tar.gz -> pytest_jupyter-0.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/PKG-INFO new/pytest_jupyter-0.7.0/PKG-INFO
--- old/pytest_jupyter-0.6.2/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pytest-jupyter
-Version: 0.6.2
+Version: 0.7.0
Summary: A pytest plugin for testing Jupyter libraries and extensions.
Project-URL: Homepage, http://jupyter.org
Project-URL: Funding, https://numfocus.org/donate
@@ -111,18 +111,13 @@
Requires-Dist: myst-parser; extra == 'docs'
Requires-Dist: pydata-sphinx-theme; extra == 'docs'
Requires-Dist: sphinx; extra == 'docs'
-Provides-Extra: lint
-Requires-Dist: black>=22.6.0; extra == 'lint'
-Requires-Dist: mdformat>0.7; extra == 'lint'
-Requires-Dist: ruff>=0.0.156; extra == 'lint'
+Requires-Dist: sphinxcontrib-spelling; extra == 'docs'
Provides-Extra: server
Requires-Dist: jupyter-server>=1.21; extra == 'server'
Requires-Dist: nbformat>=5.3; extra == 'server'
Requires-Dist: pytest-jupyter[client]; extra == 'server'
Provides-Extra: test
Requires-Dist: pytest-timeout; extra == 'test'
-Provides-Extra: typing
-Requires-Dist: mypy>=0.990; extra == 'typing'
Description-Content-Type: text/markdown
# pytest-jupyter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/pyproject.toml new/pytest_jupyter-0.7.0/pyproject.toml
--- old/pytest_jupyter-0.6.2/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
@@ -38,6 +38,7 @@
"myst_parser",
"pydata_sphinx_theme",
"Sphinx",
+ "sphinxcontrib-spelling"
]
client = [
"jupyter_client>=7.4.0",
@@ -51,14 +52,6 @@
test = [
"pytest-timeout"
]
-lint = [
- "black>=22.6.0",
- "mdformat>0.7",
- "ruff>=0.0.156",
-]
-typing = [
- "mypy>=0.990"
-]
[project.urls]
Homepage = "http://jupyter.org"
@@ -95,13 +88,18 @@
nowarn = "test -W default {args}"
[tool.hatch.envs.typing]
-features = ["test", "typing", "server", "client"]
+features = ["test", "server", "client"]
dependencies = ["mypy>=0.990"]
[tool.hatch.envs.typing.scripts]
test = "mypy --install-types --non-interactive {args:.}"
[tool.hatch.envs.lint]
-features = ["lint"]
+dependencies = [
+ "black[jupyter]==23.1.0",
+ "mdformat>0.7",
+ "ruff==0.0.254",
+]
+detached = true
[tool.hatch.envs.lint.scripts]
style = [
"ruff {args:.}",
@@ -167,38 +165,21 @@
target-version = "py38"
line-length = 100
select = [
- "A", "B", "C", "E", "F", "FBT", "I", "N", "Q", "RUF", "S", "T",
- "UP", "W", "YTT",
+ "A", "B", "C", "DTZ", "E", "EM", "F", "FBT", "I", "ICN", "ISC", "N",
+ "PLC", "PLE", "PLR", "PLW", "Q", "RUF", "S", "SIM", "T", "TID", "UP",
+ "W", "YTT",
]
ignore = [
- # Allow non-abstract empty methods in abstract base classes
- "B027",
- # Ignore McCabe complexity
- "C901",
- # Allow boolean positional values in function calls, like `dict.get(... True)`
- "FBT003",
- # Use of `assert` detected
- "S101",
- # Line too long
- "E501",
- # Relative imports are banned
- "I252",
- # Boolean ... in function definition
- "FBT001",
- "FBT002",
- # Module level import not at top of file
- "E402",
- # A001/A002/A003 .. is shadowing a python builtin
- "A001",
- "A002",
- "A003",
- # Possible hardcoded password
- "S105",
- "S106",
- # Q000 Single quotes found but double quotes preferred
- "Q000",
- # N806 Variable `B` in function should be lowercase
- "N806",
+# Q000 Single quotes found but double quotes preferred
+"Q000",
+# FBT001 Boolean positional arg in function definition
+"FBT001", "FBT002", "FBT003",
+# E501 Line too long (158 > 100 characters)
+"E501",
+# SIM105 Use `contextlib.suppress(...)`
+"SIM105",
+#PLR0913 Too many arguments to function call
+"PLR0913",
]
unfixable = [
# Don't touch print statements
@@ -215,4 +196,15 @@
# T201 `print` found
# B007 Loop control variable `i` not used within the loop body.
# N802 Function name `assertIn` should be lowercase
-"tests/*" = ["B011", "F841", "C408", "E402", "T201", "B007", "N802"]
+# S101 Use of `assert` detected
+"tests/*" = ["B011", "F841", "C408", "E402", "T201", "B007", "N802", "S101"]
+
+[tool.interrogate]
+ignore-init-module=true
+ignore-private=true
+ignore-semiprivate=true
+ignore-property-decorators=true
+ignore-nested-functions=true
+ignore-nested-classes=true
+fail-under=100
+exclude = ["docs", "tests"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/pytest_jupyter/_version.py new/pytest_jupyter-0.7.0/pytest_jupyter/_version.py
--- old/pytest_jupyter-0.6.2/pytest_jupyter/_version.py 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/pytest_jupyter/_version.py 2020-02-02 01:00:00.000000000 +0100
@@ -1,4 +1,5 @@
+"""Version info for pytest_jupyter."""
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
-__version__ = "0.6.2"
+__version__ = "0.7.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/pytest_jupyter/echo_kernel.py new/pytest_jupyter-0.7.0/pytest_jupyter/echo_kernel.py
--- old/pytest_jupyter-0.6.2/pytest_jupyter/echo_kernel.py 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/pytest_jupyter/echo_kernel.py 2020-02-02 01:00:00.000000000 +0100
@@ -1,3 +1,4 @@
+"""A simple echo kernel."""
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
@@ -8,6 +9,8 @@
class EchoKernel(Kernel):
+ """An echo kernel."""
+
implementation = "Echo"
implementation_version = "1.0"
language = "echo"
@@ -22,6 +25,7 @@
def do_execute(
self, code, silent, store_history=True, user_expressions=None, allow_stdin=False
):
+ """Execute code on the kernel."""
if not silent:
stream_content = {"name": "stdout", "text": code}
self.send_response(self.iopub_socket, "stream", stream_content)
@@ -45,6 +49,8 @@
class EchoKernelApp(IPKernelApp):
+ """An app for the echo kernel."""
+
kernel_class = EchoKernel
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/pytest_jupyter/jupyter_client.py new/pytest_jupyter-0.7.0/pytest_jupyter/jupyter_client.py
--- old/pytest_jupyter-0.6.2/pytest_jupyter/jupyter_client.py 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/pytest_jupyter/jupyter_client.py 2020-02-02 01:00:00.000000000 +0100
@@ -1,3 +1,4 @@
+"""Fixtures for use with jupyter_client and downstream."""
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
@@ -24,6 +25,7 @@
@pytest.fixture
def jp_zmq_context():
+ """Get a zmq context."""
import zmq
ctx = zmq.asyncio.Context()
@@ -33,10 +35,12 @@
@pytest.fixture
def jp_start_kernel(jp_environ, jp_asyncio_loop):
+ """Get a function to a kernel and clean up resources when done."""
kms = []
kcs = []
async def inner(kernel_name=NATIVE_KERNEL_NAME, **kwargs):
+ """A function used to start a kernel."""
km, kc = await start_new_async_kernel(kernel_name=kernel_name, **kwargs)
kms.append(km)
kcs.append(kc)
@@ -49,4 +53,5 @@
for km in kms:
jp_asyncio_loop.run_until_complete(km.shutdown_kernel(now=True))
- assert km.context.closed
+ if not km.context.closed:
+ raise AssertionError
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/pytest_jupyter/jupyter_core.py new/pytest_jupyter-0.7.0/pytest_jupyter/jupyter_core.py
--- old/pytest_jupyter-0.6.2/pytest_jupyter/jupyter_core.py 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/pytest_jupyter/jupyter_core.py 2020-02-02 01:00:00.000000000 +0100
@@ -1,3 +1,4 @@
+"""Fixtures for use with jupyter core and downstream."""
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
import asyncio
@@ -35,6 +36,7 @@
@pytest.fixture
def jp_asyncio_loop():
+ """Get an asyncio loop."""
if os.name == "nt":
asyncio.set_event_loop_policy(
asyncio.WindowsSelectorEventLoopPolicy() # type:ignore[attr-defined]
@@ -51,6 +53,7 @@
if tornado is not installed."""
async def get_tornado_loop():
+ """Asynchronously get a tornado loop."""
try:
from tornado.ioloop import IOLoop
@@ -111,11 +114,13 @@
@pytest.fixture()
def jp_kernel_dir(jp_data_dir):
+ """Get the directory for kernel specs."""
return mkdir(jp_data_dir, "kernels")
@pytest.fixture
def echo_kernel_spec(jp_kernel_dir):
+ """Install a kernel spec for the echo kernel."""
test_dir = Path(jp_kernel_dir) / "echo"
test_dir.mkdir(parents=True, exist_ok=True)
argv = [sys.executable, "-m", "pytest_jupyter.echo_kernel", "-f", "{connection_file}"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/pytest_jupyter/jupyter_server.py new/pytest_jupyter-0.7.0/pytest_jupyter/jupyter_server.py
--- old/pytest_jupyter-0.6.2/pytest_jupyter/jupyter_server.py 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/pytest_jupyter/jupyter_server.py 2020-02-02 01:00:00.000000000 +0100
@@ -1,3 +1,4 @@
+"""Fixtures for use with jupyter server and downstream."""
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
@@ -30,7 +31,7 @@
from tornado.websocket import WebSocketHandler
from traitlets.config import Config
- is_v2 = version_info[0] == 2
+ is_v2 = version_info[0] == 2 # noqa
except ImportError:
Authorizer = object # type:ignore
@@ -59,6 +60,7 @@
"""Start a tornado HTTP server that listens on all available interfaces."""
async def get_server():
+ """Get a server asynchronously."""
server = tornado.httpserver.HTTPServer(jp_web_app)
server.add_socket(http_server_port[0])
return server
@@ -156,7 +158,7 @@
output = logging_stream.getvalue()
# If output exists, print it.
if output:
- print(output) # noqa
+ print(output)
return output
@@ -353,8 +355,9 @@
urlparts = urllib.parse.urlparse(f"ws://localhost:{jp_http_port}")
urlparts = urlparts._replace(path=base_path_url, query=urllib.parse.urlencode(params))
url = urlparts.geturl()
- # Add auth keys to header
- headers.update(jp_auth_header)
+ # Add auth keys to header, if not overridden
+ for key, value in jp_auth_header.items():
+ headers.setdefault(key, value)
# Make request.
req = tornado.httpclient.HTTPRequest(url, headers=headers, connect_timeout=120)
return tornado.websocket.websocket_connect(req)
@@ -370,7 +373,8 @@
nbpath = jp_root_dir.joinpath(nbpath)
# Check that the notebook has the correct file extension.
if nbpath.suffix != ".ipynb":
- raise Exception("File extension for notebook must be .ipynb")
+ msg = "File extension for notebook must be .ipynb"
+ raise Exception(msg)
# If the notebook path has a parent directory, make sure it's created.
parent = nbpath.parent
parent.mkdir(parents=True, exist_ok=True)
@@ -385,12 +389,13 @@
@pytest.fixture(autouse=True)
def jp_server_cleanup(jp_asyncio_loop):
+ """Automatically cleans up server resources."""
yield
app: ServerApp = ServerApp.instance()
try:
jp_asyncio_loop.run_until_complete(app._cleanup())
except (RuntimeError, SystemExit) as e:
- print("ignoring cleanup error", e) # noqa
+ print("ignoring cleanup error", e)
if hasattr(app, "kernel_manager"):
app.kernel_manager.context.destroy()
ServerApp.clear_instance()
@@ -401,10 +406,7 @@
"""Send to Jupyter Server and return response code."""
async def _(url, **fetch_kwargs):
- if url.endswith("channels") or "/websocket/" in url:
- fetch = jp_ws_fetch
- else:
- fetch = jp_fetch
+ fetch = jp_ws_fetch if url.endswith("channels") or "/websocket/" in url else jp_fetch
try:
r = await fetch(url, **fetch_kwargs, allow_nonstandard_methods=True)
@@ -422,6 +424,7 @@
@pytest.fixture
def jp_server_auth_core_resources():
+ """The core auth resources for use with a server."""
modules = []
for mod_name in JUPYTER_SERVICE_HANDLERS.values():
if mod_name:
@@ -438,10 +441,13 @@
@pytest.fixture
def jp_server_auth_resources(jp_server_auth_core_resources):
+ """The auth resources used by the server."""
return jp_server_auth_core_resources
class _Authorizer(Authorizer):
+ """A custom authorizer class for testing."""
+
# Set these class attributes from within a test
# to verify that they match the arguments passed
# by the REST API.
@@ -484,11 +490,9 @@
return path
def is_authorized(self, handler, user, action, resource):
+ """Test if a request is authorized."""
# Parse Request
- if isinstance(handler, WebSocketHandler):
- method = "WEBSOCKET"
- else:
- method = handler.request.method
+ method = "WEBSOCKET" if isinstance(handler, WebSocketHandler) else handler.request.method
url = self.normalize_url(handler.request.path)
# Map request parts to expected action and resource.
@@ -497,8 +501,8 @@
# Assert that authorization layer returns the
# correct action + resource.
- assert action == expected_action
- assert resource == expected_resource
+ if action != expected_action or resource != expected_resource:
+ raise AssertionError
# Now, actually apply the authorization layer.
return all(
@@ -511,6 +515,7 @@
@pytest.fixture
def jp_server_authorizer(jp_server_auth_resources):
+ """An authorizer for the server."""
auth_klass = _Authorizer
auth_klass._default_regex_mapping = jp_server_auth_resources
return auth_klass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/pytest_jupyter/pytest_tornasync.py new/pytest_jupyter-0.7.0/pytest_jupyter/pytest_tornasync.py
--- old/pytest_jupyter-0.6.2/pytest_jupyter/pytest_tornasync.py 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/pytest_jupyter/pytest_tornasync.py 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
-# Vendored fork of pytest_tornasync from
-# https://github.com/eukaryote/pytest-tornasync/blob/9f1bdeec3eb5816e0183f975…
-
+"""Vendored fork of pytest_tornasync from
+ https://github.com/eukaryote/pytest-tornasync/blob/9f1bdeec3eb5816e0183f975…
+"""
from contextlib import closing
from inspect import iscoroutinefunction
@@ -16,12 +16,14 @@
@pytest.hookimpl(tryfirst=True)
def pytest_pycollect_makeitem(collector, name, obj):
+ """Custom pytest collection hook."""
if collector.funcnamefilter(name) and iscoroutinefunction(obj):
return list(collector._genfunctions(name, obj))
@pytest.hookimpl(tryfirst=True)
def pytest_pyfunc_call(pyfuncitem):
+ """Custom pytest function call hook."""
funcargs = pyfuncitem.funcargs
testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames}
@@ -53,6 +55,7 @@
"""
async def get_client():
+ """Get a client."""
return AsyncHTTPServerClient(http_server=http_server)
client = io_loop.run_sync(get_client)
@@ -61,7 +64,10 @@
class AsyncHTTPServerClient(SimpleAsyncHTTPClient):
+ """An async http server client."""
+
def initialize(self, *, http_server=None):
+ """Initialize the client."""
super().initialize()
self._http_server = http_server
@@ -73,11 +79,14 @@
return super().fetch(self.get_url(path), **kwargs)
def get_protocol(self):
+ """Get the protocol for the client."""
return "http"
def get_http_port(self):
+ """Get a port for the client."""
for sock in self._http_server._sockets.values():
return sock.getsockname()[1]
def get_url(self, path):
+ """Get the url for the client."""
return f"{self.get_protocol()}://127.0.0.1:{self.get_http_port()}{path}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/pytest_jupyter/utils.py new/pytest_jupyter-0.7.0/pytest_jupyter/utils.py
--- old/pytest_jupyter-0.6.2/pytest_jupyter/utils.py 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/pytest_jupyter/utils.py 2020-02-02 01:00:00.000000000 +0100
@@ -1,8 +1,10 @@
+"""Utilities for pytest-jupyter."""
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
def mkdir(tmp_path, *parts):
+ """Make a directory given extra path parts."""
path = tmp_path.joinpath(*parts)
if not path.exists():
path.mkdir(parents=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest_jupyter-0.6.2/tests/test_jupyter_server.py new/pytest_jupyter-0.7.0/tests/test_jupyter_server.py
--- old/pytest_jupyter-0.6.2/tests/test_jupyter_server.py 2020-02-02 01:00:00.000000000 +0100
+++ new/pytest_jupyter-0.7.0/tests/test_jupyter_server.py 2020-02-02 01:00:00.000000000 +0100
@@ -20,12 +20,12 @@
async def test_get_api_spec(jp_fetch):
response = await jp_fetch("api", "spec.yaml", method="GET")
- assert response.code == 200
+ assert response.code == 200 # noqa
async def test_send_request(send_request):
code = await send_request("api/spec.yaml", method="GET")
- assert code == 200
+ assert code == 200 # noqa
async def test_connection(jp_fetch, jp_ws_fetch, jp_http_port, jp_auth_header):
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package helmify for openSUSE:Factory checked in at 2023-05-01 18:51:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/helmify (Old)
and /work/SRC/openSUSE:Factory/.helmify.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "helmify"
Mon May 1 18:51:08 2023 rev:10 rq:1083765 version:0.4.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/helmify/helmify.changes 2023-04-28 16:26:12.215003219 +0200
+++ /work/SRC/openSUSE:Factory/.helmify.new.1533/helmify.changes 2023-05-01 18:51:09.513347143 +0200
@@ -1,0 +2,14 @@
+Sun Apr 30 10:52:45 UTC 2023 - kastl(a)b1-systems.de
+
+- Update to version 0.4.3:
+ * Fixed the rest of the linting that went a little crazy
+ * Fixed indentions that went a little crazy
+ * Added security context processing for initContainers, refactor
+ to reduce code duplication
+ * Fixed incorrect name for the test data initContainer
+ * Updated to not include initContainers:null in templates if none
+ exist in the source manifest
+ * Regenerated chart examples
+ * This change adds support for initContainers
+
+-------------------------------------------------------------------
Old:
----
helmify-0.4.2.obscpio
New:
----
helmify-0.4.3.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ helmify.spec ++++++
--- /var/tmp/diff_new_pack.kl6yOT/_old 2023-05-01 18:51:10.229351394 +0200
+++ /var/tmp/diff_new_pack.kl6yOT/_new 2023-05-01 18:51:10.233351418 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: helmify
-Version: 0.4.2
+Version: 0.4.3
Release: 0
Summary: Creates Helm chart from Kubernetes yaml
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.kl6yOT/_old 2023-05-01 18:51:10.269351631 +0200
+++ /var/tmp/diff_new_pack.kl6yOT/_new 2023-05-01 18:51:10.273351656 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/arttor/helmify/</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.4.2</param>
+ <param name="revision">v0.4.3</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.kl6yOT/_old 2023-05-01 18:51:10.293351774 +0200
+++ /var/tmp/diff_new_pack.kl6yOT/_new 2023-05-01 18:51:10.297351797 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/arttor/helmify/</param>
- <param name="changesrevision">3e87d86d3c6468ec33150d57f6f2c37de00b86da</param></service></servicedata>
+ <param name="changesrevision">03f8524d60a2517902506646d07cf2acac2dfa3a</param></service></servicedata>
(No newline at EOF)
++++++ helmify-0.4.2.obscpio -> helmify-0.4.3.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmify-0.4.2/examples/app/templates/deployment.yaml new/helmify-0.4.3/examples/app/templates/deployment.yaml
--- old/helmify-0.4.2/examples/app/templates/deployment.yaml 2023-04-28 09:50:13.000000000 +0200
+++ new/helmify-0.4.3/examples/app/templates/deployment.yaml 2023-04-30 11:41:20.000000000 +0200
@@ -73,6 +73,18 @@
- containerPort: 8443
name: https
resources: {}
+ initContainers:
+ - command:
+ - /bin/sh
+ - -c
+ - echo Initializing container...
+ env:
+ - name: KUBERNETES_CLUSTER_DOMAIN
+ value: {{ quote .Values.kubernetesClusterDomain }}
+ image: {{ .Values.myapp.initContainer.image.repository }}:{{ .Values.myapp.initContainer.image.tag
+ | default .Chart.AppVersion }}
+ name: init-container
+ resources: {}
nodeSelector: {{- toYaml .Values.myapp.nodeSelector | nindent 8 }}
securityContext:
runAsNonRoot: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmify-0.4.2/examples/app/values.yaml new/helmify-0.4.3/examples/app/values.yaml
--- old/helmify-0.4.2/examples/app/values.yaml 2023-04-28 09:50:13.000000000 +0200
+++ new/helmify-0.4.3/examples/app/values.yaml 2023-04-30 11:41:20.000000000 +0200
@@ -69,6 +69,10 @@
requests:
cpu: 100m
memory: 20Mi
+ initContainer:
+ image:
+ repository: bash
+ tag: latest
nodeSelector:
region: east
type: user-node
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmify-0.4.2/pkg/processor/pod/pod.go new/helmify-0.4.3/pkg/processor/pod/pod.go
--- old/helmify-0.4.2/pkg/processor/pod/pod.go 2023-04-28 09:50:13.000000000 +0200
+++ new/helmify-0.4.3/pkg/processor/pod/pod.go 2023-04-30 11:41:20.000000000 +0200
@@ -38,41 +38,13 @@
if err != nil {
return nil, nil, fmt.Errorf("%w: unable to convert podSpec to map", err)
}
- containers, _, err := unstructured.NestedSlice(specMap, "containers")
+
+ specMap, values, err = processNestedContainers(specMap, objName, values, "containers")
if err != nil {
return nil, nil, err
}
- for i := range containers {
- containerName := strcase.ToLowerCamel((containers[i].(map[string]interface{})["name"]).(string))
- res, exists, err := unstructured.NestedMap(values, objName, containerName, "resources")
- if err != nil {
- return nil, nil, err
- }
- if exists && len(res) > 0 {
- err = unstructured.SetNestedField(containers[i].(map[string]interface{}), fmt.Sprintf(`{{- toYaml .Values.%s.%s.resources | nindent 10 }}`, objName, containerName), "resources")
- if err != nil {
- return nil, nil, err
- }
- }
-
- args, exists, err := unstructured.NestedStringSlice(containers[i].(map[string]interface{}), "args")
- if err != nil {
- return nil, nil, err
- }
- if exists && len(args) > 0 {
- err = unstructured.SetNestedField(containers[i].(map[string]interface{}), fmt.Sprintf(`{{- toYaml .Values.%[1]s.%[2]s.args | nindent 8 }}`, objName, containerName), "args")
- if err != nil {
- return nil, nil, err
- }
-
- err = unstructured.SetNestedStringSlice(values, args, objName, containerName, "args")
- if err != nil {
- return nil, nil, fmt.Errorf("%w: unable to set deployment value field", err)
- }
- }
- }
- err = unstructured.SetNestedSlice(specMap, containers, "containers")
+ specMap, values, err = processNestedContainers(specMap, objName, values, "initContainers")
if err != nil {
return nil, nil, err
}
@@ -104,6 +76,60 @@
return specMap, values, nil
}
+func processNestedContainers(specMap map[string]interface{}, objName string, values map[string]interface{}, containerKey string) (map[string]interface{}, map[string]interface{}, error) {
+ containers, _, err := unstructured.NestedSlice(specMap, containerKey)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ if len(containers) > 0 {
+ containers, values, err = processContainers(objName, values, containerKey, containers)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ err = unstructured.SetNestedSlice(specMap, containers, containerKey)
+ if err != nil {
+ return nil, nil, err
+ }
+ }
+
+ return specMap, values, nil
+}
+
+func processContainers(objName string, values helmify.Values, containerType string, containers []interface{}) ([]interface{}, helmify.Values, error) {
+ for i := range containers {
+ containerName := strcase.ToLowerCamel((containers[i].(map[string]interface{})["name"]).(string))
+ res, exists, err := unstructured.NestedMap(values, objName, containerName, "resources")
+ if err != nil {
+ return nil, nil, err
+ }
+ if exists && len(res) > 0 {
+ err = unstructured.SetNestedField(containers[i].(map[string]interface{}), fmt.Sprintf(`{{- toYaml .Values.%s.%s.resources | nindent 10 }}`, objName, containerName), "resources")
+ if err != nil {
+ return nil, nil, err
+ }
+ }
+
+ args, exists, err := unstructured.NestedStringSlice(containers[i].(map[string]interface{}), "args")
+ if err != nil {
+ return nil, nil, err
+ }
+ if exists && len(args) > 0 {
+ err = unstructured.SetNestedField(containers[i].(map[string]interface{}), fmt.Sprintf(`{{- toYaml .Values.%[1]s.%[2]s.args | nindent 8 }}`, objName, containerName), "args")
+ if err != nil {
+ return nil, nil, err
+ }
+
+ err = unstructured.SetNestedStringSlice(values, args, objName, containerName, "args")
+ if err != nil {
+ return nil, nil, fmt.Errorf("%w: unable to set deployment value field", err)
+ }
+ }
+ }
+ return containers, values, nil
+}
+
func processPodSpec(name string, appMeta helmify.AppMetadata, pod *corev1.PodSpec) (helmify.Values, error) {
values := helmify.Values{}
for i, c := range pod.Containers {
@@ -113,6 +139,15 @@
}
pod.Containers[i] = processed
}
+
+ for i, c := range pod.InitContainers {
+ processed, err := processPodContainer(name, appMeta, c, &values)
+ if err != nil {
+ return nil, err
+ }
+ pod.InitContainers[i] = processed
+ }
+
for _, v := range pod.Volumes {
if v.ConfigMap != nil {
v.ConfigMap.Name = appMeta.TemplatedName(v.ConfigMap.Name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmify-0.4.2/pkg/processor/security-context/container_security_context.go new/helmify-0.4.3/pkg/processor/security-context/container_security_context.go
--- old/helmify-0.4.2/pkg/processor/security-context/container_security_context.go 2023-04-28 09:50:13.000000000 +0200
+++ new/helmify-0.4.3/pkg/processor/security-context/container_security_context.go 2023-04-30 11:41:20.000000000 +0200
@@ -16,9 +16,22 @@
// ProcessContainerSecurityContext adds 'securityContext' to the podSpec in specMap, if it doesn't have one already defined.
func ProcessContainerSecurityContext(nameCamel string, specMap map[string]interface{}, values *helmify.Values) error {
- if _, defined := specMap["containers"]; defined {
- containers, _, _ := unstructured.NestedSlice(specMap, "containers")
- for _, container := range containers {
+ err := processSecurityContext(nameCamel, "containers", specMap, values)
+ if err != nil {
+ return err
+ }
+
+ err = processSecurityContext(nameCamel, "initContainers", specMap, values)
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func processSecurityContext(nameCamel string, containerType string, specMap map[string]interface{}, values *helmify.Values) error {
+ if containers, defined := specMap[containerType]; defined {
+ for _, container := range containers.([]interface{}) {
castedContainer := container.(map[string]interface{})
containerName := strcase.ToLowerCamel(castedContainer["name"].(string))
if _, defined2 := castedContainer["securityContext"]; defined2 {
@@ -28,7 +41,7 @@
}
}
}
- err := unstructured.SetNestedSlice(specMap, containers, "containers")
+ err := unstructured.SetNestedField(specMap, containers, containerType)
if err != nil {
return err
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helmify-0.4.2/test_data/sample-app.yaml new/helmify-0.4.3/test_data/sample-app.yaml
--- old/helmify-0.4.2/test_data/sample-app.yaml 2023-04-28 09:50:13.000000000 +0200
+++ new/helmify-0.4.3/test_data/sample-app.yaml 2023-04-30 11:41:20.000000000 +0200
@@ -15,6 +15,10 @@
labels:
app: myapp
spec:
+ initContainers:
+ - name: init-container
+ image: bash:latest
+ command: ["/bin/sh", "-c", "echo 'Initializing container...'"]
containers:
- name: app
args:
++++++ helmify.obsinfo ++++++
--- /var/tmp/diff_new_pack.kl6yOT/_old 2023-05-01 18:51:10.449352700 +0200
+++ /var/tmp/diff_new_pack.kl6yOT/_new 2023-05-01 18:51:10.453352723 +0200
@@ -1,5 +1,5 @@
name: helmify
-version: 0.4.2
-mtime: 1682668213
-commit: 3e87d86d3c6468ec33150d57f6f2c37de00b86da
+version: 0.4.3
+mtime: 1682847680
+commit: 03f8524d60a2517902506646d07cf2acac2dfa3a
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/helmify/vendor.tar.gz /work/SRC/openSUSE:Factory/.helmify.new.1533/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package lagrange for openSUSE:Factory checked in at 2023-05-01 18:51:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lagrange (Old)
and /work/SRC/openSUSE:Factory/.lagrange.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lagrange"
Mon May 1 18:51:07 2023 rev:64 rq:1083760 version:1.15.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/lagrange/lagrange.changes 2023-04-09 18:43:14.274505313 +0200
+++ /work/SRC/openSUSE:Factory/.lagrange.new.1533/lagrange.changes 2023-05-01 18:51:08.401340542 +0200
@@ -1,0 +2,12 @@
+Sun Apr 30 11:14:17 UTC 2023 - Adam Mizerski <adam(a)mizerski.pl>
+
+- update to 1.15.9
+ - Added new UI translation: Basque (euskara).
+ - Improved opening and closing of tabs. New tabs now open to the right of the
+ current tab.
+ - Allow scaling up small images up to 2x size.
+ - Fixed possible crash when closing tabs.
+ - Fixed crashes on Wayland due to use of X11-specific code.
+ - Updated UI translations.
+
+-------------------------------------------------------------------
Old:
----
lagrange-1.15.8.tar.gz
New:
----
lagrange-1.15.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lagrange.spec ++++++
--- /var/tmp/diff_new_pack.FXvHr3/_old 2023-05-01 18:51:08.913343582 +0200
+++ /var/tmp/diff_new_pack.FXvHr3/_new 2023-05-01 18:51:08.921343629 +0200
@@ -18,7 +18,7 @@
%define app_id fi.skyjake.Lagrange
Name: lagrange
-Version: 1.15.8
+Version: 1.15.9
Release: 0
Summary: Desktop GUI client for browsing Geminispace
License: BSD-2-Clause
++++++ lagrange-1.15.8.tar.gz -> lagrange-1.15.9.tar.gz ++++++
/work/SRC/openSUSE:Factory/lagrange/lagrange-1.15.8.tar.gz /work/SRC/openSUSE:Factory/.lagrange.new.1533/lagrange-1.15.9.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package iosevka-fonts for openSUSE:Factory checked in at 2023-05-01 18:50:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iosevka-fonts (Old)
and /work/SRC/openSUSE:Factory/.iosevka-fonts.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iosevka-fonts"
Mon May 1 18:50:50 2023 rev:61 rq:1083764 version:22.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/iosevka-fonts/iosevka-fonts.changes 2023-04-22 22:04:15.214577115 +0200
+++ /work/SRC/openSUSE:Factory/.iosevka-fonts.new.1533/iosevka-fonts.changes 2023-05-01 18:50:51.681241290 +0200
@@ -1,0 +2,41 @@
+Sun Apr 23 15:50:32 UTC 2023 - Anton Shvetz <shvetz.anton(a)gmail.com>
+
+- Update to v22.1.0
+ * Changes of version 22.1.0
+ = Add characters:
+ ~ CYRILLIC CAPITAL LETTER KOMI ZJE (U+0504) ... CYRILLIC
+ SMALL LETTER KOMI NJE (U+050B).
+ ~ COMBINING DOWNWARDS ARROW (U+1AB3).
+ ~ COMBINING ZIGZAG BELOW (U+1DCF).
+ ~ COMBINING DOUBLE INVERTED BREVE BELOW (U+1DFC).
+ ~ COMBINING ALMOST EQUAL TO BELOW (U+1DFD).
+ ~ COLON SIGN (U+20A1) (#1674).
+ ~ PESO SIGN (U+20B1) (#1674).
+ ~ GUARANI SIGN (U+20B2) (#1674).
+ ~ AUSTRAL SIGN (U+20B3) (#1674).
+ ~ CEDI SIGN (U+20B5) (#1674).
+ ~ SCRIPT CAPITAL P (U+2118) (#1668).
+ ~ REVERSED SANS-SERIF CAPITAL L (U+2143).
+ ~ DECIMAL EXPONENT SYMBOL (U+23E8) (#1682).
+ ~ LATIN CAPITAL LETTER L WITH DOUBLE BAR (U+2C60) (#1659).
+ ~ LATIN SMALL LETTER L WITH DOUBLE BAR (U+2C61) (#1659).
+ ~ LATIN SMALL LETTER O WITH LOW RING INSIDE (U+2C7A).
+ ~ CYRILLIC CAPITAL LETTER IOTA (U+A646).
+ ~ CYRILLIC SMALL LETTER IOTA (U+A647).
+ ~ LATIN EPIGRAPHIC LETTER REVERSED F (U+A7FB).
+ ~ LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE (U+AB68).
+ = Fix shape of LATIN CAPITAL LETTER SMALL CAPITAL I (U+A7AE).
+ = Disunify glyphs for Greek Tonos and Greek Oxia for
+ disambiguation (#1527).
+ = Improve aesthetics of Greek Dialytika Tonos, Dialytika Oxia,
+ and Dialytika Varia.
+ = Remove ASCII caret (^) from operator centering, as it is
+ usually considered asymmetric (#1507).
+ = Make dotted circle narrow by default, as it is more
+ frequently used as a mark carrier (#1672).
+ = Transform Rhotic hooks (U+02DE) into superscript/subscript
+ form when they are placed after a superscript/subscript
+ letter (#1681).
+ = Enable connected underscore for c-likes by default (#1679).
+
+-------------------------------------------------------------------
Old:
----
super-ttc-iosevka-22.0.2.zip
super-ttc-iosevka-aile-22.0.2.zip
super-ttc-iosevka-curly-22.0.2.zip
super-ttc-iosevka-curly-slab-22.0.2.zip
super-ttc-iosevka-etoile-22.0.2.zip
super-ttc-iosevka-slab-22.0.2.zip
super-ttc-iosevka-ss01-22.0.2.zip
super-ttc-iosevka-ss02-22.0.2.zip
super-ttc-iosevka-ss03-22.0.2.zip
super-ttc-iosevka-ss04-22.0.2.zip
super-ttc-iosevka-ss05-22.0.2.zip
super-ttc-iosevka-ss06-22.0.2.zip
super-ttc-iosevka-ss07-22.0.2.zip
super-ttc-iosevka-ss08-22.0.2.zip
super-ttc-iosevka-ss09-22.0.2.zip
super-ttc-iosevka-ss10-22.0.2.zip
super-ttc-iosevka-ss11-22.0.2.zip
super-ttc-iosevka-ss12-22.0.2.zip
super-ttc-iosevka-ss13-22.0.2.zip
super-ttc-iosevka-ss14-22.0.2.zip
super-ttc-iosevka-ss15-22.0.2.zip
super-ttc-iosevka-ss16-22.0.2.zip
super-ttc-iosevka-ss17-22.0.2.zip
super-ttc-iosevka-ss18-22.0.2.zip
New:
----
super-ttc-iosevka-22.1.0.zip
super-ttc-iosevka-aile-22.1.0.zip
super-ttc-iosevka-curly-22.1.0.zip
super-ttc-iosevka-curly-slab-22.1.0.zip
super-ttc-iosevka-etoile-22.1.0.zip
super-ttc-iosevka-slab-22.1.0.zip
super-ttc-iosevka-ss01-22.1.0.zip
super-ttc-iosevka-ss02-22.1.0.zip
super-ttc-iosevka-ss03-22.1.0.zip
super-ttc-iosevka-ss04-22.1.0.zip
super-ttc-iosevka-ss05-22.1.0.zip
super-ttc-iosevka-ss06-22.1.0.zip
super-ttc-iosevka-ss07-22.1.0.zip
super-ttc-iosevka-ss08-22.1.0.zip
super-ttc-iosevka-ss09-22.1.0.zip
super-ttc-iosevka-ss10-22.1.0.zip
super-ttc-iosevka-ss11-22.1.0.zip
super-ttc-iosevka-ss12-22.1.0.zip
super-ttc-iosevka-ss13-22.1.0.zip
super-ttc-iosevka-ss14-22.1.0.zip
super-ttc-iosevka-ss15-22.1.0.zip
super-ttc-iosevka-ss16-22.1.0.zip
super-ttc-iosevka-ss17-22.1.0.zip
super-ttc-iosevka-ss18-22.1.0.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iosevka-fonts.spec ++++++
--- /var/tmp/diff_new_pack.1LqwSj/_old 2023-05-01 18:51:07.633335983 +0200
+++ /var/tmp/diff_new_pack.1LqwSj/_new 2023-05-01 18:51:07.641336031 +0200
@@ -20,7 +20,7 @@
typeface family, designed for writing code, using in terminals, and\
preparing technical documents.
Name: iosevka-fonts
-Version: 22.0.2
+Version: 22.1.0
Release: 0
Summary: Slender typeface for source code
License: OFL-1.1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rubygem-puma for openSUSE:Factory checked in at 2023-05-01 18:50:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-puma (Old)
and /work/SRC/openSUSE:Factory/.rubygem-puma.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-puma"
Mon May 1 18:50:49 2023 rev:53 rq:1083753 version:6.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-puma/rubygem-puma.changes 2022-12-13 18:57:17.535787638 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-puma.new.1533/rubygem-puma.changes 2023-05-01 18:50:50.929236825 +0200
@@ -1,0 +2,6 @@
+Fri Apr 28 13:18:28 UTC 2023 - Marcus Rueckert <mrueckert(a)suse.de>
+
+- Fix file permissions in post_install so we do not get more
+ rpmlint warnings
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-puma.spec ++++++
--- /var/tmp/diff_new_pack.8UMfcl/_old 2023-05-01 18:50:51.433239818 +0200
+++ /var/tmp/diff_new_pack.8UMfcl/_new 2023-05-01 18:50:51.453239937 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-puma
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -62,6 +62,10 @@
--doc-files="History.md LICENSE README.md" \
-f
%gem_cleanup
+# MANUAL
+find %{buildroot}%{_libdir}/ruby/gems/*/gems/%{mod_name}-%{version}/ -type f -print0 | xargs -r0 chmod -v a-x
+find %{buildroot}%{_libdir}/ruby/gems/*/gems/%{mod_name}-%{version}/bin/ -type f -print0 | xargs -r0 chmod -v a+x
+# /MANUAL
%gem_packages
++++++ gem2rpm.yml ++++++
--- /var/tmp/diff_new_pack.8UMfcl/_old 2023-05-01 18:50:51.493240173 +0200
+++ /var/tmp/diff_new_pack.8UMfcl/_new 2023-05-01 18:50:51.497240197 +0200
@@ -69,6 +69,9 @@
#
:preamble: |-
BuildRequires: openssl-devel
+:post_install: |-
+ find %{buildroot}%{_libdir}/ruby/gems/*/gems/%{mod_name}-%{version}/ -type f -print0 | xargs -r0 chmod -v a-x
+ find %{buildroot}%{_libdir}/ruby/gems/*/gems/%{mod_name}-%{version}/bin/ -type f -print0 | xargs -r0 chmod -v a+x
:sources:
- rubygem-puma-rpmlintrc
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package zopfli for openSUSE:Factory checked in at 2023-05-01 18:50:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zopfli (Old)
and /work/SRC/openSUSE:Factory/.zopfli.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zopfli"
Mon May 1 18:50:48 2023 rev:10 rq:1083737 version:1.0.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/zopfli/zopfli.changes 2019-12-12 23:18:17.578212784 +0100
+++ /work/SRC/openSUSE:Factory/.zopfli.new.1533/zopfli.changes 2023-05-01 18:50:50.049231602 +0200
@@ -1,0 +2,5 @@
+Sun Apr 30 10:45:46 UTC 2023 - Martin Pluskal <mpluskal(a)suse.com>
+
+- Build AVX2 enabled hwcaps library for x86_64-v3
+
+-------------------------------------------------------------------
New:
----
baselibs.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zopfli.spec ++++++
--- /var/tmp/diff_new_pack.4VUwBg/_old 2023-05-01 18:50:50.629235044 +0200
+++ /var/tmp/diff_new_pack.4VUwBg/_new 2023-05-01 18:50:50.633235068 +0200
@@ -1,7 +1,7 @@
#
# spec file for package zopfli
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -29,11 +29,13 @@
License: Apache-2.0
Group: Productivity/Archiving/Compression
URL: https://github.com/google/zopfli
-Source: https://github.com/google/zopfli/archive/zopfli-%{version}.tar.gz
+Source0: https://github.com/google/zopfli/archive/zopfli-%{version}.tar.gz
+Source1: baselibs.conf
+BuildRequires: cmake >= 2.8.11
BuildRequires: gcc-c++
BuildRequires: help2man
BuildRequires: make
-BuildRequires: cmake >= 2.8.11
+%{?suse_build_hwcaps_libs}
%description
Example program for libzopfli to create gzip compatible files. Files can be
@@ -83,18 +85,16 @@
install -D -pm 0644 build/%{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1
install -D -pm 0644 build/%{pngname}.1 %{buildroot}%{_mandir}/man1/%{pngname}.1
-%post -n %{libname} -p /sbin/ldconfig
-%post -n %{libpngname} -p /sbin/ldconfig
-%postun -n %{libname} -p /sbin/ldconfig
-%postun -n %{libpngname} -p /sbin/ldconfig
+%ldconfig_scriptlets -n %{libname}
+%ldconfig_scriptlets -n %{libpngname}
%files
%doc README README.zopflipng
%license COPYING
%{_bindir}/%{name}
%{_bindir}/zopflipng
-%{_mandir}/man1/%{name}.1%{ext_man}
-%{_mandir}/man1/zopflipng.1%{ext_man}
+%{_mandir}/man1/%{name}.1%{?ext_man}
+%{_mandir}/man1/zopflipng.1%{?ext_man}
%files -n %{libname}
%{_libdir}/libzopfli.so.*
++++++ baselibs.conf ++++++
libzopfli1
libzopflipng1
1
0