Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • gajim/gajim
  • lovetox/gajim
  • ag/gajim
  • linkmauve/gajim
  • asterix/gajim
  • andre/gajim
  • mimi89999/gajim
  • bronko/gajim
  • wurstsalat/gajim
  • baitisj/gajim
  • Dicson/gajim
  • PolynomialDivision/gajim
  • troom/gajim
  • sophie-h/gajim
  • marmistrz/gajim
  • mrDoctorWho/gajim
  • orhideous/gajim
  • jjrh/gajim
  • streaps/gajim
  • jhuffine/gajim
  • maltel/gajim
  • Dominion/gajim
  • norstbox/gajim
  • synchrone/gajim
  • mick3247652/gajim
  • Yuki/gajim
  • l-n-s/gajim
  • ehuelsmann/gajim
  • hrxi/gajim
  • SaltyBones/gajim
  • rlgh/gajim
  • genofire/gajim
  • weblate/gajim
  • PapaTutuWawa/gajim
  • eta/gajim
  • jelmer/gajim
  • Ge0rG/gajim
  • TSRh/gajim
  • tolosaeduard/gajim
  • pitchum/gajim
  • mexicarne/gajim
  • prmcgs/gajim
  • mehw/gajim
  • ecxod/gajim
  • wannestas/gajim
  • XutaxKamay/gajim
  • emil/gajim-fork
  • gs/gajim
  • jurajlutter/gajim
  • Sheldon/gajim-cme
  • dexgs/gajim
  • bodqhrohro/gajim
  • Ermine/gajim
  • mesonium/gajim
  • mjk/gajim
  • nicoco/gajim
  • Polarian/gajim
  • izaya/gajim
  • kurion/gajim
  • npmania/gajim
  • ebertus/gajim
  • intelfx/gajim
  • musipusi/gajim
  • wusspuss/gajim
  • slicht/gajim
  • toms/gajim
  • singpolyma/gajim
  • Antiz/gajim
  • hendursaga/gajim
  • cve-1312/gajim
  • smemes2/gajim
  • amlor/gajim
72 results
Show changes
Commits on Source (137)
Showing
with 285 additions and 150 deletions
......@@ -6,7 +6,7 @@ environment:
MSYSTEM: MINGW64
ARCH: "64bit"
clone_depth: 1
clone_depth: 10
# init:
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
......@@ -23,6 +23,7 @@ build_script:
- ps: |
$filename = "Gajim-$($env:GAJIM_VERSION)-$($env:ARCH)"
$filename_portable = "Gajim-Portable-$($env:GAJIM_VERSION)-$($env:ARCH)"
$filename_msixbundle = "Gajim-$($env:GAJIM_VERSION)"
if ($env:GAJIM_VERSION -eq "Nightly") {
$time_string=(get-date -UFormat "%Y-%m-%d").ToString()
......@@ -43,6 +44,7 @@ build_script:
Push-AppveyorArtifact "$($buildroot)/Gajim.exe" -FileName "$($filename).exe"
Push-AppveyorArtifact "$($buildroot)/Gajim-Portable.exe" -FileName "$($filename_portable).exe"
Push-AppveyorArtifact "$($buildroot)/Gajim.msixbundle" -FileName "$($filename_msixbundle).msixbundle"
if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }
# on_finish:
......
......@@ -22,6 +22,7 @@ ALLOWED_TAGS = [
'release',
'other',
'imprv',
'revert',
]
......@@ -43,6 +44,9 @@ def get_commit_shas(start_ref: str, end_ref: str) -> List[str]:
data = subprocess.check_output(['git', 'rev-list', arg])
text = data.decode()
text = text.strip()
if not text:
# Can happen if commits are deleted after force push
return []
return text.split('\n')
......@@ -78,6 +82,7 @@ def main(args: Tuple[str, str, str]) -> None:
shas = get_commit_shas(old_ref, new_ref)
for sha in shas:
print('Check', sha)
subject = get_commit_subject(sha)
enforce_message_rules(subject)
......
......@@ -315,4 +315,16 @@ publish-release:
rules:
- if: '$CI_COMMIT_TAG'
script:
- release-helper make-gitlab-release $CI_COMMIT_TAG "${PROJECT_TOKEN}"
- >
release-helper finish-milestone \
$CI_PROJECT_ID \
$PROJECT_TOKEN \
--version=$CI_COMMIT_TAG \
--title="Next Release"
- >
release-helper create-release \
$CI_PROJECT_ID \
$PROJECT_TOKEN \
--version=$CI_COMMIT_TAG \
--tag=$CI_COMMIT_TAG \
--milestone=$CI_COMMIT_TAG
repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.0.259
rev: v0.0.270
hooks:
- id: ruff
exclude: ".githooks/"
......@@ -14,7 +14,7 @@ repos:
- tomli
- repo: https://github.com/RobertCraigie/pyright-python
rev: v1.1.302
rev: v1.1.310
hooks:
- id: pyright
pass_filenames: false
......
......@@ -51,6 +51,7 @@ Prefixes for development
- refactor (code was changed, but the end user will not notice)
- chore (reoccuring tasks which need to be done)
- release (only used for release commits)
- revert (used when a commit needs to be reverted)
- other
Further the first letter after the tag must be upper case
......
Gajim 1.8.0 (27 May 2023)
New
* XMLConsole: Add logging view
* JID sharing: Include verified OMEMO fingerprints
* Detect dark theme on Windows
* Integrate OMEMO plugin
* Redesign Group Chat actions (#10362)
Improvements
* Audio preview: Support more mime types
* ChatBanner: Add share instructions
* ChatList: Clear row content when removing history (#11420)
* XMLConsole: Always use dark theme
* AboutDialog: Show libsoup version
* GroupchatState: Show MAM sync
* ChatList: Improve sorting
* Make contact details/settings available when offline
* ACE: Make descriptions selectable and copyable
* Notifications: Withdraw all when a corresponding chat is read (#11030)
* ChatList: Show indicator if group chat is not connected
* ChatList: Show indicator when joining group chat
* StartChat: Don't filter for account labels (#11494)
* ChatStack: Only respond to supported drag-n-drop types while dragging
* App menu: Add menu entry for privacy policy
* GroupchatRoster: Highlight own nick and sort it to the top (#11431)
* CertificateDialog: Add additional infos and remove org unit field (#11461)
* GroupchatDetails: Hide OMEMO page in public MUCs
* ChatBanner: Add QR code for sharing JIDs (#11429)
* Windows: Package pixbuf loaders for avif and webp
Change
* Raise nbxmpp version
* Remove "escape_key_closes" from ACE
* Enable spell checker by default
* OMEMO verification: Generate URIs with pedantically correct query
* Raise gajim when no cmdline options are provided (#11482)
Performance
* QR codes: Avoid roundtrip to PNG in storage and back
Bug Fixes
* ProfileWindow: Don't fail when no vcard is set
* ContactInfo: Don’t fail when no vcard is set
* Message menu: Fix issue with chats not supplying correct ID
* Exceptions: Fix sending reports via sentry in conjunction with proxy settings
* ChatActionProcessor: De-duplicate emojis
* Fix encryption deadlock with changed MUC configurations (#11421)
* UI: Update avatar on muc-disco-update
* AvatarSelector: Fix that images don't display after repeated loading
* SearchView: Don't change search context when switching chats (#11533)
* SearchView: Remove overlay (#11412)
* ChatActionProcessor: Allow to click items with mouse cursor (#11445)
* MessageWidget: Don't return truncated text for message actions Fixes [#11526](https://dev.gajim.org/gajim/gajim/issues/11526) (#11526)
* Idle: Use default xa implementation for XSS backend (#11522)
* ConversationView: Fix loading messages going forward from specific point (#11201)
* ACE: Handle invalid numeric values gracefully
* XMLConsole: Select first account by default (#11498)
* Fix rendering of copied code blocks and quotes (#11499)
* ContactInfo: Improve behavior for connection changes
* Fix access to GnuPG keys on flatpak (#621)
* Fix showing status icon on flatpak
* Escape JIDs for xmpp URIs everywhere
* Ask for confirmation when leaving a MUC while offline (#11487)
* ContactInfo: Improve behavior for connection changes (#11439)
* Make manually changing the pinned chat sort order work again
* MessageActionsBox: Update send file button tooltip when switching chats (#11473)
* GroupChatRoster: Make scrollbar the right-most widget (#11290)
* GroupChatInviter: Don't filter by account name (#11474)
* Preview: Display webp and avif images on Windows correctly
* CertificateDialog: Display issued-to information correctly
* AccountWizard: Respect global proxy (#11452)
Gajim 1.7.3 (03 Apr 2023)
New
......
......@@ -8,7 +8,7 @@
- [PyGObject](https://pypi.org/project/PyGObject/) (>=3.42.0)
- [pycairo](https://pypi.org/project/pycairo/)
- [cairo](https://gitlab.freedesktop.org/cairo/cairo) (>=1.16.0)
- [nbxmpp](https://pypi.org/project/nbxmpp/) (>=4.2.2)
- [nbxmpp](https://pypi.org/project/nbxmpp/) (>=4.3.0)
- [cryptography](https://pypi.org/project/cryptography/) (>=3.4.8)
- [css-parser](https://pypi.org/project/css-parser/)
- [keyring](https://pypi.org/project/keyring/)
......
......@@ -74,6 +74,9 @@
<control>pointing</control>
</recommends>
<releases>
<release version="1.8.0" date="2023-05-27">
<url>https://dev.gajim.org/gajim/gajim/-/releases/1.8.0</url>
</release>
<release version="1.7.3" date="2023-04-04">
<url>https://dev.gajim.org/gajim/gajim/-/releases/1.7.3</url>
</release>
......
......@@ -12,8 +12,8 @@ Build-Depends:
python3-css-parser,
python3-gi,
python3-gi-cairo,
python3-nbxmpp-nightly (>=20230405),
python3-omemo-dr (>=20230407),
python3-nbxmpp-nightly (>=20230527),
python3-omemo-dr (>=20230527),
python3-setuptools,
python3-packaging,
python3-cryptography (>=3.4.8),
......@@ -35,8 +35,8 @@ Depends:
python3 (>= 3.10),
python3-gi (>= 3.42.0),
python3-gi-cairo (>= 1.14.0~),
python3-nbxmpp-nightly (>=20230405),
python3-omemo-dr (>=20230407),
python3-nbxmpp-nightly (>=20230527),
python3-omemo-dr (>=20230527),
gir1.2-pango-1.0 (>= 1.50.0),
gir1.2-gtk-3.0 (>= 3.24.30),
gir1.2-gtksource-4,
......
......@@ -16,7 +16,7 @@ index 93c4acbe6..52544a89d 100644
dependencies = [
"css-parser",
"keyring",
- "nbxmpp>=4.2.2,<5.0.0",
- "nbxmpp>=4.3.0,<5.0.0",
"packaging",
"pillow",
"precis-i18n>=1.0.0",
......
......@@ -30,6 +30,7 @@ finish-args:
- --talk-name=org.kde.StatusNotifierWatcher
# GnuPG
- --filesystem=~/.gnupg
- --filesystem=xdg-run/gnupg
# camera access
- --device=all
# extensions
......@@ -73,11 +74,11 @@ modules:
- name: python3-packaging
buildsystem: simple
build-commands:
- pip3 install packaging-23.0-py3-none-any.whl
- pip3 install packaging-23.1-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/p/packaging/packaging-23.0-py3-none-any.whl
sha256: 714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2
url: https://files.pythonhosted.org/packages/py3/p/packaging/packaging-23.1-py3-none-any.whl
sha256: 994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61
- name: python3-pycparser
buildsystem: simple
......@@ -120,22 +121,22 @@ modules:
only-arches:
- aarch64
build-commands:
- pip3 install cryptography-40.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- pip3 install cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/cp36/c/cryptography/cryptography-40.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
sha256: 3a4805a4ca729d65570a1b7cac84eac1e431085d40387b7d3bbaa47e39890b88
url: https://files.pythonhosted.org/packages/cp36/c/cryptography/cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
sha256: 4df2af28d7bedc84fe45bd49bc35d710aede676e2a4cb7fc6d103a2adc8afe4d
- name: python3-cryptography
buildsystem: simple
only-arches:
- x86_64
build-commands:
- pip3 install cryptography-40.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pip3 install cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/cp36/c/cryptography/cryptography-40.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: 63dac2d25c47f12a7b8aa60e528bfb3c51c5a6c5a9f7c86987909c6c79765554
url: https://files.pythonhosted.org/packages/cp36/c/cryptography/cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: 0dcca15d3a19a66e63662dc8d30f8036b07be851a8680eda92d079868f106288
- name: python3-dbus-python
build-options:
......@@ -190,11 +191,11 @@ modules:
- name: python3-importlib-metadata
buildsystem: simple
build-commands:
- pip3 install importlib_metadata-6.1.0-py3-none-any.whl
- pip3 install importlib_metadata-6.6.0-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/i/importlib_metadata/importlib_metadata-6.1.0-py3-none-any.whl
sha256: ff80f3b5394912eb1b108fcfd444dc78b7f1f3e16b16188054bd01cb9cb86f09
url: https://files.pythonhosted.org/packages/py3/i/importlib_metadata/importlib_metadata-6.6.0-py3-none-any.whl
sha256: 43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed
- name: python3-jaraco.classes
buildsystem: simple
......@@ -221,11 +222,11 @@ modules:
- name: python3-css-parser
buildsystem: simple
build-commands:
- pip3 install css_parser-1.0.8-py2.py3-none-any.whl
- pip3 install css_parser-1.0.9-py2.py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py2.py3/c/css_parser/css_parser-1.0.8-py2.py3-none-any.whl
sha256: 8f227506d21e2236f328781d41e055b5665ed2016137567841449035298ce439
url: https://files.pythonhosted.org/packages/py2.py3/c/css_parser/css_parser-1.0.9-py2.py3-none-any.whl
sha256: e18f66961103b61df25aa6df0dc808ab61c23e65ae6c1a8c149fe71911190495
- name: python3-precis_i18n
buildsystem: simple
......@@ -251,8 +252,8 @@ modules:
- /bin
sources:
- type: archive
url: https://download.gnome.org/sources/gspell/1.12/gspell-1.12.0.tar.xz
sha256: 40d2850f1bb6e8775246fa1e39438b36caafbdbada1d28a19fa1ca07e1ff82ad
url: https://download.gnome.org/sources/gspell/1.12/gspell-1.12.1.tar.xz
sha256: 8ec44f32052e896fcdd4926eb814a326e39a5047e251eec7b9056fbd9444b0f1
- name: farstream
rm-configure: true
......@@ -276,29 +277,29 @@ modules:
- name: python3-urllib3
buildsystem: simple
build-commands:
- pip3 install urllib3-1.26.15-py2.py3-none-any.whl
- pip3 install urllib3-1.26.16-py2.py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py2.py3/u/urllib3/urllib3-1.26.15-py2.py3-none-any.whl
sha256: aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42
url: https://files.pythonhosted.org/packages/py2.py3/u/urllib3/urllib3-1.26.16-py2.py3-none-any.whl
sha256: 8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f
- name: python3-certifi
buildsystem: simple
build-commands:
- pip3 install certifi-2022.12.7-py3-none-any.whl
- pip3 install certifi-2023.5.7-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/c/certifi/certifi-2022.12.7-py3-none-any.whl
sha256: 4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18
url: https://files.pythonhosted.org/packages/py3/c/certifi/certifi-2023.5.7-py3-none-any.whl
sha256: c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716
- name: python3-sentry-sdk
buildsystem: simple
build-commands:
- pip3 install sentry_sdk-1.19.0-py2.py3-none-any.whl
- pip3 install sentry_sdk-1.24.0-py2.py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py2.py3/s/sentry_sdk/sentry_sdk-1.19.0-py2.py3-none-any.whl
sha256: 8dcffbbb963963567384d6eb49c76b8fb05753540715cbee5e5ca5bc8327ded4
url: https://files.pythonhosted.org/packages/py2.py3/s/sentry_sdk/sentry_sdk-1.24.0-py2.py3-none-any.whl
sha256: 56d6d9d194c898d853a7c1dd99bed92ce82334ee1282292c15bcc967ff1a49b5
# gssapi dependency
- name: python3-decorator
......@@ -310,33 +311,43 @@ modules:
url: https://files.pythonhosted.org/packages/py3/d/decorator/decorator-5.1.1-py3-none-any.whl
sha256: b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186
# nbxmpp dependency (optional)
- name: python3-gssapi
# qrcode dependencies
- name: python3-pypng
buildsystem: simple
build-commands:
- pip3 install -v --no-build-isolation .
- pip3 install pypng-0.20220715.0-py3-none-any.whl
sources:
- type: archive
url: https://files.pythonhosted.org/packages/source/g/gssapi/gssapi-1.8.2.tar.gz
sha256: b78e0a021cc91158660e4c5cc9263e07c719346c35a9c0f66725e914b235c89a
- type: file
url: https://files.pythonhosted.org/packages/py3/p/pypng/pypng-0.20220715.0-py3-none-any.whl
sha256: 4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c
- name: python3-nbxmpp
- name: python3-typing-extensions
buildsystem: simple
build-commands:
- pip3 install --no-build-isolation .
- pip3 install typing_extensions-4.6.2-py3-none-any.whl
sources:
- type: git
url: https://dev.gajim.org/gajim/python-nbxmpp.git
- type: file
url: https://files.pythonhosted.org/packages/py3/t/typing_extensions/typing_extensions-4.6.2-py3-none-any.whl
sha256: 3a8b36f13dd5fdc5d1b16fe317f5668545de77fa0b8e02006381fd49d731ab98
# OMEMO dependencies
- name: python3-qrcode
buildsystem: simple
build-commands:
- pip3 install --no-build-isolation .
sources:
- type: archive
url: https://files.pythonhosted.org/packages/source/q/qrcode/qrcode-7.4.2.tar.gz
sha256: 9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845
- name: python3-protobuf
buildsystem: simple
build-commands:
- pip3 install --no-deps protobuf-4.21.1-py3-none-any.whl
- pip3 install --no-deps protobuf-4.23.2-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/p/protobuf/protobuf-4.21.1-py3-none-any.whl
sha256: 79cd8d0a269b714f6b32641f86928c718e8d234466919b3f552bfb069dbb159b
url: https://files.pythonhosted.org/packages/py3/p/protobuf/protobuf-4.23.2-py3-none-any.whl
sha256: 8da6070310d634c99c0db7df48f10da495cc283fd9e9234877f0cd182d43ab7f
- name: python3-omemo-dr
buildsystem: simple
......@@ -346,14 +357,23 @@ modules:
- type: git
url: https://dev.gajim.org/gajim/omemo-dr.git
- name: python3-qrcode
# nbxmpp dependency (optional)
- name: python3-gssapi
buildsystem: simple
build-commands:
- pip3 install .
- pip3 install --no-build-isolation .
sources:
- type: archive
url: https://files.pythonhosted.org/packages/source/q/qrcode/qrcode-7.3.1.tar.gz
sha256: 375a6ff240ca9bd41adc070428b5dfc1dcfbb0f2507f1ac848f6cded38956578
url: https://files.pythonhosted.org/packages/source/g/gssapi/gssapi-1.8.2.tar.gz
sha256: b78e0a021cc91158660e4c5cc9263e07c719346c35a9c0f66725e914b235c89a
- name: python3-nbxmpp
buildsystem: simple
build-commands:
- pip3 install --no-build-isolation .
sources:
- type: git
url: https://dev.gajim.org/gajim/python-nbxmpp.git
- name: gajim
buildsystem: simple
......
......@@ -23,6 +23,7 @@ finish-args:
- --talk-name=org.kde.StatusNotifierWatcher
# GnuPG
- --filesystem=~/.gnupg
- --filesystem=xdg-run/gnupg
# camera access
- --device=all
# extensions
......@@ -66,11 +67,11 @@ modules:
- name: python3-packaging
buildsystem: simple
build-commands:
- pip3 install packaging-23.0-py3-none-any.whl
- pip3 install packaging-23.1-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/p/packaging/packaging-23.0-py3-none-any.whl
sha256: 714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2
url: https://files.pythonhosted.org/packages/py3/p/packaging/packaging-23.1-py3-none-any.whl
sha256: 994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61
- name: python3-pycparser
buildsystem: simple
......@@ -113,22 +114,22 @@ modules:
only-arches:
- aarch64
build-commands:
- pip3 install cryptography-40.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- pip3 install cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/cp36/c/cryptography/cryptography-40.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
sha256: 3a4805a4ca729d65570a1b7cac84eac1e431085d40387b7d3bbaa47e39890b88
url: https://files.pythonhosted.org/packages/cp36/c/cryptography/cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
sha256: 4df2af28d7bedc84fe45bd49bc35d710aede676e2a4cb7fc6d103a2adc8afe4d
- name: python3-cryptography
buildsystem: simple
only-arches:
- x86_64
build-commands:
- pip3 install cryptography-40.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pip3 install cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/cp36/c/cryptography/cryptography-40.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: 63dac2d25c47f12a7b8aa60e528bfb3c51c5a6c5a9f7c86987909c6c79765554
url: https://files.pythonhosted.org/packages/cp36/c/cryptography/cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: 0dcca15d3a19a66e63662dc8d30f8036b07be851a8680eda92d079868f106288
- name: python3-dbus-python
build-options:
......@@ -183,11 +184,11 @@ modules:
- name: python3-importlib-metadata
buildsystem: simple
build-commands:
- pip3 install importlib_metadata-6.1.0-py3-none-any.whl
- pip3 install importlib_metadata-6.6.0-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/i/importlib_metadata/importlib_metadata-6.1.0-py3-none-any.whl
sha256: ff80f3b5394912eb1b108fcfd444dc78b7f1f3e16b16188054bd01cb9cb86f09
url: https://files.pythonhosted.org/packages/py3/i/importlib_metadata/importlib_metadata-6.6.0-py3-none-any.whl
sha256: 43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed
- name: python3-jaraco.classes
buildsystem: simple
......@@ -214,11 +215,11 @@ modules:
- name: python3-css-parser
buildsystem: simple
build-commands:
- pip3 install css_parser-1.0.8-py2.py3-none-any.whl
- pip3 install css_parser-1.0.9-py2.py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py2.py3/c/css_parser/css_parser-1.0.8-py2.py3-none-any.whl
sha256: 8f227506d21e2236f328781d41e055b5665ed2016137567841449035298ce439
url: https://files.pythonhosted.org/packages/py2.py3/c/css_parser/css_parser-1.0.9-py2.py3-none-any.whl
sha256: e18f66961103b61df25aa6df0dc808ab61c23e65ae6c1a8c149fe71911190495
- name: python3-precis_i18n
buildsystem: simple
......@@ -244,8 +245,8 @@ modules:
- /bin
sources:
- type: archive
url: https://download.gnome.org/sources/gspell/1.12/gspell-1.12.0.tar.xz
sha256: 40d2850f1bb6e8775246fa1e39438b36caafbdbada1d28a19fa1ca07e1ff82ad
url: https://download.gnome.org/sources/gspell/1.12/gspell-1.12.1.tar.xz
sha256: 8ec44f32052e896fcdd4926eb814a326e39a5047e251eec7b9056fbd9444b0f1
- name: farstream
rm-configure: true
......@@ -269,29 +270,29 @@ modules:
- name: python3-urllib3
buildsystem: simple
build-commands:
- pip3 install urllib3-1.26.15-py2.py3-none-any.whl
- pip3 install urllib3-1.26.16-py2.py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py2.py3/u/urllib3/urllib3-1.26.15-py2.py3-none-any.whl
sha256: aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42
url: https://files.pythonhosted.org/packages/py2.py3/u/urllib3/urllib3-1.26.16-py2.py3-none-any.whl
sha256: 8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f
- name: python3-certifi
buildsystem: simple
build-commands:
- pip3 install certifi-2022.12.7-py3-none-any.whl
- pip3 install certifi-2023.5.7-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/c/certifi/certifi-2022.12.7-py3-none-any.whl
sha256: 4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18
url: https://files.pythonhosted.org/packages/py3/c/certifi/certifi-2023.5.7-py3-none-any.whl
sha256: c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716
- name: python3-sentry-sdk
buildsystem: simple
build-commands:
- pip3 install sentry_sdk-1.19.0-py2.py3-none-any.whl
- pip3 install sentry_sdk-1.24.0-py2.py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py2.py3/s/sentry_sdk/sentry_sdk-1.19.0-py2.py3-none-any.whl
sha256: 8dcffbbb963963567384d6eb49c76b8fb05753540715cbee5e5ca5bc8327ded4
url: https://files.pythonhosted.org/packages/py2.py3/s/sentry_sdk/sentry_sdk-1.24.0-py2.py3-none-any.whl
sha256: 56d6d9d194c898d853a7c1dd99bed92ce82334ee1282292c15bcc967ff1a49b5
# gssapi dependency
- name: python3-decorator
......@@ -303,34 +304,43 @@ modules:
url: https://files.pythonhosted.org/packages/py3/d/decorator/decorator-5.1.1-py3-none-any.whl
sha256: b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186
# nbxmpp dependency (optional)
- name: python3-gssapi
# qrcode dependencies
- name: python3-pypng
buildsystem: simple
build-commands:
- pip3 install -v --no-build-isolation .
- pip3 install pypng-0.20220715.0-py3-none-any.whl
sources:
- type: archive
url: https://files.pythonhosted.org/packages/source/g/gssapi/gssapi-1.8.2.tar.gz
sha256: b78e0a021cc91158660e4c5cc9263e07c719346c35a9c0f66725e914b235c89a
- type: file
url: https://files.pythonhosted.org/packages/py3/p/pypng/pypng-0.20220715.0-py3-none-any.whl
sha256: 4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c
- name: python3-nbxmpp
- name: python3-typing-extensions
buildsystem: simple
build-commands:
- pip3 install nbxmpp-4.2.2-py3-none-any.whl
- pip3 install typing_extensions-4.6.2-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/n/nbxmpp/nbxmpp-4.2.2-py3-none-any.whl
sha256: 807d8bbe19dcc77e23cd2b0420581fecd1168ad5cb88b201a15ec7d0b1f8aff3
url: https://files.pythonhosted.org/packages/py3/t/typing_extensions/typing_extensions-4.6.2-py3-none-any.whl
sha256: 3a8b36f13dd5fdc5d1b16fe317f5668545de77fa0b8e02006381fd49d731ab98
# OMEMO dependencies
- name: python3-qrcode
buildsystem: simple
build-commands:
- pip3 install --no-build-isolation .
sources:
- type: archive
url: https://files.pythonhosted.org/packages/source/q/qrcode/qrcode-7.4.2.tar.gz
sha256: 9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845
- name: python3-protobuf
buildsystem: simple
build-commands:
- pip3 install --no-deps protobuf-4.21.1-py3-none-any.whl
- pip3 install --no-deps protobuf-4.23.2-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/p/protobuf/protobuf-4.21.1-py3-none-any.whl
sha256: 79cd8d0a269b714f6b32641f86928c718e8d234466919b3f552bfb069dbb159b
url: https://files.pythonhosted.org/packages/py3/p/protobuf/protobuf-4.23.2-py3-none-any.whl
sha256: 8da6070310d634c99c0db7df48f10da495cc283fd9e9234877f0cd182d43ab7f
- name: python3-omemo-dr
buildsystem: simple
......@@ -338,17 +348,27 @@ modules:
- pip3 install --no-build-isolation .
sources:
- type: archive
url: https://files.pythonhosted.org/packages/source/o/omemo-dr/omemo-dr-0.99.0.tar.gz
sha256: 79f9b166b350b3baced2bb0a998a3f8a3cf8756b5b5714d08c5cee5c90e62a8e
url: https://files.pythonhosted.org/packages/source/o/omemo-dr/omemo-dr-1.0.0.tar.gz
sha256: b0fe5023e947a17b740fb7ed4aa246120d6f21d819b5812e94dfc9570520be61
- name: python3-qrcode
# nbxmpp dependency (optional)
- name: python3-gssapi
buildsystem: simple
build-commands:
- pip3 install .
- pip3 install --no-build-isolation .
sources:
- type: archive
url: https://files.pythonhosted.org/packages/source/q/qrcode/qrcode-7.3.1.tar.gz
sha256: 375a6ff240ca9bd41adc070428b5dfc1dcfbb0f2507f1ac848f6cded38956578
url: https://files.pythonhosted.org/packages/source/g/gssapi/gssapi-1.8.2.tar.gz
sha256: b78e0a021cc91158660e4c5cc9263e07c719346c35a9c0f66725e914b235c89a
- name: python3-nbxmpp
buildsystem: simple
build-commands:
- pip3 install nbxmpp-4.3.0-py3-none-any.whl
sources:
- type: file
url: https://files.pythonhosted.org/packages/py3/n/nbxmpp/nbxmpp-4.3.0-py3-none-any.whl
sha256: dcbf5cec51ddc3ac7aeaa2d5fca02e2b004b92fc1622cb0d7f1e18c33e593b1e
- name: gajim
buildsystem: simple
......@@ -361,7 +381,7 @@ modules:
sources:
- type: git
url: https://dev.gajim.org/gajim/gajim.git
tag: 1.7.3
tag: 1.8.0
- type: file
path: app-overrides.json
post-install:
......
import sys
from pathlib import Path
__version__ = '1.7.3'
__version__ = '1.8.0'
IS_FLATPAK = Path('/app/share/run-as-flatpak').exists()
......
......@@ -29,7 +29,6 @@ from __future__ import annotations
import typing
from typing import Any
from typing import cast
from typing import Optional
import gc
import logging
......@@ -50,7 +49,7 @@ from gajim.common import configpaths
from gajim.common import ged as ged_module
from gajim.common import types
from gajim.common.const import Display
from gajim.common.i18n import LANG
from gajim.common.i18n import get_default_lang
if typing.TYPE_CHECKING:
from gajim.common.call_manager import CallManager
......@@ -77,6 +76,7 @@ bob_cache: dict[str, bytes] = {}
app = None # type: GajimApplication
window = None # type: MainWindow
commands = None # type: ChatCommands
logging_records: list[str] = []
ged = ged_module.GlobalEventsDispatcher() # Global Events Dispatcher
plugin_manager = cast(types.PluginManagerT, None) # Plugins Manager
......@@ -294,10 +294,10 @@ def detect_dependencies() -> None:
for dep, val in _dependencies.items():
log('gajim').info('%-13s %s', dep, val)
log('gajim').info('Used language: %s', LANG)
log('gajim').info('Used language: %s', get_default_lang())
def detect_desktop_env() -> Optional[str]:
def detect_desktop_env() -> str | None:
if sys.platform in ('win32', 'darwin'):
return sys.platform
......@@ -333,7 +333,7 @@ def get_jid_without_resource(jid: str) -> str:
def get_number_of_connected_accounts(
accounts_list: Optional[list[str]] = None) -> int:
accounts_list: list[str] | None = None) -> int:
'''
Returns the number of connected accounts. You can optionally pass an
accounts_list and if you do those will be checked, else all will be checked
......@@ -424,7 +424,7 @@ def account_is_available(account: str) -> bool:
def get_transport_name_from_jid(
jid: str,
use_config_setting: bool = True) -> Optional[str]:
use_config_setting: bool = True) -> str | None:
'''
Returns 'gg', 'irc' etc
......@@ -538,7 +538,7 @@ def get_debug_mode() -> bool:
return debug_enabled.exists()
def get_stored_bob_data(algo_hash: str) -> Optional[bytes]:
def get_stored_bob_data(algo_hash: str) -> bytes | None:
try:
return bob_cache[algo_hash]
except KeyError:
......
......@@ -13,9 +13,7 @@
# along with Gajim. If not, see <http://www.gnu.org/licenses/>.
from typing import Any
from typing import Optional
from typing import TextIO
from typing import Union
import cProfile
import json
......@@ -60,8 +58,6 @@ from gajim.common.storage.draft import DraftStorage
from gajim.common.storage.events import EventStorage
from gajim.common.task_manager import TaskManager
from gajim.common.util.http import create_http_request
from gajim.plugins.pluginmanager import PluginManager
from gajim.plugins.repository import PluginRepository
class CoreApplication(ged.EventHelper):
......@@ -122,6 +118,9 @@ class CoreApplication(ged.EventHelper):
app.nicks[account] = app.settings.get_account_setting(account,
'name')
from gajim.plugins.pluginmanager import PluginManager
from gajim.plugins.repository import PluginRepository
app.plugin_manager = PluginManager()
app.plugin_manager.init_plugins()
app.plugin_repository = PluginRepository()
......@@ -259,12 +258,12 @@ class CoreApplication(ged.EventHelper):
import warnings
os.environ['GAJIM_LEAK'] = 'true'
def warn_with_traceback(message: Union[Warning, str],
def warn_with_traceback(message: Warning | str,
category: type[Warning],
filename: str,
lineno: int,
_file: Optional[TextIO] = None,
line: Optional[str] = None) -> None:
_file: TextIO | None = None,
line: str | None = None) -> None:
traceback.print_stack(file=sys.stderr)
sys.stderr.write(warnings.formatwarning(message, category,
......@@ -353,7 +352,7 @@ class CoreApplication(ged.EventHelper):
username = 'anon'
account_label = f'anon@{domain}'
config: dict[str, Union[str, int, bool]] = {
config: dict[str, str | int | bool] = {
'name': username,
'resource': f'gajim.{get_random_string(8)}',
'account_label': account_label,
......@@ -428,7 +427,7 @@ class CoreApplication(ged.EventHelper):
def change_status(self,
status: str,
account: Optional[str] = None
account: str | None = None
) -> None:
if account is not None:
......
from __future__ import annotations
from typing import Optional
import logging
import time
......@@ -29,19 +27,18 @@ log = logging.getLogger('gajim.c.call_manager')
class CallManager(EventHelper):
def __init__(self) -> None:
EventHelper.__init__(self)
self._account: Optional[str] = None
self._resource_jid: Optional[JID] = None
self._account: str | None = None
self._resource_jid: JID | None = None
self._jingle_audio_sid: Optional[str] = None
self._jingle_video_sid: Optional[str] = None
self._jingle_audio_sid: str | None = None
self._jingle_video_sid: str | None = None
self._jingle_audio_state: JingleState = JingleState.NULL
self._jingle_video_state: JingleState = JingleState.NULL
# Helper for upgrading voice call to voice + video without
# having to show a new call row
self._incoming_video_event: Optional[
events.JingleRequestReceived] = None
self._incoming_video_event: events.JingleRequestReceived | None = None
# pylint: disable=line-too-long
self.register_events([
......@@ -156,8 +153,8 @@ class CallManager(EventHelper):
def _set_jingle_state(self,
jingle_type: str,
state: JingleState,
sid: Optional[str] = None,
reason: Optional[str] = None
sid: str | None = None,
reason: str | None = None
) -> None:
if state in (
JingleState.CONNECTING,
......@@ -216,8 +213,8 @@ class CallManager(EventHelper):
def _stop_jingle(self,
account: str,
full_jid: JID,
sid: Optional[str] = None,
reason: Optional[str] = None
sid: str | None = None,
reason: str | None = None
) -> None:
if self._jingle_audio_sid and sid in (self._jingle_audio_sid, None):
self._close_jingle_content(account, full_jid, 'audio')
......@@ -233,7 +230,7 @@ class CallManager(EventHelper):
account: str,
full_jid: JID,
jingle_type: str,
shutdown: Optional[bool] = False
shutdown: bool | None = False
) -> None:
if jingle_type == 'audio':
if self._jingle_audio_sid is None:
......@@ -273,7 +270,7 @@ class CallManager(EventHelper):
def _get_audio_content(self,
account: str,
jid: JID
) -> Optional[JingleAudio]:
) -> JingleAudio | None:
client = app.get_client(account)
session = client.get_module('Jingle').get_jingle_session(
str(jid), self._jingle_audio_sid)
......@@ -355,7 +352,7 @@ class CallManager(EventHelper):
if video is not None:
session.approve_content('video')
def get_active_call_jid(self) -> Optional[JID]:
def get_active_call_jid(self) -> JID | None:
return self._resource_jid
@staticmethod
......
......@@ -14,8 +14,6 @@
from __future__ import annotations
from typing import Optional
import logging
from pathlib import Path
......@@ -87,7 +85,7 @@ class CertificateStore:
@staticmethod
def _on_certificate_write_finished(_successful: bool,
error: Optional[GLib.Error],
error: GLib.Error | None,
path: Path):
if error is not None:
log.error("Can't store certificate: %s", error.message)
......
......@@ -15,7 +15,6 @@
from __future__ import annotations
from typing import Any
from typing import Optional
import logging
import time
......@@ -63,7 +62,7 @@ from gajim.gtk.util import open_window
log = logging.getLogger('gajim.client')
IgnoredTlsErrorsT = Optional[set[Gio.TlsCertificateFlags]]
IgnoredTlsErrorsT = set[Gio.TlsCertificateFlags] | None
class Client(Observable):
......@@ -144,7 +143,7 @@ class Client(Observable):
return self._client.features
@property
def local_address(self) -> Optional[str]:
def local_address(self) -> str | None:
address = self._client.local_address
if address is not None:
return address.to_string().split(':')[0]
......@@ -330,6 +329,10 @@ class Client(Observable):
app.ged.raise_event(StanzaReceived(account=self._account,
stanza=stanza))
def is_own_jid(self, jid: JID | str) -> bool:
own_jid = self.get_own_jid()
return own_jid.bare_match(jid)
def get_own_jid(self) -> JID:
'''
Return the last full JID we received on a bind event.
......
......@@ -13,14 +13,13 @@
# along with Gajim. If not, see <http://www.gnu.org/licenses/>.
from typing import Any
from typing import Callable
from typing import NoReturn
from typing import Optional
import argparse
import io
import operator
import shlex
from collections.abc import Callable
from nbxmpp.protocol import JID
......@@ -248,7 +247,7 @@ class ChatCommands(Observable):
def _change_affiliation(self,
nick_or_address: str,
affiliation: str,
reason: Optional[str]) -> None:
reason: str | None) -> None:
contact = self._check_if_joined()
......@@ -285,7 +284,7 @@ class ChatCommands(Observable):
def _affiliate_command(self, args: Any) -> None:
self._change_affiliation(args.who, args.affiliation, None)
def _change_role(self, nick: str, role: str, reason: Optional[str]) -> None:
def _change_role(self, nick: str, role: str, reason: str | None) -> None:
contact = self._check_if_joined()
......
......@@ -22,14 +22,12 @@
from __future__ import annotations
from typing import cast
from typing import Generator
from typing import Optional
from typing import Union
import importlib.resources
import os
import sys
import tempfile
from collections.abc import Generator
from pathlib import Path
from gi.repository import GLib
......@@ -39,7 +37,7 @@ from gajim.common.const import PathLocation
from gajim.common.const import PathType
from gajim.common.i18n import _
PathTupleT = tuple[Optional[PathLocation], Path, Optional[PathType]]
PathTupleT = tuple[PathLocation | None, Path, PathType | None]
def get(key: str) -> Path:
......@@ -103,7 +101,7 @@ class ConfigPaths:
self._paths: dict[str, PathTupleT] = {}
self.profile = ''
self.profile_separation = False
self.custom_config_root: Optional[Path] = None
self.custom_config_root: Path | None = None
if os.name == 'nt':
if gajim.IS_PORTABLE:
......@@ -113,7 +111,7 @@ class ConfigPaths:
else:
# Documents and Settings\[User Name]\Application Data\Gajim
self.config_root = self.cache_root = self.data_root = \
Path(os.environ['appdata']) / 'Gajim'
Path(os.environ['APPDATA']) / 'Gajim'
else:
self.config_root = Path(GLib.get_user_config_dir()) / 'gajim'
self.cache_root = Path(GLib.get_user_cache_dir()) / 'gajim'
......@@ -156,9 +154,9 @@ class ConfigPaths:
def add(self,
name: str,
path: Union[Path, str],
location: Optional[PathLocation] = None,
path_type: Optional[PathType] = None,
path: Path | str,
location: PathLocation | None = None,
path_type: PathType | None = None,
unique: bool = False) -> None:
path = Path(path)
......