flatpak / flatpak-builder-tools

Various helper tools for flatpak-builder
191 stars 104 forks source link

flatpak-pip-generator balks on requirements-parser #410

Open memnochproxy opened 1 month ago

memnochproxy commented 1 month ago

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 commented 1 month ago

This makefile does work with Fedora 36, python 3.10.11