Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package open-isns for openSUSE:Factory 
checked in at 2022-09-10 20:16:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/open-isns (Old)
 and      /work/SRC/openSUSE:Factory/.open-isns.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "open-isns"

Sat Sep 10 20:16:47 2022 rev:17 rq:1002212 version:0.102

Changes:
--------
--- /work/SRC/openSUSE:Factory/open-isns/open-isns.changes      2021-02-04 
20:23:28.094770909 +0100
+++ /work/SRC/openSUSE:Factory/.open-isns.new.2083/open-isns.changes    
2022-09-10 20:16:49.580757234 +0200
@@ -1,0 +2,37 @@
+Thu Sep 08 18:40:34 UTC 2022 - ldun...@suse.com
+
+- Update to version 0.102:
+  * Preparing for version v0.102
+  * meson: just specify subdir for header-file install.
+  * build: only specify version in one place
+  * Fix two compiler warnings in slp.c
+  * meson: update README
+  * meson: small option usage cleanup
+  * meson: several updates based on review
+  * meson: fix error building shared lib with version
+  * meson: convert some args to 'features'
+  * meson: update README with meson info
+  * Add a decprecation warning to configure script.
+  * meson: Add ability to disable static library build
+  * meson builds now working
+  * git: ignore all shared library files
+  * build: Remove these two files, no longer used
+  * Add a package config file for libisns.a
+  * isnsd: socket: Make sure to create IPv6 socket default
+  * isnsadm: Fix unparse command line options "-V" and "-r"
+  * Typo: s/overried/override/
+  * Removed bash-specific function definitions.
+
+  Also, added patch to quiet compiler (soon upstream):
+  * Quiet-a-commpiler-warning.patch
+
+  This changes the SPEC file to use the new meson build system,
+  supported in open-isns starting with version 0.102, instead of
+  autoconf/make.
+
+  Changes in the code:
+  * no longer deliver isnsetup script or man page (development only)
+  * now deliver a package config file for the library
+  * now deliver both the static library and a shared library
+
+-------------------------------------------------------------------

Old:
----
  open-isns-0.101.tar.xz

New:
----
  Quiet-a-commpiler-warning.patch
  open-isns-0.102.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ open-isns.spec ++++++
--- /var/tmp/diff_new_pack.sCVKUY/_old  2022-09-10 20:16:50.024758376 +0200
+++ /var/tmp/diff_new_pack.sCVKUY/_new  2022-09-10 20:16:50.028758386 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package open-isns
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,15 +20,18 @@
 Summary:        Partial Implementation of iSNS iSCSI registration
 License:        LGPL-2.1-or-later
 Group:          System/Kernel
-Version:        0.101
+Version:        0.102
 Release:        0
 Source:         %{name}-%{version}.tar.xz
+Patch1:         Quiet-a-commpiler-warning.patch
 URL:            https://github.com/open-iscsi/%{name}
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  glibc-devel
 BuildRequires:  make
+BuildRequires:  meson >= 0.55.0
+BuildRequires:  openslp-devel
 BuildRequires:  openssl-devel
 BuildRequires:  systemd-rpm-macros
 %{?systemd_requires}
@@ -46,38 +49,33 @@
 initiators can be configured to discover the targets by asking the
 iSNS server.
 
-%package -n open-isns-devel
+%package devel
 Summary:        Development files for open-isns
 Group:          Development/Libraries/C and C++
-Requires:       open-isns = %{version}
+Requires:       %{name} = %{version}
 
-%description -n open-isns-devel
+%description devel
 Files to develop an application using the open-isns library.
 
 %prep
-%setup -n %{name}-%{version}
+%autosetup -p1
 
 %build
 %global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
-autoconf
-autoheader
-%configure --prefix=%{_prefix} --with-security
-make OPTFLAGS="%{optflags}"
+%meson --default-library=both
+%meson_build
 
 %install
-make DESTDIR="%{buildroot}" install
-if [ ! -d "%{buildroot}/usr/sbin" ] ; then
-       mkdir -p %{buildroot}/usr/sbin
-fi
+%meson_install
 ln -sf /usr/sbin/service %{buildroot}/usr/sbin/rcisnsd
-make DESTDIR="%{buildroot}" install_hdrs install_lib
-install -m 755 isnssetup %{buildroot}%{_sbindir}
 
 %post
+%{run_ldconfig}
 %{service_add_post isnsd.socket isnsd.service}
 
 %postun
 %{service_del_postun isnsd.socket isnsd.service}
+%{run_ldconfig}
 
 %pre
 %{service_add_pre isnsd.socket isnsd.service}
@@ -85,12 +83,14 @@
 %preun
 %{service_del_preun isnsd.socket isnsd.service}
 
+%post devel -p %{run_ldconfig}
+%postun devel -p %{run_ldconfig}
+
 %files
 %defattr(-,root,root)
 %{_sbindir}/isnsd
 %{_sbindir}/isnsadm
 %{_sbindir}/isnsdd
-%{_sbindir}/isnssetup
 %dir %{_sysconfdir}/isns
 %attr(0600,root,root) %config(noreplace) %{_sysconfdir}/isns/isnsd.conf
 %attr(0600,root,root) %config(noreplace) %{_sysconfdir}/isns/isnsadm.conf
@@ -101,12 +101,12 @@
 %doc %{_mandir}/man8/isnsd.8%{?ext_man}
 %doc %{_mandir}/man8/isnsadm.8%{?ext_man}
 %doc %{_mandir}/man8/isnsdd.8%{?ext_man}
-%doc %{_mandir}/man8/isnssetup.8%{?ext_man}
 %doc %{_mandir}/man5/isns_config.5%{?ext_man}
 %{_unitdir}/isnsd.service
 %{_unitdir}/isnsd.socket
+%{_libdir}/libisns.so.0
 
-%files -n open-isns-devel
+%files devel
 %defattr(-,root,root)
 %dir %{_includedir}/libisns
 %{_includedir}/libisns/attrs.h
@@ -119,5 +119,7 @@
 %{_includedir}/libisns/types.h
 %{_includedir}/libisns/util.h
 %{_libdir}/libisns.a
+%{_libdir}/libisns.so
+%{_libdir}/pkgconfig/libisns.pc
 
 %changelog

++++++ Quiet-a-commpiler-warning.patch ++++++
>From 62e2c4d8dd270eea0bfaa933e87182c8a1c18aac Mon Sep 17 00:00:00 2001
From: Lee Duncan <ldun...@suse.com>
Date: Thu, 8 Sep 2022 12:00:31 -0700
Subject: [PATCH] Quiet a commpiler warning.

Build error looked like:

[   33s] gcc -Wall -Wextra -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 
-fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables 
-fstack-clash-protection -Werror=return-type -flto=auto -ffat-lto-objects -g 
-I. -Iinclude -I. -I./include -flto=auto -ffat-lto-objects -o tests/pauw4 
tests/pauw4.o -L. -lisns -Wl,--as-needed -lcrypto
[   33s] attrs.c: In function 'isns_attr_decode':
[   33s] attrs.c:807:9: warning: 'len' may be used uninitialized 
[-Wmaybe-uninitialized]
[   33s]   807 |         isns_error("Error decoding attribute, tag=0x%04x, 
len=%u\n",
[   33s]       |         ^
[   33s] attrs.c:780:30: note: 'len' declared here
[   33s]   780 |         uint32_t        tag, len;
---
 attrs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/attrs.c b/attrs.c
index 44d9675358b9..a12c22235481 100644
--- a/attrs.c
+++ b/attrs.c
@@ -777,7 +777,7 @@ isns_attr_decode(buf_t *bp, isns_attr_t **result)
 {
        isns_attr_t     *attr = NULL;
        isns_value_t    *value;
-       uint32_t        tag, len;
+       uint32_t        tag, len = 0;
 
        if (!buf_get32(bp, &tag)
         || !buf_get32(bp, &len))
-- 
2.35.3


++++++ _service ++++++
--- /var/tmp/diff_new_pack.sCVKUY/_old  2022-09-10 20:16:50.064758479 +0200
+++ /var/tmp/diff_new_pack.sCVKUY/_new  2022-09-10 20:16:50.068758490 +0200
@@ -4,8 +4,8 @@
     <param name="url">https://github.com/open-iscsi/open-isns.git</param>
     <param name="subdir"></param>
     <param name="filename">open-isns</param>
-    <param name="versionformat">0.101</param>
-    <param name="revision">v0.101</param>
+    <param name="versionformat">0.102</param>
+    <param name="revision">v0.102</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="recompress" mode="disabled">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.sCVKUY/_old  2022-09-10 20:16:50.092758551 +0200
+++ /var/tmp/diff_new_pack.sCVKUY/_new  2022-09-10 20:16:50.096758562 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/open-iscsi/open-isns.git</param>
-              <param 
name="changesrevision">0d86dc31fae2e2d77a082ccea5aba95426b40c3c</param></service></servicedata>
+              <param 
name="changesrevision">c0e6d9fedc5a7041260de477fe1a8455fa074113</param></service></servicedata>
 (No newline at EOF)
 

++++++ open-isns-0.101.tar.xz -> open-isns-0.102.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/.gitignore 
new/open-isns-0.102/.gitignore
--- old/open-isns-0.101/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/open-isns-0.102/.gitignore      2022-09-08 20:09:47.000000000 +0200
@@ -0,0 +1,14 @@
+*.o
+TAGS
+tags
+cscope.files
+isnsadm
+isnsd
+isnsdd
+libisns.a
+libisns*.so*
+Makefile
+config.h
+config.log
+config.status
+autom4te.cache
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/ChangeLog 
new/open-isns-0.102/ChangeLog
--- old/open-isns-0.101/ChangeLog       2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/ChangeLog       2022-09-08 20:09:47.000000000 +0200
@@ -1,3 +1,33 @@
+* Changes v0.101 to v0.102:
+
+Andrew Sayers (1):
+      Typo: s/overried/override/
+
+Lee Duncan (15):
+      Add a package config file for libisns.a
+      build: Remove these two files, no longer used
+      git: ignore all shared library files
+      meson builds now working
+      meson: Add ability to disable static library build
+      Add a decprecation warning to configure script.
+      meson: update README with meson info
+      meson: convert some args to 'features'
+      meson: fix error building shared lib with version
+      meson: several updates based on review
+      meson: small option usage cleanup
+      meson: update README
+      Fix two compiler warnings in slp.c
+      build: only specify version in one place
+      meson: just specify subdir for header-file install.
+
+Pavel I Volkov (1):
+      Removed bash-specific function definitions.
+
+Wenchao Hao (2):
+      isnsadm: Fix unparse command line options "-V" and "-r"
+      isnsd: socket: Make sure to create IPv6 socket default
+
+
 * Changes v0.100 to v0.101:
 
 Dmitry Bogdanov (1):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/Makefile.in 
new/open-isns-0.102/Makefile.in
--- old/open-isns-0.101/Makefile.in     2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/Makefile.in     2022-09-08 20:09:47.000000000 +0200
@@ -18,6 +18,7 @@
 SYSTEMDDIR = $(DESTDIR)$(systemddir)
 LIBDIR = $(DESTDIR)$(libdir)
 INCDIR = $(DESTDIR)$(includedir)/libisns
+PKGDIR = $(LIBDIR)/pkgconfig
 
 ENABLE_SHARED = @ENABLE_SHARED@
 ENABLE_STATIC = @ENABLE_STATIC@
@@ -107,9 +108,9 @@
 
 all: $(LIB) $(SOLIB) isnsd isnsadm isnsdd $(TESTS)
 
-install:
+install: all
        @echo "*** Installing Open-iSNS ***"
-       $(INSTALL) -m 755 -d $(CFGDIR) $(MANDIR)/man8 $(MANDIR)/man5 $(SBINDIR) 
$(SYSTEMDDIR)
+       $(INSTALL) -m 755 -d $(CFGDIR) $(MANDIR)/man8 $(MANDIR)/man5 $(SBINDIR) 
$(SYSTEMDDIR) $(PKGDIR)
        $(INSTALL) -m 700 -d $(VARDIR)
        $(INSTALL) -m 555 isnsd isnsadm isnsdd $(SBINDIR)
        $(INSTALL) -m 644 $(srcdir)/etc/isnsd.conf $(CFGDIR)
@@ -122,6 +123,7 @@
        $(INSTALL) -m 644 $(srcdir)/doc/isns_config.5 $(MANDIR)/man5
        $(INSTALL) -m 644 $(srcdir)/isnsd.service $(SYSTEMDDIR)
        $(INSTALL) -m 644 $(srcdir)/isnsd.socket $(SYSTEMDDIR)
+       $(INSTALL) -m 644 $(srcdir)/libisns.pc $(PKGDIR)
 
 install_hdrs: 
        @echo '*** Installing Open-iSNS header files ***'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/README new/open-isns-0.102/README
--- old/open-isns-0.101/README  2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/README  2022-09-08 20:09:47.000000000 +0200
@@ -6,25 +6,25 @@
 The implementation is still somewhat incomplete, but I'm releasing
 it for your reading pleasure.
 
-The distribution comprises
+The distribution comprises:
 
  isnsd
-       This is the iSNS server, supporting persistent storage
-       of registrations in a file based database.
+        This is the iSNS server, supporting persistent storage
+        of registrations in a file based database.
 
  isnsadm
-       A command line utility for querying the iSNS database,
-       and for registering/deregistering nodes and portals
+        A command line utility for querying the iSNS database,
+        and for registering/deregistering nodes and portals
 
  isnsdd
-       An iSNS Discovery Daemon, which is still very much work
-       in progress. The daemon is supposed to handle all the
-       bit banging and server communications required to register
-       a node, its portals, and to maintain the registration.
-       It is also supposed to use the iSNS State Change Notification
-       framework to learn of new targets or initiators coming online,
-       and inform local services (such as the iSCSI initiator daemon)
-       about these changes.
+        An iSNS Discovery Daemon, which is still very much work
+        in progress. The daemon is supposed to handle all the
+        bit banging and server communications required to register
+        a node, its portals, and to maintain the registration.
+        It is also supposed to use the iSNS State Change Notification
+        framework to learn of new targets or initiators coming online,
+        and inform local services (such as the iSCSI initiator daemon)
+        about these changes.
 
 Thanks!
 -------
@@ -36,88 +36,140 @@
 What works, after a fashion:
 ----------------------------
 
- -     For now, I've been focusing on getting the iSCSI part to
-       work. There is some very basic support for FC objects, but
-       this will be hardly useful yet.
-
- -     Registration, deregistration, query, getnext
-       You can use isnsadm to register iSCSI nodes, and portals.
-       isnsadm also illustrates how this is supposed to be used from
-       the client perspective.
-
- -     Discovery domains are supported mostly. The administrator
-       can create discovery domains using isnsadm, and place storage
-       nodes in domains. Queries by clients are scoped by their
-       discovery domains membership, so that they will be unable to
-       see nodes not part of a shared DD.
-
-       Open-iSNS currently does not allow clients to place themselves
-       in a DD.
-
-       Optionally, storage nodes that are not in any discovery domain
-       will be placed in a "default DD" (see the DefaultDiscoveryDomain
-       in isnsd.conf).
+ -      For now, I've been focusing on getting the iSCSI part to
+        work. There is some very basic support for FC objects, but
+        this will be hardly useful yet.
+
+ -      Registration, deregistration, query, getnext
+        You can use isnsadm to register iSCSI nodes, and portals.
+        isnsadm also illustrates how this is supposed to be used from
+        the client perspective.
+
+ -      Discovery domains are supported mostly. The administrator
+        can create discovery domains using isnsadm, and place storage
+        nodes in domains. Queries by clients are scoped by their
+        discovery domains membership, so that they will be unable to
+        see nodes not part of a shared DD.
+
+        Open-iSNS currently does not allow clients to place themselves
+        in a DD.
+
+        Optionally, storage nodes that are not in any discovery domain
+        will be placed in a "default DD" (see the DefaultDiscoveryDomain
+        in isnsd.conf).
 
- -     ESI, supported both by the server and the discovery daemon
+ -      ESI, supported both by the server and the discovery daemon
 
- -     SCN, supported by the server and the discovery daemon
+ -      SCN, supported by the server and the discovery daemon
 
 
 What is still missing
 ---------------------
 
- -     Better documentation (esp. a HOWTO on getting started with iSNS)
- -     DD Sets
- -     Various bits and pieces of the protocol
- -     FC support
+ -      Better documentation (esp. a HOWTO on getting started with iSNS)
+ -      DD Sets
+ -      Various bits and pieces of the protocol
+ -      FC support
 
 
 
 Building Open-iSNS
 ------------------
 
-The Open-iSNS build is now based on autoconf. The distributed tarball
-should include a configure script and a config.h.in file generated
-from configure.ac. If these are missing, you can generate them
-by running
-
-       autoconf
-       autoheader
-
-For most people, it should be sufficient to run configure without any
-arguments, or at most with the option --prefix. If run without --prefix,
-program files, manpages etc will be installed below /usr/local. To have
-everything installed /usr/bin, /usr/share/man etc, run it as
+Currently we are transitioning to using 'meson' instead of
+autotools/autoconf. This means that, for now, both systems
+work. But autoconf will be deprecated, so please start using
+meson.
+
+   Using meson to Build open-isns
+   ------------------------------
+   For Open-iSNS, the system is built using meson and ninja
+   (see https://github.com/mesonbuild/meson). If these packages aren't
+   available to you on your Linux distribution, you can download
+   the latest release from: https://github.com/mesonbuild/meson/releases.
+   The README.md file there describes in detail how to build it yourself,
+   including how to get ninja.
+
+   To build the open-isns, first run meson to configure the build,
+   from the top-level open-iscsi directory, e.g.:
+
+      rm -rf builddir
+      mkdir builddir
+      meson [<OPTIONS>] setup builddir
+
+   Meson has many options, some built in, and some specifically for
+   this project. To see the built-in options, run:
+
+      meson setup --help
+
+   One option of note is "--default-library={shared,static,both}". The
+   meson default is "shared".
+
+   The project-specific options are set using -D<OPTION>=VALUE. OPTIONS
+   are from. You can use 'meson configure' to see these project options:
+
+      security        feature [check]           use libcrypt for security
+      slp             feature [check]           use Service Location Protocol
+      shared_version  boolean [true]            use library versioning, if
+                                                building a shared library
+      systemddir      string [/usr/lib/systemd] location of systemd files
+      rundir          string [/var/run]         where socket and pidfile go
+
+   Thus, one might run:
+
+      meson setup --default-library=both -Dsecurity=disabled -Drundir=/some/dir
+
+   Once meson has created and set up your "builddir" directory, you can
+   actually build the code using ninja:
+
+           ninja -C builddir [--verbose]
+
+   Using autotools/make to Build open-isns [DEPRECATED]
+   ----------------------------------------------------
+   The Open-iSNS can still be build using autoconf, though this
+   method is deprected and will be removed soon. The distributed tarball
+   should include a configure script and a config.h.in file generated
+   from configure.ac. If these are missing, you can generate them
+   by running
+
+        autoconf
+        autoheader
+
+   For most people, it should be sufficient to run configure without any
+   arguments, or at most with the option --prefix. If run without --prefix,
+   program files, manpages etc will be installed below /usr/local. To have
+   everything installed /usr/bin, /usr/share/man etc, run it as
+
+        ./configure --prefix=/usr
+
+   Other project-specific options to configure include:
+
+        --without-security      to disable security
+        --without-slp           to disable Service Location Protocol
+        --with-rundir=/path     to set the run directory [/var/run]
+        --enable-shared         enabled building shared library
+        --disable-static        disable building the static library
+        --enable-memdebug       defined -DMEMDEBUG when compiling (deprecated)
+
+   When configure is run, it checks for the presence of a number of
+   headers and libraries in your system (the results of most of these checks
+   are currently ignored). Then, it creates a Makefile and a config.h
+   include file. With these in place, you can build the binaries and libraries:
 
-       ./configure --prefix=/usr
+           make
+           make install
 
-Dependencies:
+   Then, run "make clean" to clean up your binaries, or run "make distclean"
+   to get back to a clean pre-configuration state.
 
- -     If you want to build Open-iSNS with support for authentication,
-       you need the OpenSSL libraries and header files installed.
+Dependencies:
 
-       The configure script should pick up the presence of these
-       libraries, and enable security support automatically. To disable
-       this explicitly in your build, pass the --without-security option
-       to configure.
-
- -     If you want to build Open-iSNS with SLP support, you need the
-       OpenSLP library and header file installed.
-
-       The configure script should pick up the presence of this library,
-       and enable SLP support automatically. To disable this explicitly
-       in your build, pass the --without-slp option to configure.
-
-When configure is run, it checks for a the presence of a number of
-headers and libraries in your system (the results of most of these checks
-are currently ignored :-). Then, it creates a Makefile and a config.h
-include file. With these in place, you can build the binaries and libraries:
+ -      If you want to build Open-iSNS with support for authentication,
+        you need the OpenSSL libraries and header files installed.
 
-       make
-       make install
+ -      If you want to build Open-iSNS with SLP support, you need the
+        OpenSLP library and header file installed.
 
-Then, run "make clean" to clean up your binaries, or run "make distclean"
-to get back to a clean pre-configuration state.
 
 
 Testing
@@ -133,12 +185,13 @@
 simplest way is probably to use the isnssetup script included in the
 source package.
 
-For each client you wish to use, you should then 
+For each client you wish to use, you should then register that key using
+the example setup script, or steps similar to those in the script.
 
 iSNS Security
 -------------
 
-This implementation of iSNS supports authentication, as descibed in RFC
+This implementation of iSNS supports authentication, as described in RFC
 4171. In order to use it, you have to create DSA keys for the server and
 all clients.
 
@@ -158,11 +211,11 @@
 
 Open-iSNS is available for download from:
 
-       https://github.com/gonzoleeman/open-isns/archive/$(VERSION).tar.gz
+        https://github.com/open-iscsi/open-isns/archive/$(VERSION).tar.gz
 
-or, in souce form, from:
+or, in source form, from:
 
-       g...@github.com:gonzoleeman/open-isns.git
+        https://github.com/open-iscsi/open-isns
 
 You have to grab the latest tarball and compile it; fancy things such
 as RPMs are not available yet.
@@ -170,32 +223,32 @@
 ------------------------------------------------------------------
 
 
-                       COPYRIGHT NOTICE
+                        COPYRIGHT NOTICE
 
-       Copyright (C) 2007 Olaf Kirch.
+        Copyright (C) 2007 Olaf Kirch.
 
-       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.1 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.
+        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.1 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.
 
 ------------------------------------------------------------------
 
 Author:
-       Olaf Kirch <o...@suse.com>
+        Olaf Kirch <o...@suse.com>
 
 Current maintainer:
-       Lee Duncan <ldun...@suse.com>           2015
+        Lee Duncan <ldun...@suse.com>           (since 2015)
 
 ------------------------------------------------------------------
 
@@ -203,6 +256,7 @@
 
 * fully implement/require device discovery sets
 * implement ability to pass in flags to systemd service file for isnsd
-* improve automated testing (using PyUnit?)
 * ensure all tests pass (!!)
-* document testing procedure
+* document testing procedure better
+* remove the old perl-based tests
+* fix testing using meson
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/compat/my_getopt.c 
new/open-isns-0.102/compat/my_getopt.c
--- old/open-isns-0.101/compat/my_getopt.c      2021-02-01 18:27:33.000000000 
+0100
+++ new/open-isns-0.102/compat/my_getopt.c      1970-01-01 01:00:00.000000000 
+0100
@@ -1,271 +0,0 @@
-/*
- *  my_getopt.c - my re-implementation of getopt.
- *  Copyright 1997, 2000, 2001, 2002, Benjamin Sittler
- *
- *  Permission is hereby granted, free of charge, to any person
- *  obtaining a copy of this software and associated documentation
- *  files (the "Software"), to deal in the Software without
- *  restriction, including without limitation the rights to use, copy,
- *  modify, merge, publish, distribute, sublicense, and/or sell copies
- *  of the Software, and to permit persons to whom the Software is
- *  furnished to do so, subject to the following conditions:
- *  
- *  The above copyright notice and this permission notice shall be
- *  included in all copies or substantial portions of the Software.
- *  
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *  NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- *  DEALINGS IN THE SOFTWARE.
- */
-
-#include <sys/types.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include "my_getopt.h"
-
-int my_optind=1, my_opterr=1, my_optopt=0;
-char *my_optarg=0;
-
-/* this is the plain old UNIX getopt, with GNU-style extensions. */
-/* if you're porting some piece of UNIX software, this is all you need. */
-/* this supports GNU-style permution and optional arguments */
-
-int my_getopt(int argc, char * argv[], const char *opts)
-{
-  static int charind=0;
-  const char *s;
-  char mode, colon_mode;
-  int off = 0, opt = -1;
-
-  if(getenv("POSIXLY_CORRECT")) colon_mode = mode = '+';
-  else {
-    if((colon_mode = *opts) == ':') off ++;
-    if(((mode = opts[off]) == '+') || (mode == '-')) {
-      off++;
-      if((colon_mode != ':') && ((colon_mode = opts[off]) == ':'))
-        off ++;
-    }
-  }
-  my_optarg = 0;
-  if(charind) {
-    my_optopt = argv[my_optind][charind];
-    for(s=opts+off; *s; s++) if(my_optopt == *s) {
-      charind++;
-      if((*(++s) == ':') || ((my_optopt == 'W') && (*s == ';'))) {
-        if(argv[my_optind][charind]) {
-          my_optarg = &(argv[my_optind++][charind]);
-          charind = 0;
-        } else if(*(++s) != ':') {
-          charind = 0;
-          if(++my_optind >= argc) {
-            if(my_opterr) fprintf(stderr,
-                                "%s: option requires an argument -- %c\n",
-                                argv[0], my_optopt);
-            opt = (colon_mode == ':') ? ':' : '?';
-            goto my_getopt_ok;
-          }
-          my_optarg = argv[my_optind++];
-        }
-      }
-      opt = my_optopt;
-      goto my_getopt_ok;
-    }
-    if(my_opterr) fprintf(stderr,
-                        "%s: illegal option -- %c\n",
-                        argv[0], my_optopt);
-    opt = '?';
-    if(argv[my_optind][++charind] == '\0') {
-      my_optind++;
-      charind = 0;
-    }
-  my_getopt_ok:
-    if(charind && ! argv[my_optind][charind]) {
-      my_optind++;
-      charind = 0;
-    }
-  } else if((my_optind >= argc) ||
-             ((argv[my_optind][0] == '-') &&
-              (argv[my_optind][1] == '-') &&
-              (argv[my_optind][2] == '\0'))) {
-    my_optind++;
-    opt = -1;
-  } else if((argv[my_optind][0] != '-') ||
-             (argv[my_optind][1] == '\0')) {
-    char *tmp;
-    int i, j, k;
-
-    if(mode == '+') opt = -1;
-    else if(mode == '-') {
-      my_optarg = argv[my_optind++];
-      charind = 0;
-      opt = 1;
-    } else {
-      for(i=j=my_optind; i<argc; i++) if((argv[i][0] == '-') &&
-                                        (argv[i][1] != '\0')) {
-        my_optind=i;
-        opt=my_getopt(argc, argv, opts);
-        while(i > j) {
-          tmp=argv[--i];
-          for(k=i; k+1<my_optind; k++) argv[k]=argv[k+1];
-          argv[--my_optind]=tmp;
-        }
-        break;
-      }
-      if(i == argc) opt = -1;
-    }
-  } else {
-    charind++;
-    opt = my_getopt(argc, argv, opts);
-  }
-  if (my_optind > argc) my_optind = argc;
-  return opt;
-}
-
-/* this is the extended getopt_long{,_only}, with some GNU-like
- * extensions. Implements _getopt_internal in case any programs
- * expecting GNU libc getopt call it.
- */
-
-int _my_getopt_internal(int argc, char * argv[], const char *shortopts,
-                     const struct option *longopts, int *longind,
-                     int long_only)
-{
-  char mode, colon_mode = *shortopts;
-  int shortoff = 0, opt = -1;
-
-  if(getenv("POSIXLY_CORRECT")) colon_mode = mode = '+';
-  else {
-    if((colon_mode = *shortopts) == ':') shortoff ++;
-    if(((mode = shortopts[shortoff]) == '+') || (mode == '-')) {
-      shortoff++;
-      if((colon_mode != ':') && ((colon_mode = shortopts[shortoff]) == ':'))
-        shortoff ++;
-    }
-  }
-  my_optarg = 0;
-  if((my_optind >= argc) ||
-      ((argv[my_optind][0] == '-') &&
-       (argv[my_optind][1] == '-') &&
-       (argv[my_optind][2] == '\0'))) {
-    my_optind++;
-    opt = -1;
-  } else if((argv[my_optind][0] != '-') ||
-            (argv[my_optind][1] == '\0')) {
-    char *tmp;
-    int i, j, k;
-
-    opt = -1;
-    if(mode == '+') return -1;
-    else if(mode == '-') {
-      my_optarg = argv[my_optind++];
-      return 1;
-    }
-    for(i=j=my_optind; i<argc; i++) if((argv[i][0] == '-') &&
-                                    (argv[i][1] != '\0')) {
-      my_optind=i;
-      opt=_my_getopt_internal(argc, argv, shortopts,
-                              longopts, longind,
-                              long_only);
-      while(i > j) {
-        tmp=argv[--i];
-        for(k=i; k+1<my_optind; k++)
-          argv[k]=argv[k+1];
-        argv[--my_optind]=tmp;
-      }
-      break;
-    }
-  } else if((!long_only) && (argv[my_optind][1] != '-'))
-    opt = my_getopt(argc, argv, shortopts);
-  else {
-    int charind, offset;
-    int found = 0, ind, hits = 0;
-
-    if(((my_optopt = argv[my_optind][1]) != '-') && ! argv[my_optind][2]) {
-      int c;
-      
-      ind = shortoff;
-      while((c = shortopts[ind++])) {
-        if(((shortopts[ind] == ':') ||
-            ((c == 'W') && (shortopts[ind] == ';'))) &&
-           (shortopts[++ind] == ':'))
-          ind ++;
-        if(my_optopt == c) return my_getopt(argc, argv, shortopts);
-      }
-    }
-    offset = 2 - (argv[my_optind][1] != '-');
-    for(charind = offset;
-        (argv[my_optind][charind] != '\0') &&
-          (argv[my_optind][charind] != '=');
-        charind++);
-    for(ind = 0; longopts[ind].name && !hits; ind++)
-      if((strlen(longopts[ind].name) == (size_t) (charind - offset)) &&
-         (strncmp(longopts[ind].name,
-                  argv[my_optind] + offset, charind - offset) == 0))
-        found = ind, hits++;
-    if(!hits) for(ind = 0; longopts[ind].name; ind++)
-      if(strncmp(longopts[ind].name,
-                 argv[my_optind] + offset, charind - offset) == 0)
-        found = ind, hits++;
-    if(hits == 1) {
-      opt = 0;
-
-      if(argv[my_optind][charind] == '=') {
-        if(longopts[found].has_arg == 0) {
-          opt = '?';
-          if(my_opterr) fprintf(stderr,
-                             "%s: option `--%s' doesn't allow an argument\n",
-                             argv[0], longopts[found].name);
-        } else {
-          my_optarg = argv[my_optind] + ++charind;
-          charind = 0;
-        }
-      } else if(longopts[found].has_arg == 1) {
-        if(++my_optind >= argc) {
-          opt = (colon_mode == ':') ? ':' : '?';
-          if(my_opterr) fprintf(stderr,
-                             "%s: option `--%s' requires an argument\n",
-                             argv[0], longopts[found].name);
-        } else my_optarg = argv[my_optind];
-      }
-      if(!opt) {
-        if (longind) *longind = found;
-        if(!longopts[found].flag) opt = longopts[found].val;
-        else *(longopts[found].flag) = longopts[found].val;
-      }
-      my_optind++;
-    } else if(!hits) {
-      if(offset == 1) opt = my_getopt(argc, argv, shortopts);
-      else {
-        opt = '?';
-        if(my_opterr) fprintf(stderr,
-                           "%s: unrecognized option `%s'\n",
-                           argv[0], argv[my_optind++]);
-      }
-    } else {
-      opt = '?';
-      if(my_opterr) fprintf(stderr,
-                         "%s: option `%s' is ambiguous\n",
-                         argv[0], argv[my_optind++]);
-    }
-  }
-  if (my_optind > argc) my_optind = argc;
-  return opt;
-}
-
-int my_getopt_long(int argc, char * argv[], const char *shortopts,
-                const struct option *longopts, int *longind)
-{
-  return _my_getopt_internal(argc, argv, shortopts, longopts, longind, 0);
-}
-
-int my_getopt_long_only(int argc, char * argv[], const char *shortopts,
-                const struct option *longopts, int *longind)
-{
-  return _my_getopt_internal(argc, argv, shortopts, longopts, longind, 1);
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/compat/my_getopt.h 
new/open-isns-0.102/compat/my_getopt.h
--- old/open-isns-0.101/compat/my_getopt.h      2021-02-01 18:27:33.000000000 
+0100
+++ new/open-isns-0.102/compat/my_getopt.h      1970-01-01 01:00:00.000000000 
+0100
@@ -1,69 +0,0 @@
-/*
- *  my_getopt.h - interface to my re-implementation of getopt.
- *  Copyright 1997, 2000, 2001, 2002, Benjamin Sittler
- *
- *  Permission is hereby granted, free of charge, to any person
- *  obtaining a copy of this software and associated documentation
- *  files (the "Software"), to deal in the Software without
- *  restriction, including without limitation the rights to use, copy,
- *  modify, merge, publish, distribute, sublicense, and/or sell copies
- *  of the Software, and to permit persons to whom the Software is
- *  furnished to do so, subject to the following conditions:
- *  
- *  The above copyright notice and this permission notice shall be
- *  included in all copies or substantial portions of the Software.
- *  
- *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *  NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- *  DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef MY_GETOPT_H_INCLUDED
-#define MY_GETOPT_H_INCLUDED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* UNIX-style short-argument parser */
-extern int my_getopt(int argc, char * argv[], const char *opts);
-
-extern int my_optind, my_opterr, my_optopt;
-extern char *my_optarg;
-
-struct option {
-  const char *name;
-  int has_arg;
-  int *flag;
-  int val;
-};
-
-/* human-readable values for has_arg */
-#undef no_argument
-#define no_argument 0
-#undef required_argument
-#define required_argument 1
-#undef optional_argument
-#define optional_argument 2
-
-/* GNU-style long-argument parsers */
-extern int my_getopt_long(int argc, char * argv[], const char *shortopts,
-                       const struct option *longopts, int *longind);
-
-extern int my_getopt_long_only(int argc, char * argv[], const char *shortopts,
-                            const struct option *longopts, int *longind);
-
-extern int _my_getopt_internal(int argc, char * argv[], const char *shortopts,
-                            const struct option *longopts, int *longind,
-                            int long_only);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* MY_GETOPT_H_INCLUDED */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/configure 
new/open-isns-0.102/configure
--- old/open-isns-0.101/configure       2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/configure       2022-09-08 20:09:47.000000000 +0200
@@ -621,6 +621,7 @@
 
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+VERSION
 RUNDIR
 ENABLE_STATIC
 ENABLE_SHARED
@@ -4472,6 +4473,8 @@
 
 fi
 
+VERSION=0.101
+
 
 
 
@@ -5758,3 +5761,6 @@
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Autotool/configure/make are 
deprecated, and will be removed soon. Please using \"meson\" instead" >&5
+$as_echo "$as_me: WARNING: Autotool/configure/make are deprecated, and will be 
removed soon. Please using \"meson\" instead" >&2;}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/configure.ac 
new/open-isns-0.102/configure.ac
--- old/open-isns-0.101/configure.ac    2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/configure.ac    2022-09-08 20:09:47.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(open-isns, [0.101])
+AC_INIT(open-isns, [0.102])
 AC_CONFIG_SRCDIR([isnsd.c])
 AC_CONFIG_AUX_DIR([aclocal])
 
@@ -161,8 +161,13 @@
        AC_SUBST(HAVE_LD_VERSION_SCRIPT)
 fi
 
+VERSION=AC_PACKAGE_VERSION
 AC_SUBST(ENABLE_SHARED)
 AC_SUBST(ENABLE_STATIC)
 AC_SUBST(RUNDIR)
+AC_SUBST(VERSION)
 
 AC_OUTPUT(Makefile include/libisns/paths.h)
+
+dnl Warn user that autoconf is deprecated here
+AC_MSG_WARN([Autotool/configure/make are deprecated, and will be removed soon. 
Please using "meson" instead])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/doc/isns_config.5 
new/open-isns-0.102/doc/isns_config.5
--- old/open-isns-0.101/doc/isns_config.5       2021-02-01 18:27:33.000000000 
+0100
+++ new/open-isns-0.102/doc/isns_config.5       2022-09-08 20:09:47.000000000 
+0200
@@ -46,7 +46,7 @@
 system call, and use a DNS lookup to look up the canonical name.
 Using the
 .BR HostName
-option, you can overried this. This option is rarely needed.
+option, you can override this. This option is rarely needed.
 .TP
 .BR SourceName
 This option is mandatory for all Open-iSNS applications.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/doc/meson.build 
new/open-isns-0.102/doc/meson.build
--- old/open-isns-0.101/doc/meson.build 1970-01-01 01:00:00.000000000 +0100
+++ new/open-isns-0.102/doc/meson.build 2022-09-08 20:09:47.000000000 +0200
@@ -0,0 +1,10 @@
+# meson build file for open-isns doc (man pages)
+
+# do not install isnssetup.8, as it's a man page
+# for aninternal script
+man8_pages = files([
+  'isnsd.8',
+  'isnsdd.8',
+  'isnsadm.8'])
+man5_pages = files([
+  'isns_config.5'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/etc/meson.build 
new/open-isns-0.102/etc/meson.build
--- old/open-isns-0.101/etc/meson.build 1970-01-01 01:00:00.000000000 +0100
+++ new/open-isns-0.102/etc/meson.build 2022-09-08 20:09:47.000000000 +0200
@@ -0,0 +1,6 @@
+# meson build file for open-isns etc files
+
+config_files = files([
+  'isnsd.conf',
+  'isnsdd.conf',
+  'isnsadm.conf'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/include/libisns/.gitignore 
new/open-isns-0.102/include/libisns/.gitignore
--- old/open-isns-0.101/include/libisns/.gitignore      1970-01-01 
01:00:00.000000000 +0100
+++ new/open-isns-0.102/include/libisns/.gitignore      2022-09-08 
20:09:47.000000000 +0200
@@ -0,0 +1 @@
+paths.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/include/libisns/meson.build 
new/open-isns-0.102/include/libisns/meson.build
--- old/open-isns-0.101/include/libisns/meson.build     1970-01-01 
01:00:00.000000000 +0100
+++ new/open-isns-0.102/include/libisns/meson.build     2022-09-08 
20:09:47.000000000 +0200
@@ -0,0 +1,27 @@
+# meson build control file for open-isns public include files
+
+inc_conf = configuration_data()
+inc_conf.set('RUNDIR', get_option('rundir'))
+inc_conf.set('VERSION', meson.project_version())
+
+static_hdr_files = files([
+  'attrs.h',
+  'buffer.h',
+  'isns.h',
+  'isns-proto.h',
+  'message.h',
+  'source.h',
+  'types.h',
+  'util.h'])
+
+template_hdr_name = 'paths.h'
+template_hdr_file = files('paths.h.in')
+
+configure_file(
+  input: template_hdr_file,
+  output: template_hdr_name,
+  configuration: inc_conf,
+  install: true,
+  install_dir: get_option('includedir') / 'libisns')
+
+install_headers(static_hdr_files, subdir: 'libisns')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/include/libisns/paths.h.in 
new/open-isns-0.102/include/libisns/paths.h.in
--- old/open-isns-0.101/include/libisns/paths.h.in      2021-02-01 
18:27:33.000000000 +0100
+++ new/open-isns-0.102/include/libisns/paths.h.in      2022-09-08 
20:09:47.000000000 +0200
@@ -10,7 +10,7 @@
 
 #define __OPENISNS_MKVERSION(maj, min) (((maj) << 8) + (min))
 #define OPENISNS_VERSION               __OPENISNS_MKVERSION(0, 101);
-#define OPENISNS_VERSION_STRING                "0.101"
+#define OPENISNS_VERSION_STRING                "@VERSION@"
 
 #define ISNS_ETCDIR                    "/etc/isns"
 #define ISNS_RUNDIR                    "@RUNDIR@"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/isnsadm.c 
new/open-isns-0.102/isnsadm.c
--- old/open-isns-0.101/isnsadm.c       2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/isnsadm.c       2022-09-08 20:09:47.000000000 +0200
@@ -97,7 +97,7 @@
        isns_security_t *security = NULL;
        int             c, status;
 
-       while ((c = getopt_long(argc, argv, "46Cc:d:hK:k:ls:", options, NULL)) 
!= -1) {
+       while ((c = getopt_long(argc, argv, "46Cc:d:hK:k:ls:Vr", options, 
NULL)) != -1) {
                switch (c) {
                case '4':
                        opt_af = AF_INET;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/isnsd.c new/open-isns-0.102/isnsd.c
--- old/open-isns-0.101/isnsd.c 2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/isnsd.c 2022-09-08 20:09:47.000000000 +0200
@@ -29,7 +29,8 @@
 };
 
 static const char *    opt_configfile = ISNS_DEFAULT_ISNSD_CONFIG;
-static int             opt_af = AF_UNSPEC;
+static int             opt_af = AF_INET6; // should be AF_INET6 as described 
in isnsd's manual
+
 static int             opt_mode = MODE_NORMAL;
 static int             opt_foreground = 0;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/libisns.pc 
new/open-isns-0.102/libisns.pc
--- old/open-isns-0.101/libisns.pc      1970-01-01 01:00:00.000000000 +0100
+++ new/open-isns-0.102/libisns.pc      2022-09-08 20:09:47.000000000 +0200
@@ -0,0 +1,8 @@
+includedir=/usr/include
+libdir=/usr/lib64
+
+Name: libisns
+Version: 0.102
+Description: iSNS user space library
+Libs: -L${libdir} -lisns
+Cflags: -I${includedir}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/meson.build 
new/open-isns-0.102/meson.build
--- old/open-isns-0.101/meson.build     1970-01-01 01:00:00.000000000 +0100
+++ new/open-isns-0.102/meson.build     2022-09-08 20:09:47.000000000 +0200
@@ -0,0 +1,207 @@
+# meson build for open-isns
+
+project('libisns', 'c',
+  version: '0.102',
+  meson_version: '>= 0.54.0',
+  license: 'LGPL-2.1-or-later',
+  default_options: [
+    'c_std=gnu99',
+    'warning_level=2',
+    'buildtype=release',
+    'libdir=/usr/lib64',
+    'prefix=/usr']
+  )
+
+# we will need this below
+cc = meson.get_compiler('c')
+
+# get feature options
+security_dep = dependency('libcrypto', required: get_option('security'))
+slp_dep = cc.find_library('slp', required: get_option('slp'))
+
+subdir('tests')
+subdir('doc')
+subdir('etc')
+subdir('include/libisns')
+
+lib_srcs = files([
+  'server.c',
+  'client.c',
+  'objects.c',
+  'callback.c',
+  'timer.c',
+  'vendor.c',
+  'db.c',
+  'db-file.c',
+  'db-policy.c',
+  'relation.c',
+  'scope.c',
+  'message.c',
+  'security.c',
+  'authblock.c',
+  'policy.c',
+  'pki.c',
+  'register.c',
+  'query.c',
+  'getnext.c',
+  'deregister.c',
+  'esi.c',
+  'scn.c',
+  'dd.c',
+  'entity.c',
+  'portal-group.c',
+  'storage-node.c',
+  'domain.c',
+  'simple.c',
+  'tags.c',
+  'attrs.c',
+  'export.c',
+  'socket.c',
+  'slp.c',
+  'error.c',
+  'logging.c',
+  'config.c',
+  'parser.c',
+  'buffer.c',
+  'pidfile.c',
+  'sysdep-unix.c',
+  'util.c',
+  'bitvector.c',
+  'mdebug.c'])
+
+incl_dirs = include_directories(['.', 'include'])
+
+add_project_arguments(
+  ['-D_GNU_SOURCE'],
+  language: 'c')
+
+#
+# build our config.h file
+#
+
+conf = configuration_data()
+conf.set('WITH_SECURITY', security_dep.found())
+conf.set('WITH_SLP', slp_dep.found())
+conf.set('HAVE_SLP_H', slp_dep.found())
+
+config_h = configure_file(
+  output: 'config.h',
+  configuration: conf)
+
+config_incdir = include_directories('.')
+
+config_dep = declare_dependency(
+  include_directories: config_incdir,
+  sources: config_h)
+
+#
+# build our library -- we always build either the static or
+# the shared library, or both
+#
+
+lib_deps = [config_dep, security_dep, slp_dep]
+
+shared_link_args = []
+if get_option('shared_version')
+  shared_link_args = 
'-Wl,--version-script=@0@/libisns.vers'.format(meson.current_source_dir())
+endif
+
+libisns_lib = library('isns',
+  lib_srcs,
+  include_directories: incl_dirs,
+  dependencies: lib_deps,
+  link_args: shared_link_args,
+  version: '0',
+  install: true)
+
+libisns_dep = declare_dependency(link_with: libisns_lib)
+
+#
+# build binaries
+#
+
+our_dependencies = [config_dep, security_dep, libisns_dep, slp_dep]
+
+sbin_dir = get_option('sbindir')
+
+executable('isnsd',
+  sources: files('isnsd.c'),
+  include_directories: incl_dirs,
+  dependencies: our_dependencies,
+  install: true,
+  install_dir: sbin_dir)
+
+executable('isnsdd',
+  sources: files(['isnsdd.c', 'local.c']),
+  include_directories: incl_dirs,
+  dependencies: our_dependencies,
+  install: true,
+  install_dir: sbin_dir)
+
+executable('isnsadm',
+  sources: files('isnsadm.c'),
+  include_directories: incl_dirs,
+  dependencies: our_dependencies,
+  install: true,
+  install_dir: sbin_dir)
+
+# a testing program (not installed, not currently used here)
+e = executable('bitvector',
+  sources: files('bitvector.c'),
+  include_directories: incl_dirs,
+  dependencies: our_dependencies,
+  c_args: ['-DTEST'])
+test('test bitvector', e)
+
+# build our test files ??? (FIXME: not working)
+pyunit_test_works = false
+if pyunit_test_works
+  test_progs = []
+  foreach t: tests
+    e = executable(t,
+      sources: files('tests' / t + '.c'),
+      include_directories: incl_dirs,
+      dependencies: our_dependencies)
+    test_progs += e
+  endforeach
+endif
+
+#
+# man pages
+#
+install_man([man8_pages, man5_pages])
+
+#
+# config files
+#
+install_data(config_files,
+  install_dir: get_option('sysconfdir') / 'isns')
+
+#
+# systemd service files
+#
+install_data(files(['isnsd.service', 'isnsd.socket']),
+  install_dir: get_option('systemddir') / 'system')
+
+#
+# our package file
+#
+pkg_mod = import('pkgconfig')
+pkg_mod.generate(libraries: libisns_lib,
+  version: '0',
+  name: 'libisns',
+  description: 'iSNS userspace library')
+
+#
+# public header files are installed from # include/libisns
+#
+
+#
+# lastly, create our runtime directory (empty)
+#
+# NOTE: this can be replaced with install_emptydir() once
+# the minimum requirement of Meson is bumped to >=0.60.0
+
+install_subdir('isns',
+  install_dir: '/var/lib',
+  install_mode: 'r--------')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/meson_options.txt 
new/open-isns-0.102/meson_options.txt
--- old/open-isns-0.101/meson_options.txt       1970-01-01 01:00:00.000000000 
+0100
+++ new/open-isns-0.102/meson_options.txt       2022-09-08 20:09:47.000000000 
+0200
@@ -0,0 +1,18 @@
+# meson options for open-isns
+
+# enabled security and service location protocol usage by default
+option('security', type: 'feature', value: 'auto',
+  description: 'enable security using libcrypt')
+option('slp', type: 'feature', value: 'auto',
+  description: 'enable use of Service Location Protocol')
+
+# disable shared library creation and enable static library
+# creation, by default
+option('shared_version', type: 'boolean', value: true,
+  description: 'use library versioning on the shared library')
+
+# set default locations for systemd and runtime files
+option('systemddir', type: 'string', value: '/usr/lib/systemd',
+  description: 'override systemd directory "/usr/lib/systemd"')
+option('rundir', type: 'string', value: '/var/run',
+  description: 'override runtime directory "/var/run"')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/slp.c new/open-isns-0.102/slp.c
--- old/open-isns-0.101/slp.c   2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/slp.c   2022-09-08 20:09:47.000000000 +0200
@@ -29,25 +29,26 @@
 };
 
 static void
-isns_slp_report(SLPHandle handle, SLPError err, void *cookie)
+isns_slp_report(__attribute__((unused))SLPHandle handle,
+               SLPError err, void *cookie)
 {
        *(SLPError *) cookie = err;
 }
 
 /*
  * Register a service with SLP
- */ 
+ */
 int
 isns_slp_register(const char *url)
 {
-       SLPError        err, callbackerr; 
-       SLPHandle       handle = NULL; 
+       SLPError        err, callbackerr;
+       SLPHandle       handle = NULL;
 
-       err = SLPOpen("en", SLP_FALSE, &handle); 
-       if(err != SLP_OK) { 
+       err = SLPOpen("en", SLP_FALSE, &handle);
+       if(err != SLP_OK) {
                isns_error("Unable to obtain SLP handle (err %d)\n", err);
                return 0;
-       } 
+       }
 
        err = SLPReg(handle, url, SLP_LIFETIME_MAXIMUM,
                        ISNS_SLP_SCOPE,
@@ -69,20 +70,20 @@
 
 /*
  * DeRegister a service
- */ 
+ */
 int
 isns_slp_unregister(const char *url)
 {
-       SLPError        err, callbackerr; 
-       SLPHandle       handle = NULL; 
+       SLPError        err, callbackerr;
+       SLPHandle       handle = NULL;
 
        isns_debug_general("SLP: Unregistering \"%s\"\n", url);
 
-       err = SLPOpen("en", SLP_FALSE, &handle); 
-       if(err != SLP_OK) { 
+       err = SLPOpen("en", SLP_FALSE, &handle);
+       if(err != SLP_OK) {
                isns_error("Unable to obtain SLP handle (err %d)\n", err);
                return 0;
-       } 
+       }
 
        err = SLPDereg(handle, url, isns_slp_report, &callbackerr);
 
@@ -102,9 +103,11 @@
  * Find an iSNS server through SLP
  */
 static SLPBoolean
-isns_slp_url_callback(SLPHandle handle,
-               const char *url, unsigned short lifetime,
-               SLPError err, void *cookie) 
+isns_slp_url_callback(__attribute__((unused))SLPHandle handle,
+               const char *url,
+               __attribute__((unused))unsigned short lifetime,
+               SLPError err,
+               void *cookie)
 {
        struct isns_slp_url_state *sp = cookie;
        SLPSrvURL       *parsed_url = NULL;
@@ -159,19 +162,19 @@
 isns_slp_find(void)
 {
        static struct isns_slp_url_state state;
-       SLPHandle       handle = NULL; 
-       SLPError        err; 
+       SLPHandle       handle = NULL;
+       SLPError        err;
 
        if (state.slp_url)
                return state.slp_url;
 
        isns_debug_general("Using SLP to locate iSNS server\n");
 
-       err = SLPOpen("en", SLP_FALSE, &handle); 
-       if(err != SLP_OK) { 
+       err = SLPOpen("en", SLP_FALSE, &handle);
+       if(err != SLP_OK) {
                isns_error("Unable to obtain SLP handle (err %d)\n", err);
                return NULL;
-       } 
+       }
 
        err = SLPFindSrvs(handle, ISNS_SLP_SERVICE_NAME,
                        NULL, "(protocols=isns)",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/tests/.gitignore 
new/open-isns-0.102/tests/.gitignore
--- old/open-isns-0.101/tests/.gitignore        1970-01-01 01:00:00.000000000 
+0100
+++ new/open-isns-0.102/tests/.gitignore        2022-09-08 20:09:47.000000000 
+0200
@@ -0,0 +1,2 @@
+pauw[1-4]
+*.pyc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/tests/genkey 
new/open-isns-0.102/tests/genkey
--- old/open-isns-0.101/tests/genkey    2021-02-01 18:27:33.000000000 +0100
+++ new/open-isns-0.102/tests/genkey    2022-09-08 20:09:47.000000000 +0200
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 # 
 # This is a very simple script to generate a DSA
 # key pair for authenticated iSNS.
@@ -25,7 +25,7 @@
 opt_force=0
 opt_server=0
 
-function usage {
+usage() {
        cat <<-EOF >&2
        $*
        Usage:
@@ -35,7 +35,7 @@
        exit 1
 }
 
-function make_isns_name {
+make_isns_name() {
        OFS="$IFS"
        IFS=.
        set -- $*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-isns-0.101/tests/meson.build 
new/open-isns-0.102/tests/meson.build
--- old/open-isns-0.101/tests/meson.build       1970-01-01 01:00:00.000000000 
+0100
+++ new/open-isns-0.102/tests/meson.build       2022-09-08 20:09:47.000000000 
+0200
@@ -0,0 +1,5 @@
+# meson build control file for open-isns tests
+
+tests = ['pauw1', 'pauw2', 'pauw3', 'pauw4']
+
+test_prog = find_program('test-isns.py')

Reply via email to