mirror of
https://github.com/arcan1s/ahriman.git
synced 2026-10-25 12:55:00 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4446c950ec | ||
|
|
8d569e6075 | ||
|
|
c375236327 | ||
|
|
ddbb4b06ff | ||
|
|
2d66b67123 | ||
|
|
27cfcd07eb |
No files matched your search
@@ -1,4 +1,4 @@
|
||||
.TH AHRIMAN "1" "2026\-10\-25" "ahriman 2.23.2" "ArcH linux ReposItory MANager"
|
||||
.TH AHRIMAN "1" "2026\-10\-25" "ahriman 2.23.5" "ArcH linux ReposItory MANager"
|
||||
.SH NAME
|
||||
ahriman \- ArcH linux ReposItory MANager
|
||||
.SH SYNOPSIS
|
||||
|
||||
@@ -17,4 +17,4 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
__version__ = "2.23.2"
|
||||
__version__ = "2.23.5"
|
||||
@@ -169,6 +169,11 @@ class PkgbuildParser(Iterable[PkgbuildPatch]):
|
||||
value = cast(Node, node.child_by_field_name(PkgbuildNodeField.Value))
|
||||
key = self._text(name)
|
||||
|
||||
# bash permits assignments without a value (for example ``IFS=``).
|
||||
# tree-sitter represents those assignments without a value node.
|
||||
if value is None:
|
||||
return PkgbuildPatch(key, "")
|
||||
|
||||
match value.type:
|
||||
case PkgbuildNodeType.Array:
|
||||
array_values = []
|
||||
|
||||
@@ -578,6 +578,7 @@ def test_walk(resource_path_root: Path) -> None:
|
||||
resource_path_root / "models" / "package_pacman-static_pkgbuild",
|
||||
resource_path_root / "models" / "package_python-pytest-loop_pkgbuild",
|
||||
resource_path_root / "models" / "package_tpacpi-bat-git_pkgbuild",
|
||||
resource_path_root / "models" / "package_ttf-google-fonts-git_pkgbuild",
|
||||
resource_path_root / "models" / "package_vim-youcompleteme-git_pkgbuild",
|
||||
resource_path_root / "models" / "package_yay_pkgbuild",
|
||||
resource_path_root / "models" / "pkgbuild",
|
||||
|
||||
@@ -399,169 +399,6 @@ def test_parse_jellyfin_ffmpeg6_bin(resource_path_root: Path) -> None:
|
||||
}
|
||||
|
||||
|
||||
def test_parse_tpacpi_bat_git(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (tpacpi-bat-git)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_tpacpi-bat-git_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert values == {
|
||||
"pkgbase": "tpacpi-bat-git",
|
||||
"pkgname": "tpacpi-bat-git",
|
||||
"pkgver": "3.1.r13.g4959b52",
|
||||
"pkgrel": "1",
|
||||
"pkgdesc": "A Perl script with ACPI calls for recent ThinkPads which are not supported by tp_smapi",
|
||||
"arch": ["any"],
|
||||
"url": "https://github.com/teleshoes/tpacpi-bat",
|
||||
"license": ["GPL3"],
|
||||
"depends": ["perl", "acpi_call"],
|
||||
"makedepends": ["git"],
|
||||
"provides": ["tpacpi-bat"],
|
||||
"conflicts": ["tpacpi-bat"],
|
||||
"backup": ["etc/conf.d/tpacpi"],
|
||||
"source": ["git+https://github.com/teleshoes/tpacpi-bat.git"],
|
||||
"b2sums": ["SKIP"],
|
||||
}
|
||||
|
||||
|
||||
def test_parse_yay(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (yay)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_yay_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert values == {
|
||||
"pkgbase": "yay",
|
||||
"pkgname": "yay",
|
||||
"pkgver": "12.3.5",
|
||||
"pkgrel": "1",
|
||||
"pkgdesc": "Yet another yogurt. Pacman wrapper and AUR helper written in go.",
|
||||
"arch": [
|
||||
"i686",
|
||||
"pentium4",
|
||||
"x86_64",
|
||||
"arm",
|
||||
"armv7h",
|
||||
"armv6h",
|
||||
"aarch64",
|
||||
"riscv64",
|
||||
],
|
||||
"url": "https://github.com/Jguer/yay",
|
||||
"options": ["!lto"],
|
||||
"license": ["GPL-3.0-or-later"],
|
||||
"depends": [
|
||||
"pacman>6.1",
|
||||
"git",
|
||||
],
|
||||
"optdepends": [
|
||||
"sudo: privilege elevation",
|
||||
"doas: privilege elevation",
|
||||
],
|
||||
"makedepends": ["go>=1.21"],
|
||||
"source": ["${pkgname}-${pkgver}.tar.gz::https://github.com/Jguer/yay/archive/v${pkgver}.tar.gz"],
|
||||
"sha256sums": ["2fb6121a6eb4c5e6afaf22212b2ed15022500a4bc34bb3dc0f9782c1d43c3962"],
|
||||
}
|
||||
|
||||
|
||||
def test_parse_vim_youcompleteme_git(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (vim-youcompleteme-git)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_vim-youcompleteme-git_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert values == {
|
||||
"pkgbase": "vim-youcompleteme-git",
|
||||
"_gocode": "y",
|
||||
"_typescript": "y",
|
||||
"_tern": "n",
|
||||
"_java": "y",
|
||||
"_use_system_clang": "ON",
|
||||
"_use_system_abseil": "OFF",
|
||||
"_neovim": "$NEOVIM_YOUCOMPLETEME",
|
||||
"pkgname": "vim-youcompleteme-git",
|
||||
"pkgver": "r3216.0d855962",
|
||||
"pkgrel": "1",
|
||||
"pkgdesc": "A code-completion engine for Vim",
|
||||
"arch": ["x86_64"],
|
||||
"url": "https://ycm-core.github.io/YouCompleteMe/",
|
||||
"license": ["GPL3"],
|
||||
"groups": ["vim-plugins"],
|
||||
"depends": [
|
||||
"vim",
|
||||
"python>=3.6",
|
||||
"python-watchdog",
|
||||
"python-bottle",
|
||||
"clang"
|
||||
],
|
||||
"makedepends": [
|
||||
"git",
|
||||
"cmake",
|
||||
"pybind11",
|
||||
],
|
||||
"optdepends": [
|
||||
"gopls: Go semantic completion",
|
||||
"nodejs-tern: JavaScript semantic completion",
|
||||
"rust-analyzer: Rust semantic completion",
|
||||
"typescript: Typescript semantic completion",
|
||||
"python-jedi: Python semantic completion",
|
||||
"python-numpydoc: Python semantic completion",
|
||||
"python-regex: Better Unicode support",
|
||||
"omnisharp-roslyn: C# semantic completion",
|
||||
"java-environment>=11: Java semantic completion",
|
||||
"jdtls: Java semantic completion",
|
||||
"abseil-cpp: if setting _use_system_abseil ON",
|
||||
],
|
||||
"source": [
|
||||
"git+https://github.com/ycm-core/YouCompleteMe.git",
|
||||
"git+https://github.com/ycm-core/ycmd.git",
|
||||
"clangd-15.0.1.tar.bz2::https://github.com/ycm-core/llvm/releases/download/15.0.1/clangd-15.0.1-x86_64-unknown-linux-gnu.tar.bz2",
|
||||
"libclang-15.0.1.tar.bz2::https://github.com/ycm-core/llvm/releases/download/15.0.1/libclang-15.0.1-x86_64-unknown-linux-gnu.tar.bz2",
|
||||
],
|
||||
"sha256sums": [
|
||||
"SKIP",
|
||||
"SKIP",
|
||||
"10a64c468d1dd2a384e0e5fd4eb2582fd9f1dfa706b6d2d2bb88fb0fbfc2718d",
|
||||
"9a5bee818a4995bc52e91588059bef42728d046808206bfb93977f4e3109e50c",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def test_parse_python_pytest_loop(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (python-pytest-loop)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_python-pytest-loop_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert values == {
|
||||
"pkgbase": "python-pytest-loop",
|
||||
"_pname": "${pkgbase#python-}",
|
||||
"_pyname": "${_pname//-/_}",
|
||||
"pkgname": ["python-${_pname}"],
|
||||
"pkgver": "1.0.13",
|
||||
"pkgrel": "1",
|
||||
"pkgdesc": "Pytest plugin for looping test execution.",
|
||||
"arch": ["any"],
|
||||
"url": "https://github.com/anogowski/pytest-loop",
|
||||
"license": ["MPL-2.0"],
|
||||
"makedepends": [
|
||||
"python-hatchling",
|
||||
"python-versioningit",
|
||||
"python-wheel",
|
||||
"python-build",
|
||||
"python-installer",
|
||||
],
|
||||
"checkdepends": [
|
||||
"python-pytest",
|
||||
],
|
||||
"source": [
|
||||
"https://files.pythonhosted.org/packages/source/${_pyname:0:1}/${_pyname}/${_pyname}-${pkgver}.tar.gz",
|
||||
],
|
||||
"md5sums": [
|
||||
"98365f49606d5068f92350f1d2569a5f",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def test_parse_pacman_static(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (pacman-static)
|
||||
@@ -654,3 +491,250 @@ def test_parse_pacman_static(resource_path_root: Path) -> None:
|
||||
"CXXFLAGS": "${CXXFLAGS/-fstack-protector-strong/}",
|
||||
"PKGEXT": ".pkg.tar.xz",
|
||||
}
|
||||
|
||||
|
||||
def test_parse_python_pytest_loop(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (python-pytest-loop)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_python-pytest-loop_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert values == {
|
||||
"pkgbase": "python-pytest-loop",
|
||||
"_pname": "${pkgbase#python-}",
|
||||
"_pyname": "${_pname//-/_}",
|
||||
"pkgname": ["python-${_pname}"],
|
||||
"pkgver": "1.0.13",
|
||||
"pkgrel": "1",
|
||||
"pkgdesc": "Pytest plugin for looping test execution.",
|
||||
"arch": ["any"],
|
||||
"url": "https://github.com/anogowski/pytest-loop",
|
||||
"license": ["MPL-2.0"],
|
||||
"makedepends": [
|
||||
"python-hatchling",
|
||||
"python-versioningit",
|
||||
"python-wheel",
|
||||
"python-build",
|
||||
"python-installer",
|
||||
],
|
||||
"checkdepends": [
|
||||
"python-pytest",
|
||||
],
|
||||
"source": [
|
||||
"https://files.pythonhosted.org/packages/source/${_pyname:0:1}/${_pyname}/${_pyname}-${pkgver}.tar.gz",
|
||||
],
|
||||
"md5sums": [
|
||||
"98365f49606d5068f92350f1d2569a5f",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def test_parse_tpacpi_bat_git(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (tpacpi-bat-git)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_tpacpi-bat-git_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert values == {
|
||||
"pkgbase": "tpacpi-bat-git",
|
||||
"pkgname": "tpacpi-bat-git",
|
||||
"pkgver": "3.1.r13.g4959b52",
|
||||
"pkgrel": "1",
|
||||
"pkgdesc": "A Perl script with ACPI calls for recent ThinkPads which are not supported by tp_smapi",
|
||||
"arch": ["any"],
|
||||
"url": "https://github.com/teleshoes/tpacpi-bat",
|
||||
"license": ["GPL3"],
|
||||
"depends": ["perl", "acpi_call"],
|
||||
"makedepends": ["git"],
|
||||
"provides": ["tpacpi-bat"],
|
||||
"conflicts": ["tpacpi-bat"],
|
||||
"backup": ["etc/conf.d/tpacpi"],
|
||||
"source": ["git+https://github.com/teleshoes/tpacpi-bat.git"],
|
||||
"b2sums": ["SKIP"],
|
||||
}
|
||||
|
||||
|
||||
def test_parse_ttf_google_fonts_git(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (ttf-google-fonts-git)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_ttf-google-fonts-git_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert "ttf-google-fonts-git" in pkgbuild.packages()
|
||||
assert values == {
|
||||
"pkgname": "ttf-google-fonts-git",
|
||||
"pkgver": "r11002.cdabad3d0",
|
||||
"pkgrel": "1",
|
||||
"epoch": "1",
|
||||
"pkgdesc": "TrueType fonts from the Google Fonts project (git version)",
|
||||
"arch": ["any"],
|
||||
"url": "https://github.com/google/fonts",
|
||||
"license": ["custom:SIL Open Font License", "custom:Ubuntu Font License v1.0"],
|
||||
"depends": [
|
||||
"adobe-source-code-pro-fonts",
|
||||
"adobe-source-sans-fonts",
|
||||
"adobe-source-serif-fonts",
|
||||
"cantarell-fonts",
|
||||
"noto-fonts",
|
||||
"noto-fonts-extra",
|
||||
"ttf-anonymous-pro",
|
||||
"ttf-caladea",
|
||||
"ttf-croscore",
|
||||
"ttf-fira-sans",
|
||||
"ttf-fira-mono",
|
||||
"ttf-inconsolata",
|
||||
"ttf-lato",
|
||||
"ttf-merriweather",
|
||||
"ttf-merriweather-sans",
|
||||
"ttf-opensans",
|
||||
"ttf-oswald",
|
||||
"ttf-quintessential",
|
||||
"ttf-roboto",
|
||||
"ttf-roboto-mono",
|
||||
"ttf-signika",
|
||||
"ttf-ubuntu-font-family",
|
||||
],
|
||||
"makedepends": ["git", "fontconfig"],
|
||||
"conflicts": [
|
||||
"jsmath-fonts",
|
||||
"lohit-fonts",
|
||||
"ttf-andika",
|
||||
"ttf-arabeyes-fonts",
|
||||
"ttf-cardo",
|
||||
"ttf-comfortaa",
|
||||
"ttf-google-fonts-typewolf",
|
||||
"ttf-lora-cyrillic",
|
||||
"ttf-lekton",
|
||||
"ttf-medievalsharp",
|
||||
"ttf-nova",
|
||||
"ttf-oxygen",
|
||||
"ttf-oxygen-git",
|
||||
"ttf-pt-fonts",
|
||||
"ttf-source-code-pro-ibx",
|
||||
"ttf-source-sans-pro-ibx",
|
||||
"ttf-vollkorn-ibx",
|
||||
],
|
||||
"provides": [
|
||||
"jsmath-fonts",
|
||||
"lohit-fonts",
|
||||
"ttf-andika",
|
||||
"ttf-cardo",
|
||||
"ttf-carlito",
|
||||
"ttf-comfortaa",
|
||||
"ttf-lora-cyrillic",
|
||||
"ttf-lekton",
|
||||
"ttf-medievalsharp",
|
||||
"ttf-nova",
|
||||
"ttf-oxygen",
|
||||
"ttf-oxygen-git",
|
||||
"ttf-pt-fonts",
|
||||
"ttf-source-code-pro-ibx",
|
||||
"ttf-source-sans-pro-ibx",
|
||||
"ttf-vollkorn-ibx",
|
||||
],
|
||||
"source": ["git+${url}.git"],
|
||||
"sha512sums": ["SKIP"],
|
||||
"pkgbase": "ttf-google-fonts-git",
|
||||
}
|
||||
|
||||
|
||||
def test_parse_vim_youcompleteme_git(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (vim-youcompleteme-git)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_vim-youcompleteme-git_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert values == {
|
||||
"pkgbase": "vim-youcompleteme-git",
|
||||
"_gocode": "y",
|
||||
"_typescript": "y",
|
||||
"_tern": "n",
|
||||
"_java": "y",
|
||||
"_use_system_clang": "ON",
|
||||
"_use_system_abseil": "OFF",
|
||||
"_neovim": "$NEOVIM_YOUCOMPLETEME",
|
||||
"pkgname": "vim-youcompleteme-git",
|
||||
"pkgver": "r3216.0d855962",
|
||||
"pkgrel": "1",
|
||||
"pkgdesc": "A code-completion engine for Vim",
|
||||
"arch": ["x86_64"],
|
||||
"url": "https://ycm-core.github.io/YouCompleteMe/",
|
||||
"license": ["GPL3"],
|
||||
"groups": ["vim-plugins"],
|
||||
"depends": [
|
||||
"vim",
|
||||
"python>=3.6",
|
||||
"python-watchdog",
|
||||
"python-bottle",
|
||||
"clang"
|
||||
],
|
||||
"makedepends": [
|
||||
"git",
|
||||
"cmake",
|
||||
"pybind11",
|
||||
],
|
||||
"optdepends": [
|
||||
"gopls: Go semantic completion",
|
||||
"nodejs-tern: JavaScript semantic completion",
|
||||
"rust-analyzer: Rust semantic completion",
|
||||
"typescript: Typescript semantic completion",
|
||||
"python-jedi: Python semantic completion",
|
||||
"python-numpydoc: Python semantic completion",
|
||||
"python-regex: Better Unicode support",
|
||||
"omnisharp-roslyn: C# semantic completion",
|
||||
"java-environment>=11: Java semantic completion",
|
||||
"jdtls: Java semantic completion",
|
||||
"abseil-cpp: if setting _use_system_abseil ON",
|
||||
],
|
||||
"source": [
|
||||
"git+https://github.com/ycm-core/YouCompleteMe.git",
|
||||
"git+https://github.com/ycm-core/ycmd.git",
|
||||
"clangd-15.0.1.tar.bz2::https://github.com/ycm-core/llvm/releases/download/15.0.1/clangd-15.0.1-x86_64-unknown-linux-gnu.tar.bz2",
|
||||
"libclang-15.0.1.tar.bz2::https://github.com/ycm-core/llvm/releases/download/15.0.1/libclang-15.0.1-x86_64-unknown-linux-gnu.tar.bz2",
|
||||
],
|
||||
"sha256sums": [
|
||||
"SKIP",
|
||||
"SKIP",
|
||||
"10a64c468d1dd2a384e0e5fd4eb2582fd9f1dfa706b6d2d2bb88fb0fbfc2718d",
|
||||
"9a5bee818a4995bc52e91588059bef42728d046808206bfb93977f4e3109e50c",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def test_parse_yay(resource_path_root: Path) -> None:
|
||||
"""
|
||||
must parse real PKGBUILDs correctly (yay)
|
||||
"""
|
||||
pkgbuild = Pkgbuild.from_file(resource_path_root / "models" / "package_yay_pkgbuild")
|
||||
values = {key: value.value for key, value in pkgbuild.fields.items() if not value.is_function}
|
||||
assert values == {
|
||||
"pkgbase": "yay",
|
||||
"pkgname": "yay",
|
||||
"pkgver": "12.3.5",
|
||||
"pkgrel": "1",
|
||||
"pkgdesc": "Yet another yogurt. Pacman wrapper and AUR helper written in go.",
|
||||
"arch": [
|
||||
"i686",
|
||||
"pentium4",
|
||||
"x86_64",
|
||||
"arm",
|
||||
"armv7h",
|
||||
"armv6h",
|
||||
"aarch64",
|
||||
"riscv64",
|
||||
],
|
||||
"url": "https://github.com/Jguer/yay",
|
||||
"options": ["!lto"],
|
||||
"license": ["GPL-3.0-or-later"],
|
||||
"depends": [
|
||||
"pacman>6.1",
|
||||
"git",
|
||||
],
|
||||
"optdepends": [
|
||||
"sudo: privilege elevation",
|
||||
"doas: privilege elevation",
|
||||
],
|
||||
"makedepends": ["go>=1.21"],
|
||||
"source": ["${pkgname}-${pkgver}.tar.gz::https://github.com/Jguer/yay/archive/v${pkgver}.tar.gz"],
|
||||
"sha256sums": ["2fb6121a6eb4c5e6afaf22212b2ed15022500a4bc34bb3dc0f9782c1d43c3962"],
|
||||
}
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
pkgbase='ahriman'
|
||||
pkgname=('ahriman' 'ahriman-core' 'ahriman-triggers' 'ahriman-web')
|
||||
pkgver=2.23.2
|
||||
pkgver=2.23.5
|
||||
pkgrel=1
|
||||
pkgdesc="ArcH linux ReposItory MANager"
|
||||
arch=('any')
|
||||
|
||||
@@ -42,5 +42,5 @@
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"type": "module",
|
||||
"version": "2.23.2"
|
||||
"version": "2.23.5"
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
# Maintainer: Andrew Crerar <crerar@archlinux.org>
|
||||
# Contributor: Mohammadreza Abdollahzadeh <morealaz at gmail dot com>
|
||||
# Contributor: FadeMind <fademind@gmail.com>
|
||||
# Contributor: Vlad M. <vlad@archlinux.net>
|
||||
# Contributor: Sebastian Stammler <stammler.s@gmail.com>
|
||||
# Contributor: Sarkasper <echo a2FzcGVyLm1lbnRlbkBnbXguY29tCg== | base64 -d>
|
||||
# Contributor: Daniel Micay <danielmicay@gmail.com>
|
||||
# Contributor: Michalis Georgiou <mechmg93@gmail.comr>
|
||||
# Contributor: Alexander De Sousa <archaur.xandy21@spamgourmet.com>
|
||||
|
||||
pkgname=ttf-google-fonts-git
|
||||
pkgver=r11002.cdabad3d0
|
||||
pkgrel=1
|
||||
epoch=1
|
||||
pkgdesc="TrueType fonts from the Google Fonts project (git version)"
|
||||
arch=('any')
|
||||
url="https://github.com/google/fonts"
|
||||
license=('custom:SIL Open Font License' 'custom:Ubuntu Font License v1.0')
|
||||
|
||||
depends=('adobe-source-code-pro-fonts'
|
||||
'adobe-source-sans-fonts'
|
||||
'adobe-source-serif-fonts'
|
||||
'cantarell-fonts'
|
||||
'noto-fonts'
|
||||
'noto-fonts-extra'
|
||||
'ttf-anonymous-pro'
|
||||
'ttf-caladea'
|
||||
'ttf-croscore'
|
||||
'ttf-fira-sans'
|
||||
'ttf-fira-mono'
|
||||
'ttf-inconsolata'
|
||||
'ttf-lato'
|
||||
'ttf-merriweather'
|
||||
'ttf-merriweather-sans'
|
||||
'ttf-opensans'
|
||||
'ttf-oswald'
|
||||
'ttf-quintessential'
|
||||
'ttf-roboto'
|
||||
'ttf-roboto-mono'
|
||||
'ttf-signika'
|
||||
'ttf-ubuntu-font-family')
|
||||
makedepends=('git' 'fontconfig')
|
||||
conflicts=('jsmath-fonts'
|
||||
'lohit-fonts'
|
||||
'ttf-andika'
|
||||
'ttf-arabeyes-fonts'
|
||||
'ttf-cardo'
|
||||
'ttf-comfortaa'
|
||||
'ttf-google-fonts-typewolf'
|
||||
'ttf-lora-cyrillic'
|
||||
'ttf-lekton'
|
||||
'ttf-medievalsharp'
|
||||
'ttf-nova'
|
||||
'ttf-oxygen'
|
||||
'ttf-oxygen-git'
|
||||
'ttf-pt-fonts'
|
||||
'ttf-source-code-pro-ibx'
|
||||
'ttf-source-sans-pro-ibx'
|
||||
'ttf-vollkorn-ibx')
|
||||
provides=('jsmath-fonts'
|
||||
'lohit-fonts'
|
||||
'ttf-andika'
|
||||
'ttf-cardo'
|
||||
'ttf-carlito'
|
||||
'ttf-comfortaa'
|
||||
'ttf-lora-cyrillic'
|
||||
'ttf-lekton'
|
||||
'ttf-medievalsharp'
|
||||
'ttf-nova'
|
||||
'ttf-oxygen'
|
||||
'ttf-oxygen-git'
|
||||
'ttf-pt-fonts'
|
||||
'ttf-source-code-pro-ibx'
|
||||
'ttf-source-sans-pro-ibx'
|
||||
'ttf-vollkorn-ibx')
|
||||
source=(git+"${url}".git)
|
||||
sha512sums=('SKIP')
|
||||
|
||||
pkgver() {
|
||||
cd fonts
|
||||
|
||||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd fonts
|
||||
|
||||
# NOTE: Adobe Blank is not meant to be installed.
|
||||
# See: https://github.com/google/fonts/issues/2106#issuecomment-520067314
|
||||
rm --recursive "${srcdir}/fonts/ofl/adobeblank"
|
||||
}
|
||||
|
||||
package() {
|
||||
# NOTE: These are the font families that already exist in the [extra] repo
|
||||
# or should not be installed by this package, due to user reports
|
||||
# of system instability.
|
||||
declare -A omitted_font_families=(
|
||||
[anonymous-pro]=1
|
||||
[arimo]=1
|
||||
[caladea]=1
|
||||
[cantarell]=1
|
||||
[carlito]=1
|
||||
[cousine]=1
|
||||
[dai-banna-sil]=1
|
||||
[fira-sans]=1
|
||||
[fira-mono]=1
|
||||
[inconsolata]=1
|
||||
[merriweather]=1
|
||||
[merriweather-sans]=1
|
||||
[noto-color-emoji]=1
|
||||
[noto-sans]=1
|
||||
[noto-sans-tamil]=1
|
||||
[noto-serif]=1
|
||||
[open-sans]=1
|
||||
[oswald]=1
|
||||
[quintessential]=1
|
||||
[roboto]=1
|
||||
[roboto-condensed]=1
|
||||
[roboto-mono]=1
|
||||
[source-sans-3]=1
|
||||
[source-sans-pro]=1
|
||||
[source-serif-4]=1
|
||||
[source-serif-pro]=1
|
||||
[tinos]=1
|
||||
[ubuntu]=1
|
||||
[ubuntu-mono]=1
|
||||
)
|
||||
|
||||
|
||||
while IFS= read -rd '' file; do
|
||||
font_family=$(fc-query -f '%{family[0]|downcase|translate( ,-)}\n' "$file" | sed -n '1p')
|
||||
|
||||
# NOTE: Skip the rest of the loop if we're not supposed to be touching this family
|
||||
((omitted_font_families["$font_family"])) && continue
|
||||
|
||||
pkg_font_path="$pkgdir"/usr/share/fonts/"$font_family"
|
||||
install -Dm644 "$file" -t "$pkg_font_path" # TODO: Check and make sure $font_family is being created
|
||||
|
||||
# NOTE: If the font's license already exists, we don't need to copy the license again.
|
||||
src_license_path="${file%/*}"/OFL.txt
|
||||
pkg_font_license="$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE."$font_family"
|
||||
if [[ -f "$src_license_path" && ! -f "$pkg_font_license" ]]; then
|
||||
install -Dm644 "$src_license_path" "$pkg_font_license"
|
||||
fi
|
||||
done < <(find "$srcdir" -type f -iname \*.ttf -print0)
|
||||
|
||||
# NOTE: Since the zcool xiaowei chinese font has special characters. We need to change
|
||||
# the folder name to prevent errors during package compression.
|
||||
mv "$pkgdir"/usr/share/fonts/站酷小薇体 "$pkgdir"/usr/share/fonts/zcool-xiaowei-regular
|
||||
mv "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE.站酷小薇体 "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE.zcool-xiaowei-regular
|
||||
}
|
||||
Reference in new issue
Block a user