Bug 243967

Summary: [NEW PORT] net-p2p/bazarr: Automatic subtitle downloader for Sonarr and Radarr
Product: Ports & Packages Reporter: Michiel van Baak <michiel>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Open ---    
Severity: Affects Only Me CC: andrej, daniel.engberg.lists, koobs, michiel, python
Priority: --- Keywords: feature, needs-patch, needs-qa
Version: LatestFlags: michiel: maintainer-feedback?
Hardware: Any   
OS: Any   
Description Flags
michiel: maintainer-approval+
michiel: maintainer-approval+
michiel: maintainer-approval+
bazarr- michiel: maintainer-approval?

Description Michiel van Baak 2020-02-07 22:27:02 UTC
Created attachment 211458 [details]

Bazarr is a companion application to Sonarr and Radarr.
It manages and downloads subtitles based on your requirements.
You define your preferences by TV show or movie
and Bazarr takes care of everything for you.

* portlint ok

Tested and running correctly on FreeBSD 12.1-RELEASE amd64
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2020-02-08 13:02:14 UTC
Review items:

- Upstream supports [1][2] Python 3.6+ (testing up to 3.8). USES=python:<version-spec> should be 3.6+ or 3.6-3.8

- lxml RUN_DEPENDS version specifier should match the version specified in upstream requirements.txt (>=4.3.0)

- All importable .py files need to be optimized/processed (pyc/pyo files). Ports using distutils (setuptools) and autoplist handle this automatically. This packages doesnt use setuptools (ask them to package and ship this via PyPI please).

Not doing so means that the pyc/pyo files will be created at run time, thereby leaving pyc/pyo orphaned files leftover after pkg removal (since they're not referenced in the pkg-plist)

Use a post-install: Python "compileall" script (provided examples/references via IRC) to process all .py files and include them in the pkg-plist.

Note: the net-p2p/couchpotato port, which this port was based on, is also affected by this (only packaging .py files)

[1] "bazarr require Python 3.6 or greater and can be run from source."
[2] "Install Python 3.6 or greater (latest is good)"
Comment 2 Michiel van Baak 2020-02-08 14:10:59 UTC
Comment on attachment 211458 [details]

Upstream needs some work first.
Comment 3 Michiel van Baak 2020-03-01 15:16:29 UTC
Created attachment 212077 [details]

Added new port bazarr.

portlint: OK
Tested and works on 12.1-RELEASE amd64

Setting up poudriere now to run testport on it.
Comment 4 Michiel van Baak 2020-03-03 13:39:21 UTC
Created attachment 212117 [details]

Removed unusable binaries and header files from source, cleaning up the installed files list a bit.

testport: 12.1-RELEASE amd64: OK
portlint: OK

Running 'in production' on my home setup (12.1-RELEASE-p2)
Comment 5 Andrej Ebert 2020-03-07 13:10:19 UTC
(In reply to Michiel van Baak from comment #4)
Works on my home server too, without any problems. Was looking into making a port myself, when I found this PR. Thanks!
Comment 6 Michiel van Baak 2020-06-08 11:22:01 UTC
Created attachment 215356 [details]
Comment 7 Michiel van Baak 2020-08-26 10:37:47 UTC
Created attachment 217536 [details]
Comment 8 Michiel van Baak 2020-10-25 11:21:25 UTC
Created attachment 219056 [details]
Comment 9 daniel.engberg.lists 2020-10-25 13:44:01 UTC
Is it possible to unbundle libraries?
Comment 10 Michiel van Baak 2020-10-26 11:47:01 UTC
(In reply to daniel.engberg.lists from comment #9)

Yeah, that's probably better. I'll give it a shot later.
Comment 11 Michiel van Baak 2020-11-12 11:17:54 UTC
Created attachment 219594 [details]

Updated to latest bazarr release that fixes an issue with IMDB now prepending a 0 on id's
Comment 12 Michiel van Baak 2020-11-12 13:47:05 UTC
Couple of things on the unbundling:

I talked this over with the owner of the project. They are not going to unbundle anytime soon.
The main reason being (copied from chat on their public discord):

morpheus65535: TBH, I totally agree that this would be the best to do it in a perfect world :wink:
morpheus65535: Unfortunately, this is not the way we've done thing and I won't jeopardize the stability of Bazarr to make it that way
morpheus65535: There's not enough man power to maintain and support Bazarr to take that risk
morpheus65535: It's up to you bu keep in mind that it will stay an unsupported pkg.

So yeah, I can give it a shot, but the patches will be less than simple.
Some bundled libraries have local patches, which makes it a bit harder to unbundle.

I'll try to get some basic setup.py and unbundling work done in a fork of the project, but I dont know when I'll have enough time to focus on that.

Going from here, I dont know if this is ok and the current port can be added even with bundled libs, or if this really is a showstopper.
Up to the committers to decide.