From b3b5938ba0288b24cc49e49cbe5a9664cf877893733f0df3692012cea9553c4d Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Mon, 6 Nov 2017 15:16:39 +0000 Subject: [PATCH] Accepting request 539327 from home:mwilck:branches:Base:System - added sample code for libmpathpersist (bsc#1066376) * added libmpathpersist-example.c - multipath-tools.spec: package libmultipath.so symlink in -devel package (bsc#1066376). We *do not* package header files for libmultipath, as the APIs are not public. OBS-URL: https://build.opensuse.org/request/show/539327 OBS-URL: https://build.opensuse.org/package/show/Base:System/multipath-tools?expand=0&rev=141 --- libmpathpersist-example.c | 41 +++++++++++++++++++++++++++++++++++++++ multipath-tools.changes | 9 +++++++++ multipath-tools.spec | 5 ++++- 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 libmpathpersist-example.c diff --git a/libmpathpersist-example.c b/libmpathpersist-example.c new file mode 100644 index 0000000..19968e4 --- /dev/null +++ b/libmpathpersist-example.c @@ -0,0 +1,41 @@ +/* + * This is a minimal skeleton for code using libmpathpersist. + * Compile with "-lmpathpersist -lmultipath -ludev". + * + * Header files for libmultipath are intentionally not included + * in the multipath-tools-devel package, because libmultipath has + * no well defined API for external programs at this time. + */ + +#include +#include + +struct udev *udev; +/* + * logsink determines where libmultipath log messages go + * 1 - log to syslog only + * -1 - log to syslog and stderr + * 0 - log to syslog and stderr, with timestamps + */ +int logsink; + +static struct config *conf; + +struct config *get_multipath_config(void) { + return conf; +} + +void put_multipath_config(struct config* c) +{ +} + +int main(void) +{ + udev = udev_new(); + conf = mpath_lib_init(); + if(!conf) { + udev_unref(udev); + return 1; + } + return 0; +} diff --git a/multipath-tools.changes b/multipath-tools.changes index 16b6551..dd98514 100644 --- a/multipath-tools.changes +++ b/multipath-tools.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Nov 6 14:46:03 UTC 2017 - mwilck@suse.com + +- added sample code for libmpathpersist (bsc#1066376) + * added libmpathpersist-example.c +- multipath-tools.spec: package libmultipath.so symlink in -devel + package (bsc#1066376). We *do not* package header files for + libmultipath, as the APIs are not public. + ------------------------------------------------------------------- Fri Nov 3 09:57:57 UTC 2017 - mwilck@suse.com diff --git a/multipath-tools.spec b/multipath-tools.spec index 8170c65..1074c1b 100644 --- a/multipath-tools.spec +++ b/multipath-tools.spec @@ -108,6 +108,7 @@ Source1: multipath.conf Source2: dont-del-part-nodes.rules # Dracut conf file to make sure 11-dm-parts.rules is included in initrd Source3: dm-parts.conf +Source4: libmpathpersist-example.c BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} BuildRequires: device-mapper-devel @@ -201,6 +202,7 @@ This package provides development files and documentation for libdmmp. %prep %setup -q -n multipath-tools-%{version} +cp %{SOURCE4} . %build [ -n "$SOURCE_DATE_EPOCH" ] && export KBUILD_BUILD_TIMESTAMP=@$SOURCE_DATE_EPOCH @@ -209,7 +211,6 @@ make CC="%__cc" OPTFLAGS="%{optflags}" %{dirflags} %{makeflags} %install make DESTDIR=%{buildroot} %{dirflags} %{makeflags} install mkdir -p %{buildroot}/var/cache/multipath/ -rm %{buildroot}/%_lib/libmultipath.so mkdir -p %{buildroot}/usr/sbin ln -sf /usr/sbin/service %{buildroot}/usr/sbin/rcmultipathd mkdir -p %{buildroot}/usr/lib/modules-load.d @@ -275,11 +276,13 @@ exit 0 %files devel %defattr(-,root,root) +/%{_lib}/libmultipath.so /%{_lib}/libmpathcmd.so /%{_lib}/libmpathpersist.so /usr/include/mpath_cmd.h /usr/include/mpath_persist.h %{_mandir}/man3/mpath_persistent_* +%doc libmpathpersist-example.c %files -n kpartx %defattr(-,root,root)