Merge pull request #6 from CereusLinuxProject/master

Backup current master branch in oldrepo
This commit is contained in:
Kevin Figueroa 2023-06-01 12:11:54 -04:00 committed by GitHub
commit be5540fc78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
243 changed files with 5207 additions and 1765 deletions

73
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View file

@ -0,0 +1,73 @@
name: Bug Report
description: File a bug report
labels: ["bug", "needs-testing"]
body:
- type: markdown
attributes:
value: >
#### Don't request an update of a package,
[We have a script for that](https://alpha.de.repo.voidlinux.org/void-updates/void-updates.txt).
However, a quality pull request may help.
- id: verified
type: dropdown
attributes:
label: Is this a new report?
description: I verified that there isn't already an open issue for this bug
options:
- "Yes"
- "No"
validations:
required: true
- id: xuname
type: input
attributes:
label: System Info
description: Output of `xuname` (part of [`xtools`](https://man.voidlinux.org/xtools.1))
placeholder: Void 5.x.y_z x86_64-musl ...
validations:
required: true
- id: packages
type: input
attributes:
label: Package(s) Affected
description: Affected package(s) including version (this can be found with `xbps-query -p pkgver foo`)
placeholder: foo-1.0.2_5, bar-5.6.7_1, baz-0.0.3_5, ...
validations:
required: true
- id: upstream
type: textarea
attributes:
label: Does a report exist for this bug with the project's home (upstream) and/or another distro?
description: If so, link it here (It's fine if there's none)
placeholder: |
For example:
https://bugs.kde.org/show_bug.cgi?id=432975
https://bugs.gentoo.org/767478
- id: expected
type: textarea
attributes:
label: Expected behaviour
description: A clear and concise description of what you expected to happen
placeholder: The package is supposed to do this thing.
validations:
required: true
- id: description
type: textarea
attributes:
label: Actual behaviour
description: A clear and concise description of what the bug is
placeholder: There was a crash when...
validations:
required: true
- id: steps
type: textarea
attributes:
label: Steps to reproduce
description: Clear steps to reproduce the bug
placeholder: |
1. Do the thing
2. Do the other thing
3. ???
4. Crash :(
validations:
required: true

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Other kind of issue
url: https://github.com/void-linux/void-packages/issues/new
about: For RFCs, tracking issues, etc (freeform text)

59
.github/ISSUE_TEMPLATE/pkg-request.yml vendored Normal file
View file

@ -0,0 +1,59 @@
name: Package Request
title: "Package request: "
description: Request the addition of a package
labels: ["request"]
body:
- type: markdown
attributes:
value: >
#### Don't request an update of a package,
[We have a script for that](https://alpha.de.repo.voidlinux.org/void-updates/void-updates.txt).
However, a quality pull request may help.
- id: name
type: input
attributes:
label: Package name
placeholder: foobar9k
validations:
required: true
- id: homepage
type: input
attributes:
label: Package homepage
placeholder: https://example.com/foobar9k
validations:
required: true
- id: description
type: textarea
attributes:
label: Description
description: What does the package do?
placeholder: >
Foobar9k is a music player that turns your music up to 11.
It provides features X, Y, and Z, which other music players in Void don't.
validations:
required: true
- id: quality
type: dropdown
attributes:
label: Does the requested package meet the package requirements?
description: |
See [CONTRIBUTING.md](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements) for details
multiple: true
options:
- System
- Compiled
- Required
validations:
required: true
- id: released
type: dropdown
attributes:
label: Is the requested package released?
description: |
See [CONTRIBUTING.md](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements) for details
options:
- "Yes"
- "No"
validations:
required: true

View file

@ -1,14 +1,8 @@
<!-- Don't request update of package. We have a script for that. https://alpha.de.repo.voidlinux.org/void-updates/void-updates.txt . However, a quality pull request may help. -->
### System
* xuname:
*output of ``xuname`` (part of xtools)*
* package:
*affected package(s) including the version*: ``xbps-query -p pkgver <pkgname>``
### Expected behavior
### Actual behavior
### Steps to reproduce the behavior
<!--
if you are creating a bug report or package request, please fill out one of the forms here:
https://github.com/void-linux/void-packages/issues/new/choose
Don't request an update of a package, We have a script for that:
https://alpha.de.repo.voidlinux.org/void-updates/void-updates.txt
However, a quality pull request may help.
-->

View file

@ -5,7 +5,7 @@
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
@ -13,7 +13,7 @@ https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuo
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):

View file

@ -2,18 +2,26 @@ name: Check build
on:
pull_request:
paths:
- 'srcpkgs/**'
push:
branches:
- 'ci-**'
paths:
- 'srcpkgs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# Lint changed templates.
xlint:
name: Lint templates
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
env:
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
PATH: '/usr/libexec/chroot-git:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
XLINT: '1'
LICENSE_LIST: common/travis/license.lst
@ -30,13 +38,13 @@ jobs:
# Build changed packages.
build:
name: Build packages
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
if: "!contains(github.event.pull_request.title, '[ci skip]') && !contains(github.event.pull_request.body, '[ci skip]')"
container:
image: 'ghcr.io/void-linux/xbps-src-masterdir:20210313rc01-${{ matrix.config.bootstrap }}'
image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-${{ matrix.config.bootstrap }}'
env:
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
PATH: '/usr/libexec/chroot-git:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
ARCH: '${{ matrix.config.arch }}'
BOOTSTRAP: '${{ matrix.config.bootstrap }}'
TEST: '${{ matrix.config.test }}'
@ -57,6 +65,9 @@ jobs:
steps:
- name: Prepare container
run: |
# switch to repo-ci mirror
mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf
# Sync and upgrade once, assume error comes from xbps update
xbps-install -Syu || xbps-install -yu xbps
# Upgrade again (in case there was a xbps update)
@ -90,6 +101,22 @@ jobs:
"$here/common/travis/show_files.sh" "$BOOTSTRAP" "$ARCH"
)
- name: Compare to previous
run: |
(
here="$(pwd)"
cd /
"$here/common/travis/xpkgdiff.sh" "$BOOTSTRAP" "$ARCH"
)
- name: Check file conflicts
if: matrix.config.arch == 'x86_64' # the arch indexed in xlocate
run: |
if [ -s /tmp/templates ]; then
xlocate -S &&
common/scripts/lint-conflicts $HOME/hostdir/binpkgs
fi
- name: Verify repository state
run: |
(

View file

@ -7,11 +7,16 @@ on:
jobs:
cycles:
runs-on: ubuntu-latest
permissions:
issues: write
container:
image: 'ghcr.io/void-linux/xbps-src-masterdir:20210313rc01-x86_64-musl'
image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-x86_64-musl'
steps:
- name: Prepare container
run: |
# switch to repo-ci mirror
mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf
# Sync and upgrade once, assume error comes from xbps update
xbps-install -Syu || xbps-install -yu xbps
# Upgrade again (in case there was a xbps update)
@ -28,6 +33,9 @@ jobs:
common/travis/prepare.sh
- name: Find cycles and open issues
run: |
PATH="/usr/libexec/chroot-git:$PATH"
# required by git 2.35.2+
git config --global --add safe.directory "$PWD"
common/scripts/xbps-cycles.py | tee cycles
grep 'Cycle:' cycles | while read -r line; do
if gh issue list -R "$GITHUB_REPOSITORY" -S "$line" | grep .; then

View file

@ -0,0 +1,46 @@
name: 'Cycle Check'
on: workflow_dispatch
jobs:
cycles:
runs-on: ubuntu-latest
permissions:
issues: write
container:
image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-x86_64-musl'
steps:
- name: Prepare container
run: |
# switch to repo-ci mirror
mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf
# Sync and upgrade once, assume error comes from xbps update
xbps-install -Syu || xbps-install -yu xbps
# Upgrade again (in case there was a xbps update)
xbps-install -yu
# Install script dependencies
xbps-install -y python3-networkx github-cli
- uses: actions/checkout@v1
with:
fetch-depth: 1
- name: Create hostrepo and prepare masterdir
run: |
ln -s "$(pwd)" /hostrepo &&
common/travis/set_mirror.sh &&
common/travis/prepare.sh
- name: Find cycles and open issues
run: |
PATH="/usr/libexec/chroot-git:$PATH"
# required by git 2.35.2+
git config --global --add safe.directory "$PWD"
common/scripts/xbps-cycles.py | tee cycles
grep 'Cycle:' cycles | while read -r line; do
if gh issue list -R "$GITHUB_REPOSITORY" -S "$line" | grep .; then
printf "Issue on '%s' already exists.\n" "$line"
else
gh issue create -R "$GITHUB_REPOSITORY" -b '' -t "$line"
fi
done
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN }}

18
.github/workflows/notify-telegram.yml vendored Normal file
View file

@ -0,0 +1,18 @@
name: Telegram notification
on: [push]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Notify to internal Telegram group on push
uses: appleboy/telegram-action@master
with:
to: ${{ secrets.TG_INTERNAL_GROUP_ID }}
token: ${{ secrets.TG_INTERNAL_BOT_TOKEN }}
format: markdown
message: |
[New commit](https://github.com/${{ github.repository }}/commit/${{github.sha}}) to [${{ github.repository }}](https://github.com/${{ github.repository }}):
*${{ github.event.commits[0].message }}* by [${{ github.actor }}](https://github.com/${{ github.actor }}).

View file

@ -9,13 +9,17 @@ on:
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v4
- uses: actions/stale@v6
with:
stale-issue-message: 'Issues become stale 90 days after last activity and are closed 7 days after that. If this issue is still relevant bump it or assign it.'
stale-pr-message: 'Pull Requests become stale 90 days after last activity and are closed 7 days after that. If this pull request is still relevant bump it or assign it.'
stale-issue-message: 'Issues become stale 90 days after last activity and are closed 14 days after that. If this issue is still relevant bump it or assign it.'
stale-pr-message: 'Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.'
days-before-stale: 90
days-before-close: 7
debug-only: true
days-before-close: 14
exempt-all-assignees: true
operations-per-run: 1000
ascending: true
operations-per-run: 250
exempt-issue-labels: 'request,bug,tracking'

View file

@ -4,15 +4,39 @@ void-packages is the backbone of the Void Linux distribution. It contains all th
This document describes how you, as a contributor, can help with adding packages, correcting bugs and adding features to void-packages.
## Getting your packages into Void by yourself
## Package Requirements
If you really want to get a package into Void Linux, we recommend you package it yourself.
To be included in the Void repository, software must meet at least one of the following requirements.
Exceptions to the list are possible, and might be accepted, but are extremely unlikely.
If you believe you have an exception, start a PR and make an argument for why that particular piece of software,
while not meeting any of the following requirements, is a good candidate for the Void packages system.
1. **System**: The software should be installed system-wide, not per-user.
1. **Compiled**: The software needs to be compiled before being used, even if it is software that is not needed by the whole system.
1. **Required**: Another package either within the repository or pending inclusion requires the package.
In particular, new themes are highly unlikely to be accepted.
Simple shell scripts are unlikely to be accepted unless they provide considerable value to a broad user base.
New fonts may be accepted if they provide value beyond aesthetics (e.g. they contain glyphs for a script missing in already packaged fonts).
Browser forks, including those based on Chromium and Firefox, are generally not accepted.
Such forks require heavy patching, maintenance and hours of build time.
Software need to be used in version announced by authors as ready to use by the general public - usually called releases.
Betas, arbitrary VCS revisions, templates using tip of development branch taken at build time and releases created by the package maintainer won't be accepted.
## Creating, updating, and modifying packages in Void by yourself
If you really want to get a new package or package update into Void Linux, we recommend you contribute it yourself.
We provide a [comprehensive Manual](./Manual.md) on how to create new packages.
There's also a [manual for xbps-src](./README.md), which is used
to build package files from templates.
There's also a [manual for xbps-src](./README.md), which is used to build package files from templates.
For this guide, we assume you have basic knowledge about [git](http://git-scm.org), as well as a [GitHub Account](http://github.com).
For this guide, we assume you have basic knowledge about [git](http://git-scm.org), as well as a [GitHub Account](http://github.com) with [SSH set up](https://docs.github.com/en/authentication/connecting-to-github-with-ssh).
You should also [set the email](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address) on your GitHub account and in git so your commits are associated with your GitHub account properly.
To get started, [fork](https://help.github.com/articles/fork-a-repo) the void-linux `void-packages` git repository on GitHub and clone it:
@ -23,9 +47,24 @@ To keep your forked repository up to date, setup the `upstream` remote to pull i
$ git remote add upstream https://github.com/void-linux/void-packages.git
$ git pull --rebase upstream master
This can also be done with the `github-cli` tool:
$ gh repo fork void-linux/void-packages
$ gh repo clone <user>/void-packages
This automatically sets up the `upstream` remote, so `git pull --rebase upstream master` can still be used to keep your fork up-to-date.
Using the GitHub web editor for making changes is strongly discouraged, because you will need to clone the repo anyways to edit and test your changes.
using the the `master` branch of your fork for contributing is also strongly discouraged.
It can cause many issues with updating your pull request (also called a PR), and having multiple PRs open at once.
To create a new branch:
$ git checkout master -b <a-descriptive-name>
### Creating a new template
You can use the helper tool `xnew`, from the [xtools](https://github.com/chneukirchen/xtools) package, to create new templates:
You can use the helper tool `xnew`, from the [xtools](https://github.com/leahneukirchen/xtools) package, to create new templates:
$ xnew pkgname subpkg1 subpkg2 ...
@ -33,44 +72,58 @@ Templates must have the name `void-packages/srcpkgs/<pkgname>/template`, where `
For deeper insights on the contents of template files, please read the [manual](./Manual.md), and be sure to browse the existing template files in the `srcpkgs` directory of this repository for concrete examples.
When you've finished working on the template file, please check it with `xlint` helper from the [xtools](https://github.com/chneukirchen/xtools) package:
### Updating a template
At minimum, a template update will consist of changing `version` and `checksum`, if there was an upstream version change, and/or `revision`, if a template-specific change (e.g. patch, correction, etc.) is needed.
Other changes to the template may be needed depending on what changes the upstream has made.
The checksum can be updated automatically with the `xgensum` helper from the [xtools](https://github.com/leahneukirchen/xtools) package:
$ xgensum -i <pkgname>
### Committing your changes
After making your changes, please check that the package builds successfully. From the top level directory of your local copy of the `void-packages` repository, run:
$ ./xbps-src pkg <pkgname>
Your package must build successfully for at least x86, but we recommend also trying a cross-build for armv6l* as well, e.g.:
$ ./xbps-src -a armv6l pkg <pkgname>
When building for `x86_64*` or `i686`, building with the `-Q` flag or with `XBPS_CHECK_PKGS=yes` set in `etc/conf` (to run the check phase) is strongly encouraged.
Also, new packages and updates will not be accepted unless they have been runtime tested by installing and running the package.
When you've finished working on the template file, please check it with `xlint` helper from the [xtools](https://github.com/leahneukirchen/xtools) package:
$ xlint template
If `xlint` reports any issues, resolve them before committing.
### Committing your changes
Once you have made and verified your changes to the package template and/or other files, make one commit per package (including all changes to its sub-packages). Each commit message should have one of the following formats:
* for new packages, use ```New package: <pkgname>-<version>``` ([example](https://github.com/void-linux/void-packages/commit/176d9655429188aac10cd229827f99b72982ab10)).
* for new packages, use `New package: <pkgname>-<version>` ([example](https://github.com/void-linux/void-packages/commit/8ed8d41c40bf6a82cf006c7e207e05942c15bff8)).
* for package updates, use ```<pkgname>: update to <version>.``` ([example](https://github.com/void-linux/void-packages/commit/b6b82dcbd4aeea5fc37a32e4b6a8dd8bd980d5a3)).
* for package updates, use `<pkgname>: update to <version>.` ([example](https://github.com/void-linux/void-packages/commit/c92203f1d6f33026ae89f3e4c1012fb6450bbac1)).
* for template modifications without a version change, use ```<pkgname>: <reason>``` ([example](https://github.com/void-linux/void-packages/commit/8b68d6bf1eb997cd5e7c095acd040e2c5379c91d)).
* for template modifications without a version change, use `<pkgname>: <reason>` ([example](https://github.com/void-linux/void-packages/commit/ff39c912d412717d17232de9564f659b037e95b5)).
* for package removals, use ```<pkgname>: remove package``` ([example](https://github.com/void-linux/void-packages/commit/83784632d94deee5d038c8e1c4c1dffa922fca21)).
* for package removals, use `<pkgname>: remove package` and include the removal reason in the commit body ([example](https://github.com/void-linux/void-packages/commit/4322f923bdf5d4e0eb36738d4f4717d72d0a0ca4)).
* for `common/shlibs` modifications, use `common/shlibs: <pkgname>` ([example](https://github.com/void-linux/void-packages/commit/613651c91811cb4fd2e1a6be701c87072d759a9f)).
* for changes to any other file, use `<filename>: <reason>` ([example](https://github.com/void-linux/void-packages/commit/e00bea014c36a70d60acfa1758514b0c7cb0627d),
[example](https://github.com/void-linux/void-packages/commit/93bf159ce10d8e474da5296e5bc98350d00c6c82), [example](https://github.com/void-linux/void-packages/commit/dc62938c67b66a7ff295eab541dc37b92fb9fb78), [example](https://github.com/void-linux/void-packages/commit/e52317e939d41090562cf8f8131a68772245bdde))
If you want to describe your changes in more detail, add an empty line followed by those details ([example](https://github.com/void-linux/void-packages/commit/f1c45a502086ba1952f23ace9084a870ce437bc6)).
If you want to describe your changes in more detail, explain in the commit body (separated from the first line with a blank line) ([example](https://github.com/void-linux/void-packages/commit/f1c45a502086ba1952f23ace9084a870ce437bc6)).
`xbump`, available in the [xtools](https://github.com/chneukirchen/xtools) package, can be used to commit a new or updated package:
`xbump`, available in the [xtools](https://github.com/leahneukirchen/xtools) package, can be used to commit a new or updated package:
$ xbump <pkgname> <git commit options>
`xbump` will use `git commit` to commit the changes with the appropriate commit message. For more fine-grained control over the commit, specific options can be passed to `git commit` by adding them after the package name.
`xrevbump`, also available in the [xtools](https://github.com/leahneukirchen/xtools) package, can be used to commit a template modification for a package:
After committing your changes, please check that the package builds successfully. From the top level directory of your local copy of the `void-packages` repository, run:
$ xrevbump '<message>' <pkgnames...>
$ ./xbps-src pkg <pkgname>
Your package must build successfully for at least x86, but we recommend trying to build for armv* as well, e.g.:
$ ./xbps-src -a armv7l pkg <pkgname>
Runtime testing of packages and building with the `-Q` flag or with `XBPS_CHECK_PKGS=yes` set in the environment or `etc/conf` are strongly encouraged.
New packages will not be accepted unless they have been runtime tested.
`xbump` and `xrevbump` will use `git commit` to commit the changes with the appropriate commit message. For more fine-grained control over the commit, specific options can be passed to `git commit` by adding them after the package name.
### Starting a pull request
@ -123,9 +176,31 @@ Once you have applied all requested changes, the reviewers will merge your reque
If the pull request becomes inactive for some days, the reviewers may or may not warn you when they are about to close it.
If it stays inactive further, it will be closed.
Please abstain from temporarily closing a pull request while revising the templates. Instead, leave a comment on the PR describing what still needs work, or add "[WIP]" to the PR title. Only close your pull request if you're sure you don't want your changes to be included.
Please abstain from temporarily closing a pull request while revising the templates. Instead, leave a comment on the PR describing what still needs work, [mark it as a draft](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft), or add "[WIP]" to the PR title. Only close your pull request if you're sure you don't want your changes to be included.
#### Publishing the package
Once the reviewers have merged the pull request, our [build server](http://build.voidlinux.org) is automatically triggered and builds
all packages in the pull request for all supported platforms. Upon completion, the packages are available to all Void Linux users.
## Testing Pull Requests
While it is the responsibility of the PR creator to test changes before sending it, one person can't test all configuration options, usecases, hardware, etc.
Testing new package submissions and updates is always helpful, and is a great way to get started with contributing.
First, [clone the repository](https://github.com/void-linux/void-packages#quick-start) if you haven't done so already.
Then check out the pull request, either with `github-cli`:
$ gh pr checkout <number>
Or with `git`:
If your local void-packages repository is cloned from your fork, you may need to add the main repository as a remote first:
$ git remote add upstream https://github.com/void-linux/void-packages.git
Then fetch and check out the PR (replacing `<remote>` with either `origin` or `upstream`):
$ git fetch <remote> pull/<number>/head:<branch-name>
$ git checkout <branch-name>
Then [build and install](https://github.com/void-linux/void-packages#building-packages) the package and test its functionality.

View file

@ -6,7 +6,6 @@ packages for XBPS, the `Void Linux` native packaging system.
*Table of Contents*
* [Introduction](#Introduction)
* [Quality Requirements](#quality_requirements)
* [Package build phases](#buildphase)
* [Package naming conventions](#namingconventions)
* [Libraries](#libs)
@ -62,6 +61,7 @@ packages for XBPS, the `Void Linux` native packaging system.
* [kernel-hooks](#triggers_kernel_hooks)
* [mimedb](#triggers_mimedb)
* [mkdirs](#triggers_mkdirs)
* [openjdk-profile](#triggers_openjdk_profile)
* [pango-modules](#triggers_pango_module)
* [pycompile](#triggers_pycompile)
* [register-shell](#triggers_register_shell)
@ -123,38 +123,6 @@ If everything went fine after running
a binary package named `foo-1.0_1.<arch>.xbps` will be generated in the local repository
`hostdir/binpkgs`.
<a id="quality_requirements"></a>
### Quality Requirements
To be included in the Void repository, software must meet at least one
of the following requirements. Exceptions to the list are possible,
and might be accepted, but are extremely unlikely. If you believe you have an
exception, start a PR and make an argument for why that particular piece of
software, while not meeting any of the following requirements, is a good candidate for
the Void packages system.
1. System: The software should be installed system-wide, not per-user.
1. Compiled: The software needs to be compiled before being used, even if it is
software that is not needed by the whole system.
1. Required: Another package either within the repository or pending inclusion
requires the package.
In particular, new themes are highly unlikely to be accepted. Simple shell
scripts are unlikely to be accepted unless they provide considerable value to a
broad user base. New fonts may be accepted if they provide value beyond
aesthetics (e.g. they contain glyphs for a script missing in already packaged
fonts).
Browser forks, including those based on Chromium and Firefox, are generally not
accepted. Such forks require heavy patching, maintenance and hours of build time.
Software need to be used in version announced by authors as ready to use by
the general public - usually called releases. Betas, arbitrary VCS revisions,
templates using tip of development branch taken at build time and releases
created by the package maintainer won't be accepted.
<a id="buildphase"></a>
### Package build phases
@ -427,6 +395,8 @@ in this directory such as `${XBPS_BUILDDIR}/${wrksrc}`.
- `XBPS_RUST_TARGET` The target architecture triplet used by `rustc` and `cargo`.
- `XBPS_BUILD_ENVIRONMENT` Enables continuous-integration-specific operations. Set to `void-packages-ci` if in continuous integration.
<a id="available_vars"></a>
### Available variables
@ -463,7 +433,7 @@ the generated `binary packages` have been modified.
- `short_desc` A string with a brief description for this package. Max 72 chars.
- `version` A string with the package version. Must not contain dashes or underscore
and at least one digit is required. Shell's variable substition usage is not allowed.
and at least one digit is required. Shell's variable substitution usage is not allowed.
Neither `pkgname` or `version` should contain special characters which make it
necessary to quote them, so they shouldn't be quoted in the template.
@ -542,13 +512,14 @@ can be specified by prepending a commercial at (@).
For tarballs you can find the contents checksum by using the command
`tar xf <tarball.ext> --to-stdout | sha256sum`.
- `wrksrc` The directory name where the package sources are extracted, by default
set to `${pkgname}-${version}`. If the top level directory of a package's `distfile` is different from the default, `wrksrc` must be set to the top level directory name inside the archive.
- `wrksrc` The directory name where the package sources are extracted, set to `${pkgname}-${version}`.
- `build_wrksrc` A directory relative to `${wrksrc}` that will be used when building the package.
- `create_wrksrc` Enable it to create the `${wrksrc}` directory. Required if a package
contains multiple `distfiles`.
- `create_wrksrc` Usually, after extracting, if there're multiple top-level
files and/or directories or when there're no directories at all, top-level files,
and directories will be wrapped inside one more layer of directory.
Set `create_wrksrc` to force this behaviour.
- `build_style` This specifies the `build method` for a package. Read below to know more
about the available package `build methods` or effect of leaving this not set.
@ -577,10 +548,8 @@ build methods. Unset by default.
`${build_style}` is set to `configure`, `gnu-configure` or `gnu-makefile`
build methods. Unset by default.
- `make_install_args` The arguments to be passed in to `${make_cmd}` at the `install-destdir`
phase if `${build_style}` is set to `configure`, `gnu-configure` or
`gnu-makefile` build methods. By default set to
`PREFIX=/usr DESTDIR=${DESTDIR}`.
- `make_install_args` The arguments to be passed in to `${make_cmd}` at the `install`
phase if `${build_style}` is set to `configure`, `gnu-configure` or `gnu-makefile` build methods.
- `make_build_target` The build target. If `${build_style}` is set to `configure`, `gnu-configure`
or `gnu-makefile`, this is the target passed to `${make_cmd}` in the build phase;
@ -600,6 +569,9 @@ path of the Python wheel produced by the build phase that will be installed; whe
`python-pep517` build style will look for a wheel matching the package name and version in the
current directory with respect to the install.
- `make_check_pre` The expression in front of `${make_cmd}`. This can be used for wrapper commands
or for setting environment variables for the check command. By default empty.
- `patch_args` The arguments to be passed in to the `patch(1)` command when applying
patches to the package sources during `do_patch()`. Patches are stored in
`srcpkgs/<pkgname>/patches` and must be in `-p1` format. By default set to `-Np1`.
@ -609,6 +581,11 @@ and `XBPS_MAKEJOBS` will be set to 1. If a package does not work well with `XBPS
but still has a mechanism to build in parallel, set `disable_parallel_build` and
use `XBPS_ORIG_MAKEJOBS` (which holds the original value of `XBPS_MAKEJOBS`) in the template.
- `disable_parallel_check` If set tests for the package won't be built and run in parallel
and `XBPS_MAKEJOBS` will be set to 1. If a package does not work well with `XBPS_MAKEJOBS`
but still has a mechanism to run checks in parallel, set `disable_parallel_check` and
use `XBPS_ORIG_MAKEJOBS` (which holds the original value of `XBPS_MAKEJOBS`) in the template.
- `make_check` Sets the cases in which the `check` phase is run.
This option has to be accompanied by a comment explaining why the tests fail.
Allowed values:
@ -653,7 +630,7 @@ debugging symbols. Files can be given by full path or by filename.
- `noshlibprovides` If set, the ELF binaries won't be inspected to collect the provided
sonames in shared libraries.
- `noverifyrdeps` If set, the ELF binaries and shared libaries won't be inspected to collect
- `noverifyrdeps` If set, the ELF binaries and shared libraries won't be inspected to collect
their reverse dependencies. You need to specify all dependencies in the `depends` when you
need to set this.
@ -693,7 +670,7 @@ This appends to the generated file rather than replacing it.
- `nopie` Only needs to be set to something to make active, disables building the package with hardening
features (PIE, relro, etc). Not necessary for most packages.
- `nopie_files` White-space seperated list of ELF binaries that won't be checked
- `nopie_files` White-space separated list of ELF binaries that won't be checked
for PIE. Files must be given by full path.
- `reverts` xbps supports a unique feature which allows to downgrade from broken
@ -779,7 +756,7 @@ A special value `noarch` used to be available, but has since been removed.
So far, we have listed four types of `depends` variables: `hostmakedepends`,
`makedepends`, `checkdepends` and `depends`. These different kinds of variables
are necessary because `xbps-src` supports cross compilation and to avoid
installing unecessary packages in the build environment.
installing unnecessary packages in the build environment.
During a build process, there are programs that must be _run_ on the host, such
as `yacc` or the C compiler. The packages that contain these programs should be
@ -1124,9 +1101,9 @@ Current working directory for functions is set as follows:
- For do_fetch, post_fetch: `XBPS_BUILDDIR`.
- For do_extract, post_extract: `wrksrc`.
- For do_extract through do_patch: `wrksrc`.
- For pre_patch through post_install: `build_wrksrc`
- For post_patch through post_install: `build_wrksrc`
if it is defined, otherwise `wrksrc`.
<a id="build_options"></a>
@ -1276,8 +1253,8 @@ declaring a virtual name and version in the `${provides}` template variable (e.g
specific provider can declare a dependency on the virtual package name with the prefix `virtual?`
(e.g., `depends="virtual?vpkg-0.1_1"`). When a package is built by `xbps-src`, providers for any
virtual packages will be confirmed to exist and will be built if necessary. A map from virtual
packages to their default providers is defined in `etc/default.virtual`. Individual mappings can be
overridden by local preferences in `etc/virtual`. Comments in `etc/default.virtual` provide more
packages to their default providers is defined in `etc/defaults.virtual`. Individual mappings can be
overridden by local preferences in `etc/virtual`. Comments in `etc/defaults.virtual` provide more
information on this map.
<a id="install_remove_files"></a>
@ -1406,6 +1383,14 @@ If the service requires directories in parts of the system that are not generall
temporary filesystems. Then use the `make_dirs` variable in the template to create
those directories when the package is installed.
If the package installs a systemd service file or other unit, leave it in place as a
reference point so long as including it has no negative side effects.
Examples of when *not* to install systemd units:
1. When doing so changes runtime behavior of the packaged software.
2. When it is done via a compile time flag that also changes build dependencies.
<a id="32bit_pkgs"></a>
### 32bit packages
@ -1585,12 +1570,11 @@ recursively by the target python version. This differs from `pycompile_module` i
path may be specified, Example: `pycompile_dirs="usr/share/foo"`.
- `python_version`: this variable expects the supported Python major version.
By default it's set to `2`. This variable is needed for multi-language
In most cases version is inferred from shebang, install path or build style.
Only required for some multi-language
applications (e.g., the application is written in C while the command is
written in Python) or just single Python file ones that live in `/usr/bin`.
> NOTE: you need to define it *only* for non-Python modules.
Also, a set of useful variables are defined to use in the templates:
| Variable | Value |
@ -1628,6 +1612,7 @@ The following template variables influence how Go packages are built:
any go.mod files, `default` to use Go's default behavior, or anything
accepted by `go build -mod MODE`. Defaults to `vendor` if there's
a vendor directory, otherwise `default`.
- `go_ldflags`: Arguments to pass to the linking steps of go tool.
The following environment variables influence how Go packages are built:
@ -1997,6 +1982,13 @@ During removal it will delete the directory using `rmdir`.
To include this trigger use the `make_dirs` variable, as the trigger won't do anything
unless it is defined.
<a id="triggers_openjdk_profile"></a>
#### openjdk-profile
The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
sets the `JAVA_HOME` environment variable to the currently-selected alternative for
`/usr/bin/java` on installation. This trigger must be manually requested.
<a id="triggers_pango_module"></a>
#### pango-modules

View file

@ -3,3 +3,4 @@ if [ "$CROSS_BUILD" ]; then
else
export WX_CONFIG=/usr/bin/wx-config-gtk3
fi
configure_args+=" -DwxWidgets_CONFIG_EXECUTABLE=${WX_CONFIG} "

View file

@ -0,0 +1,16 @@
# fix building non-pure-python modules on cross
if [ -n "$CROSS_BUILD" ]; then
export PYPREFIX="$XBPS_CROSS_BASE"
export CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
export LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
export CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
export LDSHARED="${CC} -shared $LDFLAGS"
export PYTHON_CONFIG="${XBPS_CROSS_BASE}/usr/bin/python3-config"
export PYTHONPATH="${XBPS_CROSS_BASE}/${py3_lib}"
for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
[ -f "$f" ] || continue
f=${f##*/}
_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
done
[ -n "$_PYTHON_SYSCONFIGDATA_NAME" ] && export _PYTHON_SYSCONFIGDATA_NAME
fi

View file

@ -3,24 +3,24 @@
#
do_build() {
: ${make_cmd:=cargo}
: ${make_cmd:=cargo auditable}
${make_cmd} build --release --target ${RUST_TARGET} ${configure_args}
}
do_check() {
: ${make_cmd:=cargo}
: ${make_cmd:=cargo auditable}
${make_cmd} test --release --target ${RUST_TARGET} ${configure_args} \
${make_check_pre} ${make_cmd} test --release --target ${RUST_TARGET} ${configure_args} \
${make_check_args}
}
do_install() {
: ${make_cmd:=cargo}
: ${make_cmd:=cargo auditable}
: ${make_install_args:=--path .}
${make_cmd} install --target ${RUST_TARGET} --root="${DESTDIR}/usr" \
--locked ${configure_args} ${make_install_args}
--offline --locked ${configure_args} ${make_install_args}
rm -f "${DESTDIR}"/usr/.crates.toml
rm -f "${DESTDIR}"/usr/.crates2.json

View file

@ -54,6 +54,14 @@ _EOF
cmake_args+=" -DCMAKE_INSTALL_PREFIX=/usr"
cmake_args+=" -DCMAKE_BUILD_TYPE=None"
cmake_args+=" -DCMAKE_INSTALL_LIBDIR=lib${XBPS_TARGET_WORDSIZE}"
cmake_args+=" -DCMAKE_INSTALL_SYSCONFDIR=/etc"
if [ "$CROSS_BUILD" ]; then
cmake_args+=" -DQT_HOST_PATH=/usr"
# QT_HOST_PATH isn't enough in my system,
# which have binfmts support on and off
cmake_args+=" -DQT_HOST_PATH_CMAKE_DIR=/usr/lib/cmake"
fi
if [[ $build_helper = *"qemu"* ]]; then
echo "SET(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static)" \
@ -116,7 +124,7 @@ do_check() {
: ${make_check_target:=test}
${make_cmd} ${make_check_args} ${make_check_target}
${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target}
}
do_install() {

View file

@ -29,7 +29,7 @@ do_check() {
: ${make_cmd:=make}
: ${make_check_target:=check}
${make_cmd} ${make_check_args} ${make_check_target}
${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target}
}
do_install() {

View file

@ -30,7 +30,7 @@ do_check() {
: ${make_cmd:=make}
: ${make_check_target:=check}
${make_cmd} ${make_check_args} ${make_check_target}
${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target}
}
do_install() {

View file

@ -9,8 +9,10 @@ do_build() {
CC="$CC" CXX="$CXX" LD="$LD" AR="$AR" RANLIB="$RANLIB" \
CPP="$CPP" AS="$AS" OBJCOPY="$OBJCOPY" OBJDUMP="$OBJDUMP" \
CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \
PREFIX=/usr prefix=/usr \
${makejobs} ${make_build_args} ${make_build_target}
else
export PREFIX=/usr prefix=/usr
${make_cmd} ${makejobs} ${make_build_args} ${make_build_target}
fi
}
@ -30,12 +32,12 @@ do_check() {
: ${make_cmd:=make}
: ${make_check_target:=check}
${make_cmd} ${make_check_args} ${make_check_target}
${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target}
}
do_install() {
: ${make_cmd:=make}
: ${make_install_target:=install}
${make_cmd} STRIP=true PREFIX=/usr DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target}
${make_cmd} STRIP=true PREFIX=/usr prefix=/usr DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target}
}

View file

@ -22,6 +22,13 @@ do_configure() {
}
do_build() {
# remove -s and -w from go_ldflags, we should let xbps-src strip binaries itself
for wd in $go_ldflags; do
if [ "$wd" == "-s" ] || [ "$wd" == "-w" ]; then
msg_error "$pkgname: remove -s and -w from go_ldflags\n"
fi
done
go_package=${go_package:-$go_import_path}
# Build using Go modules if there's a go.mod file
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then

View file

@ -103,7 +103,7 @@ do_configure() {
export AR="gcc-ar"
# unbuffered output for continuous logging
PYTHONUNBUFFERED=1 ${meson_cmd} \
PYTHONUNBUFFERED=1 ${meson_cmd} setup \
--prefix=/usr \
--libdir=/usr/lib${XBPS_TARGET_WORDSIZE} \
--libexecdir=/usr/libexec \
@ -138,7 +138,7 @@ do_check() {
: ${make_check_target:=test}
: ${meson_builddir:=build}
${make_cmd} -C ${meson_builddir} ${makejobs} ${make_check_args} ${make_check_target}
${make_check_pre} ${make_cmd} -C ${meson_builddir} ${makejobs} ${make_check_args} ${make_check_target}
}
do_install() {

View file

@ -41,7 +41,7 @@ do_check() {
if [ ! -x ./Build ]; then
msg_error "$pkgver: cannot find ./Build script!\n"
fi
./Build test
${make_check_pre} ./Build test
}
do_install() {

View file

@ -79,7 +79,7 @@ do_check() {
: ${make_cmd:=make}
: ${make_check_target:=test}
${make_cmd} ${make_check_args} ${make_check_target}
${make_check_pre} ${make_cmd} ${makejobs} ${make_check_args} ${make_check_target}
}
do_install() {

View file

@ -49,7 +49,7 @@ do_check() {
fi
fi
python${pyver} setup.py ${make_check_target:-test} ${make_check_args}
${make_check_pre} python${pyver} setup.py ${make_check_target:-test} ${make_check_args}
rm build
done
}

View file

@ -3,30 +3,18 @@
#
do_build() {
if [ -n "$CROSS_BUILD" ]; then
PYPREFIX="$XBPS_CROSS_BASE"
CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
LDSHARED="${CC} -shared $LDFLAGS"
for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
f=${f##*/}
_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
done
env CC="$CC" LDSHARED="$LDSHARED" \
PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
LDFLAGS="$LDFLAGS" python3 setup.py build ${make_build_args}
else
python3 setup.py build ${make_build_args}
fi
python3 setup.py build ${make_build_args}
}
do_check() {
local testjobs
if python3 -c 'import pytest' >/dev/null 2>&1; then
if python3 -c 'import xdist' >/dev/null 2>&1; then
testjobs="-n $XBPS_MAKEJOBS"
fi
PYTHONPATH="$(cd build/lib* && pwd)" \
python3 -m pytest ${make_check_args} ${make_check_target}
${make_check_pre} \
python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target}
else
# Fall back to deprecated setup.py test orchestration without pytest
if [ -z "$make_check_target" ]; then
@ -37,28 +25,10 @@ do_check() {
fi
: ${make_check_target:=test}
python3 setup.py ${make_check_target} ${make_check_args}
${make_check_pre} python3 setup.py ${make_check_target} ${make_check_args}
fi
}
do_install() {
if [ -n "$CROSS_BUILD" ]; then
PYPREFIX="$XBPS_CROSS_BASE"
CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
LDSHARED="${CC} -shared $LDFLAGS"
for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
f=${f##*/}
_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
done
env CC="$CC" LDSHARED="$LDSHARED" \
PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib} \
_PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME" \
LDFLAGS="$LDFLAGS" python3 setup.py \
install --prefix=/usr --root=${DESTDIR} ${make_install_args}
else
python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
fi
python3 setup.py install --prefix=/usr --root=${DESTDIR} ${make_install_args}
}

View file

@ -3,31 +3,31 @@
#
do_build() {
# No PEP517 build tool currently supports compiled extensions
# Thus, there is no need to accommodate cross compilation here
: ${make_build_target:=.}
mkdir -p build
TMPDIR=build python3 -m pip wheel --no-deps --use-pep517 --no-clean \
--no-build-isolation ${make_build_args} ${make_build_target}
: ${make_build_args:=--no-isolation --wheel}
python3 -m build ${make_build_args} ${make_build_target}
}
do_check() {
local testjobs
if python3 -c 'import pytest' >/dev/null 2>&1; then
python3 -m pytest ${make_check_args} ${make_check_target}
if python3 -c 'import xdist' >/dev/null 2>&1; then
testjobs="-n $XBPS_MAKEJOBS"
fi
${make_check_pre} python3 -m pytest ${testjobs} ${make_check_args} ${make_check_target}
else
msg_warn "Unable to determine tests for PEP517 Python templates"
msg_warn "Unable to determine tests for PEP517 Python templates\n"
return 0
fi
}
do_install() {
# As with do_build, no need to accommodate cross compilation here
: ${make_install_target:=${pkgname#python3-}-${version}-*-*-*.whl}
if [ -z "${make_install_target}" ]; then
# Default wheel name normalizes hyphens to underscores
local wheelbase="${pkgname#python3-}"
make_install_target="dist/${wheelbase//-/_}-${version}-*-*-*.whl"
fi
# If do_build was overridden, make sure the TMPDIR exists
mkdir -p build
TMPDIR=build python3 -m pip install --use-pep517 --prefix /usr \
--root ${DESTDIR} --no-deps --no-build-isolation \
--no-clean ${make_install_args} ${make_install_target}
python3 -m installer --destdir ${DESTDIR} \
${make_install_args} ${make_install_target}
}

View file

@ -1,17 +1,12 @@
#
# This helper is for templates using Qt4/Qt5 qmake.
# This helper is for templates using Qt5/Qt6 qmake.
#
do_configure() {
local qmake
local qmake_args
if [ -x "/usr/lib/qt5/bin/qmake" ]; then
# Qt5 qmake
qmake="/usr/lib/qt5/bin/qmake"
fi
if [ -x "/usr/lib/qt/bin/qmake" ]; then
# Qt4 qmake
qmake="/usr/lib/qt/bin/qmake"
fi
if [ -z "${qmake}" ]; then
msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n"
fi

View file

@ -3,7 +3,7 @@
#
do_check() {
RAKULIB=lib prove -r -e raku t/
RAKULIB=lib ${make_check_pre} prove -r -e raku t/
}
do_install() {

View file

@ -9,18 +9,27 @@ do_build() {
CXXFLAGS="$CXXFLAGS" LINKFLAGS="$LDFLAGS" \
cxxflags="$CXXFLAGS" linkflags="$LDFLAGS" \
RANLIB="$RANLIB" ranlib="$RANLIB" \
prefix=/usr destdir=${DESTDIR} DESTDIR=${DESTDIR} \
prefix=/usr \
${scons_use_destdir:+DESTDIR="${DESTDIR}"} \
${scons_use_destdir:+destdir="${DESTDIR}"} \
${make_build_args} ${make_build_target}
}
do_install() {
: ${make_cmd:=scons}
: ${make_install_target:=install}
local _sandbox=
if [ -z "$scons_use_destdir" ]; then _sandbox=yes ; fi
${make_cmd} ${makejobs} CC=$CC CXX=$CXX CCFLAGS="$CFLAGS" \
cc=$CC cxx=$CXX ccflags="$CFLAGS" \
CXXFLAGS="$CXXFLAGS" LINKFLAGS="$LDFLAGS" \
cxxflags="$CXXFLAGS" linkflags="$LDFLAGS" \
RANLIB="$RANLIB" ranlib="$RANLIB" \
prefix=/usr destdir=${DESTDIR} DESTDIR=${DESTDIR} \
prefix=/usr \
${scons_use_destdir:+DESTDIR="${DESTDIR}"} \
${scons_use_destdir:+destdir="${DESTDIR}"} \
${_sandbox:+--install-sandbox="${DESTDIR}"} \
${make_install_args} ${make_install_target}
}

View file

@ -5,7 +5,6 @@
# required variables
#
# build_style=slashpackage
# wrksrc=<category>
# build_wrksrc=${pkgname}-${version}
# distfiles=<download link>
#
@ -15,7 +14,6 @@
# pkgname=daemontools
# version=0.76
# revision=1
# wrksrc=admin
# build_wrksrc=${pkgname}-${version}
# build_style=slashpackage
# short_desc="A collection of tools for managing UNIX services"

View file

@ -1,8 +1,10 @@
makedepends+=" R"
depends+=" R"
wrksrc="${XBPS_BUILDDIR}/${pkgname#R-cran-}"
create_wrksrc=required
build_wrksrc="${pkgname#R-cran-}"
# default to cran
if [ -z "$distfiles" ]; then
distfiles="https://cran.r-project.org/src/contrib/${pkgname#R-cran-}_${version//r/-}.tar.gz"
distfiles="https://cran.r-project.org/src/contrib/${pkgname#R-cran-}_${version//r/-}.tar.gz
https://cran.r-project.org/src/contrib/Archive/${pkgname#R-cran-}/${pkgname#R-cran-}_${version//r/-}.tar.gz"
fi

View file

@ -1,5 +1,9 @@
hostmakedepends+=" cargo"
if ! [[ "$pkgname" =~ ^cargo-auditable(-bootstrap)?$ ]]; then
hostmakedepends+=" cargo-auditable"
fi
if [ "$CROSS_BUILD" ]; then
makedepends+=" rust-std"
fi

View file

@ -43,3 +43,8 @@ case "$XBPS_TARGET_MACHINE" in
*-musl) export GOCACHE="${XBPS_HOSTDIR}/gocache-muslc" ;;
*) export GOCACHE="${XBPS_HOSTDIR}/gocache-glibc" ;;
esac
case "$XBPS_TARGET_MACHINE" in
# https://go.dev/cl/421935
i686*) export CGO_CFLAGS="$CGO_CFLAGS -fno-stack-protector" ;;
esac

View file

@ -1,2 +1,3 @@
lib32disabled=yes
makedepends+=" python3"
build_helper+=" python3"

View file

@ -1,2 +1,3 @@
hostmakedepends+=" python3-pip"
hostmakedepends+=" python3-build python3-installer"
lib32disabled=yes
build_helper+=" python3"

View file

@ -2,4 +2,3 @@
hostmakedepends+=" rsync"
# python_version isn't needed for everything either
python_version=3
create_wrksrc=yes

View file

@ -1,6 +1,5 @@
lib32disabled=yes
nopie=yes
create_wrksrc=yes
nostrip_files+=" libcaf_single.a libgcc.a libgcov.a libgcc_eh.a
libgnarl_pic.a libgnarl.a libgnat_pic.a libgnat.a libgmem.a"

View file

@ -1,2 +1,16 @@
CFLAGS="${CFLAGS} -fdebug-prefix-map=$wrksrc=."
CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$wrksrc=."
local _wrksrc="$wrksrc${build_wrksrc:+/$build_wrksrc}"
case "$build_style" in
cmake)
CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc/${cmake_builddir:-build}=."
CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc/${cmake_builddir:-build}=."
;;
meson)
CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc/${meson_builddir:-build}=."
CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc/${meson_builddir:-build}=."
;;
*)
CFLAGS="${CFLAGS} -fdebug-prefix-map=$_wrksrc=."
CXXFLAGS="${CXXFLAGS} -fdebug-prefix-map=$_wrksrc=."
esac
unset _wrksrc

View file

@ -7,7 +7,7 @@ py2_lib="usr/lib/python${py2_ver}"
py2_sitelib="${py2_lib}/site-packages"
py2_inc="usr/include/python${py2_ver}"
py3_ver="3.10"
py3_ver="3.11"
py3_abiver=""
py3_lib="usr/lib/python${py3_ver}"
py3_sitelib="${py3_lib}/site-packages"

View file

@ -7,17 +7,24 @@ unset -v archs distfiles checksum build_style build_helper nocross broken
unset -v configure_script configure_args wrksrc build_wrksrc create_wrksrc
unset -v make_build_args make_check_args make_install_args
unset -v make_build_target make_check_target make_install_target
unset -v make_cmd meson_cmd gem_cmd fetch_cmd
unset -v make_cmd meson_cmd gem_cmd fetch_cmd make_check_pre
unset -v python_version stackage
unset -v cmake_builddir meson_builddir
unset -v meson_crossfile
unset -v gemspec
unset -v go_import_path go_package go_mod_mode
unset -v patch_args disable_parallel_build keep_libtool_archives make_use_env
unset -v patch_args disable_parallel_build disable_parallel_check
unset -v keep_libtool_archives make_use_env
unset -v reverts subpackages makedepends hostmakedepends checkdepends depends restricted
unset -v nopie build_options build_options_default bootstrap repository reverts
unset -v CFLAGS CXXFLAGS FFLAGS CPPFLAGS LDFLAGS LD_LIBRARY_PATH
unset -v CC CXX CPP GCC LD AR AS RANLIB NM OBJDUMP OBJCOPY STRIP READELF PKG_CONFIG
unset -v CMAKE_GENERATOR
# build-helper python3
unset -v PYPREFIX LDSHARED PYTHON_CONFIG PYTHONPATH _PYTHON_SYSCONFIGDATA_NAME
# unset all $build_option_ variables
unset -v "${!build_option_@}"
# hooks/do-extract/00-distfiles
unset -v skip_extraction

View file

@ -57,8 +57,13 @@ vsed() {
newdigest="$($XBPS_DIGEST_CMD "$f")"
newdigest="${newdigest%% *}"
msgfunc=msg_warn
if [ -n "$XBPS_STRICT" ]; then
msgfunc=msg_error
fi
if [ "$olddigest" = "$newdigest" ]; then
msg_warn "$pkgver: vsed: regex \"$rx\" didn't change file \"$f\"\n"
$msgfunc "$pkgver: vsed: regex \"$rx\" didn't change file \"$f\"\n"
fi
olddigest="${newdigest}"
done

View file

@ -3,7 +3,7 @@
hook() {
local srcdir="$XBPS_SRCDISTDIR/$pkgname-$version"
local f j curfile found extractdir
local f j curfile found extractdir innerdir num_dirs
local TAR_CMD
if [ -z "$distfiles" -a -z "$checksum" ]; then
@ -20,10 +20,6 @@ hook() {
fi
done
if [ -n "$create_wrksrc" ]; then
mkdir -p "${wrksrc}" || msg_error "$pkgver: failed to create wrksrc.\n"
fi
# Disable trap on ERR; the code is smart enough to report errors and abort.
trap - ERR
@ -31,6 +27,9 @@ hook() {
[ -z "$TAR_CMD" ] && TAR_CMD="$(command -v tar)"
[ -z "$TAR_CMD" ] && msg_error "xbps-src: no suitable tar cmd (bsdtar, tar)\n"
extractdir=$(mktemp -d "$XBPS_BUILDDIR/.extractdir-XXXXXXX") ||
msg_error "Cannot create temporary dir for do-extract\n"
msg_normal "$pkgver: extracting distfile(s), please wait...\n"
for f in ${distfiles}; do
@ -73,12 +72,6 @@ hook() {
*) msg_error "$pkgver: unknown distfile suffix for $curfile.\n";;
esac
if [ -n "$create_wrksrc" ]; then
extractdir="$wrksrc"
else
extractdir="$XBPS_BUILDDIR"
fi
case ${cursufx} in
tar|txz|tbz|tlz|tgz|crate)
$TAR_CMD -x --no-same-permissions --no-same-owner -f $srcdir/$curfile -C "$extractdir"
@ -128,11 +121,7 @@ hook() {
fi
;;
txt)
if [ "$create_wrksrc" ]; then
cp -f $srcdir/$curfile "$extractdir"
else
msg_error "$pkgname: ${curfile##*.} files can only be extracted when create_wrksrc is set\n"
fi
cp -f $srcdir/$curfile "$extractdir"
;;
7z)
if command -v 7z &>/dev/null; then
@ -150,16 +139,10 @@ hook() {
fi
;;
gem)
case "$TAR_CMD" in
*bsdtar)
$TAR_CMD -xOf $srcdir/$curfile data.tar.gz | \
$TAR_CMD -xz -C "$extractdir" -s ",^,${wrksrc##*/}/," -f -
;;
*)
$TAR_CMD -xOf $srcdir/$curfile data.tar.gz | \
$TAR_CMD -xz -C "$extractdir" --transform="s,^,${wrksrc##*/}/,"
;;
esac
innerdir="$extractdir/${wrksrc##*/}"
mkdir -p "$innerdir"
$TAR_CMD -xOf $srcdir/$curfile data.tar.gz |
$TAR_CMD -xz -C "$innerdir" -f -
if [ $? -ne 0 ]; then
msg_error "$pkgver: extracting $curfile into $XBPS_BUILDDIR.\n"
fi
@ -169,4 +152,31 @@ hook() {
;;
esac
done
# find "$extractdir" -mindepth 1 -maxdepth 1 -printf '1\n' | wc -l
# However, it requires GNU's find
num_dirs=0
for f in "$extractdir"/* "$extractdir"/.*; do
if [ -e "$f" ] || [ -L "$f" ]; then
case "$f" in
*/. | */..) ;;
*)
innerdir="$f"
num_dirs=$(( num_dirs + 1 ))
;;
esac
fi
done
rm -rf "$wrksrc"
if [ "$num_dirs" = 1 ] && [ -d "$innerdir" ] && [ -z "$create_wrksrc" ]; then
# rename the subdirectory (top-level of distfiles) to $wrksrc
mv "$innerdir" "$wrksrc" &&
rmdir "$extractdir"
elif [ "$num_dirs" -gt 1 ] || [ -n "$create_wrksrc" ]; then
# rename the tmpdir to wrksrc
mv "$extractdir" "$wrksrc"
else
mkdir -p "$wrksrc"
fi ||
msg_error "$pkgver: failed to move sources to $wrksrc\n"
}

View file

@ -2,24 +2,6 @@
# the $distfiles variable and then verifies its sha256 checksum comparing
# its value with the one stored in the $checksum variable.
# Get the checksum for $curfile at index $dfcount
get_cksum() {
local curfile="$1" dfcount="$2" ckcount cksum i
ckcount=0
cksum=0
for i in ${checksum}; do
if [ $dfcount -eq $ckcount -a -n "$i" ]; then
cksum=$i
fi
ckcount=$((ckcount + 1))
done
if [ -z "$cksum" ]; then
msg_error "$pkgver: cannot find checksum for $curfile.\n"
fi
echo "$cksum"
}
# Return the checksum of the contents of a tarball
contents_cksum() {
local curfile="$1" cursufx cksum
@ -110,9 +92,7 @@ contents_cksum() {
# Verify the checksum for $curfile stored at $distfile and index $dfcount
verify_cksum() {
local curfile="$1" distfile="$2" dfcount="$3" filesum cksum
cksum=$(get_cksum $curfile $dfcount)
local curfile="$1" distfile="$2" cksum="$3" filesum
# If the checksum starts with an commercial at (@) it is the contents checksum
if [ "${cksum:0:1}" = "@" ]; then
@ -121,7 +101,7 @@ verify_cksum() {
filesum=$(contents_cksum "$curfile")
if [ "${cksum}" != "$filesum" ]; then
echo
msg_red "SHA256 mismatch for '$curfile:'\n@$filesum\n"
msg_red "SHA256 mismatch for '${curfile}:'\n@${filesum}\n"
errors=$((errors + 1))
else
msg_normal_append "OK.\n"
@ -131,7 +111,7 @@ verify_cksum() {
filesum=$(${XBPS_DIGEST_CMD} "$distfile")
if [ "$cksum" != "$filesum" ]; then
echo
msg_red "SHA256 mismatch for '$curfile:'\n$filesum\n"
msg_red "SHA256 mismatch for '${curfile}:'\n${filesum}\n"
errors=$((errors + 1))
else
if [ ! -f "$XBPS_SRCDISTDIR/by_sha256/${cksum}_${curfile}" ]; then
@ -145,22 +125,20 @@ verify_cksum() {
# Link an existing cksum $distfile for $curfile at index $dfcount
link_cksum() {
local curfile="$1" distfile="$2" dfcount="$3" filesum cksum
cksum=$(get_cksum $curfile $dfcount)
local curfile="$1" distfile="$2" cksum="$3"
if [ -n "$cksum" -a -f "$XBPS_SRCDISTDIR/by_sha256/${cksum}_${curfile}" ]; then
ln -f "$XBPS_SRCDISTDIR/by_sha256/${cksum}_${curfile}" "$distfile"
msg_normal "$pkgver: using known distfile $curfile.\n"
return 0
fi
return 1
}
try_mirrors() {
local curfile="$1" distfile="$2" dfcount="$3" subdir="$4" f="$5"
local filesum cksum basefile mirror path scheme
[ -z "$XBPS_DISTFILES_MIRROR" ] && return
local curfile="$1" distfile="$2" cksum="$3" f="$4"
local filesum basefile mirror path scheme good
[ -z "$XBPS_DISTFILES_MIRROR" ] && return 1
basefile="${f##*/}"
cksum=$(get_cksum $curfile $dfcount)
for mirror in $XBPS_DISTFILES_MIRROR; do
scheme="file"
if [[ $mirror == *://* ]]; then
@ -179,28 +157,80 @@ try_mirrors() {
fi
if [[ "$mirror" == *voidlinux* ]]; then
# For distfiles.voidlinux.* append the subdirectory
mirror="$mirror/$subdir"
mirror="$mirror/$pkgname-$version"
fi
msg_normal "$pkgver: fetching distfile '$curfile' from '$mirror'...\n"
msg_normal "$pkgver: fetching distfile '$curfile' from mirror '$mirror'...\n"
$fetch_cmd "$mirror/$curfile"
# If basefile was not found, but a curfile file may exist, try to fetch it
if [ ! -f "$distfile" -a "$basefile" != "$curfile" ]; then
$fetch_cmd "$mirror/$basefile"
fi
# if [ ! -f "$distfile" -a "$basefile" != "$curfile" ]; then
# msg_normal "$pkgver: fetching distfile '$basefile' from mirror '$mirror'...\n"
# $fetch_cmd "$mirror/$basefile"
# fi
[ ! -f "$distfile" ] && continue
flock -n ${distfile}.part rm -f ${distfile}.part
filesum=$(${XBPS_DIGEST_CMD} "$distfile")
[ "$cksum" == "$filesum" ] && break
if [ "$cksum" == "$filesum" ]; then
return 0
fi
msg_normal "$pkgver: checksum failed - removing '$curfile'...\n"
rm -f ${distfile}
done
return 1
}
try_urls() {
local curfile="$1"
local good=
for i in ${_file_idxs["$curfile"]}; do
local cksum=${_checksums["$i"]}
local url=${_distfiles["$i"]}
# If distfile does not exist, download it from the original location.
if [[ "$FTP_RETRIES" && "${url}" =~ ^ftp:// ]]; then
max_retries="$FTP_RETRIES"
else
max_retries=1
fi
for retry in $(seq 1 1 $max_retries); do
if [ ! -f "$distfile" ]; then
if [ "$retry" == 1 ]; then
msg_normal "$pkgver: fetching distfile '$curfile' from '$url'...\n"
else
msg_normal "$pkgver: fetch attempt $retry of $max_retries...\n"
fi
flock "${distfile}.part" $fetch_cmd "$url"
fi
done
if [ ! -f "$distfile" ]; then
continue
fi
# distfile downloaded, verify sha256 hash.
flock -n "${distfile}.part" rm -f "${distfile}.part"
verify_cksum "$curfile" "$distfile" "$cksum"
return 0
done
return 1
}
hook() {
local srcdir="$XBPS_SRCDISTDIR/$pkgname-$version"
local dfcount=0 dfgood=0 errors=0 max_retries
if [ ! -d "$srcdir" ]; then
local -a _distfiles=($distfiles)
local -a _checksums=($checksum)
local -A _file_idxs
# Create a map from target file to index in _distfiles/_checksums
for i in ${!_distfiles[@]}; do
f="${_distfiles[$i]}"
curfile="${f#*>}"
curfile="${curfile##*/}"
_file_idxs["$curfile"]+=" $i"
done
if [[ ! -d "$srcdir" ]]; then
mkdir -p -m775 "$srcdir"
chgrp $(id -g) "$srcdir"
fi
@ -209,90 +239,72 @@ hook() {
# Disable trap on ERR; the code is smart enough to report errors and abort.
trap - ERR
# Detect bsdtar and GNU tar (in that order of preference)
TAR_CMD="$(command -v bsdtar)"
if [ -z "$TAR_CMD" ]; then
if [[ -z "$TAR_CMD" ]]; then
TAR_CMD="$(command -v tar)"
fi
# Detect distfiles with obsolete checksum and purge them from the cache
for f in ${distfiles}; do
curfile="${f#*>}"
curfile="${curfile##*/}"
distfile="$srcdir/$curfile"
if [ -f "$distfile" ]; then
cksum=$(get_cksum $curfile $dfcount)
if [ "${cksum:0:1}" = "@" ]; then
cksum=${cksum:1}
filesum=$(contents_cksum "$distfile")
else
filesum=$(${XBPS_DIGEST_CMD} "$distfile")
for f in ${!_file_idxs[@]}; do
distfile="$srcdir/$f"
for i in ${_file_idxs["$f"]}; do
if [[ -f $distfile ]]; then
cksum=${_checksums["$i"]}
if [[ ${cksum:0:1} = @ ]]; then
cksum=${cksum:1}
filesum=$(contents_cksum "$distfile")
else
filesum=$(${XBPS_DIGEST_CMD} "$distfile")
fi
if [[ $cksum = $filesum ]]; then
dfgood=$((dfgood + 1))
else
inode=$(stat "$distfile" --printf "%i")
msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n"
find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print
fi
fi
if [ "$cksum" = "$filesum" ]; then
dfgood=$((dfgood + 1))
else
inode=$(stat "$distfile" --printf "%i")
msg_warn "$pkgver: wrong checksum found for ${curfile} - purging\n"
find ${XBPS_SRCDISTDIR} -inum ${inode} -delete -print
fi
fi
dfcount=$((dfcount + 1))
dfcount=$((dfcount + 1))
done
done
# We're done, if all distfiles were found and had good checksums
[ $dfcount -eq $dfgood ] && return
[[ $dfcount -eq $dfgood ]] && return
# Download missing distfiles and verify their checksums
dfcount=0
for f in ${distfiles}; do
curfile="${f#*>}"
curfile="${curfile##*/}"
for curfile in ${!_file_idxs[@]}; do
distfile="$srcdir/$curfile"
set -- ${_file_idxs["$curfile"]}
i="$1"
# If file lock cannot be acquired wait until it's available.
while true; do
flock -w 1 ${distfile}.part true
[ $? -eq 0 ] && break
while ! flock -w 1 "${distfile}.part" true; do
msg_warn "$pkgver: ${curfile} is already being downloaded, waiting for 1s ...\n"
done
if [[ -f "$distfile" ]]; then
continue
fi
# If distfile does not exist, try to link to it.
if [ ! -f "$distfile" ]; then
link_cksum $curfile $distfile $dfcount
if link_cksum "$curfile" "$distfile" "${_checksums[$i]}"; then
continue
fi
# If distfile does not exist, download it from a mirror location.
if [ ! -f "$distfile" ]; then
try_mirrors $curfile $distfile $dfcount $pkgname-$version $f
if try_mirrors "$curfile" "$distfile" "${_checksums[$i]}" "${_distfiles[$i]}"; then
continue
fi
# If distfile does not exist, download it from the original location.
if [[ "$FTP_RETRIES" && "${f}" =~ ^ftp:// ]]; then
max_retries="$FTP_RETRIES"
else
max_retries=1
if ! try_urls "$curfile"; then
msg_error "$pkgver: failed to fetch '$curfile'.\n"
fi
for retry in $(seq 1 1 $max_retries); do
if [ ! -f "$distfile" ]; then
if [ "$retry" == 1 ]; then
msg_normal "$pkgver: fetching distfile '$curfile'...\n"
else
msg_normal "$pkgver: fetch attempt $retry of $max_retries...\n"
fi
flock "${distfile}.part" $fetch_cmd "$f"
fi
done
if [ ! -f "$distfile" ]; then
msg_error "$pkgver: failed to fetch $curfile.\n"
fi
# distfile downloaded, verify sha256 hash.
flock -n ${distfile}.part rm -f ${distfile}.part
verify_cksum $curfile $distfile $dfcount
dfcount=$((dfcount + 1))
done
unset TAR_CMD
if [ $errors -gt 0 ]; then
if [[ $errors -gt 0 ]]; then
msg_error "$pkgver: couldn't verify distfiles, exiting...\n"
fi
}

View file

@ -6,23 +6,23 @@ _process_patch() {
_args="-Np1"
_patch=${i##*/}
if [ -f $PATCHESDIR/${_patch}.args ]; then
_args=$(<$PATCHESDIR/${_patch}.args)
if [ -f "$PATCHESDIR/${_patch}.args" ]; then
_args=$(<"$PATCHESDIR/${_patch}.args")
elif [ -n "$patch_args" ]; then
_args=$patch_args
fi
cp -f $i "$wrksrc"
cp -f "$i" "$wrksrc"
# Try to guess if its a compressed patch.
if [[ $f =~ .gz$ ]]; then
if [[ $i =~ .gz$ ]]; then
gunzip "$wrksrc/${_patch}"
_patch=${_patch%%.gz}
elif [[ $f =~ .bz2$ ]]; then
elif [[ $i =~ .bz2$ ]]; then
bunzip2 "$wrksrc/${_patch}"
_patch=${_patch%%.bz2}
elif [[ $f =~ .diff$ ]]; then
elif [[ $i =~ .diff$ ]]; then
:
elif [[ $f =~ .patch$ ]]; then
elif [[ $i =~ .patch$ ]]; then
:
else
msg_warn "$pkgver: unknown patch type: $i.\n"
@ -31,7 +31,7 @@ _process_patch() {
cd "$wrksrc"
msg_normal "$pkgver: patching: ${_patch}.\n"
patch -s ${_args} -i ${_patch} 2>/dev/null
patch -s ${_args} <"${_patch}" 2>/dev/null
}
hook() {
@ -44,11 +44,11 @@ hook() {
done < $PATCHESDIR/series
else
for f in $PATCHESDIR/*; do
[ ! -f $f ] && continue
[ ! -f "$f" ] && continue
if [[ $f =~ ^.*.args$ ]]; then
continue
fi
_process_patch $f
_process_patch "$f"
done
fi
}

View file

@ -24,8 +24,7 @@ hook() {
# Find all binaries in /usr/share and add them to the pool
while read -r f; do
mime="${f##*:}"
mime="${mime// /}"
mime="${f##*: }"
file="${f%:*}"
file="${file#${PKGDESTDIR}}"
case "${mime}" in
@ -37,7 +36,7 @@ hook() {
fi
;;
esac
done < <(find $PKGDESTDIR/usr/share $prune_expr -type f | file --mime-type --files-from -)
done < <(find $PKGDESTDIR/usr/share $prune_expr -type f | file --no-pad --mime-type --files-from -)
# Check passed if no packages in pool
if [ -z "$matches" ]; then

View file

@ -236,7 +236,7 @@ hook() {
generic_wrapper3 libetpan-config
generic_wrapper3 giblib-config
python_wrapper python-config 2.7
python_wrapper python3-config 3.10
python_wrapper python3-config 3.11
apr_apu_wrapper apr-1-config
apr_apu_wrapper apu-1-config
}

View file

@ -34,15 +34,14 @@ add_rundep() {
store_pkgdestdir_rundeps() {
if [ -n "$run_depends" ]; then
: > ${PKGDESTDIR}/rdeps
for f in ${run_depends}; do
_curdep="$(echo "$f" | sed -e 's,\(.*\)?.*,\1,')"
if [ -z "$($XBPS_UHELPER_CMD getpkgdepname ${_curdep} 2>/dev/null)" -a \
-z "$($XBPS_UHELPER_CMD getpkgname ${_curdep} 2>/dev/null)" ]; then
_curdep="${_curdep}>=0"
fi
printf -- "${_curdep} " >> ${PKGDESTDIR}/rdeps
done
printf -- "${_curdep}\n"
done | sort | xargs > ${PKGDESTDIR}/rdeps
fi
}
@ -166,6 +165,6 @@ hook() {
sorequires+="${f} "
done
if [ -n "${sorequires}" ]; then
echo "${sorequires}" > ${PKGDESTDIR}/shlib-requires
echo "${sorequires}" | xargs -n1 | sort | xargs > ${PKGDESTDIR}/shlib-requires
fi
}

View file

@ -22,7 +22,7 @@ hook() {
fi
done
for f in var/run usr/local; do
for f in var/run usr/local usr/etc; do
if [ -d ${PKGDESTDIR}/${f} ]; then
msg_red "${pkgver}: /${f} directory is not allowed, remove it!\n"
error=1
@ -103,11 +103,21 @@ hook() {
error=1
fi
if [ -d ${PKGDESTDIR}/usr/usr ]; then
msg_red "${pkgver}: /usr/usr is forbidden, use /usr.\n"
error=1
fi
if [ -d ${PKGDESTDIR}/usr/man ]; then
msg_red "${pkgver}: /usr/man is forbidden, use /usr/share/man.\n"
error=1
fi
if [[ -d ${PKGDESTDIR}/usr/share/man/man ]]; then
msg_red "${pkgver}: /usr/share/man/man is forbidden, use /usr/share/man.\n"
error=1
fi
if [ -d ${PKGDESTDIR}/usr/doc ]; then
msg_red "${pkgver}: /usr/doc is forbidden. Use /usr/share/doc.\n"
error=1
@ -182,7 +192,7 @@ hook() {
if [ -z "$found" ]; then
_myshlib="${libname}.so"
[ "${_myshlib}" != "${rev}" ] && _myshlib+=".${rev}"
msg_warn "${pkgver}: ${_myshlib} not found in common/shlibs!\n"
msg_normal "${pkgver}: ${_myshlib} not found in common/shlibs.\n"
fi;
}
done

View file

@ -5,18 +5,17 @@ die() {
exit 1
}
GIT_CMD=$(command -v chroot-git 2>/dev/null) ||
GIT_CMD=$(command -v git 2>/dev/null) ||
command -v git >/dev/null 2>&1 ||
die "neither chroot-git nor git could be found!"
rev_parse() {
if [ -n "$1" ]; then
"$GIT_CMD" rev-parse --verify "$1"
git rev-parse --verify "$1"
else
shift
while test "$#" != 0
do
"$GIT_CMD" rev-parse --verify "$1" 2>/dev/null && return
git rev-parse --verify "$1" 2>/dev/null && return
shift
done
return 1
@ -27,26 +26,26 @@ base=$(rev_parse "$1" FETCH_HEAD ORIG_HEAD) || die "base commit not found"
tip=$(rev_parse "$2" HEAD) || die "tip commit not found"
status=0
for cmt in $("$GIT_CMD" rev-list --abbrev-commit $base..$tip)
for cmt in $(git rev-list --abbrev-commit $base..$tip)
do
"$GIT_CMD" cat-file commit "$cmt" |
git cat-file commit "$cmt" |
awk -vC="$cmt" '
# skip header
/^$/ && !msg { msg = 1; next }
!msg { next }
# 3: long-line-is-banned-except-footnote-like-this-for-url
(NF > 2) && (length > 80) { print C ": long line: " $0; exit 1 }
(NF > 2) && (length > 80) { print "::error title=Commit Lint::" C ": long line: " $0; exit 1 }
!subject {
if (length > 50) { print C ": subject is a bit long" }
if (!($0 ~ ":" || $0 ~ "^Take over maintainership " || $0 ~ "^Orphan ")) { print C ": subject does not follow CONTRIBUTING.md guildelines"; exit 1 }
if (length > 50) { print "::warning title=Commit Lint::" C ": subject is a bit long" }
if (!($0 ~ ":" || $0 ~ "^Take over maintainership " || $0 ~ "^Orphan ")) { print "::error title=Commit Lint::" C ": subject does not follow CONTRIBUTING.md guildelines"; exit 1 }
# Below check is too noisy?
# if (!($0 ~ "^New package:" || $0 ~ ".*: update to")) {
# print C ": not new package/update/removal?"
# print "::warning title=Commit Lint::" C ": not new package/update/removal?"
# }
subject = 1; next
}
/^$/ { body = 1; next }
!body { print C ": second line must be blank"; exit 1 }
!body { print "::error title=Commit Lint::" C ": second line must be blank"; exit 1 }
' || status=1
done
exit $status

198
common/scripts/lint-conflicts Executable file
View file

@ -0,0 +1,198 @@
#!/usr/bin/env bash
# Report packages installing same file and not marked with
# conflicts or replaces.
# Without argument, find conflicts between packages in local
# repository at hostdir/binpkgs and packages indexed in xlocate.
# With single path as argument, read that local repository.
# With -a flag, find conflicts between packages indexed in xlocate.
if [ "$#" = 0 ]; then
binpkgs="$PWD/hostdir/binpkgs"
elif [ "$1" = -a ]; then
all=1
elif [ -d "$1" ]; then
binpkgs="$1"
else
echo "Usage:"
echo "$0"
echo " check packages in ./hostdir/binpkgs"
echo "$0 path/to/hostdir/binpkgs"
echo " check packages there"
echo "$0 -a"
echo " check all packages indexed in xlocate"
exit 1
fi
declare -A newly_built conflicts_cache providers_cache pairs owners
repositories=("--repository=${binpkgs}" "--repository=${binpkgs}/nonfree")
rv=0
template_exists() {
[ -f "srcpkgs/$1/template" ]
}
partial_check() {
[ -z "$all" ]
}
providers_of() {
# print the pkgname and packages that `provides` it
local pkgname=$1
if [ "${providers_cache[$pkgname]}" = '' ]; then
local line provider_pkgver provided_pkgver provider_pkgname provided_pkgname
local -A providers
providers[$pkgname]=$pkgname
while read -r line; do
line=${line%%'('*}
provider_pkgver=${line%': '*}
provided_pkgver=${line#*': '}
provider_pkgname=${provider_pkgver%-*}
provided_pkgname=${provided_pkgver%-*}
# comes from $(xbps-query -s $pkgname), so $pkgname can be substring
if [ "$provided_pkgname" = "$pkgname" ]; then
providers[$provider_pkgname]=$provider_pkgname
fi
done < <(xbps-query "${repositories[@]}" -p provides -R -s "$pkgname")
# leading space ensures ${[]} != ''
providers_cache[$pkgname]=" ${providers[*]}"
fi
echo ${providers_cache[$pkgname]}
}
conflicts_of() {
# print list of packages that are _marked_ as conflicting with given one
local pkgname=$1
if [ "${conflicts_cache[$pkgname]}" = '' ]; then
local in_conflict provider
local -A all
while read -r in_conflict; do
in_conflict=${in_conflict%'<'*}
in_conflict=${in_conflict%'>'*}
providers_of "$in_conflict" > /dev/null # executing in same process to fill cache
for provider in $(providers_of "$in_conflict"); do
all[$provider]=$provider
done
done < <(xbps-query "${repositories[@]}" -p conflicts,replaces -R "$pkgname")
# leading space ensures ${[]} != ''
conflicts_cache[$pkgname]=" ${all[*]}"
fi
echo ${conflicts_cache[$pkgname]}
}
conflict_between() {
# exit successfully if packages are _marked_ as conflicting
conflicts_of "$1" > /dev/null # executing in same process to fill cache
case " $(conflicts_of "$1") " in
*" $2 "*) return 0
esac
conflicts_of "$2" > /dev/null # executing in same process to fill cache
case " $(conflicts_of "$2") " in
*" $1 "*) return 0
esac
return 1
}
list_newly_built_files() {
# print one line per file in newly built packages
# each line contains pkgname and file path
local pkgver pkgname
while read -r pkgver; do
pkgname=${pkgver%-*}
xbps-query "${repositories[@]}" -i -f "$pkgname" | sed s'/ -> .*//;'" s/^/$pkgname /"
done < <(xbps-query "${repositories[@]}" -i -R -s '' | cut -d' ' -f 2)
}
list_interesting_files() {
# list files potentially contained in more than one package
# each line contains pkgver/pkgname and file path
if partial_check; then
list_newly_built_files
else
xlocate / | sed s'/ -> .*//' | grep -F -f <(xlocate / | cut -f 2- | sed s'/ -> .*//' | sort | uniq -d)
fi
}
group_by_file_full() {
# create associative array `owners` mapping file to list of packages
# for packages potentially conflicting with newly built ones
local pkgver file pkgname
while read -r pkgver file; do
pkgname=${pkgver%-*}
if template_exists "$pkgname"; then
owners[$file]+=" $pkgname"
fi
done < <(list_interesting_files)
}
group_by_file_partial() {
# create associative array `owners` mapping file to list of packages
# for all packages in xlocate
local pkgname file
## newly built packages
while read -r pkgver; do
pkgname=${pkgver%-*}
newly_built[$pkgname]=$pkgname
done < <(xbps-query "${repositories[@]}" -i -R -s '' | cut -d' ' -f 2)
while read -r pkgname file; do
owners[$file]+=" $pkgname"
done < <(list_newly_built_files)
## rest of repository
while read -r pkgver file; do
pkgname=${pkgver%-*}
if [ -z "${newly_built[$pkgname]}" ] && template_exists "$pkgname"; then
owners[$file]+=" $pkgname"
fi
done < <(xlocate / | sed s'/ -> .*//' | grep -F -f <(list_newly_built_files | cut -d ' ' -f 2-))
}
group_by_pair() {
# find package pairs owning same file and not marked as conflicting
local pkg file a b
while read -r pkg file; do
for a in ${owners[$file]}; do
for b in ${owners[$file]}; do
if ! [ "$a" "<" "$b" ]; then
continue
fi
if partial_check && [ -z "${newly_built[$a]}" ] && [ -z "${newly_built[$b]}" ]; then
continue
fi
if ! conflict_between "$a" "$b"; then
unset pair_files
local -A pair_files
eval "${pairs["$a $b"]}"
pair_files[$file]="$file"
pairs["$a $b"]="${pair_files[@]@A}"
fi
done
done
done < <(list_interesting_files)
}
print_out() {
local pair file
if [ "${#pairs[@]}" = 0 ]; then
echo 1>&2 "No conflicts found in" "${repositories[@]#*=}"
exit 0
fi
while read -r pair; do
rv=1
echo "${pair% *} and ${pair#* } conflict for"
unset pair_files
eval "${pairs[$pair]}"
for file in "${pair_files[@]}"; do
echo " $file"
done | sort
done < <(printf '%s\n' "${!pairs[@]}" | sort)
}
if partial_check; then
group_by_file_partial
else
group_by_file_full
fi
group_by_pair
print_out
exit $rv

View file

@ -13,20 +13,17 @@ if ! [ "$base_rev" ]; then
die "usage: $0 TEMPLATE BASE-REVISION [TIP-REVISION]"
fi
if command -v chroot-git >/dev/null 2>&1; then
GIT_CMD=$(command -v chroot-git)
elif command -v git >/dev/null 2>&1; then
GIT_CMD=$(command -v git)
else
if ! command -v git >/dev/null 2>&1; then
die "neither chroot-git nor git could be found"
fi
scan() {
rx="$1" msg="$2"
template_path=$template
maybe_git=
if [ "$tip_rev" ]; then
template_path="${tip_rev}:${template}"
maybe_git="$GIT_CMD"
maybe_git="git"
revspec="[^:]*:"
fi
$maybe_git grep -P -Hn -e "$rx" "$template_path" |
@ -37,7 +34,7 @@ scan() {
show_template() {
rev="$1"
if [ "$rev" ]; then
$GIT_CMD cat-file blob "${rev}:${template}" 2>/dev/null
git cat-file blob "${rev}:${template}" 2>/dev/null
else
cat "${template}" 2>/dev/null
fi
@ -45,7 +42,10 @@ show_template() {
show_template_var() {
rev="$1" var="$2"
show_template "$rev" | grep -Po '^'${var}'=\K.*'
(
show_template "$rev"
printf '%s\n' "printf '%s\\n' \"\$${var}\""
) | bash 2>/dev/null
}
revision_reset() {
@ -72,6 +72,28 @@ reverts_on_downgrade() {
esac
}
check_revert() {
for vr in $reverts; do
xbps-uhelper cmpver "${version}" "${vr%_*}"
case "$?" in
0 | 1)
scan '^version=' "remove $vr from \$reverts"
status=1
;;
esac
done
for vr in $prev_reverts; do
if ! xbps-uhelper cmpver "$version" "${vr%_*}"; then
continue
fi
if [ $revision -gt "${vr##*_}" ]; then
continue
fi
scan '^revision=' "undo a revert with same revision as before"
status=1
done
}
version_change() {
version="$(show_template_var "$tip_rev" version)"
revision="$(show_template_var "$tip_rev" revision)"
@ -83,6 +105,7 @@ version_change() {
1) revision_reset;;
-1|255) reverts_on_downgrade;;
esac
check_revert
}
version_change

View file

@ -0,0 +1,11 @@
# Converts xlint/etc format lints into GH Actions annotations
# The original line is printed alongside the annotation command
{
split($0, a, ": ")
split(a[1], b, ":")
msg = substr($0, index($0, ": ") + 2)
if (b[2]) {
line = ",line=" b[2]
}
printf "::error title=Template Lint,file=%s%s::%s\n", b[1], line, msg
}

File diff suppressed because it is too large Load diff

View file

@ -13,7 +13,7 @@ fi
PKGS=$(/hostrepo/xbps-src sort-dependencies $(cat /tmp/templates))
for pkg in ${PKGS}; do
/hostrepo/xbps-src -j$(nproc) -H "$HOME"/hostdir $arch $test pkg "$pkg"
/hostrepo/xbps-src -j$(nproc) -s -H "$HOME"/hostdir $arch $test pkg "$pkg"
[ $? -eq 1 ] && exit 1
done

View file

@ -2,19 +2,15 @@
#
# changed_templates.sh
if command -v chroot-git >/dev/null 2>&1; then
GIT_CMD=$(command -v chroot-git)
elif command -v git >/dev/null 2>&1; then
GIT_CMD=$(command -v git)
fi
tip="$($GIT_CMD rev-list -1 --parents HEAD)"
tip="$(git rev-list -1 --parents HEAD)"
case "$tip" in
# This is a merge commit, pick last parent
*" "*" "*) tip="${tip##* }" ;;
# This is a non-merge commit, pick itself
*) tip="${tip%% *}" ;;
esac
base="$($GIT_CMD merge-base FETCH_HEAD "$tip")" || {
base="$(git merge-base FETCH_HEAD "$tip")" || {
echo "Your branches is based on too old copy."
echo "Please rebase to newest copy."
exit 1
@ -23,7 +19,7 @@ base="$($GIT_CMD merge-base FETCH_HEAD "$tip")" || {
echo "$base $tip" >/tmp/revisions
/bin/echo -e '\x1b[32mChanged packages:\x1b[0m'
$GIT_CMD diff-tree -r --no-renames --name-only --diff-filter=AM \
git diff-tree -r --no-renames --name-only --diff-filter=AM \
"$base" "$tip" \
-- 'srcpkgs/*/template' |
cut -d/ -f 2 |

View file

@ -7,7 +7,7 @@ TAR=tar
command -v bsdtar >/dev/null && TAR=bsdtar
ARCH=$(uname -m)-musl
VERSION=0.59_5
URL="https://alpha.de.repo.voidlinux.org/static/xbps-static-static-${VERSION}.${ARCH}.tar.xz"
URL="https://repo-ci.voidlinux.org/static/xbps-static-static-${VERSION}.${ARCH}.tar.xz"
FILE=${URL##*/}
mkdir -p /tmp/bin

View file

@ -2,11 +2,8 @@
#
# changed_templates.sh
if command -v chroot-git >/dev/null 2>&1; then
GIT_CMD=$(command -v chroot-git)
elif command -v git >/dev/null 2>&1; then
GIT_CMD=$(command -v git)
fi
# required by git 2.35.2+
git config --global --add safe.directory "$PWD"
/bin/echo -e '\x1b[32mFetching upstream...\x1b[0m'
$GIT_CMD fetch --depth 200 https://github.com/void-linux/void-packages.git master
git fetch --depth 200 https://github.com/void-linux/void-packages.git master

View file

@ -31,6 +31,7 @@ Apache-1.0
Apache-1.1
Apache-2.0
App-s2p
Arphic-1999
Artistic-1.0-Perl
Artistic-1.0-cl8
Artistic-1.0
@ -58,12 +59,14 @@ BSD-Protection
BSD-Source-Code
BSL-1.0
BUSL-1.1
Baekmuk
Bahyph
Barr
Beerware
Bison-exception-2.2
BitTorrent-1.0
BitTorrent-1.1
Bitstream-Vera
BlueOak-1.0.0
Bootloader-exception
Borceux
@ -77,6 +80,7 @@ CC-BY-2.5-AU
CC-BY-2.5
CC-BY-3.0-AT
CC-BY-3.0-DE
CC-BY-3.0-IGO
CC-BY-3.0-NL
CC-BY-3.0-US
CC-BY-3.0
@ -220,6 +224,8 @@ GPL-3.0-linking-source-exception
GPL-3.0-only
GPL-3.0-or-later
GPL-CC-1.0
GStreamer-exception-2005
GStreamer-exception-2008
Giftware
Glide
Glulxe
@ -244,6 +250,7 @@ JPNIC
JSON
Jam
JasPer-2.0
KiCad-libraries-exception
LAL-1.2
LAL-1.3
LGPL-2.0-only
@ -262,6 +269,8 @@ LPPL-1.1
LPPL-1.2
LPPL-1.3a
LPPL-1.3c
LZMA-SDK-9.11-to-9.20
LZMA-SDK-9.22
LZMA-exception
Latex2e
Leptonica
@ -286,10 +295,12 @@ MPL-1.0
MPL-1.1
MPL-2.0-no-copyleft-exception
MPL-2.0
MS-LPL
MS-PL
MS-RL
MTLL
MakeIndex
Minpack
MirOS
Motosoto
MulanPSL-1.0
@ -302,6 +313,7 @@ NBPL-1.0
NCGL-UK-2.0
NCSA
NGPL
NICTA-1.0
NIST-PD-fallback
NIST-PD
NLOD-1.0
@ -379,6 +391,7 @@ Plexus
PolyForm-Noncommercial-1.0.0
PolyForm-Small-Business-1.0.0
PostgreSQL
Python-2.0.1
Python-2.0
QPL-1.0
Qhull
@ -515,7 +528,9 @@ libpng-2.0
libselinux-1.0
libtiff
mif-exception
mpi-permissive
mpich2
mplus
openvpn-openssl-exception
psfrag
psutils

View file

@ -1,15 +1,8 @@
#!/bin/sh
TRAVIS_PROTO=http
TRAVIS_MIRROR=repo-us.voidlinux.org
TRAVIS_MIRROR=repo-ci.voidlinux.org
for _i in etc/xbps.d/repos-remote*.conf ; do
/bin/echo -e "\x1b[32mUpdating $_i...\x1b[0m"
# First fix the proto, ideally we'd serve everything with HTTPS,
# but key management and rotation is a pain, and things are signed
# so we can afford to be a little lazy at times.
sed -i "s:https:$TRAVIS_PROTO:g" $_i
# Now set the mirror
sed -i "s:alpha\.de\.repo\.voidlinux\.org:$TRAVIS_MIRROR:g" $_i
sed -i "s:repo-default\.voidlinux\.org:$TRAVIS_MIRROR:g" $_i
done

View file

@ -11,7 +11,8 @@ common/scripts/lint-commits $base $tip || EXITCODE=$?
for t in $(awk '{ print "srcpkgs/" $0 "/template" }' /tmp/templates); do
/bin/echo -e "\x1b[32mLinting $t...\x1b[0m"
xlint "$t" || EXITCODE=$?
common/scripts/lint-version-change "$t" $base $tip || EXITCODE=$?
xlint "$t" > /tmp/xlint_out || EXITCODE=$?
common/scripts/lint-version-change "$t" $base $tip > /tmp/vlint_out || EXITCODE=$?
awk -f common/scripts/lint2annotations.awk /tmp/xlint_out /tmp/vlint_out
done
exit $EXITCODE

25
common/travis/xpkgdiff.sh Executable file
View file

@ -0,0 +1,25 @@
#!/bin/sh
#
# xpkgdiff.sh
export XBPS_DISTDIR=/hostrepo XBPS_HOSTDIR="$HOME/hostdir"
export DIFF='diff --unified=0 --report-identical-files --suppress-common-lines
--color=always --label REPO --label BUILT'
ARGS="-a $2 -R https://repo-ci.voidlinux.org/current"
while read -r pkg; do
for subpkg in $(xsubpkg $pkg); do
if xbps-query --repository=$HOME/hostdir/binpkgs \
--repository=$HOME/hostdir/binpkgs/nonfree \
-i "$subpkg" >&/dev/null; then
/bin/echo -e "\x1b[34mFile Diff of $subpkg:\x1b[0m"
xpkgdiff $ARGS -f $subpkg
/bin/echo -e "\x1b[34mMetadata Diff of $subpkg:\x1b[0m"
xpkgdiff $ARGS -S $subpkg
/bin/echo -e "\x1b[34mDependency Diff of $subpkg:\x1b[0m"
xpkgdiff $ARGS -x $subpkg
else
/bin/echo -e "\x1b[33m$subpkg wasn't found\x1b[0m"
fi
done
done < /tmp/templates

View file

@ -20,6 +20,13 @@ done
setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD
if [ -n "$disable_parallel_check" ]; then
XBPS_MAKEJOBS=1
else
XBPS_MAKEJOBS="$XBPS_ORIG_MAKEJOBS"
fi
makejobs="-j$XBPS_MAKEJOBS"
XBPS_CHECK_DONE="${XBPS_STATEDIR}/${sourcepkg}_${XBPS_CROSS_BUILD}_check_done"
if [ -n "$XBPS_CROSS_BUILD" ]; then

View file

@ -25,9 +25,9 @@ setup_pkg_depends() {
_pkgname=$(xbps-uhelper getpkgname $_depname 2>/dev/null)
[ -z "$_pkgname" ] && _pkgname="$_depname"
if [ -s ${XBPS_DISTDIR}/etc/virtual ]; then
foo=$(egrep "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/virtual|cut -d ' ' -f2)
foo=$(grep -E "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/virtual|cut -d ' ' -f2)
elif [ -s ${XBPS_DISTDIR}/etc/defaults.virtual ]; then
foo=$(egrep "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/defaults.virtual|cut -d ' ' -f2)
foo=$(grep -E "^${_pkgname}[[:blank:]]" ${XBPS_DISTDIR}/etc/defaults.virtual|cut -d ' ' -f2)
fi
if [ -z "$foo" ]; then
msg_error "$pkgver: failed to resolve virtual dependency for '$j' (missing from etc/virtual)\n"

View file

@ -54,7 +54,7 @@ bulk_sortdeps() {
}
bulk_build() {
local sys="$1"
local bulk_build_cmd="$1"
local NPROCS=$(($(nproc)*2))
local NRUNNING=0
@ -67,10 +67,17 @@ bulk_build() {
fi
# Compare installed pkg versions vs srcpkgs
if [[ $sys ]]; then
xbps-checkvers -f '%n' -I -D $XBPS_DISTDIR
case "$bulk_build_cmd" in
installed)
bulk_sortdeps $(xbps-checkvers -f '%n' -I -D "$XBPS_DISTDIR")
return $?
fi
;;
local)
bulk_sortdeps $(xbps-checkvers -f '%n' -i -R "${XBPS_REPOSITORY}" -R "${XBPS_REPOSITORY}/nonfree" -D "$XBPS_DISTDIR")
return $?
;;
esac
# compare repo pkg versions vs srcpkgs
for f in $(xbps-checkvers -f '%n' -D $XBPS_DISTDIR); do
if [ $NRUNNING -eq $NPROCS ]; then
@ -90,9 +97,9 @@ bulk_build() {
}
bulk_update() {
local args="$1" pkgs f rval
local bulk_update_cmd="$1" pkgs f rval
pkgs="$(bulk_build ${args})"
pkgs="$(bulk_build "${bulk_update_cmd}")"
[[ -z $pkgs ]] && return 0
msg_normal "xbps-src: the following packages must be rebuilt and updated:\n"
@ -112,7 +119,7 @@ bulk_update() {
msg_error "xbps-src: failed to build $pkgver pkg!\n"
fi
done
if [ -n "$pkgs" -a -n "$args" ]; then
if [ -n "$pkgs" -a "$bulk_update_cmd" == installed ]; then
echo
msg_normal "xbps-src: updating your system, confirm to proceed...\n"
${XBPS_SUCMD} "xbps-install --repository=$XBPS_REPOSITORY --repository=$XBPS_REPOSITORY/nonfree -u ${pkgs//[$'\n']/ }" || return 1

View file

@ -19,8 +19,8 @@ install_base_chroot() {
msg_error "xbps-src: failed to install base-chroot-cereus!\n"
fi
# Reconfigure base-files to create dirs/symlinks.
if xbps-query -r $XBPS_MASTERDIR base-files>=2022.07.03 &>/dev/null; then
XBPS_ARCH=$XBPS_TARGET_PKG xbps-reconfigure -r $XBPS_MASTERDIR -f base-files>=2022.07.03 &>/dev/null
if xbps-query -r $XBPS_MASTERDIR base-files &>/dev/null; then
XBPS_ARCH=$XBPS_TARGET_PKG xbps-reconfigure -r $XBPS_MASTERDIR -f base-files &>/dev/null
fi
msg_normal "xbps-src: installed base-chroot-cereus successfully!\n"
@ -115,14 +115,14 @@ chroot_prepare() {
[ ! -d $XBPS_MASTERDIR/$f ] && mkdir -p $XBPS_MASTERDIR/$f
done
# Copy /etc/passwd and /etc/group from base-files
# Copy /etc/passwd and /etc/group from base-files.
cp -f $XBPS_SRCPKGDIR/base-files/files/passwd $XBPS_MASTERDIR/etc
echo "$(whoami):x:$(id -u):$(id -g):$(whoami) user:/tmp:/bin/xbps-shell" \
>> $XBPS_MASTERDIR/etc/passwd
cp -f $XBPS_SRCPKGDIR/base-files/files/group $XBPS_MASTERDIR/etc
echo "$(whoami):x:$(id -g):" >> $XBPS_MASTERDIR/etc/group
# Copy /etc/hosts from base-files
# Copy /etc/hosts from base-files.
cp -f $XBPS_SRCPKGDIR/base-files/files/hosts $XBPS_MASTERDIR/etc
# Prepare default locale: en_US.UTF-8.

View file

@ -147,6 +147,23 @@ msg_normal() {
fi
}
report_broken() {
if [ "$show_problems" = "ignore-problems" ]; then
return
fi
if [ -z "$XBPS_IGNORE_BROKENNESS" ]; then
for line in "$@"; do
msg_red "$line"
done
exit 2
elif [ "$XBPS_IGNORE_BROKENNESS" != reported ]; then
for line in "$@"; do
msg_warn "$line"
done
XBPS_IGNORE_BROKENNESS=reported
fi
}
msg_normal_append() {
[ -n "$NOCOLORS" ] || printf "\033[1m"
printf "$@"
@ -472,7 +489,15 @@ setup_pkg() {
fi
makejobs="-j$XBPS_MAKEJOBS"
if [ -n "$XBPS_BINPKG_EXISTS" ]; then
local _binpkgver="$($XBPS_QUERY_XCMD -R -ppkgver $pkgver 2>/dev/null)"
local extraflags=""
if [ -n "$XBPS_SKIP_REMOTEREPOS" ]; then
extraflags="-i"
# filter out remote repositories
for repo in $(xbps-query -L | awk '{ print $2 }' | grep '^/host/'); do
extraflags+=" --repository=$repo"
done
fi
local _binpkgver="$($XBPS_QUERY_XCMD -R -ppkgver $pkgver $extraflags 2>/dev/null)"
if [ "$_binpkgver" = "$pkgver" ]; then
if [ -z "$XBPS_DEPENDENCY" ]; then
local _repo="$($XBPS_QUERY_XCMD -R -prepository $pkgver 2>/dev/null)"
@ -630,20 +655,16 @@ setup_pkg() {
fi
# Setup some specific package vars.
if [ -z "$wrksrc" ]; then
wrksrc="$XBPS_BUILDDIR/${sourcepkg}-${version}"
else
wrksrc="$XBPS_BUILDDIR/$wrksrc"
fi
wrksrc="$XBPS_BUILDDIR/${sourcepkg}-${version}"
if [ "$cross" -a "$nocross" -a "$show_problems" != "ignore-problems" ]; then
msg_red "$pkgver: cannot be cross compiled, exiting...\n"
msg_red "$pkgver: $nocross\n"
exit 2
elif [ "$broken" -a "$show_problems" != "ignore-problems" ]; then
msg_red "$pkgver: cannot be built, it's currently broken; see the build log:\n"
msg_red "$pkgver: $broken\n"
exit 2
if [ "$cross" -a "$nocross" ]; then
report_broken \
"$pkgver: cannot be cross compiled...\n" \
"$pkgver: $nocross\n"
elif [ "$broken" ]; then
report_broken \
"$pkgver: cannot be built, it's currently broken; see the build log:\n" \
"$pkgver: $broken\n"
fi
if [ -n "$restricted" -a -z "$XBPS_ALLOW_RESTRICTED" -a "$show_problems" != "ignore-problems" ]; then

View file

@ -72,7 +72,7 @@ prepare_cross_sysroot() {
fi
rm -f $errlog
# Create top level symlinks in sysroot.
XBPS_ARCH=$XBPS_TARGET_MACHINE xbps-reconfigure -r $XBPS_CROSS_BASE -f base-files-cereus>=2022.07.03 &>/dev/null
XBPS_ARCH=$XBPS_TARGET_MACHINE xbps-reconfigure -r $XBPS_CROSS_BASE -f base-files &>/dev/null
# Create a sysroot/include and sysroot/lib symlink just in case.
ln -s usr/include ${XBPS_CROSS_BASE}/include
ln -s usr/lib ${XBPS_CROSS_BASE}/lib

View file

@ -34,8 +34,7 @@ check_pkg_arch() {
esac
done
if [ -z "$nonegation" -a -n "$match" ] || [ -n "$nonegation" -a -z "$match" ]; then
msg_red "${pkgname}-${version}_${revision}: this package cannot be built for ${_arch}.\n"
exit 2
report_broken "${pkgname}-${version}_${revision}: this package cannot be built for ${_arch}.\n"
fi
fi
}

View file

@ -4,6 +4,7 @@ update_check() {
local i p url pkgurlname rx found_version consider
local update_override=$XBPS_SRCPKGDIR/$XBPS_TARGET_PKG/update
local original_pkgname=$pkgname
local pkgname=$sourcepkg
local urlpfx urlsfx
local -A fetchedurls
@ -23,8 +24,9 @@ update_check() {
if [ -z "$site" ]; then
case "$distfiles" in
# only consider versions those exist in ftp.gnome.org
*ftp.gnome.org*) ;;
# special case those sites provide better source elsewhere
*ftp.gnome.org*|*download.gnome.org*) ;;
*archive.xfce.org*) ;;
*)
printf '%s\n' "$homepage" ;;
esac
@ -56,7 +58,8 @@ update_check() {
*github.com*|\
*//gitlab.*|\
*bitbucket.org*|\
*ftp.gnome.org*|\
*ftp.gnome.org*|*download.gnome.org*|\
*archive.xfce.org*|\
*kernel.org/pub/linux/kernel/*|\
*cran.r-project.org/src/contrib*|\
*rubygems.org*|\
@ -122,8 +125,11 @@ update_check() {
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
url="https://github.com/$pkgurlname/tags"
rx='/archive/refs/tags/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz")';;
*//gitlab.*)
pkgurlname="$(printf %s "$url" | cut -d/ -f1-5)"
*//gitlab.*|*code.videolan.org*)
case "$url" in
*/-/*) pkgurlname="$(printf %s "$url" | sed -e 's%/-/.*%%g; s%/$%%')";;
*) pkgurlname="$(printf %s "$url" | cut -d / -f 1-5)";;
esac
url="$pkgurlname/tags"
rx='/archive/[^/]+/\Q'"$pkgname"'\E-v?\K[\d.]+(?=\.tar\.gz")';;
*bitbucket.org*)
@ -131,8 +137,11 @@ update_check() {
url="https://bitbucket.org/$pkgurlname/downloads"
rx='/(get|downloads)/(v?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar)';;
*ftp.gnome.org*|*download.gnome.org*)
: ${pattern="\Q$pkgname\E-\K(0|[13]\.[0-9]*[02468]|[4-9][0-9]+)\.[0-9.]*[0-9](?=)"}
: ${pattern="\Q$pkgname\E-\K(0|[13]\.[0-9]*[02468]|[4-9][0-9]+)\.[0-9.]*[0-9](?=.tar)"}
url="https://download.gnome.org/sources/$pkgname/cache.json";;
*archive.xfce.org*)
: ${pattern="\Q$pkgname\E-\K((([4-9]|([1-9][0-9]+))\.[0-9]*[02468]\.[0-9.]*[0-9])|([0-3]\.[0-9.]*))(?=.tar)"}
url="https://archive.xfce.org/feeds/project/$pkgname" ;;
*kernel.org/pub/linux/kernel/*)
rx=linux-'\K'${version%.*}'[\d.]+(?=\.tar\.xz)';;
*cran.r-project.org/src/contrib*)
@ -145,8 +154,8 @@ update_check() {
rx='/crates/'${pkgname#rust-}'/\K[0-9.]*(?=/download)' ;;
*codeberg.org*)
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
url="https://codeberg.org/$pkgurlname/releases"
rx='/archive/\K[\d.]+(?=\.tar\.gz)' ;;
url="https://codeberg.org/$pkgurlname/tags"
rx='/archive/(v-?|\Q'"$pkgname"'\E-)?\K[\d.]+(?=\.tar\.gz)' ;;
*hg.sr.ht*)
pkgurlname="$(printf %s "$url" | cut -d/ -f4,5)"
url="https://hg.sr.ht/$pkgurlname/tags"

View file

@ -1,7 +1,8 @@
# voidlinux remote repositories (musl)
repository=https://mirrors.servercentral.com/voidlinux/current/musl
repository=https://mirrors.servercentral.com/voidlinux/current/musl/nonfree
repository=https://mirrors.servercentral.com/voidlinux/current/musl/debug
repository=https://repo-default.voidlinux.org/current/musl
repository=https://repo-default.voidlinux.org/current/musl/bootstrap
repository=https://repo-default.voidlinux.org/current/musl/nonfree
repository=https://repo-default.voidlinux.org/current/musl/debug
# Cereus Linux remote repositories (musl)
repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64-musl

View file

@ -1,7 +1,8 @@
# voidlinux remote repositories (glibc)
repository=https://mirrors.servercentral.com/voidlinux/current
repository=https://mirrors.servercentral.com/voidlinux/current/nonfree
repository=https://mirrors.servercentral.com/voidlinux/current/debug
repository=https://repo-default.voidlinux.org/current
repository=https://repo-default.voidlinux.org/current/nonfree
repository=https://repo-default.voidlinux.org/current/debug
repository=https://repo-default.voidlinux.org/current/bootstrap
# Cereus Linux remote repositories (glibc)
repository=https://sourceforge.net/projects/cereus-linux/files/repos/cereus-core/x86_64

83
pkglist
View file

@ -1,83 +0,0 @@
These are the packages we are maintaining in both Core and Extra repositories.
The rest of them are from Void team.
Graphite-color-schemes
Graphite-color-schemes-black
Graphite-color-schemes-dark
Graphite-color-schemes-light
Graphite-color-schemes-nord-dark
Graphite-color-schemes-nord-light
Graphite-gtk-theme
Graphite-gtk-theme-black
Graphite-gtk-theme-black-compact
Graphite-gtk-theme-compact
Graphite-gtk-theme-dark
Graphite-gtk-theme-dark-compact
Graphite-gtk-theme-light
Graphite-gtk-theme-light-compact
Graphite-gtk-theme-nord-dark
Graphite-gtk-theme-nord-dark-compact
Graphite-gtk-theme-nord-light
Graphite-gtk-theme-nord-light-compact
Graphite-kvantum-theme
Graphite-kvantum-theme-Nord-dark
Graphite-kvantum-theme-Nord-light
Graphite-kvantum-theme-black
Graphite-kvantum-theme-dark
Graphite-kvantum-theme-light
Mint-Ice-Y-Dark
Sierra-Dark-Fluxbox
base-cereus
base-chroot-cereus
base-files-cereus
blesh
blesh-git
brave-bin
budgie-extras
calamares
calamares-cereus
calamares-modules-cereus
calmsky-icon-theme
cereus-neofetch
cereus-repo-core
cereus-repo-extra
cereus-wallpapers
flat-remix-icewm-theme
flat-remix-icon-theme-black
flat-remix-icon-theme-blue
flat-remix-icon-theme-brown
flat-remix-icon-theme-cyan
flat-remix-icon-theme-green
flat-remix-icon-theme-grey
flat-remix-icon-theme-magenta
flat-remix-icon-theme-orange
flat-remix-icon-theme-red
flat-remix-icon-theme-teal
flat-remix-icon-theme-violet
flat-remix-icon-theme-yellow
graphite-kvantum-theme
jetbrains-mono-font
librewolf-bin
musl-locales
nerd-fonts-symbols
octoxbps-git
picom-ibhagwan
picom-jonaburg
pixelitos-icon-theme
plasma-fluxbox
plasma-i3
runit-cereus
runit-cereus-apparmor
vibrancy-icon-theme
vibrancy-icon-theme-colors
vibrancy-icon-theme-dark
vibrancy-icon-theme-full-dark
vibrancy-icon-theme-light
vibrancy-icon-theme-nonmono-dark
vibrancy-icon-theme-nonmono-light
whatsdesk-bin
whatsdesk-bin-i686
whatsdesk-git
xed-xapps
xed-xapps-devel
xidlehook

View file

@ -1,6 +1,6 @@
# Template file for 'Graphite-color-schemes'
pkgname=Graphite-color-schemes
version=2022.02.21
version=2023.01.16
revision=1
build_style=meta
nostrip=yes
@ -16,8 +16,6 @@ short_desc="Custom additional color schemes of Graphite theme for KDE Plasma des
maintainer="Kevin F. <https://github.com/KF-Art>"
license="GPL-3.0"
homepage="https://github.com/KF-Art/Graphite-color-schemes"
# distfiles="${homepage}/archive/v${version}.tar.gz"
# checksum=
do_fetch() {
git clone https://github.com/KF-Art/Graphite-color-schemes ${wrksrc}

View file

@ -1 +0,0 @@
Graphite-gtk-theme

View file

@ -0,0 +1,35 @@
diff --git a/src/sass/gtk/apps/_xfce.scss b/src/sass/gtk/apps/_xfce.scss
index f2f219f..91b2c2f 100644
--- a/src/sass/gtk/apps/_xfce.scss
+++ b/src/sass/gtk/apps/_xfce.scss
@@ -18,15 +18,21 @@
color: on($panel, secondary);
font-weight: 500;
- button {
- @extend %button-flat;
- @extend %button-on-dark;
-
- min-height: 16px;
- min-width: 16px;
- padding: 0;
- border-radius: 0;
- }
+.xfce4-panel button {
+ border: 0;
+ border-radius: 0;
+ box-shadow: none;
+ text-shadow: none;
+ background: transparent;
+ color: white;
+ -gtk-icon-shadow: none; }
+
+ button:not(#whiskermenu-button):active {
+ box-shadow: inset 0 4px 0 rgba(0, 0, 0, 0.2);;
+ background: rgba(0, 0, 0, 0.2);
+ color: white; }
+ .xfce4-panel.vertical button:not(#whiskermenu-button):checked, .xfce4-panel.vertical button:not(#whiskermenu-button):active {
+ box-shadow: inset 4px 0 0 rgba(0, 0, 0, 0.2);; }
.tasklist button {
border-image: image(transparent) 0 0 2 / 0 0 2px;

View file

@ -1,7 +1,7 @@
# Template file for 'Graphite-gtk-theme'
pkgname=Graphite-gtk-theme
version=2022.09.02
date=2022-09-02
version=2023.05.17
date=${version//./-}
revision=1
repository="cereus-extra"
wrksrc=Graphite-gtk-theme-${date}
@ -25,11 +25,11 @@ ${pkgname}-nord-light
${pkgname}-nord-light-compact"
short_desc="Material design inspired GTK theme with light and dark variants"
maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="GPL-3.0"
homepage="https://github.com/vinceliuice/Graphite-gtk-theme"
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
checksum=af03e9e5ae29a5b8ee4b10a8e2ca95396bc300e35e939f21dedbc9568aefcd60
checksum=aa212d71ba70cfbc3038fc0f850b1265a9d85a3a87ae1a9da024127e25f53903
Graphite-gtk-theme-black_package() {
nostrip=yes

View file

@ -1,22 +1,23 @@
# Template file for 'Graphite-kvantum-theme'
pkgname=Graphite-kvantum-theme
version=1.0
revision=4
version=1.1.1
revision=1
build_style=meta
repository=cereus-extra
depends="${pkgname}-black \
${pkgname}-Nord-dark \
${pkgname}-Nord-light \
${pkgname}-dark \
depends="${pkgname}-black
${pkgname}-Nord-dark
${pkgname}-Nord-light
${pkgname}-dark
${pkgname}-light"
nostrip=yes
wrksrc=Graphite-kvantum-colors-${version}
short_desc="Material design inspired Kvantum theme"
maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="GPL-3.0"
homepage="https://github.com/KF-Art/Graphite-kvantum-colors"
changelog="${homepage}/releases/tag/${version}"
distfiles="${homepage}/archive/refs/tags/${version}.tar.gz"
checksum=01be2c306de4e4b3ca6788d02e49206688aae207ccf0252957bece02eb1b1e1c
checksum=af603cbd5b1e323ca775a8a724e94bddf9534a0961db6d5a4771bcb6d9a02fbc
Graphite-kvantum-theme-black_package() {
color=black

View file

@ -1,7 +1,7 @@
# Template file for 'Tela-icon-theme'
pkgname=Tela-icon-theme
date=2022-08-28
version=2022.08.28
version=2023.02.03
date=${version//./-}
revision=1
build_style=meta
repository=cereus-extra
@ -16,10 +16,8 @@ depends="${pkgname}-standard \
${pkgname}-red \
${pkgname}-yellow \
${pkgname}-manjaro
${pkgname}-ubuntu"
# Keep nord variant until it integrates to future release (currently is only in git branch)
# ${pkgname}-nord"
${pkgname}-ubuntu
${pkgname}-nord"
nostrip=yes
icondir=usr/share/icons
@ -30,7 +28,7 @@ maintainer="Kevin F. <https://github.com/KF-Art>"
license="GPL-3.0"
homepage="https://github.com/vinceliuice/Tela-icon-theme"
distfiles="${homepage}/archive/refs/tags/${date}.tar.gz"
checksum=09be82313a0ccfab4e3390de6dd1bd0ace115ba5990aae42e327777642ee7ff4
checksum=ab6bf283875a8d777d1a3c8b5969c78a0d329409a4561f4c0f22d36d69171e5d
Tela-icon-theme-standard_package() {
color=standard

View file

@ -1,7 +1,7 @@
# Template file for 'alttab-git'
pkgname=alttab-git
version=2022.05.28
revision=2
version=2023.03.19
revision=1
build_style=gnu-configure
hostmakedepends="pkg-config git"
repository="cereus-extra"
@ -9,7 +9,7 @@ makedepends="libX11-devel libXft-devel libXmu-devel libXrandr-devel
libXrender-devel libpng-devel libXpm-devel uthash automake"
checkdepends="procps-ng xvfb-run xeyes xprop"
short_desc="Task switcher for minimalistic window managers - git branch"
maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="GPL-3.0-or-later"
homepage="https://github.com/sagb/alttab"
changelog="https://github.com/sagb/alttab/raw/master/ChangeLog"

View file

@ -1,11 +1,11 @@
# Template file for 'base-cereus'
pkgname=base-cereus
version=0.114
revision=4
version=2023.02.14
revision=1
build_style=meta
repository=cereus-core
short_desc="Cereus Linux base system meta package"
maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="Public Domain"
conflicts="base-system"
homepage="https://cereuslinuxproject.github.io"
@ -16,7 +16,8 @@ depends="
mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs f2fs-tools dosfstools
procps-ng tzdata pciutils usbutils iana-etc openssh dhcpcd cereus-repo-core
cereus-repo-extra kbd iproute2 iputils iw wpa_supplicant xbps nvi wifi-firmware
cereus-artwork traceroute ethtool kmod acpid eudev runit-cereus removed-packages"
cereus-artwork traceroute ethtool kmod acpid eudev runit-cereus removed-packages
xrankmirrors"
case "$XBPS_TARGET_MACHINE" in
*-musl) depends+=" musl musl-locales";;
@ -24,5 +25,5 @@ case "$XBPS_TARGET_MACHINE" in
esac
case "$XBPS_TARGET_MACHINE" in
i686*|x86_64*|ppc*) depends+=" linux-base linux5.15 linux5.15-headers";;
i686*|x86_64*|ppc*) depends+=" linux-default-cereus";;
esac

View file

@ -4,4 +4,3 @@
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '

View file

@ -5,7 +5,7 @@
version="1.0"
distributor_id="Cereus"
description="Cereus Linux"
release="Rolling"
release="Beta"
codename="cereus"
options=""
short=0

View file

@ -1,12 +1,12 @@
# Template file for 'base-files'
pkgname=base-files
version=2022.07.03
revision=11
version=2023.01.30
revision=1
bootstrap=yes
repository=cereus-core
depends="xbps-triggers"
short_desc="Cereus Linux base system files"
maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="Public Domain"
homepage="https://cereus-linux.sourceforge.io"
conflicts="base-files>=0.77"

View file

@ -0,0 +1,20 @@
# Template file for 'betterlockscreen-gui'
pkgname=betterlockscreen-gui
version=2023.01.28
revision=1
repository="cereus-extra"
hostmakedepends="git"
depends="python3-psutil betterlockscreen python3-gobject pygtk resolution-hooks bc"
short_desc="Betterlockscreen GUI configuration tool"
maintainer="Kevin F. <kevinfigueroart@protonmail.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/CereusLinuxProject/betterlockscreen-gui"
changelog="${homepage}/commits/master"
do_fetch() {
git clone ${homepage} ${wrksrc}
}
do_install() {
vcopy usr ./
}

View file

@ -1,13 +1,13 @@
# Template file for 'blesh-git'
pkgname=blesh-git
version=2022.11.12
version=2023.04.18
revision=1
makedepends="gawk git"
depends="bash git"
build_style="gnu-makefile"
repository=cereus-extra
short_desc="A replacement for bash's line editor with advanced features"
maintainer="Kevin F. <https://github.com/KF-Art>"
short_desc="A replacement for bash's line editor with advanced features - git nightly branch"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="BSD-3-Clause"
conflicts="blesh"
homepage="https://github.com/akinomyoga/ble.sh"

View file

@ -1,17 +1,17 @@
# Template file for 'blesh'
pkgname=blesh
version=0.3.3
revision=4
version=0.3.4
revision=1
depends="bash"
repository=cereus-extra
wrksrc="ble-${version}"
short_desc="A replacement for bash's line editor with advanced features"
maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="BSD-3-Clause"
conflicts="blesh-git"
homepage="https://github.com/akinomyoga/ble.sh"
distfiles="${homepage}/releases/download/v0.3.3/ble-${version}.tar.xz"
checksum=a7e66383bd828584e82133ee08ab0bd8074ef0a739eacb835ff0970c3853f33a
distfiles="${homepage}/releases/download/v${version}/ble-${version}.tar.xz"
checksum=e543a43d211fef8f52b96b2e7935e892581421f759cda4ae87563854ebc60573
do_install() {
vmkdir usr/share/blesh

View file

@ -1,16 +1,16 @@
# Template file for 'brave-bin'
pkgname=brave-bin
version=1.45.125
version=1.50.121
revision=1
archs="x86_64"
repository="cereus-extra"
short_desc="Secure, fast and private web browser with ad blocker"
maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
hostmakedepends="tar xz awk"
license="Mozilla Public License Version 2.0"
license="MPL-2.0"
homepage="https://brave.com"
distfiles="https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"
checksum=8cef0647d7bd726b347ed27a6efac847d1fb620023a211e090035f9db94febe9
checksum=b15edc10d04240bb3c569253d7507bd488ee18e95ec5de66fd696fffdbeab561
do_extract() {
mkdir -p ${DESTDIR}

View file

@ -1,18 +1,18 @@
# Template file for 'budgie-extras'
pkgname=budgie-extras
version=1.5.0
version=1.6.0
revision=1
repository=cereus-extra
build_style=meson
hostmakedepends="pkg-config glib"
hostmakedepends="pkg-config glib awk"
makedepends="budgie-desktop-devel pam-devel pkg-config glib-devel glib cmake libgee08-devel intltool granite-devel libsoup-devel AppStream-devel zeitgeist-devel libhandy-devel libkeybinder3-devel libnma-devel"
short_desc="Additional Budgie desktop applets to enhance user experience"
maintainer="Kevin F. <https://github.com/KF-Art>"
license="GPL-3.0"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="GPL-3.0-or-later"
homepage="https://github.com/UbuntuBudgie/budgie-extras"
changelog="${homepage}/releases/tag/v${version}"
distfiles="${homepage}/releases/download/v${version}/${pkgname}-${version}.tar.xz"
checksum=10d14a1f6c90d5fa8106077094f83030a5ac26cf81e9820e9c34566b182a844a
checksum=450e801a187290a00b7fb3e7922ea91159d7ecc8ae6592f375ca7a0874a0f674
post_install() {
vlicense LICENSE

View file

@ -1,12 +1,12 @@
# Template file for 'calamares-branding'
pkgname=calamares-branding
version=2022.06.09
revision=1
version=2023.01.30
revision=2
hostmakedepends="git"
_brandingdir="etc/calamares/branding/cereus"
repository="cereus-core"
short_desc="Calamares branding for Cereus Linux"
maintainer="KF-Art <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="CC-BY-SA-4.0"
homepage="https://github.com/CereusLinuxProject/Cereus-Artwork/tree/main/calamares-branding"
@ -17,8 +17,9 @@ do_fetch() {
do_install() {
vmkdir ${_brandingdir}
vcopy ${pkgname}/*.png ${_brandingdir}
cp branding/cereus-logo-512x512.png branding/logo.png
vinstall branding/logo.png 0644 ${_brandingdir}
vinstall ${pkgname}/show.qml 0644 ${_brandingdir}
cp Branding/cereus-logo-512x512.png Branding/logo.png
vinstall Branding/logo.png 0644 ${_brandingdir}
vinstall ${pkgname}/branding.desc 0644 ${_brandingdir}
vlicense LICENSE
}

View file

@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View file

@ -1,107 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# === This file is part of Calamares - <http://github.com/calamares> ===
#
# Copyright 2014 - 2019, Philip Müller <philm@manjaro.org>
# Copyright 2016, Artoo <artoo@manjaro.org>
#
# Calamares is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Calamares is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Calamares. If not, see <http://www.gnu.org/licenses/>.
import libcalamares
import subprocess
from shutil import copy2
from distutils.dir_util import copy_tree
from os.path import join, exists
from libcalamares.utils import target_env_call
class ConfigController:
def __init__(self):
self.__root = libcalamares.globalstorage.value("rootMountPoint")
@property
def root(self):
return self.__root
def terminate(self, proc):
target_env_call(['killall', '-9', proc])
def copy_file(self, file):
if exists("/" + file):
copy2("/" + file, join(self.root, file))
def copy_folder(self, source, target):
if exists("/" + source):
copy_tree("/" + source, join(self.root, target))
def remove_pkg(self, pkg):
target_env_call(['xbps-remove', '-Ry', pkg])
def umount(self, mp):
subprocess.call(["umount", "-l", join(self.root, mp)])
def mount(self, mp):
subprocess.call(["mount", "-B", "/" + mp, join(self.root, mp)])
def rmdir(self, dir):
subprocess.call(["rm", "-Rf", join(self.root, dir)])
def mkdir(self, dir):
subprocess.call(["mkdir", "-p", join(self.root, dir)])
def run(self):
if exists(join(self.root, "usr/sbin/void-installer")):
target_env_call(["rm", "-f", "usr/sbin/void-installer"])
if exists(join(self.root, "usr/sbin/cereus-installer")):
target_env_call(["rm", "-f", "usr/sbin/cereus-installer"])
# Initialize package manager databases
if libcalamares.globalstorage.value("hasInternet"):
target_env_call(["xbps-install", "-Syy"])
# Remove calamares
self.remove_pkg("calamares-cereus")
if exists(join(self.root, "usr/share/applications/calamares.desktop")):
target_env_call(["rm", "-f", "usr/share/applications/calamares.desktop"])
# Copy skel to root
self.copy_folder('etc/skel', 'root')
# Update grub.cfg
if exists(join(self.root, "usr/bin/update-grub")):
target_env_call(["update-grub"])
# Enable 'menu_auto_hide' when supported in grubenv
if exists(join(self.root, "usr/bin/grub-set-bootflag")):
target_env_call(["grub-editenv", "-", "set", "menu_auto_hide=1", "boot_success=1"])
# Enable plymouth
target_env_call(["plymouth-set-default-theme", "-R", "cereus_simply"])
# Replace /etc/issue msg from live
if exists(join(self.root, "etc/issue.new")):
target_env_call(["mv", "etc/issue.new", "etc/issue"])
# Reconfigure all target packages to ensure everything is ok
target_env_call(["xbps-reconfigure", "-fa"])
def run():
""" Misc postinstall configurations """
config = ConfigController()
return config.run()

View file

@ -1,6 +0,0 @@
# Syntax is YAML 1.2
---
type: "job"
name: "postcfg"
interface: "python"
script: "main.py" #assumed relative to the current directory

View file

@ -1,16 +1,21 @@
# Template file for 'calamares-modules-cereus'
pkgname=calamares-modules-cereus
version=2022.09.22
revision=1
modules_dir="usr/lib/calamares/modules/"
version=2023.02.14
revision=2
hostmakedepends="git"
_modules_dir="usr/lib/calamares/modules/"
repository="cereus-core"
short_desc="Additional Cereus modules for Calamares installer"
maintainer="Kevin F. <https://github.com/KF-Art>"
license="GPL-3.0"
homepage="https://cereuslinuxproject.github.io"
short_desc="Additional Cereus Linux modules for Calamares installer"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="GPL-2.0"
homepage="https://github.com/CereusLinuxProject/calamares-modules"
do_fetch() {
git clone ${homepage} ${wrksrc}
}
do_install() {
vmkdir ${modules_dir}
vcopy ${FILESDIR}/modules/* ${modules_dir}
vlicense ${FILESDIR}/LICENSE
vmkdir ${_modules_dir}
vcopy modules/* ${_modules_dir}
vlicense LICENSE
}

View file

@ -1,7 +1,7 @@
# Template file for 'calamares'
pkgname=calamares
version=3.2.61
revision=2
version=3.2.62
revision=1
build_style=cmake
repository=cereus-extra
configure_args="-DCMAKE_BUILD_TYPE=Release
@ -13,19 +13,19 @@ configure_args="-DCMAKE_BUILD_TYPE=Release
-DBoost_NO_BOOST_CMAKE=ON
-DSKIP_MODULES='webview;interactiveterminal;services-systemd;dummyprocess;dummypython;dummycpp;dummypythonqt'"
hostmakedepends="git extra-cmake-modules pkg-config gettext
ckbcomp kcoreaddons kdelibs4support python3-yaml awk"
ckbcomp kcoreaddons kdelibs4support python3-yaml awk clang"
makedepends="python3-devel python3-jsonschema yaml-cpp-devel boost-devel qt5-devel python3-devel kpmcore-devel
qt5-tools qt5-translations boost boost-python3-1.80 python3-QtPy qt5-svg-devel
qt5-tools qt5-translations boost boost-python3 python3-QtPy qt5-svg-devel
libpwquality AppStream-qt plasma-framework-devel qt5-webengine"
depends="kconfig kcoreaddons kiconthemes ki18n kio ksolid yaml-cpp kpmcore boost ckbcomp
hardinfo qt5-svg polkit-qt5 gtk-update-icon-cache plasma-framework qt5-xmlpatterns
squashfs-tools libpwquality AppStream-qt icu"
short_desc="Distribution-independent installer framework"
maintainer="Kevin F. <https://github.com/KF-Art>"
maintainer="Kevin F. <kevinfigueroart@proton.me>"
license="GPL"
homepage="https://calamares.io"
distfiles="https://github.com/${pkgname}/${pkgname}/releases/download/v${version}/${pkgname}-${version}.tar.gz"
checksum=7591b9b60738bdba7b9de2b8da5462ab21006db06a006f0dd21ac5b832711dd2
checksum=a0fbcec2a438693753fc174220356119ad7adb8a2b19c317518aa1cb025d6dd0
case ${XBPS_TARGET_MACHINE} in
*-musl)
@ -45,4 +45,6 @@ post_install() {
for license in BSD-2-Clause CC-BY-4.0 CC0-1.0 GPL-3.0-or-later LGPL-2.0-only LGPL-2.1-only LGPL-3.0-or-later MIT; do
vlicense LICENSES/${license}.txt
done
vbin build/loadmodule
}

View file

@ -1,6 +1,6 @@
# Template file for 'cereus-artwork'
pkgname=cereus-artwork
version=2022.06.14
version=2023.01.30
revision=1
hostmakedepends="git"
_wallpaperdir="usr/share/backgrounds"
@ -17,7 +17,7 @@ do_fetch() {
}
do_install() {
# Create directories in fake root
# Create directories in targetdir
for dir in ${_wallpaperdir} ${_icondir} ${_logodir}
do vmkdir ${dir}
done
@ -41,16 +41,29 @@ do_install() {
# Install icons
vinstall branding/cereus-logo-512x512.svg 0644 \
${_icondir}/scalable/apps cereus-logo.svg
for logo in cereus-logo{,-dark,-light}; do
vinstall Branding/${logo}-512x512.svg 0644 \
${_icondir}/scalable/apps ${logo}.svg
done
for res in 16 22 32 48 64 128 256 512
do vinstall branding/cereus-logo-${res}x${res}.png 0644 \
do vinstall Branding/cereus-logo-${res}x${res}.png 0644 \
${_icondir}/${res}x${res}/apps/ cereus-logo.png
done
for res in 16 22 32 48 64 128 256 512
do vinstall Branding/cereus-logo-light-${res}x${res}.png 0644 \
${_icondir}/${res}x${res}/apps/ cereus-logo-light.png
done
for res in 16 22 32 48 64 128 256 512
do vinstall Branding/cereus-logo-dark-${res}x${res}.png 0644 \
${_icondir}/${res}x${res}/apps/ cereus-logo-dark.png
done
# Install logos
vcopy branding/* ${_logodir}
vcopy Branding/* ${_logodir}
# Install license
vlicense LICENSE

View file

@ -0,0 +1,5 @@
# INSTALL
case "$ACTION" in
post)
plymouth-set-default-theme -R cereus_simply ;;
esac

View file

@ -0,0 +1,36 @@
# Template file for 'cereus-global-presets'
pkgname=cereus-global-presets
version=2023.01.28
revision=1
repository="cereus-core"
conf_files="
/etc/pipewire/pipewire.conf
/etc/skel/.profile
/etc/xdg/autostart/*.desktop
/etc/bash/bashrc.d/*.sh"
hostmakedepends="git"
depends="cereus-themes-presets bluez gst-libav libva-utils gst-plugins-base1 gst-plugins-good1 libcups-filters python3-cups python3-cupshelpers system-config-printer system-config-printer-udev vpm vsv numlockx xdg-user-dirs octoxbps-git touchegg plymouth cereus-plymouth-theme sof-firmware libspa-bluetooth NetworkManager chrony elogind alsa-pipewire pipewire gstreamer1-pipewire wireplumber pulseaudio-utils"
short_desc="Cereus Linux global default configurations"
maintainer="Kevin F. <kevinfigueroart@protonmail.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/CereusLinuxProject/presets"
changelog="${homepage}/commits/main/global"
do_fetch() {
git clone ${homepage} ${wrksrc}
}
do_install() {
cd global/etc
vinstall pipewire/pipewire.conf 0644 /etc/pipewire/
vinstall skel/.profile 0644 /etc/skel/
for f in octoxbps-notifier pipewire touchegg; do
vinstall xdg/autostart/${f}.desktop 0644 /etc/xdg/autostart/
done
cd bash/bashrc.d
for f in 99-ble 10-cereus-prompt; do
vinstall ${f}.sh 0644 /etc/bash/bashrc.d/
done
}

View file

@ -0,0 +1,22 @@
# Template file for 'cereus-lightdm-presets'
pkgname=cereus-lightdm-presets
version=2023.01.20
revision=1
repository="cereus-core"
conf_files="
/etc/lightdm/lightdm.conf.d/*.conf"
hostmakedepends="git"
short_desc="Cereus Linux default configurations for LightDM"
maintainer="Kevin F. <kevinfigueroart@protonmail.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/CereusLinuxProject/presets"
changelog="${homepage}/commits/main/global/etc/lightdm"
do_fetch() {
git clone ${homepage} ${wrksrc}
}
do_install() {
cd global/etc/lightdm/lightdm.conf.d
vinstall 10-numlock.conf 0644 etc/lightdm/lightdm.conf.d/
}

View file

@ -0,0 +1,33 @@
# Template file for 'cereus-lxqt-presets'
pkgname=cereus-lxqt-presets
version=2023.02.10
revision=1
repository="cereus-core"
conf_files="
/etc/lxqt/*.conf
/etc/pcmanfm-qt/*/*.conf
/etc/qterminal.org/qterminal.ini
/etc/xdg/featherpad/*.conf
/etc/skel/.config/kdeglobals
/etc/skel/.config/lockscreen-bg.conf
/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
/etc/skel/.config/featherpad/*.conf
/etc/xdg/autostart/ksuperkey.desktop"
hostmakedepends="git"
depends="lxqt-cereus cereus-global-presets cereus-lightdm-presets udisks2 gvfs-afc gvfs-mtp
gvfs-smb blueman flameshot pasystray-git ksuperkey network-manager-applet pavucontrol-qt"
short_desc="Cereus Linux default configurations for LXQt edition"
maintainer="Kevin F. <kevinfigueroart@protonmail.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/CereusLinuxProject/presets"
changelog="${homepage}/commits/main/lxqt"
do_fetch() {
git clone ${homepage} ${wrksrc}
}
do_install() {
vcopy lxqt/* ./
vinstall global/etc/skel/.config/lockscreen-bg.conf 0644 etc/skel/.config/
}

View file

@ -0,0 +1,18 @@
# Template file for 'cereus-lxqt-themes'
pkgname=cereus-lxqt-themes
version=2023.01.30
revision=1
repository="cereus-extra"
_theme_dir="usr/share/lxqt/themes"
short_desc="Cereus Linux custom themes for LXQt desktop"
maintainer="Kevin F. <kevinfigueroart@protonmail.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/CereusLinuxProject/cereus-lxqt-themes"
changelog="${homepage}/commits/main"
distfiles="${homepage}/archive/refs/heads/main.zip"
checksum=73f325b870b2e39b8b15d61faf18a73c84e641dc8710f6d42ad8161e6db2673d
do_install() {
vmkdir ${_theme_dir}
vcopy Cereus* ${_theme_dir}/
}

Some files were not shown because too many files have changed in this diff Show more