-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2.1 libzpool5 deb relies on older libzfs4 #12322
Comments
I removed all zfs packages, did a rebuild, and now it somehow accepts the libzfs5. Apparently the build process looks to packages that are already installed? I don't understand why. |
I've also experienced this exact scenario with 2.0.x. Nowadays I make sure to remove all zfs packages before building new ones. I agree it shouldn't be this way. However I lack sufficient knowledge on build systems to fix this, or even pin down specific cause. |
Build in clean container with freshly installed build dependencies. It may be a slight inconvenience, but works. |
I believe this may be a side effect of the project still using |
I got curious, and went down the rabbit hole - the short version is, I am pretty confident it is a consequence of using alien, and that just using native deb packaging is the most straightforward way to make this work properly. alien as of the version I examined (8.95.4) does nothing with dependencies programmed into an rpm or deb when converting - it has bits for putting them in when you convert from one specific format, but AFAICT that's the only time it cares about ones you give it. However, when emitting debs, it does include Unfortunately, there's no existing way I see to avoid alien adding that or convince it to claim, say, libzfs5 provides all of libzfs1-9 - patching in something to convince it to optionally not do that or exclude certain things or w/e could be done, but that would take a while to land in distros, and I doubt it would get backported for existing releases just for this use case. |
For my workplace, we use an RPM spec file to build natively for RPM and Debian targets: https://pagure.io/openzfs-linux-packaging/blob/main/f/zfs.spec Instead of using alien, we use debbuild. We could probably adapt to using that instead if we wanted to... |
This issue has been automatically marked as "stale" because it has not had any activity for a while. It will be closed in 90 days if no further activity occurs. Thank you for your contributions. |
Closing, I believe this should be addressed by #13451 when merged. |
@behlendorf this still happens with zfs 2.1.9 building on Ubuntu with 2.1.5 packages installed (alien causes packages to rely on libzfs4linux or other older packages). I had a hell of a time manually editing dependencies to fix apt before coming across this issue. Was that #13451 fixed for 2.1.x or 2.2.x? |
That went into master and should be available for 2.2.x if you want to use it, though I confess I haven't tried since it was merged. |
I just built the release version of 2.2.0 on a fresh install of Ubuntu 22.04 and ran into this error. It's not fixed. |
@thardie: Strange. Using
|
The bug is about how alien "helpfully" tries searching for your locally installed packages to resolve dependencies, so if you have pre-lib-increment packages installed, it will add dependencies on them when it transforms them, and bob's your uncle. As of the last time I looked, alien has no flag to not do that, and I was several of the last few point releases fixing things in it, so I didn't feel like trying to add the feature to that nest of Perl. I'd usually suggest make native-deb as a better option, in 2.2, except, uh, #15404. |
In case it helps anybody: I had this issue while trying to install packages built from 2.1.13 sources. The
I had to do the same thing for |
You could also just uninstall the old packages before doing the build, but yes, hand-editing the alien debs would work. Or adding a feature to alien to let you exclude the autogenerated dependencies on the running system would do too. |
System information
Describe the problem you're observing
I build the 2.1 debs using make deb, and tried installing them. However, when installing libzpool5_2.1.0-1_amd64.deb I get the error that it needs libzfs4, while the deb generated is libzfs5 and it won't accept that one.
Describe how to reproduce the problem
make deb
dpkg -i *.deb (excluding devel and test packages)
Include any warning/errors/backtraces from the system logs
The text was updated successfully, but these errors were encountered: