diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-chiabip158.spec | 335 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 337 insertions, 0 deletions
@@ -0,0 +1 @@ +/chiabip158-1.2.tar.gz diff --git a/python-chiabip158.spec b/python-chiabip158.spec new file mode 100644 index 0000000..9ec4065 --- /dev/null +++ b/python-chiabip158.spec @@ -0,0 +1,335 @@ +%global _empty_manifest_terminate_build 0 +Name: python-chiabip158 +Version: 1.2 +Release: 1 +Summary: Chia BIP158 (wraps C++) +License: Apache License +URL: https://github.com/Chia-Network/chiabip158 +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a7/4e/4030772df8f49cbacf516792f7dba2cc0ea8f3834eadccb7abb955861dc2/chiabip158-1.2.tar.gz + + +%description +# Chia BIP158 + + + + + + +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/alerts/) +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/context:python) +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/context:cpp) + +This implements the compact block filter construction in BIP 158. The code is +not used anywhere in the Bitcoin Core code base yet. The next step towards +BIP 157 support would be to create an indexing module similar to TxIndex that +constructs the basic and extended filters for each validated block. + +## Install + +```bash +python3 -m venv venv +. venv/bin/activate +pip3 install . +``` + +## Run python tests + +```bash +python3 tests/simple_test.py +``` + +## Installation steps on a fresh OSX image + +Install brew: + +```bash +ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + +brew install python3 +brew install boost +``` + +At this point the only error is can’t find boost_thread lib + +The issue is the homebrew boost ships libboost_thread-mt libs but doesn’t +include plain libboost_thread, so clang can’t find it. Interestingly, homebrew +boost does have both plain and -mt files for the libboost_system libraries. + +```bash +$ find /usr/local/lib/ | grep boost_thread +libboost_thread-mt.a +libboost_thread-mt.dylib +``` + +Solution, with no guarantees that this is "the Right Way to do things", but +appears to work fine for the configure stage: + +```bash +cd /usr/local/lib +ln -s libboost_thread-mt.a libboost_thread.a +ln -s libboost_thread-mt.dylib libboost_thread.dylib +``` + +## ci Building + +The primary build process for this repository is to use GitHub Actions to +build binary wheels for MacOS, Linux (x64 and aarch64), and Windows and publish +them with a source wheel on PyPi. See `.github/workflows/build.yml`. CMake uses +[FetchContent](https://cmake.org/cmake/help/latest/module/FetchContent.html) +to download [pybind11](https://github.com/pybind/pybind11). Building is then +managed by [cibuildwheel](https://github.com/joerick/cibuildwheel). Further +installation is then available via `pip install chiabip158` e.g. + +## Contributing and workflow + +Contributions are welcome and more details are available in chia-blockchain's +[CONTRIBUTING.md](https://github.com/Chia-Network/chia-blockchain/blob/master/CONTRIBUTING.md). + +The master branch is usually the currently released latest version on PyPI. +Note that at times chiabip158 will be ahead of the release version that +chia-blockchain requires in it's master/release version in preparation for a +new chia-blockchain release. Please branch or fork master and then create a +pull request to the master branch. Linear merging is enforced on master and +merging requires a completed review. PRs will kick off a GitHub actions ci +build and analysis of chiabip158 at +[lgtm.com](https://lgtm.com/projects/g/Chia-Network/chiabip158/?mode=list). +Please make sure your build is passing and that it does not increase alerts +at lgtm. + + +%package -n python3-chiabip158 +Summary: Chia BIP158 (wraps C++) +Provides: python-chiabip158 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-chiabip158 +# Chia BIP158 + + + + + + +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/alerts/) +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/context:python) +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/context:cpp) + +This implements the compact block filter construction in BIP 158. The code is +not used anywhere in the Bitcoin Core code base yet. The next step towards +BIP 157 support would be to create an indexing module similar to TxIndex that +constructs the basic and extended filters for each validated block. + +## Install + +```bash +python3 -m venv venv +. venv/bin/activate +pip3 install . +``` + +## Run python tests + +```bash +python3 tests/simple_test.py +``` + +## Installation steps on a fresh OSX image + +Install brew: + +```bash +ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + +brew install python3 +brew install boost +``` + +At this point the only error is can’t find boost_thread lib + +The issue is the homebrew boost ships libboost_thread-mt libs but doesn’t +include plain libboost_thread, so clang can’t find it. Interestingly, homebrew +boost does have both plain and -mt files for the libboost_system libraries. + +```bash +$ find /usr/local/lib/ | grep boost_thread +libboost_thread-mt.a +libboost_thread-mt.dylib +``` + +Solution, with no guarantees that this is "the Right Way to do things", but +appears to work fine for the configure stage: + +```bash +cd /usr/local/lib +ln -s libboost_thread-mt.a libboost_thread.a +ln -s libboost_thread-mt.dylib libboost_thread.dylib +``` + +## ci Building + +The primary build process for this repository is to use GitHub Actions to +build binary wheels for MacOS, Linux (x64 and aarch64), and Windows and publish +them with a source wheel on PyPi. See `.github/workflows/build.yml`. CMake uses +[FetchContent](https://cmake.org/cmake/help/latest/module/FetchContent.html) +to download [pybind11](https://github.com/pybind/pybind11). Building is then +managed by [cibuildwheel](https://github.com/joerick/cibuildwheel). Further +installation is then available via `pip install chiabip158` e.g. + +## Contributing and workflow + +Contributions are welcome and more details are available in chia-blockchain's +[CONTRIBUTING.md](https://github.com/Chia-Network/chia-blockchain/blob/master/CONTRIBUTING.md). + +The master branch is usually the currently released latest version on PyPI. +Note that at times chiabip158 will be ahead of the release version that +chia-blockchain requires in it's master/release version in preparation for a +new chia-blockchain release. Please branch or fork master and then create a +pull request to the master branch. Linear merging is enforced on master and +merging requires a completed review. PRs will kick off a GitHub actions ci +build and analysis of chiabip158 at +[lgtm.com](https://lgtm.com/projects/g/Chia-Network/chiabip158/?mode=list). +Please make sure your build is passing and that it does not increase alerts +at lgtm. + + +%package help +Summary: Development documents and examples for chiabip158 +Provides: python3-chiabip158-doc +%description help +# Chia BIP158 + + + + + + +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/alerts/) +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/context:python) +[](https://lgtm.com/projects/g/Chia-Network/chiabip158/context:cpp) + +This implements the compact block filter construction in BIP 158. The code is +not used anywhere in the Bitcoin Core code base yet. The next step towards +BIP 157 support would be to create an indexing module similar to TxIndex that +constructs the basic and extended filters for each validated block. + +## Install + +```bash +python3 -m venv venv +. venv/bin/activate +pip3 install . +``` + +## Run python tests + +```bash +python3 tests/simple_test.py +``` + +## Installation steps on a fresh OSX image + +Install brew: + +```bash +ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + +brew install python3 +brew install boost +``` + +At this point the only error is can’t find boost_thread lib + +The issue is the homebrew boost ships libboost_thread-mt libs but doesn’t +include plain libboost_thread, so clang can’t find it. Interestingly, homebrew +boost does have both plain and -mt files for the libboost_system libraries. + +```bash +$ find /usr/local/lib/ | grep boost_thread +libboost_thread-mt.a +libboost_thread-mt.dylib +``` + +Solution, with no guarantees that this is "the Right Way to do things", but +appears to work fine for the configure stage: + +```bash +cd /usr/local/lib +ln -s libboost_thread-mt.a libboost_thread.a +ln -s libboost_thread-mt.dylib libboost_thread.dylib +``` + +## ci Building + +The primary build process for this repository is to use GitHub Actions to +build binary wheels for MacOS, Linux (x64 and aarch64), and Windows and publish +them with a source wheel on PyPi. See `.github/workflows/build.yml`. CMake uses +[FetchContent](https://cmake.org/cmake/help/latest/module/FetchContent.html) +to download [pybind11](https://github.com/pybind/pybind11). Building is then +managed by [cibuildwheel](https://github.com/joerick/cibuildwheel). Further +installation is then available via `pip install chiabip158` e.g. + +## Contributing and workflow + +Contributions are welcome and more details are available in chia-blockchain's +[CONTRIBUTING.md](https://github.com/Chia-Network/chia-blockchain/blob/master/CONTRIBUTING.md). + +The master branch is usually the currently released latest version on PyPI. +Note that at times chiabip158 will be ahead of the release version that +chia-blockchain requires in it's master/release version in preparation for a +new chia-blockchain release. Please branch or fork master and then create a +pull request to the master branch. Linear merging is enforced on master and +merging requires a completed review. PRs will kick off a GitHub actions ci +build and analysis of chiabip158 at +[lgtm.com](https://lgtm.com/projects/g/Chia-Network/chiabip158/?mode=list). +Please make sure your build is passing and that it does not increase alerts +at lgtm. + + +%prep +%autosetup -n chiabip158-1.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-chiabip158 -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2-1 +- Package Spec generated @@ -0,0 +1 @@ +a25745a8da67c598f26fddf2d02c44be chiabip158-1.2.tar.gz |