Skip to content

[BUG] Perl module DB_File missing #273

@TheRancid

Description

@TheRancid

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

The DB_File perl module seems to be missing from the official Docker image. The module is needed by the Internal: XMLTV: Italy module to grab EPG data.

When triggering the internal EPG grabbers the following error is returned:

2025-12-09 14:36:15.632 xmltv: /usr/bin/tv_grab_it: grab /usr/bin/tv_grab_it
2025-12-09 14:36:15.633 spawn: Executing "/usr/bin/tv_grab_it"
2025-12-09 14:36:15.936 spawn: using cache tv_grab_it.cache
2025-12-09 14:36:15.941 spawn: Can't locate loadable object for module DB_File in @INC (@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/share/perl5/vendor_perl/XMLTV/Memoize.pm line 73.
2025-12-09 14:36:15.941 spawn: Compilation failed in require at /usr/share/perl5/vendor_perl/XMLTV/Memoize.pm line 73.

After running the following the script runs correctly (*) again:

docker exec tvheadend apk add perl-db_file

(*) correct here means that the Perl module missing error is emitted no more; actually no EPG is grabbed, because the grabber seems to be unmantained and non-working...

Can you add back the module to the official Docker image, or consider to remove the Italy grabber plugin altogether?

Expected Behavior

The script runs correctly, with the following logs:

2025-12-09 14:42:45.417 xmltv: /usr/bin/tv_grab_it: grab /usr/bin/tv_grab_it
2025-12-09 14:42:45.419 spawn: Executing "/usr/bin/tv_grab_it"
2025-12-09 14:42:45.728 spawn: using cache tv_grab_it.cache
2025-12-09 14:42:46.089 spawn: using config filename /config/.xmltv/tv_grab_it.conf
2025-12-09 14:42:46.333 spawn: getting list of channels: VERBOSE: Cannot get mediaset's channel list (http://www.tv.mediaset.it/dati/palinsesto/palinsesto-mondotv.xml). Site \n at /usr/bin/tv_grab_it line 3065.
2025-12-09 14:42:49.733 spawn: ######VERBOSE: Cannot get skylife's channel list (http://guidatv.sky.it/app/guidatv/contenuti/data/grid/grid_cinema_channels.js). Site \n at /usr/bin/tv_grab_it line 1386.
2025-12-09 14:42:54.380 spawn: ############################################
2025-12-09 14:42:54.380 spawn: config file /config/.xmltv/tv_grab_it.conf does not exist, run me with --configure
2025-12-09 14:42:54.396 xmltv: /usr/bin/tv_grab_it: grab took 9 seconds
2025-12-09 14:42:54.396 xmltv: /usr/bin/tv_grab_it: parse took 0 seconds
2025-12-09 14:42:54.396 xmltv: /usr/bin/tv_grab_it:  channels   tot=    0 new=    0 mod=    0
2025-12-09 14:42:54.396 xmltv: /usr/bin/tv_grab_it:  brands     tot=    0 new=    0 mod=    0
2025-12-09 14:42:54.396 xmltv: /usr/bin/tv_grab_it:  seasons    tot=    0 new=    0 mod=    0
2025-12-09 14:42:54.396 xmltv: /usr/bin/tv_grab_it:  episodes   tot=    0 new=    0 mod=    0
2025-12-09 14:42:54.396 xmltv: /usr/bin/tv_grab_it:  broadcasts tot=    0 new=    0 mod=    0

Steps To Reproduce

docker exec tvheadend apk list | grep perl-db_file

The module is not present.

Environment

- OS: Raspbian OS
- How docker service was installed: docker compose

CPU architecture

arm64

Docker creation

services:
  tvheadend:
    image: lscr.io/linuxserver/tvheadend:latest
    container_name: tvheadend
    hostname: tvheadend
    restart: always
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - TZ=$TZ
      - RUN_OPTS=${TVHEADEND_RUN_OPTS:-} #optional
    networks:
      - tuner
    extra_hosts:
      - "${HOST_DOCKER_INTERNAL:-host.docker.internal}:host-gateway"
    ports:
      - "${TVHEADEND_WEBUI_EXTERNAL_PORT:-19981}:${TVHEADEND_WEBUI_LISTENING_PORT:-9981}"
      - "${TVHEADEND_HTSP_EXTERNAL_PORT:-19982}:${TVHEADEND_HTSP_LISTENING_PORT:-9982}"
    volumes:
      - $DOCKER_DIR/$TVHEADEND_SUBDIR/config:/config
      - $DOCKER_DIR/$TVHEADEND_SUBDIR/log:/log
      - $DOCKER_DIR/$TVHEADEND_SUBDIR/recordings:/recordings
    devices:
      - /dev/dri:/dev/dri #optional
      - /dev/dvb:/dev/dvb #optional

Container logs

[migrations] started
[migrations] no migrations found
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1031
User GID:    65540
───────────────────────────────────────
Linuxserver.io version: 67f98d62-ls268
Build-date: 2025-11-29T15:42:43+00:00
───────────────────────────────────────
    
Setting permissions
[custom-init] No custom files found, skipping...
2025-12-09 15:43:30.537 [   INFO] main: Log started
2025-12-09 15:43:30.537 [   INFO] config: Using configuration from '/config'
2025-12-09 15:43:30.537 [   INFO] http: Starting HTTP server 0.0.0.0:9981
2025-12-09 15:43:30.538 [   INFO] htsp: Starting HTSP server 0.0.0.0:9982
2025-12-09 15:43:30.540 [   INFO] config: loaded
2025-12-09 15:43:30.540 [   INFO] config: scanfile (re)initialization with path <none>
2025-12-09 15:43:30.540 [   INFO] transcode: 'video' context type registered
2025-12-09 15:43:30.540 [   INFO] transcode: 'audio' context type registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHH264Decoder' decoder helper registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHTHEORADecoder' decoder helper registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHAACDecoder' decoder helper registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHVORBISDecoder' decoder helper registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHOPUSDecoder' decoder helper registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHMPEG2VIDEOEncoder' encoder helper registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHH264Encoder' encoder helper registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHHEVCEncoder' encoder helper registered
2025-12-09 15:43:30.540 [   INFO] transcode: '&TVHAACEncoder' encoder helper registered
2025-12-09 15:43:30.540 [   INFO] codec: 'mpeg2video' encoder registered
2025-12-09 15:43:30.540 [   INFO] codec: 'mp2' encoder registered
2025-12-09 15:43:30.540 [   INFO] codec: 'aac' encoder registered
2025-12-09 15:43:30.540 [   INFO] codec: 'vorbis' encoder registered
2025-12-09 15:43:30.540 [   INFO] codec: 'flac' encoder registered
2025-12-09 15:43:30.540 [   INFO] codec: 'libx264' encoder registered
2025-12-09 15:43:30.540 [   INFO] codec: 'libx265' encoder registered
2025-12-09 15:43:30.540 [   INFO] codec: 'libvpx' encoder registered
2025-12-09 15:43:30.540 [   INFO] codec: 'libvpx-vp9' encoder registered
2025-12-09 15:43:30.541 [   INFO] codec: 'libtheora' encoder registered
2025-12-09 15:43:30.541 [   INFO] codec: 'libvorbis' encoder registered
2025-12-09 15:43:30.541 [   INFO] codec: 'libopus' encoder registered
2025-12-09 15:43:30.541 [   INFO] codec: 'h264_vaapi' encoder registered
2025-12-09 15:43:30.541 [   INFO] codec: 'hevc_vaapi' encoder registered
2025-12-09 15:43:30.541 [   INFO] codec: 'vp8_vaapi' encoder registered
2025-12-09 15:43:30.541 [   INFO] codec: 'vp9_vaapi' encoder registered
2025-12-09 15:43:30.541 [   INFO] codec: 'webtv-h264' codec profile created
2025-12-09 15:43:30.541 [   INFO] codec: 'webtv-vorbis' codec profile created
2025-12-09 15:43:30.541 [   INFO] codec: 'webtv-aac' codec profile created
2025-12-09 15:43:30.541 [   INFO] codec: 'webtv-vp8' codec profile created
2025-12-09 15:43:30.548 [   INFO] descrambler: adding CAID 2600/FFFF as ConstCW interval 10000ms pc 20 ep default (BISS)
2025-12-09 15:43:30.548 [   INFO] descrambler: adding CAID 0E00/FFFF as MultiPID interval 1000ms pc 2 ep default (PowerVu)
2025-12-09 15:43:30.566 [   INFO] iptv: Using 2 input thread(s)
2025-12-09 15:43:30.576 [   INFO] linuxdvb: adapter added /dev/dvb/adapter1
2025-12-09 15:43:30.595 [   INFO] linuxdvb: adapter added /dev/dvb/adapter0
2025-12-09 15:43:30.653 [   INFO] dvr: Creating new configuration ''
2025-12-09 15:43:30.654 [   INFO] epggrab: module uk_freesat created
2025-12-09 15:43:30.654 [   INFO] epggrab: module uk_freesat_eit created
2025-12-09 15:43:30.654 [   INFO] epggrab: module uk_freeview created
2025-12-09 15:43:30.654 [   INFO] epggrab: module nz_freeview2 created
2025-12-09 15:43:30.654 [   INFO] epggrab: module nz_freeview1 created
2025-12-09 15:43:30.654 [   INFO] epggrab: module viasat_baltic created
2025-12-09 15:43:30.654 [   INFO] epggrab: module Bulsatcom_39E created
2025-12-09 15:43:30.654 [   INFO] epggrab: module uk_cable_virgin created
2025-12-09 15:43:30.654 [   INFO] epggrab: module eit created
2025-12-09 15:43:30.654 [   INFO] epggrab: module psip created
2025-12-09 15:43:30.657 [   INFO] epggrab: module opentv-skyuk created
2025-12-09 15:43:30.657 [   INFO] epggrab: module opentv-skynz created
2025-12-09 15:43:30.657 [   INFO] epggrab: module opentv-skyit created
2025-12-09 15:43:30.658 [   INFO] epggrab: module opentv-ausat created
2025-12-09 15:43:30.658 [   INFO] epggrab: module xmltv created
2025-12-09 15:43:30.660 [   INFO] spawn: Executing "/usr/bin/tv_find_grabbers"
2025-12-09 15:43:30.712 [   INFO] scanfile: DVB-S - loaded 1 regions with 116 networks
2025-12-09 15:43:30.712 [   INFO] scanfile: DVB-T - loaded 46 regions with 1134 networks
2025-12-09 15:43:30.712 [   INFO] scanfile: DVB-C - loaded 20 regions with 82 networks
2025-12-09 15:43:30.712 [   INFO] scanfile: ATSC-T - loaded 2 regions with 13 networks
2025-12-09 15:43:30.712 [   INFO] scanfile: ATSC-C - loaded 1 regions with 5 networks
2025-12-09 15:43:30.712 [   INFO] scanfile: ISDB-T - loaded 2 regions with 1297 networks
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_file created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_url created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_wg created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_fr created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_huro created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_it created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_ch_search created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_zz_sdjson_sqlite created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_zz_sdjson created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_na_tvmedia created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_combiner created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_fi_sv created
2025-12-09 15:43:31.247 [   INFO] epggrab: module /usr/bin/tv_grab_fi created
2025-12-09 15:43:31.254 [   INFO] tbl-eit: scraper eit attempt to load config "it"
2025-12-09 15:43:31.254 [   INFO] tbl-eit: scraper eit loaded config "it"
2025-12-09 15:43:31.261 [   INFO] epgdb: gzip format detected, inflating (ratio 24.0% deflated size 350281)
2025-12-09 15:43:31.266 [   INFO] epgdb: parsing 1459677 bytes
2025-12-09 15:43:31.302 [   INFO] epgdb: loaded v3
2025-12-09 15:43:31.302 [   INFO] epgdb:   config     1
2025-12-09 15:43:31.302 [   INFO] epgdb:   broadcasts 4194

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions