crystal-lang / distribution-scripts

40 stars 23 forks source link

Debian crystal1.11 package's Conflicts: field is broken #289

Closed cielavenir closed 5 months ago

straight-shoota commented 5 months ago

Unfortunately, I think this is currently not feasible. We're just repackaging the generic upstream package. This does not allow us to customize the backed-in path to stdlib ($ORIGIN/../share/crystal/src). But of course we would need different versions of the standard library at different locations. Maybe there could be some kind of hack to put the entire package (binary and stdlib source) into a versioned path. I'm not sure.

Anyway, we're currently working on building the compiler for each package separately because that will enable using the interpreter. After that is done, we may come back to this as it should be much easier then.

I'm wondering about the use case though. What's your use case for having multiple versions installed?

cielavenir commented 5 months ago

@straight-shoota I'm just having this issue from installing 1.11.1 package

$ sudo apt upgrade
The following packages have been kept back:
  crystal1.11

I'm stuck with 1.11.0 package.

straight-shoota commented 5 months ago

That's a different issue, though. Not sure what's happening there. But it should work if you uninstall and install again?

cielavenir commented 5 months ago

@straight-shoota I get this.

root@bullseye:/etc/apt/sources.list.d# apt install crystal
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 crystal1.11 : Conflicts: crystal
E: Unable to correct problems, you have held broken packages.

I don't want to break my current environment and I needed to prepare a VM (though vagrant made it easy), please understand that.

cielavenir commented 5 months ago

It also means that https://crystal-lang.org/install/on_debian/ 's sudo apt install crystal does not work anymore.

straight-shoota commented 5 months ago

Yeah, that's https://github.com/crystal-lang/distribution-scripts/issues/264 Should be fixed shortly (waiting for the build to finish...).

cielavenir commented 5 months ago

oh, may I ask a question? what happens to crystal1.11 package when crystal 1.12 is out?

maybe adding Conflict: crystal1.11 to crystal1.12 satisfies apt, but adding all versions to Conflict might not scale.

straight-shoota commented 5 months ago

crystal1.11 has Conflicts: crystal (<< 1.11) and crystal1.12 will have Conflicts: crystal (<< 1.12).

cielavenir commented 5 months ago

it should work, thank you