qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
25.89k stars 3.82k forks source link

Nightly Release For Debian #12616

Open zero77 opened 4 years ago

zero77 commented 4 years ago

qBittorrent version and Operating System

Debian Sid

If on linux, libtorrent-rasterbar and Qt version

image

What is the problem

There's only a stable release branch for debian, which means you have to rebuild for every change to keep up to date.

What is the expected behavior

Have an equivalent repository like ppa:qbittorrent-team/qbittorrent-unstable but for Debian. Perhaps, using the current experimental repository debian has.

GvY85 commented 4 years ago

I would like this very much, same for libtorrent. Now you have to install ~1,5GB of building tools that I down use for anything else than building qBittorrent-nox and libtorrent each time a new release comes out. Ele, you are still on 4.1.5 or someting like that.

zywo commented 4 years ago

If you are in Debian sid(unstable), they pushed libtorrent-1.2.5 and qbittorrent-4.2.4 versions yesterday.

Kolcha commented 4 years ago

I can create and maintain repo on OpenSUSE build server (it can provide packages for Debian) like I did it for stable releases and start the build each week for example (sure, process can be automated)

zero77 commented 4 years ago

That would be great, thanks @Kolcha

Kolcha commented 4 years ago

so, I created new subproject in my home project on OpenSUSE build server. I can maintain it and keep active and updated if qBittorrent team members have no objections or can help to setup such official project. in any case it will be available as any other 3rd-party repo.

it uses completely unmodified sources from latest commits at the moment of building. RC_1_2 branch is used for libtorrent, master branch is used for qBittorrent. exact commit hashes are part of corresponding package versions.

deb packages are available for few Debian versions (10 and above) and Raspbian 10 (arm + aarch64). both qbittorrent and qbittorrent-nox are available, updated libtorrent is installed as dependency, python3-libtorrent is also available.

to start using it, just follow this link to add repo and install/upgrade qBittorrent

all sources, list of supported OSes and current build status can be viewed here there is full content of that repo for Debian Unstable (i.e. sid), just to show that everything required is in it, and nothing more.

I plan to start build weekly (very likely each Monday), but any suggestions are welcome. right now there is no any automation, new builds (but without source changes) will happen only in case of dependencies updates (e.g. OpenSSL update), in such case only the last number in package version will changed.

zero77 commented 4 years ago

@Kolcha This sounds really good, thanks. Although, i think the ubuntu nightly repo builds every 24 hours provided there is a change to the git repo.

Kolcha commented 4 years ago

nightly repo builds every 24 hours provided there is a change to the git repo

done! just wait for updated packages. both libtorrent and qbittorrent repos changes are tracked. please note, packages version format has changed (this must not cause an update issues)

zero77 commented 4 years ago

@Kolcha It seams to be all working well, thanks

GvY85 commented 4 years ago

Great! One request: could you do -nox builds for Debian stable as well? Also, perhaps we should make a wiki note so more ppl can find it?

Kolcha commented 4 years ago

@GvY85 , -nox versions are also available, just install qbittorrent-nox instead of qbittorrent they are just not listed because they are build from the same sources, and server displays only packages with the same as source archive names (i.e. qbittorrent). this like python3-libtorrent package is not listed, but it also exists. if not sure, just view the content of repository following one of the links with desired OS (e.g. Debian 10) from this build server page, there you can see everything available, and also can find link "go to download repository" - here you will find what is available for download right now (it can be NOT the same as that was build, some time is required to delivery build artifacts to the repo).

Kolcha commented 4 years ago

what about wiki page, I agree, it is better to have a wiki page with that info, but I'm not sure that any user can add anything to project wiki, moreover, I think this is unfair to project team members just to publish something in their wiki. only they should decide what where and when to publish. as I wrote before, my repo is just like any other 3rd-party repo, nothing more. it like something created for personal usage, but shared in hope that it will be useful for someone else. also I can help official maintainer to setup something similar if they will be interested.

zero77 commented 3 years ago

@Kolcha There seems to be a problem with the build.

Kolcha commented 3 years ago

I looked into the logs, build failure cased by yesterday libtorrent changes related to CMake (I used it in build), and it looks like there is no quick solution, I'll back to it later, right now I have no time to deal with it. among all cmake changes, one looks very frighteningly - they set insanely new required CMake version - 3.17.0, even Ubuntu 20.04 doesn't have it. I'm almost sure that it will be compiled fine with any version starting from ~3.14 or even less, but... cmake scripts must be pathed in any case....

but be sure, I'll fix build in 2-3 days in any case. qBittorrent build is fine, it only will use previous (last successfully compiled) libtorrent build.

in any thanks for notification, I'm even surprised that you noticed build failure only after few hours after it happened (build starts each day at ~6.30am).

FranciscoPombal commented 3 years ago

@Kolcha

among all cmake changes, one looks very frighteningly - they set insanely new required CMake version - 3.17.0, even Ubuntu 20.04 doesn't have it. I'm almost sure that it will be compiled fine with any version starting from ~3.14 or even less, but... cmake scripts must be pathed in any case....

No, we set it to 3.16: https://github.com/qbittorrent/qBittorrent/blob/05c779690969a18525f491615e72e65a6ff5b05c/CMakeLists.txt#L1 which Ubuntu 20.04 does have, and also comes bundled with the official Qt distribution on Windows (or it did at the time, perhaps they have updated in the meantime).

However, it will probably build fine with a version as old as 3.14, but this is not recommended, patch and use at your own risk.

Kolcha commented 3 years ago

@FranciscoPombal , I'm talking about libtorrent: https://github.com/arvidn/libtorrent/blob/3d48e7d0562ea2f345077e6e791c5ff438c5a6bc/bindings/python/CMakeLists.txt#L1 this line is appeared in https://github.com/arvidn/libtorrent/commit/cfa5875d1a645389e15068e7f15c8e7a68d67465 this is my main concern, I still use autotools build on linux for qBittorrent, only libtorrent is built using cmake

FranciscoPombal commented 3 years ago

@Kolcha

Ah, I see, sorry for the misunderstanding.

CMake >= 3.17 is required for libtorrent's python bindings now because of the new features used from the FindPython3 module: https://cmake.org/cmake/help/latest/release/3.17.html?highlight=changes#modules.

But if you don't care too much about python bindings, you can:

both alternatives seem easy enough (the patch itself is very self-contained, so it is easy to revert). Also note that Python 2 bindings are no longer built with the new changes.

Furthermore, I strongly recommend building qBittorrent with CMake now as well.

Kolcha commented 3 years ago

But if you don't care too much about python bindings

I care... I used it in my scripts, so it is required for me. but previously I did very simple change to build bindings only for Python3: https://build.opensuse.org/package/view_file/home:nikoneko:qbittorrent-nightly/libtorrent-rasterbar/cmake-find-python3.patch?expand=1 . so, maybe I'll revert my build scripts to use autotools

Furthermore, I strongly recommend building qBittorrent with CMake now as well.

it is planned, but I had not so much free time to rewrite qBittorrent Debian packaging scripts to cmake

FranciscoPombal commented 3 years ago

@Kolcha

I care... I used it in my scripts, so it is required for me. but previously I did very simple change to build bindings only for Python3: https://build.opensuse.org/package/view_file/home:nikoneko:qbittorrent-nightly/libtorrent-rasterbar/cmake-find-python3.patch?expand=1 . so, maybe I'll revert my build scripts to use autotools

The change was not just about building them only for Python3, it was also about simplifying the build script and not using deprecated CMake modules/features and not having a dependency on setuptools. Anyway, you can easily revert the change and apply yours, so that it still builds with older versions of CMake. No need to go back to autotools.

Kolcha commented 3 years ago

@zero77 build is fixed now!

zero77 commented 3 years ago

@Kolcha Thank you.

Although after updating to the following package 4.4.0~alpha1.20201019T093003.05c779690-0+89.1, qbittorrent fails to start and i get the following error.

The legacy data directory '~/.local/share/data/qBittorrent/' is used. It is recommended to move its content to '~/.local/share/qBittorrent/' The legacy data directory '~/.local/share/data/qBittorrent/' is used. It is recommended to move its content to '~/.local/share/qBittorrent/' The legacy data directory '~/.local/share/data/qBittorrent/' is used. It is recommended to move its content to '~/.local/share/qBittorrent/'

qbittorrent-nox: symbol lookup error: qbittorrent-nox: undefined symbol: _ZN10libtorrent7session5startENS_5flags13bitfield_flagIhNS_17session_flags_tagEvEEONS_14session_paramsEPN5boost4asio10io_contextE

FranciscoPombal commented 3 years ago

@zero77

The legacy data directory '~/.local/share/data/qBittorrent/' is used. It is recommended to move its content to '~/.local/share/qBittorrent/'

This is an expected warning and the fix is self-explanatory. Be aware of https://github.com/qbittorrent/qBittorrent/issues/13519, though, you might also need to edit your config file to prevent the legacy directory location from being recreated at this time.

zero77 commented 3 years ago

@FranciscoPombal Thanks, i will sort that out. I am guessing that it's more the second error that prevents qbittorrent starting.

qbittorrent-nox: symbol lookup error: qbittorrent-nox: undefined symbol: _ZN10libtorrent7session5startENS_5flags13bitfield_flagIhNS_17session_flags_tagEvEEONS_14session_paramsEPN5boost4asio10io_contextE

Kolcha commented 3 years ago

ugh... this is very strange... I'll check it later (today' evening)

zero77 commented 3 years ago

No luck fixing it yet but, i have found: https://github.com/qbittorrent/qBittorrent/wiki/Compilation:-Debian-and-Ubuntu#running-qbittorrent

Kolcha commented 3 years ago

@zero77 what you found affects only manually compiled libtorrent + qBittorrent, not packaged version one exception, only if CMake files where broken somehow, and my package contains libtorrent at wrong path (I didn't checked it yet). please wait, I'll resolve these issues, but not right now, only in few hours

zero77 commented 3 years ago

@Kolcha Thanks

Kolcha commented 3 years ago

@zero77 I checked my nightly builds for Debian 10/testing/unstable using qbittorrent-nox package in Docker containers (Kubuntu 20.04 as host), qbittorrent GUI on Debian 10 VM, and qbittorrent-nox on my server, no issues were found. so I assume bug is gone. if you still observe it, just make sure that you don't have any other libtorrent rather than mine.

zero77 commented 3 years ago

@Kolcha Thanks

Kolcha commented 3 years ago

@zero77 finally, I reproduced exactly the same error message you reported on Ubuntu 20.04! and I found the reason… as I thought, the reason is libtorrent inconsistency, but the source of this is pretty strange - libtorrent from 'test' with latest stable version is considered newer than libtorrent from 'nightly' repo. so after adding 'nightly' repo without packages uninstall, only qbittorrent packages are updated (but not libtorrent!), and this leads to this error message.

just uninstalling qbittorrent-nox and libtorrent-rasterbar10 packages (only libtorrent is enough, qbittorrent will be removed automatically) and installing qbittorrent-nox (or qbittorrent) again will fix that issue.

apt policy also shows this, see attached screenshot.

Screen Shot 2020-10-27 at 12 42 12 AM

I’ll fix this "version issue" somehow, but later. sorry for inconvenience, and thanks for reporting! now feel free to use 'nightly' builds.

zero77 commented 3 years ago

@Kolcha Thank you for your help.

There is already a ubuntu nightly repository: https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-unstable

Most of the distros listed here have out of date packages and no maintained repository available. So supporting one of these would be help full.

https://repology.org/project/qbittorrent/versions

guyarad commented 3 years ago

I'm very new to Raspberry PI. I have what seems to be Raspbian 10 installed, on Rasp-pi-4, which seems to be 32bit:

Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux

I followed these steps from here:

echo 'deb http://download.opensuse.org/repositories/home:/nikoneko:/qbittorrent-nightly/Raspbian_10/ /' | sudo tee /etc/apt/sources.list.d/home:nikoneko:qbittorrent-nightly.list
curl -fsSL https://download.opensuse.org/repositories/home:nikoneko:qbittorrent-nightly/Raspbian_10/Release.key | gpg -- dearmor | sudo tee /etc/apt/trusted.gpg.d/home_nikoneko_qbittorrent-nightly.gpg > /dev/null
sudo apt update
sudo apt install qbittorrent

And it seemed to have worked just fine. What am missing?

Kolcha commented 3 years ago

I don't have any ARM-based devices, but it seems to be there is no stable Raspbian 10 64-bit yet... see https://www.raspberrypi.org/forums/viewtopic.php?t=275370 and https://www.raspberrypi.org/forums/viewtopic.php?t=292965

so, that's fine that you have 32-bit OS

Kolcha commented 3 years ago

due to https://github.com/qbittorrent/qBittorrent/commit/f022458383577e1a8409b4c087c07ade84d42559 builds for Debian 10 (and other distros based on it, like Raspbian) are not possible anymore. so, no more nightly builds will be provided for these systems.

also, very likely I'll drop whole my repo at https://software.opensuse.org//download.html?project=home%3Anikoneko%3Aqbittorrent-nightly&package=qbittorrent because I see no reasons to keep just for not stable Debian releases. but this slightly later, maybe in few months.

repo with stable releases https://software.opensuse.org//download.html?project=home%3Anikoneko%3Atest&package=qbittorrent for Debian will exist some longer time, but also I plan to drop it.

Kolcha commented 3 years ago

since today qBittorrent nightly builds use libtorrent 2.0 https://software.opensuse.org//download.html?project=home%3Anikoneko%3Aqbittorrent-nightly&package=qbittorrent

no any migration process is required, everything works out of the box moreover, everything is backward compatible with libtorrent 1.2, so even if you revert qBittorrent to lt-1.2-based, you will see all torrents as it was for lt-2.0-based qBittorrent

Kolcha commented 2 years ago

@ted423 you are trying to add Ubuntu's ppa, what is not suitable for Debian, you should use links from my posts instead. I provide these links below, to do not have you to search them in thread:

stable release: https://software.opensuse.org//download.html?project=home%3Anikoneko%3Atest&package=qbittorrent nightly builds: https://software.opensuse.org//download.html?project=home%3Anikoneko%3Aqbittorrent-nightly&package=qbittorrent

to add any of this repos just follow instructions on that pages. Note: regardless of only qbittorrent package (aka GUI) is mentioned, qbittorrent-nox is also available (website just doesn't display it). you can find full list of available packages for Debian unstable (aka 'sid') here

update: now previous versions of qBittorrent are also available in the stable repo. so in case of any issues there is a possibility to revert to previous version. how to install a specific package version in case of few available versions, see this guide https://linoxide.com/install-specific-version-package-apt-get/

ted423 commented 2 years ago

@ted423 you are trying to add Ubuntu's ppa, what is not suitable for Debian, you should use links from my posts instead. I provide these links below, to do not have you to search them in thread:

stable release: https://software.opensuse.org//download.html?project=home%3Anikoneko%3Atest&package=qbittorrent nightly builds: https://software.opensuse.org//download.html?project=home%3Anikoneko%3Aqbittorrent-nightly&package=qbittorrent

to add any of this repos just follow instructions on that pages. Note: regardless of only qbittorrent package (aka GUI) is mentioned, qbittorrent-nox is also available (website just don't display it). you can find full list of available packages for Debian unstable (aka 'sid') here

My mistake, I delete it

Kolcha commented 2 years ago

Debian 11 was released. corresponding qBittorrent packages in my repos will appear soon. the same links as were published previously in https://github.com/qbittorrent/qBittorrent/issues/12616#issuecomment-875368452 should be used. from now stable (aka release) builds will be available for Debian 10 (buster), 11 (bullseye), testing and unstable, while nightly will be available only for Debian 11 (bullseye), testing and unstable.

GvY85 commented 2 years ago

Thank you for this. Have been using your stable repository for quite some time now on Debian 10 and now on Debian 11.

However, could you keep at least 1 previous version of the packages? There now is a problem witn 4.3.8 WebUI (see this post) and I would like to go back to 4.3.7 but I can only revert back to 4.2.5 from the official repositories or go wild and use beta 4.4.0 from the unstable repositories you provide.

Kolcha commented 2 years ago

@GvY85 sorry, it looks like build server I use doesn't allow to keep several versions of the same package... it removes any previous version automatically... even file names are different (due to different versions, which are part of file name). I didn't found any options to control this behavior.

mentioned issue is very strange... don't have such issue since official 4.3.8 release... running it on my server since 2021-08-30, but using self-compiled slightly changed (just replaced some colors in WebUI) version of qbittorrent-nox running on Debian Unstable. WebUI works fine when accessed from various devices/browsers, so working WebUI is not result of cached data: Screenshot_2021-09-11_16-56-54 qBittorrent was upgraded from 4.3.7 (again, slightly customized)

GvY85 commented 2 years ago

Thanks for the reply. That is very wierd indeed. Any chance you still have a local (cache) copy of 4.3.7 somewhere or in the trash bin of the server? I also did upgrade from 4.3.7 and since my torrentlist was empty I just started to notice it. Also more people seem to have the same proplem

Kolcha commented 2 years ago

I don't build it locally, even don't have environment suitable for it. build server also doesn't have something like "trash bin", so there is no way to get previous package versions from it... service I use is free, so the absence of any packages archive may be the limitation just to keep much more projects.

Kolcha commented 2 years ago

I found the way to keep few versions of the same package! I did some tricks and got it! but there is one drawback - old packages should be removed manually, but this is not a problem, I even update them manually when release happens. @GvY85 now you can find qBittorrent 4.3.7 alongside with 4.3.8 in "stable" repo: Screenshot_2021-09-11_20-05-44 this will not affect any users which use 4.3.8. this just adds a possibility to revert to previous version. any previous versions can be re-compiled on libtorrent (or any other dependency) change, so binary compatibility is guaranteed. I will keep 2 previous versions.

GvY85 commented 2 years ago

Thank you for this but now something wierd is happening:

I reverted to 4.3.7 (from your Debian 11 repository) but that did not solve it. Then I restored a backup that was using 4.3.8 but from your Debian10 repository (http://download.opensuse.org/repositories/home:/nikoneko:/test/Debian_10 InRelease ) and that worked strangly enough. I then updated APT sources to Debian 11 as they should be (http://download.opensuse.org/repositories/home:/nikoneko:/test/Debian_11 InRelease) and it asked to update qbittorrent-nox for some reason (exact same version but still it asked for it) after an apt update so I updated to your Debian 11 version of 4.3.8 and now the WebUI is broken again. Reverted back to my backup with 4.3.8 from Debian 10 repo and no problems.

Something wrong with the Debian 11 builds?

edit: it did not update anything else like libtorrent libraries when changing to Debian 11 repo. It just wanted to update qbittorrent-nox: qbittorrent-nox/unknown 4.3.8-0+1.1 amd64 [upgradable from: 4.3.8-0+1.1]

GvY85 commented 2 years ago

I wrote a bit more coherend bug report here: https://github.com/qbittorrent/qBittorrent/issues/15420#issuecomment-917982399

GvY85 commented 2 years ago

Hi @Kolcha ,

I noticed the Debian 11 .deb's have been rebuild? Unfortinately the webui now does work but qbittorrent crashes when downloading: https://github.com/qbittorrent/qBittorrent/issues/15563

Kolcha commented 2 years ago

Hi @GvY85 , nothing significant was changed, all sources are the same as they were... rebuild was caused by dependency change, I just dropped custom cmake what was used before, Debian 11 and above has new enough cmake in repos. such rebuilds also trigger automatically on any dependency update. so, this is pretty strange, but I'll try to look into it. also please install package with debug symbols (for example qbittorrent-nox-dbgsym_4.3.8-0+1.1_amd64.deb), this may resolve addresses shown in logs into information useful for developers, or at least you can get such information by yourself using gdb. but I almost sure that the issues you are experiencing are consequences of system upgrade and they will not appear on clean newly installed system... but I'll try (just for information, I'm using Debian unstable on 2 machines: my server and laptop)

GvY85 commented 2 years ago

Hi, thanks for your reply. I tried running it in gdb wih debug symbols and it does not crash. Perhaps something to do with the gdp version using default settings so they are not the same configuration. I am a bit at a loss

GvY85 commented 2 years ago

I have solved it by removing qbittorrent-nox and purging all dependencies and reinstalling them.

It was a environment issue after all. Thanks for the help

Kolcha commented 2 years ago

Raspbian 11 builds were added for both cases (i.e. stable and nightly), packages will appear soon. use the same links to add repos as published in https://github.com/qbittorrent/qBittorrent/issues/12616#issuecomment-875368452

current build status and list of available packages and distros can be viewed here: for stable builds: https://build.opensuse.org/project/show/home:nikoneko:test for nightly builds: https://build.opensuse.org/project/show/home:nikoneko:qbittorrent-nightly

GvY85 commented 2 years ago

The links are still up to date right with 4.4.0. released?