Public bug reported:

[Environment]
1) Release (lsb_release -rd):
   Description: Ubuntu 26.04 LTS
   Release:     26.04

2) Package version (apt-cache policy timekpr-next):
   The BROKEN version is the one shipped in the 26.04 archive:
       timekpr-next 0.5.4-3build1   (from http://.../ubuntu resolute/universe)
   I have since worked around it by installing 0.5.9 from ppa:mjasnik/ppa
   (0.5.9-1ubuntu1~ppa1~ubuntu26.04.1), so a fresh `apt-cache policy` on my
   machine now shows 0.5.9 installed. The bug is about the archive's 
0.5.4-3build1.

3) Expected: timekpr.service starts and stays active; time limits are enforced.
4) Actual:   timekprd aborts during user-config init (traceback below); the 
service
             never stays running; no limits are enforced.

[Summary]
On Ubuntu 26.04 LTS (resolute), timekpr-next 0.5.4-3build1 is incompatible with 
the Python 3.14 shipped by 26.04. The daemon (timekprd) aborts during start-up 
while initialising a user's configuration, so timekpr.service never stays 
running and no time limits are enforced. Ubuntu 24.04 (Python 3.12) is 
unaffected.

This is a SEPARATE root cause from bug #2148102 / #2156354 (empty
/usr/bin/timekpr* wrapper scripts). On my machine the wrappers were
fine; the failure is a Python exception inside the daemon. All of these
26.04 breakages are fixed by updating the package to upstream 0.5.9.

[Affected]
- Ubuntu 26.04 LTS (resolute): timekpr-next 0.5.4-3build1, python3.14  -> BROKEN
- Ubuntu 24.04 LTS:            timekpr-next 0.5.4-1ubuntu3.1, python3.12 -> 
works

[Steps to reproduce]
1. On 26.04, have the daemon create a fresh user config (e.g. after an OS 
reinstall).
2. sudo systemctl restart timekpr.service
3. systemctl is-active timekpr.service  -> "inactive"
   (journal shows the unit "Started" then "Deactivated successfully", main PID
    exiting status=0 within ~70ms)
4. Run the daemon in the foreground to see the cause:
   sudo /usr/bin/python3 
/usr/lib/python3/dist-packages/timekpr/server/timekprd.py

[Traceback]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/timekpr/server/timekprd.py", line 62, in 
<module>
    timekprUserStore().checkAndInitUsers()
  File "/usr/lib/python3/dist-packages/timekpr/server/config/userhelper.py", 
line 112, in checkAndInitUsers
    timekprUserConfig(timekprConfigManager.getTimekprConfigDir(), 
rUser).initUserConfiguration()
  File "/usr/lib/python3/dist-packages/timekpr/common/utils/config.py", line 
854, in initUserConfiguration
    self._timekprUserConfigParser.write(fp)
  File "/usr/lib/python3.14/configparser.py", line 976, in write
    self._write_section(fp, section, self._sections[section].items(), d)
  File "/usr/lib/python3.14/configparser.py", line 984, in _write_section
    self._validate_key_contents(key)
  File "/usr/lib/python3.14/configparser.py", line 1228, in 
_validate_key_contents
    raise InvalidWriteError(f"Cannot write key {key}; contains delimiter 
{delim}")
configparser.InvalidWriteError: Cannot write key #   optionally enter ! in 
front of hour to mark it non-accountable, example: !22[00-15]; contains 
delimiter :

[Root cause]
timekpr writes help text into its INI config as configparser *keys* (lines 
starting
with '#'). Python 3.14 added validation (cpython issue #128843, PR #129270) so 
that
configparser.write() raises InvalidWriteError for any key containing a delimiter
(':' or '='). The embedded help line contains ':', so writing the user config 
aborts
and the daemon dies before it enforces anything.

[Already fixed upstream]
Reported upstream as LP #2134442 (Timekpr-nExT) and fixed in timekpr-next 0.5.9
(2025-12-22). The maintainer PPA (ppa:mjasnik/ppa) already ships a working 
resolute
build: 0.5.9-1ubuntu1~ppa1~ubuntu26.04.1.

[Requested fix]
Please update timekpr-next in 26.04 LTS (and 25.10 if affected) to upstream 
0.5.9.
0.5.9 also fixes the wrapper breakage in #2148102 / #2156354, so a single 
update to
0.5.9 clears all known 26.04 failures.

[Workaround for users]
  sudo add-apt-repository ppa:mjasnik/ppa
  sudo apt update && sudo apt install --only-upgrade timekpr-next

[SRU rationale]
- Impact: parental-control time limits silently do not work on a fresh 26.04 LTS
  install; the service looks installed but never runs.
- Regression potential: low; 0.5.9 is the current upstream stable release and is
  already shipping via the PPA for 26.04 with no reported regressions.

** Affects: timekpr-next (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: resolute

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2158741

Title:
  timekpr-next 0.5.4 in 26.04 crashes on Python 3.14 (configparser
  InvalidWriteError); daemon fails to init user config — fixed upstream
  in 0.5.9

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/timekpr-next/+bug/2158741/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to