Skip to content

Commit

Permalink
Beta v9.4.1 (#7062)
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaIng authored May 10, 2024
2 parents e66da07 + b1cbc54 commit 2739934
Show file tree
Hide file tree
Showing 17 changed files with 129 additions and 123 deletions.
87 changes: 19 additions & 68 deletions .build/images/OdroidXU4/boot.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,25 @@ ODROIDXU-UBOOT-CONFIG
setenv initrd_high "0xffffffff"
setenv fdt_high "0xffffffff"

# MAC address configuration
setenv macaddr "00:1e:06:61:7a:72"

# Kernel command-line parameters
setenv bootrootfs "root=/dev/mmcblk0p1 rootfstype=ext4 rootwait ro console=ttySAC2,115200n8 console=tty1 consoleblank=0 net.ifnames=0"

# HDMI/DVI selection: "hdmi" or "dvi"
# - DVI mode disables HDMI sound
setenv vout "hdmi"

# HDMI Hot Plug Detect
# - "false" disables auto-detection and forces HDMI output.
# - "true" enables HDMI detection based on cable connection.
setenv HPD "true"

# HDMI CEC: "false" or "true", defaults to "true"
#setenv cecenable "true"

# Disable ODROID-VU7 touchscreen support: "false" or "true", defaults to "true"
#setenv disable_vu7 "true"

# ODROID CloudShell 2 TFT LCD and FAN control via I2C bus: "false" or "true", defaults to "false"
#setenv cs2enable "false"

# Device tree overlays
# - See /boot/dtb/overlays or /boot/dtb for available overlays (*.dtbo files): defaults to empty string ""
#setenv overlays "i2c0"

# DDR frequency [MHz]: "633", "728", "825" or "933", defaults to "825"
#setenv ddr_freq "825"

# HDMI resolution
# - Uncomment only ONE line! Leave all commented for automatic selection.
# - Uncomment only the setenv line!
Expand Down Expand Up @@ -123,71 +124,21 @@ setenv HPD "true"
#setenv videoconfig "drm_kms_helper.edid_firmware=edid/480x800.bin"
# -----------------------------------------------

# Disable ODROID-VU7 touchscreen support: "false" or "true", defaults to "true"
#setenv disable_vu7 "true"

# ODROID CloudShell 2 TFT LCD and FAN control via I2C bus: "false" or "true", defaults to "false"
#setenv cs2enable "false"

# Device tree overlays
# - See /boot/dtb/overlays for available overlays: defaults to empty string ""
#setenv overlays "i2c0"

# CPU governor
# - DietPi will override this setting to user configured in dietpi-config > Performance Options > CPU governor
setenv governor "performance"

# DDR frequency [MHz]: "633", "728", "825" or "933", defaults to "825"
#setenv ddr_freq "825"

# TMDS data amplitude control.
# - 1LSB corresponds to 20 mVdiff amplitude level
# - tx_amp_lvl : 0 = 760 mVdiff(Min), 31 = 1380 mVdiff(Max)
# - Hardkernel default: hdmi_tx_amp_lvl = 31(1380 mVdiff)
setenv hdmi_tx_amp_lvl "31"

# TMDS data amplitude fine control for each channel
# - 1LSB corresponds to 20 mVdiff amplitude level
# - tx_lvl : 0 = 0 mVdiff(Min), 3 = 60 mVdiff(Max)
# - Hardkernel default: hdmi_tx_lvl_ch0=hdmi_tx_lvl_ch1=hdmi_tx_lvl_ch2 = 3
setenv hdmi_tx_lvl_ch0 "3"
setenv hdmi_tx_lvl_ch1 "3"
setenv hdmi_tx_lvl_ch2 "3"

# TMDS data pre-emphasis level control
# - 1LSB corresponds to -0.45dB emphasis level except for 1
# - tx_emp_lvl : 0 = 0 db(Min), 1 = -0.25 db, 2 = 0.7 db, 15 = -7.45 db(Max)
# - Hardkernel default: hdmi_tx_emp_lvl = 6 (-2.50 db)
setenv hdmi_tx_emp_lvl "6"

# TMDS clock amplitude control
# - 1LSB corresponds to 20 mVdiff amplitude level.
# - clk_amp_lvl : 0 = 790 mVdiff(Min), 31 = 1410 mVdiff(Max)
# - Hardkernel default hdmi_clk_amp_lvl = 31 (1410 mVdiff)
setenv hdmi_clk_amp_lvl "31"

# TMDS data source termination resistor control
# - tx_res : 0 = Source Termination OFF(Min), 1 = 200 ohm, 2 = 300 ohm, 3 = 120 ohm(Max)
# - Hardkernel default hdmi_tx_res = 0 (Source Termination OFF)
setenv hdmi_tx_res "0"

### DO NOT EDIT ANYTHING BELOW THIS LINE ###

setenv hdmi_phy_control "hdmi_tx_amp_lvl=${hdmi_tx_amp_lvl} hdmi_tx_lvl_ch0=${hdmi_tx_lvl_ch0} hdmi_tx_lvl_ch1=${hdmi_tx_lvl_ch1} hdmi_tx_lvl_ch2=${hdmi_tx_lvl_ch2} hdmi_tx_emp_lvl=${hdmi_tx_emp_lvl} hdmi_clk_amp_lvl=${hdmi_clk_amp_lvl} hdmi_tx_res=${hdmi_tx_res} HPD=${HPD} vout=${vout}"

# Load kernel, initrd and dtb in that sequence
ext4load mmc 0:1 0x40008000 /boot/zImage || fatload mmc 0:1 0x40008000 zImage || ext4load mmc 0:1 0x40008000 zImage
ext4load mmc 0:1 0x42000000 /boot/uInitrd || fatload mmc 0:1 0x42000000 uInitrd || ext4load mmc 0:1 0x42000000 uInitrd
load mmc 0:1 0x40008000 /boot/zImage || load mmc 0:1 0x40008000 zImage
load mmc 0:1 0x42000000 /boot/uInitrd || load mmc 0:1 0x42000000 uInitrd
if test "${board_name}" = "xu4"; then setenv fdtfile "exynos5422-odroidxu4.dtb"; fi
if test "${board_name}" = "xu3"; then setenv fdtfile "exynos5422-odroidxu3.dtb"; fi
if test "${board_name}" = "xu3l"; then setenv fdtfile "exynos5422-odroidxu3-lite.dtb"; fi
if test "${board_name}" = "hc1"; then setenv fdtfile "exynos5422-odroidhc1.dtb"; fi
ext4load mmc 0:1 0x44000000 /boot/dtb/${fdtfile} || fatload mmc 0:1 0x44000000 dtb/${fdtfile} || ext4load mmc 0:1 0x44000000 dtb/${fdtfile}
load mmc 0:1 0x44000000 /boot/dtb/${fdtfile} || load mmc 0:1 0x44000000 dtb/${fdtfile}

# Set FDT address
fdt addr 0x44000000

if test "${cecenable}" = "false"; then fdt rm /cec@101B0000; fi
if test "${cecenable}" = "false"; then fdt rm /soc/cec@101b0000; fi
if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi

# Add overlays for CloudShell
Expand All @@ -205,7 +156,7 @@ fi
if test "x${overlays}" != "x"; then
fdt resize 8192
for overlay in ${overlays}; do
ext4load mmc 0:1 0x60000000 /boot/dtb/overlays/${overlay}.dtbo || fatload mmc 0:1 0x60000000 dtb/overlays/${overlay}.dtbo || ext4load mmc 0:1 0x60000000 dtb/overlays/${overlay}.dtbo
load mmc 0:1 0x60000000 /boot/dtb/${overlay}.dtbo || load mmc 0:1 0x60000000 /boot/dtb/overlays/${overlay}.dtbo || load mmc 0:1 0x60000000 dtb/${overlay}.dtbo || load mmc 0:1 0x60000000 dtb/overlays/${overlay}.dtbo
fdt apply 0x60000000
done
fi
Expand All @@ -214,7 +165,7 @@ fi
if test "x${ddr_freq}" != "x"; then dmc "${ddr_freq}"; fi

# Final boot args (DRM debugging: drm.debug=0xff)
setenv bootargs "${bootrootfs} ${videoconfig} smsc95xx.macaddr=${macaddr} governor=${governor} ${hdmi_phy_control} ${hid_quirks}"
setenv bootargs "${bootrootfs} ${videoconfig} ${hid_quirks}"

# Boot the board
bootz 0x40008000 0x42000000 0x44000000
3 changes: 1 addition & 2 deletions .build/images/dietpi-build
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,7 @@ case $HW_MODEL in
80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1136;;
81) iname='VisionFive2' HW_ARCH=11 root_size=639;;
82) iname='OrangePi5Plus' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1008;;
'83.1') iname='OrangePiZero3' HW_ARCH=3 partition_start=4 root_size=1148;;
'83.2') iname='OrangePiZero3-1.5G' HW_ARCH=3 partition_start=4 root_size=1148;;
83) iname='OrangePiZero3' HW_ARCH=3 partition_start=4 root_size=1148;;
84) iname='Star64' HW_ARCH=11 root_size=639;;
85) iname='ROCK5A' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1008;;
86) iname='ASUSTB2' HW_ARCH=3 partition_start=16 root_size=1008;;
Expand Down
24 changes: 6 additions & 18 deletions .build/images/dietpi-installer
Original file line number Diff line number Diff line change
Expand Up @@ -423,8 +423,7 @@ _EOF_
'89' ': Orange Pi 3 LTS'
'80' ': Orange Pi 5'
'82' ': Orange Pi 5 Plus'
'83.1' ': Orange Pi Zero 3'
'83.2' ': Orange Pi Zero 3 (1.5 GB RAM)'
'83' ': Orange Pi Zero 3'
'88' ': Orange Pi Zero 2W'
'86' ': ASUS Tinker Board 2'
'23' ': Generic Rockchip RK3328'
Expand Down Expand Up @@ -724,7 +723,6 @@ setenv rootuuid "true"' /boot/boot.cmd
# Device tree
case $G_HW_MODEL in
45) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=allwinner/sun50i-h6-pine-h64-model-b.dtb' /boot/dietpiEnv.txt;;
83) (( $HW_VARIANT == 2 )) && G_CONFIG_INJECT 'fdtfile=' 'fdtfile=allwinner/sun50i-h618-orangepi-zero3.dtb' /boot/dietpiEnv.txt;;
88) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=allwinner/sun50i-h618-orangepi-zero2w.dtb' /boot/dietpiEnv.txt;;
*) :;;
esac
Expand Down Expand Up @@ -1177,15 +1175,8 @@ _EOF_
G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb
G_EXEC rm package.deb
fi
# Orange Pi Zero 3 1.5G RAM variant: Install original Orange Pi bootloader
if (( $G_HW_MODEL == 83 )) && (( $HW_VARIANT == 2 ))
then
G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/linux-u-boot-orangepizero3-next_1.5G.deb'
G_AGI linux-{image,dtb}-"$branch-$kernel" ./package.deb
G_EXEC rm package.deb
else
G_AGI linux-{image,dtb}-"$branch-$kernel" "linux-u-boot-$model-$branch"
fi
# Install kernel and bootloader
G_AGI linux-{image,dtb}-"$branch-$kernel" "linux-u-boot-$model-$branch"
# Cleanup
[[ $G_HW_MODEL != 10 && -f '/boot/uImage' ]] && G_EXEC rm /boot/uImage
[[ -f '/boot/.next' ]] && G_EXEC rm /boot/.next
Expand All @@ -1195,12 +1186,7 @@ _EOF_
# Compile U-Boot script
[[ -f '/boot/boot.cmd' ]] && G_EXEC mkimage -C none -A "$arch" -T script -d /boot/boot.cmd /boot/boot.scr
# Flash U-Boot
# shellcheck disable=SC1091
. /usr/lib/u-boot/platform_install.sh
# - Do not mute progress and error messages
eval "$(declare -f write_uboot_platform | sed -e 's| > /dev/null 2>&1||g' -e 's|status=none|status=progress|g')"
# shellcheck disable=SC2154
write_uboot_platform "$DIR" "$BOOT_DEVICE"
/boot/dietpi/func/dietpi-set_hardware flash-u-boot-mmc "$BOOT_DEVICE"

# Odroid C1 cleanup: https://dietpi.com/forum/t/odroid-c1-not-booting-after-kernel-upgrade/17818
if (( $G_HW_MODEL == 10 ))
Expand Down Expand Up @@ -1293,6 +1279,8 @@ _EOF_
G_AGI raspi-firmware
G_CONFIG_INJECT 'SKIP_INITRAMFS_GEN=' 'SKIP_INITRAMFS_GEN=yes' /etc/default/raspi-firmware
G_AGI "${kernel[@]}" raspi-utils raspberrypi-sys-mods raspberrypi-archive-keyring "${a32bit[@]}" tiny-initramfs
G_EXEC apt-mark auto tiny-initramfs
G_EXEC rm -f /boot/initrd.img-* /boot/firmware/initramfs*
else
G_AGI raspberrypi-bootloader raspberrypi-kernel libraspberrypi0 libraspberrypi-bin raspberrypi-sys-mods raspberrypi-archive-keyring "${a32bit[@]}"
fi
Expand Down
6 changes: 6 additions & 0 deletions .build/software/Amiberry/container_build.bash
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,9 @@ G_EXEC eval 'echo '\''infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsup
# Workaround for failing IPv4 network connectivity check as GitHub Actions runners do not receive external ICMP echo replies
G_CONFIG_INJECT 'CONFIG_CHECK_CONNECTION_IP=' 'CONFIG_CHECK_CONNECTION_IP=127.0.0.1' rootfs/boot/dietpi.txt

# Shutdown on failures before the custom script is executed
G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tulpn; df -h; free -h; poweroff; }|' rootfs/boot/dietpi/dietpi-login

# Avoid DietPi-Survey uploads to not mess with the statistics
G_EXEC rm rootfs/root/.ssh/known_hosts

Expand All @@ -134,6 +137,9 @@ Pin-Priority: -1
_EOF_
fi

# ARMv6/7 Trixie: Temporarily prevent dist-upgrade on Trixie, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo.
(( $arch < 3 )) && [[ $DISTRO == 'trixie' ]] && G_EXEC touch rootfs/boot/dietpi/.skip_distro_upgrade

# Automated build
cat << _EOF_ >> rootfs/boot/Automation_Custom_Script.sh || Error_Exit 'Failed to generate Automation_Custom_Script.sh'
echo '[ INFO ] Running Amiberry build script ...'
Expand Down
3 changes: 3 additions & 0 deletions .build/software/dietpi-software-build.bash
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tu
# Avoid DietPi-Survey uploads to not mess with the statistics
G_EXEC rm rootfs/root/.ssh/known_hosts

# ARMv6/7 Trixie: Temporarily prevent dist-upgrade on Trixie, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo.
(( $arch < 3 )) && [[ $DISTRO == 'trixie' ]] && G_EXEC touch rootfs/boot/dietpi/.skip_distro_upgrade

# Automated build
cat << _EOF_ > rootfs/boot/Automation_Custom_Script.sh || Error_Exit 'Failed to generate Automation_Custom_Script.sh'
#!/bin/dash
Expand Down
27 changes: 27 additions & 0 deletions .github/workflows/armbian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,33 @@ jobs:
git fetch origin main
git rebase origin/main
fi
- name: Obtain version suffix
run: |
cd build
read -r version < VERSION
case '${{ github.event.inputs.asset }}' in
firmware) package='armbian-firmware';;
uboot) package='linux-uboot-${{ github.event.inputs.board }}-${{ github.event.inputs.board }}';;
kernel)
family=$(. 'config/boards/${{ github.event.inputs.board }}.'* &> /dev/null; echo "$BOARDFAMILY")
echo "Board family is: $family"
family=$(BRANCH='${{ github.event.inputs.branch }}'; . "config/sources/families/$family.conf" &> /dev/null; echo "$LINUXFAMILY")
echo "Linux family is: $family"
package="linux-image-${{ github.event.inputs.branch }}-$family"
;;
*) echo 'ERROR: Invalid asset "${{ github.event.inputs.asset }}"'; exit 1;;
esac
if curl -fO "https://dietpi.com/downloads/binaries/$package.deb"
then
cur_version=$(dpkg-deb -f "$package.deb" Version)
rm "$package.deb"
cur_suffix=${cur_version#*-dietpi}
echo "Current package version is: $cur_version"
fi
echo "New Armbian version is: $version"
[ "$version-dietpi$cur_suffix" = "$cur_version" ] && version="$version-dietpi$((cur_suffix+1))" || version="$version-dietpi1"
echo "New package version will be: $version"
echo "$version" > VERSION
- name: Build asset
run: |
cd build
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/dietpi-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ jobs:
'"-m 80 -d 6", "-m 80 -d 7", "-m 80 -d 8", '\
'"-m 81 -d 8", '\
'"-m 82 -d 6", "-m 82 -d 7", "-m 82 -d 8", '\
'"-m 83.1 -d 6", "-m 83.1 -d 7", "-m 83.1 -d 8", '\
'"-m 83.2 -d 6", "-m 83.2 -d 7", "-m 83.2 -d 8", '\
'"-m 83 -d 6", "-m 83 -d 7", "-m 83 -d 8", '\
'"-m 84 -d 8", '\
'"-m 85 -d 6", "-m 85 -d 7", "-m 85 -d 8", '\
'"-m 86 -d 6", "-m 86 -d 7", "-m 86 -d 8", '\
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/dietpi-software.bash
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,9 @@ G_EXEC eval 'echo -e '\''[Service]\nAmbientCapabilities='\'' > rootfs/etc/system
# Workaround for sysctl: permission denied on key "net.core.rmem_max" in containers
G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''/G_EXEC sysctl -w net\.core\.rmem_max/d'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login

# ARMv6/7 Trixie: Temporarily prevent dist-upgrade on Trixie, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo.
(( $arch < 3 )) && [[ $DISTRO == 'trixie' ]] && G_EXEC touch rootfs/boot/dietpi/.skip_distro_upgrade

# Check for service status, ports and commands
# shellcheck disable=SC2016
# - Start all services
Expand Down
21 changes: 20 additions & 1 deletion .update/patches
Original file line number Diff line number Diff line change
Expand Up @@ -1561,14 +1561,33 @@ Patch_9_3()
Patch_9_4()
{
# Update DietPi APT list for several SBCs we added components to our repo for
if [[ $G_HW_MODEL =~ ^(40|44|45|48|56|57|59|60|64|65|67|76|83|88|89|90)$ ]]
if [[ $G_HW_MODEL =~ ^(11|40|44|45|48|56|57|59|60|64|65|67|76|83|88|89|90)$ ]]
then
/boot/dietpi/func/dietpi-set_software apt-mirror dietpi
G_AGUP -v
# shellcheck disable=SC2154
(( $G_AGUP_COUNT )) && G_AGUG
fi

# Odroid XU4
if (( $G_HW_MODEL == 11 ))
then
G_DIETPI-NOTIFY 2 'Migrating boot.ini to support new Linux 6.6 device tree overlay locations'
/boot/dietpi/func/dietpi-set_hardware flash-u-boot-mmc
# shellcheck disable=SC2016
G_EXEC sed -i '\|/boot/dtb/overlays/${overlay}.dtbo|c load mmc 0:1 0x60000000 /boot/dtb/${overlay}.dtbo || load mmc 0:1 0x60000000 /boot/dtb/overlays/${overlay}.dtbo || load mmc 0:1 0x60000000 dtb/${overlay}.dtbo || load mmc 0:1 0x60000000 dtb/overlays/${overlay}.dtbo' /boot/boot.ini
G_DIETPI-NOTIFY 2 'Fixing CEC toggle in boot.ini'
G_EXEC sed -i 's|rm /cec@101B0000;|rm /soc/cec@101b0000;|' /boot/boot.ini

# Orange Pi Zero 3 1.5 GiB RAM: Fix lost Ethernet adapter on reboot: https://github.com/MichaIng/DietPi/issues/6938
elif (( $G_HW_MODEL == 83 )) && dpkg-query -s 'linux-u-boot-orangepizero3-next' &> /dev/null
then
G_DIETPI-NOTIFY 2 'Switching to new U-Boot build which fixes lost Ethernet adapter on reboot ...'
G_AGP linux-u-boot-orangepizero3-next
G_AGI linux-u-boot-orangepizero3-current
/boot/dietpi/func/dietpi-set_hardware flash-u-boot-mmc
fi

if [[ -f '/boot/dietpi/.installed' ]]
then
# GMediaRender
Expand Down
18 changes: 6 additions & 12 deletions .update/pre-patches
Original file line number Diff line number Diff line change
Expand Up @@ -415,20 +415,14 @@ fi
# v9.4
if (( $G_DIETPI_VERSION_CORE < 9 || ( $G_DIETPI_VERSION_CORE == 9 && $G_DIETPI_VERSION_SUB < 4 ) ))
then
if (( $G_HW_MODEL < 10 && $G_DISTRO > 6 )) && dpkg-query -s 'raspi-firmware' &> /dev/null
if (( $G_HW_MODEL < 10 && $G_DISTRO > 6 )) && dpkg-query -s 'raspi-firmware' &> /dev/null && ! apt-mark showmanual | grep -E '^(initramfs-tools|dracut|tiny-initramfs)(-core)?$'
then
# Satisfy upcoming initramfs dependency of new kernel packages with slim tiny-initramfs: https://github.com/RPi-Distro/repo/issues/358
G_DIETPI-NOTIFY 2 'Satisfying initramfs package dependency of raspi-firmware with tiny-initramfs' # https://github.com/RPi-Distro/repo/issues/358
G_CONFIG_INJECT 'SKIP_INITRAMFS_GEN=' 'SKIP_INITRAMFS_GEN=yes' /etc/default/raspi-firmware
if ! dpkg-query -s 'initramfs-tools' &> /dev/null
then
G_AGI tiny-initramfs

elif apt-mark showauto | grep '^initramfs-tools$'
then
G_AGI tiny-initramfs
G_AGP initramfs-tools
# ToDo: Remove existing initramfs images in /boot/initrd-* and /boot/firmware/initramfs*
fi
G_AGI tiny-initramfs
G_EXEC apt-mark auto tiny-initramfs
G_AGP initramfs-tools
G_EXEC rm -f /boot/initrd.img-* /boot/firmware/initramfs*
fi
fi

Expand Down
2 changes: 1 addition & 1 deletion .update/version
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Available DietPi version
G_REMOTE_VERSION_CORE=9
G_REMOTE_VERSION_SUB=4
G_REMOTE_VERSION_RC=0
G_REMOTE_VERSION_RC=1
# Minimum DietPi version to allow update
G_MIN_VERSION_CORE=7
G_MIN_VERSION_SUB=0
Expand Down
Loading

0 comments on commit 2739934

Please sign in to comment.