libredeb / libredeb/comice-control-center
Application Fails to Launch on Modern Ubuntu/Debian Due to Deprecated Dependencies (iwgetid) and Command Output Changes
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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