ubuntu / desktop-snaps

Snap automation tools
16 stars 9 forks source link

Error when using with branch #447

Open soumyaDghosh opened 11 months ago

soumyaDghosh commented 11 months ago
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 commented 11 months ago

I'll check it today. Thanks!

sergio-costas commented 11 months ago

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

sergio-costas commented 11 months ago

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 commented 11 months ago

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

sergio-costas commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

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.