Henrik Grimler
6 years ago
4 changed files with 88 additions and 81 deletions
@ -0,0 +1,82 @@ |
|||||
|
termux_create_subpackages() { |
||||
|
# Sub packages: |
||||
|
if [ -d include ] && [ -z "${TERMUX_PKG_NO_DEVELSPLIT}" ]; then |
||||
|
# Add virtual -dev sub package if there are include files: |
||||
|
local _DEVEL_SUBPACKAGE_FILE=$TERMUX_PKG_TMPDIR/${TERMUX_PKG_NAME}-dev.subpackage.sh |
||||
|
echo TERMUX_SUBPKG_INCLUDE=\"include share/vala share/man/man3 lib/pkgconfig share/aclocal lib/cmake $TERMUX_PKG_INCLUDE_IN_DEVPACKAGE\" > "$_DEVEL_SUBPACKAGE_FILE" |
||||
|
echo "TERMUX_SUBPKG_DESCRIPTION=\"Development files for ${TERMUX_PKG_NAME}\"" >> "$_DEVEL_SUBPACKAGE_FILE" |
||||
|
if [ -n "$TERMUX_PKG_DEVPACKAGE_DEPENDS" ]; then |
||||
|
echo "TERMUX_SUBPKG_DEPENDS=\"$TERMUX_PKG_NAME,$TERMUX_PKG_DEVPACKAGE_DEPENDS\"" >> "$_DEVEL_SUBPACKAGE_FILE" |
||||
|
else |
||||
|
echo "TERMUX_SUBPKG_DEPENDS=\"$TERMUX_PKG_NAME\"" >> "$_DEVEL_SUBPACKAGE_FILE" |
||||
|
fi |
||||
|
fi |
||||
|
# Now build all sub packages |
||||
|
rm -Rf "$TERMUX_TOPDIR/$TERMUX_PKG_NAME/subpackages" |
||||
|
for subpackage in $TERMUX_PKG_BUILDER_DIR/*.subpackage.sh $TERMUX_PKG_TMPDIR/*subpackage.sh; do |
||||
|
test ! -f "$subpackage" && continue |
||||
|
local SUB_PKG_NAME |
||||
|
SUB_PKG_NAME=$(basename "$subpackage" .subpackage.sh) |
||||
|
# Default value is same as main package, but sub package may override: |
||||
|
local TERMUX_SUBPKG_PLATFORM_INDEPENDENT=$TERMUX_PKG_PLATFORM_INDEPENDENT |
||||
|
local SUB_PKG_DIR=$TERMUX_TOPDIR/$TERMUX_PKG_NAME/subpackages/$SUB_PKG_NAME |
||||
|
local TERMUX_SUBPKG_DEPENDS="" |
||||
|
local TERMUX_SUBPKG_CONFLICTS="" |
||||
|
local TERMUX_SUBPKG_REPLACES="" |
||||
|
local TERMUX_SUBPKG_CONFFILES="" |
||||
|
local SUB_PKG_MASSAGE_DIR=$SUB_PKG_DIR/massage/$TERMUX_PREFIX |
||||
|
local SUB_PKG_PACKAGE_DIR=$SUB_PKG_DIR/package |
||||
|
mkdir -p "$SUB_PKG_MASSAGE_DIR" "$SUB_PKG_PACKAGE_DIR" |
||||
|
|
||||
|
# shellcheck source=/dev/null |
||||
|
source "$subpackage" |
||||
|
|
||||
|
for includeset in $TERMUX_SUBPKG_INCLUDE; do |
||||
|
local _INCLUDE_DIRSET |
||||
|
_INCLUDE_DIRSET=$(dirname "$includeset") |
||||
|
test "$_INCLUDE_DIRSET" = "." && _INCLUDE_DIRSET="" |
||||
|
if [ -e "$includeset" ] || [ -L "$includeset" ]; then |
||||
|
# Add the -L clause to handle relative symbolic links: |
||||
|
mkdir -p "$SUB_PKG_MASSAGE_DIR/$_INCLUDE_DIRSET" |
||||
|
mv "$includeset" "$SUB_PKG_MASSAGE_DIR/$_INCLUDE_DIRSET" |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
local SUB_PKG_ARCH=$TERMUX_ARCH |
||||
|
test -n "$TERMUX_SUBPKG_PLATFORM_INDEPENDENT" && SUB_PKG_ARCH=all |
||||
|
|
||||
|
cd "$SUB_PKG_DIR/massage" |
||||
|
local SUB_PKG_INSTALLSIZE |
||||
|
SUB_PKG_INSTALLSIZE=$(du -sk . | cut -f 1) |
||||
|
tar -cJf "$SUB_PKG_PACKAGE_DIR/data.tar.xz" . |
||||
|
|
||||
|
mkdir -p DEBIAN |
||||
|
cd DEBIAN |
||||
|
cat > control <<-HERE |
||||
|
Package: $SUB_PKG_NAME |
||||
|
Architecture: ${SUB_PKG_ARCH} |
||||
|
Installed-Size: ${SUB_PKG_INSTALLSIZE} |
||||
|
Maintainer: $TERMUX_PKG_MAINTAINER |
||||
|
Version: $TERMUX_PKG_FULLVERSION |
||||
|
Homepage: $TERMUX_PKG_HOMEPAGE |
||||
|
HERE |
||||
|
test ! -z "$TERMUX_SUBPKG_DEPENDS" && echo "Depends: $TERMUX_SUBPKG_DEPENDS" >> control |
||||
|
test ! -z "$TERMUX_SUBPKG_CONFLICTS" && echo "Conflicts: $TERMUX_SUBPKG_CONFLICTS" >> control |
||||
|
test ! -z "$TERMUX_SUBPKG_REPLACES" && echo "Replaces: $TERMUX_SUBPKG_REPLACES" >> control |
||||
|
echo "Description: $TERMUX_SUBPKG_DESCRIPTION" >> control |
||||
|
tar -czf "$SUB_PKG_PACKAGE_DIR/control.tar.gz" . |
||||
|
|
||||
|
for f in $TERMUX_SUBPKG_CONFFILES; do echo "$TERMUX_PREFIX/$f" >> conffiles; done |
||||
|
|
||||
|
# Create the actual .deb file: |
||||
|
TERMUX_SUBPKG_DEBFILE=$TERMUX_DEBDIR/${SUB_PKG_NAME}${DEBUG}_${TERMUX_PKG_FULLVERSION}_${SUB_PKG_ARCH}.deb |
||||
|
test ! -f "$TERMUX_COMMON_CACHEDIR/debian-binary" && echo "2.0" > "$TERMUX_COMMON_CACHEDIR/debian-binary" |
||||
|
ar cr "$TERMUX_SUBPKG_DEBFILE" \ |
||||
|
"$TERMUX_COMMON_CACHEDIR/debian-binary" \ |
||||
|
"$SUB_PKG_PACKAGE_DIR/control.tar.gz" \ |
||||
|
"$SUB_PKG_PACKAGE_DIR/data.tar.xz" |
||||
|
|
||||
|
# Go back to main package: |
||||
|
cd "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX" |
||||
|
done |
||||
|
} |
Loading…
Reference in new issue