Skip to content
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

[BUG] QtVipster binary missing after (local) build #49

Closed
jewettaij opened this issue Apr 21, 2022 · 7 comments
Closed

[BUG] QtVipster binary missing after (local) build #49

jewettaij opened this issue Apr 21, 2022 · 7 comments
Assignees
Labels

Comments

@jewettaij
Copy link

jewettaij commented Apr 21, 2022

Describe the bug
Hi Sebastian
I am following the instructions here to build QtVipster from source. But after I am done, I cannot find the QtVipster binary. I don't know if this is a bug. Perhaps it is present somewhere. But if so, I don't have enough clue to figure out where it is or what it is called. Please change the documentation so that it clarifies where the QtVipster binary is located after a build, and how to invoke it.

To Reproduce
Here's what I did:
(Note: I built vipster on a different computer where I have admin privileges. Then I took photos of the terminal with my phone. Then I retyped it here. There may be typos. But hopefully, you get the idea.)

# Download the source code and create the build directory
git clone https://github.com/sgsaenger/vipster/ ~/vipster
mkdir ~/vipster/build
cd ~/vipster/build

# Define the variables we need:
SOURCE_DIR=$HOME/vipster
BUILD_DIR=$HOME/vipster/build

# Compile'
# step 1
cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX=$HOME/.local -DVIPSTER_DESKTOP=ON
# step 2
cmake --build .
# step 3
cmake --build . -- install

The compilation completes with no error messages during steps 1,2,3.
Then I start a new terminal and type:

$ vipster
vipster: command not found

(I knew this probably wouldn't work, but I tried it anyway.)

Then I use the unix "find" command to search for files containing "vipster" in ~/.local

$ find ~/.local/ -name "*vipster*"
/home/jewett/.local/include/vipster
/home/jewett/.local/lib/libvipster.so
/home/jewett/.local/lib/libvipster.so.1
/home/jewett/.local/lib/libvipster.so.1.19.1

(I did not attempt to install PyVipster or WebVipster.)

Expected behavior
I was expecting to see a binary file (perhaps something in the ~/.local/bin directory). I could only find the library and some include files. If the QtVipster binary is there, I think the documentation could provide more instructions so that users can find it.

Your system/installation (please complete the following information):

  • Version [commit fccaf0f from 2022-3-24]
  • Interface [Desktop-App]
  • Platform [Linux]
  • Browser if applicable [Not Applicable]

Additional context
I am trying to build vipster from source because I wanted to try the new moltemplate export capabilities that you kindly added in issue #35. (Thank you so much for adding this. I am starting to get questions about this feature by moltemplate users. I feel bad that it took me this long to try this out.)

Forgive me for taking so long to followup on this and don't feel obligated to respond. If you don't have time to deal with this now, I completely understand. (I often feel that way when people ask me moltemplate questions.)

@sgsaenger
Copy link
Owner

sgsaenger commented Apr 21, 2022

Hi Andrew,

jfyi, the CI pipelines produce binary artifacts that should contain moltemplate support (and should even bundle it, if i recall correctly). Would be thankful if you could give them a try :)
The last build can be found here: https://github.com/sgsaenger/vipster/actions/runs/2178453502

About the issue at hand, my first guess would be a missing/ill-configured Qt installation.
Could you check the output of your initial cmake call?
it might contain a warning saying something about the VIPSTER_DESKTOP setting being unused.
I'll try to reproduce this case myself and will add an error if the desktop client is explicitely requested but cannot be built.

Thanks for reporting this!

@jewettaij
Copy link
Author

jewettaij commented Apr 21, 2022

Hi Andrew,

jfyi, the CI pipelines produce binary artifacts that should contain moltemplate support (and should even bundle it, if i recall correctly). Would be thankful if you could give them a try :) The last build can be found here: https://github.com/sgsaenger/vipster/actions/runs/2178453502

Thanks.
I feel embarrassed to ask this, but even after following this link, I don't know where the binary is located. (The INSTALL.md file contains this link. This refers to version v1.19.1b which was built on 2020-12-14. Should the INSTALL.md file include a link to the actions page to get the latest version?)

About the issue at hand, my first guess would be a missing/ill-configured Qt installation. Could you check the output of your initial cmake call? it might contain a warning saying something about the VIPSTER_DESKTOP setting being unused.

Sure!
Here are the messages generated by the first call to "cmake" (step 1):
step1_messages.txt

Here are the messages generated by the second call to "cmake" (step 2):
step2_messages.txt

...And here are the messages from the third (final) call to "cmake" (step 3):
step3_messages.txt

None of the messages contain: "ekstop", "Qt", or "qt".

I'll try to reproduce this case myself and will add an error if the desktop client is explicitely requested but cannot be built.

Thanks for reporting this!

Andrew

@jewettaij
Copy link
Author

Also, here is the Makefile generated by cmake (renamed to Makefile.txt)

@sgsaenger
Copy link
Owner

sgsaenger commented Apr 22, 2022

Thanks. I feel embarrassed to ask this, but even after following this link, I don't know where the binary is located. (The INSTALL.md file contains this link. This refers to version v1.19.1b which was built on 2020-12-14. Should the INSTALL.md file include a link to the actions page to get the latest version?)

There should be a list of artifacts below the build-graph from which you can choose the relevant architecture.
At least i hope so, last i checked it was (only) required to be logged into github to see them...

None of the messages contain: "ekstop", "Qt", or "qt".

Thanks for the logs!
I see, that makes the problem even more troublesome, i was under the wrong assumption that the option being disabled would trigger the "unused" warning.

The issue at hand is still that you do not seem to have a Qt development environment installed or it can't be found, for e.g. Ubuntu this means qtbase5-dev or qt6-base-dev.
If no Qt install can be found, the desktop build target will simply be disabled.
I realize now this should be made more clear in the documentation, and i need to implement a warning when the explicit user wishes cannot be fulfilled.

@sgsaenger
Copy link
Owner

Updated master-branch, please let me know if this makes things more clear!

@jewettaij
Copy link
Author

Hi Sebastian
I think the recent changes you made helped.
The link to the binary artifacts in the INSTALL.md file.
When Qt is not installed, the cmake configuration step fails.

Could not find suitable nlohmann/json installation, using included version at external/nlohmann_json
-- Using the single-header code from /home/jewett/vipster/external/nlohmann_json/single_include/
Could not find suitable {fmt} installation, using included version at external/fmt
-- Module support is disabled.
-- Version: 8.1.1
-- Build type: Release
-- CXX_STANDARD: 17
-- Required features: cxx_variadic_templates
Could not find suitable Catch2 installation, using included version at external/Catch2
-- Could NOT find Qt6 (missing: Qt6_DIR)
Could not find suitable CLI11 installation, using included version at external/CLI11
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jewett/vipster

That is a big improvement.
I will close the issue now.
Thank you very much for these changes.

-Andrew
(...Meanwhile, I'll try using the new binary today and I'll report back.)

Details

For completeness, here is a log of the commands I typed in to generate the messages above.

sudo apt-get install qtbase5-dev package for ubuntu  # (probably unnecessary)
cd ~/vipster    # I previously downloaded vipster here using git
git pull
rm -rf build     # get rid of the old "build/" directory
mkdir build
cd build
SOURCE_DIR=$HOME/vipster
BUILD_DIR=$HOME/vipster/build
# step 1
cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX=$HOME/.local -DVIPSTER_DESKTOP=ON

@jewettaij
Copy link
Author

jewettaij commented Apr 26, 2022

(...Meanwhile, I'll try using the new binary today and I'll report back.)

Incidentally, I just tried using the binary from the most recent artifact. Unfortunately it generated this error message:

$ chmod 755 ./Vipster-Linux-x86_64.AppImage
$ ./Vipster-Linux-x86_64.AppImage 
/tmp/.mount_VipsteepTSBB/AppRun: 13: /tmp/.mount_VipsteepTSBB/AppRun: 12: python3.10: not found
python3.10: not found

I was surprised that the program requires a specific version of python. I have python 3.8.12 installed instead. If I get around to upgrading my python version, I'll try again. (This will probably happen when I upgrade my OS later this year. Doing that will make it easier to upgrade my Qt version as well.)

Meanwhile, the binary for the 1.19.1b release is working fine on my computer (although it lacks the recent moltemplate features you added).

Thank you for all your efforts.
-Andrew

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants