stargatedaw / stargate

Innovation-first digital audio workstation (DAW), instrument and effect plugins, wave editor
GNU General Public License v3.0
679 stars 35 forks source link

Debian package depends on missing fftw3 package #41

Closed windowsrefund closed 10 months ago

windowsrefund commented 11 months ago

Absolutely love the design principles behind this project and am looking forward to spending some time with the software. Being one of those with absolutely no desire to use AppImage, I'd really like to install the actual package. However, it appears to need fftw3 which is not a thing.

According to this line, libfftw3-dev is required (for compiling I'd assume) so I just installed it anyway. Currently, I have these installed:

> dpkg -l | awk '/fftw3/{print $2}'
libfftw3-bin
libfftw3-dev:amd64
libfftw3-double3:amd64
libfftw3-long3:amd64
libfftw3-quad3:amd64
libfftw3-single3:amd64

However, I still can't install the latest .deb on my Ubuntu box :(

The following packages have unmet dependencies:
 stargate : Depends: fftw3 but it is not installable
L3337 commented 11 months ago

Absolutely love the design principles behind this project and am looking forward to spending some time with the software

Thanks for the kind words

According to this line, libfftw3-dev is required (for compiling I'd assume) so I just installed it anyway. Currently, I have these installed:

You are probably missing the universe and multiverse repositories:

sudo add-apt-repository universe || true
sudo add-apt-repository multiverse || true

You should be able to build a Debian package on Ubuntu by cding to the root of the stargate repository and running:

# Clone repository
git clone --recursive https://github.com/stargatedaw/stargate.git
cd stargate
# Install dependencies
./scripts/debian_deps.sh
# Build package, -i installs it after building
./scripts/debian.py -i

The scripts require sudo access. If you don't have it, you can use this to add it:

su
usermod -a -G sudo $USER
reboot

Or, install dependencies and run directly from the source code:

# Clone repository
git clone --recursive https://github.com/stargatedaw/stargate.git
cd stargate
# Install dependencies
./scripts/debian_deps.sh
# Compile
cd src
make
# Run
./scripts/stargate
windowsrefund commented 10 months ago

FYI, the package is still broken. I know we ended up talking about compiling (and maybe I'll give it another go) but I figured you'd want to know you're publishing packages that can not be installed on up to date versions of Ubuntu.


> sudo dpkg -i downloads/stargate-24.01.1-amd64.deb
Selecting previously unselected package stargate.
(Reading database ... 678595 files and directories currently installed.)
Preparing to unpack .../stargate-24.01.1-amd64.deb ...
Unpacking stargate (24.01.1) ...
dpkg: dependency problems prevent configuration of stargate:
 stargate depends on fftw3; however:
  Package fftw3 is not installed.
 stargate depends on python3-mido; however:
  Package python3-mido is not installed.

dpkg: error processing package stargate (--install):
 dependency problems - leaving unconfigured
Processing triggers for desktop-file-utils (0.26-1ubuntu5) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for shared-mime-info (2.2-1) ...
Errors were encountered while processing:
 stargate

> sudo apt install fftw3
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package fftw3 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'fftw3' has no installation candidate

~
> sudo apt install fftw3-dev                                                        ⏎
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package fftw3-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'fftw3-dev' has no installation candidate

> lsb_release -a                                                                    ⏎
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 23.10
Release:    23.10
Codename:   mantic
L3337 commented 10 months ago

Hello again,

sudo dpkg -i downloads/stargate-24.01.1-amd64.deb

dpkg does not install dependencies, that command would only succeed (on any .deb package) if every dependency was already installed. The command to install the downloaded package is:

sudo apt install ./downloads/stargate-24.01.1-amd64.deb

Let me know if that works. Although you may run into some issues because of the attempted dpkg -i, the error will be something like You have held broken packages, and apt will probably offer some advice on how to fix it.

windowsrefund commented 10 months ago

Why are you assuming I don't know the difference in behavior regarding dpkg and apt? I've already shown you the dependent packages do not exist (this is the 2nd or 3rd time it has been mentioned). I think you'd benefit from actually trying to install your package on a vanilla Ubuntu box.

L3337 commented 10 months ago

OK...

Booted Ubuntu 22.04.3 in Virtualbox in live mode. Ran:

sudo apt-add-repository universe multiverse
wget https://github.com/stargatedaw/stargate/releases/download/release-24.01.1/stargate-24.01.1-amd64.deb
sudo apt install ./stargate-24.01.1-amd64.deb

Installs and runs fine. Just to make it clear: YOU ARE DOING IT WRONG, AND I HAVE ALREADY TOLD YOU (multiple times now) THE CORRECT WAY TO DO IT.

Why are you assuming I don't know the difference in behavior regarding dpkg and apt?

Because you clearly don't. All of the snarky comments in the world cannot change the fact that dpkg -i is not how you install a local package on Debian derivatives. Go find me an internet reference that says dpkg is how you install a local package. Go try some other packages so that you can see that what you are doing will never work. Or just keep insisting that you are the expert here, and that I need to drink deeply from your fountain of wisdom.

razcore-rad commented 10 months ago

This shouldn't be closed. The problem is in Ubuntu 23.10 (don't know about older version) there's no fftw3 package in the repos (yes with universe & multiverse enabled). They're called libfftw3-somethingsomething:

(default) 
~/Downloads via 🐍 v3.11.6 (default) 
❯ sudo apt install ./stargate.deb 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'stargate' instead of './stargate.deb'
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:
 stargate : Depends: fftw3 but it is not installable
E: Unable to correct problems, you have held broken packages.
(default) 
~/Downloads via 🐍 v3.11.6 (default) 
❯ apt-file search fftw3.h
libfftw3-dev: /usr/include/fftw3.h        
libmkl-dev: /usr/include/mkl/fftw/fftw3.h
libvigraimpex-dev: /usr/include/vigra/fftw3.hxx
r-cran-rcpparmadillo: /usr/lib/R/site-library/RcppArmadillo/include/armadillo_bits/def_fftw3.hpp
r-cran-rcpparmadillo: /usr/lib/R/site-library/RcppArmadillo/include/armadillo_bits/fft_engine_fftw3.hpp
r-cran-rcpparmadillo: /usr/lib/R/site-library/RcppArmadillo/include/armadillo_bits/translate_fftw3.hpp
(default) 
~/Downloads via 🐍 v3.11.6 (default) 
❯ apt-file search fftw3f.h
(default) 
~/Downloads via 🐍 v3.11.6 (default) 
❯ apt-file search fftw3f
libfftw3-dev: /usr/lib/x86_64-linux-gnu/libfftw3f.a
libfftw3-dev: /usr/lib/x86_64-linux-gnu/libfftw3f.so
libfftw3-dev: /usr/lib/x86_64-linux-gnu/libfftw3f_omp.a
libfftw3-dev: /usr/lib/x86_64-linux-gnu/libfftw3f_omp.so
libfftw3-dev: /usr/lib/x86_64-linux-gnu/libfftw3f_threads.a
libfftw3-dev: /usr/lib/x86_64-linux-gnu/libfftw3f_threads.so
libfftw3-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/fftw3f.pc
libfftw3-mpi-dev: /usr/lib/x86_64-linux-gnu/libfftw3f_mpi.a
libfftw3-mpi-dev: /usr/lib/x86_64-linux-gnu/libfftw3f_mpi.so
libfftw3-mpi3: /usr/lib/x86_64-linux-gnu/libfftw3f_mpi.so.3
libfftw3-mpi3: /usr/lib/x86_64-linux-gnu/libfftw3f_mpi.so.3.6.10
libfftw3-single3: /usr/lib/x86_64-linux-gnu/libfftw3f.so.3
libfftw3-single3: /usr/lib/x86_64-linux-gnu/libfftw3f.so.3.6.10
libfftw3-single3: /usr/lib/x86_64-linux-gnu/libfftw3f_omp.so.3
libfftw3-single3: /usr/lib/x86_64-linux-gnu/libfftw3f_omp.so.3.6.10
libfftw3-single3: /usr/lib/x86_64-linux-gnu/libfftw3f_threads.so.3
libfftw3-single3: /usr/lib/x86_64-linux-gnu/libfftw3f_threads.so.3.6.10
(default) 
❯ apt search fftw3
Sorting... Done
Full Text Search... Done
cl-fftw3/mantic,mantic 1.0.2-1 all
  Common Lisp package for using the FFTW3 library

libfftw3-bin/mantic,now 3.3.10-1ubuntu1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Tools

libfftw3-dev/mantic,now 3.3.10-1ubuntu1 amd64 [installed]
  Library for computing Fast Fourier Transforms - development

libfftw3-doc/mantic,mantic 3.3.10-1ubuntu1 all
  Documentation for fftw version 3

libfftw3-double3/mantic,now 3.3.10-1ubuntu1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Double precision

libfftw3-long3/mantic,now 3.3.10-1ubuntu1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Long precision

libfftw3-mpi-dev/mantic 3.3.10-1ubuntu1 amd64
  MPI Library for computing Fast Fourier Transforms - development

libfftw3-mpi3/mantic 3.3.10-1ubuntu1 amd64
  MPI Library for computing Fast Fourier Transforms

libfftw3-quad3/mantic,now 3.3.10-1ubuntu1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Quad precision

libfftw3-single3/mantic,now 3.3.10-1ubuntu1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Single precision

libgnuradio-fft3.10.7/mantic 3.10.7.0-3build1 amd64
  gnuradio fast Fourier transform functions

pd-bsaylor/mantic 0.1.5-3 amd64
  library of FFT-based Pd objects by Ben Saylor

python-pyfftw-doc/mantic,mantic 0.13.0-2build1 all
  Pythonic wrapper around FFTW - docs

python3-pyfftw/mantic 0.13.0-2build1 amd64
  Pythonic wrapper around FFTW - Python 3

ruby-fftw3/mantic 1.0.2-3build5 amd64
  Ruby interface to the FFTW Ver.3 library
L3337 commented 10 months ago

Thanks @razcore-rad . I added a fix, will be in the next release within a couple weeks. If you are eager to test, you can build the Debian package by hand from the latest main branch:

sudo apt update
sudo apt install git
mkdir src
cd src
git clone --recursive https://github.com/stargatedaw/stargate.git
cd stargate
./scripts/debian_deps.sh
./scripts/deb.py -i
razcore-rad commented 10 months ago

Sure thing, I'll definitely give it a try because I can't get the Appimage to work either :). Thanks!

edit Well scratch that, I guess I can't get the build working either, but I'll wait for the official release. Can't get bothered to dig into this (I probably have some local perl libs installed for some old project) and I see there's a bunch of dependencies that I don't want on my system anyway :).

stargate/scripts on  main via 🐍 v3.11.6 (default) took 1m3s 
❯ ./deb.py -i

Encode.c: loadable library and perl binaries are mismatched (got first handshake key 0xed00080, needed 0xeb80080)
Traceback (most recent call last):
  File "/home/razcore-rad/Projects/code/stargatedaw/stargate/scripts/./deb.py", line 56, in <module>
    arch = subprocess.check_output(['dpkg-architecture', '-q', 'DEB_HOST_ARCH'])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/subprocess.py", line 466, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['dpkg-architecture', '-q', 'DEB_HOST_ARCH']' returned non-zero exit status 1.
L3337 commented 9 months ago

@razcore-rad : Sorry, did not get an email notification from Github that you edited your post, did not see that until now. The new release with the Ubuntu 23.10 fix is live: https://github.com/stargatedaw/stargate/releases/tag/release-24.02.1