Python-poetry is affected by bug <https://github.com/python-poetry/poetry/issues/8761>. Namely, if you have "keyring" <https://pypi.org/project/keyring/> installed, poetry will try to gain access to the Default collection in the (ex. GNOME) keyring, even if poetry only needs read-only access to package repositories, and even if those repos are public. Consequently, you either unlock your Default collection for poetry (unjustifiedly), or your GUI session gets effectively locked up, because any time you hit Cancel on the keyring unlock dialog, poetry immediately pops up another, and this dialog grabs the keyboard -- you cannot even switch to a character VT, for killing poetry; you have to log in via ssh for that. This issue is not visible to users who don't use "keyring" (GNOME or otherwise). For those who do, work around the problem by selecting the "null" keyring back-end, in the environment of every poetry invocation. Note: I have not regression-tested the workaround in a desktop environment where "keyring" is unavailable to begin with. Signed-off-by: Laszlo Ersek <laszlo.ersek@scylladb.com>
107 lines
2.8 KiB
Makefile
107 lines
2.8 KiB
Makefile
# Global variables
|
|
# You can set these variables from the command line.
|
|
POETRY := PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring poetry
|
|
SPHINXOPTS := -j auto
|
|
SPHINXBUILD := $(POETRY) run sphinx-build
|
|
PAPER :=
|
|
BUILDDIR := _build
|
|
SOURCEDIR := .
|
|
PREVIEW_HOST := 127.0.0.1
|
|
FLAG := opensource
|
|
CONF_PATH := ./
|
|
|
|
# Internal variables
|
|
ifeq ($(FLAG), enterprise)
|
|
CONF_PATH = ./_enterprise
|
|
endif
|
|
|
|
PAPEROPT_a4 := -D latex_paper_size=a4
|
|
PAPEROPT_letter := -D latex_paper_size=letter
|
|
ALLSPHINXOPTS := -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCEDIR) -t $(FLAG) -c $(CONF_PATH)
|
|
TESTSPHINXOPTS := $(ALLSPHINXOPTS) -W --keep-going
|
|
PROD_OPTS := -D html_theme_options.collapse_navigation='false' -D html_theme_options.navigation_depth=3 -t $(FLAG) -c $(CONF_PATH)
|
|
|
|
.PHONY: all
|
|
all: dirhtml
|
|
|
|
# Setup commands
|
|
.PHONY: setupenv
|
|
setupenv:
|
|
pip install -q 'poetry>=1.8.0'
|
|
|
|
.PHONY: setup
|
|
setup:
|
|
$(POETRY) install
|
|
|
|
.PHONY: update
|
|
update:
|
|
$(POETRY) update
|
|
|
|
# Clean commands
|
|
.PHONY: pristine
|
|
pristine: clean
|
|
git clean -dfX
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf $(BUILDDIR)/*
|
|
rm -rf _data/*
|
|
|
|
# Generate output commands
|
|
.PHONY: dirhtml
|
|
dirhtml: setup
|
|
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
|
@echo
|
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
|
|
|
.PHONY: singlehtml
|
|
singlehtml: setup
|
|
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
|
@echo
|
|
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
|
|
|
.PHONY: epub
|
|
epub: setup
|
|
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
|
@echo
|
|
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
|
|
|
.PHONY: epub3
|
|
epub3: setup
|
|
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
|
|
@echo
|
|
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
|
|
|
|
.PHONY: multiversion
|
|
multiversion: setup
|
|
$(POETRY) run sphinx-multiversion $(SOURCEDIR) $(BUILDDIR)/dirhtml $(PROD_OPTS)
|
|
@echo
|
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
|
|
|
.PHONY: redirects
|
|
redirects: setup
|
|
$(POETRY) run redirects-cli fromfile --yaml-file ./_utils/redirects.yaml --output-dir $(BUILDDIR)/dirhtml
|
|
@echo
|
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
|
|
|
# Preview commands
|
|
.PHONY: preview
|
|
preview: setup
|
|
$(POETRY) run sphinx-autobuild -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml --host $(PREVIEW_HOST) --port 5500 --ignore *.csv --ignore *.json --ignore *.yaml
|
|
|
|
.PHONY: multiversionpreview
|
|
multiversionpreview: multiversion
|
|
$(POETRY) run python -m http.server 5500 --directory $(BUILDDIR)/dirhtml
|
|
|
|
# Test commands
|
|
.PHONY: test
|
|
test: setup
|
|
$(SPHINXBUILD) -b dirhtml $(TESTSPHINXOPTS) $(BUILDDIR)/dirhtml
|
|
@echo
|
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
|
|
|
.PHONY: linkcheck
|
|
linkcheck: setup
|
|
$(SPHINXBUILD) -b linkcheck $(SOURCEDIR) $(BUILDDIR)/linkcheck
|
|
|