diff options
Diffstat (limited to 'package')
25 files changed, 1290 insertions, 178 deletions
diff --git a/package/Config.in b/package/Config.in index 98b30b967..346672c77 100644 --- a/package/Config.in +++ b/package/Config.in @@ -44,7 +44,8 @@ endmenu menu "Cryptography" source "package/cryptsetup/Config.in" -source "package/gpg/Config.in" +source "package/gnupg/Config.in" +source "package/gnutls/Config.in" source "package/heimdal/Config.in" source "package/krb5/Config.in" source "package/openct/Config.in" @@ -70,6 +71,7 @@ source "package/e2fsprogs/Config.in" source "package/fuse/Config.in" source "package/mdadm/Config.in" source "package/mtd/Config.in" +source "package/nand/Config.in" source "package/lvm/Config.in" source "package/parted/Config.in" source "package/util-linux-ng/Config.in" @@ -273,6 +275,7 @@ source "package/fontconfig/Config.in" source "package/gettext/Config.in" source "package/glib/Config.in" source "package/gtk+/Config.in" +source "package/heimdal/Config.in.lib" source "package/id3lib/Config.in" source "package/libao/Config.in" source "package/libao/Config.in.lib" @@ -314,7 +317,6 @@ source "package/libgssglue/Config.in" source "package/libgssglue/Config.in.lib" source "package/gmp/Config.in" source "package/gmp/Config.in.lib" -source "package/gnutls/Config.in" source "package/gnutls/Config.in.lib" source "package/libgpg-error/Config.in" source "package/libgpg-error/Config.in.lib" @@ -326,13 +328,13 @@ source "package/libid3tag/Config.in" source "package/libid3tag/Config.in.lib" source "package/jpeg/Config.in" source "package/jpeg/Config.in.lib" +source "package/krb5/Config.in.lib" source "package/lame/Config.in.lib" source "package/mpfr/Config.in" source "package/mysql/Config.in" source "package/mysql/Config.in.lib" source "package/nspr/Config.in" source "package/nss/Config.in" -source "package/libtool/Config.in" source "package/libtool/Config.in.lib" source "package/openldap/Config.in.lib" source "package/liblzo/Config.in" @@ -359,6 +361,7 @@ source "package/libogg/Config.in.lib" source "package/libol/Config.in" source "package/libol/Config.in.lib" source "package/opencdk/Config.in" +source "package/opencdk/Config.in.lib" source "package/obexftp/Config.in.lib" source "package/openobex/Config.in" source "package/libosip2/Config.in" @@ -516,6 +519,7 @@ source "package/gcc/Config.in" source "package/gperf/Config.in" source "package/haserl/Config.in" source "package/jamvm/Config.in" +source "package/libtool/Config.in" source "package/lua/Config.in" source "package/m4/Config.in" source "package/make/Config.in" diff --git a/package/avahi/Makefile b/package/avahi/Makefile index a85b4dcd1..231a97367 100644 --- a/package/avahi/Makefile +++ b/package/avahi/Makefile @@ -6,26 +6,25 @@ include ${TOPDIR}/rules.mk PKG_NAME:= avahi PKG_VERSION:= 0.6.25 PKG_RELEASE:= 1 -PKG_BUILDDEP+= libdaemon expat gdbm glib PKG_MD5SUM:= a83155a6e29e3988f07e5eea3287b21e PKG_DESCR:= mDNS/DNS-SD (aka RendezVous/Bonjour/ZeroConf) daemon PKG_SECTION:= net -PKG_DEPENDS:= libavahi libdaemon libexpat +PKG_DEPENDS:= libavahi libdaemon libexpat gettext +PKG_BUILDDEP+= libdaemon expat gdbm glib gettext PKG_URL:= http://avahi.org PKG_SITES:= http://avahi.org/download/ -PKG_DEPENDS_1:= libavahi libdaemon avahi-daemon -PKG_DESCR_1:= Unicast DNS server from mDNS/DNS-SD configuration daemon -PKG_DESCR_2:= DNS-SD over mDNS (aka RendezVous/Bonjour/ZeroConf) library -PKG_SECTION_2:= libs +PKG_DEPENDS_DNSCONFD:= libavahi libdaemon avahi-daemon +PKG_DESCR_DNSCONFD:= Unicast DNS server from mDNS/DNS-SD configuration daemon +PKG_DESCR_LIB:= DNS-SD over mDNS library include ${TOPDIR}/mk/package.mk -TLDFLAGS+= -lintl $(eval $(call PKG_template,AVAHI_DAEMON,avahi-daemon,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -$(eval $(call PKG_template,AVAHI_DNSCONFD,avahi-dnsconfd,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS_1},${PKG_DESCR_1},${PKG_SECTION})) -$(eval $(call PKG_template,LIBAVAHI,libavahi,${PKG_VERSION}-${PKG_RELEASE},,${PKG_DESCR_2},${PKG_SECTION_2})) +$(eval $(call PKG_template,AVAHI_DNSCONFD,avahi-dnsconfd,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS_DNSCONFD},${PKG_DESCR_DNSCONFD},${PKG_SECTION})) +$(eval $(call PKG_template,LIBAVAHI,libavahi,${PKG_VERSION}-${PKG_RELEASE},,${PKG_DESCR_LIB},libs)) +TLDFLAGS+= -lintl CONFIGURE_STYLE= gnu CONFIGURE_ARGS+= --enable-glib \ --disable-qt3 \ @@ -58,23 +57,28 @@ INSTALL_STYLE= auto post-install: # avahi daemon ${INSTALL_DIR} ${IDIR_AVAHI_DAEMON}/etc/avahi - ${INSTALL_DATA} ./files/avahi-daemon.conf ${IDIR_AVAHI_DAEMON}/etc/avahi/ + ${INSTALL_DATA} ./files/avahi-daemon.conf \ + ${IDIR_AVAHI_DAEMON}/etc/avahi/ ${INSTALL_DIR} ${IDIR_AVAHI_DAEMON}/etc/avahi/services ${INSTALL_DATA} ./files/service-http \ ${IDIR_AVAHI_DAEMON}/etc/avahi/services/http.service ${INSTALL_DATA} ./files/service-ssh \ ${IDIR_AVAHI_DAEMON}/etc/avahi/services/ssh.service ${INSTALL_DIR} ${IDIR_AVAHI_DAEMON}/usr/sbin - ${CP} ${WRKINST}/usr/sbin/avahi-daemon ${IDIR_AVAHI_DAEMON}/usr/sbin/ + ${CP} ${WRKINST}/usr/sbin/avahi-daemon \ + ${IDIR_AVAHI_DAEMON}/usr/sbin/ # avahi dnsconfd ${INSTALL_DIR} ${IDIR_AVAHI_DNSCONFD}/etc/avahi ${CP} ${WRKINST}/etc/avahi/avahi-dnsconfd.action \ ${IDIR_AVAHI_DNSCONFD}/etc/avahi/ ${INSTALL_DIR} ${IDIR_AVAHI_DNSCONFD}/usr/sbin - ${CP} ${WRKINST}/usr/sbin/avahi-dnsconfd ${IDIR_AVAHI_DNSCONFD}/usr/sbin/ + ${CP} ${WRKINST}/usr/sbin/avahi-dnsconfd \ + ${IDIR_AVAHI_DNSCONFD}/usr/sbin/ # libavahi ${INSTALL_DIR} ${IDIR_LIBAVAHI}/usr/lib - ${CP} ${WRKINST}/usr/lib/libavahi-common.so.* ${IDIR_LIBAVAHI}/usr/lib/ - ${CP} ${WRKINST}/usr/lib/libavahi-core.so.* ${IDIR_LIBAVAHI}/usr/lib/ + ${CP} ${WRKINST}/usr/lib/libavahi-common.so* \ + ${IDIR_LIBAVAHI}/usr/lib/ + ${CP} ${WRKINST}/usr/lib/libavahi-core.so* \ + ${IDIR_LIBAVAHI}/usr/lib/ include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/bind/Makefile b/package/bind/Makefile index e1adae348..2a75cfba4 100644 --- a/package/bind/Makefile +++ b/package/bind/Makefile @@ -4,13 +4,13 @@ include ${TOPDIR}/rules.mk PKG_NAME:= bind -PKG_VERSION:= 9.4.1 -PKG_RELEASE:= 4 -PKG_BUILDDEP+= openssl -PKG_MD5SUM:= 09b54d35036cb0423b2e618f21766285 +PKG_VERSION:= 9.6.1-P3 +PKG_RELEASE:= 1 +PKG_MD5SUM:= a0952d589b3051538033387be4c983f9 PKG_DESCR:= popular DNS server PKG_SECTION:= net PKG_DEPENDS:= libopenssl libbind +PKG_BUILDDEP+= openssl PKG_URL:= https://www.isc.org/software/bind PKG_SITES:= ftp://ftp.isc.org/isc/bind9/${PKG_VERSION}/ @@ -22,13 +22,11 @@ PKG_DESCR_5:= dnssec-keygen & dnssec-signzone utilities PKG_DESCR_6:= host utility PKG_DESCR_7:= dig utility -PKG_SECTION_2:= libs - include ${TOPDIR}/mk/package.mk $(eval $(call PKG_template,BIND_SERVER,bind-server,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) $(eval $(call PKG_template,BIND_CLIENT,bind-client,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR_1},${PKG_SECTION})) -$(eval $(call PKG_template,LIBBIND,libbind,${PKG_VERSION}-${PKG_RELEASE},,${PKG_DESCR_2},${PKG_SECTION_2})) +$(eval $(call PKG_template,LIBBIND,libbind,${PKG_VERSION}-${PKG_RELEASE},,${PKG_DESCR_2},libs)) $(eval $(call PKG_template,BIND_RNDC,bind-rndc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR_3},${PKG_SECTION})) $(eval $(call PKG_template,BIND_CHECK,bind-check,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR_4},${PKG_SECTION})) $(eval $(call PKG_template,BIND_DNSSEC,bind-dnssec,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR_5},${PKG_SECTION})) @@ -41,6 +39,7 @@ CONFIGURE_ENV+= BUILD_CC="${TARGET_CC}" \ CONFIGURE_ARGS+= --with-randomdev=/dev/urandom \ --disable-threads \ --with-openssl=${STAGING_DIR}/usr/ \ + --enable-epoll \ --with-libtool BUILD_STYLE= auto INSTALL_STYLE= auto @@ -63,15 +62,20 @@ post-install: # rndc ${INSTALL_DIR} ${IDIR_BIND_RNDC}/usr/sbin ${INSTALL_BIN} ${WRKINST}/usr/sbin/rndc ${IDIR_BIND_RNDC}/usr/sbin/ - ${INSTALL_BIN} ${WRKINST}/usr/sbin/rndc-confgen ${IDIR_BIND_RNDC}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/rndc-confgen \ + ${IDIR_BIND_RNDC}/usr/sbin/ # bind check ${INSTALL_DIR} ${IDIR_BIND_CHECK}/usr/sbin - ${INSTALL_BIN} ${WRKINST}/usr/sbin/named-checkconf ${IDIR_BIND_CHECK}/usr/sbin/ - ${INSTALL_BIN} ${WRKINST}/usr/sbin/named-checkzone ${IDIR_BIND_CHECK}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/named-checkconf \ + ${IDIR_BIND_CHECK}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/named-checkzone \ + ${IDIR_BIND_CHECK}/usr/sbin/ # dnsec tools ${INSTALL_DIR} ${IDIR_BIND_DNSSEC}/usr/sbin - ${INSTALL_BIN} ${WRKINST}/usr/sbin/dnssec-keygen ${IDIR_BIND_DNSSEC}/usr/sbin/ - ${INSTALL_BIN} ${WRKINST}/usr/sbin/dnssec-signzone ${IDIR_BIND_DNSSEC}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/dnssec-keygen \ + ${IDIR_BIND_DNSSEC}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/dnssec-signzone \ + ${IDIR_BIND_DNSSEC}/usr/sbin/ # host ${INSTALL_DIR} ${IDIR_BIND_HOST}/usr/bin ${INSTALL_BIN} ${WRKINST}/usr/bin/host ${IDIR_BIND_HOST}/usr/bin/ diff --git a/package/bind/patches/patch-lib_isc_unix_ifiter_ioctl_c b/package/bind/patches/patch-lib_isc_unix_ifiter_ioctl_c deleted file mode 100644 index adb2aa906..000000000 --- a/package/bind/patches/patch-lib_isc_unix_ifiter_ioctl_c +++ /dev/null @@ -1,14 +0,0 @@ -$Id: update-patches 24 2008-08-31 14:56:13Z wbx $ ---- bind-9.4.1.orig/lib/isc/unix/ifiter_ioctl.c 2006-02-04 00:51:38.000000000 +0100 -+++ bind-9.4.1/lib/isc/unix/ifiter_ioctl.c 2008-10-08 14:56:12.000000000 +0200 -@@ -479,8 +479,8 @@ linux_if_inet6_current(isc_interfaceiter - for (i = 0; i < 16; i++) { - unsigned char byte; - static const char hex[] = "0123456789abcdef"; -- byte = ((index(hex, address[i * 2]) - hex) << 4) | -- (index(hex, address[i * 2 + 1]) - hex); -+ byte = ((strchr(hex, address[i * 2]) - hex) << 4) | -+ (strchr(hex, address[i * 2 + 1]) - hex); - addr6.s6_addr[i] = byte; - } - iter->current.af = AF_INET6; diff --git a/package/dhcp-forwarder/files/dhcp-forwarder.postinst b/package/dhcp-forwarder/files/dhcp-forwarder.postinst index 9ba16f5b0..c08fed4f3 100644 --- a/package/dhcp-forwarder/files/dhcp-forwarder.postinst +++ b/package/dhcp-forwarder/files/dhcp-forwarder.postinst @@ -1,3 +1,6 @@ #!/bin/sh . $IPKG_INSTROOT/etc/functions.sh +gid=$(get_next_gid) +add_group dhcp-fwd $gid +add_user dhcp-fwd $(get_next_uid) $gid /tmp add_rcconf dhcp_fwd dhcp_fwd NO diff --git a/package/dhcp/Makefile b/package/dhcp/Makefile index f7b590cb0..d8ec43a10 100644 --- a/package/dhcp/Makefile +++ b/package/dhcp/Makefile @@ -4,9 +4,9 @@ include ${TOPDIR}/rules.mk PKG_NAME:= dhcp -PKG_VERSION:= 4.1.0p1 +PKG_VERSION:= 4.1.1 PKG_RELEASE:= 1 -PKG_MD5SUM:= 325ff8338c5a21f89d5304ac13ffebdf +PKG_MD5SUM:= 38a74c89d8913b9b5f33737047623c18 PKG_DESCR:= ISC DHCP server PKG_SECTION:= net PKG_URL:= https://www.isc.org/software/dhcp @@ -19,7 +19,7 @@ include ${TOPDIR}/mk/package.mk $(eval $(call PKG_template,DHCP_SERVER,dhcp-server,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) $(eval $(call PKG_template,DHCP_RELAY,dhcp-relay,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR_RELAY},${PKG_SECTION})) -TCFLAGS+= -D_GNU_SOURCE +#TCFLAGS+= -D_GNU_SOURCE CONFIGURE_STYLE:= gnu CONFIGURE_ENV+= ac_cv_file__dev_random=yes BUILD_STYLE:= auto @@ -27,8 +27,10 @@ INSTALL_STYLE:= auto post-install: ${INSTALL_DIR} ${IDIR_DHCP_RELAY}/usr/sbin - ${INSTALL_BIN} ${WRKINST}/usr/sbin/dhcrelay ${IDIR_DHCP_RELAY}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/dhcrelay \ + ${IDIR_DHCP_RELAY}/usr/sbin/ ${INSTALL_DIR} ${IDIR_DHCP_SERVER}/usr/sbin - ${INSTALL_BIN} ${WRKINST}/usr/sbin/dhcpd ${IDIR_DHCP_SERVER}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/dhcpd \ + ${IDIR_DHCP_SERVER}/usr/sbin/ include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/gettext/Makefile b/package/gettext/Makefile index 248eea1ea..0a06b3f32 100644 --- a/package/gettext/Makefile +++ b/package/gettext/Makefile @@ -6,11 +6,11 @@ include ${TOPDIR}/rules.mk PKG_NAME= gettext PKG_VERSION= 0.16.1 PKG_RELEASE= 1 -PKG_BUILDDEP+= libiconv libpthread PKG_MD5SUM= 3d9ad24301c6d6b17ec30704a13fe127 PKG_DESCR:= internationalisation library PKG_SECTION:= libs PKG_DEPENDS:= libiconv libpthread +PKG_BUILDDEP+= libiconv libpthread PKG_URL:= http://www.gnu.org/software/gettext/ PKG_SITES:= ${MASTER_SITE_GNU:=gettext/} ifeq ($(ADK_STATIC),y) @@ -42,6 +42,6 @@ INSTALL_STYLE:= auto post-install: ${INSTALL_DIR} ${IDIR_GETTEXT}/usr/lib - ${CP} ${WRKINST}/usr/lib/*.so.* ${IDIR_GETTEXT}/usr/lib + ${CP} ${WRKINST}/usr/lib/*.so* ${IDIR_GETTEXT}/usr/lib include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/gpg/Makefile b/package/gnupg/Makefile index 6ce049855..0a14439f5 100644 --- a/package/gpg/Makefile +++ b/package/gnupg/Makefile @@ -4,19 +4,19 @@ include ${TOPDIR}/rules.mk PKG_NAME:= gnupg -PKG_VERSION:= 1.4.9 +PKG_VERSION:= 1.4.10 PKG_RELEASE:= 1 -PKG_MD5SUM:= 3537dedea45cc09e8d88d1ef4f774246 +PKG_MD5SUM:= 991faf66d3352ac1452acc393c430b23 PKG_DESCR:= Gnu Privacy Guard PKG_SECTION:= text -PKG_DEPENDS:= libreadline -PKG_URL:= http://www.gnu.org -PKG_SITES:= ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/gnupg/ \ - ftp://ftp.gnupg.org/gcrypt/gnupg/ +PKG_DEPENDS:= libreadline libiconv +PKG_BUILDDEP+= readline libiconv +PKG_URL:= http://www.gnupg.org +PKG_SITES:= ftp://ftp.gnupg.org/gcrypt/gnupg/ include ${TOPDIR}/mk/package.mk -$(eval $(call PKG_template,GPG,gpg,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +$(eval $(call PKG_template,GNUPG,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) CONFIGURE_STYLE:= gnu CONFIGURE_ENV+= ac_cv_c_bigendian=no \ @@ -37,9 +37,9 @@ CONFIGURE_ARGS+= --disable-asm \ BUILD_STYLE:= auto do-install: - ${INSTALL_DIR} ${IDIR_GPG}/usr/bin/ - ${INSTALL_BIN} ${WRKBUILD}/g10/gpg ${IDIR_GPG}/usr/bin/ + ${INSTALL_DIR} ${IDIR_GNUPG}/usr/bin/ + ${INSTALL_BIN} ${WRKBUILD}/g10/gpg ${IDIR_GNUPG}/usr/bin/ # we need root privileges for secure memory (locked pages) - chmod u+s ${IDIR_GPG}/usr/bin/gpg + chmod u+s ${IDIR_GNUPG}/usr/bin/gpg include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/gpg/patches/patch-mpi_longlong_h b/package/gnupg/patches/patch-mpi_longlong_h index 85fc65552..85fc65552 100644 --- a/package/gpg/patches/patch-mpi_longlong_h +++ b/package/gnupg/patches/patch-mpi_longlong_h diff --git a/package/gnutls/Makefile b/package/gnutls/Makefile index 0d9a58a14..603e67cc9 100644 --- a/package/gnutls/Makefile +++ b/package/gnutls/Makefile @@ -16,10 +16,13 @@ PKG_SITES:= ${MASTER_SITE_GNU:=gnutls/} DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2 +PKG_DESCR_GNUTLS_UTILS:= GNU TLS utilities +PKG_DEPENDS_GNUTLS_UTILS:= libgnutls libgnutls-extra + include ${TOPDIR}/mk/package.mk $(eval $(call PKG_template,LIBGNUTLS,libgnutls,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -$(eval $(call PKG_template,GNUTLS_UTILS,gnutls-utils,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +$(eval $(call PKG_template,GNUTLS_UTILS,gnutls-utils,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS_GNUTLS_UTILS},${PKG_DESCR_GNUTLS_UTILS},${PKG_SECTION})) $(eval $(call PKG_template,LIBGNUTLS_EXTRA,libgnutls-extra,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) $(eval $(call PKG_template,LIBGNUTLS_OPENSSL,libgnutls-openssl,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) @@ -33,11 +36,13 @@ INSTALL_STYLE:= auto post-install: ${INSTALL_DIR} ${IDIR_LIBGNUTLS}/usr/lib - ${CP} ${WRKINST}/usr/lib/libgnutls.so.* ${IDIR_LIBGNUTLS}/usr/lib + ${CP} ${WRKINST}/usr/lib/libgnutls.so* ${IDIR_LIBGNUTLS}/usr/lib ${INSTALL_DIR} ${IDIR_LIBGNUTLS_EXTRA}/usr/lib - ${CP} ${WRKINST}/usr/lib/libgnutls-extra.so.* ${IDIR_LIBGNUTLS_EXTRA}/usr/lib + ${CP} ${WRKINST}/usr/lib/libgnutls-extra.so* \ + ${IDIR_LIBGNUTLS_EXTRA}/usr/lib ${INSTALL_DIR} ${IDIR_LIBGNUTLS_OPENSSL}/usr/lib - ${CP} ${WRKINST}/usr/lib/libgnutls-openssl.so.* ${IDIR_LIBGNUTLS_OPENSSL}/usr/lib + ${CP} ${WRKINST}/usr/lib/libgnutls-openssl.so* \ + ${IDIR_LIBGNUTLS_OPENSSL}/usr/lib ${INSTALL_DIR} ${IDIR_GNUTLS_UTILS}/usr/bin ${CP} ${WRKINST}/usr/bin/{{cert,srp,psk}tool,gnutls-{cli,serv}} \ ${IDIR_GNUTLS_UTILS}/usr/bin diff --git a/package/heimdal/Makefile b/package/heimdal/Makefile index f9228dae1..b7ac0e376 100644 --- a/package/heimdal/Makefile +++ b/package/heimdal/Makefile @@ -9,7 +9,7 @@ PKG_RELEASE:= 1 PKG_MD5SUM:= 6e5028077e2a6b101a4a72801ba71b9e PKG_DESCR:= Kerberos 5 server PKG_SECTION:= net -PKG_DEPENDS:= heimdal-libs heimdal-client-libs libncurses libcom-err +PKG_DEPENDS:= libheimdal libheimdal-client libncurses libcom-err PKG_BUILDDEP+= openssl ncurses e2fsprogs ifeq (${ADK_COMPILE_HEIMDAL_WITH_DB_BDB},y) PKG_BUILDDEP+= libdb @@ -40,8 +40,8 @@ PKG_DEPENDS+= libopenldap endif $(eval $(call PKG_template,HEIMDAL_SERVER,heimdal-server,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -$(eval $(call PKG_template,HEIMDAL_LIBS,heimdal-libs,$(PKG_VERSION)-${PKG_RELEASE},,${PKG_DESCR_1},${PKG_SECTION_1})) -$(eval $(call PKG_template,HEIMDAL_CLIENT_LIBS,heimdal-client-libs,$(PKG_VERSION)-${PKG_RELEASE},,${PKG_DESCR_2},${PKG_SECTION_2})) +$(eval $(call PKG_template,LIBHEIMDAL,libheimdal,$(PKG_VERSION)-${PKG_RELEASE},,${PKG_DESCR_1},${PKG_SECTION_1})) +$(eval $(call PKG_template,LIBHEIMDAL_CLIENT,libheimdal-client,$(PKG_VERSION)-${PKG_RELEASE},,${PKG_DESCR_2},${PKG_SECTION_2})) CONFIGURE_OPTS:= --with-hdbdir=/etc/heimdal \ --disable-otp \ @@ -107,34 +107,53 @@ endif ${INSTALL_DIR} ${IDIR_HEIMDAL_SERVER}/etc/heimdal ${INSTALL_DIR} ${IDIR_HEIMDAL_SERVER}/usr/sbin ${INSTALL_DIR} ${IDIR_HEIMDAL_SERVER}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libkdc.so* ${IDIR_HEIMDAL_SERVER}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libkadm5srv.so* ${IDIR_HEIMDAL_SERVER}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libhdb.so* ${IDIR_HEIMDAL_SERVER}/usr/lib/heimdal - ${INSTALL_DATA} ./files/krb5.conf ${IDIR_HEIMDAL_SERVER}/etc/heimdal - ${INSTALL_DATA} ./files/kdc.conf ${IDIR_HEIMDAL_SERVER}/etc/heimdal - ${INSTALL_DATA} ./files/kadmind.acl ${IDIR_HEIMDAL_SERVER}/etc/heimdal - ${INSTALL_BIN} ${WRKINST}/usr/sbin/kdc ${IDIR_HEIMDAL_SERVER}/usr/sbin/ - ${INSTALL_BIN} ${WRKINST}/usr/sbin/kadmind ${IDIR_HEIMDAL_SERVER}/usr/sbin/ - ${INSTALL_BIN} ${WRKINST}/usr/sbin/kpasswdd ${IDIR_HEIMDAL_SERVER}/usr/sbin/ - ${INSTALL_BIN} ${WRKINST}/usr/sbin/kstash ${IDIR_HEIMDAL_SERVER}/usr/sbin/ - ${INSTALL_BIN} ${WRKINST}/usr/sbin/ktutil ${IDIR_HEIMDAL_SERVER}/usr/sbin/ - ${INSTALL_BIN} ${WRKINST}/usr/sbin/kadmin ${IDIR_HEIMDAL_SERVER}/usr/sbin/ + ${CP} ${WRKINST}/usr/lib/heimdal/libkdc.so* \ + ${IDIR_HEIMDAL_SERVER}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libkadm5srv.so* \ + ${IDIR_HEIMDAL_SERVER}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libhdb.so* \ + ${IDIR_HEIMDAL_SERVER}/usr/lib/heimdal + ${INSTALL_DATA} ./files/{krb5.conf,kdc.conf,kadmind.acl} \ + ${IDIR_HEIMDAL_SERVER}/etc/heimdal + ${INSTALL_BIN} ${WRKINST}/usr/sbin/kdc \ + ${IDIR_HEIMDAL_SERVER}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/kadmind \ + ${IDIR_HEIMDAL_SERVER}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/kpasswdd \ + ${IDIR_HEIMDAL_SERVER}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/kstash \ + ${IDIR_HEIMDAL_SERVER}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/ktutil \ + ${IDIR_HEIMDAL_SERVER}/usr/sbin/ + ${INSTALL_BIN} ${WRKINST}/usr/sbin/kadmin \ + ${IDIR_HEIMDAL_SERVER}/usr/sbin/ # heimdal libs - ${INSTALL_DIR} ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal + ${INSTALL_DIR} ${IDIR_LIBHEIMDAL}/usr/lib/heimdal ifeq ($(ADK_COMPILE_HEIMDAL_WITH_PKINIT),y) - ${CP} ${WRKINST}/usr/lib/heimdal/libhx509.so* ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libhx509.so* \ + ${IDIR_LIBHEIMDAL}/usr/lib/heimdal endif - ${CP} ${WRKINST}/usr/lib/heimdal/libheimntlm.so* ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libwind.so* ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libgssapi.so* ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libkafs.so* ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libkrb5.so* ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libasn1.so* ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libroken.so* ${IDIR_HEIMDAL_LIBS}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libheimntlm.so* \ + ${IDIR_LIBHEIMDAL}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libwind.so* \ + ${IDIR_LIBHEIMDAL}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libgssapi.so* \ + ${IDIR_LIBHEIMDAL}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libkafs.so* \ + ${IDIR_LIBHEIMDAL}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libkrb5.so* \ + ${IDIR_LIBHEIMDAL}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libasn1.so* \ + ${IDIR_LIBHEIMDAL}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libroken.so* \ + ${IDIR_LIBHEIMDAL}/usr/lib/heimdal # heimdal client libs - ${INSTALL_DIR} ${IDIR_HEIMDAL_CLIENT_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libeditline.so* ${IDIR_HEIMDAL_CLIENT_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libsl.so* ${IDIR_HEIMDAL_CLIENT_LIBS}/usr/lib/heimdal - ${CP} ${WRKINST}/usr/lib/heimdal/libkadm5clnt.so* ${IDIR_HEIMDAL_CLIENT_LIBS}/usr/lib/heimdal + ${INSTALL_DIR} ${IDIR_LIBHEIMDAL_CLIENT}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libeditline.so* \ + ${IDIR_LIBHEIMDAL_CLIENT}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libsl.so* \ + ${IDIR_LIBHEIMDAL_CLIENT}/usr/lib/heimdal + ${CP} ${WRKINST}/usr/lib/heimdal/libkadm5clnt.so* \ + ${IDIR_LIBHEIMDAL_CLIENT}/usr/lib/heimdal include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/krb5/Makefile b/package/krb5/Makefile index 089197773..6f1c72a18 100644 --- a/package/krb5/Makefile +++ b/package/krb5/Makefile @@ -5,11 +5,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:= krb5 PKG_VERSION:= 1.7 -PKG_RELEASE:= 2 +PKG_RELEASE:= 3 PKG_MD5SUM:= 9f7b3402b4731a7fa543db193bf1b564 PKG_DESCR:= MIT kerberos server PKG_SECTION:= net -PKG_DEPENDS:= krb5-libs libncurses libss libcom-err +PKG_DEPENDS:= libkrb5 libncurses libss libcom-err PKG_BUILDDEP+= ncurses e2fsprogs PKG_URL:= http://web.mit.edu/kerberos PKG_SITES:= http://web.mit.edu/kerberos/dist/krb5/1.7/ @@ -23,7 +23,7 @@ WRKSRC= ${WRKDIST}/src include $(TOPDIR)/mk/package.mk $(eval $(call PKG_template,KRB5_SERVER,krb5-server,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -$(eval $(call PKG_template,KRB5_LIBS,krb5-libs,$(PKG_VERSION)-${PKG_RELEASE},,${PKG_DESCR_LIB},${PKG_SECTION_LIB})) +$(eval $(call PKG_template,LIBKRB5,libkrb5,$(PKG_VERSION)-${PKG_RELEASE},,${PKG_DESCR_LIB},${PKG_SECTION_LIB})) TCFLAGS+= -I${STAGING_DIR}/usr/include/et CONFIGURE_STYLE:= gnu @@ -59,11 +59,11 @@ post-install: ${CP} ${WRKINST}/usr/lib/lib{gssrpc,kadm5clnt,kadm5srv,kdb5}.so* \ ${IDIR_KRB5_SERVER}/usr/lib # krb5-libs - ${INSTALL_DIR} ${IDIR_KRB5_LIBS}/etc - ${INSTALL_DIR} ${IDIR_KRB5_LIBS}/usr/lib - ${INSTALL_DATA} ./files/krb5.conf ${IDIR_KRB5_LIBS}/etc + ${INSTALL_DIR} ${IDIR_LIBKRB5}/etc + ${INSTALL_DIR} ${IDIR_LIBKRB5}/usr/lib + ${INSTALL_DATA} ./files/krb5.conf ${IDIR_LIBKRB5}/etc ${CP} ${WRKINST}/usr/lib/lib{gssapi_krb5,k5crypto,krb5,krb5support}.so* \ - ${IDIR_KRB5_LIBS}/usr/lib - echo '/usr/lib/libgssapi_krb5.so mechglue_internal_krb5_init' > ${IDIR_KRB5_LIBS}/etc/gssapi_mech.conf + ${IDIR_LIBKRB5}/usr/lib + echo '/usr/lib/libgssapi_krb5.so mechglue_internal_krb5_init' > ${IDIR_LIBKRB5}/etc/gssapi_mech.conf include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/libgcrypt/Makefile b/package/libgcrypt/Makefile index 49b89f430..e9794bd1d 100644 --- a/package/libgcrypt/Makefile +++ b/package/libgcrypt/Makefile @@ -4,28 +4,29 @@ include ${TOPDIR}/rules.mk PKG_NAME:= libgcrypt -PKG_VERSION:= 1.4.4 +PKG_VERSION:= 1.4.5 PKG_RELEASE:= 1 -PKG_BUILDDEP+= libgpg-error -PKG_MD5SUM:= 9e6dcf7fef1ae96b57207a1de91fdaa4 +PKG_MD5SUM:= 325294c12e7b99d82dee3a8bf8c2c28e PKG_DESCR:= GNU crypto library PKG_SECTION:= libs PKG_DEPENDS:= libgpg-error +PKG_BUILDDEP+= libgpg-error PKG_URL:= http://directory.fsf.org/project/libgcrypt PKG_SITES:= ftp://ftp.gnupg.org/gcrypt/libgcrypt/ include ${TOPDIR}/mk/package.mk -$(eval $(call PKG_template,LIBGCRYPT,libgcrypt,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +$(eval $(call PKG_template,LIBGCRYPT,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -CONFIGURE_STYLE= gnu +CONFIGURE_STYLE:= gnu CONFIGURE_ARGS+= --disable-asm \ --with-gpg-error-prefix="${STAGING_DIR}/usr" -BUILD_STYLE= auto -INSTALL_STYLE= auto confprog +BUILD_STYLE:= auto +INSTALL_STYLE:= auto post-install: ${INSTALL_DIR} ${IDIR_LIBGCRYPT}/usr/lib - ${CP} ${WRKINST}/usr/lib/libgcrypt.so.* ${IDIR_LIBGCRYPT}/usr/lib/ + ${CP} ${WRKINST}/usr/lib/libgcrypt.so* \ + ${IDIR_LIBGCRYPT}/usr/lib/ include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/libgpg-error/Makefile b/package/libgpg-error/Makefile index ec554b0da..415196934 100644 --- a/package/libgpg-error/Makefile +++ b/package/libgpg-error/Makefile @@ -4,29 +4,27 @@ include ${TOPDIR}/rules.mk PKG_NAME:= libgpg-error -PKG_VERSION:= 1.5 +PKG_VERSION:= 1.7 PKG_RELEASE:= 1 -PKG_MD5SUM:= 8599b96c911b1df1be24a6ff4ec3c364 +PKG_MD5SUM:= 62c0d09d1e76c5b6da8fff92314c4665 PKG_DESCR:= an helper library for common error codes and descriptions PKG_SECTION:= libs PKG_URL:= http://www.gnupg.org -PKG_SITES:= ftp://ftp.gnupg.org/gcrypt/libgpg-error/ \ - http://mirrors.rootmode.com/ftp.gnupg.org/libgpg-error/ \ - http://gulus.usherbrooke.ca/pub/appl/GnuPG/libgpg-error/ \ - http://gnupg.unixmexico.org/ftp/libgpg-error/ +PKG_SITES:= ftp://ftp.gnupg.org/gcrypt/libgpg-error/ DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2 include ${TOPDIR}/mk/package.mk -$(eval $(call PKG_template,LIBGPG_ERROR,libgpg-error,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +$(eval $(call PKG_template,LIBGPG_ERROR,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -CONFIGURE_STYLE= gnu -BUILD_STYLE= auto -INSTALL_STYLE= auto confprog +CONFIGURE_STYLE:= gnu +BUILD_STYLE:= auto +INSTALL_STYLE:= auto post-install: ${INSTALL_DIR} ${IDIR_LIBGPG_ERROR}/usr/lib - ${CP} ${WRKINST}/usr/lib/libgpg-error.so.* ${IDIR_LIBGPG_ERROR}/usr/lib/ + ${CP} ${WRKINST}/usr/lib/libgpg-error.so* \ + ${IDIR_LIBGPG_ERROR}/usr/lib/ include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/libtasn1/Makefile b/package/libtasn1/Makefile index abccb263a..e6cc3afa5 100644 --- a/package/libtasn1/Makefile +++ b/package/libtasn1/Makefile @@ -4,28 +4,24 @@ include ${TOPDIR}/rules.mk PKG_NAME:= libtasn1 -PKG_VERSION:= 1.1 +PKG_VERSION:= 2.2 PKG_RELEASE:= 1 -PKG_MD5SUM:= 93b43cc5013bda4d8bf64508f1566c54 +PKG_MD5SUM:= 14cc361500d2e768a8a6ec538ce3fecb PKG_DESCR:= an ASN.1 and DER structures manipulation library PKG_SECTION:= libs PKG_URL:= http://www.gnupg.org -PKG_SITES:= ftp://ftp.gnutls.org/pub/gnutls/libtasn1/ \ - ftp://ftp.gnupg.org/gcrypt/alpha/gnutls/libtasn1/ \ - http://www.mirrors.wiretapped.net/security/network-securitygnutls/libtasn1/ \ - ftp://ftp.mirrors.wiretapped.net/pub/security/network-security/gnutls/libtasn1/ \ - http://josefsson.org/gnutls/releases/libtasn1/ +PKG_SITES:= ftp://ftp.gnutls.org/pub/gnutls/libtasn1/ include ${TOPDIR}/mk/package.mk $(eval $(call PKG_template,LIBTASN1,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -CONFIGURE_STYLE= gnu -BUILD_STYLE= auto -INSTALL_STYLE= auto +CONFIGURE_STYLE:= gnu +BUILD_STYLE:= auto +INSTALL_STYLE:= auto post-install: ${INSTALL_DIR} ${IDIR_LIBTASN1}/usr/lib - ${CP} ${WRKINST}/usr/lib/libtasn1.so.* ${IDIR_LIBTASN1}/usr/lib + ${CP} ${WRKINST}/usr/lib/libtasn1.so* ${IDIR_LIBTASN1}/usr/lib include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/libtasn1/patches/patch-configure b/package/libtasn1/patches/patch-configure deleted file mode 100644 index 7b8e25cd5..000000000 --- a/package/libtasn1/patches/patch-configure +++ /dev/null @@ -1,14 +0,0 @@ -$Id$ ---- libtasn1-1.1.orig/configure Fri Aug 31 15:17:55 2007 -+++ libtasn1-1.1/configure Thu Sep 6 15:24:25 2007 -@@ -23445,8 +23445,8 @@ echo "${ECHO_T}$gl_cv_next_unistd_h" >&6 - - - # For libtasn1-config. --LIBTASN1_LIBS="-L${libdir} -ltasn1 $LIBS" --LIBTASN1_CFLAGS="-I${includedir}" -+LIBTASN1_LIBS="-ltasn1 $LIBS" -+LIBTASN1_CFLAGS= - - - ac_config_commands="$ac_config_commands chmod" diff --git a/package/maradns/Makefile b/package/maradns/Makefile index dc627ffe6..45c95bc79 100644 --- a/package/maradns/Makefile +++ b/package/maradns/Makefile @@ -4,17 +4,14 @@ include ${TOPDIR}/rules.mk PKG_NAME:= maradns -PKG_VERSION:= 1.3.07.09 +PKG_VERSION:= 1.4.03 PKG_RELEASE:= 1 -PKG_BUILDDEP+= libpthread -PKG_MD5SUM:= 1d221438fb4d9317263555262b9c652c +PKG_MD5SUM:= 9e715104234cc9bf01e2afaad27eb787 PKG_DESCR:= small and secure DNS server PKG_SECTION:= net PKG_DEPENDS:= libpthread PKG_URL:= http://www.maradns.org -PKG_SITES:= http://www.maradns.org/download/1.3/${PKG_VERSION}/ - -DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2 +PKG_SITES:= http://www.maradns.org/download/1.4/${PKG_VERSION}/ include ${TOPDIR}/mk/package.mk @@ -37,8 +34,10 @@ post-install: ${INSTALL_DIR} ${IDIR_MARADNS}/etc/maradns ${INSTALL_DIR} ${IDIR_MARADNS}/usr/bin ${IDIR_MARADNS}/usr/sbin ${INSTALL_DATA} ./files/mararc ${IDIR_MARADNS}/etc/mararc - ${INSTALL_DATA} ./files/sample.{zone,ptr} ${IDIR_MARADNS}/etc/maradns/ + ${INSTALL_DATA} ./files/sample.{zone,ptr} \ + ${IDIR_MARADNS}/etc/maradns/ ${CP} ${WRKINST}/usr/bin/{askmara,getzone} ${IDIR_MARADNS}/usr/bin/ - ${CP} ${WRKINST}/usr/sbin/{maradns,zoneserver} ${IDIR_MARADNS}/usr/sbin/ + ${CP} ${WRKINST}/usr/sbin/{maradns,zoneserver} \ + ${IDIR_MARADNS}/usr/sbin/ include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/nand/Makefile b/package/nand/Makefile new file mode 100644 index 000000000..c453e6a82 --- /dev/null +++ b/package/nand/Makefile @@ -0,0 +1,39 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include ${TOPDIR}/rules.mk + +PKG_NAME:= nand +PKG_VERSION:= 1.0 +PKG_RELEASE:= 1 +PKG_DESCR:= NAND utility +PKG_SECTION:= base + +PKG_TARGET_DEPENDS:= rb532 + +WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION} +NO_DISTFILES:= 1 + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,NAND,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +PKGDFLT_NAND= y + +BUILD_STYLE:= manual +INSTALL_STYLE:= manual + +do-build: + mkdir -p ${WRKBUILD} + ${CP} ./src/* ${WRKBUILD} + ${TARGET_CC} ${TCPPFLAGS} ${TCFLAGS} -o ${WRKBUILD}/nandwrite \ + ${WRKBUILD}/nandwrite.c + ${TARGET_CC} ${TCPPFLAGS} ${TCFLAGS} -o ${WRKBUILD}/nanddump \ + ${WRKBUILD}/nanddump.c + +do-install: + ${INSTALL_DIR} ${IDIR_NAND}/sbin + ${INSTALL_BIN} ${WRKBUILD}/nandwrite ${IDIR_NAND}/sbin + ${INSTALL_BIN} ${WRKBUILD}/nanddump ${IDIR_NAND}/sbin + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/nand/src/nanddump.c b/package/nand/src/nanddump.c new file mode 100644 index 000000000..678d6847a --- /dev/null +++ b/package/nand/src/nanddump.c @@ -0,0 +1,421 @@ +/* + * nanddump.c + * + * Copyright (C) 2000 David Woodhouse (dwmw2@infradead.org) + * Steven J. Hill (sjhill@realitydiluted.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Overview: + * This utility dumps the contents of raw NAND chips or NAND + * chips contained in DoC devices. + */ + +#define _GNU_SOURCE +#include <ctype.h> +#include <errno.h> +#include <fcntl.h> +#include <stdbool.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <getopt.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> + +#include <asm/types.h> +#include <mtd/mtd-user.h> + +#define PROGRAM "nanddump" +#define VERSION "$Revision: 1.29 $" + +static struct nand_oobinfo none_oobinfo = { + .useecc = MTD_NANDECC_OFF, +}; + +static void display_help (void) +{ + printf( +"Usage: nanddump [OPTIONS] MTD-device\n" +"Dumps the contents of a nand mtd partition.\n" +"\n" +" --help Display this help and exit\n" +" --version Output version information and exit\n" +"-f file --file=file Dump to file\n" +"-i --ignoreerrors Ignore errors\n" +"-l length --length=length Length\n" +"-n --noecc Read without error correction\n" +"-o --omitoob Omit oob data\n" +"-b --omitbad Omit bad blocks from the dump\n" +"-p --prettyprint Print nice (hexdump)\n" +"-q --quiet Don't display progress and status messages\n" +"-s addr --startaddress=addr Start address\n" + ); + exit(EXIT_SUCCESS); +} + +static void display_version (void) +{ + printf(PROGRAM " " VERSION "\n" + "\n" + PROGRAM " comes with NO WARRANTY\n" + "to the extent permitted by law.\n" + "\n" + "You may redistribute copies of " PROGRAM "\n" + "under the terms of the GNU General Public Licence.\n" + "See the file `COPYING' for more information.\n"); + exit(EXIT_SUCCESS); +} + +// Option variables + +static bool ignoreerrors = false; // ignore errors +static bool pretty_print = false; // print nice in ascii +static bool noecc = false; // don't error correct +static bool omitoob = false; // omit oob data +static unsigned long start_addr; // start address +static unsigned long length; // dump length +static const char *mtddev; // mtd device name +static const char *dumpfile; // dump file name +static bool omitbad = false; +static bool quiet = false; // suppress diagnostic output + +static void process_options (int argc, char * const argv[]) +{ + int error = 0; + + for (;;) { + int option_index = 0; + static const char *short_options = "bs:f:il:opqn"; + static const struct option long_options[] = { + {"help", no_argument, 0, 0}, + {"version", no_argument, 0, 0}, + {"file", required_argument, 0, 'f'}, + {"ignoreerrors", no_argument, 0, 'i'}, + {"prettyprint", no_argument, 0, 'p'}, + {"omitoob", no_argument, 0, 'o'}, + {"omitbad", no_argument, 0, 'b'}, + {"startaddress", required_argument, 0, 's'}, + {"length", required_argument, 0, 'l'}, + {"noecc", no_argument, 0, 'n'}, + {"quiet", no_argument, 0, 'q'}, + {0, 0, 0, 0}, + }; + + int c = getopt_long(argc, argv, short_options, + long_options, &option_index); + if (c == EOF) { + break; + } + + switch (c) { + case 0: + switch (option_index) { + case 0: + display_help(); + break; + case 1: + display_version(); + break; + } + break; + case 'b': + omitbad = true; + break; + case 's': + start_addr = strtol(optarg, NULL, 0); + break; + case 'f': + if (!(dumpfile = strdup(optarg))) { + perror("stddup"); + exit(EXIT_FAILURE); + } + break; + case 'i': + ignoreerrors = true; + break; + case 'l': + length = strtol(optarg, NULL, 0); + break; + case 'o': + omitoob = true; + break; + case 'p': + pretty_print = true; + break; + case 'q': + quiet = true; + break; + case 'n': + noecc = true; + break; + case '?': + error++; + break; + } + } + + if (quiet && pretty_print) { + fprintf(stderr, "The quiet and pretty print options are mutually-\n" + "exclusive. Choose one or the other.\n"); + exit(EXIT_FAILURE); + } + + if ((argc - optind) != 1 || error) + display_help (); + + mtddev = argv[optind]; +} + +/* + * Buffers for reading data from flash + */ +static unsigned char readbuf[4096]; +static unsigned char oobbuf[128]; + +/* + * Main program + */ +int main(int argc, char * const argv[]) +{ + unsigned long ofs, end_addr = 0; + unsigned long long blockstart = 1; + int ret, i, fd, ofd, bs, badblock = 0; + struct mtd_oob_buf oob = {0, 16, oobbuf}; + mtd_info_t meminfo; + char pretty_buf[80]; + int oobinfochanged = 0 ; + struct nand_oobinfo old_oobinfo; + struct mtd_ecc_stats stat1, stat2; + bool eccstats = false; + + process_options(argc, argv); + + /* Open MTD device */ + if ((fd = open(mtddev, O_RDONLY)) == -1) { + perror(mtddev); + exit (EXIT_FAILURE); + } + + /* Fill in MTD device capability structure */ + if (ioctl(fd, MEMGETINFO, &meminfo) != 0) { + perror("MEMGETINFO"); + close(fd); + exit (EXIT_FAILURE); + } + + /* Make sure device page sizes are valid */ + if (!(meminfo.oobsize == 128 && meminfo.writesize == 4096) && + !(meminfo.oobsize == 64 && meminfo.writesize == 2048) && + !(meminfo.oobsize == 32 && meminfo.writesize == 1024) && + !(meminfo.oobsize == 16 && meminfo.writesize == 512) && + !(meminfo.oobsize == 8 && meminfo.writesize == 256)) { + fprintf(stderr, "Unknown flash (not normal NAND)\n"); + close(fd); + exit(EXIT_FAILURE); + } + /* Read the real oob length */ + oob.length = meminfo.oobsize; + + if (noecc) { + ret = ioctl(fd, MTDFILEMODE, (void *) MTD_MODE_RAW); + if (ret == 0) { + oobinfochanged = 2; + } else { + switch (errno) { + case ENOTTY: + if (ioctl (fd, MEMGETOOBSEL, &old_oobinfo) != 0) { + perror ("MEMGETOOBSEL"); + close (fd); + exit (EXIT_FAILURE); + } + if (ioctl (fd, MEMSETOOBSEL, &none_oobinfo) != 0) { + perror ("MEMSETOOBSEL"); + close (fd); + exit (EXIT_FAILURE); + } + oobinfochanged = 1; + break; + default: + perror ("MTDFILEMODE"); + close (fd); + exit (EXIT_FAILURE); + } + } + } else { + + /* check if we can read ecc stats */ + if (!ioctl(fd, ECCGETSTATS, &stat1)) { + eccstats = true; + if (!quiet) { + fprintf(stderr, "ECC failed: %d\n", stat1.failed); + fprintf(stderr, "ECC corrected: %d\n", stat1.corrected); + fprintf(stderr, "Number of bad blocks: %d\n", stat1.badblocks); + fprintf(stderr, "Number of bbt blocks: %d\n", stat1.bbtblocks); + } + } else + perror("No ECC status information available"); + } + + /* Open output file for writing. If file name is "-", write to standard + * output. */ + if (!dumpfile) { + ofd = STDOUT_FILENO; + } else if ((ofd = open(dumpfile, O_WRONLY | O_TRUNC | O_CREAT, 0644))== -1) { + perror (dumpfile); + close(fd); + exit(EXIT_FAILURE); + } + + /* Initialize start/end addresses and block size */ + if (length) + end_addr = start_addr + length; + if (!length || end_addr > meminfo.size) + end_addr = meminfo.size; + + bs = meminfo.writesize; + + /* Print informative message */ + + if (!quiet) { + fprintf(stderr, "Block size %u, page size %u, OOB size %u\n", + meminfo.erasesize, meminfo.writesize, meminfo.oobsize); + fprintf(stderr, + "Dumping data starting at 0x%08x and ending at 0x%08x...\n", + (unsigned int) start_addr, (unsigned int) end_addr); + } + /* Dump the flash contents */ + for (ofs = start_addr; ofs < end_addr ; ofs+=bs) { + + // new eraseblock , check for bad block + if (blockstart != (ofs & (~meminfo.erasesize + 1))) { + blockstart = ofs & (~meminfo.erasesize + 1); + if ((badblock = ioctl(fd, MEMGETBADBLOCK, &blockstart)) < 0) { + perror("ioctl(MEMGETBADBLOCK)"); + goto closeall; + } + } + + if (badblock) { + if (omitbad) + continue; + memset (readbuf, 0xff, bs); + } else { + /* Read page data and exit on failure */ + if (pread(fd, readbuf, bs, ofs) != bs) { + perror("pread"); + goto closeall; + } + } + + /* ECC stats available ? */ + if (eccstats) { + if (ioctl(fd, ECCGETSTATS, &stat2)) { + perror("ioctl(ECCGETSTATS)"); + goto closeall; + } + if (stat1.failed != stat2.failed) + fprintf(stderr, "ECC: %d uncorrectable bitflip(s)" + " at offset 0x%08lx\n", + stat2.failed - stat1.failed, ofs); + if (stat1.corrected != stat2.corrected) + fprintf(stderr, "ECC: %d corrected bitflip(s) at" + " offset 0x%08lx\n", + stat2.corrected - stat1.corrected, ofs); + stat1 = stat2; + } + + /* Write out page data */ + if (pretty_print) { + for (i = 0; i < bs; i += 16) { + sprintf(pretty_buf, + "0x%08x: %02x %02x %02x %02x %02x %02x %02x " + "%02x %02x %02x %02x %02x %02x %02x %02x %02x\n", + (unsigned int) (ofs + i), readbuf[i], + readbuf[i+1], readbuf[i+2], + readbuf[i+3], readbuf[i+4], + readbuf[i+5], readbuf[i+6], + readbuf[i+7], readbuf[i+8], + readbuf[i+9], readbuf[i+10], + readbuf[i+11], readbuf[i+12], + readbuf[i+13], readbuf[i+14], + readbuf[i+15]); + write(ofd, pretty_buf, 60); + } + } else + write(ofd, readbuf, bs); + + + + if (omitoob) + continue; + + if (badblock) { + memset (readbuf, 0xff, meminfo.oobsize); + } else { + /* Read OOB data and exit on failure */ + oob.start = ofs; + if (ioctl(fd, MEMREADOOB, &oob) != 0) { + perror("ioctl(MEMREADOOB)"); + goto closeall; + } + } + + /* Write out OOB data */ + if (pretty_print) { + if (meminfo.oobsize < 16) { + sprintf(pretty_buf, " OOB Data: %02x %02x %02x %02x %02x %02x " + "%02x %02x\n", + oobbuf[0], oobbuf[1], oobbuf[2], + oobbuf[3], oobbuf[4], oobbuf[5], + oobbuf[6], oobbuf[7]); + write(ofd, pretty_buf, 48); + continue; + } + + for (i = 0; i < meminfo.oobsize; i += 16) { + sprintf(pretty_buf, " OOB Data: %02x %02x %02x %02x %02x %02x " + "%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", + oobbuf[i], oobbuf[i+1], oobbuf[i+2], + oobbuf[i+3], oobbuf[i+4], oobbuf[i+5], + oobbuf[i+6], oobbuf[i+7], oobbuf[i+8], + oobbuf[i+9], oobbuf[i+10], oobbuf[i+11], + oobbuf[i+12], oobbuf[i+13], oobbuf[i+14], + oobbuf[i+15]); + write(ofd, pretty_buf, 60); + } + } else + write(ofd, oobbuf, meminfo.oobsize); + } + + /* reset oobinfo */ + if (oobinfochanged == 1) { + if (ioctl (fd, MEMSETOOBSEL, &old_oobinfo) != 0) { + perror ("MEMSETOOBSEL"); + close(fd); + close(ofd); + return EXIT_FAILURE; + } + } + /* Close the output file and MTD device */ + close(fd); + close(ofd); + + /* Exit happy */ + return EXIT_SUCCESS; + +closeall: + /* The new mode change is per file descriptor ! */ + if (oobinfochanged == 1) { + if (ioctl (fd, MEMSETOOBSEL, &old_oobinfo) != 0) { + perror ("MEMSETOOBSEL"); + } + } + close(fd); + close(ofd); + exit(EXIT_FAILURE); +} diff --git a/package/nand/src/nandwrite.c b/package/nand/src/nandwrite.c new file mode 100644 index 000000000..0b2a9ee8b --- /dev/null +++ b/package/nand/src/nandwrite.c @@ -0,0 +1,647 @@ +/* + * nandwrite.c + * + * Copyright (C) 2000 Steven J. Hill (sjhill@realitydiluted.com) + * 2003 Thomas Gleixner (tglx@linutronix.de) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Overview: + * This utility writes a binary image directly to a NAND flash + * chip or NAND chips contained in DoC devices. This is the + * "inverse operation" of nanddump. + * + * tglx: Major rewrite to handle bad blocks, write data with or without ECC + * write oob data only on request + * + * Bug/ToDo: + */ + +#define _GNU_SOURCE +#include <ctype.h> +#include <errno.h> +#include <fcntl.h> +#include <stdbool.h> +#include <stddef.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> +#include <sys/stat.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <getopt.h> + +#include <asm/types.h> +#include "mtd/mtd-user.h" + +#define PROGRAM "nandwrite" +#define VERSION "$Revision: 1.32 $" + +#define MAX_PAGE_SIZE 4096 +#define MAX_OOB_SIZE 128 + +/* + * Buffer array used for writing data + */ +static unsigned char writebuf[MAX_PAGE_SIZE]; +static unsigned char oobbuf[MAX_OOB_SIZE]; +static unsigned char oobreadbuf[MAX_OOB_SIZE]; + +// oob layouts to pass into the kernel as default +static struct nand_oobinfo none_oobinfo = { + .useecc = MTD_NANDECC_OFF, +}; + +static struct nand_oobinfo jffs2_oobinfo = { + .useecc = MTD_NANDECC_PLACE, + .eccbytes = 6, + .eccpos = { 0, 1, 2, 3, 6, 7 } +}; + +static struct nand_oobinfo yaffs_oobinfo = { + .useecc = MTD_NANDECC_PLACE, + .eccbytes = 6, + .eccpos = { 8, 9, 10, 13, 14, 15} +}; + +static struct nand_oobinfo autoplace_oobinfo = { + .useecc = MTD_NANDECC_AUTOPLACE +}; + +static void display_help (void) +{ + printf( +"Usage: nandwrite [OPTION] MTD_DEVICE [INPUTFILE|-]\n" +"Writes to the specified MTD device.\n" +"\n" +" -a, --autoplace Use auto oob layout\n" +" -j, --jffs2 Force jffs2 oob layout (legacy support)\n" +" -y, --yaffs Force yaffs oob layout (legacy support)\n" +" -f, --forcelegacy Force legacy support on autoplacement-enabled mtd\n" +" device\n" +" -m, --markbad Mark blocks bad if write fails\n" +" -n, --noecc Write without ecc\n" +" -o, --oob Image contains oob data\n" +" -s addr, --start=addr Set start address (default is 0)\n" +" -p, --pad Pad to page size\n" +" -b, --blockalign=1|2|4 Set multiple of eraseblocks to align to\n" +" -q, --quiet Don't display progress messages\n" +" --help Display this help and exit\n" +" --version Output version information and exit\n" + ); + exit (EXIT_SUCCESS); +} + +static void display_version (void) +{ + printf(PROGRAM " " VERSION "\n" + "\n" + "Copyright (C) 2003 Thomas Gleixner \n" + "\n" + PROGRAM " comes with NO WARRANTY\n" + "to the extent permitted by law.\n" + "\n" + "You may redistribute copies of " PROGRAM "\n" + "under the terms of the GNU General Public Licence.\n" + "See the file `COPYING' for more information.\n"); + exit (EXIT_SUCCESS); +} + +static const char *standard_input = "-"; +static const char *mtd_device, *img; +static int mtdoffset = 0; +static bool quiet = false; +static bool writeoob = false; +static bool autoplace = false; +static bool markbad = false; +static bool forcejffs2 = false; +static bool forceyaffs = false; +static bool forcelegacy = false; +static bool noecc = false; +static bool pad = false; +static int blockalign = 1; /*default to using 16K block size */ + +static void process_options (int argc, char * const argv[]) +{ + int error = 0; + + for (;;) { + int option_index = 0; + static const char *short_options = "ab:fjmnopqs:y"; + static const struct option long_options[] = { + {"help", no_argument, 0, 0}, + {"version", no_argument, 0, 0}, + {"autoplace", no_argument, 0, 'a'}, + {"blockalign", required_argument, 0, 'b'}, + {"forcelegacy", no_argument, 0, 'f'}, + {"jffs2", no_argument, 0, 'j'}, + {"markbad", no_argument, 0, 'm'}, + {"noecc", no_argument, 0, 'n'}, + {"oob", no_argument, 0, 'o'}, + {"pad", no_argument, 0, 'p'}, + {"quiet", no_argument, 0, 'q'}, + {"start", required_argument, 0, 's'}, + {"yaffs", no_argument, 0, 'y'}, + {0, 0, 0, 0}, + }; + + int c = getopt_long(argc, argv, short_options, + long_options, &option_index); + if (c == EOF) { + break; + } + + switch (c) { + case 0: + switch (option_index) { + case 0: + display_help(); + break; + case 1: + display_version(); + break; + } + break; + case 'q': + quiet = true; + break; + case 'a': + autoplace = true; + break; + case 'j': + forcejffs2 = true; + break; + case 'y': + forceyaffs = true; + break; + case 'f': + forcelegacy = true; + break; + case 'n': + noecc = true; + break; + case 'm': + markbad = true; + break; + case 'o': + writeoob = true; + break; + case 'p': + pad = true; + break; + case 's': + mtdoffset = strtol (optarg, NULL, 0); + break; + case 'b': + blockalign = atoi (optarg); + break; + case '?': + error++; + break; + } + } + + if (mtdoffset < 0) { + fprintf(stderr, "Can't specify a negative device offset `%d'\n", + mtdoffset); + exit (EXIT_FAILURE); + } + + argc -= optind; + argv += optind; + + /* + * There must be at least the MTD device node positional + * argument remaining and, optionally, the input file. + */ + + if (argc < 1 || argc > 2 || error) + display_help (); + + mtd_device = argv[0]; + + /* + * Standard input may be specified either explictly as "-" or + * implicity by simply omitting the second of the two + * positional arguments. + */ + + img = ((argc == 2) ? argv[1] : standard_input); +} + +static void erase_buffer(void *buffer, size_t size) +{ + const uint8_t kEraseByte = 0xff; + + if (buffer != NULL && size > 0) { + memset(buffer, kEraseByte, size); + } +} + +/* + * Main program + */ +int main(int argc, char * const argv[]) +{ + int cnt = 0; + int fd = -1; + int ifd = -1; + int imglen = 0, pagelen; + bool baderaseblock = false; + int blockstart = -1; + struct mtd_info_user meminfo; + struct mtd_oob_buf oob; + loff_t offs; + int ret, readlen; + int oobinfochanged = 0; + struct nand_oobinfo old_oobinfo; + int readcnt = 0; + + process_options(argc, argv); + + erase_buffer(oobbuf, sizeof(oobbuf)); + + if (pad && writeoob) { + fprintf(stderr, "Can't pad when oob data is present.\n"); + exit (EXIT_FAILURE); + } + + /* Open the device */ + if ((fd = open(mtd_device, O_RDWR)) == -1) { + perror(mtd_device); + exit (EXIT_FAILURE); + } + + /* Fill in MTD device capability structure */ + if (ioctl(fd, MEMGETINFO, &meminfo) != 0) { + perror("MEMGETINFO"); + close(fd); + exit (EXIT_FAILURE); + } + + /* Set erasesize to specified number of blocks - to match jffs2 + * (virtual) block size */ + meminfo.erasesize *= blockalign; + + /* Make sure device page sizes are valid */ + if (!(meminfo.oobsize == 16 && meminfo.writesize == 512) && + !(meminfo.oobsize == 8 && meminfo.writesize == 256) && + !(meminfo.oobsize == 64 && meminfo.writesize == 2048) && + !(meminfo.oobsize == 128 && meminfo.writesize == 4096)) { + fprintf(stderr, "Unknown flash (not normal NAND)\n"); + close(fd); + exit (EXIT_FAILURE); + } + + if (autoplace) { + /* Read the current oob info */ + if (ioctl (fd, MEMGETOOBSEL, &old_oobinfo) != 0) { + perror ("MEMGETOOBSEL"); + close (fd); + exit (EXIT_FAILURE); + } + + // autoplace ECC ? + if (autoplace && (old_oobinfo.useecc != MTD_NANDECC_AUTOPLACE)) { + + if (ioctl (fd, MEMSETOOBSEL, &autoplace_oobinfo) != 0) { + perror ("MEMSETOOBSEL"); + close (fd); + exit (EXIT_FAILURE); + } + oobinfochanged = 1; + } + } + + if (noecc) { + ret = ioctl(fd, MTDFILEMODE, (void *) MTD_MODE_RAW); + if (ret == 0) { + oobinfochanged = 2; + } else { + switch (errno) { + case ENOTTY: + if (ioctl (fd, MEMGETOOBSEL, &old_oobinfo) != 0) { + perror ("MEMGETOOBSEL"); + close (fd); + exit (EXIT_FAILURE); + } + if (ioctl (fd, MEMSETOOBSEL, &none_oobinfo) != 0) { + perror ("MEMSETOOBSEL"); + close (fd); + exit (EXIT_FAILURE); + } + oobinfochanged = 1; + break; + default: + perror ("MTDFILEMODE"); + close (fd); + exit (EXIT_FAILURE); + } + } + } + + /* + * force oob layout for jffs2 or yaffs ? + * Legacy support + */ + if (forcejffs2 || forceyaffs) { + struct nand_oobinfo *oobsel = forcejffs2 ? &jffs2_oobinfo : &yaffs_oobinfo; + + if (autoplace) { + fprintf(stderr, "Autoplacement is not possible for legacy -j/-y options\n"); + goto restoreoob; + } + if ((old_oobinfo.useecc == MTD_NANDECC_AUTOPLACE) && !forcelegacy) { + fprintf(stderr, "Use -f option to enforce legacy placement on autoplacement enabled mtd device\n"); + goto restoreoob; + } + if (meminfo.oobsize == 8) { + if (forceyaffs) { + fprintf (stderr, "YAFSS cannot operate on 256 Byte page size"); + goto restoreoob; + } + /* Adjust number of ecc bytes */ + jffs2_oobinfo.eccbytes = 3; + } + + if (ioctl (fd, MEMSETOOBSEL, oobsel) != 0) { + perror ("MEMSETOOBSEL"); + goto restoreoob; + } + } + + oob.length = meminfo.oobsize; + oob.ptr = noecc ? oobreadbuf : oobbuf; + + /* Determine if we are reading from standard input or from a file. */ + if (strcmp(img, standard_input) == 0) { + ifd = STDIN_FILENO; + } else { + ifd = open(img, O_RDONLY); + } + + if (ifd == -1) { + perror(img); + goto restoreoob; + } + + /* For now, don't allow writing oob when reading from standard input. */ + if (ifd == STDIN_FILENO && writeoob) { + fprintf(stderr, "Can't write oob when reading from standard input.\n"); + goto closeall; + } + + pagelen = meminfo.writesize + ((writeoob) ? meminfo.oobsize : 0); + + /* + * For the standard input case, the input size is merely an + * invariant placeholder and is set to the write page + * size. Otherwise, just use the input file size. + * + * TODO: Add support for the -l,--length=length option (see + * previous discussion by Tommi Airikka <tommi.airikka@ericsson.com> at + * <http://lists.infradead.org/pipermail/linux-mtd/2008-September/ + * 022913.html> + */ + + if (ifd == STDIN_FILENO) { + imglen = pagelen; + } else { + imglen = lseek(ifd, 0, SEEK_END); + lseek (ifd, 0, SEEK_SET); + } + + // Check, if file is page-aligned + if ((!pad) && ((imglen % pagelen) != 0)) { + fprintf (stderr, "Input file is not page-aligned. Use the padding " + "option.\n"); + goto closeall; + } + + // Check, if length fits into device + if ( ((imglen / pagelen) * meminfo.writesize) > (meminfo.size - mtdoffset)) { + fprintf (stderr, "Image %d bytes, NAND page %d bytes, OOB area %u bytes, device size %u bytes\n", + imglen, pagelen, meminfo.writesize, meminfo.size); + perror ("Input file does not fit into device"); + goto closeall; + } + + /* + * Get data from input and write to the device while there is + * still input to read and we are still within the device + * bounds. Note that in the case of standard input, the input + * length is simply a quasi-boolean flag whose values are page + * length or zero. + */ + while (imglen && (mtdoffset < meminfo.size)) { + // new eraseblock , check for bad block(s) + // Stay in the loop to be sure if the mtdoffset changes because + // of a bad block, that the next block that will be written to + // is also checked. Thus avoiding errors if the block(s) after the + // skipped block(s) is also bad (number of blocks depending on + // the blockalign + while (blockstart != (mtdoffset & (~meminfo.erasesize + 1))) { + blockstart = mtdoffset & (~meminfo.erasesize + 1); + offs = blockstart; + baderaseblock = false; + if (!quiet) + fprintf (stdout, "Writing data to block %d at offset 0x%x\n", + blockstart / meminfo.erasesize, blockstart); + + /* Check all the blocks in an erase block for bad blocks */ + do { + if ((ret = ioctl(fd, MEMGETBADBLOCK, &offs)) < 0) { + perror("ioctl(MEMGETBADBLOCK)"); + goto closeall; + } + if (ret == 1) { + baderaseblock = true; + if (!quiet) + fprintf (stderr, "Bad block at %x, %u block(s) " + "from %x will be skipped\n", + (int) offs, blockalign, blockstart); + } + + if (baderaseblock) { + mtdoffset = blockstart + meminfo.erasesize; + } + offs += meminfo.erasesize / blockalign ; + } while ( offs < blockstart + meminfo.erasesize ); + + } + + readlen = meminfo.writesize; + + if (ifd != STDIN_FILENO) { + int tinycnt = 0; + + if (pad && (imglen < readlen)) + { + readlen = imglen; + erase_buffer(writebuf + readlen, meminfo.writesize - readlen); + } + + /* Read Page Data from input file */ + while(tinycnt < readlen) { + cnt = read(ifd, writebuf + tinycnt, readlen - tinycnt); + if (cnt == 0) { // EOF + break; + } else if (cnt < 0) { + perror ("File I/O error on input file"); + goto closeall; + } + tinycnt += cnt; + } + } else { + int tinycnt = 0; + + while(tinycnt < readlen) { + cnt = read(ifd, writebuf + tinycnt, readlen - tinycnt); + if (cnt == 0) { // EOF + break; + } else if (cnt < 0) { + perror ("File I/O error on stdin"); + goto closeall; + } + tinycnt += cnt; + } + + /* No padding needed - we are done */ + if (tinycnt == 0) { + imglen = 0; + break; + } + + /* No more bytes - we are done after writing the remaining bytes */ + if (cnt == 0) { + imglen = 0; + } + + /* Padding */ + if (pad && (tinycnt < readlen)) { + erase_buffer(writebuf + tinycnt, meminfo.writesize - tinycnt); + } + } + + if (writeoob) { + int tinycnt = 0; + + while(tinycnt < readlen) { + cnt = read(ifd, oobreadbuf + tinycnt, meminfo.oobsize - tinycnt); + if (cnt == 0) { // EOF + break; + } else if (cnt < 0) { + perror ("File I/O error on input file"); + goto closeall; + } + tinycnt += cnt; + } + + if (!noecc) { + int i, start, len; + /* + * We use autoplacement and have the oobinfo with the autoplacement + * information from the kernel available + * + * Modified to support out of order oobfree segments, + * such as the layout used by diskonchip.c + */ + if (!oobinfochanged && (old_oobinfo.useecc == MTD_NANDECC_AUTOPLACE)) { + for (i = 0;old_oobinfo.oobfree[i][1]; i++) { + /* Set the reserved bytes to 0xff */ + start = old_oobinfo.oobfree[i][0]; + len = old_oobinfo.oobfree[i][1]; + memcpy(oobbuf + start, + oobreadbuf + start, + len); + } + } else { + /* Set at least the ecc byte positions to 0xff */ + start = old_oobinfo.eccbytes; + len = meminfo.oobsize - start; + memcpy(oobbuf + start, + oobreadbuf + start, + len); + } + } + /* Write OOB data first, as ecc will be placed in there*/ + oob.start = mtdoffset; + if (ioctl(fd, MEMWRITEOOB, &oob) != 0) { + perror ("ioctl(MEMWRITEOOB)"); + goto closeall; + } + imglen -= meminfo.oobsize; + } + + /* Write out the Page data */ + if (pwrite(fd, writebuf, meminfo.writesize, mtdoffset) != meminfo.writesize) { + int rewind_blocks; + off_t rewind_bytes; + erase_info_t erase; + + perror ("pwrite"); + /* Must rewind to blockstart if we can */ + rewind_blocks = (mtdoffset - blockstart) / meminfo.writesize; /* Not including the one we just attempted */ + rewind_bytes = (rewind_blocks * meminfo.writesize) + readlen; + if (writeoob) + rewind_bytes += (rewind_blocks + 1) * meminfo.oobsize; + if (lseek(ifd, -rewind_bytes, SEEK_CUR) == -1) { + perror("lseek"); + fprintf(stderr, "Failed to seek backwards to recover from write error\n"); + goto closeall; + } + erase.start = blockstart; + erase.length = meminfo.erasesize; + fprintf(stderr, "Erasing failed write from %08lx-%08lx\n", + (long)erase.start, (long)erase.start+erase.length-1); + if (ioctl(fd, MEMERASE, &erase) != 0) { + perror("MEMERASE"); + goto closeall; + } + + if (markbad) { + loff_t bad_addr = mtdoffset & (~(meminfo.erasesize / blockalign) + 1); + fprintf(stderr, "Marking block at %08lx bad\n", (long)bad_addr); + if (ioctl(fd, MEMSETBADBLOCK, &bad_addr)) { + perror("MEMSETBADBLOCK"); + /* But continue anyway */ + } + } + mtdoffset = blockstart + meminfo.erasesize; + imglen += rewind_blocks * meminfo.writesize; + + continue; + } + if (ifd != STDIN_FILENO) { + imglen -= readlen; + } + mtdoffset += meminfo.writesize; + } + +closeall: + close(ifd); + +restoreoob: + if (oobinfochanged == 1) { + if (ioctl (fd, MEMSETOOBSEL, &old_oobinfo) != 0) { + perror ("MEMSETOOBSEL"); + close (fd); + exit (EXIT_FAILURE); + } + } + + close(fd); + + if ((ifd != STDIN_FILENO) && (imglen > 0)) { + perror ("Data was only partially written due to error\n"); + exit (EXIT_FAILURE); + } + + /* Return happy */ + return EXIT_SUCCESS; +} diff --git a/package/nfs-utils/Makefile b/package/nfs-utils/Makefile index bb36d9a2b..7bdc87085 100644 --- a/package/nfs-utils/Makefile +++ b/package/nfs-utils/Makefile @@ -12,7 +12,7 @@ PKG_SECTION:= net PKG_DEPENDS:= kmod-nfsd ifeq (${ADK_PACKAGE_NFS_UTILS_WITH_KERBEROS},y) -PKG_DEPENDS+= krb5-libs libevent libnfsidmap librpcsecgss libcom-err libgssglue +PKG_DEPENDS+= libkrb5 libevent libnfsidmap librpcsecgss libcom-err libgssglue PKG_BUILDDEP+= libnfsidmap krb5 libevent libgssglue librpcsecgss endif diff --git a/package/ntfs-3g/Makefile b/package/ntfs-3g/Makefile index c50a8bab1..f1a7be0c0 100644 --- a/package/ntfs-3g/Makefile +++ b/package/ntfs-3g/Makefile @@ -4,14 +4,14 @@ include ${TOPDIR}/rules.mk PKG_NAME= ntfs-3g -PKG_VERSION= 2009.4.4 +PKG_VERSION= 2010.1.16 PKG_RELEASE= 1 -PKG_MD5SUM= e0b5c170f088a8d82968f0a6b34d31da +PKG_MD5SUM= e104c914e8d7d29ee83e63d46afbba25 PKG_DESCR:= ntfs filesystem driver with read and write support PKG_SECTION:= sys PKG_DEPENDS:= kmod-fuse-fs -PKG_URL:= http://www.ntfs-3g.org -PKG_SITES= http://www.ntfs-3g.org/ +PKG_URL:= http://tuxera.com +PKG_SITES= http://tuxera.com/opensource/ DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tgz @@ -26,8 +26,8 @@ BUILD_STYLE= auto INSTALL_STYLE= auto post-install: - ${INSTALL_DIR} ${IDIR_NTFS_3G}/{bin,sbin} - ${CP} ${WRKINST}/bin/ntfs-3g ${IDIR_NTFS_3G}/bin - ${CP} ${WRKINST}/sbin/mount.ntfs-3g ${IDIR_NTFS_3G}/sbin + ${INSTALL_DIR} ${IDIR_NTFS_3G}/bin + ${INSTALL_BIN} ${WRKINST}/bin/ntfs-3g ${IDIR_NTFS_3G}/bin + cd ${WRKINST}/bin && ln -sf ntfs-3g mount.ntfs-3g include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/opencdk/Makefile b/package/opencdk/Makefile index 06cea155b..bd01b5187 100644 --- a/package/opencdk/Makefile +++ b/package/opencdk/Makefile @@ -4,19 +4,15 @@ include ${TOPDIR}/rules.mk PKG_NAME:= opencdk -PKG_VERSION:= 0.6.4 +PKG_VERSION:= 0.6.6 PKG_RELEASE:= 1 -PKG_BUILDDEP+= libgcrypt libgpg-error zlib -PKG_MD5SUM:= 7bfc820bcdc08f0c31f860710368071e +PKG_MD5SUM:= 813d62d7afe7b2c2d8f3df0a6c9d9331 PKG_DESCR:= Open Crypto Development Kit library PKG_SECTION:= libs PKG_DEPENDS:= libgcrypt libgpg-error zlib +PKG_BUILDDEP+= libgcrypt libgpg-error zlib PKG_URL:= http://www.gnu.org/software/gnutls/download.html -PKG_SITES:= ftp://ftp.gnutls.org/pub/gnutls/opencdk/ \ - ftp://ftp.gnupg.org/gcrypt/alpha/gnutls/opencdk/ \ - http://www.mirrors.wiretapped.net/security/network-security/gnutls/opencdk/ \ - ftp://ftp.mirrors.wiretapped.net/pub/security/network-security/gnutls/opencdk/ \ - http://josefsson.org/gnutls/releases/opencdk/ +PKG_SITES:= ftp://ftp.gnutls.org/pub/gnutls/opencdk/ DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2 @@ -31,6 +27,6 @@ INSTALL_STYLE:= auto post-install: ${INSTALL_DIR} ${IDIR_LIBOPENCDK}/usr/lib - ${CP} ${WRKINST}/usr/lib/libopencdk.so.* ${IDIR_LIBOPENCDK}/usr/lib + ${CP} ${WRKINST}/usr/lib/libopencdk.so* ${IDIR_LIBOPENCDK}/usr/lib include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/openssh/Makefile b/package/openssh/Makefile index 3b724edbc..29fd6a055 100644 --- a/package/openssh/Makefile +++ b/package/openssh/Makefile @@ -12,11 +12,11 @@ PKG_SECTION:= net PKG_DEPENDS:= zlib libopenssl PKG_BUILDDEP+= zlib openssl ifeq (${ADK_COMPILE_OPENSSH_WITH_KRB5},y) -PKG_DEPENDS+= krb5-libs libcom-err +PKG_DEPENDS+= libkrb5 libcom-err PKG_BUILDDEP+= krb5 endif ifeq (${ADK_COMPILE_OPENSSH_WITH_HEIMDAL},y) -PKG_DEPENDS+= heimdal-libs libcom-err +PKG_DEPENDS+= libheimdal libcom-err PKG_BUILDDEP+= heimdal endif PKG_URL:= http://www.openssh.com diff --git a/package/valgrind/Makefile b/package/valgrind/Makefile index bf0c1710d..a5950a7c1 100644 --- a/package/valgrind/Makefile +++ b/package/valgrind/Makefile @@ -4,9 +4,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:= valgrind -PKG_VERSION:= 3.3.1 -PKG_RELEASE:= 2 -PKG_MD5SUM:= 0539e2fa4aadb2cd4ca4bba65b1fe8b5 +PKG_VERSION:= 3.5.0 +PKG_RELEASE:= 1 +PKG_MD5SUM:= f03522a4687cf76c676c9494fcc0a517 PKG_DESCR:= memory management debugging PKG_SECTION:= utils PKG_URL:= http://valgrind.org @@ -21,17 +21,19 @@ include $(TOPDIR)/mk/package.mk $(eval $(call PKG_template,VALGRIND,${PKG_NAME},$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) CONFIGURE_STYLE= gnu +CONFIGURE_ENV+= ac_cv_file__proc_self_fd=yes \ + ac_cv_file__proc_self_exe=yes \ + ac_cv_file__proc_self_maps=yes CONFIGURE_ARGS+= --disable-tls BUILD_STYLE= auto INSTALL_STYLE= auto post-install: $(INSTALL_DIR) $(IDIR_VALGRIND)/usr/bin - $(INSTALL_DIR) $(IDIR_VALGRIND)/usr/lib/valgrind/${ARCH}-linux + $(INSTALL_DIR) $(IDIR_VALGRIND)/usr/lib/valgrind $(INSTALL_BIN) $(WRKINST)/usr/bin/valgrind $(IDIR_VALGRIND)/usr/bin/ - $(CP) $(WRKINST)/usr/lib/valgrind/${ARCH}-linux/* \ - $(IDIR_VALGRIND)/usr/lib/valgrind/${ARCH}-linux - -rm $(IDIR_VALGRIND)/usr/lib/valgrind/${ARCH}-linux/*.a + $(CP) $(WRKINST)/usr/lib/valgrind/* \ + $(IDIR_VALGRIND)/usr/lib/valgrind touch $(IDIR_VALGRIND)/usr/lib/valgrind/default.supp include ${TOPDIR}/mk/pkg-bottom.mk |