SHA256
1
0
forked from pool/open-iscsi
open-iscsi/open-iscsi.spec
Lee Duncan 2720b71583 Accepting request 232234 from home:lee_duncan:branches:network
- Updated Factory to match latest upstream code base,
  including changse to open-iscsi and iscsiuio. These changes
  include bug fixes as well as systemd integration for
  open-iscsi.
- Added two not-yet-upstream patches for iscsiuio/systemd activation
  from Chris Leech (bnc#869567):
    iscsiuio-systemd-socket-activation-support.patch
    iscsiuio-systemd-unit-files.patch
  Updated spec file to handle install/package of new files.
- Added an upstream patch from Mike Christie (bnc#869356):
  iscsi-tools-set-non-negotiated-params-early

   iscsid: Fix handling of iscsi async events.
   When iscsi targets send 32 or more iscsi async event pdus the
   initiator will run out of memory for events and this message:
   BUG: iscsid: Can not allocate memory for receive context.
   will be logged non stop. iscsid will then not be able to
   complate any more requests because it is stuck in a endless loop
   printing that message.
   This fixes the problem by having iscsid handle an event after it
   has read it in from netlink or the mgmt ipc. Previously we would
   queue all events then handle them.
- Updated systemd unit files (bnc#847953)
- Split iscsiuio out as separate package
   (part of bnc#858972)
- Ported Hannes' open-isns changes fro SLE12, setting up
  open-isns as a separate sub-package and integrating it
  with open-iscsi

OBS-URL: https://build.opensuse.org/request/show/232234
OBS-URL: https://build.opensuse.org/package/show/network/open-iscsi?expand=0&rev=34
2014-04-30 17:04:50 +00:00

292 lines
8.2 KiB
RPMSpec

#
# spec file for package open-iscsi
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
Name: open-iscsi
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: db-devel
BuildRequires: flex
BuildRequires: libtool
BuildRequires: make
BuildRequires: openssl-devel
%if 0%{?suse_version} >= 1230
BuildRequires: systemd
%endif
Url: http://www.open-iscsi.org
PreReq: %fillup_prereq %insserv_prereq
Version: 2.0.873
Release: 0
%{?systemd_requires}
Recommends: logrotate
%define iscsi_release 873
Summary: Linux* Open-iSCSI Software Initiator
License: GPL-2.0+
Group: Productivity/Networking/Other
Source: %{name}-2.0-%{iscsi_release}.tar.bz2
Patch1: %{name}-Factory-latest.diff.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Open-iSCSI is a high-performance, transport independent, multi-platform
implementation of RFC3720 iSCSI.
Open-iSCSI is partitioned into user and kernel parts.
The kernel portion of Open-iSCSI is a from-scratch code licensed under
GPL. The kernel part implements iSCSI data path (that is, iSCSI Read
and iSCSI Write), and consists of two loadable modules: iscsi_if.ko and
iscsi_tcp.ko.
User space contains the entire control plane: configuration manager,
iSCSI Discovery, Login and Logout processing, connection-level error
processing, Nop-In and Nop-Out handling, and (in the future:) Text
processing, iSNS, SLP, Radius, etc.
The user space Open-iSCSI consists of a daemon process called iscsid,
and a management utility iscsiadm.
Authors:
--------
open-iscsi@googlegroups.com
%package -n open-isns
Summary: Linux iSNS server
Group: Productivity/Networking/Other
Version: 0.90
Release: 0
Obsoletes: isns <= 2.1.02
Provides: isns = 2.1.03
%description -n open-isns
This is a partial implementation of iSNS, according to RFC4171.
The implementation is still somewhat incomplete, but I am releasing
it for your reading pleasure.
Authors:
--------
Olaf Kirch <okir@suse.de>
%package -n iscsiuio
Summary: Linux Broadcom NetXtremem II iscsi server
Group: Productivity/Networking/Other
Version: 0.7.8.2
Release: 0
%description -n iscsiuio
This tool is to be used in conjunction with the Broadcom NetXtreme II Linux
driver (Kernel module name: 'bnx2' and 'bnx2x'), Broadcom CNIC driver,
and the Broadcom iSCSI driver (Kernel module name: 'bnx2i').
This user space tool is used in conjunction with the following
Broadcom Network Controllers:
bnx2: BCM5706, BCM5708, BCM5709 devices
bnx2x: BCM57710, BCM57711, BCM57711E, BCM57712, BCM57712E,
BCM57800, BCM57810, BCM57840 devices
This utility will provide the ARP and DHCP functionality for the iSCSI offload.
The communication to the driver is done via Userspace I/O (Kernel module name
'uio').
Authors:
--------
Eddie Wai <eddie.wai@broadcom.com>
Benjamin Li <benli@broadcom.com>
%prep
%setup -n %{name}-2.0-%{iscsi_release}
%patch1 -p1
%build
%{__make} OPTFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing -DOFFLOAD_BOOT_SUPPORTED -DLOCK_DIR=\\\"/etc/iscsi\\\"" LDFLAGS="" user
%{__make} OPTFLAGS="${RPM_OPT_FLAGS}" -C utils/open-isns programs
cd iscsiuio
touch NEWS
touch AUTHORS
autoreconf --install
%configure --sbindir=/sbin
make CFLAGS="${RPM_OPT_FLAGS}"
%install
make DESTDIR=${RPM_BUILD_ROOT} install_user
make DESTDIR=${RPM_BUILD_ROOT} install_mkinitrd_suse
# install service files
%if 0%{?suse_version} >= 1230
make DESTDIR=${RPM_BUILD_ROOT} install_service_suse
%else
make DESTDIR=${RPM_BUILD_ROOT} install_initd_suse
# rename open-iscsi service to iscsid for openSUSE
mv ${RPM_BUILD_ROOT}/etc/init.d/boot.open-iscsi \
${RPM_BUILD_ROOT}/etc/init.d/boot.iscsid-early
mv ${RPM_BUILD_ROOT}/etc/init.d/open-iscsi \
${RPM_BUILD_ROOT}/etc/init.d/iscsid
# create rc shortcut
[ -d ${RPM_BUILD_ROOT}/usr/sbin ] || mkdir -p ${RPM_BUILD_ROOT}/usr/sbin
ln -sf ../../etc/init.d/iscsid ${RPM_BUILD_ROOT}/usr/sbin/rciscsid
%endif
(cd ${RPM_BUILD_ROOT}/etc; ln -sf iscsi/iscsid.conf iscsid.conf)
touch ${RPM_BUILD_ROOT}/etc/iscsi/initiatorname.iscsi
install -m 0755 usr/iscsistart %{buildroot}/sbin
make DESTDIR=${RPM_BUILD_ROOT} -C utils/open-isns install
%if 0%{?suse_version} >= 1230
make DESTDIR=${RPM_BUILD_ROOT} -C utils/open-isns install_service
%endif
make DESTDIR=${RPM_BUILD_ROOT} -C iscsiuio install
%clean
[ "${RPM_BUILD_ROOT}" != "/" -a -d ${RPM_BUILD_ROOT} ] && rm -rf ${RPM_BUILD_ROOT}
%post
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
if [ ! -f /etc/iscsi/initiatorname.iscsi ] ; then
/sbin/iscsi-gen-initiatorname
fi
%if 0%{?suse_version} >= 1230
%{service_add_post iscsid.socket iscsid.service iscsi.service}
%else
%{fillup_and_insserv -Y boot.iscsid-early}
%endif
%postun
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
%if 0%{?suse_version} >= 1230
%{service_del_postun iscsid.socket iscsid.service iscsi.service}
%else
%{insserv_cleanup}
%endif
%pre
%if 0%{?suse_version} >= 1230
%{service_add_pre iscsid.socket iscsid.service iscsi.service}
%endif
%preun
%{stop_on_removal iscsid}
%if 0%{?suse_version} >= 1230
%{service_del_preun iscsid.socket iscsid.service iscsi.service}
%endif
%post -n open-isns
%if 0%{?suse_version} >= 1230
%{service_add_post isnsd.socket isnsd.service}
%endif
%postun -n open-isns
%if 0%{?suse_version} >= 1230
%{service_add_post isnsd.socket isnsd.service}
%endif
%pre -n open-isns
%if 0%{?suse_version} >= 1230
%{service_add_pre isnsd.socket isnsd.service}
%endif
%preun -n open-isns
%{stop_on_removal isnsd isnsdd}
%if 0%{?suse_version} >= 1230
%{service_del_preun isnsd.socket isnsd.service}
%endif
%post -n iscsiuio
%if 0%{?suse_version} >= 1230
%{service_add_post iscsiuio.socket iscsiuio.service}
%endif
%postun -n iscsiuio
%if 0%{?suse_version} >= 1230
%{service_add_post iscsiuio.socket iscsiuio.service}
%endif
%pre -n iscsiuio
%if 0%{?suse_version} >= 1230
%{service_add_pre iscsiuio.socket iscsiuio.service}
%endif
%preun -n iscsiuio
%{stop_on_removal isnsd isnsdd}
%if 0%{?suse_version} >= 1230
%{service_del_preun iscsiuio.socket iscsiuio.service}
%endif
%files
%defattr(-,root,root)
%dir /etc/iscsi
%attr(0600,root,root) %config(noreplace) /etc/iscsi/iscsid.conf
%ghost /etc/iscsi/initiatorname.iscsi
%dir /etc/iscsi/ifaces
%config /etc/iscsi/ifaces/iface.example
/etc/iscsid.conf
%if 0%{?suse_version} >= 1230
%{_unitdir}/iscsid.service
%{_unitdir}/iscsid.socket
%{_unitdir}/iscsi.service
%else
%config /etc/init.d/iscsid
%config /etc/init.d/boot.iscsid-early
/usr/sbin/rciscsid
%endif
/sbin/iscsid
/sbin/iscsiadm
/sbin/iscsi-iname
/sbin/iscsistart
/sbin/iscsi-gen-initiatorname
/sbin/iscsi_offload
/sbin/iscsi_discovery
%dir /lib/mkinitrd
%dir /lib/mkinitrd/scripts
/lib/mkinitrd/scripts/setup-iscsi.sh
/lib/mkinitrd/scripts/boot-iscsi.sh
/lib/mkinitrd/scripts/boot-killiscsi.sh
%doc COPYING README
%doc %{_mandir}/man8/iscsiadm.8.gz
%doc %{_mandir}/man8/iscsid.8.gz
%doc %{_mandir}/man8/iscsi_discovery.8.gz
%doc %{_mandir}/man8/iscsistart.8.gz
%doc %{_mandir}/man8/iscsi-iname.8.gz
%files -n open-isns
%defattr(-,root,root)
%dir /etc/isns
%attr(0600,root,root) %config(noreplace) /etc/isns/isnsd.conf
%attr(0600,root,root) %config(noreplace) /etc/isns/isnsdd.conf
%if 0%{?suse_version} >= 1230
%{_unitdir}/isnsd.service
%{_unitdir}/isnsd.socket
%endif
/usr/sbin/isnsd
/usr/sbin/isnsdd
/usr/sbin/isnsadm
%doc %{_mandir}/man8/isnsadm.8.gz
%doc %{_mandir}/man8/isnsd.8.gz
%doc %{_mandir}/man8/isnsdd.8.gz
%doc %{_mandir}/man5/isns_config.5.gz
%files -n iscsiuio
%defattr(-,root,root)
/sbin/iscsiuio
/sbin/brcm_iscsiuio
%doc %{_mandir}/man8/iscsiuio.8.gz
%config /etc/logrotate.d/iscsiuiolog
%if 0%{?suse_version} >= 1230
%{_unitdir}/iscsiuio.service
%{_unitdir}/iscsiuio.socket
%endif
%changelog