libredeb / libredeb/comice-control-center

Application Fails to Launch on Modern Ubuntu/Debian Due to Deprecated Dependencies (iwgetid) and Command Output Changes

Open
#7 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
22
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Application Fails to Launch on Modern Ubuntu/Debian Due to Deprecated Dependencies and Command Output Changes

Hello,

The comice-control-center application fails to launch on modern Linux distributions (like recent Ubuntu or Debian versions). The primary issue is that the application relies on deprecated system commands and contains parsing logic that fails with updated command output formats.

1. Environment Details
  • OS/Distribution: Recent Ubuntu/Debian (e.g., Ubuntu 23.10/24.04, Debian 12+)

2. Networking Error: Missing iwgetid

The application crashes almost immediately because the iwgetid utility is missing, which is expected as the package providing it (wireless-tools) is obsolete and removed from modern repositories.

Error Traceback:/bin/sh: 1: iwgetid: not found ... IndexError: list index out of range

Location: comicecontrolcenter/functions/network_information.py

Suggested Fix:

Please replace the reliance on os.popen("iwgetid") with a call to the modern, standard nmcli utility, using Python's subprocess module for reliable execution.

3. Bluetooth Error: Invalid Integer Conversion

Once the networking bug is bypassed, the application crashes when trying to read the Bluetooth status due to unexpected multi-line output.

**Error Traceback:**ValueError: invalid literal for int() with base 10: '1\n1\n'

Location: comicecontrolcenter/functions/bluetooth_information.py, around line 17.

Cause: The command executed to retrieve the Bluetooth power status (likely reading from a /sys/class/bluetooth/hciX/power file) is returning multiple status lines (1\n1\n), but the script expects a single integer.

Suggested Fix:

The command output needs to be cleaned by stripping whitespace and isolating the first status line before conversion to int:

# Instead of: powered_on = int(result)
cleaned_result = result.strip().split('\n')[0] 
powered_on = int(cleaned_result)

Conclusion
Switching to modern utilities like nmcli via the subprocess module and implementing robust string cleaning (like .strip().split('\n')[0]) might resolve these issues and ensure the application runs reliably on current Linux distributions.

Thank you for your work on this project!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with comicecontrolcenter/functions/network_information.py and comicecontrolcenter/functions/bluetooth_information.py, then inspect how each command's output is read. Reproduce the failures on a recent Ubuntu or Debian system and verify that the application launches without the missing iwgetid or multi-line Bluetooth conversion errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python
Domain
desktop, networking, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.