summaryrefslogtreecommitdiff
path: root/ros-humble-spacenavd.spec
blob: 2821b768f5006fea961e9083d3060fdb2d12b1fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# topdir: ros-humble-spacenavd-1.3.1
Name:           ros-humble-spacenavd
Version:        1.3.1
Release:        2%{?dist}
Summary:        Free user-space driver for 3Dconnexion 6dof input devices

License:        GPL-3.0
URL:            https://github.com/FreeSpacenav/spacenavd
Source0:        https://github.com/FreeSpacenav/spacenavd/archive/refs/tags/v%{version}.tar.gz#/ros-humble-spacenavd-%{version}.tar.gz

Group:          System Environment/Daemons
Packager:       openEuler Builder <builder@openeuler.org>

# Define systemd unit directory macro (systemd-rpm-macros not available in openEuler base chroot)
%global _unitdir %{_prefix}/lib/systemd/system

BuildRequires:  gcc
BuildRequires:  make
BuildRequires:  libX11-devel
BuildRequires:  libXi-devel
BuildRequires:  libXtst-devel
BuildRequires:  libXext-devel

%description
Spacenavd is a free software user-space driver (daemon), for 6-dof input
devices, like 3Dconnexion's space-mice. It is compatible with the original
3dxsrv proprietary daemon provided by 3Dconnexion, and works as a drop-in
replacement with any program that was written for the 3Dconnexion driver,
but also provides an improved communication mechanism for programs designed
specifically to work with spacenavd.

%prep
%autosetup -n %{name}-%{version}

%build
./configure --prefix=%{_prefix} --cfgdir=%{_sysconfdir}
# Ensure VERSION define is correct (configure probes via git/dirname; tarball has no .git history)
sed -i 's/^#define VERSION.*/#define VERSION "%{version}"/' src/config.h
%make_build

%install
make install DESTDIR=%{buildroot}
# Install systemd service file (fix hardcoded /usr/local path to /usr/bin)
sed -i 's|/usr/local/bin/spacenavd|/usr/bin/spacenavd|' contrib/systemd/spacenavd.service
install -D -m 644 contrib/systemd/spacenavd.service %{buildroot}%{_unitdir}/spacenavd.service
# Install example configuration
install -D -m 644 doc/example-spnavrc %{buildroot}%{_sysconfdir}/spnavrc

%files
%license COPYING
%doc README.md
%{_bindir}/spacenavd
%{_bindir}/spnavd_ctl
%{_unitdir}/spacenavd.service
%config(noreplace) %{_sysconfdir}/spnavrc

%changelog
* Thu Oct 22 2026 openEuler Builder <builder@openeuler.org> - 1.3.1-2
- Define %%{_unitdir} macro inline (systemd-rpm-macros not in base chroot)

* Thu Oct 22 2026 openEuler Builder <builder@openeuler.org> - 1.3.1-1
- Initial package