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