diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-clade.spec | 346 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 348 insertions, 0 deletions
@@ -0,0 +1 @@ +/clade-4.0.4.tar.gz diff --git a/python-clade.spec b/python-clade.spec new file mode 100644 index 0000000..46c6060 --- /dev/null +++ b/python-clade.spec @@ -0,0 +1,346 @@ +%global _empty_manifest_terminate_build 0 +Name: python-clade +Version: 4.0.4 +Release: 1 +Summary: Clade is a tool for extracting information about software build process and source code +License: LICENSE.txt +URL: https://github.com/17451k/clade +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/15/57/a026f4af0c498622e78d61de46317935d7de0bdba0e3fddb06b57271cd69/clade-4.0.4.tar.gz + +Requires: python3-ujson +Requires: python3-charset-normalizer +Requires: python3-graphviz +Requires: python3-ply +Requires: python3-pytest +Requires: python3-black +Requires: python3-flake8 +Requires: python3-mypy + +%description +[](https://github.com/17451k/clade/actions?query=workflow%3Atest) +[](https://pypi.org/project/clade) +[](https://pypi.org/project/clade) + +# Clade + +Clade is a tool for intercepting build commands (stuff like compilation, +linking, mv, rm, and all other commands that are executed during build). +Intercepted commands can be parsed (to search for input and output files, +and options) and then used for various purposes: + +- generating [compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html); +- obtaining information about dependencies between source and object files; +- obtaining information about the source code (source code querying); +- generating function call graph; +- running software verification tools; +- visualization of all collected information; +- *and for much more*. + +The interception of build commands is independent of the project type +and used programming languages. +However, all other functionality available in Clade **IS** dependent. +Currently only C projects are supported, but other languages and additional +functionality can be supported through the built-in *extension mechanism*. + +## Prerequisites + +An important part of Clade - a build commands intercepting library - +is written in C and it needs to be compiled before use. +It will be performed automatically at the installation stage, but you will +need to install some prerequisites beforehand: + +- Python 3 (>=3.5) +- pip (Python package manager) +- cmake (>=3.3) + +*Linux only*: + +- make +- C **and** C++ compiler (gcc or clang) +- python3-dev (Ubuntu) or python3-devel (openSUSE) package +- gcc-multilib (Ubuntu) or gcc-32bit (openSUSE) package + to intercept build commands of projects leveraging multilib capabilities + +*Windows only*: + +- Microsoft Visual C++ Build Tools + +Optional dependencies: + +- For obtaining information about the C code you will need [CIF](https://github.com/17451k/cif) + installed. CIF is an interface to [Aspectator](https://github.com/17451k/aspectator) which in turn is a GCC + based tool that implements aspect-oriented programming for the C programming + language. You may download compiled CIF on [CIF releases](https://github.com/17451k/cif/releases) page. +- Graphviz for some visualization capabilities. + +Clade works on Linux, macOS and partially on Windows. + +## Hardware requirements + +If you want to run Clade on a large project, like the Linux kernel, +you will need at least 16GB of RAM and 100GB of free disk space +for temporary files. The size of generated data will be approximately +10GB, so the space used for temporary files will be freed at the end. +Also several CPU cores are recommended, since in some cases Clade takes +twice as long time than a typical build process. + +## Installation + +To install the latest stable version just run the following command: + +``` shell +$ python3 -m pip install clade +``` + +## Documentation + +Following documentation is available: +* [Basic usage](docs/usage.md) +* [Available configuration options](docs/configuration.md) +* [Troubleshooting](docs/troubleshooting.md) +* [Development documentation](docs/dev.md) + +## Acknowledgments + +Clade is inspired by the [Bear](https://github.com/rizsotto/Bear) project created by [László Nagy](https://github.com/rizsotto). + + + + +%package -n python3-clade +Summary: Clade is a tool for extracting information about software build process and source code +Provides: python-clade +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-clade +[](https://github.com/17451k/clade/actions?query=workflow%3Atest) +[](https://pypi.org/project/clade) +[](https://pypi.org/project/clade) + +# Clade + +Clade is a tool for intercepting build commands (stuff like compilation, +linking, mv, rm, and all other commands that are executed during build). +Intercepted commands can be parsed (to search for input and output files, +and options) and then used for various purposes: + +- generating [compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html); +- obtaining information about dependencies between source and object files; +- obtaining information about the source code (source code querying); +- generating function call graph; +- running software verification tools; +- visualization of all collected information; +- *and for much more*. + +The interception of build commands is independent of the project type +and used programming languages. +However, all other functionality available in Clade **IS** dependent. +Currently only C projects are supported, but other languages and additional +functionality can be supported through the built-in *extension mechanism*. + +## Prerequisites + +An important part of Clade - a build commands intercepting library - +is written in C and it needs to be compiled before use. +It will be performed automatically at the installation stage, but you will +need to install some prerequisites beforehand: + +- Python 3 (>=3.5) +- pip (Python package manager) +- cmake (>=3.3) + +*Linux only*: + +- make +- C **and** C++ compiler (gcc or clang) +- python3-dev (Ubuntu) or python3-devel (openSUSE) package +- gcc-multilib (Ubuntu) or gcc-32bit (openSUSE) package + to intercept build commands of projects leveraging multilib capabilities + +*Windows only*: + +- Microsoft Visual C++ Build Tools + +Optional dependencies: + +- For obtaining information about the C code you will need [CIF](https://github.com/17451k/cif) + installed. CIF is an interface to [Aspectator](https://github.com/17451k/aspectator) which in turn is a GCC + based tool that implements aspect-oriented programming for the C programming + language. You may download compiled CIF on [CIF releases](https://github.com/17451k/cif/releases) page. +- Graphviz for some visualization capabilities. + +Clade works on Linux, macOS and partially on Windows. + +## Hardware requirements + +If you want to run Clade on a large project, like the Linux kernel, +you will need at least 16GB of RAM and 100GB of free disk space +for temporary files. The size of generated data will be approximately +10GB, so the space used for temporary files will be freed at the end. +Also several CPU cores are recommended, since in some cases Clade takes +twice as long time than a typical build process. + +## Installation + +To install the latest stable version just run the following command: + +``` shell +$ python3 -m pip install clade +``` + +## Documentation + +Following documentation is available: +* [Basic usage](docs/usage.md) +* [Available configuration options](docs/configuration.md) +* [Troubleshooting](docs/troubleshooting.md) +* [Development documentation](docs/dev.md) + +## Acknowledgments + +Clade is inspired by the [Bear](https://github.com/rizsotto/Bear) project created by [László Nagy](https://github.com/rizsotto). + + + + +%package help +Summary: Development documents and examples for clade +Provides: python3-clade-doc +%description help +[](https://github.com/17451k/clade/actions?query=workflow%3Atest) +[](https://pypi.org/project/clade) +[](https://pypi.org/project/clade) + +# Clade + +Clade is a tool for intercepting build commands (stuff like compilation, +linking, mv, rm, and all other commands that are executed during build). +Intercepted commands can be parsed (to search for input and output files, +and options) and then used for various purposes: + +- generating [compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html); +- obtaining information about dependencies between source and object files; +- obtaining information about the source code (source code querying); +- generating function call graph; +- running software verification tools; +- visualization of all collected information; +- *and for much more*. + +The interception of build commands is independent of the project type +and used programming languages. +However, all other functionality available in Clade **IS** dependent. +Currently only C projects are supported, but other languages and additional +functionality can be supported through the built-in *extension mechanism*. + +## Prerequisites + +An important part of Clade - a build commands intercepting library - +is written in C and it needs to be compiled before use. +It will be performed automatically at the installation stage, but you will +need to install some prerequisites beforehand: + +- Python 3 (>=3.5) +- pip (Python package manager) +- cmake (>=3.3) + +*Linux only*: + +- make +- C **and** C++ compiler (gcc or clang) +- python3-dev (Ubuntu) or python3-devel (openSUSE) package +- gcc-multilib (Ubuntu) or gcc-32bit (openSUSE) package + to intercept build commands of projects leveraging multilib capabilities + +*Windows only*: + +- Microsoft Visual C++ Build Tools + +Optional dependencies: + +- For obtaining information about the C code you will need [CIF](https://github.com/17451k/cif) + installed. CIF is an interface to [Aspectator](https://github.com/17451k/aspectator) which in turn is a GCC + based tool that implements aspect-oriented programming for the C programming + language. You may download compiled CIF on [CIF releases](https://github.com/17451k/cif/releases) page. +- Graphviz for some visualization capabilities. + +Clade works on Linux, macOS and partially on Windows. + +## Hardware requirements + +If you want to run Clade on a large project, like the Linux kernel, +you will need at least 16GB of RAM and 100GB of free disk space +for temporary files. The size of generated data will be approximately +10GB, so the space used for temporary files will be freed at the end. +Also several CPU cores are recommended, since in some cases Clade takes +twice as long time than a typical build process. + +## Installation + +To install the latest stable version just run the following command: + +``` shell +$ python3 -m pip install clade +``` + +## Documentation + +Following documentation is available: +* [Basic usage](docs/usage.md) +* [Available configuration options](docs/configuration.md) +* [Troubleshooting](docs/troubleshooting.md) +* [Development documentation](docs/dev.md) + +## Acknowledgments + +Clade is inspired by the [Bear](https://github.com/rizsotto/Bear) project created by [László Nagy](https://github.com/rizsotto). + + + + +%prep +%autosetup -n clade-4.0.4 + +%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-clade -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 4.0.4-1 +- Package Spec generated @@ -0,0 +1 @@ +7fd301d5eee22565baa0d12360dcf45d clade-4.0.4.tar.gz |
