@@ -749,6 +749,26 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i {{deb}} || sudo LANG=C DEBIAN_FRONTEND=noni
749749{% endfor %}
750750{% endif %}
751751
752+ {% if installer_debs.strip () -%}
753+ {% for deb in installer_debs.strip ().split(' ' ) -%}
754+
755+ # For some SONiC patch packages, Debian offcial version may higher than SONiC version
756+ # When install SONiC packages, fix broken install by 'apt-get -y install -f' may upgrade some installed SONiC packages to Debian offical version
757+ # Check and install upgraded SONiC package again, if install failed, need manually check and fix SONiC package version issue
758+ PACKAGE_NAME=$( dpkg-deb -f {{deb}} Package)
759+ PACKAGE_VERSION=$( dpkg-deb -f {{deb}} Version)
760+ INSTALLED_VERSION=$( dpkg-query --showformat=' ${Version}' --show $PACKAGE_NAME || true)
761+ if [ " $INSTALLED_VERSION " != " " ] && [ " $INSTALLED_VERSION " != " $PACKAGE_VERSION " ]; then
762+ sudo dpkg --root=$FILESYSTEM_ROOT -i {{deb}}
763+ fi
764+
765+ # # SONiC packages may have lower version than Debian offical package, install offical Debian package will break feature
766+ # # Hold installed packages to prevent these packages be upgrade by apt commands in this file
767+ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-mark hold $PACKAGE_NAME
768+
769+ {% endfor %}
770+ {% endif %}
771+
752772# # Run depmod command for target kernel modules
753773sudo LANG=C chroot $FILESYSTEM_ROOT depmod -a {{kversion}}
754774
@@ -1135,3 +1155,11 @@ sudo rm -rf $FILESYSTEM_ROOT/tmp/mask_disabled_services.py
11351155
11361156
11371157sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install python3-dbus
1158+
1159+ {% if installer_debs.strip () -%}
1160+ {% for deb in installer_debs.strip ().split(' ' ) -%}
1161+ # # Unhold installed packages to allow these packages be upgrade after SONiC installed
1162+ PACKAGE_NAME=$( dpkg-deb -f {{deb}} Package)
1163+ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-mark unhold $PACKAGE_NAME
1164+ {% endfor %}
1165+ {% endif %}
0 commit comments