solus-packages/common
Thomas Staudinger 9383e41382
yauto: Fix adding pyproject.toml deps and only do it once
**Summary**

The previous change to pyproject.toml happened to only work for sources also using other, higher-priority build systems. The logic for adding the dependencies to PYTHON_MODULE recipes was still based on strings.

Additionaly the dependencies were added multiple times for each `pyproject.toml` or `setup.cfg file` found. Don't add additional dependencies if PEP 517 is already among known_types

Make sure the PEP517 dependencies are correctly added if the source also uses other build systems instead of wrapping them in pkgconfig()

Signed-off-by: Thomas Staudinger <Staudi.Kaos@gmail.com>
2025-02-11 22:14:56 +01:00
..
CI libtcod: Update to v1.24.0 2025-01-29 19:37:36 -08:00
Go common: ypkg-tools: Update gopkg.in/yaml.v3 (#348) 2023-09-18 09:13:11 +01:00
Hooks Hooks: Add 'v' for 'version' to commit messages 2024-10-20 18:31:42 +02:00
Legacy/Scripts common/Legacy/Scripts/find-old-packages.py: Port to Python 3 + Black format 2024-04-04 14:59:41 +02:00
perl Update module load order. Add vstags to gitignore 2024-02-24 22:08:42 -06:00
Scripts yauto: Fix adding pyproject.toml deps and only do it once 2025-02-11 22:14:56 +01:00
Tasks qt5-virtualkeyboard: Deprecate and remove 2024-09-15 17:01:10 -05:00
.gitignore get_unique_updates Initial commit 2024-02-18 16:56:19 -06:00
autobuild-ignore-doxygen.yml samba: Add autobuild.yml files for dep resolution 2024-05-01 19:23:46 +02:00
autobuild-ignore-python-pytest.yml samba: Add autobuild.yml files for dep resolution 2024-05-01 19:23:46 +02:00
iso_packages.txt common: Update iso_packages.txt 2025-01-17 18:49:50 -05:00
Makefile common: Begin common cleanup and modernization. 2020-12-26 16:34:01 +02:00
Makefile.iso common: Begin common cleanup and modernization. 2020-12-26 16:34:01 +02:00
Makefile.toplevel common: Adjust makefile git urls for GH migration 2023-08-14 10:41:38 +01:00
mapping
README.md Update README.md 2024-02-22 16:06:04 -06:00
STATELESSNESS common: Rework update_stateless.sh script for monorepo 2024-05-30 01:00:14 +02:00

common

See this page for setup documentation.

Repositories

Cloning

To clone all repositories indicated in our packages file, run the below mentioned command. Please note that this list is not comprehensive and members of the Solus Team are required to run separate tooling to ensure this packages file is up-to-date (to include new files or remove deprecated ones):

make clone

Updating

To update all cloned repositories, run the following:

make pull

Building

To build a package, first ensure solbuild is set up and the adequate symlinks are set up. This can be done by following our Building a Package documentation on the Help Center, linked at the top of this document.

Go into the directory of the package you wish to build and type:

make

Publish

Submission is only possible for maintainers. As a maintainer you may freely push to your package(s) and initiate builds for them, which will be pushed to the unstable repository. You can watch builds at the Solus Package Build Status Page

If you're submitting a package.yml build, ensure you also commit the pspec_$ARCH.xml file, as builds are created from git tags.

cd $somepkg
make publish

solbuild

Install solbuild from the main repository. All builds are performed in the unstable repository, so unstable-x86_64 is the default build profile.

Install solbuild-config-unstable to lock builds to the unstable repository.

See man solbuild for further details.

Notes on yabi

This tool is not used directly anymore. It is kept as a useful example of how to use abi-wizard and explode eopkgs from go.

Historical information from DataDrake, note that ypkg3 is deprecated.

  1. yabi can and will mark libraries as missing if it cannot find them on your system.
  2. yabi can and will mark libraries as missing if it cannot find matches for symbols inside the library. I haven't had a chance to make the errors more verbose, so you'll have to use your judgment.
  3. It's OK to submit patches with UNKNOWN in abi_used_libs or abi_used_symbols. If you are updating a package and it's not part of a local stack upgrade, you probably have everything installed on your machine and it will work fine.
  4. yabi does not run inside the chroot so it won't see files from packages getting installed from your local repo. This won't be getting fixed until ypkg3 handles ABI stuff inside the chroot. And that's perfectly fine as the point of yabi is to make sure we have the new abi_used_symbols files. If a symbol has an unknown library, it's still at least recorded and a grep will find it and any additional information over what abireport can tell us, which is still an improvement.
  5. I intentionally made it so that yabi would update the ABI reports even if libraries are marked as missing. This is to work around (4). If you think it's a bug, please check against (1) and (2).