Hi all!
I think now that the namespace issues in libosmocore have been resolved,
we seriously have to think of maintaining a stable API and ABI. This
allows us to have truly independent library and application releases,
and the dynamic linker library versioning support should ensure
compatibility.
So please think twice about any modifying libosmocore. It is safe to
add new functions, but we cannot change the prototypes (number of
arguments) for existing functions.
As soon as new functions are introduced, we should increment the library
interface number.
For more information, see
http://www.gnu.org/software/libtool/manual/libtool.html#Versioning
especially the rules in Chapter 7.3:
# If the library source code has changed at all since the last update,
then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
# If any interfaces have been added, removed, or changed since the last
update, increment current, and set revision to 0.
# If any interfaces have been added since the last public release, then
increment age.
# If any interfaces have been removed or changed since the last public
release, then set age to 0.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi all,
JFYI: For a couple of days, *.osmocom.org is reachable via IPv6.
I've had native IPv6 at my co-located servers for more than 10 years,
but somehow never configured it for the virtual machines like
*.osmocom.org - this is now fixed.
If you encounter any difficulties, please let me know.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi Holger,
for your convenience I have prepared a branch that makes cellmgr-ng
compile against the recent libosmocore namespace changes.
You can find it in 'cellmgr-ng.git:laforge/namespace'
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
From: Pablo Neira Ayuso <pablo(a)gnumonks.org>
Hi!
This is the first patchset that fixes the namespace pollution
in libosmocore.
You can find in the patch description the sed regular expression
to automate the replacement of the function/structure names, e.g:
s/struct counter/struct osmo_counter/g
s/counter_inc/osmo_counter_inc/g
s/counter_get/osmo_counter_get/g
s/counter_reset/osmo_counter_reset/g
s/counter_alloc/osmo_counter_alloc/g
s/counter_free/osmo_counter_free
You can use the following script:
cat /tmp/replace.txt | while read REPLACE
do
echo "performing sed \"$REPLACE\"..."
find ./ -type f -exec sed -i "$REPLACE" {} \;
done
The /tmp/replace.txt file have to contain the list of sed
regular expressions, one per line. Thus, you can get in sync
your branches in a couple of minutes.
The entire list of changes in this patchset is the following:
s/struct timer_list/struct osmo_timer_list/g
s/bsc_add_timer/osmo_timer_add/g
s/bsc_schedule_timer/osmo_timer_schedule/g
s/bsc_del_timer/osmo_timer_del/g
s/bsc_timer_pending/osmo_timer_pending/g
s/bsc_nearest_timer/osmo_timers_nearest/g
s/bsc_prepare_timers/osmo_timers_prepare/g
s/bsc_update_timers/osmo_timers_update/g
s/bsc_timer_check/osmo_timers_check/g
s/struct bsc_fd/struct osmo_fd/g
s/bsc_register_fd/osmo_fd_register/g
s/bsc_unregister_fd/osmo_fd_unregister/g
s/bsc_select_main/osmo_select_main/g
s/signal_cbfn/osmo_signal_cbfn/g
s/register_signal_handler/osmo_signal_register_handler/g
s/unregister_signal_handler/osmo_signal_unregister_handler/g
s/dispatch_signal/osmo_signal_dispatch/g
s/struct write_queue/struct osmo_wqueue/g
s/write_queue_init/osmo_wqueue_init/g
s/write_queue_clear/osmo_wqueue_clear/g
s/write_queue_enqueue/osmo_wqueue_enqueue/g
s/write_queue_bfd_cb/osmo_wqueue_bfd_cb/g
s/struct counter/struct osmo_counter/g
s/counter_inc/osmo_counter_inc/g
s/counter_get/osmo_counter_get/g
s/counter_reset/osmo_counter_reset/g
s/counter_alloc/osmo_counter_alloc/g
s/counter_free/osmo_counter_free/g
You can find it in the pablo/namespace branch.
Please, merge it!
Pablo Neira Ayuso (5):
timer: use namespace prefix osmo_timer*
select: use namespace prefix osmo_fd* and osmo_select*
signal: use namespace prefix osmo_signal*
write-queue: use namespace prefix osmo_wqueue*
statistics: use namespace prefix osmo_counter*
include/osmocom/core/select.h | 10 +++++-----
include/osmocom/core/signal.h | 15 +++++++--------
include/osmocom/core/statistics.h | 16 ++++++++--------
include/osmocom/core/timer.h | 20 ++++++++++----------
include/osmocom/core/write_queue.h | 22 +++++++++++-----------
include/osmocom/vty/telnet_interface.h | 2 +-
src/gsmtap_util.c | 12 ++++++------
src/rate_ctr.c | 6 +++---
src/select.c | 30 +++++++++++++++---------------
src/signal.c | 11 +++++++----
src/statistics.c | 15 ++++++++-------
src/timer.c | 29 +++++++++++++++--------------
src/vty/telnet_interface.c | 18 +++++++++---------
src/write_queue.c | 14 +++++++-------
tests/timer/timer_test.c | 18 +++++++++---------
15 files changed, 121 insertions(+), 117 deletions(-)
--
1.7.2.3
Hi Pablo,
there is one more thing that would prevent libosmocore from being
packaged by distributions right now: We include our own version of
talloc. Debian, Fedora and Ubuntu e.g. by now have a shared libtalloc
that we should probably use instead of our own copy.
So what I'd like to see is:
* split talloc.c from libosmocore and make a libosmotalloc instead
* some autotools magic in the applications (openbsc, osmoocom-bb,
osmo-tetra, etc.) that would try to
# detect whether there is a system-wide libtalloc, if yes use it
# if no, use libosmotalloc
The only big question is how to deal with header files, as we do
#include <osmocom/core/talloc.h>
and in case of the system-wide libtalloc it should instead be
#include <talloc.h>
I don't really have a good idea how to handle this. Any ideas?
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
This is the first patch in the series, I'll start little by
little.
This first patch uses the new prefix for timer objects and
functions.
Please, apply!
---
Pablo Neira Ayuso (1):
timer: use namespace prefix osmo_timer*
include/osmocom/core/timer.h | 20 ++++++++++----------
src/rate_ctr.c | 6 +++---
src/select.c | 8 ++++----
src/timer.c | 29 +++++++++++++++--------------
tests/timer/timer_test.c | 16 ++++++++--------
5 files changed, 40 insertions(+), 39 deletions(-)
--
Signature