From a1e2dc8f03ab86328fb51ecd72ff66abf5eab5cc Mon Sep 17 00:00:00 2001 From: richard28530 Date: Mon, 27 Aug 2018 11:09:53 +0800 Subject: [PATCH 1/7] [baseimage] set default locale en_US.UTF-8 Signed-off-by: chenhu --- build_debian.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/build_debian.sh b/build_debian.sh index 28493ea16877..714a6744cea1 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -227,7 +227,13 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in hping3 \ python-scapy \ tcptraceroute \ - mtr-tiny + mtr-tiny \ + locales + +#Adds a locale to a debian system in non-interactive mode +sudo sed -i '/^#.* en_US.* /s/^#//' $FILESYSTEM_ROOT/etc/locale.gen && \ + sudo sed -i "\$aLANG=en_US.UTF-8" $FILESYSTEM_ROOT/etc/default/locale && \ + sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT locale-gen "en_US.UTF-8" # Install certain fundamental packages from stretch-backports in order to get # more up-to-date (but potentially less stable) versions @@ -378,7 +384,7 @@ sudo chroot $FILESYSTEM_ROOT update-initramfs -u sudo LANG=C chroot $FILESYSTEM_ROOT apt-get autoremove sudo LANG=C chroot $FILESYSTEM_ROOT apt-get autoclean sudo LANG=C chroot $FILESYSTEM_ROOT apt-get clean -sudo LANG=C chroot $FILESYSTEM_ROOT bash -c 'rm -rf /usr/share/doc/* /usr/share/locale/* /var/lib/apt/lists/* /tmp/*' +sudo LANG=C chroot $FILESYSTEM_ROOT bash -c 'rm -rf /usr/share/doc/* /var/lib/apt/lists/* /tmp/*' ## Clean up proxy [ -n "$http_proxy" ] && sudo rm -f $FILESYSTEM_ROOT/etc/apt/apt.conf.d/01proxy From c61aadb4c5fe1cc206fb55c87fc21cb276fa23a2 Mon Sep 17 00:00:00 2001 From: richard28530 Date: Wed, 29 Aug 2018 09:32:53 +0800 Subject: [PATCH 2/7] [baseimage]set default locale to en_US.UTF-8, clean all other unused --- build_debian.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build_debian.sh b/build_debian.sh index 714a6744cea1..f820dda8dfb1 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -234,6 +234,7 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in sudo sed -i '/^#.* en_US.* /s/^#//' $FILESYSTEM_ROOT/etc/locale.gen && \ sudo sed -i "\$aLANG=en_US.UTF-8" $FILESYSTEM_ROOT/etc/default/locale && \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT locale-gen "en_US.UTF-8" +sudo LANG=C chroot $FILESYSTEM_ROOT bash -c "find /usr/share/i18n/locales/ ! -name 'en_US' -type f -exec rm -f {} +" # Install certain fundamental packages from stretch-backports in order to get # more up-to-date (but potentially less stable) versions @@ -384,7 +385,7 @@ sudo chroot $FILESYSTEM_ROOT update-initramfs -u sudo LANG=C chroot $FILESYSTEM_ROOT apt-get autoremove sudo LANG=C chroot $FILESYSTEM_ROOT apt-get autoclean sudo LANG=C chroot $FILESYSTEM_ROOT apt-get clean -sudo LANG=C chroot $FILESYSTEM_ROOT bash -c 'rm -rf /usr/share/doc/* /var/lib/apt/lists/* /tmp/*' +sudo LANG=C chroot $FILESYSTEM_ROOT bash -c 'rm -rf /usr/share/doc/* /usr/share/locale/* /var/lib/apt/lists/* /tmp/*' ## Clean up proxy [ -n "$http_proxy" ] && sudo rm -f $FILESYSTEM_ROOT/etc/apt/apt.conf.d/01proxy From fd7073ae6a12a2e09f53b0c3d016731f21895429 Mon Sep 17 00:00:00 2001 From: richard28530 Date: Mon, 3 Sep 2018 15:47:47 +0800 Subject: [PATCH 3/7] [baseimage] update-locale after locale-gen --- build_debian.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build_debian.sh b/build_debian.sh index f820dda8dfb1..f5b0bb5a3932 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -234,6 +234,7 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in sudo sed -i '/^#.* en_US.* /s/^#//' $FILESYSTEM_ROOT/etc/locale.gen && \ sudo sed -i "\$aLANG=en_US.UTF-8" $FILESYSTEM_ROOT/etc/default/locale && \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT locale-gen "en_US.UTF-8" +sudo LANG=en_US.UTF-8 DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT update-locale "en_US.UTF-8" sudo LANG=C chroot $FILESYSTEM_ROOT bash -c "find /usr/share/i18n/locales/ ! -name 'en_US' -type f -exec rm -f {} +" # Install certain fundamental packages from stretch-backports in order to get From 6957749cbcf3ae97a728f663372f500c6a3dd245 Mon Sep 17 00:00:00 2001 From: Guohan Lu Date: Tue, 11 Sep 2018 05:53:25 +0000 Subject: [PATCH 4/7] correct update-locale command line Signed-off-by: Guohan Lu --- build_debian.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build_debian.sh b/build_debian.sh index f5b0bb5a3932..0c2149c3bfd1 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -232,9 +232,8 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in #Adds a locale to a debian system in non-interactive mode sudo sed -i '/^#.* en_US.* /s/^#//' $FILESYSTEM_ROOT/etc/locale.gen && \ - sudo sed -i "\$aLANG=en_US.UTF-8" $FILESYSTEM_ROOT/etc/default/locale && \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT locale-gen "en_US.UTF-8" -sudo LANG=en_US.UTF-8 DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT update-locale "en_US.UTF-8" +sudo LANG=en_US.UTF-8 DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT update-locale "LANG=en_US.UTF-8" sudo LANG=C chroot $FILESYSTEM_ROOT bash -c "find /usr/share/i18n/locales/ ! -name 'en_US' -type f -exec rm -f {} +" # Install certain fundamental packages from stretch-backports in order to get From ad2ac364613e63cee7e322974a2feddc1912de64 Mon Sep 17 00:00:00 2001 From: richard28530 Date: Thu, 14 Feb 2019 16:00:51 +0800 Subject: [PATCH 5/7] support timezone setting in ConfigDB --- files/build_templates/sonic_debian_extension.j2 | 5 +++++ files/image_config/timezone/timezone-config.service | 11 +++++++++++ files/image_config/timezone/timezone-config.sh | 12 ++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 files/image_config/timezone/timezone-config.service create mode 100755 files/image_config/timezone/timezone-config.sh diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index da7ad28b5462..db00e79f498a 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -183,6 +183,11 @@ sudo cp $IMAGE_CONFIGS/hostname/hostname-config.service $FILESYSTEM_ROOT/etc/sy sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable hostname-config.service sudo cp $IMAGE_CONFIGS/hostname/hostname-config.sh $FILESYSTEM_ROOT/usr/bin/ +# Copy timezone configuration scripts +sudo cp $IMAGE_CONFIGS/timezone/timezone-config.service $FILESYSTEM_ROOT/etc/systemd/system/ +sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable timezone-config.service +sudo cp $IMAGE_CONFIGS/timezone/timezone-config.sh $FILESYSTEM_ROOT/usr/bin/ + # Copy updategraph script and service file j2 files/build_templates/updategraph.service.j2 | sudo tee $FILESYSTEM_ROOT/etc/systemd/system/updategraph.service sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable updategraph.service diff --git a/files/image_config/timezone/timezone-config.service b/files/image_config/timezone/timezone-config.service new file mode 100644 index 000000000000..c1c4d547716b --- /dev/null +++ b/files/image_config/timezone/timezone-config.service @@ -0,0 +1,11 @@ +[Unit] +Description=Update timezone based on configdb +Requires=updategraph.service +After=updategraph.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/timezone-config.sh + +[Install] +WantedBy=multi-user.target diff --git a/files/image_config/timezone/timezone-config.sh b/files/image_config/timezone/timezone-config.sh new file mode 100755 index 000000000000..6690e78bb276 --- /dev/null +++ b/files/image_config/timezone/timezone-config.sh @@ -0,0 +1,12 @@ +#!/bin/bash -e + +CURRENT_TIMEZONE=`cat /etc/timezone` +TIMEZONE=`sonic-cfggen -d -v DEVICE_METADATA[\'localhost\'][\'timezone\']` + +if [ ! $TIMEZONE == "" ] +then + sudo bash -c "echo $TIMEZONE > /etc/timezone" + sudo bash -c "dpkg-reconfigure -f noninteractive tzdata" + sudo bash -c "systemctl restart rsyslog" + sudo bash -c "systemctl restart cron" +fi From b4e92da88e544effe6175345beca9e04050a225b Mon Sep 17 00:00:00 2001 From: richard28530 Date: Fri, 15 Feb 2019 09:54:02 +0800 Subject: [PATCH 6/7] [timezone] use -n for non-zero length judgement --- files/image_config/timezone/timezone-config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/image_config/timezone/timezone-config.sh b/files/image_config/timezone/timezone-config.sh index 6690e78bb276..5396a01a20fe 100755 --- a/files/image_config/timezone/timezone-config.sh +++ b/files/image_config/timezone/timezone-config.sh @@ -3,7 +3,7 @@ CURRENT_TIMEZONE=`cat /etc/timezone` TIMEZONE=`sonic-cfggen -d -v DEVICE_METADATA[\'localhost\'][\'timezone\']` -if [ ! $TIMEZONE == "" ] +if [ -n $TIMEZONE ] then sudo bash -c "echo $TIMEZONE > /etc/timezone" sudo bash -c "dpkg-reconfigure -f noninteractive tzdata" From 9ca4b0a62b49945fcbc611065066927f5e4ab18c Mon Sep 17 00:00:00 2001 From: richard28530 Date: Fri, 15 Feb 2019 11:39:15 +0800 Subject: [PATCH 7/7] add double quote --- files/image_config/timezone/timezone-config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/image_config/timezone/timezone-config.sh b/files/image_config/timezone/timezone-config.sh index 5396a01a20fe..86e2c3841a33 100755 --- a/files/image_config/timezone/timezone-config.sh +++ b/files/image_config/timezone/timezone-config.sh @@ -3,7 +3,7 @@ CURRENT_TIMEZONE=`cat /etc/timezone` TIMEZONE=`sonic-cfggen -d -v DEVICE_METADATA[\'localhost\'][\'timezone\']` -if [ -n $TIMEZONE ] +if [ -n "$TIMEZONE" ] then sudo bash -c "echo $TIMEZONE > /etc/timezone" sudo bash -c "dpkg-reconfigure -f noninteractive tzdata"