flatpak-builder-tools icon indicating copy to clipboard operation
flatpak-builder-tools copied to clipboard

flatpak-pip-generator balks on requirements-parser

Open memnochproxy opened this issue 1 year ago • 2 comments

flatpak-builder version

1.4.2

Linux distribution and version

Ubuntu 24.04

Affected flatpak-builder tool

pip/flatpak-pip-generator

flatpak-builder tool cli args

--repo=repo --force-clean --user build.d com.candelatech.py3-10

Source repository URL

private

Flatpak-builder manifest URL

private

Description

When running a generator from a makefile target, flatpak-pip-generator cannot finish find the requirements-parser that it project virtual environment has installed:

 $ make
( \
	source ./builder-env/bin/activate && \
	pip3 install requirements-parser pipdeptree \
)
Requirement already satisfied: requirements-parser in ./builder-env/lib/python3.12/site-packages (0.9.0)
Requirement already satisfied: pipdeptree in ./builder-env/lib/python3.12/site-packages (2.21.0)
Requirement already satisfied: types-setuptools>=69.1.0 in ./builder-env/lib/python3.12/site-packages (from requirements-parser) (70.0.0.20240523)
Requirement already satisfied: packaging>=23.1 in ./builder-env/lib/python3.12/site-packages (from pipdeptree) (24.0)
Requirement already satisfied: pip>=23.1.2 in ./builder-env/lib/python3.12/site-packages (from pipdeptree) (24.0)
( \
	cd /home/jreynolds/git; \
	if [ ! -d flatpak-builder-tools ]; then \
    	git clone https://github.com/flatpak/flatpak-builder-tools/; \
	fi \
)
( \
	source ./builder-env/bin/activate && \
	./builder-env/bin/python3 /home/jreynolds/git/flatpak-builder-tools/pip/flatpak-pip-generator \
		--requirements-file requirements.txt \
		--build-only -o requirements \
)
Requirements modules is not installed. Run "pip install requirements-parser"
make: *** [Makefile:34: requirements] Error 1

This is the same error I get when executing the command from bash, not in make.

Python version 3.12.3

SHELL=/bin/bash
PYV=py3-10
PAKNAME=com.candelatech.$(PYV)
PAKFILE=$(PAKNAME).flatpak
PAKJSON=$(PAKNAME).json
BUILDDIR=build.d
BUNDLEFILE=candela-$(PYV).flatpak
PAK_TOOLS=${HOME}/git/flatpak-builder-tools/pip
PAK_PIP=$(PAK_TOOLS)/flatpak-pip-generator

all: bundle

builder-env:
	if [ ! -d builder-env ]; then mkdir builder-env; fi
	if [ ! -r builder-env/bin/activate ]; then python3 -m venv builder-env; fi

flatpak-tools: builder-env
	( \
		source ./builder-env/bin/activate && \
		pip3 install requirements-parser pipdeptree \
	)
	( \
		cd ${HOME}/git; \
		if [ ! -d flatpak-builder-tools ]; then \
	    	git clone https://github.com/flatpak/flatpak-builder-tools/; \
		fi \
	)

# this builds a requirements.json file
requirements:
	( \
		source ./builder-env/bin/activate && \
		./builder-env/bin/python3 $(PAK_PIP) \
			--requirements-file requirements.txt \
			--build-only -o requirements \
	)

bundle: $(PAKFILE)
	flatpak build-bundle -v ./repo $(BUNDLEFILE) $(PAKNAME)

$(BUILDDIR):
	mkdir $(BUILDDIR)

$(PAKFILE): | flatpak-tools $(BUILDDIR) $(PAKJSON) requirements
	cp ~/lfs/py-scripts/update_dependencies.py .
	flatpak-builder --repo=repo --force-clean --user $(BUILDDIR) $(PAKJSON)

run: $(PAKFILE)
	flatpak-builder --run $(BUILDDIR) $(PAKJSON) ctpy.bash

clean:
	rm -rf $(BUILDDIR) .flatpak-builder $(BUNDLEFILE)

distclean: clean
	rm -rf repo/* repo/.lock builder-env

memnochproxy avatar May 23 '24 22:05 memnochproxy

This makefile does work with Fedora 36, python 3.10.11

memnochproxy avatar May 23 '24 22:05 memnochproxy

Got this Requirements modules is not installed. Run "pip install requirements-parser" too. In Python interpreter got:

>>> import requirements
...
ModuleNotFoundError: No module named 'pkg_resources'
>>>

Running

pip3 install setuptools

fixed error.

yyyyyiiiiii avatar Jul 08 '24 11:07 yyyyyiiiiii

This is not an issue with the script but rather how it venv etc. is being set up.

bbhtt avatar May 01 '25 12:05 bbhtt