open-isns/open-isns.spec

126 lines
3.7 KiB
RPMSpec
Raw Normal View History

#
# spec file for package open-isns
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: open-isns
Summary: Partial Implementation of iSNS iSCSI registration
License: LGPL-2.1-or-later
Group: System/Kernel
Version: 0.100
Release: 0
Source: %{name}-%{version}.tar.xz
Accepting request 769144 from home:lee_duncan:branches:Base:System - Update to version 0.100: * Updated ChangeLog with latest fixes * Create and use pythong unittest framework * Ignore SO lib * Handle restarting test harness server correctly * Fix mdebug.c so it compiles when enabled. * Running make twice should not rebuild everything * Change isns_portal_string() to use static mem * Adding python compiled files * fixed issues with old openssl usage * Added debugging, moved .cvsignore to .gitignore * Preparing for version v0.100 * Fix problem with parsing IPv6 Addresses with brakcets. * General cleanup for the compiler. * Travis-CI and Coverity Scan setup * openssl: handle newer version with ifdefs * Remove old compiler option, and add "-Werror". * Change isns_portal_string() to return allocated string. * add tags to ignored list of files * Fix compiler complaint about possible alignment issue Replacing open-isns-0.99.tar.xz with open-isns-0.100.tar.xz. Also, added latest (not yet tagged) fixes from upstream, adding patch: * open-isns-updates.diff.bz2 - Updated SPEC file %_lto_cflags definition so that it does not cause recursion. - Move back "%global _lto_cflags ..." line as it's needed for the following error: E: lto-no-text-in-archive (Badness: 10000) /usr/lib64/libisns.a. The recursion in macro was caused by fact that the macro was not defined for some time in prjconfig. - Had to address build issue in OBS, resulting in this package not building, with message (folding done by me): + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature \ --define '_build_create_debug 1' \ --define 'disturl obs://build.opensuse.org/Base:System/openSUSE_Factory/93a92c971e76cbf08ebb7afd9a4de7be-open-isns' \ /home/abuild/rpmbuild/SOURCES/open-isns.spec error: /home/abuild/rpmbuild/SOURCES/open-isns.spec: \ line 63: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. Line 63 was the "%configure" call, but I believe recursion is caused by redefinition of _lto_cflags. To fix this, I reverted the "Use FAT LTO ..." commit, removing the "%global _lto_cflags ..." line. - removal of SuSEfirewall2 service, since SuSEfirewall2 has been replaced by firewalld, see [1]. [1]: https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html - Use FAT LTO objects in order to provide proper static library (boo#1133271). - Update to version 0.99: * Update version to v0.99, and fill in ChangeLog * util.h: endian.h is available on musl on linux * Added README info about testing without security. * Support building/testing for with-security=no * Define 'free()' for isns_free() * Fix error with SCN Deregister when not registered. * Cleanup: reformat and add some print statements. * Fix error with type of node in GetNext test. * Add testing information to the README. Which replaced open-isns-0.98.tar.gz with open-isns-0.99.tar.xz Also added the _service* files to manage updates. - Update from version 0.97 to 0.98, which includes some testing and openssl fixes, updating the SPEC file and replacing the release tarball (bsc#1056696) - Fix RPM groups. Replace %__-type macro indirections and old $RPM shell variables. - Updated to version 0.97, replacing main tarball - Updated to version 0.96, replacing main tarball, and removing both patches: D open-isns-Update-GPL-license-information.patch D open-isns-Install-isns_config.5.patch - Updated SPEC file dependencies so early install works (bsc#958567) - Updated COPYING and README files for updated GNU license, adding: open-isns-Update-GPL-license-information.patch - Updated spec file to install hdrs and library file - Also must install isns_config.5, added upstream patch: open-isns-open-isns-Install-isns_config.5.patch - Initial creation of Build Service project, using version 0.95 of open-isns from github.com/gonzoleeman/open-isns OBS-URL: https://build.opensuse.org/request/show/769144 OBS-URL: https://build.opensuse.org/package/show/Base:System/open-isns?expand=0&rev=28
2020-01-31 23:37:03 +01:00
Patch1: %{name}-updates.diff.bz2
URL: https://github.com/open-iscsi/%{name}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: glibc-devel
BuildRequires: make
BuildRequires: openssl-devel
BuildRequires: systemd-rpm-macros
%{?systemd_requires}
Requires: coreutils
Recommends: open-iscsi
%description
This is a partial implementation of the iSNS protocol (see below),
which supplies directory services for iSCSI initiators and targets.
The iSNS protocol is specified in
[RFC 4171](http://tools.ietf.org/html/rfc4171) and its purpose is to
make easier to discover, manage, and configure iSCSI devices. With
iSNS, iSCSI targets can be registered to a central iSNS server and
initiators can be configured to discover the targets by asking the
iSNS server.
%package -n open-isns-devel
Summary: Development files for open-isns
Group: Development/Libraries/C and C++
Requires: open-isns = %{version}
%description -n open-isns-devel
Files to develop an application using the open-isns library.
%prep
%setup -n %{name}-%{version}
Accepting request 769144 from home:lee_duncan:branches:Base:System - Update to version 0.100: * Updated ChangeLog with latest fixes * Create and use pythong unittest framework * Ignore SO lib * Handle restarting test harness server correctly * Fix mdebug.c so it compiles when enabled. * Running make twice should not rebuild everything * Change isns_portal_string() to use static mem * Adding python compiled files * fixed issues with old openssl usage * Added debugging, moved .cvsignore to .gitignore * Preparing for version v0.100 * Fix problem with parsing IPv6 Addresses with brakcets. * General cleanup for the compiler. * Travis-CI and Coverity Scan setup * openssl: handle newer version with ifdefs * Remove old compiler option, and add "-Werror". * Change isns_portal_string() to return allocated string. * add tags to ignored list of files * Fix compiler complaint about possible alignment issue Replacing open-isns-0.99.tar.xz with open-isns-0.100.tar.xz. Also, added latest (not yet tagged) fixes from upstream, adding patch: * open-isns-updates.diff.bz2 - Updated SPEC file %_lto_cflags definition so that it does not cause recursion. - Move back "%global _lto_cflags ..." line as it's needed for the following error: E: lto-no-text-in-archive (Badness: 10000) /usr/lib64/libisns.a. The recursion in macro was caused by fact that the macro was not defined for some time in prjconfig. - Had to address build issue in OBS, resulting in this package not building, with message (folding done by me): + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature \ --define '_build_create_debug 1' \ --define 'disturl obs://build.opensuse.org/Base:System/openSUSE_Factory/93a92c971e76cbf08ebb7afd9a4de7be-open-isns' \ /home/abuild/rpmbuild/SOURCES/open-isns.spec error: /home/abuild/rpmbuild/SOURCES/open-isns.spec: \ line 63: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration. Line 63 was the "%configure" call, but I believe recursion is caused by redefinition of _lto_cflags. To fix this, I reverted the "Use FAT LTO ..." commit, removing the "%global _lto_cflags ..." line. - removal of SuSEfirewall2 service, since SuSEfirewall2 has been replaced by firewalld, see [1]. [1]: https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html - Use FAT LTO objects in order to provide proper static library (boo#1133271). - Update to version 0.99: * Update version to v0.99, and fill in ChangeLog * util.h: endian.h is available on musl on linux * Added README info about testing without security. * Support building/testing for with-security=no * Define 'free()' for isns_free() * Fix error with SCN Deregister when not registered. * Cleanup: reformat and add some print statements. * Fix error with type of node in GetNext test. * Add testing information to the README. Which replaced open-isns-0.98.tar.gz with open-isns-0.99.tar.xz Also added the _service* files to manage updates. - Update from version 0.97 to 0.98, which includes some testing and openssl fixes, updating the SPEC file and replacing the release tarball (bsc#1056696) - Fix RPM groups. Replace %__-type macro indirections and old $RPM shell variables. - Updated to version 0.97, replacing main tarball - Updated to version 0.96, replacing main tarball, and removing both patches: D open-isns-Update-GPL-license-information.patch D open-isns-Install-isns_config.5.patch - Updated SPEC file dependencies so early install works (bsc#958567) - Updated COPYING and README files for updated GNU license, adding: open-isns-Update-GPL-license-information.patch - Updated spec file to install hdrs and library file - Also must install isns_config.5, added upstream patch: open-isns-open-isns-Install-isns_config.5.patch - Initial creation of Build Service project, using version 0.95 of open-isns from github.com/gonzoleeman/open-isns OBS-URL: https://build.opensuse.org/request/show/769144 OBS-URL: https://build.opensuse.org/package/show/Base:System/open-isns?expand=0&rev=28
2020-01-31 23:37:03 +01:00
%patch1 -p1
%build
%global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
autoconf
autoheader
%configure --prefix=%{_prefix} --with-security
make OPTFLAGS="%{optflags}"
%install
make DESTDIR="%{buildroot}" install
if [ ! -d "%{buildroot}/usr/sbin" ] ; then
mkdir -p %{buildroot}/usr/sbin
fi
ln -sf /usr/sbin/service %{buildroot}/usr/sbin/rcisnsd
make DESTDIR="%{buildroot}" install_hdrs install_lib
install -m 755 isnssetup %{buildroot}%{_sbindir}
%post
%{service_add_post isnsd.socket isnsd.service}
%postun
%{service_del_postun isnsd.socket isnsd.service}
%pre
%{service_add_pre isnsd.socket isnsd.service}
%preun
%{service_del_preun isnsd.socket isnsd.service}
%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
%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/isns/isnsdd.conf
%{_sbindir}/rcisnsd
%license COPYING
%doc HACKING README TODO
%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
%files -n open-isns-devel
%defattr(-,root,root)
%dir %{_includedir}/libisns
%{_includedir}/libisns/attrs.h
%{_includedir}/libisns/buffer.h
%{_includedir}/libisns/isns.h
%{_includedir}/libisns/isns-proto.h
%{_includedir}/libisns/message.h
%{_includedir}/libisns/paths.h
%{_includedir}/libisns/source.h
%{_includedir}/libisns/types.h
%{_includedir}/libisns/util.h
%{_libdir}/libisns.a
%changelog