#!/usr/bin/make -f

pybasever   := 3.11
pyshortver  := 311
version     := 65.6.3
srcname     := setuptools

_prefix     := /opt/alt/python$(pyshortver)
_bindir     := $(_prefix)/bin
_libdir     := $(_prefix)/lib
_datadir    := $(_prefix)/share
pylibdir    := $(_libdir)/python$(pybasever)

__alt_pythonXY := $(_bindir)/python$(pybasever)
buildroot      := $(CURDIR)/debian/tmp

python_wheelname := $(srcname)-$(version)-py3-none-any.whl
python_wheeldir  := $(_datadir)/python-wheels

alt_pythonXY_sitelib := $(shell LD_LIBRARY_PATH=$(_libdir):$$LD_LIBRARY_PATH \
    $(__alt_pythonXY) -c \
    "from distutils.sysconfig import get_python_lib; print(get_python_lib())" 2>/dev/null)

export LD_LIBRARY_PATH := $(_libdir):$(LD_LIBRARY_PATH)
export PYTHONWARNINGS := d

# Bootstrap mode: pip not yet available
ifeq ($(wildcard $(_bindir)/pip3),)
  with_bootstrap := 1
else
  with_bootstrap := 0
endif

%:
	dh $@

override_dh_auto_build:
	patch -p1 < debian/patches/CVE-2024-6345.patch
	patch -p1 < debian/patches/CVE-2025-47273.patch
ifeq ($(with_bootstrap),1)
	LD_LIBRARY_PATH=$(_libdir):$$LD_LIBRARY_PATH \
	    $(__alt_pythonXY) setup.py build
else
	$(__alt_pythonXY) setup.py bdist_wheel
endif
	find ./ -type f -name "*whl*"

override_dh_auto_install:
ifeq ($(with_bootstrap),1)
	LD_LIBRARY_PATH=$(_libdir):$$LD_LIBRARY_PATH \
	    $(__alt_pythonXY) setup.py install --skip-build --root $(buildroot)
else
	$(_bindir)/pip3 install -I dist/$(python_wheelname) \
	    --root $(buildroot) \
	    --no-deps \
	    --no-index
	sed -i '/\/usr\/bin\/easy_install,/d' \
	    $(buildroot)$(alt_pythonXY_sitelib)/$(srcname)-$(version).dist-info/RECORD
endif

	# Remove bundled .exe files
	find $(buildroot)$(alt_pythonXY_sitelib) -name '*.exe' | xargs rm -f
	# Remove test suite
	rm -rf $(buildroot)$(alt_pythonXY_sitelib)/setuptools/tests
ifeq ($(with_bootstrap),0)
	sed -i '/^setuptools\/tests\//d' \
	    $(buildroot)$(alt_pythonXY_sitelib)/$(srcname)-$(version).dist-info/RECORD
	# Install wheel file
	mkdir -p $(buildroot)$(python_wheeldir)
	install -p dist/$(python_wheelname) -t $(buildroot)$(python_wheeldir)
	dh_movefiles -palt-python$(pyshortver)-setuptools-wheel \
	    .$(python_wheeldir)/$(python_wheelname)
endif

	dh_movefiles -palt-python$(pyshortver)-setuptools \
	    .$(alt_pythonXY_sitelib)/setuptools/ \
	    .$(alt_pythonXY_sitelib)/pkg_resources/ \
	    .$(alt_pythonXY_sitelib)/_distutils_hack/

	# Handle egg-info (bootstrap) or dist-info (non-bootstrap) — name includes version
	$(eval INFO_DIR := $(notdir $(wildcard \
	    $(buildroot)$(alt_pythonXY_sitelib)/$(srcname)-*.egg-info \
	    $(buildroot)$(alt_pythonXY_sitelib)/$(srcname)-*.dist-info)))
	dh_movefiles -palt-python$(pyshortver)-setuptools \
	    .$(alt_pythonXY_sitelib)/$(INFO_DIR)

	# Handle .pth files
	$(eval PTH_FILES := $(notdir $(wildcard $(buildroot)$(alt_pythonXY_sitelib)/*.pth)))
	dh_movefiles -palt-python$(pyshortver)-setuptools \
	    $(addprefix .$(alt_pythonXY_sitelib)/,$(PTH_FILES))

override_dh_shlibdeps:

override_dh_auto_test:

override_dh_auto_clean:

override_dh_builddeb:
	dh_builddeb
	if [ $$(find $(buildroot) -type f | wc -l) -gt 0 ]; then \
	    echo "Installed but unpackaged:"; \
	    find $(buildroot) -type f | sed -e 's#$(buildroot)##g'; \
	    exit 1; \
	fi
