GrammaTech / gtirb

Intermediate Representation for Binary analysis and transformation

Home Page:https://grammatech.github.io/gtirb/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ubuntu packages aren't versioned properly

rjzak opened this issue · comments

Using the depository at https://download.grammatech.com/gtirb/files/apt-repo, the packages updates don't trigger the removal of the old packages, causing conflicts where different versions of ddisasm, gtirb, and GrammaTech's libcapstone-dev-4.0.2-gt? have the same file paths. To be able to install the newer packages, I had to first uninstall the old ones, then select the new ones.

OS: Ubuntu 20.04

@rjzak Was this with the stable or unstable component of the repository? Also, apologies, but could you describe exactly what you tried to do? You tried to apt-get upgrade ddisasm?

stable, and I tried sudo apt-get upgrade

stable, and I tried sudo apt-get upgrade

I'm sorry to say that I don't think we'll be able to fix this. The tool we use to manage our APT repo is called reprepro, and that tool doesn't allow you to store multiple different versions of a package in the repository, which I think is necessary to get apt-get upgrade working.

I think the issue is that something libgtirb is a metapackage for libgtirb-1.2.3. But if the old version is installed, it's not removed. So gtirb-1.2.3 has the same file paths as gtirb-1.2.2, so dpkg gets upset. The way to fix would be to have libgtirb point to the new package, but have the libgtirb-1.2.3 conflict with the old versions, so dpkg knows to uninstall it first. Alternatively, install gtirb in a versioned path, like /opt/gtirb/1.2.3/, /opt/gtirb/1.2.2, and use symlinks of the alternatives program, to set up system usage of the libraries. But the current option is annoying :)

Ah, I see. Okay, that makes sense, thank you for explaining. This is something we could do eventually.