diff options
29 files changed, 556 insertions, 144 deletions
diff --git a/.gitignore b/.gitignore index 5b3a479d2..c8089da0e 100644 --- a/.gitignore +++ b/.gitignore @@ -17,7 +17,7 @@ toolchain_build_*/ .prereq_done .config* .busyboxcfg -.bbrebuild +.rebuild.* .defconfig all.config .cfg_*/ @@ -150,19 +150,31 @@ endmenu source "target/Config.in" menu "Runtime configuration" -config ADK_SSH_PUBKEY + +config ADK_RUNTIME_HOSTNAME + string "hostname for the embedded system" + default "linux" + help + Set your target hostname. + +config ADK_RUNTIME_SSH_PUBKEY string "SSH public key (root user only)" default "" help Paste your generated SSH public key here and it will be embedded into the built image, so you can use it to login instantly. -config ADK_PASSWORD +config ADK_RUNTIME_PASSWORD string "root password for the embedded system" default "linux123" help Predefine the root password enabled in the built image. +config ADK_RUNTIME_TIMEZONE + string "timezone for the embedded system" + default "Europe/Berlin" + help + endmenu source "package/Config.in" @@ -1,3 +1,5 @@ +- package/Config.in generator +- convert global ipv6 to flavours - add support for brcm 2.6 - macos x build - help text for config/ needs adoption diff --git a/mk/build.mk b/mk/build.mk index 8791ebf1d..a4559afef 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -64,8 +64,16 @@ noconfig_targets:= menuconfig \ POSTCONFIG= -@ \ if [ -f .config.old ];then \ + rebuild=0; \ if [ "$$(grep ^BUSYBOX .config|md5sum)" != "$$(grep ^BUSYBOX .config.old|md5sum)" ];then \ - touch .bbrebuild; \ + touch .rebuild.busybox;\ + rebuild=1;\ + fi; \ + if [ "$$(grep ^ADK_RUNTIME_PASSWORD .config|md5sum)" != "$$(grep ^ADK_RUNTIME_PASSWORD .config.old|md5sum)" ];then \ + touch .rebuild.base-files;\ + rebuild=1;\ + fi; \ + if [ $$rebuild -eq 1 ];then \ cp .config .config.old; \ fi; \ fi diff --git a/mk/image.mk b/mk/image.mk index 4713d621d..668de8c26 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -13,37 +13,6 @@ image-prepare-post: rng=/dev/arandom; test -e $$rng || rng=/dev/urandom; \ dd if=$$rng bs=512 count=1 >>${TARGET_DIR}/etc/.rnd 2>/dev/null; \ chmod 600 ${TARGET_DIR}/etc/.rnd - @cd ${TARGET_DIR}; ls=; ln=; li=; x=1; md5sum $$(find . -type f) | \ - sed -e "s/*//" | \ - while read sum name; do \ - inode=$$(ls -i "$$name"); \ - echo "$$sum $${inode%% *} $$name"; \ - done | sort | while read sum inode name; do \ - if [[ $$sum = $$ls ]]; then \ - [[ $$li = $$inode ]] && continue; \ - case $$x in \ - 1) echo 'WARNING: duplicate files found' \ - 'in filesystem! Please fix them.' >&2; \ - echo -n "> $$ln "; \ - ;; \ - 2) echo -n "> $$ln "; \ - ;; \ - 3) echo -n ' '; \ - ;; \ - esac; \ - echo -n "$$name"; \ - x=3; \ - else \ - case $$x in \ - 3) echo; \ - x=2; \ - ;; \ - esac; \ - fi; \ - ls=$$sum; \ - ln=$$name; \ - li=$$inode; \ - done chmod 4511 ${TARGET_DIR}/bin/busybox chmod 1777 ${TARGET_DIR}/tmp @if [ -d ${TARGET_DIR}/usr/share/fonts/X11 ];then \ diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 560158226..421f355c4 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk PKG_NAME:= base-files PKG_VERSION:= 1.0 -PKG_RELEASE:= 17 +PKG_RELEASE:= 20 PKG_SECTION:= base PKG_DESCR:= basic filesystem structure and scripts @@ -65,13 +65,24 @@ endif ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab rm -rf $(IDIR_BASE_FILES)/var ln -sf tmp $(IDIR_BASE_FILES)/var - test -z $(ADK_PASSWORD) || \ + test -z $(ADK_RUNTIME_HOSTNAME) || \ + echo $(ADK_RUNTIME_HOSTNAME) > \ + $(IDIR_BASE_FILES)/etc/hostname + test -z $(ADK_RUNTIME_PASSWORD) || \ $(SED) 's,\*NP\*,'"$$(${STAGING_TOOLS}/bin/mkcrypt \ - ${ADK_PASSWORD}),g" $(IDIR_BASE_FILES)/etc/shadow + ${ADK_RUNTIME_PASSWORD}),g" $(IDIR_BASE_FILES)/etc/shadow git log -1|head -1|sed -e 's#commit ##' \ > $(IDIR_BASE_FILES)/etc/adkversion ifneq (${ADK_PACKAGE_CONFIG_IN_ETC},) gzip -9c ${TOPDIR}/.config >$(IDIR_BASE_FILES)/etc/adkconfig.gz endif +rebuild: + @if [ -f ${TOPDIR}/.rebuild.${PKG_NAME} ];then \ + rm ${WRKBUILD}/.build_done; \ + rm ${TOPDIR}/.rebuild.${PKG_NAME}; \ + fi + +fake: rebuild + include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/base-files/src/usr/share/udhcpc/default.script b/package/base-files/src/usr/share/udhcpc/default.script index 02e4a7a3c..68c603496 100755 --- a/package/base-files/src/usr/share/udhcpc/default.script +++ b/package/base-files/src/usr/share/udhcpc/default.script @@ -4,7 +4,7 @@ if [[ -z $1 ]]; then exit 1 fi -RESOLV_CONF=/tmp/resolv.conf +RESOLV_CONF=/etc/resolv.conf case $1 in (deconfig) diff --git a/package/busybox/Makefile b/package/busybox/Makefile index 367bb2cae..fb326feeb 100644 --- a/package/busybox/Makefile +++ b/package/busybox/Makefile @@ -4,9 +4,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:= busybox -PKG_VERSION:= 1.16.1 -PKG_RELEASE:= 4 -PKG_MD5SUM:= 319486ec65078d07fde26eb620fecde7 +PKG_VERSION:= 1.16.2 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 2ba980f720a5bdce4ec05423519acc35 PKG_DESCR:= Core utilities for embedded Linux systems PKG_SECTION:= base PKG_URL:= http://www.busybox.net/ @@ -30,12 +30,6 @@ CONFIG_STYLE:= manual BUILD_STYLE:= manual INSTALL_STYLE:= manual -bbrebuild: - @if [ -f ${TOPDIR}/.bbrebuild ];then \ - rm ${WRKBUILD}/.build_done; \ - rm ${TOPDIR}/.bbrebuild; \ - fi - ${TOPDIR}/.busyboxcfg: ${TOPDIR}/.config grep BUSYBOX_ $(TOPDIR)/.config|sed -e 's/BUSYBOX_/CONFIG_/' > \ ${TOPDIR}/.busyboxcfg @@ -84,6 +78,12 @@ udhcpd-install: ${INSTALL_DIR} ${IDIR_UDHCPD}/etc/ ${INSTALL_DATA} ./files/udhcpd.conf ${IDIR_UDHCPD}/etc/ -fake: bbrebuild +rebuild: + @if [ -f ${TOPDIR}/.rebuild.${PKG_NAME} ];then \ + rm ${WRKBUILD}/.build_done; \ + rm ${TOPDIR}/.rebuild.${PKG_NAME}; \ + fi + +fake: rebuild include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/busybox/config/util-linux/Config.in b/package/busybox/config/util-linux/Config.in index d4be6854b..d24a02843 100644 --- a/package/busybox/config/util-linux/Config.in +++ b/package/busybox/config/util-linux/Config.in @@ -351,7 +351,8 @@ config BUSYBOX_LOSETUP config BUSYBOX_LSPCI bool "lspci" - default n + default y + depends on !ADK_PACKAGE_PCIUTILS help lspci is a utility for displaying information about PCI buses in the system and devices connected to them. @@ -360,7 +361,8 @@ config BUSYBOX_LSPCI config BUSYBOX_LSUSB bool "lsusb" - default n + default y + depends on !ADK_PACKAGE_LSUSB help lsusb is a utility for displaying information about USB buses in the system and devices connected to them. diff --git a/package/dnsmasq/Makefile b/package/dnsmasq/Makefile index 8bcb361f9..84e1c889f 100644 --- a/package/dnsmasq/Makefile +++ b/package/dnsmasq/Makefile @@ -4,9 +4,9 @@ include ${TOPDIR}/rules.mk PKG_NAME:= dnsmasq -PKG_VERSION:= 2.51 +PKG_VERSION:= 2.55 PKG_RELEASE:= 1 -PKG_MD5SUM:= 97465261a6de5258a3c3edfe51ca16a4 +PKG_MD5SUM:= b093d7c6bc7f97ae6fd35d048529232a PKG_DESCR:= A lightweight DNS and DHCP server PKG_SECTION:= net PKG_URL:= http://thekelleys.org.uk/dnsmasq @@ -24,6 +24,6 @@ MAKE_FLAGS+= BINDIR=/usr/sbin MANDIR=/usr/man COPTS="${TCFLAGS}" do-install: ${INSTALL_DIR} ${IDIR_DNSMASQ}/usr/sbin ${IDIR_DNSMASQ}/etc ${INSTALL_BIN} ${WRKBUILD}/src/dnsmasq ${IDIR_DNSMASQ}/usr/sbin/ - ${INSTALL_DATA} files/dnsmasq.conf ${IDIR_DNSMASQ}/etc/dnsmasq.conf + ${INSTALL_DATA} ./files/dnsmasq.conf ${IDIR_DNSMASQ}/etc/dnsmasq.conf include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/dnsmasq/patches/patch-src_config_h b/package/dnsmasq/patches/patch-src_config_h index 297097565..5db49ea9a 100644 --- a/package/dnsmasq/patches/patch-src_config_h +++ b/package/dnsmasq/patches/patch-src_config_h @@ -1,4 +1,3 @@ -$Id: update-patches 24 2008-08-31 14:56:13Z wbx $ --- dnsmasq-2.47.orig/src/config.h 2009-02-05 13:14:24.000000000 +0100 +++ dnsmasq-2.47/src/config.h 2009-03-19 18:40:37.000000000 +0100 @@ -45,7 +45,7 @@ diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile index 2e29902a7..e6f473380 100644 --- a/package/dropbear/Makefile +++ b/package/dropbear/Makefile @@ -63,9 +63,9 @@ do-install: $(INSTALL_BIN) $(WRKBUILD)/dropbearconvert \ $(IDIR_DBCONVERT)/usr/bin/dropbearconvert # ssh pubkey - test -z $(ADK_SSH_PUBKEY) || ( \ + test -z $(ADK_RUNTIME_SSH_PUBKEY) || ( \ mkdir -p $(IDIR_DROPBEAR)/etc/dropbear; \ - echo $(ADK_SSH_PUBKEY) \ + echo $(ADK_RUNTIME_SSH_PUBKEY) \ >$(IDIR_DROPBEAR)/etc/dropbear/authorized_keys; \ ) diff --git a/package/libusb/Makefile b/package/libusb/Makefile index 8b68fdb79..63e9f21be 100644 --- a/package/libusb/Makefile +++ b/package/libusb/Makefile @@ -4,9 +4,9 @@ include ${TOPDIR}/rules.mk PKG_NAME:= libusb -PKG_VERSION:= 1.0.6 +PKG_VERSION:= 1.0.8 PKG_RELEASE:= 1 -PKG_MD5SUM:= 818c7c02112a53e0c182666ee83f2057 +PKG_MD5SUM:= 37d34e6eaa69a4b645a19ff4ca63ceef PKG_DESCR:= a library for accessing Linux USB devices PKG_SECTION:= libs PKG_URL:= http://libusb.wiki.sourceforge.net diff --git a/package/openssh/Makefile b/package/openssh/Makefile index 2896c1a29..572b69929 100644 --- a/package/openssh/Makefile +++ b/package/openssh/Makefile @@ -86,9 +86,9 @@ post-install: ${IDIR_OPENSSH_SFTP_SERVER}/usr/libexec chmod 0700 {${IDIR_OPENSSH_CLIENT},${IDIR_OPENSSH_SERVER}}/etc/ssh # ssh pubkey - test -z $(ADK_SSH_PUBKEY) || ( \ + test -z $(ADK_RUNTIME_SSH_PUBKEY) || ( \ mkdir -p $(IDIR_OPENSSH_SERVER)/etc/ssh; \ - echo $(ADK_SSH_PUBKEY) \ + echo $(ADK_RUNTIME_SSH_PUBKEY) \ >$(IDIR_OPENSSH_SERVER)/etc/ssh/authorized_keys; \ ) diff --git a/package/ppp/Makefile b/package/ppp/Makefile index 2d38f6a96..88f7826a1 100644 --- a/package/ppp/Makefile +++ b/package/ppp/Makefile @@ -4,9 +4,9 @@ include ${TOPDIR}/rules.mk PKG_NAME:= ppp -PKG_VERSION:= 2.4.4 -PKG_RELEASE:= 18 -PKG_MD5SUM:= 183800762e266132218b204dfb428d29 +PKG_VERSION:= 2.4.5 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 4621bc56167b6953ec4071043fe0ec57 PKG_DESCR:= Point-to-Point Protocol software PKG_SECTION:= net PKG_MULTI:= 1 @@ -64,7 +64,7 @@ post-install: ${SUB_INSTALLS-m} ${SUB_INSTALLS-y} ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/peers $(INSTALL_DIR) ${IDIR_PPP}/etc/network/if-pre-up.d $(INSTALL_BIN) ./files/ppp.pre-up \ - ${IDIR_PPP}/etc/network/if-pre-up.d/ppp + ${IDIR_PPP}/etc/network/if-pre-up.d/05-ppp mod-radius-install: ${INSTALL_DIR} ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient diff --git a/package/ppp/files/etc/ppp/ip-down b/package/ppp/files/etc/ppp/ip-down index 334bcb885..a4756b768 100755 --- a/package/ppp/files/etc/ppp/ip-down +++ b/package/ppp/files/etc/ppp/ip-down @@ -1,6 +1,4 @@ #!/bin/sh -[ -z "$6" ] || env -i ACTION="ifdown" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface" - [ -d /etc/ppp/ip-down.d ] && { for SCRIPT in /etc/ppp/ip-down.d/* do diff --git a/package/ppp/files/etc/ppp/ip-up b/package/ppp/files/etc/ppp/ip-up index 34b4b50e1..2ccefc01c 100755 --- a/package/ppp/files/etc/ppp/ip-up +++ b/package/ppp/files/etc/ppp/ip-up @@ -1,6 +1,4 @@ #!/bin/sh -[ -z "$6" ] || env -i ACTION="ifup" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface" - [ -d /etc/ppp/ip-up.d ] && { for SCRIPT in /etc/ppp/ip-up.d/* do diff --git a/package/ppp/files/ppp.pre-up b/package/ppp/files/ppp.pre-up index 9f82aa98c..79fb063ba 100755 --- a/package/ppp/files/ppp.pre-up +++ b/package/ppp/files/ppp.pre-up @@ -37,6 +37,9 @@ REPLACE=" sed "$REPLACE" < /etc/ppp/templates/$IF_USE_TEMPLATE > /etc/ppp/peers/$IF_PROVIDER case "$IF_PPP_DEVICE" in +eth*) + ip link set up dev $IF_PPP_DEVICE + ;; nas*) [ "$IF_PPP_ENCAPS" ] || encap=0 [ "$IF_PPP_PAYLOAD" ] || payload=1 diff --git a/package/ppp/patches/patch-pppd_plugins_rp-pppoe_Makefile_linux b/package/ppp/patches/patch-pppd_plugins_rp-pppoe_Makefile_linux deleted file mode 100644 index 3a7439ce7..000000000 --- a/package/ppp/patches/patch-pppd_plugins_rp-pppoe_Makefile_linux +++ /dev/null @@ -1,23 +0,0 @@ ---- ppp-2.4.4.orig/pppd/plugins/rp-pppoe/Makefile.linux 2006-06-04 07:07:46.000000000 +0200 -+++ ppp-2.4.4/pppd/plugins/rp-pppoe/Makefile.linux 2009-06-05 19:12:00.000000000 +0200 -@@ -39,9 +39,9 @@ rp-pppoe.so: libplugin.a plugin.o - - install: all - $(INSTALL) -d -m 755 $(LIBDIR) -- $(INSTALL) -s -c -m 4550 rp-pppoe.so $(LIBDIR) -+ $(INSTALL) -c -m 4550 rp-pppoe.so $(LIBDIR) - $(INSTALL) -d -m 755 $(BINDIR) -- $(INSTALL) -s -c -m 555 pppoe-discovery $(BINDIR) -+ $(INSTALL) -c -m 555 pppoe-discovery $(BINDIR) - - clean: - rm -f *.o *.so -@@ -50,7 +50,7 @@ plugin.o: plugin.c - $(CC) '-DRP_VERSION="$(VERSION)"' $(CFLAGS) -I../../.. -c -o plugin.o -fPIC plugin.c - - libplugin.a: discovery.o if.o common.o debug.o -- $(AR) -rc $@ $^ -+ $(TARGET_AR) -rcs $@ $^ - - discovery.o: discovery.c - $(CC) $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o discovery.o -fPIC discovery.c diff --git a/package/ppp/patches/patch-pppd_plugins_rp-pppoe_discovery_c b/package/ppp/patches/patch-pppd_plugins_rp-pppoe_discovery_c deleted file mode 100644 index ee40108d5..000000000 --- a/package/ppp/patches/patch-pppd_plugins_rp-pppoe_discovery_c +++ /dev/null @@ -1,27 +0,0 @@ ---- ppp-2.4.4.orig/pppd/plugins/rp-pppoe/discovery.c 2005-03-22 11:22:32.000000000 +0100 -+++ ppp-2.4.4/pppd/plugins/rp-pppoe/discovery.c 2009-06-05 19:12:00.000000000 +0200 -@@ -607,12 +607,14 @@ discovery(PPPoEConnection *conn) - conn->discoveryState = STATE_SENT_PADI; - waitForPADO(conn, timeout); - -+#if 0 - /* If we're just probing for access concentrators, don't do - exponential backoff. This reduces the time for an unsuccessful - probe to 15 seconds. */ - if (!conn->printACNames) { - timeout *= 2; - } -+#endif - if (conn->printACNames && conn->numPADOs) { - break; - } -@@ -635,7 +637,9 @@ discovery(PPPoEConnection *conn) - sendPADR(conn); - conn->discoveryState = STATE_SENT_PADR; - waitForPADS(conn, timeout); -+#if 0 - timeout *= 2; -+#endif - } while (conn->discoveryState == STATE_SENT_PADR); - - /* We're done. */ diff --git a/package/uclibc/Makefile b/package/uclibc/Makefile index 787dc4e56..823508ca2 100644 --- a/package/uclibc/Makefile +++ b/package/uclibc/Makefile @@ -6,9 +6,10 @@ include $(TOPDIR)/toolchain/uClibc/Makefile.inc PKG_DESCR:= embedded C library PKG_SECTION:= base -NO_DISTFILES:= 1 PKG_OPTS:= noremove +NO_DISTFILES:= 1 + include $(TOPDIR)/mk/package.mk $(eval $(call PKG_template,UCLIBC,uclibc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) @@ -26,21 +27,25 @@ SUB_INSTALLS-${ADK_PACKAGE_UCLIBC_DEV}+= uclibc-dev-install do-install: ${SUB_INSTALLS-m} ${SUB_INSTALLS-y} ${INSTALL_DIR} $(IDIR_UCLIBC)/lib $(IDIR_UCLIBC)/etc # create timezone file - echo 'CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00' > $(IDIR_UCLIBC)/etc/TZ + test -z $(ADK_RUNTIME_TIMEZONE) || \ + grep $(ADK_RUNTIME_TIMEZONE) ./files/tz.lst | \ + cut -f 2 > $(IDIR_UCLIBC)/etc/TZ $(CP) $(STAGING_DIR)/lib/libgcc_s.so* $(IDIR_UCLIBC)/lib/ $(CP) $(STAGING_DIR)/lib/libc.so* $(IDIR_UCLIBC)/lib/ - $(CP) $(STAGING_DIR)/lib/libuClibc-$(PKG_VERSION).so $(IDIR_UCLIBC)/lib/ - $(CP) $(STAGING_DIR)/lib/ld*-uClibc-$(PKG_VERSION).so $(IDIR_UCLIBC)/lib/ + $(CP) $(STAGING_DIR)/lib/libuClibc-$(PKG_VERSION).so \ + $(IDIR_UCLIBC)/lib/ + $(CP) $(STAGING_DIR)/lib/ld*-uClibc-$(PKG_VERSION).so \ + $(IDIR_UCLIBC)/lib/ $(CP) $(STAGING_DIR)/lib/ld*-uClibc.so.* $(IDIR_UCLIBC)/lib/ -for file in libcrypt libdl libm libnsl libresolv librt libutil; do \ $(CP) $(STAGING_DIR)/lib/$$file.so* $(IDIR_UCLIBC)/lib/; \ - $(CP) $(STAGING_DIR)/lib/$$file-$(PKG_VERSION).so $(IDIR_UCLIBC)/lib/; \ + $(CP) $(STAGING_DIR)/lib/$$file-$(PKG_VERSION).so \ + $(IDIR_UCLIBC)/lib/; \ done uclibc-dev-install: ${INSTALL_DIR} ${IDIR_UCLIBC_DEV}/usr/lib ${CP} ${STAGING_DIR}/lib/crt* ${IDIR_UCLIBC_DEV}/usr/lib - # header package $(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_VERSION)-$(KERNEL_RELEASE)/linux-$(KERNEL_VERSION) ARCH=$(ARCH) V=1 \ INSTALL_HDR_PATH=$(IDIR_UCLIBC_DEV)/usr \ headers_install diff --git a/package/uclibc/files/tz.lst b/package/uclibc/files/tz.lst new file mode 100644 index 000000000..1c249bba0 --- /dev/null +++ b/package/uclibc/files/tz.lst @@ -0,0 +1,451 @@ +Africa/Abidjan GMT0 +Africa/Accra GMT0 +Africa/Addis Ababa EAT-3 +Africa/Algiers CET-1 +Africa/Asmera EAT-3 +Africa/Bamako GMT0 +Africa/Bangui WAT-1 +Africa/Banjul GMT0 +Africa/Bissau GMT0 +Africa/Blantyre CAT-2 +Africa/Brazzaville WAT-1 +Africa/Bujumbura CAT-2 +Africa/Cairo EET-2EEST-3,M4.5.5/0,M9.5.4/24 +Africa/Casablanca WET0 +Africa/Ceuta CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Africa/Conakry GMT0 +Africa/Dakar GMT0 +Africa/Dar es Salaam EAT-3 +Africa/Djibouti EAT-3 +Africa/Douala WAT-1 +Africa/El Aaiun WET0 +Africa/Freetown WAT0 +Africa/Gaborone CAT-2 +Africa/Harare CAT-2 +Africa/Johannesburg SAST-2 +Africa/Kampala EAT-3 +Africa/Khartoum EAT-3 +Africa/Kigali CAT-2 +Africa/Kinshasa WAT-1 +Africa/Lagos WAT-1 +Africa/Libreville WAT-1 +Africa/Lome GMT0 +Africa/Luanda WAT-1 +Africa/Lubumbashi CAT-2 +Africa/Lusaka CAT-2 +Africa/Malabo WAT-1 +Africa/Maputo CAT-2 +Africa/Maseru SAST-2 +Africa/Mbabane SAST-2 +Africa/Mogadishu EAT-3 +Africa/Monrovia GMT0 +Africa/Nairobi EAT-3 +Africa/Ndjamena WAT-1 +Africa/Niamey WAT-1 +Africa/Nouakchott GMT0 +Africa/Ouagadougou GMT0 +Africa/Porto-Novo WAT-1 +Africa/Sao Tome GMT0 +Africa/Timbuktu GMT0 +Africa/Tripoli EET-2 +Africa/Tunis CET-1 +Africa/Windhoek WAT-1WAST-2,M9.1.0/2,M4.1.0/2 +America/Adak HAST10HADT9,M4.1.0/2,M10.5.0/2 +America/Anchorage AKST9AKDT8,M4.1.0/2,M10.5.0/2 +America/Anguilla AST4 +America/Antigua AST4 +America/Araguaina BRT3BRST2,M10.2.0/0,M2.3.0/0 +America/Aruba AST4 +America/Asuncion PYT4PYST3,M10.1.0/0,M3.1.0/0 +America/Atka HAST10HADT9,M4.1.0/2,M10.5.0/2 +America/Barbados AST4 +America/Belem BRT3 +America/Belize CST6 +America/Boa Vista AMT4 +America/Bogota COT5 +America/Boise MST7MDT6,M4.1.0/2,M10.5.0/2 +America/Buenos Aires ART3 +America/Cambridge Bay MST7MDT6,M4.1.0/2,M10.5.0/2 +America/Cancun CST6CDT5,M5.1.0/2,M9.5.0/2 +America/Caracas VET4 +America/Catamarca ART3 +America/Cayenne GFT3 +America/Cayman EST5 +America/Chicago CST6CDT5,M4.1.0/2,M10.5.0/2 +America/Chihuahua MST7MDT6,M5.1.0/2,M9.5.0/2 +America/Cordoba ART3 +America/Costa Rica CST6 +America/Cuiaba AMT4AMST3,M10.2.0/0,M2.3.0/0 +America/Curacao AST4 +America/Danmarkshavn GMT0 +America/Dawson PST8PDT7,M4.1.0/2,M10.5.0/2 +America/Dawson Creek MST7 +America/Denver MST7MDT6,M4.1.0/2,M10.5.0/2 +America/Detroit EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Dominica AST4 +America/Edmonton MST7MDT6,M4.1.0/2,M10.5.0/2 +America/Eirunepe ACT5 +America/El Salvador CST6 +America/Ensenada PST8PDT7,M4.1.0/2,M10.5.0/2 +America/Fort Wayne EST5 +America/Fortaleza BRT3BRST2,M10.2.0/0,M2.3.0/0 +America/Glace Bay AST4ADT3,M4.1.0/2,M10.5.0/2 +America/Godthab WGT3WGST2,M3.5.0/-2,M10.5.0/-1 +America/Goose Bay AST4ADT3,M4.1.0/0:01,M10.5.0/0:01 +America/Grand Turk EST5EDT4,M4.1.0/0,M10.5.0/0 +America/Grenada AST4 +America/Guadeloupe AST4 +America/Guatemala CST6 +America/Guayaquil ECT5 +America/Guyana GYT4 +America/Halifax AST4ADT3,M4.1.0/2,M10.5.0/2 +America/Havana CST5CDT4,M4.1.0/0,M10.5.0/1 +America/Hermosillo MST7 +America/Indiana/Indianapolis EST5 +America/Indiana/Knox EST5 +America/Indiana/Marengo EST5 +America/Indiana/Vevay EST5 +America/Indianapolis EST5 +America/Inuvik MST7MDT6,M4.1.0/2,M10.5.0/2 +America/Iqaluit EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Jamaica EST5 +America/Jujuy ART3 +America/Juneau AKST9AKDT8,M4.1.0/2,M10.5.0/2 +America/Kentucky/Louisville EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Kentucky/Monticello EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Knox IN EST5 +America/La Paz BOT4 +America/Lima PET5 +America/Los Angeles PST8PDT7,M4.1.0/2,M10.5.0/2 +America/Louisville EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Maceio BRT3BRST2,M10.2.0/0,M2.3.0/0 +America/Managua CST6 +America/Manaus AMT4 +America/Martinique AST4 +America/Mazatlan MST7MDT6,M5.1.0/2,M9.5.0/2 +America/Mendoza ART3 +America/Menominee CST6CDT5,M4.1.0/2,M10.5.0/2 +America/Merida CST6CDT5,M5.1.0/2,M9.5.0/2 +America/Mexico City CST6 +America/Miquelon PMST3PMDT2,M4.1.0/2,M10.5.0/2 +America/Monterrey CST6CDT5,M5.1.0/2,M9.5.0/2 +America/Montevideo UYT3 +America/Montreal EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Montserrat AST4 +America/Nassau EST5EDT4,M4.1.0/2,M10.5.0/2 +America/New York EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Nipigon EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Nome AKST9AKDT8,M4.1.0/2,M10.5.0/2 +America/Noronha FNT2 +America/North Dakota/Center CST6CDT5,M4.1.0/2,M10.5.0/2 +America/Panama EST5 +America/Pangnirtung EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Paramaribo SRT3 +America/Phoenix MST7 +America/Port of Spain AST4 +America/Port-au-Prince EST5 +America/Porto Acre ACT5 +America/Porto Velho AMT4 +America/Puerto Rico AST4 +America/Rainy River CST6CDT5,M4.1.0/2,M10.5.0/2 +America/Rankin Inlet CST6CDT5,M4.1.0/2,M10.5.0/2 +America/Recife BRT3BRST2,M10.2.0/0,M2.3.0/0 +America/Regina CST6 +America/Rio Branco ACT5 +America/Rosario ART3 +America/Santiago CLT4CLST3,M10.2.0/0,M3.2.0/0 +America/Santo Domingo AST4 +America/Sao Paulo BRT3BRST2,M10.2.0/0,M2.3.0/0 +America/Scoresbysund EGT1EGST0,M3.5.0/0,M10.5.0/1 +America/Shiprock MST7MDT6,M4.1.0/2,M10.5.0/2 +America/St Johns NST3:30NDT2:30,M4.1.0/0:01,M10.5.0/0:01 +America/St Kitts AST4 +America/St Lucia AST4 +America/St Thomas AST4 +America/St Vincent AST4 +America/Swift Current CST6 +America/Tegucigalpa CST6 +America/Thule AST4 +America/Thunder Bay EST5EDT4,M4.1.0/2,M10.5.0/2 +America/Tijuana PST8PDT7,M4.1.0/2,M10.5.0/2 +America/Tortola AST4 +America/Vancouver PST8PDT7,M4.1.0/2,M10.5.0/2 +America/Virgin AST4 +America/Whitehorse PST8PDT7,M4.1.0/2,M10.5.0/2 +America/Winnipeg CST6CDT5,M4.1.0/2,M10.5.0/3 +America/Yakutat AKST9AKDT8,M4.1.0/2,M10.5.0/2 +America/Yellowknife MST7MDT6,M4.1.0/2,M10.5.0/2 +Antarctica/Casey WST-8 +Antarctica/Davis DAVT-7 +Antarctica/DumontDUrville DDUT-10 +Antarctica/Mawson MAWT-6 +Antarctica/McMurdo NZST-12NZDT-13,M10.1.0/2,M3.3.0/3 +Antarctica/Palmer CLT4CLST3,M10.2.0/0,M3.2.0/0 +Antarctica/South Pole NZST-12NZDT-13,M10.1.0/2,M3.3.0/3 +Antarctica/Syowa SYOT-3 +Antarctica/Vostok VOST-6 +Arctic/Longyearbyen CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Asia/Aden AST-3 +Asia/Almaty ALMT-6ALMST-7,M3.5.0/0,M10.5.0/0 +Asia/Amman EET-2EEST-3,M3.5.4/0,M9.5.4/1 +Asia/Anadyr ANAT-12ANAST-13,M3.5.0/2,M10.5.0/3 +Asia/Aqtau AQTT-4AQTST-5,M3.5.0/0,M10.5.0/0 +Asia/Aqtobe AQTT-5AQTST-6,M3.5.0/0,M10.5.0/0 +Asia/Ashgabat TMT-5 +Asia/Ashkhabad TMT-5 +Asia/Baghdad AST-3ADT-4,J91/3,J274/4 +Asia/Bahrain AST-3 +Asia/Baku AZT-4AZST-5,M3.5.0/1,M10.5.0/1 +Asia/Bangkok ICT-7 +Asia/Beirut EET-2EEST-3,M3.5.0/0,M10.5.0/0 +Asia/Bishkek KGT-5KGST-6,M3.5.0/2:30,M10.5.0/2:30 +Asia/Brunei BNT-8 +Asia/Calcutta IST-5:30 +Asia/Choibalsan CHOT-9 +Asia/Chongqing CST-8 +Asia/Chungking CST-8 +Asia/Colombo LKT-6 +Asia/Dacca BDT-6 +Asia/Damascus EET-2EEST-3,J91/0,J274/0 +Asia/Dhaka BDT-6 +Asia/Dili TPT-9 +Asia/Dubai GST-4 +Asia/Dushanbe TJT-5 +Asia/Gaza EET-2EEST-3,M4.3.5/0,M10.3.5/0 +Asia/Harbin CST-8 +Asia/Hong Kong HKT-8 +Asia/Hovd HOVT-7 +Asia/Irkutsk IRKT-8IRKST-9,M3.5.0/2,M10.5.0/3 +Asia/Istanbul EET-2EEST-3,M3.5.0/3,M10.5.0/4 +Asia/Jakarta WIT-7 +Asia/Jayapura EIT-9 +Asia/Jerusalem IST-2IDT-3,J87/1,J276/1 +Asia/Kabul AFT-4:30 +Asia/Kamchatka PETT-12PETST-13,M3.5.0/2,M10.5.0/3 +Asia/Karachi PKT-5 +Asia/Kashgar CST-8 +Asia/Katmandu NPT-5:45 +Asia/Krasnoyarsk KRAT-7KRAST-8,M3.5.0/2,M10.5.0/3 +Asia/Kuala Lumpur MYT-8 +Asia/Kuching MYT-8 +Asia/Kuwait AST-3 +Asia/Macao CST-8 +Asia/Magadan MAGT-11MAGST-12,M3.5.0/2,M10.5.0/3 +Asia/Manila PHT-8 +Asia/Muscat GST-4 +Asia/Nicosia EET-2EEST-3,M3.5.0/3,M10.5.0/4 +Asia/Novosibirsk NOVT-6NOVST-7,M3.5.0/2,M10.5.0/3 +Asia/Omsk OMST-6OMSST-7,M3.5.0/2,M10.5.0/3 +Asia/Phnom Penh ICT-7 +Asia/Pontianak WIT-7 +Asia/Pyongyang KST-9 +Asia/Qatar AST-3 +Asia/Rangoon MMT-6:30 +Asia/Riyadh AST-3 +Asia/Saigon ICT-7 +Asia/Sakhalin SAKT-10SAKST-11,M3.5.0/2,M10.5.0/3 +Asia/Samarkand UZT-5 +Asia/Seoul KST-9 +Asia/Shanghai CST-8 +Asia/Singapore SGT-8 +Asia/Taipei CST-8 +Asia/Tashkent UZT-5 +Asia/Tbilisi GET-4GEST-5,M3.5.0/0,M10.5.0/0 +Asia/Tehran IRT-3:30IRST-4:30,J80/0,J266/0 +Asia/Tel Aviv IST-2IDT-3,J87/1,J276/1 +Asia/Thimbu BTT-6 +Asia/Thimphu BTT-6 +Asia/Tokyo JST-9 +Asia/Ujung Pandang CIT-8 +Asia/Ulaanbaatar ULAT-8 +Asia/Ulan Bator ULAT-8 +Asia/Urumqi CST-8 +Asia/Vientiane ICT-7 +Asia/Vladivostok VLAT-10VLAST-11,M3.5.0/2,M10.5.0/3 +Asia/Yakutsk YAKT-9YAKST-10,M3.5.0/2,M10.5.0/3 +Asia/Yekaterinburg YEKT-5YEKST-6,M3.5.0/2,M10.5.0/3 +Asia/Yerevan AMT-4AMST-5,M3.5.0/2,M10.5.0/3 +Atlantic/Azores AZOT1AZOST0,M3.5.0/0,M10.5.0/1 +Atlantic/Bermuda AST4ADT3,M4.1.0/2,M10.5.0/2 +Atlantic/Canary WET0WEST-1,M3.5.0/1,M10.5.0/2 +Atlantic/Cape Verde CVT1 +Atlantic/Faeroe WET0WEST-1,M3.5.0/1,M10.5.0/2 +Atlantic/Jan Mayen CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Atlantic/Madeira WET0WEST-1,M3.5.0/1,M10.5.0/2 +Atlantic/Reykjavik GMT0 +Atlantic/South Georgia GST2 +Atlantic/St Helena GMT0 +Atlantic/Stanley FKT4FKST3,M9.1.0/2,M4.3.0/2 +Australia/ACT EST-10EST-11,M10.5.0/2,M3.5.0/3 +Australia/Adelaide CST-9:30CST-10:30,M10.5.0/2,M3.5.0/3 +Australia/Brisbane EST-10 +Australia/Broken Hill CST-9:30CST-10:30,M10.5.0/2,M3.5.0/3 +Australia/Canberra EST-10EST-11,M10.5.0/2,M3.5.0/3 +Australia/Darwin CST-9:30 +Australia/Hobart EST-10EST-11,M10.1.0/2,M3.5.0/3 +Australia/LHI LHST-10:30LHST-11,M10.5.0/2,M3.5.0/2 +Australia/Lindeman EST-10 +Australia/Lord Howe LHST-10:30LHST-11,M10.5.0/2,M3.5.0/2 +Australia/Melbourne EST-10EST-11,M10.5.0/2,M3.5.0/3 +Australia/NSW EST-10EST-11,M10.5.0/2,M3.5.0/3 +Australia/North CST-9:30 +Australia/Perth WST-8 +Australia/Queensland EST-10 +Australia/South CST-9:30CST-10:30,M10.5.0/2,M3.5.0/3 +Australia/Sydney EST-10EST-11,M10.5.0/2,M3.5.0/3 +Australia/Tasmania EST-10EST-11,M10.1.0/2,M3.5.0/3 +Australia/Victoria EST-10EST-11,M10.5.0/2,M3.5.0/3 +Australia/West WST-8 +Australia/Yancowinna CST-9:30CST-10:30,M10.5.0/2,M3.5.0/3 +Brazil/DeNoronha FNT2 +Brazil/East BRT3BRST2,M10.2.0/0,M2.3.0/0 +Brazil/West AMT4 +Canada/Atlantic AST4ADT3,M4.1.0/2,M10.5.0/2 +Canada/Central CST6CDT5,M4.1.0/2,M10.5.0/3 +Canada/East-Saskatchewan CST6 +Canada/Eastern EST5EDT4,M4.1.0/2,M10.5.0/2 +Canada/Mountain MST7MDT6,M4.1.0/2,M10.5.0/2 +Canada/Newfoundland NST3:30NDT2:30,M4.1.0/0:01,M10.5.0/0:01 +Canada/Pacific PST8PDT7,M4.1.0/2,M10.5.0/2 +Canada/Saskatchewan CST6 +Canada/Yukon PST8PDT7,M4.1.0/2,M10.5.0/2 +Chile/Continental CLT4CLST3,M10.2.0/0,M3.2.0/0 +Chile/EasterIsland EAST6EASST5,M10.2.0/-2,M3.2.0/-2 +Cuba CST5CDT4,M4.1.0/0,M10.5.0/1 +Egypt EET-2EEST-3,M4.5.5/0,M9.5.4/24 +Eire GMT0IST-1,M3.5.0/1,M10.5.0/2 +Europe/Amsterdam CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Europe/Andorra CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Europe/Athens EET-2EEST-3,M3.5.0/3,M10.5.0/4 +Europe/Belfast GMT0BST-1,M3.5.0/1,M10.5.0/2 +Europe/Belgrade CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Europe/Berlin CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Europe/Bratislava CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Europe/Brussels CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Europe/Bucharest EET-2EEST-3,M3.5.0/3,M10.5.0/4 +Europe/Budapest CET-1CEST-2,M3.5.0/2,M10.5.0/3 +Europe/Chisinau EET-2EEST-3,M3.5.0/3, |