SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Hi , around the 4.4 request kernel , i test 4.4-rc6 FROM GIT (some extra patches arrived after rc6 released), and I/O errors are patched some hours ago.
New patches are arriving with 4.4-1 , this point to NO RC7 , and next monday release the 4.4.0 as stable.
Then i vote for 4.4.0 when goes out for put in "testing"
some people want the skylake support , others the new amdgpu driver (not offered in current because 4.1 no have support) , i read some fixes/inproviments for nouveau
and some new NET wireless like mediatek chips and some new realtek + option to enbale experimental support for not knowed realtek chips...and new bluetooth drivers.
4.4 is the drivers kernel
Last edited by USUARIONUEVO; 12-23-2015 at 12:02 AM.
This just recently made it into Fedora. While it's only fair to point out that libinput seemed to be a completely seamless transition for two machines here in front of me, we'll let Fedora do the testing on libinput support and work out the kinks.
That sounds reasonable. We really won't need libinput until we get wayland (SBo has 1.6.0 still yet 1.9.0 is the latest) for KDE/Plasma5 or want to move Xfce into new areas, but yes, let's let Fedora get their hands dirty, but equally we do have /testing.
Patch to enhance usability of slackpkg by blind people
The attached patch allows blind Slackers running slackpkg through a Braille display to follow the cursor in the items lists, e.g. to know which item is (for sighted people) highlighted in the lists displayed by "slackpkg upgrade-all" or "slackpkg clean-system", thus making easy pointing which ones to select/deselect.
This has been tested by Philippe Delavalade.
More generally adding the dialog's option --visit-items to all dialogs that display a list of items helps a lot users of a Braille display.
Last edited by Didier Spaier; 12-24-2015 at 07:19 AM.
Reason: Last sentence simplified.
Could Slackware current add a tiling window manager to its default list? Most distros don't offer a tiling wm out of the box and its a niche that is missing in the default set of packages even if its easy to install by the user.
I would suggest spectrwm which is among the best, its fast, stable, rarely requires updating, easy to start using and quite powerful while still staying out of the way of the user. Additionally its BSD origin makes it fit well into Slackware, its 10K smaller than twm uncompressed (260K) and the only additional package required would be dmenu (Which is pretty useful by itself) since Slackware already has all other dependencies.
Here is the default spectrwm config file.
Code:
# PLEASE READ THE MAN PAGE BEFORE EDITING THIS FILE!
# http://opensource.conformal.com/cgi-bin/man-cgi?spectrwm
# NOTE: all rgb color values in this file are in hex! see XQueryColor for examples
# workspace_limit = 22
# focus_mode = default
# focus_close = previous
# focus_close_wrap = 1
# focus_default = last
# spawn_position = next
# workspace_clamp = 1
# warp_focus = 1
# warp_pointer = 1
# Window Decoration
# border_width = 1
# color_focus = red
# color_focus_maximized = yellow
# color_unfocus = rgb:88/88/88
# color_unfocus_maximized = rgb:88/88/00
# region_padding = 0
# tile_gap = 0
# Region containment
# Distance window must be dragged/resized beyond the region edge before it is
# allowed outside the region.
# boundary_width = 50
# Remove window border when bar is disabled and there is only one window in workspace
# disable_border = 1
# Bar Settings
# bar_enabled = 1
# bar_border_width = 1
# bar_border[1] = rgb:00/80/80
# bar_border_unfocus[1] = rgb:00/40/40
# bar_color[1] = black
# bar_font_color[1] = rgb:a0/a0/a0
# bar_font = -*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*
# bar_action = baraction.sh
# bar_justify = left
# bar_format = +N:+I +S <+D>+4<%a %b %d %R %Z %Y+8<+A+4<+V
# bar_at_bottom = 1
# stack_enabled = 1
# clock_enabled = 1
# clock_format = %a %b %d %R %Z %Y
# iconic_enabled = 0
# maximize_hide_bar = 0
# window_class_enabled = 0
# window_instance_enabled = 0
# window_name_enabled = 0
# verbose_layout = 1
# urgent_enabled = 1
# Dialog box size ratio when using TRANSSZ quirk; 0.3 < dialog_ratio <= 1.0
# dialog_ratio = 0.6
# Split a non-RandR dual head setup into one region per monitor
# (non-standard driver-based multihead is not seen by spectrwm)
# region = screen[1]:1280x1024+0+0
# region = screen[1]:1280x1024+1280+0
# Launch applications in a workspace of choice
# autorun = ws[1]:xterm
# autorun = ws[2]:xombrero http://www.openbsd.org
# Customize workspace layout at start
# layout = ws[1]:4:0:0:0:vertical
# layout = ws[2]:0:0:0:0:horizontal
# layout = ws[3]:0:0:0:0:fullscreen
# layout = ws[4]:4:0:0:0:vertical_flip
# layout = ws[5]:0:0:0:0:horizontal_flip
# Set workspace name at start
# name = ws[1]:IRC
# name = ws[2]:Email
# name = ws[3]:Browse
# name = ws[10]:Music
# Mod key, (Windows key is Mod4) (Apple key on OSX is Mod2)
# modkey = Mod1
# This allows you to include pre-defined key bindings for your keyboard layout.
# keyboard_mapping = ~/.spectrwm_us.conf
# PROGRAMS
# Validated default programs:
# program[lock] = xlock
# program[term] = xterm
# program[menu] = dmenu_run $dmenu_bottom -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_border -sf $bar_color
# To disable validation of the above, free the respective binding(s):
# bind[] = MOD+Shift+Delete # disable lock
# bind[] = MOD+Shift+Return # disable term
# bind[] = MOD+p # disable menu
# Optional default programs that will only be validated if you override:
# program[screenshot_all] = screenshot.sh full # optional
# program[screenshot_wind] = screenshot.sh window # optional
# program[initscr] = initscreen.sh # optional
# EXAMPLE: Define 'firefox' action and bind to key.
# program[firefox] = firefox http://spectrwm.org/
# bind[firefox] = MOD+Shift+b
# QUIRKS
# Default quirks, remove with: quirk[class:name] = NONE
# quirk[MPlayer:xv] = FLOAT + FULLSCREEN + FOCUSPREV
# quirk[OpenOffice.org 2.4:VCLSalFrame] = FLOAT
# quirk[OpenOffice.org 3.0:VCLSalFrame] = FLOAT
# quirk[OpenOffice.org 3.1:VCLSalFrame] = FLOAT
# quirk[Firefox-bin:firefox-bin] = TRANSSZ
# quirk[Firefox:Dialog] = FLOAT
# quirk[Gimp:gimp] = FLOAT + ANYWHERE
# quirk[XTerm:xterm] = XTERM_FONTADJ
# quirk[xine:Xine Window] = FLOAT + ANYWHERE
# quirk[Xitk:Xitk Combo] = FLOAT + ANYWHERE
# quirk[xine:xine Panel] = FLOAT + ANYWHERE
# quirk[Xitk:Xine Window] = FLOAT + ANYWHERE
# quirk[xine:xine Video Fullscreen Window] = FULLSCREEN + FLOAT
# quirk[pcb:pcb] = FLOAT
I've been testing grub-2.02~beta2 for a while now and it seems to be actually stable.
I've been working in lots of patches at Slackworks (plus a few recent in my offline repo) to get Grub-2.02~beta2 ironed out fully due to some lingering file system and volume compatibility issues, so I'm going to publish them here for review finally since my work is completed on it.
I had to rewrite several existing patches for Slackware which took some time, but it's all finished, and here's my work:
grub.dejavusansmono.gfxterm.font.patch
Code:
diff -Naur grub-2.02~beta2.orig/util/grub.d/00_header.in grub2-2.02~beta2/util/grub/00_header.in
--- grub-2.02~beta2.orig/util/grub.d/00_header.in 2013-12-24 08:45:34.000000000 -0800
+++ grub-2.02~beta2/util/grub.d/00_header.in 2015-01-27 21:55:45.697000000 -0800
@@ -153,7 +153,7 @@
EOF
else
for dir in "${pkgdatadir}" "`echo '/@bootdirname@/@grubdirname@' | sed "s,//*,/,g"`" /usr/share/grub ; do
- for basename in unicode unifont ascii; do
+ for basename in unicode unifont dejavusansmono ascii; do
path="${dir}/${basename}.pf2"
if is_path_readable_by_grub "${path}" > /dev/null ; then
font_path="${path}"
@@ -166,7 +166,7 @@
if [ -n "${font_path}" ] ; then
cat << EOF
if [ x\$feature_default_font_path = xy ] ; then
- font=unicode
+ font=dejavusansmono
else
EOF
# Make the font accessible
@@ -179,7 +179,7 @@
EOF
else
cat << EOF
-if loadfont unicode ; then
+if loadfont dejavusansmono ; then
EOF
fi
fi
diff -Naur grub-2.02~beta2.orig/util/grub-install.c grub-2.02~beta2/util/grub-install.c
--- grub-2.02~beta2.orig/util/grub-install.c 2013-12-24 08:40:31.000000000 -0800
+++ grub-2.02~beta2/util/grub-install.c.new 2015-01-27 22:07:56.714000000 -0800
@@ -827,7 +827,7 @@
grub_util_host_init (&argc, &argv);
product_version = xstrdup (PACKAGE_VERSION);
pkgdatadir = grub_util_get_pkgdatadir ();
- label_font = grub_util_path_concat (2, pkgdatadir, "unicode.pf2");
+ label_font = grub_util_path_concat (2, pkgdatadir, "dejavusansmono.pf2");
argp_parse (&argp, argc, argv, 0, 0, 0);
Notes: This patch had to be reworked as the new code obsoleted several files from 2.00 to 2.02 and remade a script into actual C code.
grub_gpt_legacy_detection_btrfs.patch
Code:
diff -Naur grub-2.02~beta2.orig/util/grub-mkconfig.in grub-2.02~beta2/util/grub-mkconfig.in
--- grub-2.02~beta2.orig/util/grub-mkconfig.in 2013-12-24 08:46:40.000000000 -0800
+++ grub-2.02~beta2/util/grub-mkconfig.in 2015-01-26 23:39:24.521000000 -0800
@@ -129,8 +129,9 @@
fi
# Device containing our userland. Typically used for root= parameter.
-GRUB_DEVICE="`${grub_probe} --target=device /`"
-GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true
+GRUB_DEVICE="`${grub_probe} --target=device /`" || GRUB_DEVICE="`legacy_find_root_device`"
+GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || \
+ GRUB_DEVICE_UUID="`legacy_convert_to_uuid ${GRUB_DEVICE}`"
# Device containing our /boot partition. Usually the same as GRUB_DEVICE.
GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`"
diff -Naur grub-2.02~beta2.orig/util/grub-mkconfig_lib.in grub-2.02~beta2/util/grub-mkconfig_lib
--- grub-2.02~beta2.orig/util/grub-mkconfig_lib.in 2013-12-17 13:45:18.000000000 -0800
+++ grub-2.02~beta2/util/grub-mkconfig_lib.in 2015-01-26 23:42:43.932000000 -0800
@@ -264,6 +264,82 @@
echo "$version_find_latest_a"
}
+legacy_find_device ()
+{
+ mount_point=$1
+
+ # Autodetect current root device
+ device=
+ if [ -f /etc/fstab ] ; then
+ device="`awk '$1!~/^#/{
+ if ($2 ~ "^/+$") { $2 = "/"; } else { sub("/*$", "", $2); }
+ if ($2 == "'"$mount_point"'"){
+ print $1;
+ }
+ }' /etc/fstab | tail -n 1`"
+ fi
+
+ if [ -n "$device" ] ; then
+ case "$device" in
+ LABEL=* | UUID=*)
+ device="`findfs $device`"
+ device="`readlink -f "$device"`"
+ ;;
+ *)
+ device=`readlink -f "$device"`
+ ;;
+ esac
+ fi
+
+ echo $device
+}
+
+legacy_find_root_device ()
+{
+ echo "Cannot determine root device. Trying legacy probe method" >&2
+ device="`legacy_find_device /`"
+
+ if [ -z "$device" ]; then
+ echo "Cannot determine root device. Assuming /dev/sda1" >&2
+ echo "This error is probably caused by an invalid /etc/fstab" >&2
+ device=/dev/sda1
+ fi
+
+ echo $device
+}
+
+legacy_convert_to_uuid()
+{
+ echo "Cannot determine uuid of root device. Trying legacy probe method" >&2
+ local dev; dev="$1"
+
+ convert=false
+ case "$dev" in
+ /dev/disk/*)
+ ;;
+ /dev/mapper/*)
+ ;;
+ /dev/evms/[hs]d[a-z][0-9]*)
+ convert=:
+ ;;
+ /dev/evms/*)
+ ;;
+ /dev/md[0-9]*)
+ ;;
+ /dev/*)
+ convert=:
+ ;;
+ esac
+ if $convert; then
+ if [ -b "$dev" ]; then
+ uuid="`blkid -o value -s UUID "$dev" || true`"
+ fi
+ fi
+
+ echo "$uuid"
+}
+
+
# One layer of quotation is eaten by "" and the second by sed; so this turns
# ' into \'.
grub_quote () {
Notes: This patch took a lot of effort to track down from Fedora, Debian, and Ubuntu and work in very systematically. Basically, BtrFS treats /dev differently when used as the root of the file system tree. If you have ever tried to use grub-2.00 with Slackware on a Btrfs /(root) using GPT partition layout (MBR seems unaffected), you'll quickly find out it can't see or detect /dev for some reason. This patch restores the legacy detection methods used and fixes any issues where /dev nodes for devices can not be detected. This only affects BtrFS systems by target nature, but any issues that could stem from other file systems would be repaired as well.
Notes: Only useful with systems trying to use ZFS-as-root using zfs-on-linux, but still valued as a patch, but can be disabled by commenting it out if unneeded.
The other patches currently in use by Slackware that still work:
The other patches for broken UEFI and glibc no longer applied as the issues were fixed upstream.
Below is a reworked SlackBuild script specifically for 2.02~beta2.
Code:
#!/bin/sh
# Copyright 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
# Copyright 2015 James V. Powell, Tulare, CA, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=grub
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
i?86) ARCH=i486 ;;
arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
export ARCH
fi
NUMJOBS=${NUMJOBS:-" -j7 "}
if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2"
EFI_FLAGS=" --with-platform=efi --target=x86_64 --program-prefix= "
LIBDIRSUFFIX="64"
elif [ "$ARCH" = "armv7hl" ]; then
SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# Use /boot/initrd.gz as a valid initrd name:
patch -Np1 -i $CWD/initrd_naming.patch || exit 1
# Adds ZFS-on-Linux detection support for zfs-on-linux using systems.
patch -Np1 -i $CWD/grub_zfs-detection.patch || exit 1
# Readds legacy detection of file systems and disk volumes for usage with GPT systems
# using BtrFS as root.
patch -Np1 -i $CWD/grub-gpt_legacy_detection_btrfs.patch || exit 1
# Support DejaVuSansMono font (dejavusansmono.pf2) by default:
patch -Np1 -i $CWD/grub.dejavusansmono.gfxterm.font.patch || exit 1
# This patch fixes a security issue when reading username and password in which
# a username and password could be bypassed.
patch -Np1 -i $CWD/0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch || exit 1
autoreconf -v -i -f
for i in 1 2 ; do
# Skip to regular build if EFI support is not requested:
if [ i = 1 -a -z "$EFI_FLAGS" ]; then
continue;
fi
# Configure:
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--infodir=/usr/info \
--mandir=/usr/man \
--disable-werror \
$EFI_FLAGS
# Build and install:
make clean
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
# Clear $EFI_FLAGS for a regular build:
unset EFI_FLAGS
done
# Preserve the contents of /etc/grub.d/40_custom:
mv $PKG/etc/grub.d/40_custom $PKG/etc/grub.d/40_custom.new
# Strip binaries:
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
mkdir -p $PKG/etc/default
cat $CWD/etc.default.grub > $PKG/etc/default/grub.new
# Add fonts, if found on the system:
FONT_SIZE=${FONT_SIZE:-19}
if [ -r /usr/share/fonts/TTF/unifont.ttf ]; then
$PKG/usr/bin/grub-mkfont -o $PKG/usr/share/grub/unifont.pf2 -abv \
-s $FONT_SIZE /usr/share/fonts/TTF/unifont.ttf
fi
if [ -r /usr/share/fonts/TTF/DejaVuSansMono.ttf ]; then
$PKG/usr/bin/grub-mkfont -o $PKG/usr/share/grub/dejavusansmono.pf2 -abv \
-s $FONT_SIZE /usr/share/fonts/TTF/DejaVuSansMono.ttf
fi
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
AUTHORS BUGS COPYING* INSTALL NEWS README* THANKS TODO \
$PKG/usr/doc/${PKGNAM}-$VERSION
# Compress and if needed symlink the man pages:
if [ -d $PKG/usr/man ]; then
( cd $PKG/usr/man
for manpagedir in $(find . -type d -name "man*") ; do
( cd $manpagedir
for eachpage in $( find . -type l -maxdepth 1) ; do
ln -s $( readlink $eachpage ).gz $eachpage.gz
rm $eachpage
done
gzip -9 *.?
)
done
)
fi
# Compress info files, if any:
if [ -d $PKG/usr/info ]; then
( cd $PKG/usr/info
rm -f dir
gzip -9 *
)
fi
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
if [ -r ChangeLog ]; then
DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
mkdir -p $PKG/install
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
Notes: You will notice autoreconf is being ran here before configuration as parts of the GNU Makefile system were patched, otherwise the build will be very similar in nature.
Could Slackware current add a tiling window manager to its default list? Most distros don't offer a tiling wm out of the box and its a niche that is missing in the default set of packages even if its easy to install by the user.
That's a great idea! IMO a tiling window manager would perfectly fit the KISS philosophy maintained by Slackware. Of course it could be argued what tiling window manager would be the best choice and as a i3 user it's also clear what my preference was. But honestly, in the end I'd probably use the one that came with Slackware if they decided to ship one.
* bluez-5.x, sbc, blueman-2.0.x, Cython (build dep for blueman)
BlueZ 5.x dropped support for Alsa: http://git.kernel.org/cgit/bluetooth...328cb0b1ab0818
Are we getting PulseAudio as well?
Without it, a2dp-sink is pretty much dead, and to make it worse, errors are quite non-descriptive
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.