Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,98 @@
#!/bin/sh
#
# Copyright 2007 Openedhand Ltd.
#
# Author: Richard Purdie <rpurdie@openedhand.com>
#
# The following script will run all the scriptlets found in #SYSCONFDIR#/deb-postinsts,
# #SYSCONFDIR#/ipk-postinsts or #SYSCONFDIR#/rpm-postinsts or the package manager in
# case available.
# the order of this list is important, do not change!
backend_list="rpm deb ipk"
pm_installed=false
for pm in $backend_list; do
# found the package manager, it has postinsts
case $pm in
"deb")
if [ -s "#LOCALSTATEDIR#/lib/dpkg/status" ]; then
pm_installed=true
break
fi
;;
"ipk")
if [ -s "#LOCALSTATEDIR#/lib/opkg/status" ]; then
pm_installed=true
break
fi
;;
esac
pi_dir="#SYSCONFDIR#/$pm-postinsts"
# found postinsts directory
if [ -d $pi_dir ]; then
break
fi
done
remove_rcsd_link () {
if [ -n "`which update-rc.d`" ]; then
update-rc.d -f run-postinsts remove
fi
}
if ! [ -d $pi_dir ] && ! $pm_installed; then
remove_rcsd_link
exit 0
fi
echo "Configuring packages on first boot...."
echo " (This may take several minutes. Please do not power off the machine.)"
[ -e #SYSCONFDIR#/default/postinst ] && . #SYSCONFDIR#/default/postinst
if [ "$POSTINST_LOGGING" = "1" ]; then
rm -f $LOGFILE
append_log=">>$LOGFILE 2>&1"
fi
exec_postinst_scriptlets() {
for i in `ls $pi_dir`; do
i=$pi_dir/$i
echo "Running postinst $i..."
[ "$POSTINST_LOGGING" = "1" ] && eval echo "Running postinst $i..." $append_log
if [ -x $i ]; then
(sh -c $i $append_log)
rm $i
else
echo "ERROR: postinst $i failed."
[ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i failed." $append_log
remove_rcsd_link=0
fi
done
}
remove_rcsd_link=1
if $pm_installed; then
case $pm in
"ipk")
eval opkg configure $append_log
;;
"deb")
eval dpkg --configure -a $append_log
;;
esac
else
exec_postinst_scriptlets
fi
# since all postinstalls executed successfully, remove the rcS.d link
if [ $remove_rcsd_link = 1 ]; then
remove_rcsd_link
fi
@@ -0,0 +1,3 @@
#!/bin/sh
run-postinsts
@@ -0,0 +1,15 @@
[Unit]
Description=Run pending postinsts
DefaultDependencies=no
After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount ldconfig.service
Before=sysinit.target
[Service]
Type=oneshot
ExecStart=#SBINDIR#/run-postinsts
ExecStartPost=#BASE_BINDIR#/systemctl --no-reload disable run-postinsts.service
RemainAfterExit=yes
TimeoutSec=0
[Install]
WantedBy=sysinit.target
@@ -0,0 +1,45 @@
SUMMARY = "Runs postinstall scripts on first boot of the target device"
DESCRIPTION = "${SUMMARY}"
SECTION = "devel"
PR = "r10"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://run-postinsts \
file://run-postinsts.init \
file://run-postinsts.service"
S = "${WORKDIR}"
inherit allarch systemd update-rc.d
INITSCRIPT_NAME = "run-postinsts"
INITSCRIPT_PARAMS = "start 99 S ."
SYSTEMD_SERVICE:${PN} = "run-postinsts.service"
do_configure() {
:
}
do_compile () {
:
}
do_install() {
install -d ${D}${sbindir}
install -m 0755 ${WORKDIR}/run-postinsts ${D}${sbindir}/
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/run-postinsts.init ${D}${sysconfdir}/init.d/run-postinsts
install -d ${D}${systemd_system_unitdir}/
install -m 0644 ${WORKDIR}/run-postinsts.service ${D}${systemd_system_unitdir}/
sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' \
-e 's:#SBINDIR#:${sbindir}:g' \
-e 's:#BASE_BINDIR#:${base_bindir}:g' \
-e 's:#LOCALSTATEDIR#:${localstatedir}:g' \
${D}${sbindir}/run-postinsts \
${D}${systemd_system_unitdir}/run-postinsts.service
}