mirror of
https://github.com/arcan1s/ahriman.git
synced 2026-10-26 20:56:37 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a745321ec | ||
|
|
4446c950ec | ||
|
|
8d569e6075 | ||
|
|
c375236327 | ||
|
|
ddbb4b06ff | ||
|
|
2d66b67123 | ||
|
|
27cfcd07eb |
No files matched your search
@@ -229,6 +229,17 @@ The projects also uses typing checks (provided by `mypy`) and some linter checks
|
||||
|
||||
Frontend checks normally are performed by `eslint` (e.g. `npx run eslint`).
|
||||
|
||||
## AI usage policy
|
||||
|
||||
AI tools may be used when working on the project, including writing code, tests, and documentation, debugging problems, and preparing issue reports. Contributors remain responsible for everything they submit, including content generated or suggested by AI.
|
||||
|
||||
* Review and understand every submitted change. You must be able to explain the implementation, respond to review feedback, and correct any problems.
|
||||
* Do not list AI tools as commit authors or co-authors, including in `Co-authored-by` trailers. Authorship must remain with the human contributors responsible for the changes.
|
||||
* Discussions in issues and pull requests must be led by humans. Participate personally, explain your reasoning, and respond to questions and review feedback yourself. AI tools may help with wording or translation, but must not conduct discussions on your behalf.
|
||||
* Verify claims, references, and reproduction steps before submitting an issue or pull request. Do not submit unreviewed AI output or claim that checks passed unless they were run and you verified the results.
|
||||
|
||||
Maintainers may close submissions that do not meet these requirements. Using AI does not transfer responsibility for reviewing or fixing a contribution to maintainers.
|
||||
|
||||
## Developers how to
|
||||
|
||||
### Run automated checks
|
||||
|
||||
@@ -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