diff options
author | Ido Rosen | 2015-06-09 14:59:33 -0400 |
---|---|---|
committer | Ido Rosen | 2015-06-09 14:59:33 -0400 |
commit | ae2cb433260acf43f7ca4da40191a0ddba52e4ec (patch) | |
tree | 1e268ec8a2854ebb4f891315010ccf6b01ff69ad | |
download | aur-ae2cb433260acf43f7ca4da40191a0ddba52e4ec.tar.gz |
Initial commit.
-rw-r--r-- | .SRCINFO | 32 | ||||
-rw-r--r-- | PKGBUILD | 130 | ||||
-rw-r--r-- | openonload-201310-cpp11-space-literal-fix.patch | 12 | ||||
-rw-r--r-- | openonload-201405-extramodules-and-noinitrc.patch | 50 | ||||
-rw-r--r-- | openonload-201405-extramodules-and-noinitrc2.patch | 12 | ||||
-rw-r--r-- | openonload.install | 23 | ||||
-rw-r--r-- | openonload.service | 19 |
7 files changed, 278 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..19d352aee0c6 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,32 @@ +pkgbase = openonload + pkgdesc = A high performance network stack from Solarflare. + pkgver = 201502.u1 + pkgrel = 2 + url = http://www.openonload.org/ + install = openonload.install + arch = i686 + arch = x86_64 + license = custom + makedepends = linux-lts + makedepends = linux-lts-headers + depends = linux-lts + options = libtool + options = !strip + options = !makeflags + options = !buildflags + options = staticlibs + source = http://www.openonload.org/download/openonload-201502-u1.tgz + source = openonload.install + source = openonload.service + source = openonload-201310-cpp11-space-literal-fix.patch + source = openonload-201405-extramodules-and-noinitrc.patch + source = openonload-201405-extramodules-and-noinitrc2.patch + sha512sums = 0b2611d9e7c3987aa7b01cfe173d6b3b1f7335f33da259953d43a8c3b3608362b1114812045fbe5f380f568cfec8be5a6ecd5a98a576230604a19e57d0655400 + sha512sums = ac464250f2fb96d13e8ae129bac80c03f8cca62e450fdd765f24ccd064e28e9942e4a16ebc693e75c71fc1eb86c3a1b08337b2e39c6c618e129d8ec87d872bdb + sha512sums = b7e4529e37c64f99c660ca9b58f388cdd8f0d2f250ba875eb210f4909bb1f1c985a065aae64c048ca6f824adc6e3176c6eae1f582c049631326db73e939edd7b + sha512sums = d4fda83764e79cff525f578e14b337937d2a6a3e0fc5f3cc5ec07b739f4bcc46b294fa560db595b0efb14bdf70eab44e833c05278e28d8fb947f9f8b77748a78 + sha512sums = a206a6890793a4b3d7ac7090ef2a660d80782f9d6995df0e04d563e0653e10c480e7444a11b3cae64c669592375d5fdb21893c961438e0864e478138b37c5dd9 + sha512sums = 5a2a8984bfc8ba4e75637fab24970764da165dd3cf7253dd32f647a866e4ad0bfd77732f3739066f2479333a466574a55db46142d3ed47a5c5f6e2f6e65c0b39 + +pkgname = openonload + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..9d556fe1992e --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,130 @@ +# $Id: c3338e328e8e42fdbd690eaf3b9e2a273a7137d8 $ +# Maintainer: Ido Rosen <ido@kernel.org> +# +# NOTE: To request changes to this package, please submit a pull request +# to the GitHub repository at https://github.com/ido/packages-archlinux +# Otherwise, open a GitHub issue. Thank you! -Ido +# +# From the OpenOnload website, http://www.openonload.org/ : +# ``OpenOnload(r) is a high performance network stack from Solarflare that +# dramatically reduces latency and cpu utilisation, and increases message rate +# and bandwidth. OpenOnload runs on Linux and supports TCP/UDP/IP network +# protocols with the standard BSD sockets API, and requires no modifications +# to applications to use. It achieves performance improvements in part by +# performing network processing at user-level, bypassing the OS kernel +# entirely on the data path. Networking performance is improved without +# sacrificing the security and multiplexing functions that the OS kernel +# normally provides.'' (10/3/2013) + +pkgname='openonload' +pkgdesc="A high performance network stack from Solarflare." +pkgver='201502.u1' +if [[ -z "$_kernelver" ]]; then + _kernelver="$(uname -r)" + #_kernelver="$(cat /lib/modules/extramodules-3.14-lts/version)" +fi +pkgrel=2 +arch=('i686' 'x86_64') +url='http://www.openonload.org/' +license=('custom') +depends=("linux-lts") +makedepends=("linux-lts" "linux-lts-headers") +options=('libtool' '!strip' '!makeflags' '!buildflags' 'staticlibs') +source=("http://www.openonload.org/download/openonload-${pkgver//\./-}.tgz" + 'openonload.install' + 'openonload.service' + 'openonload-201310-cpp11-space-literal-fix.patch' + 'openonload-201405-extramodules-and-noinitrc.patch' + 'openonload-201405-extramodules-and-noinitrc2.patch' +) +sha512sums=('0b2611d9e7c3987aa7b01cfe173d6b3b1f7335f33da259953d43a8c3b3608362b1114812045fbe5f380f568cfec8be5a6ecd5a98a576230604a19e57d0655400' + 'ac464250f2fb96d13e8ae129bac80c03f8cca62e450fdd765f24ccd064e28e9942e4a16ebc693e75c71fc1eb86c3a1b08337b2e39c6c618e129d8ec87d872bdb' + 'b7e4529e37c64f99c660ca9b58f388cdd8f0d2f250ba875eb210f4909bb1f1c985a065aae64c048ca6f824adc6e3176c6eae1f582c049631326db73e939edd7b' + 'd4fda83764e79cff525f578e14b337937d2a6a3e0fc5f3cc5ec07b739f4bcc46b294fa560db595b0efb14bdf70eab44e833c05278e28d8fb947f9f8b77748a78' + 'a206a6890793a4b3d7ac7090ef2a660d80782f9d6995df0e04d563e0653e10c480e7444a11b3cae64c669592375d5fdb21893c961438e0864e478138b37c5dd9' + '5a2a8984bfc8ba4e75637fab24970764da165dd3cf7253dd32f647a866e4ad0bfd77732f3739066f2479333a466574a55db46142d3ed47a5c5f6e2f6e65c0b39') + +install="openonload.install" + +prepare() { + cd "${srcdir}/${pkgname}-${pkgver//\./-}" + + patch -p1 < "${srcdir}/openonload-201310-cpp11-space-literal-fix.patch" + patch -p1 < "${srcdir}/openonload-201405-extramodules-and-noinitrc.patch" + patch -p1 < "${srcdir}/openonload-201405-extramodules-and-noinitrc2.patch" +} + +build() { + cd "${srcdir}/${pkgname}-${pkgver//\./-}" + + case $CARCH in + "i686") + # x86 (32 bit) build + ./scripts/onload_build --kernelver "$_kernelver" --user32 ${DEBUG:+--debug} + ;; + "x86_64") + # x64 build + ./scripts/onload_build --kernelver "$_kernelver" ${DEBUG:+--debug} + ;; + *) + # unsupported + echo "Unsupported architecture." + exit 1 + ;; + esac +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver//\./-}" + + # OpenOnload: + install -dm755 "${pkgdir}/etc/modprobe.d" + install -dm755 "${pkgdir}/etc/depmod.d" + i_prefix="${pkgdir}" ./scripts/onload_install --verbose \ + --kernelver "$_kernelver" \ + ${DEBUG:+--debug} rpm_install + rm -f "${pkgdir}/etc/modprobe.conf" # may be created by onload_install + mv "${pkgdir}/usr/lib64/"* "${pkgdir}/usr/lib/" + rmdir "${pkgdir}/usr/lib64" + mv "${pkgdir}/sbin/"* "${pkgdir}/usr/bin/" + rmdir "${pkgdir}/sbin" + mv "${pkgdir}/usr/sbin/"* "${pkgdir}/usr/bin/" + rmdir "${pkgdir}/usr/sbin" + + install -Dm755 scripts/onload_install \ + "${pkgdir}/usr/lib/onload/onload_install" + + install -Dm644 "${srcdir}/openonload.service" \ + "${pkgdir}/usr/lib/systemd/system/openonload.service" + + # ef_vi libraries: + install -dm755 "${pkgdir}/usr/lib/" + install -m644 build/gnu_${CARCH}/lib/ciul/libciul.so.1.1.1 \ + "${pkgdir}/usr/lib/" + ln -s /usr/lib/libciul.so.1.1.1 ${pkgdir}/usr/lib/libciul.so.1 + ln -s /usr/lib/libciul.so.1.1.1 ${pkgdir}/usr/lib/libciul.so + + install -m644 build/gnu_${CARCH}/lib/ciul/lib{ciul,efvi}1.a \ + "${pkgdir}/usr/lib/" + + # Install documentation: + install -dm755 "${pkgdir}/usr/share/doc/openonload" + install -m644 ChangeLog "${pkgdir}/usr/share/doc/openonload" + install -m644 LICENSE "${pkgdir}/usr/share/doc/openonload" + install -m644 README "${pkgdir}/usr/share/doc/openonload" + install -m644 README.affinity "${pkgdir}/usr/share/doc/openonload" + install -m644 README.ef_vi "${pkgdir}/usr/share/doc/openonload" + install -m644 ReleaseNotes "${pkgdir}/usr/share/doc/openonload" + install -m644 ReleaseNotes-sfc "${pkgdir}/usr/share/doc/openonload" + + # Install ef_vi tests/samples: + install -dm755 "${pkgdir}/usr/share/openonload/examples" + cp -r "src/tests/." "${pkgdir}/usr/share/openonload/examples/." + chmod -R a=rX "${pkgdir}/usr/share/openonload/examples" + + # Install LICENSE file: + install -dm755 "${pkgdir}/usr/share/licenses/openonload" + ln -s "/usr/share/doc/openonload/LICENSE" \ + "${pkgdir}/usr/share/licenses/openonload" + +} diff --git a/openonload-201310-cpp11-space-literal-fix.patch b/openonload-201310-cpp11-space-literal-fix.patch new file mode 100644 index 000000000000..5ddb7daebe56 --- /dev/null +++ b/openonload-201310-cpp11-space-literal-fix.patch @@ -0,0 +1,12 @@ +diff -rupN old/src/include/ci/efhw/common.h new/src/include/ci/efhw/common.h +--- old/src/include/ci/efhw/common.h 2013-10-11 10:28:47.000000000 -0400 ++++ new/src/include/ci/efhw/common.h 2013-11-05 10:59:34.023661092 -0500 +@@ -62,7 +62,7 @@ enum efhw_arch { + }; + + typedef uint32_t efhw_buffer_addr_t; +-#define EFHW_BUFFER_ADDR_FMT "[ba:%"PRIx32"]" ++#define EFHW_BUFFER_ADDR_FMT "[ba:%" PRIx32 "]" + + /* Below event structure is in NIC bytes order. When using either field for + * something other then check against 0xffff one should convert the event diff --git a/openonload-201405-extramodules-and-noinitrc.patch b/openonload-201405-extramodules-and-noinitrc.patch new file mode 100644 index 000000000000..d97c6e045d9b --- /dev/null +++ b/openonload-201405-extramodules-and-noinitrc.patch @@ -0,0 +1,50 @@ +diff --git a/scripts/onload_install b/scripts/onload_install +index 3af0917..d33f565 100755 +--- a/scripts/onload_install ++++ b/scripts/onload_install +@@ -259,7 +259,7 @@ install_userland() { + install_x onload_tool "$i_sbin/onload_tool" + install_x onload "$i_usrbin/onload" + install_x sfcirqaffinity "$i_usrsbin/sfcirqaffinity" +- install_x onload_misc/onload_init_rc "$i_etc/init.d/openonload" ++# install_x onload_misc/onload_init_rc "$i_etc/init.d/openonload" + install_f onload_misc/onload_sysconfig "$i_etc/sysconfig/openonload" + install_x onload_tcpdump "$i_usrbin/onload_tcpdump" + install_x onload_iptables "$i_usrbin/onload_iptables" +@@ -325,7 +325,7 @@ install_ldconfig() { + + install_kernel_modules() { + # Install kernel drivers. +- did="$i_prefix/lib/modules/$KVER/extra" ++ did="$i_prefix$(readlink -f /lib/modules/$KVER/extramodules)" + try $do cd "$TOP/build" + d=$(mmaketool --driverbuild) + if ! $test; then +@@ -487,7 +487,7 @@ check_whether_installed() { + fi + local drv where + for drv in sfc.ko onload.ko sfc_aoe.ko; do +- for where in updates extra; do ++ for where in extramodules; do + check_file_installed "$i_prefix/lib/modules/$KVER/$where/$drv" + done + done +@@ -508,7 +508,7 @@ do_rpm_install() { + + do_rpm_post() { + # Invoked by the rpm install. +- install_init_script ++ #install_init_script + is_rhel4 && rhel4_modprobe_fixup + exit + } +diff --git a/scripts/onload_misc/onload_depmod.conf b/scripts/onload_misc/onload_depmod.conf +index c2cdeeb..65dae7a 100644 +--- a/scripts/onload_misc/onload_depmod.conf ++++ b/scripts/onload_misc/onload_depmod.conf +@@ -1,4 +1,4 @@ + # Ensure that drivers provided by Onload install override any that came + # with the kernel. + override sfc * weak-updates +-override sfc * extra ++override sfc * extramodules diff --git a/openonload-201405-extramodules-and-noinitrc2.patch b/openonload-201405-extramodules-and-noinitrc2.patch new file mode 100644 index 000000000000..3bfad46da1c1 --- /dev/null +++ b/openonload-201405-extramodules-and-noinitrc2.patch @@ -0,0 +1,12 @@ +diff -rupN openonload-201405/scripts/onload_install openonload-201405b/scripts/onload_install +--- openonload-201405/scripts/onload_install 2014-07-24 12:06:05.619914425 -0400 ++++ openonload-201405b/scripts/onload_install 2014-07-24 12:05:36.220069022 -0400 +@@ -488,7 +488,7 @@ check_whether_installed() { + local drv where + for drv in sfc.ko onload.ko sfc_aoe.ko; do + for where in extramodules; do +- check_file_installed "$i_prefix/lib/modules/$KVER/$where/$drv" ++ check_file_installed "$i_prefix$(readlink -f /lib/modules/$KVER/$where)/$drv" + done + done + } diff --git a/openonload.install b/openonload.install new file mode 100644 index 000000000000..a2b49350151c --- /dev/null +++ b/openonload.install @@ -0,0 +1,23 @@ +## arg 1: the new package version +post_install() { + #/lib/onload/onload_install rpm_post + ldconfig -n /usr/lib /usr/lib64 +} + +post_upgrade() { + #/lib/onload/onload_install rpm_post + ldconfig -n /usr/lib /usr/lib64 + for k in $(cd /lib/modules && /bin/ls); do + [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k" + done +} + +## arg 1: the old package version +post_remove() { + ldconfig -n /usr/lib /usr/lib64 + + for k in $(cd /lib/modules && /bin/ls | grep '^[0-9]'); do + [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k" + done + +} diff --git a/openonload.service b/openonload.service new file mode 100644 index 000000000000..6de060acdc02 --- /dev/null +++ b/openonload.service @@ -0,0 +1,19 @@ +[Unit] +Description=OpenOnload initialisation +After=network.target + +[Service] +Type=oneshot +RemainAfterExit=yes +PrivateTmp=true +ExecStart=/sbin/modprobe onload +ExecStart=/sbin/onload_tool mknod sfc_char +ExecStart=/sbin/onload_tool mknod onload +ExecStart=/sbin/onload_tool mknod onload onload_epoll +ExecStart=/sbin/modprobe sfc_affinity +ExecStart=/sbin/onload_tool mknod sfc_affinity +# TODO: Configure sfc_affinity. +#ExecStart=/usr/sbin/sfcaffinity_config auto + +[Install] +WantedBy=multi-user.target |