diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9310b992..a434580e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,12 +39,22 @@ jobs: name: Ubuntu 23.10 (Mantic Minotaur) - container: ubuntu:24.04 name: Ubuntu 24.04 LTS (Noble Numbat) + - container: ubuntu:latest + name: Ubuntu Latest (LTS) + - container: ubuntu:rolling + name: Ubuntu Interim (rolling) + - container: ubuntu:devel + name: Ubuntu Testing (development) - container: debian:buster name: Debian 10 (Buster) - container: debian:bullseye name: Debian 11 (Bullseye) - container: debian:bookworm name: Debian 12 (Bookworm) + - container: debian:stable + name: Debian Stable + - container: debian:testing + name: Debian Testing - container: fedora:34 name: Fedora 34 - container: fedora:35 @@ -57,14 +67,24 @@ jobs: name: Fedora 38 - container: fedora:39 name: Fedora 39 + - container: fedora:latest + name: Fedora Latest + - container: fedora:rawhide + name: Fedora Testing (aka Rawhide) - container: quay.io/centos/centos:centos7 name: CentOS 7 - container: quay.io/centos/centos:stream8 name: CentOS Stream 8 - container: quay.io/centos/centos:stream9 name: CentOS Stream 9 + - container: quay.io/centos/centos:stream10 + name: CentOS Stream 10 - container: alpine:3.17 name: Alpine Linux 3.17 + - container: alpine:latest + name: Alpine Linux Latest + - container: alpine:edge + name: Alpine Linux Testing fail-fast: false container: @@ -76,7 +96,18 @@ jobs: . /etc/os-release && echo "OS_RELEASE_ID=$ID" >> $GITHUB_ENV . /etc/os-release && echo "OS_RELEASE_VERSION=$VERSION_ID" >> $GITHUB_ENV . /etc/os-release && echo "OS_RELEASE_VERSION_MAJOR=${VERSION_ID%%.*}" >> $GITHUB_ENV - + + - name: Use archived repositories on EL 7 + run: | + # CentOS 7 reached EOL 30 June 2024. + # The repositories configured in the container are not working any more. + # Use vault.centos.org package archive instead. + find /etc/yum.repos.d/ -type f -exec sed -i 's/mirrorlist=/#mirrorlist=/g' {} + + find /etc/yum.repos.d/ -type f -exec sed -i 's/#baseurl=/baseurl=/g' {} + + find /etc/yum.repos.d/ -type f -exec sed -i 's/mirror.centos.org/vault.centos.org/g' {} + + if: | + env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION == '7' + - name: Use archived repositories on EL 8 run: | # CentOS 8 reached EOL 31 December 2021. @@ -88,6 +119,17 @@ jobs: if: | env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION == '8' + - name: Use archived repositories on older Ubuntu releases + run: | + # Ubuntu removes the release archives from the main location + # when the release is no longer supported. Redirect to the + # old-releases distribution location in those cases. + sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list + if: | + env.OS_RELEASE_ID == 'ubuntu' && + ( env.OS_RELEASE_VERSION == '23.04' || + env.OS_RELEASE_VERSION == '23.10' ) + - name: Adjust package manager for EL 7 run: echo "RPM_PKG_MGR=yum" >> $GITHUB_ENV if: | @@ -103,13 +145,13 @@ jobs: if: | env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION == '8' - - name: Add CRB repo for EL 9 + - name: Add CRB repo for EL 9+ run: ${{env.RPM_PKG_MGR}} config-manager --set-enabled crb if: | - env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION == '9' + env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION >= 9 - name: Add EPEL repo for EL linux - run: ${{env.RPM_PKG_MGR}} -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-${{env.OS_RELEASE_VERSION_MAJOR}}.noarch.rpm + run: ${{env.RPM_PKG_MGR}} -y install epel-release if: | env.OS_RELEASE_ID == 'centos' @@ -307,8 +349,8 @@ jobs: if: | env.OS_RELEASE_ID == 'alpine' - - name: Checkout using legacy node version for legacy distros - uses: actions/checkout@v3 + - name: Checkout using legacy v1 checkout (does not use node) for legacy distros + uses: actions/checkout@v1 if: | ( ( ( env.OS_RELEASE_ID == 'centos' && env.OS_RELEASE_VERSION_MAJOR < 8 ) || ( env.OS_RELEASE_ID == 'ubuntu' && env.OS_RELEASE_VERSION_MAJOR < 20 ) ) ) @@ -362,6 +404,22 @@ jobs: - name: Install dependencies run: brew install perl cpanminus openssl sqlite tcl-tk + - name: Create compiler ccflags C std override for older sources + run: | + echo "package CCflagsConfig;" >> /tmp/CCflagsConfig.pm + echo "use warnings;" >> /tmp/CCflagsConfig.pm + echo "use Config;" >> /tmp/CCflagsConfig.pm + echo "my \$ccflags = \$Config{ccflags};" >> /tmp/CCflagsConfig.pm + echo "\$ccflags .= ' -std=c89';" >> /tmp/CCflagsConfig.pm + echo "my \$obj = tied %Config;" >> /tmp/CCflagsConfig.pm + echo "\$obj->{ccflags} = \$ccflags;" >> /tmp/CCflagsConfig.pm + echo "1;" >> /tmp/CCflagsConfig.pm + + - name: Install perl requirements that require older C standard + run: > + PERL5LIB="/tmp" PERL5OPT="-MCCflagsConfig" perl /opt/homebrew/bin/cpanm --notest --no-interactive + Tk + - name: Install perl requirements run: > perl /opt/homebrew/bin/cpanm --notest --no-interactive @@ -388,7 +446,6 @@ jobs: Memoize SOAP::Lite Term::ProgressBar - Tk Tk::TableMatrix Unicode::String Unicode::UTF8simple diff --git a/grab/zz_sdjson/tv_grab_zz_sdjson b/grab/zz_sdjson/tv_grab_zz_sdjson index 3a12fa3a..a22c37c1 100644 --- a/grab/zz_sdjson/tv_grab_zz_sdjson +++ b/grab/zz_sdjson/tv_grab_zz_sdjson @@ -1266,6 +1266,7 @@ sub get_program_episode { my @result; metadata: for my $metadata (@{$details->{'metadata'}}) { + keys %{$metadata}; while(my ($key, $value) = each %{$metadata}) { # prefer Gracenote metadata but use first available as fallback my $is_gracenote = $key eq 'Gracenote';