openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
November 2021
- 1 participants
- 2337 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package tuigreet for openSUSE:Factory checked in at 2021-11-01 18:35:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tuigreet (Old)
and /work/SRC/openSUSE:Factory/.tuigreet.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tuigreet"
Mon Nov 1 18:35:46 2021 rev:3 rq:928517 version:0.7.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/tuigreet/tuigreet.changes 2021-09-28 19:17:34.452257854 +0200
+++ /work/SRC/openSUSE:Factory/.tuigreet.new.1890/tuigreet.changes 2021-11-01 18:36:03.881347871 +0100
@@ -1,0 +2,55 @@
+Mon Nov 1 07:56:13 UTC 2021 - Denys Kondratenko <stdden(a)opensuse.org>
+
+- Update to 0.7.1
+ * Upgraded greetd_ipc to 0.8.0.
+ * Used async throughout tuigreet to prevent blocking the UI.
+ * Better handle different kinds of PAM prompts (such as fingerprint
+ scanner prompts).
+ * Allow customizing power commands to shut down and reboot the machine.
+ * Miscellaneous UI improvements and typo fixes.
+ * Added Polish and Catalan translations.
+ * Updated man page.
+- tuigreet version 0.7.0
+ * Upgraded greetd_ipc to 0.8.0.
+ * Used async throughout tuigreet to prevent blocking the UI.
+ * Better handle different kinds of PAM prompts (such as fingerprint
+ scanner prompts).
+ * Allow customizing power commands to shut down and reboot the machine.
+ * Miscellaneous UI improvements and typo fixes.
+ * Added Polish and Catalan translations.
+- tuigreet version 0.6.1
+ * manpage was added.
+- tuigreet version 0.6.0
+ * Added option to remember last selected session between runs.
+ * Add customization of the password redaction character instead of *.
+ * Added translations in Italian and Portugese.
+- tuigreet version 0.5.0.
+ * tuigreet used to terminate on authentication failure, which would
+ pose security issues if greetd was configured to restart
+ automatically with an `initial_session` set. Now, tuigreet loops on
+ failure and keeps running (#24).
+ * Following the previous item, all manual means of exiting tuigreet
+ have been removed (such as hitting the ESC key).
+ * Added localization of the user interface, with initial translations
+ in English, French and German (thanks to @brodi1 for the German
+ translation).
+- tuigreet version 0.4.0
+ * Add a space at the end of prompts if missing.
+ * Added option to add global padding to the terminal.
+ * Added menu to shut down and reboot the machine.
+ * Fixed issue with container padding and greeting message.
+- tuigreet version 0.3.1.
+ * Fixed issue where popup menus would put the UI into an unrecoverable
+ state
+ * Fixed issue where closing a popup would not return to the correct mode
+ * Fixed issue with the time format
+ * Added options to provide custom directories to look for sessions
+ desktop files
+- tuigreet version 0.3.0.
+ * Fixed issue where popup menus would put the UI into an unrecoverable
+ state
+ * Fixed issue with the time format
+ * Added options to provide custom directories to look for sessions
+ desktop files
+
+-------------------------------------------------------------------
Old:
----
tuigreet-0.2.0.obscpio
New:
----
tuigreet-0.7.1.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tuigreet.spec ++++++
--- /var/tmp/diff_new_pack.CyMpBg/_old 2021-11-01 18:36:04.741348363 +0100
+++ /var/tmp/diff_new_pack.CyMpBg/_new 2021-11-01 18:36:04.745348365 +0100
@@ -17,7 +17,7 @@
Name: tuigreet
-Version: 0.2.0
+Version: 0.7.1
Release: 0
Summary: Graphical console greeter for greetd
License: GPL-3.0-only
++++++ _service ++++++
--- /var/tmp/diff_new_pack.CyMpBg/_old 2021-11-01 18:36:04.773348381 +0100
+++ /var/tmp/diff_new_pack.CyMpBg/_new 2021-11-01 18:36:04.773348381 +0100
@@ -2,7 +2,7 @@
<service name="obs_scm" mode="disabled">
<param name="url">https://github.com/apognu/tuigreet.git</param>
<param name="scm">git</param>
- <param name="revision">0.2.0</param>
+ <param name="revision">0.7.1</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
</service>
++++++ tuigreet-0.2.0.obscpio -> tuigreet-0.7.1.obscpio ++++++
++++ 3792 lines of diff (skipped)
++++++ tuigreet.obsinfo ++++++
--- /var/tmp/diff_new_pack.CyMpBg/_old 2021-11-01 18:36:04.877348441 +0100
+++ /var/tmp/diff_new_pack.CyMpBg/_new 2021-11-01 18:36:04.877348441 +0100
@@ -1,5 +1,5 @@
name: tuigreet
-version: 0.2.0
-mtime: 1597873364
-commit: ad06a85c0ab607a7cd182ca0391894db33925a22
+version: 0.7.1
+mtime: 1633437404
+commit: f8905cfd7ee38af4f89a42e5823d8c38de00741c
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/tuigreet/vendor.tar.gz /work/SRC/openSUSE:Factory/.tuigreet.new.1890/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 greetd for openSUSE:Factory checked in at 2021-11-01 18:35:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/greetd (Old)
and /work/SRC/openSUSE:Factory/.greetd.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "greetd"
Mon Nov 1 18:35:45 2021 rev:7 rq:928516 version:0.8.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/greetd/greetd.changes 2021-10-05 22:34:20.754920850 +0200
+++ /work/SRC/openSUSE:Factory/.greetd.new.1890/greetd.changes 2021-11-01 18:36:02.737347216 +0100
@@ -1,0 +2,16 @@
+Sun Oct 24 13:46:49 UTC 2021 - Denys Kondratenko <stdden(a)opensuse.org>
+
+- Version bump to 0.8.0
+ * deps: update tokio to 1.0
+ * deps: update nix and other dependencies
+ * Ensure initial session is only run once.
+ * recommend making config world readable rather than setting owner
+ * Update lock file
+ * readme: Add discuss section
+ * docs: Fix scdoc syntax for greetd.5
+ * rustfmt: Change merge_imports to imports_granularity
+ * ipc: Fix tokio codec
+ * Add makefile for man pages
+ * greetd: add terminal switch flag configuration option
+
+-------------------------------------------------------------------
Old:
----
greetd-0.7.0.obscpio
New:
----
greetd-0.8.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ greetd.spec ++++++
--- /var/tmp/diff_new_pack.nUnfuz/_old 2021-11-01 18:36:03.537347674 +0100
+++ /var/tmp/diff_new_pack.nUnfuz/_new 2021-11-01 18:36:03.541347676 +0100
@@ -17,7 +17,7 @@
Name: greetd
-Version: 0.7.0
+Version: 0.8.0
Release: 0
Summary: Minimal and flexible login manager daemon
License: GPL-3.0-only
++++++ _service ++++++
--- /var/tmp/diff_new_pack.nUnfuz/_old 2021-11-01 18:36:03.565347690 +0100
+++ /var/tmp/diff_new_pack.nUnfuz/_new 2021-11-01 18:36:03.569347693 +0100
@@ -2,7 +2,7 @@
<service name="obs_scm" mode="disabled">
<param name="url">https://git.sr.ht/~kennylevinsen/greetd</param>
<param name="scm">git</param>
- <param name="revision">0.7.0</param>
+ <param name="revision">0.8.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
</service>
++++++ greetd-0.7.0.obscpio -> greetd-0.8.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/.gitignore new/greetd-0.8.0/.gitignore
--- old/greetd-0.7.0/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/greetd-0.8.0/.gitignore 2021-09-05 21:15:06.000000000 +0200
@@ -0,0 +1,2 @@
+/target
+**/*.rs.bk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/Cargo.lock new/greetd-0.8.0/Cargo.lock
--- old/greetd-0.7.0/Cargo.lock 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/Cargo.lock 2021-09-05 21:15:06.000000000 +0200
@@ -1,122 +1,125 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
+version = 3
+
[[package]]
name = "agreety"
-version = "0.6.0"
+version = "0.8.0"
dependencies = [
- "enquote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "greetd_ipc 0.6.0",
- "inish 0.1.0",
- "nix 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "rpassword 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "enquote",
+ "getopts",
+ "greetd_ipc",
+ "inish",
+ "nix",
+ "rpassword",
]
[[package]]
name = "arc-swap"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b585a98a234c46fc563103e9278c9391fde1f4e6850334da895d27edb9580f62"
[[package]]
name = "async-trait"
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26c4f3195085c36ea8d24d32b2f828d23296a9370a28aa39d111f6f16bef9f3b"
dependencies = [
- "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
+name = "autocfg"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+
+[[package]]
name = "bitflags"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]]
name = "bytes"
-version = "0.5.4"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
[[package]]
name = "cc"
version = "1.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "404b1fe4f65288577753b17e3b36a04596ee784493ec249bf81c7f2d2acd751c"
[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]]
-name = "enquote"
-version = "1.0.3"
+name = "cfg-if"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
-name = "fakegreet"
-version = "0.6.0"
-dependencies = [
- "greetd_ipc 0.6.0",
- "serde 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)",
- "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
+name = "enquote"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ec878a5d2f3b6e9eaee72373dd23414cfc7d353104741471bec712ef241a66e"
[[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
+name = "fakegreet"
+version = "0.8.0"
dependencies = [
- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "greetd_ipc",
+ "serde",
+ "thiserror",
+ "tokio",
]
[[package]]
-name = "fuchsia-zircon-sys"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
name = "getopts"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
dependencies = [
- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width",
]
[[package]]
name = "greetd"
-version = "0.6.0"
+version = "0.8.0"
dependencies = [
- "async-trait 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
- "enquote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "greetd_ipc 0.6.0",
- "inish 0.1.0",
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "nix 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "pam-sys 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)",
- "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "async-trait",
+ "enquote",
+ "getopts",
+ "greetd_ipc",
+ "inish",
+ "libc",
+ "nix",
+ "pam-sys",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "users",
]
[[package]]
name = "greetd_ipc"
-version = "0.6.0"
+version = "0.8.0"
dependencies = [
- "async-trait 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)",
- "thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "async-trait",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
]
[[package]]
@@ -124,403 +127,283 @@
version = "0.1.0"
[[package]]
-name = "iovec"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "itoa"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
[[package]]
name = "libc"
-version = "0.2.70"
+version = "0.2.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929"
[[package]]
name = "log"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.10",
]
[[package]]
name = "memchr"
version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
[[package]]
name = "mio"
-version = "0.6.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "mio-named-pipes"
-version = "0.1.6"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7"
dependencies = [
- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "mio-uds"
-version = "0.6.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+ "log",
+ "miow",
+ "ntapi",
+ "winapi",
]
[[package]]
name = "miow"
-version = "0.2.1"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897"
dependencies = [
- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "socket2",
+ "winapi",
]
[[package]]
-name = "miow"
-version = "0.3.3"
+name = "nix"
+version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2"
dependencies = [
- "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
]
[[package]]
-name = "net2"
-version = "0.2.34"
+name = "ntapi"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2"
dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi",
]
[[package]]
-name = "nix"
-version = "0.17.0"
+name = "once_cell"
+version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "cc 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)",
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-]
+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
[[package]]
name = "pam-sys"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd4858311a097f01a0006ef7d0cd50bca81ec430c949d7bf95cbefd202282434"
dependencies = [
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
]
[[package]]
name = "pin-project-lite"
-version = "0.1.5"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827"
[[package]]
name = "proc-macro2"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319"
dependencies = [
- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid",
]
[[package]]
name = "quote"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42934bc9c8ab0d3b273a16d8551c8f0fcff46be73276ca083ec2414c15c4ba5e"
dependencies = [
- "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
]
[[package]]
-name = "redox_syscall"
-version = "0.1.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
name = "rpassword"
-version = "4.0.5"
+version = "5.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9"
dependencies = [
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+ "winapi",
]
[[package]]
name = "ryu"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"
[[package]]
name = "serde"
version = "1.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c"
dependencies = [
- "serde_derive 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984"
dependencies = [
- "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
name = "serde_json"
version = "1.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2"
dependencies = [
- "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "ryu 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itoa",
+ "ryu",
+ "serde",
]
[[package]]
name = "signal-hook-registry"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
dependencies = [
- "arc-swap 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
+ "arc-swap",
+ "libc",
]
[[package]]
-name = "slab"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
name = "socket2"
-version = "0.3.12"
+version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 1.0.0",
+ "libc",
+ "winapi",
]
[[package]]
name = "syn"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4696caa4048ac7ce2bcd2e484b3cef88c1004e41b8e945a277e2c25dc0b72060"
dependencies = [
- "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
]
[[package]]
name = "thiserror"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "467e5ff447618a916519a4e0d62772ab14f434897f3d63f05d8700ef1e9b22c1"
dependencies = [
- "thiserror-impl 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e63c1091225b9834089b429bc4a2e01223470e3183e891582909e9d1c4cb55d9"
dependencies = [
- "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
name = "tokio"
-version = "0.2.11"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ca04cec6ff2474c638057b65798f60ac183e5e79d3448bb7163d36a39cff6ec"
dependencies = [
- "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg",
+ "bytes",
+ "libc",
+ "memchr",
+ "mio",
+ "once_cell",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "tokio-macros",
+ "winapi",
]
[[package]]
name = "tokio-macros"
-version = "0.2.4"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42517d2975ca3114b22a16192634e8241dc5cc1f130be194645970cc1c371494"
dependencies = [
- "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
name = "unicode-width"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
[[package]]
name = "unicode-xid"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
[[package]]
name = "users"
-version = "0.9.1"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032"
dependencies = [
- "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+ "log",
]
[[package]]
-name = "void"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
name = "winapi"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
dependencies = [
- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
]
[[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "ws2_32-sys"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[metadata]
-"checksum arc-swap 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b585a98a234c46fc563103e9278c9391fde1f4e6850334da895d27edb9580f62"
-"checksum async-trait 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)" = "26c4f3195085c36ea8d24d32b2f828d23296a9370a28aa39d111f6f16bef9f3b"
-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-"checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1"
-"checksum cc 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)" = "404b1fe4f65288577753b17e3b36a04596ee784493ec249bf81c7f2d2acd751c"
-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-"checksum enquote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ec878a5d2f3b6e9eaee72373dd23414cfc7d353104741471bec712ef241a66e"
-"checksum fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
-"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-"checksum libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)" = "3baa92041a6fec78c687fa0cc2b3fae8884f743d672cf551bed1d6dac6988d0f"
-"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-"checksum mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)" = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
-"checksum mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3"
-"checksum mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-"checksum miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "396aa0f2003d7df8395cb93e09871561ccc3e785f0acb369170e8cc74ddf9226"
-"checksum net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
-"checksum nix 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
-"checksum pam-sys 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "cd4858311a097f01a0006ef7d0cd50bca81ec430c949d7bf95cbefd202282434"
-"checksum pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f"
-"checksum proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)" = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319"
-"checksum quote 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "42934bc9c8ab0d3b273a16d8551c8f0fcff46be73276ca083ec2414c15c4ba5e"
-"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-"checksum rpassword 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f"
-"checksum ryu 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"
-"checksum serde 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)" = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c"
-"checksum serde_derive 1.0.110 (registry+https://github.com/rust-lang/crates.io-index)" = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984"
-"checksum serde_json 1.0.53 (registry+https://github.com/rust-lang/crates.io-index)" = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2"
-"checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
-"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-"checksum socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
-"checksum syn 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)" = "4696caa4048ac7ce2bcd2e484b3cef88c1004e41b8e945a277e2c25dc0b72060"
-"checksum thiserror 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "467e5ff447618a916519a4e0d62772ab14f434897f3d63f05d8700ef1e9b22c1"
-"checksum thiserror-impl 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "e63c1091225b9834089b429bc4a2e01223470e3183e891582909e9d1c4cb55d9"
-"checksum tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8fdd17989496f49cdc57978c96f0c9fe5e4a58a8bddc6813c449a4624f6a030b"
-"checksum tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f4b1e7ed7d5d4c2af3d999904b0eebe76544897cdbfb2b9684bed2174ab20f7c"
-"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-"checksum users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c72f4267aea0c3ec6d07eaabea6ead7c5ddacfafc5e22bcf8d186706851fb4cf"
-"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/README.md new/greetd-0.8.0/README.md
--- old/greetd-0.7.0/README.md 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/README.md 2021-09-05 21:15:06.000000000 +0200
@@ -46,7 +46,7 @@
# Create the greeter user
sudo useradd -M -G video greeter
-sudo chown -R greeter:greeter /etc/greetd/
+sudo chmod -R go+r /etc/greetd/
# Look in the configuration file `/etc/greetd/config.toml` and edit as appropriate.
# When done, enable and start greetd
@@ -56,3 +56,7 @@
## How do I write my own greeter?
All you need to do is an application that can speak the greetd IPC protocol, which is documented in `greetd-ipc(7)`. See gtkgreet or agreety for inspiration.
+
+# How to discuss
+
+Go to #kennylevinsen @ irc.libera.chat to discuss, or use [~kennylevinsen/greetd-devel@lists.sr.ht](https://lists.sr.ht/~kennylevinsen/greetd-devel).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/agreety/Cargo.toml new/greetd-0.8.0/agreety/Cargo.toml
--- old/greetd-0.7.0/agreety/Cargo.toml 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/agreety/Cargo.toml 2021-09-05 21:15:06.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "agreety"
-version = "0.6.0"
+version = "0.8.0"
authors = ["Kenny Levinsen"]
edition = "2018"
license = "GPL-3.0"
@@ -10,7 +10,7 @@
[dependencies]
greetd_ipc = { path = "../greetd_ipc", features = ["sync-codec"]}
inish = { path = "../inish"}
-rpassword = "4.0"
+rpassword = "5.0"
getopts = "0.2"
enquote = "1.0.3"
-nix = "0.17"
\ No newline at end of file
+nix = "0.19"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/fakegreet/.gitignore new/greetd-0.8.0/fakegreet/.gitignore
--- old/greetd-0.7.0/fakegreet/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/greetd-0.8.0/fakegreet/.gitignore 2021-09-05 21:15:06.000000000 +0200
@@ -0,0 +1,2 @@
+/target
+**/*.rs.bk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/fakegreet/Cargo.toml new/greetd-0.8.0/fakegreet/Cargo.toml
--- old/greetd-0.7.0/fakegreet/Cargo.toml 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/fakegreet/Cargo.toml 2021-09-05 21:15:06.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "fakegreet"
-version = "0.6.0"
+version = "0.8.0"
authors = ["Kenny Levinsen"]
edition = "2018"
license = "GPL-3.0"
@@ -10,5 +10,5 @@
[dependencies]
serde = { version = "1.0", features = ["derive"] }
greetd_ipc = { path = "../greetd_ipc", features = ["tokio-codec"] }
-tokio = { version = "0.2", features = ["process"] }
+tokio = { version = "1.0", features = ["process"] }
thiserror = "1.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/fakegreet/src/main.rs new/greetd-0.8.0/fakegreet/src/main.rs
--- old/greetd-0.7.0/fakegreet/src/main.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/fakegreet/src/main.rs 2021-09-05 21:15:06.000000000 +0200
@@ -6,7 +6,7 @@
net::{UnixListener, UnixStream},
process::Command,
task,
- time::delay_for,
+ time::sleep,
};
use crate::error::Error;
@@ -82,7 +82,7 @@
|| s.password != Some("password".to_string())
|| response != Some("9".to_string())
{
- delay_for(Duration::from_millis(2000)).await;
+ sleep(Duration::from_millis(2000)).await;
return Err(Error::AuthError("nope".to_string()));
}
s.ok = true;
@@ -94,7 +94,7 @@
if !self.inner.borrow().ok {
return Err(Error::Error("not yet dammit".to_string()));
}
- delay_for(Duration::from_millis(5000)).await;
+ sleep(Duration::from_millis(5000)).await;
Ok(())
}
@@ -151,7 +151,7 @@
std::env::set_var("GREETD_SOCK", path);
let _ = std::fs::remove_file(path);
- let mut listener =
+ let listener =
UnixListener::bind(path).map_err(|e| format!("unable to open listener: {}", e))?;
let arg = env::args().nth(1).expect("need argument");
@@ -174,7 +174,7 @@
}
}
-#[tokio::main]
+#[tokio::main(flavor = "current_thread")]
async fn main() {
let res = task::LocalSet::new()
.run_until(async move { server().await })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/.gitignore new/greetd-0.8.0/greetd/.gitignore
--- old/greetd-0.7.0/greetd/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/greetd-0.8.0/greetd/.gitignore 2021-09-05 21:15:06.000000000 +0200
@@ -0,0 +1,2 @@
+/target
+**/*.rs.bk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/Cargo.toml new/greetd-0.8.0/greetd/Cargo.toml
--- old/greetd-0.7.0/greetd/Cargo.toml 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd/Cargo.toml 2021-09-05 21:15:06.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "greetd"
-version = "0.6.0"
+version = "0.8.0"
authors = ["Kenny Levinsen"]
edition = "2018"
license = "GPL-3.0"
@@ -11,16 +11,16 @@
debug = []
[dependencies]
-nix = "0.17"
+nix = "0.19"
pam-sys = "0.5.6"
-users = "0.9.1"
+users = "0.11.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
greetd_ipc = { path = "../greetd_ipc", features = ["tokio-codec"] }
inish = { path = "../inish" }
libc = "0.2"
-tokio = { version = "0.2", features = ["net", "sync", "macros", "signal", "rt-util", "io-util", "time"] }
+tokio = { version = "1.0", features = ["net", "sync", "macros", "signal", "rt", "io-util", "time"] }
getopts = "0.2"
thiserror = "1.0"
async-trait = "0.1"
-enquote = "1.0.3"
\ No newline at end of file
+enquote = "1.0.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/src/config/mod.rs new/greetd-0.8.0/greetd/src/config/mod.rs
--- old/greetd-0.7.0/greetd/src/config/mod.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd/src/config/mod.rs 2021-09-05 21:15:06.000000000 +0200
@@ -5,6 +5,8 @@
use super::error::Error;
+const RUNFILE: &str = "/run/greetd.run";
+
#[derive(Debug, Eq, PartialEq)]
pub enum VtSelection {
Next,
@@ -33,17 +35,20 @@
#[derive(Debug, Eq, PartialEq, Default)]
pub struct ConfigTerminal {
pub vt: VtSelection,
+ pub switch: bool,
}
#[derive(Debug, Eq, PartialEq)]
pub struct ConfigGeneral {
pub source_profile: bool,
+ pub runfile: String,
}
impl Default for ConfigGeneral {
fn default() -> Self {
ConfigGeneral {
source_profile: true,
+ runfile: RUNFILE.to_string(),
}
}
}
@@ -100,7 +105,7 @@
};
Ok(ConfigFile {
- terminal: ConfigTerminal { vt },
+ terminal: ConfigTerminal { vt, switch: true },
default_session: ConfigSession {
user: greeter_user,
command: greeter,
@@ -161,18 +166,31 @@
.map_err(|e| format!("could not parse vt number: {}", e))?,
),
},
+ switch: section
+ .get("switch")
+ .unwrap_or(&"true")
+ .parse()
+ .map_err(|e| format!("could not parse switch: {}", e))?,
}),
None => Err("no terminal specified"),
}?;
let general = match config.get("general") {
- Some(section) => ConfigGeneral {
- source_profile: section
- .get("source_profile")
- .unwrap_or(&"true")
- .parse()
- .map_err(|e| format!("could not parse source_profile: {}", e))?,
- },
+ Some(section) => {
+ let runfilestr = section.get("runfile").unwrap_or(&RUNFILE);
+ let runfile = maybe_unquote(runfilestr)
+ .map_err(|e| format!("unable to read general.runfile: {}", e))?;
+
+ ConfigGeneral {
+ source_profile: section
+ .get("source_profile")
+ .unwrap_or(&"true")
+ .parse()
+ .map_err(|e| format!("could not parse source_profile: {}", e))?,
+ runfile,
+ }
+ }
+
None => Default::default(),
};
@@ -288,7 +306,8 @@
config,
ConfigFile {
terminal: ConfigTerminal {
- vt: VtSelection::Specific(1)
+ vt: VtSelection::Specific(1),
+ switch: true,
},
default_session: ConfigSession {
command: "agreety".to_string(),
@@ -310,7 +329,8 @@
config,
ConfigFile {
terminal: ConfigTerminal {
- vt: VtSelection::Next
+ vt: VtSelection::Next,
+ switch: true,
},
default_session: ConfigSession {
command: "agreety".to_string(),
@@ -337,7 +357,8 @@
config,
ConfigFile {
terminal: ConfigTerminal {
- vt: VtSelection::Specific(1)
+ vt: VtSelection::Specific(1),
+ switch: true,
},
default_session: ConfigSession {
command: "agreety".to_string(),
@@ -364,7 +385,8 @@
config,
ConfigFile {
terminal: ConfigTerminal {
- vt: VtSelection::Specific(1)
+ vt: VtSelection::Specific(1),
+ switch: true,
},
default_session: ConfigSession {
command: "agreety".to_string(),
@@ -386,6 +408,7 @@
[terminal]\nvt = 1\n[default_session]\ncommand = \"agreety\"
[general]
source_profile = false
+runfile = \"/path/to/greetd.state\"
",
)
.expect("config didn't parse");
@@ -393,7 +416,8 @@
config,
ConfigFile {
terminal: ConfigTerminal {
- vt: VtSelection::Specific(1)
+ vt: VtSelection::Specific(1),
+ switch: true,
},
default_session: ConfigSession {
command: "agreety".to_string(),
@@ -401,6 +425,7 @@
},
general: ConfigGeneral {
source_profile: false,
+ runfile: "/path/to/greetd.state".to_string(),
},
initial_session: None,
}
@@ -433,7 +458,8 @@
config,
ConfigFile {
terminal: ConfigTerminal {
- vt: VtSelection::Specific(1)
+ vt: VtSelection::Specific(1),
+ switch: true,
},
default_session: ConfigSession {
command: "agreety".to_string(),
@@ -455,7 +481,8 @@
config,
ConfigFile {
terminal: ConfigTerminal {
- vt: VtSelection::Next
+ vt: VtSelection::Next,
+ switch: true,
},
default_session: ConfigSession {
command: "agreety".to_string(),
@@ -477,7 +504,8 @@
config,
ConfigFile {
terminal: ConfigTerminal {
- vt: VtSelection::Current
+ vt: VtSelection::Current,
+ switch: true,
},
default_session: ConfigSession {
command: "agreety".to_string(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/src/context.rs new/greetd-0.8.0/greetd/src/context.rs
--- old/greetd-0.7.0/greetd/src/context.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd/src/context.rs 2021-09-05 21:15:06.000000000 +0200
@@ -1,10 +1,14 @@
-use std::time::{Duration, Instant};
+use std::{
+ fs::File,
+ path::Path,
+ time::{Duration, Instant},
+};
use nix::{
sys::wait::{waitpid, WaitPidFlag, WaitStatus},
unistd::alarm,
};
-use tokio::{sync::RwLock, time::delay_for};
+use tokio::{sync::RwLock, time::sleep};
use crate::{
error::Error,
@@ -41,6 +45,7 @@
pam_service: String,
term_mode: TerminalMode,
source_profile: bool,
+ runfile: String,
}
impl Context {
@@ -51,6 +56,7 @@
pam_service: String,
term_mode: TerminalMode,
source_profile: bool,
+ runfile: String,
) -> Context {
Context {
inner: RwLock::new(ContextInner {
@@ -64,6 +70,7 @@
pam_service,
term_mode,
source_profile,
+ runfile,
}
}
@@ -131,6 +138,18 @@
Ok(())
}
+ /// Check if this is the first time greetd starts since boot, or if it restarted for any reason
+ pub fn is_first_run(&self) -> bool {
+ !Path::new(&self.runfile).exists()
+ }
+
+ /// Create runfile used to check if greetd was already started since boot
+ pub fn create_runfile(&self) {
+ if let Err(err) = File::create(&self.runfile) {
+ eprintln!("could not create runfile: {}", err);
+ }
+ }
+
/// Directly start an initial session, bypassing the normal scheduling.
pub async fn start_user_session(&self, user: &str, cmd: Vec<String>) -> Result<(), Error> {
{
@@ -341,7 +360,7 @@
return Err("greeter exited without creating a session".into());
}
if sesion_length < Duration::from_secs(1) {
- delay_for(Duration::from_secs(1)).await;
+ sleep(Duration::from_secs(1)).await;
}
inner.current = Some(SessionChildSet {
child: self.start_greeter().await?,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/src/main.rs new/greetd-0.8.0/greetd/src/main.rs
--- old/greetd-0.7.0/greetd/src/main.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd/src/main.rs 2021-09-05 21:15:06.000000000 +0200
@@ -29,7 +29,7 @@
worker::main(&sock)
}
-#[tokio::main]
+#[tokio::main(flavor = "current_thread")]
async fn main() {
let config = match config::read_config() {
Ok(config) => config,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/src/server.rs new/greetd-0.8.0/greetd/src/server.rs
--- old/greetd-0.7.0/greetd/src/server.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd/src/server.rs 2021-09-05 21:15:06.000000000 +0200
@@ -31,6 +31,17 @@
Ok(())
}
+fn wait_vt(term_mode: &TerminalMode) -> Result<(), Error> {
+ match term_mode {
+ TerminalMode::Terminal { path, vt, .. } => {
+ let term = Terminal::open(path)?;
+ term.vt_waitactive(*vt)?;
+ }
+ TerminalMode::Stdin => (),
+ }
+ Ok(())
+}
+
fn wrap_result<T>(res: Result<T, Error>) -> Response {
match res {
Ok(_) => Response::Success,
@@ -145,14 +156,14 @@
TerminalMode::Terminal {
path: format!("/dev/tty{}", vt),
vt,
- switch: true,
+ switch: config.file.terminal.switch,
}
}
VtSelection::None => TerminalMode::Stdin,
VtSelection::Specific(vt) => TerminalMode::Terminal {
path: format!("/dev/tty{}", vt),
vt,
- switch: true,
+ switch: config.file.terminal.switch,
},
};
return Ok(term);
@@ -211,10 +222,14 @@
let uid = Uid::from_raw(u.uid());
let gid = Gid::from_raw(u.primary_group_id());
- let mut listener = Listener::create(uid, gid)?;
+ let listener = Listener::create(uid, gid)?;
let term_mode = get_tty(&config)?;
+ if !config.file.terminal.switch {
+ wait_vt(&term_mode).map_err(|e| format!("unable to wait VT: {}", e))?;
+ }
+
let ctx = Rc::new(Context::new(
config.file.default_session.command,
config.file.default_session.user,
@@ -222,9 +237,10 @@
service.to_string(),
term_mode.clone(),
config.file.general.source_profile,
+ config.file.general.runfile,
));
- if let Some(s) = config.file.initial_session {
+ if let (Some(s), true) = (config.file.initial_session, ctx.is_first_run()) {
if let Err(e) = ctx.start_user_session(&s.user, vec![s.command]).await {
eprintln!("unable to start greeter: {}", e);
reset_vt(&term_mode).map_err(|e| format!("unable to reset VT: {}", e))?;
@@ -238,6 +254,8 @@
std::process::exit(1);
}
+ ctx.create_runfile();
+
let mut alarm = signal(SignalKind::alarm()).expect("unable to listen for SIGALRM");
let mut child = signal(SignalKind::child()).expect("unable to listen for SIGCHLD");
let mut term = signal(SignalKind::terminate()).expect("unable to listen for SIGTERM");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/src/session/interface.rs new/greetd-0.8.0/greetd/src/session/interface.rs
--- old/greetd-0.7.0/greetd/src/session/interface.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd/src/session/interface.rs 2021-09-05 21:15:06.000000000 +0200
@@ -105,7 +105,7 @@
let cur_exe = std::env::current_exe()?;
let bin = CString::new(cur_exe.to_str().expect("unable to get current exe name"))?;
- let child = match fork().map_err(|e| format!("unable to fork: {}", e))? {
+ let child = match unsafe { fork() }.map_err(|e| format!("unable to fork: {}", e))? {
ForkResult::Parent { child, .. } => child,
ForkResult::Child => {
execv(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/src/session/worker.rs new/greetd-0.8.0/greetd/src/session/worker.rs
--- old/greetd-0.7.0/greetd/src/session/worker.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd/src/session/worker.rs 2021-09-05 21:15:06.000000000 +0200
@@ -225,7 +225,7 @@
// PAM is weird and gets upset if you exec from the process that opened
// the session, registering it automatically as a log-out. Thus, we must
// exec in a new child.
- let child = match fork().map_err(|e| format!("unable to fork: {}", e))? {
+ let child = match unsafe { fork() }.map_err(|e| format!("unable to fork: {}", e))? {
ForkResult::Parent { child, .. } => child,
ForkResult::Child => {
// It is important that we do *not* return from here by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd/src/terminal/mod.rs new/greetd-0.8.0/greetd/src/terminal/mod.rs
--- old/greetd-0.7.0/greetd/src/terminal/mod.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd/src/terminal/mod.rs 2021-09-05 21:15:06.000000000 +0200
@@ -111,6 +111,14 @@
Ok(())
}
+ /// Waits for specified VT to become active.
+ pub fn vt_waitactive(&self, target_vt: usize) -> Result<(), Error> {
+ if let Err(v) = unsafe { ioctl::vt_waitactive(self.fd, target_vt as i32) } {
+ return Err(format!("terminal: unable to wait for activation: {}", v).into());
+ }
+ Ok(())
+ }
+
/// Set the VT mode to VT_AUTO with everything cleared.
fn vt_mode_clean(&self) -> Result<(), Error> {
let mode = ioctl::vt_mode {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd_ipc/Cargo.toml new/greetd-0.8.0/greetd_ipc/Cargo.toml
--- old/greetd-0.7.0/greetd_ipc/Cargo.toml 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd_ipc/Cargo.toml 2021-09-05 21:15:06.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "greetd_ipc"
-version = "0.6.0"
+version = "0.8.0"
authors = ["Kenny Levinsen"]
edition = "2018"
license = "GPL-3.0"
@@ -20,6 +20,6 @@
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
-tokio = { version = "0.2", features = ["io-util"], optional = true }
+tokio = { version = "1.0", features = ["io-util"], optional = true }
async-trait = { version = "0.1", optional = true }
thiserror = { version = "1.0", optional = true }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/greetd_ipc/src/codec/tokio.rs new/greetd-0.8.0/greetd_ipc/src/codec/tokio.rs
--- old/greetd-0.7.0/greetd_ipc/src/codec/tokio.rs 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/greetd_ipc/src/codec/tokio.rs 2021-09-05 21:15:06.000000000 +0200
@@ -8,7 +8,7 @@
//! use greetd_ipc::{Request, Response};
//! use greetd_ipc::codec::TokioCodec;
//!
-//! #[tokio::main]
+//! #[tokio::main(flavor = "current_thread")]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! let mut stream = UnixStream::connect(env::var("GREETD_SOCK")?).await?;
//! Request::CreateSession { username: "john".to_string() }.write_to(&mut stream).await?;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/man/Makefile new/greetd-0.8.0/man/Makefile
--- old/greetd-0.7.0/man/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ new/greetd-0.8.0/man/Makefile 2021-09-05 21:15:06.000000000 +0200
@@ -0,0 +1,33 @@
+SCDOC=$(shell pkg-config --variable=scdoc scdoc)
+PREFIX?=/usr/local
+MANDIR?=$(PREFIX)/share/man
+DESTDIR?=
+
+agreety.1: agreety-1.scd
+ $(SCDOC) < agreety-1.scd > agreety.1
+
+greetd.1: greetd-1.scd
+ $(SCDOC) < greetd-1.scd > greetd.1
+
+greetd.5: greetd-5.scd
+ $(SCDOC) < greetd-5.scd > greetd.5
+
+greetd-ipc.7: greetd-ipc-7.scd
+ $(SCDOC) < greetd-ipc-7.scd > greetd-ipc.7
+
+all: agreety.1 greetd.1 greetd.5 greetd-ipc.7
+
+install:
+ mkdir -p $(DESTDIR)$(MANDIR)/man1
+ mkdir -p $(DESTDIR)$(MANDIR)/man5
+ mkdir -p $(DESTDIR)$(MANDIR)/man7
+ install -m644 agreety.1 $(DESTDIR)$(MANDIR)/man1/agreety.1
+ install -m644 greetd.1 $(DESTDIR)$(MANDIR)/man1/greetd.1
+ install -m644 greetd.5 $(DESTDIR)$(MANDIR)/man5/greetd.5
+ install -m644 greetd-ipc.7 $(DESTDIR)$(MANDIR)/man7/greetd-ipc.7
+
+clean:
+ rm -f agreety.1 greetd.1 greetd.5 greetd-ipc.7
+
+.DEFAULT_GOAL=all
+.PHONY: all install clean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/man/greetd-5.scd new/greetd-0.8.0/man/greetd-5.scd
--- old/greetd-0.7.0/man/greetd-5.scd 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/man/greetd-5.scd 2021-09-05 21:15:06.000000000 +0200
@@ -37,6 +37,16 @@
Use of a specific VT with appropriate conflict avoidance is recommended.
+*switch* = true|false
+ Whether or not to switch to *vt*.
+
+ If set to false and *vt* is not currently active VT, greetd will wait for
+ *vt* to become active, before doing anything including starting greeter.
+
+ If set to true, greetd will switch current VT to *vt*,
+
+ Default is true.
+
## general
This section contains general configuration that does not fit in other sections
@@ -46,6 +56,13 @@
Whether or not to source ~/.profile and /etc/profile if present when running
commands. Defaults to true.
+*runfile* = path-to-runfile
+ Location of greetd's runfile that is created during the first run to prevent
+ the initial session from being run again on session termination or on greetd
+ restart.
+
+ This file should be in a location that is cleared during a reboot.
+
## default_session
This section describes the default session, also referred to as the *greeter*.
@@ -66,6 +83,11 @@
This optional section describes the initial session, commonly referred to as
"auto-login".
+The initial session will only be executed during the first run of greetd since
+boot in order to ensure signing out works properly and to prevent security
+issues whenever greetd or the greeter exit. This is checked through the
+presence of the runfile.
+
*command* = command-line
The command-line to run to start the initial session, e.g. "sway". The
initial session will be run when exactly once when greetd is initially
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.7.0/rustfmt.toml new/greetd-0.8.0/rustfmt.toml
--- old/greetd-0.7.0/rustfmt.toml 2020-12-22 12:29:48.000000000 +0100
+++ new/greetd-0.8.0/rustfmt.toml 2021-09-05 21:15:06.000000000 +0200
@@ -1,2 +1,2 @@
unstable_features = true
-merge_imports = true
+imports_granularity = "Crate"
++++++ greetd.obsinfo ++++++
--- /var/tmp/diff_new_pack.nUnfuz/_old 2021-11-01 18:36:03.689347761 +0100
+++ /var/tmp/diff_new_pack.nUnfuz/_new 2021-11-01 18:36:03.689347761 +0100
@@ -1,5 +1,5 @@
name: greetd
-version: 0.7.0
-mtime: 1608636588
-commit: b25b72ae51b3b6dca945b6078e55b593b02fb7a5
+version: 0.8.0
+mtime: 1630869306
+commit: d2477a8f9c50097a689125304ea2a1e3660d274e
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/greetd/vendor.tar.gz /work/SRC/openSUSE:Factory/.greetd.new.1890/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 bucklespring for openSUSE:Factory checked in at 2021-11-01 18:35:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bucklespring (Old)
and /work/SRC/openSUSE:Factory/.bucklespring.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bucklespring"
Mon Nov 1 18:35:45 2021 rev:3 rq:928506 version:1.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/bucklespring/bucklespring.changes 2021-05-04 22:01:42.860437156 +0200
+++ /work/SRC/openSUSE:Factory/.bucklespring.new.1890/bucklespring.changes 2021-11-01 18:36:01.785346672 +0100
@@ -1,0 +2,7 @@
+Sun Oct 31 10:07:02 UTC 2021 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 1.5.1
+ * This is a no-change version update to properly propagate the
+ version number
+
+-------------------------------------------------------------------
Old:
----
bucklespring-1.5.0.tar.gz
New:
----
bucklespring-1.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bucklespring.spec ++++++
--- /var/tmp/diff_new_pack.0YdOUp/_old 2021-11-01 18:36:02.289346960 +0100
+++ /var/tmp/diff_new_pack.0YdOUp/_new 2021-11-01 18:36:02.293346963 +0100
@@ -18,14 +18,14 @@
Name: bucklespring
-Version: 1.5.0
+Version: 1.5.1
Release: 0
Summary: Nostalgia keyboard sound emulator
License: GPL-2.0-only
Group: Amusements/Toys/Other
URL: https://github.com/zevv/bucklespring
#Git-Clone: https://github.com/zevv/bucklespring.git
-Source: https://github.com/zevv/%{name}/archive/%{version}.tar.gz#/%{name}-%{versio…
+Source: https://github.com/zevv/%{name}/archive/v%{version}.tar.gz#/%{name}-%{versi…
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: pkgconfig(alure)
++++++ bucklespring-1.5.0.tar.gz -> bucklespring-1.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bucklespring-1.5.0/Makefile new/bucklespring-1.5.1/Makefile
--- old/bucklespring-1.5.0/Makefile 2021-01-21 12:54:15.000000000 +0100
+++ new/bucklespring-1.5.1/Makefile 2021-10-28 17:15:10.000000000 +0200
@@ -1,7 +1,7 @@
NAME := buckle
SRC := main.c
-VERSION := 1.4.0
+VERSION := 1.5.1
PATH_AUDIO ?= "./wav"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kdiskmark for openSUSE:Factory checked in at 2021-11-01 18:35:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdiskmark (Old)
and /work/SRC/openSUSE:Factory/.kdiskmark.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdiskmark"
Mon Nov 1 18:35:44 2021 rev:5 rq:928450 version:2.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdiskmark/kdiskmark.changes 2021-07-28 19:21:08.171549240 +0200
+++ /work/SRC/openSUSE:Factory/.kdiskmark.new.1890/kdiskmark.changes 2021-11-01 18:36:01.121346292 +0100
@@ -1,0 +2,9 @@
+Sun Oct 31 21:51:05 UTC 2021 - Dmitry Sidorov <jonmagon(a)gmail.com>
+
+- Update to version 2.3.0
+ * Added measurement time limit
+ * Fixed display of units above bars
+ * The pause between tests selector has been moved to the settings window
+ * Default value for threads of the first RND test is now one
+
+-------------------------------------------------------------------
Old:
----
KDiskMark-2.2.1.tar.gz
New:
----
KDiskMark-2.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdiskmark.spec ++++++
--- /var/tmp/diff_new_pack.3eBxUs/_old 2021-11-01 18:36:01.577346553 +0100
+++ /var/tmp/diff_new_pack.3eBxUs/_new 2021-11-01 18:36:01.577346553 +0100
@@ -18,7 +18,7 @@
Name: kdiskmark
-Version: 2.2.1
+Version: 2.3.0
Release: 0
Summary: A simple open-source disk benchmark tool for Linux distros
License: GPL-3.0-only
++++++ KDiskMark-2.2.1.tar.gz -> KDiskMark-2.3.0.tar.gz ++++++
++++ 5764 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-rpm-macros for openSUSE:Factory checked in at 2021-11-01 18:35:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-rpm-macros (Old)
and /work/SRC/openSUSE:Factory/.ghc-rpm-macros.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-rpm-macros"
Mon Nov 1 18:35:43 2021 rev:42 rq:928503 version:1.9.95
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-rpm-macros/ghc-rpm-macros.changes 2021-05-11 23:04:18.224918445 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-rpm-macros.new.1890/ghc-rpm-macros.changes 2021-11-01 18:36:00.473345922 +0100
@@ -1,0 +2,5 @@
+Mon Nov 1 05:59:41 UTC 2021 - Ond��ej S��kup <mimi.vx(a)gmail.com>
+
+- fix build, remove white space
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-rpm-macros.spec ++++++
--- /var/tmp/diff_new_pack.JfzDU8/_old 2021-11-01 18:36:00.961346201 +0100
+++ /var/tmp/diff_new_pack.JfzDU8/_new 2021-11-01 18:36:00.965346203 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-rpm-macros
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 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/
#
@@ -23,7 +23,7 @@
Summary: RPM Macros for building packages for GHC
License: GPL-3.0-or-later
Group: Development/Libraries/Other
-Url: https://fedoraproject.org/wiki/Haskell_SIG
+URL: https://fedoraproject.org/wiki/Haskell_SIG
# source gets updated with osc service dr
Source0: %{name}-%{version}.tar.xz
BuildRequires: xz
++++++ ghc-rpm-macros-1.9.95.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-rpm-macros-1.9.95/macros.ghc new/ghc-rpm-macros-1.9.95/macros.ghc
--- old/ghc-rpm-macros-1.9.95/macros.ghc 2020-01-07 15:05:11.902288793 +0100
+++ new/ghc-rpm-macros-1.9.95/macros.ghc 2021-11-01 06:58:54.695885947 +0100
@@ -97,7 +97,7 @@
if [ -f "$i" ]; then\
sed -i -e "s!%{buildroot}!!g" $i\
fi\
-done\
+done\
sort < %{basepkg}-devel.files | uniq > %{basepkg}-devel.filesx\
mv %{basepkg}-devel.filesx %{basepkg}-devel.files\
%{nil}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package leechcraft for openSUSE:Factory checked in at 2021-11-01 18:35:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/leechcraft (Old)
and /work/SRC/openSUSE:Factory/.leechcraft.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "leechcraft"
Mon Nov 1 18:35:43 2021 rev:66 rq:928557 version:0.6.70+git.14794.g33744ae6ce
Changes:
--------
--- /work/SRC/openSUSE:Factory/leechcraft/leechcraft-doc.changes 2021-09-07 21:22:15.429363572 +0200
+++ /work/SRC/openSUSE:Factory/.leechcraft.new.1890/leechcraft-doc.changes 2021-11-01 18:35:57.609344283 +0100
@@ -1,0 +2,6 @@
+Fri Oct 29 05:26:33 UTC 2021 - Dmitriy Perlow <dap.darkness(a)gmail.com>
+
+- Updated to 0.6.70-14794.g33744ae6ce snapshot:
+ * no changes for doc subpackages.
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/leechcraft/leechcraft.changes 2021-09-07 21:22:15.445363591 +0200
+++ /work/SRC/openSUSE:Factory/.leechcraft.new.1890/leechcraft.changes 2021-11-01 18:35:57.629344295 +0100
@@ -1,0 +2,6 @@
+Fri Oct 29 05:26:33 UTC 2021 - Dmitriy Perlow <dap.darkness(a)gmail.com>
+
+- Updated to 0.6.70-14794.g33744ae6ce snapshot:
+ * Qt5WebKit bcond.
+
+-------------------------------------------------------------------
Old:
----
leechcraft-0.6.70-14771-g9d21b0f8ad.tar.xz
New:
----
leechcraft-0.6.70-14794-g33744ae6ce.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ leechcraft-doc.spec ++++++
--- /var/tmp/diff_new_pack.hj1oLd/_old 2021-11-01 18:35:58.361344713 +0100
+++ /var/tmp/diff_new_pack.hj1oLd/_new 2021-11-01 18:35:58.365344716 +0100
@@ -16,10 +16,10 @@
#
-%define LEECHCRAFT_VERSION 0.6.70-14771-g9d21b0f8ad
+%define LEECHCRAFT_VERSION 0.6.70-14794-g33744ae6ce
Name: leechcraft-doc
-Version: 0.6.70+git.14771.g9d21b0f8ad
+Version: 0.6.70+git.14794.g33744ae6ce
Release: 0
Summary: Modular Internet Client Documentation
License: BSL-1.0
++++++ leechcraft.spec ++++++
--- /var/tmp/diff_new_pack.hj1oLd/_old 2021-11-01 18:35:58.381344725 +0100
+++ /var/tmp/diff_new_pack.hj1oLd/_new 2021-11-01 18:35:58.385344727 +0100
@@ -20,6 +20,7 @@
%global __requires_exclude (org.LC.common.1)|(org.LC.Blasq.1)|(SB2.1)|(Mellonetray.1)|(org.LC.Ooronee.1)
%bcond_without ffmpeg
+%bcond_with QtWebKit
%define plugin_dir %{_libdir}/leechcraft/plugins-qt5
%define translations_dir %{_datadir}/leechcraft/translations
@@ -27,7 +28,7 @@
%define qml_dir %{_datadir}/leechcraft/qml5
%define so_ver -qt5-0_6_75
-%define LEECHCRAFT_VERSION 0.6.70-14771-g9d21b0f8ad
+%define LEECHCRAFT_VERSION 0.6.70-14794-g33744ae6ce
%define db_postfix %{so_ver}_1
%define gui_postfix %{so_ver}_1
@@ -46,7 +47,7 @@
%define xsd_postfix %{so_ver}
Name: leechcraft
-Version: 0.6.70+git.14771.g9d21b0f8ad
+Version: 0.6.70+git.14794.g33744ae6ce
Release: 0
Summary: Modular Internet Client
License: BSL-1.0
@@ -81,9 +82,7 @@
BuildRequires: libsensors4-devel
BuildRequires: libtidy-devel
BuildRequires: pkgconfig
-%if 0%{?suse_version} > 1325
BuildRequires: wt-devel
-%endif
BuildRequires: cmake(Qt5LinguistTools) >= 5.13
BuildRequires: pkgconfig(Qt5Concurrent) >= 5.13
BuildRequires: pkgconfig(Qt5Core) >= 5.13
@@ -106,8 +105,9 @@
%ifnarch ppc ppc64 ppc64le s390 s390x
BuildRequires: cmake(Qt5WebEngineWidgets) >= 5.13
%endif
-# Will be removed soon! WIP: core, blogique, lhtr etc.
+%if %{with QtWebKit}
BuildRequires: pkgconfig(Qt5WebKitWidgets) >= 5.13
+%endif
BuildRequires: pkgconfig(Qt5Widgets) >= 5.13
BuildRequires: pkgconfig(Qt5X11Extras) >= 5.13
BuildRequires: pkgconfig(Qt5Xml) >= 5.13
@@ -184,8 +184,17 @@
Recommends: %{name}-visualnotifications
Suggests: %{name}-lastfmscrobble
+%ifarch ppc ppc64 ppc64le s390 s390x
+Obsoletes: %{name}-azoth
+%endif
+%if %{without QtWebKit}
+Obsoletes: %{name}-blogique
+%endif
Obsoletes: %{name}-choroid
Obsoletes: %{name}-harbinger
+%if %{without QtWebKit}
+Obsoletes: %{name}-lhtr
+%endif
Obsoletes: %{name}-nacheku
Obsoletes: %{name}-popishu
%ifarch ppc ppc64 ppc64le s390 s390x
@@ -232,8 +241,8 @@
Requires: %{name}-http = %{version}
Requires: libQt5Sql5-sqlite
Recommends: %{name}-poshuku = %{version}
-%if 0%{?suse_version} < 1325
-Obsoletes: %{name}-aggregator-webaccess
+%if %{without QtWebKit}
+Obsoletes: %{name}-aggregator-bodyfetch
%endif
%description aggregator
@@ -252,6 +261,7 @@
A web browser plugin is recommended to show the news in a fancy way.
+%if %{with QtWebKit}
%package aggregator-bodyfetch
Summary: LeechCraft Aggregator Bodyfetch Module
License: BSL-1.0
@@ -268,9 +278,9 @@
Fetching is done according to little scripts called recipes. For this to
work, a script provider like Qrosp should be installed. Please refer to the
guide to writing recipes if you are interested in writing your own.
+%endif
-%if 0%{?suse_version} > 1325
%package aggregator-webaccess
Summary: LeechCraft Aggregator Web Interface Module
License: BSL-1.0
@@ -281,7 +291,7 @@
WebAccess provides a basic web interface for the
Aggregator feed reader, so one can read news
articles from a mobile device or another machine.
-%endif
+
%package anhero
Summary: LeechCraft Crash handler Module
@@ -775,6 +785,7 @@
for LeechCraft Blasq.
+%if %{with QtWebKit}
%package blogique
Summary: LeechCraft Blogging client Module
License: BSL-1.0
@@ -811,6 +822,7 @@
%description blogique-metida
This package provides a LiveJournal subplugin for LeechCraft Blogique.
+%endif
%package certmgr
@@ -1259,6 +1271,7 @@
This package provides another Network Monitor plugin for Leechcraft.
+%if %{with QtWebKit}
%package lhtr
Summary: LeechCraft HTML WYSIWYG editor Module
License: BSL-1.0
@@ -1269,6 +1282,7 @@
%description lhtr
This package provides a HTML WYSIWYG editor plugin for Leechcraft,
usable with mail and blog modules.
+%endif
%package liznoo
@@ -1661,7 +1675,13 @@
Requires: %{name}-poshuku-backend = %{version}
Recommends: %{name}-imgaste = %{version}
Recommends: %{name}-intermutko = %{version}
+%if %{without QtWebKit}
+Obsoletes: %{name}-poshuku-dcac
+%endif
Obsoletes: %{name}-poshuku-foc
+%if %{without QtWebKit}
+Obsoletes: %{name}-poshuku-speeddial
+%endif
Obsoletes: %{name}-poshuku-webkitview
%description poshuku
@@ -1703,6 +1723,7 @@
* Whitelists for the Flash blocker.
+%if %{with QtWebKit}
%package poshuku-dcac
Summary: LeechCraft Poshuku DC/AC Module
License: BSL-1.0
@@ -1712,6 +1733,7 @@
%description poshuku-dcac
This package provides the DC/AC plugin for LeechCraft Poshuku
which inverts colors on web pages.
+%endif
%package poshuku-fatape
@@ -1819,6 +1841,7 @@
which can represent the URL of a web page as a QR code.
+%if %{with QtWebKit}
%package poshuku-speeddial
Summary: LeechCraft Poshuku Speed Dial Module
License: BSL-1.0
@@ -1827,6 +1850,7 @@
%description poshuku-speeddial
This package provides the Speed Dial support plugin for LeechCraft Poshuku.
+%endif
%package poshuku-webengineview
@@ -2267,7 +2291,11 @@
-DENABLE_UTIL_TESTS=True \
-DENABLE_ADVANCEDNOTIFICATIONS=True \
-DENABLE_AGGREGATOR=True \
+%if %{with QtWebKit}
-DENABLE_AGGREGATOR_BODYFETCH=True \
+%else
+ -DENABLE_AGGREGATOR_BODYFETCH=False \
+%endif
-DENABLE_AGGREGATOR_WEBACCESS=True \
-DENABLE_AUSCRIE=True \
%ifnarch ppc ppc64 ppc64le s390 s390x
@@ -2314,9 +2342,13 @@
-DENABLE_BLASQ_RAPPOR=True \
-DENABLE_BLASQ_SPEGNERSI=False \
-DENABLE_BLASQ_VANGOG=True \
+%if %{with QtWebKit}
-DENABLE_BLOGIQUE=True \
-DENABLE_BLOGIQUE_HESTIA=True \
-DENABLE_BLOGIQUE_METIDA=True \
+%else
+ -DENABLE_BLOGIQUE=False \
+%endif
-DENABLE_CERTMGR=True \
-DENABLE_CHOROID=False \
-DENABLE_CPULOAD=True \
@@ -2344,8 +2376,12 @@
-DENABLE_LAUGHTY=True \
-DENABLE_LAUNCHY=True \
-DENABLE_LEMON=True \
+%if %{with QtWebKit}
-DENABLE_LHTR=True \
-DWITH_LHTR_HTML=True \
+%else
+ -DENABLE_LHTR=False \
+%endif
-DENABLE_LIZNOO=True \
-DENABLE_LMP=True \
-DENABLE_LMP_BRAINSLUGZ=True \
@@ -2394,8 +2430,12 @@
-DENABLE_IDN=True \
-DENABLE_POSHUKU_AUTOSEARCH=True \
-DENABLE_POSHUKU_CLEANWEB=True \
+%if %{with QtWebKit}
-DENABLE_POSHUKU_DCAC=True \
-DENABLE_POSHUKU_DCAC_TESTS=True \
+%else
+ -DENABLE_POSHUKU_DCAC=False \
+%endif
-DENABLE_POSHUKU_FATAPE=True \
-DENABLE_POSHUKU_FILESCHEME=True \
-DENABLE_POSHUKU_FUA=True \
@@ -2404,7 +2444,11 @@
-DENABLE_POSHUKU_ONLINEBOOKMARKS_DELICIOUS=True \
-DENABLE_POSHUKU_ONLINEBOOKMARKS_READITLATER=True \
-DENABLE_POSHUKU_QRD=True \
+%if %{with QtWebKit}
-DENABLE_POSHUKU_SPEEDDIAL=True \
+%else
+ -DENABLE_POSHUKU_SPEEDDIAL=False \
+%endif
-DENABLE_POSHUKU_WEBENGINEVIEW=True \
-DENABLE_POSHUKU_WEBENGINEVIEW_TESTS=True \
-DENABLE_POSHUKU_WEBKITVIEW=False \
@@ -2530,20 +2574,20 @@
%{translations_dir}/*craft_aggregator_??.qm
%{translations_dir}/*craft_aggregator_??_??.qm
%{plugin_dir}/*craft_aggregator.so
+%dir %{_datadir}/leechcraft/scripts
+%if %{with QtWebKit}
%files aggregator-bodyfetch
%defattr(-,root,root)
%{plugin_dir}/*craft_aggregator_bodyfetch.so
-%dir %{_datadir}/leechcraft/scripts
-%{_datadir}/leechcraft/scripts/aggregator/
+%{_datadir}/leechcraft/scripts/aggregator
+%endif
-%if 0%{?suse_version} > 1325
%files aggregator-webaccess
%defattr(-,root,root)
%{plugin_dir}/*craft_aggregator_webaccess.so
%{settings_dir}/aggregatorwebaccesssettings.xml
%{translations_dir}/*craft_aggregator_webaccess*.qm
-%endif
%files anhero
%defattr(-,root,root)
@@ -2761,6 +2805,7 @@
%{plugin_dir}/lib%{name}_blasq_vangog.so
%{translations_dir}/*craft_blasq_vangog*.qm
+%if %{with QtWebKit}
%files blogique
%defattr(-,root,root)
%{plugin_dir}/lib%{name}_blogique.so
@@ -2781,6 +2826,7 @@
%{plugin_dir}/lib%{name}_blogique_metida.so
%{settings_dir}/blogiquemetidasettings.xml
%{translations_dir}/*craft_blogique_metida*.qm
+%endif
%files certmgr
%defattr(-,root,root)
@@ -2973,11 +3019,13 @@
%{translations_dir}/*craft_lemon_*.qm
%{settings_dir}/lemonsettings.xml
+%if %{with QtWebKit}
%files lhtr
%defattr(-,root,root)
%{plugin_dir}/lib%{name}_lhtr.so
%{translations_dir}/*craft_lhtr_*.qm
%{settings_dir}/lhtrsettings.xml
+%endif
%files liznoo
%defattr(-,root,root)
@@ -3181,12 +3229,14 @@
%{translations_dir}/*craft_poshuku_cleanweb*.qm
%{plugin_dir}/*craft_poshuku_cleanweb.so
+%if %{with QtWebKit}
%files poshuku-dcac
%defattr(-,root,root)
%{plugin_dir}/*craft_poshuku_dcac.so
%{translations_dir}/*craft_poshuku_dcac_??.qm
%{translations_dir}/*craft_poshuku_dcac_??_??.qm
%{settings_dir}/poshukudcacsettings.xml
+%endif
%files poshuku-fatape
%defattr(-,root,root)
@@ -3231,12 +3281,14 @@
%{translations_dir}/*craft_poshuku_qrd_??.qm
%{translations_dir}/*craft_poshuku_qrd_??_??.qm
+%if %{with QtWebKit}
%files poshuku-speeddial
%defattr(-,root,root)
%{plugin_dir}/lib%{name}_poshuku_speeddial.so
%{settings_dir}/poshukuspeeddialsettings.xml
%{translations_dir}/*craft_poshuku_speeddial_??.qm
%{translations_dir}/*craft_poshuku_speeddial_??_??.qm
+%endif
%files poshuku-webengineview
%defattr(-,root,root)
++++++ _service ++++++
--- /var/tmp/diff_new_pack.hj1oLd/_old 2021-11-01 18:35:58.413344743 +0100
+++ /var/tmp/diff_new_pack.hj1oLd/_new 2021-11-01 18:35:58.413344743 +0100
@@ -1,7 +1,7 @@
<services>
<service name="verify_file" mode="buildtime">
- <param name="file">leechcraft-0.6.70-14771-g9d21b0f8ad.tar.xz</param>
+ <param name="file">leechcraft-0.6.70-14794-g33744ae6ce.tar.xz</param>
<param name="verifier">sha1</param>
- <param name="checksum">c40cf203f1ed547fd115954c51d6664adb9fa277</param>
+ <param name="checksum">140c7d03a72fe4671646f6b7070c91584890a53d</param>
</service>
</services>
++++++ leechcraft-0.6.70-14771-g9d21b0f8ad.tar.xz -> leechcraft-0.6.70-14794-g33744ae6ce.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/chattab.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/chattab.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/chattab.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/chattab.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -132,6 +132,22 @@
fontsWidget->RegisterSettable (this);
+ Ui_.View_->setFocusProxy (Ui_.MsgEdit_);
+ for (const auto child : Ui_.View_->findChildren<QWidget*> ())
+ child->setFocusProxy (Ui_.MsgEdit_);
+
+ Ui_.View_->installEventFilter (Util::MakeLambdaEventFilter ([this] (QChildEvent *e)
+ {
+ if (e->type () != QEvent::ChildAdded)
+ return false;
+
+ if (const auto w = qobject_cast<QWidget*> (e->child ()))
+ w->setFocusProxy (Ui_.MsgEdit_);
+
+ return false;
+ },
+ this));
+
Ui_.View_->installEventFilter (Util::MakeLambdaEventFilter ([this, fontsWidget] (QWheelEvent *e)
{
if (!(e->modifiers () & Qt::ControlModifier))
@@ -237,8 +253,6 @@
GetEntry<QObject> (),
Ui_.View_);
- Ui_.View_->setFocusProxy (Ui_.MsgEdit_);
-
HandleMUCParticipantsChanged ();
connect (Core::Instance ().GetCustomChatStyleManager (),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/core.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/core.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/core.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/core.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -804,9 +804,9 @@
op ("entryId", other->GetEntryID ());
}
- string.append ("<span class='nickname'><a href='");
+ string.append ("<span class='nickname'><a href=\"");
string.append (url.toEncoded ());
- string.append ("' class='nicklink' style='text-decoration:none; color:");
+ string.append ("\" class='nicklink' style='text-decoration:none; color:");
string.append (color);
string.append ("'>");
string.append (nick);
@@ -1021,7 +1021,6 @@
PluginProxyObject_->GetFormatterProxy ().FormatLinks (body);
body.replace ('\n', "<br />");
body.replace (" ", " ");
- body.replace ('"', """);
}
body = HandleSmiles (body);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/interfaces/azoth/iprovidecommands.h new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/interfaces/azoth/iprovidecommands.h
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/interfaces/azoth/iprovidecommands.h 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/interfaces/azoth/iprovidecommands.h 2021-09-06 21:42:59.000000000 +0200
@@ -61,26 +61,8 @@
QStringList Names_;
Command_f Command_;
- QString Description_;
- QString Help_;
-
- StaticCommand () = default;
- StaticCommand (const StaticCommand&) = default;
-
- StaticCommand (const QStringList& names, const Command_f& command)
- : Names_ { names }
- , Command_ { command }
- {
- }
-
- StaticCommand (const QStringList& names, const Command_f& command,
- const QString& descr, const QString& help)
- : Names_ { names }
- , Command_ { command }
- , Description_ { descr }
- , Help_ { help }
- {
- }
+ QString Description_ = {};
+ QString Help_ = {};
};
typedef QList<StaticCommand> StaticCommands_t;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/acetamide.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/acetamide.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/acetamide.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/acetamide.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -24,7 +24,7 @@
{
namespace Acetamide
{
- void Plugin::Init (ICoreProxy_ptr proxy)
+ void Plugin::Init (ICoreProxy_ptr)
{
Translator_.reset (Util::InstallTranslator ("azoth_acetamide"));
@@ -36,15 +36,8 @@
SettingsDialog_->RegisterObject (&XmlSettingsManager::Instance (),
"azothacetamidesettings.xml");
- Core::Instance ().SetProxy (proxy);
-
SettingsDialog_->SetCustomWidget ("NickServIdentifyWidget",
Core::Instance ().GetNickServIdentifyWidget ());
-
- connect (&Core::Instance (),
- SIGNAL (gotEntity (const LC::Entity&)),
- this,
- SIGNAL (gotEntity (const LC::Entity&)));
}
void Plugin::SecondInit ()
@@ -74,7 +67,7 @@
QIcon Plugin::GetIcon () const
{
- return Core::Instance ().GetProxy ()->GetIconThemeManager ()->GetPluginIcon ();
+ return GetProxyHolder ()->GetIconThemeManager ()->GetPluginIcon ();
}
QSet<QByteArray> Plugin::GetPluginClasses () const
@@ -107,26 +100,5 @@
}
}
-QDataStream& operator<< (QDataStream& out, const QList<QStringList>& list)
-{
- for (const auto& subList : list)
- out << subList;
-
- return out;
-}
-
-QDataStream& operator>> (QDataStream& in, QList<QStringList>& list)
-{
- QStringList subList;
- while (!in.atEnd ())
- {
- in >> subList;
- list << subList;
- subList.clear ();
- }
-
- return in;
-}
-
LC_EXPORT_PLUGIN (leechcraft_azoth_acetamide,
LC::Azoth::Acetamide::Plugin);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/acetamide.h new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/acetamide.h
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/acetamide.h 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/acetamide.h 2021-09-06 21:42:59.000000000 +0200
@@ -52,16 +52,10 @@
public slots:
void initPlugin (QObject*);
signals:
- void gotEntity (const LC::Entity&);
void gotNewProtocols (const QList<QObject*>&);
};
}
}
}
-QDataStream& operator<< (QDataStream& out, const QList<QStringList>& myObj);
-QDataStream& operator>> (QDataStream& in, QList<QStringList>& myObj);
-
-Q_DECLARE_METATYPE (QList<QStringList>)
-
#endif // PLUGINS_AZOTH_PLUGINS_ACETAMIDE_ACETAMIDE_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/clientconnection.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/clientconnection.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/clientconnection.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/clientconnection.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -10,11 +10,12 @@
#include <QTextCodec>
#include <util/sll/prelude.h>
#include <util/xpc/util.h>
+#include <interfaces/core/icoreproxy.h>
+#include <interfaces/core/ientitymanager.h>
#include <interfaces/azoth/iprotocol.h>
#include <interfaces/azoth/iproxyobject.h>
#include "channelclentry.h"
#include "channelhandler.h"
-#include "core.h"
#include "ircprotocol.h"
#include "ircserverclentry.h"
#include "ircserverhandler.h"
@@ -87,12 +88,8 @@
return;
}
- IrcServerHandler *ish = new IrcServerHandler (server, Account_);
+ const auto ish = new IrcServerHandler (server, Account_);
emit gotRosterItems ({ ish->GetCLEntry () });
- connect (ish,
- SIGNAL (gotSocketError (QAbstractSocket::SocketError, const QString&)),
- this,
- SLOT (handleError(QAbstractSocket::SocketError, const QString&)));
ish->SetConsoleEnabled (IsConsoleEnabled_);
if (IsConsoleEnabled_)
@@ -122,10 +119,10 @@
if (ServerHandlers_ [serverId]->IsChannelExists (channelId))
{
- Entity e = Util::MakeNotification ("Azoth",
- tr ("This channel is already joined."),
- Priority::Critical);
- Core::Instance ().SendEntity (e);
+ const auto& e = Util::MakeNotification ("Azoth",
+ tr ("This channel is already joined."),
+ Priority::Warning);
+ GetProxyHolder ()->GetEntityManager ()->HandleEntity(e);
return;
}
@@ -199,9 +196,12 @@
}
if (hadUnknownVersions)
- Core::Instance ().SendEntity (Util::MakeNotification ("Azoth Acetamide",
- tr ("Some bookmarks were lost due to unknown storage version."),
- Priority::Warning));
+ {
+ const auto& entity = Util::MakeNotification ("Azoth Acetamide",
+ tr ("Some bookmarks were lost due to unknown storage version."),
+ Priority::Warning);
+ GetProxyHolder ()->GetEntityManager ()->HandleEntity (entity);
+ }
return bookmarks;
}
@@ -218,7 +218,10 @@
void ClientConnection::DisconnectFromAll ()
{
- for (auto ish : ServerHandlers_)
+ // we need to make a copy here since `SendQuit()` might cause the handler
+ // to be removed synchronously
+ const auto& values = ServerHandlers_.values ();
+ for (auto ish : values)
ish->SendQuit ();
}
@@ -306,38 +309,6 @@
QString ()));
}
- void ClientConnection::handleError (QAbstractSocket::SocketError error,
- const QString& errorString)
- {
- qWarning () << Q_FUNC_INFO
- << error
- << errorString;
- IrcServerHandler *ish = qobject_cast<IrcServerHandler*> (sender ());
- if (!ish)
- {
- qWarning () << Q_FUNC_INFO
- << "is not an IrcServerHandler"
- << sender ();
- return;
- }
-
- serverDisconnected (ish->GetServerID ());
-
- Entity e = Util::MakeNotification ("Azoth",
- errorString,
- Priority::Critical);
- Core::Instance ().SendEntity (e);
-
- const auto& serverOpts = ish->GetServerOptions ();
-
- const auto& activeChannels = Util::Map (ish->GetChannelHandlers (),
- &ChannelHandler::GetChannelOptions);
-
- JoinServer (serverOpts);
- for (const auto& co : activeChannels)
- JoinChannel (serverOpts, co);
- }
-
void ClientConnection::handleLog (IMessage::Direction type, const QString& msg)
{
switch (type)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/clientconnection.h new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/clientconnection.h
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/clientconnection.h 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/clientconnection.h 2021-09-06 21:42:59.000000000 +0200
@@ -74,8 +74,6 @@
public slots:
void serverConnected (const QString&);
void serverDisconnected (const QString&);
- void handleError (QAbstractSocket::SocketError error,
- const QString& errorString);
void handleLog (IMessage::Direction, const QString&);
signals:
void gotRosterItems (const QList<QObject*>&);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/core.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/core.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/core.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/core.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -61,21 +61,6 @@
return qobject_cast<IProxyObject*> (PluginProxy_);
}
- void Core::SetProxy (ICoreProxy_ptr proxy)
- {
- Proxy_ = proxy;
- }
-
- ICoreProxy_ptr Core::GetProxy () const
- {
- return Proxy_;
- }
-
- void Core::SendEntity (const LC::Entity& e)
- {
- emit gotEntity (e);
- }
-
void Core::handleItemsAdded (const QList<QObject*>&)
{
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/core.h new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/core.h
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/core.h 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/core.h 2021-09-06 21:42:59.000000000 +0200
@@ -32,7 +32,6 @@
{
Q_OBJECT
- ICoreProxy_ptr Proxy_;
std::shared_ptr<IrcProtocol> IrcProtocol_;
QObject *PluginProxy_ = nullptr;
QStandardItemModel* Model_;
@@ -49,9 +48,6 @@
void SetPluginProxy (QObject*);
IProxyObject* GetPluginProxy () const;
- void SetProxy (ICoreProxy_ptr);
- ICoreProxy_ptr GetProxy () const;
- void SendEntity (const Entity&);
NickServIdentifyWidget* GetNickServIdentifyWidget () const;
QStandardItemModel* GetNickServIdentifyModel () const;
@@ -65,8 +61,6 @@
const QString&, const QString&) const;
private slots:
void handleItemsAdded (const QList<QObject*>&);
- signals:
- void gotEntity (const LC::Entity&);
};
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircerrorhandler.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircerrorhandler.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircerrorhandler.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircerrorhandler.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -9,9 +9,10 @@
#include "ircerrorhandler.h"
#include <QTextCodec>
+#include <interfaces/core/icoreproxy.h>
+#include <interfaces/core/ientitymanager.h>
#include <util/xpc/util.h>
#include <util/xpc/notificationactionhandler.h>
-#include "core.h"
#include "ircserverhandler.h"
namespace LC
@@ -42,7 +43,7 @@
options.Message_ :
(paramsMessage + ": " + options.Message_),
Priority::Warning);
- Core::Instance ().SendEntity (e);
+ GetProxyHolder ()->GetEntityManager ()->HandleEntity (e);
}
bool IrcErrorHandler::IsError (int id)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircserverhandler.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircserverhandler.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircserverhandler.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircserverhandler.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -9,10 +9,11 @@
#include "ircserverhandler.h"
#include <QTextCodec>
#include <QTimer>
-#include <QMessageBox>
-#include <QInputDialog>
#include <util/util.h>
#include <util/xpc/notificationactionhandler.h>
+#include <util/xpc/util.h>
+#include <interfaces/core/icoreproxy.h>
+#include <interfaces/core/ientitymanager.h>
#include "channelhandler.h"
#include "channelclentry.h"
#include "servercommandmessage.h"
@@ -83,6 +84,8 @@
handleSetAutoWho ();
}
+ IrcServerHandler::~IrcServerHandler () = default;
+
IrcServerCLEntry* IrcServerHandler::GetCLEntry () const
{
return ServerCLEntry_;
@@ -220,8 +223,11 @@
void IrcServerHandler::SendQuit ()
{
- IrcParser_->QuitCommand (QStringList (Account_->GetClientConnection ()->
- GetStatusStringForState (SOffline)));
+ if (ServerConnectionState_ == Connected)
+ IrcParser_->QuitCommand ({ Account_->GetClientConnection ()->GetStatusStringForState (SOffline) });
+
+ if (Socket_)
+ Socket_->Close ();
}
void IrcServerHandler::QuitParticipant (const QString& nick, const QString& msg)
@@ -913,15 +919,64 @@
if (ServerConnectionState_ != NotConnected)
return;
- Socket_ = new IrcServerSocket (this);
- Socket_->ConnectToHost (ServerOptions_.ServerName_,
- ServerOptions_.ServerPort_);
+ Socket_ = std::make_unique<IrcServerSocket> (this);
+ Socket_->ConnectToHost (ServerOptions_.ServerName_, ServerOptions_.ServerPort_);
ServerConnectionState_ = InProgress;
- connect (Socket_,
- SIGNAL (sslErrors (QList<QSslError>, ICanHaveSslErrors::ISslErrorsReaction_ptr)),
+ connect (Socket_.get (),
+ &IrcServerSocket::connected,
+ this,
+ [this]
+ {
+ ServerConnectionState_ = Connected;
+ emit connected (ServerID_);
+ ServerCLEntry_->SetStatus (EntryStatus (SOnline, QString ()));
+ IrcParser_->AuthCommand ();
+
+ for (const auto& handler : GetChannelHandlers ())
+ JoinChannel (handler->GetChannelOptions ());
+ });
+ connect (Socket_.get (),
+ &IrcServerSocket::disconnected,
+ this,
+ [this, socket = Socket_.get ()]
+ {
+ ServerConnectionState_ = NotConnected;
+ ServerCLEntry_->SetStatus (EntryStatus (SOffline, QString ()));
+ socket->Close ();
+ emit disconnected (ServerID_);
+ });
+
+ connect (Socket_.get (),
+ &IrcServerSocket::retriableSocketError,
+ this,
+ [this] (QAbstractSocket::SocketError, const QString& errorString)
+ {
+ ServerConnectionState_ = NotConnected;
+ ServerCLEntry_->SetStatus (EntryStatus (SError, errorString));
+
+ const auto& e = Util::MakeNotification ("Azoth",
+ errorString,
+ Priority::Warning);
+ GetProxyHolder ()->GetEntityManager ()->HandleEntity (e);
+ });
+ connect (Socket_.get (),
+ &IrcServerSocket::finalSocketError,
+ this,
+ [this] (QAbstractSocket::SocketError, const QString& errorString)
+ {
+ ServerConnectionState_ = NotConnected;
+ ServerCLEntry_->SetStatus (EntryStatus (SError, errorString));
+
+ const auto& e = Util::MakeNotification ("Azoth",
+ errorString,
+ Priority::Critical);
+ GetProxyHolder ()->GetEntityManager ()->HandleEntity (e);
+ });
+ connect (Socket_.get (),
+ &IrcServerSocket::sslErrors,
Account_,
- SIGNAL (sslErrors (QList<QSslError>, ICanHaveSslErrors::ISslErrorsReaction_ptr)));
+ &IrcAccount::sslErrors);
}
void IrcServerHandler::DisconnectFromServer ()
@@ -1167,23 +1222,6 @@
emit gotChannelsEnd ();
}
- void IrcServerHandler::connectionEstablished ()
- {
- ServerConnectionState_ = Connected;
- emit connected (ServerID_);
- ServerCLEntry_->SetStatus (EntryStatus (SOnline, QString ()));
- IrcParser_->AuthCommand ();
- }
-
- void IrcServerHandler::connectionClosed ()
- {
- ServerConnectionState_ = NotConnected;
- ServerCLEntry_->SetStatus (EntryStatus (SOffline, QString ()));
- if (Socket_)
- Socket_->Close ();
- emit disconnected (ServerID_);
- }
-
void IrcServerHandler::joinAfterInvite ()
{
for (const auto& channel : InviteChannelsDialog_->GetChannels ())
@@ -1206,25 +1244,6 @@
}
}
- void IrcServerHandler::handleSocketError (QAbstractSocket::SocketError error)
- {
- QTcpSocket *socket = qobject_cast<QTcpSocket*> (sender ());
- if (!socket)
- {
- qWarning () << Q_FUNC_INFO
- << "is not an object of TcpSocket"
- << sender ();
- return;
- }
-
- qDebug () << "Socket error on server:"
- << ServerID_
- << error
- << socket->errorString ();
-
- emit gotSocketError (error, socket->errorString ());
- }
-
void IrcServerHandler::showChannels (const QStringList&)
{
IrcParser_->ChannelsListCommand (QStringList ());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircserverhandler.h new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircserverhandler.h
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircserverhandler.h 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircserverhandler.h 2021-09-06 21:42:59.000000000 +0200
@@ -45,7 +45,7 @@
IrcErrorHandler *ErrorHandler_;
IrcParser *IrcParser_ = 0;
IrcServerCLEntry *ServerCLEntry_;
- IrcServerSocket *Socket_ = 0;
+ std::unique_ptr<IrcServerSocket> Socket_;
UserCommandManager *CmdManager_ = 0;
ServerResponseManager *ServerResponseManager_ = 0;
RplISupportParser *RplISupportParser_ = 0;
@@ -70,6 +70,7 @@
int LastNickIndex_ = 0;
public:
IrcServerHandler (const ServerOptions& server, IrcAccount* account);
+ ~IrcServerHandler () override;
IrcServerCLEntry* GetCLEntry () const;
IrcAccount* GetAccount () const;
@@ -225,11 +226,8 @@
ServerParticipantEntry_ptr CreateParticipantEntry (const QString&);
public slots:
void autoWhoRequest ();
- void handleSocketError (QAbstractSocket::SocketError error);
void showChannels (const QStringList& = QStringList ());
private slots:
- void connectionEstablished ();
- void connectionClosed ();
void joinAfterInvite ();
void handleSetAutoWho ();
void handleUpdateWhoPeriod ();
@@ -238,8 +236,6 @@
void disconnected (const QString&);
void sendMessageToConsole (IMessage::Direction, const QString&);
void nicknameConflict (const QString&);
- void gotSocketError (QAbstractSocket::SocketError error,
- const QString& erorString);
void gotChannelsBegin ();
void gotChannels (const ChannelsDiscoverInfo& info);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircserversocket.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircserversocket.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircserversocket.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircserversocket.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -10,45 +10,108 @@
#include "ircserversocket.h"
#include <QTcpSocket>
#include <QTextCodec>
-#include <interfaces/core/icoreproxy.h>
+#include <QTimer>
#include <interfaces/core/ientitymanager.h>
#include <util/xpc/util.h>
#include <util/sll/visitor.h>
-#include <util/sll/functional.h>
+#include <util/sll/qtutil.h>
#include "ircserverhandler.h"
#include "clientconnection.h"
-namespace LC
+namespace LC::Azoth::Acetamide
{
-namespace Azoth
-{
-namespace Acetamide
-{
- int elideWidth = 300;
+ constexpr int MaxRetriesCount = 10;
IrcServerSocket::IrcServerSocket (IrcServerHandler *ish)
- : QObject (ish)
- , ISH_ (ish)
+ : QObject { ish }
+ , ISH_ { ish }
+ , RetryTimer_ { new QTimer { this } }
{
+ RetryTimer_->setSingleShot (true);
+ RetryTimer_->callOnTimeout ([this]
+ {
+ qDebug () << "LC::Azoth::Acetamide::IrcServerSocket: retrying...";
+ ConnectToHost (Host_, Port_);
+ });
+
if (ish->GetServerOptions ().SSL_)
- Socket_ = std::make_shared<QSslSocket> ();
+ {
+ auto socket = std::make_shared<QSslSocket> ();
+ Socket_ = socket;
+ connect (socket.get (),
+ qOverload<const QList<QSslError>&> (&QSslSocket::sslErrors),
+ this,
+ &IrcServerSocket::handleSslErrors);
+ }
else
Socket_ = std::make_shared<QTcpSocket> ();
- Init ();
+ const auto socket = GetSocketPtr ();
+
+ connect (socket,
+ &QTcpSocket::readyRead,
+ this,
+ [this, socket]
+ {
+ RetriesCount_ = 0;
+ RetryTimer_->stop ();
+
+ while (socket->canReadLine ())
+ ISH_->ReadReply (socket->readLine ());
+ });
+
+ connect (socket,
+ &QTcpSocket::connected,
+ this,
+ [this, socket]
+ {
+ qDebug () << "LC::Azoth::Acetamide::IrcServerSocket: connected";
+ emit connected ();
+ connect (socket,
+ &QTcpSocket::disconnected,
+ this,
+ &IrcServerSocket::disconnected,
+ Qt::UniqueConnection);
+ });
+
+ connect (socket,
+ &QTcpSocket::errorOccurred,
+ this,
+ [this, socket] (QAbstractSocket::SocketError error)
+ {
+ disconnect (socket,
+ &QTcpSocket::disconnected,
+ this,
+ &IrcServerSocket::disconnected);
+
+ qWarning () << "LC::Azoth::Acetamide::IrcServerSocket:"
+ << error
+ << "after" << RetriesCount_ << "retries;"
+ << socket->errorString ();
+ if (++RetriesCount_ > MaxRetriesCount)
+ {
+ emit finalSocketError (error, socket->errorString ());
+ return;
+ }
+ emit retriableSocketError (error, socket->errorString ());
+ RetryTimer_->start ((2 * RetriesCount_ + 1) * 1000);
+ });
}
IrcServerSocket::~IrcServerSocket ()
{
if (const auto socket = GetSocketPtr ())
{
- QObject::disconnect (socket, 0, 0, 0);
+ QObject::disconnect (socket, nullptr, nullptr, nullptr);
socket->abort ();
}
}
void IrcServerSocket::ConnectToHost (const QString& host, int port)
{
+ Host_ = host;
+ Port_ = port;
+
Util::Visit (Socket_,
[&] (const Tcp_ptr& ptr) { ptr->connectToHost (host, port); },
[&] (const Ssl_ptr& ptr) { ptr->connectToHostEncrypted (host, port); });
@@ -56,10 +119,7 @@
void IrcServerSocket::DisconnectFromHost ()
{
- if (const auto socket = GetSocketPtr ())
- {
- socket->disconnectFromHost ();
- }
+ GetSocketPtr ()->disconnectFromHost ();
}
void IrcServerSocket::Send (const QString& message)
@@ -86,47 +146,13 @@
GetSocketPtr ()->close ();
}
- void IrcServerSocket::Init ()
- {
- const auto socket = GetSocketPtr ();
- connect (socket,
- SIGNAL (readyRead ()),
- this,
- SLOT (readReply ()));
-
- connect (socket,
- SIGNAL (connected ()),
- ISH_,
- SLOT (connectionEstablished ()));
-
- connect (socket,
- SIGNAL (disconnected ()),
- ISH_,
- SLOT (connectionClosed ()));
-
- connect (socket,
- SIGNAL (error (QAbstractSocket::SocketError)),
- ISH_,
- SLOT (handleSocketError (QAbstractSocket::SocketError)));
-
- Util::Visit (Socket_,
- [this] (const Ssl_ptr& ptr)
- {
- connect (ptr.get (),
- SIGNAL (sslErrors (const QList<QSslError> &)),
- this,
- SLOT (handleSslErrors (const QList<QSslError>&)));
- },
- [] (auto) {});
- }
-
void IrcServerSocket::RefreshCodec ()
{
const auto encoding = ISH_->GetServerOptions ().ServerEncoding_;
if (LastCodec_ && LastCodec_->name () == encoding)
return;
- const auto newCodec = encoding == "System" ?
+ const auto newCodec = encoding == "System"_ql ?
QTextCodec::codecForLocale () :
QTextCodec::codecForName (encoding.toLatin1 ());
if (newCodec)
@@ -145,7 +171,7 @@
tr ("Unknown encoding %1.")
.arg ("<em>" + encoding + "</em>"),
Priority::Critical);
- Core::Instance ().GetProxy ()->GetEntityManager ()->HandleEntity (notify);
+ GetProxyHolder ()->GetEntityManager ()->HandleEntity (notify);
if (LastCodec_)
return;
@@ -159,14 +185,7 @@
QTcpSocket* IrcServerSocket::GetSocketPtr () const
{
return Util::Visit (Socket_,
- [] (const auto& ptr) { return Util::Upcast<QTcpSocket*> (ptr.get ()); });
- }
-
- void IrcServerSocket::readReply ()
- {
- const auto socket = GetSocketPtr ();
- while (socket->canReadLine ())
- ISH_->ReadReply (socket->readLine ());
+ [] (const auto& ptr) -> QTcpSocket* { return ptr.get (); });
}
namespace
@@ -175,7 +194,7 @@
{
std::weak_ptr<QSslSocket> Sock_;
public:
- SslErrorsReaction (const std::shared_ptr<QSslSocket>& sock)
+ explicit SslErrorsReaction (const std::shared_ptr<QSslSocket>& sock)
: Sock_ { sock }
{
}
@@ -192,17 +211,10 @@
};
}
- void IrcServerSocket::HandleSslErrors (const std::shared_ptr<QSslSocket>& s, const QList<QSslError>& errors)
- {
- emit sslErrors (errors, std::make_shared<SslErrorsReaction> (s));
- }
-
void IrcServerSocket::handleSslErrors (const QList<QSslError>& errors)
{
Util::Visit (Socket_,
- [&] (const Ssl_ptr& s) { HandleSslErrors (s, errors); },
+ [&] (const Ssl_ptr& s) { emit sslErrors (errors, std::make_shared<SslErrorsReaction> (s)); },
[] (auto) { qWarning () << Q_FUNC_INFO << "expected SSL socket"; });
}
}
-}
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircserversocket.h new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircserversocket.h
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/ircserversocket.h 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/ircserversocket.h 2021-09-06 21:42:59.000000000 +0200
@@ -11,16 +11,14 @@
#include <memory>
#include <variant>
#include <QObject>
-#include <QSslSocket>
+#include <QAbstractSocket>
#include <interfaces/azoth/icanhavesslerrors.h>
class QTcpSocket;
+class QSslSocket;
+class QTimer;
-namespace LC
-{
-namespace Azoth
-{
-namespace Acetamide
+namespace LC::Azoth::Acetamide
{
class IrcServerHandler;
class IrcAccount;
@@ -36,27 +34,31 @@
std::variant<Tcp_ptr, Ssl_ptr> Socket_;
QTextCodec *LastCodec_ = nullptr;
+
+ QString Host_;
+ int Port_;
+ int RetriesCount_ = 0;
+ QTimer * const RetryTimer_;
public:
- IrcServerSocket (IrcServerHandler*);
- ~IrcServerSocket();
+ explicit IrcServerSocket (IrcServerHandler*);
+ ~IrcServerSocket () override;
void ConnectToHost (const QString&, int);
void DisconnectFromHost ();
void Send (const QString&);
void Close ();
private:
- void Init ();
-
void RefreshCodec ();
- void HandleSslErrors (const std::shared_ptr<QSslSocket>&, const QList<QSslError>&);
QTcpSocket* GetSocketPtr () const;
private slots:
- void readReply ();
void handleSslErrors (const QList<QSslError>& errors);
signals:
+ void connected ();
+ void disconnected ();
+
+ void retriableSocketError (QAbstractSocket::SocketError, const QString&);
+ void finalSocketError (QAbstractSocket::SocketError, const QString&);
void sslErrors (const QList<QSslError>&, const ICanHaveSslErrors::ISslErrorsReaction_ptr&);
};
}
-}
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/serverresponsemanager.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/serverresponsemanager.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/acetamide/serverresponsemanager.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/acetamide/serverresponsemanager.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -269,10 +269,8 @@
QString cmd;
QString outputMessage;
- const QString& lcVer = Core::Instance ().GetProxy ()->GetVersion ();
- const QString version = QString ("LeechCraft %1 (Acetamide 2.0) "
- "(c) 2006-2017 LeechCraft team")
- .arg (lcVer);
+ const QString& lcVer = GetProxyHolder ()->GetVersion ();
+ const QString version = QString ("LeechCraft %1 (Acetamide 2.0)").arg (lcVer);
const QDateTime currentDT = QDateTime::currentDateTime ();
const QString firstPartOutput = QString ("LeechCraft %1 (Acetamide 2.0) - "
"https://leechcraft.org")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/standardstyles/standardstylesource.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/standardstyles/standardstylesource.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/azoth/plugins/standardstyles/standardstylesource.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/azoth/plugins/standardstyles/standardstylesource.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -310,7 +310,7 @@
}
js += R"(
- document.body.insertAdjacentHTML("beforeend", "<div class='%1' style='word-wrap: break-word;'>%2</div>");
+ document.body.insertAdjacentHTML("beforeend", `<div class='%1' style='word-wrap: break-word;'>%2</div>`);
true;
)"_ql
.arg (divClass, string);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/bittorrent/addtorrent.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/bittorrent/addtorrent.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/bittorrent/addtorrent.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/bittorrent/addtorrent.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -243,8 +243,7 @@
{
const auto& dir = QFileDialog::getExistingDirectory (this,
tr ("Select save directory"),
- Ui_.Destination_->text (),
- {});
+ Ui_.Destination_->text ());
if (dir.isEmpty ())
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/blogique/blogique.h new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/blogique/blogique.h
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/blogique/blogique.h 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/blogique/blogique.h 2021-09-06 21:42:59.000000000 +0200
@@ -18,7 +18,6 @@
#include <interfaces/ihaverecoverabletabs.h>
#include <xmlsettingsdialog/xmlsettingsdialog.h>
-class QWebView;
namespace LC
{
namespace Blogique
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/lackman/CMakeLists.txt new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/lackman/CMakeLists.txt
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/lackman/CMakeLists.txt 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/lackman/CMakeLists.txt 2021-09-06 21:42:59.000000000 +0200
@@ -36,7 +36,6 @@
add_executable (lc_lackman_versioncomparatortest WIN32
tests/versioncomparatortest.cpp
versioncomparator.cpp
- ${VERSIONCOMPARATORTEST_MOC}
)
target_link_libraries (lc_lackman_versioncomparatortest
${LEECHCRAFT_LIBRARIES}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/lmp/interfaces/lmp/mediainfo.h new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/lmp/interfaces/lmp/mediainfo.h
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/lmp/interfaces/lmp/mediainfo.h 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/lmp/interfaces/lmp/mediainfo.h 2021-09-06 21:42:59.000000000 +0200
@@ -18,29 +18,19 @@
{
struct MediaInfo
{
- QString LocalPath_;
+ QString LocalPath_ = {};
- QString Artist_;
- QString Album_;
- QString Title_;
+ QString Artist_ = {};
+ QString Album_ = {};
+ QString Title_ = {};
- QStringList Genres_;
+ QStringList Genres_ = {};
qint32 Length_ = 0;
qint32 Year_ = 0;
qint32 TrackNumber_ = 0;
- QVariantMap Additional_;
-
- MediaInfo () = default;
- MediaInfo (const MediaInfo&) = default;
-
- MediaInfo (const QString& localPath,
- const QString& artist, const QString& album, const QString& title,
- const QStringList& genres,
- qint32 length, qint32 year, qint32 trackNumber);
-
- MediaInfo& operator= (const Media::AudioInfo&);
+ QVariantMap Additional_ = {};
bool IsUseless () const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/lmp/mediainfo.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/lmp/mediainfo.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/lmp/mediainfo.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/lmp/mediainfo.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -13,42 +13,6 @@
{
namespace LMP
{
- MediaInfo::MediaInfo (const QString& localPath,
- const QString& artist, const QString& album, const QString& title,
- const QStringList& genres,
- qint32 length, qint32 year, qint32 trackNumber)
- : LocalPath_ { localPath }
- , Artist_ { artist }
- , Album_ { album }
- , Title_ { title }
- , Genres_ { genres }
- , Length_ { length }
- , Year_ { year }
- , TrackNumber_ { trackNumber }
- {
- }
-
- MediaInfo& MediaInfo::operator= (const Media::AudioInfo& info)
- {
- Artist_ = info.Artist_;
- Album_ = info.Album_;
- Title_ = info.Title_;
- Genres_ = info.Genres_;
- Length_ = info.Length_;
- Year_ = info.Year_;
- TrackNumber_ = info.TrackNumber_;
- Additional_ = info.Other_;
-
- if (Additional_.contains ("URL"))
- {
- const auto& url = Additional_.take ("URL").toUrl ();
- if (url.isLocalFile ())
- LocalPath_ = url.toLocalFile ();
- }
-
- return *this;
- }
-
bool MediaInfo::IsUseless () const
{
return (Artist_ + Album_ + Title_).trimmed ().isEmpty ();
@@ -73,9 +37,26 @@
MediaInfo MediaInfo::FromAudioInfo (const Media::AudioInfo& info)
{
- MediaInfo result;
- result = info;
- return result;
+ MediaInfo mi
+ {
+ .Artist_ = info.Artist_,
+ .Album_ = info.Album_,
+ .Title_ = info.Title_,
+ .Genres_ = info.Genres_,
+ .Length_ = info.Length_,
+ .Year_ = info.Year_,
+ .TrackNumber_ = info.TrackNumber_,
+ .Additional_ = info.Other_,
+ };
+
+ if (mi.Additional_.contains ("URL"))
+ {
+ const auto& url = mi.Additional_.take ("URL").toUrl ();
+ if (url.isLocalFile ())
+ mi.LocalPath_ = url.toLocalFile ();
+ }
+
+ return mi;
}
QDataStream& operator<< (QDataStream& out, const MediaInfo& info)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/lmp/player.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/lmp/player.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/lmp/player.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/lmp/player.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -1550,7 +1550,7 @@
void Player::handleRadioStream (const QUrl& url, const Media::AudioInfo& info)
{
- Url2Info_ [url] = info;
+ Url2Info_ [url] = MediaInfo::FromAudioInfo (info);
Source_->SetCurrentSource (url);
qDebug () << Q_FUNC_INFO << static_cast<int> (Source_->GetState ());
@@ -1591,7 +1591,7 @@
continue;
}
- Url2Info_ [url] = info;
+ Url2Info_ [url] = MediaInfo::FromAudioInfo (info);
sources << url;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/poshuku/plugins/webengineview/customwebpage.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/poshuku/plugins/webengineview/customwebpage.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/plugins/poshuku/plugins/webengineview/customwebpage.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/plugins/poshuku/plugins/webengineview/customwebpage.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -23,13 +23,9 @@
{
poshukuProxy->RegisterHookable (this);
- QTimer::singleShot (0, this,
- [this]
- {
- LinkOpenModifier_->InstallOn (view ());
- for (const auto child : view ()->findChildren<QWidget*> ())
- LinkOpenModifier_->InstallOn (child);
- });
+ LinkOpenModifier_->InstallOn (parent);
+ for (const auto child : parent->findChildren<QWidget*> ())
+ LinkOpenModifier_->InstallOn (child);
}
namespace
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/util/db/util.cpp new/leechcraft-0.6.70-14794-g33744ae6ce/src/util/db/util.cpp
--- old/leechcraft-0.6.70-14771-g9d21b0f8ad/src/util/db/util.cpp 2021-08-30 18:06:49.000000000 +0200
+++ new/leechcraft-0.6.70-14794-g33744ae6ce/src/util/db/util.cpp 2021-09-06 21:42:59.000000000 +0200
@@ -47,18 +47,10 @@
Util::DBLock::Execute (query);
}
- namespace
- {
- uintptr_t Thread2Num (QThread *thread)
- {
- return thread - static_cast<QThread*> (nullptr);
- }
- }
-
QString GenConnectionName (const QString& base)
{
return (base + ".%1_%2")
.arg (qrand ())
- .arg (Thread2Num (QThread::currentThread ()));
+ .arg (reinterpret_cast<uintptr_t> (QThread::currentThread ()));
}
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package youtube-dl for openSUSE:Factory checked in at 2021-11-01 18:35:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/youtube-dl (Old)
and /work/SRC/openSUSE:Factory/.youtube-dl.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "youtube-dl"
Mon Nov 1 18:35:42 2021 rev:169 rq:928439 version:2021.10.22
Changes:
--------
--- /work/SRC/openSUSE:Factory/youtube-dl/youtube-dl.changes 2021-10-19 23:03:58.401276926 +0200
+++ /work/SRC/openSUSE:Factory/.youtube-dl.new.1890/youtube-dl.changes 2021-11-01 18:35:56.101343421 +0100
@@ -1,0 +2,71 @@
+Sun Oct 31 22:27:19 UTC 2021 - Matej Cepl <mcepl(a)suse.com>
+
+- Add ceskatelevize_fix_POST_request.patch to fix
+ gh#ytdl-org/youtube-dl#30172.
+
+-------------------------------------------------------------------
+Sun Oct 31 12:19:20 UTC 2021 - Matej Cepl <mcepl(a)suse.com>
+
+- Update to 2021.10.22:
+ - [docs] Migrate issues to use forms by Ashish0804
+ - [downloader] Fix slow progress hooks
+ - This was causing HLS/DASH downloads to be extremely slow in some situations
+ - [downloader/ffmpeg] Improve simultaneous download and merge
+ - [EmbedMetadata] Allow overwriting all default metadata with meta_default key
+ - [ModifyChapters] Add ability for --remove-chapters to remove sections by timestamp
+ - [utils] Allow duration strings in --match-filter
+ - Add HDR information to formats
+ - Add negative option --no-batch-file by Zirro
+ - Calculate more fields for merged formats
+ - Do not verify thumbnail URLs unless --check-formats is specified
+ - Don't create console for subprocesses on Windows
+ - Fix --restrict-filename when used with default template
+ - Fix check_formats output being written to stdout when -qv
+ - Fix bug in storyboards
+ - Fix conflict b/w id and ext in format selection
+ - Fix verbose head not showing custom configs
+ - Load archive only after printing verbose head
+ - Make duration_string and resolution available in --match-filter
+ - Re-implement deprecated option --id
+ - Reduce default --socket-timeout
+ - Write verbose header to logger
+ - [outtmpl] Fix bug in expanding environment variables
+ - [cookies] Local State should be opened as utf-8
+ - [extractor,utils] Detect more codecs/mimetypes
+ - [extractor] Detect EXT-X-KEY Apple FairPlay
+ - [utils] Use importlib to load plugins by sulyi
+ - [http] Retry on socket timeout and show the last encountered error
+ - [fragment] Print error message when skipping fragment
+ - [aria2c] Fix --skip-unavailable-fragment
+ - [SponsorBlock] Obey extractor-retries and sleep-requests
+ - [Merger] Do not add aac_adtstoasc to non-hls audio
+ - [ModifyChapters] Do not mutate original chapters by nihil-admirari
+ - [devscripts/run_tests] Use markers to filter tests by sulyi
+ - [7plus] Add cookie based authentication by nyuszika7h
+ - [AdobePass] Fix RCN MSO by jfogelman
+ - [CBC] Fix Gem livestream by makeworld-the-better-one
+ - [CBC] Support CBC Gem member content by makeworld-the-better-one
+ - [crunchyroll] Add season to flat-playlist Closes #1319
+ - [crunchyroll] Add support for beta.crunchyroll URLs and fix series URLs with language code
+ - [EUScreen] Add Extractor by Ashish0804
+ - [Gronkh] Add extractor by Ashish0804
+ - [hidive] Fix typo
+ - [Hotstar] Mention Dynamic Range in format_id by Ashish0804
+ - [Hotstar] Raise appropriate error for DRM
+ - [instagram] Add login by u-spec-png
+ - [instagram] Show appropriate error when login is needed
+ - [microsoftstream] Add extractor by damianoamatruda, nixklai
+ - [on24] Add extractor by damianoamatruda
+ - [patreon] Fix vimeo player regex by zenerdi0de
+ - [SkyNewsAU] Add extractor by Ashish0804
+ - [tagesschau] Fix extractor by u-spec-png
+ - [tbs] Add tbs live streams by llacb47
+ - [tiktok] Fix typo and update tests
+ - [trovo] Support channel clips and VODs by Ashish0804
+ - [Viafree] Add support for Finland by 18928172992817182
+ - [vimeo] Fix embedded player.vimeo
+ - [vlive:channel] Fix extraction by kikuyan, pukkandan
+ - [youtube] Add auto-translated subtitles
+ - [youtube] Expose different formats with same itag
+
+-------------------------------------------------------------------
New:
----
ceskatelevize_fix_POST_request.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ youtube-dl.spec ++++++
--- /var/tmp/diff_new_pack.rzqjyr/_old 2021-11-01 18:35:56.869343860 +0100
+++ /var/tmp/diff_new_pack.rzqjyr/_new 2021-11-01 18:35:56.873343862 +0100
@@ -17,13 +17,16 @@
Name: youtube-dl
-Version: 2021.10.10
+Version: 2021.10.22
Release: 0
Summary: A tool for downloading from video sites for offline watching
License: CC-BY-SA-3.0 AND SUSE-Public-Domain
Group: Productivity/Networking/Web/Utilities
URL: https://github.com/yt-dlp/yt-dlp
Source: https://github.com/yt-dlp/yt-dlp/releases/download/%version/yt-dlp.tar.gz
+# PATCH-FIX-UPSTREAM ceskatelevize_fix_POST_request.patch gh#ytdl-org/youtube-dl#30154 mcepl(a)suse.com
+# fix POST request url to avoid redirection
+Patch0: ceskatelevize_fix_POST_request.patch
BuildRequires: make >= 4
BuildRequires: python3-devel
BuildRequires: python3-xml
@@ -79,7 +82,7 @@
ZSH command line completion support for yt-dlp.
%prep
-%autosetup -n yt-dlp
+%autosetup -p1 -n yt-dlp
%build
rm -f youtube-dl yt-dlp
++++++ ceskatelevize_fix_POST_request.patch ++++++
From 8d89a7b4957791b455bcfbc7571078ac7212469d Mon Sep 17 00:00:00 2001
From: kikuyan <kikuyan(a)users.noreply.github.com>
Date: Tue, 26 Oct 2021 10:48:23 +0900
Subject: [PATCH] [extractor/ceskatelevize] fix POST request url to avoid
redirection
---
yt_dlp/extractor/ceskatelevize.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/yt_dlp/extractor/ceskatelevize.py
+++ b/yt_dlp/extractor/ceskatelevize.py
@@ -108,7 +108,7 @@ class CeskaTelevizeIE(InfoExtractor):
for user_agent in (None, USER_AGENTS['Safari']):
req = sanitized_Request(
- 'https://www.ceskatelevize.cz/ivysilani/ajax/get-client-playlist',
+ 'https://www.ceskatelevize.cz/ivysilani/ajax/get-client-playlist/',
data=urlencode_postdata(data))
req.add_header('Content-type', 'application/x-www-form-urlencoded')
++++++ yt-dlp.tar.gz ++++++
++++ 15143 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pynetbox for openSUSE:Factory checked in at 2021-11-01 18:35:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pynetbox (Old)
and /work/SRC/openSUSE:Factory/.python-pynetbox.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pynetbox"
Mon Nov 1 18:35:41 2021 rev:25 rq:928436 version:6.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pynetbox/python-pynetbox.changes 2021-08-03 22:48:39.556502774 +0200
+++ /work/SRC/openSUSE:Factory/.python-pynetbox.new.1890/python-pynetbox.changes 2021-11-01 18:35:53.761342083 +0100
@@ -1,0 +2,6 @@
+Sun Oct 31 10:10:38 UTC 2021 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 6.2.0
+ * Fixes bulk update/delete on both Endpoint and RecordSet.
+
+-------------------------------------------------------------------
Old:
----
pynetbox-6.1.3.tar.gz
New:
----
pynetbox-6.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pynetbox.spec ++++++
--- /var/tmp/diff_new_pack.sIT8ON/_old 2021-11-01 18:35:55.073342833 +0100
+++ /var/tmp/diff_new_pack.sIT8ON/_new 2021-11-01 18:35:55.073342833 +0100
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-pynetbox
-Version: 6.1.3
+Version: 6.2.0
Release: 0
Summary: NetBox API client library
License: Apache-2.0
++++++ pynetbox-6.1.3.tar.gz -> pynetbox-6.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.1.3/PKG-INFO new/pynetbox-6.2.0/PKG-INFO
--- old/pynetbox-6.1.3/PKG-INFO 2021-07-31 01:24:57.024464100 +0200
+++ new/pynetbox-6.2.0/PKG-INFO 2021-10-29 23:53:37.552109200 +0200
@@ -1,12 +1,11 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: pynetbox
-Version: 6.1.3
+Version: 6.2.0
Summary: NetBox API client library
Home-page: https://github.com/digitalocean/pynetbox
Author: Zach Moody
Author-email: zmoody(a)do.co
License: Apache2
-Description: UNKNOWN
Keywords: netbox
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
@@ -15,3 +14,7 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
+License-File: LICENSE
+
+UNKNOWN
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.1.3/pynetbox/core/endpoint.py new/pynetbox-6.2.0/pynetbox/core/endpoint.py
--- old/pynetbox-6.1.3/pynetbox/core/endpoint.py 2021-07-31 01:24:46.000000000 +0200
+++ new/pynetbox-6.2.0/pynetbox/core/endpoint.py 2021-10-29 23:53:20.000000000 +0200
@@ -312,6 +312,129 @@
return [self.return_obj(i, self.api, self) for i in req]
return self.return_obj(req, self.api, self)
+ def update(self, objects):
+ r"""Bulk updates existing objects on an endpoint.
+
+ Allows for bulk updating of existing objects on an endpoint.
+ Objects is a list whic contain either json/dicts or Record
+ derived objects, which contain the updates to apply.
+ If json/dicts are used, then the id of the object *must* be
+ included
+
+ :arg list objects: A list of dicts or Record.
+
+ :returns: True if the update succeeded
+
+ :Examples:
+
+ Updating objects on the `devices` endpoint:
+
+ >>> device = netbox.dcim.devices.update([
+ ... {'id': 1, 'name': 'test'},
+ ... {'id': 2, 'name': 'test2'},
+ ... ])
+ >>> True
+
+ Use bulk update by passing a list of Records:
+
+ >>> devices = nb.dcim.devices.all()
+ >>> for d in devices:
+ >>> d.name = d.name+'-test'
+ >>> nb.dcim.devices.update(devices)
+ >>> True
+ """
+ series = []
+ if not isinstance(objects, list):
+ raise ValueError(
+ "Objects passed must be list[dict|Record] - was " + type(objects)
+ )
+ for o in objects:
+ if isinstance(o, Record):
+ data = o.updates()
+ if data:
+ data["id"] = o.id
+ series.append(data)
+ elif isinstance(o, dict):
+ if "id" not in o:
+ raise ValueError("id is missing from object: " + str(o))
+ series.append(o)
+ else:
+ raise ValueError(
+ "Object passed must be dict|Record - was " + type(objects)
+ )
+ req = Request(
+ base=self.url,
+ token=self.token,
+ session_key=self.session_key,
+ http_session=self.api.http_session,
+ ).patch(series)
+
+ if isinstance(req, list):
+ return [self.return_obj(i, self.api, self) for i in req]
+ return self.return_obj(req, self.api, self)
+
+ def delete(self, objects):
+ r"""Bulk deletes objects on an endpoint.
+
+ Allows for batch deletion of multiple objects from
+ a single endpoint
+
+ :arg list objects: A list of either ids or Records or
+ a single RecordSet to delete.
+ :returns: True if bulk DELETE operation was successful.
+
+ :Examples:
+
+ Deleting all `devices`:
+
+ >>> netbox.dcim.devices.delete(netbox.dcim.devices.all(0))
+ >>>
+
+ Use bulk deletion by passing a list of ids:
+
+ >>> netbox.dcim.devices.delete([2, 243, 431, 700])
+ >>>
+
+ Use bulk deletion to delete objects eg. when filtering
+ on a `custom_field`:
+ >>> netbox.dcim.devices.delete([
+ >>> d for d in netbox.dcim.devices.all(0) \
+ >>> if d.custom_fields.get('field', False)
+ >>> ])
+ >>>
+ """
+ cleaned_ids = []
+ if not isinstance(objects, list) and not isinstance(objects, RecordSet):
+ raise ValueError(
+ "objects must be list[str|int|Record]"
+ "|RecordSet - was " + str(type(objects))
+ )
+ for o in objects:
+ if isinstance(o, int):
+ cleaned_ids.append(o)
+ elif isinstance(o, str) and o.isnumeric():
+ cleaned_ids.append(int(o))
+ elif isinstance(o, Record):
+ if not hasattr(o, "id"):
+ raise ValueError(
+ "Record from '"
+ + o.url
+ + "' does not have an id and cannot be bulk deleted"
+ )
+ cleaned_ids.append(o.id)
+ else:
+ raise ValueError(
+ "Invalid object in list of " "objects to delete: " + str(type(o))
+ )
+
+ req = Request(
+ base=self.url,
+ token=self.token,
+ session_key=self.session_key,
+ http_session=self.api.http_session,
+ )
+ return True if req.delete(data=[{"id": i} for i in cleaned_ids]) else False
+
def choices(self):
""" Returns all choices from the endpoint.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.1.3/pynetbox/core/query.py new/pynetbox-6.2.0/pynetbox/core/query.py
--- old/pynetbox-6.1.3/pynetbox/core/query.py 2021-07-31 01:24:46.000000000 +0200
+++ new/pynetbox-6.2.0/pynetbox/core/query.py 2021-10-29 23:53:20.000000000 +0200
@@ -245,7 +245,7 @@
return url
def _make_call(self, verb="get", url_override=None, add_params=None, data=None):
- if verb in ("post", "put"):
+ if verb in ("post", "put") or verb == "delete" and data:
headers = {"Content-Type": "application/json;"}
else:
headers = {"accept": "application/json;"}
@@ -386,18 +386,20 @@
"""
return self._make_call(verb="post", data=data)
- def delete(self):
+ def delete(self, data=None):
"""Makes DELETE request.
Makes a DELETE request to NetBox's API.
+ :param data: (list) Contains a dict that will be turned into a
+ json object and sent to the API.
Returns:
True if successful.
Raises:
RequestError if req.ok doesn't return True.
"""
- return self._make_call(verb="delete")
+ return self._make_call(verb="delete", data=data)
def patch(self, data):
"""Makes PATCH request.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.1.3/pynetbox/core/response.py new/pynetbox-6.2.0/pynetbox/core/response.py
--- old/pynetbox-6.1.3/pynetbox/core/response.py 2021-07-31 01:24:46.000000000 +0200
+++ new/pynetbox-6.2.0/pynetbox/core/response.py 2021-10-29 23:53:20.000000000 +0200
@@ -127,6 +127,50 @@
return 0
return self.request.count
+ def update(self, **kwargs):
+ """Updates kwargs onto all Records in the RecordSet and saves these.
+
+ Updates are only sent to the API if a value were changed, and only for
+ the Records which were changed
+
+ :returns: True if the update succeeded, None if no update were required
+ :example:
+
+ >>> result = nb.dcim.devices.filter(site_id=1).update(status='active')
+ True
+ >>>
+ """
+ updates = []
+ for record in self:
+ # Update each record and determine if anything was updated
+ for k, v in kwargs.items():
+ setattr(record, k, v)
+ record_updates = record.updates()
+ if record_updates:
+ # if updated, add the id to the dict and append to list of updates
+ record_updates["id"] = record.id
+ updates.append(record_updates)
+ if updates:
+ return self.endpoint.update(updates)
+ else:
+ return None
+
+ def delete(self):
+ r"""Bulk deletes objects in a RecordSet.
+
+ Allows for batch deletion of multiple objects in a RecordSet
+
+ :returns: True if bulk DELETE operation was successful.
+
+ :Examples:
+
+ Deleting offline `devices` on site 1:
+
+ >>> netbox.dcim.devices.filter(site_id=1, status="offline").delete()
+ >>>
+ """
+ return self.endpoint.delete(self)
+
class Record(object):
"""Create python objects from netbox API responses.
@@ -429,6 +473,30 @@
)
return set([i[0] for i in set(current.items()) ^ set(init.items())])
+ def updates(self):
+ """Compiles changes for an existing object into a dict.
+
+ Takes a diff between the objects current state and its state at init
+ and returns them as a dictionary, which will be empty if no changes.
+
+ :returns: dict.
+ :example:
+
+ >>> x = nb.dcim.devices.get(name='test1-a3-tor1b')
+ >>> x.serial
+ u''
+ >>> x.serial = '1234'
+ >>> x.updates()
+ {'serial': '1234'}
+ >>>
+ """
+ if self.id:
+ diff = self._diff()
+ if diff:
+ serialized = self.serialize()
+ return {i: serialized[i] for i in diff}
+ return {}
+
def save(self):
"""Saves changes to an existing object.
@@ -446,20 +514,17 @@
True
>>>
"""
- if self.id:
- diff = self._diff()
- if diff:
- serialized = self.serialize()
- req = Request(
- key=self.id,
- base=self.endpoint.url,
- token=self.api.token,
- session_key=self.api.session_key,
- http_session=self.api.http_session,
- )
- if req.patch({i: serialized[i] for i in diff}):
- return True
-
+ updates = self.updates()
+ if updates:
+ req = Request(
+ key=self.id,
+ base=self.endpoint.url,
+ token=self.api.token,
+ session_key=self.api.session_key,
+ http_session=self.api.http_session,
+ )
+ if req.patch(updates):
+ return True
return False
def update(self, data):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.1.3/pynetbox.egg-info/PKG-INFO new/pynetbox-6.2.0/pynetbox.egg-info/PKG-INFO
--- old/pynetbox-6.1.3/pynetbox.egg-info/PKG-INFO 2021-07-31 01:24:56.000000000 +0200
+++ new/pynetbox-6.2.0/pynetbox.egg-info/PKG-INFO 2021-10-29 23:53:37.000000000 +0200
@@ -1,12 +1,11 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: pynetbox
-Version: 6.1.3
+Version: 6.2.0
Summary: NetBox API client library
Home-page: https://github.com/digitalocean/pynetbox
Author: Zach Moody
Author-email: zmoody(a)do.co
License: Apache2
-Description: UNKNOWN
Keywords: netbox
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
@@ -15,3 +14,7 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
+License-File: LICENSE
+
+UNKNOWN
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.1.3/tests/unit/test_endpoint.py new/pynetbox-6.2.0/tests/unit/test_endpoint.py
--- old/pynetbox-6.1.3/tests/unit/test_endpoint.py 2021-07-31 01:24:46.000000000 +0200
+++ new/pynetbox-6.2.0/tests/unit/test_endpoint.py 2021-10-29 23:53:20.000000000 +0200
@@ -71,6 +71,58 @@
test = test_obj.get(name="test")
self.assertEqual(test.id, 123)
+ def test_delete_with_ids(self):
+ with patch(
+ "pynetbox.core.query.Request._make_call", return_value=Mock()
+ ) as mock:
+ ids = [1, 3, 5]
+ mock.return_value = True
+ api = Mock(base_url="http://localhost:8000/api")
+ app = Mock(name="test")
+ test_obj = Endpoint(api, app, "test")
+ test = test_obj.delete(ids)
+ mock.assert_called_with(verb="delete", data=[{"id": i} for i in ids])
+ self.assertTrue(test)
+
+ def test_delete_with_objects(self):
+ with patch(
+ "pynetbox.core.query.Request._make_call", return_value=Mock()
+ ) as mock:
+ from pynetbox.core.response import Record
+
+ ids = [1, 3, 5]
+ mock.return_value = True
+ api = Mock(base_url="http://localhost:8000/api")
+ app = Mock(name="test")
+ test_obj = Endpoint(api, app, "test")
+ objects = [
+ Record({"id": i, "name": "dummy" + str(i)}, api, test_obj) for i in ids
+ ]
+ test = test_obj.delete(objects)
+ mock.assert_called_with(verb="delete", data=[{"id": i} for i in ids])
+ self.assertTrue(test)
+
+ def test_delete_with_recordset(self):
+ with patch(
+ "pynetbox.core.query.Request._make_call", return_value=Mock()
+ ) as mock:
+ from pynetbox.core.response import RecordSet
+
+ ids = [1, 3, 5]
+
+ class FakeRequest:
+ def get(self):
+ return iter([{"id": i, "name": "dummy" + str(i)} for i in ids])
+
+ mock.return_value = True
+ api = Mock(base_url="http://localhost:8000/api")
+ app = Mock(name="test")
+ test_obj = Endpoint(api, app, "test")
+ recordset = RecordSet(test_obj, FakeRequest())
+ test = test_obj.delete(recordset)
+ mock.assert_called_with(verb="delete", data=[{"id": i} for i in ids])
+ self.assertTrue(test)
+
def test_get_greater_than_one(self):
with patch(
"pynetbox.core.query.Request._make_call", return_value=Mock()
@@ -92,3 +144,46 @@
test_obj = Endpoint(api, app, "test")
test = test_obj.get(name="test")
self.assertIsNone(test)
+
+ def test_bulk_update_records(self):
+ with patch(
+ "pynetbox.core.query.Request._make_call", return_value=Mock()
+ ) as mock:
+ from pynetbox.core.response import Record
+
+ ids = [1, 3, 5]
+ mock.return_value = True
+ api = Mock(base_url="http://localhost:8000/api")
+ app = Mock(name="test")
+ test_obj = Endpoint(api, app, "test")
+ objects = [
+ Record(
+ {"id": i, "name": "dummy" + str(i), "unchanged": "yes"},
+ api,
+ test_obj,
+ )
+ for i in ids
+ ]
+ for o in objects:
+ o.name = "fluffy" + str(o.id)
+ mock.return_value = [o.serialize() for o in objects]
+ test = test_obj.update(objects)
+ mock.assert_called_with(
+ verb="patch", data=[{"id": i, "name": "fluffy" + str(i)} for i in ids]
+ )
+ self.assertTrue(test)
+
+ def test_bulk_update_json(self):
+ with patch(
+ "pynetbox.core.query.Request._make_call", return_value=Mock()
+ ) as mock:
+ ids = [1, 3, 5]
+ changes = [{"id": i, "name": "puffy" + str(i)} for i in ids]
+ mock.return_value = True
+ api = Mock(base_url="http://localhost:8000/api")
+ app = Mock(name="test")
+ mock.return_value = changes
+ test_obj = Endpoint(api, app, "test")
+ test = test_obj.update(changes)
+ mock.assert_called_with(verb="patch", data=changes)
+ self.assertTrue(test)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.1.3/tests/unit/test_response.py new/pynetbox-6.2.0/tests/unit/test_response.py
--- old/pynetbox-6.1.3/tests/unit/test_response.py 2021-07-31 01:24:46.000000000 +0200
+++ new/pynetbox-6.2.0/tests/unit/test_response.py 2021-10-29 23:53:20.000000000 +0200
@@ -2,12 +2,13 @@
import six
-from pynetbox.core.response import Record
+from pynetbox.core.response import Record, RecordSet
+from pynetbox.core.endpoint import Endpoint
if six.PY3:
- from unittest.mock import Mock
+ from unittest.mock import patch, Mock, call
else:
- from mock import Mock
+ from mock import patch, Mock, call
class RecordTestCase(unittest.TestCase):
@@ -346,3 +347,52 @@
]
test = Record({"id": 123, "tags": test_tags}, None, None).serialize()
self.assertEqual(test["tags"], test_tags)
+
+
+class RecordSetTestCase(unittest.TestCase):
+ ids = [1, 3, 5]
+
+ @classmethod
+ def init_recordset(cls):
+ data = [
+ {"id": i, "name": "dummy" + str(i), "status": "active"} for i in cls.ids
+ ]
+ api = Mock(base_url="http://localhost:8000/api")
+ app = Mock(name="test")
+
+ class FakeRequest:
+ def get(self):
+ return iter(data)
+
+ def patch(self):
+ return iter(data)
+
+ return RecordSet(Endpoint(api, app, "test"), FakeRequest())
+
+ def test_delete(self):
+ with patch(
+ "pynetbox.core.query.Request._make_call", return_value=Mock()
+ ) as mock:
+ mock.return_value = True
+ test_obj = RecordSetTestCase.init_recordset()
+ test = test_obj.delete()
+ mock.assert_called_with(
+ verb="delete", data=[{"id": i} for i in RecordSetTestCase.ids]
+ )
+ self.assertTrue(test)
+
+ def test_update(self):
+ with patch(
+ "pynetbox.core.query.Request._make_call", return_value=Mock()
+ ) as mock:
+ mock.return_value = [
+ {"id": i, "name": "dummy" + str(i), "status": "offline"}
+ for i in RecordSetTestCase.ids
+ ]
+ test_obj = RecordSetTestCase.init_recordset()
+ test = test_obj.update(status="offline")
+ mock.assert_called_with(
+ verb="patch",
+ data=[{"id": i, "status": "offline"} for i in RecordSetTestCase.ids],
+ )
+ self.assertTrue(test)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-websockets for openSUSE:Factory checked in at 2021-11-01 18:35:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-websockets (Old)
and /work/SRC/openSUSE:Factory/.python-websockets.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-websockets"
Mon Nov 1 18:35:42 2021 rev:16 rq:928437 version:10.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-websockets/python-websockets.changes 2021-10-30 23:14:49.615108106 +0200
+++ /work/SRC/openSUSE:Factory/.python-websockets.new.1890/python-websockets.changes 2021-11-01 18:35:55.385343011 +0100
@@ -1,0 +2,6 @@
+Sat Oct 30 22:51:02 UTC 2021 - Ben Greiner <code(a)bnavigator.de>
+
+- Reactivate python39 build, only disable testing. No need to break
+ consuming packages -- gh#aaugustin/websockets#1051
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-websockets.spec ++++++
--- /var/tmp/diff_new_pack.gFzNvn/_old 2021-11-01 18:35:55.841343272 +0100
+++ /var/tmp/diff_new_pack.gFzNvn/_new 2021-11-01 18:35:55.845343275 +0100
@@ -19,8 +19,6 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
%define skip_python36 1
-# gh#aaugustin/websockets#1051
-%define skip_python39 1
Name: python-websockets
Version: 10.0
Release: 0
@@ -29,7 +27,7 @@
Group: Development/Languages/Python
URL: https://github.com/aaugustin/websockets
Source: https://github.com/aaugustin/websockets/archive/%{version}.tar.gz
-BuildRequires: %{python_module devel}
+BuildRequires: %{python_module devel >= 3.7}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -62,7 +60,9 @@
# https://github.com/aaugustin/websockets/issues/855 is an intermittent failure
# for test_keepalive_ping_does_not_crash_when_connection_lost on s390x
# export PYTHONWARNINGS=default
-%pyunittest_arch -v
+# test suite temporarily broken on python 3.9.7: gh#aaugustin/websockets#1051
+python39_donttest=(-k testnothing)
+%pyunittest_arch -v "${$python_donttest[@]}"
%files %{python_files}
%license LICENSE
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-PyQt6 for openSUSE:Factory checked in at 2021-11-01 18:35:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-PyQt6 (Old)
and /work/SRC/openSUSE:Factory/.python-PyQt6.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-PyQt6"
Mon Nov 1 18:35:40 2021 rev:5 rq:928221 version:6.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-PyQt6/python-PyQt6.changes 2021-10-11 15:31:36.566844217 +0200
+++ /work/SRC/openSUSE:Factory/.python-PyQt6.new.1890/python-PyQt6.changes 2021-11-01 18:35:52.849341561 +0100
@@ -1,0 +2,6 @@
+Fri Oct 29 15:07:23 UTC 2021 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to version 6.2.1
+ * Bug fixes.
+
+-------------------------------------------------------------------
Old:
----
PyQt6-6.2.0.tar.gz
New:
----
PyQt6-6.2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-PyQt6.spec ++++++
--- /var/tmp/diff_new_pack.RZBWgc/_old 2021-11-01 18:35:53.357341851 +0100
+++ /var/tmp/diff_new_pack.RZBWgc/_new 2021-11-01 18:35:53.361341853 +0100
@@ -21,7 +21,7 @@
%define mname PyQt6
%define pyqt_build_for_qt6 1
Name: python-%{mname}
-Version: 6.2.0
+Version: 6.2.1
Release: 0
Summary: Python bindings for Qt 6
License: GPL-3.0-only OR SUSE-GPL-2.0-with-FLOSS-exception OR NonFree
@@ -36,7 +36,7 @@
BuildRequires: %{python_module dbus-python-devel >= 0.8}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pyqt-builder >= 1.11}
-BuildRequires: %{python_module sip-devel >= 6.2}
+BuildRequires: %{python_module sip-devel >= 6.4}
BuildRequires: dbus-1-devel
BuildRequires: dos2unix
BuildRequires: fdupes
@@ -79,7 +79,7 @@
Requires: python-%{mname} = %{version}
Requires: python-dbus-python-devel >= 0.8
Requires: python-devel
-Requires: python-sip-devel >= 6.2
+Requires: python-sip-devel >= 6.4
Requires: qt6-base-devel
Requires: qt6-macros
Requires: cmake(Qt6Bluetooth)
@@ -127,6 +127,7 @@
%prep
%autosetup -p1 -n PyQt6-%{version}
dos2unix examples/quick/models/*/view.qml
+dos2unix examples/multimedia*/*/*.ui
%build
%{pyqt_build -v \
++++++ PyQt6-6.2.0.tar.gz -> PyQt6-6.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/ChangeLog new/PyQt6-6.2.1/ChangeLog
--- old/PyQt6-6.2.0/ChangeLog 2021-09-30 18:06:14.934907000 +0200
+++ new/PyQt6-6.2.1/ChangeLog 2021-10-28 12:18:08.722375400 +0200
@@ -1,5 +1,56 @@
+2021-10-28 Phil Thompson <phil(a)riverbankcomputing.com>
+
+ * NEWS, PyQt6.msp:
+ Added the QLowEnergyController.mtuChanged() signal which is now
+ documented in Qtv v6.2.1.
+ [a2c450b78bfa] [6.2.1] <6.2-maint>
+
+2021-10-24 Phil Thompson <phil(a)riverbankcomputing.com>
+
+ * extras/uic/Compiler/qtproxies.py:
+ Generate typing information to ignore connect() in pyuic generated
+ code.
+ [9c0e41c7ff2e] <6.2-maint>
+
+ * NEWS, PyQt6.msp, pyproject.toml:
+ Fixed pickling of QByteArray with Python v3.10.
+ [a0e71847dd24] <6.2-maint>
+
+ * test/classes/test_QByteArray.py:
+ Added the QByteArray pickle test.
+ [5030955cccde] <6.2-maint>
+
+2021-10-23 Phil Thompson <phil(a)riverbankcomputing.com>
+
+ * NEWS, PyQt6.msp:
+ Remove QObject.__getattr__() from QtCore.pyi as it hides
+ missing/mistyped attribute names.
+ [57b7422b71ce] <6.2-maint>
+
+2021-10-22 Phil Thompson <phil(a)riverbankcomputing.com>
+
+ * NEWS, extras/uic/enum_map.py:
+ Fixed pyuic's handling of QAction::MenuRole.
+ [8810cca5e9b4] <6.2-maint>
+
+2021-10-16 Phil Thompson <phil(a)riverbankcomputing.com>
+
+ * NEWS, pyproject.toml:
+ SIP v6.3.2 is required to fix the /KeepReference/ in QImage ctors.
+ [cb499c4af6b0] <6.2-maint>
+
+2021-10-04 Phil Thompson <phil(a)riverbankcomputing.com>
+
+ * NEWS, extras/lupdate/python_source.py:
+ Fixed QCoreApplication.translate() when the third argument is None.
+ [5133bf2070f2] <6.2-maint>
+
2021-09-30 Phil Thompson <phil(a)riverbankcomputing.com>
+ * .hgtags:
+ Added tag 6.2.0 for changeset 0bb49dbf5c8b
+ [15bf52145355]
+
* NEWS, PyQt6.msp:
Updated for Qt v6.2.0.
[0bb49dbf5c8b] [6.2.0]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/NEWS new/PyQt6-6.2.1/NEWS
--- old/PyQt6-6.2.0/NEWS 2021-09-30 18:06:14.937673000 +0200
+++ new/PyQt6-6.2.1/NEWS 2021-10-28 12:18:08.723260200 +0200
@@ -1,3 +1,6 @@
+v6.2.1 28th October 2021
+ - Bug fixes.
+
v6.2.0 30th September 2021
- Added support for Qt v6.2 including the QtBluetooth, QtMultimedia,
QtMultimediaWidgets, QtNfc, QtPositioning, QtRemoteObjects, QtSensors,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/PKG-INFO new/PyQt6-6.2.1/PKG-INFO
--- old/PyQt6-6.2.0/PKG-INFO 2021-09-30 18:06:27.975430500 +0200
+++ new/PyQt6-6.2.1/PKG-INFO 2021-10-28 12:18:16.577184700 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: PyQt6
-Version: 6.2.0
+Version: 6.2.1
Requires-Python: >=3.6.1
Summary: Python bindings for the Qt cross platform application toolkit
Home-Page: https://www.riverbankcomputing.com/software/pyqt/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/lupdate/python_source.py new/PyQt6-6.2.1/lupdate/python_source.py
--- old/PyQt6-6.2.0/lupdate/python_source.py 2021-09-30 18:06:15.355131000 +0200
+++ new/PyQt6-6.2.1/lupdate/python_source.py 2021-10-28 12:18:08.872813200 +0200
@@ -216,7 +216,7 @@
return context
@staticmethod
- def _get_str(node):
+ def _get_str(node, allow_none=False):
""" Return the str from a node or None if it wasn't an appropriate
node.
"""
@@ -224,8 +224,12 @@
if isinstance(node, ast.Str):
return node.s
- if isinstance(node, ast.Constant) and isinstance(node.value, str):
- return node.value
+ if isinstance(node, ast.Constant):
+ if isinstance(node.value, str):
+ return node.value
+
+ if allow_none and node.value is None:
+ return ''
return None
@@ -305,11 +309,11 @@
return None
if len(args) > 1:
- disambiguation = self._get_str(args[1])
+ disambiguation = self._get_str(args[1], allow_none=True)
else:
for kw in keywords:
if kw.arg == 'disambiguation':
- disambiguation = self._get_str(kw.value)
+ disambiguation = self._get_str(kw.value, allow_none=True)
break
else:
disambiguation = ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/pyproject.toml new/PyQt6-6.2.1/pyproject.toml
--- old/PyQt6-6.2.0/pyproject.toml 2021-09-30 18:06:15.482639000 +0200
+++ new/PyQt6-6.2.1/pyproject.toml 2021-10-28 12:18:08.905485900 +0200
@@ -1,12 +1,12 @@
# Specify the build system for the project.
[build-system]
-requires = ["sip >=6.2, <7", "PyQt-builder >=1.11, <2"]
+requires = ["sip >=6.4, <7", "PyQt-builder >=1.11, <2"]
build-backend = "sipbuild.api"
# Specify the PEP 566 metadata for the project.
[tool.sip.metadata]
name = "PyQt6"
-version = "6.2.0"
+version = "6.2.1"
summary = "Python bindings for the Qt cross platform application toolkit"
home-page = "https://www.riverbankcomputing.com/software/pyqt/"
author = "Riverbank Computing Limited"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/sip/QtBluetooth/qlowenergycontroller.sip new/PyQt6-6.2.1/sip/QtBluetooth/qlowenergycontroller.sip
--- old/PyQt6-6.2.0/sip/QtBluetooth/qlowenergycontroller.sip 2021-09-30 18:06:24.506956000 +0200
+++ new/PyQt6-6.2.1/sip/QtBluetooth/qlowenergycontroller.sip 2021-10-28 12:18:14.877577500 +0200
@@ -83,6 +83,7 @@
void serviceDiscovered(const QBluetoothUuid &newService);
void discoveryFinished();
void connectionUpdated(const QLowEnergyConnectionParameters ¶meters);
+ void mtuChanged(int mtu);
public:
enum Role
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/sip/QtCore/QtCoremod.sip new/PyQt6-6.2.1/sip/QtCore/QtCoremod.sip
--- old/PyQt6-6.2.0/sip/QtCore/QtCoremod.sip 2021-09-30 18:06:26.078592000 +0200
+++ new/PyQt6-6.2.1/sip/QtCore/QtCoremod.sip 2021-10-28 12:18:15.533343000 +0200
@@ -20,7 +20,7 @@
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-%Module(name=PyQt6.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt6, keyword_arguments="Optional", use_limited_api=True)
+%Module(name=PyQt6.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt6, keyword_arguments="Optional", use_limited_api=True, py_ssize_t_clean=True)
%Timeline {Qt_6_0_0 Qt_6_1_0 Qt_6_2_0}
@@ -73,8 +73,8 @@
const char *PYQT_VERSION_STR;
%ModuleCode
-static int PYQT_VERSION = 0x060200;
-static const char *PYQT_VERSION_STR = "6.2.0";
+static int PYQT_VERSION = 0x060201;
+static const char *PYQT_VERSION_STR = "6.2.1";
%End
%Include qglobal.sip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/sip/QtCore/qbytearray.sip new/PyQt6-6.2.1/sip/QtCore/qbytearray.sip
--- old/PyQt6-6.2.0/sip/QtCore/qbytearray.sip 2021-09-30 18:06:26.273179000 +0200
+++ new/PyQt6-6.2.1/sip/QtCore/qbytearray.sip 2021-10-28 12:18:15.593770500 +0200
@@ -109,7 +109,7 @@
%End
%PickleCode
- sipRes = Py_BuildValue("(y#)", sipCpp->data(), sipCpp->size());
+ sipRes = Py_BuildValue("(y#)", sipCpp->data(), static_cast<Py_ssize_t>(sipCpp->size()));
%End
public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/sip/QtCore/qobject.sip new/PyQt6-6.2.1/sip/QtCore/qobject.sip
--- old/PyQt6-6.2.0/sip/QtCore/qobject.sip 2021-09-30 18:06:25.999845000 +0200
+++ new/PyQt6-6.2.1/sip/QtCore/qobject.sip 2021-10-28 12:18:15.488357000 +0200
@@ -362,7 +362,7 @@
return qpycore_pyqtconfigure(sipSelf, sipArgs, sipKwds);
%End
- SIP_PYOBJECT __getattr__(const char *name /Encoding="UTF-8"/) const;
+ SIP_PYOBJECT __getattr__(const char *name /Encoding="UTF-8"/) const /NoTypeHint/;
%MethodCode
sipRes = qpycore_qobject_getattr(sipCpp, sipSelf, a0);
%End
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/uic/Compiler/qtproxies.py new/PyQt6-6.2.1/uic/Compiler/qtproxies.py
--- old/PyQt6-6.2.0/uic/Compiler/qtproxies.py 2021-09-30 18:06:15.426112000 +0200
+++ new/PyQt6-6.2.1/uic/Compiler/qtproxies.py 2021-10-28 12:18:08.894364000 +0200
@@ -1,6 +1,6 @@
#############################################################################
##
-## Copyright (C) 2020 Riverbank Computing Limited.
+## Copyright (C) 2021 Riverbank Computing Limited.
## Copyright (C) 2006 Thorsten Marek.
## All right reserved.
##
@@ -129,6 +129,9 @@
if needs_translation:
i18n_print(func_call)
else:
+ if self.function_name == 'connect':
+ func_call += ' # type: ignore'
+
write_code(func_call)
def __getattribute__(self, attribute):
@@ -169,7 +172,7 @@
self._signal_index = "'%s'" % signal_index
def connect(self, slot):
- write_code("%s.%s[%s].connect(%s)" % (self._sender, self._signal_name, self._signal_index, slot))
+ write_code("%s.%s[%s].connect(%s) # type: ignore" % (self._sender, self._signal_name, self._signal_index, slot))
class ProxyBase(metaclass=ProxyMetaclass):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt6-6.2.0/uic/enum_map.py new/PyQt6-6.2.1/uic/enum_map.py
--- old/PyQt6-6.2.0/uic/enum_map.py 2021-09-30 18:06:15.410165000 +0200
+++ new/PyQt6-6.2.1/uic/enum_map.py 2021-10-28 12:18:08.884650500 +0200
@@ -225,6 +225,14 @@
'QAbstractSpinBox::AdaptiveDecimalStepType': 'QAbstractSpinBox::StepType::AdaptiveDecimalStepType',
'QAbstractSpinBox::DefaultStepType': 'QAbstractSpinBox::StepType::DefaultStepType',
+ 'QAction::NoRole': 'QAction::MenuRole::NoRole',
+ 'QAction::TextHeuristicRole': 'QAction::MenuRole::TextHeuristicRole',
+ 'QAction::ApplicationSpecificRole': 'QAction::MenuRole::ApplicationSpecificRole',
+ 'QAction::AboutQtRole': 'QAction::MenuRole::AboutQtRole',
+ 'QAction::AboutRole': 'QAction::MenuRole::AboutRole',
+ 'QAction::PreferencesRole': 'QAction::MenuRole::PreferencesRole',
+ 'QAction::QuitRole': 'QAction::MenuRole::QuitRole',
+
'QCalendarWidget::LongDayNames': 'QCalendarWidget::HorizontalHeaderFormat::LongDayNames',
'QCalendarWidget::NoHorizontalHeader': 'QCalendarWidget::HorizontalHeaderFormat::NoHorizontalHeader',
'QCalendarWidget::ShortDayNames': 'QCalendarWidget::HorizontalHeaderFormat::ShortDayNames',
1
0