packagerbot pushed to rpms/dummy-test-package-gloster (rawhide).
"Bump release (..more)"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:49:56 UTC
From 25cc56aa2ecbec609e6442c086a6514509a78b86 Mon Sep 17 00:00:00 2001
From: packagerbot <admin(a)fedoraproject.org>
Date: Oct 31 2023 17:49:47 +0000
Subject: Bump release
Signed-off-by: packagerbot <admin(a)fedoraproject.org>
---
diff --git a/dummy-test-package-gloster.spec b/dummy-test-package-gloster.spec
index f6d7303..c9117e3 100644
--- a/dummy-test-package-gloster.spec
+++ b/dummy-test-package-gloster.spec
@@ -3,7 +3,7 @@
Name: dummy-test-package-gloster
Version: 0
-Release: 11185%{?dist}
+Release: 11186%{?dist}
Summary: Dummy Test Package called Gloster
License: CC0
URL: http://fedoraproject.org/wiki/DummyTestPackages
@@ -32,6 +32,9 @@ cp -p uuid %{buildroot}%{_datadir}/%{name}
%{_datadir}/%{name}
%changelog
+* Tue Oct 31 2023 packagerbot <admin(a)fedoraproject.org> - 0-11186
+- rebuilt
+
* Tue Oct 31 2023 packagerbot <admin(a)fedoraproject.org> - 0-11185
- rebuilt
https://src.fedoraproject.org/rpms/dummy-test-package-gloster/c/25cc56aa2...
7 months
dm0 pushed to rpms/firecracker (f38). "Update to version 1.5.0"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:15:58 UTC
From 5541bc6c7c603fe6500aedd97615fb78d14827a3 Mon Sep 17 00:00:00 2001
From: David Michael <fedora.dm0(a)gmail.com>
Date: Oct 31 2023 16:35:57 +0000
Subject: Update to version 1.5.0
---
diff --git a/.gitignore b/.gitignore
index cc40b21..b395193 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/firecracker-1.4.1.tar.gz
-/kvm-bindings-e835920.tar.gz
-/micro_http-4b18a04.tar.gz
+/firecracker-1.5.0.tar.gz
+/kvm-bindings-b158595.tar.gz
+/micro_http-a4d632f.tar.gz
diff --git a/firecracker-1.4.0-remove-cargo_toml.patch b/firecracker-1.4.0-remove-cargo_toml.patch
deleted file mode 100644
index 6007f4c..0000000
--- a/firecracker-1.4.0-remove-cargo_toml.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-This crate has licensing issues and is only used for a developer test.
-
---- a/src/firecracker/Cargo.toml
-+++ b/src/firecracker/Cargo.toml
-@@ -23,5 +23,4 @@
- vmm = { path = "../vmm" }
-
- [dev-dependencies]
--cargo_toml = "0.13.0"
- regex = { version = "1.5.5", default-features = false, features = ["std"] }
---- a/src/firecracker/tests/verify_dependencies.rs
-+++ b/src/firecracker/tests/verify_dependencies.rs
-@@ -1,3 +1,4 @@
-+#![cfg(not(test))]
- // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- // SPDX-License-Identifier: Apache-2.0
-
diff --git a/firecracker-1.4.0-upgrade-kvm-ioctls.patch b/firecracker-1.4.0-upgrade-kvm-ioctls.patch
deleted file mode 100644
index aac5f60..0000000
--- a/firecracker-1.4.0-upgrade-kvm-ioctls.patch
+++ /dev/null
@@ -1,267 +0,0 @@
-Switch to a branch packaged in Fedora, also seen in upstream commit
-72ac94b2637b73f23ef98b2f6fe9c622ad4287fc. Update the API to get/set a register
-by switching to variable byte slices instead of integers.
-
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -10,7 +10,7 @@
- derive_more = { version = "0.99.17", default-features = false, features = ["from", "display"] }
- event-manager = "0.3.0"
- kvm-bindings = { version = "0.6.0", features = ["fam-wrappers"] }
--kvm-ioctls = "0.12.0"
-+kvm-ioctls = "0.14.0"
- lazy_static = "1.4.0"
- libc = "0.2.117"
- linux-loader = "0.8.1"
---- a/src/vmm/src/arch/aarch64/regs.rs
-+++ b/src/vmm/src/arch/aarch64/regs.rs
-@@ -229,7 +229,7 @@
- let pstate = offset__of!(user_pt_regs, pstate) + kreg_off;
- vcpu.set_one_reg(
- arm64_core_reg_id!(KVM_REG_SIZE_U64, pstate),
-- PSTATE_FAULT_BITS_64.into(),
-+ &PSTATE_FAULT_BITS_64.to_le_bytes(),
- )
- .map_err(|err| Error::SetCoreRegister(err, "processor state".to_string()))?;
-
-@@ -237,7 +237,7 @@
- if cpu_id == 0 {
- // Setting the PC (Processor Counter) to the current program address (kernel address).
- let pc = offset__of!(user_pt_regs, pc) + kreg_off;
-- vcpu.set_one_reg(arm64_core_reg_id!(KVM_REG_SIZE_U64, pc), boot_ip.into())
-+ vcpu.set_one_reg(arm64_core_reg_id!(KVM_REG_SIZE_U64, pc), &boot_ip.to_le_bytes())
- .map_err(|err| Error::SetCoreRegister(err, "program counter".to_string()))?;
-
- // Last mandatory thing to set -> the address pointing to the FDT (also called DTB).
-@@ -247,7 +247,7 @@
- let regs0 = offset__of!(user_pt_regs, regs) + kreg_off;
- vcpu.set_one_reg(
- arm64_core_reg_id!(KVM_REG_SIZE_U64, regs0),
-- get_fdt_addr(mem).into(),
-+ &get_fdt_addr(mem).to_le_bytes(),
- )
- .map_err(|err| Error::SetCoreRegister(err, "X0".to_string()))?;
- }
-@@ -279,11 +279,12 @@
- ///
- /// * `vcpu` - Structure for the VCPU that holds the VCPU's fd.
- pub fn read_mpidr(vcpu: &VcpuFd) -> Result<u64> {
-- match vcpu.get_one_reg(MPIDR_EL1) {
-+ let mut mpidr = [0_u8; 8];
-+ match vcpu.get_one_reg(MPIDR_EL1, &mut mpidr) {
- Err(err) => Err(Error::GetSysRegister(MPIDR_EL1, err)),
- // MPIDR register is 64 bit wide on aarch64, this expect cannot fail
- // on supported architectures
-- Ok(val) => Ok(val.try_into().expect("MPIDR register to be 64 bit")),
-+ Ok(_) => Ok(u64::from_le_bytes(mpidr)),
- }
- }
-
-@@ -304,9 +305,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, format!("X{}", i)))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, format!("X{}", i)))?; u64::from_le_bytes(val).into() },
- });
- off += std::mem::size_of::<u64>();
- }
-@@ -317,9 +318,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "stack pointer".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "stack pointer".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // Second one, the program counter.
-@@ -327,9 +328,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "program counter".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "program counter".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // Next is the processor state.
-@@ -337,9 +338,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "processor state".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "processor state".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // The stack pointer associated with EL1.
-@@ -347,9 +348,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "SP_EL1".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "SP_EL1".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // Exception Link Register for EL1, when taking an exception to EL1, this register
-@@ -358,9 +359,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "ELR_EL1".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "ELR_EL1".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // Saved Program Status Registers, there are 5 of them used in the kernel.
-@@ -369,9 +370,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, format!("SPSR{}", i)))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, format!("SPSR{}", i)))?; u64::from_le_bytes(val).into() },
- });
- off += std::mem::size_of::<u64>();
- }
-@@ -383,9 +384,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U128, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, format!("FP_VREG{}", i)))?,
-+ value: { let mut val = [0_u8; 16]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, format!("FP_VREG{}", i)))?; u128::from_le_bytes(val) },
- });
- off += mem::size_of::<u128>();
- }
-@@ -395,9 +396,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U32, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "FPSR".to_string()))?,
-+ value: { let mut val = [0_u8; 4]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "FPSR".to_string()))?; u32::from_le_bytes(val).into() },
- });
-
- // Floating-point Control Register.
-@@ -405,9 +406,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U32, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "FPCR".to_string()))?,
-+ value: { let mut val = [0_u8; 4]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "FPCR".to_string()))?; u32::from_le_bytes(val).into() },
- });
-
- Ok(())
-@@ -451,9 +452,9 @@
- for id in ids.iter() {
- state.push(Aarch64Register {
- id: *id,
-- value: vcpu
-- .get_one_reg(*id)
-- .map_err(|e| Error::GetSysRegister(*id, e))?,
-+ value: { let mut val = [0_u8; 16]; vcpu
-+ .get_one_reg(*id, &mut val)
-+ .map_err(|e| Error::GetSysRegister(*id, e))?; u128::from_le_bytes(val) },
- });
- }
-
-@@ -468,7 +469,7 @@
- /// * `state` - Structure containing the state of the system registers.
- pub fn restore_registers(vcpu: &VcpuFd, state: &[Aarch64Register]) -> Result<()> {
- for reg in state {
-- vcpu.set_one_reg(reg.id, reg.value)
-+ vcpu.set_one_reg(reg.id, ®.value.to_le_bytes())
- .map_err(|e| Error::SetSysRegister(reg.id, e))?;
- }
- Ok(())
-@@ -586,10 +587,11 @@
- restore_registers(&vcpu, &state).unwrap();
- let off = offset__of!(user_pt_regs, pstate);
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
-+ let mut val = [0_u8; 8];
- let pstate = vcpu
-- .get_one_reg(id)
-+ .get_one_reg(id, &mut val)
- .expect("Failed to call kvm get one reg");
-- assert!(state.contains(&Aarch64Register { id, value: pstate }));
-+ assert!(state.contains(&Aarch64Register { id, value: u64::from_le_bytes(val).into() }));
- }
-
- #[test]
---- a/src/vmm/src/vstate/vcpu/aarch64.rs
-+++ b/src/vmm/src/vstate/vcpu/aarch64.rs
-@@ -102,7 +102,7 @@
- ) -> std::result::Result<(), Error> {
- for Aarch64Register { id, value } in vcpu_config.cpu_config.regs.iter() {
- self.fd
-- .set_one_reg(*id, *value)
-+ .set_one_reg(*id, &value.to_le_bytes())
- .map_err(|err| Error::ApplyCpuTemplate(ArchError::SetOneReg(*id, err)))?;
- }
- self.additional_register_ids = vcpu_config.cpu_config.register_ids();
-@@ -230,9 +230,10 @@
- reg_list
- .iter()
- .map(|id| {
-- self.fd
-- .get_one_reg(*id)
-- .map(|value| Aarch64Register { id: *id, value })
-+ let mut val = [0_u8; 16];
-+ let result = self.fd.get_one_reg(*id, &mut val);
-+ result
-+ .map(|_| Aarch64Register { id: *id, value: u128::from_le_bytes(val) })
- .map_err(|err| ArchError::GetOneReg(*id, err))
- })
- .collect::<std::result::Result<Vec<_>, ArchError>>()
-@@ -388,13 +389,14 @@
- assert!(!state.regs.is_empty());
- vcpu.restore_state(&state)
- .expect("Cannot restore state of vcpu");
-+ let mut val = [0_u8; 16];
- let value = vcpu
- .fd
-- .get_one_reg(0x6030_0000_0010_003E)
-+ .get_one_reg(0x6030_0000_0010_003E, &mut val)
- .expect("Cannot get sp core register");
- assert!(state.regs.contains(&Aarch64Register {
- id: 0x6030_0000_0010_003E,
-- value
-+ u128::from_le_bytes(val)
- }));
- }
-
diff --git a/firecracker-1.4.1-remove-aws-lc-rs.patch b/firecracker-1.4.1-remove-aws-lc-rs.patch
deleted file mode 100644
index 8bbd62d..0000000
--- a/firecracker-1.4.1-remove-aws-lc-rs.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-The AWS-LC project is yet another TLS library that was would have to be worked
-into Fedora, while Firecracker only uses it for its randomness functions. The
-reason stated for choosing AWS-LC is that Amazon might get it FIPS-certified
-some day. This patch reverts 246a308ef6d1054f7551ebeee7f0191b8518d2ad to go
-back to the original implementation with the rand crate instead.
-
---- a/resources/seccomp/aarch64-unknown-linux-musl.json
-+++ b/resources/seccomp/aarch64-unknown-linux-musl.json
-@@ -104,7 +104,7 @@
- },
- {
- "syscall": "getrandom",
-- "comment": "getrandom is used by aws-lc library which we consume in virtio-rng"
-+ "comment": "getrandom is used by virtio-rng to initialize the rand crate"
- },
- {
- "syscall": "accept4",
-@@ -206,7 +206,16 @@
- },
- {
- "syscall": "madvise",
-- "comment": "Used by the VirtIO balloon device and by musl for some customer workloads. It is also used by aws-lc during random number generation. They setup a memory page that mark with MADV_WIPEONFORK to be able to detect forks. They also call it with -1 to see if madvise is supported in certain platforms."
-+ "comment": "Used by the VirtIO balloon device and by musl for some customer workloads",
-+ "args": [
-+ {
-+ "index": 2,
-+ "type": "dword",
-+ "op": "eq",
-+ "val": 4,
-+ "comment": "libc::MADV_DONTNEED"
-+ }
-+ ]
- },
- {
- "syscall": "mmap",
---- a/resources/seccomp/x86_64-unknown-linux-musl.json
-+++ b/resources/seccomp/x86_64-unknown-linux-musl.json
-@@ -104,7 +104,7 @@
- },
- {
- "syscall": "getrandom",
-- "comment": "getrandom is used by aws-lc library which we consume in virtio-rng"
-+ "comment": "getrandom is used by virtio-rng to initialize the rand crate"
- },
- {
- "syscall": "accept4",
-@@ -206,7 +206,16 @@
- },
- {
- "syscall": "madvise",
-- "comment": "Used by the VirtIO balloon device and by musl for some customer workloads. It is also used by aws-lc during random number generation. They setup a memory page that mark with MADV_WIPEONFORK to be able to detect forks. They also call it with -1 to see if madvise is supported in certain platforms."
-+ "comment": "Used by the VirtIO balloon device and by musl for some customer workloads",
-+ "args": [
-+ {
-+ "index": 2,
-+ "type": "dword",
-+ "op": "eq",
-+ "val": 4,
-+ "comment": "libc::MADV_DONTNEED"
-+ }
-+ ]
- },
- {
- "syscall": "mmap",
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -6,7 +6,6 @@
- license = "Apache-2.0"
-
- [dependencies]
--aws-lc-rs = "1.0.2"
- bitflags = "2.0.2"
- derive_more = { version = "0.99.17", default-features = false, features = ["from", "display"] }
- event-manager = "0.3.0"
---- a/src/vmm/src/devices/virtio/rng/device.rs
-+++ b/src/vmm/src/devices/virtio/rng/device.rs
-@@ -5,8 +5,9 @@
- use std::sync::atomic::AtomicUsize;
- use std::sync::Arc;
-
--use aws_lc_rs::rand;
- use logger::{debug, error, IncMetric, METRICS};
-+use rand::rngs::OsRng;
-+use rand::RngCore;
- use rate_limiter::{RateLimiter, TokenType};
- use utils::eventfd::EventFd;
- use utils::vm_memory::{GuestMemoryError, GuestMemoryMmap};
-@@ -27,7 +28,7 @@
- #[error("Bad guest memory buffer: {0}")]
- GuestMemory(#[from] GuestMemoryError),
- #[error("Could not get random bytes: {0}")]
-- Random(#[from] aws_lc_rs::error::Unspecified),
-+ Random(#[from] rand::Error),
- }
-
- type Result<T> = std::result::Result<T, Error>;
-@@ -109,7 +110,7 @@
- }
-
- let mut rand_bytes = vec![0; iovec.len()];
-- rand::fill(&mut rand_bytes).map_err(|err| {
-+ OsRng.try_fill_bytes(&mut rand_bytes).map_err(|err| {
- METRICS.entropy.host_rng_fails.inc();
- err
- })?;
diff --git a/firecracker-1.4.1-remove-criterion.patch b/firecracker-1.4.1-remove-criterion.patch
deleted file mode 100644
index 91ded15..0000000
--- a/firecracker-1.4.1-remove-criterion.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-The build does not run benches, and the criterion crate is retired in Fedora.
-
---- a/src/snapshot/Cargo.toml
-+++ b/src/snapshot/Cargo.toml
-@@ -12,9 +12,6 @@
- versionize_derive = "0.1.5"
- thiserror = "1.0.32"
-
--[dev-dependencies]
--criterion = { version = "0.4.0", default-features = false }
--
- [[bench]]
- name = "version_map"
- harness = false
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -39,7 +39,6 @@
- virtio_gen = { path = "../virtio_gen" }
-
- [dev-dependencies]
--criterion = { version = "0.4.0", default-features = false }
- device_tree = "1.1.0"
- proptest = { version = "1.0.0", default-features = false, features = ["std"] }
-
diff --git a/firecracker-1.4.1-remove-device_tree.patch b/firecracker-1.4.1-remove-device_tree.patch
deleted file mode 100644
index 0a9373a..0000000
--- a/firecracker-1.4.1-remove-device_tree.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-This crate is unmaintained for many years with license issues and deprecation
-warnings, but it is only used for two aarch64 tests.
-
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -39,7 +39,6 @@
- virtio_gen = { path = "../virtio_gen" }
-
- [dev-dependencies]
--device_tree = "1.1.0"
- proptest = { version = "1.0.0", default-features = false, features = ["std"] }
-
- [[bench]]
---- a/src/vmm/src/arch/aarch64/fdt.rs
-+++ b/src/vmm/src/arch/aarch64/fdt.rs
-@@ -497,6 +497,7 @@
- }
-
- #[test]
-+ #[cfg(not(test))]
- fn test_create_fdt() {
- let regions = arch_memory_regions(layout::FDT_MAX_SIZE + 0x1000);
- let mem = utils::vm_memory::test_utils::create_anon_guest_memory(®ions, false)
-@@ -555,6 +556,7 @@
- }
-
- #[test]
-+ #[cfg(not(test))]
- fn test_create_fdt_with_initrd() {
- let regions = arch_memory_regions(layout::FDT_MAX_SIZE + 0x1000);
- let mem = utils::vm_memory::test_utils::create_anon_guest_memory(®ions, false)
diff --git a/firecracker-1.4.1-upgrade-linux-loader.patch b/firecracker-1.4.1-upgrade-linux-loader.patch
deleted file mode 100644
index 94bd1e0..0000000
--- a/firecracker-1.4.1-upgrade-linux-loader.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-This backports 0ccc09a4fca700a33055fc93e762ed0ca134a7aa which notes that the
-linux-loader and vm-memory crates must be kept in sync.
-
---- a/src/utils/Cargo.toml
-+++ b/src/utils/Cargo.toml
-@@ -13,7 +13,7 @@
- versionize = "0.1.10"
- versionize_derive = "0.1.5"
- vmm-sys-util = "0.11.0"
--vm-memory = { version = "0.10.0", features = ["backend-mmap", "backend-bitmap"] }
-+vm-memory = { version = "0.12.0", features = ["backend-mmap", "backend-bitmap"] }
-
- net_gen = { path = "../net_gen" }
-
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -13,7 +13,7 @@
- kvm-ioctls = "0.14.0"
- lazy_static = "1.4.0"
- libc = "0.2.117"
--linux-loader = "0.8.1"
-+linux-loader = "0.9.0"
- log = "0.4.17"
- rand = "0.8.5"
- serde = { version = "1.0.136", features = ["derive"] }
diff --git a/firecracker-1.5.0-remove-aws-lc-rs.patch b/firecracker-1.5.0-remove-aws-lc-rs.patch
new file mode 100644
index 0000000..c39a041
--- /dev/null
+++ b/firecracker-1.5.0-remove-aws-lc-rs.patch
@@ -0,0 +1,105 @@
+The AWS-LC project is yet another TLS library that was would have to be worked
+into Fedora, while Firecracker only uses it for its randomness functions. The
+reason stated for choosing AWS-LC is that Amazon might get it FIPS-certified
+some day. This patch reverts 246a308ef6d1054f7551ebeee7f0191b8518d2ad to go
+back to the original implementation with the rand crate instead.
+
+--- a/resources/seccomp/aarch64-unknown-linux-musl.json
++++ b/resources/seccomp/aarch64-unknown-linux-musl.json
+@@ -104,7 +104,7 @@
+ },
+ {
+ "syscall": "getrandom",
+- "comment": "getrandom is used by aws-lc library which we consume in virtio-rng"
++ "comment": "getrandom is used by virtio-rng to initialize the rand crate"
+ },
+ {
+ "syscall": "accept4",
+@@ -206,7 +206,16 @@
+ },
+ {
+ "syscall": "madvise",
+- "comment": "Used by the VirtIO balloon device and by musl for some customer workloads. It is also used by aws-lc during random number generation. They setup a memory page that mark with MADV_WIPEONFORK to be able to detect forks. They also call it with -1 to see if madvise is supported in certain platforms."
++ "comment": "Used by the VirtIO balloon device and by musl for some customer workloads",
++ "args": [
++ {
++ "index": 2,
++ "type": "dword",
++ "op": "eq",
++ "val": 4,
++ "comment": "libc::MADV_DONTNEED"
++ }
++ ]
+ },
+ {
+ "syscall": "mmap",
+--- a/resources/seccomp/x86_64-unknown-linux-musl.json
++++ b/resources/seccomp/x86_64-unknown-linux-musl.json
+@@ -104,7 +104,7 @@
+ },
+ {
+ "syscall": "getrandom",
+- "comment": "getrandom is used by aws-lc library which we consume in virtio-rng"
++ "comment": "getrandom is used by virtio-rng to initialize the rand crate"
+ },
+ {
+ "syscall": "accept4",
+@@ -206,7 +206,16 @@
+ },
+ {
+ "syscall": "madvise",
+- "comment": "Used by the VirtIO balloon device and by musl for some customer workloads. It is also used by aws-lc during random number generation. They setup a memory page that mark with MADV_WIPEONFORK to be able to detect forks. They also call it with -1 to see if madvise is supported in certain platforms."
++ "comment": "Used by the VirtIO balloon device and by musl for some customer workloads",
++ "args": [
++ {
++ "index": 2,
++ "type": "dword",
++ "op": "eq",
++ "val": 4,
++ "comment": "libc::MADV_DONTNEED"
++ }
++ ]
+ },
+ {
+ "syscall": "mmap",
+--- a/src/vmm/Cargo.toml
++++ b/src/vmm/Cargo.toml
+@@ -9,7 +9,7 @@
+ bench = false
+
+ [dependencies]
+-aws-lc-rs = "1.0.2"
++rand = "0.8.5"
+ bitflags = "2.0.2"
+ derive_more = { version = "0.99.17", default-features = false, features = ["from", "display"] }
+ event-manager = "0.3.0"
+--- a/src/vmm/src/devices/virtio/rng/device.rs
++++ b/src/vmm/src/devices/virtio/rng/device.rs
+@@ -5,7 +5,8 @@
+ use std::sync::atomic::AtomicUsize;
+ use std::sync::Arc;
+
+-use aws_lc_rs::rand;
++use rand::rngs::OsRng;
++use rand::RngCore;
+ use utils::eventfd::EventFd;
+ use utils::vm_memory::{GuestMemoryError, GuestMemoryMmap};
+ use virtio_gen::virtio_rng::VIRTIO_F_VERSION_1;
+@@ -29,7 +30,7 @@
+ /// Bad guest memory buffer: {0}
+ GuestMemory(#[from] GuestMemoryError),
+ /// Could not get random bytes: {0}
+- Random(#[from] aws_lc_rs::error::Unspecified),
++ Random(#[from] rand::Error),
+ }
+
+ #[derive(Debug)]
+@@ -113,7 +114,7 @@
+ }
+
+ let mut rand_bytes = vec![0; iovec.len()];
+- rand::fill(&mut rand_bytes).map_err(|err| {
++ OsRng.try_fill_bytes(&mut rand_bytes).map_err(|err| {
+ METRICS.entropy.host_rng_fails.inc();
+ err
+ })?;
diff --git a/firecracker-1.5.0-remove-cargo_toml.patch b/firecracker-1.5.0-remove-cargo_toml.patch
new file mode 100644
index 0000000..39bec0c
--- /dev/null
+++ b/firecracker-1.5.0-remove-cargo_toml.patch
@@ -0,0 +1,19 @@
+This crate has licensing issues and is only used for a developer test.
+
+--- a/src/firecracker/Cargo.toml
++++ b/src/firecracker/Cargo.toml
+@@ -27,7 +27,6 @@
+ vmm = { path = "../vmm" }
+
+ [dev-dependencies]
+-cargo_toml = "0.16.3"
+ regex = { version = "1.9.6", default-features = false, features = ["std", "unicode-perl"] }
+
+ # Dev-Dependencies for uffd examples
+--- a/src/firecracker/tests/verify_dependencies.rs
++++ b/src/firecracker/tests/verify_dependencies.rs
+@@ -1,3 +1,4 @@
++#![cfg(not(test))]
+ // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ // SPDX-License-Identifier: Apache-2.0
+
diff --git a/firecracker-1.5.0-remove-criterion.patch b/firecracker-1.5.0-remove-criterion.patch
new file mode 100644
index 0000000..474e3ac
--- /dev/null
+++ b/firecracker-1.5.0-remove-criterion.patch
@@ -0,0 +1,24 @@
+The package build does not run benches.
+
+--- a/src/snapshot/Cargo.toml
++++ b/src/snapshot/Cargo.toml
+@@ -16,9 +16,6 @@
+ thiserror = "1.0.32"
+ displaydoc = "0.2.4"
+
+-[dev-dependencies]
+-criterion = { version = "0.5.0", default-features = false }
+-
+ [[bench]]
+ name = "version_map"
+ harness = false
+--- a/src/vmm/Cargo.toml
++++ b/src/vmm/Cargo.toml
+@@ -42,7 +42,6 @@
+ virtio_gen = { path = "../virtio_gen" }
+
+ [dev-dependencies]
+-criterion = { version = "0.5.0", default-features = false }
+ device_tree = "1.1.0"
+ proptest = { version = "1.0.0", default-features = false, features = ["std"] }
+
diff --git a/firecracker-1.5.0-remove-device_tree.patch b/firecracker-1.5.0-remove-device_tree.patch
new file mode 100644
index 0000000..878d4f1
--- /dev/null
+++ b/firecracker-1.5.0-remove-device_tree.patch
@@ -0,0 +1,31 @@
+This crate is unmaintained for many years with license issues and deprecation
+warnings, and it is only used for two aarch64 tests.
+
+--- a/src/vmm/Cargo.toml
++++ b/src/vmm/Cargo.toml
+@@ -42,7 +42,6 @@
+ virtio_gen = { path = "../virtio_gen" }
+
+ [dev-dependencies]
+-device_tree = "1.1.0"
+ proptest = { version = "1.0.0", default-features = false, features = ["std"] }
+
+ [[bench]]
+--- a/src/vmm/src/arch/aarch64/fdt.rs
++++ b/src/vmm/src/arch/aarch64/fdt.rs
+@@ -494,6 +494,7 @@
+ }
+
+ #[test]
++ #[cfg(not(test))]
+ fn test_create_fdt() {
+ let regions = arch_memory_regions(layout::FDT_MAX_SIZE + 0x1000);
+ let mem = utils::vm_memory::test_utils::create_anon_guest_memory(®ions, false)
+@@ -552,6 +553,7 @@
+ }
+
+ #[test]
++ #[cfg(not(test))]
+ fn test_create_fdt_with_initrd() {
+ let regions = arch_memory_regions(layout::FDT_MAX_SIZE + 0x1000);
+ let mem = utils::vm_memory::test_utils::create_anon_guest_memory(®ions, false)
diff --git a/firecracker.spec b/firecracker.spec
index 97bed2e..a179cfa 100644
--- a/firecracker.spec
+++ b/firecracker.spec
@@ -1,21 +1,15 @@
-# Disable tests by default since VMs can't run in containerized Fedora builds.
-%bcond_with check
-
# The RPM macro cargo_target can be defined to specify the Rust target to use
# during the build. When undefined, the distro's default target is used.
-# Assume that musl targets produce static binaries by default, which determines
-# if the jailer program is usable. It should still build successfully with any
-# linkage setting, so this conditional allows forcing it to build or not.
-%if %{lua:print(rpm.expand("%{cargo_target}"):match("musl") and "1" or "0")}
-%bcond_without jailer
-%else
-%bcond_with jailer
-%endif
+# Disable tests by default since VMs can't run in containerized Fedora builds.
+%bcond check 0
+
+# The jailer's documentation says only musl targets are supported.
+%bcond jailer %{lua:print(rpm.expand("%{cargo_target}"):find("musl") or 0)}
Name: firecracker
-Version: 1.4.1
-Release: 3%{?dist}
+Version: 1.5.0
+Release: 1%{?dist}
Summary: Secure and fast microVMs for serverless computing
License: Apache-2.0 AND (Apache-2.0 OR BSD-3-Clause) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-3-Clause AND MIT AND Unicode-DFS-2016
@@ -24,22 +18,16 @@ URL: https://firecracker-microvm.github.io/
Source0: https://github.com/firecracker-microvm/firecracker/archive/v%{version}/%{...
# Bundle forked versions of existing crates to avoid conflicts with upstreams.
-Source1: https://github.com/firecracker-microvm/kvm-bindings/archive/e8359204b41d5...
-Source2: https://github.com/firecracker-microvm/micro-http/archive/4b18a043e997da5...
-
-# kvm-bindings: Apache-2.0
-Provides: bundled(crate(kvm-bindings)) = 0.6.0^gite835920
-# micro_http: Apache-2.0
-Provides: bundled(crate(micro_http)) = 0.1.0^git4b18a04
+Source1: https://github.com/firecracker-microvm/kvm-bindings/archive/b1585959b4ac4...
+Source2: https://github.com/firecracker-microvm/micro-http/archive/a4d632f2c5ea457...
+Provides: bundled(crate(kvm-bindings)) = 0.6.0^gitb158595
+Provides: bundled(crate(micro_http)) = 0.1.0^gita4d632f
# Edit crate dependencies to track what is packaged in Fedora.
-# These patches do not make sense to send upstream given their purpose.
-Patch: %{name}-1.4.1-remove-aws-lc-rs.patch
-Patch: %{name}-1.4.0-remove-cargo_toml.patch
-Patch: %{name}-1.4.1-remove-criterion.patch
-Patch: %{name}-1.4.1-remove-device_tree.patch
-Patch: %{name}-1.4.0-upgrade-kvm-ioctls.patch
-Patch: %{name}-1.4.1-upgrade-linux-loader.patch
+Patch: %{name}-1.5.0-remove-aws-lc-rs.patch
+Patch: %{name}-1.5.0-remove-cargo_toml.patch
+Patch: %{name}-1.5.0-remove-criterion.patch
+Patch: %{name}-1.5.0-remove-device_tree.patch
BuildRequires: cargo-rpm-macros >= 24
%if %defined cargo_target
@@ -74,8 +62,7 @@ sed -i -e 's,../../forks,forks,' Cargo.toml
%cargo_prep
%generate_buildrequires
-# Unconditionally include dev-dependencies to avoid build failures.
-cargo2rpm --path Cargo.toml buildrequires --with-check
+%cargo_generate_buildrequires
%build
%cargo_build -- --package={cpu-template-helper,firecracker,%{?with_jailer:jailer,}rebase-snap,seccompiler} %{?cargo_target:--target=%{cargo_target}}
@@ -112,6 +99,9 @@ done
%changelog
+* Thu Oct 12 2023 David Michael <fedora.dm0(a)gmail.com> - 1.5.0-1
+- Update to the 1.5.0 release.
+
* Sun Oct 01 2023 Fabio Valentini <decathorpe(a)gmail.com> - 1.4.1-3
- Rebuild for aes-gcm v0.10.3 / CVE-2023-42811.
diff --git a/sources b/sources
index 5a501b1..b230c85 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (firecracker-1.4.1.tar.gz) = 20d105b4ee87728f5d92921148dd507ed0e727100cf04320943af66dee4d169d572b40a54c288fabe2b57d7c08337cd9a0138601ad90c76338b4177786ca2ee5
-SHA512 (kvm-bindings-e835920.tar.gz) = e9e713c72e5a7cdd05063ec273abb8ab54aec71519119e7fbe0e93923dea89e3987346a7a09a101f01ace911ef6ac0694febc131e45b84692592065fa82eb74c
-SHA512 (micro_http-4b18a04.tar.gz) = 883d76820b5ed3fa36cb8110bf34ca7fa9e345a9c4f5040f77f4a578cc86fdfde51bcb4fa4daf6ab371a67ed27bd36df38c710e884a59b85c672c2843c87d7d6
+SHA512 (firecracker-1.5.0.tar.gz) = 6a76c81cab04ac2999efa946f76e499f019a3afc300396c60fe4b8972e35fcb053114ddca63520b63776265ac551a62f4d8146cc9f331d986aeac2eb3d84e17c
+SHA512 (kvm-bindings-b158595.tar.gz) = 5e5a8f76858dcc1bc1d17243b5ca55b2e9cdd346d20e8a517d8f9e6b3273c146c76906909a2dca96a449f6dfecf8aaeb295024767848537bd2fc81a4055412a6
+SHA512 (micro_http-a4d632f.tar.gz) = 6d0cd910a2e790f8b4e12353641da9aeba4cf283f8aa519395c6add1e7a040cd9a1f0b95430d5545401309b888e4a7f947a5115cbd3ce612c7c1cee6317804a4
https://src.fedoraproject.org/rpms/firecracker/c/5541bc6c7c603fe6500aedd9...
7 months
dm0 pushed to rpms/firecracker (f39). "Update to version 1.5.0"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:15:49 UTC
From 5541bc6c7c603fe6500aedd97615fb78d14827a3 Mon Sep 17 00:00:00 2001
From: David Michael <fedora.dm0(a)gmail.com>
Date: Oct 31 2023 16:35:57 +0000
Subject: Update to version 1.5.0
---
diff --git a/.gitignore b/.gitignore
index cc40b21..b395193 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-/firecracker-1.4.1.tar.gz
-/kvm-bindings-e835920.tar.gz
-/micro_http-4b18a04.tar.gz
+/firecracker-1.5.0.tar.gz
+/kvm-bindings-b158595.tar.gz
+/micro_http-a4d632f.tar.gz
diff --git a/firecracker-1.4.0-remove-cargo_toml.patch b/firecracker-1.4.0-remove-cargo_toml.patch
deleted file mode 100644
index 6007f4c..0000000
--- a/firecracker-1.4.0-remove-cargo_toml.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-This crate has licensing issues and is only used for a developer test.
-
---- a/src/firecracker/Cargo.toml
-+++ b/src/firecracker/Cargo.toml
-@@ -23,5 +23,4 @@
- vmm = { path = "../vmm" }
-
- [dev-dependencies]
--cargo_toml = "0.13.0"
- regex = { version = "1.5.5", default-features = false, features = ["std"] }
---- a/src/firecracker/tests/verify_dependencies.rs
-+++ b/src/firecracker/tests/verify_dependencies.rs
-@@ -1,3 +1,4 @@
-+#![cfg(not(test))]
- // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- // SPDX-License-Identifier: Apache-2.0
-
diff --git a/firecracker-1.4.0-upgrade-kvm-ioctls.patch b/firecracker-1.4.0-upgrade-kvm-ioctls.patch
deleted file mode 100644
index aac5f60..0000000
--- a/firecracker-1.4.0-upgrade-kvm-ioctls.patch
+++ /dev/null
@@ -1,267 +0,0 @@
-Switch to a branch packaged in Fedora, also seen in upstream commit
-72ac94b2637b73f23ef98b2f6fe9c622ad4287fc. Update the API to get/set a register
-by switching to variable byte slices instead of integers.
-
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -10,7 +10,7 @@
- derive_more = { version = "0.99.17", default-features = false, features = ["from", "display"] }
- event-manager = "0.3.0"
- kvm-bindings = { version = "0.6.0", features = ["fam-wrappers"] }
--kvm-ioctls = "0.12.0"
-+kvm-ioctls = "0.14.0"
- lazy_static = "1.4.0"
- libc = "0.2.117"
- linux-loader = "0.8.1"
---- a/src/vmm/src/arch/aarch64/regs.rs
-+++ b/src/vmm/src/arch/aarch64/regs.rs
-@@ -229,7 +229,7 @@
- let pstate = offset__of!(user_pt_regs, pstate) + kreg_off;
- vcpu.set_one_reg(
- arm64_core_reg_id!(KVM_REG_SIZE_U64, pstate),
-- PSTATE_FAULT_BITS_64.into(),
-+ &PSTATE_FAULT_BITS_64.to_le_bytes(),
- )
- .map_err(|err| Error::SetCoreRegister(err, "processor state".to_string()))?;
-
-@@ -237,7 +237,7 @@
- if cpu_id == 0 {
- // Setting the PC (Processor Counter) to the current program address (kernel address).
- let pc = offset__of!(user_pt_regs, pc) + kreg_off;
-- vcpu.set_one_reg(arm64_core_reg_id!(KVM_REG_SIZE_U64, pc), boot_ip.into())
-+ vcpu.set_one_reg(arm64_core_reg_id!(KVM_REG_SIZE_U64, pc), &boot_ip.to_le_bytes())
- .map_err(|err| Error::SetCoreRegister(err, "program counter".to_string()))?;
-
- // Last mandatory thing to set -> the address pointing to the FDT (also called DTB).
-@@ -247,7 +247,7 @@
- let regs0 = offset__of!(user_pt_regs, regs) + kreg_off;
- vcpu.set_one_reg(
- arm64_core_reg_id!(KVM_REG_SIZE_U64, regs0),
-- get_fdt_addr(mem).into(),
-+ &get_fdt_addr(mem).to_le_bytes(),
- )
- .map_err(|err| Error::SetCoreRegister(err, "X0".to_string()))?;
- }
-@@ -279,11 +279,12 @@
- ///
- /// * `vcpu` - Structure for the VCPU that holds the VCPU's fd.
- pub fn read_mpidr(vcpu: &VcpuFd) -> Result<u64> {
-- match vcpu.get_one_reg(MPIDR_EL1) {
-+ let mut mpidr = [0_u8; 8];
-+ match vcpu.get_one_reg(MPIDR_EL1, &mut mpidr) {
- Err(err) => Err(Error::GetSysRegister(MPIDR_EL1, err)),
- // MPIDR register is 64 bit wide on aarch64, this expect cannot fail
- // on supported architectures
-- Ok(val) => Ok(val.try_into().expect("MPIDR register to be 64 bit")),
-+ Ok(_) => Ok(u64::from_le_bytes(mpidr)),
- }
- }
-
-@@ -304,9 +305,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, format!("X{}", i)))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, format!("X{}", i)))?; u64::from_le_bytes(val).into() },
- });
- off += std::mem::size_of::<u64>();
- }
-@@ -317,9 +318,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "stack pointer".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "stack pointer".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // Second one, the program counter.
-@@ -327,9 +328,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "program counter".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "program counter".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // Next is the processor state.
-@@ -337,9 +338,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "processor state".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "processor state".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // The stack pointer associated with EL1.
-@@ -347,9 +348,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "SP_EL1".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "SP_EL1".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // Exception Link Register for EL1, when taking an exception to EL1, this register
-@@ -358,9 +359,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "ELR_EL1".to_string()))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "ELR_EL1".to_string()))?; u64::from_le_bytes(val).into() },
- });
-
- // Saved Program Status Registers, there are 5 of them used in the kernel.
-@@ -369,9 +370,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, format!("SPSR{}", i)))?,
-+ value: { let mut val = [0_u8; 8]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, format!("SPSR{}", i)))?; u64::from_le_bytes(val).into() },
- });
- off += std::mem::size_of::<u64>();
- }
-@@ -383,9 +384,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U128, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, format!("FP_VREG{}", i)))?,
-+ value: { let mut val = [0_u8; 16]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, format!("FP_VREG{}", i)))?; u128::from_le_bytes(val) },
- });
- off += mem::size_of::<u128>();
- }
-@@ -395,9 +396,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U32, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "FPSR".to_string()))?,
-+ value: { let mut val = [0_u8; 4]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "FPSR".to_string()))?; u32::from_le_bytes(val).into() },
- });
-
- // Floating-point Control Register.
-@@ -405,9 +406,9 @@
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U32, off);
- state.push(Aarch64Register {
- id,
-- value: vcpu
-- .get_one_reg(id)
-- .map_err(|err| Error::GetCoreRegister(err, "FPCR".to_string()))?,
-+ value: { let mut val = [0_u8; 4]; vcpu
-+ .get_one_reg(id, &mut val)
-+ .map_err(|err| Error::GetCoreRegister(err, "FPCR".to_string()))?; u32::from_le_bytes(val).into() },
- });
-
- Ok(())
-@@ -451,9 +452,9 @@
- for id in ids.iter() {
- state.push(Aarch64Register {
- id: *id,
-- value: vcpu
-- .get_one_reg(*id)
-- .map_err(|e| Error::GetSysRegister(*id, e))?,
-+ value: { let mut val = [0_u8; 16]; vcpu
-+ .get_one_reg(*id, &mut val)
-+ .map_err(|e| Error::GetSysRegister(*id, e))?; u128::from_le_bytes(val) },
- });
- }
-
-@@ -468,7 +469,7 @@
- /// * `state` - Structure containing the state of the system registers.
- pub fn restore_registers(vcpu: &VcpuFd, state: &[Aarch64Register]) -> Result<()> {
- for reg in state {
-- vcpu.set_one_reg(reg.id, reg.value)
-+ vcpu.set_one_reg(reg.id, ®.value.to_le_bytes())
- .map_err(|e| Error::SetSysRegister(reg.id, e))?;
- }
- Ok(())
-@@ -586,10 +587,11 @@
- restore_registers(&vcpu, &state).unwrap();
- let off = offset__of!(user_pt_regs, pstate);
- let id = arm64_core_reg_id!(KVM_REG_SIZE_U64, off);
-+ let mut val = [0_u8; 8];
- let pstate = vcpu
-- .get_one_reg(id)
-+ .get_one_reg(id, &mut val)
- .expect("Failed to call kvm get one reg");
-- assert!(state.contains(&Aarch64Register { id, value: pstate }));
-+ assert!(state.contains(&Aarch64Register { id, value: u64::from_le_bytes(val).into() }));
- }
-
- #[test]
---- a/src/vmm/src/vstate/vcpu/aarch64.rs
-+++ b/src/vmm/src/vstate/vcpu/aarch64.rs
-@@ -102,7 +102,7 @@
- ) -> std::result::Result<(), Error> {
- for Aarch64Register { id, value } in vcpu_config.cpu_config.regs.iter() {
- self.fd
-- .set_one_reg(*id, *value)
-+ .set_one_reg(*id, &value.to_le_bytes())
- .map_err(|err| Error::ApplyCpuTemplate(ArchError::SetOneReg(*id, err)))?;
- }
- self.additional_register_ids = vcpu_config.cpu_config.register_ids();
-@@ -230,9 +230,10 @@
- reg_list
- .iter()
- .map(|id| {
-- self.fd
-- .get_one_reg(*id)
-- .map(|value| Aarch64Register { id: *id, value })
-+ let mut val = [0_u8; 16];
-+ let result = self.fd.get_one_reg(*id, &mut val);
-+ result
-+ .map(|_| Aarch64Register { id: *id, value: u128::from_le_bytes(val) })
- .map_err(|err| ArchError::GetOneReg(*id, err))
- })
- .collect::<std::result::Result<Vec<_>, ArchError>>()
-@@ -388,13 +389,14 @@
- assert!(!state.regs.is_empty());
- vcpu.restore_state(&state)
- .expect("Cannot restore state of vcpu");
-+ let mut val = [0_u8; 16];
- let value = vcpu
- .fd
-- .get_one_reg(0x6030_0000_0010_003E)
-+ .get_one_reg(0x6030_0000_0010_003E, &mut val)
- .expect("Cannot get sp core register");
- assert!(state.regs.contains(&Aarch64Register {
- id: 0x6030_0000_0010_003E,
-- value
-+ u128::from_le_bytes(val)
- }));
- }
-
diff --git a/firecracker-1.4.1-remove-aws-lc-rs.patch b/firecracker-1.4.1-remove-aws-lc-rs.patch
deleted file mode 100644
index 8bbd62d..0000000
--- a/firecracker-1.4.1-remove-aws-lc-rs.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-The AWS-LC project is yet another TLS library that was would have to be worked
-into Fedora, while Firecracker only uses it for its randomness functions. The
-reason stated for choosing AWS-LC is that Amazon might get it FIPS-certified
-some day. This patch reverts 246a308ef6d1054f7551ebeee7f0191b8518d2ad to go
-back to the original implementation with the rand crate instead.
-
---- a/resources/seccomp/aarch64-unknown-linux-musl.json
-+++ b/resources/seccomp/aarch64-unknown-linux-musl.json
-@@ -104,7 +104,7 @@
- },
- {
- "syscall": "getrandom",
-- "comment": "getrandom is used by aws-lc library which we consume in virtio-rng"
-+ "comment": "getrandom is used by virtio-rng to initialize the rand crate"
- },
- {
- "syscall": "accept4",
-@@ -206,7 +206,16 @@
- },
- {
- "syscall": "madvise",
-- "comment": "Used by the VirtIO balloon device and by musl for some customer workloads. It is also used by aws-lc during random number generation. They setup a memory page that mark with MADV_WIPEONFORK to be able to detect forks. They also call it with -1 to see if madvise is supported in certain platforms."
-+ "comment": "Used by the VirtIO balloon device and by musl for some customer workloads",
-+ "args": [
-+ {
-+ "index": 2,
-+ "type": "dword",
-+ "op": "eq",
-+ "val": 4,
-+ "comment": "libc::MADV_DONTNEED"
-+ }
-+ ]
- },
- {
- "syscall": "mmap",
---- a/resources/seccomp/x86_64-unknown-linux-musl.json
-+++ b/resources/seccomp/x86_64-unknown-linux-musl.json
-@@ -104,7 +104,7 @@
- },
- {
- "syscall": "getrandom",
-- "comment": "getrandom is used by aws-lc library which we consume in virtio-rng"
-+ "comment": "getrandom is used by virtio-rng to initialize the rand crate"
- },
- {
- "syscall": "accept4",
-@@ -206,7 +206,16 @@
- },
- {
- "syscall": "madvise",
-- "comment": "Used by the VirtIO balloon device and by musl for some customer workloads. It is also used by aws-lc during random number generation. They setup a memory page that mark with MADV_WIPEONFORK to be able to detect forks. They also call it with -1 to see if madvise is supported in certain platforms."
-+ "comment": "Used by the VirtIO balloon device and by musl for some customer workloads",
-+ "args": [
-+ {
-+ "index": 2,
-+ "type": "dword",
-+ "op": "eq",
-+ "val": 4,
-+ "comment": "libc::MADV_DONTNEED"
-+ }
-+ ]
- },
- {
- "syscall": "mmap",
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -6,7 +6,6 @@
- license = "Apache-2.0"
-
- [dependencies]
--aws-lc-rs = "1.0.2"
- bitflags = "2.0.2"
- derive_more = { version = "0.99.17", default-features = false, features = ["from", "display"] }
- event-manager = "0.3.0"
---- a/src/vmm/src/devices/virtio/rng/device.rs
-+++ b/src/vmm/src/devices/virtio/rng/device.rs
-@@ -5,8 +5,9 @@
- use std::sync::atomic::AtomicUsize;
- use std::sync::Arc;
-
--use aws_lc_rs::rand;
- use logger::{debug, error, IncMetric, METRICS};
-+use rand::rngs::OsRng;
-+use rand::RngCore;
- use rate_limiter::{RateLimiter, TokenType};
- use utils::eventfd::EventFd;
- use utils::vm_memory::{GuestMemoryError, GuestMemoryMmap};
-@@ -27,7 +28,7 @@
- #[error("Bad guest memory buffer: {0}")]
- GuestMemory(#[from] GuestMemoryError),
- #[error("Could not get random bytes: {0}")]
-- Random(#[from] aws_lc_rs::error::Unspecified),
-+ Random(#[from] rand::Error),
- }
-
- type Result<T> = std::result::Result<T, Error>;
-@@ -109,7 +110,7 @@
- }
-
- let mut rand_bytes = vec![0; iovec.len()];
-- rand::fill(&mut rand_bytes).map_err(|err| {
-+ OsRng.try_fill_bytes(&mut rand_bytes).map_err(|err| {
- METRICS.entropy.host_rng_fails.inc();
- err
- })?;
diff --git a/firecracker-1.4.1-remove-criterion.patch b/firecracker-1.4.1-remove-criterion.patch
deleted file mode 100644
index 91ded15..0000000
--- a/firecracker-1.4.1-remove-criterion.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-The build does not run benches, and the criterion crate is retired in Fedora.
-
---- a/src/snapshot/Cargo.toml
-+++ b/src/snapshot/Cargo.toml
-@@ -12,9 +12,6 @@
- versionize_derive = "0.1.5"
- thiserror = "1.0.32"
-
--[dev-dependencies]
--criterion = { version = "0.4.0", default-features = false }
--
- [[bench]]
- name = "version_map"
- harness = false
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -39,7 +39,6 @@
- virtio_gen = { path = "../virtio_gen" }
-
- [dev-dependencies]
--criterion = { version = "0.4.0", default-features = false }
- device_tree = "1.1.0"
- proptest = { version = "1.0.0", default-features = false, features = ["std"] }
-
diff --git a/firecracker-1.4.1-remove-device_tree.patch b/firecracker-1.4.1-remove-device_tree.patch
deleted file mode 100644
index 0a9373a..0000000
--- a/firecracker-1.4.1-remove-device_tree.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-This crate is unmaintained for many years with license issues and deprecation
-warnings, but it is only used for two aarch64 tests.
-
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -39,7 +39,6 @@
- virtio_gen = { path = "../virtio_gen" }
-
- [dev-dependencies]
--device_tree = "1.1.0"
- proptest = { version = "1.0.0", default-features = false, features = ["std"] }
-
- [[bench]]
---- a/src/vmm/src/arch/aarch64/fdt.rs
-+++ b/src/vmm/src/arch/aarch64/fdt.rs
-@@ -497,6 +497,7 @@
- }
-
- #[test]
-+ #[cfg(not(test))]
- fn test_create_fdt() {
- let regions = arch_memory_regions(layout::FDT_MAX_SIZE + 0x1000);
- let mem = utils::vm_memory::test_utils::create_anon_guest_memory(®ions, false)
-@@ -555,6 +556,7 @@
- }
-
- #[test]
-+ #[cfg(not(test))]
- fn test_create_fdt_with_initrd() {
- let regions = arch_memory_regions(layout::FDT_MAX_SIZE + 0x1000);
- let mem = utils::vm_memory::test_utils::create_anon_guest_memory(®ions, false)
diff --git a/firecracker-1.4.1-upgrade-linux-loader.patch b/firecracker-1.4.1-upgrade-linux-loader.patch
deleted file mode 100644
index 94bd1e0..0000000
--- a/firecracker-1.4.1-upgrade-linux-loader.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-This backports 0ccc09a4fca700a33055fc93e762ed0ca134a7aa which notes that the
-linux-loader and vm-memory crates must be kept in sync.
-
---- a/src/utils/Cargo.toml
-+++ b/src/utils/Cargo.toml
-@@ -13,7 +13,7 @@
- versionize = "0.1.10"
- versionize_derive = "0.1.5"
- vmm-sys-util = "0.11.0"
--vm-memory = { version = "0.10.0", features = ["backend-mmap", "backend-bitmap"] }
-+vm-memory = { version = "0.12.0", features = ["backend-mmap", "backend-bitmap"] }
-
- net_gen = { path = "../net_gen" }
-
---- a/src/vmm/Cargo.toml
-+++ b/src/vmm/Cargo.toml
-@@ -13,7 +13,7 @@
- kvm-ioctls = "0.14.0"
- lazy_static = "1.4.0"
- libc = "0.2.117"
--linux-loader = "0.8.1"
-+linux-loader = "0.9.0"
- log = "0.4.17"
- rand = "0.8.5"
- serde = { version = "1.0.136", features = ["derive"] }
diff --git a/firecracker-1.5.0-remove-aws-lc-rs.patch b/firecracker-1.5.0-remove-aws-lc-rs.patch
new file mode 100644
index 0000000..c39a041
--- /dev/null
+++ b/firecracker-1.5.0-remove-aws-lc-rs.patch
@@ -0,0 +1,105 @@
+The AWS-LC project is yet another TLS library that was would have to be worked
+into Fedora, while Firecracker only uses it for its randomness functions. The
+reason stated for choosing AWS-LC is that Amazon might get it FIPS-certified
+some day. This patch reverts 246a308ef6d1054f7551ebeee7f0191b8518d2ad to go
+back to the original implementation with the rand crate instead.
+
+--- a/resources/seccomp/aarch64-unknown-linux-musl.json
++++ b/resources/seccomp/aarch64-unknown-linux-musl.json
+@@ -104,7 +104,7 @@
+ },
+ {
+ "syscall": "getrandom",
+- "comment": "getrandom is used by aws-lc library which we consume in virtio-rng"
++ "comment": "getrandom is used by virtio-rng to initialize the rand crate"
+ },
+ {
+ "syscall": "accept4",
+@@ -206,7 +206,16 @@
+ },
+ {
+ "syscall": "madvise",
+- "comment": "Used by the VirtIO balloon device and by musl for some customer workloads. It is also used by aws-lc during random number generation. They setup a memory page that mark with MADV_WIPEONFORK to be able to detect forks. They also call it with -1 to see if madvise is supported in certain platforms."
++ "comment": "Used by the VirtIO balloon device and by musl for some customer workloads",
++ "args": [
++ {
++ "index": 2,
++ "type": "dword",
++ "op": "eq",
++ "val": 4,
++ "comment": "libc::MADV_DONTNEED"
++ }
++ ]
+ },
+ {
+ "syscall": "mmap",
+--- a/resources/seccomp/x86_64-unknown-linux-musl.json
++++ b/resources/seccomp/x86_64-unknown-linux-musl.json
+@@ -104,7 +104,7 @@
+ },
+ {
+ "syscall": "getrandom",
+- "comment": "getrandom is used by aws-lc library which we consume in virtio-rng"
++ "comment": "getrandom is used by virtio-rng to initialize the rand crate"
+ },
+ {
+ "syscall": "accept4",
+@@ -206,7 +206,16 @@
+ },
+ {
+ "syscall": "madvise",
+- "comment": "Used by the VirtIO balloon device and by musl for some customer workloads. It is also used by aws-lc during random number generation. They setup a memory page that mark with MADV_WIPEONFORK to be able to detect forks. They also call it with -1 to see if madvise is supported in certain platforms."
++ "comment": "Used by the VirtIO balloon device and by musl for some customer workloads",
++ "args": [
++ {
++ "index": 2,
++ "type": "dword",
++ "op": "eq",
++ "val": 4,
++ "comment": "libc::MADV_DONTNEED"
++ }
++ ]
+ },
+ {
+ "syscall": "mmap",
+--- a/src/vmm/Cargo.toml
++++ b/src/vmm/Cargo.toml
+@@ -9,7 +9,7 @@
+ bench = false
+
+ [dependencies]
+-aws-lc-rs = "1.0.2"
++rand = "0.8.5"
+ bitflags = "2.0.2"
+ derive_more = { version = "0.99.17", default-features = false, features = ["from", "display"] }
+ event-manager = "0.3.0"
+--- a/src/vmm/src/devices/virtio/rng/device.rs
++++ b/src/vmm/src/devices/virtio/rng/device.rs
+@@ -5,7 +5,8 @@
+ use std::sync::atomic::AtomicUsize;
+ use std::sync::Arc;
+
+-use aws_lc_rs::rand;
++use rand::rngs::OsRng;
++use rand::RngCore;
+ use utils::eventfd::EventFd;
+ use utils::vm_memory::{GuestMemoryError, GuestMemoryMmap};
+ use virtio_gen::virtio_rng::VIRTIO_F_VERSION_1;
+@@ -29,7 +30,7 @@
+ /// Bad guest memory buffer: {0}
+ GuestMemory(#[from] GuestMemoryError),
+ /// Could not get random bytes: {0}
+- Random(#[from] aws_lc_rs::error::Unspecified),
++ Random(#[from] rand::Error),
+ }
+
+ #[derive(Debug)]
+@@ -113,7 +114,7 @@
+ }
+
+ let mut rand_bytes = vec![0; iovec.len()];
+- rand::fill(&mut rand_bytes).map_err(|err| {
++ OsRng.try_fill_bytes(&mut rand_bytes).map_err(|err| {
+ METRICS.entropy.host_rng_fails.inc();
+ err
+ })?;
diff --git a/firecracker-1.5.0-remove-cargo_toml.patch b/firecracker-1.5.0-remove-cargo_toml.patch
new file mode 100644
index 0000000..39bec0c
--- /dev/null
+++ b/firecracker-1.5.0-remove-cargo_toml.patch
@@ -0,0 +1,19 @@
+This crate has licensing issues and is only used for a developer test.
+
+--- a/src/firecracker/Cargo.toml
++++ b/src/firecracker/Cargo.toml
+@@ -27,7 +27,6 @@
+ vmm = { path = "../vmm" }
+
+ [dev-dependencies]
+-cargo_toml = "0.16.3"
+ regex = { version = "1.9.6", default-features = false, features = ["std", "unicode-perl"] }
+
+ # Dev-Dependencies for uffd examples
+--- a/src/firecracker/tests/verify_dependencies.rs
++++ b/src/firecracker/tests/verify_dependencies.rs
+@@ -1,3 +1,4 @@
++#![cfg(not(test))]
+ // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ // SPDX-License-Identifier: Apache-2.0
+
diff --git a/firecracker-1.5.0-remove-criterion.patch b/firecracker-1.5.0-remove-criterion.patch
new file mode 100644
index 0000000..474e3ac
--- /dev/null
+++ b/firecracker-1.5.0-remove-criterion.patch
@@ -0,0 +1,24 @@
+The package build does not run benches.
+
+--- a/src/snapshot/Cargo.toml
++++ b/src/snapshot/Cargo.toml
+@@ -16,9 +16,6 @@
+ thiserror = "1.0.32"
+ displaydoc = "0.2.4"
+
+-[dev-dependencies]
+-criterion = { version = "0.5.0", default-features = false }
+-
+ [[bench]]
+ name = "version_map"
+ harness = false
+--- a/src/vmm/Cargo.toml
++++ b/src/vmm/Cargo.toml
+@@ -42,7 +42,6 @@
+ virtio_gen = { path = "../virtio_gen" }
+
+ [dev-dependencies]
+-criterion = { version = "0.5.0", default-features = false }
+ device_tree = "1.1.0"
+ proptest = { version = "1.0.0", default-features = false, features = ["std"] }
+
diff --git a/firecracker-1.5.0-remove-device_tree.patch b/firecracker-1.5.0-remove-device_tree.patch
new file mode 100644
index 0000000..878d4f1
--- /dev/null
+++ b/firecracker-1.5.0-remove-device_tree.patch
@@ -0,0 +1,31 @@
+This crate is unmaintained for many years with license issues and deprecation
+warnings, and it is only used for two aarch64 tests.
+
+--- a/src/vmm/Cargo.toml
++++ b/src/vmm/Cargo.toml
+@@ -42,7 +42,6 @@
+ virtio_gen = { path = "../virtio_gen" }
+
+ [dev-dependencies]
+-device_tree = "1.1.0"
+ proptest = { version = "1.0.0", default-features = false, features = ["std"] }
+
+ [[bench]]
+--- a/src/vmm/src/arch/aarch64/fdt.rs
++++ b/src/vmm/src/arch/aarch64/fdt.rs
+@@ -494,6 +494,7 @@
+ }
+
+ #[test]
++ #[cfg(not(test))]
+ fn test_create_fdt() {
+ let regions = arch_memory_regions(layout::FDT_MAX_SIZE + 0x1000);
+ let mem = utils::vm_memory::test_utils::create_anon_guest_memory(®ions, false)
+@@ -552,6 +553,7 @@
+ }
+
+ #[test]
++ #[cfg(not(test))]
+ fn test_create_fdt_with_initrd() {
+ let regions = arch_memory_regions(layout::FDT_MAX_SIZE + 0x1000);
+ let mem = utils::vm_memory::test_utils::create_anon_guest_memory(®ions, false)
diff --git a/firecracker.spec b/firecracker.spec
index 97bed2e..a179cfa 100644
--- a/firecracker.spec
+++ b/firecracker.spec
@@ -1,21 +1,15 @@
-# Disable tests by default since VMs can't run in containerized Fedora builds.
-%bcond_with check
-
# The RPM macro cargo_target can be defined to specify the Rust target to use
# during the build. When undefined, the distro's default target is used.
-# Assume that musl targets produce static binaries by default, which determines
-# if the jailer program is usable. It should still build successfully with any
-# linkage setting, so this conditional allows forcing it to build or not.
-%if %{lua:print(rpm.expand("%{cargo_target}"):match("musl") and "1" or "0")}
-%bcond_without jailer
-%else
-%bcond_with jailer
-%endif
+# Disable tests by default since VMs can't run in containerized Fedora builds.
+%bcond check 0
+
+# The jailer's documentation says only musl targets are supported.
+%bcond jailer %{lua:print(rpm.expand("%{cargo_target}"):find("musl") or 0)}
Name: firecracker
-Version: 1.4.1
-Release: 3%{?dist}
+Version: 1.5.0
+Release: 1%{?dist}
Summary: Secure and fast microVMs for serverless computing
License: Apache-2.0 AND (Apache-2.0 OR BSD-3-Clause) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-3-Clause AND MIT AND Unicode-DFS-2016
@@ -24,22 +18,16 @@ URL: https://firecracker-microvm.github.io/
Source0: https://github.com/firecracker-microvm/firecracker/archive/v%{version}/%{...
# Bundle forked versions of existing crates to avoid conflicts with upstreams.
-Source1: https://github.com/firecracker-microvm/kvm-bindings/archive/e8359204b41d5...
-Source2: https://github.com/firecracker-microvm/micro-http/archive/4b18a043e997da5...
-
-# kvm-bindings: Apache-2.0
-Provides: bundled(crate(kvm-bindings)) = 0.6.0^gite835920
-# micro_http: Apache-2.0
-Provides: bundled(crate(micro_http)) = 0.1.0^git4b18a04
+Source1: https://github.com/firecracker-microvm/kvm-bindings/archive/b1585959b4ac4...
+Source2: https://github.com/firecracker-microvm/micro-http/archive/a4d632f2c5ea457...
+Provides: bundled(crate(kvm-bindings)) = 0.6.0^gitb158595
+Provides: bundled(crate(micro_http)) = 0.1.0^gita4d632f
# Edit crate dependencies to track what is packaged in Fedora.
-# These patches do not make sense to send upstream given their purpose.
-Patch: %{name}-1.4.1-remove-aws-lc-rs.patch
-Patch: %{name}-1.4.0-remove-cargo_toml.patch
-Patch: %{name}-1.4.1-remove-criterion.patch
-Patch: %{name}-1.4.1-remove-device_tree.patch
-Patch: %{name}-1.4.0-upgrade-kvm-ioctls.patch
-Patch: %{name}-1.4.1-upgrade-linux-loader.patch
+Patch: %{name}-1.5.0-remove-aws-lc-rs.patch
+Patch: %{name}-1.5.0-remove-cargo_toml.patch
+Patch: %{name}-1.5.0-remove-criterion.patch
+Patch: %{name}-1.5.0-remove-device_tree.patch
BuildRequires: cargo-rpm-macros >= 24
%if %defined cargo_target
@@ -74,8 +62,7 @@ sed -i -e 's,../../forks,forks,' Cargo.toml
%cargo_prep
%generate_buildrequires
-# Unconditionally include dev-dependencies to avoid build failures.
-cargo2rpm --path Cargo.toml buildrequires --with-check
+%cargo_generate_buildrequires
%build
%cargo_build -- --package={cpu-template-helper,firecracker,%{?with_jailer:jailer,}rebase-snap,seccompiler} %{?cargo_target:--target=%{cargo_target}}
@@ -112,6 +99,9 @@ done
%changelog
+* Thu Oct 12 2023 David Michael <fedora.dm0(a)gmail.com> - 1.5.0-1
+- Update to the 1.5.0 release.
+
* Sun Oct 01 2023 Fabio Valentini <decathorpe(a)gmail.com> - 1.4.1-3
- Rebuild for aes-gcm v0.10.3 / CVE-2023-42811.
diff --git a/sources b/sources
index 5a501b1..b230c85 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (firecracker-1.4.1.tar.gz) = 20d105b4ee87728f5d92921148dd507ed0e727100cf04320943af66dee4d169d572b40a54c288fabe2b57d7c08337cd9a0138601ad90c76338b4177786ca2ee5
-SHA512 (kvm-bindings-e835920.tar.gz) = e9e713c72e5a7cdd05063ec273abb8ab54aec71519119e7fbe0e93923dea89e3987346a7a09a101f01ace911ef6ac0694febc131e45b84692592065fa82eb74c
-SHA512 (micro_http-4b18a04.tar.gz) = 883d76820b5ed3fa36cb8110bf34ca7fa9e345a9c4f5040f77f4a578cc86fdfde51bcb4fa4daf6ab371a67ed27bd36df38c710e884a59b85c672c2843c87d7d6
+SHA512 (firecracker-1.5.0.tar.gz) = 6a76c81cab04ac2999efa946f76e499f019a3afc300396c60fe4b8972e35fcb053114ddca63520b63776265ac551a62f4d8146cc9f331d986aeac2eb3d84e17c
+SHA512 (kvm-bindings-b158595.tar.gz) = 5e5a8f76858dcc1bc1d17243b5ca55b2e9cdd346d20e8a517d8f9e6b3273c146c76906909a2dca96a449f6dfecf8aaeb295024767848537bd2fc81a4055412a6
+SHA512 (micro_http-a4d632f.tar.gz) = 6d0cd910a2e790f8b4e12353641da9aeba4cf283f8aa519395c6add1e7a040cd9a1f0b95430d5545401309b888e4a7f947a5115cbd3ce612c7c1cee6317804a4
https://src.fedoraproject.org/rpms/firecracker/c/5541bc6c7c603fe6500aedd9...
7 months
dcavalca pushed to rpms/qvr (f39). "Initial import; Fixes: RHBZ#2246767"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:09:24 UTC
From 5fe587a805bab01a1a4b0b40118344d85f9fc08b Mon Sep 17 00:00:00 2001
From: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Oct 31 2023 15:42:36 +0000
Subject: Initial import; Fixes: RHBZ#2246767
---
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8c76420
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/qvr-4.0.1.tar.gz
+/qvr-4.0.1.tar.gz.sig
diff --git a/key.txt b/key.txt
new file mode 100644
index 0000000..4c2ba22
--- /dev/null
+++ b/key.txt
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBFmWp6IBCAC9nJcXlmkV+vth1yG0T8c/74rvq4jHJxu0/UaSV349LETGn7sc
+3FXiLyl9T2nSssZ8NARAAz6I16vKgnHdJgM1xR1dRDUx8BbxAMV/DEp5/J+FljoW
+N4WcGn8aUOAvpeGTKjZ4/1xHzMVLCE/6Bgd9QKHD63foMgIIo/ogNBI7RWTjI+dy
+TpFTcor4XcWdbFyAitU11fp2opF813jxXy9AGw+aOS9xSw4R7CbtDQdyxuERbMGT
+fVif3BQ3q6lTQHbu0S6Ipb9R36vu1JFzRr21EE1miZck01DpC7D+qB5IuftJIeQ3
+ANzhoYujwOzhppDcEc338lNwdBaP3pnQKAXHABEBAAG0IU1hcnRpbiBMYW1iZXJz
+IDxtYXJsYW1AbWFybGFtLmRlPokBTQQTAQgAOAIbAwULCQgHAgYVCAkKCwIEFgID
+AQIeAQIXgBYhBC9htIKLunea7LPzJwOipKseMv00BQJedI+2AAoJEAOipKseMv00
+bHcH+OeXUUxRfA4owMpRCs0zDnaVJEqzp/Ey4L3ObQGD+eIq866KnHwxKYmGFjUH
+DmHJa7Fduaw32FzbOr2YUVAniPGhjUjH3Bpm6uQLy8d8GXMEXtzlc0P8wUfBXJd+
+LKWt3PVw0PNFhXcK8xZ7KDO9AR/HJWGPEZkRaNnXRV3hfaqMwdCQ8pNbWABINX1s
+W+b28Up6gBJXA9DmieLNid2S0A+NGCUp34Zt2/y4i72Iz6odf+HKwg6q5iN7PAg7
+xYpQQKw+8vSm3pJ0wAZ/cGXURXFWpSC+ZQFs1WKq5HOxnhrmNMGo2KLJxQqvozAz
+FzS4Ee/OF4ZyaUPKosuxA5jINLkBDQRZlqeiAQgAyjPHgRZcY9y7TBtTuP3RNJdq
+faSWjDY+Krg5gPe55wrhK9SaoCDDuKZ0YXZRGgIenOl0AyhwsldP4LxD5kVRx9Ve
+QFw690W73KaAFW/gJL2SmC9liKvxvlfm0Co9LyahT9Z40dhRs8CWYjwy418pjMMZ
+OI9J9+sX1cSPUHe8lMnsupNRHb8gW/qK3OiJ+cBK3fk5D87qhUw7k3sJhmMqu5w3
+AEJc/bzQgAyt0kJVsSZWE4JkUL4XzGknPhjwqLs9h6WD6lD67Cu9KREShfiBuVqY
+f+JH85sJx09CZ9l1eb5kpcIi3KU6X3mDHKmGW0DYsDPzk3zMz7dA8gqKkDOFsQAR
+AQABiQE2BBgBCAAgAhsMFiEEL2G0gou6d5rss/MnA6Kkqx4y/TQFAl50j/IACgkQ
+A6Kkqx4y/TSNPgf+N+lefNu6lpyBptA111N8Qx3ULySlFs7kOKTcpsJyBzC6C+4q
+wCWIm26uIJbkD6x9bclE5r8JMyhWLRut4exaORVAIxTrD4Xh+bZKarrkpLqVYKVp
+O+W+ZN3vjtvhoI39NRcoDG1wIEgqY4qVp+9alo2gmTfhdTGkhuCbZExCzAbm4LBB
+rrXexZopt07WZY8bWIwXGwAPclddQpipbaIJMlamxX7Eg1V1/pWP+8YW0ywAjHy7
+3QhaBsX6OEak4cwmveoiJaxJqWO1C7m1U1tiDUnVV/lkX7ZHSbMlcBd30+6smqJK
+InQvwoO0qh6ouJN3lpQlMm5BPNoLA6bwSdD57A==
+=CF2l
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/qvr.spec b/qvr.spec
new file mode 100644
index 0000000..539c76b
--- /dev/null
+++ b/qvr.spec
@@ -0,0 +1,90 @@
+Name: qvr
+Version: 4.0.1
+Release: %autorelease
+Summary: QT library for VR applications
+
+License: MIT
+URL: https://marlam.de/qvr
+Source0: %{url}/releases/%{name}-%{version}.tar.gz
+Source1: %{url}/releases/%{name}-%{version}.tar.gz.sig
+Source2: https://marlam.de/key.txt
+
+BuildRequires: cmake
+BuildRequires: doxygen
+BuildRequires: gcc-c++
+BuildRequires: gnupg2
+BuildRequires: make
+BuildRequires: texlive-amsmath
+BuildRequires: texlive-beamer
+BuildRequires: texlive-babel-english
+BuildRequires: texlive-dvips
+BuildRequires: texlive-ec
+BuildRequires: texlive-latex
+BuildRequires: texlive-textpos
+
+BuildRequires: libxkbcommon-devel
+BuildRequires: openvr-devel
+BuildRequires: qt6-qtbase-devel
+BuildRequires: vrpn-devel
+
+%description
+QVR is a library that makes writing Virtual Reality (VR) applications very
+easy. It is based on Qt and requires no other libraries.
+
+%package devel
+Summary: Development headers and libraries for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: libxkbcommon-devel
+Requires: openvr-devel
+Requires: qt6-qtbase-devel
+Requires: vrpn-devel
+
+%description devel
+This package provides development headers and libraries for %{name}.
+
+%package doc
+Summary: Additional documentation for %{name}
+BuildArch: noarch
+
+%description doc
+This package provides additional documentation for %{name}.
+
+%prep
+%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
+%autosetup -p1
+
+%build
+# Build docs
+pushd doc/intro-slides
+%make_build
+popd
+
+pushd libqvr
+%cmake -DQVR_BUILD_DOCUMENTATION=ON
+%cmake_build
+popd
+
+%install
+pushd libqvr
+%cmake_install
+
+%check
+pushd libqvr
+%ctest
+
+%files
+%license LICENSE
+%doc README.md
+%{_libdir}/lib%{name}.so.4{,.*}
+
+%files devel
+%{_includedir}/%{name}
+%{_libdir}/lib%{name}.so
+%{_libdir}/cmake/QVR-%{version}/
+
+%files doc
+%doc doc/intro-slides/%{name}.pdf
+%doc %{_docdir}/libqvr
+
+%changelog
+%autochangelog
diff --git a/sources b/sources
new file mode 100644
index 0000000..5b2e896
--- /dev/null
+++ b/sources
@@ -0,0 +1,2 @@
+SHA512 (qvr-4.0.1.tar.gz) = 9d306d013873354ec875d1433fe7648219b8e43d34dd510fc72d70b80eabae1049d155e5cf8f8a314f7aed0988bd34ce14cb266b84ff737b8e80cdbb2e5c0a52
+SHA512 (qvr-4.0.1.tar.gz.sig) = 31277d75f114970fe9c100a7f1291add8641c6a426d85c1f3737711998bfeec0f3413667449aeea81c15109821d3700f60356376769e063220ab46abebb565fa
https://src.fedoraproject.org/rpms/qvr/c/5fe587a805bab01a1a4b0b40118344d8...
7 months
dcavalca pushed to rpms/openvr (f39). "Initial import; Fixes: RHBZ#2244984"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:09:05 UTC
From 118d467b267ee2c0887ac3b262afe9c7698f13e9 Mon Sep 17 00:00:00 2001
From: Davide Cavalca <dcavalca(a)fedoraproject.org>
Date: Oct 30 2023 02:50:03 +0000
Subject: Initial import; Fixes: RHBZ#2244984
---
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9231b4d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/openvr-1.26.7.tar.gz
diff --git a/1511.patch b/1511.patch
new file mode 100644
index 0000000..eff42c0
--- /dev/null
+++ b/1511.patch
@@ -0,0 +1,53 @@
+From 9803a10192582b21c1bbcbc4c625a1c641ab5b1d Mon Sep 17 00:00:00 2001
+From: Dan Church <amphetamachine(a)gmail.com>
+Date: Sat, 23 Jan 2021 15:59:00 -0600
+Subject: [PATCH 1/2] Use GNUInstallDirs to determine lib install path
+
+---
+ src/CMakeLists.txt | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 29b69c5c..4da45b62 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -4,6 +4,8 @@ project(openvr_api)
+ set( LIBNAME "openvr_api" )
+ set(OPENVR_HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../headers)
+
++include(GNUInstallDirs)
++
+ # Set some properies for specific files.
+ if(APPLE)
+ set(CMAKE_MACOSX_RPATH 1)
+@@ -101,7 +103,7 @@ endif()
+ target_link_libraries(${LIBNAME} ${EXTRA_LIBS} ${CMAKE_DL_LIBS})
+ target_include_directories(${LIBNAME} PUBLIC ${OPENVR_HEADER_DIR})
+
+-install(TARGETS ${LIBNAME} DESTINATION lib)
++install(TARGETS ${LIBNAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES ${PUBLIC_HEADER_FILES} DESTINATION include/openvr)
+
+ # Generate a .pc file for linux environments
+
+From 69ad8a0810e1941062833fdec37e1e9632f390e2 Mon Sep 17 00:00:00 2001
+From: Dan Church <amphetamachine(a)gmail.com>
+Date: Sat, 23 Jan 2021 16:07:36 -0600
+Subject: [PATCH 2/2] Update pkg-config entry
+
+---
+ src/openvr.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/openvr.pc.in b/src/openvr.pc.in
+index 3edba91c..0041a5ce 100644
+--- a/src/openvr.pc.in
++++ b/src/openvr.pc.in
+@@ -1,6 +1,6 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix=${prefix}
+-libdir=${prefix}/lib
++libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+ includedir=${prefix}/include/openvr
+
+ Name: openvr
diff --git a/1716.patch b/1716.patch
new file mode 100644
index 0000000..ecea434
--- /dev/null
+++ b/1716.patch
@@ -0,0 +1,110 @@
+From 54a58e479f4d63e62e9118637cd92a2013a4fb95 Mon Sep 17 00:00:00 2001
+From: Lubosz Sarnecki <lubosz.sarnecki(a)collabora.com>
+Date: Thu, 15 Aug 2019 16:07:01 +0200
+Subject: [PATCH 1/2] cmake: Add option to build with system jsoncpp.
+
+This patch adds the CMake build option `USE_SYSTEM_JSONCPP`,
+which instead of using the internal `jsoncpp.cpp` links against
+the system installed jsoncpp library.
+
+This results in a `libopenvr_api.so` that is only 115K instead of 301K
+on my system.
+
+Distributions like Debian will prefer this behaviour, since it will give
+them the possibility to maintain version and security issues for jsoncpp
+in one place.
+
+This behaviour can be enabled by
+
+```
+cmake -DUSE_SYSTEM_JSONCPP=True .
+```
+
+When the flag is not set, the build will behave like it did before.
+
+I tested this patch using the system wide jsoncpp successfully
+with xrdesktop.
+---
+ CMakeLists.txt | 1 +
+ src/CMakeLists.txt | 12 +++++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8956cdad..1150c53d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -28,6 +28,7 @@ option(BUILD_UNIVERSAL "Builds the shared or framework as a universal (fat, 32-
+ option(BUILD_OSX_I386 "Builds the shared or framework as a 32-bit binary, even on a 64-bit platform" OFF)
+ option(USE_LIBCXX "Uses libc++ instead of libstdc++" ON)
+ option(USE_CUSTOM_LIBCXX "Uses a custom libc++" OFF)
++option(USE_SYSTEM_JSONCPP "Uses the system installed jsoncpp." OFF)
+
+ add_definitions( -DVR_API_PUBLIC )
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index b83710af..a7b64db9 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -34,8 +34,14 @@ endif()
+ # Set the source group and files.
+ set(CORE_FILES
+ openvr_api_public.cpp
+- jsoncpp.cpp
+ )
++
++if(NOT USE_SYSTEM_JSONCPP)
++ set(JSON_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/jsoncpp)
++ include_directories(${JSON_CPP_DIR})
++ list(APPEND CORE_FILES ${JSON_CPP_DIR}/jsoncpp.cpp)
++endif()
++
+ set(VRCORE_FILES
+ vrcore/dirtools_public.cpp
+ vrcore/envvartools_public.cpp
+@@ -100,6 +106,10 @@ if(USE_CUSTOM_LIBCXX)
+ set(EXTRA_LIBS ${EXTRA_LIBS} c++ c++abi)
+ endif()
+
++if(USE_SYSTEM_JSONCPP)
++ list(APPEND EXTRA_LIBS jsoncpp)
++endif()
++
+ target_link_libraries(${LIBNAME} ${EXTRA_LIBS} ${CMAKE_DL_LIBS})
+ target_include_directories(${LIBNAME} PUBLIC ${OPENVR_HEADER_DIR})
+
+
+From a7a6995d1d6f9ee1a17a3741661156f9706c40ce Mon Sep 17 00:00:00 2001
+From: Lubosz Sarnecki <lubosz.sarnecki(a)collabora.com>
+Date: Thu, 15 Aug 2019 15:05:34 +0200
+Subject: [PATCH 2/2] thirdparty: Move jsoncpp to thridparty directory.
+
+Even though the previous patch in this patch set enabled the build with
+a system wide jsoncpp and worked for me, it still left the internal
+jsoncpp includes in the include path, since the includes were placed
+in `CMAKE_CURRENT_SOURCE_DIR`. This could cause problems on other systems
+when trying to build with a system wide jsoncpp.
+
+In order to remove the internal json.h from the include path,
+I moved all jsoncpp files into a thridparty directory amd include
+it in the case of `USE_SYSTEM_JSONCPP` not being set.
+---
+ {src => thirdparty/jsoncpp}/json/json-forwards.h | 0
+ {src => thirdparty/jsoncpp}/json/json.h | 0
+ {src => thirdparty/jsoncpp}/jsoncpp.cpp | 0
+ 3 files changed, 0 insertions(+), 0 deletions(-)
+ rename {src => thirdparty/jsoncpp}/json/json-forwards.h (100%)
+ rename {src => thirdparty/jsoncpp}/json/json.h (100%)
+ rename {src => thirdparty/jsoncpp}/jsoncpp.cpp (100%)
+
+diff --git a/src/json/json-forwards.h b/thirdparty/jsoncpp/json/json-forwards.h
+similarity index 100%
+rename from src/json/json-forwards.h
+rename to thirdparty/jsoncpp/json/json-forwards.h
+diff --git a/src/json/json.h b/thirdparty/jsoncpp/json/json.h
+similarity index 100%
+rename from src/json/json.h
+rename to thirdparty/jsoncpp/json/json.h
+diff --git a/src/jsoncpp.cpp b/thirdparty/jsoncpp/jsoncpp.cpp
+similarity index 100%
+rename from src/jsoncpp.cpp
+rename to thirdparty/jsoncpp/jsoncpp.cpp
diff --git a/openvr-api-soversion.patch b/openvr-api-soversion.patch
new file mode 100644
index 0000000..087ccdd
--- /dev/null
+++ b/openvr-api-soversion.patch
@@ -0,0 +1,11 @@
+diff -Naur a/src/CMakeLists.txt b/src/CMakeLists.txt
+--- a/src/CMakeLists.txt 2023-10-24 19:58:37.076421394 -0700
++++ b/src/CMakeLists.txt 2023-10-24 20:00:26.807622046 -0700
+@@ -78,6 +78,7 @@
+ # Build the library.
+ if(BUILD_SHARED)
+ add_library(${LIBNAME} SHARED ${SOURCE_FILES})
++ set_target_properties(${LIBNAME} PROPERTIES SOVERSION 1.0.0)
+ elseif(BUILD_FRAMEWORK)
+ set( LIBNAME "OpenVR" )
+ add_library( ${LIBNAME}
diff --git a/openvr-skip-steamvr-check.patch b/openvr-skip-steamvr-check.patch
new file mode 100644
index 0000000..81c8886
--- /dev/null
+++ b/openvr-skip-steamvr-check.patch
@@ -0,0 +1,13 @@
+diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt
+index 545ff1a..3270bcb 100644
+--- a/samples/CMakeLists.txt
++++ b/samples/CMakeLists.txt
+@@ -52,7 +52,7 @@ set(SHARED_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/shared)
+ # (needed to prevent a segfault in OpenVR).
+ if(CMAKE_HOST_UNIX)
+ find_file(OPENVRPATHS openvrpaths.vrpath PATHS $ENV{HOME}/.config/openvr "$ENV{HOME}/Library/Application Support/OpenVR/.openvr")
+- if(${OPENVRPATHS} MATCHES OPENVRPATHS-NOTFOUND)
++ if(${OPENVRPATHS} MATCHES OPENVRPATHS-NOTFOUND AND NOT SKIP_STEAMVR_CHECK)
+ message(FATAL_ERROR "${OPENVRPATHS} Please install SteamVR SDK to continue..")
+ endif()
+ endif()
diff --git a/openvr-use-system-sdl2-vulkan.patch b/openvr-use-system-sdl2-vulkan.patch
new file mode 100644
index 0000000..5cfd545
--- /dev/null
+++ b/openvr-use-system-sdl2-vulkan.patch
@@ -0,0 +1,72 @@
+diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt
+index 545ff1a..dacb2ba 100644
+--- a/samples/CMakeLists.txt
++++ b/samples/CMakeLists.txt
+@@ -137,35 +137,44 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ list(APPEND SDL2_LIBRARIES ${${lib}_LIBRARY})
+ endforeach()
+ else()
+- foreach(lib ${SDL_REQUIRED_LIBRARIES})
+- find_library(${lib}_LIBRARY
+- NAMES
++ if (USE_SYSTEM_SDL2)
++ find_package(${SDL_REQUIRED_LIBRARIES} REQUIRED)
++ else()
++ foreach(lib ${SDL_REQUIRED_LIBRARIES})
++ find_library(${lib}_LIBRARY
++ NAMES
+ ${lib}
+- PATHS
+- ${THIRDPARTY_DIR}/sdl2-2.0.3/bin
+- PATH_SUFFIXES
+- linux${PLATFORM}
+- ${WINDOWS_PATH_SUFFIXES}
+- )
+- list(APPEND SDL2_LIBRARIES ${${lib}_LIBRARY})
+- endforeach()
++ PATHS
++ ${THIRDPARTY_DIR}/sdl2-2.0.3/bin
++ PATH_SUFFIXES
++ linux${PLATFORM}
++ ${WINDOWS_PATH_SUFFIXES}
++ )
++ list(APPEND SDL2_LIBRARIES ${${lib}_LIBRARY})
++ endforeach()
++ endif()
+ endif()
+ set(SDL2_INCLUDE_DIR ${THIRDPARTY_DIR}/sdl2-2.0.3/include)
+
+ ## Vulkan
+ if(NOT (${CMAKE_SYSTEM_NAME} MATCHES "Darwin"))
+- find_library(VULKAN_LIBRARY
+- NAMES
+- vulkan-1
+- vulkan
+- PATHS
+- ${THIRDPARTY_DIR}/vulkan-1.0.49.0/lib
+- PATH_SUFFIXES
+- linux${PLATFORM}
+- ${WINDOWS_PATH_SUFFIXES}
+- NO_DEFAULT_PATH
+- )
+- set(VULKAN_INCLUDE_DIR ${THIRDPARTY_DIR}/vulkan-1.0.49.0/include)
++ if (USE_SYSTEM_VULKAN)
++ find_package(Vulkan REQUIRED)
++ list(APPEND EXTRA_LIBS ${Vulkan_LIBRARIES})
++ else()
++ find_library(VULKAN_LIBRARY
++ NAMES
++ vulkan-1
++ vulkan
++ PATHS
++ ${THIRDPARTY_DIR}/vulkan-1.0.49.0/lib
++ PATH_SUFFIXES
++ linux${PLATFORM}
++ ${WINDOWS_PATH_SUFFIXES}
++ NO_DEFAULT_PATH
++ )
++ set(VULKAN_INCLUDE_DIR ${THIRDPARTY_DIR}/vulkan-1.0.49.0/include)
++ endif()
+ endif()
+
+
diff --git a/openvr.spec b/openvr.spec
new file mode 100644
index 0000000..9e8c447
--- /dev/null
+++ b/openvr.spec
@@ -0,0 +1,206 @@
+# Samples aren't supported on i686
+%ifarch i686
+%bcond_with samples
+%else
+%bcond_without samples
+%endif
+
+%global common_description %{expand:
+OpenVR is an API and runtime that allows access to VR hardware from multiple
+vendors without requiring that applications have specific knowledge of the
+hardware they are targeting.}
+
+Name: openvr
+Version: 1.26.7
+Release: %autorelease
+Summary: OpenVR SDK
+
+License: BSD-3-Clause
+URL: https://github.com/ValveSoftware/openvr
+Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+# Use GNUInstallDirs to determine lib install path
+Patch: %{url}/pull/1511.patch
+# Add ability to build with system installed jsoncpp
+Patch: %{url}/pull/1716.patch
+# Add option to neuter the steamvr check
+Patch: openvr-skip-steamvr-check.patch
+# Add ability to build with system installed SDL2 and Vulkan
+Patch: openvr-use-system-sdl2-vulkan.patch
+# Define soversion for the OpenVR API library
+Patch: openvr-api-soversion.patch
+
+BuildRequires: cmake
+BuildRequires: gcc-c++
+
+BuildRequires: jsoncpp-devel
+
+%if %{with samples}
+BuildRequires: chrpath
+BuildRequires: glslang
+BuildRequires: glslc
+BuildRequires: sed
+
+BuildRequires: glew-devel
+BuildRequires: libGL-devel
+BuildRequires: qt5-qtbase-devel
+BuildRequires: SDL2-devel
+BuildRequires: vulkan-loader-devel
+%endif
+
+%description %{common_description}
+
+%package api
+Summary: OpenVR API libraries
+
+%description api %{common_description}
+
+This package provides the shared libraries for the OpenVR Application API.
+
+%package devel
+Summary: Development headers for %{name}
+Requires: jsoncpp-devel
+Requires: %{name}-api%{?_isa} = %{version}-%{release}
+
+%description devel %{common_description}
+
+This package provides the development headers for OpenVR.
+
+%package doc
+Summary: Documentation for %{name}
+BuildArch: noarch
+
+%description doc %{common_description}
+
+This package provides additional documentation for OpenVR.
+
+%if %{with samples}
+%package samples
+Summary: OpenVR Samples
+
+%description samples %{common_description}
+
+This package provides various sample programs and drivers using OpenVR.
+%endif
+
+%prep
+%autosetup -p1
+
+# Delete prebuilt binaries and libraries
+rm -r bin lib samples/bin/{android*,linux*,win*}
+
+# Delete prebuilt shaders
+rm samples/bin/shaders/*.spv
+
+# Delete bundled library sources
+rm -r thirdparty samples/thirdparty
+
+%if %{with samples}
+# Fix paths in samples
+sed -i 's:../hellovr_actions.json:%{_datadir}/%{name}/hellovr_actions.json:' \
+ samples/hellovr_opengl/hellovr_opengl_main.cpp
+sed -i 's:../shaders/:%{_libdir}/%{name}/shaders/:' \
+ samples/hellovr_vulkan/hellovr_vulkan_main.cpp
+sed -i 's:../cube_texture.png:%{_datadir}/%{name}/cube_texture.png:' \
+ samples/hellovr_opengl/hellovr_opengl_main.cpp \
+ samples/hellovr_vulkan/hellovr_vulkan_main.cpp
+%endif
+
+%build
+# Build library
+%cmake \
+ -DBUILD_SHARED=ON \
+ -DUSE_SYSTEM_JSONCPP=ON
+%cmake_build
+
+%if %{with samples}
+# Build shaders
+# see samples/bin/shaders/build_vulkan_shaders.bat
+for f in samples/bin/shaders/*.hlsl; do
+ base="$(dirname "$f")/$(basename "$f" .hlsl)"
+
+ glslangValidator \
+ -S vert \
+ -e VSMain \
+ -o "${base}_vs.spv" \
+ -V \
+ --hlsl-iomap \
+ --auto-map-bindings \
+ --shift-cbuffer-binding 0 \
+ --shift-texture-binding 1 \
+ --shift-sampler-binding 2 \
+ -D "$f"
+
+ glslangValidator \
+ -S frag \
+ -e PSMain \
+ -o "${base}_ps.spv" \
+ -V \
+ --hlsl-iomap \
+ --auto-map-bindings \
+ --shift-cbuffer-binding 0 \
+ --shift-texture-binding 1 \
+ --shift-sampler-binding 2 \
+ -D "$f"
+done
+
+# Build samples
+pushd samples
+%cmake \
+ -DSKIP_STEAMVR_CHECK=ON \
+ -DUSE_SYSTEM_SDL2=ON \
+ -DUSE_SYSTEM_VULKAN=ON
+%cmake_build
+
+# Build sample drivers
+pushd drivers
+%cmake
+%cmake_build
+%endif
+
+%install
+%cmake_install
+
+%if %{with samples}
+# Samples have to be installed manually
+install -Dpm0755 -t %{buildroot}%{_bindir} samples/bin/linux%{__isa_bits}/*
+install -Dpm0644 -t %{buildroot}%{_datadir}/%{name} \
+ samples/bin/*.json \
+ samples/bin/cube_texture.png
+install -Dpm0644 -t %{buildroot}%{_libdir}/%{name}/shaders \
+ samples/bin/shaders/*.spv
+
+# Sample drivers have to be installed manually
+install -Dpm0755 -t %{buildroot}%{_libdir}/%{name}/drivers \
+ samples/drivers/%{_vpath_builddir}/drivers/*/libdriver_*.so
+
+# Fix runpath in samples and sample drivers
+chrpath -d %{buildroot}%{_bindir}/* %{buildroot}%{_libdir}/%{name}/drivers/*.so
+%endif
+
+%files api
+%license LICENSE
+%doc README.md
+%{_libdir}/libopenvr_api.so.1{,.*}
+
+%files devel
+%{_includedir}/%{name}
+%{_datadir}/pkgconfig/%{name}.pc
+%{_libdir}/libopenvr_api.so
+
+%files doc
+%license LICENSE
+%doc docs controller_callouts
+
+%if %{with samples}
+%files samples
+%license LICENSE
+%{_bindir}/hellovr_opengl
+%{_bindir}/hellovr_vulkan
+%{_bindir}/helloworldoverlay
+%{_bindir}/tracked_camera_openvr_sample
+%{_datadir}/%{name}/
+%{_libdir}/%{name}/
+%endif
+
+%changelog
+%autochangelog
diff --git a/sources b/sources
new file mode 100644
index 0000000..d495c28
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (openvr-1.26.7.tar.gz) = d1f4f3e1b3444a465f1e82e448928f4b14aef91bfdb87d2063df309b590a2e4f62e29b3ea42ee02451d18efe647814b5dabe1528134e0e0f9cf2e4aeb4cf97ee
https://src.fedoraproject.org/rpms/openvr/c/118d467b267ee2c0887ac3b262afe...
7 months
dcavalca pushed to rpms/vrpn (f39). "Unretirement request:
https://pagure.io/releng/issue/11750"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:08:42 UTC
From c8f5ab52f1ff81d2db3aa8701a7e45a30d0062c2 Mon Sep 17 00:00:00 2001
From: Tomas Hrcka <thrcka(a)redhat.com>
Date: Oct 31 2023 10:19:46 +0000
Subject: Unretirement request: https://pagure.io/releng/issue/11750
---
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..897c42a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/vrpn-version_07.33.tar.gz
diff --git a/dead.package b/dead.package
deleted file mode 100644
index 5204a84..0000000
--- a/dead.package
+++ /dev/null
@@ -1 +0,0 @@
-Orphaned for 6+ weeks
diff --git a/sources b/sources
new file mode 100644
index 0000000..90e342c
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+ad1475cdcc2572fcf447f8e88404f753 vrpn-version_07.33.tar.gz
diff --git a/vrpn-config_install.patch b/vrpn-config_install.patch
new file mode 100644
index 0000000..68b4c81
--- /dev/null
+++ b/vrpn-config_install.patch
@@ -0,0 +1,24 @@
+Index: vrpn-version_07.33/server_src/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/server_src/CMakeLists.txt
++++ vrpn-version_07.33/server_src/CMakeLists.txt
+@@ -143,13 +143,18 @@ configure_file("${CMAKE_CURRENT_SOURCE_D
+ @ONLY)
+
+ if(VRPN_INSTALL)
++ set(SYSCONF_INSTALL_DIR
++ etc
++ CACHE
++ PATH
++ "Directory to install configuration files")
+ if(WIN32)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vrpn.cfg"
+ DESTINATION bin
+ COMPONENT mainserver)
+ else()
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vrpn.cfg"
+- DESTINATION etc
++ DESTINATION ${SYSCONF_INSTALL_DIR}
+ COMPONENT mainserver)
+ endif()
+
diff --git a/vrpn-dont_install_garbage.patch b/vrpn-dont_install_garbage.patch
new file mode 100644
index 0000000..13aaf98
--- /dev/null
+++ b/vrpn-dont_install_garbage.patch
@@ -0,0 +1,103 @@
+Index: vrpn-version_07.33/client_src/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/client_src/CMakeLists.txt
++++ vrpn-version_07.33/client_src/CMakeLists.txt
+@@ -74,9 +74,9 @@ if(VRPN_BUILD_CLIENTS)
+ target_link_libraries(${APP} ${VRPN_CLIENT_LIBRARY})
+
+ set_target_properties(${APP} PROPERTIES FOLDER Tests)
+- if(VRPN_INSTALL)
+- install(TARGETS ${APP} RUNTIME DESTINATION bin COMPONENT tests)
+- endif()
++ #if(VRPN_INSTALL)
++ # install(TARGETS ${APP} RUNTIME DESTINATION bin COMPONENT tests)
++ #endif()
+ endforeach()
+
+ if(GLUT_FOUND AND OPENGL_FOUND)
+@@ -89,15 +89,15 @@ if(VRPN_BUILD_CLIENTS)
+
+ set_target_properties(testimager_client PROPERTIES FOLDER Tests)
+
+- if(VRPN_INSTALL)
+- install(TARGETS
+- testimager_client
+- RUNTIME
+- DESTINATION
+- bin
+- COMPONENT
+- tests)
+- endif()
++ #if(VRPN_INSTALL)
++ # install(TARGETS
++ # testimager_client
++ # RUNTIME
++ # DESTINATION
++ # bin
++ # COMPONENT
++ # tests)
++ #endif()
+ option(VRPN_GLUT_IS_STATIC_FREEGLUT
+ "Is the GLUT used for the imaging test client a static build of FreeGLUT?"
+ NO)
+@@ -121,15 +121,15 @@ if(VRPN_BUILD_CLIENTS)
+
+ set_target_properties(c_interface_example PROPERTIES FOLDER Tests)
+
+- if(VRPN_INSTALL)
+- install(TARGETS
+- c_interface_example
+- RUNTIME
+- DESTINATION
+- bin
+- COMPONENT
+- tests)
+- endif()
++ #if(VRPN_INSTALL)
++ # install(TARGETS
++ # c_interface_example
++ # RUNTIME
++ # DESTINATION
++ # bin
++ # COMPONENT
++ # tests)
++ #endif()
+
+
+ ###
+Index: vrpn-version_07.33/server_src/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/server_src/CMakeLists.txt
++++ vrpn-version_07.33/server_src/CMakeLists.txt
+@@ -219,10 +219,10 @@ if(BUILD_TESTING)
+ target_link_libraries(${APP} ${VRPN_SERVER_LIBRARY})
+ set_target_properties(${APP} PROPERTIES FOLDER Tests)
+
+- if(VRPN_INSTALL)
+- install(TARGETS ${APP}
+- RUNTIME DESTINATION bin COMPONENT tests)
+- endif()
++ #if(VRPN_INSTALL)
++ # install(TARGETS ${APP}
++ # RUNTIME DESTINATION bin COMPONENT tests)
++ #endif()
+ endforeach()
+ add_test(test_loopback test_loopback)
+ add_test(test_vrpn test_vrpn)
+Index: vrpn-version_07.33/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/CMakeLists.txt
++++ vrpn-version_07.33/CMakeLists.txt
+@@ -1393,9 +1393,9 @@ if(VRPN_BUILD_SERVERS AND VRPN_BUILD_SER
+ add_executable(${APP} ${SOURCE})
+ target_link_libraries(${APP} vrpnserver)
+ set_target_properties(${APP} PROPERTIES FOLDER Tests)
+- if(VRPN_INSTALL)
+- install(TARGETS ${APP} RUNTIME DESTINATION bin COMPONENT tests)
+- endif()
++ #if(VRPN_INSTALL)
++ # install(TARGETS ${APP} RUNTIME DESTINATION bin COMPONENT tests)
++ #endif()
+ endforeach()
+ endif()
+
diff --git a/vrpn-find_hidapi.patch b/vrpn-find_hidapi.patch
new file mode 100644
index 0000000..b2d596d
--- /dev/null
+++ b/vrpn-find_hidapi.patch
@@ -0,0 +1,20 @@
+Index: vrpn-version_07.33/cmake/FindHIDAPI.cmake
+===================================================================
+--- vrpn-version_07.33.orig/cmake/FindHIDAPI.cmake
++++ vrpn-version_07.33/cmake/FindHIDAPI.cmake
+@@ -24,10 +24,13 @@
+ # http://www.boost.org/LICENSE_1_0.txt)
+
+ find_library(HIDAPI_LIBRARY
+- NAMES hidapi)
++ NAMES hidapi hidapi-libusb)
+
+ find_path(HIDAPI_INCLUDE_DIR
+- NAMES hidapi.h)
++ NAMES hidapi.h
++ PATH_SUFFIXES
++ include
++ include/hidapi)
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(HIDAPI
diff --git a/vrpn-find_jsoncpp.patch b/vrpn-find_jsoncpp.patch
new file mode 100644
index 0000000..003966e
--- /dev/null
+++ b/vrpn-find_jsoncpp.patch
@@ -0,0 +1,12 @@
+Index: vrpn-version_07.33/cmake/FindJsonCpp.cmake
+===================================================================
+--- vrpn-version_07.33.orig/cmake/FindJsonCpp.cmake
++++ vrpn-version_07.33/cmake/FindJsonCpp.cmake
+@@ -69,6 +69,7 @@ list(APPEND _jsoncppnames
+
+ find_library(JSONCPP_LIBRARY
+ NAMES
++ jsoncpp
+ ${_jsoncppnames}
+ PATHS
+ "${JSONCPP_ROOT_DIR}/libs"
diff --git a/vrpn-find_modbus.patch b/vrpn-find_modbus.patch
new file mode 100644
index 0000000..8fa2e29
--- /dev/null
+++ b/vrpn-find_modbus.patch
@@ -0,0 +1,25 @@
+Index: vrpn-version_07.33/cmake/FindModbus.cmake
+===================================================================
+--- vrpn-version_07.33.orig/cmake/FindModbus.cmake
++++ vrpn-version_07.33/cmake/FindModbus.cmake
+@@ -46,16 +46,16 @@ find_path(MODBUS_INCLUDE_DIR
+ "${MODBUS_ROOT_DIR}"
+ PATH_SUFFIXES
+ include
++ include/modbus
+ PATHS
+ "${_progfiles}/libmodbus"
+ C:/usr/local
+- /usr/local)
++ /usr/local
++ /usr)
+
+ # Look for the library.
+ find_library(MODBUS_LIBRARY
+- NAMES
+- libmodbus.lib
+- libmodbus.a
++ modbus
+ HINTS
+ "${MODBUS_ROOT_DIR}"
+ PATH_SUFFIXES
diff --git a/vrpn-fix_library_install_rules.patch b/vrpn-fix_library_install_rules.patch
new file mode 100644
index 0000000..8f12fca
--- /dev/null
+++ b/vrpn-fix_library_install_rules.patch
@@ -0,0 +1,160 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a03978b..0ad0c6d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1245,16 +1245,10 @@ if(VRPN_BUILD_SERVER_LIBRARY)
+ if(VRPN_INSTALL)
+ install(TARGETS
+ vrpnserver
+- ARCHIVE
+- DESTINATION
+- lib
+- COMPONENT
+- serversdk
+- PUBLIC_HEADER
+- DESTINATION
+- include
+- COMPONENT
+- serversdk)
++ RUNTIME DESTINATION bin COMPONENT serversdk
++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
+ endif()
+ add_cppcheck(vrpnserver STYLE UNUSED_FUNCTIONS)
+ endif()
+@@ -1292,16 +1286,10 @@ if(VRPN_BUILD_CLIENT_LIBRARY)
+ if(VRPN_INSTALL)
+ install(TARGETS
+ vrpn
+- ARCHIVE
+- DESTINATION
+- lib
+- COMPONENT
+- clientsdk
+- PUBLIC_HEADER
+- DESTINATION
+- include
+- COMPONENT
+- clientsdk)
++ RUNTIME DESTINATION bin COMPONENT clientsdk
++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT clientsdk
++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT clientsdk
++ PUBLIC_HEADER DESTINATION include COMPONENT clientsdk)
+ endif()
+ add_cppcheck(vrpn STYLE UNUSED_FUNCTIONS)
+ endif()
+diff --git a/atmellib/CMakeLists.txt b/atmellib/CMakeLists.txt
+index 30d51f1..003785c 100644
+--- a/atmellib/CMakeLists.txt
++++ b/atmellib/CMakeLists.txt
+@@ -24,14 +24,8 @@ set_property(TARGET
+ if(VRPN_INSTALL)
+ install(TARGETS
+ vrpn_atmel
+- ARCHIVE
+- DESTINATION
+- lib
+- COMPONENT
+- serversdk
+- PUBLIC_HEADER
+- DESTINATION
+- include
+- COMPONENT
+- serversdk)
++ RUNTIME DESTINATION bin COMPONENT serversdk
++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
+ endif()
+diff --git a/gpsnmealib/CMakeLists.txt b/gpsnmealib/CMakeLists.txt
+index fee7b3a..9a34e2d 100644
+--- a/gpsnmealib/CMakeLists.txt
++++ b/gpsnmealib/CMakeLists.txt
+@@ -25,14 +25,8 @@ set_property(TARGET gpsnmea PROPERTY FOLDER "Library")
+ if(VRPN_INSTALL)
+ install(TARGETS
+ gpsnmea
+- ARCHIVE
+- DESTINATION
+- lib
+- COMPONENT
+- serversdk
+- PUBLIC_HEADER
+- DESTINATION
+- include
+- COMPONENT
+- serversdk)
+-endif()
+\ No newline at end of file
++ RUNTIME DESTINATION bin COMPONENT serversdk
++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
++endif()
+diff --git a/quat/CMakeLists.txt b/quat/CMakeLists.txt
+index 597776e..8d48c94 100644
+--- a/quat/CMakeLists.txt
++++ b/quat/CMakeLists.txt
+@@ -38,28 +38,16 @@ set_target_properties(quat PROPERTIES FOLDER Library)
+ if(VRPN_INSTALL)
+ install(TARGETS
+ quat
+- ARCHIVE
+- DESTINATION
+- lib
+- COMPONENT
+- serversdk
+- PUBLIC_HEADER
+- DESTINATION
+- include
+- COMPONENT
+- serversdk)
++ RUNTIME DESTINATION bin COMPONENT serversdk
++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
+ install(TARGETS
+ quat
+- ARCHIVE
+- DESTINATION
+- lib
+- COMPONENT
+- clientsdk
+- PUBLIC_HEADER
+- DESTINATION
+- include
+- COMPONENT
+- clientsdk)
++ RUNTIME DESTINATION bin COMPONENT clientsdk
++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT clientsdk
++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT clientsdk
++ PUBLIC_HEADER DESTINATION include COMPONENT clientsdk)
+ endif()
+
+ add_subdirectory(testapps)
+diff --git a/server_src/timecode_generator_server/CMakeLists.txt b/server_src/timecode_generator_server/CMakeLists.txt
+index 5f8dce6..925bc44 100644
+--- a/server_src/timecode_generator_server/CMakeLists.txt
++++ b/server_src/timecode_generator_server/CMakeLists.txt
+@@ -25,14 +25,8 @@ set_target_properties(vrpn_timecode_generator
+ if(VRPN_INSTALL)
+ install(TARGETS
+ vrpn_timecode_generator
+- ARCHIVE
+- DESTINATION
+- lib
+- COMPONENT
+- serversdk
+- PUBLIC_HEADER
+- DESTINATION
+- include
+- COMPONENT
+- serversdk)
+-endif()
+\ No newline at end of file
++ RUNTIME DESTINATION bin COMPONENT serversdk
++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
++ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
++endif()
diff --git a/vrpn-java_install.patch b/vrpn-java_install.patch
new file mode 100644
index 0000000..b095105
--- /dev/null
+++ b/vrpn-java_install.patch
@@ -0,0 +1,177 @@
+Index: vrpn-version_07.33/java_vrpn/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/java_vrpn/CMakeLists.txt
++++ vrpn-version_07.33/java_vrpn/CMakeLists.txt
+@@ -6,6 +6,29 @@
+
+ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EXECUTABLE AND VRPN_BUILD_JAVA)
+
++ set(JAVA_INSTALL_LIBDIR
++ lib
++ CACHE PATH
++ "Where to install java shared objects")
++ set(JAVA_INSTALL_JNIDIR
++ share/java
++ CACHE PATH
++ "Where to install JNI jar files")
++
++ if("${JAVA_INSTALL_LIBDIR}" STREQUAL lib)
++ set(JAVA_LOAD_VRPN
++ "System.loadLibrary(\"java_vrpn\")")
++ else()
++ if(IS_ABSOLUTE "${JAVA_INSTALL_LIBDIR}")
++ set(JAVA_LOAD_VRPN
++ "System.load(\"${JAVA_INSTALL_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}java_vrpn${CMAKE_SHARED_LIBRARY_SUFFIX}\")")
++ else()
++ set(JAVA_LOAD_VRPN
++ "System.load(\"${CMAKE_INSTALL_PREFIX}/${JAVA_INSTALL_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}java_vrpn${CMAKE_SHARED_LIBRARY_SUFFIX}\")")
++ endif()
++ endif()
++ configure_file("vrpn/VRPN.java.in" "vrpn/VRPN.java")
++
+ # Set up file lists
+ set(JAVA_CLASSES
+ AnalogOutputRemote
+@@ -22,7 +45,6 @@ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EX
+ TextSender
+ TrackerRemote
+ TrackerRemoteListener
+- VRPN
+ VRPNDevice)
+ set(JAVAC_OUTPUT)
+ set(JAVAC_INPUT)
+@@ -38,6 +60,15 @@ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EX
+ JAVA_JNI_HEADERS
+ "${CMAKE_CURRENT_BINARY_DIR}/vrpn_${class}.h")
+ endforeach()
++ list(APPEND
++ JAVAC_OUTPUT
++ "${CMAKE_CURRENT_BINARY_DIR}/vrpn/VRPN.class")
++ list(APPEND
++ JAVAC_INPUT
++ "${CMAKE_CURRENT_BINARY_DIR}/vrpn/VRPN.java")
++ list(APPEND
++ JAVA_JNI_HEADERS
++ "${CMAKE_CURRENT_BINARY_DIR}/vrpn_VRPN.h")
+
+ # *.java -> *.class
+ add_custom_command(OUTPUT
+@@ -87,6 +118,20 @@ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EX
+ COMMENT
+ "Generating JNI header file for vrpn.${in}")
+ endforeach()
++ add_custom_command(OUTPUT
++ "${CMAKE_CURRENT_BINARY_DIR}/vrpn_VRPN.h"
++ DEPENDS
++ "${CMAKE_CURRENT_BINARY_DIR}/vrpn/VRPN.class"
++ COMMAND
++ "${JAVAH_EXECUTABLE}"
++ -d
++ "${CMAKE_CURRENT_BINARY_DIR}"
++ -jni
++ -classpath
++ "${CMAKE_CURRENT_BINARY_DIR}"
++ vrpn.VRPN
++ COMMENT
++ "Generating JNI header file for vrpn.${in}")
+
+ # target for vrpn.jar
+ add_custom_target(java_vrpn_jar
+@@ -120,12 +165,15 @@ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EX
+
+ if(VRPN_INSTALL)
+ install(TARGETS java_vrpn
+- ARCHIVE DESTINATION lib COMPONENT java
+- LIBRARY DESTINATION lib COMPONENT java
+- RUNTIME DESTINATION lib COMPONENT java)
++ ARCHIVE DESTINATION "${JAVA_INSTALL_LIBDIR}"
++ COMPONENT java
++ LIBRARY DESTINATION "${JAVA_INSTALL_LIBDIR}"
++ COMPONENT java
++ RUNTIME DESTINATION "${JAVA_INSTALL_LIBDIR}"
++ COMPONENT java)
+
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vrpn.jar"
+- DESTINATION share/java
++ DESTINATION "${JAVA_INSTALL_JNIDIR}"
+ COMPONENT java
+ RENAME vrpn-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.jar)
+ endif()
+Index: vrpn-version_07.33/java_vrpn/vrpn/VRPN.java
+===================================================================
+--- vrpn-version_07.33.orig/java_vrpn/vrpn/VRPN.java
++++ /dev/null
+@@ -1,34 +0,0 @@
+-
+-
+-package vrpn;
+-
+-public class VRPN
+-{
+-
+- /**
+- * All VRPN objects must assert this lock before making any calls
+- * into native code. A corollary of this is that no native methods
+- * may be public; all native methods must be wrapped by other methods
+- * that first synchronize on this lock before calling the native
+- * method.
+- */
+- protected final static Object downInVrpnLock = new Object( );
+-
+- static
+- {
+- try { System.loadLibrary( "java_vrpn" ); }
+- catch( UnsatisfiedLinkError e )
+- {
+- System.out.println( e.getMessage( ) );
+- System.out.println( "Error initializing java_vrpn." );
+- System.out.println( " -- Unable to find native library." );
+- }
+- catch( SecurityException e )
+- {
+- System.out.println( e.getMessage( ) );
+- System.out.println( "Security exception: you couldn't load the native vrpn dll." );
+- }
+- } // end static initializer block
+-
+-
+-} // end class VRPN
+Index: vrpn-version_07.33/java_vrpn/vrpn/VRPN.java.in
+===================================================================
+--- /dev/null
++++ vrpn-version_07.33/java_vrpn/vrpn/VRPN.java.in
+@@ -0,0 +1,34 @@
++
++
++package vrpn;
++
++public class VRPN
++{
++
++ /**
++ * All VRPN objects must assert this lock before making any calls
++ * into native code. A corollary of this is that no native methods
++ * may be public; all native methods must be wrapped by other methods
++ * that first synchronize on this lock before calling the native
++ * method.
++ */
++ protected final static Object downInVrpnLock = new Object( );
++
++ static
++ {
++ try { @JAVA_LOAD_VRPN@; }
++ catch( UnsatisfiedLinkError e )
++ {
++ System.out.println( e.getMessage( ) );
++ System.out.println( "Error initializing java_vrpn." );
++ System.out.println( " -- Unable to find native library." );
++ }
++ catch( SecurityException e )
++ {
++ System.out.println( e.getMessage( ) );
++ System.out.println( "Security exception: you couldn't load the native vrpn dll." );
++ }
++ } // end static initializer block
++
++
++} // end class VRPN
diff --git a/vrpn-python_install.patch b/vrpn-python_install.patch
new file mode 100644
index 0000000..f9b56e9
--- /dev/null
+++ b/vrpn-python_install.patch
@@ -0,0 +1,64 @@
+Index: vrpn-version_07.33/python/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/python/CMakeLists.txt
++++ vrpn-version_07.33/python/CMakeLists.txt
+@@ -52,14 +52,19 @@ if(PYTHONLIBS_FOUND AND (VRPN_BUILD_PYTH
+ OUTPUT_NAME vrpn)
+
+ if(VRPN_INSTALL)
++ set(VRPN_PYTHON_INSTALL_DIR
++ lib/${PYTHONVERSIONDIR}dist-packages/
++ CACHE
++ PATH
++ "Directory to install python modules")
+ if(WIN32)
+ # install(TARGETS vrpn-python
+-# RUNTIME DESTINATION lib/${PYTHONVERSIONDIR}dist-packages/ COMPONENT python
+-# LIBRARY DESTINATION lib/${PYTHONVERSIONDIR}dist-packages/ COMPONENT python)
++# RUNTIME DESTINATION "${VRPN_PYTHON_INSTALL_DIR}" COMPONENT python
++# LIBRARY DESTINATION "${VRPN_PYTHON_INSTALL_DIR}" COMPONENT python)
+ else()
+ install(TARGETS vrpn-python
+- RUNTIME DESTINATION lib/${PYTHONVERSIONDIR}dist-packages/ COMPONENT python
+- LIBRARY DESTINATION lib/${PYTHONVERSIONDIR}dist-packages/ COMPONENT python)
++ RUNTIME DESTINATION "${VRPN_PYTHON_INSTALL_DIR}" COMPONENT python
++ LIBRARY DESTINATION "${VRPN_PYTHON_INSTALL_DIR}" COMPONENT python)
+ endif()
+ endif()
+ endif()
+Index: vrpn-version_07.33/python_vrpn/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/python_vrpn/CMakeLists.txt
++++ vrpn-version_07.33/python_vrpn/CMakeLists.txt
+@@ -68,23 +68,28 @@ if(SWIG_FOUND AND PYTHONLIBS_FOUND AND V
+ swig_link_libraries(${module} ${PYTHON_LIBRARIES} ${LIBS} ${SERVER_EXTRA_LIBS})
+ set_target_properties(_${module} PROPERTIES FOLDER "Python Bindings")
+
++ set(VRPN_PYTHON_INSTALL_DIR
++ lib/${PYTHONVERSIONDIR}dist-packages/
++ CACHE
++ PATH
++ "Directory to install python modules")
+ if(VRPN_INSTALL)
+ install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/${module}.py"
+ DESTINATION
+- lib/${PYTHONVERSIONDIR}dist-packages/
++ "${VRPN_PYTHON_INSTALL_DIR}"
+ COMPONENT
+ python)
+ install(TARGETS
+ ${SWIG_MODULE_${module}_REAL_NAME}
+ RUNTIME
+ DESTINATION
+- lib/${PYTHONVERSIONDIR}dist-packages/
++ "${VRPN_PYTHON_INSTALL_DIR}"
+ COMPONENT
+ python
+ LIBRARY
+ DESTINATION
+- lib/${PYTHONVERSIONDIR}dist-packages/
++ "${VRPN_PYTHON_INSTALL_DIR}"
+ COMPONENT
+ python)
+ endif()
diff --git a/vrpn-soversion.patch b/vrpn-soversion.patch
new file mode 100644
index 0000000..e10ed23
--- /dev/null
+++ b/vrpn-soversion.patch
@@ -0,0 +1,109 @@
+Index: vrpn-version_07.33/gpsnmealib/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/gpsnmealib/CMakeLists.txt
++++ vrpn-version_07.33/gpsnmealib/CMakeLists.txt
+@@ -21,6 +21,10 @@ set_property(TARGET
+ PUBLIC_HEADER
+ ${GPSNMEALIB_PUBLIC_HEADERS})
+ set_property(TARGET gpsnmea PROPERTY FOLDER "Library")
++set_target_properties(gpsnmea
++ PROPERTIES
++ VERSION ${CPACK_PACKAGE_VERSION}
++ SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
+
+ if(VRPN_INSTALL)
+ install(TARGETS
+Index: vrpn-version_07.33/quat/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/quat/CMakeLists.txt
++++ vrpn-version_07.33/quat/CMakeLists.txt
+@@ -35,6 +35,10 @@ set(QUATLIB_HEADER quat.h)
+ add_library(quat ${QUATLIB_SOURCES} ${QUATLIB_HEADER})
+ set_property(TARGET quat PROPERTY PUBLIC_HEADER ${QUATLIB_HEADER})
+ set_target_properties(quat PROPERTIES FOLDER Library)
++set_target_properties(quat
++ PROPERTIES
++ VERSION ${CPACK_PACKAGE_VERSION}
++ SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
+ if(VRPN_INSTALL)
+ install(TARGETS
+ quat
+Index: vrpn-version_07.33/server_src/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/server_src/CMakeLists.txt
++++ vrpn-version_07.33/server_src/CMakeLists.txt
+@@ -59,6 +59,10 @@ if(VRPN_USE_PHANTOM_SERVER AND OPENGL_FO
+ PUBLIC_HEADER
+ ${PHANTOM_HEADERS})
+ set_target_properties(vrpn_phantom PROPERTIES FOLDER Library)
++ set_target_properties(vrpn_phantom
++ PROPERTIES
++ VERSION ${CPACK_PACKAGE_VERSION}
++ SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
+
+ if(VRPN_INSTALL)
+ install(TARGETS
+Index: vrpn-version_07.33/server_src/timecode_generator_server/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/server_src/timecode_generator_server/CMakeLists.txt
++++ vrpn-version_07.33/server_src/timecode_generator_server/CMakeLists.txt
+@@ -20,7 +20,11 @@ target_link_libraries(vrpn_timecode_gene
+ set_target_properties(vrpn_timecode_generator
+ PROPERTIES
+ FOLDER
+- "Main Server")
++ "Main Server"
++ VERSION
++ ${CPACK_PACKAGE_VERSION}
++ SOVERSION
++ ${CPACK_PACKAGE_VERSION_MAJOR})
+
+ if(VRPN_INSTALL)
+ install(TARGETS
+Index: vrpn-version_07.33/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/CMakeLists.txt
++++ vrpn-version_07.33/CMakeLists.txt
+@@ -1244,6 +1244,12 @@ if(VRPN_BUILD_SERVER_LIBRARY)
+ PROPERTY
+ LINK_FLAGS
+ ${SERVER_LINK_FLAGS})
++ set_target_properties(vrpnserver
++ PROPERTIES
++ VERSION
++ ${CPACK_PACKAGE_VERSION}
++ SOVERSION
++ ${CPACK_PACKAGE_VERSION_MAJOR})
+
+ if(UNIX)
+ add_subdirectory(atmellib)
+@@ -1298,6 +1304,12 @@ if(VRPN_BUILD_CLIENT_LIBRARY)
+ PROPERTY
+ FOLDER
+ "Library")
++ set_target_properties(vrpn
++ PROPERTIES
++ VERSION
++ ${CPACK_PACKAGE_VERSION}
++ SOVERSION
++ ${CPACK_PACKAGE_VERSION_MAJOR})
+
+ if(VRPN_INSTALL)
+ install(TARGETS
+Index: vrpn-version_07.33/atmellib/CMakeLists.txt
+===================================================================
+--- vrpn-version_07.33.orig/atmellib/CMakeLists.txt
++++ vrpn-version_07.33/atmellib/CMakeLists.txt
+@@ -21,6 +21,12 @@ set_property(TARGET
+ PROPERTY
+ FOLDER
+ "Library")
++set_target_properties(vrpn_atmel
++ PROPERTIES
++ VERSION
++ ${CPACK_PACKAGE_VERSION}
++ SOVERSION
++ ${CPACK_PACKAGE_VERSION_MAJOR})
+ if(VRPN_INSTALL)
+ install(TARGETS
+ vrpn_atmel
diff --git a/vrpn-wait.patch b/vrpn-wait.patch
new file mode 100644
index 0000000..9dd04d0
--- /dev/null
+++ b/vrpn-wait.patch
@@ -0,0 +1,31 @@
+Index: vrpn-version_07.33/vrpn_Connection.C
+===================================================================
+--- vrpn-version_07.33.orig/vrpn_Connection.C
++++ vrpn-version_07.33/vrpn_Connection.C
+@@ -2486,11 +2486,7 @@ static int vrpn_start_server(const char
+ for (waitloop = 0; waitloop < (SERVCOUNT); waitloop++) {
+ int ret;
+ pid_t deadkid;
+-#if defined(sparc) || defined(FreeBSD) || defined(_AIX) || defined(__ANDROID__)
+- int status; // doesn't exist on sparc_solaris or FreeBSD
+-#else
+- union wait status;
+-#endif
++ int status;
+
+ /* Check to see if they called back yet. */
+ ret = vrpn_poll_for_accept(server_sock, &child_socket, SERVWAIT);
+@@ -2504,13 +2500,7 @@ static int vrpn_start_server(const char
+ }
+
+ /* Check to see if the child is dead yet */
+-#if defined(hpux) || defined(sgi) || defined(__hpux) || defined(__CYGWIN__) || \
+- defined(__APPLE__)
+- /* hpux include files have the wrong declaration */
+- deadkid = wait3((int *)&status, WNOHANG, NULL);
+-#else
+ deadkid = wait3(&status, WNOHANG, NULL);
+-#endif
+ if (deadkid == pid) {
+ fprintf(stderr, "vrpn_start_server: server process exited\n");
+ vrpn_closeSocket(server_sock);
diff --git a/vrpn.service b/vrpn.service
new file mode 100644
index 0000000..57c5607
--- /dev/null
+++ b/vrpn.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=VRPN server
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/vrpn_server -f /etc/vrpn.cfg
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vrpn.spec b/vrpn.spec
new file mode 100644
index 0000000..74a92c9
--- /dev/null
+++ b/vrpn.spec
@@ -0,0 +1,284 @@
+%undefine __cmake_in_source_build
+
+Name: vrpn
+Version: 07.33
+Release: 26%{?dist}
+Summary: The Virtual-Reality Peripheral Network
+
+# linking to wiiuse (GPLv3+) and gpm (GPLv2+) libraries makes the vrpn server
+# (libvrpnserver.so and vrpn_server binary, as well as python and java modules)
+# GPLv3+-licensed. The rest of files is supplied under the Boost license.
+License: Boost and GPLv3+
+URL: https://github.com/vrpn/vrpn/
+Source0: https://github.com/vrpn/vrpn/archive/version_%{version}.tar.gz#/%{name}-v...
+Source1: vrpn.service
+Patch0: vrpn-find_modbus.patch
+Patch1: vrpn-find_hidapi.patch
+Patch2: vrpn-find_jsoncpp.patch
+# patch3 from upstream commit 7f961a3
+Patch3: vrpn-fix_library_install_rules.patch
+Patch4: vrpn-java_install.patch
+Patch5: vrpn-python_install.patch
+Patch6: vrpn-soversion.patch
+Patch7: vrpn-config_install.patch
+Patch8: vrpn-dont_install_garbage.patch
+Patch9: vrpn-wait.patch
+
+BuildRequires: gcc-c++
+BuildRequires: cmake
+BuildRequires: doxygen
+BuildRequires: gcc
+BuildRequires: glut-devel
+BuildRequires: gpm-devel
+BuildRequires: graphviz
+BuildRequires: help2man
+BuildRequires: hidapi-devel
+BuildRequires: java-devel
+BuildRequires: jsoncpp-devel
+BuildRequires: libGL-devel
+BuildRequires: libmodbus-devel
+BuildRequires: libudev-devel
+BuildRequires: libusb-devel
+BuildRequires: perl-Parse-RecDescent
+BuildRequires: python3-devel
+BuildRequires: systemd
+BuildRequires: swig
+BuildRequires: wiiuse-devel
+
+%{?systemd_requires}
+
+%description
+The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
+library and a set of servers that are designed to implement a
+network-transparent interface between application programs and the set of
+physical devices (tracker, etc.) used in a virtual-reality (VR) system. The
+idea is to have a PC or other host at each VR station that controls the
+peripherals (tracker, button device, haptic device, analog inputs, sound, etc).
+VRPN provides connections between the application and all of the devices using
+the appropriate class-of-service for each type of device sharing this link. The
+application remains unaware of the network topology. Note that it is possible
+to use VRPN with devices that are directly connected to the machine that the
+application is running on, either using separate control programs or running
+all as a single program.
+
+
+%package devel
+Summary: Development files for the Virtual-Reality Peripheral Network
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
+library and a set of servers that are designed to implement a
+network-transparent interface between application programs and the set of
+physical devices (tracker, etc.) used in a virtual-reality (VR) system.
+
+This package contains development files for VRPN libraries.
+
+
+%package doc
+Summary: Developer's documentation for VRPN
+BuildArch: noarch
+
+%description doc
+The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
+library and a set of servers that are designed to implement a
+network-transparent interface between application programs and the set of
+physical devices (tracker, etc.) used in a virtual-reality (VR) system.
+
+This package contains generated VRPN source code documentation.
+
+
+%package java
+Summary: Java bindings for the Virtual-Reality Peripheral Network
+License: GPLv3+
+
+Requires: java-headless
+Requires: javapackages-tools
+
+%description java
+The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
+library and a set of servers that are designed to implement a
+network-transparent interface between application programs and the set of
+physical devices (tracker, etc.) used in a virtual-reality (VR) system.
+
+This package contains Java bindings for VRPN libraries.
+
+
+%package -n python3-%{name}
+Summary: Python 3 bindings for the Virtual-Reality Peripheral Network
+License: GPLv3+
+
+%{?python_provide:%python_provide python3-%{name}}
+
+%description -n python3-%{name}
+The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
+library and a set of servers that are designed to implement a
+network-transparent interface between application programs and the set of
+physical devices (tracker, etc.) used in a virtual-reality (VR) system.
+
+This package contains Python 3 bindings for VRPN libraries.
+
+
+%prep
+%autosetup -n %{name}-version_%{version} -p1
+
+
+%build
+%cmake \
+ -DVRPN_GPL_SERVER=ON \
+ -DBUILD_TESTING=ON \
+ -DVRPN_BUILD_PYTHON_HANDCODED_3X=ON \
+ -DVRPN_PYTHON_INSTALL_DIR=%{python3_sitearch} \
+ -DJAVA_INSTALL_LIBDIR=%{_libdir}/%{name} \
+ -DJAVA_INSTALL_JNIDIR=%{_jnidir} \
+%ifarch %{arm}
+ -DJAVA_AWT_LIBRARY=%{_libdir}/jvm/java/lib/aarch32/libjawt.so \
+%endif # arch %%{arm}
+ %{nil}
+%cmake_build
+%cmake_build --target doc
+
+
+%install
+%cmake_install
+install -D %{_vpath_builddir}/python/vrpn.so %{buildroot}%{python3_sitearch}/vrpn.so
+install -D -m644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
+
+# generate man pages
+mkdir -p %{buildroot}%{_mandir}/man1
+for prog in ./%{_vpath_builddir}/server_src/vrpn_server \
+ ./%{_vpath_builddir}/client_src/run_auxiliary_logger \
+ ./%{_vpath_builddir}/client_src/vrpn_print_{devices,messages,performance}
+do
+ progname=$(basename "$prog")
+ help2man \
+ --version-string=%{version} \
+ --no-info \
+ --no-discard-stderr \
+ --output="%{buildroot}%{_mandir}/man1/$progname.1" \
+ "$prog"
+done
+
+
+%check
+%ctest
+
+
+%post
+%systemd_post %{name}.service
+
+%preun
+%systemd_preun %{name}.service
+
+%postun
+%systemd_postun_with_restart %{name}.service
+
+
+%files
+%doc ChangeLog Format
+%license README.Legal
+%{_libdir}/*.so.*
+%{_bindir}/*
+%{_datadir}/%{name}-%{version}
+%config(noreplace) %{_sysconfdir}/vrpn.cfg
+%{_unitdir}/%{name}.service
+%{_mandir}/man1/*
+
+%files devel
+%{_includedir}/*
+%{_libdir}/*.so
+
+%files doc
+%doc %{_docdir}/%{name}-%{version}
+%exclude %{_docdir}/%{name}-%{version}/source-docs/html/*.map
+%exclude %{_docdir}/%{name}-%{version}/source-docs/html/*.md5
+
+%files java
+%{_libdir}/%{name}/libjava_%{name}.so
+%{_jnidir}/*.jar
+
+%files -n python3-%{name}
+%{python3_sitearch}/*.so
+
+
+%changelog
+* Sat Aug 01 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-26
+- Second attempt - Rebuilt for
+ https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Sat Jul 11 2020 Jiri Vanek <jvanek(a)redhat.com> - 07.33-24
+- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
+
+* Sat May 30 2020 Björn Esser <besser82(a)fedoraproject.org> - 07.33-23
+- Rebuild (jsoncpp)
+
+* Tue May 26 2020 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-22
+- Rebuilt for Python 3.9
+
+* Fri Jan 31 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-21
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Thu Nov 14 2019 Björn Esser <besser82(a)fedoraproject.org> - 07.33-20
+- Rebuild (jsoncpp)
+
+* Mon Aug 19 2019 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-19
+- Rebuilt for Python 3.8
+
+* Sat Jul 27 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Wed Jul 03 2019 Björn Esser <besser82(a)fedoraproject.org> - 07.33-17
+- Rebuild (jsoncpp)
+
+* Sun Feb 03 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Mon Jan 14 2019 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-15
+- Subpackage python2-vrpn has been removed
+ See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal
+
+* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Tue Jun 19 2018 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-13
+- Rebuilt for Python 3.7
+
+* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Tue Dec 26 2017 Björn Esser <besser82(a)fedoraproject.org> - 07.33-11
+- Rebuilt for jsoncpp.so.20
+
+* Sat Sep 02 2017 Björn Esser <besser82(a)fedoraproject.org> - 07.33-10
+- Fix problems with finding JNI on %%arm
+
+* Fri Sep 01 2017 Björn Esser <besser82(a)fedoraproject.org> - 07.33-9
+- Rebuilt for jsoncpp-1.8.3
+
+* Thu Aug 03 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Mon Dec 19 2016 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-5
+- Rebuild for Python 3.6
+
+* Mon Oct 03 2016 Björn Esser <fedora(a)besser82.io> - 07.33-4
+- Rebuilt for libjsoncpp.so.11
+
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 07.33-3
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
+
+* Wed Jun 8 2016 Dmitry Mikhirev <mikhirev(a)gmail.com> 07.33-2
+- Fix build for fc25 (#1341988)
+- Fix installation of python 3 module (#1342509)
+
+* Wed Feb 24 2016 Dmitry Mikhirev <mikhirev(a)gmail.com> 07.33-1
+- Initial package
https://src.fedoraproject.org/rpms/vrpn/c/c8f5ab52f1ff81d2db3aa8701a7e45a...
7 months
dcavalca pushed to rpms/vrpn (f39). "Orphaned for 6+ weeks"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:08:42 UTC
From baf215cbb0f8ef487d6fc97a19a31d95aa82b35e Mon Sep 17 00:00:00 2001
From: Miro Hrončok <miro(a)hroncok.cz>
Date: Dec 01 2020 21:19:55 +0000
Subject: Orphaned for 6+ weeks
---
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 897c42a..0000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/vrpn-version_07.33.tar.gz
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..5204a84
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+Orphaned for 6+ weeks
diff --git a/sources b/sources
deleted file mode 100644
index 90e342c..0000000
--- a/sources
+++ /dev/null
@@ -1 +0,0 @@
-ad1475cdcc2572fcf447f8e88404f753 vrpn-version_07.33.tar.gz
diff --git a/vrpn-config_install.patch b/vrpn-config_install.patch
deleted file mode 100644
index 68b4c81..0000000
--- a/vrpn-config_install.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Index: vrpn-version_07.33/server_src/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/server_src/CMakeLists.txt
-+++ vrpn-version_07.33/server_src/CMakeLists.txt
-@@ -143,13 +143,18 @@ configure_file("${CMAKE_CURRENT_SOURCE_D
- @ONLY)
-
- if(VRPN_INSTALL)
-+ set(SYSCONF_INSTALL_DIR
-+ etc
-+ CACHE
-+ PATH
-+ "Directory to install configuration files")
- if(WIN32)
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vrpn.cfg"
- DESTINATION bin
- COMPONENT mainserver)
- else()
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vrpn.cfg"
-- DESTINATION etc
-+ DESTINATION ${SYSCONF_INSTALL_DIR}
- COMPONENT mainserver)
- endif()
-
diff --git a/vrpn-dont_install_garbage.patch b/vrpn-dont_install_garbage.patch
deleted file mode 100644
index 13aaf98..0000000
--- a/vrpn-dont_install_garbage.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-Index: vrpn-version_07.33/client_src/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/client_src/CMakeLists.txt
-+++ vrpn-version_07.33/client_src/CMakeLists.txt
-@@ -74,9 +74,9 @@ if(VRPN_BUILD_CLIENTS)
- target_link_libraries(${APP} ${VRPN_CLIENT_LIBRARY})
-
- set_target_properties(${APP} PROPERTIES FOLDER Tests)
-- if(VRPN_INSTALL)
-- install(TARGETS ${APP} RUNTIME DESTINATION bin COMPONENT tests)
-- endif()
-+ #if(VRPN_INSTALL)
-+ # install(TARGETS ${APP} RUNTIME DESTINATION bin COMPONENT tests)
-+ #endif()
- endforeach()
-
- if(GLUT_FOUND AND OPENGL_FOUND)
-@@ -89,15 +89,15 @@ if(VRPN_BUILD_CLIENTS)
-
- set_target_properties(testimager_client PROPERTIES FOLDER Tests)
-
-- if(VRPN_INSTALL)
-- install(TARGETS
-- testimager_client
-- RUNTIME
-- DESTINATION
-- bin
-- COMPONENT
-- tests)
-- endif()
-+ #if(VRPN_INSTALL)
-+ # install(TARGETS
-+ # testimager_client
-+ # RUNTIME
-+ # DESTINATION
-+ # bin
-+ # COMPONENT
-+ # tests)
-+ #endif()
- option(VRPN_GLUT_IS_STATIC_FREEGLUT
- "Is the GLUT used for the imaging test client a static build of FreeGLUT?"
- NO)
-@@ -121,15 +121,15 @@ if(VRPN_BUILD_CLIENTS)
-
- set_target_properties(c_interface_example PROPERTIES FOLDER Tests)
-
-- if(VRPN_INSTALL)
-- install(TARGETS
-- c_interface_example
-- RUNTIME
-- DESTINATION
-- bin
-- COMPONENT
-- tests)
-- endif()
-+ #if(VRPN_INSTALL)
-+ # install(TARGETS
-+ # c_interface_example
-+ # RUNTIME
-+ # DESTINATION
-+ # bin
-+ # COMPONENT
-+ # tests)
-+ #endif()
-
-
- ###
-Index: vrpn-version_07.33/server_src/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/server_src/CMakeLists.txt
-+++ vrpn-version_07.33/server_src/CMakeLists.txt
-@@ -219,10 +219,10 @@ if(BUILD_TESTING)
- target_link_libraries(${APP} ${VRPN_SERVER_LIBRARY})
- set_target_properties(${APP} PROPERTIES FOLDER Tests)
-
-- if(VRPN_INSTALL)
-- install(TARGETS ${APP}
-- RUNTIME DESTINATION bin COMPONENT tests)
-- endif()
-+ #if(VRPN_INSTALL)
-+ # install(TARGETS ${APP}
-+ # RUNTIME DESTINATION bin COMPONENT tests)
-+ #endif()
- endforeach()
- add_test(test_loopback test_loopback)
- add_test(test_vrpn test_vrpn)
-Index: vrpn-version_07.33/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/CMakeLists.txt
-+++ vrpn-version_07.33/CMakeLists.txt
-@@ -1393,9 +1393,9 @@ if(VRPN_BUILD_SERVERS AND VRPN_BUILD_SER
- add_executable(${APP} ${SOURCE})
- target_link_libraries(${APP} vrpnserver)
- set_target_properties(${APP} PROPERTIES FOLDER Tests)
-- if(VRPN_INSTALL)
-- install(TARGETS ${APP} RUNTIME DESTINATION bin COMPONENT tests)
-- endif()
-+ #if(VRPN_INSTALL)
-+ # install(TARGETS ${APP} RUNTIME DESTINATION bin COMPONENT tests)
-+ #endif()
- endforeach()
- endif()
-
diff --git a/vrpn-find_hidapi.patch b/vrpn-find_hidapi.patch
deleted file mode 100644
index b2d596d..0000000
--- a/vrpn-find_hidapi.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: vrpn-version_07.33/cmake/FindHIDAPI.cmake
-===================================================================
---- vrpn-version_07.33.orig/cmake/FindHIDAPI.cmake
-+++ vrpn-version_07.33/cmake/FindHIDAPI.cmake
-@@ -24,10 +24,13 @@
- # http://www.boost.org/LICENSE_1_0.txt)
-
- find_library(HIDAPI_LIBRARY
-- NAMES hidapi)
-+ NAMES hidapi hidapi-libusb)
-
- find_path(HIDAPI_INCLUDE_DIR
-- NAMES hidapi.h)
-+ NAMES hidapi.h
-+ PATH_SUFFIXES
-+ include
-+ include/hidapi)
-
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(HIDAPI
diff --git a/vrpn-find_jsoncpp.patch b/vrpn-find_jsoncpp.patch
deleted file mode 100644
index 003966e..0000000
--- a/vrpn-find_jsoncpp.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: vrpn-version_07.33/cmake/FindJsonCpp.cmake
-===================================================================
---- vrpn-version_07.33.orig/cmake/FindJsonCpp.cmake
-+++ vrpn-version_07.33/cmake/FindJsonCpp.cmake
-@@ -69,6 +69,7 @@ list(APPEND _jsoncppnames
-
- find_library(JSONCPP_LIBRARY
- NAMES
-+ jsoncpp
- ${_jsoncppnames}
- PATHS
- "${JSONCPP_ROOT_DIR}/libs"
diff --git a/vrpn-find_modbus.patch b/vrpn-find_modbus.patch
deleted file mode 100644
index 8fa2e29..0000000
--- a/vrpn-find_modbus.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Index: vrpn-version_07.33/cmake/FindModbus.cmake
-===================================================================
---- vrpn-version_07.33.orig/cmake/FindModbus.cmake
-+++ vrpn-version_07.33/cmake/FindModbus.cmake
-@@ -46,16 +46,16 @@ find_path(MODBUS_INCLUDE_DIR
- "${MODBUS_ROOT_DIR}"
- PATH_SUFFIXES
- include
-+ include/modbus
- PATHS
- "${_progfiles}/libmodbus"
- C:/usr/local
-- /usr/local)
-+ /usr/local
-+ /usr)
-
- # Look for the library.
- find_library(MODBUS_LIBRARY
-- NAMES
-- libmodbus.lib
-- libmodbus.a
-+ modbus
- HINTS
- "${MODBUS_ROOT_DIR}"
- PATH_SUFFIXES
diff --git a/vrpn-fix_library_install_rules.patch b/vrpn-fix_library_install_rules.patch
deleted file mode 100644
index 8f12fca..0000000
--- a/vrpn-fix_library_install_rules.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a03978b..0ad0c6d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1245,16 +1245,10 @@ if(VRPN_BUILD_SERVER_LIBRARY)
- if(VRPN_INSTALL)
- install(TARGETS
- vrpnserver
-- ARCHIVE
-- DESTINATION
-- lib
-- COMPONENT
-- serversdk
-- PUBLIC_HEADER
-- DESTINATION
-- include
-- COMPONENT
-- serversdk)
-+ RUNTIME DESTINATION bin COMPONENT serversdk
-+ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
- endif()
- add_cppcheck(vrpnserver STYLE UNUSED_FUNCTIONS)
- endif()
-@@ -1292,16 +1286,10 @@ if(VRPN_BUILD_CLIENT_LIBRARY)
- if(VRPN_INSTALL)
- install(TARGETS
- vrpn
-- ARCHIVE
-- DESTINATION
-- lib
-- COMPONENT
-- clientsdk
-- PUBLIC_HEADER
-- DESTINATION
-- include
-- COMPONENT
-- clientsdk)
-+ RUNTIME DESTINATION bin COMPONENT clientsdk
-+ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT clientsdk
-+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT clientsdk
-+ PUBLIC_HEADER DESTINATION include COMPONENT clientsdk)
- endif()
- add_cppcheck(vrpn STYLE UNUSED_FUNCTIONS)
- endif()
-diff --git a/atmellib/CMakeLists.txt b/atmellib/CMakeLists.txt
-index 30d51f1..003785c 100644
---- a/atmellib/CMakeLists.txt
-+++ b/atmellib/CMakeLists.txt
-@@ -24,14 +24,8 @@ set_property(TARGET
- if(VRPN_INSTALL)
- install(TARGETS
- vrpn_atmel
-- ARCHIVE
-- DESTINATION
-- lib
-- COMPONENT
-- serversdk
-- PUBLIC_HEADER
-- DESTINATION
-- include
-- COMPONENT
-- serversdk)
-+ RUNTIME DESTINATION bin COMPONENT serversdk
-+ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
- endif()
-diff --git a/gpsnmealib/CMakeLists.txt b/gpsnmealib/CMakeLists.txt
-index fee7b3a..9a34e2d 100644
---- a/gpsnmealib/CMakeLists.txt
-+++ b/gpsnmealib/CMakeLists.txt
-@@ -25,14 +25,8 @@ set_property(TARGET gpsnmea PROPERTY FOLDER "Library")
- if(VRPN_INSTALL)
- install(TARGETS
- gpsnmea
-- ARCHIVE
-- DESTINATION
-- lib
-- COMPONENT
-- serversdk
-- PUBLIC_HEADER
-- DESTINATION
-- include
-- COMPONENT
-- serversdk)
--endif()
-\ No newline at end of file
-+ RUNTIME DESTINATION bin COMPONENT serversdk
-+ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
-+endif()
-diff --git a/quat/CMakeLists.txt b/quat/CMakeLists.txt
-index 597776e..8d48c94 100644
---- a/quat/CMakeLists.txt
-+++ b/quat/CMakeLists.txt
-@@ -38,28 +38,16 @@ set_target_properties(quat PROPERTIES FOLDER Library)
- if(VRPN_INSTALL)
- install(TARGETS
- quat
-- ARCHIVE
-- DESTINATION
-- lib
-- COMPONENT
-- serversdk
-- PUBLIC_HEADER
-- DESTINATION
-- include
-- COMPONENT
-- serversdk)
-+ RUNTIME DESTINATION bin COMPONENT serversdk
-+ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
- install(TARGETS
- quat
-- ARCHIVE
-- DESTINATION
-- lib
-- COMPONENT
-- clientsdk
-- PUBLIC_HEADER
-- DESTINATION
-- include
-- COMPONENT
-- clientsdk)
-+ RUNTIME DESTINATION bin COMPONENT clientsdk
-+ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT clientsdk
-+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT clientsdk
-+ PUBLIC_HEADER DESTINATION include COMPONENT clientsdk)
- endif()
-
- add_subdirectory(testapps)
-diff --git a/server_src/timecode_generator_server/CMakeLists.txt b/server_src/timecode_generator_server/CMakeLists.txt
-index 5f8dce6..925bc44 100644
---- a/server_src/timecode_generator_server/CMakeLists.txt
-+++ b/server_src/timecode_generator_server/CMakeLists.txt
-@@ -25,14 +25,8 @@ set_target_properties(vrpn_timecode_generator
- if(VRPN_INSTALL)
- install(TARGETS
- vrpn_timecode_generator
-- ARCHIVE
-- DESTINATION
-- lib
-- COMPONENT
-- serversdk
-- PUBLIC_HEADER
-- DESTINATION
-- include
-- COMPONENT
-- serversdk)
--endif()
-\ No newline at end of file
-+ RUNTIME DESTINATION bin COMPONENT serversdk
-+ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT serversdk
-+ PUBLIC_HEADER DESTINATION include COMPONENT serversdk)
-+endif()
diff --git a/vrpn-java_install.patch b/vrpn-java_install.patch
deleted file mode 100644
index b095105..0000000
--- a/vrpn-java_install.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-Index: vrpn-version_07.33/java_vrpn/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/java_vrpn/CMakeLists.txt
-+++ vrpn-version_07.33/java_vrpn/CMakeLists.txt
-@@ -6,6 +6,29 @@
-
- if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EXECUTABLE AND VRPN_BUILD_JAVA)
-
-+ set(JAVA_INSTALL_LIBDIR
-+ lib
-+ CACHE PATH
-+ "Where to install java shared objects")
-+ set(JAVA_INSTALL_JNIDIR
-+ share/java
-+ CACHE PATH
-+ "Where to install JNI jar files")
-+
-+ if("${JAVA_INSTALL_LIBDIR}" STREQUAL lib)
-+ set(JAVA_LOAD_VRPN
-+ "System.loadLibrary(\"java_vrpn\")")
-+ else()
-+ if(IS_ABSOLUTE "${JAVA_INSTALL_LIBDIR}")
-+ set(JAVA_LOAD_VRPN
-+ "System.load(\"${JAVA_INSTALL_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}java_vrpn${CMAKE_SHARED_LIBRARY_SUFFIX}\")")
-+ else()
-+ set(JAVA_LOAD_VRPN
-+ "System.load(\"${CMAKE_INSTALL_PREFIX}/${JAVA_INSTALL_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}java_vrpn${CMAKE_SHARED_LIBRARY_SUFFIX}\")")
-+ endif()
-+ endif()
-+ configure_file("vrpn/VRPN.java.in" "vrpn/VRPN.java")
-+
- # Set up file lists
- set(JAVA_CLASSES
- AnalogOutputRemote
-@@ -22,7 +45,6 @@ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EX
- TextSender
- TrackerRemote
- TrackerRemoteListener
-- VRPN
- VRPNDevice)
- set(JAVAC_OUTPUT)
- set(JAVAC_INPUT)
-@@ -38,6 +60,15 @@ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EX
- JAVA_JNI_HEADERS
- "${CMAKE_CURRENT_BINARY_DIR}/vrpn_${class}.h")
- endforeach()
-+ list(APPEND
-+ JAVAC_OUTPUT
-+ "${CMAKE_CURRENT_BINARY_DIR}/vrpn/VRPN.class")
-+ list(APPEND
-+ JAVAC_INPUT
-+ "${CMAKE_CURRENT_BINARY_DIR}/vrpn/VRPN.java")
-+ list(APPEND
-+ JAVA_JNI_HEADERS
-+ "${CMAKE_CURRENT_BINARY_DIR}/vrpn_VRPN.h")
-
- # *.java -> *.class
- add_custom_command(OUTPUT
-@@ -87,6 +118,20 @@ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EX
- COMMENT
- "Generating JNI header file for vrpn.${in}")
- endforeach()
-+ add_custom_command(OUTPUT
-+ "${CMAKE_CURRENT_BINARY_DIR}/vrpn_VRPN.h"
-+ DEPENDS
-+ "${CMAKE_CURRENT_BINARY_DIR}/vrpn/VRPN.class"
-+ COMMAND
-+ "${JAVAH_EXECUTABLE}"
-+ -d
-+ "${CMAKE_CURRENT_BINARY_DIR}"
-+ -jni
-+ -classpath
-+ "${CMAKE_CURRENT_BINARY_DIR}"
-+ vrpn.VRPN
-+ COMMENT
-+ "Generating JNI header file for vrpn.${in}")
-
- # target for vrpn.jar
- add_custom_target(java_vrpn_jar
-@@ -120,12 +165,15 @@ if(JAVA_FOUND AND JNI_FOUND AND JAVAH_EX
-
- if(VRPN_INSTALL)
- install(TARGETS java_vrpn
-- ARCHIVE DESTINATION lib COMPONENT java
-- LIBRARY DESTINATION lib COMPONENT java
-- RUNTIME DESTINATION lib COMPONENT java)
-+ ARCHIVE DESTINATION "${JAVA_INSTALL_LIBDIR}"
-+ COMPONENT java
-+ LIBRARY DESTINATION "${JAVA_INSTALL_LIBDIR}"
-+ COMPONENT java
-+ RUNTIME DESTINATION "${JAVA_INSTALL_LIBDIR}"
-+ COMPONENT java)
-
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vrpn.jar"
-- DESTINATION share/java
-+ DESTINATION "${JAVA_INSTALL_JNIDIR}"
- COMPONENT java
- RENAME vrpn-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.jar)
- endif()
-Index: vrpn-version_07.33/java_vrpn/vrpn/VRPN.java
-===================================================================
---- vrpn-version_07.33.orig/java_vrpn/vrpn/VRPN.java
-+++ /dev/null
-@@ -1,34 +0,0 @@
--
--
--package vrpn;
--
--public class VRPN
--{
--
-- /**
-- * All VRPN objects must assert this lock before making any calls
-- * into native code. A corollary of this is that no native methods
-- * may be public; all native methods must be wrapped by other methods
-- * that first synchronize on this lock before calling the native
-- * method.
-- */
-- protected final static Object downInVrpnLock = new Object( );
--
-- static
-- {
-- try { System.loadLibrary( "java_vrpn" ); }
-- catch( UnsatisfiedLinkError e )
-- {
-- System.out.println( e.getMessage( ) );
-- System.out.println( "Error initializing java_vrpn." );
-- System.out.println( " -- Unable to find native library." );
-- }
-- catch( SecurityException e )
-- {
-- System.out.println( e.getMessage( ) );
-- System.out.println( "Security exception: you couldn't load the native vrpn dll." );
-- }
-- } // end static initializer block
--
--
--} // end class VRPN
-Index: vrpn-version_07.33/java_vrpn/vrpn/VRPN.java.in
-===================================================================
---- /dev/null
-+++ vrpn-version_07.33/java_vrpn/vrpn/VRPN.java.in
-@@ -0,0 +1,34 @@
-+
-+
-+package vrpn;
-+
-+public class VRPN
-+{
-+
-+ /**
-+ * All VRPN objects must assert this lock before making any calls
-+ * into native code. A corollary of this is that no native methods
-+ * may be public; all native methods must be wrapped by other methods
-+ * that first synchronize on this lock before calling the native
-+ * method.
-+ */
-+ protected final static Object downInVrpnLock = new Object( );
-+
-+ static
-+ {
-+ try { @JAVA_LOAD_VRPN@; }
-+ catch( UnsatisfiedLinkError e )
-+ {
-+ System.out.println( e.getMessage( ) );
-+ System.out.println( "Error initializing java_vrpn." );
-+ System.out.println( " -- Unable to find native library." );
-+ }
-+ catch( SecurityException e )
-+ {
-+ System.out.println( e.getMessage( ) );
-+ System.out.println( "Security exception: you couldn't load the native vrpn dll." );
-+ }
-+ } // end static initializer block
-+
-+
-+} // end class VRPN
diff --git a/vrpn-python_install.patch b/vrpn-python_install.patch
deleted file mode 100644
index f9b56e9..0000000
--- a/vrpn-python_install.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-Index: vrpn-version_07.33/python/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/python/CMakeLists.txt
-+++ vrpn-version_07.33/python/CMakeLists.txt
-@@ -52,14 +52,19 @@ if(PYTHONLIBS_FOUND AND (VRPN_BUILD_PYTH
- OUTPUT_NAME vrpn)
-
- if(VRPN_INSTALL)
-+ set(VRPN_PYTHON_INSTALL_DIR
-+ lib/${PYTHONVERSIONDIR}dist-packages/
-+ CACHE
-+ PATH
-+ "Directory to install python modules")
- if(WIN32)
- # install(TARGETS vrpn-python
--# RUNTIME DESTINATION lib/${PYTHONVERSIONDIR}dist-packages/ COMPONENT python
--# LIBRARY DESTINATION lib/${PYTHONVERSIONDIR}dist-packages/ COMPONENT python)
-+# RUNTIME DESTINATION "${VRPN_PYTHON_INSTALL_DIR}" COMPONENT python
-+# LIBRARY DESTINATION "${VRPN_PYTHON_INSTALL_DIR}" COMPONENT python)
- else()
- install(TARGETS vrpn-python
-- RUNTIME DESTINATION lib/${PYTHONVERSIONDIR}dist-packages/ COMPONENT python
-- LIBRARY DESTINATION lib/${PYTHONVERSIONDIR}dist-packages/ COMPONENT python)
-+ RUNTIME DESTINATION "${VRPN_PYTHON_INSTALL_DIR}" COMPONENT python
-+ LIBRARY DESTINATION "${VRPN_PYTHON_INSTALL_DIR}" COMPONENT python)
- endif()
- endif()
- endif()
-Index: vrpn-version_07.33/python_vrpn/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/python_vrpn/CMakeLists.txt
-+++ vrpn-version_07.33/python_vrpn/CMakeLists.txt
-@@ -68,23 +68,28 @@ if(SWIG_FOUND AND PYTHONLIBS_FOUND AND V
- swig_link_libraries(${module} ${PYTHON_LIBRARIES} ${LIBS} ${SERVER_EXTRA_LIBS})
- set_target_properties(_${module} PROPERTIES FOLDER "Python Bindings")
-
-+ set(VRPN_PYTHON_INSTALL_DIR
-+ lib/${PYTHONVERSIONDIR}dist-packages/
-+ CACHE
-+ PATH
-+ "Directory to install python modules")
- if(VRPN_INSTALL)
- install(FILES
- "${CMAKE_CURRENT_BINARY_DIR}/${module}.py"
- DESTINATION
-- lib/${PYTHONVERSIONDIR}dist-packages/
-+ "${VRPN_PYTHON_INSTALL_DIR}"
- COMPONENT
- python)
- install(TARGETS
- ${SWIG_MODULE_${module}_REAL_NAME}
- RUNTIME
- DESTINATION
-- lib/${PYTHONVERSIONDIR}dist-packages/
-+ "${VRPN_PYTHON_INSTALL_DIR}"
- COMPONENT
- python
- LIBRARY
- DESTINATION
-- lib/${PYTHONVERSIONDIR}dist-packages/
-+ "${VRPN_PYTHON_INSTALL_DIR}"
- COMPONENT
- python)
- endif()
diff --git a/vrpn-soversion.patch b/vrpn-soversion.patch
deleted file mode 100644
index e10ed23..0000000
--- a/vrpn-soversion.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-Index: vrpn-version_07.33/gpsnmealib/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/gpsnmealib/CMakeLists.txt
-+++ vrpn-version_07.33/gpsnmealib/CMakeLists.txt
-@@ -21,6 +21,10 @@ set_property(TARGET
- PUBLIC_HEADER
- ${GPSNMEALIB_PUBLIC_HEADERS})
- set_property(TARGET gpsnmea PROPERTY FOLDER "Library")
-+set_target_properties(gpsnmea
-+ PROPERTIES
-+ VERSION ${CPACK_PACKAGE_VERSION}
-+ SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
-
- if(VRPN_INSTALL)
- install(TARGETS
-Index: vrpn-version_07.33/quat/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/quat/CMakeLists.txt
-+++ vrpn-version_07.33/quat/CMakeLists.txt
-@@ -35,6 +35,10 @@ set(QUATLIB_HEADER quat.h)
- add_library(quat ${QUATLIB_SOURCES} ${QUATLIB_HEADER})
- set_property(TARGET quat PROPERTY PUBLIC_HEADER ${QUATLIB_HEADER})
- set_target_properties(quat PROPERTIES FOLDER Library)
-+set_target_properties(quat
-+ PROPERTIES
-+ VERSION ${CPACK_PACKAGE_VERSION}
-+ SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
- if(VRPN_INSTALL)
- install(TARGETS
- quat
-Index: vrpn-version_07.33/server_src/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/server_src/CMakeLists.txt
-+++ vrpn-version_07.33/server_src/CMakeLists.txt
-@@ -59,6 +59,10 @@ if(VRPN_USE_PHANTOM_SERVER AND OPENGL_FO
- PUBLIC_HEADER
- ${PHANTOM_HEADERS})
- set_target_properties(vrpn_phantom PROPERTIES FOLDER Library)
-+ set_target_properties(vrpn_phantom
-+ PROPERTIES
-+ VERSION ${CPACK_PACKAGE_VERSION}
-+ SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
-
- if(VRPN_INSTALL)
- install(TARGETS
-Index: vrpn-version_07.33/server_src/timecode_generator_server/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/server_src/timecode_generator_server/CMakeLists.txt
-+++ vrpn-version_07.33/server_src/timecode_generator_server/CMakeLists.txt
-@@ -20,7 +20,11 @@ target_link_libraries(vrpn_timecode_gene
- set_target_properties(vrpn_timecode_generator
- PROPERTIES
- FOLDER
-- "Main Server")
-+ "Main Server"
-+ VERSION
-+ ${CPACK_PACKAGE_VERSION}
-+ SOVERSION
-+ ${CPACK_PACKAGE_VERSION_MAJOR})
-
- if(VRPN_INSTALL)
- install(TARGETS
-Index: vrpn-version_07.33/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/CMakeLists.txt
-+++ vrpn-version_07.33/CMakeLists.txt
-@@ -1244,6 +1244,12 @@ if(VRPN_BUILD_SERVER_LIBRARY)
- PROPERTY
- LINK_FLAGS
- ${SERVER_LINK_FLAGS})
-+ set_target_properties(vrpnserver
-+ PROPERTIES
-+ VERSION
-+ ${CPACK_PACKAGE_VERSION}
-+ SOVERSION
-+ ${CPACK_PACKAGE_VERSION_MAJOR})
-
- if(UNIX)
- add_subdirectory(atmellib)
-@@ -1298,6 +1304,12 @@ if(VRPN_BUILD_CLIENT_LIBRARY)
- PROPERTY
- FOLDER
- "Library")
-+ set_target_properties(vrpn
-+ PROPERTIES
-+ VERSION
-+ ${CPACK_PACKAGE_VERSION}
-+ SOVERSION
-+ ${CPACK_PACKAGE_VERSION_MAJOR})
-
- if(VRPN_INSTALL)
- install(TARGETS
-Index: vrpn-version_07.33/atmellib/CMakeLists.txt
-===================================================================
---- vrpn-version_07.33.orig/atmellib/CMakeLists.txt
-+++ vrpn-version_07.33/atmellib/CMakeLists.txt
-@@ -21,6 +21,12 @@ set_property(TARGET
- PROPERTY
- FOLDER
- "Library")
-+set_target_properties(vrpn_atmel
-+ PROPERTIES
-+ VERSION
-+ ${CPACK_PACKAGE_VERSION}
-+ SOVERSION
-+ ${CPACK_PACKAGE_VERSION_MAJOR})
- if(VRPN_INSTALL)
- install(TARGETS
- vrpn_atmel
diff --git a/vrpn-wait.patch b/vrpn-wait.patch
deleted file mode 100644
index 9dd04d0..0000000
--- a/vrpn-wait.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Index: vrpn-version_07.33/vrpn_Connection.C
-===================================================================
---- vrpn-version_07.33.orig/vrpn_Connection.C
-+++ vrpn-version_07.33/vrpn_Connection.C
-@@ -2486,11 +2486,7 @@ static int vrpn_start_server(const char
- for (waitloop = 0; waitloop < (SERVCOUNT); waitloop++) {
- int ret;
- pid_t deadkid;
--#if defined(sparc) || defined(FreeBSD) || defined(_AIX) || defined(__ANDROID__)
-- int status; // doesn't exist on sparc_solaris or FreeBSD
--#else
-- union wait status;
--#endif
-+ int status;
-
- /* Check to see if they called back yet. */
- ret = vrpn_poll_for_accept(server_sock, &child_socket, SERVWAIT);
-@@ -2504,13 +2500,7 @@ static int vrpn_start_server(const char
- }
-
- /* Check to see if the child is dead yet */
--#if defined(hpux) || defined(sgi) || defined(__hpux) || defined(__CYGWIN__) || \
-- defined(__APPLE__)
-- /* hpux include files have the wrong declaration */
-- deadkid = wait3((int *)&status, WNOHANG, NULL);
--#else
- deadkid = wait3(&status, WNOHANG, NULL);
--#endif
- if (deadkid == pid) {
- fprintf(stderr, "vrpn_start_server: server process exited\n");
- vrpn_closeSocket(server_sock);
diff --git a/vrpn.service b/vrpn.service
deleted file mode 100644
index 57c5607..0000000
--- a/vrpn.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=VRPN server
-After=network.target
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/vrpn_server -f /etc/vrpn.cfg
-
-[Install]
-WantedBy=multi-user.target
diff --git a/vrpn.spec b/vrpn.spec
deleted file mode 100644
index 74a92c9..0000000
--- a/vrpn.spec
+++ /dev/null
@@ -1,284 +0,0 @@
-%undefine __cmake_in_source_build
-
-Name: vrpn
-Version: 07.33
-Release: 26%{?dist}
-Summary: The Virtual-Reality Peripheral Network
-
-# linking to wiiuse (GPLv3+) and gpm (GPLv2+) libraries makes the vrpn server
-# (libvrpnserver.so and vrpn_server binary, as well as python and java modules)
-# GPLv3+-licensed. The rest of files is supplied under the Boost license.
-License: Boost and GPLv3+
-URL: https://github.com/vrpn/vrpn/
-Source0: https://github.com/vrpn/vrpn/archive/version_%{version}.tar.gz#/%{name}-v...
-Source1: vrpn.service
-Patch0: vrpn-find_modbus.patch
-Patch1: vrpn-find_hidapi.patch
-Patch2: vrpn-find_jsoncpp.patch
-# patch3 from upstream commit 7f961a3
-Patch3: vrpn-fix_library_install_rules.patch
-Patch4: vrpn-java_install.patch
-Patch5: vrpn-python_install.patch
-Patch6: vrpn-soversion.patch
-Patch7: vrpn-config_install.patch
-Patch8: vrpn-dont_install_garbage.patch
-Patch9: vrpn-wait.patch
-
-BuildRequires: gcc-c++
-BuildRequires: cmake
-BuildRequires: doxygen
-BuildRequires: gcc
-BuildRequires: glut-devel
-BuildRequires: gpm-devel
-BuildRequires: graphviz
-BuildRequires: help2man
-BuildRequires: hidapi-devel
-BuildRequires: java-devel
-BuildRequires: jsoncpp-devel
-BuildRequires: libGL-devel
-BuildRequires: libmodbus-devel
-BuildRequires: libudev-devel
-BuildRequires: libusb-devel
-BuildRequires: perl-Parse-RecDescent
-BuildRequires: python3-devel
-BuildRequires: systemd
-BuildRequires: swig
-BuildRequires: wiiuse-devel
-
-%{?systemd_requires}
-
-%description
-The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
-library and a set of servers that are designed to implement a
-network-transparent interface between application programs and the set of
-physical devices (tracker, etc.) used in a virtual-reality (VR) system. The
-idea is to have a PC or other host at each VR station that controls the
-peripherals (tracker, button device, haptic device, analog inputs, sound, etc).
-VRPN provides connections between the application and all of the devices using
-the appropriate class-of-service for each type of device sharing this link. The
-application remains unaware of the network topology. Note that it is possible
-to use VRPN with devices that are directly connected to the machine that the
-application is running on, either using separate control programs or running
-all as a single program.
-
-
-%package devel
-Summary: Development files for the Virtual-Reality Peripheral Network
-Requires: %{name}%{?_isa} = %{version}-%{release}
-
-%description devel
-The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
-library and a set of servers that are designed to implement a
-network-transparent interface between application programs and the set of
-physical devices (tracker, etc.) used in a virtual-reality (VR) system.
-
-This package contains development files for VRPN libraries.
-
-
-%package doc
-Summary: Developer's documentation for VRPN
-BuildArch: noarch
-
-%description doc
-The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
-library and a set of servers that are designed to implement a
-network-transparent interface between application programs and the set of
-physical devices (tracker, etc.) used in a virtual-reality (VR) system.
-
-This package contains generated VRPN source code documentation.
-
-
-%package java
-Summary: Java bindings for the Virtual-Reality Peripheral Network
-License: GPLv3+
-
-Requires: java-headless
-Requires: javapackages-tools
-
-%description java
-The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
-library and a set of servers that are designed to implement a
-network-transparent interface between application programs and the set of
-physical devices (tracker, etc.) used in a virtual-reality (VR) system.
-
-This package contains Java bindings for VRPN libraries.
-
-
-%package -n python3-%{name}
-Summary: Python 3 bindings for the Virtual-Reality Peripheral Network
-License: GPLv3+
-
-%{?python_provide:%python_provide python3-%{name}}
-
-%description -n python3-%{name}
-The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a
-library and a set of servers that are designed to implement a
-network-transparent interface between application programs and the set of
-physical devices (tracker, etc.) used in a virtual-reality (VR) system.
-
-This package contains Python 3 bindings for VRPN libraries.
-
-
-%prep
-%autosetup -n %{name}-version_%{version} -p1
-
-
-%build
-%cmake \
- -DVRPN_GPL_SERVER=ON \
- -DBUILD_TESTING=ON \
- -DVRPN_BUILD_PYTHON_HANDCODED_3X=ON \
- -DVRPN_PYTHON_INSTALL_DIR=%{python3_sitearch} \
- -DJAVA_INSTALL_LIBDIR=%{_libdir}/%{name} \
- -DJAVA_INSTALL_JNIDIR=%{_jnidir} \
-%ifarch %{arm}
- -DJAVA_AWT_LIBRARY=%{_libdir}/jvm/java/lib/aarch32/libjawt.so \
-%endif # arch %%{arm}
- %{nil}
-%cmake_build
-%cmake_build --target doc
-
-
-%install
-%cmake_install
-install -D %{_vpath_builddir}/python/vrpn.so %{buildroot}%{python3_sitearch}/vrpn.so
-install -D -m644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
-
-# generate man pages
-mkdir -p %{buildroot}%{_mandir}/man1
-for prog in ./%{_vpath_builddir}/server_src/vrpn_server \
- ./%{_vpath_builddir}/client_src/run_auxiliary_logger \
- ./%{_vpath_builddir}/client_src/vrpn_print_{devices,messages,performance}
-do
- progname=$(basename "$prog")
- help2man \
- --version-string=%{version} \
- --no-info \
- --no-discard-stderr \
- --output="%{buildroot}%{_mandir}/man1/$progname.1" \
- "$prog"
-done
-
-
-%check
-%ctest
-
-
-%post
-%systemd_post %{name}.service
-
-%preun
-%systemd_preun %{name}.service
-
-%postun
-%systemd_postun_with_restart %{name}.service
-
-
-%files
-%doc ChangeLog Format
-%license README.Legal
-%{_libdir}/*.so.*
-%{_bindir}/*
-%{_datadir}/%{name}-%{version}
-%config(noreplace) %{_sysconfdir}/vrpn.cfg
-%{_unitdir}/%{name}.service
-%{_mandir}/man1/*
-
-%files devel
-%{_includedir}/*
-%{_libdir}/*.so
-
-%files doc
-%doc %{_docdir}/%{name}-%{version}
-%exclude %{_docdir}/%{name}-%{version}/source-docs/html/*.map
-%exclude %{_docdir}/%{name}-%{version}/source-docs/html/*.md5
-
-%files java
-%{_libdir}/%{name}/libjava_%{name}.so
-%{_jnidir}/*.jar
-
-%files -n python3-%{name}
-%{python3_sitearch}/*.so
-
-
-%changelog
-* Sat Aug 01 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-26
-- Second attempt - Rebuilt for
- https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Wed Jul 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-25
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Sat Jul 11 2020 Jiri Vanek <jvanek(a)redhat.com> - 07.33-24
-- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
-
-* Sat May 30 2020 Björn Esser <besser82(a)fedoraproject.org> - 07.33-23
-- Rebuild (jsoncpp)
-
-* Tue May 26 2020 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-22
-- Rebuilt for Python 3.9
-
-* Fri Jan 31 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-21
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Thu Nov 14 2019 Björn Esser <besser82(a)fedoraproject.org> - 07.33-20
-- Rebuild (jsoncpp)
-
-* Mon Aug 19 2019 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-19
-- Rebuilt for Python 3.8
-
-* Sat Jul 27 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-18
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Wed Jul 03 2019 Björn Esser <besser82(a)fedoraproject.org> - 07.33-17
-- Rebuild (jsoncpp)
-
-* Sun Feb 03 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-16
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Mon Jan 14 2019 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-15
-- Subpackage python2-vrpn has been removed
- See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal
-
-* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-14
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Tue Jun 19 2018 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-13
-- Rebuilt for Python 3.7
-
-* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-12
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Tue Dec 26 2017 Björn Esser <besser82(a)fedoraproject.org> - 07.33-11
-- Rebuilt for jsoncpp.so.20
-
-* Sat Sep 02 2017 Björn Esser <besser82(a)fedoraproject.org> - 07.33-10
-- Fix problems with finding JNI on %%arm
-
-* Fri Sep 01 2017 Björn Esser <besser82(a)fedoraproject.org> - 07.33-9
-- Rebuilt for jsoncpp-1.8.3
-
-* Thu Aug 03 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
-
-* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-7
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-6
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Mon Dec 19 2016 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-5
-- Rebuild for Python 3.6
-
-* Mon Oct 03 2016 Björn Esser <fedora(a)besser82.io> - 07.33-4
-- Rebuilt for libjsoncpp.so.11
-
-* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 07.33-3
-- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
-
-* Wed Jun 8 2016 Dmitry Mikhirev <mikhirev(a)gmail.com> 07.33-2
-- Fix build for fc25 (#1341988)
-- Fix installation of python 3 module (#1342509)
-
-* Wed Feb 24 2016 Dmitry Mikhirev <mikhirev(a)gmail.com> 07.33-1
-- Initial package
https://src.fedoraproject.org/rpms/vrpn/c/baf215cbb0f8ef487d6fc97a19a31d9...
7 months
dcavalca pushed to rpms/vrpn (f39). "Improve compatibility with new
CMake macro (..more)"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:08:42 UTC
From be8a3932873a19c0ffdbe9c94c648fcbbfd537ec Mon Sep 17 00:00:00 2001
From: Igor Raits <ignatenkobrain(a)fedoraproject.org>
Date: Jul 06 2020 09:01:50 +0000
Subject: Improve compatibility with new CMake macro
Signed-off-by: Igor Raits <ignatenkobrain(a)fedoraproject.org>
---
diff --git a/vrpn.spec b/vrpn.spec
index 782a31f..8508a8d 100644
--- a/vrpn.spec
+++ b/vrpn.spec
@@ -1,3 +1,5 @@
+%undefine __cmake_in_source_build
+
Name: vrpn
Version: 07.33
Release: 23%{?dist}
@@ -122,9 +124,6 @@ This package contains Python 3 bindings for VRPN libraries.
%build
-mkdir build
-pushd build
-
%cmake \
-DVRPN_GPL_SERVER=ON \
-DBUILD_TESTING=ON \
@@ -135,21 +134,21 @@ pushd build
%ifarch %{arm}
-DJAVA_AWT_LIBRARY=%{_libdir}/jvm/java/lib/aarch32/libjawt.so \
%endif # arch %%{arm}
- ..
-%make_build all doc
-popd
+ %{nil}
+%cmake_build
+%cmake_build --target doc
%install
-%make_install -C build
-install -D build/python/vrpn.so %{buildroot}%{python3_sitearch}/vrpn.so
+%cmake_install
+install -D %{_vpath_builddir}/python/vrpn.so %{buildroot}%{python3_sitearch}/vrpn.so
install -D -m644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
# generate man pages
mkdir -p %{buildroot}%{_mandir}/man1
-for prog in ./build/server_src/vrpn_server \
- ./build/client_src/run_auxiliary_logger \
- ./build/client_src/vrpn_print_{devices,messages,performance}
+for prog in ./%{_vpath_builddir}/server_src/vrpn_server \
+ ./%{_vpath_builddir}/client_src/run_auxiliary_logger \
+ ./%{_vpath_builddir}/client_src/vrpn_print_{devices,messages,performance}
do
progname=$(basename "$prog")
help2man \
@@ -162,20 +161,16 @@ done
%check
-pushd build
-ctest -VV
-popd
+%ctest
%post
-/sbin/ldconfig
%systemd_post %{name}.service
%preun
%systemd_preun %{name}.service
%postun
-/sbin/ldconfig
%systemd_postun_with_restart %{name}.service
https://src.fedoraproject.org/rpms/vrpn/c/be8a3932873a19c0ffdbe9c94c648fc...
7 months
dcavalca pushed to rpms/vrpn (f39). "Rebuilt for Python 3.9"
by notifications@fedoraproject.org
Notification time stamped 2023-10-31 17:08:42 UTC
From 58ce99798e7ab07ab38911b04536f50c3003e64a Mon Sep 17 00:00:00 2001
From: Miro Hrončok <miro(a)hroncok.cz>
Date: May 26 2020 01:54:44 +0000
Subject: Rebuilt for Python 3.9
---
diff --git a/vrpn.spec b/vrpn.spec
index d245c0b..768865e 100644
--- a/vrpn.spec
+++ b/vrpn.spec
@@ -1,6 +1,6 @@
Name: vrpn
Version: 07.33
-Release: 21%{?dist}
+Release: 22%{?dist}
Summary: The Virtual-Reality Peripheral Network
# linking to wiiuse (GPLv3+) and gpm (GPLv2+) libraries makes the vrpn server
@@ -207,6 +207,9 @@ popd
%changelog
+* Tue May 26 2020 Miro Hrončok <mhroncok(a)redhat.com> - 07.33-22
+- Rebuilt for Python 3.9
+
* Fri Jan 31 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 07.33-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
https://src.fedoraproject.org/rpms/vrpn/c/58ce99798e7ab07ab38911b04536f50...
7 months