Telewell TW-646 firmware contains GPL licensed software ------------------------------------------------------- Billion BiGuard 2, BiGuard 10 and BiGuard 30 are affected aswell. 1. Download the flash update file $ wget http://www.telewell.fi/paivitykset/tw_646/TW_646.104q.zip If the above link doesn't work, then get the file thru: http://www.telewell.fi/paivitykset/tw_646/tw_646_paivitys.htm Billion BiGuard firmware update files: http://60.248.77.180/_Internet/fd/BiGuard2_v105.zip http://60.248.77.180/_Internet/fd/BiGuard10_v105.zip http://60.248.77.180/_Internet/fd/BiGuard30_v105.zip If the above links don't work, then get the files thru: http://www.billion.com/support/download/fd/fd11.htm 2. Unzip the file $ unzip TW_646.104q.zip 3. Compile scangzip.c $ gcc -O2 scangzip.c -o scangzip 4. Extract kernel and filesystem from the firmware update $ ./scangzip 0 < TW_646.104q > kernel.img $ ./scangzip 1 < TW_646.104q > fs.img 5. Explore the kernel image $ strings kernel.img | grep "Linux version" Linux version 2.4.19openrg-rmk6-ds1 (root@tide) (gcc version 2.95.3 20010315 (release/MontaVista)) #1 6. Mount the filesystem $ mkdir fs $ su -c 'mount -t ext2 -o ro,loop fs.img fs' 7. Explore the filesystem $ find fs -type f | xargs egrep -i "(gpl|general public license)" Binary file fs/mnt/cramfs/bin/busybox matches fs/mnt/cramfs/ipsec/ipsec:# under the terms of the GNU General Public License as published by the fs/mnt/cramfs/ipsec/ipsec:# option) any later version. See . fs/mnt/cramfs/ipsec/ipsec:# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License Binary file fs/mnt/cramfs/ipsec/pluto matches Binary file fs/mnt/cramfs/ipsec/whack matches Binary file fs/mnt/cramfs/lib/modules/rhinefet_mod.o matches $ ls -l fs/mnt/cramfs/bin/busybox fs/mnt/cramfs/bin/iptables fs/mnt/cramfs/bin/tc -rwxr-xr-x 1 root root 394732 May 25 07:09 fs/mnt/cramfs/bin/busybox -rwxr-xr-x 1 root root 628442 May 25 07:09 fs/mnt/cramfs/bin/iptables -rwxr-xr-x 1 root root 123609 May 25 07:09 fs/mnt/cramfs/bin/tc $ find fs -type f | xargs egrep -i "freeswan" fs/mnt/cramfs/bin/init_files.sh:# Mark 20040902: following three lines are necessary for FreeSWAN VPN, without them, ipsec tools will fail. Binary file fs/mnt/cramfs/ipsec/spi matches fs/mnt/cramfs/ipsec/ipsec:version="super-freeswan-1.99.7.3" fs/mnt/cramfs/ipsec/ipsec: echo "See for more general info." fs/mnt/cramfs/ipsec/ipsec: echo "See also or the ipsec(8) manual page." Binary file fs/mnt/cramfs/ipsec/pluto matches Binary file fs/mnt/cramfs/ipsec/tncfg matches Binary file fs/mnt/cramfs/ipsec/whack matches Binary file fs/mnt/cramfs/ipsec/eroute matches Binary file fs/mnt/cramfs/ipsec/rsasigkey matches Binary file fs/mnt/cramfs/ipsec/pf_key matches Binary file fs/mnt/cramfs/ipsec/spigrp matches 8. The GPL projects used in the firmware are at least (but not limited to): - OpenRG http://www.jungo.com/openrg/openrg.html (Contains GPL code) - Linux kernel http://www.kernel.org/pub/linux/kernel/README - FreeSwan http://www.freeswan.org/freeswan_trees/freeswan-1.99/doc/intro.html (FreeSwan is GPL/LGPL) - busybox http://www.busybox.net/license.html - netfilter http://www.netfilter.org/licensing.html - iproute2 http://linux-net.osdl.org/index.php/Iproute2 9. The firmware archives do not include a) complete source code or b) written offer for the source code as required by GPL license. http://www.gnu.org/licenses/gpl.txt Thanks to Johan Ronkainen for the tip. -- Harry Sintonen http://creativecommons.org/licenses/by-nc/2.5/