Skip to content

Problem: Crypto library will be deprecated in Python 3.13 #3211

@DenisMedeirosBBD

Description

@DenisMedeirosBBD

Issue

Hi team,

We are using the Semaphore (tag *-ansible2.16.5) and when we use the Ansible module user, we are getting a deprecation warning in Semaphore:

TASK [account-backup-user : Ensure account "backup-user" exists] ***************
Friday 04 July 2025  00:41:15 +0000 (0:00:08.231)       0:26:11.435 *********** 
[DEPRECATION WARNING]: Encryption using the Python crypt module is deprecated. 
The Python crypt module is deprecated and will be removed from Python 3.13. 
Install the passlib library for continued encryption functionality. This 
feature will be removed in version 2.17. Deprecation warnings can be disabled 
by setting deprecation_warnings=False in ansible.cfg.

The current python version in the image is 3.12 and when we run pip freeze, we notice that it has the library cryptography==45.0.6.

We suspect that this is being caused by the deprecation announced in https://peps.python.org/pep-0594/

The solution could be installing passlib, which is one of the listed alternatives in the PEP link above.

I went to the semaphore container, ran pip install passlib and the following runs didn't show the warning anymore.

Can we include passlib to the Docker image, probably at https://github.com/semaphoreui/semaphore/blob/develop/deployment/docker/server/Dockerfile#L91?

Thanks.

Impact

Ansible (task execution)

Installation method

Docker

Database

Postgres

Browser

Chrome

Semaphore Version

v2.14.12-0f6914a-1748286794

Ansible Version

semaphore-ui:~$ ansible --version
ansible [core 2.16.14]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/semaphore/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /opt/semaphore/apps/ansible/9.4.0/venv/lib/python3.12/site-packages/ansible
  ansible collection location = /home/semaphore/.ansible/collections:/usr/share/ansible/collections
  executable location = /opt/semaphore/apps/ansible/9.4.0/venv/bin/ansible
  python version = 3.12.10 (main, May 21 2025, 20:03:03) [GCC 14.2.0] (/opt/semaphore/apps/ansible/9.4.0/venv/bin/python3)
  jinja version = 3.1.6
  libyaml = True

Logs & errors

No response

Manual installation - system information

No response

Configuration

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions