1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * Copyright (C) 2011, 2015 Red Hat, Inc.
4 */
5
6#ifndef NM_VERSION_H
7#define NM_VERSION_H
8
9#include <glib.h>
10
11#include "nm-version-macros.h"
12
13/* Deprecation / Availability macros */
14
15#if !defined(NM_VERSION_MIN_REQUIRED) || (NM_VERSION_MIN_REQUIRED == 0)
16#undef NM_VERSION_MIN_REQUIRED
17#define NM_VERSION_MIN_REQUIRED (NM_API_VERSION)
18#endif
19
20#if !defined(NM_VERSION_MAX_ALLOWED) || (NM_VERSION_MAX_ALLOWED == 0)
21#undef NM_VERSION_MAX_ALLOWED
22#define NM_VERSION_MAX_ALLOWED (NM_API_VERSION)
23#endif
24
25/* sanity checks */
26#if NM_VERSION_MIN_REQUIRED > NM_API_VERSION
27#error "NM_VERSION_MIN_REQUIRED must be <= NM_API_VERSION"
28#endif
29#if NM_VERSION_MAX_ALLOWED < NM_VERSION_MIN_REQUIRED
30#error "NM_VERSION_MAX_ALLOWED must be >= NM_VERSION_MIN_REQUIRED"
31#endif
32#if NM_VERSION_MIN_REQUIRED < NM_VERSION_0_9_8
33#error "NM_VERSION_MIN_REQUIRED must be >= NM_VERSION_0_9_8"
34#endif
35
36#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_0_9_10
37#define NM_DEPRECATED_IN_0_9_10 G_DEPRECATED
38#define NM_DEPRECATED_IN_0_9_10_FOR(f) G_DEPRECATED_FOR(f)
39#else
40#define NM_DEPRECATED_IN_0_9_10
41#define NM_DEPRECATED_IN_0_9_10_FOR(f)
42#endif
43
44#if NM_VERSION_MAX_ALLOWED < NM_VERSION_0_9_10
45#define NM_AVAILABLE_IN_0_9_10 G_UNAVAILABLE(0.9, 10)
46#else
47#define NM_AVAILABLE_IN_0_9_10
48#endif
49
50#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_0
51#define NM_DEPRECATED_IN_1_0 G_DEPRECATED
52#define NM_DEPRECATED_IN_1_0_FOR(f) G_DEPRECATED_FOR(f)
53#else
54#define NM_DEPRECATED_IN_1_0
55#define NM_DEPRECATED_IN_1_0_FOR(f)
56#endif
57
58#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_0
59#define NM_AVAILABLE_IN_1_0 G_UNAVAILABLE(1, 0)
60#else
61#define NM_AVAILABLE_IN_1_0
62#endif
63
64#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_2
65#define NM_DEPRECATED_IN_1_2 G_DEPRECATED
66#define NM_DEPRECATED_IN_1_2_FOR(f) G_DEPRECATED_FOR(f)
67#else
68#define NM_DEPRECATED_IN_1_2
69#define NM_DEPRECATED_IN_1_2_FOR(f)
70#endif
71
72#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_2
73#define NM_AVAILABLE_IN_1_2 G_UNAVAILABLE(1, 2)
74#else
75#define NM_AVAILABLE_IN_1_2
76#endif
77
78#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_4
79#define NM_DEPRECATED_IN_1_4 G_DEPRECATED
80#define NM_DEPRECATED_IN_1_4_FOR(f) G_DEPRECATED_FOR(f)
81#else
82#define NM_DEPRECATED_IN_1_4
83#define NM_DEPRECATED_IN_1_4_FOR(f)
84#endif
85
86#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_4
87#define NM_AVAILABLE_IN_1_4 G_UNAVAILABLE(1, 4)
88#else
89#define NM_AVAILABLE_IN_1_4
90#endif
91
92#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_6
93#define NM_DEPRECATED_IN_1_6 G_DEPRECATED
94#define NM_DEPRECATED_IN_1_6_FOR(f) G_DEPRECATED_FOR(f)
95#else
96#define NM_DEPRECATED_IN_1_6
97#define NM_DEPRECATED_IN_1_6_FOR(f)
98#endif
99
100#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_6
101#define NM_AVAILABLE_IN_1_6 G_UNAVAILABLE(1, 6)
102#else
103#define NM_AVAILABLE_IN_1_6
104#endif
105
106#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_8
107#define NM_DEPRECATED_IN_1_8 G_DEPRECATED
108#define NM_DEPRECATED_IN_1_8_FOR(f) G_DEPRECATED_FOR(f)
109#else
110#define NM_DEPRECATED_IN_1_8
111#define NM_DEPRECATED_IN_1_8_FOR(f)
112#endif
113
114#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_8
115#define NM_AVAILABLE_IN_1_8 G_UNAVAILABLE(1, 8)
116#else
117#define NM_AVAILABLE_IN_1_8
118#endif
119
120#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_10
121#define NM_DEPRECATED_IN_1_10 G_DEPRECATED
122#define NM_DEPRECATED_IN_1_10_FOR(f) G_DEPRECATED_FOR(f)
123#else
124#define NM_DEPRECATED_IN_1_10
125#define NM_DEPRECATED_IN_1_10_FOR(f)
126#endif
127
128#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_10
129#define NM_AVAILABLE_IN_1_10 G_UNAVAILABLE(1, 10)
130#else
131#define NM_AVAILABLE_IN_1_10
132#endif
133
134#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_12
135#define NM_DEPRECATED_IN_1_12 G_DEPRECATED
136#define NM_DEPRECATED_IN_1_12_FOR(f) G_DEPRECATED_FOR(f)
137#else
138#define NM_DEPRECATED_IN_1_12
139#define NM_DEPRECATED_IN_1_12_FOR(f)
140#endif
141
142#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_12
143#define NM_AVAILABLE_IN_1_12 G_UNAVAILABLE(1, 12)
144#else
145#define NM_AVAILABLE_IN_1_12
146#endif
147
148#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_14
149#define NM_DEPRECATED_IN_1_14 G_DEPRECATED
150#define NM_DEPRECATED_IN_1_14_FOR(f) G_DEPRECATED_FOR(f)
151#else
152#define NM_DEPRECATED_IN_1_14
153#define NM_DEPRECATED_IN_1_14_FOR(f)
154#endif
155
156#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_14
157#define NM_AVAILABLE_IN_1_14 G_UNAVAILABLE(1, 14)
158#else
159#define NM_AVAILABLE_IN_1_14
160#endif
161
162#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_16
163#define NM_DEPRECATED_IN_1_16 G_DEPRECATED
164#define NM_DEPRECATED_IN_1_16_FOR(f) G_DEPRECATED_FOR(f)
165#else
166#define NM_DEPRECATED_IN_1_16
167#define NM_DEPRECATED_IN_1_16_FOR(f)
168#endif
169
170#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_16
171#define NM_AVAILABLE_IN_1_16 G_UNAVAILABLE(1, 16)
172#else
173#define NM_AVAILABLE_IN_1_16
174#endif
175
176#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_18
177#define NM_DEPRECATED_IN_1_18 G_DEPRECATED
178#define NM_DEPRECATED_IN_1_18_FOR(f) G_DEPRECATED_FOR(f)
179#else
180#define NM_DEPRECATED_IN_1_18
181#define NM_DEPRECATED_IN_1_18_FOR(f)
182#endif
183
184#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_18
185#define NM_AVAILABLE_IN_1_18 G_UNAVAILABLE(1, 18)
186#else
187#define NM_AVAILABLE_IN_1_18
188#endif
189
190#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_20
191#define NM_DEPRECATED_IN_1_20 G_DEPRECATED
192#define NM_DEPRECATED_IN_1_20_FOR(f) G_DEPRECATED_FOR(f)
193#else
194#define NM_DEPRECATED_IN_1_20
195#define NM_DEPRECATED_IN_1_20_FOR(f)
196#endif
197
198#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_20
199#define NM_AVAILABLE_IN_1_20 G_UNAVAILABLE(1, 20)
200#else
201#define NM_AVAILABLE_IN_1_20
202#endif
203
204#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_22
205#define NM_DEPRECATED_IN_1_22 G_DEPRECATED
206#define NM_DEPRECATED_IN_1_22_FOR(f) G_DEPRECATED_FOR(f)
207#else
208#define NM_DEPRECATED_IN_1_22
209#define NM_DEPRECATED_IN_1_22_FOR(f)
210#endif
211
212#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_22
213#define NM_AVAILABLE_IN_1_22 G_UNAVAILABLE(1, 22)
214#else
215#define NM_AVAILABLE_IN_1_22
216#endif
217
218#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_24
219#define NM_DEPRECATED_IN_1_24 G_DEPRECATED
220#define NM_DEPRECATED_IN_1_24_FOR(f) G_DEPRECATED_FOR(f)
221#else
222#define NM_DEPRECATED_IN_1_24
223#define NM_DEPRECATED_IN_1_24_FOR(f)
224#endif
225
226#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_24
227#define NM_AVAILABLE_IN_1_24 G_UNAVAILABLE(1, 24)
228#else
229#define NM_AVAILABLE_IN_1_24
230#endif
231
232#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_26
233#define NM_DEPRECATED_IN_1_26 G_DEPRECATED
234#define NM_DEPRECATED_IN_1_26_FOR(f) G_DEPRECATED_FOR(f)
235#else
236#define NM_DEPRECATED_IN_1_26
237#define NM_DEPRECATED_IN_1_26_FOR(f)
238#endif
239
240#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_26
241#define NM_AVAILABLE_IN_1_26 G_UNAVAILABLE(1, 26)
242#else
243#define NM_AVAILABLE_IN_1_26
244#endif
245
246#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_28
247#define NM_DEPRECATED_IN_1_28 G_DEPRECATED
248#define NM_DEPRECATED_IN_1_28_FOR(f) G_DEPRECATED_FOR(f)
249#else
250#define NM_DEPRECATED_IN_1_28
251#define NM_DEPRECATED_IN_1_28_FOR(f)
252#endif
253
254#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_28
255#define NM_AVAILABLE_IN_1_28 G_UNAVAILABLE(1, 28)
256#else
257#define NM_AVAILABLE_IN_1_28
258#endif
259
260#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_30
261#define NM_DEPRECATED_IN_1_30 G_DEPRECATED
262#define NM_DEPRECATED_IN_1_30_FOR(f) G_DEPRECATED_FOR(f)
263#else
264#define NM_DEPRECATED_IN_1_30
265#define NM_DEPRECATED_IN_1_30_FOR(f)
266#endif
267
268#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_30
269#define NM_AVAILABLE_IN_1_30 G_UNAVAILABLE(1, 30)
270#else
271#define NM_AVAILABLE_IN_1_30
272#endif
273
274#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_32
275#define NM_DEPRECATED_IN_1_32 G_DEPRECATED
276#define NM_DEPRECATED_IN_1_32_FOR(f) G_DEPRECATED_FOR(f)
277#else
278#define NM_DEPRECATED_IN_1_32
279#define NM_DEPRECATED_IN_1_32_FOR(f)
280#endif
281
282#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_32
283#define NM_AVAILABLE_IN_1_32 G_UNAVAILABLE(1, 32)
284#else
285#define NM_AVAILABLE_IN_1_32
286#endif
287
288#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_34
289#define NM_DEPRECATED_IN_1_34 G_DEPRECATED
290#define NM_DEPRECATED_IN_1_34_FOR(f) G_DEPRECATED_FOR(f)
291#else
292#define NM_DEPRECATED_IN_1_34
293#define NM_DEPRECATED_IN_1_34_FOR(f)
294#endif
295
296#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_34
297#define NM_AVAILABLE_IN_1_34 G_UNAVAILABLE(1, 34)
298#else
299#define NM_AVAILABLE_IN_1_34
300#endif
301
302#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_36
303#define NM_DEPRECATED_IN_1_36 G_DEPRECATED
304#define NM_DEPRECATED_IN_1_36_FOR(f) G_DEPRECATED_FOR(f)
305#else
306#define NM_DEPRECATED_IN_1_36
307#define NM_DEPRECATED_IN_1_36_FOR(f)
308#endif
309
310#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_36
311#define NM_AVAILABLE_IN_1_36 G_UNAVAILABLE(1, 36)
312#else
313#define NM_AVAILABLE_IN_1_36
314#endif
315
316/*
317 * Synchronous API for calling D-Bus in libnm is deprecated. See
318 * https://developer.gnome.org/libnm/stable/usage.html#sync-api
319 *
320 * Note that "deprecated" here does not really mean that the API is going
321 * to be removed. We don't break API. Just comment that it is awkward and
322 * discouraged. The user may:
323 *
324 * - continue to use this API. It's deprecated, awkward and discouraged,
325 * but if it works for you, that's fine.
326 *
327 * - use asynchronous API. That's the only sensible way to use D-Bus.
328 * If libnm lacks a certain asynchronous counterpart, it should be
329 * added.
330 *
331 * - use GDBusConnection directly. There really isn't anything wrong
332 * with D-Bus or GDBusConnection. This deprecated API is just a wrapper
333 * around g_dbus_connection_call_sync(). You may call it directly
334 * without feeling dirty.
335 *
336 * The API is marked as deprecated since 1.22, however the macro only starts
337 * complaining in 1.24. That's intentional, because in 1.22 the asynchronous
338 * alternative was not yet available.
339 */
340#define _NM_DEPRECATED_SYNC_METHOD NM_DEPRECATED_IN_1_24
341#define _NM_DEPRECATED_SYNC_WRITABLE_PROPERTY /* NM_DEPRECATED_IN_1_22 */
342
343#endif /* NM_VERSION_H */
344

source code of include/libnm/nm-version.h