From 0500ce425abdcc58d37fad336785077345bbd233 Mon Sep 17 00:00:00 2001 From: Christian Schendel Date: Wed, 3 Sep 2025 21:05:02 +0200 Subject: [PATCH] Initial commit --- .SRCINFO | 28 ++++++++++++++++++++ .gitignore | 16 ++++++++++++ .nvchecker.toml | 4 +++ LICENSE | 12 +++++++++ LICENSES/0BSD.txt | 1 + PKGBUILD | 52 +++++++++++++++++++++++++++++++++++++ REUSE.toml | 23 +++++++++++++++++ chroot-build | 65 +++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 201 insertions(+) create mode 100644 .SRCINFO create mode 100644 .gitignore create mode 100644 .nvchecker.toml create mode 100644 LICENSE create mode 120000 LICENSES/0BSD.txt create mode 100644 PKGBUILD create mode 100644 REUSE.toml create mode 100755 chroot-build diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..018bca7 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,28 @@ +pkgbase = pandoc-bin + pkgdesc = Conversion between documentation formats + pkgver = 3.7.0.2 + pkgrel = 1 + url = https://pandoc.org + arch = x86_64 + arch = aarch64 + license = GPL-2.0-or-later + optdepends = pandoc-crossref: for numbering figures, equations, tables and cross-references to them with pandoc-crossref filter + optdepends = texlive-context: for pdf output using context engine + optdepends = groff: for pdf output using pdfroff engine + optdepends = python-weasyprint: for pdf output using weasyprint engine + optdepends = typst: for pdf output using typst engine + optdepends = tectonic: for pdf output using tectonic engine + optdepends = texlive-fontsrecommended: for pdf output using latex or xelatex engines + optdepends = texlive-latex: for pdf output using pdflatex engine + optdepends = texlive-xetex: for pdf output using xelatex engine + provides = pandoc=3.7.0.2 + provides = pandoc-cli=3.7.0.2 + conflicts = pandoc-cli + source = pandoc-bin-3.7.0.2.tar.gz::https://github.com/jgm/pandoc/archive/3.7.0.2.tar.gz + b2sums = c8ca6d76e8a2bd3947fbce35d0268134c4c06245ff2bf57f547c2868bd0b552add550cb48d7472e465732d57588d696b9bf0f8a632fd55d078fb2bad7eab7f08 + source_x86_64 = https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-linux-amd64.tar.gz + b2sums_x86_64 = e52e3f016e05e8786f07d06fde9bc39e0e3ae1b3e739403ef130aabbbdfa74fdad14dcefb919ef39eaf92e574a7caae9123badcee229b21a90c9096501554c33 + source_aarch64 = https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-linux-arm64.tar.gz + b2sums_aarch64 = 6c16c2e156e644ca785dc223885348ac0297e914a757a9ff7d1dbf3bdcace9b04c4ab34fda60a7db265860fd05614aedbc36e3cb65d409f846684adb3de41378 + +pkgname = pandoc-bin diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb708b8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Ignore everything +* + +# But not these files... +!.gitignore +!PKGBUILD +!.SRCINFO +!LICENSE +!chroot-build +!.nvchecker.toml +!/keys +!/keys/pgp +!/keys/pgp/*.asc +!/LICENSES +!/LICENSES/*.txt +!REUSE.toml diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 0000000..953de5a --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[pandoc-bin] +source = "git" +git = "https://github.com/jgm/pandoc.git" +prefix = "v" diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b87c5e4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,12 @@ +Copyright Arch Linux Contributors + +Permission to use, copy, modify, and/or distribute this software for +any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/LICENSES/0BSD.txt b/LICENSES/0BSD.txt new file mode 120000 index 0000000..ea5b606 --- /dev/null +++ b/LICENSES/0BSD.txt @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..ca0f846 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: Christian Schendel + +pkgname=pandoc-bin +pkgver=3.7.0.2 +pkgrel=1 +pkgdesc="Conversion between documentation formats" +url="https://pandoc.org" +license=( + GPL-2.0-or-later +) +arch=( + x86_64 + aarch64 +) +conflicts=( + "pandoc-cli" +) +provides=( + "pandoc=$pkgver" + "pandoc-cli=$pkgver" +) +optdepends=( + 'pandoc-crossref: for numbering figures, equations, tables and cross-references to them with pandoc-crossref filter' + 'texlive-context: for pdf output using context engine' + 'groff: for pdf output using pdfroff engine' + 'python-weasyprint: for pdf output using weasyprint engine' + 'typst: for pdf output using typst engine' + 'tectonic: for pdf output using tectonic engine' + 'texlive-fontsrecommended: for pdf output using latex or xelatex engines' + 'texlive-latex: for pdf output using pdflatex engine' + 'texlive-xetex: for pdf output using xelatex engine' +) + +# The binary release doesn't have the datafiles, so we need to yoink those out of the source tarball, too. +source=("$pkgname-$pkgver.tar.gz::https://github.com/jgm/pandoc/archive/${pkgver}.tar.gz") +source_x86_64=("https://github.com/jgm/pandoc/releases/download/${pkgver}/pandoc-${pkgver}-linux-amd64.tar.gz") +source_aarch64=("https://github.com/jgm/pandoc/releases/download/${pkgver}/pandoc-${pkgver}-linux-arm64.tar.gz") + +b2sums=('c8ca6d76e8a2bd3947fbce35d0268134c4c06245ff2bf57f547c2868bd0b552add550cb48d7472e465732d57588d696b9bf0f8a632fd55d078fb2bad7eab7f08') +b2sums_x86_64=('e52e3f016e05e8786f07d06fde9bc39e0e3ae1b3e739403ef130aabbbdfa74fdad14dcefb919ef39eaf92e574a7caae9123badcee229b21a90c9096501554c33') +b2sums_aarch64=('6c16c2e156e644ca785dc223885348ac0297e914a757a9ff7d1dbf3bdcace9b04c4ab34fda60a7db265860fd05614aedbc36e3cb65d409f846684adb3de41378') + +package() { + cd "${srcdir}/pandoc-${pkgver}" + + mkdir -p "${pkgdir}/usr/share/pandoc" + cp -R bin share "${pkgdir}/usr" + cp -R data citeproc "${pkgdir}/usr/share/pandoc/" + cp COPYRIGHT MANUAL.txt "${pkgdir}/usr/share/pandoc/" +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 0000000..e45b4ff --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,23 @@ +version = 1 + +[[annotations]] +path = [ + "PKGBUILD", + "README.md", + "keys/**", + ".SRCINFO", + ".nvchecker.toml", + ".gitignore", + "*.install", + "*.sysusers", + "*.tmpfiles", + "*.logrotate", + "*.pam", + "*.service", + "*.socket", + "*.timer", + "*.desktop", + "*.hook", +] +SPDX-FileCopyrightText = "Arch Linux contributors" +SPDX-License-Identifier = "0BSD" diff --git a/chroot-build b/chroot-build new file mode 100755 index 0000000..f69cac8 --- /dev/null +++ b/chroot-build @@ -0,0 +1,65 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: Christian Schendel +# SPDX-License-Identifier: 0BSD + +set -euo pipefail +use_tmpfs=true +CHROOT="/tmp/mkarchroot" + +check_available_ram() { + if [ "$(awk '/^MemAvailable:/ { print $2; }' /proc/meminfo)" -lt 50000 ]; then + use_tmpfs=false + fi +} + +create_chroot_directory() { + if [ $use_tmpfs ]; then + sudo mount --mkdir -t tmpfs -o defaults,size=20G tmpfs $CHROOT + else + sudo mkdir -p "$CHROOT" + fi +} + +create_chroot_environment() { + if [[ ! -d "$CHROOT/root" ]]; then + mkarchroot -M ~/.config/pacman/makepkg.conf "$CHROOT/root" base-devel + fi +} + +build_package(){ + arch-nspawn "$CHROOT/root" pacman -Syu + if makechrootpkg -c -r "$CHROOT" -- -Asf . ; then + makepkg --printsrcinfo >.SRCINFO + else + delete_chroot_environment && echo -e "\n\e[1;31m==> BUILD FAILED: \e[1;37m$CHROOT removed\e[0m " && exit 1 + fi +} + +sign_package(){ + PACKAGE="$(makepkg --packagelist)" + gpg --use-agent --output "$PACKAGE.sig" --detach-sign "$PACKAGE" +} + +delete_chroot_environment() { + if [ "$(stat -f --format=%T "$CHROOT")" == "btrfs" ]; then + { + sudo btrfs subvolume delete "$CHROOT/root/var/lib/portables" + sudo btrfs subvolume delete "$CHROOT/root/var/lib/machines" + sudo btrfs subvolume delete "$CHROOT/root" + sudo rm -Rf $CHROOT + } >>/dev/null 2>&1 + elif [ "$(stat -f --format=%T "$CHROOT")" == "tmpfs" ]; then + sudo umount -f $CHROOT + fi + sudo rm -Rf $CHROOT +} + +check_available_ram +create_chroot_directory +create_chroot_environment +build_package +sign_package +delete_chroot_environment + +# vim: set ts=4 sw=4 et: