Revert "lib: more shellcheck fixes (#1430)" (#1432)

This reverts commit 1e050839b2.
This commit is contained in:
lanefu 2019-06-27 22:23:39 -04:00 committed by GitHub
parent 1e050839b2
commit 7d0e676e93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 203 additions and 213 deletions

View file

@ -47,36 +47,36 @@ create_chroot()
else
local mirror_addr="http://${apt_mirror[$release]}"
fi
debootstrap --variant=buildd --components=${components[${release}]} --arch="${arch}" --foreign --include="${includes}" "${release}" "${target_dir}" "${mirror_addr}"
[[ $? -ne 0 || ! -f "${target_dir}"/debootstrap/debootstrap ]] && exit_with_error "Create chroot first stage failed"
cp "/usr/bin/${qemu_binary[$arch]}" "${target_dir}"/usr/bin/
[[ ! -f "${target_dir}"/usr/share/keyrings/debian-archive-keyring.gpg ]] && \
mkdir -p "${target_dir}"/usr/share/keyrings/ && \
cp /usr/share/keyrings/debian-archive-keyring.gpg "${target_dir}"/usr/share/keyrings/
chroot "${target_dir}" /bin/bash -c "/debootstrap/debootstrap --second-stage"
[[ $? -ne 0 || ! -f "${target_dir}"/bin/bash ]] && exit_with_error "Create chroot second stage failed"
create_sources_list "${release}" "${target_dir}"
debootstrap --variant=buildd --components=${components[$release]} --arch=$arch --foreign --include="$includes" $release $target_dir $mirror_addr
[[ $? -ne 0 || ! -f $target_dir/debootstrap/debootstrap ]] && exit_with_error "Create chroot first stage failed"
cp /usr/bin/${qemu_binary[$arch]} $target_dir/usr/bin/
[[ ! -f $target_dir/usr/share/keyrings/debian-archive-keyring.gpg ]] && \
mkdir -p $target_dir/usr/share/keyrings/ && \
cp /usr/share/keyrings/debian-archive-keyring.gpg $target_dir/usr/share/keyrings/
chroot $target_dir /bin/bash -c "/debootstrap/debootstrap --second-stage"
[[ $? -ne 0 || ! -f $target_dir/bin/bash ]] && exit_with_error "Create chroot second stage failed"
create_sources_list "$release" "$target_dir"
[[ $NO_APT_CACHER != yes ]] && \
echo 'Acquire::http { Proxy "http://localhost:3142"; };' > "${target_dir}"/etc/apt/apt.conf.d/02proxy
cat <<-EOF > "${target_dir}"/etc/apt/apt.conf.d/71-no-recommends
echo 'Acquire::http { Proxy "http://localhost:3142"; };' > $target_dir/etc/apt/apt.conf.d/02proxy
cat <<-EOF > $target_dir/etc/apt/apt.conf.d/71-no-recommends
APT::Install-Recommends "0";
APT::Install-Suggests "0";
EOF
[[ -f "${target_dir}"/etc/locale.gen ]] && sed -i "s/^# en_US.UTF-8/en_US.UTF-8/" "${target_dir}"/etc/locale.gen
chroot "${target_dir}" /bin/bash -c "locale-gen; update-locale LANG=en_US:en LC_ALL=en_US.UTF-8"
printf '#!/bin/sh\nexit 101' > "${target_dir}"/usr/sbin/policy-rc.d
chmod 755 "${target_dir}"/usr/sbin/policy-rc.d
rm "${target_dir}"/etc/resolv.conf 2>/dev/null
echo "nameserver $NAMESERVER" > "${target_dir}"/etc/resolv.conf
rm "${target_dir}"/etc/hosts 2>/dev/null
echo "127.0.0.1 localhost" > "${target_dir}"/etc/hosts
mkdir -p "${target_dir}"/root/{build,overlay,sources} "${target_dir}"/selinux
if [[ -L "${target_dir}"/var/lock ]]; then
rm -rf "${target_dir}"/var/lock 2>/dev/null
mkdir -p "${target_dir}"/var/lock
[[ -f $target_dir/etc/locale.gen ]] && sed -i "s/^# en_US.UTF-8/en_US.UTF-8/" $target_dir/etc/locale.gen
chroot $target_dir /bin/bash -c "locale-gen; update-locale LANG=en_US:en LC_ALL=en_US.UTF-8"
printf '#!/bin/sh\nexit 101' > $target_dir/usr/sbin/policy-rc.d
chmod 755 $target_dir/usr/sbin/policy-rc.d
rm $target_dir/etc/resolv.conf 2>/dev/null
echo "nameserver $NAMESERVER" > $target_dir/etc/resolv.conf
rm $target_dir/etc/hosts 2>/dev/null
echo "127.0.0.1 localhost" > $target_dir/etc/hosts
mkdir -p $target_dir/root/{build,overlay,sources} $target_dir/selinux
if [[ -L $target_dir/var/lock ]]; then
rm -rf $target_dir/var/lock 2>/dev/null
mkdir -p $target_dir/var/lock
fi
chroot "${target_dir}" /bin/bash -c "/usr/sbin/update-ccache-symlinks"
touch "${target_dir}"/root/.debootstrap-complete
chroot $target_dir /bin/bash -c "/usr/sbin/update-ccache-symlinks"
touch $target_dir/root/.debootstrap-complete
display_alert "Debootstrap complete" "$release/$arch" "info"
} #############################################################################
@ -97,20 +97,21 @@ chroot_prepare_distccd()
gcc_version['disco']='8.3'
gcc_type['armhf']='arm-linux-gnueabihf-'
gcc_type['arm64']='aarch64-linux-gnu-'
rm -f "${dest}"/cmdlist
mkdir -p "${dest}"
rm -f $dest/cmdlist
mkdir -p $dest
local toolchain_path=$(find_toolchain "${gcc_type[$arch]}" "== ${gcc_version[$release]}")
ln -sf "${toolchain_path}/${gcc_type[$arch]}gcc" "${dest}"/cc
echo "${dest}/cc" >> "${dest}"/cmdlist
ln -sf ${toolchain_path}/${gcc_type[$arch]}gcc $dest/cc
echo "$dest/cc" >> $dest/cmdlist
for compiler in gcc cpp g++ c++; do
echo "${dest}/$compiler" >> "${dest}/cmdlist"
echo "${dest}/${gcc_type[$arch]}${compiler}" >> "${dest}/cmdlist"
ln -sf "${toolchain_path}/${gcc_type[$arch]}${compiler}" "${dest}/${compiler}"
ln -sf "${toolchain_path}/${gcc_type[$arch]}${compiler}" "${dest}/${gcc_type[$arch]}${compiler}"
echo "$dest/$compiler" >> $dest/cmdlist
echo "$dest/${gcc_type[$arch]}${compiler}" >> $dest/cmdlist
ln -sf ${toolchain_path}/${gcc_type[$arch]}${compiler} $dest/$compiler
ln -sf ${toolchain_path}/${gcc_type[$arch]}${compiler} $dest/${gcc_type[$arch]}${compiler}
done
mkdir -p /var/run/distcc/
touch "/var/run/distcc/${release}-${arch}.pid"
chown -R distccd /var/run/distcc/ /tmp/distcc
touch /var/run/distcc/${release}-${arch}.pid
chown -R distccd /var/run/distcc/
chown -R distccd /tmp/distcc
}
# chroot_build_packages
@ -134,33 +135,32 @@ chroot_build_packages()
for arch in $target_arch; do
display_alert "Starting package building process" "$release/$arch" "info"
local target_dir="${SRC}/cache/buildpkg/${release}-${arch}-v${CHROOT_CACHE_VERSION}"
local target_dir=$SRC/cache/buildpkg/${release}-${arch}-v${CHROOT_CACHE_VERSION}
local distcc_bindaddr="127.0.0.2"
[[ ! -f "${target_dir}"/root/.debootstrap-complete ]] && create_chroot "${target_dir}" "${release}" "${arch}"
[[ ! -f "${target_dir}"/root/.debootstrap-complete ]] && exit_with_error "Creating chroot failed" "$release/$arch"
[[ ! -f $target_dir/root/.debootstrap-complete ]] && create_chroot "$target_dir" "$release" "$arch"
[[ ! -f $target_dir/root/.debootstrap-complete ]] && exit_with_error "Creating chroot failed" "$release/$arch"
[[ -f /var/run/distcc/${release}-${arch}.pid ]] && kill "$(</var/run/distcc/"${release}-${arch}.pid")" > /dev/null 2>&1
[[ -f /var/run/distcc/${release}-${arch}.pid ]] && kill $(</var/run/distcc/${release}-${arch}.pid) > /dev/null 2>&1
chroot_prepare_distccd "${release}" "${arch}"
chroot_prepare_distccd $release $arch
# DISTCC_TCP_DEFER_ACCEPT=0
DISTCC_CMDLIST=/tmp/distcc/${release}-${arch}/cmdlist TMPDIR=/tmp/distcc distccd --daemon \
--pid-file "/var/run/distcc/${release}-${arch}.pid" --listen "$distcc_bindaddr" --allow 127.0.0.0/24 \
--log-file "/tmp/distcc/${release}-${arch}.log" --user distccd
--pid-file /var/run/distcc/${release}-${arch}.pid --listen $distcc_bindaddr --allow 127.0.0.0/24 \
--log-file /tmp/distcc/${release}-${arch}.log --user distccd
local t="${target_dir}"/root/.update-timestamp
if [[ ! -f $t || $(( ($(date +%s) - $(<"$t")) / 86400 )) -gt 7 ]]; then
local t=$target_dir/root/.update-timestamp
if [[ ! -f $t || $(( ($(date +%s) - $(<$t)) / 86400 )) -gt 7 ]]; then
display_alert "Upgrading packages" "$release/$arch" "info"
systemd-nspawn -a -q -D "${target_dir}" /bin/bash -c "apt-get -q update; apt-get -q -y upgrade; apt-get clean"
date +%s > "$t"
systemd-nspawn -a -q -D $target_dir /bin/bash -c "apt-get -q update; apt-get -q -y upgrade; apt-get clean"
date +%s > $t
fi
for plugin in "${SRC}"/packages/extras-buildpkgs/*.conf; do
for plugin in $SRC/packages/extras-buildpkgs/*.conf; do
unset package_name package_repo package_ref package_builddeps package_install_chroot package_install_target \
package_upstream_version needs_building plugin_target_dir package_component "package_builddeps_${release}"
# shellcheck source=/dev/null
source "${plugin}"
package_upstream_version needs_building plugin_target_dir package_component package_builddeps_${release}
source $plugin
# check build condition
if [[ $(type -t package_checkbuild) == function ]] && ! package_checkbuild; then
@ -169,13 +169,13 @@ chroot_build_packages()
fi
local plugin_target_dir=$DEST/debs/extra/$package_component/
mkdir -p "${plugin_target_dir}"
mkdir -p $plugin_target_dir
# check if needs building
local needs_building=no
if [[ -n $package_install_target ]]; then
for f in $package_install_target; do
if [[ -z $(find "${plugin_target_dir}" -name "${f}_*$REVISION*_$arch.deb") ]]; then
if [[ -z $(find $plugin_target_dir -name "${f}_*$REVISION*_$arch.deb") ]]; then
needs_building=yes
break
fi
@ -192,7 +192,7 @@ chroot_build_packages()
[[ -v $dist_builddeps_name ]] && package_builddeps="$package_builddeps ${!dist_builddeps_name}"
# create build script
cat <<-EOF > "${target_dir}"/root/build.sh
cat <<-EOF > $target_dir/root/build.sh
#!/bin/bash
export PATH="/usr/lib/ccache:\$PATH"
export HOME="/root"
@ -251,22 +251,22 @@ chroot_build_packages()
fi
EOF
chmod +x "${target_dir}"/root/build.sh
chmod +x $target_dir/root/build.sh
fetch_from_repo "$package_repo" "extra/$package_name" "$package_ref"
eval systemd-nspawn -a -q --capability=CAP_MKNOD -D "${target_dir}" --tmpfs=/root/build --tmpfs=/tmp:mode=777 --bind-ro "${SRC}"/packages/extras-buildpkgs/:/root/overlay \
--bind-ro "${SRC}"/cache/sources/extra/:/root/sources /bin/bash -c "/root/build.sh" 2>&1 \
eval systemd-nspawn -a -q --capability=CAP_MKNOD -D $target_dir --tmpfs=/root/build --tmpfs=/tmp:mode=777 --bind-ro $SRC/packages/extras-buildpkgs/:/root/overlay \
--bind-ro $SRC/cache/sources/extra/:/root/sources /bin/bash -c "/root/build.sh" 2>&1 \
${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/buildpkg.log'}
if [[ ${PIPESTATUS[0]} -eq 2 ]]; then
failed+=("$package_name:$release/$arch")
else
built_ok+=("$package_name:$release/$arch")
fi
mv "${target_dir}"/root/*.deb "${plugin_target_dir}" 2>/dev/null
mv $target_dir/root/*.deb $plugin_target_dir 2>/dev/null
done
# cleanup for distcc
kill $(</var/run/distcc/"${release}-${arch}.pid")
kill $(</var/run/distcc/${release}-${arch}.pid)
done
done
if [[ ${#built_ok[@]} -gt 0 ]]; then
@ -287,20 +287,20 @@ chroot_build_packages()
#
chroot_installpackages_local()
{
local conf="${SRC}"/config/aptly-temp.conf
local conf=$SRC/config/aptly-temp.conf
rm -rf /tmp/aptly-temp/
mkdir -p /tmp/aptly-temp/
aptly -config="${conf}" repo create temp
aptly -config=$conf repo create temp
# NOTE: this works recursively
aptly -config="${conf}" repo add temp "${DEST}/debs/extra/${RELEASE}-desktop/"
aptly -config="${conf}" repo add temp "${DEST}/debs/extra/${RELEASE}-utils/"
aptly -config=$conf repo add temp $DEST/debs/extra/${RELEASE}-desktop/
aptly -config=$conf repo add temp $DEST/debs/extra/${RELEASE}-utils/
# -gpg-key="925644A6"
aptly -keyring="${SRC}/packages/extras-buildpkgs/buildpkg-public.gpg" -secret-keyring="${SRC}/packages/extras-buildpkgs/buildpkg.gpg" -batch=true -config="${conf}" \
-gpg-key="925644A6" -passphrase="testkey1234" -component=temp -distribution="${RELEASE}" publish repo temp
aptly -config="${conf}" -listen=":8189" serve &
aptly -keyring="$SRC/packages/extras-buildpkgs/buildpkg-public.gpg" -secret-keyring="$SRC/packages/extras-buildpkgs/buildpkg.gpg" -batch=true -config=$conf \
-gpg-key="925644A6" -passphrase="testkey1234" -component=temp -distribution=$RELEASE publish repo temp
aptly -config=$conf -listen=":8189" serve &
local aptly_pid=$!
cp "${SRC}"/packages/extras-buildpkgs/buildpkg.key "${SDCARD}"/tmp/buildpkg.key
cat <<-'EOF' > "${SDCARD}"/etc/apt/preferences.d/90-armbian-temp.pref
cp $SRC/packages/extras-buildpkgs/buildpkg.key $SDCARD/tmp/buildpkg.key
cat <<-'EOF' > $SDCARD/etc/apt/preferences.d/90-armbian-temp.pref
Package: *
Pin: origin "localhost"
Pin-Priority: 550
@ -309,7 +309,7 @@ chroot_installpackages_local()
deb http://localhost:8189/ $RELEASE temp
EOF
chroot_installpackages
kill "${aptly_pid}"
kill $aptly_pid
} #############################################################################
# chroot_installpackages <remote_only>
@ -320,7 +320,6 @@ chroot_installpackages()
local install_list=""
display_alert "Installing additional packages" "EXTERNAL_NEW"
for plugin in "${SRC}"/packages/extras-buildpkgs/*.conf; do
# shellcheck source=/dev/null
source "$plugin"
if [[ $(type -t package_checkinstall) == function ]] && package_checkinstall; then
install_list="$install_list $package_install_target"

View file

@ -1,5 +1,3 @@
#!/bin/bash
#
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
#
# This file is licensed under the terms of the GNU General Public
@ -19,7 +17,7 @@ compilation_prepare()
#
# Older versions have AUFS support with a patch
if linux-version compare "${version}" ge 5.1 && linux-version compare "${version}" le 5.2 && [ "$AUFS" == yes ]; then
if linux-version compare $version ge 5.1 && linux-version compare $version le 5.2 && [ "$AUFS" == yes ]; then
# attach to specifics tag or branch
local aufsver="branch:aufs5.1"
@ -27,13 +25,13 @@ compilation_prepare()
display_alert "Adding" "AUFS 5.1" "info"
fetch_from_repo "https://github.com/sfjro/aufs5-standalone" "aufs5" "branch:${aufsver}" "yes"
cd "${SRC}/cache/sources/${LINUXSOURCEDIR}" || exit
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
process_patch_file "${SRC}/cache/sources/aufs5/${aufsver#*:}/aufs5-kbuild.patch" "applying"
process_patch_file "${SRC}/cache/sources/aufs5/${aufsver#*:}/aufs5-base.patch" "applying"
process_patch_file "${SRC}/cache/sources/aufs5/${aufsver#*:}/aufs5-mmap.patch" "applying"
process_patch_file "${SRC}/cache/sources/aufs5/${aufsver#*:}/aufs5-standalone.patch" "applying"
cp -R "${SRC}/cache/sources/aufs5/${aufsver#*:}/{Documentation,fs}" .
cp "${SRC}/cache/sources/aufs5/${aufsver#*:}/include/uapi/linux/aufs_type.h" include/uapi/linux/
cp -R ${SRC}/cache/sources/aufs5/${aufsver#*:}/{Documentation,fs} .
cp ${SRC}/cache/sources/aufs5/${aufsver#*:}/include/uapi/linux/aufs_type.h include/uapi/linux/
fi
@ -42,7 +40,7 @@ compilation_prepare()
# WireGuard - fast, modern, secure VPN tunnel
if linux-version compare "${version}" ge 3.14 && [ "${WIREGUARD}" == yes ]; then
if linux-version compare $version ge 3.14 && [ "${WIREGUARD}" == yes ]; then
# attach to specifics tag or branch
#local wirever="branch:master"
@ -51,23 +49,23 @@ compilation_prepare()
display_alert "Adding" "WireGuard ${wirever} " "info"
fetch_from_repo "https://git.zx2c4.com/WireGuard" "wireguard" "${wirever}" "yes"
cd "${SRC}/cache/sources/${LINUXSOURCEDIR}" || exit
rm -rf "${SRC}/cache/sources/${LINUXSOURCEDIR}/net/wireguard"
cp -R "${SRC}/cache/sources/wireguard/${wirever#*:}/src/" "${SRC}/cache/sources/${LINUXSOURCEDIR}/net/wireguard"
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
rm -rf ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/wireguard
cp -R ${SRC}/cache/sources/wireguard/${wirever#*:}/src/ ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/wireguard
sed -i "/^obj-\\\$(CONFIG_NETFILTER).*+=/a obj-\$(CONFIG_WIREGUARD) += wireguard/" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile"
${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile
sed -i "/^if INET\$/a source \"net/wireguard/Kconfig\"" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig"
${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig
# remove duplicates
[[ $(grep -c wireguard "${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile") -gt 1 ]] && \
sed -i '0,/wireguard/{/wireguard/d;}' "${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile"
[[ $(grep -c wireguard "${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig") -gt 1 ]] && \
sed -i '0,/wireguard/{/wireguard/d;}' "${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig"
[[ $(cat ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile | grep wireguard | wc -l) -gt 1 ]] && \
sed -i '0,/wireguard/{/wireguard/d;}' ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile
[[ $(cat ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig | grep wireguard | wc -l) -gt 1 ]] && \
sed -i '0,/wireguard/{/wireguard/d;}' ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig
# headers workaround
display_alert "Patching WireGuard" "Applying workaround for headers compilation" "info"
sed -i '/mkdir -p "$destdir"/a mkdir -p "$destdir"/net/wireguard; \
touch "$destdir"/net/wireguard/{Kconfig,Makefile} # workaround for Wireguard' \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/scripts/package/builddeb"
${SRC}/cache/sources/${LINUXSOURCEDIR}/scripts/package/builddeb
fi
@ -76,7 +74,7 @@ compilation_prepare()
# Wireless drivers for Realtek 8811, 8812, 8814 and 8821 chipsets
if linux-version compare "${version}" ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
if linux-version compare $version ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
# attach to specifics tag or branch
local rtl8812auver="branch:v5.2.20"
@ -84,28 +82,28 @@ compilation_prepare()
display_alert "Adding" "Wireless drivers for Realtek 8811, 8812, 8814 and 8821 chipsets ${rtl8812auver}" "info"
fetch_from_repo "https://github.com/aircrack-ng/rtl8812au" "rtl8812au" "${rtl8812auver}" "yes"
cd "${SRC}/cache/sources/${LINUXSOURCEDIR}" || exit
rm -rf "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au"
mkdir -p "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/"
cp -R "${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/{core,hal,include,os_dep,platform}" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au"
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
rm -rf ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au
mkdir -p ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/
cp -R ${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/{core,hal,include,os_dep,platform} \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au
# Makefile
cp "${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/Makefile" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile"
cp "${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/Kconfig" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Kconfig"
cp ${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/Makefile \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile
cp ${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/Kconfig \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Kconfig
# Adjust path
sed -i 's/include $(src)\/hal\/phydm\/phydm.mk/include $(TopDIR)\/drivers\/net\/wireless\/rtl8812au\/hal\/phydm\/phydm.mk/' \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile"
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile
sed -i 's/include $(TopDIR)\/hal\/phydm\/phydm.mk/include $(TopDIR)\/drivers\/net\/wireless\/rtl8812au\/hal\/phydm\/phydm.mk/' \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile"
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile
# Add to section Makefile
echo "obj-\$(CONFIG_RTL8812AU) += rtl8812au/" >> "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile"
echo "obj-\$(CONFIG_RTL8812AU) += rtl8812au/" >> $SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/rtl8812au\/Kconfig"' \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig"
$SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig
fi
@ -114,7 +112,7 @@ compilation_prepare()
# Wireless drivers for Realtek 8188EU 8188EUS and 8188ETV chipsets
if linux-version compare "${version}" ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
if linux-version compare $version ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
# attach to specifics tag or branch
local rtl8811euver="branch:v5.3.9"
@ -122,22 +120,22 @@ compilation_prepare()
display_alert "Adding" "Wireless drivers for Realtek 8188EU 8188EUS and 8188ETV chipsets ${rtl8811euver}" "info"
fetch_from_repo "https://github.com/aircrack-ng/rtl8188eus" "rtl8188eu" "${rtl8811euver}" "yes"
cd "${SRC}/cache/sources/${LINUXSOURCEDIR}" || exit
rm -rf "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu"
mkdir -p "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/"
cp -R "${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/{core,hal,include,os_dep,platform}" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu"
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
rm -rf ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu
mkdir -p ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/
cp -R ${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/{core,hal,include,os_dep,platform} \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu
# Makefile
cp "${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/Makefile" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/Makefile"
cp "${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/Kconfig" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/Kconfig"
cp ${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/Makefile \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/Makefile
cp ${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/Kconfig \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/Kconfig
# Add to section Makefile
echo "obj-\$(CONFIG_RTL8188EU) += rtl8188eu/" >> "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile"
echo "obj-\$(CONFIG_RTL8188EU) += rtl8188eu/" >> $SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/rtl8188eu\/Kconfig"' \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig"
$SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig
fi
@ -146,7 +144,7 @@ compilation_prepare()
# Wireless drivers for Realtek 88x2bu chipsets
if linux-version compare "${version}" ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
if linux-version compare $version ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
# attach to specifics tag or branch
local rtl88x2buver="branch:master"
@ -154,26 +152,26 @@ compilation_prepare()
display_alert "Adding" "Wireless drivers for Realtek 88x2bu chipsets ${rtl88x2buver}" "info"
fetch_from_repo "https://github.com/cilynx/rtl88x2BU_WiFi_linux_v5.3.1_27678.20180430_COEX20180427-5959" "rtl88x2bu" "${rtl88x2buver}" "yes"
cd "${SRC}/cache/sources/${LINUXSOURCEDIR}" || exit
rm -rf "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu"
mkdir -p "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/"
cp -R "${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/{core,hal,include,os_dep,platform,rtl8822b.mk}" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu"
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
rm -rf ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu
mkdir -p ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/
cp -R ${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/{core,hal,include,os_dep,platform,rtl8822b.mk} \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu
# Makefile
cp "${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/Makefile" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Makefile"
cp "${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/Kconfig" \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Kconfig"
cp ${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/Makefile \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Makefile
cp ${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/Kconfig \
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Kconfig
# Adjust path
sed -i 's/include $(src)\/rtl8822b.mk /include $(TopDIR)\/drivers\/net\/wireless\/rtl88x2bu\/rtl8822b.mk/' \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Makefile"
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Makefile
# Add to section Makefile
echo "obj-\$(CONFIG_RTL8822BU) += rtl88x2bu/" >> "${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile"
echo "obj-\$(CONFIG_RTL8822BU) += rtl88x2bu/" >> $SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/rtl88x2bu\/Kconfig"' \
"${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig"
$SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig
fi

View file

@ -1,5 +1,3 @@
#!/bin/bash
#
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
#
# This file is licensed under the terms of the GNU General Public
@ -26,48 +24,45 @@ compile_atf()
{
if [[ $CLEAN_LEVEL == *make* ]]; then
display_alert "Cleaning" "$ATFSOURCEDIR" "info"
(cd "${SRC}/cache/sources/${ATFSOURCEDIR}" || exit; make clean > /dev/null 2>&1)
(cd $SRC/cache/sources/$ATFSOURCEDIR; make clean > /dev/null 2>&1)
fi
local atfdir
if [[ $USE_OVERLAYFS == yes ]]; then
atfdir=$(overlayfs_wrapper "wrap" "$SRC/cache/sources/$ATFSOURCEDIR" "atf_${LINUXFAMILY}_${BRANCH}")
local atfdir=$(overlayfs_wrapper "wrap" "$SRC/cache/sources/$ATFSOURCEDIR" "atf_${LINUXFAMILY}_${BRANCH}")
else
atfdir="$SRC/cache/sources/$ATFSOURCEDIR"
local atfdir="$SRC/cache/sources/$ATFSOURCEDIR"
fi
cd "$atfdir" || exit
cd "$atfdir"
display_alert "Compiling ATF" "" "info"
local toolchain
toolchain=$(find_toolchain "$ATF_COMPILER" "$ATF_USE_GCC")
local toolchain=$(find_toolchain "$ATF_COMPILER" "$ATF_USE_GCC")
[[ -z $toolchain ]] && exit_with_error "Could not find required toolchain" "${ATF_COMPILER}gcc $ATF_USE_GCC"
if [[ -n $ATF_TOOLCHAIN2 ]]; then
local toolchain2_type toolchain2_ver toolchain2
toolchain2_type=$(cut -d':' -f1 <<< "${ATF_TOOLCHAIN2}")
toolchain2_ver=$(cut -d':' -f2 <<< "${ATF_TOOLCHAIN2}")
toolchain2=$(find_toolchain "$toolchain2_type" "$toolchain2_ver")
local toolchain2_type=$(cut -d':' -f1 <<< $ATF_TOOLCHAIN2)
local toolchain2_ver=$(cut -d':' -f2 <<< $ATF_TOOLCHAIN2)
local toolchain2=$(find_toolchain "$toolchain2_type" "$toolchain2_ver")
[[ -z $toolchain2 ]] && exit_with_error "Could not find required toolchain" "${toolchain2_type}gcc $toolchain2_ver"
fi
display_alert "Compiler version" "${ATF_COMPILER}gcc $(eval env PATH="${toolchain}:${PATH}" "${ATF_COMPILER}gcc" -dumpversion)" "info"
display_alert "Compiler version" "${ATF_COMPILER}gcc $(eval env PATH=$toolchain:$PATH ${ATF_COMPILER}gcc -dumpversion)" "info"
local target_make target_patchdir target_files
target_make=$(cut -d';' -f1 <<< "${ATF_TARGET_MAP}")
target_patchdir=$(cut -d';' -f2 <<< "${ATF_TARGET_MAP}")
target_files=$(cut -d';' -f3 <<< "${ATF_TARGET_MAP}")
local target_make=$(cut -d';' -f1 <<< $ATF_TARGET_MAP)
local target_patchdir=$(cut -d';' -f2 <<< $ATF_TARGET_MAP)
local target_files=$(cut -d';' -f3 <<< $ATF_TARGET_MAP)
advanced_patch "atf" "atf-${LINUXFAMILY}" "$BOARD" "$target_patchdir" "$BRANCH" "${LINUXFAMILY}-${BOARD}-${BRANCH}"
# create patch for manual source changes
[[ $CREATE_PATCHES == yes ]] && userpatch_create "atf"
echo -e "\n\t== atf ==\n" >>"${DEST}"/debug/compilation.log
echo -e "\n\t== atf ==\n" >>$DEST/debug/compilation.log
# ENABLE_BACKTRACE="0" has been added to workaround a regression in ATF.
# Check: https://github.com/armbian/build/issues/1157
eval CCACHE_BASEDIR="$(pwd)" env PATH=$toolchain:$toolchain2:$PATH \
'make ENABLE_BACKTRACE="0" $target_make $CTHREADS \
CROSS_COMPILE="$CCACHE $ATF_COMPILER"' 2>>"${DEST}"/debug/compilation.log \
CROSS_COMPILE="$CCACHE $ATF_COMPILER"' 2>>$DEST/debug/compilation.log \
${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'} \
${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Compiling ATF..." $TTY_Y $TTY_X'} \
${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'}
@ -77,7 +72,7 @@ compile_atf()
[[ $(type -t atf_custom_postprocess) == function ]] && atf_custom_postprocess
local atftempdir=$SRC/.tmp/atf-${LINUXFAMILY}-${BOARD}-${BRANCH}
mkdir -p "${atftempdir}"
mkdir -p $atftempdir
# copy files to temp directory
for f in $target_files; do
@ -88,11 +83,11 @@ compile_atf()
local f_dst=$(basename $f_src)
fi
[[ ! -f $f_src ]] && exit_with_error "ATF file not found" "$(basename $f_src)"
cp "${f_src}" "${atftempdir}/${f_dst}"
cp $f_src $atftempdir/$f_dst
done
# copy license file to pack it to u-boot package later
[[ -f license.md ]] && cp license.md "${atftempdir}"/
[[ -f license.md ]] && cp license.md $atftempdir/
}
compile_uboot()
@ -100,13 +95,13 @@ compile_uboot()
# not optimal, but extra cleaning before overlayfs_wrapper should keep sources directory clean
if [[ $CLEAN_LEVEL == *make* ]]; then
display_alert "Cleaning" "$BOOTSOURCEDIR" "info"
(cd "${SRC}/cache/sources/${BOOTSOURCEDIR}" || exit; make clean > /dev/null 2>&1)
(cd $SRC/cache/sources/$BOOTSOURCEDIR; make clean > /dev/null 2>&1)
fi
if [[ $USE_OVERLAYFS == yes ]]; then
local ubootdir=$(overlayfs_wrapper "wrap" "${SRC}/cache/sources/$BOOTSOURCEDIR" "u-boot_${LINUXFAMILY}_${BRANCH}")
local ubootdir=$(overlayfs_wrapper "wrap" "$SRC/cache/sources/$BOOTSOURCEDIR" "u-boot_${LINUXFAMILY}_${BRANCH}")
else
local ubootdir=""${SRC}"/cache/sources/$BOOTSOURCEDIR"
local ubootdir="$SRC/cache/sources/$BOOTSOURCEDIR"
fi
cd "$ubootdir"
@ -131,8 +126,8 @@ compile_uboot()
# create directory structure for the .deb package
local uboot_name=${CHOSEN_UBOOT}_${REVISION}_${ARCH}
rm -rf "${SRC}"/.tmp/$uboot_name
mkdir -p "${SRC}/.tmp/$uboot_name/usr/lib/{u-boot,$uboot_name}" "${SRC}/.tmp/$uboot_name/DEBIAN"
rm -rf $SRC/.tmp/$uboot_name
mkdir -p $SRC/.tmp/$uboot_name/usr/lib/{u-boot,$uboot_name} $SRC/.tmp/$uboot_name/DEBIAN
# process compilation for one or multiple targets
while read -r target; do
@ -145,7 +140,7 @@ compile_uboot()
if [[ $CLEAN_LEVEL == *make* ]]; then
display_alert "Cleaning" "$BOOTSOURCEDIR" "info"
(cd "${SRC}"/cache/sources/$BOOTSOURCEDIR; make clean > /dev/null 2>&1)
(cd $SRC/cache/sources/$BOOTSOURCEDIR; make clean > /dev/null 2>&1)
fi
advanced_patch "u-boot" "$BOOTPATCHDIR" "$BOARD" "$target_patchdir" "$BRANCH" "${LINUXFAMILY}-${BOARD}-${BRANCH}"
@ -154,14 +149,14 @@ compile_uboot()
[[ $CREATE_PATCHES == yes ]] && userpatch_create "u-boot"
if [[ -n $ATFSOURCE ]]; then
local atftempdir="${SRC}"/.tmp/atf-${LINUXFAMILY}-${BOARD}-${BRANCH}
local atftempdir=$SRC/.tmp/atf-${LINUXFAMILY}-${BOARD}-${BRANCH}
cp -Rv $atftempdir/*.bin .
fi
echo -e "\n\t== u-boot ==\n" >>"${DEST}"/debug/compilation.log
echo -e "\n\t== u-boot ==\n" >>$DEST/debug/compilation.log
eval CCACHE_BASEDIR="$(pwd)" env PATH=$toolchain:$toolchain2:$PATH \
'make $CTHREADS $BOOTCONFIG \
CROSS_COMPILE="$CCACHE $UBOOT_COMPILER"' 2>>"${DEST}"/debug/compilation.log \
CROSS_COMPILE="$CCACHE $UBOOT_COMPILER"' 2>>$DEST/debug/compilation.log \
${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'} \
${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'}
@ -177,7 +172,7 @@ compile_uboot()
[[ -f .config ]] && echo 'CONFIG_ENV_EXT4_DEVICE_AND_PART="0:auto"' >> .config
[[ -f .config ]] && echo 'CONFIG_ENV_EXT4_FILE="/boot/boot.env"' >> .config
fi
[[ -f tools/logos/udoo.bmp ]] && cp "${SRC}"/packages/blobs/splash/udoo.bmp tools/logos/udoo.bmp
[[ -f tools/logos/udoo.bmp ]] && cp $SRC/packages/blobs/splash/udoo.bmp tools/logos/udoo.bmp
touch .scmversion
# $BOOTDELAY can be set in board family config, ensure autoboot can be stopped even if set to 0
@ -190,7 +185,7 @@ compile_uboot()
eval CCACHE_BASEDIR="$(pwd)" env PATH=$toolchain:$toolchain2:$PATH \
'make $target_make $CTHREADS \
"${cross_compile}"' 2>>"${DEST}"/debug/compilation.log \
"${cross_compile}"' 2>>$DEST/debug/compilation.log \
${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'} \
${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Compiling u-boot..." $TTY_Y $TTY_X'} \
${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'}
@ -208,12 +203,12 @@ compile_uboot()
local f_dst=$(basename $f_src)
fi
[[ ! -f $f_src ]] && exit_with_error "U-boot file not found" "$(basename $f_src)"
cp "${f_src}" "${SRC}/.tmp/$uboot_name/usr/lib/$uboot_name/$f_dst"
cp $f_src $SRC/.tmp/$uboot_name/usr/lib/$uboot_name/$f_dst
done
done <<< "$UBOOT_TARGET_MAP"
# declare -f on non-defined function does not do anything
cat <<-EOF > "${SRC}"/.tmp/$uboot_name/usr/lib/u-boot/platform_install.sh
cat <<-EOF > $SRC/.tmp/$uboot_name/usr/lib/u-boot/platform_install.sh
DIR=/usr/lib/$uboot_name
$(declare -f write_uboot_platform)
$(declare -f write_uboot_platform_mtd)
@ -221,7 +216,7 @@ compile_uboot()
EOF
# set up control file
cat <<-EOF > "${SRC}"/.tmp/$uboot_name/DEBIAN/control
cat <<-EOF > $SRC/.tmp/$uboot_name/DEBIAN/control
Package: linux-u-boot-${BOARD}-${BRANCH}
Version: $REVISION
Architecture: $ARCH
@ -237,41 +232,41 @@ compile_uboot()
# copy config file to the package
# useful for FEL boot with overlayfs_wrapper
[[ -f .config && -n $BOOTCONFIG ]] && cp .config "${SRC}/.tmp/$uboot_name/usr/lib/u-boot/$BOOTCONFIG"
[[ -f .config && -n $BOOTCONFIG ]] && cp .config $SRC/.tmp/$uboot_name/usr/lib/u-boot/$BOOTCONFIG
# copy license files from typical locations
[[ -f COPYING ]] && cp COPYING "${SRC}/.tmp/$uboot_name/usr/lib/u-boot/LICENSE"
[[ -f Licenses/README ]] && cp Licenses/README "${SRC}/.tmp/$uboot_name/usr/lib/u-boot/LICENSE"
[[ -n $atftempdir && -f $atftempdir/license.md ]] && cp "${atftempdir}/license.md" "${SRC}/.tmp/$uboot_name/usr/lib/u-boot/LICENSE.atf"
[[ -f COPYING ]] && cp COPYING $SRC/.tmp/$uboot_name/usr/lib/u-boot/LICENSE
[[ -f Licenses/README ]] && cp Licenses/README $SRC/.tmp/$uboot_name/usr/lib/u-boot/LICENSE
[[ -n $atftempdir && -f $atftempdir/license.md ]] && cp $atftempdir/license.md $SRC/.tmp/$uboot_name/usr/lib/u-boot/LICENSE.atf
display_alert "Building deb" "${uboot_name}.deb" "info"
fakeroot dpkg-deb -b "${SRC}"/.tmp/$uboot_name "${SRC}"/.tmp/${uboot_name}.deb >> "${DEST}"/debug/output.log 2>&1
rm -rf "${SRC}"/.tmp/$uboot_name
fakeroot dpkg-deb -b $SRC/.tmp/$uboot_name $SRC/.tmp/${uboot_name}.deb >> $DEST/debug/output.log 2>&1
rm -rf $SRC/.tmp/$uboot_name
[[ -n $$atftempdir ]] && rm -rf $atftempdir
[[ ! -f "${SRC}"/.tmp/${uboot_name}.deb ]] && exit_with_error "Building u-boot package failed"
[[ ! -f $SRC/.tmp/${uboot_name}.deb ]] && exit_with_error "Building u-boot package failed"
mv "${SRC}"/.tmp/${uboot_name}.deb "${DEST}"/debs/
mv $SRC/.tmp/${uboot_name}.deb $DEST/debs/
}
compile_kernel()
{
if [[ $CLEAN_LEVEL == *make* ]]; then
display_alert "Cleaning" "$LINUXSOURCEDIR" "info"
(cd "${SRC}"/cache/sources/$LINUXSOURCEDIR; make ARCH=$ARCHITECTURE clean >/dev/null 2>&1)
(cd $SRC/cache/sources/$LINUXSOURCEDIR; make ARCH=$ARCHITECTURE clean >/dev/null 2>&1)
fi
if [[ $USE_OVERLAYFS == yes ]]; then
local kerneldir=$(overlayfs_wrapper "wrap" "${SRC}/cache/sources/$LINUXSOURCEDIR" "kernel_${LINUXFAMILY}_${BRANCH}")
local kerneldir=$(overlayfs_wrapper "wrap" "$SRC/cache/sources/$LINUXSOURCEDIR" "kernel_${LINUXFAMILY}_${BRANCH}")
else
local kerneldir=""${SRC}"/cache/sources/$LINUXSOURCEDIR"
local kerneldir="$SRC/cache/sources/$LINUXSOURCEDIR"
fi
cd "$kerneldir"
# this is a patch that Ubuntu Trusty compiler works
# TODO: Check if still required
if [[ $(patch --dry-run -t -p1 < "${SRC}"/patch/kernel/compiler.patch | grep Reversed) != "" ]]; then
if [[ $(patch --dry-run -t -p1 < $SRC/patch/kernel/compiler.patch | grep Reversed) != "" ]]; then
display_alert "Patching kernel for compiler support"
patch --batch --silent -t -p1 < "${SRC}"/patch/kernel/compiler.patch >> "${DEST}"/debug/output.log 2>&1
patch --batch --silent -t -p1 < $SRC/patch/kernel/compiler.patch >> $DEST/debug/output.log 2>&1
fi
advanced_patch "kernel" "$KERNELPATCHDIR" "$BOARD" "" "$BRANCH" "$LINUXFAMILY-$BRANCH"
@ -288,7 +283,7 @@ compile_kernel()
compilation_prepare
# create linux-source package - with already patched sources
local sources_pkg_dir="${SRC}"/.tmp/${CHOSEN_KSRC}_${REVISION}_all
local sources_pkg_dir=$SRC/.tmp/${CHOSEN_KSRC}_${REVISION}_all
rm -rf ${sources_pkg_dir}
mkdir -p $sources_pkg_dir/usr/src/ $sources_pkg_dir/usr/share/doc/linux-source-${version}-${LINUXFAMILY} $sources_pkg_dir/DEBIAN
@ -311,27 +306,27 @@ compile_kernel()
display_alert "Compiler version" "${KERNEL_COMPILER}gcc $(eval env PATH=$toolchain:$PATH ${KERNEL_COMPILER}gcc -dumpversion)" "info"
# copy kernel config
if [[ $KERNEL_KEEP_CONFIG == yes && -f "${DEST}"/config/$LINUXCONFIG.config ]]; then
if [[ $KERNEL_KEEP_CONFIG == yes && -f $DEST/config/$LINUXCONFIG.config ]]; then
display_alert "Using previous kernel config" "$DEST/config/$LINUXCONFIG.config" "info"
cp "${DEST}"/config/$LINUXCONFIG.config .config
cp $DEST/config/$LINUXCONFIG.config .config
else
if [[ -f "${SRC}"/userpatches/$LINUXCONFIG.config ]]; then
if [[ -f $SRC/userpatches/$LINUXCONFIG.config ]]; then
display_alert "Using kernel config provided by user" "userpatches/$LINUXCONFIG.config" "info"
cp "${SRC}"/userpatches/$LINUXCONFIG.config .config
cp $SRC/userpatches/$LINUXCONFIG.config .config
else
display_alert "Using kernel config file" "config/kernel/$LINUXCONFIG.config" "info"
cp "${SRC}"/config/kernel/$LINUXCONFIG.config .config
cp $SRC/config/kernel/$LINUXCONFIG.config .config
fi
fi
# hack for OdroidXU4. Copy firmare files
if [[ $BOARD == odroidxu4 ]]; then
mkdir -p "${SRC}"/cache/sources/$LINUXSOURCEDIR/firmware/edid
cp "${SRC}"/packages/blobs/odroidxu4/*.bin "${SRC}"/cache/sources/$LINUXSOURCEDIR/firmware/edid
mkdir -p $SRC/cache/sources/$LINUXSOURCEDIR/firmware/edid
cp $SRC/packages/blobs/odroidxu4/*.bin $SRC/cache/sources/$LINUXSOURCEDIR/firmware/edid
fi
# hack for deb builder. To pack what's missing in headers pack.
cp "${SRC}"/patch/misc/headers-debian-byteshift.patch /tmp
cp $SRC/patch/misc/headers-debian-byteshift.patch /tmp
if [[ $KERNEL_CONFIGURE != yes ]]; then
if [[ $BRANCH == default ]]; then
@ -349,18 +344,18 @@ compile_kernel()
'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" ${KERNEL_MENUCONFIG:-menuconfig}'
# store kernel config in easily reachable place
display_alert "Exporting new kernel config" "$DEST/config/$LINUXCONFIG.config" "info"
cp .config "${DEST}"/config/$LINUXCONFIG.config
cp .config $DEST/config/$LINUXCONFIG.config
# export defconfig too if requested
if [[ $KERNEL_EXPORT_DEFCONFIG == yes ]]; then
eval CCACHE_BASEDIR="$(pwd)" env PATH=$toolchain:$PATH \
'make ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" savedefconfig'
[[ -f defconfig ]] && cp defconfig "${DEST}"/config/$LINUXCONFIG.defconfig
[[ -f defconfig ]] && cp defconfig $DEST/config/$LINUXCONFIG.defconfig
fi
fi
xz < .config > $sources_pkg_dir/usr/src/${LINUXCONFIG}_${version}_${REVISION}_config.xz
echo -e "\n\t== kernel ==\n" >>"${DEST}"/debug/compilation.log
echo -e "\n\t== kernel ==\n" >>$DEST/debug/compilation.log
eval CCACHE_BASEDIR="$(pwd)" env PATH=$toolchain:$PATH \
'make $CTHREADS ARCH=$ARCHITECTURE \
CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" \
@ -386,7 +381,7 @@ compile_kernel()
display_alert "Creating packages"
# produce deb packages: image, headers, firmware, dtb
echo -e "\n\t== deb packages: image, headers, firmware, dtb ==\n" >>"${DEST}"/debug/compilation.log
echo -e "\n\t== deb packages: image, headers, firmware, dtb ==\n" >>$DEST/debug/compilation.log
eval CCACHE_BASEDIR="$(pwd)" env PATH=$toolchain:$PATH \
'make -j1 $kernel_packing \
KDEB_PKGVERSION=$REVISION \
@ -400,7 +395,7 @@ compile_kernel()
${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Creating kernel packages..." $TTY_Y $TTY_X'} \
${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'}
cat <<-EOF > "${sources_pkg_dir}"/DEBIAN/control
cat <<-EOF > $sources_pkg_dir/DEBIAN/control
Package: linux-source-${version}-${BRANCH}-${LINUXFAMILY}
Version: ${version}-${BRANCH}-${LINUXFAMILY}+${REVISION}
Architecture: all
@ -414,21 +409,21 @@ compile_kernel()
EOF
if [[ $BUILD_KSRC != no ]]; then
fakeroot dpkg-deb -z0 -b "${sources_pkg_dir}" "${sources_pkg_dir}.deb"
mv ${sources_pkg_dir}.deb "${DEST}"/debs/
fakeroot dpkg-deb -z0 -b $sources_pkg_dir ${sources_pkg_dir}.deb
mv ${sources_pkg_dir}.deb $DEST/debs/
fi
rm -rf "${sources_pkg_dir}"
rm -rf $sources_pkg_dir
cd ..
# remove firmare image packages here - easier than patching ~40 packaging scripts at once
rm -f linux-firmware-image-*.deb
mv *.deb "${DEST}"/debs/ || exit_with_error "Failed moving kernel DEBs"
mv *.deb $DEST/debs/ || exit_with_error "Failed moving kernel DEBs"
}
compile_sunxi_tools()
{
# Compile and install only if git commit hash changed
cd "${SRC}"/cache/sources/sunxi-tools
cd $SRC/cache/sources/sunxi-tools
# need to check if /usr/local/bin/sunxi-fexc to detect new Docker containers with old cached sources
if [[ ! -f .commit_id || $(git rev-parse @ 2>/dev/null) != $(<.commit_id) || ! -f /usr/local/bin/sunxi-fexc ]]; then
display_alert "Compiling" "sunxi-tools" "info"
@ -443,7 +438,7 @@ compile_sunxi_tools()
install_rkbin_tools()
{
# install only if git commit hash changed
cd "${SRC}"/cache/sources/rkbin-tools
cd $SRC/cache/sources/rkbin-tools
# need to check if /usr/local/bin/sunxi-fexc to detect new Docker containers with old cached sources
if [[ ! -f .commit_id || $(git rev-parse @ 2>/dev/null) != $(<.commit_id) || ! -f /usr/local/bin/loaderimage ]]; then
display_alert "Installing" "rkbin-tools" "info"
@ -476,7 +471,7 @@ find_toolchain()
local toolchain=""
# extract target major.minor version from expression
local target_ver=$(grep -oE "[[:digit:]]+\.[[:digit:]]" <<< "$expression")
for dir in "${SRC}"/cache/toolchains/*/; do
for dir in $SRC/cache/toolchains/*/; do
# check if is a toolchain for current $ARCH
[[ ! -f ${dir}bin/${compiler}gcc ]] && continue
# get toolchain major.minor version
@ -552,7 +547,7 @@ advanced_patch()
# get patch file names
for dir in "${dirs[@]}"; do
for patch in ${dir%%:*}/*.patch; do
names+=($(basename "${patch}"))
names+=($(basename $patch))
done
done
# remove duplicates
@ -584,18 +579,18 @@ process_patch_file()
local status=$2
# detect and remove files which patch will create
lsdiff -s --strip=1 "${patch}" | grep '^+' | awk '{print $2}' | xargs -I % sh -c 'rm -f %'
lsdiff -s --strip=1 $patch | grep '^+' | awk '{print $2}' | xargs -I % sh -c 'rm -f %'
echo "Processing file $patch" >> "${DEST}"/debug/patching.log
patch --batch --silent -p1 -N < "${patch}" >> "${DEST}"/debug/patching.log 2>&1
echo "Processing file $patch" >> $DEST/debug/patching.log
patch --batch --silent -p1 -N < $patch >> $DEST/debug/patching.log 2>&1
if [[ $? -ne 0 ]]; then
display_alert "* $status $(basename "${patch}")" "failed" "wrn"
display_alert "* $status $(basename $patch)" "failed" "wrn"
[[ $EXIT_PATCHING_ERROR == yes ]] && exit_with_error "Aborting due to" "EXIT_PATCHING_ERROR"
else
display_alert "* $status $(basename "${patch}")" "" "info"
display_alert "* $status $(basename $patch)" "" "info"
fi
echo >> "${DEST}"/debug/patching.log
echo >> $DEST/debug/patching.log
}
userpatch_create()
@ -607,17 +602,17 @@ userpatch_create()
local patch="$DEST/patch/$1-$LINUXFAMILY-$BRANCH.patch"
# apply previous user debug mode created patches
[[ -f $patch ]] && display_alert "Applying existing $1 patch" "$patch" "wrn" && patch --batch --silent -p1 -N < "${patch}"
[[ -f $patch ]] && display_alert "Applying existing $1 patch" "$patch" "wrn" && patch --batch --silent -p1 -N < $patch
# prompt to alter source
display_alert "Make your changes in this directory:" "$(pwd)" "wrn"
display_alert "Press <Enter> after you are done" "waiting" "wrn"
read -r </dev/tty
read </dev/tty
tput cuu1
git add .
# create patch out of changes
if ! git diff-index --quiet --cached HEAD; then
git diff --staged > "${patch}"
git diff --staged > $patch
display_alert "You will find your patch here:" "$patch" "info"
else
display_alert "No changes found, skipping patch creation" "" "wrn"
@ -647,10 +642,9 @@ overlayfs_wrapper()
local srcdir="$2"
local description="$3"
mkdir -p /tmp/overlay_components/ /tmp/armbian_build/
local tempdir workdir mergeddir
tempdir=$(mktemp -d --tmpdir="/tmp/overlay_components/")
workdir=$(mktemp -d --tmpdir="/tmp/overlay_components/")
mergeddir=$(mktemp -d --suffix="_$description" --tmpdir="/tmp/armbian_build/")
local tempdir=$(mktemp -d --tmpdir="/tmp/overlay_components/")
local workdir=$(mktemp -d --tmpdir="/tmp/overlay_components/")
local mergeddir=$(mktemp -d --suffix="_$description" --tmpdir="/tmp/armbian_build/")
mount -t overlay overlay -o lowerdir="$srcdir",upperdir="$tempdir",workdir="$workdir" "$mergeddir"
# this is executed in a subshell, so use temp files to pass extra data outside
echo "$tempdir" >> /tmp/.overlayfs_wrapper_cleanup

View file

@ -82,7 +82,6 @@ install_external_applications()
display_alert "Installing extra applications and drivers" "" "info"
for plugin in "${SRC}"/packages/extras/*.sh; do
# shellcheck source=/dev/null
source "${plugin}"
done
} #############################################################################
@ -99,7 +98,8 @@ write_uboot()
display_alert "Writing U-boot bootloader" "$loop" "info"
mkdir -p /tmp/u-boot/
dpkg -x "${DEST}/debs/${CHOSEN_UBOOT}_${REVISION}_${ARCH}.deb" /tmp/u-boot/
write_uboot_platform "/tmp/u-boot/usr/lib/${CHOSEN_UBOOT}_${REVISION}_${ARCH}" "$loop" || exit_with_error "U-boot bootloader failed to install" "@host"
write_uboot_platform "/tmp/u-boot/usr/lib/${CHOSEN_UBOOT}_${REVISION}_${ARCH}" "$loop"
[[ $? -ne 0 ]] && exit_with_error "U-boot bootloader failed to install" "@host"
rm -r /tmp/u-boot/
sync
} #############################################################################
@ -107,7 +107,6 @@ write_uboot()
customize_image()
{
# for users that need to prepare files at host
# shellcheck source=/dev/null
[[ -f $SRC/userpatches/customize-image-host.sh ]] && source "${SRC}"/userpatches/customize-image-host.sh
cp "${SRC}"/userpatches/customize-image.sh "${SDCARD}"/tmp/customize-image.sh
chmod +x "${SDCARD}"/tmp/customize-image.sh