summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDāvis Mosāns2022-08-16 04:23:47 +0300
committerDāvis Mosāns2022-08-16 04:24:24 +0300
commitd6867e8f59bdfcc7345625ed339ba89002d4f45c (patch)
tree6f8cd0413fa52b5abe2852cd2ae4a7fa7d522a63
downloadaur-haskell-ioctl.tar.gz
First release
-rw-r--r--.SRCINFO16
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD47
-rw-r--r--fix.patch20
4 files changed, 87 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..4f01e6a98ece
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,16 @@
+pkgbase = haskell-ioctl
+ pkgdesc = Type-safe I/O control package
+ pkgver = 0.0.1
+ pkgrel = 1
+ url = https://hackage.haskell.org/package/ioctl
+ arch = x86_64
+ license = MIT
+ makedepends = ghc
+ depends = ghc-libs
+ depends = haskell-network
+ source = https://hackage.haskell.org/packages/archive/ioctl/0.0.1/ioctl-0.0.1.tar.gz
+ source = fix.patch
+ sha256sums = 1a9f21bc8f03d4729ef936d543d463e9ab5656699b2cf27fb344b4c6693d9067
+ sha256sums = 7e9ac869d968beb1f77a9899b9a910e6f552749539be8eaf5833e3545979cf29
+
+pkgname = haskell-ioctl
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..8ba3a617d3d9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/pkg/
+/src/
+/*.tar*
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..1bd0337f9b1c
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,47 @@
+# This file was generated by https://github.com/berberman/arch-hs, please check it manually.
+# Maintainer: Your Name <youremail@domain.com>
+
+_hkgname=ioctl
+pkgname=haskell-ioctl
+pkgver=0.0.1
+pkgrel=1
+pkgdesc="Type-safe I/O control package"
+url="https://hackage.haskell.org/package/ioctl"
+license=("MIT")
+arch=('x86_64')
+depends=('ghc-libs' 'haskell-network')
+makedepends=('ghc')
+source=("https://hackage.haskell.org/packages/archive/$_hkgname/$pkgver/$_hkgname-$pkgver.tar.gz" 'fix.patch')
+sha256sums=('1a9f21bc8f03d4729ef936d543d463e9ab5656699b2cf27fb344b4c6693d9067'
+ '7e9ac869d968beb1f77a9899b9a910e6f552749539be8eaf5833e3545979cf29')
+
+prepare() {
+ cd "$_hkgname-$pkgver"
+ patch -p1 < ../fix.patch
+}
+
+build() {
+ cd $_hkgname-$pkgver
+
+ runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \
+ --prefix=/usr --docdir=/usr/share/doc/$pkgname --datasubdir=haskell-ioctl --enable-tests \
+ --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid \
+ --ghc-option=-optl-Wl\,-z\,relro\,-z\,now \
+ --ghc-option='-pie'
+
+ runhaskell Setup build
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd $_hkgname-$pkgver
+
+ install -D -m744 register.sh "$pkgdir"/usr/share/haskell/register/$pkgname.sh
+ install -D -m744 unregister.sh "$pkgdir"/usr/share/haskell/unregister/$pkgname.sh
+ runhaskell Setup copy --destdir="$pkgdir"
+ install -D -m644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+ rm -f "$pkgdir"/usr/share/doc/$pkgname/LICENSE
+}
diff --git a/fix.patch b/fix.patch
new file mode 100644
index 000000000000..feb69476b3a4
--- /dev/null
+++ b/fix.patch
@@ -0,0 +1,20 @@
+diff --git a/src-unix/Network/Socket/IOCtl.hs b/src-unix/Network/Socket/IOCtl.hs
+index bfd6d31..683c0b0 100644
+--- a/src-unix/Network/Socket/IOCtl.hs
++++ b/src-unix/Network/Socket/IOCtl.hs
+@@ -23,13 +23,14 @@ import Foreign
+ import Foreign.C
+ import Network.Socket
+ import System.IOControl
++import System.IO.Unsafe (unsafePerformIO)
+
+ foreign import ccall "ioctl" c_ioctl :: CInt -> CInt -> Ptr () -> IO CInt
+
+ c_ioctl' :: IOControl req d => Socket -> req -> Ptr d -> IO ()
+ c_ioctl' f req p =
+ throwErrnoIfMinus1_ "ioctl" $
+- c_ioctl (fdSocket f) (ioctlReq req) (castPtr p)
++ c_ioctl (unsafePerformIO $ fdSocket f) (ioctlReq req) (castPtr p)
+
+ -- | Calls a ioctl reading the structure after the call
+ ioctlsocket :: IOControl req d