mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 21:56:42 +00:00
package cache: initialise with a function
This commit is contained in:
parent
bf71ef864b
commit
64156ea8c8
@ -515,6 +515,28 @@ enable_service () {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init_package_cache() {
|
||||||
|
local _ANCHOR="@?+?@" DIR
|
||||||
|
|
||||||
|
# If the package caches are unset, then populate them
|
||||||
|
if [ -z "${_CACHE_PACKAGE_LOCAL+x}" -o -z "${_CACHE_PACKAGE_GLOBAL+x}" ]; then
|
||||||
|
_CACHE_PACKAGE_LOCAL=""
|
||||||
|
_CACHE_PACKAGE_GLOBAL=""
|
||||||
|
|
||||||
|
# cache project folder for a package
|
||||||
|
for DIR in $(find $ROOT/projects/$PROJECT/packages -type d 2>/dev/null); do
|
||||||
|
[ -r "$DIR/package.mk" ] && _CACHE_PACKAGE_LOCAL+="${DIR}${_ANCHOR}\n"
|
||||||
|
done
|
||||||
|
|
||||||
|
# cache packages folder
|
||||||
|
for DIR in $(find $ROOT/$PACKAGES -type d 2>/dev/null); do
|
||||||
|
[ -r "$DIR/package.mk" ] && _CACHE_PACKAGE_GLOBAL+="${DIR}${_ANCHOR}\n"
|
||||||
|
done
|
||||||
|
|
||||||
|
export _CACHE_PACKAGE_LOCAL _CACHE_PACKAGE_GLOBAL
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
check_path() {
|
check_path() {
|
||||||
dashes="==========================="
|
dashes="==========================="
|
||||||
if [ "${PWD##/usr}" != "${PWD}" ]; then
|
if [ "${PWD##/usr}" != "${PWD}" ]; then
|
||||||
|
157
config/path
157
config/path
@ -53,36 +53,32 @@ SED="sed -i"
|
|||||||
|
|
||||||
unset LD_LIBRARY_PATH
|
unset LD_LIBRARY_PATH
|
||||||
|
|
||||||
|
# If the package caches are unset, then populate them
|
||||||
|
init_package_cache
|
||||||
|
|
||||||
# set package metadata
|
# set package metadata
|
||||||
reset_pkg_vars "$1"
|
reset_pkg_vars "$1"
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
if [ -n "$1" ]; then
|
||||||
_PKG_ROOT_NAME=${1%:*}
|
_PKG_ROOT_NAME=${1%:*}
|
||||||
_ALL_DIRS=""
|
_ALL_DIRS=""
|
||||||
_FOUND=0
|
_FOUND=0
|
||||||
_ANCHOR="@?+?@"
|
_ANCHOR="@?+?@"
|
||||||
PKG_DIR=""
|
PKG_DIR=""
|
||||||
|
|
||||||
# If the package caches are unset, then populate them
|
# Check for any available local package in preference to a global package
|
||||||
if [ -z "${_CACHE_PACKAGE_LOCAL+x}" -o -z "${_CACHE_PACKAGE_GLOBAL+x}" ]; then
|
for DIR in $(echo -e "${_CACHE_PACKAGE_LOCAL}" | grep -F "/${_PKG_ROOT_NAME}${_ANCHOR}"); do
|
||||||
_CACHE_PACKAGE_LOCAL=""
|
DIR="${DIR%${_ANCHOR}}"
|
||||||
_CACHE_PACKAGE_GLOBAL=""
|
# found first, set $PKG_DIR
|
||||||
|
PKG_DIR="$DIR"
|
||||||
|
# keep track of dirs with package.mk for detecting multiple folders
|
||||||
|
_ALL_DIRS+="${DIR}\n"
|
||||||
|
_FOUND=$((_FOUND+1))
|
||||||
|
done
|
||||||
|
|
||||||
# cache project folder for a package
|
# If there's no local package available, use the global package
|
||||||
for DIR in $(find $ROOT/projects/$PROJECT/packages -type d 2>/dev/null); do
|
if [ $_FOUND -eq 0 ]; then
|
||||||
[ -r "$DIR/package.mk" ] && _CACHE_PACKAGE_LOCAL+="${DIR}${_ANCHOR}\n"
|
for DIR in $(echo -e "${_CACHE_PACKAGE_GLOBAL}" | grep -F "/${_PKG_ROOT_NAME}${_ANCHOR}"); do
|
||||||
done
|
|
||||||
|
|
||||||
# cache packages folder
|
|
||||||
for DIR in $(find $ROOT/$PACKAGES -type d 2>/dev/null); do
|
|
||||||
[ -r "$DIR/package.mk" ] && _CACHE_PACKAGE_GLOBAL+="${DIR}${_ANCHOR}\n"
|
|
||||||
done
|
|
||||||
|
|
||||||
export _CACHE_PACKAGE_LOCAL _CACHE_PACKAGE_GLOBAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for any available local package in preference to a global package
|
|
||||||
for DIR in $(echo -e "${_CACHE_PACKAGE_LOCAL}" | grep -F "/${_PKG_ROOT_NAME}${_ANCHOR}"); do
|
|
||||||
DIR="${DIR%${_ANCHOR}}"
|
DIR="${DIR%${_ANCHOR}}"
|
||||||
# found first, set $PKG_DIR
|
# found first, set $PKG_DIR
|
||||||
PKG_DIR="$DIR"
|
PKG_DIR="$DIR"
|
||||||
@ -90,72 +86,61 @@ unset LD_LIBRARY_PATH
|
|||||||
_ALL_DIRS+="${DIR}\n"
|
_ALL_DIRS+="${DIR}\n"
|
||||||
_FOUND=$((_FOUND+1))
|
_FOUND=$((_FOUND+1))
|
||||||
done
|
done
|
||||||
|
|
||||||
# If there's no local package available, use the global package
|
|
||||||
if [ $_FOUND -eq 0 ]; then
|
|
||||||
for DIR in $(echo -e "${_CACHE_PACKAGE_GLOBAL}" | grep -F "/${_PKG_ROOT_NAME}${_ANCHOR}"); do
|
|
||||||
DIR="${DIR%${_ANCHOR}}"
|
|
||||||
# found first, set $PKG_DIR
|
|
||||||
PKG_DIR="$DIR"
|
|
||||||
# keep track of dirs with package.mk for detecting multiple folders
|
|
||||||
_ALL_DIRS+="${DIR}\n"
|
|
||||||
_FOUND=$((_FOUND+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# _FOUND multiple packages? fail
|
|
||||||
if [ $_FOUND -gt 1 ]; then
|
|
||||||
echo "Error - multiple package folders:"
|
|
||||||
echo -e "$_ALL_DIRS"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$PKG_DIR" -a -r $PKG_DIR/package.mk ]; then
|
# _FOUND multiple packages? fail
|
||||||
unset -f configure_package
|
if [ $_FOUND -gt 1 ]; then
|
||||||
. $PKG_DIR/package.mk
|
echo "Error - multiple package folders:"
|
||||||
[ -z "$PKG_SHORTDESC" ] && PKG_SHORTDESC="$PKG_NAME (autogenerated)"
|
echo -e "$_ALL_DIRS"
|
||||||
[ -z "$PKG_LONGDESC" ] && PKG_LONGDESC="$PKG_NAME (autogenerated)"
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$PKG_IS_ADDON" = "yes" ] ; then
|
if [ -n "$PKG_DIR" -a -r $PKG_DIR/package.mk ]; then
|
||||||
[ -z $PKG_SECTION ] && PKG_ADDON_ID="$PKG_NAME" || PKG_ADDON_ID="${PKG_SECTION//\//.}.$PKG_NAME"
|
unset -f configure_package
|
||||||
[ "$PKG_ADDON_IS_STANDALONE" != "yes" ] && PKG_NEED_UNPACK="${PKG_NEED_UNPACK} $(get_pkg_directory $MEDIACENTER)"
|
. $PKG_DIR/package.mk
|
||||||
|
[ -z "$PKG_SHORTDESC" ] && PKG_SHORTDESC="$PKG_NAME (autogenerated)"
|
||||||
|
[ -z "$PKG_LONGDESC" ] && PKG_LONGDESC="$PKG_NAME (autogenerated)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$PKG_IS_ADDON" = "yes" ] ; then
|
||||||
|
[ -z $PKG_SECTION ] && PKG_ADDON_ID="$PKG_NAME" || PKG_ADDON_ID="${PKG_SECTION//\//.}.$PKG_NAME"
|
||||||
|
[ "$PKG_ADDON_IS_STANDALONE" != "yes" ] && PKG_NEED_UNPACK="${PKG_NEED_UNPACK} $(get_pkg_directory $MEDIACENTER)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Automatically set PKG_SOURCE_NAME unless it is already defined.
|
||||||
|
# PKG_SOURCE_NAME will be automatically set to a name based on
|
||||||
|
# the $PKG_NAME-$PKG_VERSION convention.
|
||||||
|
#
|
||||||
|
# Any $PKG_URL that references more than a single url will abort
|
||||||
|
# the build as these are no longer supported - use mkpkg instead.
|
||||||
|
if [ -n "$PKG_URL" -a -z "$PKG_SOURCE_NAME" ]; then
|
||||||
|
if [[ $PKG_URL =~ .*\ .* ]]; then
|
||||||
|
echo "Error - packages with multiple urls are no longer supported, use mkpkg:"
|
||||||
|
echo "$PKG_URL"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
PKG_SOURCE_NAME="${PKG_URL##*/}"
|
||||||
|
case $PKG_SOURCE_NAME in
|
||||||
|
${PKG_NAME}-${PKG_VERSION}.*)
|
||||||
|
PKG_SOURCE_NAME=$PKG_SOURCE_NAME
|
||||||
|
;;
|
||||||
|
*.tar | *.tbz | *.tgz | *.txz | *.7z | *.zip)
|
||||||
|
PKG_SOURCE_NAME=${PKG_NAME}-${PKG_VERSION}.${PKG_SOURCE_NAME##*\.}
|
||||||
|
;;
|
||||||
|
*.tar.bz2 | *.tar.gz | *.tar.xz)
|
||||||
|
PKG_SOURCE_NAME=${PKG_NAME}-${PKG_VERSION}.tar.${PKG_SOURCE_NAME##*\.}
|
||||||
|
;;
|
||||||
|
*.diff | *.patch | *.diff.bz2 | *.patch.bz2 | patch-*.bz2 | *.diff.gz | *.patch.gz | patch-*.gz)
|
||||||
|
PKG_SOURCE_NAME=$PKG_SOURCE_NAME
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
PKG_SOURCE_NAME=${PKG_NAME}-${PKG_VERSION}.${PKG_SOURCE_NAME##*\.}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
# Automatically set PKG_SOURCE_NAME unless it is already defined.
|
PKG_BUILD="$BUILD/${PKG_NAME}-${PKG_VERSION}"
|
||||||
# PKG_SOURCE_NAME will be automatically set to a name based on
|
|
||||||
# the $PKG_NAME-$PKG_VERSION convention.
|
|
||||||
#
|
|
||||||
# Any $PKG_URL that references more than a single url will abort
|
|
||||||
# the build as these are no longer supported - use mkpkg instead.
|
|
||||||
if [ -n "$PKG_URL" -a -z "$PKG_SOURCE_NAME" ]; then
|
|
||||||
if [[ $PKG_URL =~ .*\ .* ]]; then
|
|
||||||
echo "Error - packages with multiple urls are no longer supported, use mkpkg:"
|
|
||||||
echo "$PKG_URL"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
PKG_SOURCE_NAME="${PKG_URL##*/}"
|
|
||||||
case $PKG_SOURCE_NAME in
|
|
||||||
${PKG_NAME}-${PKG_VERSION}.*)
|
|
||||||
PKG_SOURCE_NAME=$PKG_SOURCE_NAME
|
|
||||||
;;
|
|
||||||
*.tar | *.tbz | *.tgz | *.txz | *.7z | *.zip)
|
|
||||||
PKG_SOURCE_NAME=${PKG_NAME}-${PKG_VERSION}.${PKG_SOURCE_NAME##*\.}
|
|
||||||
;;
|
|
||||||
*.tar.bz2 | *.tar.gz | *.tar.xz)
|
|
||||||
PKG_SOURCE_NAME=${PKG_NAME}-${PKG_VERSION}.tar.${PKG_SOURCE_NAME##*\.}
|
|
||||||
;;
|
|
||||||
*.diff | *.patch | *.diff.bz2 | *.patch.bz2 | patch-*.bz2 | *.diff.gz | *.patch.gz | patch-*.gz)
|
|
||||||
PKG_SOURCE_NAME=$PKG_SOURCE_NAME
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
PKG_SOURCE_NAME=${PKG_NAME}-${PKG_VERSION}.${PKG_SOURCE_NAME##*\.}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
PKG_BUILD="$BUILD/${PKG_NAME}-${PKG_VERSION}"
|
|
||||||
|
|
||||||
XORG_PATH_DRI=/usr/lib/dri
|
XORG_PATH_DRI=/usr/lib/dri
|
||||||
XORG_PATH_XKB=/usr/share/X11/xkb
|
XORG_PATH_XKB=/usr/share/X11/xkb
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
unset _CACHE_PACKAGE_LOCAL _CACHE_PACKAGE_GLOBAL
|
unset _CACHE_PACKAGE_LOCAL _CACHE_PACKAGE_GLOBAL
|
||||||
|
|
||||||
. config/options TRIGGER_POPULATION_OF_CACHE_PACKAGE
|
. config/options ""
|
||||||
|
|
||||||
. config/show_config
|
. config/show_config
|
||||||
show_config
|
show_config
|
||||||
|
Loading…
x
Reference in New Issue
Block a user