Ticket #8798: tgt.patch

File tgt.patch, 8.1 KB (added by m.storchak@…, 5 years ago)

tgt iscsi target

  • net/tgt/files/etc/config/tgt

     
     1config target 1 
     2        option name 'iqn.2012-06.org.openwrt:target1' 
     3        option allow ALL 
     4 
     5#config target 2 
     6#       option name 'iqn.2012-06.org.openwrt:t2' 
     7#       option allow 192.168.1.0/24 
     8 
     9 
     10# all options are set to default, except for the device 
     11# for all type and bstype values see tgtd(8) 
     12# lun "name" is constructed as TGTID_LUN 
     13#config lun                        1_1 
     14#       option readonly 0 
     15#       option device /dev/sda 
     16#       option type disk 
     17#       option bstype rdwr 
     18#       option sync 0 
     19#       option direct 0 
     20 
     21 
     22#config lun 2_1 
     23#       option readonly 0 
     24#       option device /mnt/iscsi.img 
     25 
     26#config lun 2_2 
     27#       option device /dev/sdc 
     28 
     29#config account 
     30#       option target 1 
     31#       option user "username1" 
     32#       option password "pass1" 
     33 
     34#config account 
     35#       option target 2 
     36#       option user "user2" 
     37#       option password "pwd2" 
     38#       option outgoing 1 
  • net/tgt/files/etc/init.d/tgt

     
     1#!/bin/sh /etc/rc.common 
     2START=91 
     3STOP=10 
     4 
     5SERVICE_SIG_STOP=INT 
     6 
     7EXTRA_COMMANDS="show status" 
     8EXTRA_HELP="    show    Show current configuration of tgtd 
     9        status  Check of tgtd is running" 
     10 
     11NAME=tgt 
     12EXEC=/usr/sbin/${NAME}d 
     13 
     14tgtadm="/usr/sbin/tgtadm --lld iscsi" 
     15 
     16handle_lun() { 
     17        local tgt_lun=$1 
     18        local tgtid=$2 
     19        local ro device type bstype sync direct 
     20        local my_tgtid=${tgt_lun%_*} 
     21        local lun=${tgt_lun#*_} 
     22        [ $my_tgtid -eq $tgtid ] || return 0 
     23 
     24        config_get device $1 device "" 
     25        [ "$device" ] || return 1 
     26 
     27        config_get type $1 type disk 
     28        config_get bstype $1 bstype rdwr 
     29        config_get_bool readonly $1 readonly 0 
     30        config_get_bool sync $1 sync 0 
     31        config_get_bool direct $1 direct 0 
     32        if [ $sync -ne 0 -o $direct -ne 0 ]; then 
     33                local bsoflags 
     34                [ $sync -ne 0 ] && bsoflags="sync" 
     35                [ $direct -ne 0 ] && bsoflags="direct" 
     36                [ $sync -ne 0 -a $direct -ne 0 ] && bsoflags="sync:direct" 
     37                bsoflags="--bsoflags $bsoflags" 
     38        fi 
     39 
     40        local _tgtadm="$tgtadm --mode logicalunit --tid $tgtid --lun $lun" 
     41        $_tgtadm --op new --backing-store $device --device-type $type --bstype $bstype --bstype $bstype $bsoflags || return 1 
     42        $_tgtadm --op update --param readonly=$readonly || return 1 
     43} 
     44 
     45handle_account() { 
     46        local tgtid=$2 
     47        local _tgtadm="$tgtadm --mode account" 
     48        local target user password outgoing 
     49 
     50        config_get target $1 target "" 
     51        [ "$target" ] || return 1 
     52        [ $target -eq $tgtid ] || return 0 
     53 
     54        config_get user $1 user "" 
     55        [ "$user" ] || return 1 
     56 
     57        config_get password $1 password "" 
     58        config_get_bool outgoing $1 outgoing 0 
     59        [ "$outgoing" -ne 0 ] && outgoing=--outgoing || outgoing="" 
     60 
     61        $_tgtadm --op new --user "$user" --password "$password" || return 1 
     62        $_tgtadm --op bind --tid $tgtid --user "$user" $outgoing || return 1 
     63} 
     64 
     65handle_target() { 
     66        local tgtid=$1 
     67        local tgtname allow 
     68        local _tgtadm="$tgtadm --mode target" 
     69 
     70        [ $tgtid -ge 0 ] || return 1 
     71 
     72        config_get tgtname $1 name iqn.2012-06.org.openwrt 
     73        config_get allow $1 allow ALL 
     74 
     75        $_tgtadm --op new --tid $tgtid --targetname $tgtname || return 1 
     76        $_tgtadm --op bind --tid $tgtid -I $allow || return 1 
     77 
     78        config_foreach handle_lun lun $tgtid || return 1 
     79        config_foreach handle_account account $tgtid || return 1 
     80} 
     81 
     82configure() { 
     83        config_load $NAME 
     84        $tgtadm --op update --mode sys --name State -v offline || return 1 
     85        config_foreach handle_target target || return 1 
     86        $tgtadm --op update --mode sys --name State -v ready || return 1 
     87        return 0 
     88} 
     89 
     90start() { 
     91        service_start $EXEC || return 1 
     92        configure || { stop; exit 1; } 
     93} 
     94 
     95stop() { 
     96        $tgtadm --op update --mode sys --name State -v offline 
     97        sleep 3 
     98        service_stop $EXEC 
     99} 
     100 
     101restart() { 
     102        stop; sleep 3; start 
     103} 
     104 
     105show() { 
     106        $tgtadm --mode target --op show 
     107} 
     108 
     109status() { 
     110        start-stop-daemon -x $EXEC -K -t -q && echo $NAME is running || echo $NAME is stopped 
     111} 
  • net/tgt/patches/020-usr_Makefile.patch

    Property changes on: net/tgt/files/etc/init.d/tgt
    ___________________________________________________________________
    Added: svn:executable
       + *
    
     
     1--- a/usr/Makefile      2012-06-03 02:04:54.000000000 +0300 
     2+++ b/usr/Makefile      2012-06-14 03:22:27.000000000 +0300 
     3@@ -38,7 +38,7 @@ 
     4  
     5 LIBS += -lpthread 
     6  
     7-PROGRAMS += tgtd tgtadm tgtimg 
     8+PROGRAMS += tgtd tgtadm 
     9 TGTD_OBJS += tgtd.o mgmt.o target.o scsi.o log.o driver.o util.o work.o \ 
     10                concat_buf.o parser.o spc.o sbc.o mmc.o osd.o scc.o smc.o \ 
     11                ssc.o bs_ssc.o libssc.o \ 
     12@@ -62,14 +62,8 @@ 
     13  
     14 -include $(TGTADM_DEP) 
     15  
     16-TGTIMG_OBJS = tgtimg.o libssc.o libcrc32c.o 
     17 TGTIMG_DEP = $(TGTIMG_OBJS:.o=.d) 
     18  
     19-tgtimg: $(TGTIMG_OBJS) 
     20-       $(CC) $^ -o $@ 
     21- 
     22--include $(TGTIMG_DEP) 
     23- 
     24 %.o: %.c 
     25        $(CC) -c $(CFLAGS) $*.c -o $*.o 
     26        @$(CC) -MM $(CFLAGS) -MF $*.d -MT $*.o $*.c 
  • net/tgt/patches/010-fallocate.patch

     
     1--- a/usr/util.h        2012-06-14 02:39:48.000000000 +0300 
     2+++ b/usr/util.h        2012-06-14 03:20:44.000000000 +0300 
     3@@ -209,11 +209,6 @@ 
     4  */ 
     5 static inline int unmap_file_region(int fd, off_t offset, off_t length) 
     6 { 
     7-#ifdef FALLOC_FL_PUNCH_HOLE 
     8-       if (fallocate(fd, FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE, 
     9-                       offset, length) == 0) 
     10-               return 0;  
     11-#endif 
     12        return -1; 
     13 } 
     14  
  • net/tgt/patches/030-Makefile.patch

     
     1--- a/Makefile  2012-06-03 02:04:54.000000000 +0300 
     2+++ b/Makefile  2012-06-14 03:25:42.000000000 +0300 
     3@@ -61,7 +61,7 @@ 
     4        $(MAKE) -C conf clean 
     5  
     6 .PHONY: install 
     7-install: install-programs install-doc install-conf install-scripts 
     8+install: install-programs 
     9  
     10 .PHONY: clean 
     11 clean: clean-programs clean-doc clean-conf clean-scripts 
  • net/tgt/Makefile

     
     1# 
     2# Copyright (C) 2012 OpenWrt.org 
     3# 
     4# This is free software, licensed under the GNU General Public License v2. 
     5# See /LICENSE for more information. 
     6 
     7include $(TOPDIR)/rules.mk 
     8 
     9PKG_NAME:=tgt 
     10PKG_VERSION:=1.0.30 
     11PKG_RELEASE:=2 
     12GIT_SHORT_REV:=9dc30be 
     13 
     14PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
     15PKG_SOURCE_URL:=https://github.com/fujita/tgt/tarball/v$(PKG_VERSION) 
     16 
     17#PKG_MD5SUM:= 
     18 
     19PKG_BUILD_DIR:=$(BUILD_DIR)/fujita-$(PKG_NAME)-$(GIT_SHORT_REV) 
     20 
     21include $(INCLUDE_DIR)/package.mk 
     22 
     23define Package/tgt 
     24  SECTION:=net 
     25  CATEGORY:=Network 
     26  URL:=http://stgt.sourceforge.net/ 
     27  TITLE:=userspace iSCSI target 
     28  DEPENDS:=+libpthread 
     29endef 
     30 
     31define Package/tgt/description 
     32Linux SCSI target framework (tgt) aims to simplify various SCSI target driver (iSCSI, Fibre Channel, SRP, etc) creation and maintenance. 
     33Key goals of the project are the clean integration into the scsi-mid layer and implementing a great portion of tgt in user space. 
     34Tgt consists of kernel-space and user-space code. The kernel-space component is included in upstream as of 2.6.20. 
     35Note that if you are interested in only iSCSI (probably you are), you need only the user-space code (any kernel version is fine). 
     36endef 
     37 
     38define Build/Compile 
     39        CC=$(TARGET_CC) $(MAKE) -C $(PKG_BUILD_DIR) \ 
     40                DESTDIR="$(PKG_INSTALL_DIR)" \ 
     41                LD="$(TARGET_CC)" \ 
     42                install-programs 
     43endef 
     44 
     45define Package/tgt/conffiles 
     46        /etc/config/tgt 
     47endef 
     48 
     49define Package/tgt/install 
     50        $(INSTALL_DIR) $(1)/ 
     51        $(INSTALL_DIR) $(1)/usr/sbin 
     52        $(CP) ./files/* $(1)/ 
     53        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/tgtd $(1)/usr/sbin/ 
     54        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/tgtadm $(1)/usr/sbin/ 
     55endef 
     56 
     57$(eval $(call BuildPackage,tgt))