linuxserver / docker-tvheadend

GNU General Public License v3.0
158 stars 87 forks source link

[BUG] PERL Module missing - DateTime::Format::Strptime module #228

Closed prolife86 closed 1 year ago

prolife86 commented 1 year ago

Is there an existing issue for this?

Current Behavior

Perl is missing modules for TVmerge:

When running: "tv_merge -i /data/WG/guide.xml -m /data/grab/guide.xml -o /config/data/guide_merged.xml"

I get an error:

Can't locate DateTime/Format/Strptime.pm in @INC (you may need to install the DateTime::Format::Strptime module) (@INC contains: /usr/local/lib/perl5/site_perl /usr/local/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at /usr/bin/tv_merge line 336. BEGIN failed--compilation aborted at /usr/bin/tv_merge line 336.

Expected Behavior

Used to be working fine, cannot pinpoint when this exactly stared occurring.

Steps To Reproduce

Run tv_merge with two XML's, it will fail, as the "DateTime::Format::Strptime module" is missing from the docker container.

Environment

- OS: Unraid 6.11.5
- How docker service was installed: via template on Unraid.

CPU architecture

x86-64

Docker creation

docker run
  -d
  --name='TVHeadEnd'
  --net='eth1'
  --ip='192.168.1.120'
  --privileged=true
  -e TZ="Europe/Berlin"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="Basilisk"
  -e HOST_CONTAINERNAME="TVHeadEnd"
  -e 'TCP_PORT_9981'='9981'
  -e 'TCP_PORT_9982'='9982'
  -e 'RUN_OPTS'=''
  -e 'PUID'='99'
  -e 'PGID'='100'
  -e 'UMASK'='022'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:9981]'
  -l net.unraid.docker.icon='https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/tvheadend-logo.png'
  -v '/mnt/user/Recordings/':'/recordings':'rw'
  -v '/mnt/user/Downloads/Kodi/WG/':'/data':'rw,slave'
  -v '/mnt/user/appdata/tvheadend':'/config':'rw'
  --device='/dev/dri'
  --device='/dev/dvb' 'lscr.io/linuxserver/tvheadend'
1b7802ecf502478452cb1e1891cbb262a0861e9d6b81f7f0477f8c0756286206

Container logs

Setting permissions
[custom-init] No custom files found, skipping...
2023-05-20 22:36:55.652 [   INFO] main: Log started
2023-05-20 22:36:55.653 [   INFO] http: Starting HTTP server 0.0.0.0:9981
2023-05-20 22:36:55.653 [   INFO] htsp: Starting HTSP server 0.0.0.0:9982
2023-05-20 22:36:55.698 [   INFO] config: loaded
2023-05-20 22:36:55.698 [   INFO] transcode: 'video' context type registered
2023-05-20 22:36:55.698 [   INFO] transcode: 'audio' context type registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHH264Decoder' decoder helper registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHTHEORADecoder' decoder helper registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHAACDecoder' decoder helper registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHVORBISDecoder' decoder helper registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHOPUSDecoder' decoder helper registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHMPEG2VIDEOEncoder' encoder helper registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHH264Encoder' encoder helper registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHHEVCEncoder' encoder helper registered
2023-05-20 22:36:55.698 [   INFO] transcode: '&TVHAACEncoder' encoder helper registered
2023-05-20 22:36:55.699 [   INFO] config: scanfile (re)initialization with path <none>
2023-05-20 22:36:55.747 [   INFO] codec: 'mpeg2video' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'mp2' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'aac' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'vorbis' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'flac' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'libx264' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'libx265' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'libvpx' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'libvpx-vp9' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'libtheora' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'libvorbis' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'libopus' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'h264_vaapi' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'hevc_vaapi' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'vp8_vaapi' encoder registered
2023-05-20 22:36:55.747 [   INFO] codec: 'vp9_vaapi' encoder registered
2023-05-20 22:36:55.749 [   INFO] codec: 'webtv-vp8' codec profile created
2023-05-20 22:36:55.749 [   INFO] codec: 'webtv-vorbis' codec profile created
2023-05-20 22:36:55.749 [   INFO] codec: 'webtv-h264' codec profile created
2023-05-20 22:36:55.749 [   INFO] codec: 'webtv-aac' codec profile created
2023-05-20 22:36:55.757 [   INFO] capmt: DVBAPI active
2023-05-20 22:36:55.757 [   INFO] cccam: 192.168.1.119:7777: Attemping to connect to server
2023-05-20 22:36:55.757 [   INFO] descrambler: adding CAID 2600/FFFF as ConstCW interval 10000ms pc 20 ep default (BISS)
2023-05-20 22:36:55.757 [   INFO] descrambler: adding CAID 0E00/FFFF as MultiPID interval 1000ms pc 2 ep default (PowerVu)
2023-05-20 22:36:55.757 [   INFO] capmt: DVBAPI: mode 5 connected to 192.168.1.119:9000 (single)
2023-05-20 22:36:55.758 [   INFO] capmt: DVBAPI: Connected to server 'OSCam v1.20_svn, build r11718 (x86_64-alpine-linux-musl); ' (protocol version 3)
2023-05-20 22:36:55.765 [   INFO] cccam: 192.168.1.119:7777: login succeeded
2023-05-20 22:36:55.771 [   INFO] cccam: 192.168.1.119:7777: CCcam server authentication completed
2023-05-20 22:36:55.771 [   INFO] cccam: 192.168.1.119:7777: CCcam server version 2.3.0 nodeid=cdbfc093109b15be
2023-05-20 22:36:55.771 [   INFO] cccam: 192.168.1.119:7777: oscam server detected
2023-05-20 22:36:55.771 [   INFO] cccam: 192.168.1.119:7777: server supports extended capabilities EXT SID SLP
2023-05-20 22:36:55.771 [   INFO] cccam: 192.168.1.119:7777: Connected as user tvheadend to a Irdeto-card-00000064 [CAID:0612 : 00.00.00.00.00.00.00.00] with 1 provider
2023-05-20 22:37:06.906 [   INFO] iptv: Using 4 input thread(s)
2023-05-20 22:37:07.309 [   INFO] dvr: Creating new configuration ''
[ls.io-init] done.2023-05-20 22:37:07.313 [   INFO] epggrab: module uk_freesat created
2023-05-20 22:37:07.313 [   INFO] epggrab: module uk_freesat_eit created

2023-05-20 22:37:07.313 [   INFO] epggrab: module uk_freeview created
2023-05-20 22:37:07.313 [   INFO] epggrab: module nz_freeview2 created
2023-05-20 22:37:07.313 [   INFO] epggrab: module nz_freeview1 created
2023-05-20 22:37:07.313 [   INFO] epggrab: module viasat_baltic created
2023-05-20 22:37:07.313 [   INFO] epggrab: module Bulsatcom_39E created
2023-05-20 22:37:07.313 [   INFO] epggrab: module uk_cable_virgin created
2023-05-20 22:37:07.313 [   INFO] epggrab: module eit created
2023-05-20 22:37:07.313 [   INFO] epggrab: module psip created
2023-05-20 22:37:07.317 [   INFO] epggrab: module opentv-ausat created
2023-05-20 22:37:07.317 [   INFO] epggrab: module opentv-skyit created
2023-05-20 22:37:07.317 [   INFO] epggrab: module opentv-skynz created
2023-05-20 22:37:07.317 [   INFO] epggrab: module opentv-skyuk created
2023-05-20 22:37:07.317 [   INFO] epggrab: module xmltv created
2023-05-20 22:37:07.320 [   INFO] spawn: Executing "/usr/bin/tv_find_grabbers"
2023-05-20 22:37:07.572 [   INFO] epggrab: module /usr/bin/tv_grab_combiner created
2023-05-20 22:37:07.572 [   INFO] epggrab: module /usr/bin/tv_grab_it created
2023-05-20 22:37:07.572 [   INFO] epggrab: module /usr/bin/tv_grab_na_tvmedia created
2023-05-20 22:37:07.572 [   INFO] epggrab: module /usr/bin/tv_grab_file created
2023-05-20 22:37:07.572 [   INFO] epggrab: module /usr/bin/tv_grab_url created
2023-05-20 22:37:07.572 [   INFO] epggrab: module /usr/bin/tv_grab_wg created
2023-05-20 22:37:07.944 [   INFO] epgdb: gzip format detected, inflating (ratio 11.4% deflated size 17742)
2023-05-20 22:37:07.944 [   INFO] epgdb: parsing 155881 bytes
2023-05-20 22:37:07.946 [   INFO] epgdb: loaded v3
2023-05-20 22:37:07.946 [   INFO] epgdb:   config     1
2023-05-20 22:37:07.946 [   INFO] epgdb:   broadcasts 571
2023-05-20 22:37:08.176 [   INFO] dvr: Purging obsolete autorec entries for current schedule
2023-05-20 22:37:08.177 [ NOTICE] START: HTS Tvheadend version 4.3-2120~g18effa8ad started, running as PID:177 UID:99 GID:100, CWD:/run/s6-rc:s6-rc-init:HIIdNd/servicedirs/svc-tvheadend CNF:/config
2023-05-20 22:37:08.454 [   INFO] scanfile: DVB-S - loaded 1 regions with 116 networks
2023-05-20 22:37:08.454 [   INFO] scanfile: DVB-T - loaded 46 regions with 1134 networks
2023-05-20 22:37:08.454 [   INFO] scanfile: DVB-C - loaded 20 regions with 82 networks
2023-05-20 22:37:08.454 [   INFO] scanfile: ATSC-T - loaded 2 regions with 13 networks
2023-05-20 22:37:08.454 [   INFO] scanfile: ATSC-C - loaded 1 regions with 5 networks
2023-05-20 22:37:08.454 [   INFO] scanfile: ISDB-T - loaded 2 regions with 1297 networks
2023-05-20 22:37:12.952 [   INFO] iptv: m3u parse: 0 new mux(es) in network 'HomeBee - 4K OTT' (total 11335)
github-actions[bot] commented 1 year ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

thespad commented 1 year ago

We made some changes to how we install XMLTV and are probably missing some packages now.

Can you do docker exec tvheadend apk add perl-datetime-format-strptime and test again? If there's more than one package missing it would be helpful to find out before we try and push a new build.

Everything in red here is what was removed (due to different build requirements), so if you continue to get errors after installing perl-datetime-format-strptime see if any of the modules are present there.

Unfortunately, we've only got a couple of users of the image on the team so, we can't catch every use case in testing.

prolife86 commented 1 year ago

Thank you for the very fast response!

Ran: "docker exec TVHeadEnd apk add perl-datetime-format-strptime"

Result: fetch http://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.18/community/x86_64/APKINDEX.tar.gz (1/40) Installing perl-module-runtime (0.016-r5) (2/40) Installing perl-module-implementation (0.09-r4) (3/40) Installing perl-params-validate (1.31-r1) (4/40) Installing perl-sub-quote (2.006008-r0) (5/40) Installing perl-devel-stacktrace (2.04-r4) (6/40) Installing perl-role-tiny (2.002004-r1) (7/40) Installing perl-mro-compat (0.15-r1) (8/40) Installing perl-test-fatal (0.017-r0) (9/40) Installing perl-eval-closure (0.14-r3) (10/40) Installing perl-specio (0.48-r0) (11/40) Installing perl-dist-checkconflicts (0.11-r3) (12/40) Installing perl-class-inspector (1.36-r2) (13/40) Installing perl-file-sharedir (1.118-r0) (14/40) Installing perl-sub-identify (0.14-r9) (15/40) Installing perl-sub-exporter-progressive (0.001013-r3) (16/40) Installing perl-b-hooks-endofscope (0.26-r1) (17/40) Installing perl-package-stash (0.40-r0) (18/40) Installing perl-namespace-clean (0.27-r3) (19/40) Installing perl-namespace-autoclean (0.29-r2) (20/40) Installing perl-importer (0.026-r1) (21/40) Installing perl-term-table (0.016-r1) (22/40) Installing perl-scope-guard (0.21-r3) (23/40) Installing perl-sub-info (0.002-r3) (24/40) Installing perl-module-pluggable (5.2-r3) (25/40) Installing perl-test2-suite (0.000155-r0) (26/40) Installing perl-test-simple (1.302195-r0) (27/40) Installing perl-test-without-module (0.21-r0) (28/40) Installing perl-class-data-inheritable (0.09-r0) (29/40) Installing perl-exception-class (1.45-r0) (30/40) Installing perl-ipc-run3 (0.048-r3) (31/40) Installing perl-test2-plugin-nowarnings (0.09-r1) (32/40) Installing perl-params-validationcompiler (0.31-r0) (33/40) Installing perl-datetime-locale (1.38-r1) (34/40) Installing perl-class-singleton (1.6-r0) (35/40) Installing perl-datetime-timezone (2.60-r0) (36/40) Installing perl-datetime (1.59-r1) (37/40) Installing perl-sub-install (0.929-r1) (38/40) Installing perl-params-util (1.102-r3) (39/40) Installing perl-package-deprecationmanager (0.18-r0) (40/40) Installing perl-datetime-format-strptime (1.79-r0) Executing busybox-1.36.0-r9.trigger OK: 376 MiB in 262 packages

After that: "docker exec TVHeadEnd tv_merge -i /data/WG/guide.xml -m /data/grab/guide.xml -o /config/data/guide_merged.xml"

Result: Writing : 782 channels 77660 programmes

Looks like it is working again! :) Thank you!

prolife86 commented 1 year ago

Unfortunately, we've only got a couple of users of the image on the team so, we can't catch every use case in testing.

Completely understandable, very happy with the wotk you guys do!

thespad commented 1 year ago

OK cool. For the moment you should be good (if you update you'll have to reinstall the package), but I'll push a PR to add it to the image. If you find anything else missing, please let me know.

prolife86 commented 1 year ago

Thank you very much, no worries, I'll reach out if I find other things.

Gronda74 commented 1 year ago

Hi, I think I've found a variant of this same issue. Until this most recent change there was an internal XMLTV grabber for Schedules Direct JSON API. In these latest builds it has vanished. Can it be reinstated please?

Thanks, Guy

thespad commented 1 year ago

Please open a new issue and provide full details of the problem you're having so we can look into it.