# # spec file for package HTTP # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %global pkg_name HTTP %bcond_with tests Name: %{pkg_name} Version: 4000.3.9 Release: 0 Summary: A library for client-side HTTP License: BSD-3-Clause Group: Development/Libraries/Haskell URL: https://hackage.haskell.org/package/%{name} Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel BuildRequires: ghc-array-devel BuildRequires: ghc-bytestring-devel BuildRequires: ghc-mtl-devel BuildRequires: ghc-network-devel BuildRequires: ghc-network-uri-devel BuildRequires: ghc-parsec-devel BuildRequires: ghc-rpm-macros BuildRequires: ghc-time-devel %if %{with tests} BuildRequires: ghc-HUnit-devel BuildRequires: ghc-case-insensitive-devel BuildRequires: ghc-conduit-devel BuildRequires: ghc-conduit-extra-devel BuildRequires: ghc-deepseq-devel BuildRequires: ghc-http-types-devel BuildRequires: ghc-httpd-shed-devel BuildRequires: ghc-pureMD5-devel BuildRequires: ghc-split-devel BuildRequires: ghc-test-framework-devel BuildRequires: ghc-test-framework-hunit-devel BuildRequires: ghc-wai-devel BuildRequires: ghc-warp-devel %endif %description The HTTP package supports client-side web programming in Haskell. It lets you set up HTTP connections, transmitting requests and processing the responses coming back, all from within the comforts of Haskell. It's dependent on the network package to operate, but other than that, the implementation is all written in Haskell. A basic API for issuing single HTTP requests + receiving responses is provided. On top of that, a session-level abstraction is also on offer (the 'BrowserAction' monad); it taking care of handling the management of persistent connections, proxies, state (cookies) and authentication credentials required to handle multi-step interactions with a web server. The representation of the bytes flowing across is extensible via the use of a type class, letting you pick the representation of requests and responses that best fits your use. Some pre-packaged, common instances are provided for you ('ByteString', 'String'). Here's an example use: > > do > rsp <- Network.HTTP.simpleHTTP (getRequest "http://www.haskell.org/") > -- fetch document and return it (as a 'String'.) > fmap (take 100) (getResponseBody rsp) > > do > (_, rsp) > <- Network.Browser.browse $ do > setAllowRedirects True -- handle HTTP redirects > request $ getRequest "http://www.haskell.org/" > return (take 100 (rspBody rsp)) __Note:__ This package does not support HTTPS connections. If you need HTTPS, take a look at the following packages: * * (in combination with ) * * . %package -n ghc-%{name} Summary: Haskell %{name} library Group: System/Libraries %description -n ghc-%{name} This package provides the Haskell %{name} shared library. %package -n ghc-%{name}-devel Summary: Haskell %{name} library development files Group: Development/Libraries/Haskell Requires: ghc-%{name} = %{version}-%{release} Requires: ghc-compiler = %{ghc_version} Requires(post): ghc-compiler = %{ghc_version} Requires(postun): ghc-compiler = %{ghc_version} %description -n ghc-%{name}-devel This package provides the Haskell %{name} library development files. %prep %setup -q %build %ghc_lib_build %install %ghc_lib_install %check %cabal_test %post -n ghc-%{name}-devel %ghc_pkg_recache %postun -n ghc-%{name}-devel %ghc_pkg_recache %files %license LICENSE %doc CHANGES %files -n ghc-%{name} -f ghc-%{name}.files %license LICENSE %files -n ghc-%{name}-devel -f ghc-%{name}-devel.files %doc CHANGES %changelog