# Buildsheet autogenerated by ravenadm tool -- Do not edit.

NAMEBASE=		python-e3-core
VERSION=		22.6.0
KEYWORDS=		python
VARIANTS=		v13 v12
SDESC[v12]=		Adacore testing and building tools (3.12)
SDESC[v13]=		Adacore testing and building tools (3.13)
HOMEPAGE=		https://github.com/AdaCore/e3-core
CONTACT=		John_Marino[draco@marino.st]

DOWNLOAD_GROUPS=	main
SITES[main]=		GITHUB/AdaCore:e3-core:v22.6.0
DISTFILE[1]=		generated:main
DIST_SUBDIR=		python-src
DF_INDEX=		1
SPKGS[v12]=		single
SPKGS[v13]=		single

OPTIONS_AVAILABLE=	PY313 PY312
OPTIONS_STANDARD=	none
VOPTS[v12]=		PY313=OFF PY312=ON
VOPTS[v13]=		PY313=ON PY312=OFF

BUILD_DEPENDS=		python-wheel:single:python_used
			python-pip:single:python_used
			python-setuptools:single:python_used
BR_DEPS[linux]=		python-distro:single:python_used
			python-psutil:single:python_used

PLIST_SUB=		DIVER=22.6
			OPSYS={{OPSYS:tl}}
SUB_FILES=		build_rlimit.sh
SUB_LIST=		PYCMD="{{PYTHON_CMD}}"

[PY312].BUILDRUN_DEPENDS_ON=		python-colorama:single:v12
					python-PyYAML:single:v12
					python-python-dateutil:single:v12
					python-requests:single:v12
					python-requests-cache:single:v12
					python-requests-toolbelt:single:v12
					python-tqdm:single:v12
					python-stevedore:single:v12
					python-packaging:single:v12
[PY312].USES_ON=			python:v12

[PY313].BUILDRUN_DEPENDS_ON=		python-colorama:single:v13
					python-PyYAML:single:v13
					python-python-dateutil:single:v13
					python-requests:single:v13
					python-requests-cache:single:v13
					python-requests-toolbelt:single:v13
					python-tqdm:single:v13
					python-stevedore:single:v13
					python-packaging:single:v13
[PY313].USES_ON=			python:v13

pre-build:
	${MV} ${WRKDIR}/build_rlimit.sh ${WRKSRC}/tools/rlimit
	(cd ${WRKSRC}/tools/rlimit && ${SETENV} ${MAKE_ENV} ${SH} ./build_rlimit.sh)

do-build:
	(cd ${WRKSRC} && pip install --no-build-isolation --verbose .)

post-extract:
	# unbelievable.  prebuilt rlimit binaries for like 20 systems.
	# get rid of it all so we can rebuild
	${RM} ${WRKSRC}/src/e3/os/data/rlimit-*

do-install:
	whl=$$(find /root/.cache/pip/wheels -name "*.whl");\
	pip install \
		--verbose \
		--no-index \
		--no-compile \
		--force-reinstall \
		--progress-bar off \
		--root=${STAGEDIR} \
		--root-user-action=ignore \
		--disable-pip-version-check \
		--no-deps $$whl
	${FIND} ${STAGEDIR}${PREFIX}/lib -name "rlimit-*" | xargs ${STRIP_CMD}

[FILE:2913:descriptions/desc.single]
The `e3` Project
================

[Build Status]
[Checked with mypy]
[Documentation Status]
[codecov]
[![Code style: black]](https://github.com/psf/black)
[CII Best Practices]

This present project (`e3`) is a Python framework to ease the development
of portable automated build systems (compilation, dependencies management,
binary code packaging, and automated testing).

The `e3` framework is split across multiple Python packages named
`e3-<name>`
and sharing the same namespace: `e3`.

`e3-core` content
=================

`e3-core` package is organized in several packages and modules:

- *anod*: build system handling dependencies management and binary code
  packaging. This includes a driver that can parse `.anod` specification
  files.
- *archive*: support for reading and writing tar and zip archives
- *collection*: generic collections, e.g. an implementation of Direct
Acyclic
  Graphs
- *cve*: small interface to NVD API to query CVE impacting a CPE
- *decorator*: Python decorators, e.g. a memoize decorator
- *diff*: functions to compute a diff or apply it
- *electrolyt*: support for parsing build plans
- *env*: global environment handling
- *error*: `e3` exceptions
- *event*: interface for notifying external services
- *fingerprint*: support for creating a synthetic view of set of
  conditions and determining whether those conditions have changed
  or not.
- *fs*: high-level file system operations, using globbing, walk,...
- *hash*: computation of sha1, md5
- *log*: logging helpers
- *main*: main program initialization, command line parsing,...
- *mainloop*: generic loop for running jobs
- *net*: network utilities
  - *net.http*: helper for sending http requests and downloading files
  - *net.smtp*: helper for sending emails through smtp
- *os*: platform independent interface to Operating System functions
  - *os.fs*: low-level file system operations, no logging involved
  - *os.platform*: tools to detect the platform
  - *os.process*: interface to run process, to control the execution
time,...
  - *os.timezone*: platform independent interface to get the machine
timezone
- *platform*: generic interface for providing platform information
- *platform_db*: knowledge base for computing platform information
- *spdx*: simple interface for generating SPDX files
- *store*: interface to download and store resources in a store
- *sys*: `e3` information, sanity check, ...
- *text*: text formatting and transformation
- *vcs*: high level interface to VCS repositories
- *yaml*: helpers for parsing yaml data

See [e3-core documentation] for
more details.

Install
=======

requires: Python >=3.9

e3-core releases are available on PyPI and can be installed by running:

```bash
pip install e3-core
```

To install from the source package, run:

```bash
python setup.py install
```

All `e3` dependencies will also be installed.

Contributing
============

See [CONTRIBUTING.md].


[FILE:119:distinfo]
981e8fa6fbac2ef657febf3c25f60e6220807ce9876fcb812658b4fee3f9c8e3       558104 python-src/AdaCore-e3-core-22.6.0.tar.gz


[FILE:2139:manifests/plist.single]
%%PYTHON_SITELIBDIR%%/e3/
 archive.py
 config.py
 cve.py
 date.py
 decorator.py
 diff.py
 dsse.py
 env.py
 error.py
 fingerprint.py
 fs.py
 hash.py
 json.py
 log.py
 main.py
 mypy.py
 platform.py
 py.typed
 pytest.py
 spdx.py
 sys.py
 text.py
 yaml.py
%%PYTHON_SITELIBDIR%%/e3/anod/
 __init__.py
 buildspace.py
 checkout.py
 context.py
 deps.py
 driver.py
 error.py
 helper.py
 loader.py
 package.py
 qualifiers_manager.py
 queries.py
 spec.py
 status.py
%%PYTHON_SITELIBDIR%%/e3/anod/action/__init__.py
%%PYTHON_SITELIBDIR%%/e3/anod/sandbox/
 __init__.py
 main.py
 scripts.py
%%PYTHON_SITELIBDIR%%/e3/collection/
 __init__.py
 dag.py
 toggleable_bool.py
 trie.py
%%PYTHON_SITELIBDIR%%/e3/electrolyt/
 __init__.py
 entry_point.py
 host.py
 plan.py
 run.py
%%PYTHON_SITELIBDIR%%/e3/encoding/
 __init__.py
 vex.py
%%PYTHON_SITELIBDIR%%/e3/event/__init__.py
%%PYTHON_SITELIBDIR%%/e3/event/handler/
 __init__.py
 file.py
 logging.py
 s3.py
 smtp.py
%%PYTHON_SITELIBDIR%%/e3/job/
 __init__.py
 scheduler.py
 walk.py
%%PYTHON_SITELIBDIR%%/e3/mock/__init__.py
%%PYTHON_SITELIBDIR%%/e3/mock/os/
 __init__.py
 process.py
%%PYTHON_SITELIBDIR%%/e3/net/
 __init__.py
 http.py
 smtp.py
 token.py
%%PYTHON_SITELIBDIR%%/e3/os/
 __init__.py
 fs.py
 platform.py
 process.py
 timezone.py
%%PYTHON_SITELIBDIR%%/e3/os/data/rlimit-%%OPSYS%%
%%PYTHON_SITELIBDIR%%/e3/os/windows/
 __init__.py
 fs.py
 native_api.py
 object.py
 process.py
%%PYTHON_SITELIBDIR%%/e3/platform_db/
 __init__.py
 knowledge_base.py
%%PYTHON_SITELIBDIR%%/e3/python/
 __init__.py
 pypi.py
 pypiscript.py
 wheel.py
%%PYTHON_SITELIBDIR%%/e3/slsa/
 __init__.py
 provenance.py
%%PYTHON_SITELIBDIR%%/e3/store/__init__.py
%%PYTHON_SITELIBDIR%%/e3/store/backends/
 __init__.py
 base.py
 http_simple_store.py
%%PYTHON_SITELIBDIR%%/e3/store/cache/__init__.py
%%PYTHON_SITELIBDIR%%/e3/store/cache/backends/
 __init__.py
 base.py
 filecache.py
%%PYTHON_SITELIBDIR%%/e3/vcs/
 __init__.py
 git.py
 svn.py
%%PYTHON_SITELIBDIR%%/e3_core-%%DIVER%%.dist-info/
 COPYING3
 INSTALLER
 METADATA
 RECORD
 REQUESTED
 WHEEL
 direct_url.json
 entry_points.txt
 top_level.txt
bin/
 e3
 e3-pypi-closure
 e3-sandbox


[FILE:199:files/build_rlimit.sh.in]
#!/bin/sh
# This script is expected to be at tools/rlimit

platform=$(%%PYCMD%% -c "import platform; print (platform.system().lower())")

cc $CFLAGS -o ../../src/e3/os/data/rlimit-$platform rlimit.c