Open source
Popvue plays video with its own build of VideoLAN's VLCKit. The LGPL asks that anyone who has the app can have the exact source of that build and the recipe that makes it. Both are here.
Popvue's VLCKit build
The app ships VLCKit 3.6.0 on libVLC 3.0.21, built from VideoLAN's source with eight patches. Three leave out the code that is under the GPL rather than the LGPL: zvbi, seven of libVLC's modules, and the yadif deinterlacing modes. The rest only let VideoLAN's build run with today's tools; two of them change one line each of zlib's and libpng's source, so those two libraries are altered versions. Everything else in the binary is VideoLAN's build, under the LGPL 2.1 or more permissive licences.
Download the build recipe (zip, 92 KB)The patches, the scripts, the README and the licence texts below, in one archive.
VideoLAN's sources
The build starts from these, at the exact revisions it pins:
- VLCKit 3.6.0
Tag 3.6.0, commit c73b779f.
- libVLC 3.0.21
vlc's 3.0.21 tag, commit dd8bfdba, which VLCKit 3.6.0 pins.
VLCKit's build applies its own 49 patches to libVLC and compiles every library libVLC links from source, downloading each from its own host. If a host no longer has a tarball the build needs, write to us and we will send it.
The patches
Applied to VLCKit at its 3.6.0 tag, in order, on a branch the build script makes.
- 0001-Popvue-build-without-zvbi-GPL-2-only-packet-830.c-us.patch
Build without zvbi, with VLC's own telx teletext decoder in its place.
- 0002-Popvue-iOS-12-minimum-Xcode-16-floor.patch
iOS 12 minimum, as Xcode 16 and later cannot target iOS 9.
- 0003-Popvue-GNU-style-sha512sum-for-the-tools-and-contrib.patch
A GNU-style sha512sum for the build on macOS 15.
- 0004-Popvue-libvlc-patch-for-zlib-with-the-iOS-18-SDKs.patch
zlib with the iOS 18 and later SDKs. Changes a line of zlib's source.
- 0005-Popvue-libvlc-patch-for-libpng-with-the-iOS-18-SDKs.patch
libpng with the iOS 18 and later SDKs. Changes a line of libpng's source.
- 0006-Popvue-libvlc-patch-for-libgcrypt-on-the-x86_64-simu.patch
libgcrypt on the x86_64 simulator.
- 0007-Popvue-leave-out-libVLC-s-GPL-modules.patch
Leaves out the seven libVLC modules whose sources are under the GPL.
- 0008-Popvue-libvlc-patch-leaving-yadif-out-of-deinterlace.patch
Leaves yadif, two GPL deinterlacing modes, out of libVLC.
The scripts
- build-vlckit.sh
Clones VLCKit, applies the patches and runs VideoLAN's build.
- check-vlckit-licences.sh
Stops the app's build if zvbi or GPL code is in the binary.
- find-gpl-sources.py
Reads every source compiled in and stops at any under the GPL.
- README.md
What the build changes, why, and how to move to a later VLCKit.
- Package.swift
The Swift package that hands the built framework to the app.
- generate_acknowledgements.py
Writes the app's Acknowledgements page from the licence texts.
Licences
VLCKit and libVLC are used under the GNU Lesser General Public License 2.1. The libraries inside them are each under their own licence, LGPL or more permissive; the texts, and the list of what the binary links at which version, are in the archive under licences, and on the app's Acknowledgements page under Settings, About.
- vlckit.txt
The LGPL 2.1, VLCKit's COPYING.
- manifest.json
Every library in the binary, its version, licence and whether Popvue's build alters it.
Also in the app
- VLCKit 3.6.0
- LGPL 2.1
- Alamofire 5.12.0
- MIT
- Kingfisher 8.11.0
- MIT
- KeychainAccess 4.2.2
- MIT
- Realm Swift 10.54.6
- Apache 2.0
- Realm Core 14.14.0
- Apache 2.0
- Google Cast SDK 4.8.4
- Google APIs Terms of Service
Film stills on this website
The pictures of films on this website, including Sprite Fright, Big Buck Bunny, Caminandes, Sintel, Tears of Steel and Elephants Dream, are stills from the Blender Foundation's open movies, used under the Creative Commons Attribution licence. They are cropped and shown inside pictures of the app. The Blender Foundation does not endorse Popvue.
Questions about any of this, or a tarball the build cannot fetch: write to support.
