From 72cd36f806d55436ceb6dccdbce0d4736d127e8e Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Mon, 8 Aug 2022 21:12:24 +0200 Subject: [PATCH] Remove unused dependencies; split off source-only Rust devel package --- 0001-remove-unused-hawktracer-usage.patch | 435 ++++++++++++++++++++++ rav1e-fix-metadata-auto.diff | 25 ++ rav1e-fix-metadata.diff | 67 ++-- rust-rav1e.spec | 105 +++--- 4 files changed, 548 insertions(+), 84 deletions(-) create mode 100644 0001-remove-unused-hawktracer-usage.patch create mode 100644 rav1e-fix-metadata-auto.diff diff --git a/0001-remove-unused-hawktracer-usage.patch b/0001-remove-unused-hawktracer-usage.patch new file mode 100644 index 0000000..3ccb428 --- /dev/null +++ b/0001-remove-unused-hawktracer-usage.patch @@ -0,0 +1,435 @@ +From 250bdde944cfb1ad3200df8c77150ca25bb32b58 Mon Sep 17 00:00:00 2001 +From: Fabio Valentini +Date: Mon, 8 Aug 2022 20:48:47 +0200 +Subject: [PATCH] remove unused hawktracer usage + +--- + src/activity.rs | 3 --- + src/api/internal.rs | 9 --------- + src/api/lookahead.rs | 5 ----- + src/bin/muxer/ivf.rs | 2 -- + src/bin/rav1e-ch.rs | 10 ---------- + src/bin/rav1e.rs | 10 ---------- + src/bin/stats.rs | 3 --- + src/cdef.rs | 2 -- + src/deblock.rs | 4 ---- + src/encoder.rs | 3 --- + src/lrf.rs | 2 -- + src/me.rs | 3 --- + src/scenechange/mod.rs | 5 ----- + 13 files changed, 61 deletions(-) + +diff --git a/src/activity.rs b/src/activity.rs +index 99d9137..7ebcd0e 100644 +--- a/src/activity.rs ++++ b/src/activity.rs +@@ -12,7 +12,6 @@ use crate::rdo::{ssim_boost, DistortionScale}; + use crate::tiling::*; + use crate::util::*; + use itertools::izip; +-use rust_hawktracer::*; + + #[derive(Debug, Default, Clone)] + pub struct ActivityMask { +@@ -20,7 +19,6 @@ pub struct ActivityMask { + } + + impl ActivityMask { +- #[hawktracer(activity_mask_from_plane)] + pub fn from_plane(luma_plane: &Plane) -> ActivityMask { + let PlaneConfig { width, height, .. } = luma_plane.cfg; + +@@ -55,7 +53,6 @@ impl ActivityMask { + ActivityMask { variances: variances.into_boxed_slice() } + } + +- #[hawktracer(activity_mask_fill_scales)] + pub fn fill_scales( + &self, bit_depth: usize, activity_scales: &mut Box<[DistortionScale]>, + ) { +diff --git a/src/api/internal.rs b/src/api/internal.rs +index c1613c8..5bfa3ab 100644 +--- a/src/api/internal.rs ++++ b/src/api/internal.rs +@@ -27,7 +27,6 @@ use crate::stats::EncoderStats; + use crate::tiling::Area; + use crate::util::Pixel; + use arrayvec::ArrayVec; +-use rust_hawktracer::*; + use std::cmp; + use std::collections::{BTreeMap, BTreeSet}; + use std::env; +@@ -312,7 +311,6 @@ impl ContextInner { + } + } + +- #[hawktracer(send_frame)] + pub fn send_frame( + &mut self, mut frame: Option>>, + params: Option, +@@ -591,7 +589,6 @@ impl ContextInner { + /// `rec_buffer` and `lookahead_rec_buffer` on the `FrameInvariants`. This + /// function must be called after every new `FrameInvariants` is initially + /// computed. +- #[hawktracer(compute_lookahead_motion_vectors)] + fn compute_lookahead_motion_vectors(&mut self, output_frameno: u64) { + let qps = { + let frame_data = self.frame_data.get(&output_frameno).unwrap(); +@@ -752,7 +749,6 @@ impl ContextInner { + + /// Computes lookahead intra cost approximations and fills in + /// `lookahead_intra_costs` on the `FrameInvariants`. +- #[hawktracer(compute_lookahead_intra_costs)] + fn compute_lookahead_intra_costs(&mut self, output_frameno: u64) { + let frame_data = self.frame_data.get(&output_frameno).unwrap(); + let fi = &frame_data.fi; +@@ -774,7 +770,6 @@ impl ContextInner { + ); + } + +- #[hawktracer(compute_keyframe_placement)] + pub fn compute_keyframe_placement( + &mut self, lookahead_frames: &[Arc>], + ) { +@@ -791,7 +786,6 @@ impl ContextInner { + self.next_lookahead_frame += 1; + } + +- #[hawktracer(compute_frame_invariants)] + pub fn compute_frame_invariants(&mut self) { + while self.set_frame_properties(self.next_lookahead_output_frameno).is_ok() + { +@@ -804,7 +798,6 @@ impl ContextInner { + } + } + +- #[hawktracer(update_block_importances)] + fn update_block_importances( + fi: &FrameInvariants, me_stats: &crate::me::FrameMEStats, + frame: &Frame, reference_frame: &Frame, bit_depth: usize, +@@ -963,7 +956,6 @@ impl ContextInner { + } + + /// Computes the block importances for the current output frame. +- #[hawktracer(compute_block_importances)] + fn compute_block_importances(&mut self) { + // SEF don't need block importances. + if self.frame_data[&self.output_frameno].fi.show_existing_frame { +@@ -1296,7 +1288,6 @@ impl ContextInner { + } + } + +- #[hawktracer(receive_packet)] + pub fn receive_packet(&mut self) -> Result, EncoderStatus> { + if self.done_processing() { + return Err(EncoderStatus::LimitReached); +diff --git a/src/api/lookahead.rs b/src/api/lookahead.rs +index 690acd2..30297d3 100644 +--- a/src/api/lookahead.rs ++++ b/src/api/lookahead.rs +@@ -14,7 +14,6 @@ use crate::rayon::iter::*; + use crate::tiling::{Area, TileRect}; + use crate::transform::TxSize; + use crate::{Frame, Pixel}; +-use rust_hawktracer::*; + use std::sync::Arc; + use v_frame::pixel::CastFromPrimitive; + +@@ -24,7 +23,6 @@ pub(crate) const IMP_BLOCK_SIZE_IN_MV_UNITS: i64 = + pub(crate) const IMP_BLOCK_AREA_IN_MV_UNITS: i64 = + IMP_BLOCK_SIZE_IN_MV_UNITS * IMP_BLOCK_SIZE_IN_MV_UNITS; + +-#[hawktracer(estimate_intra_costs)] + pub(crate) fn estimate_intra_costs( + frame: &Frame, bit_depth: usize, cpu_feature_level: CpuFeatureLevel, + ) -> Box<[u32]> { +@@ -116,7 +114,6 @@ pub(crate) fn estimate_intra_costs( + intra_costs.into_boxed_slice() + } + +-#[hawktracer(estimate_importance_block_difference)] + pub(crate) fn estimate_importance_block_difference( + frame: Arc>, ref_frame: Arc>, + ) -> Box<[u32]> { +@@ -174,7 +171,6 @@ pub(crate) fn estimate_importance_block_difference( + inter_costs.into_boxed_slice() + } + +-#[hawktracer(estimate_inter_costs)] + pub(crate) fn estimate_inter_costs( + frame: Arc>, ref_frame: Arc>, bit_depth: usize, + mut config: EncoderConfig, sequence: Arc, +@@ -236,7 +232,6 @@ pub(crate) fn estimate_inter_costs( + inter_costs.into_boxed_slice() + } + +-#[hawktracer(compute_motion_vectors)] + pub(crate) fn compute_motion_vectors( + fi: &mut FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) { +diff --git a/src/bin/muxer/ivf.rs b/src/bin/muxer/ivf.rs +index d89e541..2157a58 100644 +--- a/src/bin/muxer/ivf.rs ++++ b/src/bin/muxer/ivf.rs +@@ -12,7 +12,6 @@ use super::Muxer; + use crate::error::*; + use ivf::*; + use rav1e::prelude::*; +-use rust_hawktracer::*; + use std::fs; + use std::fs::File; + use std::io; +@@ -37,7 +36,6 @@ impl Muxer for IvfMuxer { + ); + } + +- #[hawktracer(write_frame)] + fn write_frame(&mut self, pts: u64, data: &[u8], _frame_type: FrameType) { + write_ivf_frame(&mut self.output, pts, data); + } +diff --git a/src/bin/rav1e-ch.rs b/src/bin/rav1e-ch.rs +index d9081dd..80b6f9a 100644 +--- a/src/bin/rav1e-ch.rs ++++ b/src/bin/rav1e-ch.rs +@@ -303,18 +303,8 @@ fn do_encode( + } + + fn main() -> Result<(), Box> { +- #[cfg(feature = "tracing")] +- use rust_hawktracer::*; + init_logger(); + +- #[cfg(feature = "tracing")] +- let instance = HawktracerInstance::new(); +- #[cfg(feature = "tracing")] +- let _listener = instance.create_listener(HawktracerListenerType::ToFile { +- file_path: "trace.bin".into(), +- buffer_size: 4096, +- }); +- + run().map_err(|e| { + error::print_error(&e); + Box::new(e) as Box +diff --git a/src/bin/rav1e.rs b/src/bin/rav1e.rs +index da6d664..2d9eac3 100644 +--- a/src/bin/rav1e.rs ++++ b/src/bin/rav1e.rs +@@ -295,18 +295,8 @@ fn do_encode( + } + + fn main() { +- #[cfg(feature = "tracing")] +- use rust_hawktracer::*; + init_logger(); + +- #[cfg(feature = "tracing")] +- let instance = HawktracerInstance::new(); +- #[cfg(feature = "tracing")] +- let _listener = instance.create_listener(HawktracerListenerType::ToFile { +- file_path: "trace.bin".into(), +- buffer_size: 4096, +- }); +- + run().unwrap_or_else(|e| { + error::print_error(&e); + exit(1); +diff --git a/src/bin/stats.rs b/src/bin/stats.rs +index d363d0c..09e3b77 100644 +--- a/src/bin/stats.rs ++++ b/src/bin/stats.rs +@@ -12,7 +12,6 @@ use rav1e::data::EncoderStats; + use rav1e::prelude::Rational; + use rav1e::prelude::*; + use rav1e::{Packet, Pixel}; +-use rust_hawktracer::*; + use std::fmt; + use std::time::Instant; + +@@ -30,7 +29,6 @@ pub struct FrameSummary { + pub enc_stats: EncoderStats, + } + +-#[hawktracer(build_frame_summary)] + pub fn build_frame_summary( + packets: Packet, bit_depth: usize, chroma_sampling: ChromaSampling, + metrics_cli: MetricsEnabled, +@@ -742,7 +740,6 @@ pub enum MetricsEnabled { + All, + } + +-#[hawktracer(calculate_frame_metrics)] + pub fn calculate_frame_metrics( + frame1: &Frame, frame2: &Frame, bit_depth: usize, cs: ChromaSampling, + metrics: MetricsEnabled, +diff --git a/src/cdef.rs b/src/cdef.rs +index 6eeddb0..26e8ae1 100644 +--- a/src/cdef.rs ++++ b/src/cdef.rs +@@ -13,7 +13,6 @@ use crate::encoder::FrameInvariants; + use crate::frame::*; + use crate::tiling::*; + use crate::util::{clamp, msb, CastFromPrimitive, Pixel}; +-use rust_hawktracer::*; + + use crate::cpu_features::CpuFeatureLevel; + use std::cmp; +@@ -586,7 +585,6 @@ pub fn cdef_filter_superblock( + // tile boundary), the filtering process ignores input pixels that + // don't exist. + +-#[hawktracer(cdef_filter_tile)] + pub fn cdef_filter_tile( + fi: &FrameInvariants, input: &Frame, tb: &TileBlocks, + output: &mut TileMut<'_, T>, +diff --git a/src/deblock.rs b/src/deblock.rs +index ff70368..61b7cd4 100644 +--- a/src/deblock.rs ++++ b/src/deblock.rs +@@ -17,7 +17,6 @@ use crate::quantize::*; + use crate::tiling::*; + use crate::util::{clamp, ILog, Pixel}; + use crate::DeblockState; +-use rust_hawktracer::*; + use std::cmp; + + use crate::rayon::iter::*; +@@ -1313,7 +1312,6 @@ fn sse_h_edge( + } + + // Deblocks all edges, vertical and horizontal, in a single plane +-#[hawktracer(deblock_plane)] + pub fn deblock_plane( + deblock: &DeblockState, p: &mut PlaneRegionMut, pli: usize, + blocks: &TileBlocks, crop_w: usize, crop_h: usize, bd: usize, +@@ -1563,7 +1561,6 @@ fn sse_plane( + } + + // Deblocks all edges in all planes of a frame +-#[hawktracer(deblock_filter_frame)] + pub fn deblock_filter_frame( + deblock: &DeblockState, tile: &mut TileMut, blocks: &TileBlocks, + crop_w: usize, crop_h: usize, bd: usize, planes: usize, +@@ -1641,7 +1638,6 @@ fn sse_optimize( + level + } + +-#[hawktracer(deblock_filter_optimize)] + pub fn deblock_filter_optimize( + fi: &FrameInvariants, rec: &Tile, input: &Tile, + blocks: &TileBlocks, crop_w: usize, crop_h: usize, +diff --git a/src/encoder.rs b/src/encoder.rs +index c0b31fa..5fc753f 100644 +--- a/src/encoder.rs ++++ b/src/encoder.rs +@@ -48,7 +48,6 @@ use std::sync::Arc; + use std::{fmt, io, mem}; + + use crate::rayon::iter::*; +-use rust_hawktracer::*; + + #[allow(dead_code)] + #[derive(Debug, Clone, PartialEq)] +@@ -2949,7 +2948,6 @@ fn get_initial_cdfcontext(fi: &FrameInvariants) -> CDFContext { + cdf.unwrap_or_else(|| CDFContext::new(fi.base_q_idx)) + } + +-#[hawktracer(encode_tile_group)] + fn encode_tile_group( + fi: &FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) -> Vec { +@@ -3181,7 +3179,6 @@ fn check_lf_queue( + } + } + +-#[hawktracer(encode_tile)] + fn encode_tile<'a, T: Pixel>( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + fc: &'a mut CDFContext, blocks: &'a mut TileBlocksMut<'a>, +diff --git a/src/lrf.rs b/src/lrf.rs +index 2fc3b33..4399c4c 100644 +--- a/src/lrf.rs ++++ b/src/lrf.rs +@@ -23,7 +23,6 @@ use crate::frame::{ + }; + use crate::tiling::{Area, PlaneRegion, PlaneRegionMut, Rect}; + use crate::util::{clamp, CastFromPrimitive, ILog, Pixel}; +-use rust_hawktracer::*; + + use crate::api::SGRComplexityLevel; + use std::cmp; +@@ -1461,7 +1460,6 @@ impl RestorationState { + } + } + +- #[hawktracer(lrf_filter_frame)] + pub fn lrf_filter_frame( + &mut self, out: &mut Frame, pre_cdef: &Frame, + fi: &FrameInvariants, +diff --git a/src/me.rs b/src/me.rs +index 6f849a4..7ed64e4 100644 +--- a/src/me.rs ++++ b/src/me.rs +@@ -29,8 +29,6 @@ use crate::util::ILog; + use std::ops::{Index, IndexMut}; + use std::sync::Arc; + +-use rust_hawktracer::*; +- + #[derive(Debug, Copy, Clone, Default)] + pub struct MEStats { + pub mv: MotionVector, +@@ -98,7 +96,6 @@ enum MVSamplingMode { + CORNER { right: bool, bottom: bool }, + } + +-#[hawktracer(estimate_tile_motion)] + pub fn estimate_tile_motion( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + inter_cfg: &InterConfig, +diff --git a/src/scenechange/mod.rs b/src/scenechange/mod.rs +index 20479f0..126329d 100644 +--- a/src/scenechange/mod.rs ++++ b/src/scenechange/mod.rs +@@ -14,7 +14,6 @@ use crate::encoder::Sequence; + use crate::frame::*; + use crate::sad_row; + use crate::util::Pixel; +-use rust_hawktracer::*; + use std::sync::Arc; + use std::{cmp, u64}; + +@@ -123,7 +122,6 @@ impl SceneChangeDetector { + /// to the second frame in `frame_set`. + /// + /// This will gracefully handle the first frame in the video as well. +- #[hawktracer(analyze_next_frame)] + pub fn analyze_next_frame( + &mut self, frame_set: &[Arc>], input_frameno: u64, + previous_keyframe: u64, +@@ -345,7 +343,6 @@ impl SceneChangeDetector { + + /// The fast algorithm detects fast cuts using a raw difference + /// in pixel values between the scaled frames. +- #[hawktracer(fast_scenecut)] + fn fast_scenecut( + &mut self, frame1: Arc>, frame2: Arc>, + ) -> ScenecutResult { +@@ -424,7 +421,6 @@ impl SceneChangeDetector { + /// We gather both intra and inter costs for the frames, + /// as well as an importance-block-based difference, + /// and use all three metrics. +- #[hawktracer(cost_scenecut)] + fn cost_scenecut( + &self, frame1: Arc>, frame2: Arc>, + ) -> ScenecutResult { +@@ -487,7 +483,6 @@ impl SceneChangeDetector { + } + + /// Calculates the average sum of absolute difference (SAD) per pixel between 2 planes +- #[hawktracer(delta_in_planes)] + fn delta_in_planes(&self, plane1: &Plane, plane2: &Plane) -> f64 { + let mut delta = 0; + +-- +2.37.1 + diff --git a/rav1e-fix-metadata-auto.diff b/rav1e-fix-metadata-auto.diff new file mode 100644 index 0000000..807eb5e --- /dev/null +++ b/rav1e-fix-metadata-auto.diff @@ -0,0 +1,25 @@ +--- rav1e-0.5.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ rav1e-0.5.1/Cargo.toml 1970-01-01T00:00:01+00:00 +@@ -232,22 +232,6 @@ + tracing = ["rust_hawktracer/profiling_enabled"] + unstable = [] + wasm = ["wasm-bindgen"] +-[target."cfg(any(decode_test, decode_test_dav1d))".dependencies.system-deps] +-version = "~3.1.2" +-[target."cfg(fuzzing)".dependencies.arbitrary] +-version = "0.4" +- +-[target."cfg(fuzzing)".dependencies.interpolate_name] +-version = "0.2.2" +- +-[target."cfg(fuzzing)".dependencies.libfuzzer-sys] +-version = "0.3" +- +-[target."cfg(fuzzing)".dependencies.rand] +-version = "0.8" +- +-[target."cfg(fuzzing)".dependencies.rand_chacha] +-version = "0.3" + [target."cfg(unix)".dependencies.signal-hook] + version = "0.3" + optional = true diff --git a/rav1e-fix-metadata.diff b/rav1e-fix-metadata.diff index cb7d378..b3db2e2 100644 --- a/rav1e-fix-metadata.diff +++ b/rav1e-fix-metadata.diff @@ -1,5 +1,14 @@ ---- rav1e-0.5.1/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ rav1e-0.5.1/Cargo.toml 2022-06-23T17:05:17.893086+00:00 +--- rav1e-0.5.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ rav1e-0.5.1/Cargo.toml 2022-08-08T18:36:33.822505+00:00 +@@ -22,7 +22,7 @@ + default-run = "rav1e" + description = "The fastest and safest AV1 encoder" + readme = "README.md" +-license = "BSD-2-Clause" ++license = "BSD-2-Clause AND ISC" + repository = "https://github.com/xiph/rav1e/" + [package.metadata.docs.rs] + no-default-features = true @@ -90,7 +90,7 @@ default-features = false @@ -18,26 +27,42 @@ optional = true [dependencies.fern] -@@ -233,21 +233,7 @@ +@@ -139,9 +139,6 @@ + [dependencies.rayon] + version = "1.0" + +-[dependencies.rust_hawktracer] +-version = "0.7.0" +- + [dependencies.scan_fmt] + version = "0.2.3" + optional = true +@@ -165,18 +162,11 @@ + [dependencies.v_frame] + version = "0.2.5" + +-[dependencies.wasm-bindgen] +-version = "0.2.63" +-optional = true +- + [dependencies.y4m] + version = "0.7" + optional = true + [dev-dependencies.assert_cmd] + version = "2.0" +- +-[dev-dependencies.criterion] +-version = "0.3" + + [dev-dependencies.interpolate_name] + version = "0.2.2" +@@ -229,9 +219,7 @@ + scenechange = [] + serialize = ["serde", "toml", "v_frame/serialize", "arrayvec/serde"] + signal_support = ["signal-hook"] +-tracing = ["rust_hawktracer/profiling_enabled"] unstable = [] - wasm = ["wasm-bindgen"] - [target."cfg(any(decode_test, decode_test_dav1d))".dependencies.system-deps] --version = "~3.1.2" --[target."cfg(fuzzing)".dependencies.arbitrary] --version = "0.4" -- --[target."cfg(fuzzing)".dependencies.interpolate_name] --version = "0.2.2" -- --[target."cfg(fuzzing)".dependencies.libfuzzer-sys] --version = "0.3" -- --[target."cfg(fuzzing)".dependencies.rand] --version = "0.8" -- --[target."cfg(fuzzing)".dependencies.rand_chacha] --version = "0.3" -+version = "6" +-wasm = ["wasm-bindgen"] [target."cfg(unix)".dependencies.signal-hook] version = "0.3" optional = true diff --git a/rust-rav1e.spec b/rust-rav1e.spec index a827cdb..aa821d7 100644 --- a/rust-rav1e.spec +++ b/rust-rav1e.spec @@ -1,37 +1,39 @@ -# Generated by rust2rpm 21 +# Generated by rust2rpm 22 %bcond_without check -# Install all deps (without check), grab their licenses and make it simple -# * ASL 2.0 -# * ASL 2.0 or MIT -# * BSD -# * ISC -# * MIT -# * MIT or ASL 2.0 -# * Unlicense or MIT -# * zlib -# * zlib or ASL 2.0 or MIT -%global binary_license BSD and ASL 2.0 and ISC and MIT and zlib +# Apache-2.0 OR MIT +# BSD-2-Clause +# BSD-2-Clause AND ISC +# MIT +# MIT OR Apache-2.0 +%global binary_license BSD-2-Clause AND ISC AND MIT %global crate rav1e -Name: rust-%{crate} +Name: rust-rav1e Version: 0.5.1 Release: %autorelease Summary: Fastest and safest AV1 encoder # Upstream license specification: BSD-2-Clause # src/ext/x86/x86inc.asm is under ISC, https://github.com/xiph/rav1e/issues/2181 -License: BSD and ISC +License: BSD-2-Clause AND ISC URL: https://crates.io/crates/rav1e Source: %{crates_source} -# Initial patched metadata -# * Bump console to 0.15 -# * Bump dav1d-sys to 0.5 -# * Bump system-deps to 6 -# * Remove fuzzing dependencies -# * Bump system-deps dependency from 3.1.2 to 6 -Patch0: rav1e-fix-metadata.diff +# Automatically generated patch to strip foreign dependencies +Patch: rav1e-fix-metadata-auto.diff +# Manually created patch for downstream crate metadata changes +# * Fix license in Cargo.toml +# * Bump console from 0.14 to 0.15 +# * Bump dav1d-sys from 0.3.4 to 0.5 +# * Remove useless rust_hawktracer dependency +# * Remove unused wasm-bindgen dependency +# * Remove unused criterion dev-dependency +# * Drop unused tracing feature +# * Drop unused wasm feature +Patch: rav1e-fix-metadata.diff +# * Remove useless / no-op hawktracer macros +Patch: 0001-remove-unused-hawktracer-usage.patch ExclusiveArch: %{rust_arches} @@ -44,11 +46,13 @@ Fastest and safest AV1 encoder.} %package -n %{crate} Summary: %{summary} +License: %{binary_license} %description -n %{crate} %{_description} %files -n %{crate} -%license PATENTS LICENSE +%license LICENSE +%license PATENTS %doc README.md %{_bindir}/rav1e @@ -60,26 +64,37 @@ License: %{binary_license} Library files for rav1e, the fastest and safest AV1 encoder. %files -n %{crate}-libs -%license LICENSE PATENTS +%license LICENSE +%license PATENTS +%doc README.md %{_libdir}/librav1e.so.0* %package -n %{crate}-devel Summary: %{summary} +License: %{binary_license} Requires: %{crate}-libs%{?_isa} = %{version}-%{release} %description -n %{crate}-devel %{_description} +%files -n %{crate}-devel +%{_includedir}/rav1e/ +%{_libdir}/librav1e.so +%{_libdir}/pkgconfig/rav1e.pc + +%package devel +Summary: %{summary} +BuildArch: noarch + +%description devel %{_description} + This package contains library source intended for building other packages which use the "%{crate}" crate. -%files -n %{crate}-devel +%files devel %license %{crate_instdir}/LICENSE %license %{crate_instdir}/PATENTS %doc %{crate_instdir}/README.md %{crate_instdir}/ -%{_includedir}/rav1e/ -%{_libdir}/librav1e.so -%{_libdir}/pkgconfig/rav1e.pc %package -n %{name}+default-devel Summary: %{summary} @@ -489,18 +504,6 @@ use the "toml" feature of the "%{crate}" crate. %files -n %{name}+toml-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+tracing-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+tracing-devel %{_description} - -This package contains library source intended for building other packages which -use the "tracing" feature of the "%{crate}" crate. - -%files -n %{name}+tracing-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+unstable-devel Summary: %{summary} BuildArch: noarch @@ -513,30 +516,6 @@ use the "unstable" feature of the "%{crate}" crate. %files -n %{name}+unstable-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+wasm-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+wasm-devel %{_description} - -This package contains library source intended for building other packages which -use the "wasm" feature of the "%{crate}" crate. - -%files -n %{name}+wasm-devel -%ghost %{crate_instdir}/Cargo.toml - -%package -n %{name}+wasm-bindgen-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+wasm-bindgen-devel %{_description} - -This package contains library source intended for building other packages which -use the "wasm-bindgen" feature of the "%{crate}" crate. - -%files -n %{name}+wasm-bindgen-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+y4m-devel Summary: %{summary} BuildArch: noarch