[
  {
    "path": ".github/workflows/build-latest.yml",
    "content": "name: \"Build Latest Packages\"\n\non:\n  push:\n    branches:\n      - master\n  workflow_dispatch:\n\njobs:\n  build:\n    name: Build Hyprland\n    runs-on: ubuntu-latest\n\n    container:\n      image: ghcr.io/void-linux/void-glibc-full:20250227R1\n      options: --platform linux/amd64 --privileged\n\n    strategy:\n      matrix:\n        arch: [ x86_64, x86_64-musl, aarch64, aarch64-musl ]\n    env:\n      REPO_OWNER: \"${{ github.repository_owner }}\"\n      REPO_NAME: \"${{ github.event.repository.name }}\"\n      TARGET_ARCH: \"${{ matrix.arch }}\"\n      SCRIPT_DIR: \"/work/${{ github.event.repository.name }}/scripts\"\n      BUILD_ARGS: \"\"\n\n    steps:\n      - name: Prepare container and create a non-root user\n        run: |\n          mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/\n          sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf\n          xbps-install -Syu xbps && xbps-install -yu && xbps-install -y sudo bash grep curl git kotlin-bin\n          useradd -G xbuilder -M builder\n\n      - name: Clone hyprland-void repo\n        run: |\n          mkdir /work && cd /work\n          git clone https://github.com/$REPO_OWNER/$REPO_NAME.git\n          $SCRIPT_DIR/set-environment\n\n      - name: Automatically generate a build order\n        run: $SCRIPT_DIR/generate-build-order.kts\n\n      - name: Prepare void-packages\n        run: $SCRIPT_DIR/clone-and-prepare\n\n      - name: Build packages\n        run: $SCRIPT_DIR/build-packages\n\n      - name: Copy relevant packages for indexing and signing\n        run: |\n          export PEM_PAT=${{ secrets.PEM_PAT }}\n          export XBPS_PASSPHRASE=${{ secrets.PRIVATE_PEM_PASSPHRASE }}\n          export XBPS_TARGET_ARCH=${{ env.TARGET_ARCH }}\n          sudo -Eu builder $SCRIPT_DIR/index-packages\n          sudo -Eu builder $SCRIPT_DIR/sign-packages\n\n      - name: Push new packages to binary repository\n        run: |\n          export ACCESS_GIT=${{ secrets.ACCESS_GIT }}\n          sudo -Eu builder $SCRIPT_DIR/push-repository\n"
  },
  {
    "path": ".github/workflows/check.yml",
    "content": "name: Check build\n\non:\n  pull_request:\n    paths:\n      - 'srcpkgs/**'\n  push:\n    branches:\n      - 'ci-**'\n    paths:\n      - 'srcpkgs/**'\n\n  workflow_dispatch:\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}\n  cancel-in-progress: true\n\njobs:\n  # Lint changed templates.\n  xlint:\n    name: Lint templates\n    runs-on: ubuntu-latest\n\n    container:\n      image: 'ghcr.io/void-linux/void-buildroot-musl:20231230R1'\n      env:\n        PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'\n        LICENSE_LIST: common/travis/license.lst\n\n    steps:\n      - name: Prepare container\n        run: |\n          # switch to repo-ci mirror\n          mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/\n          sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf\n          # Sync and upgrade once, assume error comes from xbps update\n          xbps-install -Syu || xbps-install -yu xbps\n          # Upgrade again (in case there was a xbps update)\n          xbps-install -yu\n          # install tools needed for lints\n          xbps-install -y grep curl git\n      - name: Clone and checkout\n        uses: classabbyamp/treeless-checkout-action@v1\n      - name: Create hostrepo and prepare masterdir\n        run: |\n         ln -s \"$(pwd)\" /hostrepo &&\n         common/travis/set_mirror.sh &&\n         common/travis/prepare.sh &&\n         common/travis/fetch-xtools.sh\n      - run: common/travis/changed_templates.sh\n      - name: Run lints\n        run: |\n          rv=0\n          common/travis/xlint.sh || rv=1\n          common/travis/verify-update-check.sh || rv=1\n          exit $rv\n\n  # Build changed packages.\n  build:\n    name: Build packages\n    runs-on: ubuntu-latest\n    if: \"!contains(github.event.pull_request.title, '[ci skip]') && !contains(github.event.pull_request.body, '[ci skip]')\"\n\n    container:\n      image: ghcr.io/void-linux/void-buildroot-${{ matrix.config.libc }}:20231230R1\n      options: --platform ${{ matrix.config.platform }}\n      env:\n        PATH: '/usr/libexec/chroot-git:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'\n        ARCH: '${{ matrix.config.arch }}'\n        BOOTSTRAP: '${{ matrix.config.host }}'\n        TEST: '${{ matrix.config.test }}'\n        HOSTREPO: /hostrepo\n\n    strategy:\n      fail-fast: false\n      matrix:\n        config:\n          - { arch: x86_64,       host: x86_64,      libc: glibc, platform: linux/amd64, test: 1 }\n          - { arch: i686,         host: i686,        libc: glibc, platform: linux/386,   test: 1 }\n          - { arch: aarch64,      host: x86_64,      libc: glibc, platform: linux/amd64, test: 0 }\n          - { arch: armv7l,       host: x86_64,      libc: glibc, platform: linux/amd64, test: 0 }\n          - { arch: x86_64-musl,  host: x86_64-musl, libc: musl,  platform: linux/amd64, test: 1 }\n          - { arch: armv6l-musl,  host: x86_64-musl, libc: musl,  platform: linux/amd64, test: 0 }\n          - { arch: aarch64-musl, host: x86_64-musl, libc: musl,  platform: linux/amd64, test: 0 }\n\n    steps:\n      - name: Prepare container\n        run: |\n          # switch to repo-ci mirror\n          mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/\n          sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf\n          # Sync and upgrade once, assume error comes from xbps update\n          xbps-install -Syu || xbps-install -yu xbps\n          # Upgrade again (in case there was a xbps update)\n          xbps-install -yu\n\n      - name: Clone and checkout\n        uses: classabbyamp/treeless-checkout-action@v1\n      - name: Create hostrepo and prepare masterdir\n        run: |\n         ln -s \"$(pwd)\" /hostrepo &&\n         common/travis/set_mirror.sh &&\n         common/travis/prepare.sh &&\n         common/travis/fetch-xtools.sh\n      - run: common/travis/changed_templates.sh\n\n      - name: Build and check packages\n        run: |\n          (\n          here=\"$(pwd)\"\n          cd /\n          \"$here/common/travis/build.sh\" \"$BOOTSTRAP\" \"$ARCH\" \"$TEST\"\n          )\n\n      - name: Show files\n        run: |\n          (\n          here=\"$(pwd)\"\n          cd /\n          \"$here/common/travis/show_files.sh\" \"$BOOTSTRAP\" \"$ARCH\"\n          )\n\n      - name: Compare to previous\n        run: |\n          (\n          here=\"$(pwd)\"\n          cd /\n          \"$here/common/travis/xpkgdiff.sh\" \"$BOOTSTRAP\" \"$ARCH\"\n          )\n\n      - name: Check file conflicts\n        if: matrix.config.arch == 'x86_64' # the arch indexed in xlocate\n        run: |\n          if [ -s /tmp/templates ]; then\n              xlocate -S &&\n              common/scripts/lint-conflicts $HOME/hostdir/binpkgs\n          fi\n\n      - name: Verify repository state\n        run: |\n          (\n          here=\"$(pwd)\"\n          cd /\n          \"$here/common/travis/check-install.sh\" \"$BOOTSTRAP\" \"$ARCH\"\n          )"
  },
  {
    "path": "COPYING",
    "content": " Copyright (c) 2008-2020 Juan Romero Pardines and contributors\n Copyright (c) 2017-2023 The Void Linux team and contributors\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n 1. Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n 2. Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in the\n    documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "README.md",
    "content": "## Hyprland for Void Linux\n\nThis repository contains template files and binaries for building or installing [Hyprland](https://github.com/hyprwm/Hyprland) on Void Linux.\n\n### Installation\n\nThe 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.\n\nYou can add this repository to xbps's repositories by creating a file such as `/etc/xbps.d/hyprland-void.conf` with the following text:\n\n```\nrepository=https://raw.githubusercontent.com/Makrennel/hyprland-void/repository-x86_64-glibc\n```\n\nThis can be done with the following command:\n```\necho repository=https://raw.githubusercontent.com/Makrennel/hyprland-void/repository-x86_64-glibc | sudo tee /etc/xbps.d/hyprland-void.conf\n```\nThen you need to refresh your repositories and accept the repository's fingerprint:\n```\nsudo xbps-install -S\n```\n\nYou should now be able search through all hypr related packages provided by this repository, and install packages as usual:\n\n```\nxbps-query -Rs hypr\nsudo xbps-install -S hyprland xdg-desktop-portal-hyprland\n```\n\nCurrently this repository provides binary packages for:\n\n- x86_64-glibc\n- x86_64-musl\n- aarch64-glibc\n- aarch64-musl\n\nChange the end of the url in `/etc/xbps.d/hyprland-void.conf` as appropriate with the above options.\n\n### Running\n\nIn 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.\n\n### Extra\nThere are packages in this repository which may be of interest for:\n\n- hypridle\n- hyprlock\n- hyprpaper\n- xdg-desktop-portal-hyprland\n\n### Common Remarks\n#### \"Why is this so out of date\"?\n\nUpstream 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.\n\n#### \"Will this be merged into upstream void-packages eventually?\"\n\nUnless 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.\n\n### Manually Building\n\nYou 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.\n\n1) You may want to start by making a directory where you can keep the relevant repositories\n\n```\nmkdir ~/repos\ncd ~/repos\n```\n\n2) Set up a [void-packages](https://github.com/void-linux/void-packages) clone for building templates files\n\n```\ngit clone https://github.com/void-linux/void-packages\ncd void-packages\n./xbps-src binary-bootstrap\ncd ..\n```\n\n3) Clone this repository:\n\n```\ngit clone https://github.com/Makrennel/hyprland-void.git\ncd hyprland-void\n```\n\n4) Append shared libraries to the end of your void-packages shared libraries\n\n```\ncat common/shlibs >> ../void-packages/common/shlibs\n```\n\n5) Copy srcpkgs to your void-packages srcpkgs directory\n\n```\ncp -r --remove-destination srcpkgs/* ../void-packages/srcpkgs\n```\n\n6) Build and install packages\n\n```\ncd ../void-packages\n./xbps-src pkg hyprland\nsudo xbps-install -R hostdir/binpkgs hyprland\n```\n\n### Contributing and Forking\n\nAny 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`.\n\nPlease 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.\n\nIf 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.\n\nFor 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).\n"
  },
  {
    "path": "common/shlibs",
    "content": "libaquamarine.so.7 aquamarine-0.8.0_2\nlibhyprcursor.so.0 hyprcursor-0.1.12_1\nlibhyprlang.so.2 hyprlang-0.6.3_1\nlibhyprgraphics.so.0 hyprgraphics-0.1.3_2\nlibhyprutils.so.6 hyprutils-0.7.1_1\nlibsdbus-c++.so.2 sdbus-cpp-2.1.0_1\nlibspng.so.0 libspng-0.7.4_1\nlibtomlplusplus.so.3 tomlplusplus-3.4.0_1\n"
  },
  {
    "path": "scripts/build-packages",
    "content": "#!/usr/bin/env sh\n\nBUILD=\"sudo -Eu builder /work/void-packages/xbps-src $BUILD_ARGS -j$(nproc) -s -H /work/hostdir pkg\"\n\nCOMMAND=\"\n  while IFS= read -r package; do\n    echo \\\"::group::Building \\$package...\\\"\n    echo \\\"$BUILD \\$package\\\"\n    $BUILD \\$package\n    echo \\\"::endgroup::\\\"\n  done < /work/build-order\n\"\n\necho \"Running command: $COMMAND\"\nsh -c \"$COMMAND\"\n"
  },
  {
    "path": "scripts/clone-and-prepare",
    "content": "#!/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 /work/$REPO_NAME\n  cat common/shlibs >> /work/void-packages/common/shlibs\n  cp -r srcpkgs/* /work/void-packages/srcpkgs\n\n  chown -R builder:builder /work\n\n  cd /work/void-packages\n  sudo -Eu builder common/travis/set_mirror.sh &&\n  sudo -Eu builder common/travis/prepare.sh &&\n  common/travis/fetch-xtools.sh\n\"\n\necho \"Running command: $COMMAND\"\nsh -c \"$COMMAND\"\n\n"
  },
  {
    "path": "scripts/generate-build-order.kts",
    "content": "#!/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 it in an actually decent language\n */\n\nimport java.io.File\nimport java.nio.file.LinkOption\nimport kotlin.io.path.Path\nimport kotlin.io.path.forEachDirectoryEntry\nimport kotlin.io.path.isDirectory\nimport kotlin.io.path.name\n\nval repoName = System.getenv(\"REPO_NAME\") ?: \"hyprland-void\"\nval packages: MutableMap<String, HashSet<String>> = HashMap()\n\n// Get non-symlink directories in srcpkgs\nPath(\"/work/$repoName/srcpkgs\").forEachDirectoryEntry {\n\tif(it.isDirectory(LinkOption.NOFOLLOW_LINKS)) packages.put(it.name, HashSet())\n}\n\n// Populate package dependency lists\nfor(pkg in packages.keys) {\n\tval required = ArrayList<String>()\n\tvar toNextLine = false\n\n\t// For each line check if it contains the keyword \"depends\" or is following from one which does\n\tPath(\"/work/$repoName/srcpkgs/$pkg/template\").toFile().forEachLine {\n\t\t// If the previous line contained \"depends\" and an opening quote mark, but not a closing one\n\t\tif(toNextLine) {\n\t\t\tvar line = it\n\t\t\t// If this line contains a closing quote mark\n\t\t\tif(it.contains('\"')) {\n\t\t\t\ttoNextLine = false\n\t\t\t\tline = it.substringBefore('\"')\n\t\t\t}\n\t\t\t// Split line at any whitespace and add to the list\n\t\t\tline.split(\"\\\\s+\".toRegex()).forEach(required::add)\n\t\t}\n\n\t\t// If line contains \"depends\" as a keyword and an opening quote mark\n\t\tif(it.contains(\"depends\") && it.contains('\"')) {\n\t\t\tvar depends = it.substringAfter('\"')\n\t\t\tif(!depends.contains('\"')) toNextLine = true\n\t\t\telse depends = depends.substringBefore('\"')\n\t\t\tdepends.split(\"\\\\s+\".toRegex()).forEach(required::add)\n\t\t}\n\t}\n\n\t// Add dependency to this package's list if the dependency is also present in srcpkgs\n\trequired.forEach {\n\t\tif(packages.containsKey(it)) packages.get(pkg)!!.add(it)\n\t}\n}\n\n// Turn packages into an array so we can create a sorted array with indices\nval temp = packages.keys.toTypedArray()\nvar order = arrayOfNulls<String>(temp.size)\n\nfun Array<String?>.insert(position: Int, element: String): Array<String?> {\n\treturn sliceArray(0 until position) + element + sliceArray(position until size)\n}\n\nfor(i in temp.indices) {\n\t// Find reverse dependencies\n\tvar last = false;\n\tfor(j in order.indices) {\n\t\t// If array is empty, insert first element\n\t\tif(order[j].isNullOrBlank()) {\n\t\t\torder[j] = temp[i]\n\t\t\tbreak\n\t\t}\n\n\t\t// If the package has no dependencies, insert immediately\n\t\tif(packages.get(temp[i])!!.isEmpty()) {\n\t\t\torder = order.insert(0, temp[i])\n\t\t\tbreak\n\t\t}\n\n\t\t// If package at order[j] depends on package at temp[i], the package at temp[i] must be built first\n\t\tif(packages.get(order[j])!!.contains(temp[i])) {\n\t\t\torder = order.insert(j, temp[i])\n\t\t\tbreak\n\t\t}\n\t}\n}\n\n\nprintln(\"Build Order:\")\nfor(i in order.indices) {\n\tif(order[i] == null) continue\n\n\tprintln(\"${i + 1}: ${order[i]} - ${packages.get(order[i])}\")\n\tFile(\"/work/build-order\").appendText(\"${order[i]}\\n\")\n}"
  },
  {
    "path": "scripts/index-packages",
    "content": "#!/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=\"\n  mkdir /work/packages\n  \n  cp /work/hostdir/binpkgs/aquamarine*.xbps /work/packages\n  cp /work/hostdir/binpkgs/glaze*.xbps /work/packages\n  cp /work/hostdir/binpkgs/hypr*.xbps /work/packages\n  cp /work/hostdir/binpkgs/libspng*.xbps /work/packages\n  cp /work/hostdir/binpkgs/sdbus-cpp*.xbps /work/packages\n  cp /work/hostdir/binpkgs/tomlplusplus*.xbps /work/packages\n  cp /work/hostdir/binpkgs/xdg-desktop-portal-hyprland*.xbps /work/packages\n\n  cd /work/packages\n  xbps-rindex -a *\n\"\necho \"Running command: $COMMAND\"\nsh -c \"$COMMAND\"\n\n"
  },
  {
    "path": "scripts/push-repository",
    "content": "#!/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 repository\n\nCOMMAND=\"\n  cd /work/$REPO_NAME\n\n  # Config\n  git config user.name \\\"github-actions[bot]\\\"\n  git config user.email \\\"github-actions[bot]@users.noreply.github.com\\\"\n\n  # Delete old binary repository, create new one\n  git push https://$REPO_OWNER:$ACCESS_GIT@github.com/$REPO_OWNER/$REPO_NAME.git -d repository-$RESULT_NAME\n  git switch --orphan repository-$RESULT_NAME\n\n  # Populate and push new binary repository\n  cp /work/packages/* ./\n  git add .\n  git commit -m \\\"Upload latest packages to repository\\\"\n  git push -f https://$REPO_OWNER:$ACCESS_GIT@github.com/$REPO_OWNER/$REPO_NAME.git repository-$RESULT_NAME\n\"\n\necho \"Running command: $COMMAND\"\nsh -c \"$COMMAND\"\n\n"
  },
  {
    "path": "scripts/set-environment",
    "content": "#!/usr/bin/env sh\n\nCOMMAND=\"\n  [ \\\"${TARGET_ARCH##*-musl}\\\" ] \\\n    && echo \\\"RESULT_NAME=$TARGET_ARCH-glibc\\\" >> \\\"$GITHUB_ENV\\\" \\\n    || echo \\\"RESULT_NAME=$TARGET_ARCH\\\" >> \\\"$GITHUB_ENV\\\"\n\n  [ \\\"$TARGET_ARCH\\\" != \\\"x86_64\\\" ] \\\n    && echo \\\"BUILD_ARGS=$BUILD_ARGS -a $TARGET_ARCH\\\" >> \\\"$GITHUB_ENV\\\" \\\n    || true\n\"\n\necho \"Running command: $COMMAND\"\nsh -c \"$COMMAND\"\n\n"
  },
  {
    "path": "scripts/sign-packages",
    "content": "#!/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# See: https://docs.voidlinux.org/xbps/repositories/signing.html\n\nCOMMAND=\"\n  # Retrieve the signing key from the separate private repository\n  cd /work\n  curl \\\n    -H 'Authorization: token $PEM_PAT' \\\n    -H 'Accept: application/vnd.github.v3.raw' \\\n    -O -L https://api.github.com/repos/$REPO_OWNER/hyprland-void-private-pem/contents/private.pem\n\n  # Sign packages\n  xbps-rindex --privkey /work/private.pem --sign --signedby \\\"$REPO_NAME-github-action\\\" /work/packages\n  xbps-rindex --privkey /work/private.pem --sign-pkg /work/packages/*.xbps\n\"\n\necho \"Running command: $COMMAND\"\nsh -c \"$COMMAND\"\n\n"
  },
  {
    "path": "scripts/version-checker",
    "content": "#!/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='\\033[0;33m'\n\tlocal BLUE='\\033[0;34m'\n\tlocal NC='\\033[0m'\n\n\tcase \"$1\" in\n\tsuccess)\n\t\techo -e \"${GREEN}$2${NC}\"\n\t\t;;\n\tinfo)\n\t\techo -e \"${BLUE}$2${NC}\"\n\t\t;;\n\twarning)\n\t\techo -e \"${YELLOW}$2${NC}\"\n\t\t;;\n\terror)\n\t\techo -e \"${RED}$2${NC}\"\n\t\t;;\n\t*)\n\t\techo \"$2\"\n\t\t;;\n\tesac\n}\n\nfetch_version() {\n\trepo=$1\n\t# latest_tag=$(curl -s \"https://api.github.com/repos/hyprwm/$repo/releases/latest\" | grep -Po '\"tag_name\": \"\\K.*?(?=\")')\n\tlatest_tag=$(curl -s \"https://github.com/hyprwm/$repo/releases\" | grep -Po 'href=\"[^\"]*/releases/tag/\\K[^\"]+' | head -n 1)\n\n\techo $latest_tag\n}\n\nmain() {\n\tcommand -v curl >/dev/null || {\n\t\tlog error \"Curl not found, please install. Exiting...\" >&2\n\n\t\texit 1\n\t}\n\n\tfor package_dir in \"$template_dir\"/aquamarine/ \"$template_dir\"/hypr*/ \"$template_dir\"/xdg-desktop-portal-hyprland/; do\n\t\tpkgname=$(basename \"$package_dir\")\n\n\t\tif [[ \"$pkgname\" == \"hyprland-devel\" ]]; then\n\t\t\tcontinue\n\t\tfi\n\n\t\ttemplate_file=\"${package_dir}template\"\n\n\t\tif [[ ! -f \"$template_file\" ]]; then\n\t\t\techo \"Template file not found for $pkgname\"\n\n\t\t\tcontinue\n\t\tfi\n\n\t\tcurrent_version=\"v$(grep -Po '^version=\\K[0-9.]+(?=$)' \"$template_file\")\"\n\n\t\tlatest_version=$(fetch_version \"$pkgname\")\n\n\t\techo \"$pkgname ===> $current_version\"\n\n\t\tif [[ -z \"$latest_version\" ]]; then\n\t\t\tlog error \"$pkgname ===> Failed to fetch the latest version from GitHub\\n\"\n\n\t\t\tcontinue\n\t\telif [[ \"$current_version\" == \"$latest_version\" ]]; then\n\t\t\tlog success \"${GREEN}$pkgname is up-to-date (Version: $current_version)\\n\"\n\t\telse\n\t\t\tlog info \"$pkgname: $current_version, but latest version is $latest_version\\n\"\n\t\tfi\n\tdone\n}\n\nmain\n\n"
  },
  {
    "path": "srcpkgs/aquamarine/template",
    "content": "# Template file for 'aquamarine'\npkgname=aquamarine\nversion=0.8.0\nrevision=2\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  cmake\n  hyprwayland-scanner\n  pkgconf\n\"\nmakedepends=\"\n  hwids\n  hyprutils\n  hyprwayland-scanner\n  libdisplay-info-devel\n  libinput-devel\n  libseat-devel\n  MesaLib-devel\n  pixman-devel\n  wayland-devel\n  wayland-protocols\n\"\nshort_desc=\"Aquamarine is a very light linux rendering backend library\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"LGPL-3.0-only\"\nhomepage=\"https://hyprland.org/hyprlang/index.html\"\nchangelog=\"https://github.com/hyprwm/aquamarine/releases\"\ndistfiles=\"https://github.com/hyprwm/aquamarine/archive/refs/tags/v${version}.tar.gz\"\nchecksum=1c3570de268fff008c6dd76472d783710b7f62c545f76091580c9edd13ad23d5\n\npost_install() {\n  vlicense LICENSE\n}\n"
  },
  {
    "path": "srcpkgs/glaze/template",
    "content": "# Template file for 'glaze'\npkgname=glaze\nversion=4.4.3\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" -DBUILD_TESTING:BOOL=OFF\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -Dglaze_ENABLE_FUZZING:BOOL=OFF\"\nhostmakedepends=\"\n  cmake\n  git\n  pkgconf\n\"\nshort_desc=\"Extremely fast, in memory, JSON and interface library for modern C++\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"MIT\"\nhomepage=\"https://github.com/stephenberry/glaze\"\ndistfiles=\"https://github.com/stephenberry/glaze/archive/refs/tags/v${version}.tar.gz\"\nchecksum=d0dd03f156f95860bf9c2957da0704ee0f7651e21089ff34e3d26fa0190e8684\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/hyprcursor/template",
    "content": "# Template file for 'hyprcursor'\npkgname=hyprcursor\nversion=0.1.12\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  cairo-devel\n  pkgconf\n\"\nmakedepends=\"\n  hyprlang\n  librsvg-devel\n  libzip-devel\n  tomlplusplus\n\"\nshort_desc=\"Hyprland cursor format, library and utilities\"\nmaintainer=\"zenobit <zenobit@disroot.org>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprcursor\"\ndistfiles=\"https://github.com/hyprwm/hyprcursor/archive/refs/tags/v${version}.tar.gz\"\nchecksum=3200a7a31e28884b9d046f8ec7b0aa67ede9ce0ab0d20193c2b61ee522d6b1f2\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/hyprgraphics/template",
    "content": "# Template file for 'hyprgraphics'\npkgname=hyprgraphics\nversion=0.1.3\nrevision=2\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  cmake\n  pkgconf\n\"\nmakedepends=\"\n  cairo-devel\n  file-devel\n  hyprutils\n  libjpeg-turbo-devel\n  libjxl-devel\n  libspng\n  libwebp-devel\n  pixman-devel\n\"\nshort_desc=\"hyprland graphics resources and utilities\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprgraphics\"\ndistfiles=\"https://github.com/hyprwm/hyprgraphics/archive/refs/tags/v${version}.tar.gz\"\nchecksum=0e11457135a9e7160cf147d361fae3c5dc40035a4ebd894c5d409baa896f43cf\n\npost_install() {\n  vlicense LICENSE\n}\n"
  },
  {
    "path": "srcpkgs/hypridle/template",
    "content": "# Template file for 'hypridle'\npkgname=hypridle\nversion=0.1.6\nrevision=2\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DNO_SYSTEMD:BOOL=true\"\nhostmakedepends=\"\n  hyprwayland-scanner\n  pkgconf\n  wayland-devel\n  wayland-protocols\n\"\nmakedepends=\"\n  elogind-devel\n  hyprland-protocols\n  hyprlang\n  hyprwayland-scanner\n  sdbus-cpp\n  wayland-devel\n  wayland-protocols\n\"\nshort_desc=\"Hyprland's idle daemon\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hypridle\"\nchangelog=\"https://github.com/hyprwm/${pkgname}/releases\"\ndistfiles=\"https://github.com/hyprwm/hypridle/archive/refs/tags/v${version}.tar.gz\"\nchecksum=ea4faf92e7ef303a538551e2b0ea67a557b2d711574993a5a3fea3b27667dc63\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/hyprland/patches/musl-build-fix.patch",
    "content": "diff --git a/HyprlandSocket.cpp.e b/HyprlandSocket.cpp\nindex 4d86192..50b3558 100644\n--- a/hyprpm/src/core/HyprlandSocket.cpp\n+++ b/hyprpm/src/core/HyprlandSocket.cpp\n@@ -5,6 +5,7 @@\n #include <print>\n #include <sys/un.h>\n #include <unistd.h>\n+#include <cstring>\n \n static int getUID() {\n     const auto UID   = getuid();\n"
  },
  {
    "path": "srcpkgs/hyprland/template",
    "content": "# Template file for 'hyprland'\npkgname=hyprland\nversion=0.49.0\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nconfigure_args+=\" -DNO_SYSTEMD:BOOL=true\"\nothermakedepends=\"\n  cmake\n  cpio\n  gcc\n  glslang\n  hyprwayland-scanner\n  jq\n  make\n  meson\n  ninja\n  pkgconf\n  wayland-devel\n\"\nhostmakedepends=$othermakedepends\nmakedepends=\"\n  aquamarine\n  cairo-devel\n  glaze\n  hwids\n  hyprcursor\n  hyprgraphics\n  hyprlang\n  hyprutils\n  libdisplay-info-devel\n  libdrm-devel\n  libgbm-devel\n  libglvnd-devel\n  libinput-devel\n  libliftoff-devel\n  libseat-devel\n  libxcb-devel\n  libXcursor-devel\n  libxkbcommon-devel\n  pango-devel\n  re2-devel\n  tomlplusplus\n  wayland-devel\n  wayland-protocols\n  xcb-util-errors-devel\n  xcb-util-renderutil-devel\n  xcb-util-wm-devel\n  xorg-server-xwayland\n\"\nshort_desc=\"Dynamic tiling Wayland compositor that doesn't sacrifice on its looks\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://hyprland.org/\"\nchangelog=\"https://github.com/hyprwm/Hyprland/releases\"\ndistfiles=\"https://github.com/hyprwm/Hyprland/releases/download/v${version}/source-v${version}.tar.gz\"\nchecksum=\"fd96fb043cfeda09a1ab9a5eb69fee55562475c0c6a41f79dad2bcc652dc5730\"\n\nif [ \"$XBPS_TARGET_LIBC\" = \"musl\" ]; then\n  configure_args+=\" -DCMAKE_CXX_FLAGS=\\\"-lexecinfo\\\"\"\n  makedepends+=\" libexecinfo-devel\"\n  depends+=\" libexecinfo\"\nfi\n\npost_install() {\n  # license\n  vlicense LICENSE\n\n  # headers\n  vmkdir usr/include/hyprland\n  vmkdir usr/include/hyprland/protocols\n  vmkdir usr/share/pkgconfig\n\n  cmake --build ./build --config Release --target generate-protocol-headers\n\n  find src -type f \\( -name '*.hpp' -o -name '*.h' -o -name '*.inc' \\) -print0 | cpio --quiet -0dump ${DESTDIR}/usr/include/hyprland\n  install -Dm0644 protocols/*.h* ${DESTDIR}/usr/include/hyprland/protocols\n  vinstall build/hyprland.pc 644 usr/share/pkgconfig\n}\n\nhyprland-devel_package() {\n  depends=\"${sourcepkg}>=${version}_${revision} ${othermakedepends} ${makedepends}\"\n  short_desc=\"Dynamic tiling Wayland compositor - development files\"\n  pkg_install() {\n    vmove usr/include\n    vmove usr/share/pkgconfig\n  }\n}\n\n"
  },
  {
    "path": "srcpkgs/hyprland-protocols/template",
    "content": "# Template file for 'hyprland-protocols'\npkgname=hyprland-protocols\nversion=0.6.4\nrevision=1\nbuild_style=meson\nhostmakedepends=\"\n  wayland-devel\n\"\nmakedepends=\"\n  wayland-devel\n\"\nshort_desc=\"Wayland protocol extensions for Hyprland\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprland-protocols\"\ndistfiles=\"${homepage}/archive/refs/tags/v${version}.tar.gz\"\nchecksum=0d4f99abc21b04fc126dd754e306bb84cd334131d542ff2e0c172190c6570384\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/hyprland-qt-support/template",
    "content": "# Template file for 'hyprland-qt-support'\npkgname=hyprland-qt-support\nversion=0.1.0\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nconfigure_args+=\" -DINSTALL_QML_PREFIX=/lib/qt6/qml\"\nhostmakedepends=\"\n  cmake\n  pkgconf\n\"\nmakedepends=\"\n  hyprlang\n\"\nqtmakedepends=\"\n  qt6-base-devel\n  qt6-declarative-devel\n  qt6-tools-devel\n  qt6-wayland-devel\n\"\nhostmakedepends+=\" ${qtmakedepends}\"\nmakedepends+=\" ${qtmakedepends}\"\nshort_desc=\"QML style provider for Hypr* QT apps\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprland-qt-support\"\ndistfiles=\"https://github.com/hyprwm/hyprland-qt-support/archive/refs/tags/v${version}.tar.gz\"\nchecksum=cac1f980bd088b890097f3f999cfdf03e73ee94c53f3c92d0b3bc23baa9e7b2c\n\npost_install() {\n  vlicense LICENSE\n}\n"
  },
  {
    "path": "srcpkgs/hyprland-qtutils/template",
    "content": "# Template file for 'hyprland-qtutils'\npkgname=hyprland-qtutils\nversion=0.1.4\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  cmake\n  pkgconf\n\"\nmakedepends=\"\n  hyprutils\n  hyprland-qt-support\n\"\nqtmakedepends=\"\n  qt6-base-devel\n  qt6-base-private-devel\n  qt6-declarative-private-devel\n  qt6-declarative-devel\n  qt6-tools-devel\n  qt6-wayland-devel\n  qt6-wayland-private-devel\n\"\nhostmakedepends+=\" ${qtmakedepends}\"\nmakedepends+=\" ${qtmakedepends}\"\nshort_desc=\"Qt/QML utility apps for Hyprland\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprland-qtutils\"\ndistfiles=\"https://github.com/hyprwm/hyprland-qtutils/archive/refs/tags/v${version}.tar.gz\"\nchecksum=\"56a83f4625feeed86bbc5d744b91d2074330c5aa41adf6e32c023f06f9fb9d34\"\n\npost_install() {\n  vlicense LICENSE\n}\n"
  },
  {
    "path": "srcpkgs/hyprlang/template",
    "content": "# Template file for 'hyprlang'\npkgname=hyprlang\nversion=0.6.3\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  cmake\n  pkgconf\n\"\nmakedepends=\"\n  hyprutils\n\"\nshort_desc=\"Official implementation library for the hypr config language\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"LGPL-3.0-only\"\nhomepage=\"https://hyprland.org/hyprlang/index.html\"\nchangelog=\"https://github.com/hyprwm/hyprlang/releases\"\ndistfiles=\"https://github.com/hyprwm/hyprlang/archive/refs/tags/v${version}.tar.gz\"\nchecksum=f5effe017edc7a0036c20c7ecbea4edc2bfdacbc0f791b283bd21ec202384251\n"
  },
  {
    "path": "srcpkgs/hyprlock/template",
    "content": "# Template file for 'hyprlock'\npkgname=hyprlock\nversion=0.8.2\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nhostmakedepends=\"\n  hyprwayland-scanner\n  pkgconf\n  wayland-devel\n  wayland-protocols\n\"\nmakedepends=\"\n  cairo-devel\n  elogind-devel\n  file-devel\n  hyprgraphics\n  hyprlang\n  hyprutils\n  hyprwayland-scanner\n  libdrm-devel\n  libjpeg-turbo-devel\n  libwebp-devel\n  libxkbcommon-devel\n  MesaLib-devel\n  pam-devel\n  pango-devel\n  sdbus-cpp\n  wayland-devel\n  wayland-protocols\n\"\nshort_desc=\"Hyprland's GPU-accelerated screen locking utility\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprlock\"\nchangelog=\"https://github.com/hyprwm/${pkgname}/releases\"\ndistfiles=\"https://github.com/hyprwm/${pkgname}/archive/refs/tags/v${version}.tar.gz\"\nchecksum=\"14c47e71bdac9213909b11cdda16377dab12e27179d939df5ef2a0083a21e1e8\"\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/hyprpaper/template",
    "content": "# Template file for 'hyprpaper'\npkgname=hyprpaper\nversion=0.7.5\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  pkgconf\n  wayland-devel\n  hyprutils\n  hyprwayland-scanner\n\"\nmakedepends=\"\n  cairo-devel\n  file-devel\n  libjpeg-turbo-devel\n  libwebp-devel\n  hyprgraphics\n  hyprland-protocols\n  hyprlang\n  hyprwayland-scanner\n  pango-devel\n  wayland-devel\n  wayland-protocols\n  wlroots-devel\n\"\nshort_desc=\"Fast wallpaper utility for wlroots compositors with IPC controls\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprpaper\"\ndistfiles=\"${homepage}/archive/refs/tags/v${version}.tar.gz\"\nchecksum=\"93efc089c7051e6727ac5eac402ebd254199e93ac3efd6fe7dd37a52ddc1cc33\"\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/hyprpolkitagent/template",
    "content": "# Template file for 'hyprpolkitagent'\npkgname=hyprpolkitagent\nversion=0.1.2\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  cmake\n  pkgconf\n\"\nmakedepends=\"\n  hyprland-qt-support\n  hyprlang\n  hyprutils\n\"\nqtmakedepends=\"\n  polkit-qt6-devel\n  qt6-base-devel\n  qt6-declarative-devel\n  qt6-tools-devel\n  qt6-wayland-devel\n\"\nhostmakedepends+=\" ${qtmakedepends}\"\nmakedepends+=\" ${qtmakedepends}\"\nshort_desc=\"Simple polkit authentication agent for Hyprland, written in QT/QML\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprpolkitagent\"\ndistfiles=\"https://github.com/hyprwm/hyprpolkitagent/archive/refs/tags/v${version}.tar.gz\"\nchecksum=2aa642a55aab000ac340c9209063a3068fda5b419ad83116f3c87532f06b0a79\n\npost_install() {\n  vlicense LICENSE\n}\n"
  },
  {
    "path": "srcpkgs/hyprsunset/template",
    "content": "# Template file for 'hyprsunset'\npkgname=hyprsunset\nversion=0.2.0\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  cmake\n  git\n  hyprwayland-scanner\n  pkgconf\n\"\nmakedepends=\"\n  hyprwayland-scanner\n  hyprland-protocols\n  hyprutils\n  wayland-devel\n  wayland-protocols\n\"\nshort_desc=\"An application to enable a blue-light filter on Hyprland\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprsunset\"\ndistfiles=\"https://github.com/hyprwm/hyprsunset/archive/refs/tags/v${version}.tar.gz\"\nchecksum=178d2b6c0042e005770eb31492fb7583c9fd25e37351a29f44bff56e87a52ad3\n\npost_install() {\n  vlicense LICENSE\n}\n"
  },
  {
    "path": "srcpkgs/hyprsysteminfo/template",
    "content": "# Template file for 'hyprsysteminfo'\npkgname=hyprsysteminfo\nversion=0.1.3\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  cmake\n  pkgconf\n\"\nmakedepends=\"\n  hyprland-qt-support\n  hyprutils\n\"\nqtmakedepends=\"\n  qt6-base-devel\n  qt6-base-private-devel\n  qt6-declarative-devel\n  qt6-declarative-private-devel\n  qt6-tools-devel\n  qt6-wayland-devel\n  qt6-wayland-private-devel\n\"\nhostmakedepends+=\" ${qtmakedepends}\"\nmakedepends+=\" ${qtmakedepends}\"\nshort_desc=\"A tiny qt6/qml application to display information about the running system\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprsysteminfo\"\ndistfiles=\"https://github.com/hyprwm/hyprsysteminfo/archive/refs/tags/v${version}.tar.gz\"\nchecksum=359298d926e0a9ec670ff5b5100c1d08392a85126ea1d8f89f723d634fd218ce\n\npost_install() {\n  vlicense LICENSE\n}\n"
  },
  {
    "path": "srcpkgs/hyprutils/template",
    "content": "# Template file for 'hyprutils'\npkgname=hyprutils\nversion=0.7.1\nrevision=1\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_BUILD_TYPE:STRING=Release\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nhostmakedepends=\"\n  pkgconf\n\"\nmakedepends=\"\n  pixman-devel\n\"\nshort_desc=\"A small C++ library used across the Hypr* ecosystem\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprutils\"\ndistfiles=\"https://github.com/hyprwm/hyprutils/archive/refs/tags/v${version}.tar.gz\"\nchecksum=bcbf05252b392b8837eec9ba9855ff6ddab571f9795917c7139215ae4b2cf1bc\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/hyprwayland-scanner/template",
    "content": "# Template file for 'hyprwayland-scanner'\npkgname=hyprwayland-scanner\nversion=0.4.4\nrevision=1\nbuild_style=cmake\nhostmakedepends=\"\n  pkgconf\n\"\nmakedepends=\"\n  pugixml-devel\n\"\nshort_desc=\"Hyprland's implementation of wayland-scanner in/for C++\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/hyprwayland-scanner\"\ndistfiles=\"${homepage}/archive/refs/tags/v${version}.tar.gz\"\nchecksum=ac73f626019f8d819ff79a5fca06ce4768ce8a3bded6f48c404445f3afaa25ac\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/libspng/template",
    "content": "# Template file for 'libspng'\npkgname=libspng\nversion=0.7.4\nrevision=1\nbuild_style=meson\nhostmakedepends=\"\n  cmake\n  pkgconf\n\"\nmakedepends=\"\n  zlib-devel\n\"\nshort_desc=\"Simple, modern libpng alternative\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-2-Clause\"\nhomepage=\"https://libspng.org/\"\ndistfiles=\"https://github.com/randy408/libspng/archive/refs/tags/v${version}.tar.gz\"\nchecksum=\"47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487\"\n\npost_install() {\n  vlicense LICENSE\n}\n"
  },
  {
    "path": "srcpkgs/sdbus-cpp/template",
    "content": "# Template file for 'sdbus-cpp'\npkgname=sdbus-cpp\nversion=2.1.0\nrevision=1\nbuild_style=cmake\nhostmakedepends=\"\n  cmake\n  meson\n  ninja\n  pkgconf\n  git\n  m4\n  rsync\n  gperf\n\"\nmakedepends=\"\n  elogind\n  elogind-devel\n  libcap-devel\n  libelogind\n  libmount-devel\n\"\nshort_desc=\"High-level C++ D-Bus library to provide API in modern C++\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"LGPL-2.1-only\"\nhomepage=\"https://github.com/Kistler-Group/sdbus-cpp\"\nchangelog=\"https://github.com/Kistler-Group/${pkgname}/releases\"\ndistfiles=\"https://github.com/Kistler-Group/${pkgname}/archive/refs/tags/v${version}.tar.gz\"\nchecksum=6025e5dc6cddd532ff960d14e68ced5f42a1916b23a73fea6bcb437f06992eaf\n\npost_install() {\n  vlicense COPYING\n  vlicense COPYING-LGPL-Exception\n}\n"
  },
  {
    "path": "srcpkgs/tomlplusplus/template",
    "content": "# Template file for 'tomlplusplus'\npkgname=tomlplusplus\nversion=3.4.0\nrevision=1\nbuild_style=meson\nhostmakedepends=\"\n  cmake\n  pkgconf\n\"\nshort_desc=\"Header-only TOML config file parser and serializer for C++17\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"MIT\"\nhomepage=\"https://marzer.github.io/tomlplusplus/\"\ndistfiles=\"https://github.com/marzer/${pkgname}/archive/refs/tags/v${version}.tar.gz\"\nchecksum=8517f65938a4faae9ccf8ebb36631a38c1cadfb5efa85d9a72e15b9e97d25155\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  },
  {
    "path": "srcpkgs/xdg-desktop-portal-hyprland/template",
    "content": "# Template file for 'xdg-desktop-portal-hyprland'\npkgname=xdg-desktop-portal-hyprland\nversion=1.3.9\nrevision=2\nbuild_style=cmake\nconfigure_args+=\" --no-warn-unused-cli\"\nconfigure_args+=\" -DCMAKE_INSTALL_PREFIX:PATH=/usr\"\nconfigure_args+=\" -DCMAKE_INSTALL_LIBEXECDIR:PATH=/usr/libexec\"\nhostmakedepends=\"\n  cmake\n  git\n  hyprwayland-scanner\n  pkgconf\n  qt6-base-devel\n  scdoc\n  wayland-devel\n\"\nmakedepends=\"\n  elogind-devel\n  hyprland-protocols\n  hyprlang\n  hyprutils\n  hyprwayland-scanner\n  libgbm-devel\n  libdrm-devel\n  pipewire-devel\n  qt6-base-devel\n  qt6-wayland-devel\n  sdbus-cpp\n  wayland-devel\n  wayland-protocols\n\"\ndepends=\"\n  xdg-desktop-portal\n\"\nshort_desc=\"Backend of xdg-desktop-portal for Hyprland\"\nmaintainer=\"Makrennel <makrommel@protonmail.ch>\"\nlicense=\"BSD-3-Clause\"\nhomepage=\"https://github.com/hyprwm/xdg-desktop-portal-hyprland\"\ndistfiles=\"${homepage}/archive/refs/tags/v${version}.tar.gz\"\nchecksum=3f7d94fd408ed5e3a9b639d3dd8502e2169decc34f285e8552434da5fddf497e\n\npost_install() {\n  vlicense LICENSE\n}\n\n"
  }
]