diff options
Diffstat (limited to 'main/iscsitarget-grsec')
-rw-r--r-- | main/iscsitarget-grsec/APKBUILD | 44 | ||||
-rw-r--r-- | main/iscsitarget-grsec/iscsitarget-0.4.17+linux-2.6.28.patch | 78 | ||||
-rw-r--r-- | main/iscsitarget-grsec/iscsitarget-0.4.17+linux-2.6.29.patch | 40 |
3 files changed, 162 insertions, 0 deletions
diff --git a/main/iscsitarget-grsec/APKBUILD b/main/iscsitarget-grsec/APKBUILD new file mode 100644 index 000000000..a555918a8 --- /dev/null +++ b/main/iscsitarget-grsec/APKBUILD @@ -0,0 +1,44 @@ +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> + +_flavor=grsec +_realname=iscsitarget +# source the kernel version +if [ -f ../linux-$_flavor/APKBUILD ]; then + . ../linux-$_flavor/APKBUILD +fi +_abi_release=$pkgver-${_flavor} + +# get pkgver from iscsitarget +if [ -f ../iscsitarget/APKBUILD ]; then + . ../iscsitarget/APKBUILD +fi +pkgname=${_realname}-${_flavor} +pkgver=${pkgver:-0.4.17} +pkgrel=3 +pkgdesc="$_flavor kernel modules for iscsitarget" +url="http://iscsitarget.sourceforge.net/" +license="GPL-2" +depends= +install= +makedepends="linux-${_flavor}-dev" +subpackages= +source="http://downloads.sourceforge.net/$_realname/$_realname-$pkgver.tar.gz + iscsitarget-0.4.17+linux-2.6.28.patch + iscsitarget-0.4.17+linux-2.6.29.patch + " + +build() { + cd "$srcdir"/$_realname-$pkgver + for i in ../*.patch; do + msg "Applying $i" + patch -p1 < $i || return 1 + done + + unset ARCH + local ksrc=/usr/src/linux-headers-${_abi_release} + make KSRC="$ksrc" kernel || return 1 + make KSRC="$ksrc" DISTDIR="$pkgdir" install-kernel || return 1 +} +md5sums="e79b437695fc50e7d054631855a16b1b iscsitarget-0.4.17.tar.gz +f58dde50f72b04b7737b33e517e56208 iscsitarget-0.4.17+linux-2.6.28.patch +a7be10bb04c9014807e39db75c9cd468 iscsitarget-0.4.17+linux-2.6.29.patch" diff --git a/main/iscsitarget-grsec/iscsitarget-0.4.17+linux-2.6.28.patch b/main/iscsitarget-grsec/iscsitarget-0.4.17+linux-2.6.28.patch new file mode 100644 index 000000000..ec35cd526 --- /dev/null +++ b/main/iscsitarget-grsec/iscsitarget-0.4.17+linux-2.6.28.patch @@ -0,0 +1,78 @@ +From c5e70fc826aad5efb786c47d294e3c0c76246d63 Mon Sep 17 00:00:00 2001 +From: =?utf-8?q?Diego=20E.=20'Flameeyes'=20Petten=C3=B2?= <flameeyes@gmail.com> +Date: Sat, 3 Jan 2009 00:09:43 +0100 +Subject: [PATCH] Fix building with Linux kernel 2.6.28 and later. + +With changeset 30c40d2c01f68c7eb1a41ab3552bdaf5dbf300d4 of the Linux +kernel, the functions open_bdev_excl and close_bdev_excl were replaced with +functionally-equivalent open_bdev_exclusive and close_bdev_exclusive. + +The new interface uses fmode_t instead of integer flags to carry on the +opening mode for a block device, thus require some minor changes in the +calls. +--- + kernel/block-io.c | 21 +++++++++++++++++++++ + 1 files changed, 21 insertions(+), 0 deletions(-) + +diff --git a/kernel/block-io.c b/kernel/block-io.c +index e4a25f7..2c5f6f6 100644 +--- a/kernel/block-io.c ++++ b/kernel/block-io.c +@@ -18,6 +18,14 @@ + #include "iscsi_dbg.h" + #include "iotype.h" + ++#include <linux/version.h> ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++# define HAVE_OPEN_BDEV_EXCLUSIVE 1 ++#else ++# define HAVE_OPEN_BDEV_EXCLUSIVE 0 ++#endif ++ + struct blockio_data { + char *path; + struct block_device *bdev; +@@ -154,14 +160,22 @@ blockio_open_path(struct iet_volume *volume, const char *path) + { + struct blockio_data *bio_data = volume->private; + struct block_device *bdev; ++#if HAVE_OPEN_BDEV_EXCLUSIVE ++ fmode_t mode = FMODE_READ | ( LUReadonly(volume) ? 0 : FMODE_WRITE ); ++#else + int flags = LUReadonly(volume) ? MS_RDONLY : 0; ++#endif + int err = 0; + + bio_data->path = kstrdup(path, GFP_KERNEL); + if (!bio_data->path) + return -ENOMEM; + ++#if HAVE_OPEN_BDEV_EXCLUSIVE ++ bdev = open_bdev_exclusive(path, mode, THIS_MODULE); ++#else + bdev = open_bdev_excl(path, flags, THIS_MODULE); ++#endif + if (IS_ERR(bdev)) { + err = PTR_ERR(bdev); + eprintk("Can't open device %s, error %d\n", path, err); +@@ -323,9 +337,16 @@ static void + blockio_detach(struct iet_volume *volume) + { + struct blockio_data *bio_data = volume->private; ++#if HAVE_OPEN_BDEV_EXCLUSIVE ++ fmode_t mode = FMODE_READ | ( LUReadonly(volume) ? 0 : FMODE_WRITE ); ++#endif + + if (bio_data->bdev) ++#if HAVE_OPEN_BDEV_EXCLUSIVE ++ close_bdev_exclusive(bio_data->bdev, mode); ++#else + close_bdev_excl(bio_data->bdev); ++#endif + kfree(bio_data->path); + + kfree(volume->private); +-- +1.6.0.6 + diff --git a/main/iscsitarget-grsec/iscsitarget-0.4.17+linux-2.6.29.patch b/main/iscsitarget-grsec/iscsitarget-0.4.17+linux-2.6.29.patch new file mode 100644 index 000000000..092fdc3fd --- /dev/null +++ b/main/iscsitarget-grsec/iscsitarget-0.4.17+linux-2.6.29.patch @@ -0,0 +1,40 @@ +From 81373580a641732a7e4610c3d39af0c68007b892 Mon Sep 17 00:00:00 2001 +From: =?utf-8?q?Diego=20Elio=20'Flameeyes'=20Petten=C3=B2?= <flameeyes@gmail.com> +Date: Wed, 25 Mar 2009 16:14:46 +0100 +Subject: [PATCH 2/2] Fix building with Linux kernel 2.6.29 and later. + +When building for Linux 2.6.29 or later, instead of using the NIP6 +macro (that has been removed) use the new %p6 format specifier. +--- + kernel/conn.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/kernel/conn.c b/kernel/conn.c +index f96e2b6..ab561f9 100644 +--- a/kernel/conn.c ++++ b/kernel/conn.c +@@ -6,6 +6,7 @@ + + #include <linux/file.h> + #include <linux/ip.h> ++#include <linux/version.h> + #include <net/tcp.h> + + #include "iscsi.h" +@@ -47,8 +48,13 @@ void conn_info_show(struct seq_file *seq, struct iscsi_session *session) + break; + case AF_INET6: + snprintf(buf, sizeof(buf), ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) ++ "[%p6]", ++ &(inet6_sk(sk)->daddr)); ++#else + "[%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x]", + NIP6(inet6_sk(sk)->daddr)); ++#endif + break; + default: + break; +-- +1.6.2 + |