SHA256
1
0
forked from pool/ghc-hashable

Accepting request 1233468 from devel:languages:haskell

Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1233468
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ghc-hashable?expand=0&rev=40
This commit is contained in:
Ana Guerrero 2024-12-29 10:56:24 +00:00 committed by Git OBS Bridge
commit 256dd64d67
3 changed files with 225 additions and 0 deletions

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Dec 19 10:57:25 UTC 2024 - Peter Simons <psimons@suse.com>
- Update hashable to version 1.5.0.0 revision 1.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Thu Jul 4 19:38:39 UTC 2024 - Peter Simons <psimons@suse.com>

View File

@ -26,6 +26,7 @@ Summary: A class for types that can be converted to a hash value
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-base-devel
BuildRequires: ghc-base-prof
@ -108,6 +109,7 @@ This package provides the Haskell %{pkg_name} profiling library.
%prep
%autosetup -n %{pkg_name}-%{version}
cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%define cabal_configure_options -f-arch-native

217
hashable.cabal Normal file
View File

@ -0,0 +1,217 @@
cabal-version: 2.2
name: hashable
version: 1.5.0.0
x-revision: 1
synopsis: A class for types that can be converted to a hash value
description:
This package defines a class, 'Hashable', for types that can be converted to a hash value.
This class exists for the benefit of hashing-based data structures.
The package provides instances for basic types and a way to combine hash values.
.
'Hashable' is intended exclusively for use in in-memory data structures.
.
'Hashable' does /not/ have a fixed standard.
This allows it to improve over time.
.
Because it does not have a fixed standard, different computers or computers on different versions of the code will observe different hash values.
As such, 'hashable' is not recommended for use other than in-memory datastructures.
Specifically, 'hashable' is not intended for network use or in applications which persist hashed values.
For stable hashing use named hashes: sha256, crc32, xxhash etc.
homepage: http://github.com/haskell-unordered-containers/hashable
license: BSD-3-Clause
license-file: LICENSE
author:
Milan Straka <fox@ucw.cz>
Johan Tibell <johan.tibell@gmail.com>
maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>
bug-reports:
https://github.com/haskell-unordered-containers/hashable/issues
stability: Provisional
category: Data
build-type: Simple
tested-with:
GHC ==9.6.5 || ==9.8.2 || ==9.8.3 || ==9.10.1 || ==9.12.1
extra-source-files:
CHANGES.md
include/HsHashable.h
include/HsXXHash.h
README.md
xxHash-0.8.2/xxhash.h
flag arch-native
description:
Use @-march=native@ when compiling C sources.
Portable implementation is 15-50% slower.
Consider enabling this flag if hashing performance is important.
manual: True
default: False
flag random-initial-seed
description:
Randomly initialize the initial seed on each final executable invocation
This is useful for catching cases when you rely on (non-existent)
stability of hashable's hash functions.
This is not a security feature.
manual: True
default: False
library
exposed-modules:
Data.Hashable
Data.Hashable.Generic
Data.Hashable.Lifted
other-modules:
Data.Hashable.Class
Data.Hashable.FFI
Data.Hashable.Generic.Instances
Data.Hashable.Imports
Data.Hashable.LowLevel
Data.Hashable.Mix
Data.Hashable.XXH3
include-dirs: include xxHash-0.8.2
includes:
HsHashable.h
HsXXHash.h
xxhash.h
hs-source-dirs: src
build-depends:
, base >=4.18.0.0 && <4.22
, bytestring >=0.11.5.3 && <0.13
, containers >=0.6.7 && <0.8
, deepseq >=1.4.8.1 && <1.6
, ghc-prim
, text >=2.0.2 && <2.2
-- depend on os-string on newer GHCs only.
-- os-string has tight lower bound on bytestring, which prevents
-- using bundled version on older GHCs.
build-depends: os-string >=2.0.2 && <2.1
-- we also ensure that we can get filepath-1.5 only with GHC-9.2
-- therefore there is else-branch with stricter upper bound.
build-depends: filepath >=1.4.200.1 && <1.6
-- Integer internals
build-depends: ghc-bignum >=1.3 && <1.4
if (flag(random-initial-seed) && impl(ghc))
cpp-options: -DHASHABLE_RANDOM_SEED=1
if os(windows)
c-sources: cbits-win/init.c
else
c-sources: cbits-unix/init.c
default-language: Haskell2010
other-extensions:
BangPatterns
CPP
DeriveDataTypeable
FlexibleContexts
FlexibleInstances
GADTs
KindSignatures
MagicHash
MultiParamTypeClasses
QuantifiedConstraints
ScopedTypeVariables
Trustworthy
TypeOperators
UnliftedFFITypes
ghc-options: -Wall
if flag(arch-native)
-- Cabal doesn't pass cc-options to "ordinary" Haskell source compilation
-- https://github.com/haskell/cabal/issues/9801
ghc-options: -optc=-march=native -optc-mtune=native
if impl(ghc >=9.0)
-- these flags may abort compilation with GHC-8.10
-- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295
ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode
test-suite hashable-tests
type: exitcode-stdio-1.0
hs-source-dirs: tests
main-is: Main.hs
other-modules:
Properties
Regress
build-depends:
, base
, bytestring
, filepath
, ghc-prim
, hashable
, HUnit
, QuickCheck >=2.15
, random >=1.0 && <1.3
, tasty ^>=1.5
, tasty-hunit ^>=0.10.1
, tasty-quickcheck ^>=0.10.3 || ^>=0.11
, text >=0.11.0.5
if impl(ghc >=9.2)
build-depends: os-string
if !os(windows)
build-depends: unix
cpp-options: -DHAVE_MMAP
other-modules: Regress.Mmap
other-extensions: CApiFFI
ghc-options: -Wall -fno-warn-orphans
default-language: Haskell2010
test-suite xxhash-tests
type: exitcode-stdio-1.0
hs-source-dirs: tests src
main-is: xxhash-tests.hs
other-modules:
Data.Hashable.FFI
Data.Hashable.XXH3
default-language: Haskell2010
build-depends:
, base <5
, bytestring
, primitive ^>=0.9.0.0
, tasty ^>=1.5
, tasty-hunit ^>=0.10.1
, tasty-quickcheck ^>=0.10.3 || ^>=0.11
include-dirs: include xxHash-0.8.2
includes:
HsXXHash.h
xxhash.h
if !impl(ghc >=9.4)
build-depends: data-array-byte >=0.1.0.1 && <0.2
test-suite hashable-examples
type: exitcode-stdio-1.0
build-depends:
, base
, ghc-prim
, hashable
hs-source-dirs: examples
main-is: Main.hs
default-language: Haskell2010
source-repository head
type: git
location:
https://github.com/haskell-unordered-containers/hashable.git