forked from LibreELEC/LibreELEC.tv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall
executable file
·156 lines (124 loc) · 4.13 KB
/
install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2010-2011 Roman Weber ([email protected])
# Copyright (C) 2009-2016 Stephan Raue ([email protected])
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
. config/options $1
if [ -z "$1" ]; then
echo "usage: $0 package_name"
exit 1
fi
if [ -z "$INSTALL" ] ; then
echo "error: '\$INSTALL' not set! this script is not intended to be run manually"
exit 1
fi
# set defaults
if [ "${1//:/}" != "${1}" ]; then
PACKAGE_NAME="${1%:*}"
TARGET="${1#*:}"
else
PACKAGE_NAME=$1
TARGET=
fi
[ -z "$TARGET" ] && TARGET="target"
STAMP=$STAMPS_INSTALL/$PACKAGE_NAME/install_$TARGET
mkdir -p $STAMPS_INSTALL/$PACKAGE_NAME
[ -f $STAMP ] && exit 0
if [ -n "$PKG_ARCH" ]; then
listcontains "$PKG_ARCH" "!$TARGET_ARCH" && exit 0
listcontains "$PKG_ARCH" "$TARGET_ARCH" || listcontains "$PKG_ARCH" "any" || exit 0
fi
if [ ! -f $PKG_DIR/package.mk ]; then
printf "$(print_color CLR_ERROR "${PACKAGE_NAME}: no package.mk file found")\n"
exit 1
fi
$SCRIPTS/build $@
printf "%${BUILD_INDENT}c $(print_color CLR_INSTALL "INSTALL") $PACKAGE_NAME $(print_color CLR_TARGET "($TARGET)")\n" ' '>&$SILENT_OUT
export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE))
if [ "$TARGET" = target ] ; then
for p in $PKG_DEPENDS_TARGET; do
$SCRIPTS/install $p
done
elif [ "$TARGET" = init ] ; then
for p in $PKG_DEPENDS_INIT; do
$SCRIPTS/install $p
done
INSTALL=$BUILD/initramfs
fi
mkdir -p $INSTALL
if [ "$TARGET" = target ] ; then
for PKG_TMP_DIR in $PKG_DIR \
$PROJECT_DIR/$PROJECT/packages/$PKG_NAME \
$PROJECT_DIR/$PROJECT/devices/$DEVICE/packages/$PKG_NAME \
; do
[ -d $PKG_TMP_DIR ] || continue
if [ -d $PKG_TMP_DIR/profile.d ]; then
mkdir -p $INSTALL/etc/profile.d
cp $PKG_TMP_DIR/profile.d/*.conf $INSTALL/etc/profile.d
fi
if [ -d $PKG_TMP_DIR/tmpfiles.d ]; then
mkdir -p $INSTALL/usr/lib/tmpfiles.d
cp $PKG_TMP_DIR/tmpfiles.d/*.conf $INSTALL/usr/lib/tmpfiles.d
fi
if [ -d $PKG_TMP_DIR/system.d ]; then
mkdir -p $INSTALL/usr/lib/systemd/system
cp $PKG_TMP_DIR/system.d/*.* $INSTALL/usr/lib/systemd/system
fi
if [ -d $PKG_TMP_DIR/udev.d ]; then
mkdir -p $INSTALL/usr/lib/udev/rules.d
cp $PKG_TMP_DIR/udev.d/*.rules $INSTALL/usr/lib/udev/rules.d
fi
if [ -d $PKG_TMP_DIR/sleep.d ]; then
mkdir -p $INSTALL/usr/lib/systemd/system-sleep
cp $PKG_TMP_DIR/sleep.d/* $INSTALL/usr/lib/systemd/system-sleep
fi
if [ -d $PKG_TMP_DIR/sleep.d.serial ]; then
mkdir -p $INSTALL/usr/lib/systemd/system-sleep.serial
cp $PKG_TMP_DIR/sleep.d.serial/* $INSTALL/usr/lib/systemd/system-sleep.serial
fi
if [ -d $PKG_TMP_DIR/sysctl.d ]; then
mkdir -p $INSTALL/usr/lib/sysctl.d
cp $PKG_TMP_DIR/sysctl.d/*.conf $INSTALL/usr/lib/sysctl.d
fi
if [ -d $PKG_TMP_DIR/modules-load.d ]; then
mkdir -p $INSTALL/usr/lib/modules-load.d
cp $PKG_TMP_DIR/modules-load.d/*.conf $INSTALL/usr/lib/modules-load.d
fi
if [ -d $PKG_TMP_DIR/sysconf.d ]; then
mkdir -p $INSTALL/etc/sysconf.d
cp $PKG_TMP_DIR/sysconf.d/*.conf $INSTALL/etc/sysconf.d
fi
if [ -d $PKG_TMP_DIR/debug.d ]; then
mkdir -p $INSTALL/usr/share/debugconf
cp $PKG_TMP_DIR/debug.d/*.conf $INSTALL/usr/share/debugconf
fi
if [ -d $PKG_TMP_DIR/modprobe.d ]; then
mkdir -p $INSTALL/usr/lib/modprobe.d
cp $PKG_TMP_DIR/modprobe.d/*.conf $INSTALL/usr/lib/modprobe.d
fi
done
fi
# unset functions
unset -f pre_install
unset -f post_install
# include buildfile
. $PKG_DIR/package.mk
# install
if [ "$TARGET" = target ] ; then
if [ "$(type -t pre_install)" = "function" ]; then
pre_install
fi
fi
if [ "$TARGET" = "target" -a -d $PKG_BUILD/.install_pkg ]; then
mkdir -p $INSTALL
cp -PR $PKG_BUILD/.install_pkg/* $INSTALL
elif [ "$TARGET" = "init" -a -d $PKG_BUILD/.install_init ]; then
mkdir -p $INSTALL
cp -PR $PKG_BUILD/.install_init/* $INSTALL
fi
if [ "$TARGET" = target ] ; then
if [ "$(type -t post_install)" = "function" ]; then
post_install
fi
fi
touch $STAMP