summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorchrisjbillington2021-04-22 08:30:32 +1000
committerchrisjbillington2021-04-22 09:03:45 +1000
commite02abb2fb3ae05ce7ff2416dd2ed32966f70015d (patch)
treeca9f283c69a4c66e9a461cc1d060efbe2c2b258d
downloadaur-e02abb2fb3ae05ce7ff2416dd2ed32966f70015d.tar.gz
5.11.15.zen1
-rw-r--r--.SRCINFO52
-rw-r--r--PKGBUILD98
-rw-r--r--PKGBUILD.template101
-rw-r--r--update.py95
4 files changed, 346 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..3896c4597ca2
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,52 @@
+pkgbase = linux-zen-versioned-bin
+ pkgdesc = The Linux ZEN kernel and modules | repackaged with a unique package name for each version
+ pkgver = 5.11.15.zen1
+ pkgrel = 2
+ url = https://github.com/zen-kernel/zen-kernel/commits/v5.11.15-zen1
+ arch = x86_64
+ license = GPL2
+ noextract = linux-zen-5.11.15.zen1-2-x86_64.pkg.tar.zst
+ noextract = linux-zen-headers-5.11.15.zen1-2-x86_64.pkg.tar.zst
+ noextract = linux-zen-docs-5.11.15.zen1-2-x86_64.pkg.tar.zst
+ options = !strip
+ source = https://archlinux.mirror.digitalpacific.com.au/extra/os/x86_64/linux-zen-5.11.15.zen1-2-x86_64.pkg.tar.zst
+ source = https://archlinux.mirror.digitalpacific.com.au/extra/os/x86_64/linux-zen-headers-5.11.15.zen1-2-x86_64.pkg.tar.zst
+ source = https://archlinux.mirror.digitalpacific.com.au/extra/os/x86_64/linux-zen-docs-5.11.15.zen1-2-x86_64.pkg.tar.zst
+ sha256sums = 7b290193967b81446a195b18f339ce1bf0a1309547bed18cea91779e2fae4594
+ sha256sums = 024803a203f3585849bf8f5ba5c46407ccf029726f2222236f1465add386e815
+ sha256sums = 8d4fe426e9f06dffefa8bbe4141a00ed6c039ece0a9a4b532fdf33d6e51211c7
+
+pkgname = linux-zen-versioned-bin
+ pkgdesc = Dummy package depending on linux5.11.15.zen1-2-zen-bin
+ depends = linux5.11.15.zen1-2-zen-bin
+ optdepends = grub-hook: to run grub-mkconfig when kernels are added/removed
+
+pkgname = linux-zen-versioned-headers-bin
+ pkgdesc = Dummy package depending on linux5.11.15.zen1-2-zen-headers-bin
+ depends = linux5.11.15.zen1-2-zen-headers-bin
+
+pkgname = linux-zen-versioned-docs-bin
+ pkgdesc = Dummy package depending on linux5.11.15.zen1-2-zen-docs-bin
+ depends = linux5.11.15.zen1-2-zen-docs-bin
+
+pkgname = linux5.11.15.zen1-2-zen-bin
+ pkgdesc = The Linux ZEN kernel and modules, version 5.11.15-zen1-2-zen
+ depends = coreutils
+ depends = initramfs
+ depends = kmod
+ optdepends = crda: to set the correct wireless channels of your country
+ optdepends = linux-firmware: firmware images needed for some devices
+ provides = VHBA-MODULE
+ provides = VIRTUALBOX-GUEST-MODULES
+ provides = WIREGUARD-MODULE
+ conflicts = linux-zen
+
+pkgname = linux5.11.15.zen1-2-zen-headers-bin
+ pkgdesc = Headers and scripts for building modules for the Linux ZEN kernel 5.11.15-zen1-2-zen
+ depends = pahole
+ conflicts = linux-zen-headers
+
+pkgname = linux5.11.15.zen1-2-zen-docs-bin
+ pkgdesc = Documentation for the Linux ZEN kernel 5.11.15-zen1-2-zen
+ conflicts = linux-zen-docs
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..da45e37d6a5f
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,98 @@
+# Maintainer: Chris Billington <chrisjbillington@gmail.com>
+_pkgname=linux-zen
+_pkgver=5.11.15.zen1
+_kernver=5.11.15
+_zenver=zen1
+_pkgrel=2
+pkgbase="${_pkgname}-versioned-bin"
+KERNNAME="${_kernver}-${_zenver}-${_pkgrel}-zen"
+_versioned_pkgname="linux${_pkgver}-${_pkgrel}-zen"
+pkgname=("${_pkgname}-versioned-bin"
+ "${_pkgname}-versioned-headers-bin"
+ "${_pkgname}-versioned-docs-bin"
+ "${_versioned_pkgname}-bin"
+ "${_versioned_pkgname}-headers-bin"
+ "${_versioned_pkgname}-docs-bin")
+pkgver=${_pkgver}
+pkgrel=${_pkgrel}
+pkgdesc="The Linux ZEN kernel and modules | repackaged with a unique package name for each version"
+url="https://github.com/zen-kernel/zen-kernel/commits/v5.11.15-zen1"
+arch=(x86_64)
+license=(GPL2)
+options=('!strip')
+
+_kernpkg=${_pkgname}-${_pkgver}-${_pkgrel}-${arch}.pkg.tar.zst
+_headerspkg=${_pkgname}-headers-${_pkgver}-${_pkgrel}-${arch}.pkg.tar.zst
+_docspkg=${_pkgname}-docs-${_pkgver}-${_pkgrel}-${arch}.pkg.tar.zst
+
+# See if the sources are available from our own mirror:
+_kernsrc=$(pacman -Spdd "${_pkgname}" 2> /dev/null)
+_headerssrc=$(pacman -Spdd "${_pkgname}-headers" 2> /dev/null)
+_docssrc=$(pacman -Spdd "${_pkgname}-docs" 2> /dev/null)
+
+# If not, then use the Arch Linux archive:
+if [ "$(basename "${_kernsrc}" 2> /dev/null)" != "${_kernpkg}" ]; then
+ _arch_archive=https://archive.archlinux.org/packages/.all
+ _kernsrc=${_arch_archive}/${_kernpkg}
+ _headerssrc=${_arch_archive}/${_headerspkg}
+ _docssrc=${_arch_archive}/${_docspkg}
+fi
+
+source=("${_kernsrc}"
+ "${_headerssrc}"
+ "${_docssrc}")
+
+noextract=("${source[@]##*/}")
+
+sha256sums=('7b290193967b81446a195b18f339ce1bf0a1309547bed18cea91779e2fae4594'
+ '024803a203f3585849bf8f5ba5c46407ccf029726f2222236f1465add386e815'
+ '8d4fe426e9f06dffefa8bbe4141a00ed6c039ece0a9a4b532fdf33d6e51211c7')
+
+package_linux-zen-versioned-bin() {
+ pkgdesc="Dummy package depending on ${_versioned_pkgname}-bin"
+ depends=("${_versioned_pkgname}-bin")
+ optdepends=('grub-hook: to run grub-mkconfig when kernels are added/removed')
+}
+
+package_linux-zen-versioned-headers-bin() {
+ pkgdesc="Dummy package depending on ${_versioned_pkgname}-headers-bin"
+ depends=("${_versioned_pkgname}-headers-bin")
+}
+
+package_linux-zen-versioned-docs-bin() {
+ pkgdesc="Dummy package depending on ${_versioned_pkgname}-docs-bin"
+ depends=("${_versioned_pkgname}-docs-bin")
+}
+
+package_linux5.11.15.zen1-2-zen-bin() {
+ pkgdesc="The Linux ZEN kernel and modules, version ${KERNNAME}"
+ depends=(coreutils
+ initramfs
+ kmod)
+ conflicts=("${_pkgname}")
+ optdepends=('crda: to set the correct wireless channels of your country'
+ 'linux-firmware: firmware images needed for some devices')
+ provides=(VHBA-MODULE
+ VIRTUALBOX-GUEST-MODULES
+ WIREGUARD-MODULE)
+ tar -xf "${_kernpkg}" -C "${pkgdir}"
+ rm "${pkgdir}"/{.MTREE,.BUILDINFO,.PKGINFO}
+ sed -ic "s/${_pkgname}/${KERNNAME}/" "${pkgdir}/usr/lib/modules/${KERNNAME}/pkgbase"
+}
+
+package_linux5.11.15.zen1-2-zen-headers-bin() {
+ pkgdesc="Headers and scripts for building modules for the Linux ZEN kernel ${KERNNAME}"
+ depends=(pahole)
+ conflicts=("${_pkgname}-headers")
+ tar -xf "${_headerspkg}" -C "${pkgdir}"
+ rm "${pkgdir}"/{.MTREE,.BUILDINFO,.PKGINFO}
+ mv "${pkgdir}/usr/src/"{"${_pkgname}","${_versioned_pkgname}"}
+}
+
+package_linux5.11.15.zen1-2-zen-docs-bin() {
+ pkgdesc="Documentation for the Linux ZEN kernel ${KERNNAME}"
+ conflicts=("${_pkgname}-docs")
+ tar -xf "${_docspkg}" -C "${pkgdir}"
+ rm "${pkgdir}"/{.MTREE,.BUILDINFO,.PKGINFO}
+ mv "${pkgdir}/usr/share/doc/"{"${_pkgname}","${_versioned_pkgname}"}
+}
diff --git a/PKGBUILD.template b/PKGBUILD.template
new file mode 100644
index 000000000000..6b72c4f0675c
--- /dev/null
+++ b/PKGBUILD.template
@@ -0,0 +1,101 @@
+# Maintainer: Chris Billington <chrisjbillington@gmail.com>
+_pkgname=linux-zen
+_pkgver=%PKGVER
+_kernver=%KERNVER
+_zenver=%ZENVER
+_pkgrel=%PKGREL
+pkgbase="${_pkgname}-versioned-bin"
+KERNNAME="${_kernver}-${_zenver}-${_pkgrel}-zen"
+_versioned_pkgname="linux${_pkgver}-${_pkgrel}-zen"
+pkgname=("${_pkgname}-versioned-bin"
+ "${_pkgname}-versioned-headers-bin"
+ "${_pkgname}-versioned-docs-bin"
+ "${_versioned_pkgname}-bin"
+ "${_versioned_pkgname}-headers-bin"
+ "${_versioned_pkgname}-docs-bin")
+pkgver=${_pkgver}
+pkgrel=${_pkgrel}
+pkgdesc="%KERN_PKGDESC | repackaged with a unique package name for each version"
+url="%URL"
+arch=(x86_64)
+license=(GPL2)
+options=('!strip')
+
+_kernpkg=${_pkgname}-${_pkgver}-${_pkgrel}-${arch}.pkg.tar.zst
+_headerspkg=${_pkgname}-headers-${_pkgver}-${_pkgrel}-${arch}.pkg.tar.zst
+_docspkg=${_pkgname}-docs-${_pkgver}-${_pkgrel}-${arch}.pkg.tar.zst
+
+# See if the sources are available from our own mirror:
+_kernsrc=$(pacman -Spdd "${_pkgname}" 2> /dev/null)
+_headerssrc=$(pacman -Spdd "${_pkgname}-headers" 2> /dev/null)
+_docssrc=$(pacman -Spdd "${_pkgname}-docs" 2> /dev/null)
+
+# If not, then use the Arch Linux archive:
+if [ "$(basename "${_kernsrc}" 2> /dev/null)" != "${_kernpkg}" ]; then
+ _arch_archive=https://archive.archlinux.org/packages/.all
+ _kernsrc=${_arch_archive}/${_kernpkg}
+ _headerssrc=${_arch_archive}/${_headerspkg}
+ _docssrc=${_arch_archive}/${_docspkg}
+fi
+
+source=("${_kernsrc}"
+ "${_headerssrc}"
+ "${_docssrc}")
+
+noextract=("${source[@]##*/}")
+
+sha256sums=('0358dc97518d1e1dcb8aae3b0a3c9d0e43dd69708cd92ecef22e6e9dd3f9d1c8'
+ 'b6f662509ddcaa185f8eef31157cbb1e576efa6453e1a86c440bd3a21e1bc591'
+ '19802a951538749da4d5120ff89d1fc792e4bb8f465c1d3455d3803084e5f922')
+
+package_linux-zen-versioned-bin() {
+ pkgdesc="Dummy package depending on ${_versioned_pkgname}-bin"
+ depends=("${_versioned_pkgname}-bin")
+ optdepends=('grub-hook: to run grub-mkconfig when kernels are added/removed')
+}
+
+package_linux-zen-versioned-headers-bin() {
+ pkgdesc="Dummy package depending on ${_versioned_pkgname}-headers-bin"
+ depends=("${_versioned_pkgname}-headers-bin")
+}
+
+package_linux-zen-versioned-docs-bin() {
+ pkgdesc="Dummy package depending on ${_versioned_pkgname}-docs-bin"
+ depends=("${_versioned_pkgname}-docs-bin")
+}
+
+package_linux%PKGVER-%PKGREL-zen-bin() {
+ pkgdesc="%KERN_PKGDESC, version ${KERNNAME}"
+ %KERN_DEPENDS
+ %KERN_CONFLICTS
+ %KERN_OPTDEPENDS
+ %KERN_PROVIDES
+ %KERN_REPLACES
+ tar -xf "${_kernpkg}" -C "${pkgdir}"
+ rm "${pkgdir}"/{.MTREE,.BUILDINFO,.PKGINFO}
+ sed -ic "s/${_pkgname}/${KERNNAME}/" "${pkgdir}/usr/lib/modules/${KERNNAME}/pkgbase"
+}
+
+package_linux%PKGVER-%PKGREL-zen-headers-bin() {
+ pkgdesc="%HEADERS_PKGDESC ${KERNNAME}"
+ %HEADERS_DEPENDS
+ %HEADERS_CONFLICTS
+ %HEADERS_OPTDEPENDS
+ %HEADERS_PROVIDES
+ %HEADERS_REPLACES
+ tar -xf "${_headerspkg}" -C "${pkgdir}"
+ rm "${pkgdir}"/{.MTREE,.BUILDINFO,.PKGINFO}
+ mv "${pkgdir}/usr/src/"{"${_pkgname}","${_versioned_pkgname}"}
+}
+
+package_linux%PKGVER-%PKGREL-zen-docs-bin() {
+ pkgdesc="%DOCS_PKGDESC ${KERNNAME}"
+ %DOCS_DEPENDS
+ %DOCS_CONFLICTS
+ %DOCS_OPTDEPENDS
+ %DOCS_PROVIDES
+ %DOCS_REPLACES
+ tar -xf "${_docspkg}" -C "${pkgdir}"
+ rm "${pkgdir}"/{.MTREE,.BUILDINFO,.PKGINFO}
+ mv "${pkgdir}/usr/share/doc/"{"${_pkgname}","${_versioned_pkgname}"}
+}
diff --git a/update.py b/update.py
new file mode 100644
index 000000000000..85399917619b
--- /dev/null
+++ b/update.py
@@ -0,0 +1,95 @@
+import subprocess
+import json
+import string
+from pathlib import Path
+
+NAME = 'linux-zen'
+
+# Script to update the PKGBUILD to the latest [extra]/linux-zen
+
+def get_current():
+ cmd = ['bash', '-c', 'source PKGBUILD; echo ${pkgver}-${pkgrel}']
+ version = subprocess.check_output(cmd).decode('utf8').strip()
+ return version
+
+
+def get_latest():
+ cmd = ['pacman', '-Si', NAME]
+ info = subprocess.check_output(cmd).decode('utf8').strip()
+ version = info.split('Version', 1)[1].split(':', 1)[1].split('\n', 1)[0].strip()
+ return version
+
+
+def get_info(pkgname):
+ url = f"https://archlinux.org/packages/extra/x86_64/{pkgname}/json/"
+ data = subprocess.check_output(['curl', '-s', url]).decode()
+ return json.loads(data)
+
+
+class Template(string.Template):
+ delimiter="%"
+
+
+def arr(name, values):
+ delimiter = '\n' + ' ' * (len(name) + 4)
+ values = [f"'{value}'" if ':' in value else value for value in values]
+ return f"{name}=({delimiter.join(values)})"
+
+
+def update():
+ kern_info = get_info(NAME)
+ headers_info = get_info(f'{NAME}-headers')
+ docs_info = get_info(f'{NAME}-docs')
+
+ template = Template(Path('PKGBUILD.template').read_text())
+
+ pkgbuild = template.substitute(
+ PKGVER=kern_info['pkgver'],
+ KERNVER=kern_info['pkgver'].rsplit('.', 1)[0],
+ ZENVER=kern_info['pkgver'].rsplit('.', 1)[1],
+ PKGREL=kern_info['pkgrel'],
+ URL=kern_info['url'],
+ KERN_PKGDESC=kern_info['pkgdesc'],
+ KERN_DEPENDS=arr("depends", kern_info['depends']),
+ KERN_CONFLICTS=arr("conflicts", kern_info['conflicts'] + ['"${_pkgname}"']),
+ KERN_OPTDEPENDS=arr("optdepends", kern_info['optdepends']),
+ KERN_PROVIDES=arr("provides", kern_info['provides']),
+ KERN_REPLACES=arr("replaces", kern_info['replaces']),
+ HEADERS_PKGDESC=headers_info['pkgdesc'],
+ HEADERS_DEPENDS=arr("depends", headers_info['depends']),
+ HEADERS_CONFLICTS=arr(
+ "conflicts", headers_info['conflicts'] + ['"${_pkgname}-headers"']
+ ),
+ HEADERS_OPTDEPENDS=arr("optdepends", headers_info['optdepends']),
+ HEADERS_PROVIDES=arr("provides", headers_info['provides']),
+ HEADERS_REPLACES=arr("replaces", headers_info['replaces']),
+ DOCS_PKGDESC=docs_info['pkgdesc'],
+ DOCS_DEPENDS=arr("depends", docs_info['depends']),
+ DOCS_CONFLICTS=arr(
+ "conflicts", docs_info['conflicts'] + ['"${_pkgname}-docs"']
+ ),
+ DOCS_OPTDEPENDS=arr("optdepends", docs_info['optdepends']),
+ DOCS_PROVIDES=arr("provides", docs_info['provides']),
+ DOCS_REPLACES=arr("replaces", docs_info['replaces']),
+ )
+
+ # Delete empty arrays:
+ pkgbuild = '\n'.join(
+ line for line in pkgbuild.splitlines() if not line.endswith('=()')
+ )
+ Path('PKGBUILD').write_text(pkgbuild + '\n')
+ subprocess.check_call(['updpkgsums'])
+ with open('.SRCINFO', 'w') as f:
+ f.write(subprocess.check_output(['makepkg', '--printsrcinfo']).decode())
+ subprocess.check_call(['git', 'add', 'PKGBUILD', '.SRCINFO'])
+ subprocess.check_call(
+ ['git', 'commit', '-m', f"{kern_info['pkgver']}-{kern_info['pkgrel']}"]
+ )
+ subprocess.check_call(['git', 'push'])
+
+if __name__ == '__main__':
+ if get_current() == get_latest():
+ print(f"{NAME}-versioned-bin is up to date")
+ else:
+ print(f"{NAME}-versioned-bin is out of date!")
+ update()