Done: Description updated and fix uploaded

** Description changed:

  [ Impact ]
  
   * The code in wcmatch uses inner details of libraries hidden in python 3.12
   * That breaks several use cases like ansible-lint and many self tests
  
  [racb] ansible-lint doesn't work at all. Calling it with no arguments,
  calling it with --help, and calling it with --version all fail with the
  same stack trace.
  
  [ Test Plan ]
  
  1. For the original report, run ansible-lint
+    - without arguments you expect it to fail to load any file (that is ok, a 
total breakage failing to load wcmatch is not)
+ 
+    - with --help you want to see the help to be shown
+ 
+    - One can run ansible yaml file, with ansible-lint <file>, here are
+ two one can use for that
+ 
+ a) With mistakes (1x fqcn[action-core] 1x yaml[truthy])
+ Result is
+ ...
+ fqcn[action-core]: Use FQCN for builtin module actions (apt).
+ yaml[truthy]: Truthy value should be one of [false, true]
+ ...
+ 
+ $ cat test.yaml
+ - name: Install apache2
+   hosts: servers
+   tasks:
+     - name: Ensure apache2 is installed
+       apt:
+         name: apache2
+         state: present
+       become: yes
+ 
+ b) A file that makes lint happy, result is
+ Passed: 0 failure(s), 0 warning(s) on 1 files. Last profile that met the 
validation criteria was 'production'.
+ 
+ $ cat test2.yaml
+ - name: Install apache2
+   hosts: servers
+   tasks:
+     - name: Ensure apache2 is installed
+       ansible.builtin.apt:
+         name: apache2
+         state: present
+       become: true
+ 
  
  2. For a wider coverage I recommend running the full self-tests
  
  $ apt install dpkg-dev
  # add deb-src to entries in /etc/apt/sources.list.d/ubuntu.sources
  $ apt update
  $ apt source python-wcmatch
  $ cd python-wcmatch-8.*
  $ pytestdetailed instructions how to reproduce the bug
  
  [ Where problems could occur ]
  
   * wcmatch has multiple subelements, only pathlib use cases got changed
   * There are untested changes to the windows code paths, but even WSL will run
     the linux paths, so that should be a no-op
  
  [ Other Info ]
  
   * while in universe, this is just an easy fix and an oversight in
     the python transition hence I think we should fix it
  
  ---
  original report
  
  Running ansible-lint in Ubuntu 24.04 on my role ends up with a stack
  trace:
  
  Traceback (most recent call last):
    File "/usr/bin/ansible-lint", line 5, in <module>
      from ansiblelint.__main__ import _run_cli_entrypoint
    File "/usr/lib/python3/dist-packages/ansiblelint/__main__.py", line 39, in 
<module>
      from ansiblelint import cli
    File "/usr/lib/python3/dist-packages/ansiblelint/cli.py", line 20, in 
<module>
      from ansiblelint.file_utils import (
    File "/usr/lib/python3/dist-packages/ansiblelint/file_utils.py", line 15, 
in <module>
      import wcmatch.pathlib
    File "/usr/lib/python3/dist-packages/wcmatch/pathlib.py", line 218, in 
<module>
      class PurePosixPath(PurePath):
    File "/usr/lib/python3/dist-packages/wcmatch/pathlib.py", line 221, in 
PurePosixPath
      _flavour = pathlib._posix_flavour  # type: ignore[attr-defined]
                 ^^^^^^^^^^^^^^^^^^^^^^
  AttributeError: module 'pathlib' has no attribute '_posix_flavour'
  
  This is due to python3-wcmatch=8.4-2 being incompatible with python3.12.
  Upstream fixed this in the next version
  https://github.com/facelessuser/wcmatch/releases/tag/8.5
  
  I think the following portion of changes can be added to library package for 
Noble release:
  
https://github.com/facelessuser/wcmatch/pull/203/files#diff-081b2096c270ab6b17a6c70f95ea07d24dd0d343522e135dbdeb609e59867186L83
  
  Versions of installed packages:
  
  ansible-lint:
    Installed: 6.17.2-1
    Candidate: 6.17.2-1
    Version table:
   *** 6.17.2-1 500
          500 http://ru.archive.ubuntu.com/ubuntu noble/universe amd64 Packages
          500 http://ru.archive.ubuntu.com/ubuntu noble/universe i386 Packages
          100 /var/lib/dpkg/status
  
  python3-wcmatch:
    Installed: 8.4-2
    Candidate: 8.4-2
    Version table:
   *** 8.4-2 500
          500 http://ru.archive.ubuntu.com/ubuntu noble/universe amd64 Packages
          500 http://ru.archive.ubuntu.com/ubuntu noble/universe i386 Packages
          100 /var/lib/dpkg/status

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

Title:
  python-wcmatch not compatible to python3.12

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-wcmatch/+bug/2060649/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to