]> git.webhop.me Git - bs-cst-neutrino-hd.git/commitdiff
add building python site-packages; add yt-dlp
authorMarkham <markham001@gmx.de>
Sun, 3 Mar 2024 14:41:02 +0000 (15:41 +0100)
committerMarkham <markham001@gmx.de>
Sun, 3 Mar 2024 14:41:02 +0000 (15:41 +0100)
make/environment-build.mk
make/libraries.mk
make/neutrino.mk
make/python3.mk
make/rootfs.mk
scripts/python-venv [new file with mode: 0755]

index 76410cc3a2b4831ba15fdd9366ee617416354a49..9b6f16be4cc348fd6bb84ecd74df787e4815f68f 100755 (executable)
@@ -29,7 +29,7 @@ SUPPORT_DIR  = $(BASE_DIR)/support
 CROSS_BASE   = $(BASE_DIR)/cross
 CROSS_DIR   ?= $(CROSS_BASE)
 
-HOST_CPPFLAGS   = -I$(HOSTPREFIX)/usr/include
+HOST_CPPFLAGS   = -I$(HOSTPREFIX)/usr/include -I$(HOSTPREFIX)/usr/include/python3.11
 HOST_CFLAGS    ?= -O2
 HOST_CFLAGS    += $(HOST_CPPFLAGS)
 HOST_CXXFLAGS  += $(HOST_CFLAGS)
index eac51ae13d66607e195a20ff789a73af72017ec3..839a42e650a0a8dbb6399a9a11a99b45a6fec095 100755 (executable)
@@ -661,7 +661,11 @@ $(D)/libjpeg-turbo2: $(ARCHIVE)/libjpeg-turbo-$(JPEG_TURBO2_VER).tar.gz | $(TARG
 NEVIS_XML2_FLAGS  = --without-iconv
 NEVIS_XML2_FLAGS += --with-minimum
 #endif
-$(D)/libxml2: $(ARCHIVE)/libxml2-$(LIBXML2_VER).tar.gz | $(TARGETPREFIX)
+ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd5x hd6x))
+XML2_DEPS = $(D)/python3
+endif
+
+$(D)/libxml2: $(XML2_DEPS) $(ARCHIVE)/libxml2-$(LIBXML2_VER).tar.gz | $(TARGETPREFIX)
        $(START_BUILD)
        $(UNTAR)/libxml2-$(LIBXML2_VER).tar.gz
        pushd $(BUILD_TMP)/libxml2-$(LIBXML2_VER) && \
@@ -672,9 +676,9 @@ $(D)/libxml2: $(ARCHIVE)/libxml2-$(LIBXML2_VER).tar.gz | $(TARGETPREFIX)
                        --datarootdir=/.remove \
                        --enable-shared \
                        --disable-static \
-                       --without-python \
+                       --with-python \
                        --without-debug \
-                       --without-c14n \
+                       --with-c14n \
                        --without-legacy \
                        --without-catalog \
                        --without-docbook \
index fffa67190b68c71b1e4c8bb76c374dec560fab75..854ddad79c18c61d9a80211eb25e8db7dde0fecc 100755 (executable)
@@ -118,12 +118,13 @@ NEUTRINO_DEPS += $(D)/mc
 NEUTRINO_DEPS += $(D)/rsync
 NEUTRINO_DEPS += $(D)/davfs2
 endif
-ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd5x hd6x))
-NEUTRINO_DEPS += $(D)/irqbalance
-endif
 NEUTRINO_DEPS += $(D)/libdvdcss
 NEUTRINO_DEPS += $(D)/dvdreadfs
 
+ifeq ($(BOXSERIES), $(filter $(BOXSERIES), hd5x hd6x))
+NEUTRINO_DEPS += $(D)/irqbalance
+NEUTRINO_DEPS += $(D)/yt-dlp
+endif
 
 neutrino-deps: $(NEUTRINO_DEPS)
 
index 90cb6f583eb59115e02430c3eed96a3ecdf14294..48dc333c22c0e15361b2bd51fa25affe16d11130 100644 (file)
@@ -73,6 +73,7 @@ $(D)/python3: $(D)/host_python3 $(ARCHIVE)/Python-$(PYTHON3_VER).tar.xz | $(TARG
                rm -rf $(TARGETPREFIX)/usr/bin/smtpd.py.*
                rm -rf $(TARGETPREFIX)/usr/lib/python$(PYTHON3_VER_MAJOR)/config-$(PYTHON3_VER_MAJOR)*
                chmod u+w $(TARGETPREFIX)/usr/lib/libpython$(PYTHON3_VER_MAJOR)*.so*
+               install -m 0755 $(BASE_DIR)/scripts/python-venv $(TARGETPREFIX)/usr/bin
        $(REMOVE)/Python-$(PYTHON3_VER)
        $(TOUCH)
 
@@ -91,13 +92,13 @@ HOST_PYTHON3_CONF_OPTS += \
        --without-ensurepip \
        --without-cxx-main \
        --with-expat=system \
+       --enable-openssl \
        --enable-unicodedata \
        --disable-bzip2 \
        --disable-codecs-cjk \
        --disable-curses \
        --disable-idle3 \
        --disable-nis \
-       --disable-openssl \
        --disable-ossaudiodev \
        --disable-sqlite3 \
        --disable-test-modules \
@@ -121,6 +122,64 @@ $(D)/host_python3: $(D)/host_zlib $(D)/host_libffi $(D)/host_expat $(ARCHIVE)/Py
        $(REMOVE)/Python-$(PYTHON3_VER)
        $(TOUCH)
 
+# -------------- Packages ------------------------------------------
 
+SITE_PACKAGES = $(BUILD_TMP)/sites-packages
+VENV_DIR = $(BUILD_TMP)/python3_venv
+
+CFLAGS="-I$(TARGETPREFIX)/usr/include/python$(PYTHON3_VER_MAJOR)"
+
+PACKAGES_DEPS =  $(D)/host_python3_pip $(D)/host_python3_crossenv $(D)/python3_build_crossenv $(D)/python3_upgrade_pip $(D)/python3_packages
+
+$(D)/yt-dlp: $(D)/python3_packages | $(TARGETPEFIX)
+       $(START_BUILD)
+       mkdir -p $(SITE_PACKAGES)
+       CFLAGS=$(CFLAGS) $(VENV_DIR)/bin/cross-pip -v install --upgrade --target=$(SITE_PACKAGES) yt-dlp
+       find $(SITE_PACKAGES) -name "*.so" -exec $(TARGET)-strip {} \;
+
+$(D)/python3_packages: $(PACKAGES_DEPS) | $(TARGETPEFIX)
+       $(START_BUILD)
+       mkdir -p $(SITE_PACKAGES)
+       CFLAGS=$(CFLAGS) $(VENV_DIR)/bin/cross-pip -v install --upgrade --target=$(SITE_PACKAGES) brotli
+       CFLAGS=$(CFLAGS) $(VENV_DIR)/bin/cross-pip -v install --upgrade --target=$(SITE_PACKAGES) certifi
+       CFLAGS=$(CFLAGS) $(VENV_DIR)/bin/cross-pip -v install --upgrade --target=$(SITE_PACKAGES) websockets
+       CFLAGS=$(CFLAGS) $(VENV_DIR)/bin/cross-pip -v install --upgrade --target=$(SITE_PACKAGES) requests
+       CFLAGS=$(CFLAGS) $(VENV_DIR)/bin/cross-pip -v install --upgrade --target=$(SITE_PACKAGES) mutagen
+       CFLAGS=$(CFLAGS) $(VENV_DIR)/bin/cross-pip -v install --upgrade --target=$(SITE_PACKAGES) pycryptodomex
+       find $(SITE_PACKAGES) -name "*.so" -exec $(TARGET)-strip {} \;
+       cp -fr $(SITE_PACKAGES)/bin/ $(TARGETPREFIX)/usr/
+       rm -fr $(SITE_PACKAGES)/share
+       rsync -av --exclude='/bin/' $(SITE_PACKAGES)/ $(TARGETPREFIX)/usr/lib/python$(PYTHON3_VER_MAJOR)/site-packages/
+       $(TOUCH)
+
+$(D)/python3_build_crossenv: $(D)/host_python3 $(D)/host_python3_crossenv | $(TARGETPEFIX)
+       $(START_BUILD)
+       $(REMOVE)/$(VENV_DIR)
+       @echo "Creating python crossenv."
+       @echo "This will take a few seconds ..."
+       $(HOSTPREFIX)/usr/bin/python3 -m crossenv $(TARGETPREFIX)/usr/bin/python3 $(VENV_DIR)
+       chmod 0755 $(VENV_DIR)/bin/activate
+       $(VENV_DIR)/bin/activate
+       $(TOUCH)
        
+$(D)/python3_upgrade_pip: $(D)/python3 | $(TARGETPEFIX)
+       $(START_BUILD)
+       $(VENV_DIR)/bin/cross-python3 -m pip -v install pip --upgrade
+       $(TOUCH)
+
+$(D)/host_python3_crossenv: $(D)/host_python3 $(D)/host_python3_pip | $(TARGETPEFIX)
+       $(START_BUILD)
+       @echo "Installing python crossenv."
+       $(HOSTPREFIX)/usr/bin/pip install crossenv
+       $(TOUCH)
+
+$(ARCHIVE)/get-pip.py:
+       curl -sSL https://bootstrap.pypa.io/get-pip.py -o $(ARCHIVE)/get-pip.py
+
+$(D)/host_python3_pip: $(ARCHIVE)/get-pip.py $(D)/host_python3 | $(TARGETPEFIX)
+       $(START_BUILD)
+       @echo "Installing lastest pip."
+       $(HOSTPREFIX)/usr/bin/python3 $(ARCHIVE)/get-pip.py
+       $(TOUCH)
+
        
\ No newline at end of file
index f89be2d77c4e3f74fc9d25ce5dea7d231f0efbc3..bc37d22e2dfe591be5943b1adf534037c88a1737 100755 (executable)
@@ -7,7 +7,7 @@ $(D)/rootfs: $(D)/driver
        mkdir -p $(ROOTFS_DIR)/oldroot
        rm -rf $(ROOTFS_DIR)/include $(ROOTFS_DIR)/mymodules
        rm -rf $(ROOTFS_DIR)/share/{aclocal,gdb,locale,doc} # locale not (yet) needed by anything
-       rm -rf $(ROOTFS_DIR)/lib/{cmake,gio,glib-*,libvorbisenc*,sigc++-*,pkgconfig,gettext}
+       rm -rf $(ROOTFS_DIR)/lib/{cmake,glib-*,libvorbisenc*,sigc++-*,pkgconfig,gettext}
        rm -rf $(ROOTFS_DIR)/usr/include
        rm -rf $(ROOTFS_DIR)/usr/lib/pkgconfig
        find $(ROOTFS_DIR)/share/tuxbox/neutrino/locale/ -type f \
diff --git a/scripts/python-venv b/scripts/python-venv
new file mode 100755 (executable)
index 0000000..730e49b
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+TERM_GREEN='\033[0;32m'
+TERM_YELLOW_BOLD='\033[1;33m'
+TERM_NORMAL='\033[0m'
+
+VENV=/tmp/venv
+
+if [ ! -e "${VENV}" ]; then
+       echo -e "${TERM_YELLOW_BOLD}Creating Python's virtual environment.${TERM_NORMAL}"
+       echo -e "This will take a few seconds ..."
+       python -m venv --system-site-packages "${VENV}"
+fi
+
+echo "********************************************************************************"
+echo -e "Type ${TERM_GREEN}'source "${VENV}"/bin/activate'${TERM_NORMAL} to activate Python's virtual environment."
+echo -e "To leave the virtual environment type ${TERM_GREEN}'deactivate'${TERM_NORMAL} in the terminal."
+echo "********************************************************************************"