mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-28 09:17:17 +00:00
Compare commits
2 Commits
2536b8dc1f
...
733c014229
Author | SHA1 | Date | |
---|---|---|---|
733c014229 | |||
783c16b2ed |
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 503 KiB After Width: | Height: | Size: 508 KiB |
@ -3,7 +3,7 @@
|
|||||||
ahriman
|
ahriman
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B ahriman
|
.B ahriman
|
||||||
[-h] [-a ARCHITECTURE] [-c CONFIGURATION] [--force] [-l LOCK] [--no-report] [-q] [--unsafe] [-v] {aur-search,search,help,help-commands-unsafe,key-import,package-add,add,package-update,package-remove,remove,package-status,status,package-status-remove,package-status-update,status-update,patch-add,patch-list,patch-remove,repo-check,check,repo-clean,clean,repo-config,config,repo-rebuild,rebuild,repo-remove-unknown,remove-unknown,repo-report,report,repo-setup,init,repo-init,setup,repo-sign,sign,repo-status-update,repo-sync,sync,repo-update,update,user-add,user-list,user-remove,web} ...
|
[-h] [-a ARCHITECTURE] [-c CONFIGURATION] [--force] [-l LOCK] [--no-report] [-q] [--unsafe] [-v] {aur-search,search,help,help-commands-unsafe,key-import,package-add,add,package-update,package-remove,remove,package-status,status,package-status-remove,package-status-update,status-update,patch-add,patch-list,patch-remove,repo-check,check,repo-clean,clean,repo-config,config,repo-rebuild,rebuild,repo-remove-unknown,remove-unknown,repo-report,report,repo-restore,restore,repo-setup,init,repo-init,setup,repo-sign,sign,repo-status-update,repo-sync,sync,repo-update,update,user-add,user-list,user-remove,web} ...
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
ArcH Linux ReposItory MANager
|
ArcH Linux ReposItory MANager
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
@ -97,6 +97,9 @@ remove unknown packages
|
|||||||
\fBahriman\fR \fI\,repo-report\/\fR
|
\fBahriman\fR \fI\,repo-report\/\fR
|
||||||
generate report
|
generate report
|
||||||
.TP
|
.TP
|
||||||
|
\fBahriman\fR \fI\,repo-restore\/\fR
|
||||||
|
restore repository
|
||||||
|
.TP
|
||||||
\fBahriman\fR \fI\,repo-setup\/\fR
|
\fBahriman\fR \fI\,repo-setup\/\fR
|
||||||
initial service configuration
|
initial service configuration
|
||||||
.TP
|
.TP
|
||||||
@ -207,7 +210,7 @@ key server for key import
|
|||||||
|
|
||||||
.SH OPTIONS 'ahriman package-add'
|
.SH OPTIONS 'ahriman package-add'
|
||||||
usage: ahriman package-add [-h] [-e] [-n]
|
usage: ahriman package-add [-h] [-e] [-n]
|
||||||
[-s {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}]
|
[-s {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}]
|
||||||
[--without-dependencies]
|
[--without-dependencies]
|
||||||
package [package ...]
|
package [package ...]
|
||||||
|
|
||||||
@ -226,7 +229,7 @@ return non\-zero exit status if result is empty
|
|||||||
run update function after
|
run update function after
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-s\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}, \fB\-\-source\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}
|
\fB\-s\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}, \fB\-\-source\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}
|
||||||
explicitly specify the package source for this command
|
explicitly specify the package source for this command
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
@ -235,7 +238,7 @@ do not add dependencies
|
|||||||
|
|
||||||
.SH OPTIONS 'ahriman add'
|
.SH OPTIONS 'ahriman add'
|
||||||
usage: ahriman package-add [-h] [-e] [-n]
|
usage: ahriman package-add [-h] [-e] [-n]
|
||||||
[-s {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}]
|
[-s {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}]
|
||||||
[--without-dependencies]
|
[--without-dependencies]
|
||||||
package [package ...]
|
package [package ...]
|
||||||
|
|
||||||
@ -254,7 +257,7 @@ return non\-zero exit status if result is empty
|
|||||||
run update function after
|
run update function after
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-s\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}, \fB\-\-source\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}
|
\fB\-s\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}, \fB\-\-source\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}
|
||||||
explicitly specify the package source for this command
|
explicitly specify the package source for this command
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
@ -263,7 +266,7 @@ do not add dependencies
|
|||||||
|
|
||||||
.SH OPTIONS 'ahriman package-update'
|
.SH OPTIONS 'ahriman package-update'
|
||||||
usage: ahriman package-add [-h] [-e] [-n]
|
usage: ahriman package-add [-h] [-e] [-n]
|
||||||
[-s {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}]
|
[-s {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}]
|
||||||
[--without-dependencies]
|
[--without-dependencies]
|
||||||
package [package ...]
|
package [package ...]
|
||||||
|
|
||||||
@ -282,7 +285,7 @@ return non\-zero exit status if result is empty
|
|||||||
run update function after
|
run update function after
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-s\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}, \fB\-\-source\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote}
|
\fB\-s\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}, \fB\-\-source\fR {PackageSource.Auto,PackageSource.Archive,PackageSource.AUR,PackageSource.Directory,PackageSource.Local,PackageSource.Remote,PackageSource.Repository}
|
||||||
explicitly specify the package source for this command
|
explicitly specify the package source for this command
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
@ -615,6 +618,42 @@ generate repository report according to current settings
|
|||||||
target to generate report
|
target to generate report
|
||||||
|
|
||||||
|
|
||||||
|
.SH OPTIONS 'ahriman repo-restore'
|
||||||
|
usage: ahriman repo-restore [-h] [-e] [-n] [--without-dependencies]
|
||||||
|
|
||||||
|
restore repository from database file
|
||||||
|
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-e\fR, \fB\-\-exit\-code\fR
|
||||||
|
return non\-zero exit status if result is empty
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-n\fR, \fB\-\-now\fR
|
||||||
|
run update function after
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-\-without\-dependencies\fR
|
||||||
|
do not add dependencies
|
||||||
|
|
||||||
|
.SH OPTIONS 'ahriman restore'
|
||||||
|
usage: ahriman repo-restore [-h] [-e] [-n] [--without-dependencies]
|
||||||
|
|
||||||
|
restore repository from database file
|
||||||
|
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-e\fR, \fB\-\-exit\-code\fR
|
||||||
|
return non\-zero exit status if result is empty
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-n\fR, \fB\-\-now\fR
|
||||||
|
run update function after
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-\-without\-dependencies\fR
|
||||||
|
do not add dependencies
|
||||||
|
|
||||||
.SH OPTIONS 'ahriman repo-setup'
|
.SH OPTIONS 'ahriman repo-setup'
|
||||||
usage: ahriman repo-setup [-h] [--build-as-user BUILD_AS_USER] [--build-command BUILD_COMMAND]
|
usage: ahriman repo-setup [-h] [--build-as-user BUILD_AS_USER] [--build-command BUILD_COMMAND]
|
||||||
[--from-configuration FROM_CONFIGURATION] [--no-multilib] --packager PACKAGER --repository
|
[--from-configuration FROM_CONFIGURATION] [--no-multilib] --packager PACKAGER --repository
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Maintainer: Evgeniy Alekseev
|
# Maintainer: Evgeniy Alekseev
|
||||||
|
|
||||||
pkgname='ahriman'
|
pkgname='ahriman'
|
||||||
pkgver=2.0.0rc3
|
pkgver=2.0.0rc4
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="ArcH Linux ReposItory MANager"
|
pkgdesc="ArcH Linux ReposItory MANager"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
|
@ -211,23 +211,25 @@ class Package:
|
|||||||
:return: list of package dependencies including makedepends array, but excluding packages from this base
|
:return: list of package dependencies including makedepends array, but excluding packages from this base
|
||||||
"""
|
"""
|
||||||
# additional function to remove versions from dependencies
|
# additional function to remove versions from dependencies
|
||||||
def trim_version(name: str) -> str:
|
def extract_packages(raw_packages_list: List[str]) -> Set[str]:
|
||||||
|
return {trim_version(package_name) for package_name in raw_packages_list}
|
||||||
|
|
||||||
|
def trim_version(package_name: str) -> str:
|
||||||
for symbol in ("<", "=", ">"):
|
for symbol in ("<", "=", ">"):
|
||||||
name = name.split(symbol)[0]
|
package_name = package_name.split(symbol)[0]
|
||||||
return name
|
return package_name
|
||||||
|
|
||||||
srcinfo, errors = parse_srcinfo((path / ".SRCINFO").read_text())
|
srcinfo, errors = parse_srcinfo((path / ".SRCINFO").read_text())
|
||||||
if errors:
|
if errors:
|
||||||
raise InvalidPackageInfo(errors)
|
raise InvalidPackageInfo(errors)
|
||||||
makedepends = srcinfo.get("makedepends", [])
|
makedepends = extract_packages(srcinfo.get("makedepends", []))
|
||||||
# sum over each package
|
# sum over each package
|
||||||
depends: List[str] = srcinfo.get("depends", [])
|
depends = extract_packages(srcinfo.get("depends", []))
|
||||||
for package in srcinfo["packages"].values():
|
for package in srcinfo["packages"].values():
|
||||||
depends.extend(package.get("depends", []))
|
depends |= extract_packages(package.get("depends", []))
|
||||||
# we are not interested in dependencies inside pkgbase
|
# we are not interested in dependencies inside pkgbase
|
||||||
packages = set(srcinfo["packages"].keys())
|
packages = set(srcinfo["packages"].keys())
|
||||||
full_list = set(depends + makedepends) - packages
|
return (depends | makedepends) - packages
|
||||||
return {trim_version(package_name) for package_name in full_list}
|
|
||||||
|
|
||||||
def actual_version(self, paths: RepositoryPaths) -> str:
|
def actual_version(self, paths: RepositoryPaths) -> str:
|
||||||
"""
|
"""
|
||||||
|
@ -17,4 +17,4 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
__version__ = "2.0.0rc3"
|
__version__ = "2.0.0rc4"
|
||||||
|
@ -317,6 +317,7 @@ def test_walk(resource_path_root: Path) -> None:
|
|||||||
resource_path_root / "models" / "package_ahriman_aur",
|
resource_path_root / "models" / "package_ahriman_aur",
|
||||||
resource_path_root / "models" / "package_akonadi_aur",
|
resource_path_root / "models" / "package_akonadi_aur",
|
||||||
resource_path_root / "models" / "package_ahriman_srcinfo",
|
resource_path_root / "models" / "package_ahriman_srcinfo",
|
||||||
|
resource_path_root / "models" / "package_gcc10_srcinfo",
|
||||||
resource_path_root / "models" / "package_tpacpi-bat-git_srcinfo",
|
resource_path_root / "models" / "package_tpacpi-bat-git_srcinfo",
|
||||||
resource_path_root / "models" / "package_yay_srcinfo",
|
resource_path_root / "models" / "package_yay_srcinfo",
|
||||||
resource_path_root / "web" / "templates" / "build-status" / "login-modal.jinja2",
|
resource_path_root / "web" / "templates" / "build-status" / "login-modal.jinja2",
|
||||||
|
@ -261,6 +261,16 @@ def test_dependencies_with_version(mocker: MockerFixture, resource_path_root: Pa
|
|||||||
assert Package.dependencies(Path("path")) == {"git", "go", "pacman"}
|
assert Package.dependencies(Path("path")) == {"git", "go", "pacman"}
|
||||||
|
|
||||||
|
|
||||||
|
def test_dependencies_with_version_and_overlap(mocker: MockerFixture, resource_path_root: Path) -> None:
|
||||||
|
"""
|
||||||
|
must load correct list of dependencies with version
|
||||||
|
"""
|
||||||
|
srcinfo = (resource_path_root / "models" / "package_gcc10_srcinfo").read_text()
|
||||||
|
mocker.patch("pathlib.Path.read_text", return_value=srcinfo)
|
||||||
|
|
||||||
|
assert Package.dependencies(Path("path")) == {"glibc", "doxygen", "binutils", "git", "libmpc", "python", "zstd"}
|
||||||
|
|
||||||
|
|
||||||
def test_actual_version(package_ahriman: Package, repository_paths: RepositoryPaths) -> None:
|
def test_actual_version(package_ahriman: Package, repository_paths: RepositoryPaths) -> None:
|
||||||
"""
|
"""
|
||||||
must return same actual_version as version is
|
must return same actual_version as version is
|
||||||
|
57
tests/testresources/models/package_gcc10_srcinfo
Normal file
57
tests/testresources/models/package_gcc10_srcinfo
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
pkgbase = gcc10
|
||||||
|
pkgdesc = The GNU Compiler Collection (10.x.x)
|
||||||
|
pkgver = 10.3.0
|
||||||
|
pkgrel = 2
|
||||||
|
url = https://gcc.gnu.org
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL
|
||||||
|
license = LGPL
|
||||||
|
license = FDL
|
||||||
|
license = custom
|
||||||
|
checkdepends = dejagnu
|
||||||
|
checkdepends = inetutils
|
||||||
|
makedepends = binutils
|
||||||
|
makedepends = doxygen
|
||||||
|
makedepends = git
|
||||||
|
makedepends = libmpc
|
||||||
|
makedepends = python
|
||||||
|
options = !emptydirs
|
||||||
|
options = !lto
|
||||||
|
source = https://sourceware.org/pub/gcc/releases/gcc-10.3.0/gcc-10.3.0.tar.xz
|
||||||
|
source = https://sourceware.org/pub/gcc/releases/gcc-10.3.0/gcc-10.3.0.tar.xz.sig
|
||||||
|
source = https://mirror.sobukus.de/files/src/isl/isl-0.24.tar.xz
|
||||||
|
source = c89
|
||||||
|
source = c99
|
||||||
|
validpgpkeys = F3691687D867B81B51CE07D9BBE43771487328A9
|
||||||
|
validpgpkeys = 86CFFCA918CF3AF47147588051E8B148A9999C34
|
||||||
|
validpgpkeys = 13975A70E63C361C73AE69EF6EEB81F8981C74C7
|
||||||
|
validpgpkeys = D3A93CAD751C2AF4F8C7AD516C35B99309B5FA62
|
||||||
|
b2sums = ac7898f5eb8a7c5f151a526d1bb38913a68b50a65e4d010ac09fa20b6c801c671c790d780f23ccb8e4ecdfc686f4aa588082ccc9eb5c80c7b0e30788f824c1eb
|
||||||
|
b2sums = SKIP
|
||||||
|
b2sums = 39cbfd18ad05778e3a5a44429261b45e4abc3efe7730ee890674d968890fe5e52c73bc1f8d271c7c3bc72d5754e3f7fcb209bd139e823d19cb9ea4ce1440164d
|
||||||
|
b2sums = a76d19c7830b0a141302890522086fc1548c177611501caac7e66d576e541b64ca3f6e977de715268a9872dfdd6368a011b92e01f7944ec0088f899ac0d2a2a5
|
||||||
|
b2sums = 02b655b5668f7dea51c3b3e4ff46d5a4aee5a04ed5e26b98a6470f39c2e98ddc0519bffeeedd982c31ef3c171457e4d1beaff32767d1aedd9346837aac4ec3ee
|
||||||
|
|
||||||
|
pkgname = gcc10
|
||||||
|
pkgdesc = The GNU Compiler Collection - C and C++ frontends (10.x.x)
|
||||||
|
depends = gcc10-libs=10.3.0-2
|
||||||
|
depends = binutils>=2.28
|
||||||
|
depends = libmpc
|
||||||
|
depends = zstd
|
||||||
|
options = !emptydirs
|
||||||
|
options = staticlibs
|
||||||
|
|
||||||
|
pkgname = gcc10-libs
|
||||||
|
pkgdesc = Runtime libraries shipped by GCC (10.x.x)
|
||||||
|
depends = glibc>=2.27
|
||||||
|
provides = libgfortran.so
|
||||||
|
provides = libubsan.so
|
||||||
|
provides = libasan.so
|
||||||
|
provides = libtsan.so
|
||||||
|
provides = liblsan.so
|
||||||
|
options = !emptydirs
|
||||||
|
options = !strip
|
||||||
|
|
||||||
|
pkgname = gcc10-fortran
|
||||||
|
pkgdesc = Fortran front-end for GCC (10.x.x)
|
||||||
|
depends = gcc10=10.3.0-2
|
Loading…
Reference in New Issue
Block a user