- snapcraft.yaml
name: chromium-ffmpeg
version: "0.1"
summary: FFmpeg codecs (free and proprietary) for use by third-party browser snaps
description: |
This package provides a chromium-ffmpeg content interface that third-party
browser snaps can connect to to get access to a host of proprietary codecs for
web content that they might not be allowed to redistribute themselves.
confinement: strict
base: core18
slots:
chromium-ffmpeg-111306: # chromium 114.0.5720.4
interface: content
source:
read:
- $SNAP/chromium-ffmpeg-111306/chromium-ffmpeg
parts:
build:
plugin: dump
source: build
organize:
'*' : build/
override-prime: ""
chromium-ffmpeg-111306: # chromium 114.0.5720.4
after: [build]
plugin: nil
source: ./chromium-114.0.5720.4/
source-type: local
build-packages:
- clang-10
- libatk1.0-dev
- libatk-bridge2.0-dev
- libcups2-dev
- libevdev-dev
- libgbm-dev
- libglib2.0-dev
- libgtk-3-dev
- libnss3-dev
- libpango1.0-dev
- llvm-10
- mesa-common-dev
- ninja-build
- python3
- quilt
override-build: |
set -eux
rm -rf $SNAPCRAFT_PART_SRC/*
VERSION=111306
QUILT_PATCHES=$SNAPCRAFT_STAGE/build/$VERSION/patches quilt push -a
CC=clang-10 CXX=clang++-10 AR=llvm-ar-10 python3 tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
OUT=out/ffmpeg
mkdir -p $OUT
cp $SNAPCRAFT_STAGE/build/$VERSION/args.gn $OUT/
out/Release/gn gen $OUT
ninja -C $OUT libffmpeg.so
DEST=$SNAPCRAFT_PART_INSTALL/chromium-ffmpeg-$VERSION/chromium-ffmpeg
mkdir -p $DEST
cp $OUT/libffmpeg.so $DEST/
rm -rf *
- Source tree:
% ls -la
total 32
drwxrwxr-x 5 nteodosio nteodosio 4096 mai 26 15:14 .
drwxr-xr-x 13 nteodosio nteodosio 12288 mai 26 11:23 ..
drwxrwxr-x 7 nteodosio nteodosio 4096 mai 26 14:52 build
drwxr-xr-x 56 nteodosio nteodosio 4096 mai 26 12:30 chromium-114.0.5720.4
drwxrwxr-x 8 nteodosio nteodosio 4096 mai 26 15:27 .git
-rw-rw-r-- 1 nteodosio nteodosio 1722 mai 26 15:14 snapcraft.yaml
- Try a build:
% snapcraft build --verbose --debug --use-lxd
Starting Snapcraft 7.3.2
Logging execution to '/home/nteodosio/.local/state/snapcraft/log/snapcraft-20230526-151454.763142.log'
Launching a container.
Waiting for container to be ready
Waiting for network to be ready...
Updating pull step for build (source changed)
+ snapcraftctl pull
'chromium-ffmpeg-111306' has dependencies that need to be staged: build
Skipping pull build (already ran)
Updating build step for build ('pull' step changed)
+ snapcraftctl build
Cleaning later steps and re-staging build
+ snapcraftctl stage
Pulling chromium-ffmpeg-111306
+ snapcraftctl pull
It’s stuck there for at least 20 min already, which is weird because it doesn’t need to download or unpack the source, it’s right there in the source tree.
What could be delaying Snapcraft here?