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
Issue building 9.14.1 with 7zip or p7zip in Linux (Ubuntu/Debian) #417
Comments
Hi, I sent you an email (mailbox.org account) when I migrated YACReader to use 7zip 23.01 to see if it would cause you any troubles, p7zip is abandoned and now 7zip supports linux so this is the right path to keep things up to date. p7zip is no longer supported. In
So it seems that the check is failing for some reason, can you double check that You are going to need the right 7z.so binaries, there are some instructions to build 7z.so with rar support here if you can't find prebuilt ones: https://github.com/YACReader/yacreader/blob/develop/dependencies/7zip/linux/Steps%20for%20building%207z.so%20with%20rar%20support.txt Thanks for keeping the docker image updated, it is really appreciated, maybe it would be a good idea if you join the discord server so this type of changes don't take you by surprise. |
Hi Luis, Apologies, I must have missed your email... I'm up for joining the discord server, if that's the best place to join the discussion. In the mean time, I'll check into this and report back once I figure out what's going on. Thanks for pointing me in the right direction. Cheers! |
I run some tests in Ubuntu and I was able to compile from develop with 7zip support just fine. Note that there is a job in azure pipelines that builds in Ubuntu + qt6 + 7zip and it has been passing CI/CD (in case you find any of the setup done there useful). Let me know if you need help with anything. |
Yeah, I based my updated qt6 + 7zip image (built on Ubuntu 22.04) on the job in your azure pipelines. There may be something else in baseimage that is causing the issue. I've come across a bug with qtchooser + qt6 + Ubuntu 22.04 in an arm64 environment, so that may be part of the issue. I'm still troubleshooting, but will report back soon. |
Okay, I spun up a docker container of my baseimage and followed my Dockerfile up the the stage of building yacreaderlibraryserver. Everything worked fine again up until the qmake stage when once again the compiler couldn't find the This my terminal output from the point of downloading and installing the 7zip libraries up to the error:
And here is the context, ownership and permissions of
For now, I'm going to try building the 7z.so binaries with rar support within the container, rather than using the prebuilt ones, so hopefully that makes a difference. Any additional suggestions for troubleshooting from here, or do you think it's possibly a bug in the |
The prebuilt The check has been there years, the only change was that before I was wondering if the folder you start the build from could had something to do with the error but...
So it is really weird that What happens if you remove the check? does it compile? |
I've made some changes to the Docker image and I'm now able to get the QT6 version to build with both 7zip and unarr, so I'm about ready to release it. However, I've been trying to build 7z.so for these specific images and am running into another issue (I can open a new issue is you would prefer that). As per the directions here I started by downloading the the 7zip source. For my image, based on Ubuntu 22.04 (the current LTS), the latest version of 7zip available is 21.07, not 23.01, which appears to be an issue, since I believe YACReader only works with 7zip 23.01, correct? After removing the DISABLE_RAR* line in 7zip-21.07+dfsg/debian/rules (there is a type in the instructions here btw) and running
I'm currently attempting to figure out if it's possible to build 7zip 23.01 for Ubuntu 22.04. If not, the only alternative may be be for me to either wait to see if a 7zip 23.01 package is released for Ubuntu 22.04 or to change my Docker baseimage, which will necessitate completely reworking the image. |
No, I think this issue is ok. Hmmm, Igor likes to change things around from version to version, so compilation + integration is always tricky. I didn't try to compile 21.07, the binaries should be compatible though. About that error, it sounds like Rar1Decoder.cpp is not found, check if it is in the code and if so, maybe some of the lines with DISABLE_RAR remain ?? Not sure if they have the rar code in a separate package or something...but at least for 23.01 I didn't have to do anything. But yeah, if building 23.01 for ubuntu 22.04 is possible I would do that. |
It is possible to ship a different version of 7zip with YACReader than what is provided by the system. Just place 7z.so and the codecs in /usr/lib/yacreader |
actually it may be a problem with the source package: https://bugs.launchpad.net/ubuntu/+source/7zip/+bug/2051615 I think I have around the code I got originally, let me check it. |
Yep, the package I got originally had the rar code in it.
But if a got the code again (same setup and system) it doesn't have it. I guess they realized that it could potentially build the 7z.so with rar suport in it, without the need of external codecs.... |
I've been able to build 7zip 23.01 for Ubuntu 22.04 and compiled YACReader with it, seemingly without any issues. I'm continuing to test at the moment, but if everything continues to work I'll push my updated docker image later today. |
Crap... Well, my updated docker images seem to work fine and both the amd64 and aarch64 versions compile without issue on those respective systems. However, there is apparently a bug in QT6 (since 6.2) that causes qmake to fail when being run as part of a cross-environment docker build process (in this instance my GitHub docker image build workflow emulating aarch64 from their x86-64 host) using docker buildx with qemu. See these bug reports: 1, 2, 3. This means that for now, I'm either going to have to drop support for aarch64 or roll the aarch64 versions back to QT5 (there are not QT6 version before 6.2 that I can pin the packages to), since I don't have the time to figure out how to completely change my build workflow (and aarch64 runners/VMs don't exist for GitHub actions yet). Any thoughts? |
I guess users will prefer a Qt5 image rather than no image at all... |
Yeah, I went ahead and pushed a release with the aarch64 version rolled back to Qt5. It seems to still be working with 7zip 23.01, so we'll see if I get any bug reports. Cheers! |
Unfortunately it seems that via iOS (from iPads), 7zip is not working and comics are failing to open. The unarr version of the docker image is working without issue, but comics fail to open with the 7zip version. I'm not sure exactly how to go about troubleshooting what is going on at the moment, and don't have a lot of time to do so at the moment, but if you have any suggestions please let me know. |
Did you check the type of files that fail? zip? rar? rar5? all of them? |
It's not actually opening the files that fail, it's the database creation itself I think. Rather than trying to add my existing YACReader comic library to the YACReaderLibraryServer running in my 7zip container, I created a new container mounted with a small comic test library at |
Could it be a missing Qt6 package? |
Here there is a user saying that the Qt6 build has some .so missing: https://www.yacreader.com/forum/support-linux/2067-how-2-create-a-yacreader-server-on-synology-nas?start=30#8243 Not sure if it is related to this though. |
@xthursdayx did you try to use libarchive? #290 That could be an alternative to 7zip, it supports rar5 and that would be good enough for an image, or at least better that only having support for rar4. Sadly rar5 is everywhere these days. |
Hey guys, I'm currently updating my YACReaderLibraryServer Docker image to include QT6 and package the recent YACReader 9.14.1 release. So far, the
unarr
version is working well with QT6 and 9.14.1, however I'm running into some issues when I try to build the version packaged with 7zip or p7zip.I'm finding that when I build my QT6 image with YACReader 9.14.1 compiled with either the newer 7zip libraries hosted in your 7z deps repo or the previously-used p7zip libraries as
/src/git/compressed_archive/lib7zip
or/src/git/compressed_archive/libp7zip
, respectively, I get the following error:ERROR: You'll need 7zip source code to compile YACReader. Please check the compressed_archive folder for further instructions.
Obviously, I am including 7zip source, so I'm not sure what is triggering this error. Any ideas? Compiling YACReader 9.13.1 with p7zip has always worked without issue in my previous QT5 YACReaderLibraryServer image.
Here are the relevant sections of my Dockerfile, for 7zip:
and for p7zip:
The text was updated successfully, but these errors were encountered: