Compare commits

..

4 Commits

Author SHA1 Message Date
Jose Braga
e6e9a01c1d Marking version 1.9.3. 2014-01-27 18:00:38 +00:00
Jose Braga
23e5f9b34c Renamed sc-1 aux. 2014-01-27 17:57:08 +00:00
Jose Braga
5abb3e220a Marking version 1.9.1. 2014-01-27 17:48:37 +00:00
Jose Braga
9686a1cefa Renamed lauv-seacon-4. 2014-01-27 17:47:38 +00:00
425 changed files with 4471 additions and 3833 deletions

16
.gitignore vendored
View File

@@ -1,8 +1,8 @@
/downloads
/lctr-a4xx
/lctr-a6xx
/lctr-a8xx
/lctr-a9xx
/lctr-b1xx
/lctr-b2xx
/qemu-i686
downloads
lctr-a4xx
lctr-a6xx
lctr-a8xx
lctr-a9xx
lctr-b1xx
lctr-b2xx
qemu-i686

View File

@@ -1,6 +1,6 @@
###########################################################################
# GLUED: GNU/Linux Uniform Environment Distribution #
# Copyright (C) 2007-2014 Universidade do Porto - Faculdade de Engenharia #
# Copyright (C) 2007-2013 Universidade do Porto - Faculdade de Engenharia #
# Laboratório de Sistemas e Tecnologia Subaquática (LSTS) #
###########################################################################
# This program is free software; you can redistribute it and/or modify #
@@ -18,8 +18,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA #
# 02110-1301 USA. #
###########################################################################
# Author: Ricardo Martins #
###########################################################################
nfo1()
{

View File

@@ -27,7 +27,7 @@ tar czf "$1/${backupsystem}_backup/${backupfile}" \
architectures \
scripts \
product \
rules \
packages \
systems
echo "Done ... "

View File

@@ -1,7 +1,7 @@
#! /bin/bash
###########################################################################
# GLUED: GNU/Linux Uniform Environment Distribution #
# Copyright (C) 2007-2014 Universidade do Porto - Faculdade de Engenharia #
# Copyright (C) 2007-2013 Universidade do Porto - Faculdade de Engenharia #
# Laboratório de Sistemas e Tecnologia Subaquática (LSTS) #
###########################################################################
# This program is free software; you can redistribute it and/or modify #
@@ -19,11 +19,9 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA #
# 02110-1301 USA. #
###########################################################################
# Author: Ricardo Martins #
###########################################################################
# Config: GLUED version.
cfg_glued_version='1.10.0'
cfg_glued_version='1.9.3'
# Config: GLUED vendor.
cfg_glued_vendor='lsts'
@@ -90,15 +88,14 @@ if ! [ -f "architectures/$cfg_architecture.cfg" ]; then
fi
source "architectures/$cfg_architecture.cfg"
# Create a MAC address based on the IP address if cfg_eth_ext_soft_mac
# is set.
if [ -n "$cfg_eth_ext_ip" ] && [ -n "$cfg_eth_ext_soft_mac" ]; then
ips=(`echo $cfg_eth_ext_ip | sed -e 's/\./\n/g'`)
for i in "${ips[@]}"
do
hip=("${hip[@]}" `printf '%x' $i`)
done
cfg_eth_ext_mac="80:c1:${hip[0]}:${hip[1]}:${hip[2]}:${hip[3]}"
# Creating the mac address if not set in configuration file we create one derivated from the IP address:
if [ -n $cfg_eth_ext_ip ]; then
ips=(`echo $cfg_eth_ext_ip | sed -e 's/\./\n/g'`)
for i in "${ips[@]}"
do
hip=("${hip[@]}" `printf '%x' $i`)
done
cfg_eth_ext_mac="80:c1:${hip[0]}:${hip[1]}:${hip[2]}:${hip[3]}"
fi
# Config: system name.
@@ -112,7 +109,7 @@ cfg_dir_base="$PWD"
# Config: system configuration folder.
cfg_dir_system="$cfg_dir_base/$family_dir"
# Config: package rules folder.
cfg_dir_rules="$cfg_dir_base/rules"
cfg_dir_packages="$cfg_dir_base/packages"
# Config: configuration rules folder.
cfg_dir_postconfiguration="$cfg_dir_base/postconfiguration"
# Config: package sources folder.

View File

@@ -1,7 +1,7 @@
#! /bin/bash
###########################################################################
# GLUED: GNU/Linux Uniform Environment Distribution #
# Copyright (C) 2007-2014 Universidade do Porto - Faculdade de Engenharia #
# Copyright (C) 2007-2013 Universidade do Porto - Faculdade de Engenharia #
# Laboratório de Sistemas e Tecnologia Subaquática (LSTS) #
###########################################################################
# This program is free software; you can redistribute it and/or modify #
@@ -19,8 +19,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA #
# 02110-1301 USA. #
###########################################################################
# Author: Ricardo Martins #
###########################################################################
cmd_parted()
{

View File

@@ -1,7 +1,7 @@
#! /bin/bash
###########################################################################
# GLUED: GNU/Linux Uniform Environment Distribution #
# Copyright (C) 2007-2014 Universidade do Porto - Faculdade de Engenharia #
# Copyright (C) 2007-2013 Universidade do Porto - Faculdade de Engenharia #
# Laboratório de Sistemas e Tecnologia Subaquática (LSTS) #
###########################################################################
# This program is free software; you can redistribute it and/or modify #
@@ -19,8 +19,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA #
# 02110-1301 USA. #
###########################################################################
# Author: Ricardo Martins #
###########################################################################
source "functions.bash"
@@ -97,7 +95,7 @@ download()
u="$(echo ${git[$n]} | cut -f1 -d'#')"
b="$(echo ${git[$n]} | cut -f2 -d'#')"
dir=$(basename $u)
des="${cfg_dir_builds}/$pkg/$dir-git"
des="${cfg_dir_builds}/$PKG/$dir-git"
if [[ "$u" == git* ]]; then
git clone --verbose --branch "$b" "$u" "$des"
@@ -125,10 +123,10 @@ unpack()
case $file in
*tar*|*tgz|*tbz*)
tar -C "$cfg_dir_builds/$pkg" -x -f "$cfg_dir_downloads/$file" || exit 1
tar -C "$cfg_dir_builds/$PKG" -x -f "$cfg_dir_downloads/$file" || exit 1
;;
*zip)
unzip "$cfg_dir_downloads/$file" -d "$cfg_dir_builds/$pkg" || exit 1
unzip "$cfg_dir_downloads/$file" -d "$cfg_dir_builds/$PKG" || exit 1
;;
*)
echo "File $file can't be handled."
@@ -139,11 +137,11 @@ unpack()
dir_gnu_cfg="$cfg_dir_toolchain/share/gnu-config"
if [ "$cfg_dir_cfg/config.sub" ]; then
find "$cfg_dir_builds/$pkg" -name config.sub -exec install -v -m 0755 "$dir_gnu_cfg/config.sub" '{}' \;
find "$cfg_dir_builds/$PKG" -name config.sub -exec install -v -m 0755 "$dir_gnu_cfg/config.sub" '{}' \;
fi
if [ "$cfg_dir_cfg/config.guess" ]; then
find "$cfg_dir_builds/$pkg" -name config.guess -exec install -v -m 0755 "$dir_gnu_cfg/config.guess" '{}' \;
find "$cfg_dir_builds/$PKG" -name config.guess -exec install -v -m 0755 "$dir_gnu_cfg/config.guess" '{}' \;
fi
return 0
@@ -181,48 +179,48 @@ postconfigure()
perform_clean()
{
rm -rf "$cfg_dir_builds/$pkg/$pkg_var"
rm -rf "$cfg_dir_builds/$PKG/$PKG_VAR"
}
perform_all()
{
start="$(date +%s)"
nfo1 "$pkg / $pkg_var"
nfo1 "$PKG / $PKG_VAR"
export pkg_build_dir="$cfg_dir_builds/$pkg/$pkg_var"
export pkg_build_dir="$cfg_dir_builds/$PKG/$PKG_VAR"
for rule in download unpack post_unpack refresh configure build host_install target_install postconfigure; do
case $rule in
download | unpack | post_unpack)
marker="$cfg_dir_builds/$pkg/.$rule"
marker="$cfg_dir_builds/$PKG/.$rule"
;;
*)
marker="$cfg_dir_builds/$pkg/$pkg_var/.$rule"
marker="$cfg_dir_builds/$PKG/$PKG_VAR/.$rule"
;;
esac
mkdir -p "$cfg_dir_builds/$pkg/$pkg_var" && cd "$cfg_dir_builds/$pkg/$pkg_var"
mkdir -p "$cfg_dir_builds/$PKG/$PKG_VAR" && cd "$cfg_dir_builds/$PKG/$PKG_VAR"
if [ -z "$build_dir" ]; then
build_dir="$pkg-$version"
build_dir="$PKG-$version"
fi
if [ -n "$build_dir" ]; then
mkdir -p "$cfg_dir_builds/$pkg/$build_dir" && cd "$cfg_dir_builds/$pkg/$build_dir"
mkdir -p "$cfg_dir_builds/$PKG/$build_dir" && cd "$cfg_dir_builds/$PKG/$build_dir"
fi
if [ -n "$build_always" ] || [ "$rule" = 'refresh' ]; then
nfo2 "$rule"
$rule > "$cfg_dir_builds/$pkg/$pkg_var/$rule.log" 2>&1
$rule > "$cfg_dir_builds/$PKG/$PKG_VAR/$rule.log" 2>&1
else
if ! [ -f "$marker" ]; then
nfo2 "$rule"
$rule > "$cfg_dir_builds/$pkg/$pkg_var/$rule.log" 2>&1
$rule > "$cfg_dir_builds/$PKG/$PKG_VAR/$rule.log" 2>&1
if [ $? -eq 0 ]; then
touch "$marker"
else
err "failed to execute rule $rule of $pkg / $pkg_var"
tail "$cfg_dir_builds/$pkg/$pkg_var/$rule.log"
err "failed to execute rule $rule of $PKG / $PKG_VAR"
tail "$cfg_dir_builds/$PKG/$PKG_VAR/$rule.log"
exit 1
fi
fi
@@ -231,7 +229,7 @@ perform_all()
elapsed=$[ $(date +%s)-$start ]
ok "completed in ${elapsed}s"
touch "$cfg_dir_builds/$pkg/$pkg_var/.complete"
touch "$cfg_dir_builds/$PKG/$PKG_VAR/.complete"
}
# Check shell.
@@ -298,17 +296,17 @@ if [ "$pkg_var" = "$pkg" ]; then
pkg_var='default'
fi
export pkg
export pkg_var
export pkg_common="$cfg_dir_rules/$pkg/common.bash"
export PKG="$pkg"
export PKG_VAR="$pkg_var"
export PKG_COMMON="$cfg_dir_packages/$PKG/common.bash"
if ! [ -d "$cfg_dir_rules/$pkg" ]; then
echo "ERROR: package '$pkg' does not exist."
if ! [ -d "$cfg_dir_packages/$PKG" ]; then
echo "ERROR: package '$PKG' does not exist."
exit 1
fi
if ! [ -f "$cfg_dir_rules/$pkg/$pkg_var.bash" ]; then
echo "ERROR: variant '$pkg_var' of package '$pkg' does not exist."
if ! [ -f "$cfg_dir_packages/$PKG/$PKG_VAR.bash" ]; then
echo "ERROR: variant '$PKG_VAR' of package '$PKG' does not exist."
exit 1
fi
@@ -318,18 +316,18 @@ else
rule="$3"
fi
mkdir -p "$cfg_dir_downloads" "$cfg_dir_rootfs" "$cfg_dir_toolchain" "$cfg_dir_builds/$pkg"
mkdir -p "$cfg_dir_downloads" "$cfg_dir_rootfs" "$cfg_dir_toolchain" "$cfg_dir_builds/$PKG"
export pkg_dir="$cfg_dir_rules/$pkg"
export cfg_package_spec_dir="$cfg_dir_base/packages/$PKG"
. "$cfg_dir_rules/$pkg/$pkg_var.bash"
. "$cfg_dir_packages/$PKG/$PKG_VAR.bash"
# Postconfiguration:
if [ -e "$cfg_dir_postconfiguration/$pkg/$cfg_sys_name.bash" ]; then
# echo "ERROR: postconfiguration exists '$pkg'."
# echo "$cfg_dir_postconfiguration/$pkg/$cfg_sys_name.bash"
if [ -e "$cfg_dir_postconfiguration/$PKG/$cfg_sys_name.bash" ]; then
# echo "ERROR: postconfiguration exists '$PKG'."
# echo "$cfg_dir_postconfiguration/$PKG/$cfg_sys_name.bash"
# exit 1
. "$cfg_dir_postconfiguration/$pkg/$cfg_sys_name.bash"
. "$cfg_dir_postconfiguration/$PKG/$cfg_sys_name.bash"
fi
# Handle dependencies.
@@ -347,7 +345,7 @@ n=0; while [ -n "${requires[$n]}" ]; do
"$0" "$1" "$req"
if [ $? -ne 0 ]; then
err "failed to build dependency for package $pkg / $pkg_var"
err "failed to build dependency for package $PKG / $PKG_VAR"
exit 1
fi
done

View File

@@ -19,8 +19,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA #
# 02110-1301 USA. #
###########################################################################
# Author: Ricardo Martins #
###########################################################################
# Check shell type.
if [ -z "$BASH_VERSION" ]; then

View File

@@ -21,7 +21,7 @@ requires=\
post_unpack()
{
patches=$(ls "$pkg_dir/patches-$version/"*.patch 2>/dev/null)
patches=$(ls "$cfg_package_spec_dir/patches-$version/"*.patch 2>/dev/null)
if [ -n "$patches" ]; then
cat $patches | patch -p1
fi

0
rules/atk/default.bash → packages/atk/default.bash Normal file → Executable file
View File

View File

@@ -1,4 +1,4 @@
source $pkg_common
source $PKG_COMMON
requires=\
(

View File

@@ -1,4 +1,4 @@
source $pkg_common
source $PKG_COMMON
requires=\
(

View File

@@ -18,7 +18,7 @@ maintainer=\
"Ricardo Martins <rasm@fe.up.pt>"
)
build_dir=$pkg_var
build_dir=$PKG_VAR
configure()
{

View File

@@ -27,7 +27,7 @@ requires=\
post_unpack()
{
patches=$(ls "$pkg_dir/patches-${version}/"*.patch)
patches=$(ls "$cfg_package_spec_dir/patches-${version}/"*.patch)
if [ -n "$patches" ]; then
cd "../boost_$vendor_version" && cat $patches | patch -p1
fi

View File

@@ -1,31 +1,26 @@
version=\
(
'1.5'
"1.4"
)
url=\
(
"http://downloads.sourceforge.net/project/bridge/bridge/bridge-utils-$version.tar.gz"
"http://downloads.sourceforge.net/project/bridge/bridge/bridge-utils-$version/bridge-utils-$version.tar.gz"
)
md5=\
(
'ec7b381160b340648dede58c31bb2238'
"0182fcac3a2b307113bbec34e5f1c673"
)
maintainer=\
(
'Ricardo Martins <rasm@fe.up.pt>'
"Ricardo Martins <rasm@fe.up.pt>"
)
post_unpack()
{
patches=$(ls "$pkg_dir/patches-$version/"*.patch 2>/dev/null)
if [ -n "$patches" ]; then
cat $patches | patch -p1
fi &&
autoreconf
cd ../bridge-utils-$version && autoreconf
}
configure()

View File

@@ -1,6 +1,6 @@
version=\
(
'1.22.0'
"1.20.2"
)
url=\
@@ -10,12 +10,12 @@ url=\
md5=\
(
'ac1881d1cdeb0729b22c663feaf1c663'
"e025414bc6cd79579cc7a32a45d3ae1c"
)
post_unpack()
{
patches=$(ls "$pkg_dir"/patches/*.patch)
patches=$(ls "$cfg_package_spec_dir"/patches/*.patch)
if [ -n "$patches" ]; then
cat $patches | patch -p1
@@ -24,7 +24,7 @@ post_unpack()
configure()
{
cp "$pkg_dir"/config .config &&
cp "$cfg_package_spec_dir"/config .config &&
yes '' | $cmd_make CROSS_COMPILE="$cfg_target_canonical"- oldconfig
}
@@ -36,5 +36,5 @@ build()
target_install()
{
$cmd_make CROSS_COMPILE="$cfg_target_canonical"- CONFIG_PREFIX=$cfg_dir_rootfs install &&
tar -C "$pkg_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
tar -C "$cfg_package_spec_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
}

View File

@@ -1,4 +1,4 @@
source $pkg_common
source $PKG_COMMON
configure()

View File

@@ -1,4 +1,4 @@
source $pkg_common
source $PKG_COMMON
build()
{

View File

@@ -88,7 +88,7 @@ target_install()
# Collectd:
$cmd_mkdir "$cfg_dir_rootfs/usr/share/"
$cmd_cp "$cfg_dir_toolchain_sysroot/usr/share/collectd/" "$cfg_dir_rootfs/usr/share/"
$cmd_cp "${pkg_dir}/fs/etc/rc.d/collectd" "$cfg_dir_rootfs/etc/rc.d/"
$cmd_cp "${cfg_package_spec_dir}/fs/etc/rc.d/collectd" "$cfg_dir_rootfs/etc/rc.d/"
# Configuration:
echo "# Client

View File

@@ -25,7 +25,7 @@ requires=\
post_unpack()
{
patches=$(ls "$pkg_dir/patches/"*.patch)
patches=$(ls "$cfg_package_spec_dir/patches/"*.patch)
if [ -n "$patches" ]; then
cat $patches | patch -p0
fi

View File

View File

@@ -25,7 +25,7 @@ requires=\
post_unpack()
{
patches=$(ls "$pkg_dir/patches/"*.patch)
patches=$(ls "$cfg_package_spec_dir/patches/"*.patch)
if [ -n "$patches" ]; then
cat $patches | patch -p1
fi
@@ -62,5 +62,5 @@ target_install()
ln -fs dropbearmulti "$cfg_dir_rootfs/usr/bin/ssh" &&
ln -fs dropbearmulti "$cfg_dir_rootfs/usr/bin/dbclient" &&
ln -fs ../bin/dropbearmulti "$cfg_dir_rootfs/usr/sbin/dropbear" &&
tar -C "$pkg_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
tar -C "$cfg_package_spec_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
}

View File

@@ -76,5 +76,5 @@ target_install()
$cmd_target_strip daemon/dtnd -o "$cfg_dir_rootfs/usr/bin/dtnd" &&
$cmd_mkdir "$cfg_dir_rootfs/etc/dtn" "$cfg_dir_rootfs/usr/share/dtn" &&
cp servlib/conv_layers/clevent.xsd "$cfg_dir_rootfs/usr/share/dtn" &&
tar -C "$pkg_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
tar -C "$cfg_package_spec_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
}

View File

@@ -18,13 +18,13 @@ maintainer=\
'Ricardo Martins <rasm@fe.up.pt>'
)
build_dir=$pkg_var
build_dir=$PKG_VAR
post_unpack()
{
ln -fs ../ports ../eglibc-$version/libc/ports
patches=$(ls "$pkg_dir"/patches/*.patch)
patches=$(ls "$cfg_package_spec_dir"/patches/*.patch)
cd ../eglibc-$version
if [ -n "$patches" ]; then

View File

@@ -1,4 +1,4 @@
source $pkg_common
source $PKG_COMMON
requires=\
(
@@ -13,7 +13,7 @@ build()
host_install()
{
$cmd_make install_root="$cfg_dir_toolchain_sysroot" -j1 install &&
cp "$pkg_dir"/files/timepps.h "$cfg_dir_toolchain_sysroot/usr/include"
cp "$cfg_package_spec_dir"/files/timepps.h "$cfg_dir_toolchain_sysroot/usr/include"
}
target_install()
@@ -33,5 +33,5 @@ target_install()
$cmd_target_strip -v --strip-unneeded "elf/ldconfig" \
-o "$cfg_dir_rootfs/sbin/ldconfig" &&
tar -C "$pkg_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
tar -C "$cfg_package_spec_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
}

View File

@@ -1,4 +1,4 @@
source $pkg_common
source $PKG_COMMON
requires=\
(

View File

@@ -1,4 +1,4 @@
source $pkg_common
source $PKG_COMMON
requires=\
(

View File

@@ -1,6 +1,6 @@
version=\
(
'1.0.4'
'1.0.3'
)
url=\
@@ -10,7 +10,7 @@ url=\
md5=\
(
'b9ee6a3d921643535c336b7c740b2c60'
'd8729636cc2d7f46f62141d392898bfa'
)
if [ -d "$cfg_dir_builds/linux/linux-"* ]; then
@@ -44,5 +44,5 @@ target_install()
$cmd_target_strip "utils/$util/$util" -o "$cfg_dir_rootfs/usr/bin/$util"
done &&
tar -C "$pkg_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
tar -C "$cfg_package_spec_dir/fs" --exclude .svn -c -f - . | tar -C "$cfg_dir_rootfs" -x -v -f -
}

View File

@@ -27,7 +27,7 @@ requires=\
post_unpack()
{
patches=$(ls "$pkg_dir"/patches-$version/*.patch)
patches=$(ls "$cfg_package_spec_dir"/patches-$version/*.patch)
if [ -n "$patches" ]; then
cat $patches | patch -p1
@@ -37,7 +37,7 @@ post_unpack()
build()
{
OLD_PATH="$PATH"
export PATH="$pkg_dir/compat:$PATH"
export PATH="$cfg_package_spec_dir/compat:$PATH"
export PLASMA_HOME="$PWD/../europa-$version"
export EUROPA_HOME="$cfg_dir_toolchain_sysroot/usr"

View File

@@ -21,7 +21,7 @@ requires=\
post_unpack()
{
cd ../expect${version}
patches=$(ls "$pkg_dir/patches/"*.patch)
patches=$(ls "$cfg_package_spec_dir/patches/"*.patch)
if [ -n "$patches" ]; then
cat $patches | patch -p1
fi

View File

@@ -15,7 +15,7 @@ md5=\
post_unpack()
{
patch -d ../fconfig -p1 < "$pkg_dir"/patches/limits.patch
patch -d ../fconfig -p1 < "$cfg_package_spec_dir"/patches/limits.patch
}
build()

0
rules/fftw/default.bash → packages/fftw/default.bash Normal file → Executable file
View File

View File

@@ -0,0 +1,10 @@
start()
{
mount -t debugfs debugfs /sys/kernel/debug &&
# UART1.
echo 0 > /sys/kernel/debug/omap_mux/uart1_txd &&
echo 20 > /sys/kernel/debug/omap_mux/uart1_rxd &&
umount /sys/kernel/debug
}

View File

@@ -14,9 +14,7 @@ maybe_upgrade()
rm -rf $dune_base/.dune-upgrade &&
mkdir $dune_base/.dune-upgrade &&
tar -x -C $dune_base/.dune-upgrade -f $dune_base/dune-*.tar.bz2 &&
if [ -f $dune_base/etc/*-saved.ini ]; then
cp "$dune_base/etc/"*-saved.ini "$dune_base/.dune-upgrade/"dune-*/etc 2> /dev/null
fi &&
cp "$dune_base/etc/"*-saved.ini "$dune_base/.dune-upgrade/"dune-*/etc 2> /dev/null &&
rm $dune_base/dune-*.tar.bz2 &&
for dir in $dune_base/.dune-upgrade/dune-*/*; do
d="$(basename "$dir")"

Some files were not shown because too many files have changed in this diff Show More