Skip to content

Installation Issue on Arch-Based Distros: Workaround #107

@Aezore

Description

@Aezore

Description

Issue:

I encountered a problem installing CaringCaribou on Arch-based Linux distributions like Artix or Manjaro following the provided installation instructions. The primary issue appears to be related to how system packages are managed externally in Arch-based systems, which conflicts with the installation process described in the documentation.

Environment:

  • Operating System: Arch Linux / Manjaro (or any other Arch-based distribution)
  • Python Version: 3.11
  • CaringCaribou Version: Current master branch at a38e1bc commit

Expected Behavior:

The installation process should complete without errors, allowing CaringCaribou to be installed and run on Arch-based systems as described in the documentation.

Actual Behavior:

The installation fails due to conflicts arising from externally managed system packages.

Steps to Reproduce:

  1. Follow the installation instructions provided in the CaringCaribou documentation for Arch-based systems.
  2. Observe the failure in the installation process, particularly related to conflicts with system package management.

Workaround:

I managed to install i by modifying the pyproject.toml file and creating a bespoke PKGBUILD file. Here are the steps I followed for the workaround:

  1. Modify pyproject.toml: pyproject.toml

  2. Create a Bespoke PKGBUILD:

pkgname=caringcaribou
pkgver=0.5
pkgrel=1
pkgdesc="A friendly automotive security exploration tool"
arch=('any')
url="https://github.com/Aezore/caringcaribou"
license=('GPL3')
depends=('python' 'python-can' 'python-pip' 'python-build')
branch="archlinux"
source=("https://github.com/Aezore/${pkgname}/archive/${branch}.tar.gz")
sha256sums=('SKIP')

build() {
  cd "$srcdir/${pkgname}-${branch}"
  python -m build
}

package() {
  cd "$srcdir/${pkgname}-${branch}"
  # Find the generated wheel file
  local wheel=$(ls dist/*.whl)
  # Install the wheel using pip
  python -m pip install "${wheel}" --root="${pkgdir}" --ignore-installed --no-deps
}
  1. Build and Install: After making these changes, I was able to build and install it locally by running makepkg -si in the directory containing the modified PKGBUILD file. I forked the repo to do the changes locally in my machine thus the source url is my repo and the branch is "archlinux"

Suggested Solution:

While the workaround mentioned above is effective, it would be beneficial to support Arch-based distributions more seamlessly. Potential solutions could include:

  • Adjusting the installation process to accommodate the package management peculiarities of Arch-based systems.
  • Providing an official PKGBUILD or instructions for creating one, facilitating easier installation for users of these distributions.

DISCLAIMER:

I'm by no means any skilled programmer or software engineer nor work for any company so i'm far from best practices and I used GPT to aid me in the "learning process" so take this with a grain of salt. I thought it might come in handy for someone else with the same issue. I also used chatGPT to aid me in formatting this issue report as it's my very first time "fixing" something like this and I don't have any past experience or anyone else near to ask. Apologies if this bothers any of you.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions