libprotobuf dependency version mismatch causes installs to fail.

Bug #1986406 reported by Mike Hemmer
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Invalid
Undecided
Unassigned
Arch Linux
New
Undecided
Unassigned

Bug Description

Current version of protobuf is 21.4.1, which supplies libprotobuf-lite.so=32-64

Mixxx install asks for dep. libprotobuf-lite.so=31-64 [note 31 instead of 32]. Because of the mismatch, all install attempts fail.

It seems impossible to retrograde to an older protobuf version install, ultimately making it impossible to install Mixxx. Cannot find older protobuf to place manually.

Tested on Manjaro Linux (Aarch fully updated) arm64 architecture Pine64 hexacore SBC computer.

Kernel: Linux 5.18.14-1-MANJARO-ARM

Revision history for this message
Emilio (kittenyay) wrote :

Same happening to me. I upgraded my manjaro system And now i cant install mixxx UnU 😓

tags: removed: failure install libprotobuf
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Which version of Mixxx you are trying to install?
Where do you get it from.

I assume that this is an issue that you are trying to install a binary package not build for your distribution.

The Mixxx source does not restrict the version of Protobuf
See:https://github.com/mixxxdj/mixxx/blob/da9f8ea39562a50ecf0b810934d179f07fe6abf9/src/proto/CMakeLists.txt#L2

Workaround: Install Mixxx from source.
https://github.com/mixxxdj/mixxx/wiki/Compiling-On-Linux

Please confirm.

Revision history for this message
Emilio (kittenyay) wrote :

Tried installing 2.3.2-2 that's the version that appears automatically from the GUI installer of Manjaro, then using pacman on terminal and it suggest to skip that dependency but still can't install.
On both cases it blames protobuf dependency.

Version 2.3.2 was fine before updating system but 2.3.2-2 won't let me install and I can't install previous version from pacman.

Ive never successfully install mixxx from source and doing it from raspberry pi took hours, anyway I'll give it another try this afternoon see what it happens.

Revision history for this message
Mike Hemmer (zoroaster-z) wrote :

Latest version for which I find source code is 2.0.0 (at the link given). Get multiple scons errors trying to use it.

Revision history for this message
Mike Hemmer (zoroaster-z) wrote :

Tried installing beta version to determine whether protobuf mismatch persists there. The listing of dependencies is not specific for protobuf version required for this Mixxx beta.

Output is;
---------------------
Preparing...
Cloning mixxx_beta-git build files...
Generating mixxx_beta-git information...
Checking mixxx_beta-git dependencies...
Resolving dependencies...
Checking inter-conflicts...

Building mixxx_beta-git...
==> ERROR: mixxx_beta-git is not available for the 'aarch64' architecture.
---------------------

Note however there is no balking at checking or resolving dependencies.

This beta was last modified May 2021. Maybe next version for arm64 will have no problem. Just unknown know how long to wait.

Perhaps the libprotobuf-lite.so=32-64 will do everything the "31" version did, and the install and program calls could be changed just one digit to ask for libprotobuf-lite.so=32-64 instead? If such source code is put somewhere I could get it, I would compile and test it.

It seems like this will have to be the case for future versions of Mixxx anyway.

Revision history for this message
Mike Hemmer (zoroaster-z) wrote :

To be thorough I tried the build instructions at https://mixxx.org/download/ given for Archlinux, rather than using the Manjaro AUR helper. This is for the dev. version, rather than beta version above example.

Output;
--------------------------------
Cloning into 'mixxx-git'...
remote: Enumerating objects: 137, done.
remote: Counting objects: 100% (137/137), done.
remote: Compressing objects: 100% (131/131), done.
remote: Total 137 (delta 6), reused 136 (delta 6), pack-reused 0
Receiving objects: 100% (137/137), 46.54 KiB | 36.00 KiB/s, done.
Resolving deltas: 100% (6/6), done.
$ cd mixxx-git
$ makepkg -si
==> ERROR: mixxx-git is not available for the 'aarch64' architecture.
--------------------------------

Revision history for this message
Mike Hemmer (zoroaster-z) wrote :

I took the exact protobuf referred to in dependencies for the .deb file mixxx_2.3.2~dfsg-1_arm64.deb, downloaded from https://ubuntu.pkgs.org/22.04/ubuntu-universe-arm64/mixxx_2.3.2~dfsg-1_arm64.deb.html

This action is based on the observation by Emilio (kittenyay) in post #4 above, that this version 2.3.2 worked.

The Protobuf for the Mixxx 2.3.2 .deb file [mixxx_2.3.2~dfsg-1_arm64.deb] is of course also a .deb file [https://pkgs.org/download/libprotobuf-lite23]. So I converted it using debtap into an installer for Manjaro, which worked fine as an installer.

Nevertheless, the Mixx install using Manjaro software installer failed again -- output;
-------------------------------
could not satisfy dependencies:
- unable to satisfy dependency 'libprotobuf-lite.so=31-64' required by mixxx
-------------------------------

Mixxx 2.3.2 for arm64 worked, but the v2.3.2 .deb arm64 protobuf is still the wrong one for installer Mixx v2.3.2-2 ?

================================
================================
PART 2

I also tried debtap conversion of Mixxx 2.3.2 (original) into a Manjaro installer, with the following result;

----------------------------------------
$ debtap /home/user-x/Downloads/mixxx_2.3.2~dfsg-1_arm64.deb
==> Extracting package data...
==> Fixing possible directories structure differencies...
==> Generating .PKGINFO file...

:: Enter Packager name (can be left blank):
Zoroaster-ez

:: Enter package license (can be left blank, you can enter multiple licenses comma separated):

*** Creation of .PKGINFO file in progress. It may take a few minutes, please wait...

Warning: These dependencies (depend = fields) could not be translated into Arch Linux packages names:
libtag1v5
Warning: These packages names could not be included as dependencies, because debtap has translated them into the same name with the package for conversion. This happens sometimes when you convert packages that already exist in your repositories (which is a bad idea in general). The following packages contain files that are already included in the package from your repositories (without these files your converted package may be dysfunctional):
mixxx-data=2.3.2~dfsg-1
Warning: These optional dependencies (optdepend = fields) could not be translated into Arch Linux packages names:
pdf-viewer

==> Checking and generating .INSTALL file (if necessary)...

:: If you want to edit .PKGINFO and .INSTALL files (in this order), press (1) For vi (2) For nano (3) For default editor (4) For a custom editor or any other key to continue:

==> Generating .MTREE file...

==> Creating final package...
==> Package successfully created!
==> Removing leftover files...
$
----------------------------------

So it seems ultimately this .deb cannot be used as a workaround, due to libtag1v5.

Revision history for this message
Jan Holthuis (holthuis-jan) wrote :

Hi Mike!

First of all, please file a bug report at Manjaro's bug tracker. When packages from its official packages repositories fail to install of Manjaro, there's nothing we can do about it.

As a workaround, you can try to build the package yourself. The Manjaro website seems to be broken (at least on my phone), so I can't find a PKGBUILD for it. You can try to build the PKGBUILD that Arch Linux uses. If the package names match, this might work:

    $ mkdir mixxx
    $ cd mixxx
    $ curl -OL https://raw.githubusercontent.com/archlinux/svntogit-community/packages/mixxx/trunk/PKGBUILD
    $ makepkg -si

Alternatively, you can try the `mixxx-git` package (`mixxx_beta-git` is outdated, because it's only for beta versions and we have no active beta at the moment).

> ERROR: mixxx-git is not available for the 'aarch64' architecture.

Each PKGBUILD has an `arch` array that specifies a list of architectures that are *officially supported* (https://wiki.archlinux.org/title/PKGBUILD#Arch). Hence, neither the PKGBUILD from Arch Linux nor the one from the AUR will include the `aarch64` architecture.

    arch=(x86_64)

However, you can simply add it yourself before running `makepkg`:

    arch=(x86_64 aarch64)

This will fix the error mentioned above.

PS: I donvt know who added "affects Arch Linux" at the top of this bug report, but Manjaro and Arch Linux are separate distributions with different software packages/versions (and Manjaro has a trndey to break stuff that works fine on Arch). From what I read here, I don't see any indication that Arch Linux is actually affected.

Changed in mixxx:
status: New → Invalid
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/10808

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.