lol
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 autoreconfHook,
6 libogg,
7 libvorbis,
8 pkg-config,
9 perl,
10 testers,
11 validatePkgConfig,
12}:
13
14stdenv.mkDerivation (finalAttrs: {
15 pname = "libtheora";
16 version = "1.2.0";
17
18 src = fetchFromGitHub {
19 owner = "xiph";
20 repo = "theora";
21 tag = "v${finalAttrs.version}";
22 hash = "sha256-kzZh4V6wZX9MetDutuqjRenmdpy4PHaRU9MgtIwPpiU=";
23 };
24
25 patches = lib.optionals stdenv.hostPlatform.isMinGW [ ./mingw-remove-export.patch ];
26
27 postPatch = lib.optionalString stdenv.hostPlatform.isArmv7 ''
28 patchShebangs lib/arm/arm2gnu.pl
29 '';
30
31 configureFlags = [ "--disable-examples" ];
32
33 outputs = [
34 "out"
35 "dev"
36 "devdoc"
37 ];
38 outputDoc = "devdoc";
39
40 nativeBuildInputs = [
41 autoreconfHook
42 pkg-config
43 validatePkgConfig
44 ]
45 ++ lib.optionals stdenv.hostPlatform.isArmv7 [
46 # Needed to run lib/arm/arm2gnu.pl for ARM assembly optimizations
47 perl
48 ];
49
50 propagatedBuildInputs = [
51 libogg
52 libvorbis
53 ];
54
55 strictDeps = true;
56
57 passthru = {
58 tests.pkg-config = testers.hasPkgConfigModules {
59 package = finalAttrs.finalPackage;
60 moduleNames = [
61 "theora"
62 "theoradec"
63 "theoraenc"
64 ];
65 };
66 };
67
68 meta = {
69 changelog = "https://gitlab.xiph.org/xiph/theora/-/releases/v${finalAttrs.version}";
70 description = "Library for Theora, a free and open video compression format";
71 homepage = "https://www.theora.org/";
72 license = lib.licenses.bsd3;
73 maintainers = with lib.maintainers; [ getchoo ];
74 platforms = lib.platforms.unix ++ lib.platforms.windows;
75 };
76})