mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-03 06:38:05 +02:00
We don't need to have two version defines "CUR" and "NEXT". The main purpose of these macros (if not their only), is to make NM_AVAILABLE_IN_* and NM_DEPRECATED_IN_* macros work. 1) At the precise commit of a release, "CUR" and "NEXT" must be identical, because whenever the user configures NM_VERSION_MIN_REQUIRED and NM_VERSION_MAX_ALLOWED, then they both compare against the current version, at which point "CUR" == "NEXT". 2) Every other commit aside the release, is a development version that leads up the the next coming release. But as far as versioning is concerned, such a development version should be treated like that future release. It's unstable API and it may or may not be close to later API of the release. But we shall treat it as that version. Hence, also in this case, we want to set both "NM_VERSION_CUR_STABLE" and again NEXT to the future version. This makes NM_VERSION_NEXT_STABLE redundant. Previously, the separation between current and next version would for example allow that NM_VERSION_CUR_STABLE is the previously release stable API, and NM_VERSION_NEXT_STABLE is the version of the next upcoming stable API. So, we could allow "examples" to make use of development API, but other(?) internal code still restrict to unstable API. But it's unclear which other code would want to avoid current development. Also, the points 1) and 2) were badly understood. Note that for our previousy releases, we usually didn't bump the macros at the stable release (and if we did, we didn't set them to be the same). While using two macros might be more powerful, it is hard to grok and easy to forget to bump the macros a the right time. One macro shall suffice. All this also means, that *immediately* after making a new release, we shall bump the version number in `configure.ac` and "NM_VERSION_CUR_STABLE".
149 lines
4.4 KiB
C
149 lines
4.4 KiB
C
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the
|
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301 USA.
|
|
*
|
|
* Copyright 2011 Red Hat, Inc.
|
|
*/
|
|
|
|
#ifndef NM_VERSION_H
|
|
#define NM_VERSION_H
|
|
|
|
#include <glib.h>
|
|
|
|
#include "nm-version-macros.h"
|
|
|
|
/* Deprecation / Availability macros */
|
|
|
|
#if !defined (NM_VERSION_MIN_REQUIRED) || (NM_VERSION_MIN_REQUIRED == 0)
|
|
# undef NM_VERSION_MIN_REQUIRED
|
|
# define NM_VERSION_MIN_REQUIRED (NM_VERSION_CUR_STABLE)
|
|
#endif
|
|
|
|
#if !defined (NM_VERSION_MAX_ALLOWED) || (NM_VERSION_MAX_ALLOWED == 0)
|
|
# undef NM_VERSION_MAX_ALLOWED
|
|
# define NM_VERSION_MAX_ALLOWED (NM_VERSION_CUR_STABLE)
|
|
#endif
|
|
|
|
/* sanity checks */
|
|
#if NM_VERSION_MIN_REQUIRED > NM_VERSION_CUR_STABLE
|
|
#error "NM_VERSION_MIN_REQUIRED must be <= NM_VERSION_CUR_STABLE"
|
|
#endif
|
|
#if NM_VERSION_MAX_ALLOWED < NM_VERSION_MIN_REQUIRED
|
|
#error "NM_VERSION_MAX_ALLOWED must be >= NM_VERSION_MIN_REQUIRED"
|
|
#endif
|
|
#if NM_VERSION_MIN_REQUIRED < NM_VERSION_0_9_8
|
|
#error "NM_VERSION_MIN_REQUIRED must be >= NM_VERSION_0_9_8"
|
|
#endif
|
|
|
|
#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_0_9_10
|
|
# define NM_DEPRECATED_IN_0_9_10 G_DEPRECATED
|
|
# define NM_DEPRECATED_IN_0_9_10_FOR(f) G_DEPRECATED_FOR(f)
|
|
#else
|
|
# define NM_DEPRECATED_IN_0_9_10
|
|
# define NM_DEPRECATED_IN_0_9_10_FOR(f)
|
|
#endif
|
|
|
|
#if NM_VERSION_MAX_ALLOWED < NM_VERSION_0_9_10
|
|
# define NM_AVAILABLE_IN_0_9_10 G_UNAVAILABLE(0.9,10)
|
|
#else
|
|
# define NM_AVAILABLE_IN_0_9_10
|
|
#endif
|
|
|
|
#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_0
|
|
# define NM_DEPRECATED_IN_1_0 G_DEPRECATED
|
|
# define NM_DEPRECATED_IN_1_0_FOR(f) G_DEPRECATED_FOR(f)
|
|
#else
|
|
# define NM_DEPRECATED_IN_1_0
|
|
# define NM_DEPRECATED_IN_1_0_FOR(f)
|
|
#endif
|
|
|
|
#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_0
|
|
# define NM_AVAILABLE_IN_1_0 G_UNAVAILABLE(1,0)
|
|
#else
|
|
# define NM_AVAILABLE_IN_1_0
|
|
#endif
|
|
|
|
#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_2
|
|
# define NM_DEPRECATED_IN_1_2 G_DEPRECATED
|
|
# define NM_DEPRECATED_IN_1_2_FOR(f) G_DEPRECATED_FOR(f)
|
|
#else
|
|
# define NM_DEPRECATED_IN_1_2
|
|
# define NM_DEPRECATED_IN_1_2_FOR(f)
|
|
#endif
|
|
|
|
#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_2
|
|
# define NM_AVAILABLE_IN_1_2 G_UNAVAILABLE(1,2)
|
|
#else
|
|
# define NM_AVAILABLE_IN_1_2
|
|
#endif
|
|
|
|
#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_4
|
|
# define NM_DEPRECATED_IN_1_4 G_DEPRECATED
|
|
# define NM_DEPRECATED_IN_1_4_FOR(f) G_DEPRECATED_FOR(f)
|
|
#else
|
|
# define NM_DEPRECATED_IN_1_4
|
|
# define NM_DEPRECATED_IN_1_4_FOR(f)
|
|
#endif
|
|
|
|
#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_4
|
|
# define NM_AVAILABLE_IN_1_4 G_UNAVAILABLE(1,4)
|
|
#else
|
|
# define NM_AVAILABLE_IN_1_4
|
|
#endif
|
|
|
|
#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_6
|
|
# define NM_DEPRECATED_IN_1_6 G_DEPRECATED
|
|
# define NM_DEPRECATED_IN_1_6_FOR(f) G_DEPRECATED_FOR(f)
|
|
#else
|
|
# define NM_DEPRECATED_IN_1_6
|
|
# define NM_DEPRECATED_IN_1_6_FOR(f)
|
|
#endif
|
|
|
|
#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_6
|
|
# define NM_AVAILABLE_IN_1_6 G_UNAVAILABLE(1,6)
|
|
#else
|
|
# define NM_AVAILABLE_IN_1_6
|
|
#endif
|
|
|
|
#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_8
|
|
# define NM_DEPRECATED_IN_1_8 G_DEPRECATED
|
|
# define NM_DEPRECATED_IN_1_8_FOR(f) G_DEPRECATED_FOR(f)
|
|
#else
|
|
# define NM_DEPRECATED_IN_1_8
|
|
# define NM_DEPRECATED_IN_1_8_FOR(f)
|
|
#endif
|
|
|
|
#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_8
|
|
# define NM_AVAILABLE_IN_1_8 G_UNAVAILABLE(1,8)
|
|
#else
|
|
# define NM_AVAILABLE_IN_1_8
|
|
#endif
|
|
|
|
#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_10
|
|
# define NM_DEPRECATED_IN_1_10 G_DEPRECATED
|
|
# define NM_DEPRECATED_IN_1_10_FOR(f) G_DEPRECATED_FOR(f)
|
|
#else
|
|
# define NM_DEPRECATED_IN_1_10
|
|
# define NM_DEPRECATED_IN_1_10_FOR(f)
|
|
#endif
|
|
|
|
#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_10
|
|
# define NM_AVAILABLE_IN_1_10 G_UNAVAILABLE(1,10)
|
|
#else
|
|
# define NM_AVAILABLE_IN_1_10
|
|
#endif
|
|
|
|
#endif /* NM_VERSION_H */
|