GeoDaCenter / geoda

GeoDa: An introduction to spatial data analysis
http://geodacenter.github.io
GNU General Public License v3.0
680 stars 155 forks source link

build Debian pkg in addition to Ubuntu #2464

Open faridcher opened 8 months ago

faridcher commented 8 months ago

Ubuntu is Debian derivative but their repositories and package naming differ. Trying to install Ubuntu package on Debian unstable gives:

~/GeoDa-1.22.0-jammy $ sudo apt install -f ./geoda_1.22.0-1jammy1_amd64.deb
[sudo] password for farid:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'geoda' instead of './geoda_1.22.0-1jammy1_amd64.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:
 geoda : Depends: libgdal30 but it is not installable
          Depends: freeglut3 but it is not installable
           Depends: libwebkit2gtk-4.0-37 but it is not going to be installed
   E: Unable to correct problems, you have held broken packages.

please provide pure Debian packages. thanks

lixun910 commented 8 months ago

Thanks for reporting this issue! Did you try: sudo dpkg -i /path/to/geoda_deb_file, then sudo apt install -f ? which might automatically install the listed dependencies of GeoDa.

Btw, can you help to provide a list of the correct names of the dependent libraries? Thank you!

faridcher commented 8 months ago

Yes, I tried your approach and failed for the same reason.

libgdal33 libglut3.12 libwebkit2gtk-4.0-37 and libwebkit2gtk-4.1-0

lixun910 commented 8 months ago

Thanks! I will update the dependencies.

lixun910 commented 8 months ago

@faridcher I've tried to install the original GeoDa package on a clean Ubuntu 22.04 Jammy. The original dependencies in the control file work fine:

Depends: libgdal30, zlib1g, libexpat1, freeglut3, libreadline8, libgtk-3-0, libssl3, libwebkit2gtk-4.0-37

Is it possible that some of the above dependent libraries have been upgraded by other packages on your Ubuntu Jammy? I've created a testing pull request with the versions you mentioned, and you can find and try the new installer on the action page once it's completed: https://github.com/GeoDaCenter/geoda/actions/runs/6590707617

lixun910 commented 8 months ago

@faridcher The new installer is ready https://github.com/GeoDaCenter/geoda/actions/runs/6590707617. Can you help to verify if the changes in this PR work? Thanks!

faridcher commented 8 months ago

@lixun910 Debian and Ubuntu are distinct linux distros. Debian has it own releases i.e. trixie, bookworm, etc. which are different from Ubuntu Jammy, Focal, etc. I don't have Ubuntu installed: I use Debian sid/unstable. The new packages still complain about missing freeglut3.

~/GeoDa-1.22.0-jammy$ sudo apt install -f ./geoda_1.22.0-1jammy1_amd64.deb
[sudo] password for farid: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'geoda' instead of './geoda_1.22.0-1jammy1_amd64.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:
 geoda : Depends: freeglut3 but it is not installable
E: Unable to correct problems, you have held broken packages.

I think you should change freeglut3 to libglut3.12

lixun910 commented 8 months ago

I see. Thanks for your explanation! I just change freeglut3 to libglut3.12 in https://github.com/GeoDaCenter/geoda/pull/2465 Please help to try the new installer once the ci is completed. Thanks! https://github.com/GeoDaCenter/geoda/actions/runs/6592554354

lixun910 commented 8 months ago

@faridcher I think maybe it's worth creating a deb package for Debian. Do you have any naming suggestions? Thanks!

faridcher commented 8 months ago

You may opt to use the same name as your software name. Debian has 3 main releases: stable, testing and unstable. Debian uploaders/maintainers build their packages for each release with its own libraries versions. E.g. Debian stable (currently aka buster) uses libgdal v2.4 but testing has v3.2.2 and so on. link .

So I suggest not to change the package name; use plain geoda1.22.deb but build it with different releases' libraries (and headers).

thank you for you efforts

faridcher commented 8 months ago

The new pkg installs well but as I suspected it does not run. Because you have built in with Ubuntu and it's specific libraries. It should be built with a Debian distro.

lixun910 commented 8 months ago

@faridcher It seems the Github action runners only have Ubuntu distro https://github.com/actions/runner-images. Do you know any specific Debian docker images that are used to build open-source packages? I can try to use the Debian docker to build GeoDa if possible.

faridcher commented 8 months ago

Unfortunately, I have no idea.

ppopoca commented 7 months ago

Yes, I tried your approach and failed for the same reason.

libgdal33 libglut3.12 libwebkit2gtk-4.0-37 and libwebkit2gtk-4.1-0

Hi, I'm also looking for a way to install GeoDa in Debian. I'm using debian 12 (bookworm) and stable packages are libgdal32 and freeglut3-dev

ppopoca commented 7 months ago

@faridcher It seems the Github action runners only have Ubuntu distro https://github.com/actions/runner-images. Do you know any specific Debian docker images that are used to build open-source packages? I can try to use the Debian docker to build GeoDa if possible.

All I know form github is using it to install software. However, I hope these links help somehow:

https://github.com/linuxcontainers/debian-slim

https://github.com/docker-library/official-images/blob/master/library/debian

https://hub.docker.com/_/debian