What's new

amcfwm - AsusWRT-Merlin Custom Firmware Manager

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

I don’t think it’s meant to work on 22.04, is it?
Pretty sure it was OK to compile under 22.04 - before all those location changes were introduced by Merlin.
I believe he compiles under 22.04 these days too?

I'll knock together a VM under 20.04.5 and give it whirl - but pretty sure it'll end the same way.
May have something to do with the makefile version alluded to by Merlin earlier in this thread - which is why I tried Ubuntu 22.04 as I couldn't get a response on how to update makefile on its own.

MANY thanks for all your work so far in fixing this script {MAJOR Thumbs-Up} :D.
 
Failure does not seem to be model specific either - have tried 4 models - all failed towards the tail end of the compile.
Doesn't matter whether it is Ubuntu 20.04 or 22.04
Tried these models - one after the other separately on clean installs of Ubuntu and clean installs of the script.

RT-AC68U
RT-AC86U
RT-AX86U
GT-AX6000

No point in trying multiple compiles - it crashes out after the first fail and does not go on to do any of the others "enabled" in the settings list.
Over to you @dave14305 and @Adamm - when you have the spare time ... :).

May just be the Master is not compile friendly - by design or misfortune ??
 
No point in trying multiple compiles - it crashes out after the first fail and does not go on to do any of the others "enabled" in the settings list.
Mine all start in parallel, don’t yours?

1675019396882.png

Over to you @dave14305 and @Adamm - when you have the spare time
My only interest in the script was to help it keep pace with the evolving models, since Adamm had asked for volunteers and everyone else sat there with their hands in their pockets. :) I have no need to compile firmware that I don’t use.

Hopefully others with more compiling experience will help. Try the autoreconf suggestion offered earlier for wget. My last rt-AC86U compile failed looking for libpython27 during strongswan build.
Makefile:
make[8]: Entering directory '/home/ubuntu/amng/release/src/router/strongswan/conf'
  GEN      options/charon.conf
  GEN      options/charon-logging.conf
  GEN      options/charon-nm.conf
  GEN      options/charon-systemd.conf
/opt/toolchains/crosstools-aarch64-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/usr/bin/python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
Interesting that it was using the HND5.04 toolchain python for an HND5.02 build.
 
Mine all start in parallel, don’t yours?
They may well have started in parallel - I didn't check at the time - but as soon as one of the builds failed - the script terminated back to prompt and nothing further happened after that.
My only interest in the script was to help it keep pace with the evolving models, since Adamm had asked for volunteers and everyone else sat there with their hands in their pockets. :)
I really appreciate the time you took, the 13+ script revisions and 9+pull requests you provided ... every one of them improving what was there before and advancing the point of failure to somewhere real close to the end of the compile. I'm not a coder - or I would certainly have rolled up my sleeves.
I have no need to compile firmware that I don’t use.
Have you also abandoned Merlinware - gone back to stock ... or shifted away from Asus products ? :(
I know you continue to provide really helpful support on these forums - so again my thanks for that :D
Hopefully others with more compiling experience will help. Try the autoreconf suggestion offered earlier for wget. My last rt-AC86U compile failed looking for libpython27 during strongswan build.
Makefile:
make[8]: Entering directory '/home/ubuntu/amng/release/src/router/strongswan/conf'
  GEN      options/charon.conf
  GEN      options/charon-logging.conf
  GEN      options/charon-nm.conf
  GEN      options/charon-systemd.conf
/opt/toolchains/crosstools-aarch64-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/usr/bin/python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
Interesting that it was using the HND5.04 toolchain python for an HND5.02 build.
Like I said somewhere before - it may well be the Master which is "cooked" for purposes of self-compiling.
Presumably it presently contains a mix of 386 and 388 code to cover both the AC and AX models.
There are separate active branches for 386.x and 388. code - but they are frozen at last release - with newer development continuing only in the Master.

I get no less than 46 hits in the RT-AX86U output log for "No such file or directory"! - Most are failures to find broadcom drivers!
 
Spotted @Adamm commit on GitHub about an hour ago - in which he now includes libpython2.7 as part of the toll kit :).
I can't see why running autoreconf would help to a fresh VM build which should presumably have up-to-date makefile etc ?

Having another crack at an RT-AX86U build.
 
Still no succesful merge ...
Line 490: cp: cannot stat '/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/wl/linux/prebuilt/wl.o': No such file or directory
Line 491: cp: cannot stat '/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router-sysdep/hnd_extra/prebuilt/archer.o': No such file or directory
Line 492: cp: cannot stat '/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router-sysdep/hnd_extra/prebuilt/detect_opt.o': No such file or directory
Line 493: cp: cannot stat '/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router-sysdep/hnd_extra/prebuilt/bcmwifi_rates.h': No such file or directory
Line 1159: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1161: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1163: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1165: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1167: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1169: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1171: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1173: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1175: cc1: fatal error: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
Line 1177: version.c:3:21: fatal error: version.h: No such file or directory
Line 1179: defaults.c:11:21: fatal error: version.h: No such file or directory
Line 1181: defaults.c:11:21: fatal error: version.h: No such file or directory
Line 1202: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_inttypes.h:5:25: fatal error: json_config.h: No such file or directory
Line 1205: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/networkmap/networkmap.h:11:21: fatal error: version.h: No such file or directory
Line 1209: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_inttypes.h:5:25: fatal error: json_config.h: No such file or directory
Line 1215: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_inttypes.h:5:25: fatal error: json_config.h: No such file or directory
Line 1223: find: ‘/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/targets/962118GW/fs.install’: No such file or directory
Line 2421: find: ‘/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/rdp/projects/WL4908/firmware/src’: No such file or directory
Line 2422: find: ‘/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/rdp/projects/WL4908/drivers/rdd’: No such file or directory
Line 2423: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/rdp/projects/WL4908/xml_sources.list: No such file or directory
Line 2424: find: ‘/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/rdp/projects/WL4908/firmware/src’: No such file or directory
Line 2425: find: ‘/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/rdp/projects/WL4908/drivers/rdd’: No such file or directory
Line 2426: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/rdp/projects/WL4908/xml_sources.list: No such file or directory
Line 2511: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/rdp/projects/WL4908/fw_sources.list: No such file or directory
Line 4607: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 4608: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 4609: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 6123: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 6128: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 6131: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 7434: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 7435: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 7436: grep: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/kernel/linux-4.1/../../bcmdrivers/broadcom/net/wl/bcm94908/sys/src/dhd/sys/dhd_linux.c: No such file or directory
Line 13515: cat: /home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/targets/fs.src/etc/init.d/bcm-base-drivers.list: No such file or directory
Line 13668: checking if /opt/toolchains/crosstools-arm-gcc-5.5-linux-4.1-glibc-2.26-binutils-2.28.1/usr/bin/arm-buildroot-linux-gnueabi-gcc supports -c -o file.o... /usr/bin/rm: cannot remove 'conftest*': No such file or directory
Line 13672: checking whether -lc should be explicitly linked in... /usr/bin/rm: cannot remove 'conftest*': No such file or directory
Line 13840: /usr/bin/rm: cannot remove 'libtoolT': No such file or directory
Line 16163: cp: cannot stat 'prebuild/RT-AX86U/libwlc_nt_lib.so': No such file or directory
Line 16789: aclocal: warning: couldn't open directory 'm4': No such file or directory
Line 18537: aclocal: warning: couldn't open directory 'm4': No such file or directory
Line 23639: cp: cannot stat '/home/johnw/amng.ax86/release/src-rt-5.02L.07p2axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/..//components/apps/cevent_app/prebuilt/libceshared.so': No such file or directory
Line 24663: python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
Line 24667: calc_nvram.c:4:10: fatal error: defaults_nv.h: No such file or directory
 
My rt-ac86 build ended successfully for the first time ever. I need to try to repeat it tonight since I was experimenting with packages along the way.

I installed automake-1.15, libpython2.7:i386, and autoconf-archive. Not sure if all these are needed, so I will try again from scratch without the libpython27:i386 and see how it turns out.

There are some components that build with a hardcoded -j 8 in their makefiles that really grind my free 2-proc cloud VM to a halt.

I’m also not a fan of the automatic SSH hardening because it seems to make the cloud VM inaccessible even with a properly configured network access list in the cloud. Less of an issue with a local VM, I’m sure.
 
Install autoconf-archive to get past the wget error.
Code:
sudo apt install autoconf-archive
Done - [plus automake-1.15 and libpython2.7:i386 ... now trying a compile of RT-AC86U which you succeeded with.
Will report when done.

Also would fully appreciate stripping out that SSH hardening code - a Y/n option would be great :).
I only run mine an a VMPlayer installed locally and it is only active when I compile.

EDIT: Both RT-AC86U and separately the RT-AX86U complied successfully.
Can't compile a bunch of them together though [like you did @dave14305 - assume you must have manually edited your config?]
Item 14 under settings will not retain "Enabled" for --> Combined Images"

If I enable more than one model under settings - the script exits after completing the first one.
 
Last edited:
Both RT-AC86U and separately the RT-AX86U complied successfully.
Only my build that included libpython2.7:i386 was successful. Will try again without libpython2.7 but adding libpython2.7:i386.
Item 14 under settings will not retain "Enabled" for --> Combined Images"
It doesn’t get written to the config file at all. But it only matters if you build AC68U and AC68UV4. No other purpose for it. Needs to be fixed still.
 
Another fresh install on new VM with Ubuntu 22.04.1 - still broken.
22.04 is not supported by the Broadcom SDK. Use 20.04 instead.
 
Hopefully others with more compiling experience will help. Try the autoreconf suggestion offered earlier for wget. My last rt-AC86U compile failed looking for libpython27 during strongswan build.
Code:
sudo apt install python-is-python

That's because of the switch to python3.
 
Code:
sudo apt install python-is-python

That's because of the switch to python3.
I assume you meant ...
Code:
sudo apt install python-is-python3

Thnx
 
@Adamm and @dave14305 - many thanks for your fixes - which, combined with the added installs seems to have done the trick.
If either of you can find the time ... these extra's would in my view be really helpful ...
  • Item 4 - Settings - allow for successive changes within the items while remaining on the settings screen [even if each setting choice recycles the screen] - so to exit must press "e". It's a bit of a pain being taken back to main menu only to select item 4 again for further changes.;
  • Within Item 4 - Settings - Item 14 description needs to be modified to say what it does and it does not stick with "1 Enable"; All other settings do stick with Enable - good job Dave ;-)
  • Version 1.1.2 script does not seem to allow multiple builds to run in parallel - the script exits after the first build completes ?? - at least on my install that is what happens - even though I have 8Gb RAM, 2Gb Swap and 8 cores assigned with 250Gb drive space on the VM.
Already running my amcfwm compiled fw :D.
 
I assume you meant ...
No, as you don't want to make python 3 the default, as this is what is causing the problem.

The correct package is probably python-is-python2. I was just copy/pasting from my old notes, it's possible I missed the 2 at the end when I created these notes, but it's definitely NOT python3. The final result needs to be this:

Code:
root@ubuntu-dev:/var# ls -al /usr/bin/python
lrwxrwxrwx 1 root root 7 Apr 15  2020 /usr/bin/python -> python2
 
what error?
Code:
AiMesh central antenna diversity selection (RTCONFIG_AMAS_CENTRAL_ADS) [N/y] n
no wl (RTCONFIG_NOWL) [N/y] n
configuration for Intel EVO program certificate (RTCONFIG_INTEL_EVO) [N/y] n
sw speed led (RTCONFIG_SW_SPDLED) [N/y] n
962118G in 504 (RTCONFIG_BCM4906_504) [N/y] n
Automatically detect where the WAN port is (RTCONFIG_AUTO_WANPORT) [N/y] n
un-management-mode rtl switch's ops  (RTCONFIG_RTL_UMGMT) [N/y] n
make shared-clean libdisk-clean rc-clean nvram-clean httpd-clean prebuilt-clean libbcmcrypto-clean
make[4]: Entering directory '/home/evg/amng-build/release/src/router'
"CLM In /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/../../43684/src/wl/clm/src/ NOT CREATING new clm_blob ..."
make[5]: Entering directory '/home/evg/amng-build/release/src/router/shared'
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
cc1: fatal error: /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/busybox/include/autoconf.h: No such file or directory
compilation terminated.
version.c:3:21: fatal error: version.h: No such file or directory
compilation terminated.
defaults.c:11:21: fatal error: version.h: No such file or directory
compilation terminated.
defaults.c:11:21: fatal error: version.h: No such file or directory
compilation terminated.
rm -f *.o *.so *.a .*.depend *.prep sysdeps/*.o sysdeps/broadcom/*.o sysdeps/ralink/*.o sysdeps/qtn/*.o
make[5]: Leaving directory '/home/evg/amng-build/release/src/router/shared'
make[5]: Entering directory '/home/evg/amng-build/release/src/router/libdisk'
rm -f *.o libdisk.so write_smb_conf test_of_var_files test_disk1 test_disk2 test_share write_webdav_conf write_webdav_conf
make[5]: Leaving directory '/home/evg/amng-build/release/src/router/libdisk'
make[5]: Entering directory '/home/evg/amng-build/release/src/router/rc'
rm -f rc *.o .*.depend *.prep libconn_diag.so
rm -f wps_pbcd
make[5]: Leaving directory '/home/evg/amng-build/release/src/router/rc'
make[5]: Entering directory '/home/evg/amng-build/release/src-rt-5.02axhnd/router-sysdep/wlan/nvram'
rm -f *.o
rm -f libnvram.so nvram nvram_shared.o main.o brcm_generic_lock.o
make[5]: Leaving directory '/home/evg/amng-build/release/src-rt-5.02axhnd/router-sysdep/wlan/nvram'
make[5]: Entering directory '/home/evg/amng-build/release/src/router/httpd'
In file included from /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_object.h:24:0,
                 from /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/linkhash.h:16,
                 from /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json.h:22,
                 from data_arrays.c:67:
/home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_inttypes.h:5:25: fatal error: json_config.h: No such file or directory
compilation terminated.
In file included from web.c:126:0:
/home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/networkmap/networkmap.h:11:21: fatal error: version.h: No such file or directory
compilation terminated.
In file included from /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_object.h:24:0,
                 from ej.c:42:
/home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_inttypes.h:5:25: fatal error: json_config.h: No such file or directory
compilation terminated.
In file included from /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_object.h:24:0,
                 from /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/linkhash.h:16,
                 from /home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json.h:22,
                 from cgi.c:42:
/home/evg/amng-build/release/src-rt-5.02axhnd/bcmdrivers/broadcom/net/wl/bcm94908/main/src/router/json-c/json_inttypes.h:5:25: fatal error: json_config.h: No such file or directory
compilation terminated.
 

Similar threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top