forked from QubesOS/qubes-desktop-linux-i3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
i3.spec.in
189 lines (156 loc) · 5.19 KB
/
i3.spec.in
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
Name: i3
Version: @VERSION@
Release: @REL@%{?dist}
Epoch: 1000
Summary: Improved tiling window manager
License: BSD
URL: https://i3wm.org
Source0: %{URL}/downloads/%{name}-%{version}.tar.xz
Source1: %{name}-logo.svg
Patch0: 0001-Show-qubes-domain-in-configurable-colored-borders.patch
BuildRequires: gcc
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: meson >= 0.45.0
# from configure.ac and DEPENDS (mostly versions)
BuildRequires: pkgconfig >= 0.25
# no pkg-config for libev
BuildRequires: libev-devel >= 4.0
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(xcb) >= 1.1.93
BuildRequires: pkgconfig(xcb-xkb)
BuildRequires: pkgconfig(xcb-xinerama)
BuildRequires: pkgconfig(xcb-randr)
BuildRequires: pkgconfig(xcb-shape)
BuildRequires: pkgconfig(xcb-event)
BuildRequires: pkgconfig(xcb-util)
BuildRequires: pkgconfig(xcb-cursor)
BuildRequires: pkgconfig(xcb-keysyms)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xcb-xrm)
BuildRequires: pkgconfig(xkbcommon) >= 0.4.0
BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.0
BuildRequires: pkgconfig(yajl) >= 2.0.1
# For some reson, using pkgconfig(libpcre2-8) fails
BuildRequires: pcre2-devel
BuildRequires: pkgconfig(cairo) >= 1.14.4
BuildRequires: pkgconfig(pangocairo) >= 1.30.0
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-2.0)
# man pages
BuildRequires: asciidoc >= 8.3.0
BuildRequires: xmlto >= 0.0.23
# TODO: Testsuites
BuildRequires: perl(ExtUtils::MakeMaker)
#BuildRequires: perl(strict)
#BuildRequires: perl(warnings)
#BuildRequires: perl(Pod::Usage)
#BuildRequires: perl(Cwd)
#BuildRequires: perl(File::Temp)
#BuildRequires: perl(Getopt::Long)
#BuildRequires: perl(POSIX)
#BuildRequires: perl(TAP::Harness)
#BuildRequires: perl(TAP::Parser)
#BuildRequires: perl(TAP::Parser::Aggregator)
#BuildRequires: perl(Time::HiRes)
#BuildRequires: perl(IO::Handle)
#BuildRequires: perl(AnyEvent::Util)
#BuildRequires: perl(AnyEvent::Handle)
BuildRequires: perl(AnyEvent::I3)
#BuildRequires: perl(X11::XCB::Connection)
#BuildRequires: perl(Carp)
BuildRequires: perl-generators
BuildRequires: perl(Pod::Simple)
%ifnarch s390 s390x
BuildRequires: xorg-x11-drv-dummy
%endif
Requires: qubes-desktop-linux-common
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
%{!?rhel:Recommends: rxvt-unicode}
%{!?rhel:Recommends: xorg-x11-apps}
Requires: xorg-x11-fonts-misc
# for i3-save-tree
Requires: perl(AnyEvent::I3) >= 0.12
%if 0%{?rhel} != 7
Recommends: pulseaudio-utils
Recommends: dmenu
Recommends: i3status
Recommends: i3lock
%endif
%description
Key features of i3 are correct implementation of XrandR, horizontal and vertical
columns (think of a table) in tiling. Also, special focus is on writing clean,
readable and well documented code. i3 uses xcb for asynchronous communication
with X11, and has several measures to be very fast.
Please be aware that i3 is primarily targeted at advanced users and developers.
%package doc
Summary: Documentation for %{name}
BuildArch: noarch
Requires: %{name} = %{epoch}:%{version}-%{release}
%description doc
Asciidoc generated documentation for %{name}.
%package devel
Summary: Development files for %{name}
Requires: %{name} = %{epoch}:%{version}-%{release}
%description devel
Header files for %{name}.
%package devel-doc
Summary: Documentation for the development files of %{name}
BuildRequires: doxygen
BuildArch: noarch
Requires: %{name} = %{epoch}:%{version}-%{release}
%description devel-doc
Doxygen generated documentations for %{name}.
%prep
%autosetup -p1
# Drop /usr/bin/env lines in those which will be installed to %%_bindir.
find . -maxdepth 1 -type f -name "i3*" -exec sed -i -e '1s;^#!/usr/bin/env perl;#!/usr/bin/perl;' {} + -print
%build
# See https://mesonbuild.com/Builtin-options.html for Meson built-in options
meson setup --prefix=/usr build && pushd build
meson compile
popd
echo "TODO: generate doxygen"
doxygen pseudo-doc.doxygen
mv pseudo-doc/html pseudo-doc/doxygen
%install
pushd build
DESTDIR=%{buildroot} meson install
popd
echo "Installing man-pages"
mkdir -p %{buildroot}%{_mandir}/man1/
install -Dpm0644 man/*.1 \
%{buildroot}%{_mandir}/man1/
mkdir -p %{buildroot}%{_datadir}/pixmaps/
install -Dpm0644 %{SOURCE1} \
%{buildroot}%{_datadir}/pixmaps/
%check
%ifnarch s390 s390x
# TODO: with xorg dummy to test the package.
# TODO: get remaining dependencies in
# make check
%endif
%files
%doc RELEASE-NOTES-%{version}
%license LICENSE
%{_bindir}/%{name}*
%dir %{_sysconfdir}/%{name}/
%config(noreplace) %{_sysconfdir}/%{name}/config
%config(noreplace) %{_sysconfdir}/%{name}/config.keycodes
%{_datadir}/xsessions/%{name}.desktop
%{_datadir}/xsessions/%{name}-with-shmlog.desktop
%{_mandir}/man*/%{name}*
%{_datadir}/pixmaps/%{name}-logo.svg
%{_datadir}/applications/%{name}.desktop
%exclude %{_docdir}/%{name}/
%files doc
%license LICENSE
%doc docs/*.{html,png}
%files devel
%license LICENSE
%{_includedir}/%{name}/
%files devel-doc
%license LICENSE
%doc pseudo-doc/doxygen/
%changelog
@CHANGELOG@