Repository: Makrennel/hyprland-void
Branch: master
Commit: 1ae39094e727
Files: 35
Total size: 40.1 KB
Directory structure:
gitextract_4ym5w6fi/
├── .github/
│ └── workflows/
│ ├── build-latest.yml
│ └── check.yml
├── COPYING
├── README.md
├── common/
│ └── shlibs
├── scripts/
│ ├── build-packages
│ ├── clone-and-prepare
│ ├── generate-build-order.kts
│ ├── index-packages
│ ├── push-repository
│ ├── set-environment
│ ├── sign-packages
│ └── version-checker
└── srcpkgs/
├── aquamarine/
│ └── template
├── glaze/
│ └── template
├── hyprcursor/
│ └── template
├── hyprgraphics/
│ └── template
├── hypridle/
│ └── template
├── hyprland/
│ ├── patches/
│ │ └── musl-build-fix.patch
│ └── template
├── hyprland-protocols/
│ └── template
├── hyprland-qt-support/
│ └── template
├── hyprland-qtutils/
│ └── template
├── hyprlang/
│ └── template
├── hyprlock/
│ └── template
├── hyprpaper/
│ └── template
├── hyprpolkitagent/
│ └── template
├── hyprsunset/
│ └── template
├── hyprsysteminfo/
│ └── template
├── hyprutils/
│ └── template
├── hyprwayland-scanner/
│ └── template
├── libspng/
│ └── template
├── sdbus-cpp/
│ └── template
├── tomlplusplus/
│ └── template
└── xdg-desktop-portal-hyprland/
└── template
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/build-latest.yml
================================================
name: "Build Latest Packages"
on:
push:
branches:
- master
workflow_dispatch:
jobs:
build:
name: Build Hyprland
runs-on: ubuntu-latest
container:
image: ghcr.io/void-linux/void-glibc-full:20250227R1
options: --platform linux/amd64 --privileged
strategy:
matrix:
arch: [ x86_64, x86_64-musl, aarch64, aarch64-musl ]
env:
REPO_OWNER: "${{ github.repository_owner }}"
REPO_NAME: "${{ github.event.repository.name }}"
TARGET_ARCH: "${{ matrix.arch }}"
SCRIPT_DIR: "/work/${{ github.event.repository.name }}/scripts"
BUILD_ARGS: ""
steps:
- name: Prepare container and create a non-root user
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 && xbps-install -yu && xbps-install -y sudo bash grep curl git kotlin-bin
useradd -G xbuilder -M builder
- name: Clone hyprland-void repo
run: |
mkdir /work && cd /work
git clone https://github.com/$REPO_OWNER/$REPO_NAME.git
$SCRIPT_DIR/set-environment
- name: Automatically generate a build order
run: $SCRIPT_DIR/generate-build-order.kts
- name: Prepare void-packages
run: $SCRIPT_DIR/clone-and-prepare
- name: Build packages
run: $SCRIPT_DIR/build-packages
- name: Copy relevant packages for indexing and signing
run: |
export PEM_PAT=${{ secrets.PEM_PAT }}
export XBPS_PASSPHRASE=${{ secrets.PRIVATE_PEM_PASSPHRASE }}
export XBPS_TARGET_ARCH=${{ env.TARGET_ARCH }}
sudo -Eu builder $SCRIPT_DIR/index-packages
sudo -Eu builder $SCRIPT_DIR/sign-packages
- name: Push new packages to binary repository
run: |
export ACCESS_GIT=${{ secrets.ACCESS_GIT }}
sudo -Eu builder $SCRIPT_DIR/push-repository
================================================
FILE: .github/workflows/check.yml
================================================
name: Check build
on:
pull_request:
paths:
- 'srcpkgs/**'
push:
branches:
- 'ci-**'
paths:
- 'srcpkgs/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# Lint changed templates.
xlint:
name: Lint templates
runs-on: ubuntu-latest
container:
image: 'ghcr.io/void-linux/void-buildroot-musl:20231230R1'
env:
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
LICENSE_LIST: common/travis/license.lst
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 tools needed for lints
xbps-install -y grep curl git
- 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 &&
common/travis/fetch-xtools.sh
- run: common/travis/changed_templates.sh
- name: Run lints
run: |
rv=0
common/travis/xlint.sh || rv=1
common/travis/verify-update-check.sh || rv=1
exit $rv
# Build changed packages.
build:
name: Build packages
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/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 }}'
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 }
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
- 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 &&
common/travis/fetch-xtools.sh
- run: common/travis/changed_templates.sh
- name: Build and check packages
run: |
(
here="$(pwd)"
cd /
"$here/common/travis/build.sh" "$BOOTSTRAP" "$ARCH" "$TEST"
)
- name: Show files
run: |
(
here="$(pwd)"
cd /
"$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: |
(
here="$(pwd)"
cd /
"$here/common/travis/check-install.sh" "$BOOTSTRAP" "$ARCH"
)
================================================
FILE: COPYING
================================================
Copyright (c) 2008-2020 Juan Romero Pardines and contributors
Copyright (c) 2017-2023 The Void Linux team and contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: README.md
================================================
## Hyprland for Void Linux
This repository contains template files and binaries for building or installing [Hyprland](https://github.com/hyprwm/Hyprland) on Void Linux.
### Installation
The easiest way to install Hyprland on Void Linux is using the [binary repository](https://github.com/Makrennel/hyprland-void/tree/repository-x86_64-glibc) which is built automatically using [GitHub Actions](https://github.com/Makrennel/hyprland-void/blob/master/.github/workflows/build-latest.yml) whenever a new commit is pushed to this repository.
You can add this repository to xbps's repositories by creating a file such as `/etc/xbps.d/hyprland-void.conf` with the following text:
```
repository=https://raw.githubusercontent.com/Makrennel/hyprland-void/repository-x86_64-glibc
```
This can be done with the following command:
```
echo repository=https://raw.githubusercontent.com/Makrennel/hyprland-void/repository-x86_64-glibc | sudo tee /etc/xbps.d/hyprland-void.conf
```
Then you need to refresh your repositories and accept the repository's fingerprint:
```
sudo xbps-install -S
```
You should now be able search through all hypr related packages provided by this repository, and install packages as usual:
```
xbps-query -Rs hypr
sudo xbps-install -S hyprland xdg-desktop-portal-hyprland
```
Currently this repository provides binary packages for:
- x86_64-glibc
- x86_64-musl
- aarch64-glibc
- aarch64-musl
Change the end of the url in `/etc/xbps.d/hyprland-void.conf` as appropriate with the above options.
### Running
In order to run Hyprland you will need to install some additional packages which will depend on your setup, for example a [session and seat manager](https://docs.voidlinux.org/config/session-management.html) and [graphics drivers](https://docs.voidlinux.org/config/graphical-session/graphics-drivers/index.html). You may also have to add the user to the `_seatd` group. If you use an Nvidia GPU refer to the [Hyprland Wiki](https://wiki.hyprland.org/Nvidia), but keep in mind that Hyprland does not officially support Nvidia.
### Extra
There are packages in this repository which may be of interest for:
- hypridle
- hyprlock
- hyprpaper
- xdg-desktop-portal-hyprland
### Common Remarks
#### "Why is this so out of date"?
Upstream Void Linux packages are sometimes chronically out of date and Hyprland tends to follow the bleeding edge. I will not risk breaking someone's system by providing, for example, a core package like `GCC 14` ahead of whenever upstream is ready to do so.
#### "Will this be merged into upstream void-packages eventually?"
Unless Void Linux's maintainers decide to change their opinion on the matter, the answer is no. Void Linux is hostile towards Hyprland, its developers, and community, so if this is a problem you should probably consider using a different distribution.
### Manually Building
You may want to build these templates manually, for example if you have a specific configuration requirement that needs to be set at build time. Void-packages may sometimes have specific packages which are out of date from time to time that need to be updated beforehand in order to update Hyprland, which is why this repository is not simply forked off it. We need to copy the modifications from this repository on top of a fresh void-packages clone in order to build manually.
1) You may want to start by making a directory where you can keep the relevant repositories
```
mkdir ~/repos
cd ~/repos
```
2) Set up a [void-packages](https://github.com/void-linux/void-packages) clone for building templates files
```
git clone https://github.com/void-linux/void-packages
cd void-packages
./xbps-src binary-bootstrap
cd ..
```
3) Clone this repository:
```
git clone https://github.com/Makrennel/hyprland-void.git
cd hyprland-void
```
4) Append shared libraries to the end of your void-packages shared libraries
```
cat common/shlibs >> ../void-packages/common/shlibs
```
5) Copy srcpkgs to your void-packages srcpkgs directory
```
cp -r --remove-destination srcpkgs/* ../void-packages/srcpkgs
```
6) Build and install packages
```
cd ../void-packages
./xbps-src pkg hyprland
sudo xbps-install -R hostdir/binpkgs hyprland
```
### Contributing and Forking
Any contributions are greatly appreciated, but please bear in mind that the build actions run on `x86_64` with `glibc` and you should make sure that it cross-compiles with xbps-src's `-a` flag for both `musl` and `aarch64` - for example with `./xbps-src -a aarch64-musl pkg new-hypr-package`.
Please also try not to superfluously change things when pull requesting with this repository, and use your own name and email in the maintainer section of new templates: do not contribute on behalf of someone else if they are not involved with the pull request. Where possible, commit changes separately (rather than in huge lump commits) and describe the changes so contributions can be easily understood and cherry picked as needed.
If you would like to create your own fork of this repository and use the build action for your own packages, you must either create a private repository called `hyprland-void-private-pem` where you will store your signing keys and fetch them using a GitHub Private Access Token stored in your repository's secrets called `PEM_PAT`, or store the signing key directly in your secrets and modify [`scripts/sign-packages`](https://github.com/Makrennel/hyprland-void/blob/master/scripts/sign-packages) and the [build action](https://github.com/Makrennel/hyprland-void/blob/master/.github/workflows/build-latest.yml) appropriately. You cannot install packages from remote repositories without signing them, and *DO NOT* put the private signing key in your public repository. You will also need to create a GitHub Personal Access Token so that the action can delete, create, and push the branches where the finished packages and repodata is stored.
For information on signing your repository, see the [Void Linux documentation](https://docs.voidlinux.org/xbps/repositories/signing.html) and `xbps-rindex`'s [man page](https://man.voidlinux.org/xbps-rindex.1).
================================================
FILE: common/shlibs
================================================
libaquamarine.so.7 aquamarine-0.8.0_2
libhyprcursor.so.0 hyprcursor-0.1.12_1
libhyprlang.so.2 hyprlang-0.6.3_1
libhyprgraphics.so.0 hyprgraphics-0.1.3_2
libhyprutils.so.6 hyprutils-0.7.1_1
libsdbus-c++.so.2 sdbus-cpp-2.1.0_1
libspng.so.0 libspng-0.7.4_1
libtomlplusplus.so.3 tomlplusplus-3.4.0_1
================================================
FILE: scripts/build-packages
================================================
#!/usr/bin/env sh
BUILD="sudo -Eu builder /work/void-packages/xbps-src $BUILD_ARGS -j$(nproc) -s -H /work/hostdir pkg"
COMMAND="
while IFS= read -r package; do
echo \"::group::Building \$package...\"
echo \"$BUILD \$package\"
$BUILD \$package
echo \"::endgroup::\"
done < /work/build-order
"
echo "Running command: $COMMAND"
sh -c "$COMMAND"
================================================
FILE: scripts/clone-and-prepare
================================================
#!/usr/bin/env sh
COMMAND="
cd /work
git clone --depth 1 https://github.com/void-linux/void-packages.git
cd /work/$REPO_NAME
cat common/shlibs >> /work/void-packages/common/shlibs
cp -r srcpkgs/* /work/void-packages/srcpkgs
chown -R builder:builder /work
cd /work/void-packages
sudo -Eu builder common/travis/set_mirror.sh &&
sudo -Eu builder common/travis/prepare.sh &&
common/travis/fetch-xtools.sh
"
echo "Running command: $COMMAND"
sh -c "$COMMAND"
================================================
FILE: scripts/generate-build-order.kts
================================================
#!/usr/bin/env kotlin
/**
* I couldn't be bothered to figure out how to write this in POSIX or Bash
* So I just wrote it in an actually decent language
*/
import java.io.File
import java.nio.file.LinkOption
import kotlin.io.path.Path
import kotlin.io.path.forEachDirectoryEntry
import kotlin.io.path.isDirectory
import kotlin.io.path.name
val repoName = System.getenv("REPO_NAME") ?: "hyprland-void"
val packages: MutableMap<String, HashSet<String>> = HashMap()
// Get non-symlink directories in srcpkgs
Path("/work/$repoName/srcpkgs").forEachDirectoryEntry {
if(it.isDirectory(LinkOption.NOFOLLOW_LINKS)) packages.put(it.name, HashSet())
}
// Populate package dependency lists
for(pkg in packages.keys) {
val required = ArrayList<String>()
var toNextLine = false
// For each line check if it contains the keyword "depends" or is following from one which does
Path("/work/$repoName/srcpkgs/$pkg/template").toFile().forEachLine {
// If the previous line contained "depends" and an opening quote mark, but not a closing one
if(toNextLine) {
var line = it
// If this line contains a closing quote mark
if(it.contains('"')) {
toNextLine = false
line = it.substringBefore('"')
}
// Split line at any whitespace and add to the list
line.split("\\s+".toRegex()).forEach(required::add)
}
// If line contains "depends" as a keyword and an opening quote mark
if(it.contains("depends") && it.contains('"')) {
var depends = it.substringAfter('"')
if(!depends.contains('"')) toNextLine = true
else depends = depends.substringBefore('"')
depends.split("\\s+".toRegex()).forEach(required::add)
}
}
// Add dependency to this package's list if the dependency is also present in srcpkgs
required.forEach {
if(packages.containsKey(it)) packages.get(pkg)!!.add(it)
}
}
// Turn packages into an array so we can create a sorted array with indices
val temp = packages.keys.toTypedArray()
var order = arrayOfNulls<String>(temp.size)
fun Array<String?>.insert(position: Int, element: String): Array<String?> {
return sliceArray(0 until position) + element + sliceArray(position until size)
}
for(i in temp.indices) {
// Find reverse dependencies
var last = false;
for(j in order.indices) {
// If array is empty, insert first element
if(order[j].isNullOrBlank()) {
order[j] = temp[i]
break
}
// If the package has no dependencies, insert immediately
if(packages.get(temp[i])!!.isEmpty()) {
order = order.insert(0, temp[i])
break
}
// If package at order[j] depends on package at temp[i], the package at temp[i] must be built first
if(packages.get(order[j])!!.contains(temp[i])) {
order = order.insert(j, temp[i])
break
}
}
}
println("Build Order:")
for(i in order.indices) {
if(order[i] == null) continue
println("${i + 1}: ${order[i]} - ${packages.get(order[i])}")
File("/work/build-order").appendText("${order[i]}\n")
}
================================================
FILE: scripts/index-packages
================================================
#!/usr/bin/env sh
# Sometimes xbps-src builds a bunch of other junk I don't want to be liable for distributing
COMMAND="
mkdir /work/packages
cp /work/hostdir/binpkgs/aquamarine*.xbps /work/packages
cp /work/hostdir/binpkgs/glaze*.xbps /work/packages
cp /work/hostdir/binpkgs/hypr*.xbps /work/packages
cp /work/hostdir/binpkgs/libspng*.xbps /work/packages
cp /work/hostdir/binpkgs/sdbus-cpp*.xbps /work/packages
cp /work/hostdir/binpkgs/tomlplusplus*.xbps /work/packages
cp /work/hostdir/binpkgs/xdg-desktop-portal-hyprland*.xbps /work/packages
cd /work/packages
xbps-rindex -a *
"
echo "Running command: $COMMAND"
sh -c "$COMMAND"
================================================
FILE: scripts/push-repository
================================================
#!/usr/bin/env sh
# We'll blow the size of the repository up very quickly if we do not delete old iterations of the repository
COMMAND="
cd /work/$REPO_NAME
# Config
git config user.name \"github-actions[bot]\"
git config user.email \"github-actions[bot]@users.noreply.github.com\"
# Delete old binary repository, create new one
git push https://$REPO_OWNER:$ACCESS_GIT@github.com/$REPO_OWNER/$REPO_NAME.git -d repository-$RESULT_NAME
git switch --orphan repository-$RESULT_NAME
# Populate and push new binary repository
cp /work/packages/* ./
git add .
git commit -m \"Upload latest packages to repository\"
git push -f https://$REPO_OWNER:$ACCESS_GIT@github.com/$REPO_OWNER/$REPO_NAME.git repository-$RESULT_NAME
"
echo "Running command: $COMMAND"
sh -c "$COMMAND"
================================================
FILE: scripts/set-environment
================================================
#!/usr/bin/env sh
COMMAND="
[ \"${TARGET_ARCH##*-musl}\" ] \
&& echo \"RESULT_NAME=$TARGET_ARCH-glibc\" >> \"$GITHUB_ENV\" \
|| echo \"RESULT_NAME=$TARGET_ARCH\" >> \"$GITHUB_ENV\"
[ \"$TARGET_ARCH\" != \"x86_64\" ] \
&& echo \"BUILD_ARGS=$BUILD_ARGS -a $TARGET_ARCH\" >> \"$GITHUB_ENV\" \
|| true
"
echo "Running command: $COMMAND"
sh -c "$COMMAND"
================================================
FILE: scripts/sign-packages
================================================
#!/usr/bin/env sh
# We need to sign the packages with our private key so that they will be accepted by xbps remotely
# See: https://docs.voidlinux.org/xbps/repositories/signing.html
COMMAND="
# Retrieve the signing key from the separate private repository
cd /work
curl \
-H 'Authorization: token $PEM_PAT' \
-H 'Accept: application/vnd.github.v3.raw' \
-O -L https://api.github.com/repos/$REPO_OWNER/hyprland-void-private-pem/contents/private.pem
# Sign packages
xbps-rindex --privkey /work/private.pem --sign --signedby \"$REPO_NAME-github-action\" /work/packages
xbps-rindex --privkey /work/private.pem --sign-pkg /work/packages/*.xbps
"
echo "Running command: $COMMAND"
sh -c "$COMMAND"
================================================
FILE: scripts/version-checker
================================================
#!/usr/bin/env bash
template_dir="../srcpkgs"
log() {
local RED='\033[0;31m'
local GREEN='\033[0;32m'
local YELLOW='\033[0;33m'
local BLUE='\033[0;34m'
local NC='\033[0m'
case "$1" in
success)
echo -e "${GREEN}$2${NC}"
;;
info)
echo -e "${BLUE}$2${NC}"
;;
warning)
echo -e "${YELLOW}$2${NC}"
;;
error)
echo -e "${RED}$2${NC}"
;;
*)
echo "$2"
;;
esac
}
fetch_version() {
repo=$1
# latest_tag=$(curl -s "https://api.github.com/repos/hyprwm/$repo/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")')
latest_tag=$(curl -s "https://github.com/hyprwm/$repo/releases" | grep -Po 'href="[^"]*/releases/tag/\K[^"]+' | head -n 1)
echo $latest_tag
}
main() {
command -v curl >/dev/null || {
log error "Curl not found, please install. Exiting..." >&2
exit 1
}
for package_dir in "$template_dir"/aquamarine/ "$template_dir"/hypr*/ "$template_dir"/xdg-desktop-portal-hyprland/; do
pkgname=$(basename "$package_dir")
if [[ "$pkgname" == "hyprland-devel" ]]; then
continue
fi
template_file="${package_dir}template"
if [[ ! -f "$template_file" ]]; then
echo "Template file not found for $pkgname"
continue
fi
current_version="v$(grep -Po '^version=\K[0-9.]+(?=$)' "$template_file")"
latest_version=$(fetch_version "$pkgname")
echo "$pkgname ===> $current_version"
if [[ -z "$latest_version" ]]; then
log error "$pkgname ===> Failed to fetch the latest version from GitHub\n"
continue
elif [[ "$current_version" == "$latest_version" ]]; then
log success "${GREEN}$pkgname is up-to-date (Version: $current_version)\n"
else
log info "$pkgname: $current_version, but latest version is $latest_version\n"
fi
done
}
main
================================================
FILE: srcpkgs/aquamarine/template
================================================
# Template file for 'aquamarine'
pkgname=aquamarine
version=0.8.0
revision=2
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
cmake
hyprwayland-scanner
pkgconf
"
makedepends="
hwids
hyprutils
hyprwayland-scanner
libdisplay-info-devel
libinput-devel
libseat-devel
MesaLib-devel
pixman-devel
wayland-devel
wayland-protocols
"
short_desc="Aquamarine is a very light linux rendering backend library"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="LGPL-3.0-only"
homepage="https://hyprland.org/hyprlang/index.html"
changelog="https://github.com/hyprwm/aquamarine/releases"
distfiles="https://github.com/hyprwm/aquamarine/archive/refs/tags/v${version}.tar.gz"
checksum=1c3570de268fff008c6dd76472d783710b7f62c545f76091580c9edd13ad23d5
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/glaze/template
================================================
# Template file for 'glaze'
pkgname=glaze
version=4.4.3
revision=1
build_style=cmake
configure_args+=" -DBUILD_TESTING:BOOL=OFF"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -Dglaze_ENABLE_FUZZING:BOOL=OFF"
hostmakedepends="
cmake
git
pkgconf
"
short_desc="Extremely fast, in memory, JSON and interface library for modern C++"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="MIT"
homepage="https://github.com/stephenberry/glaze"
distfiles="https://github.com/stephenberry/glaze/archive/refs/tags/v${version}.tar.gz"
checksum=d0dd03f156f95860bf9c2957da0704ee0f7651e21089ff34e3d26fa0190e8684
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprcursor/template
================================================
# Template file for 'hyprcursor'
pkgname=hyprcursor
version=0.1.12
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
cairo-devel
pkgconf
"
makedepends="
hyprlang
librsvg-devel
libzip-devel
tomlplusplus
"
short_desc="Hyprland cursor format, library and utilities"
maintainer="zenobit <zenobit@disroot.org>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprcursor"
distfiles="https://github.com/hyprwm/hyprcursor/archive/refs/tags/v${version}.tar.gz"
checksum=3200a7a31e28884b9d046f8ec7b0aa67ede9ce0ab0d20193c2b61ee522d6b1f2
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprgraphics/template
================================================
# Template file for 'hyprgraphics'
pkgname=hyprgraphics
version=0.1.3
revision=2
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
cmake
pkgconf
"
makedepends="
cairo-devel
file-devel
hyprutils
libjpeg-turbo-devel
libjxl-devel
libspng
libwebp-devel
pixman-devel
"
short_desc="hyprland graphics resources and utilities"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprgraphics"
distfiles="https://github.com/hyprwm/hyprgraphics/archive/refs/tags/v${version}.tar.gz"
checksum=0e11457135a9e7160cf147d361fae3c5dc40035a4ebd894c5d409baa896f43cf
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hypridle/template
================================================
# Template file for 'hypridle'
pkgname=hypridle
version=0.1.6
revision=2
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DNO_SYSTEMD:BOOL=true"
hostmakedepends="
hyprwayland-scanner
pkgconf
wayland-devel
wayland-protocols
"
makedepends="
elogind-devel
hyprland-protocols
hyprlang
hyprwayland-scanner
sdbus-cpp
wayland-devel
wayland-protocols
"
short_desc="Hyprland's idle daemon"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hypridle"
changelog="https://github.com/hyprwm/${pkgname}/releases"
distfiles="https://github.com/hyprwm/hypridle/archive/refs/tags/v${version}.tar.gz"
checksum=ea4faf92e7ef303a538551e2b0ea67a557b2d711574993a5a3fea3b27667dc63
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprland/patches/musl-build-fix.patch
================================================
diff --git a/HyprlandSocket.cpp.e b/HyprlandSocket.cpp
index 4d86192..50b3558 100644
--- a/hyprpm/src/core/HyprlandSocket.cpp
+++ b/hyprpm/src/core/HyprlandSocket.cpp
@@ -5,6 +5,7 @@
#include <print>
#include <sys/un.h>
#include <unistd.h>
+#include <cstring>
static int getUID() {
const auto UID = getuid();
================================================
FILE: srcpkgs/hyprland/template
================================================
# Template file for 'hyprland'
pkgname=hyprland
version=0.49.0
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
configure_args+=" -DNO_SYSTEMD:BOOL=true"
othermakedepends="
cmake
cpio
gcc
glslang
hyprwayland-scanner
jq
make
meson
ninja
pkgconf
wayland-devel
"
hostmakedepends=$othermakedepends
makedepends="
aquamarine
cairo-devel
glaze
hwids
hyprcursor
hyprgraphics
hyprlang
hyprutils
libdisplay-info-devel
libdrm-devel
libgbm-devel
libglvnd-devel
libinput-devel
libliftoff-devel
libseat-devel
libxcb-devel
libXcursor-devel
libxkbcommon-devel
pango-devel
re2-devel
tomlplusplus
wayland-devel
wayland-protocols
xcb-util-errors-devel
xcb-util-renderutil-devel
xcb-util-wm-devel
xorg-server-xwayland
"
short_desc="Dynamic tiling Wayland compositor that doesn't sacrifice on its looks"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://hyprland.org/"
changelog="https://github.com/hyprwm/Hyprland/releases"
distfiles="https://github.com/hyprwm/Hyprland/releases/download/v${version}/source-v${version}.tar.gz"
checksum="fd96fb043cfeda09a1ab9a5eb69fee55562475c0c6a41f79dad2bcc652dc5730"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
configure_args+=" -DCMAKE_CXX_FLAGS=\"-lexecinfo\""
makedepends+=" libexecinfo-devel"
depends+=" libexecinfo"
fi
post_install() {
# license
vlicense LICENSE
# headers
vmkdir usr/include/hyprland
vmkdir usr/include/hyprland/protocols
vmkdir usr/share/pkgconfig
cmake --build ./build --config Release --target generate-protocol-headers
find src -type f \( -name '*.hpp' -o -name '*.h' -o -name '*.inc' \) -print0 | cpio --quiet -0dump ${DESTDIR}/usr/include/hyprland
install -Dm0644 protocols/*.h* ${DESTDIR}/usr/include/hyprland/protocols
vinstall build/hyprland.pc 644 usr/share/pkgconfig
}
hyprland-devel_package() {
depends="${sourcepkg}>=${version}_${revision} ${othermakedepends} ${makedepends}"
short_desc="Dynamic tiling Wayland compositor - development files"
pkg_install() {
vmove usr/include
vmove usr/share/pkgconfig
}
}
================================================
FILE: srcpkgs/hyprland-protocols/template
================================================
# Template file for 'hyprland-protocols'
pkgname=hyprland-protocols
version=0.6.4
revision=1
build_style=meson
hostmakedepends="
wayland-devel
"
makedepends="
wayland-devel
"
short_desc="Wayland protocol extensions for Hyprland"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprland-protocols"
distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
checksum=0d4f99abc21b04fc126dd754e306bb84cd334131d542ff2e0c172190c6570384
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprland-qt-support/template
================================================
# Template file for 'hyprland-qt-support'
pkgname=hyprland-qt-support
version=0.1.0
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
configure_args+=" -DINSTALL_QML_PREFIX=/lib/qt6/qml"
hostmakedepends="
cmake
pkgconf
"
makedepends="
hyprlang
"
qtmakedepends="
qt6-base-devel
qt6-declarative-devel
qt6-tools-devel
qt6-wayland-devel
"
hostmakedepends+=" ${qtmakedepends}"
makedepends+=" ${qtmakedepends}"
short_desc="QML style provider for Hypr* QT apps"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprland-qt-support"
distfiles="https://github.com/hyprwm/hyprland-qt-support/archive/refs/tags/v${version}.tar.gz"
checksum=cac1f980bd088b890097f3f999cfdf03e73ee94c53f3c92d0b3bc23baa9e7b2c
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprland-qtutils/template
================================================
# Template file for 'hyprland-qtutils'
pkgname=hyprland-qtutils
version=0.1.4
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
cmake
pkgconf
"
makedepends="
hyprutils
hyprland-qt-support
"
qtmakedepends="
qt6-base-devel
qt6-base-private-devel
qt6-declarative-private-devel
qt6-declarative-devel
qt6-tools-devel
qt6-wayland-devel
qt6-wayland-private-devel
"
hostmakedepends+=" ${qtmakedepends}"
makedepends+=" ${qtmakedepends}"
short_desc="Qt/QML utility apps for Hyprland"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprland-qtutils"
distfiles="https://github.com/hyprwm/hyprland-qtutils/archive/refs/tags/v${version}.tar.gz"
checksum="56a83f4625feeed86bbc5d744b91d2074330c5aa41adf6e32c023f06f9fb9d34"
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprlang/template
================================================
# Template file for 'hyprlang'
pkgname=hyprlang
version=0.6.3
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
cmake
pkgconf
"
makedepends="
hyprutils
"
short_desc="Official implementation library for the hypr config language"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="LGPL-3.0-only"
homepage="https://hyprland.org/hyprlang/index.html"
changelog="https://github.com/hyprwm/hyprlang/releases"
distfiles="https://github.com/hyprwm/hyprlang/archive/refs/tags/v${version}.tar.gz"
checksum=f5effe017edc7a0036c20c7ecbea4edc2bfdacbc0f791b283bd21ec202384251
================================================
FILE: srcpkgs/hyprlock/template
================================================
# Template file for 'hyprlock'
pkgname=hyprlock
version=0.8.2
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
hostmakedepends="
hyprwayland-scanner
pkgconf
wayland-devel
wayland-protocols
"
makedepends="
cairo-devel
elogind-devel
file-devel
hyprgraphics
hyprlang
hyprutils
hyprwayland-scanner
libdrm-devel
libjpeg-turbo-devel
libwebp-devel
libxkbcommon-devel
MesaLib-devel
pam-devel
pango-devel
sdbus-cpp
wayland-devel
wayland-protocols
"
short_desc="Hyprland's GPU-accelerated screen locking utility"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprlock"
changelog="https://github.com/hyprwm/${pkgname}/releases"
distfiles="https://github.com/hyprwm/${pkgname}/archive/refs/tags/v${version}.tar.gz"
checksum="14c47e71bdac9213909b11cdda16377dab12e27179d939df5ef2a0083a21e1e8"
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprpaper/template
================================================
# Template file for 'hyprpaper'
pkgname=hyprpaper
version=0.7.5
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
pkgconf
wayland-devel
hyprutils
hyprwayland-scanner
"
makedepends="
cairo-devel
file-devel
libjpeg-turbo-devel
libwebp-devel
hyprgraphics
hyprland-protocols
hyprlang
hyprwayland-scanner
pango-devel
wayland-devel
wayland-protocols
wlroots-devel
"
short_desc="Fast wallpaper utility for wlroots compositors with IPC controls"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprpaper"
distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
checksum="93efc089c7051e6727ac5eac402ebd254199e93ac3efd6fe7dd37a52ddc1cc33"
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprpolkitagent/template
================================================
# Template file for 'hyprpolkitagent'
pkgname=hyprpolkitagent
version=0.1.2
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
cmake
pkgconf
"
makedepends="
hyprland-qt-support
hyprlang
hyprutils
"
qtmakedepends="
polkit-qt6-devel
qt6-base-devel
qt6-declarative-devel
qt6-tools-devel
qt6-wayland-devel
"
hostmakedepends+=" ${qtmakedepends}"
makedepends+=" ${qtmakedepends}"
short_desc="Simple polkit authentication agent for Hyprland, written in QT/QML"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprpolkitagent"
distfiles="https://github.com/hyprwm/hyprpolkitagent/archive/refs/tags/v${version}.tar.gz"
checksum=2aa642a55aab000ac340c9209063a3068fda5b419ad83116f3c87532f06b0a79
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprsunset/template
================================================
# Template file for 'hyprsunset'
pkgname=hyprsunset
version=0.2.0
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
cmake
git
hyprwayland-scanner
pkgconf
"
makedepends="
hyprwayland-scanner
hyprland-protocols
hyprutils
wayland-devel
wayland-protocols
"
short_desc="An application to enable a blue-light filter on Hyprland"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprsunset"
distfiles="https://github.com/hyprwm/hyprsunset/archive/refs/tags/v${version}.tar.gz"
checksum=178d2b6c0042e005770eb31492fb7583c9fd25e37351a29f44bff56e87a52ad3
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprsysteminfo/template
================================================
# Template file for 'hyprsysteminfo'
pkgname=hyprsysteminfo
version=0.1.3
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
cmake
pkgconf
"
makedepends="
hyprland-qt-support
hyprutils
"
qtmakedepends="
qt6-base-devel
qt6-base-private-devel
qt6-declarative-devel
qt6-declarative-private-devel
qt6-tools-devel
qt6-wayland-devel
qt6-wayland-private-devel
"
hostmakedepends+=" ${qtmakedepends}"
makedepends+=" ${qtmakedepends}"
short_desc="A tiny qt6/qml application to display information about the running system"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprsysteminfo"
distfiles="https://github.com/hyprwm/hyprsysteminfo/archive/refs/tags/v${version}.tar.gz"
checksum=359298d926e0a9ec670ff5b5100c1d08392a85126ea1d8f89f723d634fd218ce
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprutils/template
================================================
# Template file for 'hyprutils'
pkgname=hyprutils
version=0.7.1
revision=1
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
hostmakedepends="
pkgconf
"
makedepends="
pixman-devel
"
short_desc="A small C++ library used across the Hypr* ecosystem"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprutils"
distfiles="https://github.com/hyprwm/hyprutils/archive/refs/tags/v${version}.tar.gz"
checksum=bcbf05252b392b8837eec9ba9855ff6ddab571f9795917c7139215ae4b2cf1bc
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/hyprwayland-scanner/template
================================================
# Template file for 'hyprwayland-scanner'
pkgname=hyprwayland-scanner
version=0.4.4
revision=1
build_style=cmake
hostmakedepends="
pkgconf
"
makedepends="
pugixml-devel
"
short_desc="Hyprland's implementation of wayland-scanner in/for C++"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/hyprwayland-scanner"
distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
checksum=ac73f626019f8d819ff79a5fca06ce4768ce8a3bded6f48c404445f3afaa25ac
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/libspng/template
================================================
# Template file for 'libspng'
pkgname=libspng
version=0.7.4
revision=1
build_style=meson
hostmakedepends="
cmake
pkgconf
"
makedepends="
zlib-devel
"
short_desc="Simple, modern libpng alternative"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-2-Clause"
homepage="https://libspng.org/"
distfiles="https://github.com/randy408/libspng/archive/refs/tags/v${version}.tar.gz"
checksum="47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487"
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/sdbus-cpp/template
================================================
# Template file for 'sdbus-cpp'
pkgname=sdbus-cpp
version=2.1.0
revision=1
build_style=cmake
hostmakedepends="
cmake
meson
ninja
pkgconf
git
m4
rsync
gperf
"
makedepends="
elogind
elogind-devel
libcap-devel
libelogind
libmount-devel
"
short_desc="High-level C++ D-Bus library to provide API in modern C++"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="LGPL-2.1-only"
homepage="https://github.com/Kistler-Group/sdbus-cpp"
changelog="https://github.com/Kistler-Group/${pkgname}/releases"
distfiles="https://github.com/Kistler-Group/${pkgname}/archive/refs/tags/v${version}.tar.gz"
checksum=6025e5dc6cddd532ff960d14e68ced5f42a1916b23a73fea6bcb437f06992eaf
post_install() {
vlicense COPYING
vlicense COPYING-LGPL-Exception
}
================================================
FILE: srcpkgs/tomlplusplus/template
================================================
# Template file for 'tomlplusplus'
pkgname=tomlplusplus
version=3.4.0
revision=1
build_style=meson
hostmakedepends="
cmake
pkgconf
"
short_desc="Header-only TOML config file parser and serializer for C++17"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="MIT"
homepage="https://marzer.github.io/tomlplusplus/"
distfiles="https://github.com/marzer/${pkgname}/archive/refs/tags/v${version}.tar.gz"
checksum=8517f65938a4faae9ccf8ebb36631a38c1cadfb5efa85d9a72e15b9e97d25155
post_install() {
vlicense LICENSE
}
================================================
FILE: srcpkgs/xdg-desktop-portal-hyprland/template
================================================
# Template file for 'xdg-desktop-portal-hyprland'
pkgname=xdg-desktop-portal-hyprland
version=1.3.9
revision=2
build_style=cmake
configure_args+=" --no-warn-unused-cli"
configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr"
configure_args+=" -DCMAKE_INSTALL_LIBEXECDIR:PATH=/usr/libexec"
hostmakedepends="
cmake
git
hyprwayland-scanner
pkgconf
qt6-base-devel
scdoc
wayland-devel
"
makedepends="
elogind-devel
hyprland-protocols
hyprlang
hyprutils
hyprwayland-scanner
libgbm-devel
libdrm-devel
pipewire-devel
qt6-base-devel
qt6-wayland-devel
sdbus-cpp
wayland-devel
wayland-protocols
"
depends="
xdg-desktop-portal
"
short_desc="Backend of xdg-desktop-portal for Hyprland"
maintainer="Makrennel <makrommel@protonmail.ch>"
license="BSD-3-Clause"
homepage="https://github.com/hyprwm/xdg-desktop-portal-hyprland"
distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
checksum=3f7d94fd408ed5e3a9b639d3dd8502e2169decc34f285e8552434da5fddf497e
post_install() {
vlicense LICENSE
}
gitextract_4ym5w6fi/
├── .github/
│ └── workflows/
│ ├── build-latest.yml
│ └── check.yml
├── COPYING
├── README.md
├── common/
│ └── shlibs
├── scripts/
│ ├── build-packages
│ ├── clone-and-prepare
│ ├── generate-build-order.kts
│ ├── index-packages
│ ├── push-repository
│ ├── set-environment
│ ├── sign-packages
│ └── version-checker
└── srcpkgs/
├── aquamarine/
│ └── template
├── glaze/
│ └── template
├── hyprcursor/
│ └── template
├── hyprgraphics/
│ └── template
├── hypridle/
│ └── template
├── hyprland/
│ ├── patches/
│ │ └── musl-build-fix.patch
│ └── template
├── hyprland-protocols/
│ └── template
├── hyprland-qt-support/
│ └── template
├── hyprland-qtutils/
│ └── template
├── hyprlang/
│ └── template
├── hyprlock/
│ └── template
├── hyprpaper/
│ └── template
├── hyprpolkitagent/
│ └── template
├── hyprsunset/
│ └── template
├── hyprsysteminfo/
│ └── template
├── hyprutils/
│ └── template
├── hyprwayland-scanner/
│ └── template
├── libspng/
│ └── template
├── sdbus-cpp/
│ └── template
├── tomlplusplus/
│ └── template
└── xdg-desktop-portal-hyprland/
└── template
Condensed preview — 35 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (45K chars).
[
{
"path": ".github/workflows/build-latest.yml",
"chars": 2005,
"preview": "name: \"Build Latest Packages\"\n\non:\n push:\n branches:\n - master\n workflow_dispatch:\n\njobs:\n build:\n name: B"
},
{
"path": ".github/workflows/check.yml",
"chars": 4889,
"preview": "name: Check build\n\non:\n pull_request:\n paths:\n - 'srcpkgs/**'\n push:\n branches:\n - 'ci-**'\n paths:\n"
},
{
"path": "COPYING",
"chars": 1357,
"preview": " Copyright (c) 2008-2020 Juan Romero Pardines and contributors\n Copyright (c) 2017-2023 The Void Linux team and contribu"
},
{
"path": "README.md",
"chars": 6114,
"preview": "## Hyprland for Void Linux\n\nThis repository contains template files and binaries for building or installing [Hyprland](h"
},
{
"path": "common/shlibs",
"chars": 296,
"preview": "libaquamarine.so.7 aquamarine-0.8.0_2\nlibhyprcursor.so.0 hyprcursor-0.1.12_1\nlibhyprlang.so.2 hyprlang-0.6.3_1\nlibhyprgr"
},
{
"path": "scripts/build-packages",
"chars": 365,
"preview": "#!/usr/bin/env sh\n\nBUILD=\"sudo -Eu builder /work/void-packages/xbps-src $BUILD_ARGS -j$(nproc) -s -H /work/hostdir pkg\"\n"
},
{
"path": "scripts/clone-and-prepare",
"chars": 479,
"preview": "#!/usr/bin/env sh\n\nCOMMAND=\"\n cd /work\n git clone --depth 1 https://github.com/void-linux/void-packages.git\n\n cd /wor"
},
{
"path": "scripts/generate-build-order.kts",
"chars": 2918,
"preview": "#!/usr/bin/env kotlin\n/**\n * I couldn't be bothered to figure out how to write this in POSIX or Bash\n * So I just wrote "
},
{
"path": "scripts/index-packages",
"chars": 659,
"preview": "#!/usr/bin/env sh\n\n# Sometimes xbps-src builds a bunch of other junk I don't want to be liable for distributing\n\nCOMMAND"
},
{
"path": "scripts/push-repository",
"chars": 798,
"preview": "#!/usr/bin/env sh\n\n# We'll blow the size of the repository up very quickly if we do not delete old iterations of the rep"
},
{
"path": "scripts/set-environment",
"chars": 374,
"preview": "#!/usr/bin/env sh\n\nCOMMAND=\"\n [ \\\"${TARGET_ARCH##*-musl}\\\" ] \\\n && echo \\\"RESULT_NAME=$TARGET_ARCH-glibc\\\" >> \\\"$GIT"
},
{
"path": "scripts/sign-packages",
"chars": 720,
"preview": "#!/usr/bin/env sh\n\n# We need to sign the packages with our private key so that they will be accepted by xbps remotely\n# "
},
{
"path": "scripts/version-checker",
"chars": 1710,
"preview": "#!/usr/bin/env bash\n\ntemplate_dir=\"../srcpkgs\"\n\nlog() {\n\tlocal RED='\\033[0;31m'\n\tlocal GREEN='\\033[0;32m'\n\tlocal YELLOW="
},
{
"path": "srcpkgs/aquamarine/template",
"chars": 936,
"preview": "# Template file for 'aquamarine'\npkgname=aquamarine\nversion=0.8.0\nrevision=2\nbuild_style=cmake\nconfigure_args+=\" --no-wa"
},
{
"path": "srcpkgs/glaze/template",
"chars": 672,
"preview": "# Template file for 'glaze'\npkgname=glaze\nversion=4.4.3\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" -DBUILD_TESTING:B"
},
{
"path": "srcpkgs/hyprcursor/template",
"chars": 731,
"preview": "# Template file for 'hyprcursor'\npkgname=hyprcursor\nversion=0.1.12\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-w"
},
{
"path": "srcpkgs/hyprgraphics/template",
"chars": 793,
"preview": "# Template file for 'hyprgraphics'\npkgname=hyprgraphics\nversion=0.1.3\nrevision=2\nbuild_style=cmake\nconfigure_args+=\" --n"
},
{
"path": "srcpkgs/hypridle/template",
"chars": 858,
"preview": "# Template file for 'hypridle'\npkgname=hypridle\nversion=0.1.6\nrevision=2\nbuild_style=cmake\nconfigure_args+=\" --no-warn-u"
},
{
"path": "srcpkgs/hyprland/patches/musl-build-fix.patch",
"chars": 322,
"preview": "diff --git a/HyprlandSocket.cpp.e b/HyprlandSocket.cpp\nindex 4d86192..50b3558 100644\n--- a/hyprpm/src/core/HyprlandSocke"
},
{
"path": "srcpkgs/hyprland/template",
"chars": 2246,
"preview": "# Template file for 'hyprland'\npkgname=hyprland\nversion=0.49.0\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-"
},
{
"path": "srcpkgs/hyprland-protocols/template",
"chars": 536,
"preview": "# Template file for 'hyprland-protocols'\npkgname=hyprland-protocols\nversion=0.6.4\nrevision=1\nbuild_style=meson\nhostmaked"
},
{
"path": "srcpkgs/hyprland-qt-support/template",
"chars": 930,
"preview": "# Template file for 'hyprland-qt-support'\npkgname=hyprland-qt-support\nversion=0.1.0\nrevision=1\nbuild_style=cmake\nconfigu"
},
{
"path": "srcpkgs/hyprland-qtutils/template",
"chars": 971,
"preview": "# Template file for 'hyprland-qtutils'\npkgname=hyprland-qtutils\nversion=0.1.4\nrevision=1\nbuild_style=cmake\nconfigure_arg"
},
{
"path": "srcpkgs/hyprlang/template",
"chars": 715,
"preview": "# Template file for 'hyprlang'\npkgname=hyprlang\nversion=0.6.3\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-u"
},
{
"path": "srcpkgs/hyprlock/template",
"chars": 996,
"preview": "# Template file for 'hyprlock'\npkgname=hyprlock\nversion=0.8.2\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-u"
},
{
"path": "srcpkgs/hyprpaper/template",
"chars": 908,
"preview": "# Template file for 'hyprpaper'\npkgname=hyprpaper\nversion=0.7.5\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn"
},
{
"path": "srcpkgs/hyprpolkitagent/template",
"chars": 944,
"preview": "# Template file for 'hyprpolkitagent'\npkgname=hyprpolkitagent\nversion=0.1.2\nrevision=1\nbuild_style=cmake\nconfigure_args+"
},
{
"path": "srcpkgs/hyprsunset/template",
"chars": 802,
"preview": "# Template file for 'hyprsunset'\npkgname=hyprsunset\nversion=0.2.0\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-wa"
},
{
"path": "srcpkgs/hyprsysteminfo/template",
"chars": 1003,
"preview": "# Template file for 'hyprsysteminfo'\npkgname=hyprsysteminfo\nversion=0.1.3\nrevision=1\nbuild_style=cmake\nconfigure_args+=\""
},
{
"path": "srcpkgs/hyprutils/template",
"chars": 682,
"preview": "# Template file for 'hyprutils'\npkgname=hyprutils\nversion=0.7.1\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn"
},
{
"path": "srcpkgs/hyprwayland-scanner/template",
"chars": 548,
"preview": "# Template file for 'hyprwayland-scanner'\npkgname=hyprwayland-scanner\nversion=0.4.4\nrevision=1\nbuild_style=cmake\nhostmak"
},
{
"path": "srcpkgs/libspng/template",
"chars": 507,
"preview": "# Template file for 'libspng'\npkgname=libspng\nversion=0.7.4\nrevision=1\nbuild_style=meson\nhostmakedepends=\"\n cmake\n pkg"
},
{
"path": "srcpkgs/sdbus-cpp/template",
"chars": 764,
"preview": "# Template file for 'sdbus-cpp'\npkgname=sdbus-cpp\nversion=2.1.0\nrevision=1\nbuild_style=cmake\nhostmakedepends=\"\n cmake\n "
},
{
"path": "srcpkgs/tomlplusplus/template",
"chars": 524,
"preview": "# Template file for 'tomlplusplus'\npkgname=tomlplusplus\nversion=3.4.0\nrevision=1\nbuild_style=meson\nhostmakedepends=\"\n c"
},
{
"path": "srcpkgs/xdg-desktop-portal-hyprland/template",
"chars": 1023,
"preview": "# Template file for 'xdg-desktop-portal-hyprland'\npkgname=xdg-desktop-portal-hyprland\nversion=1.3.9\nrevision=2\nbuild_sty"
}
]
About this extraction
This page contains the full source code of the Makrennel/hyprland-void GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 35 files (40.1 KB), approximately 13.3k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.