Accepting request 332205 from Base:System

1

OBS-URL: https://build.opensuse.org/request/show/332205
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/tgt?expand=0&rev=30
This commit is contained in:
Stephan Kulow 2015-09-24 04:14:36 +00:00 committed by Git OBS Bridge
commit a234b2f0e3
5 changed files with 49 additions and 597 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b9fe39a990047ea015ab19a4b2eeb82d6e3f62c0b82ea067a0c22187c01a8e8a
size 235415

View File

@ -1,555 +0,0 @@
diff --git a/doc/README.rbd b/doc/README.rbd
index 274cc4d..18aeceb 100644
--- a/doc/README.rbd
+++ b/doc/README.rbd
@@ -43,7 +43,13 @@ something like "tgt" so that the name of the ceph client is
for the tgt client compared to others, and sets the default log path, etc.
See the Ceph documentation regarding client names.
-To specify both options, separate them with ';', and since you are,
+cluster=<cluster name>
+
+This sets the Ceph cluster name, if you have multiple clusters or
+if your cluster name is anything other than "ceph".
+This is in turn used by librados to find the conf file and key files.
+
+To specify multiple options, separate them with ';', and since you are,
make sure to quote the option string to protect the semicolon from
the shell:
diff --git a/usr/bs_rbd.c b/usr/bs_rbd.c
index 3ea9d36..3a052ed 100644
--- a/usr/bs_rbd.c
+++ b/usr/bs_rbd.c
@@ -480,6 +480,9 @@ static char *slurp_to_semi(char **p)
strncpy(ret, *p, len);
ret[len] = '\0';
*p = end;
+ /* Jump past the semicolon, if we stopped at one */
+ if (**p == ';')
+ *p = end + 1;
return ret;
}
@@ -514,17 +517,21 @@ static tgtadm_err bs_rbd_init(struct scsi_lu *lu, char *bsopts)
struct active_rbd *rbd = RBDP(lu);
char *confname = NULL;
char *clientid = NULL;
+ char *clustername = NULL;
+ char clientid_full[128];
char *ignore = NULL;
dprintf("bs_rbd_init bsopts: \"%s\"\n", bsopts);
- // look for conf= or id=
+ // look for conf= or id= or cluster=
while (bsopts && strlen(bsopts)) {
if (is_opt("conf", bsopts))
confname = slurp_value(&bsopts);
else if (is_opt("id", bsopts))
clientid = slurp_value(&bsopts);
+ else if (is_opt("cluster", bsopts))
+ clustername = slurp_value(&bsopts);
else {
ignore = slurp_to_semi(&bsopts);
eprintf("bs_rbd: ignoring unknown option \"%s\"\n",
@@ -538,10 +545,27 @@ static tgtadm_err bs_rbd_init(struct scsi_lu *lu, char *bsopts)
eprintf("bs_rbd_init: clientid %s\n", clientid);
if (confname)
eprintf("bs_rbd_init: confname %s\n", confname);
+ if (clustername)
+ eprintf("bs_rbd_init: clustername %s\n", clustername);
eprintf("bs_rbd_init bsopts=%s\n", bsopts);
- /* clientid may be set by -i/--id */
- rados_ret = rados_create(&rbd->cluster, clientid);
+ /*
+ * clientid may be set by -i/--id. If clustername is set, then
+ * we use rados_create2, else rados_create
+ */
+ if (clustername) {
+ /* rados_create2 wants the full client name */
+ if (clientid)
+ snprintf(clientid_full, sizeof clientid_full,
+ "client.%s", clientid);
+ else /* if not specified, default to client.admin */
+ snprintf(clientid_full, sizeof clientid_full,
+ "client.admin");
+ rados_ret = rados_create2(&rbd->cluster, clustername,
+ clientid_full, 0);
+ } else {
+ rados_ret = rados_create(&rbd->cluster, clientid);
+ }
if (rados_ret < 0) {
eprintf("bs_rbd_init: rados_create: %d\n", rados_ret);
return ret;
diff --git a/usr/iscsi/conn.c b/usr/iscsi/conn.c
index bb18ac0..4cef6fd 100644
--- a/usr/iscsi/conn.c
+++ b/usr/iscsi/conn.c
@@ -100,13 +100,13 @@ void conn_close(struct iscsi_connection *conn)
eprintf("failed to close a connection, %p %u %s\n",
conn, conn->refcount, strerror(errno));
else
- eprintf("connection closed, %p %u\n", conn, conn->refcount);
+ dprintf("connection closed, %p %u\n", conn, conn->refcount);
/* may not have been in FFP yet */
if (!conn->session)
goto done;
- eprintf("session %p %d\n", conn->session, conn->session->refcount);
+ dprintf("session %p %d\n", conn->session, conn->session->refcount);
/*
* We just closed the ep so we are not going to send/recv anything.
diff --git a/usr/iscsi/iser_text.c b/usr/iscsi/iser_text.c
index 08cdfe5..16520cb 100644
--- a/usr/iscsi/iser_text.c
+++ b/usr/iscsi/iser_text.c
@@ -832,6 +832,7 @@ static void iser_text_scan(struct iscsi_connection *iscsi_conn,
struct sockaddr_storage ss;
socklen_t slen, blen;
char *p, buf[NI_MAXHOST + 128];
+ int port;
if (value[0] == 0)
continue;
@@ -857,7 +858,14 @@ static void iser_text_scan(struct iscsi_connection *iscsi_conn,
if (ss.ss_family == AF_INET6)
*p++ = ']';
- sprintf(p, ":%d,1", ISCSI_LISTEN_PORT);
+ if (ss.ss_family == AF_INET6)
+ port = ntohs(((struct sockaddr_in6 *)
+ &ss)->sin6_port);
+ else
+ port = ntohs(((struct sockaddr_in *)
+ &ss)->sin_port);
+
+ sprintf(p, ":%d,1", port);
iser_target_list_build(iscsi_conn, tx_pdu, buf,
strcmp(value, "All") ? value : NULL);
} else
diff --git a/usr/iscsi/session.c b/usr/iscsi/session.c
index 98c0949..22638e7 100644
--- a/usr/iscsi/session.c
+++ b/usr/iscsi/session.c
@@ -106,8 +106,7 @@ int session_create(struct iscsi_connection *conn)
session->info = zalloc(1024);
if (!session->info) {
free(session->initiator);
- if (session->initiator_alias)
- free(session->initiator_alias);
+ free(session->initiator_alias);
free(session);
return -ENOMEM;
}
@@ -124,6 +123,7 @@ int session_create(struct iscsi_connection *conn)
err = it_nexus_create(target->tid, tsih, 0, session->info);
if (err) {
free(session->initiator);
+ free(session->initiator_alias);
free(session->info);
free(session);
return err;
@@ -174,6 +174,7 @@ static void session_destroy(struct iscsi_session *session)
list_del(&session->hlist);
free(session->initiator);
+ free(session->initiator_alias);
free(session->info);
free(session);
}
diff --git a/usr/scsi.c b/usr/scsi.c
index d7c0095..4eccf13 100644
--- a/usr/scsi.c
+++ b/usr/scsi.c
@@ -59,164 +59,184 @@ int get_scsi_cdb_size(struct scsi_cmd *cmd)
const unsigned char *get_scsi_cdb_usage_data(unsigned char op, unsigned char sa)
{
static const unsigned char usage[16];
+ unsigned char *buf = NULL;
- static const unsigned char allow_medium_removal[] = {
+ static unsigned char allow_medium_removal[] = {
0xff, 0x00, 0x00, 0x00, 0x03, 0x07};
- static const unsigned char send_diagnostics[] = {
+ static unsigned char send_diagnostics[] = {
0xff, 0xff, 0x00, 0xff, 0xff, 0x07};
- static const unsigned char start_stop[] = {
+ static unsigned char start_stop[] = {
0xff, 0x01, 0x00, 0x0f, 0xf7, 0x07};
- static const unsigned char mode_sense[] = {
+ static unsigned char mode_sense[] = {
0xff, 0x08, 0xff, 0xff, 0xff, 0x07};
- static const unsigned char mode_select[] = {
+ static unsigned char mode_select[] = {
0xff, 0x11, 0x00, 0x00, 0xff, 0x07};
- static const unsigned char reserve_release[] = {
+ static unsigned char reserve_release[] = {
0xff, 0x00, 0x00, 0x00, 0x00, 0x07};
- static const unsigned char inquiry[] = {
+ static unsigned char inquiry[] = {
0xff, 0x01, 0xff, 0xff, 0xff, 0x07};
- static const unsigned char read_write_6[] = {
+ static unsigned char read_write_6[] = {
0xff, 0x1f, 0xff, 0xff, 0xff, 0x07};
- static const unsigned char format_unit[] = {
+ static unsigned char format_unit[] = {
0xff, 0xff, 0x00, 0x00, 0x00, 0x07};
- static const unsigned char request_sense[] = {
+ static unsigned char request_sense[] = {
0xff, 0x01, 0x00, 0x00, 0xff, 0x07};
- static const unsigned char test_unit_ready[] = {
+ static unsigned char test_unit_ready[] = {
0xff, 0x00, 0x00, 0x00, 0x00, 0x07};
-
- static const unsigned char persistent_reserve_in[] = {
+ static unsigned char persistent_reserve_in[] = {
0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char persistent_reserve_out[] = {
+ static unsigned char persistent_reserve_out[] = {
0xff, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0x07};
- static const unsigned char mode_sense_10[] = {
+ static unsigned char mode_sense_10[] = {
0xff, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char mode_select_10[] = {
+ static unsigned char mode_select_10[] = {
0xff, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char unmap[] = {
+ static unsigned char unmap[] = {
0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char write_same_10[] = {
+ static unsigned char write_same_10[] = {
0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char pre_fetch_10[] = {
+ static unsigned char pre_fetch_10[] = {
0xff, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char synchronize_cache_10[] = {
+ static unsigned char synchronize_cache_10[] = {
0xff, 0x06, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char verify_10[] = {
+ static unsigned char verify_10[] = {
0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char write_10[] = {
+ static unsigned char write_10[] = {
0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char read_10[] = {
+ static unsigned char read_10[] = {
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
0xff, 0x07};
- static const unsigned char read_capacity[] = {
+ static unsigned char read_capacity[] = {
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07};
-
- static const unsigned char verify_12[] = {
+ static unsigned char verify_12[] = {
0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0x07};
- static const unsigned char write_12[] = {
+ static unsigned char write_12[] = {
0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0x07};
- static const unsigned char read_12[] = {
+ static unsigned char read_12[] = {
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0x07};
- static const unsigned char rep_sup_opcodes[] = {
+ static unsigned char rep_sup_opcodes[] = {
0xff, 0x1f, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0x07};
- static const unsigned char report_luns[] = {
+ static unsigned char report_luns[] = {
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0xff, 0x00, 0x07};
-
- static const unsigned char get_lba_status[] = {
+ static unsigned char get_lba_status[] = {
0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07};
- static const unsigned char read_capacity_16[] = {
+ static unsigned char read_capacity_16[] = {
0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07};
- static const unsigned char write_same_16[] = {
+ static unsigned char write_same_16[] = {
0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07};
- static const unsigned char synchronize_cache_16[] = {
+ static unsigned char synchronize_cache_16[] = {
0xff, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07};
- static const unsigned char pre_fetch_16[] = {
+ static unsigned char pre_fetch_16[] = {
0xff, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07};
- static const unsigned char verify_16[] = {
+ static unsigned char verify_16[] = {
0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07};
- static const unsigned char orwrite_16[] = {
+ static unsigned char orwrite_16[] = {
0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07};
- static const unsigned char compare_and_write[] = {
+ static unsigned char compare_and_write[] = {
0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x07};
- static const unsigned char read_16[] = {
+ static unsigned char read_16[] = {
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07};
switch (op) {
case TEST_UNIT_READY:
- return test_unit_ready;
+ buf = test_unit_ready;
+ break;
case REQUEST_SENSE:
- return request_sense;
+ buf = request_sense;
+ break;
case FORMAT_UNIT:
- return format_unit;
+ buf = format_unit;
+ break;
case READ_6:
case WRITE_6:
- return read_write_6;
+ buf = read_write_6;
+ break;
case INQUIRY:
- return inquiry;
+ buf = inquiry;
+ break;
case MODE_SELECT:
- return mode_select;
+ buf = mode_select;
+ break;
case RELEASE:
case RESERVE:
- return reserve_release;
+ buf = reserve_release;
+ break;
case MODE_SENSE:
- return mode_sense;
+ buf = mode_sense;
+ break;
case START_STOP:
- return start_stop;
+ buf = start_stop;
+ break;
case SEND_DIAGNOSTIC:
- return send_diagnostics;
+ buf = send_diagnostics;
+ break;
case ALLOW_MEDIUM_REMOVAL:
- return allow_medium_removal;
+ buf = allow_medium_removal;
+ break;
case READ_CAPACITY:
- return read_capacity;
+ buf = read_capacity;
+ break;
case READ_10:
- return read_10;
+ buf = read_10;
+ break;
case WRITE_10:
- return write_10;
+ buf = write_10;
+ break;
case WRITE_VERIFY:
case VERIFY_10:
- return verify_10;
+ buf = verify_10;
+ break;
case PRE_FETCH_10:
- return pre_fetch_10;
+ buf = pre_fetch_10;
+ break;
case SYNCHRONIZE_CACHE:
- return synchronize_cache_10;
+ buf = synchronize_cache_10;
+ break;
case WRITE_SAME:
- return write_same_10;
+ buf = write_same_10;
+ break;
case UNMAP:
- return unmap;
+ buf = unmap;
+ break;
case MODE_SELECT_10:
- return mode_select_10;
+ buf = mode_select_10;
+ break;
case MODE_SENSE_10:
- return mode_sense_10;
+ buf = mode_sense_10;
+ break;
case PERSISTENT_RESERVE_IN:
switch (sa) {
case PR_IN_READ_KEYS:
case PR_IN_READ_RESERVATION:
case PR_IN_REPORT_CAPABILITIES:
case PR_IN_READ_FULL_STATUS:
- return persistent_reserve_in;
+ buf = persistent_reserve_in;
+ break;
}
break;
case PERSISTENT_RESERVE_OUT:
@@ -229,49 +249,70 @@ const unsigned char *get_scsi_cdb_usage_data(unsigned char op, unsigned char sa)
case PR_OUT_PREEMPT_AND_ABORT:
case PR_OUT_REGISTER_AND_IGNORE_EXISTING_KEY:
case PR_OUT_REGISTER_AND_MOVE:
- return persistent_reserve_out;
+ buf = persistent_reserve_out;
+ break;
}
break;
case READ_16:
- return read_16;
+ buf = read_16;
+ break;
case COMPARE_AND_WRITE:
- return compare_and_write;
+ buf = compare_and_write;
+ break;
case WRITE_16:
case ORWRITE_16:
- return orwrite_16;
+ buf = orwrite_16;
+ break;
case WRITE_VERIFY_16:
case VERIFY_16:
- return verify_16;
+ buf = verify_16;
+ break;
case PRE_FETCH_16:
- return pre_fetch_16;
+ buf = pre_fetch_16;
+ break;
case SYNCHRONIZE_CACHE_16:
- return synchronize_cache_16;
+ buf = synchronize_cache_16;
+ break;
case WRITE_SAME_16:
- return write_same_16;
+ buf = write_same_16;
+ break;
case SERVICE_ACTION_IN:
switch (sa) {
case SAI_READ_CAPACITY_16:
- return read_capacity_16;
+ buf = read_capacity_16;
+ break;
case SAI_GET_LBA_STATUS:
- return get_lba_status;
+ buf = get_lba_status;
+ break;
}
break;
case REPORT_LUNS:
- return report_luns;
+ buf = report_luns;
+ break;
case MAINT_PROTOCOL_IN:
switch (sa) {
case MPI_REPORT_SUPPORTED_OPCODES:
- return rep_sup_opcodes;
+ buf = rep_sup_opcodes;
+ break;
}
break;
case READ_12:
- return read_12;
+ buf = read_12;
+ break;
case VERIFY_12:
case WRITE_VERIFY_12:
- return verify_12;
+ buf = verify_12;
+ break;
case WRITE_12:
- return write_12;
+ buf = write_12;
+ break;
}
+
+ if (buf) {
+ buf[0] = op;
+ return buf;
+ }
+
return usage;
}
diff --git a/usr/target.c b/usr/target.c
index f4c5b4e..b6f324c 100644
--- a/usr/target.c
+++ b/usr/target.c
@@ -1581,7 +1581,6 @@ static tgtadm_err __inaccount_bind(struct target *target, int aid)
}
target->account.in_aids[i] = aid;
- target->account.nr_inaccount++;
} else {
int new_max = target->account.max_inaccount << 1;
int *buf;
@@ -1597,6 +1596,7 @@ static tgtadm_err __inaccount_bind(struct target *target, int aid)
target->account.in_aids[target->account.max_inaccount] = aid;
target->account.max_inaccount = new_max;
}
+ target->account.nr_inaccount++;
return TGTADM_SUCCESS;
}
diff --git a/usr/tgtd.c b/usr/tgtd.c
index 50e1c83..9975e03 100644
--- a/usr/tgtd.c
+++ b/usr/tgtd.c
@@ -212,6 +212,8 @@ static struct event_data *tgt_event_lookup(int fd)
return NULL;
}
+static int event_need_refresh;
+
void tgt_event_del(int fd)
{
struct event_data *tev;
@@ -229,6 +231,8 @@ void tgt_event_del(int fd)
list_del(&tev->e_list);
free(tev);
+
+ event_need_refresh = 1;
}
int tgt_event_modify(int fd, int events)
@@ -426,6 +430,11 @@ retry:
for (i = 0; i < nevent; i++) {
tev = (struct event_data *) events[i].data.ptr;
tev->handler(tev->fd, events[i].events, tev->data);
+
+ if (event_need_refresh) {
+ event_need_refresh = 0;
+ goto retry;
+ }
}
}

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Fri Sep 18 09:52:28 UTC 2015 - p.drouand@gmail.com
- Update to version 1.0.60
* No changelog available
- Update homepage Url
- Use download Url as source
- Remove tgt-git-update; fixed on upstream
- Remove depreciated AUTHORS section
- Perform a spec-cleaner on spec file
-------------------------------------------------------------------
Sun Sep 13 23:31:32 UTC 2015 - ddiss@suse.com
- Fix rctgtd systemd service symlink; (bnc#945604).
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Sep 10 07:03:47 UTC 2015 - bwiedemann@suse.com Thu Sep 10 07:03:47 UTC 2015 - bwiedemann@suse.com

View File

@ -17,28 +17,27 @@
Name: tgt Name: tgt
Version: 1.0.60
Release: 0
Summary: Generic Linux target framework (tgt)
License: GPL-2.0
Group: System/Daemons
Url: http://stgt.sourceforge.net/
Source: https://github.com/fujita/tgt/archive/v%{version}.tar.gz
Source1: %{name}d.service
Source3: %{name}.services
Source4: sysconfig.%{name}
Patch2: %{name}-fix-build
Patch3: setup-tgt-conf-d.patch
BuildRequires: docbook-xsl-stylesheets BuildRequires: docbook-xsl-stylesheets
BuildRequires: libaio-devel BuildRequires: libaio-devel
BuildRequires: libxslt BuildRequires: libxslt
BuildRequires: openssl-devel BuildRequires: openssl-devel
BuildRequires: perl-Config-General BuildRequires: perl-Config-General
BuildRequires: pkgconfig(systemd) BuildRequires: systemd-rpm-macros
Obsoletes: iscsitarget
Requires: perl-Config-General Requires: perl-Config-General
Url: http://stgt.berlios.de
Requires(pre): %fillup_prereq Requires(pre): %fillup_prereq
Version: 1.0.44 Obsoletes: iscsitarget
Release: 0
Summary: Generic Linux target framework (tgt)
License: GPL-2.0
Group: System/Daemons
Source: %{name}-%{version}.tar.bz2
Source1: %{name}d.service
Source3: %{name}.services
Source4: sysconfig.%{name}
Patch1: %{name}-git-update
Patch2: %{name}-fix-build
Patch3: setup-tgt-conf-d.patch
%description %description
Linux target framework (tgt) aims to simplify various SCSI target Linux target framework (tgt) aims to simplify various SCSI target
@ -48,16 +47,8 @@ Tgt consists of kernel modules, user-space daemon, and user-space
tools. Some target drivers uses all of them and some use only tools. Some target drivers uses all of them and some use only
user-space daemon and tools (i.e. they completely runs in user space). user-space daemon and tools (i.e. they completely runs in user space).
Authors:
--------
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Mike Christie <michaelc@cs.wisc.edu>
%prep %prep
%setup -n %{name}-%{version} %setup -q
%patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1 %patch3 -p1
@ -65,22 +56,22 @@ Authors:
%ifarch ppc ppc64 ppc64le %ifarch ppc ppc64 ppc64le
%define backends ISCSI=1 FCP=1 FCOE=1 IBMVIO=1 %define backends ISCSI=1 FCP=1 FCOE=1 IBMVIO=1
%else %else
%define backends ISCSI=1 FCP=1 FCOE=1 %define backends ISCSI=1 FCP=1 FCOE=1
%endif %endif
%{__make} OPTFLAGS="${RPM_OPT_FLAGS}" %{backends} make OPTFLAGS="%{optflags}" %{backends}
%install %install
%{__make} DESTDIR=%{buildroot} docdir=%_docdir/%{name} install make DESTDIR=%{buildroot} docdir=%{_docdir}/%{name} install
install -vD -m 644 %{S:1} %{buildroot}/%{_unitdir}/%{name}d.service install -vD -m 644 %{SOURCE1} %{buildroot}/%{_unitdir}/%{name}d.service
install -vD %{S:3} %{buildroot}/etc/sysconfig/SuSEfirewall2.d/services/tgt install -vD %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/tgt
install -vD %{S:4} ${RPM_BUILD_ROOT}/var/adm/fillup-templates/sysconfig.%{name} install -vD %{SOURCE4} %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
ln -sf service %{buildroot}/usr/sbin/rc%{name} ln -sf service %{buildroot}/%{_sbindir}/rc%{name}d
%pre %pre
%service_add_pre %{name}d.service %service_add_pre %{name}d.service
%post %post
%{fillup_only} %fillup_only
%service_add_post %{name}d.service %service_add_post %{name}d.service
%preun %preun
@ -92,14 +83,14 @@ ln -sf service %{buildroot}/usr/sbin/rc%{name}
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%{_sbindir}/* %{_sbindir}/*
%dir /etc/tgt %dir %{_sysconfdir}/tgt
%dir /etc/tgt/conf.d %dir %{_sysconfdir}/tgt/conf.d
%config %attr(0644,root,root) /etc/tgt/targets.conf %config %attr(0644,root,root) %{_sysconfdir}/tgt/targets.conf
%config %attr(0644,root,root) /etc/sysconfig/SuSEfirewall2.d/services/tgt %config %attr(0644,root,root) %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/tgt
/var/adm/fillup-templates/sysconfig.tgt %{_localstatedir}/adm/fillup-templates/sysconfig.tgt
%{_unitdir}/%{name}d.service %{_unitdir}/%{name}d.service
%doc README doc/README.iscsi doc/README.iser doc/README.lu_configuration %doc README doc/README.iscsi doc/README.iser doc/README.lu_configuration
%doc doc/README.mmc doc/README.passthrough doc/README.sbcjukebox doc/README.ssc %doc doc/README.mmc doc/README.passthrough doc/README.sbcjukebox doc/README.ssc
%doc %{_mandir}/man8/* %{_mandir}/man8/*
%changelog %changelog

3
v1.0.60.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c126c3dc8fe51d188b979f859e6fc5bc37d76b16f7a753f2966f90382ce15641
size 295175