Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when using with branch #447

Open
soumyaDghosh opened this issue Dec 3, 2023 · 7 comments
Open

Error when using with branch #447

soumyaDghosh opened this issue Dec 3, 2023 · 7 comments

Comments

@soumyaDghosh
Copy link

Part: ffmpeg (https://github.com/FFmpeg/FFmpeg.git)
  Current branch: release/6.1
  Current version: release/6.1
  Branch updated
Traceback (most recent call last):
  File "/usr/local/bin/updatesnap.py", line 1084, in <module>
    main()
  File "/usr/local/bin/updatesnap.py", line 1070, in main
    data, _ = process_folder(argument_list.folder, argument_list)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/bin/updatesnap.py", line 994, in process_folder
    return snap.process_parts()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/bin/updatesnap.py", line 623, in process_parts
    parts.append(self.process_part(part))
                 ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/bin/updatesnap.py", line 773, in process_part
    self._print_last_branches(part, branches)
  File "/usr/local/bin/updatesnap.py", line 790, in _print_last_branches
    branches.sort(reverse=True, key=lambda x: x.get('date'))
TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'
@sergio-costas
Copy link
Collaborator

I'll check it today. Thanks!

@sergio-costas
Copy link
Collaborator

(BTW: please, always add the repo with the snapcraft.yaml)

@sergio-costas
Copy link
Collaborator

Mmmm... I tried with the current snap at https://github.com/snapcrafters/ffmpeg and it works fine... Are you using the last version of updatesnap? Are you using it against a modified snapcraft.yaml file?

@soumyaDghosh
Copy link
Author

Yes, I'm using the latest version of updatesnap.

@sergio-costas
Copy link
Collaborator

Can you send me the command line that you are using to launch it? Can you also send me the snapcraft.yaml file if you are using a local one?

@soumyaDghosh
Copy link
Author

Extremely sorry for the delay.

updatesnap.py --github-user soumyaDghosh --github-token <my_github_token> ffmpeg-2204-sdk ffmpeg
/usr/local/bin/updatesnap.py:14: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources
Opening file ffmpeg-2204-sdk/snapcraft.yaml
Part: ffmpeg (https://github.com/FFmpeg/FFmpeg.git)
  Current tag: release/6.1
  Error: can't find the current tag in the tag list.
  Current branch: release/6.1
  Current version: release/6.1
  Branch updated
Traceback (most recent call last):
  File "/usr/local/bin/updatesnap.py", line 1084, in <module>
    main()
  File "/usr/local/bin/updatesnap.py", line 1070, in main
    data, _ = process_folder(argument_list.folder, argument_list)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/bin/updatesnap.py", line 992, in process_folder
    retdata.append(snap.process_part(part))
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/bin/updatesnap.py", line 773, in process_part
    self._print_last_branches(part, branches)
  File "/usr/local/bin/updatesnap.py", line 790, in _print_last_branches
    branches.sort(reverse=True, key=lambda x: x.get('date'))
TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'

The yaml

name: ffmpeg-2204-sdk
#adopt-info: ffmpeg-2204-sdk
#summary: A complete solution to record, convert and stream audio and video.
#description: |
# FFmpeg is the leading multimedia framework, able to decode, encode,
# transcode, mux, demux, stream, filter and play pretty much anything that
# humans and machines have created. It supports the most obscure ancient formats
# up to the cutting edge. No matter if they were designed by some standards
# committee, the community or a corporation.
summary: SDK for ffmpeg-2204
description: SDK to build ffmpeg-2204 content snap
version: git
base: core22
grade: stable
confinement: strict
compression: lzo
lint:
  ignore:
    - classic
    - library:
        - usr/lib/*
        - usr/bin/*
parts:
  nv-codec-headers:
    plugin: make
    source: https://github.com/FFmpeg/nv-codec-headers.git
    source-tag: 'n12.1.14.0'
    source-depth: 1
    make-parameters:
      - PREFIX=/usr
      - LIBDIR=lib/$CRAFT_ARCH_TRIPLET
    build-packages:
      - pkg-config
  srt:
    plugin: cmake
    source: https://github.com/Haivision/srt.git
    source-tag: 'v1.5.3'
    source-depth: 1
    cmake-parameters:
      - -DCMAKE_INSTALL_PREFIX=/usr
      - -DCMAKE_BUILD_TYPE=Release
      - -DCMAKE_C_FLAGS_RELEASE=-s
      - -DCMAKE_CXX_FLAGS_RELEASE=-s
      - -DENABLE_LOGGING=OFF
      - -DENABLE_STATIC=OFF
    build-packages:
      - libssl-dev
  avisynth-plus:
    plugin: cmake
    source: https://github.com/AviSynth/AviSynthPlus.git
    source-tag: 'v3.7.3'
    source-depth: 1
    cmake-parameters:
      - -DCMAKE_INSTALL_PREFIX=/usr
      - -DCMAKE_BUILD_TYPE=Release
      - -DCMAKE_C_FLAGS_RELEASE=-s
      - -DCMAKE_CXX_FLAGS_RELEASE=-s
  x264:
    plugin: autotools
    source: https://code.videolan.org/videolan/x264.git
    source-branch: 'stable'
    source-depth: 1
    autotools-configure-parameters:
      - --prefix=/usr
      - --libdir=/usr/lib/${CRAFT_ARCH_TRIPLET}
      - --disable-cli
      - --enable-shared
      - --enable-strip
    build-packages:
      - libva-dev
      - nasm
  dav1d:
    plugin: meson
    source: https://code.videolan.org/videolan/dav1d.git
    source-tag: '1.3.0'
    source-depth: 1
    meson-parameters:
      - --prefix=/usr
      - --buildtype=release
      - --strip
      - -Denable_tools=false
      - -Denable_tests=false
    build-packages:
      - libxxhash-dev
      - meson
      - ninja-build
  zimg:
    plugin: autotools
    source: https://github.com/sekrit-twc/zimg.git
    source-tag: 'release-3.0.5'
    source-depth: 1
    autotools-configure-parameters:
      - --prefix=/usr
      - --libdir=/usr/lib/${CRAFT_ARCH_TRIPLET}
    prime:
      - -usr/share
  ffmpeg:
    after:
      - avisynth-plus
      - dav1d
      - nv-codec-headers
      - srt
      - x264
      - zimg
    plugin: autotools
    # source: https://git.ffmpeg.org/ffmpeg.git
    source: https://github.com/FFmpeg/FFmpeg.git
    source-branch: 'release/6.1'
# ext:updatesnap
#   version-format:
#     format: 'release/%M.%m'
#     ignore-version: 'release/6.2-dev'
    source-depth: 1
    build-packages:
      - libaom-dev
      - flite1-dev
      - libass-dev
      - libbs2b-dev
      - libbluray-dev
      - libbz2-dev
      - libcaca-dev
      - libcdio-paranoia-dev
      - libcodec2-dev
      - libdc1394-dev
      - libdrm-dev
      - libfribidi-dev
      - libgme-dev
      - libgnutls28-dev
      - libgsm1-dev
      - liblzma-dev
      - libmp3lame-dev
      - libomxil-bellagio-dev
      - libopenal-dev
      - libopencore-amrnb-dev
      - libopencore-amrwb-dev
      - libopenjp2-7-dev
      - libopenmpt-dev
      - libopus-dev
      - libpulse-dev
      - librsvg2-dev
      - librubberband-dev
      - libsctp-dev
      - libsdl2-dev
      - libshine-dev
      - libsnappy-dev
      - libsoxr-dev
      - libspeex-dev
      - libssh-gcrypt-dev
      - libtesseract-dev
      - libtheora-dev
      - libtwolame-dev
      - libva-dev
      - libv4l-dev
      - libvdpau-dev
      - libvo-amrwbenc-dev
      - libvorbis-dev
      - libvpx-dev
      - libvulkan-dev
      - libwavpack-dev
      - libwebp-dev
      - libx265-dev
      - libxcb-shape0-dev
      - libxcb-shm0-dev
      - libxcb-xfixes0-dev
      - libxml2-dev
      - libxv-dev
      - libxvidcore-dev
      - libzmq3-dev
      - libzvbi-dev
      - ocl-icd-opencl-dev
      - opencl-headers
      - pkg-config
      - yasm
      #- on amd64:
      #- libcrystalhd-dev
      # TODO: re-enable `nvidia-cuda*` if we can determine that we can ship non-free
      # - nvidia-cuda-dev
      # - nvidia-cuda-toolkit
      #- on i386:
      #- libcrystalhd-dev
    override-build: |
      if [ "$CRAFT_TARGET_ARCH" = "amd64" ]; then
        # TODO: re-enable `--enable-cuda-sdk --enable-cuda --enable-libnpp` if we can determine that we can ship non-free
        EXTRA="--enable-vdpau --enable-nvenc --enable-cuvid"
      elif [ "$CRAFT_TARGET_ARCH" = "i386" ]; then
        EXTRA="--enable-vdpau --enable-nvenc"
      elif [ "$CRAFT_TARGET_ARCH" = "armhf" ]; then
        EXTRA="--disable-vdpau --enable-neon"
      elif [ "$CRAFT_TARGET_ARCH" = "arm64" ]; then
        EXTRA="--disable-vdpau"
      else
        EXTRA=""
      fi
      ./configure \
      --prefix=/usr \
      --libdir=/usr/lib/${CRAFT_ARCH_TRIPLET} \
      --disable-debug \
      --disable-doc \
      --disable-htmlpages \
      --disable-manpages \
      --disable-podpages \
      --disable-txtpages \
      --disable-static \
      --enable-libaom \
      --enable-avisynth \
      --enable-libdav1d \
      --enable-ffplay \
      --enable-gnutls \
      --enable-gpl \
      --enable-libass \
      --enable-libbluray \
      --enable-libbs2b \
      --enable-libcaca \
      --enable-libcdio \
      --enable-libcodec2 \
      --enable-libdc1394 \
      --enable-libdrm \
      --enable-libflite \
      --enable-libfontconfig \
      --enable-libfribidi \
      --enable-libfreetype \
      --enable-libgme \
      --enable-libgsm \
      --enable-libmp3lame \
      --enable-libopencore_amrnb \
      --enable-libopencore_amrwb \
      --enable-libopenjpeg \
      --enable-libopenmpt \
      --enable-libopus \
      --enable-libpulse \
      --enable-librsvg \
      --enable-librubberband \
      --enable-libshine \
      --enable-libsnappy \
      --enable-libsoxr \
      --enable-libspeex \
      --enable-libsrt \
      --enable-libssh \
      --enable-libtesseract \
      --enable-libtheora \
      --enable-libtwolame \
      --enable-libv4l2 \
      --enable-libvo_amrwbenc \
      --enable-libvorbis \
      --enable-libvpx \
      --enable-libwebp \
      --enable-libx264 \
      --enable-libx265 \
      --enable-libxcb \
      --enable-libxml2 \
      --enable-libxvid \
      --enable-libzimg \
      --enable-libzmq \
      --enable-libzvbi \
      --enable-omx \
      --enable-openal \
      --enable-opencl \
      --enable-opengl \
      --enable-runtime-cpudetect \
      --enable-sdl2 \
      --enable-shared \
      --enable-vaapi \
      --enable-version3 \
      --enable-vulkan \
      --enable-xlib ${EXTRA}

      # TODO: re-enable `--enable-nonfree \` if we can determine the legality/licensing issues are ok.

      make -j $(nproc)
      make DESTDIR="$CRAFT_PART_INSTALL" install
    prime:
      - -usr/share
    source-tag: release/6.1
  prefix-fix:
    after: [ffmpeg]
    plugin: nil
    build-packages:
      - execstack
    override-prime: |
      set -eux
      for PC in $(find . -path "*/pkgconfig/*.pc")
      do
        sed -i '1cprefix=/snap/ffmpeg-2204-sdk/current/usr' $PC
        sed -i 's#libdir=/usr#libdir=${prefix}#' $PC
        sed -i 's#exec_prefix=/usr#exec_prefix=${prefix}#' $PC
        sed -i 's#includedir=/usr#includedir=${prefix}#' $PC
      done
      if [ "$CRAFT_ARCH_TRIPLET" == "arm-linux-gnueabihf" ]; then
        execstack --clear-execstack usr/lib/arm-linux-gnueabihf/libx264.so.164
      fi
  deps:
    after: [ffmpeg, prefix-fix]
    plugin: nil
    stage-packages:
      - libaom3
      - libass9
      - libbluray2
      - libbs2b0
      - libcdio-paranoia2
      - libcodec2-1.0
      - libdc1394-25
      - libflite1
      - libgme0
      - libgsm1
      - libmp3lame0
      - libopenal1
      - libopencore-amrnb0
      - libopencore-amrwb0
      - libopenmpt0
      - libopus0
      - librubberband2
      - libsdl2-2.0-0
      - libshine3
      - libsnappy1v5
      - libsoxr0
      - libssh-gcrypt-4
      - libtesseract4
      - libtwolame0
      - libusb-1.0-0
      - libv4l-0
      - libv4l2rds0
      - libvdpau-va-gl1
      - libvo-amrwbenc0
      - libvpx7
      - libvulkan1
      - libx265-199
      - libxau6
      - libxcb-shape0
      - libxdmcp6
      - libxv1
      - libxvidcore4
      - libxxhash0
      - libzmq5
      - libzvbi0
      - mesa-vdpau-drivers
      - ocl-icd-libopencl1
      - on amd64:
          - mesa-va-drivers
          #- libcrystalhd3
          # TODO: re-enable `libnpp*` if we can determine that we can ship non-free
          # - libnppig10
          # - libnppicc10
          # - libnppidei10
      - on i386:
          - mesa-va-drivers
          #- libcrystalhd3
    prime:
      - -usr/share
      - -etc
      - -var
      - -usr/bin/fc*
      - -usr/bin/X11
      - -usr/include/X11
      - -usr/lib/X11
      - -usr/lib/*/caca
      - -usr/lib/*/dri
      - -usr/lib/*/gdk*
      - -usr/lib/*/pulseaudio
      - -usr/lib/*/libv4l
      - -usr/lib/*/libv4lc*
      - -usr/lib/*/libv4l1*
      - -usr/lib/*/libv4l2.so*
      - -usr/lib/*/libv4l-m*
      - -usr/lib/*/libarchive*
      - -usr/lib/*/libasound*
      - -usr/lib/*/libasync*
      - -usr/lib/*/libcairo*
      - -usr/lib/*/libdatrie*
      - -usr/lib/*/libdeflate*
      - -usr/lib/*/libdrm*
      - -usr/lib/*/libFLAC*
      - -usr/lib/*/libfontconfig*
      - -usr/lib/*/libgdk*
      - -usr/lib/*/libGL*
      - -usr/lib/*/libgomp*
      - -usr/lib/*/libgraphite*
      - -usr/lib/*/libharfbuzz*
      - -usr/lib/*/libicu*
      - -usr/lib/*/libjpeg*
      - -usr/lib/*/libLLVM*
      - -usr/lib/*/libmpg*
      - -usr/lib/*/libogg*
      - -usr/lib/*/libopenjp*
      - -usr/lib/*/libopus*
      - -usr/lib/*/libpango*
      - -usr/lib/*/libpixman*
      - -usr/lib/*/libpulse*
      - -usr/lib/*/libraw*
      - -usr/lib/*/librsvg*
      - -usr/lib/*/libsample*
      - -usr/lib/*/libsensor*
      - -usr/lib/*/libsndfile*
      - -usr/lib/*/libthai*
      - -usr/lib/*/libtiff*
      - -usr/lib/*/libtwolame*
      - -usr/lib/*/libva*
      - -usr/lib/*/libvpx*
      - -usr/lib/*/libwayland*
      - -usr/lib/*/libwebp*
      - -usr/lib/*/libX11*
      - -usr/lib/*/libXau*
      - -usr/lib/*/libXc*
      - -usr/lib/*/libXd*
      - -usr/lib/*/libXe*
      - -usr/lib/*/libXf*
      - -usr/lib/*/libXi*
      - -usr/lib/*/libXr*
      - -usr/lib/*/libXx*
      - -usr/lib/*/libxcb.so*
      - -usr/lib/*/libxcb-shm.so*
      - -usr/lib/*/libxcb-glx.so*
      - -usr/lib/*/libxcb-dri*.so*
      - -usr/lib/*/libxcb-r*.so*
      - -usr/lib/*/libxcb-sync.so*
      - -usr/lib/*/libxcb-x*.so*
      - -usr/lib/*/libxcb-p*.so*
      - -usr/lib/*/libxkb*

@sergio-costas
Copy link
Collaborator

Ok, I fixed it and uploaded it here. If you download and install the last version, it should not fail.

But take into account that the bug trigger was that you haven't defined the right version format for FFmpeg, so it can't find the current version in the repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants