Merge branch 'master' of git.snaile.de:snailed/void-packages into custom
This commit is contained in:
commit
8c34c173f5
|
@ -0,0 +1,49 @@
|
|||
name: Generate Checksum
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- "master"
|
||||
paths:
|
||||
- "srcpkgs/**"
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.pull_request.user.login == 'Johnny5'
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: https://code.forgejo.org/actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Get changed packages
|
||||
id: changed
|
||||
uses: https://github.com/tj-actions/changed-files@a29e8b565651ce417abb5db7164b4a2ad8b6155c # v44
|
||||
with:
|
||||
since_last_remote_commit: true
|
||||
|
||||
- name: Create hostrepo and prepare masterdir
|
||||
if: ${{ steps.changed.outputs.all_changed_files != '' }}
|
||||
run: |
|
||||
ln -s "$(pwd)" /hostrepo &&
|
||||
common/travis/set_mirror.sh &&
|
||||
common/travis/prepare.sh &&
|
||||
common/travis/fetch-xtools.sh
|
||||
|
||||
- name: Update checksums
|
||||
if: ${{ steps.changed.outputs.all_changed_files != '' }}
|
||||
run: |
|
||||
for p in $(echo "${{ steps.changed.outputs.all_changed_files }}" | xargs -r -n 1 cut -d / -f 2); do
|
||||
xgensum "$p"
|
||||
done
|
||||
|
||||
- name: Commit
|
||||
if: ${{ steps.changed.outputs.all_changed_files != '' }}
|
||||
uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 # v5.0.1
|
||||
with:
|
||||
commit_user_name: "Johnny5"
|
||||
commit_user_email: "bot@snaile.de"
|
||||
commit_author: "Johnny5 <bot@snaile.de>"
|
||||
commit_message: "Update checksums"
|
||||
file_pattern: "srcpkgs/*/template"
|
|
@ -0,0 +1,134 @@
|
|||
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
|
||||
name: Build/Publish XBPS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "master"
|
||||
paths:
|
||||
- "srcpkgs/dmenu-custom/**"
|
||||
- "srcpkgs/dwm-custom/**"
|
||||
- "srcpkgs/dwmblocks-custom/**"
|
||||
- "srcpkgs/font-firacode-nf-ttf/**"
|
||||
- "srcpkgs/kdash/**"
|
||||
- "srcpkgs/pv-migrate/**"
|
||||
- "srcpkgs/st-custom/**"
|
||||
- "srcpkgs/tokyonight-icon-theme/**"
|
||||
- "srcpkgs/tokyonight-theme/**"
|
||||
- "srcpkgs/trash-util/**"
|
||||
- "srcpkgs/velero/**"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build-and-publish:
|
||||
name: Build and publish packages
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.pull_request.title, '[ci skip]') && !contains(github.event.pull_request.body, '[ci skip]')"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config:
|
||||
- arch: x86_64
|
||||
host: x86_64
|
||||
libc: glibc
|
||||
platform: linux/amd64
|
||||
- arch: x86_64-musl
|
||||
host: x86_64-musl
|
||||
libc: musl
|
||||
platform: linux/amd64
|
||||
- arch: aarch64-musl
|
||||
host: x86_64-musl
|
||||
libc: musl
|
||||
platform: linux/amd64
|
||||
# - arch: i686
|
||||
# host: i686
|
||||
# libc: glibc
|
||||
# platform: linux/386
|
||||
# - arch: aarch64
|
||||
# host: x86_64
|
||||
# libc: glibc
|
||||
# platform: linux/amd64
|
||||
# - arch: armv7l
|
||||
# host: x86_64
|
||||
# libc: glibc
|
||||
# platform: linux/amd64
|
||||
# - arch: armv6l-musl
|
||||
# host: x86_64-musl
|
||||
# libc: musl
|
||||
# platform: linux/amd64
|
||||
# - arch: aarch64-musl
|
||||
# host: x86_64-musl
|
||||
# libc: musl
|
||||
# platform: linux/amd64
|
||||
env:
|
||||
MAINTAINER: "Luca Bilke <luca@bil.ke>"
|
||||
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.host }}"
|
||||
HOSTREPO: /hostrepo
|
||||
container:
|
||||
image: git.snaile.de/snailed/xbps-builder:${{ matrix.config.libc }}-latest
|
||||
steps:
|
||||
- name: Clone and checkout
|
||||
uses: https://github.com/classabbyamp/treeless-checkout-action@bd3615a6e9d5546151e17d72193eea0d6f297398 # v1
|
||||
|
||||
- name: Prepare container
|
||||
run: |
|
||||
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
|
||||
xbps-install -Syu || { xbps-install -yu xbps && xbps-install -yu; }
|
||||
xbps-install -y grep curl git
|
||||
|
||||
- name: Create hostrepo and prepare masterdir
|
||||
run: |
|
||||
ln -s "$(pwd)" /hostrepo &&
|
||||
common/travis/set_mirror.sh &&
|
||||
common/travis/prepare.sh &&
|
||||
common/travis/fetch-xtools.sh
|
||||
mkdir -p "${HOME}/hostdir/binpkgs"
|
||||
|
||||
- name: Get changed packages
|
||||
run: |
|
||||
tip="$(git rev-list -1 --parents HEAD)"
|
||||
case "$tip" in
|
||||
*" "*" "*) tip="${tip##* }" ;;
|
||||
*) tip="${tip%% *}" ;;
|
||||
esac
|
||||
base="$(git rev-list -1 HEAD^)"
|
||||
|
||||
echo "$base $tip" >/tmp/revisions
|
||||
|
||||
echo -e '\x1b[32mChanged packages:\x1b[0m'
|
||||
|
||||
git diff-tree -r --no-renames --name-only --diff-filter=AM \
|
||||
"$base" "$tip" \
|
||||
-- 'srcpkgs/*/template' |
|
||||
cut -d/ -f 2 |
|
||||
xargs ./xbps-src sort-dependencies |
|
||||
tee /tmp/templates |
|
||||
sed "s/^/ /" >&2
|
||||
|
||||
- name: Build packages
|
||||
run: |
|
||||
(
|
||||
here="$(pwd)"
|
||||
cd /
|
||||
"$here/common/travis/build.sh" "$BOOTSTRAP" "$ARCH" 0
|
||||
)
|
||||
|
||||
- name: Sign and upload packages
|
||||
run: |
|
||||
echo '${{ secrets.XBPS_SIGNING_KEY }}' >"/tmp/privkey.pem"
|
||||
|
||||
for package in $(echo "$HOME"/hostdir/binpkgs/*.${{ matrix.config.arch }}.xbps); do
|
||||
XBPS_ARCH="${{ matrix.config.arch }}" XBPS_PASSPHRASE="${{ secrets.XBPS_SIGNING_PASSPHRASE }}" xbps-rindex --privkey "/tmp/privkey.pem" --sign-pkg --signedby "${{ env.MAINTAINER }}" "$package"
|
||||
for item in "$package" "${package}.sig2"; do
|
||||
echo -e '\x1b[32mUploading '"${item}"'...\x1b[0m'
|
||||
curl -s -X PUT --digest -u "${{ vars.XBPS_WEBDAV_USER }}:${{ secrets.XBPS_WEBDAV_KEY }}" -T "${item}" "https://xbps.snaile.de/$(basename $item)"
|
||||
done
|
||||
done
|
||||
|
||||
rm /tmp/privkey.pem
|
|
@ -0,0 +1,25 @@
|
|||
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
|
||||
name: Pull upstream commits
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
|
||||
jobs:
|
||||
sync_upstream:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout target repo
|
||||
uses: https://code.forgejo.org/actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Pull upstream repo
|
||||
uses: https://github.com/aormsby/Fork-Sync-With-Upstream-action@1090e365224fc834e7e1de521c417ded2d6fcb53 # v3.4.1
|
||||
with:
|
||||
target_sync_branch: master
|
||||
target_repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
upstream_sync_branch: master
|
||||
upstream_sync_repo: void-linux/void-packages
|
||||
upstream_repo_access_token: ${{ secrets.API_TOKEN_GITHUB }}
|
||||
|
||||
- name: Print status
|
||||
run: echo ${{ steps.sync.outputs.has_new_commits }}
|
|
@ -0,0 +1,24 @@
|
|||
name: Renovate
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 * * * *"
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: docker
|
||||
container: renovate/renovate@sha256:52ab6e316c70f51f198cfce709d3a56bd0c2025a1fe380d642c6d8da224ef012
|
||||
env:
|
||||
LOG_LEVEL: debug
|
||||
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}
|
||||
GITHUB_COM_TOKEN: ${{ secrets.GH_NOPRIV_TOKEN }}
|
||||
RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.JOHNNY5_GPG_PRIVKEY }}
|
||||
RENOVATE_PLATFORM: gitea
|
||||
RENOVATE_ENDPOINT: ${{ github.server_url }}
|
||||
RENOVATE_GIT_AUTHOR: "Johnny5 <bot@snaile.de>"
|
||||
|
||||
steps:
|
||||
- uses: https://code.forgejo.org/actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
||||
|
||||
- name: Renovate
|
||||
run: renovate ${{ github.repository }}
|
|
@ -2,13 +2,15 @@ name: Check build
|
|||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'srcpkgs/**'
|
||||
push:
|
||||
branches:
|
||||
- 'ci-**'
|
||||
- "master"
|
||||
paths:
|
||||
- 'srcpkgs/**'
|
||||
- "srcpkgs/**"
|
||||
# push:
|
||||
# branches:
|
||||
# - "dev-**"
|
||||
# paths:
|
||||
# - "srcpkgs/**"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
@ -21,9 +23,9 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
|
||||
container:
|
||||
image: 'ghcr.io/void-linux/void-buildroot-musl:20240526R1'
|
||||
image: "ghcr.io/void-linux/void-buildroot-musl:20231230R1@sha256:40ab4dfdf55c3f2988f788780898093f1d6b808f5d3720aa836a7192c71bcad9"
|
||||
env:
|
||||
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
|
||||
PATH: "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin"
|
||||
LICENSE_LIST: common/travis/license.lst
|
||||
|
||||
steps:
|
||||
|
@ -39,7 +41,7 @@ jobs:
|
|||
# install tools needed for lints
|
||||
xbps-install -y grep curl git
|
||||
- name: Clone and checkout
|
||||
uses: classabbyamp/treeless-checkout-action@v1
|
||||
uses: https://github.com/classabbyamp/treeless-checkout-action@bd3615a6e9d5546151e17d72193eea0d6f297398 # v1
|
||||
- name: Create hostrepo and prepare masterdir
|
||||
run: |
|
||||
ln -s "$(pwd)" /hostrepo &&
|
||||
|
@ -61,26 +63,60 @@ jobs:
|
|||
if: "!contains(github.event.pull_request.title, '[ci skip]') && !contains(github.event.pull_request.body, '[ci skip]')"
|
||||
|
||||
container:
|
||||
image: ghcr.io/void-linux/void-buildroot-${{ matrix.config.libc }}:20240526R1
|
||||
options: --platform ${{ matrix.config.platform }}
|
||||
image: ghcr.io/void-linux/void-buildroot-${{ matrix.config.libc }}:20231230R1
|
||||
# options: --platform ${{ matrix.config.platform }}
|
||||
env:
|
||||
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.host }}'
|
||||
TEST: '${{ matrix.config.test }}'
|
||||
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.host }}"
|
||||
TEST: "${{ matrix.config.test }}"
|
||||
HOSTREPO: /hostrepo
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config:
|
||||
- { arch: x86_64, host: x86_64, libc: glibc, platform: linux/amd64, test: 1 }
|
||||
- { arch: i686, host: i686, libc: glibc, platform: linux/386, test: 1 }
|
||||
- { arch: aarch64, host: x86_64, libc: glibc, platform: linux/amd64, test: 0 }
|
||||
- { arch: armv7l, host: x86_64, libc: glibc, platform: linux/amd64, test: 0 }
|
||||
- { arch: x86_64-musl, host: x86_64-musl, libc: musl, platform: linux/amd64, test: 1 }
|
||||
- { arch: armv6l-musl, host: x86_64-musl, libc: musl, platform: linux/amd64, test: 0 }
|
||||
- { arch: aarch64-musl, host: x86_64-musl, libc: musl, platform: linux/amd64, test: 0 }
|
||||
- arch: x86_64
|
||||
host: x86_64
|
||||
libc: glibc
|
||||
platform: linux/amd64
|
||||
test: 1
|
||||
|
||||
- arch: i686
|
||||
host: i686
|
||||
libc: glibc
|
||||
platform: linux/386
|
||||
test: 1
|
||||
|
||||
- arch: aarch64
|
||||
host: x86_64
|
||||
libc: glibc
|
||||
platform: linux/amd64
|
||||
test: 0
|
||||
|
||||
- arch: armv7l
|
||||
host: x86_64
|
||||
libc: glibc
|
||||
platform: linux/amd64
|
||||
test: 0
|
||||
|
||||
- arch: x86_64-musl
|
||||
host: x86_64-musl
|
||||
libc: musl
|
||||
platform: linux/amd64
|
||||
test: 1
|
||||
|
||||
- arch: armv6l-musl
|
||||
host: x86_64-musl
|
||||
libc: musl
|
||||
platform: linux/amd64
|
||||
test: 0
|
||||
|
||||
- arch: aarch64-musl
|
||||
host: x86_64-musl
|
||||
libc: musl
|
||||
platform: linux/amd64
|
||||
test: 0
|
||||
|
||||
steps:
|
||||
- name: Prepare container
|
||||
|
@ -94,7 +130,7 @@ jobs:
|
|||
xbps-install -yu
|
||||
|
||||
- name: Clone and checkout
|
||||
uses: classabbyamp/treeless-checkout-action@v1
|
||||
uses: https://github.com/classabbyamp/treeless-checkout-action@bd3615a6e9d5546151e17d72193eea0d6f297398 # v1
|
||||
- name: Create hostrepo and prepare masterdir
|
||||
run: |
|
||||
ln -s "$(pwd)" /hostrepo &&
|
||||
|
@ -102,7 +138,6 @@ jobs:
|
|||
common/travis/prepare.sh &&
|
||||
common/travis/fetch-xtools.sh
|
||||
- run: common/travis/changed_templates.sh
|
||||
|
||||
- name: Build and check packages
|
||||
run: |
|
||||
(
|
|
@ -1,73 +0,0 @@
|
|||
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://repo-default.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
|
|
@ -1,5 +0,0 @@
|
|||
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)
|
|
@ -1,59 +0,0 @@
|
|||
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://repo-default.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
|
|
@ -1,8 +0,0 @@
|
|||
<!--
|
||||
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://repo-default.voidlinux.org/void-updates/void-updates.txt
|
||||
However, a quality pull request may help.
|
||||
-->
|
|
@ -1,23 +0,0 @@
|
|||
<!-- Uncomment relevant sections and delete options which are not applicable -->
|
||||
|
||||
#### Testing the changes
|
||||
- I tested the changes in this PR: **YES**|**briefly**|**NO**
|
||||
|
||||
<!--
|
||||
#### New package
|
||||
- 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
|
||||
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
|
||||
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):
|
||||
- aarch64-musl
|
||||
- armv7l
|
||||
- armv6l-musl
|
||||
-->
|
|
@ -1,98 +0,0 @@
|
|||
---
|
||||
name: 'Build buildroot containers'
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- common/container/**
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- common/container/**
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
libc:
|
||||
- glibc
|
||||
- musl
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: classabbyamp/treeless-checkout-action@v1
|
||||
|
||||
- name: Get image release
|
||||
id: release
|
||||
run: |
|
||||
# gets the list of all date-shaped tags for the image, finds the most recent one
|
||||
tag="$(skopeo list-tags "docker://ghcr.io/${{ github.repository_owner }}/void-buildroot-${{ matrix.libc }}" | \
|
||||
jq -r '.Tags | sort | reverse | map(select(test("^[0-9]{8}(R[0-9]+)?$")))[0]')"
|
||||
# tags from a different day or pre-YYYYMMDDRN
|
||||
if [ "${tag%R*}" != "$(date -u +%Y%m%d)" ] || [ "${tag%R*}" = "${tag}" ]; then
|
||||
rel=1
|
||||
else
|
||||
rel=$(( ${tag##*R} + 1 ))
|
||||
fi
|
||||
echo "rel=${rel}" >> "${GITHUB_OUTPUT}"
|
||||
|
||||
- name: Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
ghcr.io/${{ github.repository_owner }}/void-buildroot-${{ matrix.libc }}
|
||||
tags: |
|
||||
type=sha,prefix=
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
type=raw,value={{date 'YYYYMMDD'}}R${{ steps.release.outputs.rel }},enable={{is_default_branch}},priority=1000
|
||||
flavor: latest=false
|
||||
labels: |
|
||||
org.opencontainers.image.authors=Void Linux team and contributors
|
||||
org.opencontainers.image.url=https://voidlinux.org
|
||||
org.opencontainers.image.documentation=https://github.com/${{ github.repository }}
|
||||
org.opencontainers.image.source=https://github.com/${{ github.repository }}
|
||||
org.opencontainers.image.vendor=Void Linux
|
||||
org.opencontainers.image.title=Void Linux build root
|
||||
org.opencontainers.image.description=Image for building packages with xbps-src on Void Linux
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to GCHR
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push images
|
||||
id: build_and_push
|
||||
uses: docker/bake-action@v3
|
||||
with:
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
targets: void-buildroot-${{ matrix.libc }}
|
||||
files: |
|
||||
common/container/docker-bake.hcl
|
||||
${{ steps.meta.outputs.bake-file }}
|
||||
set: |
|
||||
_common.cache-to=type=gha
|
||||
_common.cache-from=type=gha
|
|
@ -1,48 +0,0 @@
|
|||
name: 'Cycle Check'
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 18 * * *'
|
||||
|
||||
jobs:
|
||||
cycles:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
container:
|
||||
image: 'ghcr.io/void-linux/void-buildroot-musl:20240526R1'
|
||||
env:
|
||||
PATH: '/usr/libexec/chroot-git:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
|
||||
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
|
||||
|
||||
- name: Clone and checkout
|
||||
uses: classabbyamp/treeless-checkout-action@v1
|
||||
|
||||
- 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: |
|
||||
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 }}
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
name: Stale Cleanup
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/stale@v6
|
||||
with:
|
||||
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: 14
|
||||
exempt-all-assignees: true
|
||||
ascending: true
|
||||
operations-per-run: 250
|
||||
exempt-issue-labels: 'request,bug,tracking'
|
|
@ -7,9 +7,10 @@
|
|||
/*
|
||||
!/.editorconfig
|
||||
!/.gitattributes
|
||||
!/.github
|
||||
!/.forgejo
|
||||
!/.gitignore
|
||||
!/.mailmap
|
||||
!/.renovaterc.json
|
||||
!/CONTRIBUTING.md
|
||||
!/COPYING
|
||||
!/Manual.md
|
||||
|
@ -17,6 +18,8 @@
|
|||
!/common
|
||||
!/etc
|
||||
!/srcpkgs
|
||||
!/srcpkgsBACKUP
|
||||
!/srcpkgsCUSTOM
|
||||
!/xbps-src
|
||||
etc/conf
|
||||
etc/conf.*
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"local>snailed/renovate-config:void-packages"
|
||||
]
|
||||
}
|
512
README.md
512
README.md
|
@ -1,511 +1,5 @@
|
|||
## The XBPS source packages collection
|
||||
# Custom Void Packages
|
||||
|
||||
This repository contains the XBPS source packages collection to build binary packages
|
||||
for the Void Linux distribution.
|
||||
This repo holds my custom package templates for void linux
|
||||
|
||||
The included `xbps-src` script will fetch and compile the sources, and install its
|
||||
files into a `fake destdir` to generate XBPS binary packages that can be installed
|
||||
or queried through the `xbps-install(1)` and `xbps-query(1)` utilities, respectively.
|
||||
|
||||
See [Contributing](./CONTRIBUTING.md) for a general overview of how to contribute and the
|
||||
[Manual](./Manual.md) for details of how to create source packages.
|
||||
|
||||
### Table of Contents
|
||||
|
||||
- [Requirements](#requirements)
|
||||
- [Quick start](#quick-start)
|
||||
- [chroot methods](#chroot-methods)
|
||||
- [Install the bootstrap packages](#install-bootstrap)
|
||||
- [Configuration](#configuration)
|
||||
- [Directory hierarchy](#directory-hierarchy)
|
||||
- [Building packages](#building-packages)
|
||||
- [Package build options](#build-options)
|
||||
- [Sharing and signing your local repositories](#sharing-and-signing)
|
||||
- [Rebuilding and overwriting existing local packages](#rebuilding)
|
||||
- [Enabling distcc for distributed compilation](#distcc)
|
||||
- [Distfiles mirrors](#distfiles-mirrors)
|
||||
- [Cross compiling packages for a target architecture](#cross-compiling)
|
||||
- [Using xbps-src in a foreign Linux distribution](#foreign)
|
||||
- [Remaking the masterdir](#remaking-masterdir)
|
||||
- [Keeping your masterdir uptodate](#updating-masterdir)
|
||||
- [Building 32bit packages on x86_64](#building-32bit)
|
||||
- [Building packages natively for the musl C library](#building-for-musl)
|
||||
- [Building void base-system from scratch](#building-base-system)
|
||||
|
||||
### Requirements
|
||||
|
||||
- GNU bash
|
||||
- xbps >= 0.56
|
||||
- git(1) - unless configured to not, see etc/defaults.conf
|
||||
- common POSIX utilities included by default in almost all UNIX systems
|
||||
- curl(1) - required by `xbps-src update-check`
|
||||
|
||||
For bootstrapping additionally:
|
||||
- flock(1) - util-linux
|
||||
- bsdtar or GNU tar (in that order of preference)
|
||||
- install(1) - GNU coreutils
|
||||
- objcopy(1), objdump(1), strip(1): binutils
|
||||
|
||||
`xbps-src` requires [a utility to chroot](#chroot-methods) and bind mount existing directories
|
||||
into a `masterdir` that is used as its main `chroot` directory. `xbps-src` supports
|
||||
multiple utilities to accomplish this task.
|
||||
|
||||
> NOTE: `xbps-src` does not allow building as root anymore. Use one of the chroot
|
||||
methods.
|
||||
|
||||
<a name="quick-start"></a>
|
||||
### Quick start
|
||||
|
||||
Clone the `void-packages` git repository and install the bootstrap packages:
|
||||
|
||||
```
|
||||
$ git clone https://github.com/void-linux/void-packages.git
|
||||
$ cd void-packages
|
||||
$ ./xbps-src binary-bootstrap
|
||||
```
|
||||
|
||||
Build a package by specifying the `pkg` target and the package name:
|
||||
|
||||
```
|
||||
$ ./xbps-src pkg <package_name>
|
||||
```
|
||||
|
||||
Use `./xbps-src -h` to list all available targets and options.
|
||||
|
||||
To build packages marked as 'restricted', modify `etc/conf`:
|
||||
|
||||
```
|
||||
$ echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf
|
||||
```
|
||||
|
||||
Once built, the package will be available in `hostdir/binpkgs` or an appropriate subdirectory (e.g. `hostdir/binpkgs/nonfree`). To install the package:
|
||||
|
||||
```
|
||||
# xbps-install --repository hostdir/binpkgs <package_name>
|
||||
```
|
||||
|
||||
Alternatively, packages can be installed with the `xi` utility, from the `xtools` package. `xi` takes the repository of the current working directory into account.
|
||||
|
||||
```
|
||||
$ xi <package_name>
|
||||
```
|
||||
|
||||
<a name="chroot-methods"></a>
|
||||
### chroot methods
|
||||
|
||||
#### xbps-uunshare(1) (default)
|
||||
|
||||
XBPS utility that uses `user_namespaces(7)` (part of xbps, default without `-t` flag).
|
||||
|
||||
This utility requires these Linux kernel options:
|
||||
|
||||
- CONFIG\_NAMESPACES
|
||||
- CONFIG\_IPC\_NS
|
||||
- CONFIG\_UTS\_NS
|
||||
- CONFIG\_USER\_NS
|
||||
|
||||
This is the default method, and if your system does not support any of the required kernel
|
||||
options it will fail with `EINVAL (Invalid argument)`.
|
||||
|
||||
#### xbps-uchroot(1)
|
||||
|
||||
XBPS utility that uses `namespaces` and must be `setgid` (part of xbps).
|
||||
|
||||
> NOTE: This is the only method that implements functionality of `xbps-src -t`, therefore the
|
||||
flag ignores the choice made in configuration files and enables `xbps-uchroot`.
|
||||
|
||||
This utility requires these Linux kernel options:
|
||||
|
||||
- CONFIG\_NAMESPACES
|
||||
- CONFIG\_IPC\_NS
|
||||
- CONFIG\_PID\_NS
|
||||
- CONFIG\_UTS\_NS
|
||||
|
||||
Your user must be added to a special group to be able to use `xbps-uchroot(1)` and the
|
||||
executable must be `setgid`:
|
||||
|
||||
# chown root:<group> xbps-uchroot
|
||||
# chmod 4750 xbps-uchroot
|
||||
# usermod -a -G <group> <user>
|
||||
|
||||
> NOTE: by default in void you shouldn't do this manually, your user must be a member of
|
||||
the `xbuilder` group.
|
||||
|
||||
To enable it:
|
||||
|
||||
$ cd void-packages
|
||||
$ echo XBPS_CHROOT_CMD=uchroot >> etc/conf
|
||||
|
||||
If for some reason it's erroring out as `ERROR clone (Operation not permitted)`, check that
|
||||
your user is a member of the required `group` and that `xbps-uchroot(1)` utility has the
|
||||
proper permissions and owner/group as explained above.
|
||||
|
||||
#### bwrap(1)
|
||||
|
||||
bubblewrap, sandboxing tool for unprivileged users that uses
|
||||
user namespaces or setuid.
|
||||
See <https://github.com/containers/bubblewrap>.
|
||||
|
||||
#### ethereal
|
||||
|
||||
Destroys host system it runs on. Only useful for one-shot containers, i.e docker (used with CI).
|
||||
|
||||
<a name="install-bootstrap"></a>
|
||||
### Install the bootstrap packages
|
||||
|
||||
There is a set of packages that makes up the initial build container, called the `bootstrap`.
|
||||
These packages are installed into the `masterdir` in order to create the container.
|
||||
|
||||
The primary and recommended way to set up this container is using the `binary-bootstrap`
|
||||
command. This will use pre-existing binary packages, either from remote `xbps` repositories
|
||||
or from your local repository.
|
||||
|
||||
There is also the `bootstrap` command, which will build all necessary `bootstrap` packages from
|
||||
scratch. This is usually not recommended, since those packages are built using your host system's
|
||||
toolchain and are neither fully featured nor reproducible (your host system may influence the
|
||||
build) and thus should only be used as a stage 0 for bootstrapping new Void systems.
|
||||
|
||||
If you still choose to use `bootstrap`, use the resulting stage 0 container to rebuild all
|
||||
`bootstrap` packages again, then use `binary-bootstrap` (stage 1) and rebuild the `bootstrap`
|
||||
packages once more (to gain stage 2, and then use `binary-bootstrap` again). Once you've done
|
||||
that, you will have a `bootstrap` set equivalent to using `binary-bootstrap` in the first place.
|
||||
|
||||
Also keep in mind that a full source `bootstrap` is time consuming and will require having an
|
||||
assortment of utilities installed in your host system, such as `binutils`, `gcc`, `perl`,
|
||||
`texinfo` and others.
|
||||
|
||||
### Configuration
|
||||
|
||||
The `etc/defaults.conf` file contains the possible settings that can be overridden
|
||||
through the `etc/conf` configuration file for the `xbps-src` utility; if that file
|
||||
does not exist, will try to read configuration settings from `$XDG_CONFIG_HOME/xbps-src.conf`, `~/.config/xbps-src.conf`, `~/.xbps-src.conf`.
|
||||
|
||||
If you want to customize default `CFLAGS`, `CXXFLAGS` and `LDFLAGS`, don't override
|
||||
those defined in `etc/defaults.conf`, set them on `etc/conf` instead i.e:
|
||||
|
||||
$ echo 'XBPS_CFLAGS="your flags here"' >> etc/conf
|
||||
$ echo 'XBPS_LDFLAGS="your flags here"' >> etc/conf
|
||||
|
||||
Native and cross compiler/linker flags are set per architecture in `common/build-profiles`
|
||||
and `common/cross-profiles` respectively. Ideally those settings are good enough by default,
|
||||
and there's no need to set your own unless you know what you are doing.
|
||||
|
||||
#### Virtual packages
|
||||
|
||||
The `etc/defaults.virtual` file contains the default replacements for virtual packages,
|
||||
used as dependencies in the source packages tree.
|
||||
|
||||
If you want to customize those replacements, copy `etc/defaults.virtual` to `etc/virtual`
|
||||
and edit it accordingly to your needs.
|
||||
|
||||
<a name="directory-hierarchy"></a>
|
||||
### Directory hierarchy
|
||||
|
||||
The following directory hierarchy is used with a default configuration file:
|
||||
|
||||
/void-packages
|
||||
|- common
|
||||
|- etc
|
||||
|- srcpkgs
|
||||
| |- xbps
|
||||
| |- template
|
||||
|
|
||||
|- hostdir
|
||||
| |- binpkgs ...
|
||||
| |- ccache ...
|
||||
| |- distcc-<arch> ...
|
||||
| |- repocache ...
|
||||
| |- sources ...
|
||||
|
|
||||
|- masterdir-<arch>
|
||||
| |- builddir -> ...
|
||||
| |- destdir -> ...
|
||||
| |- host -> bind mounted from <hostdir>
|
||||
| |- void-packages -> bind mounted from <void-packages>
|
||||
|
||||
|
||||
The description of these directories is as follows:
|
||||
|
||||
- `masterdir-<arch>`: master directory to be used as rootfs to build/install packages.
|
||||
- `builddir`: to unpack package source tarballs and where packages are built.
|
||||
- `destdir`: to install packages, aka **fake destdir**.
|
||||
- `hostdir/ccache`: to store ccache data if the `XBPS_CCACHE` option is enabled.
|
||||
- `hostdir/distcc-<arch>`: to store distcc data if the `XBPS_DISTCC` option is enabled.
|
||||
- `hostdir/repocache`: to store binary packages from remote repositories.
|
||||
- `hostdir/sources`: to store package sources.
|
||||
- `hostdir/binpkgs`: local repository to store generated binary packages.
|
||||
|
||||
<a name="building-packages"></a>
|
||||
### Building packages
|
||||
|
||||
The simplest form of building package is accomplished by running the `pkg` target in `xbps-src`:
|
||||
|
||||
```
|
||||
$ cd void-packages
|
||||
$ ./xbps-src pkg <pkgname>
|
||||
```
|
||||
|
||||
When the package and its required dependencies are built, the binary packages will be created
|
||||
and registered in the default local repository at `hostdir/binpkgs`; the path to this local repository can be added to
|
||||
any xbps configuration file (see xbps.d(5)) or by explicitly appending them via cmdline, i.e:
|
||||
|
||||
$ xbps-install --repository=hostdir/binpkgs ...
|
||||
$ xbps-query --repository=hostdir/binpkgs ...
|
||||
|
||||
By default **xbps-src** will try to resolve package dependencies in this order:
|
||||
|
||||
- If a dependency exists in the local repository, use it (`hostdir/binpkgs`).
|
||||
- If a dependency exists in a remote repository, use it.
|
||||
- If a dependency exists in a source package, use it.
|
||||
|
||||
It is possible to avoid using remote repositories completely by using the `-N` flag.
|
||||
|
||||
> The default local repository may contain multiple *sub-repositories*: `debug`, `multilib`, etc.
|
||||
|
||||
<a name="build-options"></a>
|
||||
### Package build options
|
||||
|
||||
The supported build options for a source package can be shown with `xbps-src show-options`:
|
||||
|
||||
$ ./xbps-src show-options foo
|
||||
|
||||
Build options can be enabled with the `-o` flag of `xbps-src`:
|
||||
|
||||
$ ./xbps-src -o option,option1 pkg foo
|
||||
|
||||
Build options can be disabled by prefixing them with `~`:
|
||||
|
||||
$ ./xbps-src -o ~option,~option1 pkg foo
|
||||
|
||||
Both ways can be used together to enable and/or disable multiple options
|
||||
at the same time with `xbps-src`:
|
||||
|
||||
$ ./xbps-src -o option,~option1,~option2 pkg foo
|
||||
|
||||
The build options can also be shown for binary packages via `xbps-query(1)`:
|
||||
|
||||
$ xbps-query -R --property=build-options foo
|
||||
|
||||
> NOTE: if you build a package with a custom option, and that package is available
|
||||
in an official void repository, an update will ignore those options. Put that package
|
||||
on `hold` mode via `xbps-pkgdb(1)`, i.e `xbps-pkgdb -m hold foo` to ignore updates
|
||||
with `xbps-install -u`. Once the package is on `hold`, the only way to update it
|
||||
is by declaring it explicitly: `xbps-install -u foo`.
|
||||
|
||||
Permanent global package build options can be set via `XBPS_PKG_OPTIONS` variable in the
|
||||
`etc/conf` configuration file. Per package build options can be set via
|
||||
`XBPS_PKG_OPTIONS_<pkgname>`.
|
||||
|
||||
> NOTE: if `pkgname` contains `dashes`, those should be replaced by `underscores`
|
||||
i.e `XBPS_PKG_OPTIONS_xorg_server=opt`.
|
||||
|
||||
The list of supported package build options and its description is defined in the
|
||||
`common/options.description` file or in the `template` file.
|
||||
|
||||
<a name="sharing-and-signing"></a>
|
||||
### Sharing and signing your local repositories
|
||||
|
||||
To share a local repository remotely it's mandatory to sign it and the binary packages
|
||||
stored on it. This is accomplished with the `xbps-rindex(1)` utility.
|
||||
|
||||
First a RSA key must be created with `openssl(1)` or `ssh-keygen(1)`:
|
||||
|
||||
$ openssl genrsa -des3 -out privkey.pem 4096
|
||||
|
||||
or
|
||||
|
||||
$ ssh-keygen -t rsa -b 4096 -m PEM -f privkey.pem
|
||||
|
||||
> Only RSA keys in PEM format are currently accepted by xbps.
|
||||
|
||||
Once the RSA private key is ready you can use it to initialize the repository metadata:
|
||||
|
||||
$ xbps-rindex --sign --signedby "I'm Groot" --privkey privkey.pem $PWD/hostdir/binpkgs
|
||||
|
||||
And then make a signature per package:
|
||||
|
||||
$ xbps-rindex --sign-pkg --privkey privkey.pem $PWD/hostdir/binpkgs/*.xbps
|
||||
|
||||
> If --privkey is unset, it defaults to `~/.ssh/id_rsa`.
|
||||
|
||||
If the RSA key was protected with a passphrase you'll have to type it, or alternatively set
|
||||
it via the `XBPS_PASSPHRASE` environment variable.
|
||||
|
||||
Once the binary packages have been signed, check if the repository contains the appropriate `hex fingerprint`:
|
||||
|
||||
$ xbps-query --repository=hostdir/binpkgs -vL
|
||||
...
|
||||
|
||||
Each time a binary package is created, a package signature must be created with `--sign-pkg`.
|
||||
|
||||
> It is not possible to sign a repository with multiple RSA keys.
|
||||
|
||||
If packages in `hostdir/binpkgs` are signed, the key in `.plist` format (as imported by xbps) can be placed
|
||||
in `etc/repo-keys/` to prevent xbps-src from prompting to import that key.
|
||||
|
||||
<a name="rebuilding"></a>
|
||||
### Rebuilding and overwriting existing local packages
|
||||
|
||||
Packages are overwritten on every build to make getting package with changed build options easy.
|
||||
To make xbps-src skip build and preserve first package build with given version and revision,
|
||||
same as in official void repository, set `XBPS_PRESERVE_PKGS=yes` in `etc/conf` file.
|
||||
|
||||
Reinstalling a package in your target `rootdir` can be easily done too:
|
||||
|
||||
$ xbps-install --repository=/path/to/local/repo -yf xbps-0.25_1
|
||||
|
||||
Using `-f` flag twice will overwrite configuration files.
|
||||
|
||||
> Please note that the `package expression` must be properly defined to explicitly pick up
|
||||
the package from the desired repository.
|
||||
|
||||
<a name="distcc"></a>
|
||||
### Enabling distcc for distributed compilation
|
||||
|
||||
Setup the workers (machines that will compile the code):
|
||||
|
||||
# xbps-install -Sy distcc
|
||||
|
||||
Modify the configuration to allow your local network machines to use distcc (e.g. `192.168.2.0/24`):
|
||||
|
||||
# echo "192.168.2.0/24" >> /etc/distcc/clients.allow
|
||||
|
||||
Enable and start the `distccd` service:
|
||||
|
||||
# ln -s /etc/sv/distccd /var/service
|
||||
|
||||
Install distcc on the host (machine that executes xbps-src) as well.
|
||||
Unless you want to use the host as worker from other machines, there is no need
|
||||
to modify the configuration.
|
||||
|
||||
On the host you can now enable distcc in the `void-packages/etc/conf` file:
|
||||
|
||||
XBPS_DISTCC=yes
|
||||
XBPS_DISTCC_HOSTS="localhost/2 --localslots_cpp=24 192.168.2.101/9 192.168.2.102/2"
|
||||
XBPS_MAKEJOBS=16
|
||||
|
||||
The example values assume a localhost CPU with 4 cores of which at most 2 are used for compiler jobs.
|
||||
The number of slots for preprocessor jobs is set to 24 in order to have enough preprocessed data for other CPUs to compile.
|
||||
The worker 192.168.2.101 has a CPU with 8 cores and the /9 for the number of jobs is a saturating choice.
|
||||
The worker 192.168.2.102 is set to run at most 2 compile jobs to keep its load low, even if its CPU has 4 cores.
|
||||
The XBPS_MAKEJOBS setting is increased to 16 to account for the possible parallelism (2 + 9 + 2 + some slack).
|
||||
|
||||
<a name="distfiles-mirrors"></a>
|
||||
### Distfiles mirror(s)
|
||||
|
||||
In etc/conf you may optionally define a mirror or a list of mirrors to search for distfiles.
|
||||
|
||||
$ echo 'XBPS_DISTFILES_MIRROR="ftp://192.168.100.5/gentoo/distfiles"' >> etc/conf
|
||||
|
||||
If more than one mirror is to be searched, you can either specify multiple URLs separated
|
||||
with blanks, or add to the variable like this
|
||||
|
||||
$ echo 'XBPS_DISTFILES_MIRROR+=" https://sources.voidlinux.org/"' >> etc/conf
|
||||
|
||||
Make sure to put the blank after the first double quote in this case.
|
||||
|
||||
The mirrors are searched in order for the distfiles to build a package until the
|
||||
checksum of the downloaded file matches the one specified in the template.
|
||||
|
||||
Ultimately, if no mirror carries the distfile, or in case all downloads failed the
|
||||
checksum verification, the original download location is used.
|
||||
|
||||
If you use `uchroot` for your XBPS_CHROOT_CMD, you may also specify a local path
|
||||
using the `file://` prefix or simply an absolute path on your build host (e.g. /mnt/distfiles).
|
||||
Mirror locations specified this way are bind mounted inside the chroot environment
|
||||
under $XBPS_MASTERDIR and searched for distfiles just the same as remote locations.
|
||||
|
||||
<a name="cross-compiling"></a>
|
||||
### Cross compiling packages for a target architecture
|
||||
|
||||
Currently `xbps-src` can cross build packages for some target architectures with a cross compiler.
|
||||
The supported target is shown with `./xbps-src -h`.
|
||||
|
||||
If a source package has been adapted to be **cross buildable** `xbps-src` will automatically build the binary package(s) with a simple command:
|
||||
|
||||
$ ./xbps-src -a <target> pkg <pkgname>
|
||||
|
||||
If the build for whatever reason fails, might be a new build issue or simply because it hasn't been adapted to be **cross compiled**.
|
||||
|
||||
<a name="foreign"></a>
|
||||
### Using xbps-src in a foreign Linux distribution
|
||||
|
||||
xbps-src can be used in any recent Linux distribution matching the CPU architecture.
|
||||
|
||||
To use xbps-src in your Linux distribution use the following instructions. Let's start downloading the xbps static binaries:
|
||||
|
||||
$ wget http://repo-default.voidlinux.org/static/xbps-static-latest.<arch>-musl.tar.xz
|
||||
$ mkdir ~/XBPS
|
||||
$ tar xvf xbps-static-latest.<arch>-musl.tar.xz -C ~/XBPS
|
||||
$ export PATH=~/XBPS/usr/bin:$PATH
|
||||
|
||||
If `xbps-uunshare` does not work because of lack of `user_namespaces(7)` support,
|
||||
try other [chroot methods](#chroot-methods).
|
||||
|
||||
Clone the `void-packages` git repository:
|
||||
|
||||
$ git clone https://github.com/void-linux/void-packages.git
|
||||
|
||||
and `xbps-src` should be fully functional; just start the `bootstrap` process, i.e:
|
||||
|
||||
$ ./xbps-src binary-bootstrap
|
||||
|
||||
The default masterdir is created in the current working directory, i.e. `void-packages/masterdir-<arch>`, where `<arch>` for the default masterdir is is the native xbps architecture.
|
||||
|
||||
<a name="remaking-masterdir"></a>
|
||||
### Remaking the masterdir
|
||||
|
||||
If for some reason you must update xbps-src and the `bootstrap-update` target is not enough, it's possible to recreate a masterdir with two simple commands (please note that `zap` keeps your `ccache/distcc/host` directories intact):
|
||||
|
||||
$ ./xbps-src zap
|
||||
$ ./xbps-src binary-bootstrap
|
||||
|
||||
<a name="updating-masterdir"></a>
|
||||
### Keeping your masterdir uptodate
|
||||
|
||||
Sometimes the bootstrap packages must be updated to the latest available version in repositories, this is accomplished with the `bootstrap-update` target:
|
||||
|
||||
$ ./xbps-src bootstrap-update
|
||||
|
||||
<a name="building-32bit"></a>
|
||||
### Building 32bit packages on x86_64
|
||||
|
||||
Two ways are available to build 32bit packages on x86\_64:
|
||||
|
||||
- native mode with a 32bit masterdir (recommended, used in official repository)
|
||||
- cross compilation mode to i686 [target](#cross-compiling)
|
||||
|
||||
The canonical mode (native) needs a new x86 `masterdir`:
|
||||
|
||||
$ ./xbps-src -A i686 binary-bootstrap
|
||||
$ ./xbps-src -A i686 ...
|
||||
|
||||
<a name="building-for-musl"></a>
|
||||
### Building packages natively for the musl C library
|
||||
|
||||
The canonical way of building packages for same architecture but different C library is through a dedicated masterdir by using the host architecture flag `-A`.
|
||||
To build for x86_64-musl on glibc x86_64 system, prepare a new masterdir with the musl packages:
|
||||
|
||||
$ ./xbps-src -A x86_64-musl binary-bootstrap
|
||||
|
||||
This will create and bootstrap a new masterdir called `masterdir-x86_64-musl` that will be used when `-A x86_64-musl` is specified.
|
||||
Your new masterdir is now ready to build packages natively for the musl C library:
|
||||
|
||||
$ ./xbps-src -A x86_64-musl pkg ...
|
||||
|
||||
<a name="building-base-system"></a>
|
||||
### Building void base-system from scratch
|
||||
|
||||
To rebuild all packages in `base-system` for your native architecture:
|
||||
|
||||
$ ./xbps-src -N pkg base-system
|
||||
|
||||
It's also possible to cross compile everything from scratch:
|
||||
|
||||
$ ./xbps-src -a <target> -N pkg base-system
|
||||
|
||||
Once the build has finished, you can specify the path to the local repository to `void-mklive`, i.e:
|
||||
|
||||
# cd void-mklive
|
||||
# make
|
||||
# ./mklive.sh ... -r /path/to/hostdir/binpkgs
|
||||
Check the [Manual](./Manual.md) for details of how to create source packages.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'angle-grinder'
|
||||
pkgname=angle-grinder
|
||||
version=0.19.4
|
||||
version=0.19.2
|
||||
revision=1
|
||||
build_style=cargo
|
||||
hostmakedepends="pkg-config"
|
||||
|
@ -9,7 +9,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
|
|||
license="MIT"
|
||||
homepage="https://github.com/rcoh/angle-grinder"
|
||||
distfiles="https://github.com/rcoh/angle-grinder/archive/v${version}.tar.gz"
|
||||
checksum=13ae3912dcc34c2648d8ef57fe8d976cb978c70e6976ead079ea5d7609532172
|
||||
checksum=3a5637bbd3ef3fc2f8164a1af90b8894f79c1b2adb89a874f1f3c5a56006e18b
|
||||
|
||||
pre_configure() {
|
||||
cargo update -p h2 -p crossbeam-channel
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'chibi-scheme'
|
||||
pkgname=chibi-scheme
|
||||
version=0.11
|
||||
version=0.10
|
||||
revision=1
|
||||
build_helper="qemu"
|
||||
build_style=gnu-makefile
|
||||
|
@ -9,7 +9,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
|
|||
license="BSD-3-Clause"
|
||||
homepage="http://synthcode.com/scheme/chibi/"
|
||||
distfiles="https://github.com/ashinn/chibi-scheme/archive/${version}.tar.gz"
|
||||
checksum=b4404d5304b51b243684702fa7b5f2d82f77cb7ef470bcfca1d94f8ed7660342
|
||||
checksum=ae1d2057138b7f438f01bfb1e072799105faeea1de0ab3cc10860adf373993b3
|
||||
alternatives="
|
||||
scheme:scheme:/usr/bin/chibi-scheme
|
||||
scheme:scheme.1:/usr/share/man/man1/chibi-scheme.1
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
# Template file for 'dmenu-custom'
|
||||
pkgname=dmenu-custom
|
||||
version=2024.5.1
|
||||
revision=5
|
||||
makedepends="libXinerama-devel libXft-devel freetype-devel pango-devel pkg-config"
|
||||
short_desc="Customized dmenu"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="MIT"
|
||||
homepage="https://git.snaile.de/snailed/dmenu-custom"
|
||||
distfiles="${homepage}/archive/${version}.tar.gz"
|
||||
checksum=89748a6fccf37e5655b85dc56366ea05c6c2d9e7865e1c7adb4ffa04a004f773
|
||||
replaces="dmenu>=0"
|
||||
provides="dmenu-5.2_1"
|
||||
|
||||
post_patch() {
|
||||
sed -i -e '/CFLAGS/{s/-Os//;s/=/+=/}' \
|
||||
-e '/LDFLAGS/{s/-s//;s/=/+=/}' config.mk
|
||||
}
|
||||
|
||||
do_build() {
|
||||
[ -e ${FILESDIR}/config.h ] && cp ${FILESDIR}/config.h config.h
|
||||
sed -i -e "s|^FREETYPEINC|#FREETYPEINC|g" \
|
||||
-e "s|^X11INC|#X11INC|g" \
|
||||
-e "s|^X11LIB|#X11LIB|g" config.mk
|
||||
|
||||
x11inc=$XBPS_CROSS_BASE/usr/include/X11
|
||||
x11lib=$XBPS_CROSS_BASE/usr/lib
|
||||
freetypeinc=$XBPS_CROSS_BASE/usr/include/freetype2
|
||||
make CC="$CC" ${makejobs} X11INC=$x11inc X11LIB=$x11lib FREETYPEINC=$freetypeinc
|
||||
}
|
||||
|
||||
do_install() {
|
||||
make PREFIX=/usr DESTDIR=${DESTDIR} install
|
||||
vlicense LICENSE
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=Dwm
|
||||
Comment=Dynamic window manager
|
||||
Exec=dwm
|
||||
Icon=dwm
|
||||
Type=XSession
|
|
@ -0,0 +1,28 @@
|
|||
# Template file for 'dwm-custom'
|
||||
pkgname=dwm-custom
|
||||
version=2024.6.5
|
||||
revision=1
|
||||
makedepends="libXinerama-devel libXft-devel freetype-devel pango-devel pkg-config"
|
||||
short_desc="Customized DWM"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="MIT"
|
||||
homepage="https://git.snaile.de/snailed/dwm-custom"
|
||||
distfiles="${homepage}/archive/${version}.tar.gz"
|
||||
checksum=8a56c383fae25ea90fc6ec1fb4ddfbbb31f46d1b96d68664482ad218ea1f69b3
|
||||
replaces="dwm>=0"
|
||||
provides='dwm-6.4_1'
|
||||
|
||||
do_build() {
|
||||
make config.mk
|
||||
vsed -e "/CFLAGS/s|\${CPPFLAGS}|& $CFLAGS|g" -i config.mk
|
||||
make CC=$CC \
|
||||
INCS="-I. $(pkg-config --cflags xft pango pangoxft freetype2)" \
|
||||
LIBS="-lX11 -lXinerama -lpangoxft-1.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype -lXft"
|
||||
}
|
||||
|
||||
do_install() {
|
||||
make PREFIX=/usr DESTDIR=$DESTDIR install
|
||||
vinstall README 644 usr/share/doc/$pkgname
|
||||
vinstall ${FILESDIR}/dwm.desktop 644 usr/share/xsessions
|
||||
vlicense LICENSE
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
# Template file for 'dwmblocks-custom'
|
||||
pkgname=dwmblocks-custom
|
||||
version=2024.5.1
|
||||
revision=2
|
||||
makedepends="xcb-util-devel pkg-config"
|
||||
short_desc="Customized dwmblocks"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="MIT"
|
||||
homepage="https://git.snaile.de/snailed/dwmblocks-custom"
|
||||
distfiles="${homepage}/archive/${version}.tar.gz"
|
||||
checksum=bd8dba3a108c575bbb51d395b65881d5497a6b391402376beb148dfcaffeb0e9
|
||||
|
||||
do_build() {
|
||||
[ -e ${FILESDIR}/config.h ] && cp ${FILESDIR}/config.h config.h
|
||||
make CC=$CC
|
||||
}
|
||||
|
||||
do_install() {
|
||||
make PREFIX=/usr DESTDIR=$DESTDIR install
|
||||
vlicense LICENSE
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
# Template file for 'font-firacode-nf-ttf'
|
||||
pkgname=font-firacode-nf-ttf
|
||||
version=3.2.1 # renovate ryanoasis/nerd-fonts
|
||||
revision=2
|
||||
homepage="https://nerdfonts.com/"
|
||||
license="MIT"
|
||||
depends="font-util"
|
||||
short_desc="NerdFont patched Fira Code font"
|
||||
maintainer="luca <luca@snaile.de>"
|
||||
distfiles="https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/FiraCode.tar.xz"
|
||||
conflicts="nerd-fonts-ttf"
|
||||
font_dirs="/usr/share/fonts/NerdFonts/ttf"
|
||||
checksum=def4b29f7aa0620a7fa12edb28197a2697680b5e21636fa3dcc602e08ae13bc4
|
||||
|
||||
do_install() {
|
||||
vmkdir usr/share/fonts/NerdFonts/ttf/symbols
|
||||
vcopy "*.ttf" usr/share/fonts/NerdFonts/ttf/symbols
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'gleam'
|
||||
pkgname=gleam
|
||||
version=1.2.1
|
||||
version=1.2.0
|
||||
revision=1
|
||||
build_style=cargo
|
||||
make_install_args="--path=compiler-cli"
|
||||
|
@ -12,4 +12,4 @@ license="Apache-2.0"
|
|||
homepage="https://gleam.run/"
|
||||
changelog="https://raw.githubusercontent.com/gleam-lang/gleam/main/CHANGELOG.md"
|
||||
distfiles="https://github.com/gleam-lang/gleam/archive/refs/tags/v${version}.tar.gz"
|
||||
checksum=7ced040b0289faff08ef2ff8113e9ecf06e2c7e3ac9154a529fa3b9bf1a4ade0
|
||||
checksum=381239535ca1a2b95c982f46569847b722d9a308f84910c8ab0d03d8a6d5f6d5
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'gnuplot'
|
||||
pkgname=gnuplot
|
||||
version=6.0.1
|
||||
version=6.0.0
|
||||
revision=1
|
||||
configure_args="--with-readline=builtin
|
||||
--with-gpic --with-metapost --with-metafont"
|
||||
|
@ -14,7 +14,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
|
|||
license="gnuplot"
|
||||
homepage="http://www.gnuplot.info/"
|
||||
distfiles="${SOURCEFORGE_SITE}/gnuplot/gnuplot/${version}/gnuplot-${version}.tar.gz"
|
||||
checksum=e85a660c1a2a1808ff24f7e69981ffcbac66a45c9dcf711b65610b26ea71379a
|
||||
checksum=635a28f0993f6ab0d1179e072ad39b8139d07f51237f841d93c6c2ff4b1758ec
|
||||
|
||||
subpackages="gnuplot-common"
|
||||
if [ -z "$CROSS_BUILD" ]; then
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'go'
|
||||
pkgname=go
|
||||
version=1.22.0
|
||||
version=1.22.3
|
||||
revision=1
|
||||
create_wrksrc=yes
|
||||
build_wrksrc=go
|
||||
|
@ -12,7 +12,7 @@ license="BSD-3-Clause"
|
|||
homepage="https://go.dev/"
|
||||
changelog="https://go.dev/doc/devel/release.html"
|
||||
distfiles="https://go.dev/dl/go${version}.src.tar.gz"
|
||||
checksum=4d196c3d41a0d6c1dfc64d04e3cc1f608b0c436bd87b7060ce3e23234e1f4d5c
|
||||
checksum=80648ef34f903193d72a59c0dff019f5f98ae0c9aa13ade0b0ecbff991a76f68
|
||||
nostrip=yes
|
||||
noverifyrdeps=yes
|
||||
# on CI it tries to use `git submodule`, which is not part of chroot-git
|
||||
|
|
|
@ -17,12 +17,12 @@ export LDFLAGS="-fuse-ld=bfd"
|
|||
|
||||
post_build() {
|
||||
for shell in bash zsh fish; do
|
||||
go run main.go completion $shell >k9s.$shell
|
||||
go run main.go completion $shell >completion.$shell
|
||||
done
|
||||
}
|
||||
|
||||
post_install() {
|
||||
for shell in bash zsh fish; do
|
||||
vcompletion k9s.$shell $shell
|
||||
vcompletion completion.$shell $shell
|
||||
done
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
# Template file for 'kdash'
|
||||
pkgname=kdash
|
||||
version=0.6.0
|
||||
revision=1
|
||||
build_style=cargo
|
||||
hostmakedepends="pkg-config"
|
||||
makedepends="oniguruma-devel"
|
||||
short_desc="Simple and fast dashboard for Kubernetes"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="MIT"
|
||||
homepage="https://kdash.cli.rs/"
|
||||
changelog="https://raw.githubusercontent.com/kdash-rs/kdash/main/CHANGELOG.md"
|
||||
distfiles="https://github.com/kdash-rs/kdash/archive/v${version}.tar.gz"
|
||||
checksum=55acffd0091673984ae15fd4c869de92abbea598654363394caf057db3434bc0
|
||||
|
||||
post_install() {
|
||||
vdoc README.md
|
||||
vlicense LICENSE
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'perl-PDF-API2'
|
||||
pkgname=perl-PDF-API2
|
||||
version=2.047
|
||||
version=2.045
|
||||
revision=1
|
||||
build_style=perl-module
|
||||
hostmakedepends="perl"
|
||||
|
@ -12,4 +12,4 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
|
|||
license="LGPL-2.1-or-later"
|
||||
homepage="https://metacpan.org/release/PDF-API2"
|
||||
distfiles="${CPAN_SITE}/PDF/PDF-API2-${version}.tar.gz"
|
||||
checksum=84d6318279d77844923e4de4275fe4345cd08b225edd7f9ed6a16f87a91aca39
|
||||
checksum=b6bdb4e0d0cd6526103fdd58c171e0560c36b843b7fe3ca4ddc9bb1e4c832406
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'pgn-extract'
|
||||
pkgname=pgn-extract
|
||||
version=24.09
|
||||
version=22.11
|
||||
revision=1
|
||||
build_style=gnu-makefile
|
||||
make_use_env=yes
|
||||
|
@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
|
|||
homepage="https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/"
|
||||
changelog="https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/changes.html"
|
||||
distfiles="https://www.cs.kent.ac.uk/~djb/pgn-extract/pgn-extract-${version/./-}.tgz"
|
||||
checksum=f3afd594aa40b4abce58e87bb565d3730ac160bb93472ae630bf1a25524c6eca
|
||||
checksum=331e84d55299987dc27f159292ea3b59b94c47edc972f32e96f4e6c0c8621c0b
|
||||
|
||||
post_extract() {
|
||||
sed -i '/^CC=/d' Makefile
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
# Template file for 'pv-migrate'
|
||||
pkgname=pv-migrate
|
||||
version=2.0.1 # renovate utkuozdemir/pv-migrate
|
||||
revision=2
|
||||
archs="x86_64* i686"
|
||||
build_style=go
|
||||
go_import_path="github.com/utkuozdemir/pv-migrate"
|
||||
go_package="./cmd/pv-migrate"
|
||||
hostmakedepends="go"
|
||||
short_desc="CLI tool to easily migrate Kubernetes persistent volumes"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="Apache-2.0"
|
||||
homepage="https://github.com/utkuozdemir/pv-migrate"
|
||||
distfiles="https://github.com/utkuozdemir/pv-migrate/archive/v${version}.tar.gz"
|
||||
checksum=37cfb0b7bfa581b32047fe6dbc9b834b4323629a5c946060dc897fe9bcef8e7c
|
||||
|
||||
# fix: collect2: fatal error: cannot find 'ld'
|
||||
export LDFLAGS="-fuse-ld=bfd"
|
||||
|
||||
post_build() {
|
||||
for shell in bash zsh fish; do
|
||||
go run main.go completion $shell >completion.$shell
|
||||
done
|
||||
}
|
||||
|
||||
post_install() {
|
||||
for shell in bash zsh fish; do
|
||||
vcompletion completion.$shell $shell
|
||||
done
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'rbw'
|
||||
pkgname=rbw
|
||||
version=1.10.2
|
||||
version=1.9.0
|
||||
revision=1
|
||||
archs="x86_64* i686* aarch64* arm*" # ring
|
||||
build_style="cargo"
|
||||
|
@ -12,7 +12,7 @@ license="MIT"
|
|||
homepage="https://git.tozt.net/rbw"
|
||||
changelog="https://git.tozt.net/rbw/plain/CHANGELOG.md"
|
||||
distfiles="https://git.tozt.net/rbw/snapshot/rbw-${version}.tar.gz"
|
||||
checksum=e0e4da2b95dc6f141e0597340e535c61224716b2a7220dce5418555d18e672c2
|
||||
checksum=fdf2942b3b9717e5923ac9b8f2b2cece0c1e47713292ea501af9709398efbacd
|
||||
|
||||
post_install() {
|
||||
for shell in bash fish zsh; do
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Template file for 'sbcl'
|
||||
pkgname=sbcl
|
||||
version=2.4.5
|
||||
version=2.4.4
|
||||
revision=1
|
||||
# make sure the sbcl option in maxima is enabled for the same archs
|
||||
archs="i686 x86_64* armv7l aarch64 ppc64le*"
|
||||
|
@ -15,7 +15,7 @@ license="custom:BSD+public_domain"
|
|||
homepage="http://www.sbcl.org/"
|
||||
changelog="http://www.sbcl.org/news.html"
|
||||
distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}-source.tar.bz2"
|
||||
checksum=4df68e90c9031807642b4b761988deb5bf6a1bd152c4723482834efa735a7bd1
|
||||
checksum=8a932627b3f1d8e9618f1cdc225edcb002456804697e2c87d140683764a106d5
|
||||
nocross=yes
|
||||
nopie=yes
|
||||
|
||||
|
@ -23,7 +23,7 @@ _bootstrap_lisp="bash ../sbcl-*-linux/run-sbcl.sh --no-sysinit --no-userinit --d
|
|||
case "$XBPS_TARGET_MACHINE" in
|
||||
x86_64)
|
||||
distfiles+=" ${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}-x86-64-linux-binary.tar.bz2"
|
||||
checksum+=" b8cc3afbfc8d5e6d05c7a3137b682a909a0d7389d5861fb06cca649480c7e619"
|
||||
checksum+=" cb79b4d8f24f6f9aa28f1458d5b0660e85d29a824e8a62c58f486db3ba015c2d"
|
||||
;;
|
||||
arm*)
|
||||
distfiles+=" ${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-1.2.14-armhf-linux-binary.tar.bz2"
|
||||
|
|
|
@ -0,0 +1,184 @@
|
|||
# Template file for 'snailedesktop'
|
||||
pkgname=snailedesktop
|
||||
version=0
|
||||
revision=3
|
||||
build_style=meta
|
||||
short_desc="Personal meta package"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="Public Domain"
|
||||
homepage="https://snaile.de"
|
||||
archs="x86_64"
|
||||
|
||||
depends="
|
||||
7zip
|
||||
ansible
|
||||
apache-htpasswd
|
||||
arandr
|
||||
atool
|
||||
base-devel
|
||||
base-system
|
||||
bat
|
||||
bind-utils
|
||||
binutils
|
||||
blueman
|
||||
bluez
|
||||
bottom
|
||||
breeze-icons
|
||||
cargo
|
||||
catdoc
|
||||
chafa
|
||||
clipmenu
|
||||
cronie
|
||||
cups
|
||||
cups-filters
|
||||
cups-pdf
|
||||
curl
|
||||
dbus
|
||||
dmenu-custom
|
||||
docker
|
||||
docker-buildx
|
||||
docker-compose
|
||||
dragon
|
||||
dunst
|
||||
dwm-custom
|
||||
dwmblocks-custom
|
||||
elogind
|
||||
fd
|
||||
ffmpeg
|
||||
ffmpegthumbnailer
|
||||
firefox
|
||||
font-firacode-nf-ttf
|
||||
fswatch
|
||||
fzf
|
||||
gdu
|
||||
git
|
||||
git-lfs
|
||||
glow
|
||||
gnome-keyring
|
||||
gnumeric
|
||||
gnupg2-scdaemon
|
||||
gpgme
|
||||
htop
|
||||
ImageMagick
|
||||
jq
|
||||
just
|
||||
k9s
|
||||
kubectl
|
||||
kubernetes-helm
|
||||
lazygit
|
||||
lf
|
||||
libspa-bluetooth
|
||||
lm_sensors
|
||||
lsof
|
||||
lynx
|
||||
maim
|
||||
man-db
|
||||
mediainfo
|
||||
mime-types
|
||||
moreutils
|
||||
mpv
|
||||
mtr
|
||||
ncpamixer
|
||||
neofetch
|
||||
neovim
|
||||
NetworkManager
|
||||
nmap
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
noto-fonts-ttf
|
||||
noto-fonts-ttf-extra
|
||||
nsxiv
|
||||
ntp
|
||||
odt2txt
|
||||
pamixer
|
||||
pcsc-ccid
|
||||
picom
|
||||
pinentry-gnome
|
||||
pipewire
|
||||
playerctl
|
||||
pnpm
|
||||
polkit
|
||||
poppler
|
||||
progress
|
||||
psmisc
|
||||
pulsemixer
|
||||
pv-migrate
|
||||
pwgen
|
||||
python3-ansible-lint
|
||||
python3-devel
|
||||
python3-pip
|
||||
ranger
|
||||
rbw
|
||||
ripgrep
|
||||
rlwrap
|
||||
rsync
|
||||
ruby-asciidoctor
|
||||
rust
|
||||
rust-analyzer
|
||||
rust-src
|
||||
rustup
|
||||
seahorse
|
||||
shellcheck
|
||||
shfmt
|
||||
Signal-Desktop
|
||||
simple-mtpfs
|
||||
smbclient
|
||||
socat
|
||||
socklog-void
|
||||
st-custom
|
||||
stow
|
||||
strace
|
||||
syncthing
|
||||
syncthingtray
|
||||
system-config-printer
|
||||
tcpdump
|
||||
thunderbird
|
||||
tlp
|
||||
tmux
|
||||
tokyonight-theme
|
||||
trash-util
|
||||
tree-sitter-devel
|
||||
unclutter
|
||||
vault
|
||||
velero
|
||||
virtualenvwrapper
|
||||
void-repo-nonfree
|
||||
vpsm
|
||||
vsv
|
||||
wget
|
||||
wireplumber
|
||||
xcape
|
||||
xclip
|
||||
xdg-user-dirs
|
||||
xdg-utils
|
||||
xdotool
|
||||
xinit
|
||||
xmenu
|
||||
xorg
|
||||
xournalpp
|
||||
xscreensaver
|
||||
xsecurelock
|
||||
xsel
|
||||
xss-lock
|
||||
xtools
|
||||
xwallpaper
|
||||
xxd
|
||||
xz
|
||||
ykpers
|
||||
yt-dlp
|
||||
yubikey-manager
|
||||
zathura
|
||||
zathura-pdf-mupdf
|
||||
zk
|
||||
zsh
|
||||
zsh-completions
|
||||
"
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) depends+=" musl";;
|
||||
*) depends+=" glibc-locales";;
|
||||
esac
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686*|x86_64*|ppc*) depends+=" linux";;
|
||||
esac
|
|
@ -0,0 +1 @@
|
|||
st-custom
|
|
@ -0,0 +1,40 @@
|
|||
# Template file for 'st-custom'
|
||||
pkgname=st-custom
|
||||
version=2024.5.2
|
||||
revision=2
|
||||
build_style=gnu-makefile
|
||||
make_use_env=compliant
|
||||
hostmakedepends="pkg-config"
|
||||
makedepends="fontconfig-devel libX11-devel libXft-devel imlib2-devel harfbuzz-devel"
|
||||
depends="ncurses st-custom-terminfo-${version}_${revision}"
|
||||
short_desc="Customized ST"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="MIT"
|
||||
homepage="https://git.snaile.de/snailed/st-custom"
|
||||
distfiles="${homepage}/archive/${version}.tar.gz"
|
||||
checksum=991028ecaead1cce9a71f82bae7fe5c1ed4c0279617a5bdea5d6dd2972a066ef
|
||||
replaces="st>=0"
|
||||
provides="st-0.9.1_1"
|
||||
|
||||
pre_build() {
|
||||
mkdir -p ${DESTDIR}/usr/share/terminfo
|
||||
}
|
||||
|
||||
pre_install() {
|
||||
export TERMINFO=${DESTDIR}/usr/share/terminfo
|
||||
}
|
||||
|
||||
post_install() {
|
||||
vdoc README
|
||||
vdoc FAQ
|
||||
vlicense LICENSE
|
||||
}
|
||||
|
||||
st-custom-terminfo_package() {
|
||||
short_desc+=" - terminfo data"
|
||||
replaces="st-terminfo"
|
||||
provides="st-terminfo-0.9.1_1"
|
||||
pkg_install() {
|
||||
vmove usr/share/terminfo
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
# Template file for 'albatross-themes'
|
||||
pkgname=tokyonight-theme
|
||||
version=2024.5.2
|
||||
revision=1
|
||||
short_desc="Tokyonight Theme"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="GPL-3.0-or-later"
|
||||
homepage="https://git.snaile.de/snailed/tokyonight-theme"
|
||||
distfiles="${homepage}/archive/${version}.tar.gz"
|
||||
checksum=295ccdf45b8214708af228faf0629cdb615effe9f44ab6c5f34d0c3bfe1393b8
|
||||
|
||||
do_install() {
|
||||
vmkdir usr/share/themes
|
||||
vcopy dist/themes/tokyonight usr/share/themes/tokyonight
|
||||
|
||||
vmkdir usr/share/icons
|
||||
vcopy dist/icons/tokyonight usr/share/icons/tokyonight
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
# Template file for 'trash-util'
|
||||
pkgname=trash-util
|
||||
version=0.0.2
|
||||
revision=1
|
||||
build_style=cargo
|
||||
short_desc="Extremely minimalistic trash client, meant to be used by a wrapper script."
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="MIT"
|
||||
homepage="https://git.snaile.de/snailed/trash-util"
|
||||
distfiles="${homepage}/archive/${version}.tar.gz"
|
||||
checksum=1f83fd55ce2fa21f403f950fcec6136881581e629a948d2ae078bb8638eef5a4
|
|
@ -0,0 +1,22 @@
|
|||
# Template file for 'velero'
|
||||
pkgname=velero
|
||||
version=1.14.0 # renovate vmware-tanzu/velero
|
||||
revision=2
|
||||
archs="x86_64* i686"
|
||||
build_style=go
|
||||
go_import_path="github.com/vmware-tanzu/velero"
|
||||
go_package="./cmd/velero"
|
||||
hostmakedepends="go"
|
||||
short_desc="Tools to back up and restore Kubernetes resources and persistent volumes"
|
||||
maintainer="Luca Bilke <luca@bil.ke>"
|
||||
license="GPL-3.0-or-later"
|
||||
homepage="https://velero.io/"
|
||||
distfiles="https://github.com/vmware-tanzu/velero/archive/v${version}.tar.gz"
|
||||
checksum=e292c4427d801b426a53e24cff10aed16de5bcbf2a5207edfee30d8c4d363135
|
||||
|
||||
post_install() {
|
||||
for shell in bash zsh fish; do
|
||||
${PKGDESTDIR}/usr/bin/${pkgname} completion "$shell" >"${pkgname}.$shell"
|
||||
vcompletion "${pkgname}.$shell" "$shell"
|
||||
done
|
||||
}
|
|
@ -8,7 +8,7 @@ configure_args="-DENABLE_MAN=ON -DENABLE_PERL=ON
|
|||
-DENABLE_GUILE=OFF -DENABLE_PHP=OFF -DENABLE_JAVASCRIPT=OFF"
|
||||
hostmakedepends="gettext libgcrypt-devel pkg-config python3
|
||||
ruby ruby-asciidoctor tcl-devel"
|
||||
makedepends="aspell-devel cJSON-devel gnutls-devel libcurl-devel libgcrypt-devel
|
||||
makedepends="aspell-devel gnutls-devel libcurl-devel libgcrypt-devel
|
||||
libzstd-devel lua53-devel ncurses-devel perl python3-devel
|
||||
ruby-devel tcl-devel"
|
||||
depends="ca-certificates"
|
||||
|
@ -18,7 +18,7 @@ license="GPL-3.0-or-later"
|
|||
homepage="https://www.weechat.org"
|
||||
changelog="https://raw.githubusercontent.com/weechat/weechat/master/CHANGELOG.md"
|
||||
distfiles="https://www.weechat.org/files/src/weechat-${version}.tar.xz"
|
||||
checksum=157e22a17dcc303c665739631a04470d786474e805febed2ed2d5b6250d18653
|
||||
checksum=20968b22c7f0f50df9cf6ff8598dd1bd017c5759b2c94593f5d9ed7b24ebb941
|
||||
lib32disabled=yes
|
||||
|
||||
subpackages="weechat-aspell weechat-devel weechat-ruby weechat-python weechat-tcl weechat-lua weechat-perl"
|
||||
|
|
Loading…
Reference in New Issue