cross-sysroot 
cross-sysroot is a utility to generate sysroot for cross-compilation.
The tool expects the name of the targeted Linux distribution, its version, the targeted architecture and a file containing the list of the main required packages.
The tool will solve package dependencies and extract them into a given sysroot path.
The generated sysroot can be used as an argument for the toolchain command line argument --sysroot=
-
To install the utility:
pip3 install cross-sysroot -
Command usage:
usage: cross-sysroot [-h] [--verbose] --distribution {debian,ubuntu,raspbian}
--distribution-version DISTRIBUTION_VERSION
[--distribution-url DISTRIBUTION_URL] --architecture
{amd64,arm64,armhf,armel} --build-root BUILD_ROOT
package_list_file
Build package list for Linux Distribution.
positional arguments:
package_list_file File containing the list of packages (and their
versions)
optional arguments:
-h, --help show this help message and exit
--verbose Verbose mode
--distribution {debian,ubuntu, raspbian}
Linux distribution
--distribution-version DISTRIBUTION_VERSION
Linux distribution
--distribution-url DISTRIBUTION_URL
Linux distribution URL
--architecture {amd64,arm64,armhf,armel}
CPU Architecture
--build-root BUILD_ROOT
Location to store the Linux Distribution package.
--cross-gcc CROSS_GCC
GCC Path used to build the cross application. When
set, all GCC sysroot files are copied into the
sysroot.
- Example 1:
cross-sysroot --distribution debian --distribution-version stable --architecture arm64 --build-root /tmp/cross-sysroot tests/requirements-debian-jessie-arm64.txt
- Example 2: Considering
CROSS_COMPILEenvironment variable points to your cross-compilation toolchain:
cross-sysroot --distribution debian --distribution-version stable --architecture arm64 --build-root /tmp/cross-sysroot --cross-gcc ${CROSS_COMPILE}gcc tests/requirements-debian-jessie-arm64.txt
Notes about Development/CI
-
Launch the python application from source tree:
PYTHONPATH=$PWD python3 -m cross_sysroot.cross_sysroot --help -
Generate a new PIP package
-
Run Python linter on the code:
sudo apt-get install pylint3 pylint3 cross_sysroot
-
Run test in the source tree:
PYTHONPATH=$PWD pytest
Development Information
Format of the Debian-based distribution repository
Location of Packages.gz:
- http://gb.archive.ubuntu.com/ubuntu/dists/trusty/main/binary-amd64/Packages.gz
- http://ftp.uk.debian.org/debian/dists/jessie/main/binary-amd64/Packages.gz
Content of Packages.gz:
(...)
Package: automake1.9
Priority: optional
Section: devel
Installed-Size: 1137
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Eric Dorland <eric@debian.org>
Architecture: all
Version: 1.9.6+nogfdl-4ubuntu1
Provides: automaken
Depends: autoconf (>= 2.58), autotools-dev (>= 20020320.1)
Suggests: automake1.9-doc
Conflicts: automake (<< 1:1.4-p5-1), automake1.5 (<< 1.5-2), automake1.6 (<< 1.6.1-4)
Filename: pool/main/a/automake1.9/automake1.9_1.9.6+nogfdl-4ubuntu1_all.deb
Size: 338192
MD5sum: 5bc0b73852c50927a98ac4150cf2c585
SHA1: 8dbab4e448dd095f7ab9dc6defe308823cd1b16a
SHA256: 75358908ffe09e115d3971273c967306dd931b94edd846dbd6a762448e40cb56
Description: A tool for generating GNU Standards-compliant Makefiles
Description-md5: 16f7c6a70ae85327f4522569aa2e0cc9
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 9m
Package: automoc
Priority: extra
Section: devel
Installed-Size: 122
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Architecture: amd64
Version: 1.0~version-0.9.88-5build1
Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libqtcore4 (>= 4:4.8.0), libstdc++6 (>= 4.1.1), libqt4-dev
Filename: pool/main/a/automoc/automoc_1.0~version-0.9.88-5build1_amd64.deb
Size: 32888
(...)
Metadata
Release files for cross-sysroot 0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cross-sysroot-0.4.tar.gz | 21.5 kB | Without provenance | Details for cross-sysroot-0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cross_sysroot-0.4-py3-none-any.whl | Python 3 | none | any | Details for cross_sysroot-0.4-py3-none-any.whl |
Total release size: 43.1 kB
Release files / cross-sysroot-0.4.tar.gz
| Download URL | cross-sysroot-0.4.tar.gz |
|---|---|
| Size | 21.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44b3ff6a725534102597218aafa85f216d5c8f4239f07efcd74482a406604eb3
|
|
BLAKE2b-256 checksum How to use checksums |
e8594d749ba214461e85fc869c601bb52e067d208c86d2d3c44af6ef9654a953
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6
|
Release files / cross_sysroot-0.4-py3-none-any.whl
| Download URL | cross_sysroot-0.4-py3-none-any.whl |
|---|---|
| Size | 21.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de4b98fec0076cc612adf333959ec2685d17f7db7ccdde0f620cd3969fbd73fa
|
|
BLAKE2b-256 checksum How to use checksums |
ef0894f3d6a44fa7ca31c76ade8f3c2edf49ed6aa1c3ae16156a1ca65a22179b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6
|
Security for cross-sysroot 0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.