From c284092a15038355893c3ae20a42e3eb01d8295c Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Mon, 5 Apr 2021 14:09:22 +0200 Subject: Add .pyproject.toml file for PEP 517 compliance --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..9787c3bd --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" -- cgit v1.2.3-54-g00ecf From 7f691ce1c992c16551459162fbef593daad1e4c8 Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Mon, 5 Apr 2021 15:30:18 +0200 Subject: Switch to setup.cfg Configure setup.cfg to find all Python packages. Add more metadata to package. --- VERSION | 1 - __init__.py | 3 --- archinstall/__init__.py | 4 +++- setup.cfg | 35 +++++++++++++++++++++++++++++++++++ setup.py | 29 ++--------------------------- 5 files changed, 40 insertions(+), 32 deletions(-) delete mode 100644 VERSION delete mode 100644 __init__.py create mode 100644 setup.cfg diff --git a/VERSION b/VERSION deleted file mode 100644 index abae0d9a..00000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -2.1.3 \ No newline at end of file diff --git a/__init__.py b/__init__.py deleted file mode 100644 index bd22d3f4..00000000 --- a/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# This __init__ file is just here to support the -# use of archinstall as a git submodule. -from .archinstall import * diff --git a/archinstall/__init__.py b/archinstall/__init__.py index d4452d38..c2773b64 100644 --- a/archinstall/__init__.py +++ b/archinstall/__init__.py @@ -14,6 +14,8 @@ from .lib.output import * from .lib.storage import * from .lib.hardware import * +__version__ = "2.1.3" + ## Basic version of arg.parse() supporting: ## --key=value ## --boolean @@ -27,4 +29,4 @@ for arg in sys.argv[1:]: key, val = arg[2:], True arguments[key] = val else: - positionals.append(arg) \ No newline at end of file + positionals.append(arg) diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..ccbddf8a --- /dev/null +++ b/setup.cfg @@ -0,0 +1,35 @@ +[metadata] +name = archinstall +version = attr: archinstall.__version__ +description = Arch Linux installer - guided, templates etc. +author = Anton Hvornum +author_email = anton@hvornum.se +long_description = file: README.md +long_description_content_type = text/markdown +license = GPL +license_files = + LICENSE +project_urls = + Source = https://github.com/archlinux/archinstall + Documentation = https://archinstall.readthedocs.io/ +classifers = + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + License :: OSI Approved :: GNU General Public License v3 (GPLv3) + Operating System :: POSIX :: Linux + +[options] +packages = find: +python_requires = >= 3.8 + +[options.packages.find] +include = + archinstall + archinstall.* + +[options.package_data] +archinstall = + examples/*.py + profiles/*.py + profiles/applications/*.py diff --git a/setup.py b/setup.py index 35d51025..a4f49f92 100644 --- a/setup.py +++ b/setup.py @@ -1,27 +1,2 @@ -import setuptools, glob, shutil - -with open("README.md", "r") as fh: - long_description = fh.read() - -with open('VERSION', 'r') as fh: - VERSION = fh.read() - -setuptools.setup( - name="archinstall", - version=VERSION, - author="Anton Hvornum", - author_email="anton@hvornum.se", - description="Arch Linux installer - guided, templates etc.", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/archlinux/archinstall", - packages=setuptools.find_packages(), - classifiers=[ - "Programming Language :: Python :: 3.8", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Operating System :: POSIX :: Linux", - ], - python_requires='>=3.8', - setup_requires=['wheel'], - package_data={'archinstall': glob.glob('examples/*.py') + glob.glob('profiles/*.py') + glob.glob('profiles/applications/*.py')}, -) +import setuptools +setuptools.setup() -- cgit v1.2.3-54-g00ecf From ecf7a2a237a04882c93fd4d743b037f7af6bc253 Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Mon, 5 Apr 2021 16:21:12 +0200 Subject: Add console_scripts archinstall entry point archinstall should be callable from the command-line. Previously this was achieved with a shell script, however Python packages contain a built in way to to this via the entry points mechanism. --- archinstall/__init__.py | 29 +++++++++++++++++++++++++++++ archinstall/__main__.py | 30 +----------------------------- setup.cfg | 4 ++++ 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/archinstall/__init__.py b/archinstall/__init__.py index c2773b64..d98b6daa 100644 --- a/archinstall/__init__.py +++ b/archinstall/__init__.py @@ -30,3 +30,32 @@ for arg in sys.argv[1:]: arguments[key] = val else: positionals.append(arg) + + +# TODO: Learn the dark arts of argparse... +# (I summon thee dark spawn of cPython) + +def run_as_a_module(): + """ + Since we're running this as a 'python -m archinstall' module OR + a nuitka3 compiled version of the project. + This function and the file __main__ acts as a entry point. + """ + + # Add another path for finding profiles, so that list_profiles() in Script() can find guided.py, unattended.py etc. + storage['PROFILE_PATH'].append(os.path.abspath(f'{os.path.dirname(__file__)}/examples')) + + if len(sys.argv) == 1: + sys.argv.append('guided') + + try: + script = Script(sys.argv[1]) + except ProfileNotFound as err: + print(f"Couldn't find file: {err}") + sys.exit(1) + + os.chdir(os.path.abspath(os.path.dirname(__file__))) + + # Remove the example directory from the PROFILE_PATH, to avoid guided.py etc shows up in user input questions. + storage['PROFILE_PATH'].pop() + script.execute() diff --git a/archinstall/__main__.py b/archinstall/__main__.py index 63c2f715..86ed0108 100644 --- a/archinstall/__main__.py +++ b/archinstall/__main__.py @@ -2,33 +2,5 @@ import archinstall import sys import os -# TODO: Learn the dark arts of argparse... -# (I summon thee dark spawn of cPython) - -def run_as_a_module(): - """ - Since we're running this as a 'python -m archinstall' module OR - a nuitka3 compiled version of the project. - This function and the file __main__ acts as a entry point. - """ - - # Add another path for finding profiles, so that list_profiles() in Script() can find guided.py, unattended.py etc. - archinstall.storage['PROFILE_PATH'].append(os.path.abspath(f'{os.path.dirname(__file__)}/examples')) - - if len(sys.argv) == 1: - sys.argv.append('guided') - - try: - script = archinstall.Script(sys.argv[1]) - except archinstall.ProfileNotFound as err: - print(f"Couldn't find file: {err}") - sys.exit(1) - - os.chdir(os.path.abspath(os.path.dirname(__file__))) - - # Remove the example directory from the PROFILE_PATH, to avoid guided.py etc shows up in user input questions. - archinstall.storage['PROFILE_PATH'].pop() - script.execute() - if __name__ == '__main__': - run_as_a_module() + archinstall.run_as_a_module() diff --git a/setup.cfg b/setup.cfg index ccbddf8a..3190791e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -33,3 +33,7 @@ archinstall = examples/*.py profiles/*.py profiles/applications/*.py + +[options.entry_points] +console_scripts = + archinstall = archinstall:run_as_a_module -- cgit v1.2.3-54-g00ecf From baaa70381b0e4478e056bcbaa2e75e5a94450a18 Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Mon, 5 Apr 2021 16:49:38 +0200 Subject: Remove outdated PKGBUILD files setup.cfg whitespace changes. --- PKGBUILD | 44 ----------------------------------- PKGBUILDs/archinstall-bin/PKGBUILD | 39 ------------------------------- PKGBUILDs/archinstall/PKGBUILD | 30 ------------------------ PKGBUILDs/python-archinstall/PKGBUILD | 40 ------------------------------- setup.cfg | 6 ++--- 5 files changed, 3 insertions(+), 156 deletions(-) delete mode 100644 PKGBUILD delete mode 100644 PKGBUILDs/archinstall-bin/PKGBUILD delete mode 100644 PKGBUILDs/archinstall/PKGBUILD delete mode 100644 PKGBUILDs/python-archinstall/PKGBUILD diff --git a/PKGBUILD b/PKGBUILD deleted file mode 100644 index 77e6b512..00000000 --- a/PKGBUILD +++ /dev/null @@ -1,44 +0,0 @@ -# Maintainer: Anton Hvornum -# Contributor: Giancarlo Razzolini -# Contributor: demostanis worlds - -pkgbase=archinstall-git -pkgname=('archinstall-git' 'python-archinstall-git') -pkgver=$(git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g') -pkgrel=1 -pkgdesc="Just another guided/automated Arch Linux installer with a twist" -arch=('any') -url="https://github.com/archlinux/archinstall" -license=('GPL') -depends=('python') -makedepends=('python-setuptools') - -build() { - cd "$startdir" - - python setup.py build -} - - -package_archinstall-git() { - depends=('python-archinstall-git') - conflicts=('archinstall') - cd "$startdir" - - mkdir -p "${pkgdir}/usr/bin" - - # Install a guided profile - cat - > "${pkgdir}/usr/bin/archinstall" <=3.8') -makedepends=('python>=3.8' 'nuitka') -optdepends=('pyttsx3: Adds text-to-speach support for log/screen output.') -sha256sums=('53c00f7e7ad245cd2cbbf041b5a735df2fc29454c24b1d369f678cc0610b7cea') - -build() { - cd "${pkgname}-${pkgver}" - - nuitka3 --standalone --show-progress archinstall - cp -r examples/ archinstall.dist/ -} - -package() { - echo "${srcdir}" - cd "${pkgname}-${pkgver}" - - mkdir -p "${pkgdir}/var/lib/archinstall/" - mkdir -p "${pkgdir}/usr/bin" - - mv archinstall.dist/* "${pkgdir}/var/lib/archinstall/" - - echo '#!/bin/bash' > "${pkgdir}/usr/bin/archinstall-bin" - echo '(cd /var/lib/archinstall && exec ./archinstall)' >> "${pkgdir}/usr/bin/archinstall-bin" - - chmod +x "${pkgdir}/var/lib/archinstall/archinstall" - chmod +x "${pkgdir}/usr/bin/archinstall-bin" -} diff --git a/PKGBUILDs/archinstall/PKGBUILD b/PKGBUILDs/archinstall/PKGBUILD deleted file mode 100644 index 7b1c4947..00000000 --- a/PKGBUILDs/archinstall/PKGBUILD +++ /dev/null @@ -1,30 +0,0 @@ -# Maintainer: Anton Hvornum -# Contributor: demostanis worlds - -pkgname="archinstall" -pkgver="2.1.3" -pkgdesc="Installs launcher scripts for archinstall" -pkgrel=1 -url="https://github.com/archlinux/archinstall" -license=('GPLv3') -provides=("${pkgname}") -arch=('x86_64') -source=("${pkgname}-v${pkgver}-x86_64.tar.gz::https://github.com/archlinux/archinstall/archive/v$pkgver.tar.gz") -depends=('python-archinstall') -sha256sums=('53c00f7e7ad245cd2cbbf041b5a735df2fc29454c24b1d369f678cc0610b7cea') - -package() { - mkdir -p "${pkgdir}/usr/bin" - - # Install a guided profile - cat - > "${pkgdir}/usr/bin/archinstall" < -# Contributor: demostanis worlds - -pkgname="python-archinstall" -pkgver="2.1.3" -pkgdesc="Installs ${pkgname} as a python library." -pkgrel=1 -url="https://github.com/archlinux/archinstall" -source=("${pkgname}-v${pkgver}-x86_64.tar.gz::https://github.com/archlinux/archinstall/archive/v$pkgver.tar.gz") -license=('GPLv3') -provides=("${pkgname}") -arch=('x86_64') -depends=('python>=3.8') -makedepends=('python-setuptools') -optdepends=('pyttsx3: Adds text-to-speech support for log/screen output.') -sha256sums=('53c00f7e7ad245cd2cbbf041b5a735df2fc29454c24b1d369f678cc0610b7cea') - -build() { - cd "archinstall-${pkgver}" - - python setup.py build - - # Build man pages - cd docs - make man -} - -package() { - cd "archinstall-${pkgver}" - - python setup.py install \ - --prefix=/usr \ - --root="${pkgdir}" \ - --optimize=1 - - install -Dm644 docs/_build/man/archinstall.1 "${pkgdir}"/usr/share/man/man1/archinstall.1 -} - -# vim:ft=sh - diff --git a/setup.cfg b/setup.cfg index 3190791e..e5d79ef3 100644 --- a/setup.cfg +++ b/setup.cfg @@ -14,10 +14,10 @@ project_urls = Documentation = https://archinstall.readthedocs.io/ classifers = Programming Language :: Python :: 3 - Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 - License :: OSI Approved :: GNU General Public License v3 (GPLv3) - Operating System :: POSIX :: Linux + License :: OSI Approved :: GNU General Public License v3 (GPLv3) + Operating System :: POSIX :: Linux [options] packages = find: -- cgit v1.2.3-54-g00ecf From 6587d9e10f600d8595c8d4ac7ddf319a19cb41de Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Mon, 5 Apr 2021 17:58:58 +0200 Subject: Add primary PKGBUILD for testing the package --- PKGBUILD | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 PKGBUILD diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 00000000..42946c6a --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,24 @@ +# Maintainer: Anton Hvornum +# Contributor: Giancarlo Razzolini +# Contributor: demostanis worlds + +pkgname=archinstall-git +pkgver=$(git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g') +pkgrel=1 +pkgdesc="Just another guided/automated Arch Linux installer with a twist" +arch=('any') +url="https://github.com/archlinux/archinstall" +license=('GPL') +depends=('python') +makedepends=('python-setuptools') +conflicts=('archinstall' 'archinstall-python' 'python-archinstall-git') + +build() { + cd "$startdir" + python setup.py build +} + +package() { + cd "$startdir" + python setup.py install --root="${pkgdir}" --optimize=1 --skip-build +} -- cgit v1.2.3-54-g00ecf From 3011811878b79c561fc8b01687af2ba4448a8931 Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Mon, 5 Apr 2021 18:02:30 +0200 Subject: Indent using 8 spaces in PKGBUILD --- PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 42946c6a..c951e70a 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -14,11 +14,11 @@ makedepends=('python-setuptools') conflicts=('archinstall' 'archinstall-python' 'python-archinstall-git') build() { - cd "$startdir" - python setup.py build + cd "$startdir" + python setup.py build } package() { - cd "$startdir" - python setup.py install --root="${pkgdir}" --optimize=1 --skip-build + cd "$startdir" + python setup.py install --root="${pkgdir}" --optimize=1 --skip-build } -- cgit v1.2.3-54-g00ecf