urlwatch: update to 2.26

This commit is contained in:
RunningDroid 2023-04-11 17:09:02 -04:00 committed by Duncan Overbruck
parent a513a68f4d
commit bcb7d2a1ca
3 changed files with 96 additions and 24 deletions

View file

@ -0,0 +1,88 @@
From 6b68afbb047060277b00f570345e7e1969266712 Mon Sep 17 00:00:00 2001
From: Thomas Perl <m@thp.io>
Date: Wed, 12 Apr 2023 15:22:02 +0200
Subject: [PATCH] Rework handling of running from a source checkout (fixes
#755)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 657e0494..fccf1f1d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
The format mostly follows [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
+## UNRELEASED
+
+### Fixed
+
+- Rework handling of running from a source checkout, fixes issues with example files
+ when `urlwatch` was run as `/usr/sbin/urlwatch`, e.g. on Void Linux (fixes #755)
+
## [2.26] -- 2023-04-11
### Added
diff --git a/lib/urlwatch/cli.py b/lib/urlwatch/cli.py
index 75332f09..f6a5802a 100755
--- a/lib/urlwatch/cli.py
+++ b/lib/urlwatch/cli.py
@@ -47,9 +47,6 @@
# Check if we are installed in the system already
(prefix, bindir) = os.path.split(os.path.dirname(os.path.abspath(sys.argv[0])))
-if bindir != 'bin':
- sys.path.insert(0, os.path.join(prefix, bindir, 'lib'))
-
from urlwatch.command import UrlwatchCommand
from urlwatch.config import CommandConfig
from urlwatch.main import Urlwatch
@@ -90,7 +87,7 @@ def main():
if os.path.exists(old_cache_file) and not os.path.exists(new_cache_file):
cache_file = old_cache_file
- command_config = CommandConfig(sys.argv[1:], pkgname, urlwatch_dir, bindir, prefix,
+ command_config = CommandConfig(sys.argv[1:], pkgname, urlwatch_dir, prefix,
config_file, urls_file, hooks_file, cache_file, False)
setup_logger(command_config.verbose)
diff --git a/lib/urlwatch/config.py b/lib/urlwatch/config.py
index c1075460..40d206ec 100644
--- a/lib/urlwatch/config.py
+++ b/lib/urlwatch/config.py
@@ -52,20 +52,12 @@ def __init__(self, pkgname, urlwatch_dir, config, urls, cache, hooks, verbose):
class CommandConfig(BaseConfig):
- def __init__(self, args, pkgname, urlwatch_dir, bindir, prefix, config, urls, hooks, cache, verbose):
+ def __init__(self, args, pkgname, urlwatch_dir, prefix, config, urls, hooks, cache, verbose):
super().__init__(pkgname, urlwatch_dir, config, urls, cache, hooks, verbose)
- self.bindir = bindir
- self.prefix = prefix
self.migrate_cache = migrate_cache
self.migrate_urls = migrate_urls
- if self.bindir == 'bin':
- # Installed system-wide
- self.examples_dir = os.path.join(prefix, 'share', self.pkgname, 'examples')
- else:
- # Assume we are not yet installed
- self.examples_dir = os.path.join(prefix, bindir, 'share', self.pkgname, 'examples')
-
+ self.examples_dir = os.path.join(prefix, 'share', self.pkgname, 'examples')
self.urls_yaml_example = os.path.join(self.examples_dir, 'urls.yaml.example')
self.hooks_py_example = os.path.join(self.examples_dir, 'hooks.py.example')
diff --git a/lib/urlwatch/tests/test_handler.py b/lib/urlwatch/tests/test_handler.py
index 1d5d22e6..7886acc9 100644
--- a/lib/urlwatch/tests/test_handler.py
+++ b/lib/urlwatch/tests/test_handler.py
@@ -89,8 +89,7 @@ def test_pep8_conformance():
class ConfigForTest(CommandConfig):
def __init__(self, config, urls, cache, hooks, verbose):
- (prefix, bindir) = os.path.split(os.path.dirname(os.path.abspath(sys.argv[0])))
- super().__init__([], 'urlwatch', os.path.dirname(__file__), bindir, prefix, config, urls, hooks, cache, verbose)
+ super().__init__([], 'urlwatch', os.path.dirname(__file__), root, config, urls, hooks, cache, verbose)
@contextlib.contextmanager

View file

@ -1,14 +0,0 @@
Work around https://github.com/thp/urlwatch/issues/677
diff --git a/lib/urlwatch/tests/test_handler.py b/lib/urlwatch/tests/test_handler.py
index 736536a..fac9449 100644
--- a/lib/urlwatch/tests/test_handler.py
+++ b/lib/urlwatch/tests/test_handler.py
@@ -89,6 +89,7 @@ def test_pep8_conformance():
class ConfigForTest(CommandConfig):
def __init__(self, config, urls, cache, hooks, verbose):
+ sys.argv = sys.argv[:1]
(prefix, bindir) = os.path.split(os.path.dirname(os.path.abspath(sys.argv[0])))
super().__init__('urlwatch', os.path.dirname(__file__), bindir, prefix, config, urls, hooks, cache, verbose)

View file

@ -1,27 +1,25 @@
# Template file for 'urlwatch'
pkgname=urlwatch
version=2.25
revision=2
version=2.26
revision=1
build_style=python3-module
# skip the tests that require python modules that aren't packaged
# (pdftotext & pytesseract)
make_check_args="-k not((pdf)or(ocr))"
hostmakedepends="python3-setuptools"
depends="python3-appdirs python3-keyring python3-minidb python3-requests
python3-yaml python3-lxml python3-cssselect"
# Check the Docs for optional packages:
# https://urlwatch.readthedocs.io/en/latest/dependencies.html#optional-packages
checkdepends="python3-pytest python3-pycodestyle python3-docutils
python3-Pygments python3-jq ${depends}"
python3-jq ${depends}"
short_desc="Tool for monitoring webpages for updates"
maintainer="RunningDroid <runningdroid@zoho.com>"
license="BSD-3-Clause"
homepage="https://thp.io/2008/urlwatch/"
changelog="https://raw.githubusercontent.com/thp/urlwatch/master/CHANGELOG.md"
distfiles="${PYPI_SITE}/u/urlwatch/urlwatch-${version}.tar.gz"
checksum=6802297d3318286e7f3d36b9a4567a2fb09b0ae779d4b76811dd29a7281c1f8a
do_check() {
# skip the tests that require python modules that aren't packaged
# (pdftotext & pytesseract)
pytest -k 'not (pdf or ocr)' -v
}
checksum=b14bbe23d87b7d4ac8b4e71a51fd2066908a947ccf7b557c3e4f87b09f455e8f
post_install() {
vlicense COPYING