INSTALL

Note: It is generally recommended to install Wicd using your distribution’s package manager if a package is available. If not, follow the instructions below.

Requirements
1. Python 3.10 or later
2. D-Bus with GLib and Python bindings
3. A DHCP client:
   - On Ubuntu 24.04: Must use isc-dhcp-client (provides dhclient).
   - On Fedora 41: Either dhclient (provided by isc-dhcp-client) or dhcpcd can be used.
4. net-tools (provides ifconfig, route, etc.)
5. iw
6. AyatanaAppIndicator3 bindings:
   - On Ubuntu 24.04: gir1.2-ayatanaappindicator3-0.1
   - On Fedora 41: libayatana-appindicator-gtk3
7. A graphical sudo application (optional but recommended: gksu, kdesu, or ktsuss)
8. rfkill (if not already available)
9. pip (Python package installer)


General Installation Steps

1. Install Dependencies
Use your distribution’s package manager to install the required dependencies. For example:

Ubuntu 24.04:
    sudo apt install git python3-pip net-tools iw isc-dhcp-client gir1.2-ayatanaappindicator3-0.1

Fedora 41:
    sudo dnf install git python3-pip net-tools iw libayatana-appindicator-gtk3

(Adjust package names as needed for other distributions.)


2. Obtain and Install Wicd from Source
    git clone https://git.launchpad.net/wicd -b {branch_name}
    cd wicd

For Ubuntu 24.04:
    sudo pip install . --break-system-packages

For Fedora 41 (and most other distributions):
    sudo pip install .


3. Adjust Init/Startup Scripts
After installing Wicd, template init files (e.g., SysV init scripts, systemd unit templates) are placed in the `template/init` directory within the source tree.  
You may need to edit these templates to match your system's paths and conventions. For example, if the scripts reference `/usr/bin` but you installed Wicd into `/usr/local/bin`, update the paths accordingly. Once adjusted, install these scripts in the appropriate locations for your distribution’s init system (e.g., `/etc/init.d` for SysV, `/etc/systemd/system` for systemd).


4. Configure D-Bus
After installation, create a symbolic link for the D-Bus configuration:
    sudo ln -s /usr/local/share/dbus-1/system.d/wicd.conf /usr/share/dbus-1/system.d/wicd.conf


5. Disable Conflicting Services
Wicd can conflict with other network managers. Stop and disable them before using Wicd:
    sudo systemctl stop NetworkManager.service
    sudo systemctl disable NetworkManager.service

    sudo systemctl stop systemd-resolved.service
    sudo systemctl disable systemd-resolved.service

Adjust resolv.conf if necessary:
    sudo mv /etc/resolv.conf /etc/resolv.conf.backup
    sudo touch /etc/resolv.conf


6. Desktop Environment Integration (Optional)
If using wicd-gtk on a GNOME-based desktop (such as Fedora GNOME), install gnome-shell-extension-appindicator and enable the "KStatusNotifierItem/AppIndicator Support" extension.


7. Reboot
After making these changes, it is recommended to restart your system:
    sudo reboot
