From 5214ea90fad5e7158320a37e06235a02d6954c62 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Wed, 25 Feb 2009 08:59:17 +0100 Subject: pkgconfig[-native]: 0.23 is the new default one remove 0.15 and 0.22 --- .../pkgconfig/pkgconfig-0.15.0/configure.patch | 495 -------------------- .../pkgconfig-0.15.0/glibconfig-sysdefs.h | 6 - packages/pkgconfig/pkgconfig-0.15.0/pkg.m4 | 156 ------- packages/pkgconfig/pkgconfig-0.22/autofoo.patch | 515 --------------------- .../pkgconfig/pkgconfig-0.22/glibconfig-sysdefs.h | 6 - packages/pkgconfig/pkgconfig-0.22/sysrootfix.patch | 102 ---- packages/pkgconfig/pkgconfig-native_0.15.0.bb | 7 - packages/pkgconfig/pkgconfig-native_0.22.bb | 13 - packages/pkgconfig/pkgconfig-native_0.23.bb | 2 - packages/pkgconfig/pkgconfig_0.15.0.bb | 26 -- packages/pkgconfig/pkgconfig_0.22.bb | 2 - packages/pkgconfig/pkgconfig_0.23.bb | 2 - 12 files changed, 1332 deletions(-) delete mode 100644 packages/pkgconfig/pkgconfig-0.15.0/configure.patch delete mode 100644 packages/pkgconfig/pkgconfig-0.15.0/glibconfig-sysdefs.h delete mode 100644 packages/pkgconfig/pkgconfig-0.15.0/pkg.m4 delete mode 100644 packages/pkgconfig/pkgconfig-0.22/autofoo.patch delete mode 100644 packages/pkgconfig/pkgconfig-0.22/glibconfig-sysdefs.h delete mode 100644 packages/pkgconfig/pkgconfig-0.22/sysrootfix.patch delete mode 100644 packages/pkgconfig/pkgconfig-native_0.15.0.bb delete mode 100644 packages/pkgconfig/pkgconfig-native_0.22.bb delete mode 100644 packages/pkgconfig/pkgconfig_0.15.0.bb delete mode 100644 packages/pkgconfig/pkgconfig_0.22.bb diff --git a/packages/pkgconfig/pkgconfig-0.15.0/configure.patch b/packages/pkgconfig/pkgconfig-0.15.0/configure.patch deleted file mode 100644 index 4218e917d4..0000000000 --- a/packages/pkgconfig/pkgconfig-0.15.0/configure.patch +++ /dev/null @@ -1,495 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- pkgconfig-0.15.0/glib-1.2.8/Makefile.am~configure.patch -+++ pkgconfig-0.15.0/glib-1.2.8/Makefile.am -@@ -65,7 +65,7 @@ - - CONFIGURE_DEPENDENCIES = acglib.m4 - --BUILT_SOURCES = stamp-gc-h #note: not glibconfig.h -+BUILT_SOURCES += stamp-gc-h #note: not glibconfig.h - glibconfig.h: stamp-gc-h - @: - stamp-gc-h: config.status ---- pkgconfig-0.15.0/glib-1.2.8/configure.in~configure.patch -+++ pkgconfig-0.15.0/glib-1.2.8/configure.in -@@ -1,10 +1,11 @@ - dnl *********************************** - dnl *** include special GLib macros *** - dnl *********************************** --builtin(include, acglib.m4)dnl -+dnl no need, just use aclocal -I . --CL -+dnl builtin(include, acglib.m4)dnl - - # require autoconf 2.13 --AC_PREREQ(2.13) -+AC_PREREQ(2.53) - - # init autoconf (and check for presence of glist.c) - AC_INIT(glist.c) -@@ -13,11 +14,48 @@ - cflags_set=${CFLAGS+set} - - # we rewrite this file -+if test "x$cross_compiling" != "xyes"; then - rm -f glibconfig-sysdefs.h -+fi -+ -+# config defines -+ -+AH_TEMPLATE([ENABLE_MEM_CHECK], -+ [Define if enabling memory checking]) -+AH_TEMPLATE([ENABLE_MEM_PROFILE], []) -+AH_TEMPLATE([GLIB_BINARY_AGE], []) -+AH_TEMPLATE([GLIB_BYTE_CONTENTS_GMUTEX], []) -+AH_TEMPLATE([GLIB_INTERFACE_AGE], []) -+AH_TEMPLATE([GLIB_MAJOR_VERSION], []) -+AH_TEMPLATE([GLIB_MINOR_VERSION], []) -+AH_TEMPLATE([GLIB_MICRO_VERSION], []) -+AH_TEMPLATE([GLIB_SIZEOF_GMUTEX], []) -+AH_TEMPLATE([G_COMPILED_WITH_DEBUGGING], []) -+AH_TEMPLATE([G_HAVE_INLINE], []) -+AH_TEMPLATE([G_HAVE___INLINE], []) -+AH_TEMPLATE([G_HAVE___INLINE__], []) -+AH_TEMPLATE([G_THREAD_SOURCE], []) -+AH_TEMPLATE([G_VA_COPY], []) -+AH_TEMPLATE([G_VA_COPY_AS_ARRAY], []) -+AH_TEMPLATE([HAVE_BROKEN_WCTYPE], []) -+AH_TEMPLATE([HAVE_GETPWUID_R], []) -+AH_TEMPLATE([HAVE_GETPWUID_R_POSIX], []) -+AH_TEMPLATE([HAVE_PTHREAD_COND_TIMEDWAIT_POSIX], []) -+AH_TEMPLATE([HAVE_PTHREAD_GETSPECIFIC_POSIX], []) -+AH_TEMPLATE([HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX], []) -+AH_TEMPLATE([HAVE_WCHAR_H], []) -+AH_TEMPLATE([HAVE_WCTYPE_H], []) -+AH_TEMPLATE([NO_FD_SET], []) -+AH_TEMPLATE([NO_SYS_ERRLIST], []) -+AH_TEMPLATE([NO_SYS_SIGLIST], []) -+AH_TEMPLATE([NO_SYS_SIGLIST_DECL], []) -+AH_TEMPLATE([REALLOC_0_WORKS], []) -+ - - dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they - dnl are available for $ac_help expansion (don't we all *love* autoconf?) --AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl -+#AC_DIVERT_PUSH(AC_DIVERSION_NOTICE) -+#dnl - # - # The following version number definitions apply to GLib, GModule and GThread - # as a whole, so if changes occoured in any of them, they are all -@@ -38,7 +76,7 @@ - GLIB_BINARY_AGE=8 - GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION - dnl --AC_DIVERT_POP()dnl -+#AC_DIVERT_POP()dnl - - AC_SUBST(GLIB_MAJOR_VERSION) - AC_SUBST(GLIB_MINOR_VERSION) -@@ -77,17 +115,15 @@ - dnl Initialize maintainer mode - AM_MAINTAINER_MODE - --AC_CANONICAL_HOST -- - dnl figure debugging default, prior to $ac_help setup - dnl --AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl -+#AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl - if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then - debug_default=yes - else - debug_default=minimum - fi --AC_DIVERT_POP()dnl -+#AC_DIVERT_POP()dnl - - dnl declare --enable-* args and collect ac_help strings - AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default) -@@ -173,7 +209,9 @@ - CFLAGS=$glib_save_CFLAGS - AC_MSG_WARN( - [No ANSI prototypes found in library. (-std1 didn't work.)]) -+ , AC_MSG_WARN([Skipping test due to crosscompilation]) - ) -+ , AC_MSG_WARN([Skipping test due to crosscompilation]) - ) - LIBS=$glib_save_LIBS - -@@ -384,11 +422,13 @@ - return realloc (0, sizeof (int)) == 0; - }], - glib_cv_sane_realloc=yes -- AC_DEFINE(REALLOC_0_WORKS) - , - glib_cv_sane_realloc=no - ,) - ]) -+if test "x$glib_cv_sane_realloc" = "xyes"; then -+ AC_DEFINE(REALLOC_0_WORKS) -+fi - AC_MSG_RESULT($glib_cv_sane_realloc) - - -@@ -464,7 +504,8 @@ - ]) - if test "x$glib_cv_va_copy" = "xyes"; then - AC_DEFINE(G_VA_COPY, va_copy) --else if test "x$glib_cv___va_copy" = "xyes"; then -+else -+if test "x$glib_cv___va_copy" = "xyes"; then - AC_DEFINE(G_VA_COPY, __va_copy) - fi - fi -@@ -473,6 +514,7 @@ - fi - AC_MSG_RESULT($glib_cv_va_val_copy) - -+AC_MSG_WARN([hi mom]) - - dnl *********************** - dnl *** g_module checks *** -@@ -483,21 +525,27 @@ - G_MODULE_NEED_USCORE=0 - G_MODULE_HAVE_DLERROR=0 - dnl *** dlopen() and dlsym() in system libraries -+AC_CHECK_FUNC(dlopen,[ -+ AC_CHECK_FUNC(dlsym,[ -+ G_MODULE_IMPL=G_MODULE_IMPL_DL -+ ], -+ )], -+) - if test -z "$G_MODULE_IMPL"; then -- AC_CHECK_FUNC(dlopen, -- AC_CHECK_FUNC(dlsym, -+ AC_CHECK_FUNC(dlopen,[ -+ AC_CHECK_FUNC(dlsym,[ - G_MODULE_IMPL=G_MODULE_IMPL_DL -- ,) -- ,) -+ ])], -+ ) - fi - dnl *** dlopen() and dlsym() in libdl - if test -z "$G_MODULE_IMPL"; then -- AC_CHECK_LIB(dl, dlopen, -- AC_CHECK_LIB(dl, dlsym, -+ AC_CHECK_LIB(dl, dlopen,[ -+ AC_CHECK_LIB(dl, dlsym,[ - G_MODULE_LIBS=-ldl - G_MODULE_IMPL=G_MODULE_IMPL_DL -- ,) -- ,) -+ ])] -+ ) - fi - dnl *** shl_load() in libdld (HP-UX) - if test -z "$G_MODULE_IMPL"; then -@@ -576,6 +624,7 @@ - AC_SUBST(G_MODULE_HAVE_DLERROR) - AC_SUBST(G_MODULE_NEED_USCORE) - AC_SUBST(GLIB_DEBUG_FLAGS) -+AC_MSG_WARN([hi mom]) - - - dnl *********************** -@@ -812,38 +861,50 @@ - fi - if test x"$have_threads" = xposix; then - LIBS="$LIBS $G_THREAD_LIBS" -- AC_MSG_CHECKING(whether pthread_getspecific is posix like) - # PCThreads has pthread_getspecific(pthread_key_t, void **); -- AC_TRY_COMPILE([#include ], -- [pthread_getspecific(0,NULL);], -- [AC_MSG_RESULT(no)], -- [AC_MSG_RESULT(yes) -- AC_DEFINE(HAVE_PTHREAD_GETSPECIFIC_POSIX)]) -- AC_MSG_CHECKING(whether pthread_mutex_trylock is posix like) -+ AC_CACHE_CHECK([whether pthread_getspecific is posix like], -+ [glib_cv_sys_pthread_getspecific_posix], -+ AC_TRY_COMPILE([#include ], -+ [pthread_getspecific(0,NULL);], -+ [glib_cv_sys_pthread_getspecific_posix=no], -+ [glib_cv_sys_pthread_getspecific_posix=yes]) -+ ) -+ if test x"$glib_cv_sys_pthread_getspecific_posix" = xyes; then -+ AC_DEFINE(HAVE_PTHREAD_GETSPECIFIC_POSIX) -+ fi - # DCE Threads return 1 as success, posix 0. what a mess. -- AC_TRY_RUN([#include -- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -- int main () { -- return !pthread_mutex_trylock (&mutex); }], -- [AC_MSG_RESULT(no)], -- [AC_MSG_RESULT(yes) -- AC_DEFINE(HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX)]) -- AC_MSG_CHECKING(whether pthread_cond_timedwait is posix like) -+ AC_CACHE_CHECK([whether pthread_mutex_trylock is posix like], -+ [glib_cv_sys_pthread_mutex_trylock_posix], -+ AC_TRY_RUN([#include -+ pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -+ int main () { -+ return !pthread_mutex_trylock (&mutex); }], -+ [glib_cv_sys_pthread_mutex_trylock_posix=no], -+ [glib_cv_sys_pthread_mutex_trylock_posix=yes]) -+ ) -+ if test x"$glib_cv_sys_pthread_mutex_trylock_posix" = xyes; then -+ AC_DEFINE(HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX) -+ fi - # DCE Threads return -1 as failure, posix ETIMEDOUT. -- AC_TRY_RUN([#include -- int main () { -- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -- pthread_cond_t cond = PTHREAD_COND_INITIALIZER; -- struct timeval tval; -- struct timespec tspec; -- gettimeofday (&tval, NULL); -- tspec.tv_sec = tval.tv_sec; -- tspec.tv_nsec = 0; -- return pthread_cond_timedwait (&cond,&mutex,&tspec) -- != -1;}], -- [AC_MSG_RESULT(no)], -- [AC_MSG_RESULT(yes) -- AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_POSIX)]) -+ AC_CACHE_CHECK([whether pthread_cond_timedwait is posix like], -+ [glib_cv_sys_pthread_cond_timedwait_posix], -+ AC_TRY_RUN([#include -+ int main () { -+ pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -+ pthread_cond_t cond = PTHREAD_COND_INITIALIZER; -+ struct timeval tval; -+ struct timespec tspec; -+ gettimeofday (&tval, NULL); -+ tspec.tv_sec = tval.tv_sec; -+ tspec.tv_nsec = 0; -+ return pthread_cond_timedwait (&cond,&mutex,&tspec) -+ != -1;}], -+ [glib_cv_sys_pthread_cond_timedwait_posix=no], -+ [glib_cv_sys_pthread_cond_timedwait_posix=yes]) -+ ) -+ if test x"$glib_cv_sys_pthread_cond_timedwait_posix" = xyes; then -+ AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_POSIX) -+ fi - fi - LIBS="$glib_save_LIBS" - CFLAGS="$glib_save_CFLAGS" -@@ -887,13 +948,14 @@ - dnl **************************************** - dnl *** GLib POLL* compatibility defines *** - dnl **************************************** -+if test x"$cross_compiling" != xyes; then - GLIB_SYSDEFS( - [#include - #include ], - POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32, - glibconfig-sysdefs.h, - =) -- -+fi - - dnl ****************************** - dnl *** output the whole stuff *** -@@ -950,7 +1012,7 @@ - echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile - fi - -- cat >> $outfile <<_______EOF -+ cat >> $outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile - fi - - - -- cat >>$outfile <<_______EOF -+ cat >>$outfile <>$outfile - if test x$g_mutex_has_default = xyes; then -- cat >>$outfile <<_______EOF -+ cat >>$outfile <aligned_pad_u)) : \ - g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex))) --_______EOF -+EOF - else -- cat >>$outfile <<_______EOF -+ cat >>$outfile <>$outfile -@@ -1067,15 +1129,15 @@ - g_bit_sizes="$g_bit_sizes 64" - fi - for bits in $g_bit_sizes; do -- cat >>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile - fi - - -- cat >>$outfile <<_______EOF -+ cat >>$outfile <= 1.3 glib = 1.3.4, action-if, action-not) - dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page - dnl also defines GSTUFF_PKG_ERRORS on error --AC_DEFUN(PKG_CHECK_MODULES, [ -+AC_DEFUN([PKG_CHECK_MODULES], [ - succeeded=no - - if test -z "$PKG_CONFIG"; then ---- pkgconfig-0.15.0/configure.in~configure.patch -+++ pkgconfig-0.15.0/configure.in -@@ -1,6 +1,7 @@ - - AC_INIT(pkg-config.1) - -+AC_CONFIG_AUX_DIR(.) - AM_INIT_AUTOMAKE(pkgconfig, 0.15.0) - AM_MAINTAINER_MODE - -@@ -37,8 +38,6 @@ - - AC_SUBST(GLIB_LIBS) - AC_SUBST(GLIB_CFLAGS) -- -- AC_CONFIG_AUX_DIR(.) - else - AC_CONFIG_SUBDIRS(glib-1.2.8) - fi # !native_win32 diff --git a/packages/pkgconfig/pkgconfig-0.15.0/glibconfig-sysdefs.h b/packages/pkgconfig/pkgconfig-0.15.0/glibconfig-sysdefs.h deleted file mode 100644 index 1329e7f21c..0000000000 --- a/packages/pkgconfig/pkgconfig-0.15.0/glibconfig-sysdefs.h +++ /dev/null @@ -1,6 +0,0 @@ -#define GLIB_SYSDEF_POLLIN =1 -#define GLIB_SYSDEF_POLLOUT =4 -#define GLIB_SYSDEF_POLLPRI =2 -#define GLIB_SYSDEF_POLLERR =8 -#define GLIB_SYSDEF_POLLHUP =16 -#define GLIB_SYSDEF_POLLNVAL =32 diff --git a/packages/pkgconfig/pkgconfig-0.15.0/pkg.m4 b/packages/pkgconfig/pkgconfig-0.15.0/pkg.m4 deleted file mode 100644 index cbb46dbf83..0000000000 --- a/packages/pkgconfig/pkgconfig-0.15.0/pkg.m4 +++ /dev/null @@ -1,156 +0,0 @@ -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# -# Copyright © 2004 Scott James Remnant . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi - -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# -# Similar to PKG_CHECK_MODULES, make sure that the first instance of -# this or PKG_CHECK_MODULES is called, or make sure to call -# PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_ifval([$2], [$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$PKG_CONFIG"; then - if test -n "$$1"; then - pkg_cv_[]$1="$$1" - else - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - fi -else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - ifelse([$4], , [AC_MSG_ERROR(dnl -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT -])], - [$4]) -elif test $pkg_failed = untried; then - ifelse([$4], , [AC_MSG_FAILURE(dnl -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])], - [$4]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - ifelse([$3], , :, [$3]) -fi[]dnl -])# PKG_CHECK_MODULES diff --git a/packages/pkgconfig/pkgconfig-0.22/autofoo.patch b/packages/pkgconfig/pkgconfig-0.22/autofoo.patch deleted file mode 100644 index 8d1869a407..0000000000 --- a/packages/pkgconfig/pkgconfig-0.22/autofoo.patch +++ /dev/null @@ -1,515 +0,0 @@ -upstream: more recent version is in OE - ---- - glib-1.2.8/acglib.m4 | 12 +- - glib-1.2.8/configure.in | 212 ++++++++++++++++++++++++++++++------------------ - 2 files changed, 140 insertions(+), 84 deletions(-) - -Index: pkg-config-0.22/glib-1.2.8/acglib.m4 -=================================================================== ---- pkg-config-0.22.orig/glib-1.2.8/acglib.m4 2007-08-01 20:00:00.000000000 +0100 -+++ pkg-config-0.22/glib-1.2.8/acglib.m4 2007-08-01 20:11:08.000000000 +0100 -@@ -10,7 +10,7 @@ $1 - AC_DIVERT_POP()])])]) - - dnl GLIB_IF_VAR_EQ (ENV_VAR, VALUE [, EQUALS_ACTION] [, ELSE_ACTION]) --AC_DEFUN(GLIB_IF_VAR_EQ,[ -+AC_DEFUN([GLIB_IF_VAR_EQ],[ - case "$[$1]" in - "[$2]"[)] - [$3] -@@ -21,7 +21,7 @@ AC_DEFUN(GLIB_IF_VAR_EQ,[ - esac - ]) - dnl GLIB_STR_CONTAINS (SRC_STRING, SUB_STRING [, CONTAINS_ACTION] [, ELSE_ACTION]) --AC_DEFUN(GLIB_STR_CONTAINS,[ -+AC_DEFUN([GLIB_STR_CONTAINS],[ - case "[$1]" in - *"[$2]"*[)] - [$3] -@@ -32,12 +32,12 @@ AC_DEFUN(GLIB_STR_CONTAINS,[ - esac - ]) - dnl GLIB_ADD_TO_VAR (ENV_VARIABLE, CHECK_STRING, ADD_STRING) --AC_DEFUN(GLIB_ADD_TO_VAR,[ -+AC_DEFUN([GLIB_ADD_TO_VAR],[ - GLIB_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]") - ]) - - dnl GLIB_SIZEOF (INCLUDES, TYPE, ALIAS [, CROSS-SIZE]) --AC_DEFUN(GLIB_SIZEOF, -+AC_DEFUN([GLIB_SIZEOF], - [changequote(<<, >>)dnl - dnl The name to #define. - define(<>, translit(glib_sizeof_$3, [a-z *], [A-Z_P]))dnl -@@ -62,7 +62,7 @@ undefine([AC_CV_NAME])dnl - ]) - - dnl GLIB_BYTE_CONTENTS (INCLUDES, TYPE, ALIAS, N_BYTES, INITIALIZER) --AC_DEFUN(GLIB_BYTE_CONTENTS, -+AC_DEFUN([GLIB_BYTE_CONTENTS], - [changequote(<<, >>)dnl - dnl The name to #define. - define(<>, translit(glib_byte_contents_$3, [a-z *], [A-Z_P]))dnl -@@ -92,7 +92,7 @@ undefine([AC_CV_NAME])dnl - ]) - - dnl GLIB_SYSDEFS (INCLUDES, DEFS_LIST, OFILE [, PREFIX]) --AC_DEFUN(GLIB_SYSDEFS, -+AC_DEFUN([GLIB_SYSDEFS], - [glib_sysdefso="translit($3, [-_a-zA-Z0-9 *], [-_a-zA-Z0-9])" - glib_sysdef_msg=`echo $2 | sed 's/:[[^ ]]*//g'` - if test "x`(echo '\n') 2>/dev/null`" != 'x\n'; then -Index: pkg-config-0.22/glib-1.2.8/configure.in -=================================================================== ---- pkg-config-0.22.orig/glib-1.2.8/configure.in 2007-08-01 18:03:34.000000000 +0100 -+++ pkg-config-0.22/glib-1.2.8/configure.in 2007-05-23 11:47:53.000000000 +0100 -@@ -1,10 +1,11 @@ - dnl *********************************** - dnl *** include special GLib macros *** - dnl *********************************** --builtin(include, acglib.m4)dnl -+dnl no need, just use aclocal -I . --CL -+dnl builtin(include, acglib.m4)dnl - - # require autoconf 2.13 --AC_PREREQ(2.13) -+AC_PREREQ(2.53) - - # init autoconf (and check for presence of glist.c) - AC_INIT(glist.c) -@@ -13,11 +14,48 @@ AC_INIT(glist.c) - cflags_set=${CFLAGS+set} - - # we rewrite this file -+if test "x$cross_compiling" != "xyes"; then - rm -f glibconfig-sysdefs.h -+fi -+ -+# config defines -+ -+AH_TEMPLATE([ENABLE_MEM_CHECK], -+ [Define if enabling memory checking]) -+AH_TEMPLATE([ENABLE_MEM_PROFILE], []) -+AH_TEMPLATE([GLIB_BINARY_AGE], []) -+AH_TEMPLATE([GLIB_BYTE_CONTENTS_GMUTEX], []) -+AH_TEMPLATE([GLIB_INTERFACE_AGE], []) -+AH_TEMPLATE([GLIB_MAJOR_VERSION], []) -+AH_TEMPLATE([GLIB_MINOR_VERSION], []) -+AH_TEMPLATE([GLIB_MICRO_VERSION], []) -+AH_TEMPLATE([GLIB_SIZEOF_GMUTEX], []) -+AH_TEMPLATE([G_COMPILED_WITH_DEBUGGING], []) -+AH_TEMPLATE([G_HAVE_INLINE], []) -+AH_TEMPLATE([G_HAVE___INLINE], []) -+AH_TEMPLATE([G_HAVE___INLINE__], []) -+AH_TEMPLATE([G_THREAD_SOURCE], []) -+AH_TEMPLATE([G_VA_COPY], []) -+AH_TEMPLATE([G_VA_COPY_AS_ARRAY], []) -+AH_TEMPLATE([HAVE_BROKEN_WCTYPE], []) -+AH_TEMPLATE([HAVE_GETPWUID_R], []) -+AH_TEMPLATE([HAVE_GETPWUID_R_POSIX], []) -+AH_TEMPLATE([HAVE_PTHREAD_COND_TIMEDWAIT_POSIX], []) -+AH_TEMPLATE([HAVE_PTHREAD_GETSPECIFIC_POSIX], []) -+AH_TEMPLATE([HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX], []) -+AH_TEMPLATE([HAVE_WCHAR_H], []) -+AH_TEMPLATE([HAVE_WCTYPE_H], []) -+AH_TEMPLATE([NO_FD_SET], []) -+AH_TEMPLATE([NO_SYS_ERRLIST], []) -+AH_TEMPLATE([NO_SYS_SIGLIST], []) -+AH_TEMPLATE([NO_SYS_SIGLIST_DECL], []) -+AH_TEMPLATE([REALLOC_0_WORKS], []) -+ - - dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they - dnl are available for $ac_help expansion (don't we all *love* autoconf?) --GLIB_AC_DIVERT_BEFORE_HELP([ -+#AC_DIVERT_PUSH(AC_DIVERSION_NOTICE) -+#dnl - # - # The following version number definitions apply to GLib, GModule and GThread - # as a whole, so if changes occoured in any of them, they are all -@@ -38,7 +76,7 @@ GLIB_INTERFACE_AGE=8 - GLIB_BINARY_AGE=8 - GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION - dnl --]) -+#AC_DIVERT_POP()dnl - - AC_SUBST(GLIB_MAJOR_VERSION) - AC_SUBST(GLIB_MINOR_VERSION) -@@ -72,22 +110,20 @@ AC_DEFINE_UNQUOTED(GLIB_INTERFACE_AGE, $ - AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE) - - dnl Initialize libtool --AC_PROG_LIBTOOL -+AM_PROG_LIBTOOL - - dnl Initialize maintainer mode - AM_MAINTAINER_MODE - --AC_CANONICAL_HOST -- - dnl figure debugging default, prior to $ac_help setup - dnl --GLIB_AC_DIVERT_BEFORE_HELP([ -+#AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl - if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then - debug_default=yes - else - debug_default=minimum - fi --]) dnl -+#AC_DIVERT_POP()dnl - - dnl declare --enable-* args and collect ac_help strings - AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default) -@@ -173,7 +209,9 @@ AC_TRY_RUN([#include - CFLAGS=$glib_save_CFLAGS - AC_MSG_WARN( - [No ANSI prototypes found in library. (-std1 didn't work.)]) -+ , AC_MSG_WARN([Skipping test due to crosscompilation]) - ) -+ , AC_MSG_WARN([Skipping test due to crosscompilation]) - ) - LIBS=$glib_save_LIBS - -@@ -315,7 +353,7 @@ AC_TRY_COMPILE([#include ], - if test $gtk_ok = yes; then - AC_MSG_RESULT([yes, found in sys/types.h]) - else -- AC_HEADER_EGREP(fd_set, sys/select.h, gtk_ok=yes) -+ AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes) - if test $gtk_ok = yes; then - AC_DEFINE(HAVE_SYS_SELECT_H) - AC_MSG_RESULT([yes, found in sys/select.h]) -@@ -388,7 +426,7 @@ AC_CACHE_VAL(glib_cv_sane_realloc,[ - glib_cv_sane_realloc=no - ,) - ]) --if test x$glib_cv_sane_realloc = xyes; then -+if test "x$glib_cv_sane_realloc" = "xyes"; then - AC_DEFINE(REALLOC_0_WORKS) - fi - AC_MSG_RESULT($glib_cv_sane_realloc) -@@ -466,7 +504,8 @@ AC_CACHE_VAL(glib_cv_va_val_copy,[ - ]) - if test "x$glib_cv_va_copy" = "xyes"; then - AC_DEFINE(G_VA_COPY, va_copy) --else if test "x$glib_cv___va_copy" = "xyes"; then -+else -+if test "x$glib_cv___va_copy" = "xyes"; then - AC_DEFINE(G_VA_COPY, __va_copy) - fi - fi -@@ -475,6 +514,7 @@ if test "x$glib_cv_va_val_copy" = "xno"; - fi - AC_MSG_RESULT($glib_cv_va_val_copy) - -+AC_MSG_WARN([hi mom]) - - dnl *********************** - dnl *** g_module checks *** -@@ -485,23 +525,27 @@ dnl G_MODULE_IMPL= don't reset, so cmd-l - G_MODULE_NEED_USCORE=0 - G_MODULE_HAVE_DLERROR=0 - dnl *** dlopen() and dlsym() in system libraries -+AC_CHECK_FUNC(dlopen,[ -+ AC_CHECK_FUNC(dlsym,[ -+ G_MODULE_IMPL=G_MODULE_IMPL_DL -+ ], -+ )], -+) - if test -z "$G_MODULE_IMPL"; then -- AC_CHECK_FUNC(dlopen, -- [AC_CHECK_FUNC(dlsym, -+ AC_CHECK_FUNC(dlopen,[ -+ AC_CHECK_FUNC(dlsym,[ - G_MODULE_IMPL=G_MODULE_IMPL_DL -- ,)] -- ,) -- -+ ])], -+ ) - fi -- - dnl *** dlopen() and dlsym() in libdl - if test -z "$G_MODULE_IMPL"; then -- AC_CHECK_LIB(dl, dlopen, -- [AC_CHECK_LIB(dl, dlsym, -+ AC_CHECK_LIB(dl, dlopen,[ -+ AC_CHECK_LIB(dl, dlsym,[ - G_MODULE_LIBS=-ldl - G_MODULE_IMPL=G_MODULE_IMPL_DL -- ,)] -- ,) -+ ])] -+ ) - fi - dnl *** shl_load() in libdld (HP-UX) - if test -z "$G_MODULE_IMPL"; then -@@ -580,6 +624,7 @@ AC_SUBST(G_MODULE_LDFLAGS) - AC_SUBST(G_MODULE_HAVE_DLERROR) - AC_SUBST(G_MODULE_NEED_USCORE) - AC_SUBST(GLIB_DEBUG_FLAGS) -+AC_MSG_WARN([hi mom]) - - - dnl *********************** -@@ -816,40 +861,50 @@ if test x"$have_threads" != xnone; then - fi - if test x"$have_threads" = xposix; then - LIBS="$LIBS $G_THREAD_LIBS" -- AC_MSG_CHECKING(whether pthread_getspecific is posix like) - # PCThreads has pthread_getspecific(pthread_key_t, void **); -- AC_TRY_COMPILE([#include ], -- [pthread_getspecific(0,NULL);], -- [AC_MSG_RESULT(no)], -- [AC_MSG_RESULT(yes) -- AC_DEFINE(HAVE_PTHREAD_GETSPECIFIC_POSIX)]) -- AC_MSG_CHECKING(whether pthread_mutex_trylock is posix like) -+ AC_CACHE_CHECK([whether pthread_getspecific is posix like], -+ [glib_cv_sys_pthread_getspecific_posix], -+ AC_TRY_COMPILE([#include ], -+ [pthread_getspecific(0,NULL);], -+ [glib_cv_sys_pthread_getspecific_posix=no], -+ [glib_cv_sys_pthread_getspecific_posix=yes]) -+ ) -+ if test x"$glib_cv_sys_pthread_getspecific_posix" = xyes; then -+ AC_DEFINE(HAVE_PTHREAD_GETSPECIFIC_POSIX) -+ fi - # DCE Threads return 1 as success, posix 0. what a mess. -- AC_TRY_RUN([#include -- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -- int main () { -- return !pthread_mutex_trylock (&mutex); }], -- [AC_MSG_RESULT(no)], -- [AC_MSG_RESULT(yes) -- AC_DEFINE(HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX)]) -- AC_MSG_CHECKING(whether pthread_cond_timedwait is posix like) -+ AC_CACHE_CHECK([whether pthread_mutex_trylock is posix like], -+ [glib_cv_sys_pthread_mutex_trylock_posix], -+ AC_TRY_RUN([#include -+ pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -+ int main () { -+ return !pthread_mutex_trylock (&mutex); }], -+ [glib_cv_sys_pthread_mutex_trylock_posix=no], -+ [glib_cv_sys_pthread_mutex_trylock_posix=yes]) -+ ) -+ if test x"$glib_cv_sys_pthread_mutex_trylock_posix" = xyes; then -+ AC_DEFINE(HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX) -+ fi - # DCE Threads return -1 as failure, posix ETIMEDOUT. -- AC_TRY_RUN([#include -- #include -- int main () { -- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -- pthread_cond_t cond = PTHREAD_COND_INITIALIZER; -- struct timeval tval; -- struct timespec tspec; -- gettimeofday (&tval, NULL); -- tspec.tv_sec = tval.tv_sec; -- tspec.tv_nsec = 0; -- pthread_mutex_lock (&mutex); -- return pthread_cond_timedwait (&cond,&mutex,&tspec) -- != -1;}], -- [AC_MSG_RESULT(no)], -- [AC_MSG_RESULT(yes) -- AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_POSIX)]) -+ AC_CACHE_CHECK([whether pthread_cond_timedwait is posix like], -+ [glib_cv_sys_pthread_cond_timedwait_posix], -+ AC_TRY_RUN([#include -+ int main () { -+ pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; -+ pthread_cond_t cond = PTHREAD_COND_INITIALIZER; -+ struct timeval tval; -+ struct timespec tspec; -+ gettimeofday (&tval, NULL); -+ tspec.tv_sec = tval.tv_sec; -+ tspec.tv_nsec = 0; -+ return pthread_cond_timedwait (&cond,&mutex,&tspec) -+ != -1;}], -+ [glib_cv_sys_pthread_cond_timedwait_posix=no], -+ [glib_cv_sys_pthread_cond_timedwait_posix=yes]) -+ ) -+ if test x"$glib_cv_sys_pthread_cond_timedwait_posix" = xyes; then -+ AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_POSIX) -+ fi - fi - LIBS="$glib_save_LIBS" - CFLAGS="$glib_save_CFLAGS" -@@ -893,13 +948,14 @@ GLIB_IF_VAR_EQ(mutex_has_default, yes, - dnl **************************************** - dnl *** GLib POLL* compatibility defines *** - dnl **************************************** -+if test x"$cross_compiling" != xyes; then - GLIB_SYSDEFS( - [#include - #include ], - POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32, - glibconfig-sysdefs.h, - =) -- -+fi - - dnl ****************************** - dnl *** output the whole stuff *** -@@ -956,7 +1012,7 @@ _______EOF - echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile - fi - -- cat >> $outfile <<_______EOF -+ cat >> $outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile - fi - - - -- cat >>$outfile <<_______EOF -+ cat >>$outfile <>$outfile - if test x$g_mutex_has_default = xyes; then -- cat >>$outfile <<_______EOF -+ cat >>$outfile <aligned_pad_u)) : \ - g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex))) --_______EOF -+EOF - else -- cat >>$outfile <<_______EOF -+ cat >>$outfile <>$outfile -@@ -1073,15 +1129,15 @@ _______EOF - g_bit_sizes="$g_bit_sizes 64" - fi - for bits in $g_bit_sizes; do -- cat >>$outfile <<_______EOF -+ cat >>$outfile <>$outfile <<_______EOF -+ cat >>$outfile <>$outfile - fi - - -- cat >>$outfile <<_______EOF -+ cat >>$outfile <data); -+ if (pcsysrootdir != NULL) -+ { -+ if (!strncmp(tmp->data,"-I",2) || -+ !strncmp(tmp->data,"-L",2)) -+ { -+ offset=2; -+ g_string_append_c (str,((char*)tmp->data)[0]); -+ g_string_append_c (str,((char*)tmp->data)[1]); -+ g_string_append (str,pcsysrootdir); -+ } -+ } -+ g_string_append (str, tmp->data+offset); - g_string_append_c (str, ' '); - - tmp = g_slist_next (tmp); -Index: pkg-config-0.22/pkg-config.1 -=================================================================== ---- pkg-config-0.22.orig/pkg-config.1 2007-09-14 10:20:15.000000000 +0100 -+++ pkg-config-0.22/pkg-config.1 2007-09-14 10:23:08.000000000 +0100 -@@ -260,6 +260,15 @@ Don't strip -I/usr/include out of cflags - Don't strip -L/usr/lib out of libs - - .TP -+.I "PKG_CONFIG_SYSROOT_DIR" -+Modify -I and -L to use the directories located in target sysroot. -+this option is usefull when crosscompiling package that use pkg-config -+to determine CFLAGS anf LDFLAGS. -I and -L are modified to point to -+the new system root. this means that a -I/usr/include/libfoo will -+become -I/var/target/usr/include/libfoo with a PKG_CONFIG_SYSROOT_DIR -+equal to /var/target (same rule apply to -L) -+ -+.TP - .I "PKG_CONFIG_LIBDIR" - Replaces the default \fIpkg-config\fP search directory. - -Index: pkg-config-0.22/pkg.h -=================================================================== ---- pkg-config-0.22.orig/pkg.h 2007-09-14 10:20:15.000000000 +0100 -+++ pkg-config-0.22/pkg.h 2007-09-14 10:22:41.000000000 +0100 -@@ -123,6 +123,9 @@ void disable_private_libs(void); - /* If TRUE, do not automatically prefer uninstalled versions */ - extern gboolean disable_uninstalled; - -+/* string that contain environment */ -+extern char* pcsysrootdir; -+ - #ifdef G_OS_WIN32 - /* If TRUE, do not automatically define "prefix" while - * parsing each .pc file */ diff --git a/packages/pkgconfig/pkgconfig-native_0.15.0.bb b/packages/pkgconfig/pkgconfig-native_0.15.0.bb deleted file mode 100644 index daab8ab422..0000000000 --- a/packages/pkgconfig/pkgconfig-native_0.15.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -SECTION = "console/utils" -require pkgconfig_${PV}.bb -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/pkgconfig-${PV}" - -S = "${WORKDIR}/pkgconfig-${PV}" -inherit native -DEPENDS = "" diff --git a/packages/pkgconfig/pkgconfig-native_0.22.bb b/packages/pkgconfig/pkgconfig-native_0.22.bb deleted file mode 100644 index 0821fb8a69..0000000000 --- a/packages/pkgconfig/pkgconfig-native_0.22.bb +++ /dev/null @@ -1,13 +0,0 @@ -SECTION = "console/utils" -require pkgconfig.inc -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/pkgconfig-${PV}" - -S = "${WORKDIR}/pkg-config-${PV}/" -inherit native -DEPENDS = "" - -do_configure() { - gnu-configize - libtoolize --force - oe_runconf -} diff --git a/packages/pkgconfig/pkgconfig-native_0.23.bb b/packages/pkgconfig/pkgconfig-native_0.23.bb index c4028ab43c..24497a9866 100644 --- a/packages/pkgconfig/pkgconfig-native_0.23.bb +++ b/packages/pkgconfig/pkgconfig-native_0.23.bb @@ -1,8 +1,6 @@ require pkgconfig.inc FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/pkgconfig-${PV}" -DEFAULT_PREFERENCE = "-1" - S = "${WORKDIR}/pkg-config-${PV}/" inherit native DEPENDS = "" diff --git a/packages/pkgconfig/pkgconfig_0.15.0.bb b/packages/pkgconfig/pkgconfig_0.15.0.bb deleted file mode 100644 index 31fc7820fe..0000000000 --- a/packages/pkgconfig/pkgconfig_0.15.0.bb +++ /dev/null @@ -1,26 +0,0 @@ -SECTION = "console/utils" -DESCRIPTION = "pkg-config is a system for managing library \ -compile/link flags that works with automake and autoconf. \ -It replaces the ubiquitous *-config scripts you may have \ -seen with a single tool." -HOMEPAGE = "http://www.freedesktop.org/software/pkgconfig/" -LICENSE = "GPL" -PR = "r2" - -SRC_URI = "http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-${PV}.tar.gz \ - file://configure.patch;patch=1 \ - file://pkg.m4 \ - file://glibconfig-sysdefs.h" - -inherit autotools - -acpaths = "-I ." -do_configure_prepend () { - install -m 0644 ${WORKDIR}/glibconfig-sysdefs.h glib-1.2.8/ - install -m 0644 ${WORKDIR}/pkg.m4 ${S}/ -} - -do_stage_append() { - install -d -m 0755 ${STAGING_DATADIR}/pkgconfig - -} diff --git a/packages/pkgconfig/pkgconfig_0.22.bb b/packages/pkgconfig/pkgconfig_0.22.bb deleted file mode 100644 index a0f5241a12..0000000000 --- a/packages/pkgconfig/pkgconfig_0.22.bb +++ /dev/null @@ -1,2 +0,0 @@ -require pkgconfig.inc - diff --git a/packages/pkgconfig/pkgconfig_0.23.bb b/packages/pkgconfig/pkgconfig_0.23.bb index 154e302844..10ce0fc9c3 100644 --- a/packages/pkgconfig/pkgconfig_0.23.bb +++ b/packages/pkgconfig/pkgconfig_0.23.bb @@ -1,6 +1,4 @@ require pkgconfig.inc -DEFAULT_PREFERENCE = "-1" - DEPENDS += "glib-2.0" EXTRA_OECONF = "--with-installed-glib" -- cgit 1.2.3-korg From eb1b5e3f9128e721dc7d19738248b56740d44ac7 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Wed, 25 Feb 2009 09:52:42 +0100 Subject: linux-openmoko-devel: bump to latest andy-tracking; remove patches applied upstream --- conf/distro/include/sane-srcrevs.inc | 2 +- .../0001-squashfs-with-lzma.patch | 5342 -------------------- .../0002-squashfs-initrd.patch | 55 - .../0003-squashfs-force-O2.patch | 17 - .../0004-squashfs-Kconfig.patch | 61 - .../0005-squashfs-Makefile.patch | 12 - .../linux/linux-openmoko-devel/defconfig-oe.patch | 25 - .../openwrt-ledtrig-netdev.patch | 474 -- packages/linux/linux-openmoko-devel_git.bb | 4 +- 9 files changed, 2 insertions(+), 5990 deletions(-) delete mode 100644 packages/linux/linux-openmoko-devel/0001-squashfs-with-lzma.patch delete mode 100644 packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch delete mode 100644 packages/linux/linux-openmoko-devel/0003-squashfs-force-O2.patch delete mode 100644 packages/linux/linux-openmoko-devel/0004-squashfs-Kconfig.patch delete mode 100644 packages/linux/linux-openmoko-devel/0005-squashfs-Makefile.patch delete mode 100644 packages/linux/linux-openmoko-devel/openwrt-ledtrig-netdev.patch diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index eef8be6571..64e29878af 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -103,7 +103,7 @@ SRCREV_pn-linux-hackndev-2.6 ?= "1308" SRCREV_pn-linux-ixp4xx ?= "1085" SRCREV_pn-linux-openmoko-2.6.24 ?= "fb42ce6724576fc173faf8abfb04aa2c36d213b7" SRCREV_pn-linux-openmoko-2.6.28 ?= "34240a1c06ae36180dee695aa25bbae869b2aa26" -SRCREV_pn-linux-openmoko-devel ?= "498d0953423a504cd24d11a0307e0ec01b81b68d" +SRCREV_pn-linux-openmoko-devel ?= "b9aa5bf345a0b802af0d10b6cf1079738fe4fd12" SRCREV_pn-linux-eten ?= "ab2d414f4f13816af0ec0401b608133ca946624a" SRCREV_pn-llvm-gcc4 ?= "374" SRCREV_pn-llvm-gcc4-cross ?= "374" diff --git a/packages/linux/linux-openmoko-devel/0001-squashfs-with-lzma.patch b/packages/linux/linux-openmoko-devel/0001-squashfs-with-lzma.patch deleted file mode 100644 index 04d47fe16f..0000000000 --- a/packages/linux/linux-openmoko-devel/0001-squashfs-with-lzma.patch +++ /dev/null @@ -1,5342 +0,0 @@ - -diff -urN linux-2.6.23/fs/squashfs/LzmaDecode.c linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.c ---- linux-2.6.23/fs/squashfs/LzmaDecode.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.c 2007-11-13 19:45:12.000000000 -0500 -@@ -0,0 +1,584 @@ -+/* -+ LzmaDecode.c -+ LZMA Decoder (optimized for Speed version) -+ -+ LZMA SDK 4.40 Copyright (c) 1999-2006 Igor Pavlov (2006-05-01) -+ http://www.7-zip.org/ -+ -+ LZMA SDK is licensed under two licenses: -+ 1) GNU Lesser General Public License (GNU LGPL) -+ 2) Common Public License (CPL) -+ It means that you can select one of these two licenses and -+ follow rules of that license. -+ -+ SPECIAL EXCEPTION: -+ Igor Pavlov, as the author of this Code, expressly permits you to -+ statically or dynamically link your Code (or bind by name) to the -+ interfaces of this file without subjecting your linked Code to the -+ terms of the CPL or GNU LGPL. Any modifications or additions -+ to this file, however, are subject to the LGPL or CPL terms. -+*/ -+ -+#include "LzmaDecode.h" -+ -+#define kNumTopBits 24 -+#define kTopValue ((UInt32)1 << kNumTopBits) -+ -+#define kNumBitModelTotalBits 11 -+#define kBitModelTotal (1 << kNumBitModelTotalBits) -+#define kNumMoveBits 5 -+ -+#define RC_READ_BYTE (*Buffer++) -+ -+#define RC_INIT2 Code = 0; Range = 0xFFFFFFFF; \ -+ { int i; for(i = 0; i < 5; i++) { RC_TEST; Code = (Code << 8) | RC_READ_BYTE; }} -+ -+#ifdef _LZMA_IN_CB -+ -+#define RC_TEST { if (Buffer == BufferLim) \ -+ { SizeT size; int result = InCallback->Read(InCallback, &Buffer, &size); if (result != LZMA_RESULT_OK) return result; \ -+ BufferLim = Buffer + size; if (size == 0) return LZMA_RESULT_DATA_ERROR; }} -+ -+#define RC_INIT Buffer = BufferLim = 0; RC_INIT2 -+ -+#else -+ -+#define RC_TEST { if (Buffer == BufferLim) return LZMA_RESULT_DATA_ERROR; } -+ -+#define RC_INIT(buffer, bufferSize) Buffer = buffer; BufferLim = buffer + bufferSize; RC_INIT2 -+ -+#endif -+ -+#define RC_NORMALIZE if (Range < kTopValue) { RC_TEST; Range <<= 8; Code = (Code << 8) | RC_READ_BYTE; } -+ -+#define IfBit0(p) RC_NORMALIZE; bound = (Range >> kNumBitModelTotalBits) * *(p); if (Code < bound) -+#define UpdateBit0(p) Range = bound; *(p) += (kBitModelTotal - *(p)) >> kNumMoveBits; -+#define UpdateBit1(p) Range -= bound; Code -= bound; *(p) -= (*(p)) >> kNumMoveBits; -+ -+#define RC_GET_BIT2(p, mi, A0, A1) IfBit0(p) \ -+ { UpdateBit0(p); mi <<= 1; A0; } else \ -+ { UpdateBit1(p); mi = (mi + mi) + 1; A1; } -+ -+#define RC_GET_BIT(p, mi) RC_GET_BIT2(p, mi, ; , ;) -+ -+#define RangeDecoderBitTreeDecode(probs, numLevels, res) \ -+ { int i = numLevels; res = 1; \ -+ do { CProb *p = probs + res; RC_GET_BIT(p, res) } while(--i != 0); \ -+ res -= (1 << numLevels); } -+ -+ -+#define kNumPosBitsMax 4 -+#define kNumPosStatesMax (1 << kNumPosBitsMax) -+ -+#define kLenNumLowBits 3 -+#define kLenNumLowSymbols (1 << kLenNumLowBits) -+#define kLenNumMidBits 3 -+#define kLenNumMidSymbols (1 << kLenNumMidBits) -+#define kLenNumHighBits 8 -+#define kLenNumHighSymbols (1 << kLenNumHighBits) -+ -+#define LenChoice 0 -+#define LenChoice2 (LenChoice + 1) -+#define LenLow (LenChoice2 + 1) -+#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits)) -+#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits)) -+#define kNumLenProbs (LenHigh + kLenNumHighSymbols) -+ -+ -+#define kNumStates 12 -+#define kNumLitStates 7 -+ -+#define kStartPosModelIndex 4 -+#define kEndPosModelIndex 14 -+#define kNumFullDistances (1 << (kEndPosModelIndex >> 1)) -+ -+#define kNumPosSlotBits 6 -+#define kNumLenToPosStates 4 -+ -+#define kNumAlignBits 4 -+#define kAlignTableSize (1 << kNumAlignBits) -+ -+#define kMatchMinLen 2 -+ -+#define IsMatch 0 -+#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax)) -+#define IsRepG0 (IsRep + kNumStates) -+#define IsRepG1 (IsRepG0 + kNumStates) -+#define IsRepG2 (IsRepG1 + kNumStates) -+#define IsRep0Long (IsRepG2 + kNumStates) -+#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax)) -+#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits)) -+#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex) -+#define LenCoder (Align + kAlignTableSize) -+#define RepLenCoder (LenCoder + kNumLenProbs) -+#define Literal (RepLenCoder + kNumLenProbs) -+ -+#if Literal != LZMA_BASE_SIZE -+StopCompilingDueBUG -+#endif -+ -+int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size) -+{ -+ unsigned char prop0; -+ if (size < LZMA_PROPERTIES_SIZE) -+ return LZMA_RESULT_DATA_ERROR; -+ prop0 = propsData[0]; -+ if (prop0 >= (9 * 5 * 5)) -+ return LZMA_RESULT_DATA_ERROR; -+ { -+ for (propsRes->pb = 0; prop0 >= (9 * 5); propsRes->pb++, prop0 -= (9 * 5)); -+ for (propsRes->lp = 0; prop0 >= 9; propsRes->lp++, prop0 -= 9); -+ propsRes->lc = prop0; -+ /* -+ unsigned char remainder = (unsigned char)(prop0 / 9); -+ propsRes->lc = prop0 % 9; -+ propsRes->pb = remainder / 5; -+ propsRes->lp = remainder % 5; -+ */ -+ } -+ -+ #ifdef _LZMA_OUT_READ -+ { -+ int i; -+ propsRes->DictionarySize = 0; -+ for (i = 0; i < 4; i++) -+ propsRes->DictionarySize += (UInt32)(propsData[1 + i]) << (i * 8); -+ if (propsRes->DictionarySize == 0) -+ propsRes->DictionarySize = 1; -+ } -+ #endif -+ return LZMA_RESULT_OK; -+} -+ -+#define kLzmaStreamWasFinishedId (-1) -+ -+int LzmaDecode(CLzmaDecoderState *vs, -+ #ifdef _LZMA_IN_CB -+ ILzmaInCallback *InCallback, -+ #else -+ const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed, -+ #endif -+ unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed) -+{ -+ CProb *p = vs->Probs; -+ SizeT nowPos = 0; -+ Byte previousByte = 0; -+ UInt32 posStateMask = (1 << (vs->Properties.pb)) - 1; -+ UInt32 literalPosMask = (1 << (vs->Properties.lp)) - 1; -+ int lc = vs->Properties.lc; -+ -+ #ifdef _LZMA_OUT_READ -+ -+ UInt32 Range = vs->Range; -+ UInt32 Code = vs->Code; -+ #ifdef _LZMA_IN_CB -+ const Byte *Buffer = vs->Buffer; -+ const Byte *BufferLim = vs->BufferLim; -+ #else -+ const Byte *Buffer = inStream; -+ const Byte *BufferLim = inStream + inSize; -+ #endif -+ int state = vs->State; -+ UInt32 rep0 = vs->Reps[0], rep1 = vs->Reps[1], rep2 = vs->Reps[2], rep3 = vs->Reps[3]; -+ int len = vs->RemainLen; -+ UInt32 globalPos = vs->GlobalPos; -+ UInt32 distanceLimit = vs->DistanceLimit; -+ -+ Byte *dictionary = vs->Dictionary; -+ UInt32 dictionarySize = vs->Properties.DictionarySize; -+ UInt32 dictionaryPos = vs->DictionaryPos; -+ -+ Byte tempDictionary[4]; -+ -+ #ifndef _LZMA_IN_CB -+ *inSizeProcessed = 0; -+ #endif -+ *outSizeProcessed = 0; -+ if (len == kLzmaStreamWasFinishedId) -+ return LZMA_RESULT_OK; -+ -+ if (dictionarySize == 0) -+ { -+ dictionary = tempDictionary; -+ dictionarySize = 1; -+ tempDictionary[0] = vs->TempDictionary[0]; -+ } -+ -+ if (len == kLzmaNeedInitId) -+ { -+ { -+ UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp)); -+ UInt32 i; -+ for (i = 0; i < numProbs; i++) -+ p[i] = kBitModelTotal >> 1; -+ rep0 = rep1 = rep2 = rep3 = 1; -+ state = 0; -+ globalPos = 0; -+ distanceLimit = 0; -+ dictionaryPos = 0; -+ dictionary[dictionarySize - 1] = 0; -+ #ifdef _LZMA_IN_CB -+ RC_INIT; -+ #else -+ RC_INIT(inStream, inSize); -+ #endif -+ } -+ len = 0; -+ } -+ while(len != 0 && nowPos < outSize) -+ { -+ UInt32 pos = dictionaryPos - rep0; -+ if (pos >= dictionarySize) -+ pos += dictionarySize; -+ outStream[nowPos++] = dictionary[dictionaryPos] = dictionary[pos]; -+ if (++dictionaryPos == dictionarySize) -+ dictionaryPos = 0; -+ len--; -+ } -+ if (dictionaryPos == 0) -+ previousByte = dictionary[dictionarySize - 1]; -+ else -+ previousByte = dictionary[dictionaryPos - 1]; -+ -+ #else /* if !_LZMA_OUT_READ */ -+ -+ int state = 0; -+ UInt32 rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1; -+ int len = 0; -+ const Byte *Buffer; -+ const Byte *BufferLim; -+ UInt32 Range; -+ UInt32 Code; -+ -+ #ifndef _LZMA_IN_CB -+ *inSizeProcessed = 0; -+ #endif -+ *outSizeProcessed = 0; -+ -+ { -+ UInt32 i; -+ UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp)); -+ for (i = 0; i < numProbs; i++) -+ p[i] = kBitModelTotal >> 1; -+ } -+ -+ #ifdef _LZMA_IN_CB -+ RC_INIT; -+ #else -+ RC_INIT(inStream, inSize); -+ #endif -+ -+ #endif /* _LZMA_OUT_READ */ -+ -+ while(nowPos < outSize) -+ { -+ CProb *prob; -+ UInt32 bound; -+ int posState = (int)( -+ (nowPos -+ #ifdef _LZMA_OUT_READ -+ + globalPos -+ #endif -+ ) -+ & posStateMask); -+ -+ prob = p + IsMatch + (state << kNumPosBitsMax) + posState; -+ IfBit0(prob) -+ { -+ int symbol = 1; -+ UpdateBit0(prob) -+ prob = p + Literal + (LZMA_LIT_SIZE * -+ ((( -+ (nowPos -+ #ifdef _LZMA_OUT_READ -+ + globalPos -+ #endif -+ ) -+ & literalPosMask) << lc) + (previousByte >> (8 - lc)))); -+ -+ if (state >= kNumLitStates) -+ { -+ int matchByte; -+ #ifdef _LZMA_OUT_READ -+ UInt32 pos = dictionaryPos - rep0; -+ if (pos >= dictionarySize) -+ pos += dictionarySize; -+ matchByte = dictionary[pos]; -+ #else -+ matchByte = outStream[nowPos - rep0]; -+ #endif -+ do -+ { -+ int bit; -+ CProb *probLit; -+ matchByte <<= 1; -+ bit = (matchByte & 0x100); -+ probLit = prob + 0x100 + bit + symbol; -+ RC_GET_BIT2(probLit, symbol, if (bit != 0) break, if (bit == 0) break) -+ } -+ while (symbol < 0x100); -+ } -+ while (symbol < 0x100) -+ { -+ CProb *probLit = prob + symbol; -+ RC_GET_BIT(probLit, symbol) -+ } -+ previousByte = (Byte)symbol; -+ -+ outStream[nowPos++] = previousByte; -+ #ifdef _LZMA_OUT_READ -+ if (distanceLimit < dictionarySize) -+ distanceLimit++; -+ -+ dictionary[dictionaryPos] = previousByte; -+ if (++dictionaryPos == dictionarySize) -+ dictionaryPos = 0; -+ #endif -+ if (state < 4) state = 0; -+ else if (state < 10) state -= 3; -+ else state -= 6; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ prob = p + IsRep + state; -+ IfBit0(prob) -+ { -+ UpdateBit0(prob); -+ rep3 = rep2; -+ rep2 = rep1; -+ rep1 = rep0; -+ state = state < kNumLitStates ? 0 : 3; -+ prob = p + LenCoder; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ prob = p + IsRepG0 + state; -+ IfBit0(prob) -+ { -+ UpdateBit0(prob); -+ prob = p + IsRep0Long + (state << kNumPosBitsMax) + posState; -+ IfBit0(prob) -+ { -+ #ifdef _LZMA_OUT_READ -+ UInt32 pos; -+ #endif -+ UpdateBit0(prob); -+ -+ #ifdef _LZMA_OUT_READ -+ if (distanceLimit == 0) -+ #else -+ if (nowPos == 0) -+ #endif -+ return LZMA_RESULT_DATA_ERROR; -+ -+ state = state < kNumLitStates ? 9 : 11; -+ #ifdef _LZMA_OUT_READ -+ pos = dictionaryPos - rep0; -+ if (pos >= dictionarySize) -+ pos += dictionarySize; -+ previousByte = dictionary[pos]; -+ dictionary[dictionaryPos] = previousByte; -+ if (++dictionaryPos == dictionarySize) -+ dictionaryPos = 0; -+ #else -+ previousByte = outStream[nowPos - rep0]; -+ #endif -+ outStream[nowPos++] = previousByte; -+ #ifdef _LZMA_OUT_READ -+ if (distanceLimit < dictionarySize) -+ distanceLimit++; -+ #endif -+ -+ continue; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ } -+ } -+ else -+ { -+ UInt32 distance; -+ UpdateBit1(prob); -+ prob = p + IsRepG1 + state; -+ IfBit0(prob) -+ { -+ UpdateBit0(prob); -+ distance = rep1; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ prob = p + IsRepG2 + state; -+ IfBit0(prob) -+ { -+ UpdateBit0(prob); -+ distance = rep2; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ distance = rep3; -+ rep3 = rep2; -+ } -+ rep2 = rep1; -+ } -+ rep1 = rep0; -+ rep0 = distance; -+ } -+ state = state < kNumLitStates ? 8 : 11; -+ prob = p + RepLenCoder; -+ } -+ { -+ int numBits, offset; -+ CProb *probLen = prob + LenChoice; -+ IfBit0(probLen) -+ { -+ UpdateBit0(probLen); -+ probLen = prob + LenLow + (posState << kLenNumLowBits); -+ offset = 0; -+ numBits = kLenNumLowBits; -+ } -+ else -+ { -+ UpdateBit1(probLen); -+ probLen = prob + LenChoice2; -+ IfBit0(probLen) -+ { -+ UpdateBit0(probLen); -+ probLen = prob + LenMid + (posState << kLenNumMidBits); -+ offset = kLenNumLowSymbols; -+ numBits = kLenNumMidBits; -+ } -+ else -+ { -+ UpdateBit1(probLen); -+ probLen = prob + LenHigh; -+ offset = kLenNumLowSymbols + kLenNumMidSymbols; -+ numBits = kLenNumHighBits; -+ } -+ } -+ RangeDecoderBitTreeDecode(probLen, numBits, len); -+ len += offset; -+ } -+ -+ if (state < 4) -+ { -+ int posSlot; -+ state += kNumLitStates; -+ prob = p + PosSlot + -+ ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << -+ kNumPosSlotBits); -+ RangeDecoderBitTreeDecode(prob, kNumPosSlotBits, posSlot); -+ if (posSlot >= kStartPosModelIndex) -+ { -+ int numDirectBits = ((posSlot >> 1) - 1); -+ rep0 = (2 | ((UInt32)posSlot & 1)); -+ if (posSlot < kEndPosModelIndex) -+ { -+ rep0 <<= numDirectBits; -+ prob = p + SpecPos + rep0 - posSlot - 1; -+ } -+ else -+ { -+ numDirectBits -= kNumAlignBits; -+ do -+ { -+ RC_NORMALIZE -+ Range >>= 1; -+ rep0 <<= 1; -+ if (Code >= Range) -+ { -+ Code -= Range; -+ rep0 |= 1; -+ } -+ } -+ while (--numDirectBits != 0); -+ prob = p + Align; -+ rep0 <<= kNumAlignBits; -+ numDirectBits = kNumAlignBits; -+ } -+ { -+ int i = 1; -+ int mi = 1; -+ do -+ { -+ CProb *prob3 = prob + mi; -+ RC_GET_BIT2(prob3, mi, ; , rep0 |= i); -+ i <<= 1; -+ } -+ while(--numDirectBits != 0); -+ } -+ } -+ else -+ rep0 = posSlot; -+ if (++rep0 == (UInt32)(0)) -+ { -+ /* it's for stream version */ -+ len = kLzmaStreamWasFinishedId; -+ break; -+ } -+ } -+ -+ len += kMatchMinLen; -+ #ifdef _LZMA_OUT_READ -+ if (rep0 > distanceLimit) -+ #else -+ if (rep0 > nowPos) -+ #endif -+ return LZMA_RESULT_DATA_ERROR; -+ -+ #ifdef _LZMA_OUT_READ -+ if (dictionarySize - distanceLimit > (UInt32)len) -+ distanceLimit += len; -+ else -+ distanceLimit = dictionarySize; -+ #endif -+ -+ do -+ { -+ #ifdef _LZMA_OUT_READ -+ UInt32 pos = dictionaryPos - rep0; -+ if (pos >= dictionarySize) -+ pos += dictionarySize; -+ previousByte = dictionary[pos]; -+ dictionary[dictionaryPos] = previousByte; -+ if (++dictionaryPos == dictionarySize) -+ dictionaryPos = 0; -+ #else -+ previousByte = outStream[nowPos - rep0]; -+ #endif -+ len--; -+ outStream[nowPos++] = previousByte; -+ } -+ while(len != 0 && nowPos < outSize); -+ } -+ } -+ RC_NORMALIZE; -+ -+ #ifdef _LZMA_OUT_READ -+ vs->Range = Range; -+ vs->Code = Code; -+ vs->DictionaryPos = dictionaryPos; -+ vs->GlobalPos = globalPos + (UInt32)nowPos; -+ vs->DistanceLimit = distanceLimit; -+ vs->Reps[0] = rep0; -+ vs->Reps[1] = rep1; -+ vs->Reps[2] = rep2; -+ vs->Reps[3] = rep3; -+ vs->State = state; -+ vs->RemainLen = len; -+ vs->TempDictionary[0] = tempDictionary[0]; -+ #endif -+ -+ #ifdef _LZMA_IN_CB -+ vs->Buffer = Buffer; -+ vs->BufferLim = BufferLim; -+ #else -+ *inSizeProcessed = (SizeT)(Buffer - inStream); -+ #endif -+ *outSizeProcessed = nowPos; -+ return LZMA_RESULT_OK; -+} -diff -urN linux-2.6.23/fs/squashfs/LzmaDecode.h linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.h ---- linux-2.6.23/fs/squashfs/LzmaDecode.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.h 2007-11-13 19:45:12.000000000 -0500 -@@ -0,0 +1,113 @@ -+/* -+ LzmaDecode.h -+ LZMA Decoder interface -+ -+ LZMA SDK 4.40 Copyright (c) 1999-2006 Igor Pavlov (2006-05-01) -+ http://www.7-zip.org/ -+ -+ LZMA SDK is licensed under two licenses: -+ 1) GNU Lesser General Public License (GNU LGPL) -+ 2) Common Public License (CPL) -+ It means that you can select one of these two licenses and -+ follow rules of that license. -+ -+ SPECIAL EXCEPTION: -+ Igor Pavlov, as the author of this code, expressly permits you to -+ statically or dynamically link your code (or bind by name) to the -+ interfaces of this file without subjecting your linked code to the -+ terms of the CPL or GNU LGPL. Any modifications or additions -+ to this file, however, are subject to the LGPL or CPL terms. -+*/ -+ -+#ifndef __LZMADECODE_H -+#define __LZMADECODE_H -+ -+#include "LzmaTypes.h" -+ -+/* #define _LZMA_IN_CB */ -+/* Use callback for input data */ -+ -+/* #define _LZMA_OUT_READ */ -+/* Use read function for output data */ -+ -+/* #define _LZMA_PROB32 */ -+/* It can increase speed on some 32-bit CPUs, -+ but memory usage will be doubled in that case */ -+ -+/* #define _LZMA_LOC_OPT */ -+/* Enable local speed optimizations inside code */ -+ -+#ifdef _LZMA_PROB32 -+#define CProb UInt32 -+#else -+#define CProb UInt16 -+#endif -+ -+#define LZMA_RESULT_OK 0 -+#define LZMA_RESULT_DATA_ERROR 1 -+ -+#ifdef _LZMA_IN_CB -+typedef struct _ILzmaInCallback -+{ -+ int (*Read)(void *object, const unsigned char **buffer, SizeT *bufferSize); -+} ILzmaInCallback; -+#endif -+ -+#define LZMA_BASE_SIZE 1846 -+#define LZMA_LIT_SIZE 768 -+ -+#define LZMA_PROPERTIES_SIZE 5 -+ -+typedef struct _CLzmaProperties -+{ -+ int lc; -+ int lp; -+ int pb; -+ #ifdef _LZMA_OUT_READ -+ UInt32 DictionarySize; -+ #endif -+}CLzmaProperties; -+ -+int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size); -+ -+#define LzmaGetNumProbs(Properties) (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((Properties)->lc + (Properties)->lp))) -+ -+#define kLzmaNeedInitId (-2) -+ -+typedef struct _CLzmaDecoderState -+{ -+ CLzmaProperties Properties; -+ CProb *Probs; -+ -+ #ifdef _LZMA_IN_CB -+ const unsigned char *Buffer; -+ const unsigned char *BufferLim; -+ #endif -+ -+ #ifdef _LZMA_OUT_READ -+ unsigned char *Dictionary; -+ UInt32 Range; -+ UInt32 Code; -+ UInt32 DictionaryPos; -+ UInt32 GlobalPos; -+ UInt32 DistanceLimit; -+ UInt32 Reps[4]; -+ int State; -+ int RemainLen; -+ unsigned char TempDictionary[4]; -+ #endif -+} CLzmaDecoderState; -+ -+#ifdef _LZMA_OUT_READ -+#define LzmaDecoderInit(vs) { (vs)->RemainLen = kLzmaNeedInitId; } -+#endif -+ -+int LzmaDecode(CLzmaDecoderState *vs, -+ #ifdef _LZMA_IN_CB -+ ILzmaInCallback *inCallback, -+ #else -+ const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed, -+ #endif -+ unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed); -+ -+#endif -diff -urN linux-2.6.23/fs/squashfs/LzmaTypes.h linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaTypes.h ---- linux-2.6.23/fs/squashfs/LzmaTypes.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaTypes.h 2007-11-13 19:47:32.000000000 -0500 -@@ -0,0 +1,45 @@ -+/* -+LzmaTypes.h -+ -+Types for LZMA Decoder -+ -+This file written and distributed to public domain by Igor Pavlov. -+This file is part of LZMA SDK 4.40 (2006-05-01) -+*/ -+ -+#ifndef __LZMATYPES_H -+#define __LZMATYPES_H -+ -+#ifndef _7ZIP_BYTE_DEFINED -+#define _7ZIP_BYTE_DEFINED -+typedef unsigned char Byte; -+#endif -+ -+#ifndef _7ZIP_UINT16_DEFINED -+#define _7ZIP_UINT16_DEFINED -+typedef unsigned short UInt16; -+#endif -+ -+#ifndef _7ZIP_UINT32_DEFINED -+#define _7ZIP_UINT32_DEFINED -+#ifdef _LZMA_UINT32_IS_ULONG -+typedef unsigned long UInt32; -+#else -+typedef unsigned int UInt32; -+#endif -+#endif -+ -+/* #define _LZMA_NO_SYSTEM_SIZE_T */ -+/* You can use it, if you don't want */ -+ -+#ifndef _7ZIP_SIZET_DEFINED -+#define _7ZIP_SIZET_DEFINED -+#ifdef _LZMA_NO_SYSTEM_SIZE_T -+typedef UInt32 SizeT; -+#else -+#include -+typedef size_t SizeT; -+#endif -+#endif -+ -+#endif -diff -urN linux-2.6.23/fs/squashfs/Makefile linux-2.6.23.sqlzma-ng/fs/squashfs/Makefile ---- linux-2.6.23/fs/squashfs/Makefile 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/Makefile 2007-11-13 19:52:56.000000000 -0500 -@@ -0,0 +1,10 @@ -+# -+# Makefile for the linux squashfs routines. -+# -+ -+ -+obj-$(CONFIG_SQUASHFS) += unlzma.o sqlzma.o squashfs.o -+unlzma-y += module.o -+sqlzma-y += uncomp.o -+squashfs-y += inode.o -+squashfs-y += squashfs2_0.o -diff -urN linux-2.6.23/fs/squashfs/inode.c linux-2.6.23.sqlzma-ng/fs/squashfs/inode.c ---- linux-2.6.23/fs/squashfs/inode.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/inode.c 2007-11-13 19:14:24.000000000 -0500 -@@ -0,0 +1,2312 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * inode.c -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "squashfs.h" -+#include "sqlzma.h" -+ -+#undef KeepPreemptive -+#if defined(CONFIG_PREEMPT) && !defined(UnsquashNoPreempt) -+#define KeepPreemptive -+#endif -+ -+struct sqlzma { -+#ifdef KeepPreemptive -+ struct mutex mtx; -+#endif -+ unsigned char read_data[SQUASHFS_FILE_MAX_SIZE]; -+ struct sqlzma_un un; -+}; -+static DEFINE_PER_CPU(struct sqlzma *, sqlzma); -+ -+#define dpri(fmt, args...) /* printk("%s:%d: " fmt, __func__, __LINE__, ##args) */ -+#define dpri_un(un) dpri("un{%d, {%d %p}, {%d %p}, {%d %p}}\n", \ -+ (un)->un_lzma, (un)->un_a[0].sz, (un)->un_a[0].buf, \ -+ (un)->un_a[1].sz, (un)->un_a[1].buf, \ -+ (un)->un_a[2].sz, (un)->un_a[2].buf) -+ -+static int squashfs_cached_blks; -+ -+static void vfs_read_inode(struct inode *i); -+static struct dentry *squashfs_get_parent(struct dentry *child); -+static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode); -+static int squashfs_statfs(struct dentry *, struct kstatfs *); -+static int squashfs_symlink_readpage(struct file *file, struct page *page); -+static long long read_blocklist(struct inode *inode, int index, -+ int readahead_blks, char *block_list, -+ unsigned short **block_p, unsigned int *bsize); -+static int squashfs_readpage(struct file *file, struct page *page); -+static int squashfs_readdir(struct file *, void *, filldir_t); -+static struct dentry *squashfs_lookup(struct inode *, struct dentry *, -+ struct nameidata *); -+static int squashfs_remount(struct super_block *s, int *flags, char *data); -+static void squashfs_put_super(struct super_block *); -+static int squashfs_get_sb(struct file_system_type *,int, const char *, void *, -+ struct vfsmount *); -+static struct inode *squashfs_alloc_inode(struct super_block *sb); -+static void squashfs_destroy_inode(struct inode *inode); -+static int init_inodecache(void); -+static void destroy_inodecache(void); -+ -+static struct file_system_type squashfs_fs_type = { -+ .owner = THIS_MODULE, -+ .name = "squashfs", -+ .get_sb = squashfs_get_sb, -+ .kill_sb = kill_block_super, -+ .fs_flags = FS_REQUIRES_DEV -+}; -+ -+static const unsigned char squashfs_filetype_table[] = { -+ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK -+}; -+ -+static struct super_operations squashfs_super_ops = { -+ .alloc_inode = squashfs_alloc_inode, -+ .destroy_inode = squashfs_destroy_inode, -+ .statfs = squashfs_statfs, -+ .put_super = squashfs_put_super, -+ .remount_fs = squashfs_remount -+}; -+ -+static struct super_operations squashfs_export_super_ops = { -+ .alloc_inode = squashfs_alloc_inode, -+ .destroy_inode = squashfs_destroy_inode, -+ .statfs = squashfs_statfs, -+ .put_super = squashfs_put_super, -+ .read_inode = vfs_read_inode -+}; -+ -+static struct export_operations squashfs_export_ops = { -+ .get_parent = squashfs_get_parent -+}; -+ -+SQSH_EXTERN const struct address_space_operations squashfs_symlink_aops = { -+ .readpage = squashfs_symlink_readpage -+}; -+ -+SQSH_EXTERN const struct address_space_operations squashfs_aops = { -+ .readpage = squashfs_readpage -+}; -+ -+static const struct file_operations squashfs_dir_ops = { -+ .read = generic_read_dir, -+ .readdir = squashfs_readdir -+}; -+ -+SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = { -+ .lookup = squashfs_lookup -+}; -+ -+ -+static struct buffer_head *get_block_length(struct super_block *s, -+ int *cur_index, int *offset, int *c_byte) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ unsigned short temp; -+ struct buffer_head *bh; -+ -+ if (!(bh = sb_bread(s, *cur_index))) -+ goto out; -+ -+ if (msblk->devblksize - *offset == 1) { -+ if (msblk->swap) -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ else -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ brelse(bh); -+ if (!(bh = sb_bread(s, ++(*cur_index)))) -+ goto out; -+ if (msblk->swap) -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ bh->b_data); -+ else -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ bh->b_data); -+ *c_byte = temp; -+ *offset = 1; -+ } else { -+ if (msblk->swap) { -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset + 1)); -+ } else { -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset + 1)); -+ } -+ *c_byte = temp; -+ *offset += 2; -+ } -+ -+ if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) { -+ if (*offset == msblk->devblksize) { -+ brelse(bh); -+ if (!(bh = sb_bread(s, ++(*cur_index)))) -+ goto out; -+ *offset = 0; -+ } -+ if (*((unsigned char *) (bh->b_data + *offset)) != -+ SQUASHFS_MARKER_BYTE) { -+ ERROR("Metadata block marker corrupt @ %x\n", -+ *cur_index); -+ brelse(bh); -+ goto out; -+ } -+ (*offset)++; -+ } -+ return bh; -+ -+out: -+ return NULL; -+} -+ -+ -+SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer, -+ long long index, unsigned int length, -+ long long *next_index, int srclength) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ struct buffer_head **bh; -+ unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1); -+ unsigned int cur_index = index >> msblk->devblksize_log2; -+ int bytes, avail_bytes, b = 0, k = 0; -+ unsigned int compressed; -+ unsigned int c_byte = length; -+ -+ bh = kmalloc(((sblk->block_size >> msblk->devblksize_log2) + 1) * -+ sizeof(struct buffer_head *), GFP_KERNEL); -+ if (bh == NULL) -+ goto read_failure; -+ -+ if (c_byte) { -+ bytes = msblk->devblksize - offset; -+ compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte); -+ c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte); -+ -+ TRACE("Block @ 0x%llx, %scompressed size %d, src size %d\n", index, -+ compressed ? "" : "un", (unsigned int) c_byte, srclength); -+ -+ if (c_byte > srclength || index < 0 || (index + c_byte) > sblk->bytes_used) -+ goto read_failure; -+ -+ bh[0] = sb_getblk(s, cur_index); -+ if (bh[0] == NULL) -+ goto block_release; -+ -+ for (b = 1; bytes < c_byte; b++) { -+ bh[b] = sb_getblk(s, ++cur_index); -+ if (bh[b] == NULL) -+ goto block_release; -+ bytes += msblk->devblksize; -+ } -+ ll_rw_block(READ, b, bh); -+ } else { -+ if (index < 0 || (index + 2) > sblk->bytes_used) -+ goto read_failure; -+ -+ bh[0] = get_block_length(s, (int *)&cur_index, (int *)&offset, -+ (int *)&c_byte); -+ if (bh[0] == NULL) -+ goto read_failure; -+ -+ bytes = msblk->devblksize - offset; -+ compressed = SQUASHFS_COMPRESSED(c_byte); -+ c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte); -+ -+ TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed -+ ? "" : "un", (unsigned int) c_byte); -+ -+ if (c_byte > srclength || (index + c_byte) > sblk->bytes_used) -+ goto read_failure; -+ -+ for (b = 1; bytes < c_byte; b++) { -+ bh[b] = sb_getblk(s, ++cur_index); -+ if (bh[b] == NULL) -+ goto block_release; -+ bytes += msblk->devblksize; -+ } -+ ll_rw_block(READ, b - 1, bh + 1); -+ } -+ -+ if (compressed) { -+ int zlib_err = Z_STREAM_END; -+ int rest, start; -+ enum {Src, Dst}; -+ struct sized_buf sbuf[2]; -+ struct sqlzma *percpu; -+ -+ /* -+ * uncompress block -+ */ -+ -+ for (k = 0; k < b; k++) { -+ wait_on_buffer(bh[k]); -+ if (!buffer_uptodate(bh[k])) -+ goto block_release; -+ } -+ -+ avail_bytes = 0; -+ for (k = 0; !avail_bytes && k < b; k++) { -+ avail_bytes = msblk->devblksize - offset; -+ if (c_byte < avail_bytes) -+ avail_bytes = c_byte; -+ if (avail_bytes) -+ break; -+ offset = 0; -+ brelse(bh[k]); -+ } -+ bytes = 0; -+ if (!avail_bytes) -+ goto block_release; // nothing to be process -+ -+ start = k; -+ /* it disables preemption */ -+ percpu = get_cpu_var(sqlzma); -+#ifdef KeepPreemptive -+ put_cpu_var(sqlzma); -+ mutex_lock(&percpu->mtx); -+#endif -+ -+ for (; k < b; k++) { -+ memcpy(percpu->read_data + bytes, bh[k]->b_data + offset, -+ avail_bytes); -+ bytes += avail_bytes; -+ offset = 0; -+ brelse(bh[k]); -+ avail_bytes = msblk->devblksize - offset; -+ rest = c_byte - bytes; -+ if (rest < avail_bytes) -+ avail_bytes = rest; -+ } -+ -+ sbuf[Src].buf = percpu->read_data; -+ sbuf[Src].sz = bytes; -+ sbuf[Dst].buf = buffer; -+ sbuf[Dst].sz = srclength; -+ dpri_un(&percpu->un); -+ dpri("src %d %p, dst %d %p\n", sbuf[Src].sz, sbuf[Src].buf, -+ sbuf[Dst].sz, sbuf[Dst].buf); -+ zlib_err = sqlzma_un(&percpu->un, sbuf + Src, sbuf + Dst); -+ bytes = percpu->un.un_reslen; -+ -+#ifdef KeepPreemptive -+ mutex_unlock(&percpu->mtx); -+#else -+ put_cpu_var(sqlzma); -+#endif -+ if (unlikely(zlib_err)) { -+ dpri("zlib_err %d\n", zlib_err); -+ goto release_mutex; -+ } -+ } else { -+ int i; -+ -+ for(i = 0; i < b; i++) { -+ wait_on_buffer(bh[i]); -+ if (!buffer_uptodate(bh[i])) -+ goto block_release; -+ } -+ -+ for (bytes = 0; k < b; k++) { -+ avail_bytes = min(c_byte - bytes, msblk->devblksize - offset); -+ -+ memcpy(buffer + bytes, bh[k]->b_data + offset, avail_bytes); -+ bytes += avail_bytes; -+ offset = 0; -+ brelse(bh[k]); -+ } -+ } -+ -+ if (next_index) -+ *next_index = index + c_byte + (length ? 0 : -+ (SQUASHFS_CHECK_DATA(msblk->sblk.flags) ? 3 : 2)); -+ -+ kfree(bh); -+ return bytes; -+ -+release_mutex: -+ //mutex_unlock(&msblk->read_data_mutex); -+ -+block_release: -+ for (; k < b; k++) -+ brelse(bh[k]); -+ -+read_failure: -+ ERROR("sb_bread failed reading block 0x%x\n", cur_index); -+ kfree(bh); -+ return 0; -+} -+ -+ -+SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, void *buffer, -+ long long block, unsigned int offset, -+ int length, long long *next_block, -+ unsigned int *next_offset) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ int n, i, bytes, return_length = length; -+ long long next_index; -+ -+ TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset); -+ -+ while (1) { -+ for (i = 0; i < squashfs_cached_blks; i++) -+ if (msblk->block_cache[i].block == block) -+ break; -+ -+ mutex_lock(&msblk->block_cache_mutex); -+ -+ if (i == squashfs_cached_blks) { -+ /* read inode header block */ -+ if (msblk->unused_cache_blks == 0) { -+ mutex_unlock(&msblk->block_cache_mutex); -+ wait_event(msblk->waitq, msblk->unused_cache_blks); -+ continue; -+ } -+ -+ i = msblk->next_cache; -+ for (n = 0; n < squashfs_cached_blks; n++) { -+ if (msblk->block_cache[i].block != SQUASHFS_USED_BLK) -+ break; -+ i = (i + 1) % squashfs_cached_blks; -+ } -+ -+ msblk->next_cache = (i + 1) % squashfs_cached_blks; -+ -+ if (msblk->block_cache[i].block == SQUASHFS_INVALID_BLK) { -+ msblk->block_cache[i].data = vmalloc(SQUASHFS_METADATA_SIZE); -+ if (msblk->block_cache[i].data == NULL) { -+ ERROR("Failed to allocate cache block\n"); -+ mutex_unlock(&msblk->block_cache_mutex); -+ goto out; -+ } -+ } -+ -+ msblk->block_cache[i].block = SQUASHFS_USED_BLK; -+ msblk->unused_cache_blks --; -+ mutex_unlock(&msblk->block_cache_mutex); -+ -+ msblk->block_cache[i].length = squashfs_read_data(s, -+ msblk->block_cache[i].data, block, 0, &next_index, -+ SQUASHFS_METADATA_SIZE); -+ -+ if (msblk->block_cache[i].length == 0) { -+ ERROR("Unable to read cache block [%llx:%x]\n", block, offset); -+ mutex_lock(&msblk->block_cache_mutex); -+ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK; -+ msblk->unused_cache_blks ++; -+ smp_mb(); -+ vfree(msblk->block_cache[i].data); -+ wake_up(&msblk->waitq); -+ mutex_unlock(&msblk->block_cache_mutex); -+ goto out; -+ } -+ -+ mutex_lock(&msblk->block_cache_mutex); -+ msblk->block_cache[i].block = block; -+ msblk->block_cache[i].next_index = next_index; -+ msblk->unused_cache_blks ++; -+ smp_mb(); -+ wake_up(&msblk->waitq); -+ TRACE("Read cache block [%llx:%x]\n", block, offset); -+ } -+ -+ if (msblk->block_cache[i].block != block) { -+ mutex_unlock(&msblk->block_cache_mutex); -+ continue; -+ } -+ -+ bytes = msblk->block_cache[i].length - offset; -+ -+ if (bytes < 1) { -+ mutex_unlock(&msblk->block_cache_mutex); -+ goto out; -+ } else if (bytes >= length) { -+ if (buffer) -+ memcpy(buffer, msblk->block_cache[i].data + offset, length); -+ if (msblk->block_cache[i].length - offset == length) { -+ *next_block = msblk->block_cache[i].next_index; -+ *next_offset = 0; -+ } else { -+ *next_block = block; -+ *next_offset = offset + length; -+ } -+ mutex_unlock(&msblk->block_cache_mutex); -+ goto finish; -+ } else { -+ if (buffer) { -+ memcpy(buffer, msblk->block_cache[i].data + offset, bytes); -+ buffer = (char *) buffer + bytes; -+ } -+ block = msblk->block_cache[i].next_index; -+ mutex_unlock(&msblk->block_cache_mutex); -+ length -= bytes; -+ offset = 0; -+ } -+ } -+ -+finish: -+ return return_length; -+out: -+ return 0; -+} -+ -+ -+static int get_fragment_location(struct super_block *s, unsigned int fragment, -+ long long *fragment_start_block, -+ unsigned int *fragment_size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start_block = -+ msblk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)]; -+ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment); -+ struct squashfs_fragment_entry fragment_entry; -+ -+ if (msblk->swap) { -+ struct squashfs_fragment_entry sfragment_entry; -+ -+ if (!squashfs_get_cached_block(s, &sfragment_entry, start_block, offset, -+ sizeof(sfragment_entry), &start_block, -+ (unsigned int *)&offset)) -+ goto out; -+ SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry); -+ } else -+ if (!squashfs_get_cached_block(s, &fragment_entry, start_block, offset, -+ sizeof(fragment_entry), &start_block, -+ (unsigned int *)&offset)) -+ goto out; -+ -+ *fragment_start_block = fragment_entry.start_block; -+ *fragment_size = fragment_entry.size; -+ -+ return 1; -+ -+out: -+ return 0; -+} -+ -+ -+SQSH_EXTERN void release_cached_fragment(struct squashfs_sb_info *msblk, -+ struct squashfs_fragment_cache *fragment) -+{ -+ mutex_lock(&msblk->fragment_mutex); -+ fragment->locked --; -+ if (fragment->locked == 0) { -+ msblk->unused_frag_blks ++; -+ smp_mb(); -+ wake_up(&msblk->fragment_wait_queue); -+ } -+ mutex_unlock(&msblk->fragment_mutex); -+} -+ -+ -+SQSH_EXTERN -+struct squashfs_fragment_cache *get_cached_fragment(struct super_block *s, -+ long long start_block, int length) -+{ -+ int i, n; -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ while (1) { -+ mutex_lock(&msblk->fragment_mutex); -+ -+ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS && -+ msblk->fragment[i].block != start_block; i++); -+ -+ if (i == SQUASHFS_CACHED_FRAGMENTS) { -+ if (msblk->unused_frag_blks == 0) { -+ mutex_unlock(&msblk->fragment_mutex); -+ wait_event(msblk->fragment_wait_queue, msblk->unused_frag_blks); -+ continue; -+ } -+ -+ i = msblk->next_fragment; -+ for (n = 0; n < SQUASHFS_CACHED_FRAGMENTS; n++) { -+ if (msblk->fragment[i].locked == 0) -+ break; -+ i = (i + 1) % SQUASHFS_CACHED_FRAGMENTS; -+ } -+ -+ msblk->next_fragment = (msblk->next_fragment + 1) % -+ SQUASHFS_CACHED_FRAGMENTS; -+ -+ if (msblk->fragment[i].data == NULL) { -+ msblk->fragment[i].data = vmalloc(sblk->block_size); -+ if (msblk->fragment[i].data == NULL) { -+ ERROR("Failed to allocate fragment cache block\n"); -+ mutex_unlock(&msblk->fragment_mutex); -+ goto out; -+ } -+ } -+ -+ msblk->unused_frag_blks --; -+ msblk->fragment[i].block = SQUASHFS_INVALID_BLK; -+ msblk->fragment[i].locked = 1; -+ mutex_unlock(&msblk->fragment_mutex); -+ -+ msblk->fragment[i].length = squashfs_read_data(s, -+ msblk->fragment[i].data, start_block, length, NULL, -+ sblk->block_size); -+ -+ if (msblk->fragment[i].length == 0) { -+ ERROR("Unable to read fragment cache block [%llx]\n", start_block); -+ msblk->fragment[i].locked = 0; -+ msblk->unused_frag_blks ++; -+ smp_mb(); -+ wake_up(&msblk->fragment_wait_queue); -+ goto out; -+ } -+ -+ mutex_lock(&msblk->fragment_mutex); -+ msblk->fragment[i].block = start_block; -+ TRACE("New fragment %d, start block %lld, locked %d\n", -+ i, msblk->fragment[i].block, msblk->fragment[i].locked); -+ mutex_unlock(&msblk->fragment_mutex); -+ break; -+ } -+ -+ if (msblk->fragment[i].locked == 0) -+ msblk->unused_frag_blks --; -+ msblk->fragment[i].locked++; -+ mutex_unlock(&msblk->fragment_mutex); -+ TRACE("Got fragment %d, start block %lld, locked %d\n", i, -+ msblk->fragment[i].block, msblk->fragment[i].locked); -+ break; -+ } -+ -+ return &msblk->fragment[i]; -+ -+out: -+ return NULL; -+} -+ -+ -+static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i, -+ struct squashfs_base_inode_header *inodeb) -+{ -+ i->i_ino = inodeb->inode_number; -+ i->i_mtime.tv_sec = inodeb->mtime; -+ i->i_atime.tv_sec = inodeb->mtime; -+ i->i_ctime.tv_sec = inodeb->mtime; -+ i->i_uid = msblk->uid[inodeb->uid]; -+ i->i_mode = inodeb->mode; -+ i->i_size = 0; -+ -+ if (inodeb->guid == SQUASHFS_GUIDS) -+ i->i_gid = i->i_uid; -+ else -+ i->i_gid = msblk->guid[inodeb->guid]; -+} -+ -+ -+static squashfs_inode_t squashfs_inode_lookup(struct super_block *s, int ino) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start = msblk->inode_lookup_table[SQUASHFS_LOOKUP_BLOCK(ino - 1)]; -+ int offset = SQUASHFS_LOOKUP_BLOCK_OFFSET(ino - 1); -+ squashfs_inode_t inode; -+ -+ TRACE("Entered squashfs_inode_lookup, inode_number = %d\n", ino); -+ -+ if (msblk->swap) { -+ squashfs_inode_t sinode; -+ -+ if (!squashfs_get_cached_block(s, &sinode, start, offset, -+ sizeof(sinode), &start, (unsigned int *)&offset)) -+ goto out; -+ SQUASHFS_SWAP_INODE_T((&inode), &sinode); -+ } else if (!squashfs_get_cached_block(s, &inode, start, offset, -+ sizeof(inode), &start, (unsigned int *)&offset)) -+ goto out; -+ -+ TRACE("squashfs_inode_lookup, inode = 0x%llx\n", inode); -+ -+ return inode; -+ -+out: -+ return SQUASHFS_INVALID_BLK; -+} -+ -+ -+static void vfs_read_inode(struct inode *i) -+{ -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ squashfs_inode_t inode = squashfs_inode_lookup(i->i_sb, i->i_ino); -+ -+ TRACE("Entered vfs_read_inode\n"); -+ -+ if(inode != SQUASHFS_INVALID_BLK) -+ (msblk->read_inode)(i, inode); -+} -+ -+ -+static struct dentry *squashfs_get_parent(struct dentry *child) -+{ -+ struct inode *i = child->d_inode; -+ struct inode *parent = iget(i->i_sb, SQUASHFS_I(i)->u.s2.parent_inode); -+ struct dentry *rv; -+ -+ TRACE("Entered squashfs_get_parent\n"); -+ -+ if(parent == NULL) { -+ rv = ERR_PTR(-EACCES); -+ goto out; -+ } -+ -+ rv = d_alloc_anon(parent); -+ if(rv == NULL) -+ rv = ERR_PTR(-ENOMEM); -+ -+out: -+ return rv; -+} -+ -+ -+SQSH_EXTERN struct inode *squashfs_iget(struct super_block *s, -+ squashfs_inode_t inode, unsigned int inode_number) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct inode *i = iget_locked(s, inode_number); -+ -+ TRACE("Entered squashfs_iget\n"); -+ -+ if(i && (i->i_state & I_NEW)) { -+ (msblk->read_inode)(i, inode); -+ unlock_new_inode(i); -+ } -+ -+ return i; -+} -+ -+ -+static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode) -+{ -+ struct super_block *s = i->i_sb; -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long block = SQUASHFS_INODE_BLK(inode) + sblk->inode_table_start; -+ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); -+ long long next_block; -+ unsigned int next_offset; -+ union squashfs_inode_header id, sid; -+ struct squashfs_base_inode_header *inodeb = &id.base, *sinodeb = &sid.base; -+ -+ TRACE("Entered squashfs_read_inode\n"); -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodeb, block, offset, -+ sizeof(*sinodeb), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_BASE_INODE_HEADER(inodeb, sinodeb, sizeof(*sinodeb)); -+ } else -+ if (!squashfs_get_cached_block(s, inodeb, block, offset, -+ sizeof(*inodeb), &next_block, &next_offset)) -+ goto failed_read; -+ -+ squashfs_new_inode(msblk, i, inodeb); -+ -+ switch(inodeb->inode_type) { -+ case SQUASHFS_FILE_TYPE: { -+ unsigned int frag_size; -+ long long frag_blk; -+ struct squashfs_reg_inode_header *inodep = &id.reg; -+ struct squashfs_reg_inode_header *sinodep = &sid.reg; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_REG_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG) -+ if(!get_fragment_location(s, inodep->fragment, &frag_blk, -+ &frag_size)) -+ goto failed_read; -+ -+ i->i_nlink = 1; -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %llx, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_LREG_TYPE: { -+ unsigned int frag_size; -+ long long frag_blk; -+ struct squashfs_lreg_inode_header *inodep = &id.lreg; -+ struct squashfs_lreg_inode_header *sinodep = &sid.lreg; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LREG_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG) -+ if (!get_fragment_location(s, inodep->fragment, &frag_blk, -+ &frag_size)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %llx, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_DIR_TYPE: { -+ struct squashfs_dir_inode_header *inodep = &id.dir; -+ struct squashfs_dir_inode_header *sinodep = &sid.dir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DIR_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops; -+ i->i_fop = &squashfs_dir_ops; -+ i->i_mode |= S_IFDIR; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = 0; -+ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; -+ -+ TRACE("Directory inode %x:%x, start_block %x, offset " -+ "%x\n", SQUASHFS_INODE_BLK(inode), -+ offset, inodep->start_block, -+ inodep->offset); -+ break; -+ } -+ case SQUASHFS_LDIR_TYPE: { -+ struct squashfs_ldir_inode_header *inodep = &id.ldir; -+ struct squashfs_ldir_inode_header *sinodep = &sid.ldir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LDIR_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops; -+ i->i_fop = &squashfs_dir_ops; -+ i->i_mode |= S_IFDIR; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; -+ SQUASHFS_I(i)->u.s2.directory_index_offset = next_offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = inodep->i_count; -+ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; -+ -+ TRACE("Long directory inode %x:%x, start_block %x, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, inodep->offset); -+ break; -+ } -+ case SQUASHFS_SYMLINK_TYPE: { -+ struct squashfs_symlink_inode_header *inodep = &id.symlink; -+ struct squashfs_symlink_inode_header *sinodep = &sid.symlink; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_SYMLINK_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->symlink_size; -+ i->i_op = &page_symlink_inode_operations; -+ i->i_data.a_ops = &squashfs_symlink_aops; -+ i->i_mode |= S_IFLNK; -+ SQUASHFS_I(i)->start_block = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ -+ TRACE("Symbolic link inode %x:%x, start_block %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ next_block, next_offset); -+ break; -+ } -+ case SQUASHFS_BLKDEV_TYPE: -+ case SQUASHFS_CHRDEV_TYPE: { -+ struct squashfs_dev_inode_header *inodep = &id.dev; -+ struct squashfs_dev_inode_header *sinodep = &sid.dev; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DEV_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_CHRDEV_TYPE) ? -+ S_IFCHR : S_IFBLK; -+ init_special_inode(i, i->i_mode, old_decode_dev(inodep->rdev)); -+ -+ TRACE("Device inode %x:%x, rdev %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, inodep->rdev); -+ break; -+ } -+ case SQUASHFS_FIFO_TYPE: -+ case SQUASHFS_SOCKET_TYPE: { -+ struct squashfs_ipc_inode_header *inodep = &id.ipc; -+ struct squashfs_ipc_inode_header *sinodep = &sid.ipc; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_IPC_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) -+ ? S_IFIFO : S_IFSOCK; -+ init_special_inode(i, i->i_mode, 0); -+ break; -+ } -+ default: -+ ERROR("Unknown inode type %d in squashfs_iget!\n", -+ inodeb->inode_type); -+ goto failed_read1; -+ } -+ -+ return 1; -+ -+failed_read: -+ ERROR("Unable to read inode [%llx:%x]\n", block, offset); -+ -+failed_read1: -+ make_bad_inode(i); -+ return 0; -+} -+ -+ -+static int read_inode_lookup_table(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int length = SQUASHFS_LOOKUP_BLOCK_BYTES(sblk->inodes); -+ -+ TRACE("In read_inode_lookup_table, length %d\n", length); -+ -+ /* Allocate inode lookup table */ -+ msblk->inode_lookup_table = kmalloc(length, GFP_KERNEL); -+ if (msblk->inode_lookup_table == NULL) { -+ ERROR("Failed to allocate inode lookup table\n"); -+ return 0; -+ } -+ -+ if (!squashfs_read_data(s, (char *) msblk->inode_lookup_table, -+ sblk->lookup_table_start, length | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) { -+ ERROR("unable to read inode lookup table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ long long block; -+ -+ for (i = 0; i < SQUASHFS_LOOKUP_BLOCKS(sblk->inodes); i++) { -+ /* XXX */ -+ SQUASHFS_SWAP_LOOKUP_BLOCKS((&block), -+ &msblk->inode_lookup_table[i], 1); -+ msblk->inode_lookup_table[i] = block; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int read_fragment_index_table(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int length = SQUASHFS_FRAGMENT_INDEX_BYTES(sblk->fragments); -+ -+ if(length == 0) -+ return 1; -+ -+ /* Allocate fragment index table */ -+ msblk->fragment_index = kmalloc(length, GFP_KERNEL); -+ if (msblk->fragment_index == NULL) { -+ ERROR("Failed to allocate fragment index table\n"); -+ return 0; -+ } -+ -+ if (!squashfs_read_data(s, (char *) msblk->fragment_index, -+ sblk->fragment_table_start, length | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) { -+ ERROR("unable to read fragment index table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ long long fragment; -+ -+ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sblk->fragments); i++) { -+ /* XXX */ -+ SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment), -+ &msblk->fragment_index[i], 1); -+ msblk->fragment_index[i] = fragment; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int readahead_metadata(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ int i; -+ -+ squashfs_cached_blks = SQUASHFS_CACHED_BLKS; -+ -+ /* Init inode_table block pointer array */ -+ msblk->block_cache = kmalloc(sizeof(struct squashfs_cache) * -+ squashfs_cached_blks, GFP_KERNEL); -+ if (msblk->block_cache == NULL) { -+ ERROR("Failed to allocate block cache\n"); -+ goto failed; -+ } -+ -+ for (i = 0; i < squashfs_cached_blks; i++) -+ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK; -+ -+ msblk->next_cache = 0; -+ msblk->unused_cache_blks = squashfs_cached_blks; -+ -+ return 1; -+ -+failed: -+ return 0; -+} -+ -+ -+static int supported_squashfs_filesystem(struct squashfs_sb_info *msblk, int silent) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ msblk->read_inode = squashfs_read_inode; -+ msblk->read_blocklist = read_blocklist; -+ msblk->read_fragment_index_table = read_fragment_index_table; -+ -+ if (sblk->s_major == 1) { -+ if (!squashfs_1_0_supported(msblk)) { -+ SERROR("Major/Minor mismatch, Squashfs 1.0 filesystems " -+ "are unsupported\n"); -+ SERROR("Please recompile with Squashfs 1.0 support enabled\n"); -+ return 0; -+ } -+ } else if (sblk->s_major == 2) { -+ if (!squashfs_2_0_supported(msblk)) { -+ SERROR("Major/Minor mismatch, Squashfs 2.0 filesystems " -+ "are unsupported\n"); -+ SERROR("Please recompile with Squashfs 2.0 support enabled\n"); -+ return 0; -+ } -+ } else if(sblk->s_major != SQUASHFS_MAJOR || sblk->s_minor > -+ SQUASHFS_MINOR) { -+ SERROR("Major/Minor mismatch, trying to mount newer %d.%d " -+ "filesystem\n", sblk->s_major, sblk->s_minor); -+ SERROR("Please update your kernel\n"); -+ return 0; -+ } -+ -+ return 1; -+} -+ -+ -+static int squashfs_fill_super(struct super_block *s, void *data, int silent) -+{ -+ struct squashfs_sb_info *msblk; -+ struct squashfs_super_block *sblk; -+ int i, err; -+ char b[BDEVNAME_SIZE]; -+ struct inode *root; -+ -+ TRACE("Entered squashfs_fill_superblock\n"); -+ -+ err = -ENOMEM; -+ s->s_fs_info = kzalloc(sizeof(struct squashfs_sb_info), GFP_KERNEL); -+ if (s->s_fs_info == NULL) { -+ ERROR("Failed to allocate superblock\n"); -+ goto failure; -+ } -+ msblk = s->s_fs_info; -+ -+ sblk = &msblk->sblk; -+ -+ msblk->devblksize = sb_min_blocksize(s, BLOCK_SIZE); -+ msblk->devblksize_log2 = ffz(~msblk->devblksize); -+ -+ //mutex_init(&msblk->read_data_mutex); -+ mutex_init(&msblk->read_page_mutex); -+ mutex_init(&msblk->block_cache_mutex); -+ mutex_init(&msblk->fragment_mutex); -+ mutex_init(&msblk->meta_index_mutex); -+ -+ init_waitqueue_head(&msblk->waitq); -+ init_waitqueue_head(&msblk->fragment_wait_queue); -+ -+ /* sblk->bytes_used is checked in squashfs_read_data to ensure reads are not -+ * beyond filesystem end. As we're using squashfs_read_data to read sblk here, -+ * first set sblk->bytes_used to a useful value */ -+ err = -EINVAL; -+ sblk->bytes_used = sizeof(struct squashfs_super_block); -+ if (!squashfs_read_data(s, (char *) sblk, SQUASHFS_START, -+ sizeof(struct squashfs_super_block) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, sizeof(struct squashfs_super_block))) { -+ SERROR("unable to read superblock\n"); -+ goto failed_mount; -+ } -+ -+ /* Check it is a SQUASHFS superblock */ -+ s->s_magic = sblk->s_magic; -+ msblk->swap = 0; -+ dpri("magic 0x%x\n", sblk->s_magic); -+ switch (sblk->s_magic) { -+ struct squashfs_super_block ssblk; -+ -+ case SQUASHFS_MAGIC_SWAP: -+ /*FALLTHROUGH*/ -+ case SQUASHFS_MAGIC_LZMA_SWAP: -+ WARNING("Mounting a different endian SQUASHFS " -+ "filesystem on %s\n", bdevname(s->s_bdev, b)); -+ -+ SQUASHFS_SWAP_SUPER_BLOCK(&ssblk, sblk); -+ memcpy(sblk, &ssblk, sizeof(struct squashfs_super_block)); -+ msblk->swap = 1; -+ /*FALLTHROUGH*/ -+ case SQUASHFS_MAGIC: -+ case SQUASHFS_MAGIC_LZMA: -+ break; -+ default: -+ SERROR("Can't find a SQUASHFS superblock on %s\n", -+ bdevname(s->s_bdev, b)); -+ goto failed_mount; -+ } -+ -+ { -+ struct sqlzma *p; -+ dpri("block_size %d\n", sblk->block_size); -+ BUG_ON(sblk->block_size > sizeof(p->read_data)); -+ } -+ -+ /* Check the MAJOR & MINOR versions */ -+ if(!supported_squashfs_filesystem(msblk, silent)) -+ goto failed_mount; -+ -+ /* Check the filesystem does not extend beyond the end of the -+ block device */ -+ if(sblk->bytes_used < 0 || sblk->bytes_used > i_size_read(s->s_bdev->bd_inode)) -+ goto failed_mount; -+ -+ /* Check the root inode for sanity */ -+ if (SQUASHFS_INODE_OFFSET(sblk->root_inode) > SQUASHFS_METADATA_SIZE) -+ goto failed_mount; -+ -+ TRACE("Found valid superblock on %s\n", bdevname(s->s_bdev, b)); -+ TRACE("Inodes are %scompressed\n", SQUASHFS_UNCOMPRESSED_INODES(sblk->flags) -+ ? "un" : ""); -+ TRACE("Data is %scompressed\n", SQUASHFS_UNCOMPRESSED_DATA(sblk->flags) -+ ? "un" : ""); -+ TRACE("Check data is %spresent in the filesystem\n", -+ SQUASHFS_CHECK_DATA(sblk->flags) ? "" : "not "); -+ TRACE("Filesystem size %lld bytes\n", sblk->bytes_used); -+ TRACE("Block size %d\n", sblk->block_size); -+ TRACE("Number of inodes %d\n", sblk->inodes); -+ if (sblk->s_major > 1) -+ TRACE("Number of fragments %d\n", sblk->fragments); -+ TRACE("Number of uids %d\n", sblk->no_uids); -+ TRACE("Number of gids %d\n", sblk->no_guids); -+ TRACE("sblk->inode_table_start %llx\n", sblk->inode_table_start); -+ TRACE("sblk->directory_table_start %llx\n", sblk->directory_table_start); -+ if (sblk->s_major > 1) -+ TRACE("sblk->fragment_table_start %llx\n", sblk->fragment_table_start); -+ TRACE("sblk->uid_start %llx\n", sblk->uid_start); -+ -+ s->s_maxbytes = MAX_LFS_FILESIZE; -+ s->s_flags |= MS_RDONLY; -+ s->s_op = &squashfs_super_ops; -+ -+ if (readahead_metadata(s) == 0) -+ goto failed_mount; -+ -+ /* Allocate read_page block */ -+ err = -ENOMEM; -+ msblk->read_page = vmalloc(sblk->block_size); -+ if (msblk->read_page == NULL) { -+ ERROR("Failed to allocate read_page block\n"); -+ goto failed_mount; -+ } -+ -+ /* Allocate uid and gid tables */ -+ msblk->uid = kmalloc((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int), GFP_KERNEL); -+ if (msblk->uid == NULL) { -+ ERROR("Failed to allocate uid/gid table\n"); -+ goto failed_mount; -+ } -+ msblk->guid = msblk->uid + sblk->no_uids; -+ -+ dpri("swap %d\n", msblk->swap); -+ err = -EINVAL; -+ if (msblk->swap) { -+ unsigned int *suid; -+ -+ err = -ENOMEM; -+ suid = kmalloc(sizeof(*suid) * (sblk->no_uids + sblk->no_guids), -+ GFP_KERNEL); -+ if (unlikely(!suid)) -+ goto failed_mount; -+ -+ err = -EINVAL; -+ if (!squashfs_read_data(s, (char *)suid, sblk->uid_start, -+ ((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int)) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) { -+ ERROR("unable to read uid/gid table\n"); -+ kfree(suid); -+ goto failed_mount; -+ } -+ -+ SQUASHFS_SWAP_DATA(msblk->uid, suid, (sblk->no_uids + -+ sblk->no_guids), (sizeof(unsigned int) * 8)); -+ kfree(suid); -+ } else -+ if (!squashfs_read_data(s, (char *) msblk->uid, sblk->uid_start, -+ ((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int)) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) { -+ ERROR("unable to read uid/gid table\n"); -+ goto failed_mount; -+ } -+ -+ -+ if (sblk->s_major == 1 && squashfs_1_0_supported(msblk)) -+ goto allocate_root; -+ -+ err = -ENOMEM; -+ msblk->fragment = kzalloc(sizeof(struct squashfs_fragment_cache) * -+ SQUASHFS_CACHED_FRAGMENTS, GFP_KERNEL); -+ if (msblk->fragment == NULL) { -+ ERROR("Failed to allocate fragment block cache\n"); -+ goto failed_mount; -+ } -+ -+ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) { -+ msblk->fragment[i].block = SQUASHFS_INVALID_BLK; -+ } -+ -+ msblk->next_fragment = 0; -+ msblk->unused_frag_blks = SQUASHFS_CACHED_FRAGMENTS; -+ -+ /* Allocate and read fragment index table */ -+ if (msblk->read_fragment_index_table(s) == 0) -+ goto failed_mount; -+ -+ if(sblk->s_major < 3 || sblk->lookup_table_start == SQUASHFS_INVALID_BLK) -+ goto allocate_root; -+ -+ /* Allocate and read inode lookup table */ -+ if (read_inode_lookup_table(s) == 0) -+ goto failed_mount; -+ -+ s->s_op = &squashfs_export_super_ops; -+ s->s_export_op = &squashfs_export_ops; -+ -+allocate_root: -+ dpri("alloate_root\n"); -+ root = new_inode(s); -+ if ((msblk->read_inode)(root, sblk->root_inode) == 0) { -+ iput(root); -+ goto failed_mount; -+ } -+ insert_inode_hash(root); -+ -+ s->s_root = d_alloc_root(root); -+ if (s->s_root == NULL) { -+ ERROR("Root inode create failed\n"); -+ iput(root); -+ goto failed_mount; -+ } -+ -+ TRACE("Leaving squashfs_fill_super\n"); -+ return 0; -+ -+failed_mount: -+ kfree(msblk->inode_lookup_table); -+ kfree(msblk->fragment_index); -+ kfree(msblk->fragment); -+ kfree(msblk->uid); -+ vfree(msblk->read_page); -+ kfree(msblk->block_cache); -+ kfree(msblk->fragment_index_2); -+ kfree(s->s_fs_info); -+ s->s_fs_info = NULL; -+ failure: -+ return err; -+} -+ -+ -+static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf) -+{ -+ struct squashfs_sb_info *msblk = dentry->d_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ TRACE("Entered squashfs_statfs\n"); -+ -+ buf->f_type = sblk->s_magic; -+ buf->f_bsize = sblk->block_size; -+ buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1; -+ buf->f_bfree = buf->f_bavail = 0; -+ buf->f_files = sblk->inodes; -+ buf->f_ffree = 0; -+ buf->f_namelen = SQUASHFS_NAME_LEN; -+ -+ return 0; -+} -+ -+ -+static int squashfs_symlink_readpage(struct file *file, struct page *page) -+{ -+ struct inode *inode = page->mapping->host; -+ int index = page->index << PAGE_CACHE_SHIFT, length, bytes, avail_bytes; -+ long long block = SQUASHFS_I(inode)->start_block; -+ int offset = SQUASHFS_I(inode)->offset; -+ void *pageaddr = kmap(page); -+ -+ TRACE("Entered squashfs_symlink_readpage, page index %ld, start block " -+ "%llx, offset %x\n", page->index, -+ SQUASHFS_I(inode)->start_block, -+ SQUASHFS_I(inode)->offset); -+ -+ for (length = 0; length < index; length += bytes) { -+ bytes = squashfs_get_cached_block(inode->i_sb, NULL, block, -+ offset, PAGE_CACHE_SIZE, &block, -+ (unsigned int *)&offset); -+ if (bytes == 0) { -+ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); -+ goto skip_read; -+ } -+ } -+ -+ if (length != index) { -+ ERROR("(squashfs_symlink_readpage) length != index\n"); -+ bytes = 0; -+ goto skip_read; -+ } -+ -+ avail_bytes = min_t(int, i_size_read(inode) - length, PAGE_CACHE_SIZE); -+ -+ bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block, offset, -+ avail_bytes, &block, (unsigned int *)&offset); -+ if (bytes == 0) -+ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); -+ -+skip_read: -+ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); -+ kunmap(page); -+ flush_dcache_page(page); -+ SetPageUptodate(page); -+ unlock_page(page); -+ -+ return 0; -+} -+ -+ -+static struct meta_index *locate_meta_index(struct inode *inode, int index, int offset) -+{ -+ struct meta_index *meta = NULL; -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ int i; -+ -+ mutex_lock(&msblk->meta_index_mutex); -+ -+ TRACE("locate_meta_index: index %d, offset %d\n", index, offset); -+ -+ if (msblk->meta_index == NULL) -+ goto not_allocated; -+ -+ for (i = 0; i < SQUASHFS_META_NUMBER; i ++) { -+ if (msblk->meta_index[i].inode_number == inode->i_ino && -+ msblk->meta_index[i].offset >= offset && -+ msblk->meta_index[i].offset <= index && -+ msblk->meta_index[i].locked == 0) { -+ TRACE("locate_meta_index: entry %d, offset %d\n", i, -+ msblk->meta_index[i].offset); -+ meta = &msblk->meta_index[i]; -+ offset = meta->offset; -+ } -+ } -+ -+ if (meta) -+ meta->locked = 1; -+ -+not_allocated: -+ mutex_unlock(&msblk->meta_index_mutex); -+ -+ return meta; -+} -+ -+ -+static struct meta_index *empty_meta_index(struct inode *inode, int offset, int skip) -+{ -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct meta_index *meta = NULL; -+ int i; -+ -+ mutex_lock(&msblk->meta_index_mutex); -+ -+ TRACE("empty_meta_index: offset %d, skip %d\n", offset, skip); -+ -+ if (msblk->meta_index == NULL) { -+ msblk->meta_index = kmalloc(sizeof(struct meta_index) * -+ SQUASHFS_META_NUMBER, GFP_KERNEL); -+ if (msblk->meta_index == NULL) { -+ ERROR("Failed to allocate meta_index\n"); -+ goto failed; -+ } -+ for (i = 0; i < SQUASHFS_META_NUMBER; i++) { -+ msblk->meta_index[i].inode_number = 0; -+ msblk->meta_index[i].locked = 0; -+ } -+ msblk->next_meta_index = 0; -+ } -+ -+ for (i = SQUASHFS_META_NUMBER; i && -+ msblk->meta_index[msblk->next_meta_index].locked; i --) -+ msblk->next_meta_index = (msblk->next_meta_index + 1) % -+ SQUASHFS_META_NUMBER; -+ -+ if (i == 0) { -+ TRACE("empty_meta_index: failed!\n"); -+ goto failed; -+ } -+ -+ TRACE("empty_meta_index: returned meta entry %d, %p\n", -+ msblk->next_meta_index, -+ &msblk->meta_index[msblk->next_meta_index]); -+ -+ meta = &msblk->meta_index[msblk->next_meta_index]; -+ msblk->next_meta_index = (msblk->next_meta_index + 1) % -+ SQUASHFS_META_NUMBER; -+ -+ meta->inode_number = inode->i_ino; -+ meta->offset = offset; -+ meta->skip = skip; -+ meta->entries = 0; -+ meta->locked = 1; -+ -+failed: -+ mutex_unlock(&msblk->meta_index_mutex); -+ return meta; -+} -+ -+ -+static void release_meta_index(struct inode *inode, struct meta_index *meta) -+{ -+ meta->locked = 0; -+ smp_mb(); -+} -+ -+ -+static int read_block_index(struct super_block *s, int blocks, char *block_list, -+ long long *start_block, int *offset) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ unsigned int *block_listp; -+ int block = 0; -+ -+ if (msblk->swap) { -+ char *sblock_list; -+ -+ sblock_list = kmalloc(blocks << 2, GFP_KERNEL); -+ if (unlikely(!sblock_list)) -+ goto failure; -+ -+ if (!squashfs_get_cached_block(s, sblock_list, *start_block, -+ *offset, blocks << 2, start_block, (unsigned int *)offset)) { -+ ERROR("Fail reading block list [%llx:%x]\n", *start_block, *offset); -+ kfree(sblock_list); -+ goto failure; -+ } -+ SQUASHFS_SWAP_INTS(((unsigned int *)block_list), -+ ((unsigned int *)sblock_list), blocks); -+ kfree(sblock_list); -+ } else { -+ if (!squashfs_get_cached_block(s, block_list, *start_block, -+ *offset, blocks << 2, start_block, (unsigned int *)offset)) { -+ ERROR("Fail reading block list [%llx:%x]\n", *start_block, *offset); -+ goto failure; -+ } -+ } -+ -+ for (block_listp = (unsigned int *) block_list; blocks; -+ block_listp++, blocks --) -+ block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp); -+ -+ return block; -+ -+failure: -+ return -1; -+} -+ -+ -+#define SIZE 256 -+ -+static inline int calculate_skip(int blocks) { -+ int skip = (blocks - 1) / ((SQUASHFS_SLOTS * SQUASHFS_META_ENTRIES + 1) * SQUASHFS_META_INDEXES); -+ return skip >= 7 ? 7 : skip + 1; -+} -+ -+ -+static int get_meta_index(struct inode *inode, int index, -+ long long *index_block, int *index_offset, -+ long long *data_block, char *block_list) -+{ -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int skip = calculate_skip(i_size_read(inode) >> sblk->block_log); -+ int offset = 0; -+ struct meta_index *meta; -+ struct meta_entry *meta_entry; -+ long long cur_index_block = SQUASHFS_I(inode)->u.s1.block_list_start; -+ int cur_offset = SQUASHFS_I(inode)->offset; -+ long long cur_data_block = SQUASHFS_I(inode)->start_block; -+ int i; -+ -+ index /= SQUASHFS_META_INDEXES * skip; -+ -+ while (offset < index) { -+ meta = locate_meta_index(inode, index, offset + 1); -+ -+ if (meta == NULL) { -+ meta = empty_meta_index(inode, offset + 1, skip); -+ if (meta == NULL) -+ goto all_done; -+ } else { -+ if(meta->entries == 0) -+ goto failed; -+ /* XXX */ -+ offset = index < meta->offset + meta->entries ? index : -+ meta->offset + meta->entries - 1; -+ /* XXX */ -+ meta_entry = &meta->meta_entry[offset - meta->offset]; -+ cur_index_block = meta_entry->index_block + sblk->inode_table_start; -+ cur_offset = meta_entry->offset; -+ cur_data_block = meta_entry->data_block; -+ TRACE("get_meta_index: offset %d, meta->offset %d, " -+ "meta->entries %d\n", offset, meta->offset, meta->entries); -+ TRACE("get_meta_index: index_block 0x%llx, offset 0x%x" -+ " data_block 0x%llx\n", cur_index_block, -+ cur_offset, cur_data_block); -+ } -+ -+ for (i = meta->offset + meta->entries; i <= index && -+ i < meta->offset + SQUASHFS_META_ENTRIES; i++) { -+ int blocks = skip * SQUASHFS_META_INDEXES; -+ -+ while (blocks) { -+ int block = blocks > (SIZE >> 2) ? (SIZE >> 2) : blocks; -+ int res = read_block_index(inode->i_sb, block, block_list, -+ &cur_index_block, &cur_offset); -+ -+ if (res == -1) -+ goto failed; -+ -+ cur_data_block += res; -+ blocks -= block; -+ } -+ -+ meta_entry = &meta->meta_entry[i - meta->offset]; -+ meta_entry->index_block = cur_index_block - sblk->inode_table_start; -+ meta_entry->offset = cur_offset; -+ meta_entry->data_block = cur_data_block; -+ meta->entries ++; -+ offset ++; -+ } -+ -+ TRACE("get_meta_index: meta->offset %d, meta->entries %d\n", -+ meta->offset, meta->entries); -+ -+ release_meta_index(inode, meta); -+ } -+ -+all_done: -+ *index_block = cur_index_block; -+ *index_offset = cur_offset; -+ *data_block = cur_data_block; -+ -+ return offset * SQUASHFS_META_INDEXES * skip; -+ -+failed: -+ release_meta_index(inode, meta); -+ return -1; -+} -+ -+ -+static long long read_blocklist(struct inode *inode, int index, -+ int readahead_blks, char *block_list, -+ unsigned short **block_p, unsigned int *bsize) -+{ -+ long long block_ptr; -+ int offset; -+ long long block; -+ int res = get_meta_index(inode, index, &block_ptr, &offset, &block, -+ block_list); -+ -+ TRACE("read_blocklist: res %d, index %d, block_ptr 0x%llx, offset" -+ " 0x%x, block 0x%llx\n", res, index, block_ptr, offset, block); -+ -+ if(res == -1) -+ goto failure; -+ -+ index -= res; -+ -+ while (index) { -+ int blocks = index > (SIZE >> 2) ? (SIZE >> 2) : index; -+ int res = read_block_index(inode->i_sb, blocks, block_list, -+ &block_ptr, &offset); -+ if (res == -1) -+ goto failure; -+ block += res; -+ index -= blocks; -+ } -+ -+ if (read_block_index(inode->i_sb, 1, block_list, &block_ptr, &offset) == -1) -+ goto failure; -+ *bsize = *((unsigned int *) block_list); -+ -+ return block; -+ -+failure: -+ return 0; -+} -+ -+ -+static int squashfs_readpage(struct file *file, struct page *page) -+{ -+ struct inode *inode = page->mapping->host; -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned char *block_list = NULL; -+ long long block; -+ unsigned int bsize, i; -+ int bytes; -+ int index = page->index >> (sblk->block_log - PAGE_CACHE_SHIFT); -+ void *pageaddr; -+ struct squashfs_fragment_cache *fragment = NULL; -+ char *data_ptr = msblk->read_page; -+ -+ int mask = (1 << (sblk->block_log - PAGE_CACHE_SHIFT)) - 1; -+ int start_index = page->index & ~mask; -+ int end_index = start_index | mask; -+ int file_end = i_size_read(inode) >> sblk->block_log; -+ int sparse = 0; -+ -+ TRACE("Entered squashfs_readpage, page index %lx, start block %llx\n", -+ page->index, SQUASHFS_I(inode)->start_block); -+ -+ if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> -+ PAGE_CACHE_SHIFT)) -+ goto out; -+ -+ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK -+ || index < file_end) { -+ block_list = kmalloc(SIZE, GFP_KERNEL); -+ if (block_list == NULL) { -+ ERROR("Failed to allocate block_list\n"); -+ goto error_out; -+ } -+ -+ block = (msblk->read_blocklist)(inode, index, 1, block_list, NULL, &bsize); -+ if (block == 0) -+ goto error_out; -+ -+ if (bsize == 0) { /* hole */ -+ bytes = index == file_end ? -+ (i_size_read(inode) & (sblk->block_size - 1)) : sblk->block_size; -+ sparse = 1; -+ } else { -+ mutex_lock(&msblk->read_page_mutex); -+ -+ bytes = squashfs_read_data(inode->i_sb, msblk->read_page, block, -+ bsize, NULL, sblk->block_size); -+ -+ if (bytes == 0) { -+ ERROR("Unable to read page, block %llx, size %x\n", block, bsize); -+ mutex_unlock(&msblk->read_page_mutex); -+ goto error_out; -+ } -+ } -+ } else { -+ fragment = get_cached_fragment(inode->i_sb, -+ SQUASHFS_I(inode)-> u.s1.fragment_start_block, -+ SQUASHFS_I(inode)->u.s1.fragment_size); -+ -+ if (fragment == NULL) { -+ ERROR("Unable to read page, block %llx, size %x\n", -+ SQUASHFS_I(inode)->u.s1.fragment_start_block, -+ (int) SQUASHFS_I(inode)->u.s1.fragment_size); -+ goto error_out; -+ } -+ bytes = i_size_read(inode) & (sblk->block_size - 1); -+ data_ptr = fragment->data + SQUASHFS_I(inode)->u.s1.fragment_offset; -+ } -+ -+ for (i = start_index; i <= end_index && bytes > 0; i++, -+ bytes -= PAGE_CACHE_SIZE, data_ptr += PAGE_CACHE_SIZE) { -+ struct page *push_page; -+ int avail = sparse ? 0 : min_t(unsigned int, bytes, PAGE_CACHE_SIZE); -+ -+ TRACE("bytes %d, i %d, available_bytes %d\n", bytes, i, avail); -+ -+ push_page = (i == page->index) ? page : -+ grab_cache_page_nowait(page->mapping, i); -+ -+ if (!push_page) -+ continue; -+ -+ if (PageUptodate(push_page)) -+ goto skip_page; -+ -+ pageaddr = kmap_atomic(push_page, KM_USER0); -+ memcpy(pageaddr, data_ptr, avail); -+ memset(pageaddr + avail, 0, PAGE_CACHE_SIZE - avail); -+ kunmap_atomic(pageaddr, KM_USER0); -+ flush_dcache_page(push_page); -+ SetPageUptodate(push_page); -+skip_page: -+ unlock_page(push_page); -+ if(i != page->index) -+ page_cache_release(push_page); -+ } -+ -+ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK -+ || index < file_end) { -+ if (!sparse) -+ mutex_unlock(&msblk->read_page_mutex); -+ kfree(block_list); -+ } else -+ release_cached_fragment(msblk, fragment); -+ -+ return 0; -+ -+error_out: -+ SetPageError(page); -+out: -+ pageaddr = kmap_atomic(page, KM_USER0); -+ memset(pageaddr, 0, PAGE_CACHE_SIZE); -+ kunmap_atomic(pageaddr, KM_USER0); -+ flush_dcache_page(page); -+ if (!PageError(page)) -+ SetPageUptodate(page); -+ unlock_page(page); -+ -+ kfree(block_list); -+ return 0; -+} -+ -+ -+static int get_dir_index_using_offset(struct super_block *s, -+ long long *next_block, unsigned int *next_offset, -+ long long index_start, unsigned int index_offset, int i_count, -+ long long f_pos) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index index; -+ -+ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", -+ i_count, (unsigned int) f_pos); -+ -+ f_pos =- 3; -+ if (f_pos == 0) -+ goto finish; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index sindex; -+ squashfs_get_cached_block(s, &sindex, index_start, index_offset, -+ sizeof(sindex), &index_start, &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX(&index, &sindex); -+ } else -+ squashfs_get_cached_block(s, &index, index_start, index_offset, -+ sizeof(index), &index_start, &index_offset); -+ -+ if (index.index > f_pos) -+ break; -+ -+ squashfs_get_cached_block(s, NULL, index_start, index_offset, -+ index.size + 1, &index_start, &index_offset); -+ -+ length = index.index; -+ *next_block = index.start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ -+finish: -+ return length + 3; -+} -+ -+ -+static int get_dir_index_using_name(struct super_block *s, -+ long long *next_block, unsigned int *next_offset, -+ long long index_start, unsigned int index_offset, int i_count, -+ const char *name, int size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index *index; -+ char *str; -+ -+ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); -+ -+ str = kmalloc(sizeof(struct squashfs_dir_index) + -+ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL); -+ if (str == NULL) { -+ ERROR("Failed to allocate squashfs_dir_index\n"); -+ goto failure; -+ } -+ -+ index = (struct squashfs_dir_index *) (str + SQUASHFS_NAME_LEN + 1); -+ strncpy(str, name, size); -+ str[size] = '\0'; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index sindex; -+ squashfs_get_cached_block(s, &sindex, index_start, index_offset, -+ sizeof(sindex), &index_start, &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX(index, &sindex); -+ } else -+ squashfs_get_cached_block(s, index, index_start, index_offset, -+ sizeof(struct squashfs_dir_index), &index_start, &index_offset); -+ -+ squashfs_get_cached_block(s, index->name, index_start, index_offset, -+ index->size + 1, &index_start, &index_offset); -+ -+ index->name[index->size + 1] = '\0'; -+ -+ if (strcmp(index->name, str) > 0) -+ break; -+ -+ length = index->index; -+ *next_block = index->start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ kfree(str); -+ -+failure: -+ return length + 3; -+} -+ -+ -+static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) -+{ -+ struct inode *i = file->f_dentry->d_inode; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count; -+ struct squashfs_dir_header dirh; -+ struct squashfs_dir_entry *dire; -+ -+ TRACE("Entered squashfs_readdir [%llx:%x]\n", next_block, next_offset); -+ -+ dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL); -+ if (dire == NULL) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto finish; -+ } -+ -+ while(file->f_pos < 3) { -+ char *name; -+ int size, i_ino; -+ -+ if(file->f_pos == 0) { -+ name = "."; -+ size = 1; -+ i_ino = i->i_ino; -+ } else { -+ name = ".."; -+ size = 2; -+ i_ino = SQUASHFS_I(i)->u.s2.parent_inode; -+ } -+ TRACE("Calling filldir(%x, %s, %d, %d, %d, %d)\n", -+ (unsigned int) dirent, name, size, (int) -+ file->f_pos, i_ino, squashfs_filetype_table[1]); -+ -+ if (filldir(dirent, name, size, file->f_pos, i_ino, -+ squashfs_filetype_table[1]) < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos += size; -+ } -+ -+ length = get_dir_index_using_offset(i->i_sb, &next_block, -+ (unsigned int *)&next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, file->f_pos); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header sdirh; -+ -+ if (!squashfs_get_cached_block(i->i_sb, &sdirh, next_block, -+ next_offset, sizeof(sdirh), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, &dirh, next_block, -+ next_offset, sizeof(dirh), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry sdire; -+ if (!squashfs_get_cached_block(i->i_sb, &sdire, next_block, -+ next_offset, sizeof(sdire), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, dire, next_block, -+ next_offset, sizeof(*dire), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, next_block, -+ next_offset, dire->size + 1, &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (file->f_pos >= length) -+ continue; -+ -+ dire->name[dire->size + 1] = '\0'; -+ -+ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d, %d)\n", -+ (unsigned int) dirent, dire->name, dire->size + 1, -+ (int) file->f_pos, dirh.start_block, dire->offset, -+ dirh.inode_number + dire->inode_number, -+ squashfs_filetype_table[dire->type]); -+ -+ if (filldir(dirent, dire->name, dire->size + 1, file->f_pos, -+ dirh.inode_number + dire->inode_number, -+ squashfs_filetype_table[dire->type]) < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos = length; -+ } -+ } -+ -+finish: -+ kfree(dire); -+ return 0; -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ kfree(dire); -+ return 0; -+} -+ -+ -+static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry, -+ struct nameidata *nd) -+{ -+ const unsigned char *name = dentry->d_name.name; -+ int len = dentry->d_name.len; -+ struct inode *inode = NULL; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count; -+ struct squashfs_dir_header dirh; -+ struct squashfs_dir_entry *dire; -+ -+ TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset); -+ -+ dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL); -+ if (dire == NULL) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto exit_lookup; -+ } -+ -+ if (len > SQUASHFS_NAME_LEN) -+ goto exit_lookup; -+ -+ length = get_dir_index_using_name(i->i_sb, &next_block, (unsigned int *)&next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, name, len); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header sdirh; -+ if (!squashfs_get_cached_block(i->i_sb, &sdirh, next_block, -+ next_offset, sizeof(sdirh), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, &dirh, next_block, -+ next_offset, sizeof(dirh), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry sdire; -+ if (!squashfs_get_cached_block(i->i_sb, &sdire, next_block, -+ next_offset, sizeof(sdire), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, dire, next_block, -+ next_offset, sizeof(*dire), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, next_block, -+ next_offset, dire->size + 1, &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (name[0] < dire->name[0]) -+ goto exit_lookup; -+ -+ if ((len == dire->size + 1) && !strncmp(name, dire->name, len)) { -+ squashfs_inode_t ino = SQUASHFS_MKINODE(dirh.start_block, -+ dire->offset); -+ -+ TRACE("calling squashfs_iget for directory entry %s, inode" -+ " %x:%x, %d\n", name, dirh.start_block, dire->offset, -+ dirh.inode_number + dire->inode_number); -+ -+ inode = squashfs_iget(i->i_sb, ino, dirh.inode_number + dire->inode_number); -+ -+ goto exit_lookup; -+ } -+ } -+ } -+ -+exit_lookup: -+ kfree(dire); -+ if (inode) -+ return d_splice_alias(inode, dentry); -+ d_add(dentry, inode); -+ return ERR_PTR(0); -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ goto exit_lookup; -+} -+ -+ -+static int squashfs_remount(struct super_block *s, int *flags, char *data) -+{ -+ *flags |= MS_RDONLY; -+ return 0; -+} -+ -+ -+static void squashfs_put_super(struct super_block *s) -+{ -+ int i; -+ -+ if (s->s_fs_info) { -+ struct squashfs_sb_info *sbi = s->s_fs_info; -+ if (sbi->block_cache) -+ for (i = 0; i < squashfs_cached_blks; i++) -+ if (sbi->block_cache[i].block != SQUASHFS_INVALID_BLK) -+ vfree(sbi->block_cache[i].data); -+ if (sbi->fragment) -+ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) -+ vfree(sbi->fragment[i].data); -+ kfree(sbi->fragment); -+ kfree(sbi->block_cache); -+ vfree(sbi->read_page); -+ kfree(sbi->uid); -+ kfree(sbi->fragment_index); -+ kfree(sbi->fragment_index_2); -+ kfree(sbi->meta_index); -+ kfree(s->s_fs_info); -+ s->s_fs_info = NULL; -+ } -+} -+ -+ -+static int squashfs_get_sb(struct file_system_type *fs_type, int flags, -+ const char *dev_name, void *data, struct vfsmount *mnt) -+{ -+ return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super, -+ mnt); -+} -+ -+static void free_sqlzma(void) -+{ -+ int cpu; -+ struct sqlzma *p; -+ -+ for_each_online_cpu(cpu) { -+ p = per_cpu(sqlzma, cpu); -+ if (p) { -+#ifdef KeepPreemptive -+ mutex_destroy(&p->mtx); -+#endif -+ sqlzma_fin(&p->un); -+ kfree(p); -+ } -+ } -+} -+ -+static int __init init_squashfs_fs(void) -+{ -+ struct sqlzma *p; -+ int cpu; -+ int err = init_inodecache(); -+ if (err) -+ goto out; -+ -+ for_each_online_cpu(cpu) { -+ dpri("%d: %p\n", cpu, per_cpu(sqlzma, cpu)); -+ err = -ENOMEM; -+ p = kmalloc(sizeof(struct sqlzma), GFP_KERNEL); -+ if (p) { -+#ifdef KeepPreemptive -+ mutex_init(&p->mtx); -+#endif -+ err = sqlzma_init(&p->un, 1, 0); -+ if (unlikely(err)) { -+ ERROR("Failed to intialize uncompress workspace\n"); -+ break; -+ } -+ per_cpu(sqlzma, cpu) = p; -+ err = 0; -+ } else -+ break; -+ } -+ if (unlikely(err)) { -+ free_sqlzma(); -+ goto out; -+ } -+ -+ printk(KERN_INFO "squashfs: version 3.3 (2007/10/31) " -+ "Phillip Lougher\n" -+ "squashfs: LZMA suppport for slax.org by jro\n"); -+ -+ err = register_filesystem(&squashfs_fs_type); -+ if (err) { -+ free_sqlzma(); -+ destroy_inodecache(); -+ } -+ -+out: -+ return err; -+} -+ -+ -+static void __exit exit_squashfs_fs(void) -+{ -+ unregister_filesystem(&squashfs_fs_type); -+ free_sqlzma(); -+ destroy_inodecache(); -+} -+ -+ -+static struct kmem_cache * squashfs_inode_cachep; -+ -+ -+static struct inode *squashfs_alloc_inode(struct super_block *sb) -+{ -+ struct squashfs_inode_info *ei; -+ ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL); -+ return ei ? &ei->vfs_inode : NULL; -+} -+ -+ -+static void squashfs_destroy_inode(struct inode *inode) -+{ -+ kmem_cache_free(squashfs_inode_cachep, SQUASHFS_I(inode)); -+} -+ -+ -+static void init_once(struct kmem_cache *cachep, void *foo) -+{ -+ struct squashfs_inode_info *ei = foo; -+ -+ inode_init_once(&ei->vfs_inode); -+} -+ -+ -+static int __init init_inodecache(void) -+{ -+ squashfs_inode_cachep = kmem_cache_create("squashfs_inode_cache", -+ sizeof(struct squashfs_inode_info), 0, -+ SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once); -+ if (squashfs_inode_cachep == NULL) -+ return -ENOMEM; -+ return 0; -+} -+ -+ -+static void destroy_inodecache(void) -+{ -+ kmem_cache_destroy(squashfs_inode_cachep); -+} -+ -+ -+module_init(init_squashfs_fs); -+module_exit(exit_squashfs_fs); -+MODULE_DESCRIPTION("squashfs 3.2-r2-CVS, a compressed read-only filesystem, and LZMA suppport for slax.org"); -+MODULE_AUTHOR("Phillip Lougher , and LZMA suppport for slax.org by jro"); -+MODULE_LICENSE("GPL"); -diff -urN linux-2.6.23/fs/squashfs/module.c linux-2.6.23.sqlzma-ng/fs/squashfs/module.c ---- linux-2.6.23/fs/squashfs/module.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/module.c 2007-11-13 19:51:33.000000000 -0500 -@@ -0,0 +1,36 @@ -+ -+/* -+ * Copyright (C) 2006-2007 Junjiro Okajima -+ * Copyright (C) 2006-2007 Tomas Matejicek, slax.org -+ * -+ * LICENSE follows the described one in lzma.txt. -+ */ -+ -+/* $Id: module.c,v 1.1 2007/11/05 05:43:36 jro Exp $ */ -+ -+#include -+#include -+ -+#include "LzmaDecode.c" -+ -+EXPORT_SYMBOL(LzmaDecodeProperties); -+EXPORT_SYMBOL(LzmaDecode); -+ -+#if 0 -+static int __init unlzma_init(void) -+{ -+ return 0; -+} -+ -+static void __exit unlzma_exit(void) -+{ -+} -+ -+module_init(unlzma_init); -+module_exit(unlzma_exit); -+#endif -+ -+MODULE_LICENSE("GPL"); -+MODULE_VERSION("$Id: module.c,v 1.1 2007/11/05 05:43:36 jro Exp $"); -+MODULE_DESCRIPTION("LZMA uncompress. " -+ "A tiny wrapper for LzmaDecode.c in LZMA SDK from www.7-zip.org."); -diff -urN linux-2.6.23/fs/squashfs/sqlzma.h linux-2.6.23.sqlzma-ng/fs/squashfs/sqlzma.h ---- linux-2.6.23/fs/squashfs/sqlzma.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/sqlzma.h 2007-11-13 19:09:21.000000000 -0500 -@@ -0,0 +1,83 @@ -+/* -+ * Copyright (C) 2006 Junjiro Okajima -+ * Copyright (C) 2006 Tomas Matejicek, slax.org -+ * -+ * LICENSE follows the described one in lzma. -+ */ -+ -+/* $Id: sqlzma.h,v 1.15 2007/11/09 14:42:12 jro Exp $ */ -+ -+#ifndef __sqlzma_h__ -+#define __sqlzma_h__ -+ -+#ifndef __KERNEL__ -+#include -+#include -+#include -+#ifdef _REENTRANT -+#include -+#endif -+#else -+#include -+#endif -+#define _7ZIP_BYTE_DEFINED -+ -+/* -+ * detect the compression method automatically by the first byte of compressed -+ * data. -+ * according to rfc1950, the first byte of zlib compression must be 0x?8. -+ */ -+#define is_lzma(c) (c == 0x5d) -+ -+/* ---------------------------------------------------------------------- */ -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+#ifndef __KERNEL__ -+/* for mksquashfs only */ -+struct sqlzma_opts { -+ unsigned int try_lzma:1; -+ unsigned int dicsize; -+}; -+int sqlzma_cm(struct sqlzma_opts *opts, z_stream *stream, Bytef *next_in, uInt -+ avail_in, Bytef *next_out, uInt avail_out); -+#endif -+ -+/* ---------------------------------------------------------------------- */ -+/* -+ * Three patterns for sqlzma uncompression. very dirty code. -+ * - kernel space (squashfs kernel module) -+ * - user space with pthread (mksquashfs) -+ * - user space without pthread (unsquashfs) -+ */ -+ -+struct sized_buf { -+ unsigned int sz; -+ unsigned char *buf; -+}; -+ -+enum {SQUN_PROB, SQUN_RESULT, SQUN_LAST}; -+struct sqlzma_un { -+ int un_lzma; -+ struct sized_buf un_a[SQUN_LAST]; -+ unsigned char un_prob[31960]; /* unlzma 64KB - 1MB */ -+ z_stream un_stream; -+#define un_cmbuf un_stream.next_in -+#define un_cmlen un_stream.avail_in -+#define un_resbuf un_stream.next_out -+#define un_resroom un_stream.avail_out -+#define un_reslen un_stream.total_out -+}; -+ -+int sqlzma_init(struct sqlzma_un *un, int do_lzma, unsigned int res_sz); -+int sqlzma_un(struct sqlzma_un *un, struct sized_buf *src, struct sized_buf *dst); -+void sqlzma_fin(struct sqlzma_un *un); -+ -+/* ---------------------------------------------------------------------- */ -+ -+#ifdef __cplusplus -+}; -+#endif -+#endif -diff -urN linux-2.6.23/fs/squashfs/squashfs.h linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs.h ---- linux-2.6.23/fs/squashfs/squashfs.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs.h 2007-11-13 18:58:41.000000000 -0500 -@@ -0,0 +1,86 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs.h -+ */ -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+#endif -+ -+#ifdef SQUASHFS_TRACE -+#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args) -+#else -+#define TRACE(s, args...) {} -+#endif -+ -+#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args) -+ -+#define SERROR(s, args...) do { \ -+ if (!silent) \ -+ printk(KERN_ERR "SQUASHFS error: "s, ## args);\ -+ } while(0) -+ -+#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args) -+ -+static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode) -+{ -+ return list_entry(inode, struct squashfs_inode_info, vfs_inode); -+} -+ -+#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY) -+#define SQSH_EXTERN -+extern unsigned int squashfs_read_data(struct super_block *s, char *buffer, -+ long long index, unsigned int length, -+ long long *next_index, int srclength); -+extern int squashfs_get_cached_block(struct super_block *s, void *buffer, -+ long long block, unsigned int offset, -+ int length, long long *next_block, -+ unsigned int *next_offset); -+extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct -+ squashfs_fragment_cache *fragment); -+extern struct squashfs_fragment_cache *get_cached_fragment(struct super_block -+ *s, long long start_block, -+ int length); -+extern struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode, unsigned int inode_number); -+extern const struct address_space_operations squashfs_symlink_aops; -+extern const struct address_space_operations squashfs_aops; -+extern struct inode_operations squashfs_dir_inode_ops; -+#else -+#define SQSH_EXTERN static -+#endif -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk); -+#else -+static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk) -+{ -+ return 0; -+} -+#endif -+ -+#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk); -+#else -+static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk) -+{ -+ return 0; -+} -+#endif -diff -urN linux-2.6.23/fs/squashfs/squashfs2_0.c linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs2_0.c ---- linux-2.6.23/fs/squashfs/squashfs2_0.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs2_0.c 2007-11-13 18:58:41.000000000 -0500 -@@ -0,0 +1,740 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs2_0.c -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "squashfs.h" -+static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir); -+static struct dentry *squashfs_lookup_2(struct inode *, struct dentry *, -+ struct nameidata *); -+ -+static struct file_operations squashfs_dir_ops_2 = { -+ .read = generic_read_dir, -+ .readdir = squashfs_readdir_2 -+}; -+ -+static struct inode_operations squashfs_dir_inode_ops_2 = { -+ .lookup = squashfs_lookup_2 -+}; -+ -+static unsigned char squashfs_filetype_table[] = { -+ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK -+}; -+ -+static int read_fragment_index_table_2(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ if (!(msblk->fragment_index_2 = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES_2 -+ (sblk->fragments), GFP_KERNEL))) { -+ ERROR("Failed to allocate uid/gid table\n"); -+ return 0; -+ } -+ -+ if (SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments) && -+ !squashfs_read_data(s, (char *) -+ msblk->fragment_index_2, -+ sblk->fragment_table_start, -+ SQUASHFS_FRAGMENT_INDEX_BYTES_2 -+ (sblk->fragments) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments))) { -+ ERROR("unable to read fragment index table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ unsigned int fragment; -+ -+ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES_2(sblk->fragments); -+ i++) { -+ SQUASHFS_SWAP_FRAGMENT_INDEXES_2((&fragment), -+ &msblk->fragment_index_2[i], 1); -+ msblk->fragment_index_2[i] = fragment; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int get_fragment_location_2(struct super_block *s, unsigned int fragment, -+ long long *fragment_start_block, -+ unsigned int *fragment_size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start_block = -+ msblk->fragment_index_2[SQUASHFS_FRAGMENT_INDEX_2(fragment)]; -+ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET_2(fragment); -+ struct squashfs_fragment_entry_2 fragment_entry; -+ -+ if (msblk->swap) { -+ struct squashfs_fragment_entry_2 sfragment_entry; -+ -+ if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, -+ start_block, offset, -+ sizeof(sfragment_entry), &start_block, -+ &offset)) -+ goto out; -+ SQUASHFS_SWAP_FRAGMENT_ENTRY_2(&fragment_entry, &sfragment_entry); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) &fragment_entry, -+ start_block, offset, -+ sizeof(fragment_entry), &start_block, -+ &offset)) -+ goto out; -+ -+ *fragment_start_block = fragment_entry.start_block; -+ *fragment_size = fragment_entry.size; -+ -+ return 1; -+ -+out: -+ return 0; -+} -+ -+ -+static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i, -+ struct squashfs_base_inode_header_2 *inodeb, unsigned int ino) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ i->i_ino = ino; -+ i->i_mtime.tv_sec = sblk->mkfs_time; -+ i->i_atime.tv_sec = sblk->mkfs_time; -+ i->i_ctime.tv_sec = sblk->mkfs_time; -+ i->i_uid = msblk->uid[inodeb->uid]; -+ i->i_mode = inodeb->mode; -+ i->i_nlink = 1; -+ i->i_size = 0; -+ if (inodeb->guid == SQUASHFS_GUIDS) -+ i->i_gid = i->i_uid; -+ else -+ i->i_gid = msblk->guid[inodeb->guid]; -+} -+ -+ -+static int squashfs_read_inode_2(struct inode *i, squashfs_inode_t inode) -+{ -+ struct super_block *s = i->i_sb; -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int block = SQUASHFS_INODE_BLK(inode) + -+ sblk->inode_table_start; -+ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); -+ unsigned int ino = SQUASHFS_MK_VFS_INODE(block - -+ sblk->inode_table_start, offset); -+ long long next_block; -+ unsigned int next_offset; -+ union squashfs_inode_header_2 id, sid; -+ struct squashfs_base_inode_header_2 *inodeb = &id.base, -+ *sinodeb = &sid.base; -+ -+ TRACE("Entered squashfs_read_inode_2\n"); -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) sinodeb, block, -+ offset, sizeof(*sinodeb), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_BASE_INODE_HEADER_2(inodeb, sinodeb, -+ sizeof(*sinodeb)); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) inodeb, block, -+ offset, sizeof(*inodeb), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ squashfs_new_inode(msblk, i, inodeb, ino); -+ -+ switch(inodeb->inode_type) { -+ case SQUASHFS_FILE_TYPE: { -+ struct squashfs_reg_inode_header_2 *inodep = &id.reg; -+ struct squashfs_reg_inode_header_2 *sinodep = &sid.reg; -+ long long frag_blk; -+ unsigned int frag_size = 0; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_REG_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG && -+ !get_fragment_location_2(s, -+ inodep->fragment, &frag_blk, &frag_size)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %x, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_DIR_TYPE: { -+ struct squashfs_dir_inode_header_2 *inodep = &id.dir; -+ struct squashfs_dir_inode_header_2 *sinodep = &sid.dir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DIR_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops_2; -+ i->i_fop = &squashfs_dir_ops_2; -+ i->i_mode |= S_IFDIR; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = 0; -+ SQUASHFS_I(i)->u.s2.parent_inode = 0; -+ -+ TRACE("Directory inode %x:%x, start_block %x, offset " -+ "%x\n", SQUASHFS_INODE_BLK(inode), -+ offset, inodep->start_block, -+ inodep->offset); -+ break; -+ } -+ case SQUASHFS_LDIR_TYPE: { -+ struct squashfs_ldir_inode_header_2 *inodep = &id.ldir; -+ struct squashfs_ldir_inode_header_2 *sinodep = &sid.ldir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LDIR_INODE_HEADER_2(inodep, -+ sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops_2; -+ i->i_fop = &squashfs_dir_ops_2; -+ i->i_mode |= S_IFDIR; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; -+ SQUASHFS_I(i)->u.s2.directory_index_offset = -+ next_offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = -+ inodep->i_count; -+ SQUASHFS_I(i)->u.s2.parent_inode = 0; -+ -+ TRACE("Long directory inode %x:%x, start_block %x, " -+ "offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, inodep->offset); -+ break; -+ } -+ case SQUASHFS_SYMLINK_TYPE: { -+ struct squashfs_symlink_inode_header_2 *inodep = -+ &id.symlink; -+ struct squashfs_symlink_inode_header_2 *sinodep = -+ &sid.symlink; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(inodep, -+ sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->symlink_size; -+ i->i_op = &page_symlink_inode_operations; -+ i->i_data.a_ops = &squashfs_symlink_aops; -+ i->i_mode |= S_IFLNK; -+ SQUASHFS_I(i)->start_block = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ -+ TRACE("Symbolic link inode %x:%x, start_block %llx, " -+ "offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ next_block, next_offset); -+ break; -+ } -+ case SQUASHFS_BLKDEV_TYPE: -+ case SQUASHFS_CHRDEV_TYPE: { -+ struct squashfs_dev_inode_header_2 *inodep = &id.dev; -+ struct squashfs_dev_inode_header_2 *sinodep = &sid.dev; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DEV_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_mode |= (inodeb->inode_type == -+ SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : -+ S_IFBLK; -+ init_special_inode(i, i->i_mode, -+ old_decode_dev(inodep->rdev)); -+ -+ TRACE("Device inode %x:%x, rdev %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->rdev); -+ break; -+ } -+ case SQUASHFS_FIFO_TYPE: -+ case SQUASHFS_SOCKET_TYPE: { -+ -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) -+ ? S_IFIFO : S_IFSOCK; -+ init_special_inode(i, i->i_mode, 0); -+ break; -+ } -+ default: -+ ERROR("Unknown inode type %d in squashfs_iget!\n", -+ inodeb->inode_type); -+ goto failed_read1; -+ } -+ -+ return 1; -+ -+failed_read: -+ ERROR("Unable to read inode [%x:%x]\n", block, offset); -+ -+failed_read1: -+ return 0; -+} -+ -+ -+static int get_dir_index_using_offset(struct super_block *s, long long -+ *next_block, unsigned int *next_offset, -+ long long index_start, -+ unsigned int index_offset, int i_count, -+ long long f_pos) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index_2 index; -+ -+ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", -+ i_count, (unsigned int) f_pos); -+ -+ if (f_pos == 0) -+ goto finish; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index_2 sindex; -+ squashfs_get_cached_block(s, (char *) &sindex, -+ index_start, index_offset, -+ sizeof(sindex), &index_start, -+ &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX_2(&index, &sindex); -+ } else -+ squashfs_get_cached_block(s, (char *) &index, -+ index_start, index_offset, -+ sizeof(index), &index_start, -+ &index_offset); -+ -+ if (index.index > f_pos) -+ break; -+ -+ squashfs_get_cached_block(s, NULL, index_start, index_offset, -+ index.size + 1, &index_start, -+ &index_offset); -+ -+ length = index.index; -+ *next_block = index.start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ -+finish: -+ return length; -+} -+ -+ -+static int get_dir_index_using_name(struct super_block *s, long long -+ *next_block, unsigned int *next_offset, -+ long long index_start, -+ unsigned int index_offset, int i_count, -+ const char *name, int size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index_2 *index; -+ char *str; -+ -+ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); -+ -+ if (!(str = kmalloc(sizeof(struct squashfs_dir_index) + -+ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_index\n"); -+ goto failure; -+ } -+ -+ index = (struct squashfs_dir_index_2 *) (str + SQUASHFS_NAME_LEN + 1); -+ strncpy(str, name, size); -+ str[size] = '\0'; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index_2 sindex; -+ squashfs_get_cached_block(s, (char *) &sindex, -+ index_start, index_offset, -+ sizeof(sindex), &index_start, -+ &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX_2(index, &sindex); -+ } else -+ squashfs_get_cached_block(s, (char *) index, -+ index_start, index_offset, -+ sizeof(struct squashfs_dir_index_2), -+ &index_start, &index_offset); -+ -+ squashfs_get_cached_block(s, index->name, index_start, -+ index_offset, index->size + 1, -+ &index_start, &index_offset); -+ -+ index->name[index->size + 1] = '\0'; -+ -+ if (strcmp(index->name, str) > 0) -+ break; -+ -+ length = index->index; -+ *next_block = index->start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ kfree(str); -+failure: -+ return length; -+} -+ -+ -+static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir) -+{ -+ struct inode *i = file->f_dentry->d_inode; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, -+ dir_count; -+ struct squashfs_dir_header_2 dirh; -+ struct squashfs_dir_entry_2 *dire; -+ -+ TRACE("Entered squashfs_readdir_2 [%llx:%x]\n", next_block, next_offset); -+ -+ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto finish; -+ } -+ -+ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, -+ file->f_pos); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header_2 sdirh; -+ -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, -+ next_block, next_offset, sizeof(sdirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, -+ next_block, next_offset, sizeof(dirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry_2 sdire; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ &sdire, next_block, next_offset, -+ sizeof(sdire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ dire, next_block, next_offset, -+ sizeof(*dire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, -+ next_block, next_offset, -+ dire->size + 1, &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (file->f_pos >= length) -+ continue; -+ -+ dire->name[dire->size + 1] = '\0'; -+ -+ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n", -+ (unsigned int) dirent, dire->name, -+ dire->size + 1, (int) file->f_pos, -+ dirh.start_block, dire->offset, -+ squashfs_filetype_table[dire->type]); -+ -+ if (filldir(dirent, dire->name, dire->size + 1, -+ file->f_pos, SQUASHFS_MK_VFS_INODE( -+ dirh.start_block, dire->offset), -+ squashfs_filetype_table[dire->type]) -+ < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos = length; -+ } -+ } -+ -+finish: -+ kfree(dire); -+ return 0; -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ kfree(dire); -+ return 0; -+} -+ -+ -+static struct dentry *squashfs_lookup_2(struct inode *i, struct dentry *dentry, -+ struct nameidata *nd) -+{ -+ const unsigned char *name = dentry->d_name.name; -+ int len = dentry->d_name.len; -+ struct inode *inode = NULL; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, -+ dir_count; -+ struct squashfs_dir_header_2 dirh; -+ struct squashfs_dir_entry_2 *dire; -+ int sorted = sblk->s_major == 2 && sblk->s_minor >= 1; -+ -+ TRACE("Entered squashfs_lookup_2 [%llx:%x]\n", next_block, next_offset); -+ -+ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto exit_loop; -+ } -+ -+ if (len > SQUASHFS_NAME_LEN) -+ goto exit_loop; -+ -+ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, name, -+ len); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header_2 sdirh; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, -+ next_block, next_offset, sizeof(sdirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, -+ next_block, next_offset, sizeof(dirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry_2 sdire; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ &sdire, next_block,next_offset, -+ sizeof(sdire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ dire, next_block,next_offset, -+ sizeof(*dire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, -+ next_block, next_offset, dire->size + 1, -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (sorted && name[0] < dire->name[0]) -+ goto exit_loop; -+ -+ if ((len == dire->size + 1) && !strncmp(name, -+ dire->name, len)) { -+ squashfs_inode_t ino = -+ SQUASHFS_MKINODE(dirh.start_block, -+ dire->offset); -+ unsigned int inode_number = SQUASHFS_MK_VFS_INODE(dirh.start_block, -+ dire->offset); -+ -+ TRACE("calling squashfs_iget for directory " -+ "entry %s, inode %x:%x, %lld\n", name, -+ dirh.start_block, dire->offset, ino); -+ -+ inode = squashfs_iget(i->i_sb, ino, inode_number); -+ -+ goto exit_loop; -+ } -+ } -+ } -+ -+exit_loop: -+ kfree(dire); -+ d_add(dentry, inode); -+ return ERR_PTR(0); -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ goto exit_loop; -+} -+ -+ -+int squashfs_2_0_supported(struct squashfs_sb_info *msblk) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ msblk->read_inode = squashfs_read_inode_2; -+ msblk->read_fragment_index_table = read_fragment_index_table_2; -+ -+ sblk->bytes_used = sblk->bytes_used_2; -+ sblk->uid_start = sblk->uid_start_2; -+ sblk->guid_start = sblk->guid_start_2; -+ sblk->inode_table_start = sblk->inode_table_start_2; -+ sblk->directory_table_start = sblk->directory_table_start_2; -+ sblk->fragment_table_start = sblk->fragment_table_start_2; -+ -+ return 1; -+} -diff -urN linux-2.6.23/fs/squashfs/uncomp.c linux-2.6.23.sqlzma-ng/fs/squashfs/uncomp.c ---- linux-2.6.23/fs/squashfs/uncomp.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/uncomp.c 2007-11-13 19:40:29.000000000 -0500 -@@ -0,0 +1,221 @@ -+/* -+ * Copyright (C) 2006, 2007 Junjiro Okajima -+ * Copyright (C) 2006, 2007 Tomas Matejicek, slax.org -+ * -+ * LICENSE follows the described one in lzma.txt. -+ */ -+ -+/* $Id: uncomp.c,v 1.1 2007/11/05 05:43:36 jro Exp $ */ -+ -+/* extract some parts from lzma443/C/7zip/Compress/LZMA_C/LzmaTest.c */ -+ -+#ifndef __KERNEL__ -+#include -+#include -+#include -+#include -+#include -+#include -+#define unlikely(x) __builtin_expect(!!(x), 0) -+#define BUG_ON(x) assert(!(x)) -+/* sqlzma buffers are always larger than a page. true? */ -+#define kmalloc(sz,gfp) malloc(sz) -+#define kfree(p) free(p) -+#define zlib_inflate(s, f) inflate(s, f) -+#define zlib_inflateInit(s) inflateInit(s) -+#define zlib_inflateReset(s) inflateReset(s) -+#define zlib_inflateEnd(s) inflateEnd(s) -+#else -+#include -+#include -+#include -+#include -+#ifndef WARN_ON_ONCE -+#define WARN_ON_ONCE(b) WARN_ON(b) -+#endif -+#endif /* __KERNEL__ */ -+ -+#include "sqlzma.h" -+#include "LzmaDecode.h" -+ -+static int LzmaUncompress(struct sqlzma_un *un) -+{ -+ int err, i, ret; -+ SizeT outSize, inProcessed, outProcessed, srclen; -+ /* it's about 24-80 bytes structure, if int is 32-bit */ -+ CLzmaDecoderState state; -+ unsigned char *dst, *src, a[8]; -+ struct sized_buf *sbuf; -+ -+ /* Decode LZMA properties and allocate memory */ -+ err = -EINVAL; -+ src = un->un_cmbuf; -+ ret = LzmaDecodeProperties(&state.Properties, src, LZMA_PROPERTIES_SIZE); -+ src += LZMA_PROPERTIES_SIZE; -+ if (unlikely(ret != LZMA_RESULT_OK)) -+ goto out; -+ i = LzmaGetNumProbs(&state.Properties); -+ if (unlikely(i <= 0)) -+ i = 1; -+ i *= sizeof(CProb); -+ sbuf = un->un_a + SQUN_PROB; -+ if (unlikely(sbuf->sz < i)) { -+ if (sbuf->buf && sbuf->buf != un->un_prob) -+ kfree(sbuf->buf); -+#ifdef __KERNEL__ -+ printk("%s:%d: %d --> %d\n", __func__, __LINE__, sbuf->sz, i); -+#else -+ printf("%d --> %d\n", sbuf->sz, i); -+#endif -+ err = -ENOMEM; -+ sbuf->sz = 0; -+ sbuf->buf = kmalloc(i, GFP_ATOMIC); -+ if (unlikely(!sbuf->buf)) -+ goto out; -+ sbuf->sz = i; -+ } -+ state.Probs = (void*)sbuf->buf; -+ -+ /* Read uncompressed size */ -+ memcpy(a, src, sizeof(a)); -+ src += sizeof(a); -+ outSize = a[0] | (a[1] << 8) | (a[2] << 16) | (a[3] << 24); -+ -+ err = -EINVAL; -+ dst = un->un_resbuf; -+ if (unlikely(!dst || outSize > un->un_reslen)) -+ goto out; -+ un->un_reslen = outSize; -+ srclen = un->un_cmlen - (src - un->un_cmbuf); -+ -+ /* Decompress */ -+ err = LzmaDecode(&state, src, srclen, &inProcessed, dst, outSize, -+ &outProcessed); -+ if (err) -+ err = -EINVAL; -+ -+ out: -+#ifndef __KERNEL__ -+ if (err) -+ fprintf(stderr, "err %d\n", err); -+#endif -+ return err; -+} -+ -+int sqlzma_un(struct sqlzma_un *un, struct sized_buf *src, -+ struct sized_buf *dst) -+{ -+ int err, by_lzma = 0; -+ if (un->un_lzma && is_lzma(*src->buf)) { -+ by_lzma = 1; -+ un->un_cmbuf = src->buf; -+ un->un_cmlen = src->sz; -+ un->un_resbuf = dst->buf; -+ un->un_reslen = dst->sz; -+ -+ /* this library is thread-safe */ -+ err = LzmaUncompress(un); -+ goto out; -+ } -+ -+ err = zlib_inflateReset(&un->un_stream); -+ if (unlikely(err != Z_OK)) -+ goto out; -+ un->un_stream.next_in = src->buf; -+ un->un_stream.avail_in = src->sz; -+ un->un_stream.next_out = dst->buf; -+ un->un_stream.avail_out = dst->sz; -+ err = zlib_inflate(&un->un_stream, Z_FINISH); -+ if (err == Z_STREAM_END) -+ err = 0; -+ -+ out: -+ if (err) { -+#ifdef __KERNEL__ -+ WARN_ON_ONCE(1); -+#else -+ char a[64] = "ZLIB "; -+ if (by_lzma) { -+ strcpy(a, "LZMA "); -+#ifdef _REENTRANT -+ strerror_r(err, a + 5, sizeof(a) - 5); -+#else -+ strncat(a, strerror(err), sizeof(a) - 5); -+#endif -+ } else -+ strncat(a, zError(err), sizeof(a) - 5); -+ fprintf(stderr, "%s: %.*s\n", __func__, sizeof(a), a); -+#endif -+ } -+ return err; -+} -+ -+int sqlzma_init(struct sqlzma_un *un, int do_lzma, unsigned int res_sz) -+{ -+ int err; -+ -+ err = -ENOMEM; -+ un->un_lzma = do_lzma; -+ memset(un->un_a, 0, sizeof(un->un_a)); -+ un->un_a[SQUN_PROB].buf = un->un_prob; -+ un->un_a[SQUN_PROB].sz = sizeof(un->un_prob); -+ if (res_sz) { -+ un->un_a[SQUN_RESULT].buf = kmalloc(res_sz, GFP_KERNEL); -+ if (unlikely(!un->un_a[SQUN_RESULT].buf)) -+ return err; -+ un->un_a[SQUN_RESULT].sz = res_sz; -+ } -+ -+ un->un_stream.next_in = NULL; -+ un->un_stream.avail_in = 0; -+#ifdef __KERNEL__ -+ un->un_stream.workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL); -+ if (unlikely(!un->un_stream.workspace)) -+ return err; -+#else -+ un->un_stream.opaque = NULL; -+ un->un_stream.zalloc = Z_NULL; -+ un->un_stream.zfree = Z_NULL; -+#endif -+ err = zlib_inflateInit(&un->un_stream); -+ if (unlikely(err == Z_MEM_ERROR)) -+ return -ENOMEM; -+ BUG_ON(err); -+ return err; -+} -+ -+void sqlzma_fin(struct sqlzma_un *un) -+{ -+ int i; -+ for (i = 0; i < SQUN_LAST; i++) -+ if (un->un_a[i].buf && un->un_a[i].buf != un->un_prob) -+ kfree(un->un_a[i].buf); -+ BUG_ON(zlib_inflateEnd(&un->un_stream) != Z_OK); -+} -+ -+#ifdef __KERNEL__ -+EXPORT_SYMBOL(sqlzma_un); -+EXPORT_SYMBOL(sqlzma_init); -+EXPORT_SYMBOL(sqlzma_fin); -+ -+#if 0 -+static int __init sqlzma_init(void) -+{ -+ return 0; -+} -+ -+static void __exit sqlzma_exit(void) -+{ -+} -+ -+module_init(sqlzma_init); -+module_exit(sqlzma_exit); -+#endif -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Junjiro Okajima "); -+MODULE_VERSION("$Id: uncomp.c,v 1.1 2007/11/05 05:43:36 jro Exp $"); -+MODULE_DESCRIPTION("LZMA uncompress for squashfs. " -+ "Some functions for squashfs to support LZMA and " -+ "a tiny wrapper for LzmaDecode.c in LZMA SDK from www.7-zip.org."); -+#endif -diff -urN linux-2.6.23/include/linux/squashfs_fs.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs.h ---- linux-2.6.23/include/linux/squashfs_fs.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs.h 2007-11-13 19:12:41.000000000 -0500 -@@ -0,0 +1,937 @@ -+#ifndef SQUASHFS_FS -+#define SQUASHFS_FS -+ -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs.h -+ */ -+ -+#ifndef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+#define CONFIG_SQUASHFS_2_0_COMPATIBILITY -+#endif -+ -+#define SQUASHFS_CACHED_FRAGMENTS CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE -+#define SQUASHFS_MAJOR 3 -+#define SQUASHFS_MINOR 1 -+#define SQUASHFS_MAGIC 0x73717368 -+#define SQUASHFS_MAGIC_SWAP 0x68737173 -+#define SQUASHFS_MAGIC_LZMA 0x71736873 -+#define SQUASHFS_MAGIC_LZMA_SWAP 0x73687371 -+#define SQUASHFS_START 0 -+ -+/* size of metadata (inode and directory) blocks */ -+#define SQUASHFS_METADATA_SIZE 8192 -+#define SQUASHFS_METADATA_LOG 13 -+ -+/* default size of data blocks */ -+#define SQUASHFS_FILE_SIZE 131072 -+#define SQUASHFS_FILE_LOG 17 -+ -+#define SQUASHFS_FILE_MAX_SIZE 1048576 -+ -+/* Max number of uids and gids */ -+#define SQUASHFS_UIDS 256 -+#define SQUASHFS_GUIDS 255 -+ -+/* Max length of filename (not 255) */ -+#define SQUASHFS_NAME_LEN 256 -+ -+#define SQUASHFS_INVALID ((long long) 0xffffffffffff) -+#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff) -+#define SQUASHFS_INVALID_BLK ((long long) -1) -+#define SQUASHFS_USED_BLK ((long long) -2) -+ -+/* Filesystem flags */ -+#define SQUASHFS_NOI 0 -+#define SQUASHFS_NOD 1 -+#define SQUASHFS_CHECK 2 -+#define SQUASHFS_NOF 3 -+#define SQUASHFS_NO_FRAG 4 -+#define SQUASHFS_ALWAYS_FRAG 5 -+#define SQUASHFS_DUPLICATE 6 -+#define SQUASHFS_EXPORT 7 -+ -+#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1) -+ -+#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOI) -+ -+#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOD) -+ -+#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOF) -+ -+#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NO_FRAG) -+ -+#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_ALWAYS_FRAG) -+ -+#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_DUPLICATE) -+ -+#define SQUASHFS_EXPORTABLE(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_EXPORT) -+ -+#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_CHECK) -+ -+#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \ -+ duplicate_checking, exportable) (noi | (nod << 1) | (check_data << 2) \ -+ | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \ -+ (duplicate_checking << 6) | (exportable << 7)) -+ -+/* Max number of types and file types */ -+#define SQUASHFS_DIR_TYPE 1 -+#define SQUASHFS_FILE_TYPE 2 -+#define SQUASHFS_SYMLINK_TYPE 3 -+#define SQUASHFS_BLKDEV_TYPE 4 -+#define SQUASHFS_CHRDEV_TYPE 5 -+#define SQUASHFS_FIFO_TYPE 6 -+#define SQUASHFS_SOCKET_TYPE 7 -+#define SQUASHFS_LDIR_TYPE 8 -+#define SQUASHFS_LREG_TYPE 9 -+ -+/* 1.0 filesystem type definitions */ -+#define SQUASHFS_TYPES 5 -+#define SQUASHFS_IPC_TYPE 0 -+ -+/* Flag whether block is compressed or uncompressed, bit is set if block is -+ * uncompressed */ -+#define SQUASHFS_COMPRESSED_BIT (1 << 15) -+ -+#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \ -+ (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT) -+ -+#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT)) -+ -+#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24) -+ -+#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) ((B) & \ -+ ~SQUASHFS_COMPRESSED_BIT_BLOCK) -+ -+#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK)) -+ -+/* -+ * Inode number ops. Inodes consist of a compressed block number, and an -+ * uncompressed offset within that block -+ */ -+#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16)) -+ -+#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff)) -+ -+#define SQUASHFS_MKINODE(A, B) ((squashfs_inode_t)(((squashfs_inode_t) (A)\ -+ << 16) + (B))) -+ -+/* Compute 32 bit VFS inode number from squashfs inode number */ -+#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \ -+ ((b) >> 2) + 1)) -+/* XXX */ -+ -+/* Translate between VFS mode and squashfs mode */ -+#define SQUASHFS_MODE(a) ((a) & 0xfff) -+ -+/* fragment and fragment table defines */ -+#define SQUASHFS_FRAGMENT_BYTES(A) ((A) * sizeof(struct squashfs_fragment_entry)) -+ -+#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\ -+ sizeof(long long)) -+ -+/* inode lookup table defines */ -+#define SQUASHFS_LOOKUP_BYTES(A) ((A) * sizeof(squashfs_inode_t)) -+ -+#define SQUASHFS_LOOKUP_BLOCK(A) (SQUASHFS_LOOKUP_BYTES(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCK_OFFSET(A) (SQUASHFS_LOOKUP_BYTES(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCKS(A) ((SQUASHFS_LOOKUP_BYTES(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCK_BYTES(A) (SQUASHFS_LOOKUP_BLOCKS(A) *\ -+ sizeof(long long)) -+ -+/* cached data constants for filesystem */ -+#define SQUASHFS_CACHED_BLKS 8 -+ -+#define SQUASHFS_MAX_FILE_SIZE_LOG 64 -+ -+#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \ -+ (SQUASHFS_MAX_FILE_SIZE_LOG - 2)) -+ -+#define SQUASHFS_MARKER_BYTE 0xff -+ -+/* meta index cache */ -+#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int)) -+#define SQUASHFS_META_ENTRIES 31 -+#define SQUASHFS_META_NUMBER 8 -+#define SQUASHFS_SLOTS 4 -+ -+struct meta_entry { -+ long long data_block; -+ unsigned int index_block; -+ unsigned short offset; -+ unsigned short pad; -+}; -+ -+struct meta_index { -+ unsigned int inode_number; -+ unsigned int offset; -+ unsigned short entries; -+ unsigned short skip; -+ unsigned short locked; -+ unsigned short pad; -+ struct meta_entry meta_entry[SQUASHFS_META_ENTRIES]; -+}; -+ -+ -+/* -+ * definitions for structures on disk -+ */ -+ -+typedef long long squashfs_block_t; -+typedef long long squashfs_inode_t; -+ -+struct squashfs_super_block { -+ unsigned int s_magic; -+ unsigned int inodes; -+ unsigned int bytes_used_2; -+ unsigned int uid_start_2; -+ unsigned int guid_start_2; -+ unsigned int inode_table_start_2; -+ unsigned int directory_table_start_2; -+ unsigned int s_major:16; -+ unsigned int s_minor:16; -+ unsigned int block_size_1:16; -+ unsigned int block_log:16; -+ unsigned int flags:8; -+ unsigned int no_uids:8; -+ unsigned int no_guids:8; -+ unsigned int mkfs_time /* time of filesystem creation */; -+ squashfs_inode_t root_inode; -+ unsigned int block_size; -+ unsigned int fragments; -+ unsigned int fragment_table_start_2; -+ long long bytes_used; -+ long long uid_start; -+ long long guid_start; -+ long long inode_table_start; -+ long long directory_table_start; -+ long long fragment_table_start; -+ long long lookup_table_start; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_index { -+ unsigned int index; -+ unsigned int start_block; -+ unsigned char size; -+ unsigned char name[0]; -+} __attribute__ ((packed)); -+ -+#define SQUASHFS_BASE_INODE_HEADER \ -+ unsigned int inode_type:4; \ -+ unsigned int mode:12; \ -+ unsigned int uid:8; \ -+ unsigned int guid:8; \ -+ unsigned int mtime; \ -+ unsigned int inode_number; -+ -+struct squashfs_base_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ squashfs_block_t start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ unsigned int file_size; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_lreg_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ squashfs_block_t start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ long long file_size; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int start_block; -+ unsigned int parent_inode; -+} __attribute__ ((packed)); -+ -+struct squashfs_ldir_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned int file_size:27; -+ unsigned int offset:13; -+ unsigned int start_block; -+ unsigned int i_count:16; -+ unsigned int parent_inode; -+ struct squashfs_dir_index index[0]; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header { -+ struct squashfs_base_inode_header base; -+ struct squashfs_dev_inode_header dev; -+ struct squashfs_symlink_inode_header symlink; -+ struct squashfs_reg_inode_header reg; -+ struct squashfs_lreg_inode_header lreg; -+ struct squashfs_dir_inode_header dir; -+ struct squashfs_ldir_inode_header ldir; -+ struct squashfs_ipc_inode_header ipc; -+}; -+ -+struct squashfs_dir_entry { -+ unsigned int offset:13; -+ unsigned int type:3; -+ unsigned int size:8; -+ unsigned int inode_number:16; -+ char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_header { -+ unsigned int count:8; -+ unsigned int start_block; -+ unsigned int inode_number; -+} __attribute__ ((packed)); -+ -+struct squashfs_fragment_entry { -+ long long start_block; -+ unsigned int size; -+ unsigned int pending; -+} __attribute__ ((packed)); -+ -+extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen); -+extern int squashfs_uncompress_init(void); -+extern int squashfs_uncompress_exit(void); -+ -+/* -+ * macros to convert each packed bitfield structure from little endian to big -+ * endian and vice versa. These are needed when creating or using a filesystem -+ * on a machine with different byte ordering to the target architecture. -+ * -+ */ -+ -+#define SQUASHFS_SWAP_START \ -+ int bits;\ -+ int b_pos;\ -+ unsigned long long val;\ -+ unsigned char *s;\ -+ unsigned char *d; -+ -+#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_super_block));\ -+ SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->inodes, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->bytes_used_2, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->uid_start_2, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->guid_start_2, d, 128, 32);\ -+ SQUASHFS_SWAP((s)->inode_table_start_2, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->directory_table_start_2, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->s_major, d, 224, 16);\ -+ SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\ -+ SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\ -+ SQUASHFS_SWAP((s)->block_log, d, 272, 16);\ -+ SQUASHFS_SWAP((s)->flags, d, 288, 8);\ -+ SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\ -+ SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\ -+ SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\ -+ SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\ -+ SQUASHFS_SWAP((s)->block_size, d, 408, 32);\ -+ SQUASHFS_SWAP((s)->fragments, d, 440, 32);\ -+ SQUASHFS_SWAP((s)->fragment_table_start_2, d, 472, 32);\ -+ SQUASHFS_SWAP((s)->bytes_used, d, 504, 64);\ -+ SQUASHFS_SWAP((s)->uid_start, d, 568, 64);\ -+ SQUASHFS_SWAP((s)->guid_start, d, 632, 64);\ -+ SQUASHFS_SWAP((s)->inode_table_start, d, 696, 64);\ -+ SQUASHFS_SWAP((s)->directory_table_start, d, 760, 64);\ -+ SQUASHFS_SWAP((s)->fragment_table_start, d, 824, 64);\ -+ SQUASHFS_SWAP((s)->lookup_table_start, d, 888, 64);\ -+} -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ -+ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 64, 32); -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_ipc_inode_header))\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_dev_inode_header)); \ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->rdev, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_reg_inode_header));\ -+ SQUASHFS_SWAP((s)->start_block, d, 96, 64);\ -+ SQUASHFS_SWAP((s)->fragment, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 224, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LREG_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_lreg_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 128, 64);\ -+ SQUASHFS_SWAP((s)->fragment, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 224, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 256, 64);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_dir_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 128, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 147, 13);\ -+ SQUASHFS_SWAP((s)->start_block, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->parent_inode, d, 192, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LDIR_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_ldir_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 128, 27);\ -+ SQUASHFS_SWAP((s)->offset, d, 155, 13);\ -+ SQUASHFS_SWAP((s)->start_block, d, 168, 32);\ -+ SQUASHFS_SWAP((s)->i_count, d, 200, 16);\ -+ SQUASHFS_SWAP((s)->parent_inode, d, 216, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INDEX(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index));\ -+ SQUASHFS_SWAP((s)->index, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->size, d, 64, 8);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header));\ -+ SQUASHFS_SWAP((s)->count, d, 0, 8);\ -+ SQUASHFS_SWAP((s)->start_block, d, 8, 32);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 40, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry));\ -+ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ -+ SQUASHFS_SWAP((s)->type, d, 13, 3);\ -+ SQUASHFS_SWAP((s)->size, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry));\ -+ SQUASHFS_SWAP((s)->start_block, d, 0, 64);\ -+ SQUASHFS_SWAP((s)->size, d, 64, 32);\ -+} -+ -+#define SQUASHFS_SWAP_INODE_T(s, d) SQUASHFS_SWAP_LONG_LONGS(s, d, 1) -+ -+#define SQUASHFS_SWAP_SHORTS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 2);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 16)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 16);\ -+} -+ -+#define SQUASHFS_SWAP_INTS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 4);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 32)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LONG_LONGS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 8);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 64)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 64);\ -+} -+ -+#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * bits / 8);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ bits)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, bits);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) -+#define SQUASHFS_SWAP_LOOKUP_BLOCKS(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+ -+struct squashfs_base_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int type:4; -+ unsigned int offset:4; -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int mtime; -+ unsigned int start_block; -+ unsigned int file_size:32; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header_1 { -+ struct squashfs_base_inode_header_1 base; -+ struct squashfs_dev_inode_header_1 dev; -+ struct squashfs_symlink_inode_header_1 symlink; -+ struct squashfs_reg_inode_header_1 reg; -+ struct squashfs_dir_inode_header_1 dir; -+ struct squashfs_ipc_inode_header_1 ipc; -+}; -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n) \ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 4);\ -+ SQUASHFS_SWAP((s)->guid, d, 20, 4); -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_ipc_inode_header_1));\ -+ SQUASHFS_SWAP((s)->type, d, 24, 4);\ -+ SQUASHFS_SWAP((s)->offset, d, 28, 4);\ -+} -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_dev_inode_header_1));\ -+ SQUASHFS_SWAP((s)->rdev, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header_1));\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_reg_inode_header_1));\ -+ SQUASHFS_SWAP((s)->mtime, d, 24, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 56, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 88, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_dir_inode_header_1));\ -+ SQUASHFS_SWAP((s)->file_size, d, 24, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 43, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 56, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 88, 24);\ -+} -+ -+#endif -+ -+#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+ -+struct squashfs_dir_index_2 { -+ unsigned int index:27; -+ unsigned int start_block:29; -+ unsigned char size; -+ unsigned char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_base_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int mtime; -+ unsigned int start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ unsigned int file_size:32; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+struct squashfs_ldir_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int file_size:27; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+ unsigned int i_count:16; -+ struct squashfs_dir_index_2 index[0]; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header_2 { -+ struct squashfs_base_inode_header_2 base; -+ struct squashfs_dev_inode_header_2 dev; -+ struct squashfs_symlink_inode_header_2 symlink; -+ struct squashfs_reg_inode_header_2 reg; -+ struct squashfs_dir_inode_header_2 dir; -+ struct squashfs_ldir_inode_header_2 ldir; -+ struct squashfs_ipc_inode_header_2 ipc; -+}; -+ -+struct squashfs_dir_header_2 { -+ unsigned int count:8; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_entry_2 { -+ unsigned int offset:13; -+ unsigned int type:3; -+ unsigned int size:8; -+ char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_fragment_entry_2 { -+ unsigned int start_block; -+ unsigned int size; -+} __attribute__ ((packed)); -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER_2(s, d) \ -+ SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, sizeof(struct squashfs_ipc_inode_header_2)) -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_dev_inode_header_2)); \ -+ SQUASHFS_SWAP((s)->rdev, d, 32, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header_2));\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_reg_inode_header_2));\ -+ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->fragment, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 128, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 160, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_dir_inode_header_2));\ -+ SQUASHFS_SWAP((s)->file_size, d, 32, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 51, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 96, 24);\ -+} -+ -+#define SQUASHFS_SWAP_LDIR_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_ldir_inode_header_2));\ -+ SQUASHFS_SWAP((s)->file_size, d, 32, 27);\ -+ SQUASHFS_SWAP((s)->offset, d, 59, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 72, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 104, 24);\ -+ SQUASHFS_SWAP((s)->i_count, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INDEX_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index_2));\ -+ SQUASHFS_SWAP((s)->index, d, 0, 27);\ -+ SQUASHFS_SWAP((s)->start_block, d, 27, 29);\ -+ SQUASHFS_SWAP((s)->size, d, 56, 8);\ -+} -+#define SQUASHFS_SWAP_DIR_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header_2));\ -+ SQUASHFS_SWAP((s)->count, d, 0, 8);\ -+ SQUASHFS_SWAP((s)->start_block, d, 8, 24);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_ENTRY_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry_2));\ -+ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ -+ SQUASHFS_SWAP((s)->type, d, 13, 3);\ -+ SQUASHFS_SWAP((s)->size, d, 16, 8);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_ENTRY_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry_2));\ -+ SQUASHFS_SWAP((s)->start_block, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->size, d, 32, 32);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_INDEXES_2(s, d, n) SQUASHFS_SWAP_INTS(s, d, n) -+ -+/* fragment and fragment table defines */ -+#define SQUASHFS_FRAGMENT_BYTES_2(A) (A * sizeof(struct squashfs_fragment_entry_2)) -+ -+#define SQUASHFS_FRAGMENT_INDEX_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_OFFSET_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEXES_2(A) ((SQUASHFS_FRAGMENT_BYTES_2(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_BYTES_2(A) (SQUASHFS_FRAGMENT_INDEXES_2(A) *\ -+ sizeof(int)) -+ -+#endif -+ -+#ifdef __KERNEL__ -+ -+/* -+ * macros used to swap each structure entry, taking into account -+ * bitfields and different bitfield placing conventions on differing -+ * architectures -+ */ -+ -+#include -+ -+#ifdef __BIG_ENDIAN -+ /* convert from little endian to big endian */ -+#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ -+ tbits, b_pos) -+#else -+ /* convert from big endian to little endian */ -+#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ -+ tbits, 64 - tbits - b_pos) -+#endif -+ -+#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\ -+ b_pos = pos % 8;\ -+ val = 0;\ -+ s = (unsigned char *)p + (pos / 8);\ -+ d = ((unsigned char *) &val) + 7;\ -+ for(bits = 0; bits < (tbits + b_pos); bits += 8) \ -+ *d-- = *s++;\ -+ value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\ -+} -+ -+#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n); -+ -+#endif -+#endif -diff -urN linux-2.6.23/include/linux/squashfs_fs_i.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_i.h ---- linux-2.6.23/include/linux/squashfs_fs_i.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_i.h 2007-11-13 18:58:41.000000000 -0500 -@@ -0,0 +1,45 @@ -+#ifndef SQUASHFS_FS_I -+#define SQUASHFS_FS_I -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs_i.h -+ */ -+ -+struct squashfs_inode_info { -+ long long start_block; -+ unsigned int offset; -+ union { -+ struct { -+ long long fragment_start_block; -+ unsigned int fragment_size; -+ unsigned int fragment_offset; -+ long long block_list_start; -+ } s1; -+ struct { -+ long long directory_index_start; -+ unsigned int directory_index_offset; -+ unsigned int directory_index_count; -+ unsigned int parent_inode; -+ } s2; -+ } u; -+ struct inode vfs_inode; -+}; -+#endif -diff -urN linux-2.6.23/include/linux/squashfs_fs_sb.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_sb.h ---- linux-2.6.23/include/linux/squashfs_fs_sb.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_sb.h 2007-11-13 19:19:28.000000000 -0500 -@@ -0,0 +1,76 @@ -+#ifndef SQUASHFS_FS_SB -+#define SQUASHFS_FS_SB -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs_sb.h -+ */ -+ -+#include -+ -+struct squashfs_cache { -+ long long block; -+ int length; -+ long long next_index; -+ char *data; -+}; -+ -+struct squashfs_fragment_cache { -+ long long block; -+ int length; -+ unsigned int locked; -+ char *data; -+}; -+ -+struct squashfs_sb_info { -+ struct squashfs_super_block sblk; -+ int devblksize; -+ int devblksize_log2; -+ int swap; -+ struct squashfs_cache *block_cache; -+ struct squashfs_fragment_cache *fragment; -+ int next_cache; -+ int next_fragment; -+ int next_meta_index; -+ unsigned int *uid; -+ unsigned int *guid; -+ long long *fragment_index; -+ unsigned int *fragment_index_2; -+ char *read_page; -+ //struct mutex read_data_mutex; -+ struct mutex read_page_mutex; -+ struct mutex block_cache_mutex; -+ struct mutex fragment_mutex; -+ struct mutex meta_index_mutex; -+ wait_queue_head_t waitq; -+ wait_queue_head_t fragment_wait_queue; -+ struct meta_index *meta_index; -+ //z_stream stream; -+ long long *inode_lookup_table; -+ int unused_cache_blks; -+ int unused_frag_blks; -+ int (*read_inode)(struct inode *i, squashfs_inode_t \ -+ inode); -+ long long (*read_blocklist)(struct inode *inode, int \ -+ index, int readahead_blks, char *block_list, \ -+ unsigned short **block_p, unsigned int *bsize); -+ int (*read_fragment_index_table)(struct super_block *s); -+}; -+#endif - diff --git a/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch b/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch deleted file mode 100644 index cd2c678058..0000000000 --- a/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -urN linux-2.6.23/init/do_mounts_rd.c linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c ---- linux-2.6.23/init/do_mounts_rd.c 2007-10-09 16:31:38.000000000 -0400 -+++ linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c 2007-11-13 18:58:41.000000000 -0500 -@@ -5,6 +5,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -39,6 +40,7 @@ - * numbers could not be found. - * - * We currently check for the following magic numbers: -+ * squashfs - * minix - * ext2 - * romfs -@@ -53,6 +55,7 @@ - struct ext2_super_block *ext2sb; - struct romfs_super_block *romfsb; - struct cramfs_super *cramfsb; -+ struct squashfs_super_block *squashfsb; - int nblocks = -1; - unsigned char *buf; - -@@ -64,6 +67,7 @@ - ext2sb = (struct ext2_super_block *) buf; - romfsb = (struct romfs_super_block *) buf; - cramfsb = (struct cramfs_super *) buf; -+ squashfsb = (struct squashfs_super_block *) buf; - memset(buf, 0xe5, size); - - /* -@@ -101,6 +105,18 @@ - goto done; - } - -+ /* squashfs is at block zero too */ -+ if (squashfsb->s_magic == SQUASHFS_MAGIC) { -+ printk(KERN_NOTICE -+ "RAMDISK: squashfs filesystem found at block %d\n", -+ start_block); -+ if (squashfsb->s_major < 3) -+ nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; -+ else -+ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; -+ goto done; -+ } -+ - /* - * Read block 1 to test for minix and ext2 superblock - */ - diff --git a/packages/linux/linux-openmoko-devel/0003-squashfs-force-O2.patch b/packages/linux/linux-openmoko-devel/0003-squashfs-force-O2.patch deleted file mode 100644 index 550077b9fa..0000000000 --- a/packages/linux/linux-openmoko-devel/0003-squashfs-force-O2.patch +++ /dev/null @@ -1,17 +0,0 @@ -The kernel patch from the squashfs-3.1r2 release did not compile on my -armeb-linux-gcc 4.1.1 when optimizing for size (-Os). This works around -that problem by using optimization flag -O2 instead for these two files. - -Signed-off-by: Leon Woestenberg - -Index: linux-2.6.19/fs/squashfs/Makefile -=================================================================== ---- linux-2.6.19.orig/fs/squashfs/Makefile -+++ linux-2.6.19/fs/squashfs/Makefile -@@ -5,3 +5,6 @@ - obj-$(CONFIG_SQUASHFS) += squashfs.o - squashfs-y += inode.o - squashfs-y += squashfs2_0.o -+ -+CFLAGS_squashfs2_0.o = "-O2" -+CFLAGS_inode.o = "-O2" diff --git a/packages/linux/linux-openmoko-devel/0004-squashfs-Kconfig.patch b/packages/linux/linux-openmoko-devel/0004-squashfs-Kconfig.patch deleted file mode 100644 index f2b3db9942..0000000000 --- a/packages/linux/linux-openmoko-devel/0004-squashfs-Kconfig.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff -urN linux-2.6.23/fs/Kconfig linux-2.6.23.sqlzma-ng/fs/Kconfig ---- linux-2.6.23/fs/Kconfig 2007-10-09 16:31:38.000000000 -0400 -+++ linux-2.6.23.sqlzma-ng/fs/Kconfig 2007-11-13 18:58:41.000000000 -0500 -@@ -1364,6 +1364,56 @@ - - If unsure, say N. - -+config SQUASHFS -+ tristate "SquashFS 3.3 - Squashed file system support" -+ select ZLIB_INFLATE -+ help -+ Saying Y here includes support for SquashFS 3.3 (a Compressed -+ Read-Only File System). Squashfs is a highly compressed read-only -+ filesystem for Linux. It uses zlib compression to compress both -+ files, inodes and directories. Inodes in the system are very small -+ and all blocks are packed to minimise data overhead. Block sizes -+ greater than 4K are supported up to a maximum of 1 Mbytes (default -+ block size 128K). SquashFS 3.3 supports 64 bit filesystems and files -+ (larger than 4GB), full uid/gid information, hard links and timestamps. -+ -+ Squashfs is intended for general read-only filesystem use, for -+ archival use (i.e. in cases where a .tar.gz file may be used), and in -+ embedded systems where low overhead is needed. Further information -+ and filesystem tools are available from http://squashfs.sourceforge.net. -+ -+ If you want to compile this as a module ( = code which can be -+ inserted in and removed from the running kernel whenever you want), -+ say M here and read . The module -+ will be called squashfs. Note that the root file system (the one -+ containing the directory /) cannot be compiled as a module. -+ -+ If unsure, say N. -+ -+config SQUASHFS_EMBEDDED -+ -+ bool "Additional option for memory-constrained systems" -+ depends on SQUASHFS -+ default n -+ help -+ Saying Y here allows you to specify cache size. -+ -+ If unsure, say N. -+ -+config SQUASHFS_FRAGMENT_CACHE_SIZE -+ int "Number of fragments cached" if SQUASHFS_EMBEDDED -+ depends on SQUASHFS -+ default "3" -+ help -+ By default SquashFS caches the last 3 fragments read from -+ the filesystem. Increasing this amount may mean SquashFS -+ has to re-read fragments less often from disk, at the expense -+ of extra system memory. Decreasing this amount will mean -+ SquashFS uses less memory at the expense of extra reads from disk. -+ -+ Note there must be at least one cached fragment. Anything -+ much more than three will probably not make much difference. -+ - config VXFS_FS - tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" - depends on BLOCK - diff --git a/packages/linux/linux-openmoko-devel/0005-squashfs-Makefile.patch b/packages/linux/linux-openmoko-devel/0005-squashfs-Makefile.patch deleted file mode 100644 index b0ec4cebb8..0000000000 --- a/packages/linux/linux-openmoko-devel/0005-squashfs-Makefile.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN linux-2.6.24/fs/Makefile linux-2.6.24.sqlzma-ng/fs/Makefile ---- linux-2.6.24/fs/Makefile 2007-11-13 21:24:14.000000000 -0500 -+++ linux-2.6.24.sqlzma-ng/fs/Makefile 2007-11-13 21:19:15.000000000 -0500 -@@ -72,6 +72,7 @@ - obj-$(CONFIG_JBD2) += jbd2/ - obj-$(CONFIG_EXT2_FS) += ext2/ - obj-$(CONFIG_CRAMFS) += cramfs/ -+obj-$(CONFIG_SQUASHFS) += squashfs/ - obj-y += ramfs/ - obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ - obj-$(CONFIG_CODA_FS) += coda/ - diff --git a/packages/linux/linux-openmoko-devel/defconfig-oe.patch b/packages/linux/linux-openmoko-devel/defconfig-oe.patch index 109e9ec83d..3f65387b78 100644 --- a/packages/linux/linux-openmoko-devel/defconfig-oe.patch +++ b/packages/linux/linux-openmoko-devel/defconfig-oe.patch @@ -10,28 +10,3 @@ # # Userspace binary formats -@@ -1634,9 +1631,10 @@ - # - CONFIG_LEDS_TRIGGERS=y - CONFIG_LEDS_TRIGGER_TIMER=y --# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -+CONFIG_LEDS_TRIGGER_HEARTBEAT=y - CONFIG_LEDS_TRIGGER_BACKLIGHT=y - # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set -+CONFIG_LEDS_TRIGGER_NETDEV=y - CONFIG_RTC_LIB=y - CONFIG_RTC_CLASS=y - CONFIG_RTC_HCTOSYS=y -@@ -1822,7 +1820,11 @@ - # CONFIG_SYSV_FS is not set - # CONFIG_UFS_FS is not set - CONFIG_NETWORK_FILESYSTEMS=y --# CONFIG_NFS_FS is not set -+CONFIG_NFS_FS=m -+CONFIG_NFS_V3=y -+CONFIG_NFS_V3_ACL=y -+# CONFIG_NFS_V4 is not set -+CONFIG_ROOT_NFS=y - CONFIG_NFSD=m - CONFIG_NFSD_V2_ACL=y - CONFIG_NFSD_V3=y diff --git a/packages/linux/linux-openmoko-devel/openwrt-ledtrig-netdev.patch b/packages/linux/linux-openmoko-devel/openwrt-ledtrig-netdev.patch deleted file mode 100644 index e87bccce61..0000000000 --- a/packages/linux/linux-openmoko-devel/openwrt-ledtrig-netdev.patch +++ /dev/null @@ -1,474 +0,0 @@ -Add a netdev LED trigger for all Blinkenlights lovers... -Originally taken from https://dev.openwrt.org/ticket/2776 -Slightly updated for 2.6.24 by Mickey . - -Index: git/drivers/leds/ledtrig-netdev.c -=================================================================== ---- /dev/null -+++ git/drivers/leds/ledtrig-netdev.c -@@ -0,0 +1,438 @@ -+/* -+ * LED Kernel Netdev Trigger -+ * -+ * Toggles the LED to reflect the link and traffic state of a named net device -+ * -+ * Copyright 2007 Oliver Jowett -+ * -+ * Derived from ledtrig-timer.c which is: -+ * Copyright 2005-2006 Openedhand Ltd. -+ * Author: Richard Purdie -+ * -+ * 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. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "leds.h" -+ -+/* -+ * Configurable sysfs attributes: -+ * -+ * device_name - network device name to monitor -+ * -+ * interval - duration of LED blink, in milliseconds -+ * -+ * mode - either "none" (LED is off) or a space separated list of one or more of: -+ * link: LED's normal state reflects whether the link is up (has carrier) or not -+ * tx: LED blinks on transmitted data -+ * rx: LED blinks on receive data -+ * -+ * Some suggestions: -+ * -+ * Simple link status LED: -+ * $ echo netdev >someled/trigger -+ * $ echo eth0 >someled/device_name -+ * $ echo link >someled/mode -+ * -+ * Ethernet-style link/activity LED: -+ * $ echo netdev >someled/trigger -+ * $ echo eth0 >someled/device_name -+ * $ echo "link tx rx" >someled/mode -+ * -+ * Modem-style tx/rx LEDs: -+ * $ echo netdev >led1/trigger -+ * $ echo ppp0 >led1/device_name -+ * $ echo tx >led1/mode -+ * $ echo netdev >led2/trigger -+ * $ echo ppp0 >led2/device_name -+ * $ echo rx >led2/mode -+ * -+ */ -+ -+#define MODE_LINK 1 -+#define MODE_TX 2 -+#define MODE_RX 4 -+ -+struct led_netdev_data { -+ rwlock_t lock; -+ -+ struct timer_list timer; -+ struct notifier_block notifier; -+ -+ struct led_classdev *led_cdev; -+ struct net_device *net_dev; -+ -+ char device_name[IFNAMSIZ]; -+ unsigned interval; -+ unsigned mode; -+ unsigned link_up; -+ unsigned last_activity; -+}; -+ -+static void set_baseline_state(struct led_netdev_data *trigger_data) -+{ -+ if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) -+ led_set_brightness(trigger_data->led_cdev, LED_FULL); -+ else -+ led_set_brightness(trigger_data->led_cdev, LED_OFF); -+ -+ if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up) -+ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); -+ else -+ del_timer(&trigger_data->timer); -+} -+ -+static ssize_t led_device_name_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ read_lock(&trigger_data->lock); -+ sprintf(buf, "%s\n", trigger_data->device_name); -+ read_unlock(&trigger_data->lock); -+ -+ return strlen(buf) + 1; -+} -+ -+static ssize_t led_device_name_store(struct device *dev, -+ struct device_attribute *attr, const char *buf, size_t size) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ if (size < 0 || size >= IFNAMSIZ) -+ return -EINVAL; -+ -+ write_lock(&trigger_data->lock); -+ -+ strcpy(trigger_data->device_name, buf); -+ if (size > 0 && trigger_data->device_name[size-1] == '\n') -+ trigger_data->device_name[size-1] = 0; -+ -+ if (trigger_data->device_name[0] != 0) { -+ /* check for existing device to update from */ -+ trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name); -+ if (trigger_data->net_dev != NULL) -+ trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0; -+ set_baseline_state(trigger_data); /* updates LEDs, may start timers */ -+ } -+ -+ write_unlock(&trigger_data->lock); -+ return size; -+} -+ -+static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store); -+ -+static ssize_t led_mode_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ read_lock(&trigger_data->lock); -+ -+ if (trigger_data->mode == 0) { -+ strcpy(buf, "none\n"); -+ } else { -+ char *p = buf; -+ if (trigger_data->mode & MODE_LINK) -+ strcat(buf, "link "); -+ if (trigger_data->mode & MODE_TX) -+ strcat(buf, "tx "); -+ if (trigger_data->mode & MODE_RX) -+ strcat(buf, "rx "); -+ strcat(buf, "\n"); -+ } -+ -+ read_unlock(&trigger_data->lock); -+ -+ return strlen(buf)+1; -+} -+ -+static ssize_t led_mode_store(struct device *dev, -+ struct device_attribute *attr, const char *buf, size_t size) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ char copybuf[1024]; -+ int new_mode = -1; -+ char *p, *token; -+ -+ /* take a copy since we don't want to trash the inbound buffer when using strsep */ -+ strncpy(copybuf, buf, sizeof(copybuf)); -+ copybuf[1023] = 0; -+ p = copybuf; -+ -+ while ((token = strsep(&p, " \t\n")) != NULL) { -+ if (!*token) -+ continue; -+ -+ if (new_mode == -1) -+ new_mode = 0; -+ -+ if (!strcmp(token, "none")) -+ new_mode = 0; -+ else if (!strcmp(token, "tx")) -+ new_mode |= MODE_TX; -+ else if (!strcmp(token, "rx")) -+ new_mode |= MODE_RX; -+ else if (!strcmp(token, "link")) -+ new_mode |= MODE_LINK; -+ else -+ return -EINVAL; -+ } -+ -+ if (new_mode == -1) -+ return -EINVAL; -+ -+ write_lock(&trigger_data->lock); -+ trigger_data->mode = new_mode; -+ set_baseline_state(trigger_data); -+ write_unlock(&trigger_data->lock); -+ -+ return size; -+} -+ -+static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store); -+ -+static ssize_t led_interval_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ read_lock(&trigger_data->lock); -+ sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval)); -+ read_unlock(&trigger_data->lock); -+ -+ return strlen(buf) + 1; -+} -+ -+static ssize_t led_interval_store(struct device *dev, -+ struct device_attribute *attr, const char *buf, size_t size) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ int ret = -EINVAL; -+ char *after; -+ unsigned long value = simple_strtoul(buf, &after, 10); -+ size_t count = after - buf; -+ -+ if (*after && isspace(*after)) -+ count++; -+ -+ /* impose some basic bounds on the timer interval */ -+ if (count == size && value >= 5 && value <= 10000) { -+ write_lock(&trigger_data->lock); -+ trigger_data->interval = msecs_to_jiffies(value); -+ set_baseline_state(trigger_data); // resets timer -+ write_unlock(&trigger_data->lock); -+ ret = count; -+ } -+ -+ return ret; -+} -+ -+static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store); -+ -+static int netdev_trig_notify(struct notifier_block *nb, -+ unsigned long evt, -+ void *dv) -+{ -+ struct net_device *dev = dv; -+ struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier); -+ -+ if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) -+ return NOTIFY_DONE; -+ -+ write_lock(&trigger_data->lock); -+ -+ if (strcmp(dev->name, trigger_data->device_name)) -+ goto done; -+ -+ if (evt == NETDEV_REGISTER) { -+ if (trigger_data->net_dev != NULL) -+ dev_put(trigger_data->net_dev); -+ dev_hold(dev); -+ trigger_data->net_dev = dev; -+ trigger_data->link_up = 0; -+ goto done; -+ } -+ -+ if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) { -+ dev_put(trigger_data->net_dev); -+ trigger_data->net_dev = NULL; -+ goto done; -+ } -+ -+ /* UP / DOWN / CHANGE */ -+ -+ trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev)); -+ set_baseline_state(trigger_data); -+ -+done: -+ write_unlock(&trigger_data->lock); -+ return NOTIFY_DONE; -+} -+ -+/* here's the real work! */ -+static void netdev_trig_timer(unsigned long arg) -+{ -+ struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; -+ struct net_device_stats *dev_stats; -+ unsigned new_activity; -+ -+ write_lock(&trigger_data->lock); -+ -+ if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) { -+ /* we don't need to do timer work, just reflect link state. */ -+ led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF); -+ goto no_restart; -+ } -+ -+ dev_stats = trigger_data->net_dev->get_stats(trigger_data->net_dev); -+ new_activity = -+ ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) + -+ ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0); -+ -+ if (trigger_data->mode & MODE_LINK) { -+ /* base state is ON (link present) */ -+ /* if there's no link, we don't get this far and the LED is off */ -+ -+ /* OFF -> ON always */ -+ /* ON -> OFF on activity */ -+ if (trigger_data->led_cdev->brightness == LED_OFF) { -+ led_set_brightness(trigger_data->led_cdev, LED_FULL); -+ } else if (trigger_data->last_activity != new_activity) { -+ led_set_brightness(trigger_data->led_cdev, LED_OFF); -+ } -+ } else { -+ /* base state is OFF */ -+ /* ON -> OFF always */ -+ /* OFF -> ON on activity */ -+ if (trigger_data->led_cdev->brightness == LED_FULL) { -+ led_set_brightness(trigger_data->led_cdev, LED_OFF); -+ } else if (trigger_data->last_activity != new_activity) { -+ led_set_brightness(trigger_data->led_cdev, LED_FULL); -+ } -+ } -+ -+ trigger_data->last_activity = new_activity; -+ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); -+ -+no_restart: -+ write_unlock(&trigger_data->lock); -+} -+ -+static void netdev_trig_activate(struct led_classdev *led_cdev) -+{ -+ struct led_netdev_data *trigger_data; -+ int rc; -+ -+ trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); -+ if (!trigger_data) -+ return; -+ -+ rwlock_init(&trigger_data->lock); -+ -+ trigger_data->notifier.notifier_call = netdev_trig_notify; -+ trigger_data->notifier.priority = 10; -+ -+ setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data); -+ -+ trigger_data->led_cdev = led_cdev; -+ trigger_data->net_dev = NULL; -+ trigger_data->device_name[0] = 0; -+ -+ trigger_data->mode = 0; -+ trigger_data->interval = msecs_to_jiffies(50); -+ trigger_data->link_up = 0; -+ trigger_data->last_activity = 0; -+ -+ led_cdev->trigger_data = trigger_data; -+ -+ rc = device_create_file(led_cdev->dev, &dev_attr_device_name); -+ if (rc) -+ goto err_out; -+ rc = device_create_file(led_cdev->dev, &dev_attr_mode); -+ if (rc) -+ goto err_out_device_name; -+ rc = device_create_file(led_cdev->dev, &dev_attr_interval); -+ if (rc) -+ goto err_out_mode; -+ -+ register_netdevice_notifier(&trigger_data->notifier); -+ return; -+ -+err_out_mode: -+ device_remove_file(led_cdev->dev, &dev_attr_mode); -+err_out_device_name: -+ device_remove_file(led_cdev->dev, &dev_attr_device_name); -+err_out: -+ led_cdev->trigger_data = NULL; -+ kfree(trigger_data); -+} -+ -+static void netdev_trig_deactivate(struct led_classdev *led_cdev) -+{ -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ if (trigger_data) { -+ unregister_netdevice_notifier(&trigger_data->notifier); -+ -+ device_remove_file(led_cdev->dev, &dev_attr_device_name); -+ device_remove_file(led_cdev->dev, &dev_attr_mode); -+ device_remove_file(led_cdev->dev, &dev_attr_interval); -+ -+ write_lock(&trigger_data->lock); -+ -+ if (trigger_data->net_dev) { -+ dev_put(trigger_data->net_dev); -+ trigger_data->net_dev = NULL; -+ } -+ -+ write_unlock(&trigger_data->lock); -+ -+ del_timer_sync(&trigger_data->timer); -+ -+ kfree(trigger_data); -+ } -+} -+ -+static struct led_trigger netdev_led_trigger = { -+ .name = "netdev", -+ .activate = netdev_trig_activate, -+ .deactivate = netdev_trig_deactivate, -+}; -+ -+static int __init netdev_trig_init(void) -+{ -+ return led_trigger_register(&netdev_led_trigger); -+} -+ -+static void __exit netdev_trig_exit(void) -+{ -+ led_trigger_unregister(&netdev_led_trigger); -+} -+ -+module_init(netdev_trig_init); -+module_exit(netdev_trig_exit); -+ -+MODULE_AUTHOR("Oliver Jowett "); -+MODULE_DESCRIPTION("Netdev LED trigger"); -+MODULE_LICENSE("GPL"); -Index: git/drivers/leds/Kconfig -=================================================================== ---- git.orig/drivers/leds/Kconfig -+++ git/drivers/leds/Kconfig -@@ -229,4 +229,11 @@ config LEDS_TRIGGER_DEFAULT_ON - This allows LEDs to be initialised in the ON state. - If unsure, say Y. - -+config LEDS_TRIGGER_NETDEV -+ tristate "LED Network Device Trigger" -+ depends on LEDS_TRIGGERS -+ help -+ This allows LEDs to be controlled by Network Device activity. -+ If unsure, say Y. -+ - endif # NEW_LEDS -Index: git/drivers/leds/Makefile -=================================================================== ---- git.orig/drivers/leds/Makefile -+++ git/drivers/leds/Makefile -@@ -30,5 +30,6 @@ obj-$(CONFIG_LEDS_NEO1973_GTA02) += leds - obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o - obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o - obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o -+obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o - obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o - obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o diff --git a/packages/linux/linux-openmoko-devel_git.bb b/packages/linux/linux-openmoko-devel_git.bb index 110db3af4a..436dba111d 100644 --- a/packages/linux/linux-openmoko-devel_git.bb +++ b/packages/linux/linux-openmoko-devel_git.bb @@ -6,14 +6,12 @@ DEFAULT_PREFERENCE = "-1" KERNEL_RELEASE = "2.6.29" KERNEL_VERSION = "${KERNEL_RELEASE}" -OEV = "oe0" +OEV = "oe1" PV = "${KERNEL_RELEASE}-${OEV}+gitr${SRCREV}" PR = "r1" SRC_URI = "\ git://git.openmoko.org/git/kernel.git;protocol=git;branch=andy-tracking \ -# file://openwrt-ledtrig-netdev.patch;patch=1 \ -# file://defconfig-oe.patch \ " S = "${WORKDIR}/git" -- cgit 1.2.3-korg From 8791e4ebacbd83dba69981a750e70e5f42af99dd Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Wed, 25 Feb 2009 09:53:43 +0100 Subject: minimal.conf: use newer glibc and gcc --- conf/distro/minimal.conf | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf index 3ca22b128c..99c1db0df6 100644 --- a/conf/distro/minimal.conf +++ b/conf/distro/minimal.conf @@ -43,10 +43,10 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross" PREFERRED_PROVIDER_virtual/arm-linux-binutils = "binutils-cross" PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" -PREFERRED_VERSION_gcc ?= "4.1.1" -PREFERRED_VERSION_gcc-cross ?= "4.1.1" -PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1" -PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1" +PREFERRED_VERSION_gcc ?= "4.3.3" +PREFERRED_VERSION_gcc-cross ?= "4.3.3" +PREFERRED_VERSION_gcc-cross-initial ?= "4.3.3" +PREFERRED_VERSION_gcc-cross-intermediate ?= "4.3.3" PREFERRED_VERSION_binutils ?= "2.18" PREFERRED_VERSION_binutils-cross ?= "2.18" @@ -66,13 +66,28 @@ PREFERRED_PROVIDER_virtual/libc = "glibc" PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc" PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" PREFERRED_VERSION_linux-libc-headers ?= "2.6.23" -PREFERRED_VERSION_glibc ?= "2.5" +PREFERRED_VERSION_glibc ?= "2.6.1" # # Bootstrap & Init # PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap" +# +# +# +PREFERRED_PROVIDER_gconf = "gconf-dbus" +PREFERRED_PROVIDER_gtk+ = "gtk+" +PREFERRED_PROVIDER_libgpewidget = "libgpewidget" +PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11" +PREFERRED_PROVIDER_avahi = "avahi" +PREFERRED_PROVIDER_virtual/db = "db3" +PREFERRED_PROVIDER_virtual/db-native = "db3-native" + + +#NOTE: multiple providers are available for virtual/arm-linux-libc-initial (glibc-initial, eglibc-initial); +#NOTE: consider defining PREFERRED_PROVIDER_virtual/arm-linux-libc-initial + # # Preferred versions # -- cgit 1.2.3-korg From d6894a7ffd1c634a059c1e2a82a92d287b8a0557 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Wed, 25 Feb 2009 11:04:41 +0100 Subject: vala: touch gobject.vala.stamp before compiling; apparantly there's a timeglitch in the tarball. Closes OE --- packages/vala/vala.inc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/vala/vala.inc b/packages/vala/vala.inc index f5ea1ee520..492bf0f1f2 100644 --- a/packages/vala/vala.inc +++ b/packages/vala/vala.inc @@ -17,4 +17,8 @@ inherit autotools autotools_stage lib_package EXTRA_OECONF = "--enable-vapigen" +do_compile_prepend() { + touch gobject/gobject.vala.stamp +} + FILES_${PN}-doc += ${datadir}/devhelp -- cgit 1.2.3-korg From 898589d824978bc44039b587c55870e55d9a88c1 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Wed, 25 Feb 2009 11:16:00 +0100 Subject: gnome-vfs 2.22.0: fix *.a and *.la packaging remove old versions --- .../gnome/gnome-vfs-2.12.0/gconftool-lossage.patch | 11 --- .../gnome/gnome-vfs-2.16.3/gconftool-lossage.patch | 11 --- .../gnome-vfs-2.16.3/gnome-vfs-no-kerberos.patch | 51 ------------ .../gnome/gnome-vfs-2.18.1/gconftool-lossage.patch | 11 --- .../gnome-vfs-2.18.1/gnome-vfs-no-kerberos.patch | 51 ------------ .../gnome/gnome-vfs-2.20.0/gconftool-lossage.patch | 11 --- .../gnome-vfs-2.20.0/gnome-vfs-no-kerberos.patch | 51 ------------ .../gnome/gnome-vfs-2.6.0/gconftool-lossage.patch | 11 --- .../gnome/gnome-vfs-2.6.2/gconftool-lossage.patch | 11 --- packages/gnome/gnome-vfs_2.12.0.bb | 90 ---------------------- packages/gnome/gnome-vfs_2.16.3.bb | 38 --------- packages/gnome/gnome-vfs_2.18.1.bb | 38 --------- packages/gnome/gnome-vfs_2.20.0.bb | 42 ---------- packages/gnome/gnome-vfs_2.22.0.bb | 12 ++- packages/gnome/gnome-vfs_2.6.0.bb | 76 ------------------ packages/gnome/gnome-vfs_2.6.2.bb | 85 -------------------- 16 files changed, 8 insertions(+), 592 deletions(-) delete mode 100644 packages/gnome/gnome-vfs-2.12.0/gconftool-lossage.patch delete mode 100644 packages/gnome/gnome-vfs-2.16.3/gconftool-lossage.patch delete mode 100644 packages/gnome/gnome-vfs-2.16.3/gnome-vfs-no-kerberos.patch delete mode 100644 packages/gnome/gnome-vfs-2.18.1/gconftool-lossage.patch delete mode 100644 packages/gnome/gnome-vfs-2.18.1/gnome-vfs-no-kerberos.patch delete mode 100644 packages/gnome/gnome-vfs-2.20.0/gconftool-lossage.patch delete mode 100644 packages/gnome/gnome-vfs-2.20.0/gnome-vfs-no-kerberos.patch delete mode 100644 packages/gnome/gnome-vfs-2.6.0/gconftool-lossage.patch delete mode 100644 packages/gnome/gnome-vfs-2.6.2/gconftool-lossage.patch delete mode 100644 packages/gnome/gnome-vfs_2.12.0.bb delete mode 100644 packages/gnome/gnome-vfs_2.16.3.bb delete mode 100644 packages/gnome/gnome-vfs_2.18.1.bb delete mode 100644 packages/gnome/gnome-vfs_2.20.0.bb delete mode 100644 packages/gnome/gnome-vfs_2.6.0.bb delete mode 100644 packages/gnome/gnome-vfs_2.6.2.bb diff --git a/packages/gnome/gnome-vfs-2.12.0/gconftool-lossage.patch b/packages/gnome/gnome-vfs-2.12.0/gconftool-lossage.patch deleted file mode 100644 index 3dbc130ddc..0000000000 --- a/packages/gnome/gnome-vfs-2.12.0/gconftool-lossage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gnome-vfs-2.6.0/configure.in~ 2004-03-22 12:36:23.000000000 +0000 -+++ gnome-vfs-2.6.0/configure.in 2004-06-07 16:04:34.000000000 +0100 -@@ -154,7 +154,7 @@ - AC_PATH_PROG(GCONFTOOL, gconftool-2, no) - - if test x"$GCONFTOOL" = xno; then -- AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) -+ AC_MSG_WARN([gconftool-2 executable not found in your path - should be installed with GConf]) - fi - - AM_GCONF_SOURCE_2 diff --git a/packages/gnome/gnome-vfs-2.16.3/gconftool-lossage.patch b/packages/gnome/gnome-vfs-2.16.3/gconftool-lossage.patch deleted file mode 100644 index 3dbc130ddc..0000000000 --- a/packages/gnome/gnome-vfs-2.16.3/gconftool-lossage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gnome-vfs-2.6.0/configure.in~ 2004-03-22 12:36:23.000000000 +0000 -+++ gnome-vfs-2.6.0/configure.in 2004-06-07 16:04:34.000000000 +0100 -@@ -154,7 +154,7 @@ - AC_PATH_PROG(GCONFTOOL, gconftool-2, no) - - if test x"$GCONFTOOL" = xno; then -- AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) -+ AC_MSG_WARN([gconftool-2 executable not found in your path - should be installed with GConf]) - fi - - AM_GCONF_SOURCE_2 diff --git a/packages/gnome/gnome-vfs-2.16.3/gnome-vfs-no-kerberos.patch b/packages/gnome/gnome-vfs-2.16.3/gnome-vfs-no-kerberos.patch deleted file mode 100644 index e25ecdd66f..0000000000 --- a/packages/gnome/gnome-vfs-2.16.3/gnome-vfs-no-kerberos.patch +++ /dev/null @@ -1,51 +0,0 @@ -removes kerberos completely to avoid conflicts with installed kerberos ---- configure.in.orig 2007-01-05 19:42:26.418541610 +0200 -+++ configure.in 2007-01-05 19:42:56.604261797 +0200 -@@ -436,47 +436,6 @@ - ]) - AM_CONDITIONAL(HAVE_CDDA, test $have_cdda = yes) - AC_SUBST(CDDA_LIBS) -- --dnl GSSAPI --dnl Check for Kerberos installation --have_gssapi=no --AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin) -- --if test "x$KRB5_CONFIG" != "xnone"; then -- GSSAPI_LIBS="`${KRB5_CONFIG} --libs gssapi`" -- GSSAPI_CFLAGS="`${KRB5_CONFIG} --cflags gssapi`" -- -- saved_CPPFLAGS="$CPPFLAGS" -- saved_LIBS="$LIBS" -- LIBS="$LIBS $GSSAPI_LIBS" -- CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" -- # MIT and Heimdal put gssapi.h in different places -- AC_CHECK_HEADERS(gssapi/gssapi.h gssapi.h, [ -- AC_CHECK_FUNCS(gss_init_sec_context, [ -- AC_MSG_NOTICE([GSSAPI authentication support enabled]) -- AC_DEFINE(HAVE_GSSAPI, 1, [Define if GSSAPI support is enabled]) -- AC_CHECK_HEADERS(gssapi/gssapi_generic.h) -- have_gssapi=yes -- -- # MIT Kerberos lacks GSS_C_NT_HOSTBASED_SERVICE -- AC_CHECK_DECL([GSS_C_NT_HOSTBASED_SERVICE],, -- [AC_DEFINE([GSS_C_NT_HOSTBASED_SERVICE], gss_nt_service_name, -- [Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise]) -- ], [ -- #ifdef HAVE_GSSAPI_GSSAPI_H -- #include -- #else -- #include -- #endif -- ]) -- ]) -- break -- ]) -- LIBS="$saved_LIBS" -- CPPFLAGS="$saved_CPPFLAGS" --fi --AC_SUBST(GSSAPI_LIBS) --AC_SUBST(GSSAPI_CFLAGS) - - dnl ****************************** - dnl http-method (neon checks) diff --git a/packages/gnome/gnome-vfs-2.18.1/gconftool-lossage.patch b/packages/gnome/gnome-vfs-2.18.1/gconftool-lossage.patch deleted file mode 100644 index 3dbc130ddc..0000000000 --- a/packages/gnome/gnome-vfs-2.18.1/gconftool-lossage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gnome-vfs-2.6.0/configure.in~ 2004-03-22 12:36:23.000000000 +0000 -+++ gnome-vfs-2.6.0/configure.in 2004-06-07 16:04:34.000000000 +0100 -@@ -154,7 +154,7 @@ - AC_PATH_PROG(GCONFTOOL, gconftool-2, no) - - if test x"$GCONFTOOL" = xno; then -- AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) -+ AC_MSG_WARN([gconftool-2 executable not found in your path - should be installed with GConf]) - fi - - AM_GCONF_SOURCE_2 diff --git a/packages/gnome/gnome-vfs-2.18.1/gnome-vfs-no-kerberos.patch b/packages/gnome/gnome-vfs-2.18.1/gnome-vfs-no-kerberos.patch deleted file mode 100644 index e25ecdd66f..0000000000 --- a/packages/gnome/gnome-vfs-2.18.1/gnome-vfs-no-kerberos.patch +++ /dev/null @@ -1,51 +0,0 @@ -removes kerberos completely to avoid conflicts with installed kerberos ---- configure.in.orig 2007-01-05 19:42:26.418541610 +0200 -+++ configure.in 2007-01-05 19:42:56.604261797 +0200 -@@ -436,47 +436,6 @@ - ]) - AM_CONDITIONAL(HAVE_CDDA, test $have_cdda = yes) - AC_SUBST(CDDA_LIBS) -- --dnl GSSAPI --dnl Check for Kerberos installation --have_gssapi=no --AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin) -- --if test "x$KRB5_CONFIG" != "xnone"; then -- GSSAPI_LIBS="`${KRB5_CONFIG} --libs gssapi`" -- GSSAPI_CFLAGS="`${KRB5_CONFIG} --cflags gssapi`" -- -- saved_CPPFLAGS="$CPPFLAGS" -- saved_LIBS="$LIBS" -- LIBS="$LIBS $GSSAPI_LIBS" -- CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" -- # MIT and Heimdal put gssapi.h in different places -- AC_CHECK_HEADERS(gssapi/gssapi.h gssapi.h, [ -- AC_CHECK_FUNCS(gss_init_sec_context, [ -- AC_MSG_NOTICE([GSSAPI authentication support enabled]) -- AC_DEFINE(HAVE_GSSAPI, 1, [Define if GSSAPI support is enabled]) -- AC_CHECK_HEADERS(gssapi/gssapi_generic.h) -- have_gssapi=yes -- -- # MIT Kerberos lacks GSS_C_NT_HOSTBASED_SERVICE -- AC_CHECK_DECL([GSS_C_NT_HOSTBASED_SERVICE],, -- [AC_DEFINE([GSS_C_NT_HOSTBASED_SERVICE], gss_nt_service_name, -- [Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise]) -- ], [ -- #ifdef HAVE_GSSAPI_GSSAPI_H -- #include -- #else -- #include -- #endif -- ]) -- ]) -- break -- ]) -- LIBS="$saved_LIBS" -- CPPFLAGS="$saved_CPPFLAGS" --fi --AC_SUBST(GSSAPI_LIBS) --AC_SUBST(GSSAPI_CFLAGS) - - dnl ****************************** - dnl http-method (neon checks) diff --git a/packages/gnome/gnome-vfs-2.20.0/gconftool-lossage.patch b/packages/gnome/gnome-vfs-2.20.0/gconftool-lossage.patch deleted file mode 100644 index 3dbc130ddc..0000000000 --- a/packages/gnome/gnome-vfs-2.20.0/gconftool-lossage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gnome-vfs-2.6.0/configure.in~ 2004-03-22 12:36:23.000000000 +0000 -+++ gnome-vfs-2.6.0/configure.in 2004-06-07 16:04:34.000000000 +0100 -@@ -154,7 +154,7 @@ - AC_PATH_PROG(GCONFTOOL, gconftool-2, no) - - if test x"$GCONFTOOL" = xno; then -- AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) -+ AC_MSG_WARN([gconftool-2 executable not found in your path - should be installed with GConf]) - fi - - AM_GCONF_SOURCE_2 diff --git a/packages/gnome/gnome-vfs-2.20.0/gnome-vfs-no-kerberos.patch b/packages/gnome/gnome-vfs-2.20.0/gnome-vfs-no-kerberos.patch deleted file mode 100644 index e25ecdd66f..0000000000 --- a/packages/gnome/gnome-vfs-2.20.0/gnome-vfs-no-kerberos.patch +++ /dev/null @@ -1,51 +0,0 @@ -removes kerberos completely to avoid conflicts with installed kerberos ---- configure.in.orig 2007-01-05 19:42:26.418541610 +0200 -+++ configure.in 2007-01-05 19:42:56.604261797 +0200 -@@ -436,47 +436,6 @@ - ]) - AM_CONDITIONAL(HAVE_CDDA, test $have_cdda = yes) - AC_SUBST(CDDA_LIBS) -- --dnl GSSAPI --dnl Check for Kerberos installation --have_gssapi=no --AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin) -- --if test "x$KRB5_CONFIG" != "xnone"; then -- GSSAPI_LIBS="`${KRB5_CONFIG} --libs gssapi`" -- GSSAPI_CFLAGS="`${KRB5_CONFIG} --cflags gssapi`" -- -- saved_CPPFLAGS="$CPPFLAGS" -- saved_LIBS="$LIBS" -- LIBS="$LIBS $GSSAPI_LIBS" -- CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" -- # MIT and Heimdal put gssapi.h in different places -- AC_CHECK_HEADERS(gssapi/gssapi.h gssapi.h, [ -- AC_CHECK_FUNCS(gss_init_sec_context, [ -- AC_MSG_NOTICE([GSSAPI authentication support enabled]) -- AC_DEFINE(HAVE_GSSAPI, 1, [Define if GSSAPI support is enabled]) -- AC_CHECK_HEADERS(gssapi/gssapi_generic.h) -- have_gssapi=yes -- -- # MIT Kerberos lacks GSS_C_NT_HOSTBASED_SERVICE -- AC_CHECK_DECL([GSS_C_NT_HOSTBASED_SERVICE],, -- [AC_DEFINE([GSS_C_NT_HOSTBASED_SERVICE], gss_nt_service_name, -- [Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise]) -- ], [ -- #ifdef HAVE_GSSAPI_GSSAPI_H -- #include -- #else -- #include -- #endif -- ]) -- ]) -- break -- ]) -- LIBS="$saved_LIBS" -- CPPFLAGS="$saved_CPPFLAGS" --fi --AC_SUBST(GSSAPI_LIBS) --AC_SUBST(GSSAPI_CFLAGS) - - dnl ****************************** - dnl http-method (neon checks) diff --git a/packages/gnome/gnome-vfs-2.6.0/gconftool-lossage.patch b/packages/gnome/gnome-vfs-2.6.0/gconftool-lossage.patch deleted file mode 100644 index 3dbc130ddc..0000000000 --- a/packages/gnome/gnome-vfs-2.6.0/gconftool-lossage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gnome-vfs-2.6.0/configure.in~ 2004-03-22 12:36:23.000000000 +0000 -+++ gnome-vfs-2.6.0/configure.in 2004-06-07 16:04:34.000000000 +0100 -@@ -154,7 +154,7 @@ - AC_PATH_PROG(GCONFTOOL, gconftool-2, no) - - if test x"$GCONFTOOL" = xno; then -- AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) -+ AC_MSG_WARN([gconftool-2 executable not found in your path - should be installed with GConf]) - fi - - AM_GCONF_SOURCE_2 diff --git a/packages/gnome/gnome-vfs-2.6.2/gconftool-lossage.patch b/packages/gnome/gnome-vfs-2.6.2/gconftool-lossage.patch deleted file mode 100644 index 3dbc130ddc..0000000000 --- a/packages/gnome/gnome-vfs-2.6.2/gconftool-lossage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gnome-vfs-2.6.0/configure.in~ 2004-03-22 12:36:23.000000000 +0000 -+++ gnome-vfs-2.6.0/configure.in 2004-06-07 16:04:34.000000000 +0100 -@@ -154,7 +154,7 @@ - AC_PATH_PROG(GCONFTOOL, gconftool-2, no) - - if test x"$GCONFTOOL" = xno; then -- AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) -+ AC_MSG_WARN([gconftool-2 executable not found in your path - should be installed with GConf]) - fi - - AM_GCONF_SOURCE_2 diff --git a/packages/gnome/gnome-vfs_2.12.0.bb b/packages/gnome/gnome-vfs_2.12.0.bb deleted file mode 100644 index 1c11f9841f..0000000000 --- a/packages/gnome/gnome-vfs_2.12.0.bb +++ /dev/null @@ -1,90 +0,0 @@ -LICENSE = "GPL" -PR = "r2" - -inherit gnome - -DEPENDS = "libxml2 gconf libbonobo bzip2 gnome-mime-data orbit2 zlib samba-3.0.14a" -RRECOMMENDS = "gnome-vfs-plugin-file gnome-mime-data shared-mime-info" - -SRC_URI += "file://gconftool-lossage.patch;patch=1;pnum=1" - -ORBIT_IDL_SRC = "${STAGING_BINDIR_NATIVE}/orbit-idl-2" - -FILES_${PN} += " ${libdir}/bonobo/servers ${libdir}/bonobo/monikers/*.so ${libdir}/vfs" -FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/modules/*.a ${libdir}/gnome-vfs-2.0/modules/*.la ${libdir}/gnome-vfs-2.0/include ${libdir}/bonobo/monikers/*.a ${libdir}/bonobo/monikers/*.la" -FILES_${PN}-doc += " ${datadir}/gtk-doc" - -GNOME_VFS_HEADERS = " \ -gnome-vfs-mime-deprecated.h \ -gnome-vfs-address.h \ -gnome-vfs-dns-sd.h \ -gnome-vfs-mime-info-cache.h \ -gnome-vfs-resolve.h \ -gnome-vfs-utils.h \ -gnome-vfs-application-registry.h \ -gnome-vfs-async-ops.h \ -gnome-vfs-ops.h \ -gnome-vfs-uri.h \ -gnome-vfs-standard-callbacks.h \ -gnome-vfs-module-callback.h \ -gnome-vfs-context.h \ -gnome-vfs-file-info.h \ -gnome-vfs-directory.h \ -gnome-vfs-mime-monitor.h \ -gnome-vfs-mime-handlers.h \ -gnome-vfs-result.h \ -gnome-vfs-job-limit.h \ -gnome-vfs-file-size.h \ -gnome-vfs-mime-utils.h \ -gnome-vfs-find-directory.h \ -gnome-vfs-init.h \ -gnome-vfs-handle.h \ -gnome-vfs.h \ -gnome-vfs-cancellation.h \ -gnome-vfs-xfer.h \ -gnome-vfs-monitor.h \ -gnome-vfs-types.h \ -gnome-vfs-volume-monitor.h \ -gnome-vfs-drive.h \ -gnome-vfs-volume.h \ -gnome-vfs-enum-types.h" - -GNOME_VFS_MODULE_HEADERS = " \ -gnome-vfs-mime-info.h \ -gnome-vfs-transform.h \ -gnome-vfs-ssl.h \ -gnome-vfs-inet-connection.h \ -gnome-vfs-socket.h \ -gnome-vfs-parse-ls.h \ -gnome-vfs-method.h \ -gnome-vfs-cancellable-ops.h \ -gnome-vfs-module.h \ -gnome-vfs-module-shared.h \ -gnome-vfs-module-callback-module-api.h \ -gnome-vfs-mime.h \ -gnome-vfs-socket-buffer.h" - -do_compile() { - oe_runmake ORBIT_IDL="${ORBIT_IDL_SRC}" -} - -do_stage() { - oe_libinstall -so -C libgnomevfs libgnomevfs-2 ${STAGING_LIBDIR} - install -d ${STAGING_INCDIR}/gnome-vfs-2.0/libgnomevfs - for i in ${GNOME_VFS_HEADERS}; do install -m 0644 libgnomevfs/$i ${STAGING_INCDIR}/gnome-vfs-2.0/libgnomevfs/; done - install -d ${STAGING_INCDIR}/gnome-vfs-module-2.0/libgnomevfs - for i in ${GNOME_VFS_MODULE_HEADERS}; do install -m 0644 libgnomevfs/$i ${STAGING_INCDIR}/gnome-vfs-module-2.0/libgnomevfs/; done -} - -do_install() { - oe_runmake ORBIT_IDL="${ORBIT_IDL_SRC}" DESTDIR="${D}" install -} - -PACKAGES_DYNAMIC = "gnome-vfs-plugin-*" - -python populate_packages_prepend () { - print bb.data.getVar('FILES_gnome-vfs', d, 1) - - plugindir = bb.data.expand('${libdir}/gnome-vfs-2.0/modules/', d) - do_split_packages(d, plugindir, '^lib(.*)\.so$', 'gnome-vfs-plugin-%s', 'GNOME VFS plugin for %s') -} diff --git a/packages/gnome/gnome-vfs_2.16.3.bb b/packages/gnome/gnome-vfs_2.16.3.bb deleted file mode 100644 index b1f634c0e9..0000000000 --- a/packages/gnome/gnome-vfs_2.16.3.bb +++ /dev/null @@ -1,38 +0,0 @@ -LICENSE = "GPL" -DEPENDS = "libxml2 gconf gnutls avahi dbus bzip2 gnome-mime-data zlib" -RRECOMMENDS = "gnome-vfs-plugin-file gnome-mime-data shared-mime-info" - -PR = "r2" - -inherit gnome - -# This is to provide compatibility with the gnome-vfs DBus fork -PROVIDES = "gnome-vfs-plugin-dbus" -RREPLACES = "gnome-vfs-dbus" - -SRC_URI += "file://gconftool-lossage.patch;patch=1;pnum=1 \ - file://gnome-vfs-no-kerberos.patch;patch=1;pnum=0" - -EXTRA_OECONF = " \ - --disable-openssl \ - --enable-gnutls \ - --enable-avahi \ - --with-samba-includes=${STAGING_INCDIR} \ - " - -FILES_${PN} += " ${libdir}/vfs" -FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/include" -FILES_${PN}-doc += " ${datadir}/gtk-doc" - -do_stage () { -autotools_stage_all -} - -PACKAGES_DYNAMIC = "gnome-vfs-plugin-*" - -python populate_packages_prepend () { - print bb.data.getVar('FILES_gnome-vfs', d, 1) - - plugindir = bb.data.expand('${libdir}/gnome-vfs-2.0/modules/', d) - do_split_packages(d, plugindir, '^lib(.*)\.so$', 'gnome-vfs-plugin-%s', 'GNOME VFS plugin for %s') -} diff --git a/packages/gnome/gnome-vfs_2.18.1.bb b/packages/gnome/gnome-vfs_2.18.1.bb deleted file mode 100644 index 8a3e460119..0000000000 --- a/packages/gnome/gnome-vfs_2.18.1.bb +++ /dev/null @@ -1,38 +0,0 @@ -LICENSE = "GPL" -DEPENDS = "libxml2 gconf gnutls avahi dbus bzip2 gnome-mime-data zlib" -RRECOMMENDS = "gnome-vfs-plugin-file gnome-mime-data shared-mime-info" - -PR = "r1" - -inherit gnome - -# This is to provide compatibility with the gnome-vfs DBus fork -PROVIDES = "gnome-vfs-plugin-dbus" -RREPLACES = "gnome-vfs-dbus" - -SRC_URI += "file://gconftool-lossage.patch;patch=1;pnum=1 \ - file://gnome-vfs-no-kerberos.patch;patch=1;pnum=0" - -EXTRA_OECONF = " \ - --disable-openssl \ - --enable-gnutls \ - --enable-avahi \ - --with-samba-includes=${STAGING_INCDIR} \ - " - -FILES_${PN} += " ${libdir}/vfs ${datadir}/dbus-1/services" -FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/include" -FILES_${PN}-doc += " ${datadir}/gtk-doc" - -do_stage () { -autotools_stage_all -} - -PACKAGES_DYNAMIC = "gnome-vfs-plugin-*" - -python populate_packages_prepend () { - print bb.data.getVar('FILES_gnome-vfs', d, 1) - - plugindir = bb.data.expand('${libdir}/gnome-vfs-2.0/modules/', d) - do_split_packages(d, plugindir, '^lib(.*)\.so$', 'gnome-vfs-plugin-%s', 'GNOME VFS plugin for %s') -} diff --git a/packages/gnome/gnome-vfs_2.20.0.bb b/packages/gnome/gnome-vfs_2.20.0.bb deleted file mode 100644 index 5631a9c960..0000000000 --- a/packages/gnome/gnome-vfs_2.20.0.bb +++ /dev/null @@ -1,42 +0,0 @@ -LICENSE = "GPL" -DEPENDS = "libxml2 gconf gnutls avahi dbus bzip2 gnome-mime-data zlib" -RRECOMMENDS = "gnome-vfs-plugin-file shared-mime-info" -# Some legacy packages will require gnome-mime-data to be installed, but use of -# it is deprecated. -PR = "r0" - -inherit gnome - -SRC_URI += "file://gconftool-lossage.patch;patch=1;pnum=1 \ - file://gnome-vfs-no-kerberos.patch;patch=1;pnum=0" - -# This is to provide compatibility with the gnome-vfs DBus fork -PROVIDES = "gnome-vfs-plugin-dbus" -RREPLACES = "gnome-vfs-dbus" - -EXTRA_OECONF = " \ - --disable-openssl \ - --enable-gnutls \ - --enable-avahi \ - --with-samba-includes=${STAGING_INCDIR} \ - " - -FILES_${PN} += " ${libdir}/vfs ${datadir}/dbus-1/services" -FILES_${PN}-dbg += " ${libdir}/gnome-vfs-2.0/modules/.debug" -FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/include" -FILES_${PN}-doc += " ${datadir}/gtk-doc" - -do_stage () { -autotools_stage_all -} - -PACKAGES_DYNAMIC = "gnome-vfs-plugin-*" - -python populate_packages_prepend () { - print bb.data.getVar('FILES_gnome-vfs', d, 1) - - plugindir = bb.data.expand('${libdir}/gnome-vfs-2.0/modules/', d) - do_split_packages(d, plugindir, '^lib(.*)\.so$', 'gnome-vfs-plugin-%s', 'GNOME VFS plugin for %s') -} - - diff --git a/packages/gnome/gnome-vfs_2.22.0.bb b/packages/gnome/gnome-vfs_2.22.0.bb index 5631a9c960..54616c1ee0 100644 --- a/packages/gnome/gnome-vfs_2.22.0.bb +++ b/packages/gnome/gnome-vfs_2.22.0.bb @@ -21,10 +21,14 @@ EXTRA_OECONF = " \ --with-samba-includes=${STAGING_INCDIR} \ " -FILES_${PN} += " ${libdir}/vfs ${datadir}/dbus-1/services" -FILES_${PN}-dbg += " ${libdir}/gnome-vfs-2.0/modules/.debug" -FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/include" -FILES_${PN}-doc += " ${datadir}/gtk-doc" +FILES_${PN} += "${libdir}/vfs ${datadir}/dbus-1/services" +FILES_${PN}-dbg += "${libdir}/gnome-vfs-2.0/modules/.debug" +FILES_${PN}-dev += "\ + ${libdir}/gnome-vfs-2.0/include \ + ${libdir}/gnome-vfs-2.0/modules/*.a \ + ${libdir}/gnome-vfs-2.0/modules/*.la \ +" +FILES_${PN}-doc += "${datadir}/gtk-doc" do_stage () { autotools_stage_all diff --git a/packages/gnome/gnome-vfs_2.6.0.bb b/packages/gnome/gnome-vfs_2.6.0.bb deleted file mode 100644 index c967c746d1..0000000000 --- a/packages/gnome/gnome-vfs_2.6.0.bb +++ /dev/null @@ -1,76 +0,0 @@ -LICENSE = "GPL" -PR = "r3" - -inherit gnome - -DEPENDS = "libxml2 gconf libbonobo bzip2 gnome-mime-data orbit2 zlib samba" -RRECOMMENDS = "gnome-vfs-plugin-file shared-mime-info" - -SRC_URI += "file://gconftool-lossage.patch;patch=1;pnum=1" - -ORBIT_IDL_SRC = "${STAGING_BINDIR_NATIVE}/orbit-idl-2" - -FILES_${PN} += " ${libdir}/gnome-vfs-2.0/modules/*.so ${libdir}/bonobo/servers ${libdir}/bonobo/monikers/*.so ${libdir}/vfs" -FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/modules/*.a ${libdir}/gnome-vfs-2.0/modules/*.la ${libdir}/gnome-vfs-2.0/include ${libdir}/bonobo/monikers/*.a ${libdir}/bonobo/monikers/*.la" -FILES_${PN}-doc += " ${datadir}/gtk-doc" - -GNOME_VFS_HEADERS = " \ -gnome-vfs-utils.h \ -gnome-vfs-application-registry.h \ -gnome-vfs-async-ops.h \ -gnome-vfs-ops.h \ -gnome-vfs-uri.h \ -gnome-vfs-standard-callbacks.h \ -gnome-vfs-module-callback.h \ -gnome-vfs-context.h \ -gnome-vfs-file-info.h \ -gnome-vfs-directory.h \ -gnome-vfs-mime-monitor.h \ -gnome-vfs-mime-handlers.h \ -gnome-vfs-result.h \ -gnome-vfs-job-limit.h \ -gnome-vfs-file-size.h \ -gnome-vfs-mime-utils.h \ -gnome-vfs-find-directory.h \ -gnome-vfs-init.h \ -gnome-vfs-handle.h \ -gnome-vfs.h \ -gnome-vfs-cancellation.h \ -gnome-vfs-xfer.h \ -gnome-vfs-monitor.h \ -gnome-vfs-types.h \ -gnome-vfs-volume-monitor.h \ -gnome-vfs-drive.h \ -gnome-vfs-volume.h \ -gnome-vfs-enum-types.h" - -GNOME_VFS_MODULE_HEADERS = " \ -gnome-vfs-mime-info.h \ -gnome-vfs-transform.h \ -gnome-vfs-ssl.h \ -gnome-vfs-inet-connection.h \ -gnome-vfs-socket.h \ -gnome-vfs-parse-ls.h \ -gnome-vfs-method.h \ -gnome-vfs-cancellable-ops.h \ -gnome-vfs-module.h \ -gnome-vfs-module-shared.h \ -gnome-vfs-module-callback-module-api.h \ -gnome-vfs-mime.h \ -gnome-vfs-socket-buffer.h" - -do_compile() { - oe_runmake ORBIT_IDL="${ORBIT_IDL_SRC}" -} - -do_stage() { - oe_libinstall -so -C libgnomevfs libgnomevfs-2 ${STAGING_LIBDIR} - install -d ${STAGING_INCDIR}/gnome-vfs-2.0/libgnomevfs - for i in ${GNOME_VFS_HEADERS}; do install -m 0644 libgnomevfs/$i ${STAGING_INCDIR}/gnome-vfs-2.0/libgnomevfs/; done - install -d ${STAGING_INCDIR}/gnome-vfs-module-2.0/libgnomevfs - for i in ${GNOME_VFS_MODULE_HEADERS}; do install -m 0644 libgnomevfs/$i ${STAGING_INCDIR}/gnome-vfs-module-2.0/libgnomevfs/; done -} - -do_install() { - oe_runmake ORBIT_IDL="${ORBIT_IDL_SRC}" DESTDIR="${D}" install -} diff --git a/packages/gnome/gnome-vfs_2.6.2.bb b/packages/gnome/gnome-vfs_2.6.2.bb deleted file mode 100644 index e9a903f598..0000000000 --- a/packages/gnome/gnome-vfs_2.6.2.bb +++ /dev/null @@ -1,85 +0,0 @@ -LICENSE = "GPL" -PR = "r4" - -inherit gnome - -DEPENDS = "libxml2 gconf libbonobo bzip2 gnome-mime-data orbit2 zlib samba-3.0.14a" -RRECOMMENDS = "gnome-vfs-plugin-file shared-mime-info" - -SRC_URI += "file://gconftool-lossage.patch;patch=1;pnum=1" - -ORBIT_IDL_SRC = "${STAGING_BINDIR_NATIVE}/orbit-idl-2" - -FILES_${PN} += " ${libdir}/bonobo/servers ${libdir}/bonobo/monikers/*.so ${libdir}/vfs" -FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/modules/*.a ${libdir}/gnome-vfs-2.0/modules/*.la ${libdir}/gnome-vfs-2.0/include ${libdir}/bonobo/monikers/*.a ${libdir}/bonobo/monikers/*.la" -FILES_${PN}-doc += " ${datadir}/gtk-doc" - -GNOME_VFS_HEADERS = " \ -gnome-vfs-utils.h \ -gnome-vfs-application-registry.h \ -gnome-vfs-async-ops.h \ -gnome-vfs-ops.h \ -gnome-vfs-uri.h \ -gnome-vfs-standard-callbacks.h \ -gnome-vfs-module-callback.h \ -gnome-vfs-context.h \ -gnome-vfs-file-info.h \ -gnome-vfs-directory.h \ -gnome-vfs-mime-monitor.h \ -gnome-vfs-mime-handlers.h \ -gnome-vfs-result.h \ -gnome-vfs-job-limit.h \ -gnome-vfs-file-size.h \ -gnome-vfs-mime-utils.h \ -gnome-vfs-find-directory.h \ -gnome-vfs-init.h \ -gnome-vfs-handle.h \ -gnome-vfs.h \ -gnome-vfs-cancellation.h \ -gnome-vfs-xfer.h \ -gnome-vfs-monitor.h \ -gnome-vfs-types.h \ -gnome-vfs-volume-monitor.h \ -gnome-vfs-drive.h \ -gnome-vfs-volume.h \ -gnome-vfs-enum-types.h" - -GNOME_VFS_MODULE_HEADERS = " \ -gnome-vfs-mime-info.h \ -gnome-vfs-transform.h \ -gnome-vfs-ssl.h \ -gnome-vfs-inet-connection.h \ -gnome-vfs-socket.h \ -gnome-vfs-parse-ls.h \ -gnome-vfs-method.h \ -gnome-vfs-cancellable-ops.h \ -gnome-vfs-module.h \ -gnome-vfs-module-shared.h \ -gnome-vfs-module-callback-module-api.h \ -gnome-vfs-mime.h \ -gnome-vfs-socket-buffer.h" - -do_compile() { - oe_runmake ORBIT_IDL="${ORBIT_IDL_SRC}" -} - -do_stage() { - oe_libinstall -so -C libgnomevfs libgnomevfs-2 ${STAGING_LIBDIR} - install -d ${STAGING_INCDIR}/gnome-vfs-2.0/libgnomevfs - for i in ${GNOME_VFS_HEADERS}; do install -m 0644 libgnomevfs/$i ${STAGING_INCDIR}/gnome-vfs-2.0/libgnomevfs/; done - install -d ${STAGING_INCDIR}/gnome-vfs-module-2.0/libgnomevfs - for i in ${GNOME_VFS_MODULE_HEADERS}; do install -m 0644 libgnomevfs/$i ${STAGING_INCDIR}/gnome-vfs-module-2.0/libgnomevfs/; done -} - -do_install() { - oe_runmake ORBIT_IDL="${ORBIT_IDL_SRC}" DESTDIR="${D}" install -} - -PACKAGES_DYNAMIC = "gnome-vfs-plugin-*" - -python populate_packages_prepend () { - print bb.data.getVar('FILES_gnome-vfs', d, 1) - - plugindir = bb.data.expand('${libdir}/gnome-vfs-2.0/modules/', d) - do_split_packages(d, plugindir, '^lib(.*)\.so$', 'gnome-vfs-plugin-%s', 'GNOME VFS plugin for %s') -} -- cgit 1.2.3-korg From 9b1380c48b8588ae458ffb365d149693e1b29678 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Wed, 25 Feb 2009 11:20:08 +0100 Subject: sane-srcdates.inc: remove first bunch of SRCDATES for cvs packages that are no longer existing --- conf/distro/include/sane-srcdates.inc | 45 ----------------------------------- 1 file changed, 45 deletions(-) diff --git a/conf/distro/include/sane-srcdates.inc b/conf/distro/include/sane-srcdates.inc index a2fffdf88d..d0e20ce123 100644 --- a/conf/distro/include/sane-srcdates.inc +++ b/conf/distro/include/sane-srcdates.inc @@ -5,51 +5,6 @@ SRCDATE_at76c503a-modules ?= "20060814" SRCDATE_prism54-module ?= "20060814" -# X11 libs, extentions and protos -SRCDATE_compositeext ?= "20060814" -SRCDATE_drm ?= "20060814" -SRCDATE_drm-kernel ?= "20060814" -SRCDATE_fixesext ?= "20060814" -SRCDATE_libxext-native ?= "20060814" -SRCDATE_libxss ?= "20060814" -SRCDATE_recordext ?= "20060814" -SRCDATE_renderext ?= "20060814" -SRCDATE_calibrateproto ?= "20070802" -SRCDATE_libxcalibrate ?= "20070802" -SRCDATE_xxf86dgaext ?= "20060814" -SRCDATE_xxf86vmext ?= "20060814" - -# Matchbox / O-hand -SRCDATE_contacts ?= "20060707" -SRCDATE_dates ?= "20060707" -SRCDATE_fstests ?= "20061122" -SRCDATE_eds-dbus ?= "20070704" -SRCDATE_libmatchbox ?= "20060612" -SRCDATE_libfakekey ?= "20051101" -SRCDATE_matchbox-common ?= "20060612" -SRCDATE_matchbox-config-gtk ?= "20060612" -SRCDATE_matchbox-desktop ?= "20060612" -SRCDATE_matchbox-keyboard ?= "20070816" -SRCDATE_matchbox-panel ?= "20060612" -SRCDATE_matchbox-panel-manager ?= "20060612" -SRCDATE_matchbox-stroke ?= "20060612" -SRCDATE_matchbox-themes-extra ?= "20060612" -SRCDATE_matchbox-wm ?= "20060612" -SRCDATE_libmatchbox ?= "20060612" -SRCDATE_libfakekey ?= "20051101" -SRCDATE_psplash ?= "20070330" -SRCDATE_web ?= "20060613" -SRCDATE_zaurusd ?= "20060628" - -# GPE -SRCDATE_dasher-gpe ?= "20060814" -SRCDATE_rosetta ?= "20060804" -SRCDATE_gpesyncd ?= "20070701" - -# GNOME -SRCDATE_gnome-vfs ?= "20060119" -SRCDATE_gtkhtml2 ?= "20060323" - # Misc packages, sorted by alphabet SRCDATE_aufs ?= "20081203" SRCDATE_avetanabt ?= "20060814" -- cgit 1.2.3-korg From d9bd245d159313b05b5bb3cfff21686aa9474003 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 19 Feb 2009 15:14:17 -0800 Subject: preferred-om-2008-versions.inc: Use pidgin version 2.5.3 --- conf/distro/include/preferred-om-2008-versions.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/distro/include/preferred-om-2008-versions.inc b/conf/distro/include/preferred-om-2008-versions.inc index f78c804203..451524845a 100644 --- a/conf/distro/include/preferred-om-2008-versions.inc +++ b/conf/distro/include/preferred-om-2008-versions.inc @@ -1435,7 +1435,7 @@ PREFERRED_VERSION_phoneserver ?= "1.0" PREFERRED_VERSION_php ?= "5.2.0" PREFERRED_VERSION_php-native ?= "5.2.0" PREFERRED_VERSION_picocom ?= "1.4" -PREFERRED_VERSION_pidgin ?= "2.2.1" +PREFERRED_VERSION_pidgin ?= "2.5.3" PREFERRED_VERSION_pine ?= "4.64" PREFERRED_VERSION_pipeman ?= "1.0.0" PREFERRED_VERSION_pipepanic ?= "0.1.1" -- cgit 1.2.3-korg From a53bdf1edfedc3914347f92f919dc7d2800761b2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 24 Feb 2009 21:31:09 -0800 Subject: checksums: Remove spurious control characters in ++DFB-0.9.25.tar.gz url * This led to 'NOTE: Creating the CheckSum parser failed' but the build continues without checking for the checksums. Ideally it should have errored if OE_STRICT_CHECKSUMS was set. But I will leave that for other day. --- conf/checksums.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/checksums.ini b/conf/checksums.ini index 9492b94809..2b8671493f 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -1,4 +1,4 @@ -[?1034h[http://www.directfb.org/downloads/Extras/++DFB-0.9.25.tar.gz] +[http://www.directfb.org/downloads/Extras/++DFB-0.9.25.tar.gz] md5=c6a2705f6210d8ede50a947b375f1c0b sha256=b3dbf01563dd60d63cff543ea8cd0c885381e78ecbbab8ff176e46df3f198a88 -- cgit 1.2.3-korg From fa76888ead7b85d31029d2137ac3865ce0d17fb1 Mon Sep 17 00:00:00 2001 From: Dmitry 'MAD' Artamonow Date: Tue, 24 Feb 2009 21:38:10 -0800 Subject: xdiskusage: xdiskusage shows disk space usage information, it can produce a PostScript version of the display. Signed-off-by: Khem Raj --- conf/checksums.ini | 4 ++++ packages/xdiskusage/files/running_from_menu.patch | 14 ++++++++++++ packages/xdiskusage/files/xdiskusage.desktop | 10 +++++++++ packages/xdiskusage/files/xdiskusage.png | Bin 0 -> 312 bytes packages/xdiskusage/xdiskusage_1.48.bb | 26 ++++++++++++++++++++++ 5 files changed, 54 insertions(+) create mode 100644 packages/xdiskusage/files/running_from_menu.patch create mode 100644 packages/xdiskusage/files/xdiskusage.desktop create mode 100644 packages/xdiskusage/files/xdiskusage.png create mode 100644 packages/xdiskusage/xdiskusage_1.48.bb diff --git a/conf/checksums.ini b/conf/checksums.ini index 2b8671493f..af95688447 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -22630,6 +22630,10 @@ sha256=4511dc4df6ebb320a4a516b3b712c86f6924e5ee9832618f58ebba06c64712ea md5=b3884eaec59a63691f66bc29ce57a56d sha256=75378ad3eacbe32c625de3b4af3e1f6fc9772ab45c1cd1393483d95ac4da3b22 +[http://xdiskusage.sourceforge.net/xdiskusage-1.48.tgz] +md5=a902aa9d73761ade98256c3cd5c1f533 +sha256=7842aa42510bf52c367164d44a977915ad9f070864d5175157738f8d6894274b + [http://xorg.freedesktop.org/releases/individual/app/xditview-1.0.1.tar.bz2] md5=e9a7192ef29453b8c810ddd556a463c0 sha256=177194e5f83b31c2f934e3a0b573e8ae359edf2ef1a2403ee8e1dad383558117 diff --git a/packages/xdiskusage/files/running_from_menu.patch b/packages/xdiskusage/files/running_from_menu.patch new file mode 100644 index 0000000000..7d0c08ee37 --- /dev/null +++ b/packages/xdiskusage/files/running_from_menu.patch @@ -0,0 +1,14 @@ +--- a/xdiskusage.C 29 Sep 2004 07:32:12 -0000 1.20 ++++ b/xdiskusage.C 13 Oct 2004 03:20:26 -0000 1.21 +@@ -261,7 +261,8 @@ + OutputWindow* d = OutputWindow::make(argv[n++]); + if (d) d->show(argc,argv); + } +- } else if (!isatty(0)) { ++ } else if (!isatty(0) && (n=getc(stdin))>=0) { ++ ungetc(n,stdin); + // test for pipe, if so read stdin: + OutputWindow* d = OutputWindow::make(0); + if (d) d->show(argc,argv); + + diff --git a/packages/xdiskusage/files/xdiskusage.desktop b/packages/xdiskusage/files/xdiskusage.desktop new file mode 100644 index 0000000000..ab4d2fd901 --- /dev/null +++ b/packages/xdiskusage/files/xdiskusage.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=XDiskUsage +GenericName=Disk Usage +Comment=Utility showing disk usage +Type=Application +Exec=xdiskusage +Icon=xdiskusage +Categories=System;Filesystem; +Terminal=false + diff --git a/packages/xdiskusage/files/xdiskusage.png b/packages/xdiskusage/files/xdiskusage.png new file mode 100644 index 0000000000..43b1924ed6 Binary files /dev/null and b/packages/xdiskusage/files/xdiskusage.png differ diff --git a/packages/xdiskusage/xdiskusage_1.48.bb b/packages/xdiskusage/xdiskusage_1.48.bb new file mode 100644 index 0000000000..baac5f88a3 --- /dev/null +++ b/packages/xdiskusage/xdiskusage_1.48.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "Xdiskusage shows graphically what is using up your disk space" +AUTHOR = "Bill Spitzak" +HOMEPAGE = "http://xdiskusage.sourceforge.net/" +SECTION = "x11/applications" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "fltk" + +SRC_URI = "http://xdiskusage.sourceforge.net/xdiskusage-${PV}.tgz \ + file://running_from_menu.patch;patch=1 \ + file://xdiskusage.desktop \ + file://xdiskusage.png" + +EXTRA_OEMAKE = "CXXFLAGS="${CXXFLAGS} `fltk-config --cxxflags`" \ + LDLIBS="`fltk-config --ldflags`"" + +do_install() { + install -d ${D}/${bindir} + install -d ${D}/${mandir}/man1 + install -d ${D}/${datadir}/applications + install -d ${D}/${datadir}/pixmaps + install -m 0755 ${S}/xdiskusage ${D}/${bindir}/ + install -m 0644 ${S}/xdiskusage.1 ${D}/${mandir}/man1/ + install -m 0644 ${WORKDIR}/xdiskusage.desktop ${D}/${datadir}/applications/ + install -m 0644 ${WORKDIR}/xdiskusage.png ${D}/${datadir}/pixmaps/ +} -- cgit 1.2.3-korg From 40da08b6db62ab1cad2771524380e0dcde9b8d0c Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Thu, 26 Feb 2009 13:00:36 +0100 Subject: frameworkd-devel: use mickey/ogsmd-new-timeout branch for now --- conf/distro/include/sane-srcrevs.inc | 6 +++--- packages/freesmartphone/frameworkd-devel_git.bb | 10 ++-------- packages/lyx/lyx_1.6.1.bb | 25 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 packages/lyx/lyx_1.6.1.bb diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index 64e29878af..8c9ba4caa2 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -54,8 +54,8 @@ SRCREV_pn-epydial ?= "215" SRCREV_pn-etk-theme-ninja ?= "5" SRCREV_pn-fbgrab-viewer-native ?= "1943" SRCREV_pn-flashrom ?= "3682" -SRCREV_pn-frameworkd ?= "700ab8250582767628165b7cf6f671ef756ba56d" -SRCREV_pn-frameworkd-devel ?= "${SRCREV_pn-frameworkd}" +SRCREV_pn-frameworkd ?= "b652f9cc4efbccc1df941c0d93e156631879f174" +SRCREV_pn-frameworkd-devel ?= "858c8d58d1f7e807f2c09532787c4e7b1a5daa52" SRCREV_pn-fsod ?= "3fa5eb6f2edcf7c9f0fc2027fda47b91d9f0f136" SRCREV_pn-fso-abyss ?= "fc4324a328834eb55c35d1670efc53f6e8c892a1" SRCREV_pn-fso-apm ?= "eb39ce7fb81bfa64e1a9eb5f142ca3d1065be3fa" @@ -247,7 +247,7 @@ SRCREV_pn-zhone ?= "f38cc52fbf11f7fe945797a6b8ade29ed479d924" # Enlightenment Foundation Libraries # Caution: This is not alphabetically, but (roughly) dependency-sorted. # Please leave it like that. -EFL_SRCREV ?= "39089" +EFL_SRCREV ?= "39188" SRCREV_pn-edb-native ?= "${EFL_SRCREV}" SRCREV_pn-edb ?= "${EFL_SRCREV}" SRCREV_pn-eina-native ?= "${EFL_SRCREV}" diff --git a/packages/freesmartphone/frameworkd-devel_git.bb b/packages/freesmartphone/frameworkd-devel_git.bb index cb52fbc4f5..f5f6c0bc2d 100644 --- a/packages/freesmartphone/frameworkd-devel_git.bb +++ b/packages/freesmartphone/frameworkd-devel_git.bb @@ -3,18 +3,12 @@ FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/frameworkd', '${FILE_DIRNA PROVIDES = "frameworkd" RPROVIDES = "frameworkd" PV = "0.8.5.x+gitr${SRCREV}" -PR = "r1" +PR = "r0" DEFAULT_PREFERENCE = "-1" -# skip this package -COMPATIBLE_MACHINE = "" SRC_URI = "\ - ${FREESMARTPHONE_GIT}/framework.git;protocol=git;branch=master \ + ${FREESMARTPHONE_GIT}/framework.git;protocol=git;branch=mickey/ogsmd-new-timeout \ file://frameworkd \ file://frameworkd.conf \ " - -CONFFILES_${PN}-config += "\ - ${sysconfdir}/freesmartphone/ogsmd/networks.tab \ -" diff --git a/packages/lyx/lyx_1.6.1.bb b/packages/lyx/lyx_1.6.1.bb new file mode 100644 index 0000000000..3d5b6c61d6 --- /dev/null +++ b/packages/lyx/lyx_1.6.1.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "LyX is an advanced type setting processor - a frontend for LaTeX" +SECTION = "x11/office" +LICENSE = "GPL" +HOMEPAGE = "http://www.lyx.org" +DEPENDS = "boost qt4-x11-free" +RSUGGESTS = "tetex" +RDEPENDS = "python-shell python-textutils" +PR = "r0" + +SRC_URI = "http://lyx.cybermirror.org/stable/lyx-${PV}.tar.bz2" + +inherit qt4x11 autotools + +EXTRA_OECONF = " --with-qt4-dir=${QTDIR} -enable-pch" +EXTRA_QMAKEVARS_POST = "DEFINES+=_LIBC" +PARALLEL_MAKE = "" + +do_configure_prepend() { + echo "NOTE: touching missing files, please report to upstream" + touch lib/configure.ac lib/doc/LaTeXConfig.lyx lib/textclass.lst +} + +#export UIC="${OE_QMAKE_UIC}" +#export MOC="${OE_QMAKE_MOC}" +#export OE_QMAKE_LIBS_X11="-lX11 -lXext" -- cgit 1.2.3-korg From b7f96978a75a7c0accfe32b8f69d7f20067cb080 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Thu, 26 Feb 2009 17:17:52 +0100 Subject: linux-openmoko-2.6.28: build out of the stable branch; bump to latest version --- packages/linux/linux-openmoko-2.6.28_git.bb | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/packages/linux/linux-openmoko-2.6.28_git.bb b/packages/linux/linux-openmoko-2.6.28_git.bb index 014d39df8a..b5a01f2aa3 100644 --- a/packages/linux/linux-openmoko-2.6.28_git.bb +++ b/packages/linux/linux-openmoko-2.6.28_git.bb @@ -6,21 +6,12 @@ DESCRIPTION_${PN} = "Linux ${KERNEL_RELEASE} kernel for the Openmoko Neo GSM Sma KERNEL_RELEASE = "2.6.28" KERNEL_VERSION = "${KERNEL_RELEASE}" -OEV = "oe1" +OEV = "oe2" PV = "${KERNEL_RELEASE}-${OEV}+gitr${SRCREV}" -PR = "r4" +PR = "r0" SRC_URI = "\ - git://git.openmoko.org/git/kernel.git;protocol=git;branch=andy-tracking \ - file://openwrt-ledtrig-netdev.patch;patch=1 \ - file://0001-MERGE-via-pending-tracking-hist-subject-usb-gadget-r.patch;patch=1 \ - file://0002-MERGE-via-pending-tracking-hist-subject-usb-gadget-f.patch;patch=1 \ - file://0003-consider-alrm-enable-in-pcf50633_rtc_set_alarm.patch;patch=1 \ - file://0004-manage-RTC-alarm-pending-flag-of-PCF50633.patch;patch=1 \ - file://0005-debug-glamo-allow-slower-memory-bus.patch.patch;patch=1 \ - file://0006-Subject-fix_glamo_xrandr_bug.patch.patch;patch=1 \ - file://0007-Subject-glamo_fix_improper_xrandr_geometry_setting.patch;patch=1 \ - file://0008-Send-pen-up-events-faster-side-effect-improve-illu.patch;patch=1 \ + git://git.openmoko.org/git/kernel.git;protocol=git;branch=stable \ file://defconfig-oe.patch \ " S = "${WORKDIR}/git" @@ -34,3 +25,4 @@ do_configure_prepend() { cat ${WORKDIR}/defconfig-oe.patch | patch -p0 -d ${WORKDIR} } + -- cgit 1.2.3-korg From 13ac0a793a6266721b9ec7d3fb8ac311a21682d4 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Thu, 26 Feb 2009 17:21:16 +0100 Subject: sane-srcrevs: bump linux-openmoko-2.6.28 --- conf/distro/include/sane-srcrevs.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index 8c9ba4caa2..d24ef4dcf8 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -102,7 +102,7 @@ SRCREV_pn-linux-bfin ?= "3758" SRCREV_pn-linux-hackndev-2.6 ?= "1308" SRCREV_pn-linux-ixp4xx ?= "1085" SRCREV_pn-linux-openmoko-2.6.24 ?= "fb42ce6724576fc173faf8abfb04aa2c36d213b7" -SRCREV_pn-linux-openmoko-2.6.28 ?= "34240a1c06ae36180dee695aa25bbae869b2aa26" +SRCREV_pn-linux-openmoko-2.6.28 ?= "8aa6cdde17381dd8865d10ba15ee62c092ec2ba5" SRCREV_pn-linux-openmoko-devel ?= "b9aa5bf345a0b802af0d10b6cf1079738fe4fd12" SRCREV_pn-linux-eten ?= "ab2d414f4f13816af0ec0401b608133ca946624a" SRCREV_pn-llvm-gcc4 ?= "374" -- cgit 1.2.3-korg From 4ca003cb0431acf26edb867d7b1adbf51aeac9a4 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Thu, 26 Feb 2009 18:11:18 +0100 Subject: linux-openmoko-2.6.28: remove patches that have been applied upstream --- ...ending-tracking-hist-subject-usb-gadget-r.patch | 55 - .../0001-squashfs-with-lzma.patch | 5342 -------------------- ...ending-tracking-hist-subject-usb-gadget-f.patch | 50 - .../0002-squashfs-initrd.patch | 55 - ...der-alrm-enable-in-pcf50633_rtc_set_alarm.patch | 52 - .../0003-squashfs-force-O2.patch | 17 - ...manage-RTC-alarm-pending-flag-of-PCF50633.patch | 64 - .../0004-squashfs-Kconfig.patch | 61 - ...debug-glamo-allow-slower-memory-bus.patch.patch | 72 - .../0005-squashfs-Makefile.patch | 12 - .../0006-Subject-fix_glamo_xrandr_bug.patch.patch | 46 - ...lamo_fix_improper_xrandr_geometry_setting.patch | 216 - ...up-events-faster-side-effect-improve-illu.patch | 41 - .../linux/linux-openmoko-2.6.28/defconfig-oe.patch | 25 - .../openwrt-ledtrig-netdev.patch | 474 -- packages/linux/linux-openmoko-2.6.28_git.bb | 4 +- 16 files changed, 2 insertions(+), 6584 deletions(-) delete mode 100644 packages/linux/linux-openmoko-2.6.28/0001-MERGE-via-pending-tracking-hist-subject-usb-gadget-r.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0001-squashfs-with-lzma.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0002-MERGE-via-pending-tracking-hist-subject-usb-gadget-f.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0003-consider-alrm-enable-in-pcf50633_rtc_set_alarm.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0003-squashfs-force-O2.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0004-manage-RTC-alarm-pending-flag-of-PCF50633.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0004-squashfs-Kconfig.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0005-debug-glamo-allow-slower-memory-bus.patch.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0005-squashfs-Makefile.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0006-Subject-fix_glamo_xrandr_bug.patch.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0007-Subject-glamo_fix_improper_xrandr_geometry_setting.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/0008-Send-pen-up-events-faster-side-effect-improve-illu.patch delete mode 100644 packages/linux/linux-openmoko-2.6.28/openwrt-ledtrig-netdev.patch diff --git a/packages/linux/linux-openmoko-2.6.28/0001-MERGE-via-pending-tracking-hist-subject-usb-gadget-r.patch b/packages/linux/linux-openmoko-2.6.28/0001-MERGE-via-pending-tracking-hist-subject-usb-gadget-r.patch deleted file mode 100644 index c228396a81..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0001-MERGE-via-pending-tracking-hist-subject-usb-gadget-r.patch +++ /dev/null @@ -1,55 +0,0 @@ -From f94d3fbb605ad16d701525502fbad114a950197c Mon Sep 17 00:00:00 2001 -From: merge -Date: Mon, 19 Jan 2009 23:03:59 +0000 -Subject: [PATCH 1/8] MERGE-via-pending-tracking-hist-subject-usb-gadget-rndis-send- -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf-8 -Content-Transfer-Encoding: 8bit -pending-tracking-hist top was subject-usb-gadget-rndis-send- / 3c29888770bfa8ce3a5e2ed590c3edb97ca4abaf ... parent commitmessage: -From: Richard Röjfors -Subject: USB: gadget rndis: send notifications - -X-Git-Tag: v2.6.28-rc6~2^2~2 -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=ff3495052af48f7a2bf7961b131dc9e161dae19c;hp=9c264521a9f836541c122b00f505cfd60cc5bbb5 - -USB: gadget rndis: send notifications - -It turns out that atomic_inc_return() returns the *new* value -not the original one, so the logic in rndis_response_available() -kept the first RNDIS response notification from getting out. -This prevented interoperation with MS-Windows (but not Linux). - -Fix this to make RNDIS behave again. - -Signed-off-by: Richard Röjfors -Signed-off-by: David Brownell -Cc: stable -Signed-off-by: Greg Kroah-Hartman ---- - drivers/usb/gadget/f_rndis.c | 3 +-- - 1 files changed, 1 insertions(+), 2 deletions(-) - -diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c -index 659b3d9..428b599 100644 ---- a/drivers/usb/gadget/f_rndis.c -+++ b/drivers/usb/gadget/f_rndis.c -@@ -172,7 +172,6 @@ static struct usb_interface_descriptor rndis_data_intf __initdata = { - .bDescriptorType = USB_DT_INTERFACE, - - /* .bInterfaceNumber = DYNAMIC */ -- .bAlternateSetting = 1, - .bNumEndpoints = 2, - .bInterfaceClass = USB_CLASS_CDC_DATA, - .bInterfaceSubClass = 0, -@@ -303,7 +302,7 @@ static void rndis_response_available(void *_rndis) - __le32 *data = req->buf; - int status; - -- if (atomic_inc_return(&rndis->notify_count)) -+ if (atomic_inc_return(&rndis->notify_count) != 1) - return; - - /* Send RNDIS RESPONSE_AVAILABLE notification; a --- -1.5.2.2 - diff --git a/packages/linux/linux-openmoko-2.6.28/0001-squashfs-with-lzma.patch b/packages/linux/linux-openmoko-2.6.28/0001-squashfs-with-lzma.patch deleted file mode 100644 index 04d47fe16f..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0001-squashfs-with-lzma.patch +++ /dev/null @@ -1,5342 +0,0 @@ - -diff -urN linux-2.6.23/fs/squashfs/LzmaDecode.c linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.c ---- linux-2.6.23/fs/squashfs/LzmaDecode.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.c 2007-11-13 19:45:12.000000000 -0500 -@@ -0,0 +1,584 @@ -+/* -+ LzmaDecode.c -+ LZMA Decoder (optimized for Speed version) -+ -+ LZMA SDK 4.40 Copyright (c) 1999-2006 Igor Pavlov (2006-05-01) -+ http://www.7-zip.org/ -+ -+ LZMA SDK is licensed under two licenses: -+ 1) GNU Lesser General Public License (GNU LGPL) -+ 2) Common Public License (CPL) -+ It means that you can select one of these two licenses and -+ follow rules of that license. -+ -+ SPECIAL EXCEPTION: -+ Igor Pavlov, as the author of this Code, expressly permits you to -+ statically or dynamically link your Code (or bind by name) to the -+ interfaces of this file without subjecting your linked Code to the -+ terms of the CPL or GNU LGPL. Any modifications or additions -+ to this file, however, are subject to the LGPL or CPL terms. -+*/ -+ -+#include "LzmaDecode.h" -+ -+#define kNumTopBits 24 -+#define kTopValue ((UInt32)1 << kNumTopBits) -+ -+#define kNumBitModelTotalBits 11 -+#define kBitModelTotal (1 << kNumBitModelTotalBits) -+#define kNumMoveBits 5 -+ -+#define RC_READ_BYTE (*Buffer++) -+ -+#define RC_INIT2 Code = 0; Range = 0xFFFFFFFF; \ -+ { int i; for(i = 0; i < 5; i++) { RC_TEST; Code = (Code << 8) | RC_READ_BYTE; }} -+ -+#ifdef _LZMA_IN_CB -+ -+#define RC_TEST { if (Buffer == BufferLim) \ -+ { SizeT size; int result = InCallback->Read(InCallback, &Buffer, &size); if (result != LZMA_RESULT_OK) return result; \ -+ BufferLim = Buffer + size; if (size == 0) return LZMA_RESULT_DATA_ERROR; }} -+ -+#define RC_INIT Buffer = BufferLim = 0; RC_INIT2 -+ -+#else -+ -+#define RC_TEST { if (Buffer == BufferLim) return LZMA_RESULT_DATA_ERROR; } -+ -+#define RC_INIT(buffer, bufferSize) Buffer = buffer; BufferLim = buffer + bufferSize; RC_INIT2 -+ -+#endif -+ -+#define RC_NORMALIZE if (Range < kTopValue) { RC_TEST; Range <<= 8; Code = (Code << 8) | RC_READ_BYTE; } -+ -+#define IfBit0(p) RC_NORMALIZE; bound = (Range >> kNumBitModelTotalBits) * *(p); if (Code < bound) -+#define UpdateBit0(p) Range = bound; *(p) += (kBitModelTotal - *(p)) >> kNumMoveBits; -+#define UpdateBit1(p) Range -= bound; Code -= bound; *(p) -= (*(p)) >> kNumMoveBits; -+ -+#define RC_GET_BIT2(p, mi, A0, A1) IfBit0(p) \ -+ { UpdateBit0(p); mi <<= 1; A0; } else \ -+ { UpdateBit1(p); mi = (mi + mi) + 1; A1; } -+ -+#define RC_GET_BIT(p, mi) RC_GET_BIT2(p, mi, ; , ;) -+ -+#define RangeDecoderBitTreeDecode(probs, numLevels, res) \ -+ { int i = numLevels; res = 1; \ -+ do { CProb *p = probs + res; RC_GET_BIT(p, res) } while(--i != 0); \ -+ res -= (1 << numLevels); } -+ -+ -+#define kNumPosBitsMax 4 -+#define kNumPosStatesMax (1 << kNumPosBitsMax) -+ -+#define kLenNumLowBits 3 -+#define kLenNumLowSymbols (1 << kLenNumLowBits) -+#define kLenNumMidBits 3 -+#define kLenNumMidSymbols (1 << kLenNumMidBits) -+#define kLenNumHighBits 8 -+#define kLenNumHighSymbols (1 << kLenNumHighBits) -+ -+#define LenChoice 0 -+#define LenChoice2 (LenChoice + 1) -+#define LenLow (LenChoice2 + 1) -+#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits)) -+#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits)) -+#define kNumLenProbs (LenHigh + kLenNumHighSymbols) -+ -+ -+#define kNumStates 12 -+#define kNumLitStates 7 -+ -+#define kStartPosModelIndex 4 -+#define kEndPosModelIndex 14 -+#define kNumFullDistances (1 << (kEndPosModelIndex >> 1)) -+ -+#define kNumPosSlotBits 6 -+#define kNumLenToPosStates 4 -+ -+#define kNumAlignBits 4 -+#define kAlignTableSize (1 << kNumAlignBits) -+ -+#define kMatchMinLen 2 -+ -+#define IsMatch 0 -+#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax)) -+#define IsRepG0 (IsRep + kNumStates) -+#define IsRepG1 (IsRepG0 + kNumStates) -+#define IsRepG2 (IsRepG1 + kNumStates) -+#define IsRep0Long (IsRepG2 + kNumStates) -+#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax)) -+#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits)) -+#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex) -+#define LenCoder (Align + kAlignTableSize) -+#define RepLenCoder (LenCoder + kNumLenProbs) -+#define Literal (RepLenCoder + kNumLenProbs) -+ -+#if Literal != LZMA_BASE_SIZE -+StopCompilingDueBUG -+#endif -+ -+int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size) -+{ -+ unsigned char prop0; -+ if (size < LZMA_PROPERTIES_SIZE) -+ return LZMA_RESULT_DATA_ERROR; -+ prop0 = propsData[0]; -+ if (prop0 >= (9 * 5 * 5)) -+ return LZMA_RESULT_DATA_ERROR; -+ { -+ for (propsRes->pb = 0; prop0 >= (9 * 5); propsRes->pb++, prop0 -= (9 * 5)); -+ for (propsRes->lp = 0; prop0 >= 9; propsRes->lp++, prop0 -= 9); -+ propsRes->lc = prop0; -+ /* -+ unsigned char remainder = (unsigned char)(prop0 / 9); -+ propsRes->lc = prop0 % 9; -+ propsRes->pb = remainder / 5; -+ propsRes->lp = remainder % 5; -+ */ -+ } -+ -+ #ifdef _LZMA_OUT_READ -+ { -+ int i; -+ propsRes->DictionarySize = 0; -+ for (i = 0; i < 4; i++) -+ propsRes->DictionarySize += (UInt32)(propsData[1 + i]) << (i * 8); -+ if (propsRes->DictionarySize == 0) -+ propsRes->DictionarySize = 1; -+ } -+ #endif -+ return LZMA_RESULT_OK; -+} -+ -+#define kLzmaStreamWasFinishedId (-1) -+ -+int LzmaDecode(CLzmaDecoderState *vs, -+ #ifdef _LZMA_IN_CB -+ ILzmaInCallback *InCallback, -+ #else -+ const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed, -+ #endif -+ unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed) -+{ -+ CProb *p = vs->Probs; -+ SizeT nowPos = 0; -+ Byte previousByte = 0; -+ UInt32 posStateMask = (1 << (vs->Properties.pb)) - 1; -+ UInt32 literalPosMask = (1 << (vs->Properties.lp)) - 1; -+ int lc = vs->Properties.lc; -+ -+ #ifdef _LZMA_OUT_READ -+ -+ UInt32 Range = vs->Range; -+ UInt32 Code = vs->Code; -+ #ifdef _LZMA_IN_CB -+ const Byte *Buffer = vs->Buffer; -+ const Byte *BufferLim = vs->BufferLim; -+ #else -+ const Byte *Buffer = inStream; -+ const Byte *BufferLim = inStream + inSize; -+ #endif -+ int state = vs->State; -+ UInt32 rep0 = vs->Reps[0], rep1 = vs->Reps[1], rep2 = vs->Reps[2], rep3 = vs->Reps[3]; -+ int len = vs->RemainLen; -+ UInt32 globalPos = vs->GlobalPos; -+ UInt32 distanceLimit = vs->DistanceLimit; -+ -+ Byte *dictionary = vs->Dictionary; -+ UInt32 dictionarySize = vs->Properties.DictionarySize; -+ UInt32 dictionaryPos = vs->DictionaryPos; -+ -+ Byte tempDictionary[4]; -+ -+ #ifndef _LZMA_IN_CB -+ *inSizeProcessed = 0; -+ #endif -+ *outSizeProcessed = 0; -+ if (len == kLzmaStreamWasFinishedId) -+ return LZMA_RESULT_OK; -+ -+ if (dictionarySize == 0) -+ { -+ dictionary = tempDictionary; -+ dictionarySize = 1; -+ tempDictionary[0] = vs->TempDictionary[0]; -+ } -+ -+ if (len == kLzmaNeedInitId) -+ { -+ { -+ UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp)); -+ UInt32 i; -+ for (i = 0; i < numProbs; i++) -+ p[i] = kBitModelTotal >> 1; -+ rep0 = rep1 = rep2 = rep3 = 1; -+ state = 0; -+ globalPos = 0; -+ distanceLimit = 0; -+ dictionaryPos = 0; -+ dictionary[dictionarySize - 1] = 0; -+ #ifdef _LZMA_IN_CB -+ RC_INIT; -+ #else -+ RC_INIT(inStream, inSize); -+ #endif -+ } -+ len = 0; -+ } -+ while(len != 0 && nowPos < outSize) -+ { -+ UInt32 pos = dictionaryPos - rep0; -+ if (pos >= dictionarySize) -+ pos += dictionarySize; -+ outStream[nowPos++] = dictionary[dictionaryPos] = dictionary[pos]; -+ if (++dictionaryPos == dictionarySize) -+ dictionaryPos = 0; -+ len--; -+ } -+ if (dictionaryPos == 0) -+ previousByte = dictionary[dictionarySize - 1]; -+ else -+ previousByte = dictionary[dictionaryPos - 1]; -+ -+ #else /* if !_LZMA_OUT_READ */ -+ -+ int state = 0; -+ UInt32 rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1; -+ int len = 0; -+ const Byte *Buffer; -+ const Byte *BufferLim; -+ UInt32 Range; -+ UInt32 Code; -+ -+ #ifndef _LZMA_IN_CB -+ *inSizeProcessed = 0; -+ #endif -+ *outSizeProcessed = 0; -+ -+ { -+ UInt32 i; -+ UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp)); -+ for (i = 0; i < numProbs; i++) -+ p[i] = kBitModelTotal >> 1; -+ } -+ -+ #ifdef _LZMA_IN_CB -+ RC_INIT; -+ #else -+ RC_INIT(inStream, inSize); -+ #endif -+ -+ #endif /* _LZMA_OUT_READ */ -+ -+ while(nowPos < outSize) -+ { -+ CProb *prob; -+ UInt32 bound; -+ int posState = (int)( -+ (nowPos -+ #ifdef _LZMA_OUT_READ -+ + globalPos -+ #endif -+ ) -+ & posStateMask); -+ -+ prob = p + IsMatch + (state << kNumPosBitsMax) + posState; -+ IfBit0(prob) -+ { -+ int symbol = 1; -+ UpdateBit0(prob) -+ prob = p + Literal + (LZMA_LIT_SIZE * -+ ((( -+ (nowPos -+ #ifdef _LZMA_OUT_READ -+ + globalPos -+ #endif -+ ) -+ & literalPosMask) << lc) + (previousByte >> (8 - lc)))); -+ -+ if (state >= kNumLitStates) -+ { -+ int matchByte; -+ #ifdef _LZMA_OUT_READ -+ UInt32 pos = dictionaryPos - rep0; -+ if (pos >= dictionarySize) -+ pos += dictionarySize; -+ matchByte = dictionary[pos]; -+ #else -+ matchByte = outStream[nowPos - rep0]; -+ #endif -+ do -+ { -+ int bit; -+ CProb *probLit; -+ matchByte <<= 1; -+ bit = (matchByte & 0x100); -+ probLit = prob + 0x100 + bit + symbol; -+ RC_GET_BIT2(probLit, symbol, if (bit != 0) break, if (bit == 0) break) -+ } -+ while (symbol < 0x100); -+ } -+ while (symbol < 0x100) -+ { -+ CProb *probLit = prob + symbol; -+ RC_GET_BIT(probLit, symbol) -+ } -+ previousByte = (Byte)symbol; -+ -+ outStream[nowPos++] = previousByte; -+ #ifdef _LZMA_OUT_READ -+ if (distanceLimit < dictionarySize) -+ distanceLimit++; -+ -+ dictionary[dictionaryPos] = previousByte; -+ if (++dictionaryPos == dictionarySize) -+ dictionaryPos = 0; -+ #endif -+ if (state < 4) state = 0; -+ else if (state < 10) state -= 3; -+ else state -= 6; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ prob = p + IsRep + state; -+ IfBit0(prob) -+ { -+ UpdateBit0(prob); -+ rep3 = rep2; -+ rep2 = rep1; -+ rep1 = rep0; -+ state = state < kNumLitStates ? 0 : 3; -+ prob = p + LenCoder; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ prob = p + IsRepG0 + state; -+ IfBit0(prob) -+ { -+ UpdateBit0(prob); -+ prob = p + IsRep0Long + (state << kNumPosBitsMax) + posState; -+ IfBit0(prob) -+ { -+ #ifdef _LZMA_OUT_READ -+ UInt32 pos; -+ #endif -+ UpdateBit0(prob); -+ -+ #ifdef _LZMA_OUT_READ -+ if (distanceLimit == 0) -+ #else -+ if (nowPos == 0) -+ #endif -+ return LZMA_RESULT_DATA_ERROR; -+ -+ state = state < kNumLitStates ? 9 : 11; -+ #ifdef _LZMA_OUT_READ -+ pos = dictionaryPos - rep0; -+ if (pos >= dictionarySize) -+ pos += dictionarySize; -+ previousByte = dictionary[pos]; -+ dictionary[dictionaryPos] = previousByte; -+ if (++dictionaryPos == dictionarySize) -+ dictionaryPos = 0; -+ #else -+ previousByte = outStream[nowPos - rep0]; -+ #endif -+ outStream[nowPos++] = previousByte; -+ #ifdef _LZMA_OUT_READ -+ if (distanceLimit < dictionarySize) -+ distanceLimit++; -+ #endif -+ -+ continue; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ } -+ } -+ else -+ { -+ UInt32 distance; -+ UpdateBit1(prob); -+ prob = p + IsRepG1 + state; -+ IfBit0(prob) -+ { -+ UpdateBit0(prob); -+ distance = rep1; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ prob = p + IsRepG2 + state; -+ IfBit0(prob) -+ { -+ UpdateBit0(prob); -+ distance = rep2; -+ } -+ else -+ { -+ UpdateBit1(prob); -+ distance = rep3; -+ rep3 = rep2; -+ } -+ rep2 = rep1; -+ } -+ rep1 = rep0; -+ rep0 = distance; -+ } -+ state = state < kNumLitStates ? 8 : 11; -+ prob = p + RepLenCoder; -+ } -+ { -+ int numBits, offset; -+ CProb *probLen = prob + LenChoice; -+ IfBit0(probLen) -+ { -+ UpdateBit0(probLen); -+ probLen = prob + LenLow + (posState << kLenNumLowBits); -+ offset = 0; -+ numBits = kLenNumLowBits; -+ } -+ else -+ { -+ UpdateBit1(probLen); -+ probLen = prob + LenChoice2; -+ IfBit0(probLen) -+ { -+ UpdateBit0(probLen); -+ probLen = prob + LenMid + (posState << kLenNumMidBits); -+ offset = kLenNumLowSymbols; -+ numBits = kLenNumMidBits; -+ } -+ else -+ { -+ UpdateBit1(probLen); -+ probLen = prob + LenHigh; -+ offset = kLenNumLowSymbols + kLenNumMidSymbols; -+ numBits = kLenNumHighBits; -+ } -+ } -+ RangeDecoderBitTreeDecode(probLen, numBits, len); -+ len += offset; -+ } -+ -+ if (state < 4) -+ { -+ int posSlot; -+ state += kNumLitStates; -+ prob = p + PosSlot + -+ ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << -+ kNumPosSlotBits); -+ RangeDecoderBitTreeDecode(prob, kNumPosSlotBits, posSlot); -+ if (posSlot >= kStartPosModelIndex) -+ { -+ int numDirectBits = ((posSlot >> 1) - 1); -+ rep0 = (2 | ((UInt32)posSlot & 1)); -+ if (posSlot < kEndPosModelIndex) -+ { -+ rep0 <<= numDirectBits; -+ prob = p + SpecPos + rep0 - posSlot - 1; -+ } -+ else -+ { -+ numDirectBits -= kNumAlignBits; -+ do -+ { -+ RC_NORMALIZE -+ Range >>= 1; -+ rep0 <<= 1; -+ if (Code >= Range) -+ { -+ Code -= Range; -+ rep0 |= 1; -+ } -+ } -+ while (--numDirectBits != 0); -+ prob = p + Align; -+ rep0 <<= kNumAlignBits; -+ numDirectBits = kNumAlignBits; -+ } -+ { -+ int i = 1; -+ int mi = 1; -+ do -+ { -+ CProb *prob3 = prob + mi; -+ RC_GET_BIT2(prob3, mi, ; , rep0 |= i); -+ i <<= 1; -+ } -+ while(--numDirectBits != 0); -+ } -+ } -+ else -+ rep0 = posSlot; -+ if (++rep0 == (UInt32)(0)) -+ { -+ /* it's for stream version */ -+ len = kLzmaStreamWasFinishedId; -+ break; -+ } -+ } -+ -+ len += kMatchMinLen; -+ #ifdef _LZMA_OUT_READ -+ if (rep0 > distanceLimit) -+ #else -+ if (rep0 > nowPos) -+ #endif -+ return LZMA_RESULT_DATA_ERROR; -+ -+ #ifdef _LZMA_OUT_READ -+ if (dictionarySize - distanceLimit > (UInt32)len) -+ distanceLimit += len; -+ else -+ distanceLimit = dictionarySize; -+ #endif -+ -+ do -+ { -+ #ifdef _LZMA_OUT_READ -+ UInt32 pos = dictionaryPos - rep0; -+ if (pos >= dictionarySize) -+ pos += dictionarySize; -+ previousByte = dictionary[pos]; -+ dictionary[dictionaryPos] = previousByte; -+ if (++dictionaryPos == dictionarySize) -+ dictionaryPos = 0; -+ #else -+ previousByte = outStream[nowPos - rep0]; -+ #endif -+ len--; -+ outStream[nowPos++] = previousByte; -+ } -+ while(len != 0 && nowPos < outSize); -+ } -+ } -+ RC_NORMALIZE; -+ -+ #ifdef _LZMA_OUT_READ -+ vs->Range = Range; -+ vs->Code = Code; -+ vs->DictionaryPos = dictionaryPos; -+ vs->GlobalPos = globalPos + (UInt32)nowPos; -+ vs->DistanceLimit = distanceLimit; -+ vs->Reps[0] = rep0; -+ vs->Reps[1] = rep1; -+ vs->Reps[2] = rep2; -+ vs->Reps[3] = rep3; -+ vs->State = state; -+ vs->RemainLen = len; -+ vs->TempDictionary[0] = tempDictionary[0]; -+ #endif -+ -+ #ifdef _LZMA_IN_CB -+ vs->Buffer = Buffer; -+ vs->BufferLim = BufferLim; -+ #else -+ *inSizeProcessed = (SizeT)(Buffer - inStream); -+ #endif -+ *outSizeProcessed = nowPos; -+ return LZMA_RESULT_OK; -+} -diff -urN linux-2.6.23/fs/squashfs/LzmaDecode.h linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.h ---- linux-2.6.23/fs/squashfs/LzmaDecode.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.h 2007-11-13 19:45:12.000000000 -0500 -@@ -0,0 +1,113 @@ -+/* -+ LzmaDecode.h -+ LZMA Decoder interface -+ -+ LZMA SDK 4.40 Copyright (c) 1999-2006 Igor Pavlov (2006-05-01) -+ http://www.7-zip.org/ -+ -+ LZMA SDK is licensed under two licenses: -+ 1) GNU Lesser General Public License (GNU LGPL) -+ 2) Common Public License (CPL) -+ It means that you can select one of these two licenses and -+ follow rules of that license. -+ -+ SPECIAL EXCEPTION: -+ Igor Pavlov, as the author of this code, expressly permits you to -+ statically or dynamically link your code (or bind by name) to the -+ interfaces of this file without subjecting your linked code to the -+ terms of the CPL or GNU LGPL. Any modifications or additions -+ to this file, however, are subject to the LGPL or CPL terms. -+*/ -+ -+#ifndef __LZMADECODE_H -+#define __LZMADECODE_H -+ -+#include "LzmaTypes.h" -+ -+/* #define _LZMA_IN_CB */ -+/* Use callback for input data */ -+ -+/* #define _LZMA_OUT_READ */ -+/* Use read function for output data */ -+ -+/* #define _LZMA_PROB32 */ -+/* It can increase speed on some 32-bit CPUs, -+ but memory usage will be doubled in that case */ -+ -+/* #define _LZMA_LOC_OPT */ -+/* Enable local speed optimizations inside code */ -+ -+#ifdef _LZMA_PROB32 -+#define CProb UInt32 -+#else -+#define CProb UInt16 -+#endif -+ -+#define LZMA_RESULT_OK 0 -+#define LZMA_RESULT_DATA_ERROR 1 -+ -+#ifdef _LZMA_IN_CB -+typedef struct _ILzmaInCallback -+{ -+ int (*Read)(void *object, const unsigned char **buffer, SizeT *bufferSize); -+} ILzmaInCallback; -+#endif -+ -+#define LZMA_BASE_SIZE 1846 -+#define LZMA_LIT_SIZE 768 -+ -+#define LZMA_PROPERTIES_SIZE 5 -+ -+typedef struct _CLzmaProperties -+{ -+ int lc; -+ int lp; -+ int pb; -+ #ifdef _LZMA_OUT_READ -+ UInt32 DictionarySize; -+ #endif -+}CLzmaProperties; -+ -+int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size); -+ -+#define LzmaGetNumProbs(Properties) (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((Properties)->lc + (Properties)->lp))) -+ -+#define kLzmaNeedInitId (-2) -+ -+typedef struct _CLzmaDecoderState -+{ -+ CLzmaProperties Properties; -+ CProb *Probs; -+ -+ #ifdef _LZMA_IN_CB -+ const unsigned char *Buffer; -+ const unsigned char *BufferLim; -+ #endif -+ -+ #ifdef _LZMA_OUT_READ -+ unsigned char *Dictionary; -+ UInt32 Range; -+ UInt32 Code; -+ UInt32 DictionaryPos; -+ UInt32 GlobalPos; -+ UInt32 DistanceLimit; -+ UInt32 Reps[4]; -+ int State; -+ int RemainLen; -+ unsigned char TempDictionary[4]; -+ #endif -+} CLzmaDecoderState; -+ -+#ifdef _LZMA_OUT_READ -+#define LzmaDecoderInit(vs) { (vs)->RemainLen = kLzmaNeedInitId; } -+#endif -+ -+int LzmaDecode(CLzmaDecoderState *vs, -+ #ifdef _LZMA_IN_CB -+ ILzmaInCallback *inCallback, -+ #else -+ const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed, -+ #endif -+ unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed); -+ -+#endif -diff -urN linux-2.6.23/fs/squashfs/LzmaTypes.h linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaTypes.h ---- linux-2.6.23/fs/squashfs/LzmaTypes.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaTypes.h 2007-11-13 19:47:32.000000000 -0500 -@@ -0,0 +1,45 @@ -+/* -+LzmaTypes.h -+ -+Types for LZMA Decoder -+ -+This file written and distributed to public domain by Igor Pavlov. -+This file is part of LZMA SDK 4.40 (2006-05-01) -+*/ -+ -+#ifndef __LZMATYPES_H -+#define __LZMATYPES_H -+ -+#ifndef _7ZIP_BYTE_DEFINED -+#define _7ZIP_BYTE_DEFINED -+typedef unsigned char Byte; -+#endif -+ -+#ifndef _7ZIP_UINT16_DEFINED -+#define _7ZIP_UINT16_DEFINED -+typedef unsigned short UInt16; -+#endif -+ -+#ifndef _7ZIP_UINT32_DEFINED -+#define _7ZIP_UINT32_DEFINED -+#ifdef _LZMA_UINT32_IS_ULONG -+typedef unsigned long UInt32; -+#else -+typedef unsigned int UInt32; -+#endif -+#endif -+ -+/* #define _LZMA_NO_SYSTEM_SIZE_T */ -+/* You can use it, if you don't want */ -+ -+#ifndef _7ZIP_SIZET_DEFINED -+#define _7ZIP_SIZET_DEFINED -+#ifdef _LZMA_NO_SYSTEM_SIZE_T -+typedef UInt32 SizeT; -+#else -+#include -+typedef size_t SizeT; -+#endif -+#endif -+ -+#endif -diff -urN linux-2.6.23/fs/squashfs/Makefile linux-2.6.23.sqlzma-ng/fs/squashfs/Makefile ---- linux-2.6.23/fs/squashfs/Makefile 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/Makefile 2007-11-13 19:52:56.000000000 -0500 -@@ -0,0 +1,10 @@ -+# -+# Makefile for the linux squashfs routines. -+# -+ -+ -+obj-$(CONFIG_SQUASHFS) += unlzma.o sqlzma.o squashfs.o -+unlzma-y += module.o -+sqlzma-y += uncomp.o -+squashfs-y += inode.o -+squashfs-y += squashfs2_0.o -diff -urN linux-2.6.23/fs/squashfs/inode.c linux-2.6.23.sqlzma-ng/fs/squashfs/inode.c ---- linux-2.6.23/fs/squashfs/inode.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/inode.c 2007-11-13 19:14:24.000000000 -0500 -@@ -0,0 +1,2312 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * inode.c -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "squashfs.h" -+#include "sqlzma.h" -+ -+#undef KeepPreemptive -+#if defined(CONFIG_PREEMPT) && !defined(UnsquashNoPreempt) -+#define KeepPreemptive -+#endif -+ -+struct sqlzma { -+#ifdef KeepPreemptive -+ struct mutex mtx; -+#endif -+ unsigned char read_data[SQUASHFS_FILE_MAX_SIZE]; -+ struct sqlzma_un un; -+}; -+static DEFINE_PER_CPU(struct sqlzma *, sqlzma); -+ -+#define dpri(fmt, args...) /* printk("%s:%d: " fmt, __func__, __LINE__, ##args) */ -+#define dpri_un(un) dpri("un{%d, {%d %p}, {%d %p}, {%d %p}}\n", \ -+ (un)->un_lzma, (un)->un_a[0].sz, (un)->un_a[0].buf, \ -+ (un)->un_a[1].sz, (un)->un_a[1].buf, \ -+ (un)->un_a[2].sz, (un)->un_a[2].buf) -+ -+static int squashfs_cached_blks; -+ -+static void vfs_read_inode(struct inode *i); -+static struct dentry *squashfs_get_parent(struct dentry *child); -+static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode); -+static int squashfs_statfs(struct dentry *, struct kstatfs *); -+static int squashfs_symlink_readpage(struct file *file, struct page *page); -+static long long read_blocklist(struct inode *inode, int index, -+ int readahead_blks, char *block_list, -+ unsigned short **block_p, unsigned int *bsize); -+static int squashfs_readpage(struct file *file, struct page *page); -+static int squashfs_readdir(struct file *, void *, filldir_t); -+static struct dentry *squashfs_lookup(struct inode *, struct dentry *, -+ struct nameidata *); -+static int squashfs_remount(struct super_block *s, int *flags, char *data); -+static void squashfs_put_super(struct super_block *); -+static int squashfs_get_sb(struct file_system_type *,int, const char *, void *, -+ struct vfsmount *); -+static struct inode *squashfs_alloc_inode(struct super_block *sb); -+static void squashfs_destroy_inode(struct inode *inode); -+static int init_inodecache(void); -+static void destroy_inodecache(void); -+ -+static struct file_system_type squashfs_fs_type = { -+ .owner = THIS_MODULE, -+ .name = "squashfs", -+ .get_sb = squashfs_get_sb, -+ .kill_sb = kill_block_super, -+ .fs_flags = FS_REQUIRES_DEV -+}; -+ -+static const unsigned char squashfs_filetype_table[] = { -+ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK -+}; -+ -+static struct super_operations squashfs_super_ops = { -+ .alloc_inode = squashfs_alloc_inode, -+ .destroy_inode = squashfs_destroy_inode, -+ .statfs = squashfs_statfs, -+ .put_super = squashfs_put_super, -+ .remount_fs = squashfs_remount -+}; -+ -+static struct super_operations squashfs_export_super_ops = { -+ .alloc_inode = squashfs_alloc_inode, -+ .destroy_inode = squashfs_destroy_inode, -+ .statfs = squashfs_statfs, -+ .put_super = squashfs_put_super, -+ .read_inode = vfs_read_inode -+}; -+ -+static struct export_operations squashfs_export_ops = { -+ .get_parent = squashfs_get_parent -+}; -+ -+SQSH_EXTERN const struct address_space_operations squashfs_symlink_aops = { -+ .readpage = squashfs_symlink_readpage -+}; -+ -+SQSH_EXTERN const struct address_space_operations squashfs_aops = { -+ .readpage = squashfs_readpage -+}; -+ -+static const struct file_operations squashfs_dir_ops = { -+ .read = generic_read_dir, -+ .readdir = squashfs_readdir -+}; -+ -+SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = { -+ .lookup = squashfs_lookup -+}; -+ -+ -+static struct buffer_head *get_block_length(struct super_block *s, -+ int *cur_index, int *offset, int *c_byte) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ unsigned short temp; -+ struct buffer_head *bh; -+ -+ if (!(bh = sb_bread(s, *cur_index))) -+ goto out; -+ -+ if (msblk->devblksize - *offset == 1) { -+ if (msblk->swap) -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ else -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ brelse(bh); -+ if (!(bh = sb_bread(s, ++(*cur_index)))) -+ goto out; -+ if (msblk->swap) -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ bh->b_data); -+ else -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ bh->b_data); -+ *c_byte = temp; -+ *offset = 1; -+ } else { -+ if (msblk->swap) { -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset + 1)); -+ } else { -+ ((unsigned char *) &temp)[0] = *((unsigned char *) -+ (bh->b_data + *offset)); -+ ((unsigned char *) &temp)[1] = *((unsigned char *) -+ (bh->b_data + *offset + 1)); -+ } -+ *c_byte = temp; -+ *offset += 2; -+ } -+ -+ if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) { -+ if (*offset == msblk->devblksize) { -+ brelse(bh); -+ if (!(bh = sb_bread(s, ++(*cur_index)))) -+ goto out; -+ *offset = 0; -+ } -+ if (*((unsigned char *) (bh->b_data + *offset)) != -+ SQUASHFS_MARKER_BYTE) { -+ ERROR("Metadata block marker corrupt @ %x\n", -+ *cur_index); -+ brelse(bh); -+ goto out; -+ } -+ (*offset)++; -+ } -+ return bh; -+ -+out: -+ return NULL; -+} -+ -+ -+SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer, -+ long long index, unsigned int length, -+ long long *next_index, int srclength) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ struct buffer_head **bh; -+ unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1); -+ unsigned int cur_index = index >> msblk->devblksize_log2; -+ int bytes, avail_bytes, b = 0, k = 0; -+ unsigned int compressed; -+ unsigned int c_byte = length; -+ -+ bh = kmalloc(((sblk->block_size >> msblk->devblksize_log2) + 1) * -+ sizeof(struct buffer_head *), GFP_KERNEL); -+ if (bh == NULL) -+ goto read_failure; -+ -+ if (c_byte) { -+ bytes = msblk->devblksize - offset; -+ compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte); -+ c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte); -+ -+ TRACE("Block @ 0x%llx, %scompressed size %d, src size %d\n", index, -+ compressed ? "" : "un", (unsigned int) c_byte, srclength); -+ -+ if (c_byte > srclength || index < 0 || (index + c_byte) > sblk->bytes_used) -+ goto read_failure; -+ -+ bh[0] = sb_getblk(s, cur_index); -+ if (bh[0] == NULL) -+ goto block_release; -+ -+ for (b = 1; bytes < c_byte; b++) { -+ bh[b] = sb_getblk(s, ++cur_index); -+ if (bh[b] == NULL) -+ goto block_release; -+ bytes += msblk->devblksize; -+ } -+ ll_rw_block(READ, b, bh); -+ } else { -+ if (index < 0 || (index + 2) > sblk->bytes_used) -+ goto read_failure; -+ -+ bh[0] = get_block_length(s, (int *)&cur_index, (int *)&offset, -+ (int *)&c_byte); -+ if (bh[0] == NULL) -+ goto read_failure; -+ -+ bytes = msblk->devblksize - offset; -+ compressed = SQUASHFS_COMPRESSED(c_byte); -+ c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte); -+ -+ TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed -+ ? "" : "un", (unsigned int) c_byte); -+ -+ if (c_byte > srclength || (index + c_byte) > sblk->bytes_used) -+ goto read_failure; -+ -+ for (b = 1; bytes < c_byte; b++) { -+ bh[b] = sb_getblk(s, ++cur_index); -+ if (bh[b] == NULL) -+ goto block_release; -+ bytes += msblk->devblksize; -+ } -+ ll_rw_block(READ, b - 1, bh + 1); -+ } -+ -+ if (compressed) { -+ int zlib_err = Z_STREAM_END; -+ int rest, start; -+ enum {Src, Dst}; -+ struct sized_buf sbuf[2]; -+ struct sqlzma *percpu; -+ -+ /* -+ * uncompress block -+ */ -+ -+ for (k = 0; k < b; k++) { -+ wait_on_buffer(bh[k]); -+ if (!buffer_uptodate(bh[k])) -+ goto block_release; -+ } -+ -+ avail_bytes = 0; -+ for (k = 0; !avail_bytes && k < b; k++) { -+ avail_bytes = msblk->devblksize - offset; -+ if (c_byte < avail_bytes) -+ avail_bytes = c_byte; -+ if (avail_bytes) -+ break; -+ offset = 0; -+ brelse(bh[k]); -+ } -+ bytes = 0; -+ if (!avail_bytes) -+ goto block_release; // nothing to be process -+ -+ start = k; -+ /* it disables preemption */ -+ percpu = get_cpu_var(sqlzma); -+#ifdef KeepPreemptive -+ put_cpu_var(sqlzma); -+ mutex_lock(&percpu->mtx); -+#endif -+ -+ for (; k < b; k++) { -+ memcpy(percpu->read_data + bytes, bh[k]->b_data + offset, -+ avail_bytes); -+ bytes += avail_bytes; -+ offset = 0; -+ brelse(bh[k]); -+ avail_bytes = msblk->devblksize - offset; -+ rest = c_byte - bytes; -+ if (rest < avail_bytes) -+ avail_bytes = rest; -+ } -+ -+ sbuf[Src].buf = percpu->read_data; -+ sbuf[Src].sz = bytes; -+ sbuf[Dst].buf = buffer; -+ sbuf[Dst].sz = srclength; -+ dpri_un(&percpu->un); -+ dpri("src %d %p, dst %d %p\n", sbuf[Src].sz, sbuf[Src].buf, -+ sbuf[Dst].sz, sbuf[Dst].buf); -+ zlib_err = sqlzma_un(&percpu->un, sbuf + Src, sbuf + Dst); -+ bytes = percpu->un.un_reslen; -+ -+#ifdef KeepPreemptive -+ mutex_unlock(&percpu->mtx); -+#else -+ put_cpu_var(sqlzma); -+#endif -+ if (unlikely(zlib_err)) { -+ dpri("zlib_err %d\n", zlib_err); -+ goto release_mutex; -+ } -+ } else { -+ int i; -+ -+ for(i = 0; i < b; i++) { -+ wait_on_buffer(bh[i]); -+ if (!buffer_uptodate(bh[i])) -+ goto block_release; -+ } -+ -+ for (bytes = 0; k < b; k++) { -+ avail_bytes = min(c_byte - bytes, msblk->devblksize - offset); -+ -+ memcpy(buffer + bytes, bh[k]->b_data + offset, avail_bytes); -+ bytes += avail_bytes; -+ offset = 0; -+ brelse(bh[k]); -+ } -+ } -+ -+ if (next_index) -+ *next_index = index + c_byte + (length ? 0 : -+ (SQUASHFS_CHECK_DATA(msblk->sblk.flags) ? 3 : 2)); -+ -+ kfree(bh); -+ return bytes; -+ -+release_mutex: -+ //mutex_unlock(&msblk->read_data_mutex); -+ -+block_release: -+ for (; k < b; k++) -+ brelse(bh[k]); -+ -+read_failure: -+ ERROR("sb_bread failed reading block 0x%x\n", cur_index); -+ kfree(bh); -+ return 0; -+} -+ -+ -+SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, void *buffer, -+ long long block, unsigned int offset, -+ int length, long long *next_block, -+ unsigned int *next_offset) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ int n, i, bytes, return_length = length; -+ long long next_index; -+ -+ TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset); -+ -+ while (1) { -+ for (i = 0; i < squashfs_cached_blks; i++) -+ if (msblk->block_cache[i].block == block) -+ break; -+ -+ mutex_lock(&msblk->block_cache_mutex); -+ -+ if (i == squashfs_cached_blks) { -+ /* read inode header block */ -+ if (msblk->unused_cache_blks == 0) { -+ mutex_unlock(&msblk->block_cache_mutex); -+ wait_event(msblk->waitq, msblk->unused_cache_blks); -+ continue; -+ } -+ -+ i = msblk->next_cache; -+ for (n = 0; n < squashfs_cached_blks; n++) { -+ if (msblk->block_cache[i].block != SQUASHFS_USED_BLK) -+ break; -+ i = (i + 1) % squashfs_cached_blks; -+ } -+ -+ msblk->next_cache = (i + 1) % squashfs_cached_blks; -+ -+ if (msblk->block_cache[i].block == SQUASHFS_INVALID_BLK) { -+ msblk->block_cache[i].data = vmalloc(SQUASHFS_METADATA_SIZE); -+ if (msblk->block_cache[i].data == NULL) { -+ ERROR("Failed to allocate cache block\n"); -+ mutex_unlock(&msblk->block_cache_mutex); -+ goto out; -+ } -+ } -+ -+ msblk->block_cache[i].block = SQUASHFS_USED_BLK; -+ msblk->unused_cache_blks --; -+ mutex_unlock(&msblk->block_cache_mutex); -+ -+ msblk->block_cache[i].length = squashfs_read_data(s, -+ msblk->block_cache[i].data, block, 0, &next_index, -+ SQUASHFS_METADATA_SIZE); -+ -+ if (msblk->block_cache[i].length == 0) { -+ ERROR("Unable to read cache block [%llx:%x]\n", block, offset); -+ mutex_lock(&msblk->block_cache_mutex); -+ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK; -+ msblk->unused_cache_blks ++; -+ smp_mb(); -+ vfree(msblk->block_cache[i].data); -+ wake_up(&msblk->waitq); -+ mutex_unlock(&msblk->block_cache_mutex); -+ goto out; -+ } -+ -+ mutex_lock(&msblk->block_cache_mutex); -+ msblk->block_cache[i].block = block; -+ msblk->block_cache[i].next_index = next_index; -+ msblk->unused_cache_blks ++; -+ smp_mb(); -+ wake_up(&msblk->waitq); -+ TRACE("Read cache block [%llx:%x]\n", block, offset); -+ } -+ -+ if (msblk->block_cache[i].block != block) { -+ mutex_unlock(&msblk->block_cache_mutex); -+ continue; -+ } -+ -+ bytes = msblk->block_cache[i].length - offset; -+ -+ if (bytes < 1) { -+ mutex_unlock(&msblk->block_cache_mutex); -+ goto out; -+ } else if (bytes >= length) { -+ if (buffer) -+ memcpy(buffer, msblk->block_cache[i].data + offset, length); -+ if (msblk->block_cache[i].length - offset == length) { -+ *next_block = msblk->block_cache[i].next_index; -+ *next_offset = 0; -+ } else { -+ *next_block = block; -+ *next_offset = offset + length; -+ } -+ mutex_unlock(&msblk->block_cache_mutex); -+ goto finish; -+ } else { -+ if (buffer) { -+ memcpy(buffer, msblk->block_cache[i].data + offset, bytes); -+ buffer = (char *) buffer + bytes; -+ } -+ block = msblk->block_cache[i].next_index; -+ mutex_unlock(&msblk->block_cache_mutex); -+ length -= bytes; -+ offset = 0; -+ } -+ } -+ -+finish: -+ return return_length; -+out: -+ return 0; -+} -+ -+ -+static int get_fragment_location(struct super_block *s, unsigned int fragment, -+ long long *fragment_start_block, -+ unsigned int *fragment_size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start_block = -+ msblk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)]; -+ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment); -+ struct squashfs_fragment_entry fragment_entry; -+ -+ if (msblk->swap) { -+ struct squashfs_fragment_entry sfragment_entry; -+ -+ if (!squashfs_get_cached_block(s, &sfragment_entry, start_block, offset, -+ sizeof(sfragment_entry), &start_block, -+ (unsigned int *)&offset)) -+ goto out; -+ SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry); -+ } else -+ if (!squashfs_get_cached_block(s, &fragment_entry, start_block, offset, -+ sizeof(fragment_entry), &start_block, -+ (unsigned int *)&offset)) -+ goto out; -+ -+ *fragment_start_block = fragment_entry.start_block; -+ *fragment_size = fragment_entry.size; -+ -+ return 1; -+ -+out: -+ return 0; -+} -+ -+ -+SQSH_EXTERN void release_cached_fragment(struct squashfs_sb_info *msblk, -+ struct squashfs_fragment_cache *fragment) -+{ -+ mutex_lock(&msblk->fragment_mutex); -+ fragment->locked --; -+ if (fragment->locked == 0) { -+ msblk->unused_frag_blks ++; -+ smp_mb(); -+ wake_up(&msblk->fragment_wait_queue); -+ } -+ mutex_unlock(&msblk->fragment_mutex); -+} -+ -+ -+SQSH_EXTERN -+struct squashfs_fragment_cache *get_cached_fragment(struct super_block *s, -+ long long start_block, int length) -+{ -+ int i, n; -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ while (1) { -+ mutex_lock(&msblk->fragment_mutex); -+ -+ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS && -+ msblk->fragment[i].block != start_block; i++); -+ -+ if (i == SQUASHFS_CACHED_FRAGMENTS) { -+ if (msblk->unused_frag_blks == 0) { -+ mutex_unlock(&msblk->fragment_mutex); -+ wait_event(msblk->fragment_wait_queue, msblk->unused_frag_blks); -+ continue; -+ } -+ -+ i = msblk->next_fragment; -+ for (n = 0; n < SQUASHFS_CACHED_FRAGMENTS; n++) { -+ if (msblk->fragment[i].locked == 0) -+ break; -+ i = (i + 1) % SQUASHFS_CACHED_FRAGMENTS; -+ } -+ -+ msblk->next_fragment = (msblk->next_fragment + 1) % -+ SQUASHFS_CACHED_FRAGMENTS; -+ -+ if (msblk->fragment[i].data == NULL) { -+ msblk->fragment[i].data = vmalloc(sblk->block_size); -+ if (msblk->fragment[i].data == NULL) { -+ ERROR("Failed to allocate fragment cache block\n"); -+ mutex_unlock(&msblk->fragment_mutex); -+ goto out; -+ } -+ } -+ -+ msblk->unused_frag_blks --; -+ msblk->fragment[i].block = SQUASHFS_INVALID_BLK; -+ msblk->fragment[i].locked = 1; -+ mutex_unlock(&msblk->fragment_mutex); -+ -+ msblk->fragment[i].length = squashfs_read_data(s, -+ msblk->fragment[i].data, start_block, length, NULL, -+ sblk->block_size); -+ -+ if (msblk->fragment[i].length == 0) { -+ ERROR("Unable to read fragment cache block [%llx]\n", start_block); -+ msblk->fragment[i].locked = 0; -+ msblk->unused_frag_blks ++; -+ smp_mb(); -+ wake_up(&msblk->fragment_wait_queue); -+ goto out; -+ } -+ -+ mutex_lock(&msblk->fragment_mutex); -+ msblk->fragment[i].block = start_block; -+ TRACE("New fragment %d, start block %lld, locked %d\n", -+ i, msblk->fragment[i].block, msblk->fragment[i].locked); -+ mutex_unlock(&msblk->fragment_mutex); -+ break; -+ } -+ -+ if (msblk->fragment[i].locked == 0) -+ msblk->unused_frag_blks --; -+ msblk->fragment[i].locked++; -+ mutex_unlock(&msblk->fragment_mutex); -+ TRACE("Got fragment %d, start block %lld, locked %d\n", i, -+ msblk->fragment[i].block, msblk->fragment[i].locked); -+ break; -+ } -+ -+ return &msblk->fragment[i]; -+ -+out: -+ return NULL; -+} -+ -+ -+static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i, -+ struct squashfs_base_inode_header *inodeb) -+{ -+ i->i_ino = inodeb->inode_number; -+ i->i_mtime.tv_sec = inodeb->mtime; -+ i->i_atime.tv_sec = inodeb->mtime; -+ i->i_ctime.tv_sec = inodeb->mtime; -+ i->i_uid = msblk->uid[inodeb->uid]; -+ i->i_mode = inodeb->mode; -+ i->i_size = 0; -+ -+ if (inodeb->guid == SQUASHFS_GUIDS) -+ i->i_gid = i->i_uid; -+ else -+ i->i_gid = msblk->guid[inodeb->guid]; -+} -+ -+ -+static squashfs_inode_t squashfs_inode_lookup(struct super_block *s, int ino) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start = msblk->inode_lookup_table[SQUASHFS_LOOKUP_BLOCK(ino - 1)]; -+ int offset = SQUASHFS_LOOKUP_BLOCK_OFFSET(ino - 1); -+ squashfs_inode_t inode; -+ -+ TRACE("Entered squashfs_inode_lookup, inode_number = %d\n", ino); -+ -+ if (msblk->swap) { -+ squashfs_inode_t sinode; -+ -+ if (!squashfs_get_cached_block(s, &sinode, start, offset, -+ sizeof(sinode), &start, (unsigned int *)&offset)) -+ goto out; -+ SQUASHFS_SWAP_INODE_T((&inode), &sinode); -+ } else if (!squashfs_get_cached_block(s, &inode, start, offset, -+ sizeof(inode), &start, (unsigned int *)&offset)) -+ goto out; -+ -+ TRACE("squashfs_inode_lookup, inode = 0x%llx\n", inode); -+ -+ return inode; -+ -+out: -+ return SQUASHFS_INVALID_BLK; -+} -+ -+ -+static void vfs_read_inode(struct inode *i) -+{ -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ squashfs_inode_t inode = squashfs_inode_lookup(i->i_sb, i->i_ino); -+ -+ TRACE("Entered vfs_read_inode\n"); -+ -+ if(inode != SQUASHFS_INVALID_BLK) -+ (msblk->read_inode)(i, inode); -+} -+ -+ -+static struct dentry *squashfs_get_parent(struct dentry *child) -+{ -+ struct inode *i = child->d_inode; -+ struct inode *parent = iget(i->i_sb, SQUASHFS_I(i)->u.s2.parent_inode); -+ struct dentry *rv; -+ -+ TRACE("Entered squashfs_get_parent\n"); -+ -+ if(parent == NULL) { -+ rv = ERR_PTR(-EACCES); -+ goto out; -+ } -+ -+ rv = d_alloc_anon(parent); -+ if(rv == NULL) -+ rv = ERR_PTR(-ENOMEM); -+ -+out: -+ return rv; -+} -+ -+ -+SQSH_EXTERN struct inode *squashfs_iget(struct super_block *s, -+ squashfs_inode_t inode, unsigned int inode_number) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct inode *i = iget_locked(s, inode_number); -+ -+ TRACE("Entered squashfs_iget\n"); -+ -+ if(i && (i->i_state & I_NEW)) { -+ (msblk->read_inode)(i, inode); -+ unlock_new_inode(i); -+ } -+ -+ return i; -+} -+ -+ -+static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode) -+{ -+ struct super_block *s = i->i_sb; -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long block = SQUASHFS_INODE_BLK(inode) + sblk->inode_table_start; -+ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); -+ long long next_block; -+ unsigned int next_offset; -+ union squashfs_inode_header id, sid; -+ struct squashfs_base_inode_header *inodeb = &id.base, *sinodeb = &sid.base; -+ -+ TRACE("Entered squashfs_read_inode\n"); -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodeb, block, offset, -+ sizeof(*sinodeb), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_BASE_INODE_HEADER(inodeb, sinodeb, sizeof(*sinodeb)); -+ } else -+ if (!squashfs_get_cached_block(s, inodeb, block, offset, -+ sizeof(*inodeb), &next_block, &next_offset)) -+ goto failed_read; -+ -+ squashfs_new_inode(msblk, i, inodeb); -+ -+ switch(inodeb->inode_type) { -+ case SQUASHFS_FILE_TYPE: { -+ unsigned int frag_size; -+ long long frag_blk; -+ struct squashfs_reg_inode_header *inodep = &id.reg; -+ struct squashfs_reg_inode_header *sinodep = &sid.reg; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_REG_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG) -+ if(!get_fragment_location(s, inodep->fragment, &frag_blk, -+ &frag_size)) -+ goto failed_read; -+ -+ i->i_nlink = 1; -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %llx, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_LREG_TYPE: { -+ unsigned int frag_size; -+ long long frag_blk; -+ struct squashfs_lreg_inode_header *inodep = &id.lreg; -+ struct squashfs_lreg_inode_header *sinodep = &sid.lreg; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LREG_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG) -+ if (!get_fragment_location(s, inodep->fragment, &frag_blk, -+ &frag_size)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %llx, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_DIR_TYPE: { -+ struct squashfs_dir_inode_header *inodep = &id.dir; -+ struct squashfs_dir_inode_header *sinodep = &sid.dir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DIR_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops; -+ i->i_fop = &squashfs_dir_ops; -+ i->i_mode |= S_IFDIR; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = 0; -+ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; -+ -+ TRACE("Directory inode %x:%x, start_block %x, offset " -+ "%x\n", SQUASHFS_INODE_BLK(inode), -+ offset, inodep->start_block, -+ inodep->offset); -+ break; -+ } -+ case SQUASHFS_LDIR_TYPE: { -+ struct squashfs_ldir_inode_header *inodep = &id.ldir; -+ struct squashfs_ldir_inode_header *sinodep = &sid.ldir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LDIR_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops; -+ i->i_fop = &squashfs_dir_ops; -+ i->i_mode |= S_IFDIR; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; -+ SQUASHFS_I(i)->u.s2.directory_index_offset = next_offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = inodep->i_count; -+ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; -+ -+ TRACE("Long directory inode %x:%x, start_block %x, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, inodep->offset); -+ break; -+ } -+ case SQUASHFS_SYMLINK_TYPE: { -+ struct squashfs_symlink_inode_header *inodep = &id.symlink; -+ struct squashfs_symlink_inode_header *sinodep = &sid.symlink; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_SYMLINK_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_size = inodep->symlink_size; -+ i->i_op = &page_symlink_inode_operations; -+ i->i_data.a_ops = &squashfs_symlink_aops; -+ i->i_mode |= S_IFLNK; -+ SQUASHFS_I(i)->start_block = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ -+ TRACE("Symbolic link inode %x:%x, start_block %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ next_block, next_offset); -+ break; -+ } -+ case SQUASHFS_BLKDEV_TYPE: -+ case SQUASHFS_CHRDEV_TYPE: { -+ struct squashfs_dev_inode_header *inodep = &id.dev; -+ struct squashfs_dev_inode_header *sinodep = &sid.dev; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DEV_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_CHRDEV_TYPE) ? -+ S_IFCHR : S_IFBLK; -+ init_special_inode(i, i->i_mode, old_decode_dev(inodep->rdev)); -+ -+ TRACE("Device inode %x:%x, rdev %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, inodep->rdev); -+ break; -+ } -+ case SQUASHFS_FIFO_TYPE: -+ case SQUASHFS_SOCKET_TYPE: { -+ struct squashfs_ipc_inode_header *inodep = &id.ipc; -+ struct squashfs_ipc_inode_header *sinodep = &sid.ipc; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, sinodep, block, offset, -+ sizeof(*sinodep), &next_block, &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_IPC_INODE_HEADER(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, inodep, block, offset, -+ sizeof(*inodep), &next_block, &next_offset)) -+ goto failed_read; -+ -+ i->i_nlink = inodep->nlink; -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) -+ ? S_IFIFO : S_IFSOCK; -+ init_special_inode(i, i->i_mode, 0); -+ break; -+ } -+ default: -+ ERROR("Unknown inode type %d in squashfs_iget!\n", -+ inodeb->inode_type); -+ goto failed_read1; -+ } -+ -+ return 1; -+ -+failed_read: -+ ERROR("Unable to read inode [%llx:%x]\n", block, offset); -+ -+failed_read1: -+ make_bad_inode(i); -+ return 0; -+} -+ -+ -+static int read_inode_lookup_table(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int length = SQUASHFS_LOOKUP_BLOCK_BYTES(sblk->inodes); -+ -+ TRACE("In read_inode_lookup_table, length %d\n", length); -+ -+ /* Allocate inode lookup table */ -+ msblk->inode_lookup_table = kmalloc(length, GFP_KERNEL); -+ if (msblk->inode_lookup_table == NULL) { -+ ERROR("Failed to allocate inode lookup table\n"); -+ return 0; -+ } -+ -+ if (!squashfs_read_data(s, (char *) msblk->inode_lookup_table, -+ sblk->lookup_table_start, length | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) { -+ ERROR("unable to read inode lookup table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ long long block; -+ -+ for (i = 0; i < SQUASHFS_LOOKUP_BLOCKS(sblk->inodes); i++) { -+ /* XXX */ -+ SQUASHFS_SWAP_LOOKUP_BLOCKS((&block), -+ &msblk->inode_lookup_table[i], 1); -+ msblk->inode_lookup_table[i] = block; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int read_fragment_index_table(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int length = SQUASHFS_FRAGMENT_INDEX_BYTES(sblk->fragments); -+ -+ if(length == 0) -+ return 1; -+ -+ /* Allocate fragment index table */ -+ msblk->fragment_index = kmalloc(length, GFP_KERNEL); -+ if (msblk->fragment_index == NULL) { -+ ERROR("Failed to allocate fragment index table\n"); -+ return 0; -+ } -+ -+ if (!squashfs_read_data(s, (char *) msblk->fragment_index, -+ sblk->fragment_table_start, length | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) { -+ ERROR("unable to read fragment index table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ long long fragment; -+ -+ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sblk->fragments); i++) { -+ /* XXX */ -+ SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment), -+ &msblk->fragment_index[i], 1); -+ msblk->fragment_index[i] = fragment; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int readahead_metadata(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ int i; -+ -+ squashfs_cached_blks = SQUASHFS_CACHED_BLKS; -+ -+ /* Init inode_table block pointer array */ -+ msblk->block_cache = kmalloc(sizeof(struct squashfs_cache) * -+ squashfs_cached_blks, GFP_KERNEL); -+ if (msblk->block_cache == NULL) { -+ ERROR("Failed to allocate block cache\n"); -+ goto failed; -+ } -+ -+ for (i = 0; i < squashfs_cached_blks; i++) -+ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK; -+ -+ msblk->next_cache = 0; -+ msblk->unused_cache_blks = squashfs_cached_blks; -+ -+ return 1; -+ -+failed: -+ return 0; -+} -+ -+ -+static int supported_squashfs_filesystem(struct squashfs_sb_info *msblk, int silent) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ msblk->read_inode = squashfs_read_inode; -+ msblk->read_blocklist = read_blocklist; -+ msblk->read_fragment_index_table = read_fragment_index_table; -+ -+ if (sblk->s_major == 1) { -+ if (!squashfs_1_0_supported(msblk)) { -+ SERROR("Major/Minor mismatch, Squashfs 1.0 filesystems " -+ "are unsupported\n"); -+ SERROR("Please recompile with Squashfs 1.0 support enabled\n"); -+ return 0; -+ } -+ } else if (sblk->s_major == 2) { -+ if (!squashfs_2_0_supported(msblk)) { -+ SERROR("Major/Minor mismatch, Squashfs 2.0 filesystems " -+ "are unsupported\n"); -+ SERROR("Please recompile with Squashfs 2.0 support enabled\n"); -+ return 0; -+ } -+ } else if(sblk->s_major != SQUASHFS_MAJOR || sblk->s_minor > -+ SQUASHFS_MINOR) { -+ SERROR("Major/Minor mismatch, trying to mount newer %d.%d " -+ "filesystem\n", sblk->s_major, sblk->s_minor); -+ SERROR("Please update your kernel\n"); -+ return 0; -+ } -+ -+ return 1; -+} -+ -+ -+static int squashfs_fill_super(struct super_block *s, void *data, int silent) -+{ -+ struct squashfs_sb_info *msblk; -+ struct squashfs_super_block *sblk; -+ int i, err; -+ char b[BDEVNAME_SIZE]; -+ struct inode *root; -+ -+ TRACE("Entered squashfs_fill_superblock\n"); -+ -+ err = -ENOMEM; -+ s->s_fs_info = kzalloc(sizeof(struct squashfs_sb_info), GFP_KERNEL); -+ if (s->s_fs_info == NULL) { -+ ERROR("Failed to allocate superblock\n"); -+ goto failure; -+ } -+ msblk = s->s_fs_info; -+ -+ sblk = &msblk->sblk; -+ -+ msblk->devblksize = sb_min_blocksize(s, BLOCK_SIZE); -+ msblk->devblksize_log2 = ffz(~msblk->devblksize); -+ -+ //mutex_init(&msblk->read_data_mutex); -+ mutex_init(&msblk->read_page_mutex); -+ mutex_init(&msblk->block_cache_mutex); -+ mutex_init(&msblk->fragment_mutex); -+ mutex_init(&msblk->meta_index_mutex); -+ -+ init_waitqueue_head(&msblk->waitq); -+ init_waitqueue_head(&msblk->fragment_wait_queue); -+ -+ /* sblk->bytes_used is checked in squashfs_read_data to ensure reads are not -+ * beyond filesystem end. As we're using squashfs_read_data to read sblk here, -+ * first set sblk->bytes_used to a useful value */ -+ err = -EINVAL; -+ sblk->bytes_used = sizeof(struct squashfs_super_block); -+ if (!squashfs_read_data(s, (char *) sblk, SQUASHFS_START, -+ sizeof(struct squashfs_super_block) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, sizeof(struct squashfs_super_block))) { -+ SERROR("unable to read superblock\n"); -+ goto failed_mount; -+ } -+ -+ /* Check it is a SQUASHFS superblock */ -+ s->s_magic = sblk->s_magic; -+ msblk->swap = 0; -+ dpri("magic 0x%x\n", sblk->s_magic); -+ switch (sblk->s_magic) { -+ struct squashfs_super_block ssblk; -+ -+ case SQUASHFS_MAGIC_SWAP: -+ /*FALLTHROUGH*/ -+ case SQUASHFS_MAGIC_LZMA_SWAP: -+ WARNING("Mounting a different endian SQUASHFS " -+ "filesystem on %s\n", bdevname(s->s_bdev, b)); -+ -+ SQUASHFS_SWAP_SUPER_BLOCK(&ssblk, sblk); -+ memcpy(sblk, &ssblk, sizeof(struct squashfs_super_block)); -+ msblk->swap = 1; -+ /*FALLTHROUGH*/ -+ case SQUASHFS_MAGIC: -+ case SQUASHFS_MAGIC_LZMA: -+ break; -+ default: -+ SERROR("Can't find a SQUASHFS superblock on %s\n", -+ bdevname(s->s_bdev, b)); -+ goto failed_mount; -+ } -+ -+ { -+ struct sqlzma *p; -+ dpri("block_size %d\n", sblk->block_size); -+ BUG_ON(sblk->block_size > sizeof(p->read_data)); -+ } -+ -+ /* Check the MAJOR & MINOR versions */ -+ if(!supported_squashfs_filesystem(msblk, silent)) -+ goto failed_mount; -+ -+ /* Check the filesystem does not extend beyond the end of the -+ block device */ -+ if(sblk->bytes_used < 0 || sblk->bytes_used > i_size_read(s->s_bdev->bd_inode)) -+ goto failed_mount; -+ -+ /* Check the root inode for sanity */ -+ if (SQUASHFS_INODE_OFFSET(sblk->root_inode) > SQUASHFS_METADATA_SIZE) -+ goto failed_mount; -+ -+ TRACE("Found valid superblock on %s\n", bdevname(s->s_bdev, b)); -+ TRACE("Inodes are %scompressed\n", SQUASHFS_UNCOMPRESSED_INODES(sblk->flags) -+ ? "un" : ""); -+ TRACE("Data is %scompressed\n", SQUASHFS_UNCOMPRESSED_DATA(sblk->flags) -+ ? "un" : ""); -+ TRACE("Check data is %spresent in the filesystem\n", -+ SQUASHFS_CHECK_DATA(sblk->flags) ? "" : "not "); -+ TRACE("Filesystem size %lld bytes\n", sblk->bytes_used); -+ TRACE("Block size %d\n", sblk->block_size); -+ TRACE("Number of inodes %d\n", sblk->inodes); -+ if (sblk->s_major > 1) -+ TRACE("Number of fragments %d\n", sblk->fragments); -+ TRACE("Number of uids %d\n", sblk->no_uids); -+ TRACE("Number of gids %d\n", sblk->no_guids); -+ TRACE("sblk->inode_table_start %llx\n", sblk->inode_table_start); -+ TRACE("sblk->directory_table_start %llx\n", sblk->directory_table_start); -+ if (sblk->s_major > 1) -+ TRACE("sblk->fragment_table_start %llx\n", sblk->fragment_table_start); -+ TRACE("sblk->uid_start %llx\n", sblk->uid_start); -+ -+ s->s_maxbytes = MAX_LFS_FILESIZE; -+ s->s_flags |= MS_RDONLY; -+ s->s_op = &squashfs_super_ops; -+ -+ if (readahead_metadata(s) == 0) -+ goto failed_mount; -+ -+ /* Allocate read_page block */ -+ err = -ENOMEM; -+ msblk->read_page = vmalloc(sblk->block_size); -+ if (msblk->read_page == NULL) { -+ ERROR("Failed to allocate read_page block\n"); -+ goto failed_mount; -+ } -+ -+ /* Allocate uid and gid tables */ -+ msblk->uid = kmalloc((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int), GFP_KERNEL); -+ if (msblk->uid == NULL) { -+ ERROR("Failed to allocate uid/gid table\n"); -+ goto failed_mount; -+ } -+ msblk->guid = msblk->uid + sblk->no_uids; -+ -+ dpri("swap %d\n", msblk->swap); -+ err = -EINVAL; -+ if (msblk->swap) { -+ unsigned int *suid; -+ -+ err = -ENOMEM; -+ suid = kmalloc(sizeof(*suid) * (sblk->no_uids + sblk->no_guids), -+ GFP_KERNEL); -+ if (unlikely(!suid)) -+ goto failed_mount; -+ -+ err = -EINVAL; -+ if (!squashfs_read_data(s, (char *)suid, sblk->uid_start, -+ ((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int)) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) { -+ ERROR("unable to read uid/gid table\n"); -+ kfree(suid); -+ goto failed_mount; -+ } -+ -+ SQUASHFS_SWAP_DATA(msblk->uid, suid, (sblk->no_uids + -+ sblk->no_guids), (sizeof(unsigned int) * 8)); -+ kfree(suid); -+ } else -+ if (!squashfs_read_data(s, (char *) msblk->uid, sblk->uid_start, -+ ((sblk->no_uids + sblk->no_guids) * -+ sizeof(unsigned int)) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) { -+ ERROR("unable to read uid/gid table\n"); -+ goto failed_mount; -+ } -+ -+ -+ if (sblk->s_major == 1 && squashfs_1_0_supported(msblk)) -+ goto allocate_root; -+ -+ err = -ENOMEM; -+ msblk->fragment = kzalloc(sizeof(struct squashfs_fragment_cache) * -+ SQUASHFS_CACHED_FRAGMENTS, GFP_KERNEL); -+ if (msblk->fragment == NULL) { -+ ERROR("Failed to allocate fragment block cache\n"); -+ goto failed_mount; -+ } -+ -+ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) { -+ msblk->fragment[i].block = SQUASHFS_INVALID_BLK; -+ } -+ -+ msblk->next_fragment = 0; -+ msblk->unused_frag_blks = SQUASHFS_CACHED_FRAGMENTS; -+ -+ /* Allocate and read fragment index table */ -+ if (msblk->read_fragment_index_table(s) == 0) -+ goto failed_mount; -+ -+ if(sblk->s_major < 3 || sblk->lookup_table_start == SQUASHFS_INVALID_BLK) -+ goto allocate_root; -+ -+ /* Allocate and read inode lookup table */ -+ if (read_inode_lookup_table(s) == 0) -+ goto failed_mount; -+ -+ s->s_op = &squashfs_export_super_ops; -+ s->s_export_op = &squashfs_export_ops; -+ -+allocate_root: -+ dpri("alloate_root\n"); -+ root = new_inode(s); -+ if ((msblk->read_inode)(root, sblk->root_inode) == 0) { -+ iput(root); -+ goto failed_mount; -+ } -+ insert_inode_hash(root); -+ -+ s->s_root = d_alloc_root(root); -+ if (s->s_root == NULL) { -+ ERROR("Root inode create failed\n"); -+ iput(root); -+ goto failed_mount; -+ } -+ -+ TRACE("Leaving squashfs_fill_super\n"); -+ return 0; -+ -+failed_mount: -+ kfree(msblk->inode_lookup_table); -+ kfree(msblk->fragment_index); -+ kfree(msblk->fragment); -+ kfree(msblk->uid); -+ vfree(msblk->read_page); -+ kfree(msblk->block_cache); -+ kfree(msblk->fragment_index_2); -+ kfree(s->s_fs_info); -+ s->s_fs_info = NULL; -+ failure: -+ return err; -+} -+ -+ -+static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf) -+{ -+ struct squashfs_sb_info *msblk = dentry->d_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ TRACE("Entered squashfs_statfs\n"); -+ -+ buf->f_type = sblk->s_magic; -+ buf->f_bsize = sblk->block_size; -+ buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1; -+ buf->f_bfree = buf->f_bavail = 0; -+ buf->f_files = sblk->inodes; -+ buf->f_ffree = 0; -+ buf->f_namelen = SQUASHFS_NAME_LEN; -+ -+ return 0; -+} -+ -+ -+static int squashfs_symlink_readpage(struct file *file, struct page *page) -+{ -+ struct inode *inode = page->mapping->host; -+ int index = page->index << PAGE_CACHE_SHIFT, length, bytes, avail_bytes; -+ long long block = SQUASHFS_I(inode)->start_block; -+ int offset = SQUASHFS_I(inode)->offset; -+ void *pageaddr = kmap(page); -+ -+ TRACE("Entered squashfs_symlink_readpage, page index %ld, start block " -+ "%llx, offset %x\n", page->index, -+ SQUASHFS_I(inode)->start_block, -+ SQUASHFS_I(inode)->offset); -+ -+ for (length = 0; length < index; length += bytes) { -+ bytes = squashfs_get_cached_block(inode->i_sb, NULL, block, -+ offset, PAGE_CACHE_SIZE, &block, -+ (unsigned int *)&offset); -+ if (bytes == 0) { -+ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); -+ goto skip_read; -+ } -+ } -+ -+ if (length != index) { -+ ERROR("(squashfs_symlink_readpage) length != index\n"); -+ bytes = 0; -+ goto skip_read; -+ } -+ -+ avail_bytes = min_t(int, i_size_read(inode) - length, PAGE_CACHE_SIZE); -+ -+ bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block, offset, -+ avail_bytes, &block, (unsigned int *)&offset); -+ if (bytes == 0) -+ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); -+ -+skip_read: -+ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); -+ kunmap(page); -+ flush_dcache_page(page); -+ SetPageUptodate(page); -+ unlock_page(page); -+ -+ return 0; -+} -+ -+ -+static struct meta_index *locate_meta_index(struct inode *inode, int index, int offset) -+{ -+ struct meta_index *meta = NULL; -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ int i; -+ -+ mutex_lock(&msblk->meta_index_mutex); -+ -+ TRACE("locate_meta_index: index %d, offset %d\n", index, offset); -+ -+ if (msblk->meta_index == NULL) -+ goto not_allocated; -+ -+ for (i = 0; i < SQUASHFS_META_NUMBER; i ++) { -+ if (msblk->meta_index[i].inode_number == inode->i_ino && -+ msblk->meta_index[i].offset >= offset && -+ msblk->meta_index[i].offset <= index && -+ msblk->meta_index[i].locked == 0) { -+ TRACE("locate_meta_index: entry %d, offset %d\n", i, -+ msblk->meta_index[i].offset); -+ meta = &msblk->meta_index[i]; -+ offset = meta->offset; -+ } -+ } -+ -+ if (meta) -+ meta->locked = 1; -+ -+not_allocated: -+ mutex_unlock(&msblk->meta_index_mutex); -+ -+ return meta; -+} -+ -+ -+static struct meta_index *empty_meta_index(struct inode *inode, int offset, int skip) -+{ -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct meta_index *meta = NULL; -+ int i; -+ -+ mutex_lock(&msblk->meta_index_mutex); -+ -+ TRACE("empty_meta_index: offset %d, skip %d\n", offset, skip); -+ -+ if (msblk->meta_index == NULL) { -+ msblk->meta_index = kmalloc(sizeof(struct meta_index) * -+ SQUASHFS_META_NUMBER, GFP_KERNEL); -+ if (msblk->meta_index == NULL) { -+ ERROR("Failed to allocate meta_index\n"); -+ goto failed; -+ } -+ for (i = 0; i < SQUASHFS_META_NUMBER; i++) { -+ msblk->meta_index[i].inode_number = 0; -+ msblk->meta_index[i].locked = 0; -+ } -+ msblk->next_meta_index = 0; -+ } -+ -+ for (i = SQUASHFS_META_NUMBER; i && -+ msblk->meta_index[msblk->next_meta_index].locked; i --) -+ msblk->next_meta_index = (msblk->next_meta_index + 1) % -+ SQUASHFS_META_NUMBER; -+ -+ if (i == 0) { -+ TRACE("empty_meta_index: failed!\n"); -+ goto failed; -+ } -+ -+ TRACE("empty_meta_index: returned meta entry %d, %p\n", -+ msblk->next_meta_index, -+ &msblk->meta_index[msblk->next_meta_index]); -+ -+ meta = &msblk->meta_index[msblk->next_meta_index]; -+ msblk->next_meta_index = (msblk->next_meta_index + 1) % -+ SQUASHFS_META_NUMBER; -+ -+ meta->inode_number = inode->i_ino; -+ meta->offset = offset; -+ meta->skip = skip; -+ meta->entries = 0; -+ meta->locked = 1; -+ -+failed: -+ mutex_unlock(&msblk->meta_index_mutex); -+ return meta; -+} -+ -+ -+static void release_meta_index(struct inode *inode, struct meta_index *meta) -+{ -+ meta->locked = 0; -+ smp_mb(); -+} -+ -+ -+static int read_block_index(struct super_block *s, int blocks, char *block_list, -+ long long *start_block, int *offset) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ unsigned int *block_listp; -+ int block = 0; -+ -+ if (msblk->swap) { -+ char *sblock_list; -+ -+ sblock_list = kmalloc(blocks << 2, GFP_KERNEL); -+ if (unlikely(!sblock_list)) -+ goto failure; -+ -+ if (!squashfs_get_cached_block(s, sblock_list, *start_block, -+ *offset, blocks << 2, start_block, (unsigned int *)offset)) { -+ ERROR("Fail reading block list [%llx:%x]\n", *start_block, *offset); -+ kfree(sblock_list); -+ goto failure; -+ } -+ SQUASHFS_SWAP_INTS(((unsigned int *)block_list), -+ ((unsigned int *)sblock_list), blocks); -+ kfree(sblock_list); -+ } else { -+ if (!squashfs_get_cached_block(s, block_list, *start_block, -+ *offset, blocks << 2, start_block, (unsigned int *)offset)) { -+ ERROR("Fail reading block list [%llx:%x]\n", *start_block, *offset); -+ goto failure; -+ } -+ } -+ -+ for (block_listp = (unsigned int *) block_list; blocks; -+ block_listp++, blocks --) -+ block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp); -+ -+ return block; -+ -+failure: -+ return -1; -+} -+ -+ -+#define SIZE 256 -+ -+static inline int calculate_skip(int blocks) { -+ int skip = (blocks - 1) / ((SQUASHFS_SLOTS * SQUASHFS_META_ENTRIES + 1) * SQUASHFS_META_INDEXES); -+ return skip >= 7 ? 7 : skip + 1; -+} -+ -+ -+static int get_meta_index(struct inode *inode, int index, -+ long long *index_block, int *index_offset, -+ long long *data_block, char *block_list) -+{ -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int skip = calculate_skip(i_size_read(inode) >> sblk->block_log); -+ int offset = 0; -+ struct meta_index *meta; -+ struct meta_entry *meta_entry; -+ long long cur_index_block = SQUASHFS_I(inode)->u.s1.block_list_start; -+ int cur_offset = SQUASHFS_I(inode)->offset; -+ long long cur_data_block = SQUASHFS_I(inode)->start_block; -+ int i; -+ -+ index /= SQUASHFS_META_INDEXES * skip; -+ -+ while (offset < index) { -+ meta = locate_meta_index(inode, index, offset + 1); -+ -+ if (meta == NULL) { -+ meta = empty_meta_index(inode, offset + 1, skip); -+ if (meta == NULL) -+ goto all_done; -+ } else { -+ if(meta->entries == 0) -+ goto failed; -+ /* XXX */ -+ offset = index < meta->offset + meta->entries ? index : -+ meta->offset + meta->entries - 1; -+ /* XXX */ -+ meta_entry = &meta->meta_entry[offset - meta->offset]; -+ cur_index_block = meta_entry->index_block + sblk->inode_table_start; -+ cur_offset = meta_entry->offset; -+ cur_data_block = meta_entry->data_block; -+ TRACE("get_meta_index: offset %d, meta->offset %d, " -+ "meta->entries %d\n", offset, meta->offset, meta->entries); -+ TRACE("get_meta_index: index_block 0x%llx, offset 0x%x" -+ " data_block 0x%llx\n", cur_index_block, -+ cur_offset, cur_data_block); -+ } -+ -+ for (i = meta->offset + meta->entries; i <= index && -+ i < meta->offset + SQUASHFS_META_ENTRIES; i++) { -+ int blocks = skip * SQUASHFS_META_INDEXES; -+ -+ while (blocks) { -+ int block = blocks > (SIZE >> 2) ? (SIZE >> 2) : blocks; -+ int res = read_block_index(inode->i_sb, block, block_list, -+ &cur_index_block, &cur_offset); -+ -+ if (res == -1) -+ goto failed; -+ -+ cur_data_block += res; -+ blocks -= block; -+ } -+ -+ meta_entry = &meta->meta_entry[i - meta->offset]; -+ meta_entry->index_block = cur_index_block - sblk->inode_table_start; -+ meta_entry->offset = cur_offset; -+ meta_entry->data_block = cur_data_block; -+ meta->entries ++; -+ offset ++; -+ } -+ -+ TRACE("get_meta_index: meta->offset %d, meta->entries %d\n", -+ meta->offset, meta->entries); -+ -+ release_meta_index(inode, meta); -+ } -+ -+all_done: -+ *index_block = cur_index_block; -+ *index_offset = cur_offset; -+ *data_block = cur_data_block; -+ -+ return offset * SQUASHFS_META_INDEXES * skip; -+ -+failed: -+ release_meta_index(inode, meta); -+ return -1; -+} -+ -+ -+static long long read_blocklist(struct inode *inode, int index, -+ int readahead_blks, char *block_list, -+ unsigned short **block_p, unsigned int *bsize) -+{ -+ long long block_ptr; -+ int offset; -+ long long block; -+ int res = get_meta_index(inode, index, &block_ptr, &offset, &block, -+ block_list); -+ -+ TRACE("read_blocklist: res %d, index %d, block_ptr 0x%llx, offset" -+ " 0x%x, block 0x%llx\n", res, index, block_ptr, offset, block); -+ -+ if(res == -1) -+ goto failure; -+ -+ index -= res; -+ -+ while (index) { -+ int blocks = index > (SIZE >> 2) ? (SIZE >> 2) : index; -+ int res = read_block_index(inode->i_sb, blocks, block_list, -+ &block_ptr, &offset); -+ if (res == -1) -+ goto failure; -+ block += res; -+ index -= blocks; -+ } -+ -+ if (read_block_index(inode->i_sb, 1, block_list, &block_ptr, &offset) == -1) -+ goto failure; -+ *bsize = *((unsigned int *) block_list); -+ -+ return block; -+ -+failure: -+ return 0; -+} -+ -+ -+static int squashfs_readpage(struct file *file, struct page *page) -+{ -+ struct inode *inode = page->mapping->host; -+ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned char *block_list = NULL; -+ long long block; -+ unsigned int bsize, i; -+ int bytes; -+ int index = page->index >> (sblk->block_log - PAGE_CACHE_SHIFT); -+ void *pageaddr; -+ struct squashfs_fragment_cache *fragment = NULL; -+ char *data_ptr = msblk->read_page; -+ -+ int mask = (1 << (sblk->block_log - PAGE_CACHE_SHIFT)) - 1; -+ int start_index = page->index & ~mask; -+ int end_index = start_index | mask; -+ int file_end = i_size_read(inode) >> sblk->block_log; -+ int sparse = 0; -+ -+ TRACE("Entered squashfs_readpage, page index %lx, start block %llx\n", -+ page->index, SQUASHFS_I(inode)->start_block); -+ -+ if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> -+ PAGE_CACHE_SHIFT)) -+ goto out; -+ -+ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK -+ || index < file_end) { -+ block_list = kmalloc(SIZE, GFP_KERNEL); -+ if (block_list == NULL) { -+ ERROR("Failed to allocate block_list\n"); -+ goto error_out; -+ } -+ -+ block = (msblk->read_blocklist)(inode, index, 1, block_list, NULL, &bsize); -+ if (block == 0) -+ goto error_out; -+ -+ if (bsize == 0) { /* hole */ -+ bytes = index == file_end ? -+ (i_size_read(inode) & (sblk->block_size - 1)) : sblk->block_size; -+ sparse = 1; -+ } else { -+ mutex_lock(&msblk->read_page_mutex); -+ -+ bytes = squashfs_read_data(inode->i_sb, msblk->read_page, block, -+ bsize, NULL, sblk->block_size); -+ -+ if (bytes == 0) { -+ ERROR("Unable to read page, block %llx, size %x\n", block, bsize); -+ mutex_unlock(&msblk->read_page_mutex); -+ goto error_out; -+ } -+ } -+ } else { -+ fragment = get_cached_fragment(inode->i_sb, -+ SQUASHFS_I(inode)-> u.s1.fragment_start_block, -+ SQUASHFS_I(inode)->u.s1.fragment_size); -+ -+ if (fragment == NULL) { -+ ERROR("Unable to read page, block %llx, size %x\n", -+ SQUASHFS_I(inode)->u.s1.fragment_start_block, -+ (int) SQUASHFS_I(inode)->u.s1.fragment_size); -+ goto error_out; -+ } -+ bytes = i_size_read(inode) & (sblk->block_size - 1); -+ data_ptr = fragment->data + SQUASHFS_I(inode)->u.s1.fragment_offset; -+ } -+ -+ for (i = start_index; i <= end_index && bytes > 0; i++, -+ bytes -= PAGE_CACHE_SIZE, data_ptr += PAGE_CACHE_SIZE) { -+ struct page *push_page; -+ int avail = sparse ? 0 : min_t(unsigned int, bytes, PAGE_CACHE_SIZE); -+ -+ TRACE("bytes %d, i %d, available_bytes %d\n", bytes, i, avail); -+ -+ push_page = (i == page->index) ? page : -+ grab_cache_page_nowait(page->mapping, i); -+ -+ if (!push_page) -+ continue; -+ -+ if (PageUptodate(push_page)) -+ goto skip_page; -+ -+ pageaddr = kmap_atomic(push_page, KM_USER0); -+ memcpy(pageaddr, data_ptr, avail); -+ memset(pageaddr + avail, 0, PAGE_CACHE_SIZE - avail); -+ kunmap_atomic(pageaddr, KM_USER0); -+ flush_dcache_page(push_page); -+ SetPageUptodate(push_page); -+skip_page: -+ unlock_page(push_page); -+ if(i != page->index) -+ page_cache_release(push_page); -+ } -+ -+ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK -+ || index < file_end) { -+ if (!sparse) -+ mutex_unlock(&msblk->read_page_mutex); -+ kfree(block_list); -+ } else -+ release_cached_fragment(msblk, fragment); -+ -+ return 0; -+ -+error_out: -+ SetPageError(page); -+out: -+ pageaddr = kmap_atomic(page, KM_USER0); -+ memset(pageaddr, 0, PAGE_CACHE_SIZE); -+ kunmap_atomic(pageaddr, KM_USER0); -+ flush_dcache_page(page); -+ if (!PageError(page)) -+ SetPageUptodate(page); -+ unlock_page(page); -+ -+ kfree(block_list); -+ return 0; -+} -+ -+ -+static int get_dir_index_using_offset(struct super_block *s, -+ long long *next_block, unsigned int *next_offset, -+ long long index_start, unsigned int index_offset, int i_count, -+ long long f_pos) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index index; -+ -+ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", -+ i_count, (unsigned int) f_pos); -+ -+ f_pos =- 3; -+ if (f_pos == 0) -+ goto finish; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index sindex; -+ squashfs_get_cached_block(s, &sindex, index_start, index_offset, -+ sizeof(sindex), &index_start, &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX(&index, &sindex); -+ } else -+ squashfs_get_cached_block(s, &index, index_start, index_offset, -+ sizeof(index), &index_start, &index_offset); -+ -+ if (index.index > f_pos) -+ break; -+ -+ squashfs_get_cached_block(s, NULL, index_start, index_offset, -+ index.size + 1, &index_start, &index_offset); -+ -+ length = index.index; -+ *next_block = index.start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ -+finish: -+ return length + 3; -+} -+ -+ -+static int get_dir_index_using_name(struct super_block *s, -+ long long *next_block, unsigned int *next_offset, -+ long long index_start, unsigned int index_offset, int i_count, -+ const char *name, int size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index *index; -+ char *str; -+ -+ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); -+ -+ str = kmalloc(sizeof(struct squashfs_dir_index) + -+ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL); -+ if (str == NULL) { -+ ERROR("Failed to allocate squashfs_dir_index\n"); -+ goto failure; -+ } -+ -+ index = (struct squashfs_dir_index *) (str + SQUASHFS_NAME_LEN + 1); -+ strncpy(str, name, size); -+ str[size] = '\0'; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index sindex; -+ squashfs_get_cached_block(s, &sindex, index_start, index_offset, -+ sizeof(sindex), &index_start, &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX(index, &sindex); -+ } else -+ squashfs_get_cached_block(s, index, index_start, index_offset, -+ sizeof(struct squashfs_dir_index), &index_start, &index_offset); -+ -+ squashfs_get_cached_block(s, index->name, index_start, index_offset, -+ index->size + 1, &index_start, &index_offset); -+ -+ index->name[index->size + 1] = '\0'; -+ -+ if (strcmp(index->name, str) > 0) -+ break; -+ -+ length = index->index; -+ *next_block = index->start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ kfree(str); -+ -+failure: -+ return length + 3; -+} -+ -+ -+static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) -+{ -+ struct inode *i = file->f_dentry->d_inode; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count; -+ struct squashfs_dir_header dirh; -+ struct squashfs_dir_entry *dire; -+ -+ TRACE("Entered squashfs_readdir [%llx:%x]\n", next_block, next_offset); -+ -+ dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL); -+ if (dire == NULL) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto finish; -+ } -+ -+ while(file->f_pos < 3) { -+ char *name; -+ int size, i_ino; -+ -+ if(file->f_pos == 0) { -+ name = "."; -+ size = 1; -+ i_ino = i->i_ino; -+ } else { -+ name = ".."; -+ size = 2; -+ i_ino = SQUASHFS_I(i)->u.s2.parent_inode; -+ } -+ TRACE("Calling filldir(%x, %s, %d, %d, %d, %d)\n", -+ (unsigned int) dirent, name, size, (int) -+ file->f_pos, i_ino, squashfs_filetype_table[1]); -+ -+ if (filldir(dirent, name, size, file->f_pos, i_ino, -+ squashfs_filetype_table[1]) < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos += size; -+ } -+ -+ length = get_dir_index_using_offset(i->i_sb, &next_block, -+ (unsigned int *)&next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, file->f_pos); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header sdirh; -+ -+ if (!squashfs_get_cached_block(i->i_sb, &sdirh, next_block, -+ next_offset, sizeof(sdirh), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, &dirh, next_block, -+ next_offset, sizeof(dirh), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry sdire; -+ if (!squashfs_get_cached_block(i->i_sb, &sdire, next_block, -+ next_offset, sizeof(sdire), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, dire, next_block, -+ next_offset, sizeof(*dire), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, next_block, -+ next_offset, dire->size + 1, &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (file->f_pos >= length) -+ continue; -+ -+ dire->name[dire->size + 1] = '\0'; -+ -+ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d, %d)\n", -+ (unsigned int) dirent, dire->name, dire->size + 1, -+ (int) file->f_pos, dirh.start_block, dire->offset, -+ dirh.inode_number + dire->inode_number, -+ squashfs_filetype_table[dire->type]); -+ -+ if (filldir(dirent, dire->name, dire->size + 1, file->f_pos, -+ dirh.inode_number + dire->inode_number, -+ squashfs_filetype_table[dire->type]) < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos = length; -+ } -+ } -+ -+finish: -+ kfree(dire); -+ return 0; -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ kfree(dire); -+ return 0; -+} -+ -+ -+static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry, -+ struct nameidata *nd) -+{ -+ const unsigned char *name = dentry->d_name.name; -+ int len = dentry->d_name.len; -+ struct inode *inode = NULL; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count; -+ struct squashfs_dir_header dirh; -+ struct squashfs_dir_entry *dire; -+ -+ TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset); -+ -+ dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL); -+ if (dire == NULL) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto exit_lookup; -+ } -+ -+ if (len > SQUASHFS_NAME_LEN) -+ goto exit_lookup; -+ -+ length = get_dir_index_using_name(i->i_sb, &next_block, (unsigned int *)&next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, name, len); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header sdirh; -+ if (!squashfs_get_cached_block(i->i_sb, &sdirh, next_block, -+ next_offset, sizeof(sdirh), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, &dirh, next_block, -+ next_offset, sizeof(dirh), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry sdire; -+ if (!squashfs_get_cached_block(i->i_sb, &sdire, next_block, -+ next_offset, sizeof(sdire), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, dire, next_block, -+ next_offset, sizeof(*dire), &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, next_block, -+ next_offset, dire->size + 1, &next_block, -+ (unsigned int *)&next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (name[0] < dire->name[0]) -+ goto exit_lookup; -+ -+ if ((len == dire->size + 1) && !strncmp(name, dire->name, len)) { -+ squashfs_inode_t ino = SQUASHFS_MKINODE(dirh.start_block, -+ dire->offset); -+ -+ TRACE("calling squashfs_iget for directory entry %s, inode" -+ " %x:%x, %d\n", name, dirh.start_block, dire->offset, -+ dirh.inode_number + dire->inode_number); -+ -+ inode = squashfs_iget(i->i_sb, ino, dirh.inode_number + dire->inode_number); -+ -+ goto exit_lookup; -+ } -+ } -+ } -+ -+exit_lookup: -+ kfree(dire); -+ if (inode) -+ return d_splice_alias(inode, dentry); -+ d_add(dentry, inode); -+ return ERR_PTR(0); -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ goto exit_lookup; -+} -+ -+ -+static int squashfs_remount(struct super_block *s, int *flags, char *data) -+{ -+ *flags |= MS_RDONLY; -+ return 0; -+} -+ -+ -+static void squashfs_put_super(struct super_block *s) -+{ -+ int i; -+ -+ if (s->s_fs_info) { -+ struct squashfs_sb_info *sbi = s->s_fs_info; -+ if (sbi->block_cache) -+ for (i = 0; i < squashfs_cached_blks; i++) -+ if (sbi->block_cache[i].block != SQUASHFS_INVALID_BLK) -+ vfree(sbi->block_cache[i].data); -+ if (sbi->fragment) -+ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) -+ vfree(sbi->fragment[i].data); -+ kfree(sbi->fragment); -+ kfree(sbi->block_cache); -+ vfree(sbi->read_page); -+ kfree(sbi->uid); -+ kfree(sbi->fragment_index); -+ kfree(sbi->fragment_index_2); -+ kfree(sbi->meta_index); -+ kfree(s->s_fs_info); -+ s->s_fs_info = NULL; -+ } -+} -+ -+ -+static int squashfs_get_sb(struct file_system_type *fs_type, int flags, -+ const char *dev_name, void *data, struct vfsmount *mnt) -+{ -+ return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super, -+ mnt); -+} -+ -+static void free_sqlzma(void) -+{ -+ int cpu; -+ struct sqlzma *p; -+ -+ for_each_online_cpu(cpu) { -+ p = per_cpu(sqlzma, cpu); -+ if (p) { -+#ifdef KeepPreemptive -+ mutex_destroy(&p->mtx); -+#endif -+ sqlzma_fin(&p->un); -+ kfree(p); -+ } -+ } -+} -+ -+static int __init init_squashfs_fs(void) -+{ -+ struct sqlzma *p; -+ int cpu; -+ int err = init_inodecache(); -+ if (err) -+ goto out; -+ -+ for_each_online_cpu(cpu) { -+ dpri("%d: %p\n", cpu, per_cpu(sqlzma, cpu)); -+ err = -ENOMEM; -+ p = kmalloc(sizeof(struct sqlzma), GFP_KERNEL); -+ if (p) { -+#ifdef KeepPreemptive -+ mutex_init(&p->mtx); -+#endif -+ err = sqlzma_init(&p->un, 1, 0); -+ if (unlikely(err)) { -+ ERROR("Failed to intialize uncompress workspace\n"); -+ break; -+ } -+ per_cpu(sqlzma, cpu) = p; -+ err = 0; -+ } else -+ break; -+ } -+ if (unlikely(err)) { -+ free_sqlzma(); -+ goto out; -+ } -+ -+ printk(KERN_INFO "squashfs: version 3.3 (2007/10/31) " -+ "Phillip Lougher\n" -+ "squashfs: LZMA suppport for slax.org by jro\n"); -+ -+ err = register_filesystem(&squashfs_fs_type); -+ if (err) { -+ free_sqlzma(); -+ destroy_inodecache(); -+ } -+ -+out: -+ return err; -+} -+ -+ -+static void __exit exit_squashfs_fs(void) -+{ -+ unregister_filesystem(&squashfs_fs_type); -+ free_sqlzma(); -+ destroy_inodecache(); -+} -+ -+ -+static struct kmem_cache * squashfs_inode_cachep; -+ -+ -+static struct inode *squashfs_alloc_inode(struct super_block *sb) -+{ -+ struct squashfs_inode_info *ei; -+ ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL); -+ return ei ? &ei->vfs_inode : NULL; -+} -+ -+ -+static void squashfs_destroy_inode(struct inode *inode) -+{ -+ kmem_cache_free(squashfs_inode_cachep, SQUASHFS_I(inode)); -+} -+ -+ -+static void init_once(struct kmem_cache *cachep, void *foo) -+{ -+ struct squashfs_inode_info *ei = foo; -+ -+ inode_init_once(&ei->vfs_inode); -+} -+ -+ -+static int __init init_inodecache(void) -+{ -+ squashfs_inode_cachep = kmem_cache_create("squashfs_inode_cache", -+ sizeof(struct squashfs_inode_info), 0, -+ SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once); -+ if (squashfs_inode_cachep == NULL) -+ return -ENOMEM; -+ return 0; -+} -+ -+ -+static void destroy_inodecache(void) -+{ -+ kmem_cache_destroy(squashfs_inode_cachep); -+} -+ -+ -+module_init(init_squashfs_fs); -+module_exit(exit_squashfs_fs); -+MODULE_DESCRIPTION("squashfs 3.2-r2-CVS, a compressed read-only filesystem, and LZMA suppport for slax.org"); -+MODULE_AUTHOR("Phillip Lougher , and LZMA suppport for slax.org by jro"); -+MODULE_LICENSE("GPL"); -diff -urN linux-2.6.23/fs/squashfs/module.c linux-2.6.23.sqlzma-ng/fs/squashfs/module.c ---- linux-2.6.23/fs/squashfs/module.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/module.c 2007-11-13 19:51:33.000000000 -0500 -@@ -0,0 +1,36 @@ -+ -+/* -+ * Copyright (C) 2006-2007 Junjiro Okajima -+ * Copyright (C) 2006-2007 Tomas Matejicek, slax.org -+ * -+ * LICENSE follows the described one in lzma.txt. -+ */ -+ -+/* $Id: module.c,v 1.1 2007/11/05 05:43:36 jro Exp $ */ -+ -+#include -+#include -+ -+#include "LzmaDecode.c" -+ -+EXPORT_SYMBOL(LzmaDecodeProperties); -+EXPORT_SYMBOL(LzmaDecode); -+ -+#if 0 -+static int __init unlzma_init(void) -+{ -+ return 0; -+} -+ -+static void __exit unlzma_exit(void) -+{ -+} -+ -+module_init(unlzma_init); -+module_exit(unlzma_exit); -+#endif -+ -+MODULE_LICENSE("GPL"); -+MODULE_VERSION("$Id: module.c,v 1.1 2007/11/05 05:43:36 jro Exp $"); -+MODULE_DESCRIPTION("LZMA uncompress. " -+ "A tiny wrapper for LzmaDecode.c in LZMA SDK from www.7-zip.org."); -diff -urN linux-2.6.23/fs/squashfs/sqlzma.h linux-2.6.23.sqlzma-ng/fs/squashfs/sqlzma.h ---- linux-2.6.23/fs/squashfs/sqlzma.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/sqlzma.h 2007-11-13 19:09:21.000000000 -0500 -@@ -0,0 +1,83 @@ -+/* -+ * Copyright (C) 2006 Junjiro Okajima -+ * Copyright (C) 2006 Tomas Matejicek, slax.org -+ * -+ * LICENSE follows the described one in lzma. -+ */ -+ -+/* $Id: sqlzma.h,v 1.15 2007/11/09 14:42:12 jro Exp $ */ -+ -+#ifndef __sqlzma_h__ -+#define __sqlzma_h__ -+ -+#ifndef __KERNEL__ -+#include -+#include -+#include -+#ifdef _REENTRANT -+#include -+#endif -+#else -+#include -+#endif -+#define _7ZIP_BYTE_DEFINED -+ -+/* -+ * detect the compression method automatically by the first byte of compressed -+ * data. -+ * according to rfc1950, the first byte of zlib compression must be 0x?8. -+ */ -+#define is_lzma(c) (c == 0x5d) -+ -+/* ---------------------------------------------------------------------- */ -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+#ifndef __KERNEL__ -+/* for mksquashfs only */ -+struct sqlzma_opts { -+ unsigned int try_lzma:1; -+ unsigned int dicsize; -+}; -+int sqlzma_cm(struct sqlzma_opts *opts, z_stream *stream, Bytef *next_in, uInt -+ avail_in, Bytef *next_out, uInt avail_out); -+#endif -+ -+/* ---------------------------------------------------------------------- */ -+/* -+ * Three patterns for sqlzma uncompression. very dirty code. -+ * - kernel space (squashfs kernel module) -+ * - user space with pthread (mksquashfs) -+ * - user space without pthread (unsquashfs) -+ */ -+ -+struct sized_buf { -+ unsigned int sz; -+ unsigned char *buf; -+}; -+ -+enum {SQUN_PROB, SQUN_RESULT, SQUN_LAST}; -+struct sqlzma_un { -+ int un_lzma; -+ struct sized_buf un_a[SQUN_LAST]; -+ unsigned char un_prob[31960]; /* unlzma 64KB - 1MB */ -+ z_stream un_stream; -+#define un_cmbuf un_stream.next_in -+#define un_cmlen un_stream.avail_in -+#define un_resbuf un_stream.next_out -+#define un_resroom un_stream.avail_out -+#define un_reslen un_stream.total_out -+}; -+ -+int sqlzma_init(struct sqlzma_un *un, int do_lzma, unsigned int res_sz); -+int sqlzma_un(struct sqlzma_un *un, struct sized_buf *src, struct sized_buf *dst); -+void sqlzma_fin(struct sqlzma_un *un); -+ -+/* ---------------------------------------------------------------------- */ -+ -+#ifdef __cplusplus -+}; -+#endif -+#endif -diff -urN linux-2.6.23/fs/squashfs/squashfs.h linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs.h ---- linux-2.6.23/fs/squashfs/squashfs.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs.h 2007-11-13 18:58:41.000000000 -0500 -@@ -0,0 +1,86 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs.h -+ */ -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+#endif -+ -+#ifdef SQUASHFS_TRACE -+#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args) -+#else -+#define TRACE(s, args...) {} -+#endif -+ -+#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args) -+ -+#define SERROR(s, args...) do { \ -+ if (!silent) \ -+ printk(KERN_ERR "SQUASHFS error: "s, ## args);\ -+ } while(0) -+ -+#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args) -+ -+static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode) -+{ -+ return list_entry(inode, struct squashfs_inode_info, vfs_inode); -+} -+ -+#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY) -+#define SQSH_EXTERN -+extern unsigned int squashfs_read_data(struct super_block *s, char *buffer, -+ long long index, unsigned int length, -+ long long *next_index, int srclength); -+extern int squashfs_get_cached_block(struct super_block *s, void *buffer, -+ long long block, unsigned int offset, -+ int length, long long *next_block, -+ unsigned int *next_offset); -+extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct -+ squashfs_fragment_cache *fragment); -+extern struct squashfs_fragment_cache *get_cached_fragment(struct super_block -+ *s, long long start_block, -+ int length); -+extern struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode, unsigned int inode_number); -+extern const struct address_space_operations squashfs_symlink_aops; -+extern const struct address_space_operations squashfs_aops; -+extern struct inode_operations squashfs_dir_inode_ops; -+#else -+#define SQSH_EXTERN static -+#endif -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk); -+#else -+static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk) -+{ -+ return 0; -+} -+#endif -+ -+#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk); -+#else -+static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk) -+{ -+ return 0; -+} -+#endif -diff -urN linux-2.6.23/fs/squashfs/squashfs2_0.c linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs2_0.c ---- linux-2.6.23/fs/squashfs/squashfs2_0.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs2_0.c 2007-11-13 18:58:41.000000000 -0500 -@@ -0,0 +1,740 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs2_0.c -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "squashfs.h" -+static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir); -+static struct dentry *squashfs_lookup_2(struct inode *, struct dentry *, -+ struct nameidata *); -+ -+static struct file_operations squashfs_dir_ops_2 = { -+ .read = generic_read_dir, -+ .readdir = squashfs_readdir_2 -+}; -+ -+static struct inode_operations squashfs_dir_inode_ops_2 = { -+ .lookup = squashfs_lookup_2 -+}; -+ -+static unsigned char squashfs_filetype_table[] = { -+ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK -+}; -+ -+static int read_fragment_index_table_2(struct super_block *s) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ if (!(msblk->fragment_index_2 = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES_2 -+ (sblk->fragments), GFP_KERNEL))) { -+ ERROR("Failed to allocate uid/gid table\n"); -+ return 0; -+ } -+ -+ if (SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments) && -+ !squashfs_read_data(s, (char *) -+ msblk->fragment_index_2, -+ sblk->fragment_table_start, -+ SQUASHFS_FRAGMENT_INDEX_BYTES_2 -+ (sblk->fragments) | -+ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments))) { -+ ERROR("unable to read fragment index table\n"); -+ return 0; -+ } -+ -+ if (msblk->swap) { -+ int i; -+ unsigned int fragment; -+ -+ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES_2(sblk->fragments); -+ i++) { -+ SQUASHFS_SWAP_FRAGMENT_INDEXES_2((&fragment), -+ &msblk->fragment_index_2[i], 1); -+ msblk->fragment_index_2[i] = fragment; -+ } -+ } -+ -+ return 1; -+} -+ -+ -+static int get_fragment_location_2(struct super_block *s, unsigned int fragment, -+ long long *fragment_start_block, -+ unsigned int *fragment_size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ long long start_block = -+ msblk->fragment_index_2[SQUASHFS_FRAGMENT_INDEX_2(fragment)]; -+ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET_2(fragment); -+ struct squashfs_fragment_entry_2 fragment_entry; -+ -+ if (msblk->swap) { -+ struct squashfs_fragment_entry_2 sfragment_entry; -+ -+ if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, -+ start_block, offset, -+ sizeof(sfragment_entry), &start_block, -+ &offset)) -+ goto out; -+ SQUASHFS_SWAP_FRAGMENT_ENTRY_2(&fragment_entry, &sfragment_entry); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) &fragment_entry, -+ start_block, offset, -+ sizeof(fragment_entry), &start_block, -+ &offset)) -+ goto out; -+ -+ *fragment_start_block = fragment_entry.start_block; -+ *fragment_size = fragment_entry.size; -+ -+ return 1; -+ -+out: -+ return 0; -+} -+ -+ -+static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i, -+ struct squashfs_base_inode_header_2 *inodeb, unsigned int ino) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ i->i_ino = ino; -+ i->i_mtime.tv_sec = sblk->mkfs_time; -+ i->i_atime.tv_sec = sblk->mkfs_time; -+ i->i_ctime.tv_sec = sblk->mkfs_time; -+ i->i_uid = msblk->uid[inodeb->uid]; -+ i->i_mode = inodeb->mode; -+ i->i_nlink = 1; -+ i->i_size = 0; -+ if (inodeb->guid == SQUASHFS_GUIDS) -+ i->i_gid = i->i_uid; -+ else -+ i->i_gid = msblk->guid[inodeb->guid]; -+} -+ -+ -+static int squashfs_read_inode_2(struct inode *i, squashfs_inode_t inode) -+{ -+ struct super_block *s = i->i_sb; -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ unsigned int block = SQUASHFS_INODE_BLK(inode) + -+ sblk->inode_table_start; -+ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); -+ unsigned int ino = SQUASHFS_MK_VFS_INODE(block - -+ sblk->inode_table_start, offset); -+ long long next_block; -+ unsigned int next_offset; -+ union squashfs_inode_header_2 id, sid; -+ struct squashfs_base_inode_header_2 *inodeb = &id.base, -+ *sinodeb = &sid.base; -+ -+ TRACE("Entered squashfs_read_inode_2\n"); -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) sinodeb, block, -+ offset, sizeof(*sinodeb), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_BASE_INODE_HEADER_2(inodeb, sinodeb, -+ sizeof(*sinodeb)); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) inodeb, block, -+ offset, sizeof(*inodeb), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ squashfs_new_inode(msblk, i, inodeb, ino); -+ -+ switch(inodeb->inode_type) { -+ case SQUASHFS_FILE_TYPE: { -+ struct squashfs_reg_inode_header_2 *inodep = &id.reg; -+ struct squashfs_reg_inode_header_2 *sinodep = &sid.reg; -+ long long frag_blk; -+ unsigned int frag_size = 0; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_REG_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ frag_blk = SQUASHFS_INVALID_BLK; -+ if (inodep->fragment != SQUASHFS_INVALID_FRAG && -+ !get_fragment_location_2(s, -+ inodep->fragment, &frag_blk, &frag_size)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_fop = &generic_ro_fops; -+ i->i_mode |= S_IFREG; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ i->i_blocks = ((i->i_size - 1) >> 9) + 1; -+ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; -+ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; -+ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->u.s1.block_list_start = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ i->i_data.a_ops = &squashfs_aops; -+ -+ TRACE("File inode %x:%x, start_block %x, " -+ "block_list_start %llx, offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, next_block, -+ next_offset); -+ break; -+ } -+ case SQUASHFS_DIR_TYPE: { -+ struct squashfs_dir_inode_header_2 *inodep = &id.dir; -+ struct squashfs_dir_inode_header_2 *sinodep = &sid.dir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DIR_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops_2; -+ i->i_fop = &squashfs_dir_ops_2; -+ i->i_mode |= S_IFDIR; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = 0; -+ SQUASHFS_I(i)->u.s2.parent_inode = 0; -+ -+ TRACE("Directory inode %x:%x, start_block %x, offset " -+ "%x\n", SQUASHFS_INODE_BLK(inode), -+ offset, inodep->start_block, -+ inodep->offset); -+ break; -+ } -+ case SQUASHFS_LDIR_TYPE: { -+ struct squashfs_ldir_inode_header_2 *inodep = &id.ldir; -+ struct squashfs_ldir_inode_header_2 *sinodep = &sid.ldir; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_LDIR_INODE_HEADER_2(inodep, -+ sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->file_size; -+ i->i_op = &squashfs_dir_inode_ops_2; -+ i->i_fop = &squashfs_dir_ops_2; -+ i->i_mode |= S_IFDIR; -+ i->i_mtime.tv_sec = inodep->mtime; -+ i->i_atime.tv_sec = inodep->mtime; -+ i->i_ctime.tv_sec = inodep->mtime; -+ SQUASHFS_I(i)->start_block = inodep->start_block; -+ SQUASHFS_I(i)->offset = inodep->offset; -+ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; -+ SQUASHFS_I(i)->u.s2.directory_index_offset = -+ next_offset; -+ SQUASHFS_I(i)->u.s2.directory_index_count = -+ inodep->i_count; -+ SQUASHFS_I(i)->u.s2.parent_inode = 0; -+ -+ TRACE("Long directory inode %x:%x, start_block %x, " -+ "offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->start_block, inodep->offset); -+ break; -+ } -+ case SQUASHFS_SYMLINK_TYPE: { -+ struct squashfs_symlink_inode_header_2 *inodep = -+ &id.symlink; -+ struct squashfs_symlink_inode_header_2 *sinodep = -+ &sid.symlink; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(inodep, -+ sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_size = inodep->symlink_size; -+ i->i_op = &page_symlink_inode_operations; -+ i->i_data.a_ops = &squashfs_symlink_aops; -+ i->i_mode |= S_IFLNK; -+ SQUASHFS_I(i)->start_block = next_block; -+ SQUASHFS_I(i)->offset = next_offset; -+ -+ TRACE("Symbolic link inode %x:%x, start_block %llx, " -+ "offset %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ next_block, next_offset); -+ break; -+ } -+ case SQUASHFS_BLKDEV_TYPE: -+ case SQUASHFS_CHRDEV_TYPE: { -+ struct squashfs_dev_inode_header_2 *inodep = &id.dev; -+ struct squashfs_dev_inode_header_2 *sinodep = &sid.dev; -+ -+ if (msblk->swap) { -+ if (!squashfs_get_cached_block(s, (char *) -+ sinodep, block, offset, -+ sizeof(*sinodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ SQUASHFS_SWAP_DEV_INODE_HEADER_2(inodep, sinodep); -+ } else -+ if (!squashfs_get_cached_block(s, (char *) -+ inodep, block, offset, -+ sizeof(*inodep), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ i->i_mode |= (inodeb->inode_type == -+ SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : -+ S_IFBLK; -+ init_special_inode(i, i->i_mode, -+ old_decode_dev(inodep->rdev)); -+ -+ TRACE("Device inode %x:%x, rdev %x\n", -+ SQUASHFS_INODE_BLK(inode), offset, -+ inodep->rdev); -+ break; -+ } -+ case SQUASHFS_FIFO_TYPE: -+ case SQUASHFS_SOCKET_TYPE: { -+ -+ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) -+ ? S_IFIFO : S_IFSOCK; -+ init_special_inode(i, i->i_mode, 0); -+ break; -+ } -+ default: -+ ERROR("Unknown inode type %d in squashfs_iget!\n", -+ inodeb->inode_type); -+ goto failed_read1; -+ } -+ -+ return 1; -+ -+failed_read: -+ ERROR("Unable to read inode [%x:%x]\n", block, offset); -+ -+failed_read1: -+ return 0; -+} -+ -+ -+static int get_dir_index_using_offset(struct super_block *s, long long -+ *next_block, unsigned int *next_offset, -+ long long index_start, -+ unsigned int index_offset, int i_count, -+ long long f_pos) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index_2 index; -+ -+ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", -+ i_count, (unsigned int) f_pos); -+ -+ if (f_pos == 0) -+ goto finish; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index_2 sindex; -+ squashfs_get_cached_block(s, (char *) &sindex, -+ index_start, index_offset, -+ sizeof(sindex), &index_start, -+ &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX_2(&index, &sindex); -+ } else -+ squashfs_get_cached_block(s, (char *) &index, -+ index_start, index_offset, -+ sizeof(index), &index_start, -+ &index_offset); -+ -+ if (index.index > f_pos) -+ break; -+ -+ squashfs_get_cached_block(s, NULL, index_start, index_offset, -+ index.size + 1, &index_start, -+ &index_offset); -+ -+ length = index.index; -+ *next_block = index.start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ -+finish: -+ return length; -+} -+ -+ -+static int get_dir_index_using_name(struct super_block *s, long long -+ *next_block, unsigned int *next_offset, -+ long long index_start, -+ unsigned int index_offset, int i_count, -+ const char *name, int size) -+{ -+ struct squashfs_sb_info *msblk = s->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ int i, length = 0; -+ struct squashfs_dir_index_2 *index; -+ char *str; -+ -+ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); -+ -+ if (!(str = kmalloc(sizeof(struct squashfs_dir_index) + -+ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_index\n"); -+ goto failure; -+ } -+ -+ index = (struct squashfs_dir_index_2 *) (str + SQUASHFS_NAME_LEN + 1); -+ strncpy(str, name, size); -+ str[size] = '\0'; -+ -+ for (i = 0; i < i_count; i++) { -+ if (msblk->swap) { -+ struct squashfs_dir_index_2 sindex; -+ squashfs_get_cached_block(s, (char *) &sindex, -+ index_start, index_offset, -+ sizeof(sindex), &index_start, -+ &index_offset); -+ SQUASHFS_SWAP_DIR_INDEX_2(index, &sindex); -+ } else -+ squashfs_get_cached_block(s, (char *) index, -+ index_start, index_offset, -+ sizeof(struct squashfs_dir_index_2), -+ &index_start, &index_offset); -+ -+ squashfs_get_cached_block(s, index->name, index_start, -+ index_offset, index->size + 1, -+ &index_start, &index_offset); -+ -+ index->name[index->size + 1] = '\0'; -+ -+ if (strcmp(index->name, str) > 0) -+ break; -+ -+ length = index->index; -+ *next_block = index->start_block + sblk->directory_table_start; -+ } -+ -+ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; -+ kfree(str); -+failure: -+ return length; -+} -+ -+ -+static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir) -+{ -+ struct inode *i = file->f_dentry->d_inode; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, -+ dir_count; -+ struct squashfs_dir_header_2 dirh; -+ struct squashfs_dir_entry_2 *dire; -+ -+ TRACE("Entered squashfs_readdir_2 [%llx:%x]\n", next_block, next_offset); -+ -+ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto finish; -+ } -+ -+ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, -+ file->f_pos); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header_2 sdirh; -+ -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, -+ next_block, next_offset, sizeof(sdirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, -+ next_block, next_offset, sizeof(dirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry_2 sdire; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ &sdire, next_block, next_offset, -+ sizeof(sdire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ dire, next_block, next_offset, -+ sizeof(*dire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, -+ next_block, next_offset, -+ dire->size + 1, &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (file->f_pos >= length) -+ continue; -+ -+ dire->name[dire->size + 1] = '\0'; -+ -+ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n", -+ (unsigned int) dirent, dire->name, -+ dire->size + 1, (int) file->f_pos, -+ dirh.start_block, dire->offset, -+ squashfs_filetype_table[dire->type]); -+ -+ if (filldir(dirent, dire->name, dire->size + 1, -+ file->f_pos, SQUASHFS_MK_VFS_INODE( -+ dirh.start_block, dire->offset), -+ squashfs_filetype_table[dire->type]) -+ < 0) { -+ TRACE("Filldir returned less than 0\n"); -+ goto finish; -+ } -+ file->f_pos = length; -+ } -+ } -+ -+finish: -+ kfree(dire); -+ return 0; -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ kfree(dire); -+ return 0; -+} -+ -+ -+static struct dentry *squashfs_lookup_2(struct inode *i, struct dentry *dentry, -+ struct nameidata *nd) -+{ -+ const unsigned char *name = dentry->d_name.name; -+ int len = dentry->d_name.len; -+ struct inode *inode = NULL; -+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ long long next_block = SQUASHFS_I(i)->start_block + -+ sblk->directory_table_start; -+ int next_offset = SQUASHFS_I(i)->offset, length = 0, -+ dir_count; -+ struct squashfs_dir_header_2 dirh; -+ struct squashfs_dir_entry_2 *dire; -+ int sorted = sblk->s_major == 2 && sblk->s_minor >= 1; -+ -+ TRACE("Entered squashfs_lookup_2 [%llx:%x]\n", next_block, next_offset); -+ -+ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + -+ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { -+ ERROR("Failed to allocate squashfs_dir_entry\n"); -+ goto exit_loop; -+ } -+ -+ if (len > SQUASHFS_NAME_LEN) -+ goto exit_loop; -+ -+ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_start, -+ SQUASHFS_I(i)->u.s2.directory_index_offset, -+ SQUASHFS_I(i)->u.s2.directory_index_count, name, -+ len); -+ -+ while (length < i_size_read(i)) { -+ /* read directory header */ -+ if (msblk->swap) { -+ struct squashfs_dir_header_2 sdirh; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, -+ next_block, next_offset, sizeof(sdirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdirh); -+ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, -+ next_block, next_offset, sizeof(dirh), -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(dirh); -+ } -+ -+ dir_count = dirh.count + 1; -+ while (dir_count--) { -+ if (msblk->swap) { -+ struct squashfs_dir_entry_2 sdire; -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ &sdire, next_block,next_offset, -+ sizeof(sdire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(sdire); -+ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); -+ } else { -+ if (!squashfs_get_cached_block(i->i_sb, (char *) -+ dire, next_block,next_offset, -+ sizeof(*dire), &next_block, -+ &next_offset)) -+ goto failed_read; -+ -+ length += sizeof(*dire); -+ } -+ -+ if (!squashfs_get_cached_block(i->i_sb, dire->name, -+ next_block, next_offset, dire->size + 1, -+ &next_block, &next_offset)) -+ goto failed_read; -+ -+ length += dire->size + 1; -+ -+ if (sorted && name[0] < dire->name[0]) -+ goto exit_loop; -+ -+ if ((len == dire->size + 1) && !strncmp(name, -+ dire->name, len)) { -+ squashfs_inode_t ino = -+ SQUASHFS_MKINODE(dirh.start_block, -+ dire->offset); -+ unsigned int inode_number = SQUASHFS_MK_VFS_INODE(dirh.start_block, -+ dire->offset); -+ -+ TRACE("calling squashfs_iget for directory " -+ "entry %s, inode %x:%x, %lld\n", name, -+ dirh.start_block, dire->offset, ino); -+ -+ inode = squashfs_iget(i->i_sb, ino, inode_number); -+ -+ goto exit_loop; -+ } -+ } -+ } -+ -+exit_loop: -+ kfree(dire); -+ d_add(dentry, inode); -+ return ERR_PTR(0); -+ -+failed_read: -+ ERROR("Unable to read directory block [%llx:%x]\n", next_block, -+ next_offset); -+ goto exit_loop; -+} -+ -+ -+int squashfs_2_0_supported(struct squashfs_sb_info *msblk) -+{ -+ struct squashfs_super_block *sblk = &msblk->sblk; -+ -+ msblk->read_inode = squashfs_read_inode_2; -+ msblk->read_fragment_index_table = read_fragment_index_table_2; -+ -+ sblk->bytes_used = sblk->bytes_used_2; -+ sblk->uid_start = sblk->uid_start_2; -+ sblk->guid_start = sblk->guid_start_2; -+ sblk->inode_table_start = sblk->inode_table_start_2; -+ sblk->directory_table_start = sblk->directory_table_start_2; -+ sblk->fragment_table_start = sblk->fragment_table_start_2; -+ -+ return 1; -+} -diff -urN linux-2.6.23/fs/squashfs/uncomp.c linux-2.6.23.sqlzma-ng/fs/squashfs/uncomp.c ---- linux-2.6.23/fs/squashfs/uncomp.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/fs/squashfs/uncomp.c 2007-11-13 19:40:29.000000000 -0500 -@@ -0,0 +1,221 @@ -+/* -+ * Copyright (C) 2006, 2007 Junjiro Okajima -+ * Copyright (C) 2006, 2007 Tomas Matejicek, slax.org -+ * -+ * LICENSE follows the described one in lzma.txt. -+ */ -+ -+/* $Id: uncomp.c,v 1.1 2007/11/05 05:43:36 jro Exp $ */ -+ -+/* extract some parts from lzma443/C/7zip/Compress/LZMA_C/LzmaTest.c */ -+ -+#ifndef __KERNEL__ -+#include -+#include -+#include -+#include -+#include -+#include -+#define unlikely(x) __builtin_expect(!!(x), 0) -+#define BUG_ON(x) assert(!(x)) -+/* sqlzma buffers are always larger than a page. true? */ -+#define kmalloc(sz,gfp) malloc(sz) -+#define kfree(p) free(p) -+#define zlib_inflate(s, f) inflate(s, f) -+#define zlib_inflateInit(s) inflateInit(s) -+#define zlib_inflateReset(s) inflateReset(s) -+#define zlib_inflateEnd(s) inflateEnd(s) -+#else -+#include -+#include -+#include -+#include -+#ifndef WARN_ON_ONCE -+#define WARN_ON_ONCE(b) WARN_ON(b) -+#endif -+#endif /* __KERNEL__ */ -+ -+#include "sqlzma.h" -+#include "LzmaDecode.h" -+ -+static int LzmaUncompress(struct sqlzma_un *un) -+{ -+ int err, i, ret; -+ SizeT outSize, inProcessed, outProcessed, srclen; -+ /* it's about 24-80 bytes structure, if int is 32-bit */ -+ CLzmaDecoderState state; -+ unsigned char *dst, *src, a[8]; -+ struct sized_buf *sbuf; -+ -+ /* Decode LZMA properties and allocate memory */ -+ err = -EINVAL; -+ src = un->un_cmbuf; -+ ret = LzmaDecodeProperties(&state.Properties, src, LZMA_PROPERTIES_SIZE); -+ src += LZMA_PROPERTIES_SIZE; -+ if (unlikely(ret != LZMA_RESULT_OK)) -+ goto out; -+ i = LzmaGetNumProbs(&state.Properties); -+ if (unlikely(i <= 0)) -+ i = 1; -+ i *= sizeof(CProb); -+ sbuf = un->un_a + SQUN_PROB; -+ if (unlikely(sbuf->sz < i)) { -+ if (sbuf->buf && sbuf->buf != un->un_prob) -+ kfree(sbuf->buf); -+#ifdef __KERNEL__ -+ printk("%s:%d: %d --> %d\n", __func__, __LINE__, sbuf->sz, i); -+#else -+ printf("%d --> %d\n", sbuf->sz, i); -+#endif -+ err = -ENOMEM; -+ sbuf->sz = 0; -+ sbuf->buf = kmalloc(i, GFP_ATOMIC); -+ if (unlikely(!sbuf->buf)) -+ goto out; -+ sbuf->sz = i; -+ } -+ state.Probs = (void*)sbuf->buf; -+ -+ /* Read uncompressed size */ -+ memcpy(a, src, sizeof(a)); -+ src += sizeof(a); -+ outSize = a[0] | (a[1] << 8) | (a[2] << 16) | (a[3] << 24); -+ -+ err = -EINVAL; -+ dst = un->un_resbuf; -+ if (unlikely(!dst || outSize > un->un_reslen)) -+ goto out; -+ un->un_reslen = outSize; -+ srclen = un->un_cmlen - (src - un->un_cmbuf); -+ -+ /* Decompress */ -+ err = LzmaDecode(&state, src, srclen, &inProcessed, dst, outSize, -+ &outProcessed); -+ if (err) -+ err = -EINVAL; -+ -+ out: -+#ifndef __KERNEL__ -+ if (err) -+ fprintf(stderr, "err %d\n", err); -+#endif -+ return err; -+} -+ -+int sqlzma_un(struct sqlzma_un *un, struct sized_buf *src, -+ struct sized_buf *dst) -+{ -+ int err, by_lzma = 0; -+ if (un->un_lzma && is_lzma(*src->buf)) { -+ by_lzma = 1; -+ un->un_cmbuf = src->buf; -+ un->un_cmlen = src->sz; -+ un->un_resbuf = dst->buf; -+ un->un_reslen = dst->sz; -+ -+ /* this library is thread-safe */ -+ err = LzmaUncompress(un); -+ goto out; -+ } -+ -+ err = zlib_inflateReset(&un->un_stream); -+ if (unlikely(err != Z_OK)) -+ goto out; -+ un->un_stream.next_in = src->buf; -+ un->un_stream.avail_in = src->sz; -+ un->un_stream.next_out = dst->buf; -+ un->un_stream.avail_out = dst->sz; -+ err = zlib_inflate(&un->un_stream, Z_FINISH); -+ if (err == Z_STREAM_END) -+ err = 0; -+ -+ out: -+ if (err) { -+#ifdef __KERNEL__ -+ WARN_ON_ONCE(1); -+#else -+ char a[64] = "ZLIB "; -+ if (by_lzma) { -+ strcpy(a, "LZMA "); -+#ifdef _REENTRANT -+ strerror_r(err, a + 5, sizeof(a) - 5); -+#else -+ strncat(a, strerror(err), sizeof(a) - 5); -+#endif -+ } else -+ strncat(a, zError(err), sizeof(a) - 5); -+ fprintf(stderr, "%s: %.*s\n", __func__, sizeof(a), a); -+#endif -+ } -+ return err; -+} -+ -+int sqlzma_init(struct sqlzma_un *un, int do_lzma, unsigned int res_sz) -+{ -+ int err; -+ -+ err = -ENOMEM; -+ un->un_lzma = do_lzma; -+ memset(un->un_a, 0, sizeof(un->un_a)); -+ un->un_a[SQUN_PROB].buf = un->un_prob; -+ un->un_a[SQUN_PROB].sz = sizeof(un->un_prob); -+ if (res_sz) { -+ un->un_a[SQUN_RESULT].buf = kmalloc(res_sz, GFP_KERNEL); -+ if (unlikely(!un->un_a[SQUN_RESULT].buf)) -+ return err; -+ un->un_a[SQUN_RESULT].sz = res_sz; -+ } -+ -+ un->un_stream.next_in = NULL; -+ un->un_stream.avail_in = 0; -+#ifdef __KERNEL__ -+ un->un_stream.workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL); -+ if (unlikely(!un->un_stream.workspace)) -+ return err; -+#else -+ un->un_stream.opaque = NULL; -+ un->un_stream.zalloc = Z_NULL; -+ un->un_stream.zfree = Z_NULL; -+#endif -+ err = zlib_inflateInit(&un->un_stream); -+ if (unlikely(err == Z_MEM_ERROR)) -+ return -ENOMEM; -+ BUG_ON(err); -+ return err; -+} -+ -+void sqlzma_fin(struct sqlzma_un *un) -+{ -+ int i; -+ for (i = 0; i < SQUN_LAST; i++) -+ if (un->un_a[i].buf && un->un_a[i].buf != un->un_prob) -+ kfree(un->un_a[i].buf); -+ BUG_ON(zlib_inflateEnd(&un->un_stream) != Z_OK); -+} -+ -+#ifdef __KERNEL__ -+EXPORT_SYMBOL(sqlzma_un); -+EXPORT_SYMBOL(sqlzma_init); -+EXPORT_SYMBOL(sqlzma_fin); -+ -+#if 0 -+static int __init sqlzma_init(void) -+{ -+ return 0; -+} -+ -+static void __exit sqlzma_exit(void) -+{ -+} -+ -+module_init(sqlzma_init); -+module_exit(sqlzma_exit); -+#endif -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Junjiro Okajima "); -+MODULE_VERSION("$Id: uncomp.c,v 1.1 2007/11/05 05:43:36 jro Exp $"); -+MODULE_DESCRIPTION("LZMA uncompress for squashfs. " -+ "Some functions for squashfs to support LZMA and " -+ "a tiny wrapper for LzmaDecode.c in LZMA SDK from www.7-zip.org."); -+#endif -diff -urN linux-2.6.23/include/linux/squashfs_fs.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs.h ---- linux-2.6.23/include/linux/squashfs_fs.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs.h 2007-11-13 19:12:41.000000000 -0500 -@@ -0,0 +1,937 @@ -+#ifndef SQUASHFS_FS -+#define SQUASHFS_FS -+ -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs.h -+ */ -+ -+#ifndef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+#define CONFIG_SQUASHFS_2_0_COMPATIBILITY -+#endif -+ -+#define SQUASHFS_CACHED_FRAGMENTS CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE -+#define SQUASHFS_MAJOR 3 -+#define SQUASHFS_MINOR 1 -+#define SQUASHFS_MAGIC 0x73717368 -+#define SQUASHFS_MAGIC_SWAP 0x68737173 -+#define SQUASHFS_MAGIC_LZMA 0x71736873 -+#define SQUASHFS_MAGIC_LZMA_SWAP 0x73687371 -+#define SQUASHFS_START 0 -+ -+/* size of metadata (inode and directory) blocks */ -+#define SQUASHFS_METADATA_SIZE 8192 -+#define SQUASHFS_METADATA_LOG 13 -+ -+/* default size of data blocks */ -+#define SQUASHFS_FILE_SIZE 131072 -+#define SQUASHFS_FILE_LOG 17 -+ -+#define SQUASHFS_FILE_MAX_SIZE 1048576 -+ -+/* Max number of uids and gids */ -+#define SQUASHFS_UIDS 256 -+#define SQUASHFS_GUIDS 255 -+ -+/* Max length of filename (not 255) */ -+#define SQUASHFS_NAME_LEN 256 -+ -+#define SQUASHFS_INVALID ((long long) 0xffffffffffff) -+#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff) -+#define SQUASHFS_INVALID_BLK ((long long) -1) -+#define SQUASHFS_USED_BLK ((long long) -2) -+ -+/* Filesystem flags */ -+#define SQUASHFS_NOI 0 -+#define SQUASHFS_NOD 1 -+#define SQUASHFS_CHECK 2 -+#define SQUASHFS_NOF 3 -+#define SQUASHFS_NO_FRAG 4 -+#define SQUASHFS_ALWAYS_FRAG 5 -+#define SQUASHFS_DUPLICATE 6 -+#define SQUASHFS_EXPORT 7 -+ -+#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1) -+ -+#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOI) -+ -+#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOD) -+ -+#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NOF) -+ -+#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_NO_FRAG) -+ -+#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_ALWAYS_FRAG) -+ -+#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_DUPLICATE) -+ -+#define SQUASHFS_EXPORTABLE(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_EXPORT) -+ -+#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \ -+ SQUASHFS_CHECK) -+ -+#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \ -+ duplicate_checking, exportable) (noi | (nod << 1) | (check_data << 2) \ -+ | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \ -+ (duplicate_checking << 6) | (exportable << 7)) -+ -+/* Max number of types and file types */ -+#define SQUASHFS_DIR_TYPE 1 -+#define SQUASHFS_FILE_TYPE 2 -+#define SQUASHFS_SYMLINK_TYPE 3 -+#define SQUASHFS_BLKDEV_TYPE 4 -+#define SQUASHFS_CHRDEV_TYPE 5 -+#define SQUASHFS_FIFO_TYPE 6 -+#define SQUASHFS_SOCKET_TYPE 7 -+#define SQUASHFS_LDIR_TYPE 8 -+#define SQUASHFS_LREG_TYPE 9 -+ -+/* 1.0 filesystem type definitions */ -+#define SQUASHFS_TYPES 5 -+#define SQUASHFS_IPC_TYPE 0 -+ -+/* Flag whether block is compressed or uncompressed, bit is set if block is -+ * uncompressed */ -+#define SQUASHFS_COMPRESSED_BIT (1 << 15) -+ -+#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \ -+ (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT) -+ -+#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT)) -+ -+#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24) -+ -+#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) ((B) & \ -+ ~SQUASHFS_COMPRESSED_BIT_BLOCK) -+ -+#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK)) -+ -+/* -+ * Inode number ops. Inodes consist of a compressed block number, and an -+ * uncompressed offset within that block -+ */ -+#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16)) -+ -+#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff)) -+ -+#define SQUASHFS_MKINODE(A, B) ((squashfs_inode_t)(((squashfs_inode_t) (A)\ -+ << 16) + (B))) -+ -+/* Compute 32 bit VFS inode number from squashfs inode number */ -+#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \ -+ ((b) >> 2) + 1)) -+/* XXX */ -+ -+/* Translate between VFS mode and squashfs mode */ -+#define SQUASHFS_MODE(a) ((a) & 0xfff) -+ -+/* fragment and fragment table defines */ -+#define SQUASHFS_FRAGMENT_BYTES(A) ((A) * sizeof(struct squashfs_fragment_entry)) -+ -+#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\ -+ sizeof(long long)) -+ -+/* inode lookup table defines */ -+#define SQUASHFS_LOOKUP_BYTES(A) ((A) * sizeof(squashfs_inode_t)) -+ -+#define SQUASHFS_LOOKUP_BLOCK(A) (SQUASHFS_LOOKUP_BYTES(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCK_OFFSET(A) (SQUASHFS_LOOKUP_BYTES(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCKS(A) ((SQUASHFS_LOOKUP_BYTES(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_LOOKUP_BLOCK_BYTES(A) (SQUASHFS_LOOKUP_BLOCKS(A) *\ -+ sizeof(long long)) -+ -+/* cached data constants for filesystem */ -+#define SQUASHFS_CACHED_BLKS 8 -+ -+#define SQUASHFS_MAX_FILE_SIZE_LOG 64 -+ -+#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \ -+ (SQUASHFS_MAX_FILE_SIZE_LOG - 2)) -+ -+#define SQUASHFS_MARKER_BYTE 0xff -+ -+/* meta index cache */ -+#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int)) -+#define SQUASHFS_META_ENTRIES 31 -+#define SQUASHFS_META_NUMBER 8 -+#define SQUASHFS_SLOTS 4 -+ -+struct meta_entry { -+ long long data_block; -+ unsigned int index_block; -+ unsigned short offset; -+ unsigned short pad; -+}; -+ -+struct meta_index { -+ unsigned int inode_number; -+ unsigned int offset; -+ unsigned short entries; -+ unsigned short skip; -+ unsigned short locked; -+ unsigned short pad; -+ struct meta_entry meta_entry[SQUASHFS_META_ENTRIES]; -+}; -+ -+ -+/* -+ * definitions for structures on disk -+ */ -+ -+typedef long long squashfs_block_t; -+typedef long long squashfs_inode_t; -+ -+struct squashfs_super_block { -+ unsigned int s_magic; -+ unsigned int inodes; -+ unsigned int bytes_used_2; -+ unsigned int uid_start_2; -+ unsigned int guid_start_2; -+ unsigned int inode_table_start_2; -+ unsigned int directory_table_start_2; -+ unsigned int s_major:16; -+ unsigned int s_minor:16; -+ unsigned int block_size_1:16; -+ unsigned int block_log:16; -+ unsigned int flags:8; -+ unsigned int no_uids:8; -+ unsigned int no_guids:8; -+ unsigned int mkfs_time /* time of filesystem creation */; -+ squashfs_inode_t root_inode; -+ unsigned int block_size; -+ unsigned int fragments; -+ unsigned int fragment_table_start_2; -+ long long bytes_used; -+ long long uid_start; -+ long long guid_start; -+ long long inode_table_start; -+ long long directory_table_start; -+ long long fragment_table_start; -+ long long lookup_table_start; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_index { -+ unsigned int index; -+ unsigned int start_block; -+ unsigned char size; -+ unsigned char name[0]; -+} __attribute__ ((packed)); -+ -+#define SQUASHFS_BASE_INODE_HEADER \ -+ unsigned int inode_type:4; \ -+ unsigned int mode:12; \ -+ unsigned int uid:8; \ -+ unsigned int guid:8; \ -+ unsigned int mtime; \ -+ unsigned int inode_number; -+ -+struct squashfs_base_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ squashfs_block_t start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ unsigned int file_size; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_lreg_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ squashfs_block_t start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ long long file_size; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int start_block; -+ unsigned int parent_inode; -+} __attribute__ ((packed)); -+ -+struct squashfs_ldir_inode_header { -+ SQUASHFS_BASE_INODE_HEADER; -+ unsigned int nlink; -+ unsigned int file_size:27; -+ unsigned int offset:13; -+ unsigned int start_block; -+ unsigned int i_count:16; -+ unsigned int parent_inode; -+ struct squashfs_dir_index index[0]; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header { -+ struct squashfs_base_inode_header base; -+ struct squashfs_dev_inode_header dev; -+ struct squashfs_symlink_inode_header symlink; -+ struct squashfs_reg_inode_header reg; -+ struct squashfs_lreg_inode_header lreg; -+ struct squashfs_dir_inode_header dir; -+ struct squashfs_ldir_inode_header ldir; -+ struct squashfs_ipc_inode_header ipc; -+}; -+ -+struct squashfs_dir_entry { -+ unsigned int offset:13; -+ unsigned int type:3; -+ unsigned int size:8; -+ unsigned int inode_number:16; -+ char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_header { -+ unsigned int count:8; -+ unsigned int start_block; -+ unsigned int inode_number; -+} __attribute__ ((packed)); -+ -+struct squashfs_fragment_entry { -+ long long start_block; -+ unsigned int size; -+ unsigned int pending; -+} __attribute__ ((packed)); -+ -+extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen); -+extern int squashfs_uncompress_init(void); -+extern int squashfs_uncompress_exit(void); -+ -+/* -+ * macros to convert each packed bitfield structure from little endian to big -+ * endian and vice versa. These are needed when creating or using a filesystem -+ * on a machine with different byte ordering to the target architecture. -+ * -+ */ -+ -+#define SQUASHFS_SWAP_START \ -+ int bits;\ -+ int b_pos;\ -+ unsigned long long val;\ -+ unsigned char *s;\ -+ unsigned char *d; -+ -+#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_super_block));\ -+ SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->inodes, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->bytes_used_2, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->uid_start_2, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->guid_start_2, d, 128, 32);\ -+ SQUASHFS_SWAP((s)->inode_table_start_2, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->directory_table_start_2, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->s_major, d, 224, 16);\ -+ SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\ -+ SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\ -+ SQUASHFS_SWAP((s)->block_log, d, 272, 16);\ -+ SQUASHFS_SWAP((s)->flags, d, 288, 8);\ -+ SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\ -+ SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\ -+ SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\ -+ SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\ -+ SQUASHFS_SWAP((s)->block_size, d, 408, 32);\ -+ SQUASHFS_SWAP((s)->fragments, d, 440, 32);\ -+ SQUASHFS_SWAP((s)->fragment_table_start_2, d, 472, 32);\ -+ SQUASHFS_SWAP((s)->bytes_used, d, 504, 64);\ -+ SQUASHFS_SWAP((s)->uid_start, d, 568, 64);\ -+ SQUASHFS_SWAP((s)->guid_start, d, 632, 64);\ -+ SQUASHFS_SWAP((s)->inode_table_start, d, 696, 64);\ -+ SQUASHFS_SWAP((s)->directory_table_start, d, 760, 64);\ -+ SQUASHFS_SWAP((s)->fragment_table_start, d, 824, 64);\ -+ SQUASHFS_SWAP((s)->lookup_table_start, d, 888, 64);\ -+} -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ -+ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 64, 32); -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_ipc_inode_header))\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_dev_inode_header)); \ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->rdev, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_reg_inode_header));\ -+ SQUASHFS_SWAP((s)->start_block, d, 96, 64);\ -+ SQUASHFS_SWAP((s)->fragment, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 224, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LREG_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_lreg_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 128, 64);\ -+ SQUASHFS_SWAP((s)->fragment, d, 192, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 224, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 256, 64);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_dir_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 128, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 147, 13);\ -+ SQUASHFS_SWAP((s)->start_block, d, 160, 32);\ -+ SQUASHFS_SWAP((s)->parent_inode, d, 192, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LDIR_INODE_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ -+ sizeof(struct squashfs_ldir_inode_header));\ -+ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 128, 27);\ -+ SQUASHFS_SWAP((s)->offset, d, 155, 13);\ -+ SQUASHFS_SWAP((s)->start_block, d, 168, 32);\ -+ SQUASHFS_SWAP((s)->i_count, d, 200, 16);\ -+ SQUASHFS_SWAP((s)->parent_inode, d, 216, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INDEX(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index));\ -+ SQUASHFS_SWAP((s)->index, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->size, d, 64, 8);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header));\ -+ SQUASHFS_SWAP((s)->count, d, 0, 8);\ -+ SQUASHFS_SWAP((s)->start_block, d, 8, 32);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 40, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry));\ -+ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ -+ SQUASHFS_SWAP((s)->type, d, 13, 3);\ -+ SQUASHFS_SWAP((s)->size, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->inode_number, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry));\ -+ SQUASHFS_SWAP((s)->start_block, d, 0, 64);\ -+ SQUASHFS_SWAP((s)->size, d, 64, 32);\ -+} -+ -+#define SQUASHFS_SWAP_INODE_T(s, d) SQUASHFS_SWAP_LONG_LONGS(s, d, 1) -+ -+#define SQUASHFS_SWAP_SHORTS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 2);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 16)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 16);\ -+} -+ -+#define SQUASHFS_SWAP_INTS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 4);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 32)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 32);\ -+} -+ -+#define SQUASHFS_SWAP_LONG_LONGS(s, d, n) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * 8);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ 64)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, 64);\ -+} -+ -+#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\ -+ int entry;\ -+ int bit_position;\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, n * bits / 8);\ -+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ -+ bits)\ -+ SQUASHFS_SWAP(s[entry], d, bit_position, bits);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) -+#define SQUASHFS_SWAP_LOOKUP_BLOCKS(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) -+ -+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY -+ -+struct squashfs_base_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int type:4; -+ unsigned int offset:4; -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int mtime; -+ unsigned int start_block; -+ unsigned int file_size:32; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header_1 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:4; /* index into uid table */ -+ unsigned int guid:4; /* index into guid table */ -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header_1 { -+ struct squashfs_base_inode_header_1 base; -+ struct squashfs_dev_inode_header_1 dev; -+ struct squashfs_symlink_inode_header_1 symlink; -+ struct squashfs_reg_inode_header_1 reg; -+ struct squashfs_dir_inode_header_1 dir; -+ struct squashfs_ipc_inode_header_1 ipc; -+}; -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n) \ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 4);\ -+ SQUASHFS_SWAP((s)->guid, d, 20, 4); -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_ipc_inode_header_1));\ -+ SQUASHFS_SWAP((s)->type, d, 24, 4);\ -+ SQUASHFS_SWAP((s)->offset, d, 28, 4);\ -+} -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_dev_inode_header_1));\ -+ SQUASHFS_SWAP((s)->rdev, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header_1));\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_reg_inode_header_1));\ -+ SQUASHFS_SWAP((s)->mtime, d, 24, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 56, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 88, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ -+ sizeof(struct squashfs_dir_inode_header_1));\ -+ SQUASHFS_SWAP((s)->file_size, d, 24, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 43, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 56, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 88, 24);\ -+} -+ -+#endif -+ -+#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY -+ -+struct squashfs_dir_index_2 { -+ unsigned int index:27; -+ unsigned int start_block:29; -+ unsigned char size; -+ unsigned char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_base_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_ipc_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+} __attribute__ ((packed)); -+ -+struct squashfs_dev_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned short rdev; -+} __attribute__ ((packed)); -+ -+struct squashfs_symlink_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned short symlink_size; -+ char symlink[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_reg_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int mtime; -+ unsigned int start_block; -+ unsigned int fragment; -+ unsigned int offset; -+ unsigned int file_size:32; -+ unsigned short block_list[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int file_size:19; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+struct squashfs_ldir_inode_header_2 { -+ unsigned int inode_type:4; -+ unsigned int mode:12; /* protection */ -+ unsigned int uid:8; /* index into uid table */ -+ unsigned int guid:8; /* index into guid table */ -+ unsigned int file_size:27; -+ unsigned int offset:13; -+ unsigned int mtime; -+ unsigned int start_block:24; -+ unsigned int i_count:16; -+ struct squashfs_dir_index_2 index[0]; -+} __attribute__ ((packed)); -+ -+union squashfs_inode_header_2 { -+ struct squashfs_base_inode_header_2 base; -+ struct squashfs_dev_inode_header_2 dev; -+ struct squashfs_symlink_inode_header_2 symlink; -+ struct squashfs_reg_inode_header_2 reg; -+ struct squashfs_dir_inode_header_2 dir; -+ struct squashfs_ldir_inode_header_2 ldir; -+ struct squashfs_ipc_inode_header_2 ipc; -+}; -+ -+struct squashfs_dir_header_2 { -+ unsigned int count:8; -+ unsigned int start_block:24; -+} __attribute__ ((packed)); -+ -+struct squashfs_dir_entry_2 { -+ unsigned int offset:13; -+ unsigned int type:3; -+ unsigned int size:8; -+ char name[0]; -+} __attribute__ ((packed)); -+ -+struct squashfs_fragment_entry_2 { -+ unsigned int start_block; -+ unsigned int size; -+} __attribute__ ((packed)); -+ -+#define SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ -+ SQUASHFS_MEMSET(s, d, n);\ -+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ -+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ -+ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ -+ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ -+ -+#define SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, n) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ -+} -+ -+#define SQUASHFS_SWAP_IPC_INODE_HEADER_2(s, d) \ -+ SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, sizeof(struct squashfs_ipc_inode_header_2)) -+ -+#define SQUASHFS_SWAP_DEV_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_dev_inode_header_2)); \ -+ SQUASHFS_SWAP((s)->rdev, d, 32, 16);\ -+} -+ -+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_symlink_inode_header_2));\ -+ SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\ -+} -+ -+#define SQUASHFS_SWAP_REG_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_reg_inode_header_2));\ -+ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->fragment, d, 96, 32);\ -+ SQUASHFS_SWAP((s)->offset, d, 128, 32);\ -+ SQUASHFS_SWAP((s)->file_size, d, 160, 32);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_dir_inode_header_2));\ -+ SQUASHFS_SWAP((s)->file_size, d, 32, 19);\ -+ SQUASHFS_SWAP((s)->offset, d, 51, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 64, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 96, 24);\ -+} -+ -+#define SQUASHFS_SWAP_LDIR_INODE_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ -+ sizeof(struct squashfs_ldir_inode_header_2));\ -+ SQUASHFS_SWAP((s)->file_size, d, 32, 27);\ -+ SQUASHFS_SWAP((s)->offset, d, 59, 13);\ -+ SQUASHFS_SWAP((s)->mtime, d, 72, 32);\ -+ SQUASHFS_SWAP((s)->start_block, d, 104, 24);\ -+ SQUASHFS_SWAP((s)->i_count, d, 128, 16);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_INDEX_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index_2));\ -+ SQUASHFS_SWAP((s)->index, d, 0, 27);\ -+ SQUASHFS_SWAP((s)->start_block, d, 27, 29);\ -+ SQUASHFS_SWAP((s)->size, d, 56, 8);\ -+} -+#define SQUASHFS_SWAP_DIR_HEADER_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header_2));\ -+ SQUASHFS_SWAP((s)->count, d, 0, 8);\ -+ SQUASHFS_SWAP((s)->start_block, d, 8, 24);\ -+} -+ -+#define SQUASHFS_SWAP_DIR_ENTRY_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry_2));\ -+ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ -+ SQUASHFS_SWAP((s)->type, d, 13, 3);\ -+ SQUASHFS_SWAP((s)->size, d, 16, 8);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_ENTRY_2(s, d) {\ -+ SQUASHFS_SWAP_START\ -+ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry_2));\ -+ SQUASHFS_SWAP((s)->start_block, d, 0, 32);\ -+ SQUASHFS_SWAP((s)->size, d, 32, 32);\ -+} -+ -+#define SQUASHFS_SWAP_FRAGMENT_INDEXES_2(s, d, n) SQUASHFS_SWAP_INTS(s, d, n) -+ -+/* fragment and fragment table defines */ -+#define SQUASHFS_FRAGMENT_BYTES_2(A) (A * sizeof(struct squashfs_fragment_entry_2)) -+ -+#define SQUASHFS_FRAGMENT_INDEX_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_OFFSET_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) % \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEXES_2(A) ((SQUASHFS_FRAGMENT_BYTES_2(A) + \ -+ SQUASHFS_METADATA_SIZE - 1) / \ -+ SQUASHFS_METADATA_SIZE) -+ -+#define SQUASHFS_FRAGMENT_INDEX_BYTES_2(A) (SQUASHFS_FRAGMENT_INDEXES_2(A) *\ -+ sizeof(int)) -+ -+#endif -+ -+#ifdef __KERNEL__ -+ -+/* -+ * macros used to swap each structure entry, taking into account -+ * bitfields and different bitfield placing conventions on differing -+ * architectures -+ */ -+ -+#include -+ -+#ifdef __BIG_ENDIAN -+ /* convert from little endian to big endian */ -+#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ -+ tbits, b_pos) -+#else -+ /* convert from big endian to little endian */ -+#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ -+ tbits, 64 - tbits - b_pos) -+#endif -+ -+#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\ -+ b_pos = pos % 8;\ -+ val = 0;\ -+ s = (unsigned char *)p + (pos / 8);\ -+ d = ((unsigned char *) &val) + 7;\ -+ for(bits = 0; bits < (tbits + b_pos); bits += 8) \ -+ *d-- = *s++;\ -+ value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\ -+} -+ -+#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n); -+ -+#endif -+#endif -diff -urN linux-2.6.23/include/linux/squashfs_fs_i.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_i.h ---- linux-2.6.23/include/linux/squashfs_fs_i.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_i.h 2007-11-13 18:58:41.000000000 -0500 -@@ -0,0 +1,45 @@ -+#ifndef SQUASHFS_FS_I -+#define SQUASHFS_FS_I -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs_i.h -+ */ -+ -+struct squashfs_inode_info { -+ long long start_block; -+ unsigned int offset; -+ union { -+ struct { -+ long long fragment_start_block; -+ unsigned int fragment_size; -+ unsigned int fragment_offset; -+ long long block_list_start; -+ } s1; -+ struct { -+ long long directory_index_start; -+ unsigned int directory_index_offset; -+ unsigned int directory_index_count; -+ unsigned int parent_inode; -+ } s2; -+ } u; -+ struct inode vfs_inode; -+}; -+#endif -diff -urN linux-2.6.23/include/linux/squashfs_fs_sb.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_sb.h ---- linux-2.6.23/include/linux/squashfs_fs_sb.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_sb.h 2007-11-13 19:19:28.000000000 -0500 -@@ -0,0 +1,76 @@ -+#ifndef SQUASHFS_FS_SB -+#define SQUASHFS_FS_SB -+/* -+ * Squashfs -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * squashfs_fs_sb.h -+ */ -+ -+#include -+ -+struct squashfs_cache { -+ long long block; -+ int length; -+ long long next_index; -+ char *data; -+}; -+ -+struct squashfs_fragment_cache { -+ long long block; -+ int length; -+ unsigned int locked; -+ char *data; -+}; -+ -+struct squashfs_sb_info { -+ struct squashfs_super_block sblk; -+ int devblksize; -+ int devblksize_log2; -+ int swap; -+ struct squashfs_cache *block_cache; -+ struct squashfs_fragment_cache *fragment; -+ int next_cache; -+ int next_fragment; -+ int next_meta_index; -+ unsigned int *uid; -+ unsigned int *guid; -+ long long *fragment_index; -+ unsigned int *fragment_index_2; -+ char *read_page; -+ //struct mutex read_data_mutex; -+ struct mutex read_page_mutex; -+ struct mutex block_cache_mutex; -+ struct mutex fragment_mutex; -+ struct mutex meta_index_mutex; -+ wait_queue_head_t waitq; -+ wait_queue_head_t fragment_wait_queue; -+ struct meta_index *meta_index; -+ //z_stream stream; -+ long long *inode_lookup_table; -+ int unused_cache_blks; -+ int unused_frag_blks; -+ int (*read_inode)(struct inode *i, squashfs_inode_t \ -+ inode); -+ long long (*read_blocklist)(struct inode *inode, int \ -+ index, int readahead_blks, char *block_list, \ -+ unsigned short **block_p, unsigned int *bsize); -+ int (*read_fragment_index_table)(struct super_block *s); -+}; -+#endif - diff --git a/packages/linux/linux-openmoko-2.6.28/0002-MERGE-via-pending-tracking-hist-subject-usb-gadget-f.patch b/packages/linux/linux-openmoko-2.6.28/0002-MERGE-via-pending-tracking-hist-subject-usb-gadget-f.patch deleted file mode 100644 index bfe9d08464..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0002-MERGE-via-pending-tracking-hist-subject-usb-gadget-f.patch +++ /dev/null @@ -1,50 +0,0 @@ -From e4e155b8e3aeebb54b4295bce17ef5e85decd44d Mon Sep 17 00:00:00 2001 -From: merge -Date: Tue, 20 Jan 2009 10:40:16 +0000 -Subject: [PATCH 2/8] MERGE-via-pending-tracking-hist-subject-usb-gadget-fix-rndis-w -pending-tracking-hist top was subject-usb-gadget-fix-rndis-w / 8a5ccc279cef316a16f921d7486f4a9efa234493 ... parent commitmessage: -From: David Brownell -Subject: USB: gadget: fix rndis working at high speed - -X-Git-Tag: v2.6.28-rc9~8^2~7 -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=7c12414955e9b44a3e33d54e578bf008caa4475d - -USB: gadget: fix rndis working at high speed - -Fix a bug specific to highspeed mode in the recently updated RNDIS -support: it wasn't setting up the high speed notification endpoint, -which prevented high speed RNDIS links from working. - -Signed-off-by: David Brownell -Tested-by: Anand Gadiyar -Cc: stable -Signed-off-by: Greg Kroah-Hartman ---- - drivers/usb/gadget/f_rndis.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c -index 428b599..3a8bb53 100644 ---- a/drivers/usb/gadget/f_rndis.c -+++ b/drivers/usb/gadget/f_rndis.c -@@ -651,6 +651,8 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f) - fs_in_desc.bEndpointAddress; - hs_out_desc.bEndpointAddress = - fs_out_desc.bEndpointAddress; -+ hs_notify_desc.bEndpointAddress = -+ fs_notify_desc.bEndpointAddress; - - /* copy descriptors, and track endpoint copies */ - f->hs_descriptors = usb_copy_descriptors(eth_hs_function); -@@ -662,6 +664,8 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f) - f->hs_descriptors, &hs_in_desc); - rndis->hs.out = usb_find_endpoint(eth_hs_function, - f->hs_descriptors, &hs_out_desc); -+ rndis->hs.notify = usb_find_endpoint(eth_hs_function, -+ f->hs_descriptors, &hs_notify_desc); - } - - rndis->port.open = rndis_open; --- -1.5.2.2 - diff --git a/packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch b/packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch deleted file mode 100644 index cd2c678058..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -urN linux-2.6.23/init/do_mounts_rd.c linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c ---- linux-2.6.23/init/do_mounts_rd.c 2007-10-09 16:31:38.000000000 -0400 -+++ linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c 2007-11-13 18:58:41.000000000 -0500 -@@ -5,6 +5,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -39,6 +40,7 @@ - * numbers could not be found. - * - * We currently check for the following magic numbers: -+ * squashfs - * minix - * ext2 - * romfs -@@ -53,6 +55,7 @@ - struct ext2_super_block *ext2sb; - struct romfs_super_block *romfsb; - struct cramfs_super *cramfsb; -+ struct squashfs_super_block *squashfsb; - int nblocks = -1; - unsigned char *buf; - -@@ -64,6 +67,7 @@ - ext2sb = (struct ext2_super_block *) buf; - romfsb = (struct romfs_super_block *) buf; - cramfsb = (struct cramfs_super *) buf; -+ squashfsb = (struct squashfs_super_block *) buf; - memset(buf, 0xe5, size); - - /* -@@ -101,6 +105,18 @@ - goto done; - } - -+ /* squashfs is at block zero too */ -+ if (squashfsb->s_magic == SQUASHFS_MAGIC) { -+ printk(KERN_NOTICE -+ "RAMDISK: squashfs filesystem found at block %d\n", -+ start_block); -+ if (squashfsb->s_major < 3) -+ nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; -+ else -+ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; -+ goto done; -+ } -+ - /* - * Read block 1 to test for minix and ext2 superblock - */ - diff --git a/packages/linux/linux-openmoko-2.6.28/0003-consider-alrm-enable-in-pcf50633_rtc_set_alarm.patch b/packages/linux/linux-openmoko-2.6.28/0003-consider-alrm-enable-in-pcf50633_rtc_set_alarm.patch deleted file mode 100644 index 48cf384c67..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0003-consider-alrm-enable-in-pcf50633_rtc_set_alarm.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 72669a7c7637dba5f4f2ae4a8301cf9560f0a807 Mon Sep 17 00:00:00 2001 -From: Werner Almesberger -Date: Fri, 30 Jan 2009 08:07:27 +0000 -Subject: [PATCH 3/8] consider alrm->enable in pcf50633_rtc_set_alarm - -Backported to .28, original message below: - -Hi Balaji, - -Mickey mentioned to me that he had trouble with the RTC wakeup interrupt. -I had a quick look at the problem and it seems that alrm->enable doesn't -get propagated when setting the alarm time with RTC_WKALM_SET. - -Does something like my patch below look right ? We also don't handle -alrm->pending, but I'm not sure if we have to. - -I tested this only very lightly since my current andy-tracking crashes -in soc_suspend. If nobody else beats me to it, I'll have a look at it -tomorrow. - -- Werner - ----------------------------------- cut here ----------------------------------- - -According to Documentation/rtc.txt, RTC_WKALM_SET sets the alarm time -and enables/disables the alarm. We implement RTC_WKALM_SET through -pcf50633_rtc_set_alarm. The enabling/disabling part was missing. - -Signed-off-by: Werner Almesberger -Reported-by: Michael 'Mickey' Lauer ---- - drivers/rtc/rtc-pcf50633.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/drivers/rtc/rtc-pcf50633.c b/drivers/rtc/rtc-pcf50633.c -index e1576d2..ddd6f89 100644 ---- a/drivers/rtc/rtc-pcf50633.c -+++ b/drivers/rtc/rtc-pcf50633.c -@@ -221,8 +221,9 @@ static int pcf50633_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) - if (ret) - dev_err(dev, "Failed to write alarm time %d\n", ret); - -- if (!alarm_masked) -+ if (!alarm_masked || alrm->enabled) - pcf50633_irq_unmask(pcf, PCF50633_IRQ_ALARM); -+ pcf->rtc.alarm_enabled = alrm->enabled; - - return 0; - } --- -1.5.2.2 - diff --git a/packages/linux/linux-openmoko-2.6.28/0003-squashfs-force-O2.patch b/packages/linux/linux-openmoko-2.6.28/0003-squashfs-force-O2.patch deleted file mode 100644 index 550077b9fa..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0003-squashfs-force-O2.patch +++ /dev/null @@ -1,17 +0,0 @@ -The kernel patch from the squashfs-3.1r2 release did not compile on my -armeb-linux-gcc 4.1.1 when optimizing for size (-Os). This works around -that problem by using optimization flag -O2 instead for these two files. - -Signed-off-by: Leon Woestenberg - -Index: linux-2.6.19/fs/squashfs/Makefile -=================================================================== ---- linux-2.6.19.orig/fs/squashfs/Makefile -+++ linux-2.6.19/fs/squashfs/Makefile -@@ -5,3 +5,6 @@ - obj-$(CONFIG_SQUASHFS) += squashfs.o - squashfs-y += inode.o - squashfs-y += squashfs2_0.o -+ -+CFLAGS_squashfs2_0.o = "-O2" -+CFLAGS_inode.o = "-O2" diff --git a/packages/linux/linux-openmoko-2.6.28/0004-manage-RTC-alarm-pending-flag-of-PCF50633.patch b/packages/linux/linux-openmoko-2.6.28/0004-manage-RTC-alarm-pending-flag-of-PCF50633.patch deleted file mode 100644 index dadbd92941..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0004-manage-RTC-alarm-pending-flag-of-PCF50633.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 1fb682d2dfdaa19a50073fec6239f2bda9dbcc71 Mon Sep 17 00:00:00 2001 -From: Werner Almesberger -Date: Fri, 30 Jan 2009 14:37:40 +0000 -Subject: [PATCH 4/8] manage RTC alarm "pending" flag of PCF50633 - -Backported to .28, original message below: - -This patch adds setting and clearing of the "pending" flag of the -RTC alarm. The semantics follow the UEFI specification 2.2 available -at http://www.uefi.org/specs/, i.e., the "pending" flag is cleared -by disabling the alarm, but not by any other condition (such as the -passing of time, a successful wakeup, or setting of a new alarm.) - -Signed-off-by: Werner Almesberger ---- - drivers/rtc/rtc-pcf50633.c | 5 +++++ - include/linux/mfd/pcf50633/rtc.h | 1 + - 2 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/drivers/rtc/rtc-pcf50633.c b/drivers/rtc/rtc-pcf50633.c -index ddd6f89..0fdadbd 100644 ---- a/drivers/rtc/rtc-pcf50633.c -+++ b/drivers/rtc/rtc-pcf50633.c -@@ -185,6 +185,7 @@ static int pcf50633_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) - pcf = dev_get_drvdata(dev); - - alrm->enabled = pcf->rtc.alarm_enabled; -+ alrm->pending = pcf->rtc.alarm_pending; - - ret = pcf50633_read_block(pcf, PCF50633_REG_RTCSCA, - PCF50633_TI_EXTENT, &pcf_tm.time[0]); -@@ -221,6 +222,9 @@ static int pcf50633_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) - if (ret) - dev_err(dev, "Failed to write alarm time %d\n", ret); - -+ if (!alrm->enabled) -+ pcf->rtc.alarm_pending = 0; -+ - if (!alarm_masked || alrm->enabled) - pcf50633_irq_unmask(pcf, PCF50633_IRQ_ALARM); - pcf->rtc.alarm_enabled = alrm->enabled; -@@ -240,6 +244,7 @@ static void pcf50633_rtc_irq(struct pcf50633 *pcf, int irq, void *unused) - switch (irq) { - case PCF50633_IRQ_ALARM: - rtc_update_irq(pcf->rtc.rtc_dev, 1, RTC_AF | RTC_IRQF); -+ pcf->rtc.alarm_pending = 1; - break; - case PCF50633_IRQ_SECOND: - rtc_update_irq(pcf->rtc.rtc_dev, 1, RTC_PF | RTC_IRQF); -diff --git a/include/linux/mfd/pcf50633/rtc.h b/include/linux/mfd/pcf50633/rtc.h -index ce8ad8f..80cc6af 100644 ---- a/include/linux/mfd/pcf50633/rtc.h -+++ b/include/linux/mfd/pcf50633/rtc.h -@@ -34,6 +34,7 @@ - struct pcf50633_rtc { - int alarm_enabled; - int second_enabled; -+ int alarm_pending; - - struct rtc_device *rtc_dev; - struct platform_device *pdev; --- -1.5.2.2 - diff --git a/packages/linux/linux-openmoko-2.6.28/0004-squashfs-Kconfig.patch b/packages/linux/linux-openmoko-2.6.28/0004-squashfs-Kconfig.patch deleted file mode 100644 index f2b3db9942..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0004-squashfs-Kconfig.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff -urN linux-2.6.23/fs/Kconfig linux-2.6.23.sqlzma-ng/fs/Kconfig ---- linux-2.6.23/fs/Kconfig 2007-10-09 16:31:38.000000000 -0400 -+++ linux-2.6.23.sqlzma-ng/fs/Kconfig 2007-11-13 18:58:41.000000000 -0500 -@@ -1364,6 +1364,56 @@ - - If unsure, say N. - -+config SQUASHFS -+ tristate "SquashFS 3.3 - Squashed file system support" -+ select ZLIB_INFLATE -+ help -+ Saying Y here includes support for SquashFS 3.3 (a Compressed -+ Read-Only File System). Squashfs is a highly compressed read-only -+ filesystem for Linux. It uses zlib compression to compress both -+ files, inodes and directories. Inodes in the system are very small -+ and all blocks are packed to minimise data overhead. Block sizes -+ greater than 4K are supported up to a maximum of 1 Mbytes (default -+ block size 128K). SquashFS 3.3 supports 64 bit filesystems and files -+ (larger than 4GB), full uid/gid information, hard links and timestamps. -+ -+ Squashfs is intended for general read-only filesystem use, for -+ archival use (i.e. in cases where a .tar.gz file may be used), and in -+ embedded systems where low overhead is needed. Further information -+ and filesystem tools are available from http://squashfs.sourceforge.net. -+ -+ If you want to compile this as a module ( = code which can be -+ inserted in and removed from the running kernel whenever you want), -+ say M here and read . The module -+ will be called squashfs. Note that the root file system (the one -+ containing the directory /) cannot be compiled as a module. -+ -+ If unsure, say N. -+ -+config SQUASHFS_EMBEDDED -+ -+ bool "Additional option for memory-constrained systems" -+ depends on SQUASHFS -+ default n -+ help -+ Saying Y here allows you to specify cache size. -+ -+ If unsure, say N. -+ -+config SQUASHFS_FRAGMENT_CACHE_SIZE -+ int "Number of fragments cached" if SQUASHFS_EMBEDDED -+ depends on SQUASHFS -+ default "3" -+ help -+ By default SquashFS caches the last 3 fragments read from -+ the filesystem. Increasing this amount may mean SquashFS -+ has to re-read fragments less often from disk, at the expense -+ of extra system memory. Decreasing this amount will mean -+ SquashFS uses less memory at the expense of extra reads from disk. -+ -+ Note there must be at least one cached fragment. Anything -+ much more than three will probably not make much difference. -+ - config VXFS_FS - tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" - depends on BLOCK - diff --git a/packages/linux/linux-openmoko-2.6.28/0005-debug-glamo-allow-slower-memory-bus.patch.patch b/packages/linux/linux-openmoko-2.6.28/0005-debug-glamo-allow-slower-memory-bus.patch.patch deleted file mode 100644 index 39ae653fef..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0005-debug-glamo-allow-slower-memory-bus.patch.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 8c787f1c57c3b09beece662faabfab419ae5c8d6 Mon Sep 17 00:00:00 2001 -From: Andy Green -Date: Wed, 28 Jan 2009 09:58:59 +0000 -Subject: [PATCH 5/8] debug-glamo-allow-slower-memory-bus.patch - -Signed-off-by: Andy Green ---- - drivers/mfd/glamo/glamo-core.c | 34 +++++++++++++++++++++++++++++++++- - 1 files changed, 33 insertions(+), 1 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c -index b4595a8..e6253de 100644 ---- a/drivers/mfd/glamo/glamo-core.c -+++ b/drivers/mfd/glamo/glamo-core.c -@@ -58,6 +58,25 @@ - - #define GLAMO_MEM_REFRESH_COUNT 0x100 - -+ -+/* -+ * Glamo internal settings -+ * -+ * We run the memory interface from the faster PLLB on 2.6.28 kernels and -+ * above. Couple of GTA02 users report trouble with memory bus when they -+ * upgraded from 2.6.24. So this parameter allows reversion to 2.6.24 -+ * scheme if their Glamo chip needs it. -+ * -+ * you can override the faster default on kernel commandline using -+ * -+ * glamo3362.slow_memory=1 -+ * -+ * for example -+ */ -+ -+static int slow_memory = 0; -+module_param(slow_memory, int, 0644); -+ - struct reg_range { - int start; - int count; -@@ -786,6 +805,19 @@ int glamo_run_script(struct glamo_core *glamo, struct glamo_script *script, - while ((__reg_read(glamo, GLAMO_REG_PLL_GEN5) & 3) != 3) - ; - break; -+ -+ /* -+ * couple of people reported artefacts with 2.6.28 changes, this -+ * allows reversion to 2.6.24 settings -+ */ -+ -+ case 0x200: -+ if (slow_memory) -+ __reg_write(glamo, script[i].reg, 0xef0); -+ else -+ __reg_write(glamo, script[i].reg, 0xe03); -+ break; -+ - default: - __reg_write(glamo, script[i].reg, script[i].val); - break; -@@ -848,7 +880,7 @@ static struct glamo_script glamo_init_script[] = { - * b7..b4 = 0 = no wait states on read or write - * b0 = 1 select PLL2 for Host interface, b1 = enable it - */ -- { 0x200, 0x0e03 }, -+ { 0x200, 0x0e03 /* this is replaced by script parser */ }, - { 0x202, 0x07ff }, - { 0x212, 0x0000 }, - { 0x214, 0x4000 }, --- -1.5.2.2 - diff --git a/packages/linux/linux-openmoko-2.6.28/0005-squashfs-Makefile.patch b/packages/linux/linux-openmoko-2.6.28/0005-squashfs-Makefile.patch deleted file mode 100644 index b0ec4cebb8..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0005-squashfs-Makefile.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN linux-2.6.24/fs/Makefile linux-2.6.24.sqlzma-ng/fs/Makefile ---- linux-2.6.24/fs/Makefile 2007-11-13 21:24:14.000000000 -0500 -+++ linux-2.6.24.sqlzma-ng/fs/Makefile 2007-11-13 21:19:15.000000000 -0500 -@@ -72,6 +72,7 @@ - obj-$(CONFIG_JBD2) += jbd2/ - obj-$(CONFIG_EXT2_FS) += ext2/ - obj-$(CONFIG_CRAMFS) += cramfs/ -+obj-$(CONFIG_SQUASHFS) += squashfs/ - obj-y += ramfs/ - obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ - obj-$(CONFIG_CODA_FS) += coda/ - diff --git a/packages/linux/linux-openmoko-2.6.28/0006-Subject-fix_glamo_xrandr_bug.patch.patch b/packages/linux/linux-openmoko-2.6.28/0006-Subject-fix_glamo_xrandr_bug.patch.patch deleted file mode 100644 index b65e3513c2..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0006-Subject-fix_glamo_xrandr_bug.patch.patch +++ /dev/null @@ -1,46 +0,0 @@ -From d0bc6c5baae3a711f5039ea5440bafb37ebdfc24 Mon Sep 17 00:00:00 2001 -From: Balaji Rao -Date: Wed, 28 Jan 2009 19:30:45 +0000 -Subject: [PATCH 6/8] Subject: fix_glamo_xrandr_bug.patch - -fix_glamo_xrandr_bug.patch - -This patch reintroduces the 2-cycle delay used when accessing glamo-fb -registers. This seems to be required even when the corresponding -registers in HOST_BUS are off. - -Signed-off-by: Balaji Rao ---- - drivers/mfd/glamo/glamo-fb.c | 10 ++++++++++ - 1 files changed, 10 insertions(+), 0 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-fb.c b/drivers/mfd/glamo/glamo-fb.c -index 64fe464..91cf75b 100644 ---- a/drivers/mfd/glamo/glamo-fb.c -+++ b/drivers/mfd/glamo/glamo-fb.c -@@ -86,12 +86,22 @@ static struct platform_device glamo_spi_dev = { - static int reg_read(struct glamofb_handle *glamo, - u_int16_t reg) - { -+ int i = 0; -+ -+ for (i = 0; i != 2; i ++) -+ nop(); -+ - return readw(glamo->base + reg); - } - - static void reg_write(struct glamofb_handle *glamo, - u_int16_t reg, u_int16_t val) - { -+ int i = 0; -+ -+ for (i = 0; i != 2; i ++) -+ nop(); -+ - writew(val, glamo->base + reg); - } - --- -1.5.2.2 - diff --git a/packages/linux/linux-openmoko-2.6.28/0007-Subject-glamo_fix_improper_xrandr_geometry_setting.patch b/packages/linux/linux-openmoko-2.6.28/0007-Subject-glamo_fix_improper_xrandr_geometry_setting.patch deleted file mode 100644 index 0856e06020..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0007-Subject-glamo_fix_improper_xrandr_geometry_setting.patch +++ /dev/null @@ -1,216 +0,0 @@ -From 3192193f8a1a799783963aaf10119b39c3e8df24 Mon Sep 17 00:00:00 2001 -From: Balaji Rao -Date: Thu, 29 Jan 2009 18:25:32 +0000 -Subject: [PATCH 7/8] Subject: glamo_fix_improper_xrandr_geometry_setting.patch - -glamo_fix_improper_xrandr_geometry_setting.patch - -Switching to xrandr -o 3 from xrandr -o 1 caused the screen to look crazy -because of the way lcd geometry is set in glamo. This patch fixes it. - -Signed-off-by: Balaji Rao ---- - drivers/mfd/glamo/glamo-fb.c | 109 ++++++++++++++++++----------------------- - 1 files changed, 48 insertions(+), 61 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-fb.c b/drivers/mfd/glamo/glamo-fb.c -index 91cf75b..16531fa 100644 ---- a/drivers/mfd/glamo/glamo-fb.c -+++ b/drivers/mfd/glamo/glamo-fb.c -@@ -75,6 +75,7 @@ struct glamofb_handle { - int cursor_on; - u_int32_t pseudo_pal[16]; - spinlock_t lock_cmd; -+ int angle; /* Current rotation angle */ - }; - - /* 'sibling' spi device for lcm init */ -@@ -255,11 +256,6 @@ static void reg_set_bit_mask(struct glamofb_handle *glamo, - #define GLAMO_LCD_HV_RETR_DISP_START_MASK 0x03FF - #define GLAMO_LCD_HV_RETR_DISP_END_MASK 0x03FF - --enum orientation { -- ORIENTATION_PORTRAIT, -- ORIENTATION_LANDSCAPE --}; -- - - /* the caller has to enxure lock_cmd is held and we are in cmd mode */ - static void __rotate_lcd(struct glamofb_handle *glamo, __u32 rotation) -@@ -275,17 +271,22 @@ static void __rotate_lcd(struct glamofb_handle *glamo, __u32 rotation) - switch (rotation) { - case FB_ROTATE_UR: - glamo_rot = GLAMO_LCD_ROT_MODE_0; -+ glamo->angle = 0; - break; - case FB_ROTATE_CW: - glamo_rot = GLAMO_LCD_ROT_MODE_90; -+ glamo->angle = 90; - break; - case FB_ROTATE_UD: - glamo_rot = GLAMO_LCD_ROT_MODE_180; -+ glamo->angle = 180; - break; - case FB_ROTATE_CCW: - glamo_rot = GLAMO_LCD_ROT_MODE_270; -+ glamo->angle = 270; - break; - default: -+ glamo->angle = 0; - glamo_rot = GLAMO_LCD_ROT_MODE_0; - break; - } -@@ -301,38 +302,12 @@ static void __rotate_lcd(struct glamofb_handle *glamo, __u32 rotation) - GLAMO_LCD_MODE1_ROTATE_EN : 0); - } - --static enum orientation get_orientation(struct fb_var_screeninfo *var) --{ -- if (var->xres <= var->yres) -- return ORIENTATION_PORTRAIT; -- -- return ORIENTATION_LANDSCAPE; --} -- --static int will_orientation_change(struct fb_var_screeninfo *var) --{ -- enum orientation orient = get_orientation(var); -- -- switch (orient) { -- case ORIENTATION_LANDSCAPE: -- if (var->rotate == FB_ROTATE_UR || -- var->rotate == FB_ROTATE_UD) -- return 1; -- break; -- case ORIENTATION_PORTRAIT: -- if (var->rotate == FB_ROTATE_CW || -- var->rotate == FB_ROTATE_CCW) -- return 1; -- break; -- } -- return 0; --} -- - static void glamofb_update_lcd_controller(struct glamofb_handle *glamo, - struct fb_var_screeninfo *var) - { -- int sync, bp, disp, fp, total, xres, yres, pitch, orientation_changing; -+ int sync, bp, disp, fp, total, pitch; - unsigned long flags; -+ int width, height; - - if (!glamo || !var) - return; -@@ -355,31 +330,52 @@ static void glamofb_update_lcd_controller(struct glamofb_handle *glamo, - GLAMO_ENGINE_LCD, - var->pixclock); - -- xres = var->xres; -- yres = var->yres; -+ if (glamo->angle == 90 || glamo->angle == 270) { -+ /* -+ * But if we are going back to portrait mode from here, -+ * we get inverted values from Xglamo -+ */ -+ if (!(var->rotate == FB_ROTATE_UR || -+ var->rotate == FB_ROTATE_UD)) { -+ width = var->yres; -+ height = var->xres; -+ } else { -+ width = var->xres; -+ height = var->yres; -+ } - -- /* figure out if orientation is going to change */ -- orientation_changing = will_orientation_change(var); -+ } else { -+ width = var->xres; -+ height = var->yres; -+ } - -- /* adjust the pitch according to new orientation to come */ -+ /* Portrait ? */ -+ if (var->rotate == FB_ROTATE_UR || var->rotate == FB_ROTATE_UD) { -+ /* We don't need to set xres and yres in this particular case -+ * because Xglamo does it for us */ -+ if (!(glamo->angle == 90 || glamo->angle == 270)) { -+ var->xres = width;var->yres = height; -+ } - -- if (orientation_changing) { -- pitch = var->yres * var->bits_per_pixel / 8; -- } else { -- pitch = var->xres * var->bits_per_pixel / 8; -- } -+ var->xres_virtual = width * 2; -+ var->yres_virtual = height; -+ pitch = width * var->bits_per_pixel / 8; -+ } else { -+ var->xres = height; -+ var->yres = width; -+ var->xres_virtual = height; -+ var->yres_virtual = width * 2; -+ pitch = height * var->bits_per_pixel / 8; -+ } - -- /* -- * set the desired LCD geometry -- */ - reg_set_bit_mask(glamo, - GLAMO_REG_LCD_WIDTH, - GLAMO_LCD_WIDTH_MASK, -- xres); -+ width); - reg_set_bit_mask(glamo, - GLAMO_REG_LCD_HEIGHT, - GLAMO_LCD_HEIGHT_MASK, -- yres); -+ height); - reg_set_bit_mask(glamo, - GLAMO_REG_LCD_PITCH, - GLAMO_LCD_PITCH_MASK, -@@ -388,22 +384,11 @@ static void glamofb_update_lcd_controller(struct glamofb_handle *glamo, - /* honour the rotation request */ - __rotate_lcd(glamo, var->rotate); - -- /* update the reported geometry of the framebuffer. */ -- if (orientation_changing) { -- var->xres_virtual = var->xres = yres; -- var->xres_virtual *= 2; -- var->yres_virtual = var->yres = xres; -- } else { -- var->xres_virtual = var->xres = xres; -- var->yres_virtual = var->yres = yres; -- var->yres_virtual *= 2; -- } -- - /* update scannout timings */ - sync = 0; - bp = sync + var->hsync_len; - disp = bp + var->left_margin; -- fp = disp + xres; -+ fp = disp + width; - total = fp + var->right_margin; - - reg_set_bit_mask(glamo, GLAMO_REG_LCD_HORIZ_TOTAL, -@@ -420,7 +405,7 @@ static void glamofb_update_lcd_controller(struct glamofb_handle *glamo, - sync = 0; - bp = sync + var->vsync_len; - disp = bp + var->upper_margin; -- fp = disp + yres; -+ fp = disp + height; - total = fp + var->lower_margin; - - reg_set_bit_mask(glamo, GLAMO_REG_LCD_VERT_TOTAL, -@@ -836,6 +821,8 @@ static int __init glamofb_probe(struct platform_device *pdev) - glamofb->fb = fbinfo; - glamofb->dev = &pdev->dev; - -+ glamofb->angle = 0; -+ - strcpy(fbinfo->fix.id, "SMedia Glamo"); - - glamofb->reg = platform_get_resource_byname(pdev, IORESOURCE_MEM, --- -1.5.2.2 - diff --git a/packages/linux/linux-openmoko-2.6.28/0008-Send-pen-up-events-faster-side-effect-improve-illu.patch b/packages/linux/linux-openmoko-2.6.28/0008-Send-pen-up-events-faster-side-effect-improve-illu.patch deleted file mode 100644 index 5960ad0c37..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/0008-Send-pen-up-events-faster-side-effect-improve-illu.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 5e50f877f7ef2309a5318fc6ceed4903d1d80a64 Mon Sep 17 00:00:00 2001 -From: Nelson Castillo -Date: Thu, 29 Jan 2009 14:27:25 +0000 -Subject: [PATCH 8/8] Send pen-up events faster (side effect: improve illume keyboard responsiveness) -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf-8 -Content-Transfer-Encoding: 8bit - -We were waiting 60ms before reporting a pen-up event to avoid -jitter. Now we wait 8ms (actually 5 with HZ == 200). - -Thanks to Marco Trevisan for testing and pointing out that there was a -problem that could be spotted with the illume keyboard. -Note that I used the Terminal mode of the keyboard (no dictionary) -for tests. - -I also used touch_test.py and the jitter doesn't seem to be an -issue when drawing lines with the finger. - -Reported-by: Marco Trevisan (Treviño) -Signed-off-by: Nelson Castillo ---- - drivers/input/touchscreen/s3c2410_ts.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c -index bc9b410..a37adc9 100644 ---- a/drivers/input/touchscreen/s3c2410_ts.c -+++ b/drivers/input/touchscreen/s3c2410_ts.c -@@ -96,7 +96,7 @@ MODULE_LICENSE("GPL"); - - static char *s3c2410ts_name = "s3c2410 TouchScreen"; - --#define TS_RELEASE_TIMEOUT (HZ >> 4) /* ~ 60 milliseconds */ -+#define TS_RELEASE_TIMEOUT (HZ >> 7 ? HZ >> 7 : 1) /* 8ms (5ms if HZ is 200) */ - #define TS_EVENT_FIFO_SIZE (2 << 6) /* must be a power of 2 */ - - #define TS_STATE_STANDBY 0 /* initial state */ --- -1.5.2.2 - diff --git a/packages/linux/linux-openmoko-2.6.28/defconfig-oe.patch b/packages/linux/linux-openmoko-2.6.28/defconfig-oe.patch index 109e9ec83d..3f65387b78 100644 --- a/packages/linux/linux-openmoko-2.6.28/defconfig-oe.patch +++ b/packages/linux/linux-openmoko-2.6.28/defconfig-oe.patch @@ -10,28 +10,3 @@ # # Userspace binary formats -@@ -1634,9 +1631,10 @@ - # - CONFIG_LEDS_TRIGGERS=y - CONFIG_LEDS_TRIGGER_TIMER=y --# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -+CONFIG_LEDS_TRIGGER_HEARTBEAT=y - CONFIG_LEDS_TRIGGER_BACKLIGHT=y - # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set -+CONFIG_LEDS_TRIGGER_NETDEV=y - CONFIG_RTC_LIB=y - CONFIG_RTC_CLASS=y - CONFIG_RTC_HCTOSYS=y -@@ -1822,7 +1820,11 @@ - # CONFIG_SYSV_FS is not set - # CONFIG_UFS_FS is not set - CONFIG_NETWORK_FILESYSTEMS=y --# CONFIG_NFS_FS is not set -+CONFIG_NFS_FS=m -+CONFIG_NFS_V3=y -+CONFIG_NFS_V3_ACL=y -+# CONFIG_NFS_V4 is not set -+CONFIG_ROOT_NFS=y - CONFIG_NFSD=m - CONFIG_NFSD_V2_ACL=y - CONFIG_NFSD_V3=y diff --git a/packages/linux/linux-openmoko-2.6.28/openwrt-ledtrig-netdev.patch b/packages/linux/linux-openmoko-2.6.28/openwrt-ledtrig-netdev.patch deleted file mode 100644 index e87bccce61..0000000000 --- a/packages/linux/linux-openmoko-2.6.28/openwrt-ledtrig-netdev.patch +++ /dev/null @@ -1,474 +0,0 @@ -Add a netdev LED trigger for all Blinkenlights lovers... -Originally taken from https://dev.openwrt.org/ticket/2776 -Slightly updated for 2.6.24 by Mickey . - -Index: git/drivers/leds/ledtrig-netdev.c -=================================================================== ---- /dev/null -+++ git/drivers/leds/ledtrig-netdev.c -@@ -0,0 +1,438 @@ -+/* -+ * LED Kernel Netdev Trigger -+ * -+ * Toggles the LED to reflect the link and traffic state of a named net device -+ * -+ * Copyright 2007 Oliver Jowett -+ * -+ * Derived from ledtrig-timer.c which is: -+ * Copyright 2005-2006 Openedhand Ltd. -+ * Author: Richard Purdie -+ * -+ * 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. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "leds.h" -+ -+/* -+ * Configurable sysfs attributes: -+ * -+ * device_name - network device name to monitor -+ * -+ * interval - duration of LED blink, in milliseconds -+ * -+ * mode - either "none" (LED is off) or a space separated list of one or more of: -+ * link: LED's normal state reflects whether the link is up (has carrier) or not -+ * tx: LED blinks on transmitted data -+ * rx: LED blinks on receive data -+ * -+ * Some suggestions: -+ * -+ * Simple link status LED: -+ * $ echo netdev >someled/trigger -+ * $ echo eth0 >someled/device_name -+ * $ echo link >someled/mode -+ * -+ * Ethernet-style link/activity LED: -+ * $ echo netdev >someled/trigger -+ * $ echo eth0 >someled/device_name -+ * $ echo "link tx rx" >someled/mode -+ * -+ * Modem-style tx/rx LEDs: -+ * $ echo netdev >led1/trigger -+ * $ echo ppp0 >led1/device_name -+ * $ echo tx >led1/mode -+ * $ echo netdev >led2/trigger -+ * $ echo ppp0 >led2/device_name -+ * $ echo rx >led2/mode -+ * -+ */ -+ -+#define MODE_LINK 1 -+#define MODE_TX 2 -+#define MODE_RX 4 -+ -+struct led_netdev_data { -+ rwlock_t lock; -+ -+ struct timer_list timer; -+ struct notifier_block notifier; -+ -+ struct led_classdev *led_cdev; -+ struct net_device *net_dev; -+ -+ char device_name[IFNAMSIZ]; -+ unsigned interval; -+ unsigned mode; -+ unsigned link_up; -+ unsigned last_activity; -+}; -+ -+static void set_baseline_state(struct led_netdev_data *trigger_data) -+{ -+ if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) -+ led_set_brightness(trigger_data->led_cdev, LED_FULL); -+ else -+ led_set_brightness(trigger_data->led_cdev, LED_OFF); -+ -+ if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up) -+ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); -+ else -+ del_timer(&trigger_data->timer); -+} -+ -+static ssize_t led_device_name_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ read_lock(&trigger_data->lock); -+ sprintf(buf, "%s\n", trigger_data->device_name); -+ read_unlock(&trigger_data->lock); -+ -+ return strlen(buf) + 1; -+} -+ -+static ssize_t led_device_name_store(struct device *dev, -+ struct device_attribute *attr, const char *buf, size_t size) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ if (size < 0 || size >= IFNAMSIZ) -+ return -EINVAL; -+ -+ write_lock(&trigger_data->lock); -+ -+ strcpy(trigger_data->device_name, buf); -+ if (size > 0 && trigger_data->device_name[size-1] == '\n') -+ trigger_data->device_name[size-1] = 0; -+ -+ if (trigger_data->device_name[0] != 0) { -+ /* check for existing device to update from */ -+ trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name); -+ if (trigger_data->net_dev != NULL) -+ trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0; -+ set_baseline_state(trigger_data); /* updates LEDs, may start timers */ -+ } -+ -+ write_unlock(&trigger_data->lock); -+ return size; -+} -+ -+static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store); -+ -+static ssize_t led_mode_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ read_lock(&trigger_data->lock); -+ -+ if (trigger_data->mode == 0) { -+ strcpy(buf, "none\n"); -+ } else { -+ char *p = buf; -+ if (trigger_data->mode & MODE_LINK) -+ strcat(buf, "link "); -+ if (trigger_data->mode & MODE_TX) -+ strcat(buf, "tx "); -+ if (trigger_data->mode & MODE_RX) -+ strcat(buf, "rx "); -+ strcat(buf, "\n"); -+ } -+ -+ read_unlock(&trigger_data->lock); -+ -+ return strlen(buf)+1; -+} -+ -+static ssize_t led_mode_store(struct device *dev, -+ struct device_attribute *attr, const char *buf, size_t size) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ char copybuf[1024]; -+ int new_mode = -1; -+ char *p, *token; -+ -+ /* take a copy since we don't want to trash the inbound buffer when using strsep */ -+ strncpy(copybuf, buf, sizeof(copybuf)); -+ copybuf[1023] = 0; -+ p = copybuf; -+ -+ while ((token = strsep(&p, " \t\n")) != NULL) { -+ if (!*token) -+ continue; -+ -+ if (new_mode == -1) -+ new_mode = 0; -+ -+ if (!strcmp(token, "none")) -+ new_mode = 0; -+ else if (!strcmp(token, "tx")) -+ new_mode |= MODE_TX; -+ else if (!strcmp(token, "rx")) -+ new_mode |= MODE_RX; -+ else if (!strcmp(token, "link")) -+ new_mode |= MODE_LINK; -+ else -+ return -EINVAL; -+ } -+ -+ if (new_mode == -1) -+ return -EINVAL; -+ -+ write_lock(&trigger_data->lock); -+ trigger_data->mode = new_mode; -+ set_baseline_state(trigger_data); -+ write_unlock(&trigger_data->lock); -+ -+ return size; -+} -+ -+static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store); -+ -+static ssize_t led_interval_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ read_lock(&trigger_data->lock); -+ sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval)); -+ read_unlock(&trigger_data->lock); -+ -+ return strlen(buf) + 1; -+} -+ -+static ssize_t led_interval_store(struct device *dev, -+ struct device_attribute *attr, const char *buf, size_t size) -+{ -+ struct led_classdev *led_cdev = dev_get_drvdata(dev); -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ int ret = -EINVAL; -+ char *after; -+ unsigned long value = simple_strtoul(buf, &after, 10); -+ size_t count = after - buf; -+ -+ if (*after && isspace(*after)) -+ count++; -+ -+ /* impose some basic bounds on the timer interval */ -+ if (count == size && value >= 5 && value <= 10000) { -+ write_lock(&trigger_data->lock); -+ trigger_data->interval = msecs_to_jiffies(value); -+ set_baseline_state(trigger_data); // resets timer -+ write_unlock(&trigger_data->lock); -+ ret = count; -+ } -+ -+ return ret; -+} -+ -+static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store); -+ -+static int netdev_trig_notify(struct notifier_block *nb, -+ unsigned long evt, -+ void *dv) -+{ -+ struct net_device *dev = dv; -+ struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier); -+ -+ if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) -+ return NOTIFY_DONE; -+ -+ write_lock(&trigger_data->lock); -+ -+ if (strcmp(dev->name, trigger_data->device_name)) -+ goto done; -+ -+ if (evt == NETDEV_REGISTER) { -+ if (trigger_data->net_dev != NULL) -+ dev_put(trigger_data->net_dev); -+ dev_hold(dev); -+ trigger_data->net_dev = dev; -+ trigger_data->link_up = 0; -+ goto done; -+ } -+ -+ if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) { -+ dev_put(trigger_data->net_dev); -+ trigger_data->net_dev = NULL; -+ goto done; -+ } -+ -+ /* UP / DOWN / CHANGE */ -+ -+ trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev)); -+ set_baseline_state(trigger_data); -+ -+done: -+ write_unlock(&trigger_data->lock); -+ return NOTIFY_DONE; -+} -+ -+/* here's the real work! */ -+static void netdev_trig_timer(unsigned long arg) -+{ -+ struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; -+ struct net_device_stats *dev_stats; -+ unsigned new_activity; -+ -+ write_lock(&trigger_data->lock); -+ -+ if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) { -+ /* we don't need to do timer work, just reflect link state. */ -+ led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF); -+ goto no_restart; -+ } -+ -+ dev_stats = trigger_data->net_dev->get_stats(trigger_data->net_dev); -+ new_activity = -+ ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) + -+ ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0); -+ -+ if (trigger_data->mode & MODE_LINK) { -+ /* base state is ON (link present) */ -+ /* if there's no link, we don't get this far and the LED is off */ -+ -+ /* OFF -> ON always */ -+ /* ON -> OFF on activity */ -+ if (trigger_data->led_cdev->brightness == LED_OFF) { -+ led_set_brightness(trigger_data->led_cdev, LED_FULL); -+ } else if (trigger_data->last_activity != new_activity) { -+ led_set_brightness(trigger_data->led_cdev, LED_OFF); -+ } -+ } else { -+ /* base state is OFF */ -+ /* ON -> OFF always */ -+ /* OFF -> ON on activity */ -+ if (trigger_data->led_cdev->brightness == LED_FULL) { -+ led_set_brightness(trigger_data->led_cdev, LED_OFF); -+ } else if (trigger_data->last_activity != new_activity) { -+ led_set_brightness(trigger_data->led_cdev, LED_FULL); -+ } -+ } -+ -+ trigger_data->last_activity = new_activity; -+ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); -+ -+no_restart: -+ write_unlock(&trigger_data->lock); -+} -+ -+static void netdev_trig_activate(struct led_classdev *led_cdev) -+{ -+ struct led_netdev_data *trigger_data; -+ int rc; -+ -+ trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); -+ if (!trigger_data) -+ return; -+ -+ rwlock_init(&trigger_data->lock); -+ -+ trigger_data->notifier.notifier_call = netdev_trig_notify; -+ trigger_data->notifier.priority = 10; -+ -+ setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data); -+ -+ trigger_data->led_cdev = led_cdev; -+ trigger_data->net_dev = NULL; -+ trigger_data->device_name[0] = 0; -+ -+ trigger_data->mode = 0; -+ trigger_data->interval = msecs_to_jiffies(50); -+ trigger_data->link_up = 0; -+ trigger_data->last_activity = 0; -+ -+ led_cdev->trigger_data = trigger_data; -+ -+ rc = device_create_file(led_cdev->dev, &dev_attr_device_name); -+ if (rc) -+ goto err_out; -+ rc = device_create_file(led_cdev->dev, &dev_attr_mode); -+ if (rc) -+ goto err_out_device_name; -+ rc = device_create_file(led_cdev->dev, &dev_attr_interval); -+ if (rc) -+ goto err_out_mode; -+ -+ register_netdevice_notifier(&trigger_data->notifier); -+ return; -+ -+err_out_mode: -+ device_remove_file(led_cdev->dev, &dev_attr_mode); -+err_out_device_name: -+ device_remove_file(led_cdev->dev, &dev_attr_device_name); -+err_out: -+ led_cdev->trigger_data = NULL; -+ kfree(trigger_data); -+} -+ -+static void netdev_trig_deactivate(struct led_classdev *led_cdev) -+{ -+ struct led_netdev_data *trigger_data = led_cdev->trigger_data; -+ -+ if (trigger_data) { -+ unregister_netdevice_notifier(&trigger_data->notifier); -+ -+ device_remove_file(led_cdev->dev, &dev_attr_device_name); -+ device_remove_file(led_cdev->dev, &dev_attr_mode); -+ device_remove_file(led_cdev->dev, &dev_attr_interval); -+ -+ write_lock(&trigger_data->lock); -+ -+ if (trigger_data->net_dev) { -+ dev_put(trigger_data->net_dev); -+ trigger_data->net_dev = NULL; -+ } -+ -+ write_unlock(&trigger_data->lock); -+ -+ del_timer_sync(&trigger_data->timer); -+ -+ kfree(trigger_data); -+ } -+} -+ -+static struct led_trigger netdev_led_trigger = { -+ .name = "netdev", -+ .activate = netdev_trig_activate, -+ .deactivate = netdev_trig_deactivate, -+}; -+ -+static int __init netdev_trig_init(void) -+{ -+ return led_trigger_register(&netdev_led_trigger); -+} -+ -+static void __exit netdev_trig_exit(void) -+{ -+ led_trigger_unregister(&netdev_led_trigger); -+} -+ -+module_init(netdev_trig_init); -+module_exit(netdev_trig_exit); -+ -+MODULE_AUTHOR("Oliver Jowett "); -+MODULE_DESCRIPTION("Netdev LED trigger"); -+MODULE_LICENSE("GPL"); -Index: git/drivers/leds/Kconfig -=================================================================== ---- git.orig/drivers/leds/Kconfig -+++ git/drivers/leds/Kconfig -@@ -229,4 +229,11 @@ config LEDS_TRIGGER_DEFAULT_ON - This allows LEDs to be initialised in the ON state. - If unsure, say Y. - -+config LEDS_TRIGGER_NETDEV -+ tristate "LED Network Device Trigger" -+ depends on LEDS_TRIGGERS -+ help -+ This allows LEDs to be controlled by Network Device activity. -+ If unsure, say Y. -+ - endif # NEW_LEDS -Index: git/drivers/leds/Makefile -=================================================================== ---- git.orig/drivers/leds/Makefile -+++ git/drivers/leds/Makefile -@@ -30,5 +30,6 @@ obj-$(CONFIG_LEDS_NEO1973_GTA02) += leds - obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o - obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o - obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o -+obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o - obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o - obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o diff --git a/packages/linux/linux-openmoko-2.6.28_git.bb b/packages/linux/linux-openmoko-2.6.28_git.bb index b5a01f2aa3..0b779384d9 100644 --- a/packages/linux/linux-openmoko-2.6.28_git.bb +++ b/packages/linux/linux-openmoko-2.6.28_git.bb @@ -16,8 +16,8 @@ SRC_URI = "\ " S = "${WORKDIR}/git" -CONFIG_NAME_om-gta01 = "gta01-moredrivers-defconfig" -CONFIG_NAME_om-gta02 = "gta02-packaging-defconfig" +CONFIG_NAME_om-gta01 = "gta01_moredrivers_defconfig" +CONFIG_NAME_om-gta02 = "gta02_packaging_defconfig" CONFIG_NAME_om-gta03 = "gta03_defconfig" do_configure_prepend() { -- cgit 1.2.3-korg From 9b4c27d16529467cf4a5329289e9fb1b7426ecc9 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Thu, 26 Feb 2009 18:30:34 +0100 Subject: qi: enable build debug output again and bump to latest version --- conf/distro/include/sane-srcrevs.inc | 2 +- packages/qi/qi.inc | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index d24ef4dcf8..83a3e224e9 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -211,7 +211,7 @@ SRCREV_pn-tslib ?= "53" SRCREV_pn-qemu-native ?= "${QEMUSRCREV}" SRCREV_pn-qemu-sdk ?= "${QEMUSRCREV}" SRCREV_pn-qemu ?= "${QEMUSRCREV}" -SRCREV_pn-qi ?= "1fc83905fe99da92ff18e6ba671ee339477b1b9e" +SRCREV_pn-qi ?= "4a0243f758a38cff23f379f5a195a608e6663b8f" SRCREV_pn-remoko ?= "121" SRCREV_pn-remoko-server ?= "121" SRCREV_pn-s3c24xx-gpio ?= "4130" diff --git a/packages/qi/qi.inc b/packages/qi/qi.inc index 3de44ded0b..6d6e0dc8f2 100644 --- a/packages/qi/qi.inc +++ b/packages/qi/qi.inc @@ -3,7 +3,7 @@ LICENSE = "GPL" SECTION = "bootloader" PROVIDES = "virtual/bootloader" LOCALVERSION = "gitr${SRCREV}" -PV = "1.0.0+${LOCALVERSION}" +PV = "1.0.1+${LOCALVERSION}" EXTRA_OEMAKE = "" PARALLEL_MAKE = "" @@ -11,13 +11,16 @@ PARALLEL_MAKE = "" do_configure() { echo >config.mk # uncomment to debug -# sed -i s,@,, Makefile + sed -i s,@,, Makefile cat >config.mk < Date: Thu, 26 Feb 2009 23:44:51 +0100 Subject: minimal.conf: blatantly steal the collective wisdom (and I admit it must have been ton of work, thanks koen et. al.) people put in the angstrom distribution configuration and reorganize the sections a bit for more clarity. Most of this is really distribution-independent, so I'd welcome if angstrom would include one or the other of these sane-*.inc and maintain it there. --- conf/distro/include/sane-feed-deb.inc | 6 + conf/distro/include/sane-feed-ipk.inc | 5 + conf/distro/include/sane-feed.inc | 170 +++++++++++++++++++++ conf/distro/include/sane-toolchain-eglibc.inc | 37 +++++ conf/distro/include/sane-toolchain-glibc.inc | 39 +++++ conf/distro/include/sane-toolchain-oabi.inc | 2 + conf/distro/include/sane-toolchain-uclibc.inc | 42 +++++ .../include/sane-toolchain-uclinux-uclibc.inc | 26 ++++ conf/distro/include/sane-toolchain.inc | 145 ++++++++++++++++++ conf/distro/minimal.conf | 121 +++++++-------- 10 files changed, 524 insertions(+), 69 deletions(-) create mode 100644 conf/distro/include/sane-feed-deb.inc create mode 100644 conf/distro/include/sane-feed-ipk.inc create mode 100644 conf/distro/include/sane-feed.inc create mode 100644 conf/distro/include/sane-toolchain-eglibc.inc create mode 100644 conf/distro/include/sane-toolchain-glibc.inc create mode 100644 conf/distro/include/sane-toolchain-oabi.inc create mode 100644 conf/distro/include/sane-toolchain-uclibc.inc create mode 100644 conf/distro/include/sane-toolchain-uclinux-uclibc.inc create mode 100644 conf/distro/include/sane-toolchain.inc diff --git a/conf/distro/include/sane-feed-deb.inc b/conf/distro/include/sane-feed-deb.inc new file mode 100644 index 0000000000..4f38b8f936 --- /dev/null +++ b/conf/distro/include/sane-feed-deb.inc @@ -0,0 +1,6 @@ + + +INHERIT += "package_deb" + +PREFERRED_PROVIDER_virtual/update-alternatives-native = "update-alternatives-cworth-native" +PREFERRED_PROVIDER_virtual/update-alternatives = "update-alternatives-cworth" diff --git a/conf/distro/include/sane-feed-ipk.inc b/conf/distro/include/sane-feed-ipk.inc new file mode 100644 index 0000000000..a33a4ad2b4 --- /dev/null +++ b/conf/distro/include/sane-feed-ipk.inc @@ -0,0 +1,5 @@ +INHERIT += "package_ipk" + +PREFERRED_PROVIDER_virtual/update-alternatives-native = "update-alternatives-cworth-native" +PREFERRED_PROVIDER_virtual/update-alternatives = "update-alternatives-cworth" + diff --git a/conf/distro/include/sane-feed.inc b/conf/distro/include/sane-feed.inc new file mode 100644 index 0000000000..5bc19a1806 --- /dev/null +++ b/conf/distro/include/sane-feed.inc @@ -0,0 +1,170 @@ +# Originally brought to you by the Angstrom Distribution + +############################################################################# +# FEED BUILDING SETTINGS +############################################################################# + +# Put links to sources in deploy/sources to make it easier for people to be GPL compliant +INHERIT += "src_distribute_local" +SRC_DIST_LOCAL ?= "symlink" + +# Add FEED_ARCH to overrides +OVERRIDES .= ":${FEED_ARCH}" + +FEED_ARCH ?= "${TARGET_ARCH}" + +# Blackfin machines +FEED_ARCH_bfin = "blackfin" + +# armv4t machines + +FEED_ARCH_acern30 = "armv4t" +FEED_ARCH_amsdelta = "armv4t" +FEED_ARCH_ep93xx = "armv4t" +FEED_ARCH_eteng500 = "armv4t" +FEED_ARCH_om-gta01 = "armv4t" +FEED_ARCH_om-gta02 = "armv4t" +FEED_ARCH_h1940 = "armv4t" +FEED_ARCH_h6300 = "armv4t" +FEED_ARCH_kb9202 = "armv4t" +FEED_ARCH_ks8695 = "armv4t" +FEED_ARCH_rx1950 = "armv4t" +FEED_ARCH_rx3000 = "armv4t" +FEED_ARCH_sarge-at91 = "armv4t" +FEED_ARCH_smdk2440 = "armv4t" +FEED_ARCH_smdk2443 = "armv4t" + +# armv5t machines + +FEED_ARCH_a1200 = "armv5te" +FEED_ARCH_a780 = "armv5te" +FEED_ARCH_akita = "armv5te" +FEED_ARCH_asus620 = "armv5te" +FEED_ARCH_asus730 = "armv5te" +FEED_ARCH_at91sam9263ek = "armv5te" +FEED_ARCH_aximx50 = "armv5te" +FEED_ARCH_aximx50v = "armv5te" +FEED_ARCH_c7x0 = "armv5te" +FEED_ARCH_compulab-pxa270 = "armv5te" +FEED_ARCH_davinci-dvevm = "armv5te" +FEED_ARCH_devkitidp-pxa255 = "armv5te" +FEED_ARCH_e680 = "armv5te" +FEED_ARCH_er0100 = "armv5te" +FEED_ARCH_gumstix = "armv5te" +FEED_ARCH_gumstix-verdex = "armv5te" +FEED_ARCH_gumstix-connex = "armv5te" +FEED_ARCH_h1910 = "armv5te" +FEED_ARCH_h2200 = "armv5te" +FEED_ARCH_h3900 = "armv5te" +FEED_ARCH_h4000 = "armv5te" +FEED_ARCH_h5000 = "armv5te" +FEED_ARCH_htcalpine = "armv5te" +FEED_ARCH_htcapache = "armv5te" +FEED_ARCH_htcblueangel = "armv5te" +FEED_ARCH_htchimalaya = "armv5te" +FEED_ARCH_htcsable = "armv5te" +FEED_ARCH_htctornado = "armv5te" +FEED_ARCH_htcuniversal = "armv5te" +FEED_ARCH_hx2000 = "armv5te" +FEED_ARCH_hx4700 = "armv5te" +FEED_ARCH_ixp4xxle = "armv5te" +FEED_ARCH_logicpd-pxa270 = "armv5te" +FEED_ARCH_looxc550 = "armv5te" +FEED_ARCH_lsarm = "armv5te" +FEED_ARCH_magician = "armv5te" +FEED_ARCH_mainstone = "armv5te" +FEED_ARCH_mnci = "armv5te" +FEED_ARCH_mtx-3 = "armv5te" +FEED_ARCH_mx21ads = "armv5te" +FEED_ARCH_n2100 = "armv5te" +FEED_ARCH_navman-icn330 = "armv5te" +FEED_ARCH_netbook-pro = "armv5te" +FEED_ARCH_nokia770 = "armv5te" +FEED_ARCH_rokre2 = "armv5te" +FEED_ARCH_nslu2le = "armv5te" +FEED_ARCH_omap1510inn = "armv5te" +FEED_ARCH_omap1610h2 = "armv5te" +FEED_ARCH_omap1710h3 = "armv5te" +FEED_ARCH_omap5912osk = "armv5te" +FEED_ARCH_palmld = "armv5te" +FEED_ARCH_palmt650 = "armv5te" +FEED_ARCH_palmt680 = "armv5te" +FEED_ARCH_palmtc = "armv5te" +FEED_ARCH_palmtt = "armv5te" +FEED_ARCH_palmtt3 = "armv5te" +FEED_ARCH_palmtt5 = "armv5te" +FEED_ARCH_palmtx = "armv5te" +FEED_ARCH_palmz31 = "armv5te" +FEED_ARCH_palmz71 = "armv5te" +FEED_ARCH_palmz72 = "armv5te" +FEED_ARCH_poodle = "armv5te" +FEED_ARCH_qemuarm = "armv5te" +FEED_ARCH_spitz = "armv5te" +FEED_ARCH_tosa = "armv5te" +FEED_ARCH_triton = "armv5te" + +FEED_ARCH_ixp4xxbe = "armv5teb" +FEED_ARCH_nslu2be = "armv5teb" + +# armv6 machines + +FEED_ARCH_mx31ads = "armv6" +FEED_ARCH_mx31moboard = "armv6" +FEED_ARCH_nokia800 = "armv6" +FEED_ARCH_omap2420h4 = "armv6" +FEED_ARCH_omap2430sdp = "armv6" + +# i486 machines +FEED_ARCH_geodegx = "i486" +FEED_ARCH_geodelx = "i486" +FEED_ARCH_netvista = "i486" +FEED_ARCH_wrap = "i486" +FEED_ARCH_x86 = "i486" + +# i586 machines +FEED_ARCH_epia = "i586" +FEED_ARCH_i586-generic = "i586" +FEED_ARCH_qemux86 = "i586" + +# i686 machines + +FEED_ARCH_alix = "i686" +FEED_ARCH_colinux = "i686" +FEED_ARCH_guinness = "i686" +FEED_ARCH_i686-generic = "i686" +FEED_ARCH_progear = "i686" + +# powerpc machines + +FEED_ARCH_dht-walnut = "ppc405" +FEED_ARCH_magicbox = "ppc405" +FEED_ARCH_xilinx-ml403 = "ppc405" +FEED_ARCH_xilinx-ml410 = "ppc405" +FEED_ARCH_sequoia = "ppc440e" +FEED_ARCH_efika = "ppc603e" +FEED_ARCH_lite5200 = "ppc603e" +FEED_ARCH_lsppchd = "ppc603e" +FEED_ARCH_lsppchg = "ppc603e" +FEED_ARCH_storcenter = "ppc603e" +FEED_ARCH_turbostation = "ppc603e" +FEED_ARCH_mpc8313e-rdb = "ppce300c3" +FEED_ARCH_mpc8323e-rdb = "ppce300c2" + +# strongarm machines, no EABI + +FEED_ARCH_collie = "arm-oabi" +FEED_ARCH_h3600 = "arm-oabi" +FEED_ARCH_h3800 = "arm-oabi" +FEED_ARCH_htcwallaby = "arm-oabi" +FEED_ARCH_jornada56x = "arm-oabi" +FEED_ARCH_jornada7xx = "arm-oabi" +FEED_ARCH_shark = "arm-oabi" +FEED_ARCH_simpad = "arm-oabi" + +# Tweak packaging for strongarm machines since they can't use EABI + +PACKAGE_EXTRA_ARCHS_collie = "arm-oabi" +PACKAGE_EXTRA_ARCHS_h3600 = "arm-oabi" +PACKAGE_EXTRA_ARCHS_h3800 = "arm-oabi" +PACKAGE_EXTRA_ARCHS_simpad = "arm-oabi" +PACKAGE_EXTRA_ARCHS_htcwallaby = "arm-oabi" diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc new file mode 100644 index 0000000000..e780349137 --- /dev/null +++ b/conf/distro/include/sane-toolchain-eglibc.inc @@ -0,0 +1,37 @@ +# Originally brought to you by the Angstrom Distribution + +# eglibc: +PREFERRED_PROVIDER_virtual/libiconv = "eglibc" +PREFERRED_PROVIDER_virtual/libintl = "eglibc" +PREFERRED_PROVIDER_virtual/libc = "eglibc" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial" + +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc = "eglibc" + +TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" + +#TARGET_OS = "linux-gnuspe" + +#mess with compiler flags to use -Os instead of -O2 +#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info +# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616 +# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os" + +FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os" +FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1" +FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2" + +BUILD_OPTIMIZATION = "-Os" +BUILD_OPTIMIZATION_pn-perl = "-O1" +BUILD_OPTIMIZATION_sparc = "-O2" + +TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel']]}" + +CXXFLAGS += "-fvisibility-inlines-hidden" + diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc new file mode 100644 index 0000000000..b14f880328 --- /dev/null +++ b/conf/distro/include/sane-toolchain-glibc.inc @@ -0,0 +1,39 @@ +# glibc: +PREFERRED_PROVIDER_virtual/libiconv ?= "glibc" +PREFERRED_PROVIDER_virtual/libintl ?= "glibc" +PREFERRED_PROVIDER_virtual/libc ?= "glibc" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial" +PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers" + +#Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo) +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc = "glibc" + + +TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" + +#mess with compiler flags to use -Os instead of -O2 +#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info +# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616 +# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os" + +FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2" + +FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1" +FULL_OPTIMIZATION_pn-glibc = "-fexpensive-optimizations -fomit-frame-pointer -O2" +FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2" + +BUILD_OPTIMIZATION = "-O2" +BUILD_OPTIMIZATION_pn-perl = "-O1" +BUILD_OPTIMIZATION_pn-glibc = "-O2" +BUILD_OPTIMIZATION_sparc = "-O2" + +TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel']]}" + +CXXFLAGS += "-fvisibility-inlines-hidden" + diff --git a/conf/distro/include/sane-toolchain-oabi.inc b/conf/distro/include/sane-toolchain-oabi.inc new file mode 100644 index 0000000000..816d44230e --- /dev/null +++ b/conf/distro/include/sane-toolchain-oabi.inc @@ -0,0 +1,2 @@ +PACKAGE_ARCH = "arm-oabi" +BASE_PACKAGE_ARCH = "arm-oabi" diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc new file mode 100644 index 0000000000..66ac81a508 --- /dev/null +++ b/conf/distro/include/sane-toolchain-uclibc.inc @@ -0,0 +1,42 @@ +# Originally brought to you by the Angstrom Distribution + +# uclibc: +#fix some iconv issues, needs to be adjusted when doing uclibc builds +PREFERRED_PROVIDER_virtual/libc = "uclibc" +PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv" +PREFERRED_PROVIDER_virtual/libintl ?= "gettext" +PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc" +PREFERRED_PROVIDER_virtual/arm-${TARGET_VENDOR}-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial" +PREFERRED_PROVIDER_virtual/armeb-${TARGET_VENDOR}-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial" + +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross" +PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" + +USE_NLS ?= "no" +USE_NLS_glib-2.0 = "yes" +USE_NLS_glib-2.0-native = "yes" +USE_NLS_gcc-cross = "no" + +TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" +TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d) in ['bfin']]}" + +#mess with compiler flags to use -Os instead of -O2 +#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info +FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os" +BUILD_OPTIMIZATION = "-Os" + +#Gcc will die with 'internal consistency error when using the above optimizations +#with gcc-4.2.1-atmel.1.0.3 (and probably most other avr32 gcc ports). +#However, some packages require optimizations to compile (e.g. libmad). +#It appears the guilty optimization is "-frename-registers", leaving that one +#out allows the build to proceed normally. -fexpensive-optimizations may be OK, +#it was removed while debugging an issue that ultimately turned out to be due +#to the ICE fixed by gcc-pr32889.patch. It needs to be tested again. +#Note that this testing was done without the gcc-pr32889.patch. +FULL_OPTIMIZATION_avr32 = "-Os -fomit-frame-pointer" + +TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel', 'avr32']]}" + +CXXFLAGS += "-fvisibility-inlines-hidden" + diff --git a/conf/distro/include/sane-toolchain-uclinux-uclibc.inc b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc new file mode 100644 index 0000000000..85ccddf704 --- /dev/null +++ b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc @@ -0,0 +1,26 @@ +# Originally brought to you by the Angstrom Distribution + +# uclibc: +#fix some iconv issues, needs to be adjusted when doing uclibc builds +PREFERRED_PROVIDER_virtual/libc = "uclibc" +PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv" +PREFERRED_PROVIDER_virtual/libintl ?= "gettext" + +USE_NLS ?= "no" +USE_NLS_glib-2.0 = "yes" +USE_NLS_glib-2.0-native = "yes" +USE_NLS_gcc-cross = "no" + +TARGET_OS_UC = "uclinux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" + +#mess with compiler flags to use -Os instead of -O2 +#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info +FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os" +BUILD_OPTIMIZATION = "-Os" + +#Gcc will die with 'internal consistency error when using the above optimizations +FULL_OPTIMIZATION_avr32 = "" +BUILD_OPTIMIZATION_avr32 = "" + +CXXFLAGS += "-fvisibility-inlines-hidden" + diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc new file mode 100644 index 0000000000..6165e752c5 --- /dev/null +++ b/conf/distro/include/sane-toolchain.inc @@ -0,0 +1,145 @@ +# Originally brought to you by the Angstrom Distribution + +############################################################################# +# TOOLCHAIN VERSION SETTINGS +############################################################################# + +# Base line versions, good for most things +PREFERRED_GCC_VERSION ?= "4.2.4" +PREFERRED_BINUTILS ?= "2.18.50.0.7" + +# Prefer glibc 2.6 and uclibc 0.9.30, these have had the most testing. +PREFERRED_VERSION_glibc ?= "2.6.1" +PREFERRED_VERSION_glibc-initial ?= "2.6.1" +PREFERRED_VERSION_uclibc ?= "0.9.30" +PREFERRED_VERSION_uclibc-initial ?= "0.9.30" + +# Some systems need a special gcc version +PREFERRED_GCC_VERSION_486sx ?= "4.3.2" +PREFERRED_GCC_VERSION_avr32 ?= "4.2.2" +PREFERRED_GCC_VERSION_armv7a ?= "4.3.1" +PREFERRED_GCC_VERSION_bfin ?= "4.1.2" +PREFERRED_GCC_VERSION_ppc405 ?= "4.1.1" +PREFERRED_GCC_VERSION_xilinx-ml403 ?= "4.1.1" +PREFERRED_GCC_VERSION_xilinx-ml403 ?= "4.1.1" + +# This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against +PREFERRED_VERSION_linux-libc-headers = "2.6.23" + +# Uncomment this if want need to build an armv7a kernel with CSL toolchain (<2.6.27 don't boot with mainline gcc) +#KERNEL_CCSUFFIX_armv7a= "-4.2.1+csl-arm-2007q3-53" + +# Binutils +PREFERRED_VERSION_binutils ?= "PREFERRED_BINUTILS" +PREFERRED_VERSION_binutils-cross ?= "PREFERRED_BINUTILS" +PREFERRED_VERSION_binutils-cross-sdk ?= "PREFERRED_BINUTILS" + +# Avr32 only has patches for binutils 2.17 in OE +PREFERRED_VERSION_binutils_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17" + +# Compiler versions +PREFERRED_VERSION_gcc ?= "${PREFERRED_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross ?= "${PREFERRED_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-sdk ?= "${PREFERRED_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-initial ?= "${PREFERRED_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-intermediate ?= "${PREFERRED_GCC_VERSION}" + +# Compiler selection +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross" + +# Others +PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" + +############################################################################# +# TOOLCHAIN CUSTOMIZATION +############################################################################# + +# Branding +TARGET_VENDOR = "-oe" + +# ARM920T and up can use thumb mode to decrease binary size at the expense of speed +# (the complete story is a bit more nuanced due to cache starvation) +# Angstrom turns on thumb for armv4t machine according to this RFC: +# http://lists.linuxtogo.org/pipermail/angstrom-distro-devel/2008-October/002714.html + +# We can't do ARM_INSTRUCTION_SET_armv4t since that will un-overridable in recipes like gcc +ANGSTROM_ARM_INSTRUCTION_SET ?= "arm" +ANGSTROM_ARM_INSTRUCTION_SET_armv4t = "thumb" +ANGSTROM_ARM_INSTRUCTION_SET_armv5te = "thumb" +ANGSTROM_ARM_INSTRUCTION_SET_armv5teb = "thumb" + +ARM_INSTRUCTION_SET = "${ANGSTROM_ARM_INSTRUCTION_SET}" +# "arm" "thumb" +# The instruction set the compiler should use when generating application +# code. The kernel is always compiled with arm code at present. arm code +# is the original 32 bit ARM instruction set, thumb code is the 16 bit +# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size) +# but requires more instructions (140% for 70% smaller code) so may be +# slower. + +THUMB_INTERWORK = "yes" +# "yes" "no" +# Whether to compile with code to allow interworking between the two +# instruction sets. This allows thumb code to be executed on a primarily +# arm system and vice versa. It is strongly recommended that DISTROs not +# turn this off - the actual cost is very small. + +# We don't want to keep OABI compat +ARM_KEEP_OABI = "0" +# Do keep OABI compat for om-gta01 to keep the gllin binary working +ARM_KEEP_OABI_pn-linux-openmoko-2.6.24_om-gta01 = "1" +ARM_KEEP_OABI_pn-linux-openmoko-2.6.28_om-gta01 = "1" + +# ARM EABI is softfloat by default, but let's make sure :) +# make it overridable for platforms with FPU, like ep93xx or i.mx31 +TARGET_FPU_arm ?= "soft" +TARGET_FPU_armeb ?= "soft" +TARGET_FPU_ixp4xx ?= "soft" +TARGET_FPU_ppc405 ?= "soft" + +TARGET_FPU_armv6 ?= "hard" +TARGET_FPU_armv6-novfp ?= "soft" +TARGET_FPU_armv7a ?= "hard" +TARGET_FPU_ppc603e ?= "hard" + +# webkit-gtk and cairo have alignment issues with double instructions on armv5 so +# disable them here +TARGET_CC_ARCH_pn-webkit-gtk_armv5te = "-march=armv4t" +TARGET_CC_ARCH_pn-cairo_armv5te = "-march=armv4t" + +############################################################################# +# C LIBRARY SETTINGS +############################################################################# + +# Can be "glibc", "eglibc" or "uclibc" +PREFERRED_LIBC ?= "glibc" +PSTAGE_EXTRAPATH = "${PREFERRED_LIBC}" + +CACHE = "${TMPDIR}/cache/${PREFERRED_LIBC}/${MACHINE}" +DEPLOY_DIR = "${TMPDIR}/deploy/${PREFERRED_LIBC}" +require conf/distro/include/sane-toolchain-${PREFERRED_LIBC}.inc + +# Generate locales on the buildsystem instead of on the target. Speeds up first boot, set to "1" to enable +PREFERRED_PROVIDER_qemu-native = "qemu-native" +ENABLE_BINARY_LOCALE_GENERATION ?= "1" + +# We only want to build UTF8 locales +LOCALE_UTF8_ONLY = "1" + +# Qemu doesn't like armv6/eabi/vfp +ENABLE_BINARY_LOCALE_GENERATION_armv6 = "0" +ENABLE_BINARY_LOCALE_GENERATION_armv6-novfp = "0" +ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0" + +#qemu has taken a dislike to armeb as well +ENABLE_BINARY_LOCALE_GENERATION_armeb = "0" + +# This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH} +ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" +include conf/distro/include/sane-toolchain-${ARM_ABI}.inc diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf index 99c1db0df6..65378b8c3d 100644 --- a/conf/distro/minimal.conf +++ b/conf/distro/minimal.conf @@ -1,99 +1,82 @@ -#----------------------------------------------------------------------------- +############################################################################# #@TYPE: Distribution #@NAME: Minimal #@DESCRIPTION: Embedded Linux Distribution Configuration (minimal) # #@COMMENT: This distribution configuration serves as a starting point for #@COMMENT: the integration of new target platforms, machines, or distributions. -#@COMMENT: It bases on conservative settings and should always be buildable. -#----------------------------------------------------------------------------- +############################################################################# -# -# Header -# -DISTRO_NAME = "minimal-glibc" +############################################################################# +# NAME AND VERSION +############################################################################# +DISTRO_NAME = "minimal" DISTRO_VERSION = ".dev-snapshot-${SRCDATE}" #DISTRO_TYPE = "release" DISTRO_TYPE = "debug" -# -# Naming schemes -# +# Ensure some form of release config, so error out if someone thinks he knows better +DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION") + +# We want images supporting the following features (for task-base) +DISTRO_FEATURES = "nfs smbfs wifi ppp alsa bluetooth ext2 vfat irda pcmcia usbgadget usbhost pci" + +############################################################################# +# LIBRARY NAMES +############################################################################# INHERIT += "debian" -# -# Packaging and output format -# +############################################################################# +# PACKAGING +############################################################################# INHERIT += "package_ipk" IMAGE_FSTYPES ?= "tar.gz ext2.gz jffs2" -# -# Kernel -# -KERNEL = "kernel26" -MACHINE_KERNEL_VERSION = "2.6" +############################################################################# +# IMAGES +############################################################################# +# Name the generated images in a sane way +IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${PREFERRED_LIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}" +DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}" -# -# Binutils & Compiler -# -PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial" -PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate" -PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross" -PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross" -PREFERRED_PROVIDER_virtual/arm-linux-binutils = "binutils-cross" -PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" +############################################################################# +# FEEDS +############################################################################# +require conf/distro/include/sane-feed.inc +PREFERRED_PKG_FORMAT ?= "ipk" +require conf/distro/include/sane-feed-${PREFERRED_PKG_FORMAT}.inc -PREFERRED_VERSION_gcc ?= "4.3.3" -PREFERRED_VERSION_gcc-cross ?= "4.3.3" -PREFERRED_VERSION_gcc-cross-initial ?= "4.3.3" -PREFERRED_VERSION_gcc-cross-intermediate ?= "4.3.3" -PREFERRED_VERSION_binutils ?= "2.18" -PREFERRED_VERSION_binutils-cross ?= "2.18" +############################################################################# +# KERNEL +############################################################################# +KERNEL = "kernel26" +MACHINE_KERNEL_VERSION = "2.6" -# -# Target OS & FPU system -# -TARGET_OS = "linux" -TARGET_FPU_arm = "soft" -TARGET_FPU_armeb = "soft" +############################################################################# +# TOOLCHAIN +############################################################################# +PREFERRED_LIBC = "glibc" +require conf/distro/include/sane-toolchain.inc -# -# C library -# -PREFERRED_PROVIDER_virtual/libiconv = "glibc" -PREFERRED_PROVIDER_virtual/libintl = "glibc" -PREFERRED_PROVIDER_virtual/libc = "glibc" -PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc" -PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" -PREFERRED_VERSION_linux-libc-headers ?= "2.6.23" -PREFERRED_VERSION_glibc ?= "2.6.1" - -# -# Bootstrap & Init -# +############################################################################# +# PREFERRED PROVIDERS +############################################################################# PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap" - -# -# -# +PREFERRED_PROVIDER_avahi = "avahi" PREFERRED_PROVIDER_gconf = "gconf-dbus" PREFERRED_PROVIDER_gtk+ = "gtk+" PREFERRED_PROVIDER_libgpewidget = "libgpewidget" -PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11" -PREFERRED_PROVIDER_avahi = "avahi" PREFERRED_PROVIDER_virtual/db = "db3" PREFERRED_PROVIDER_virtual/db-native = "db3-native" +PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11" +PREFERRED_PROVIDER_virtual/libx11 ?= "libx11" - -#NOTE: multiple providers are available for virtual/arm-linux-libc-initial (glibc-initial, eglibc-initial); -#NOTE: consider defining PREFERRED_PROVIDER_virtual/arm-linux-libc-initial - -# -# Preferred versions -# - +############################################################################# +# PREFERRED VERSIONS +############################################################################# require conf/distro/include/sane-srcdates.inc require conf/distro/include/sane-srcrevs.inc - -PREFERRED_PROVIDER_virtual/libx11 ?= "libx11" +require conf/distro/include/preferred-e-versions.inc +require conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc require conf/distro/include/preferred-xorg-versions-X11R7.4.inc + -- cgit 1.2.3-korg From 43fa438235fe9db3d42ef1e6423e14901b3a308f Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 00:23:48 +0100 Subject: ncurses: modernize and fix packaging problems --- packages/ncurses/ncurses.inc | 70 ++++++++++++++++++++++++++--------------- packages/ncurses/ncurses_5.4.bb | 2 +- 2 files changed, 46 insertions(+), 26 deletions(-) diff --git a/packages/ncurses/ncurses.inc b/packages/ncurses/ncurses.inc index 6d35467d8a..76a8ff0c3c 100644 --- a/packages/ncurses/ncurses.inc +++ b/packages/ncurses/ncurses.inc @@ -3,38 +3,28 @@ HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html" LICENSE = "MIT" SECTION = "libs" DEPENDS = "ncurses-native" -PACKAGES_prepend = "ncurses-tools " -PACKAGES_append = " ncurses-terminfo" -FILES_ncurses_append = " ${datadir}/tabset" -RSUGGESTS_${PN} = "ncurses-terminfo" -RPROVIDES_${PN} = "libncurses5" -RCONFLICTS_${PN} = "libncurses5" -RREPLACES_${PN} = "libncurses5" inherit autotools -# This keeps only tput/tset in ncurses -# clear/reset are in already busybox -FILES_ncurses-tools = "${bindir}/tic ${bindir}/toe ${bindir}/infotocap ${bindir}/captoinfo ${bindir}/infocmp ${bindir}/clear.${PN} ${bindir}/reset.${PN} ${bindir}/tack " -FILES_ncurses-terminfo = "${datadir}/terminfo" -FILES_${PN} = "${bindir}/tput ${bindir}/tset ${libdir}/lib*.so.* usr/share/tabset etc/terminfo" - PARALLEL_MAKE="" FILESPATH = "${FILE_DIRNAME}/local:${FILE_DIRNAME}/ncurses-${PV}-${PR}:${FILE_DIRNAME}/ncurses-${PV}:${FILE_DIRNAME}/ncurses:${FILE_DIRNAME}" -EXTRA_OECONF = "--with-shared \ - --with-libtool \ - --without-profile \ - --without-debug \ - --disable-rpath \ - --enable-echo \ - --enable-const \ - --without-ada \ - --enable-termcap \ - --without-cxx-binding \ - --with-terminfo-dirs=${sysconfdir}/terminfo:${datadir}/terminfo \ - --enable-overwrite" +EXTRA_OECONF = "\ + --with-shared \ + --with-libtool \ + --without-profile \ + --without-debug \ + --disable-rpath \ + --enable-echo \ + --enable-const \ + --without-ada \ + --enable-termcap \ + --without-cxx-binding \ + --with-terminfo-dirs=${sysconfdir}/terminfo:${datadir}/terminfo \ + --enable-overwrite \ +" + export BUILD_CCFLAGS = "-I${S}/ncurses -I${S}/include ${BUILD_CFLAGS}" export BUILD_LDFLAGS = "" export EXTRA_OEMAKE = '"BUILD_LDFLAGS=" "BUILD_CCFLAGS=${BUILD_CCFLAGS}"' @@ -100,3 +90,33 @@ pkg_prerm_ncurses-tools () { update-alternatives --remove reset reset.${PN} fi } + +PACKAGES =+ "${PN}-tools ${PN}-terminfo" + +# clear and reset are already in busybox +FILES_${PN} = "\ + ${bindir}/tput \ + ${bindir}/tset \ + ${libdir}/lib*.so.* \ + ${datadir}/tabset \ + ${sysconfdir}/terminfo \ +" +FILES_${PN}-tools = "\ + ${bindir}/tic \ + ${bindir}/toe \ + ${bindir}/infotocap \ + ${bindir}/captoinfo \ + ${bindir}/infocmp \ + ${bindir}/clear.${PN} \ + ${bindir}/reset.${PN} \ + ${bindir}/tack \ +" +FILES_${PN}-terminfo = "\ + ${datadir}/terminfo \ +" + +RSUGGESTS_${PN} = "ncurses-terminfo" +RPROVIDES_${PN} = "libncurses5" +RCONFLICTS_${PN} = "libncurses5" +RREPLACES_${PN} = "libncurses5" + diff --git a/packages/ncurses/ncurses_5.4.bb b/packages/ncurses/ncurses_5.4.bb index 451a180b39..4f54029457 100644 --- a/packages/ncurses/ncurses_5.4.bb +++ b/packages/ncurses/ncurses_5.4.bb @@ -1,4 +1,4 @@ -PR = "r16" +PR = "r17" SRC_URI = "${GNU_MIRROR}/ncurses/ncurses-${PV}.tar.gz \ file://makefile_tweak.patch;patch=1 \ -- cgit 1.2.3-korg From d88b40520a77d11e60ac0974e2466720e68e5576 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 00:38:58 +0100 Subject: coreutils: make 6.0 the new default remove older ones --- packages/coreutils/coreutils-5.0/configure.patch | 47 ------------ packages/coreutils/coreutils-5.0/malloc.patch | 19 ----- .../coreutils/coreutils-5.1.3/install-cross.patch | 27 ------- packages/coreutils/coreutils-5.1.3/man.patch | 42 ----------- .../coreutils/coreutils-5.1.3/rename-eaccess.patch | 44 ------------ packages/coreutils/coreutils-5.3.0/futimens.patch | 44 ------------ .../coreutils/coreutils-5.3.0/install-cross.patch | 27 ------- packages/coreutils/coreutils-5.3.0/man.patch | 42 ----------- .../coreutils-5.3.0/rename-tee-for-glibc2.5.patch | 33 --------- .../coreutils/coreutils-5.3.0/uptime-pow-lib.patch | 11 --- packages/coreutils/coreutils-native_5.1.3.bb | 7 -- packages/coreutils/coreutils-native_5.3.0.bb | 7 -- packages/coreutils/coreutils-native_6.0.bb | 2 - packages/coreutils/coreutils.inc | 1 + packages/coreutils/coreutils_5.0.bb | 9 --- packages/coreutils/coreutils_5.1.1.bb | 5 -- packages/coreutils/coreutils_5.1.3.bb | 81 --------------------- packages/coreutils/coreutils_5.3.0.bb | 83 ---------------------- packages/coreutils/coreutils_6.0.bb | 14 ++-- 19 files changed, 8 insertions(+), 537 deletions(-) delete mode 100644 packages/coreutils/coreutils-5.0/configure.patch delete mode 100644 packages/coreutils/coreutils-5.0/malloc.patch delete mode 100644 packages/coreutils/coreutils-5.1.3/install-cross.patch delete mode 100644 packages/coreutils/coreutils-5.1.3/man.patch delete mode 100644 packages/coreutils/coreutils-5.1.3/rename-eaccess.patch delete mode 100644 packages/coreutils/coreutils-5.3.0/futimens.patch delete mode 100644 packages/coreutils/coreutils-5.3.0/install-cross.patch delete mode 100644 packages/coreutils/coreutils-5.3.0/man.patch delete mode 100644 packages/coreutils/coreutils-5.3.0/rename-tee-for-glibc2.5.patch delete mode 100644 packages/coreutils/coreutils-5.3.0/uptime-pow-lib.patch delete mode 100644 packages/coreutils/coreutils-native_5.1.3.bb delete mode 100644 packages/coreutils/coreutils-native_5.3.0.bb delete mode 100644 packages/coreutils/coreutils_5.0.bb delete mode 100644 packages/coreutils/coreutils_5.1.1.bb delete mode 100644 packages/coreutils/coreutils_5.1.3.bb delete mode 100644 packages/coreutils/coreutils_5.3.0.bb diff --git a/packages/coreutils/coreutils-5.0/configure.patch b/packages/coreutils/coreutils-5.0/configure.patch deleted file mode 100644 index 5678c97997..0000000000 --- a/packages/coreutils/coreutils-5.0/configure.patch +++ /dev/null @@ -1,47 +0,0 @@ - -# -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher -# - ---- coreutils-5.0/configure.ac~configure -+++ coreutils-5.0/configure.ac -@@ -15,6 +15,7 @@ - AC_PROG_GCC_TRADITIONAL - AC_PROG_RANLIB - AC_PROG_LN_S -+AC_PROG_YACC - AC_AIX - AC_MINIX - -@@ -28,6 +29,8 @@ - OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS hostid\$(EXEEXT)" - MAN="$MAN hostid.1") - -+AC_FUNC_ALLOCA -+ - jm_MACROS - - AC_HEADER_TIOCGWINSZ() ---- coreutils-5.0/configure.ac 2004-01-23 14:49:55.000000000 -0500 -+++ coreutils-5.0/configure.ac 2004-01-23 14:41:46.000000000 -0500 -@@ -147,7 +147,7 @@ - fi - fi - --AC_DEFUN(jm_DUMMY_1, -+AC_DEFUN([jm_DUMMY_1], - [ - AC_REQUIRE([jm_PREREQ_READUTMP]) - if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then ---- coreutils-5.0/m4/nanosleep.m4 2001-09-17 17:44:03.000000000 -0400 -+++ coreutils-5.0/m4/nanosleep.m4 2004-01-23 14:47:18.000000000 -0500 -@@ -12,6 +12,9 @@ - # Solaris 2.5.1 needs -lposix4 to get the nanosleep function. - # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. - AC_SEARCH_LIBS(nanosleep, [rt posix4], [LIB_NANOSLEEP=$ac_cv_search_nanosleep]) -+ if test "$ac_cv_search_nanosleep" = "none required"; then -+ LIB_NANOSLEEP= -+ fi - AC_SUBST(LIB_NANOSLEEP) - - AC_CACHE_CHECK([whether nanosleep works], diff --git a/packages/coreutils/coreutils-5.0/malloc.patch b/packages/coreutils/coreutils-5.0/malloc.patch deleted file mode 100644 index 079b57b94e..0000000000 --- a/packages/coreutils/coreutils-5.0/malloc.patch +++ /dev/null @@ -1,19 +0,0 @@ - -# -# Made by http://www.mn-logistik.de/unsupported/pxa250/patcher -# - ---- coreutils-5.0/lib/putenv.c~malloc -+++ coreutils-5.0/lib/putenv.c -@@ -34,9 +34,11 @@ - char *malloc (); - void free (); - -+#if 0 - #if defined (__GNU_LIBRARY__) || defined (HAVE_STRING_H) - # include - #endif -+#endif - #if defined (__GNU_LIBRARY__) || defined (HAVE_UNISTD_H) - # include - #endif diff --git a/packages/coreutils/coreutils-5.1.3/install-cross.patch b/packages/coreutils/coreutils-5.1.3/install-cross.patch deleted file mode 100644 index 98ba3d916c..0000000000 --- a/packages/coreutils/coreutils-5.1.3/install-cross.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- src/install.c~ 2003-08-09 18:46:45.000000000 +0100 -+++ src/install.c 2004-03-27 18:38:45.000000000 +0000 -@@ -516,7 +516,14 @@ - strip (const char *path) - { - int status; -- pid_t pid = fork (); -+ pid_t pid; -+ char *strip_name; -+ -+ strip_name = getenv ("STRIP"); -+ if (strip_name == NULL) -+ strip_name = "strip"; -+ -+ pid = fork (); - - switch (pid) - { -@@ -524,7 +531,7 @@ - error (EXIT_FAILURE, errno, _("fork system call failed")); - break; - case 0: /* Child. */ -- execlp ("strip", "strip", path, NULL); -+ execlp (strip_name, "strip", path, NULL); - error (EXIT_FAILURE, errno, _("cannot run strip")); - break; - default: /* Parent. */ diff --git a/packages/coreutils/coreutils-5.1.3/man.patch b/packages/coreutils/coreutils-5.1.3/man.patch deleted file mode 100644 index b067c380e2..0000000000 --- a/packages/coreutils/coreutils-5.1.3/man.patch +++ /dev/null @@ -1,42 +0,0 @@ - -# -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher -# - ---- coreutils-5.1.3/configure.ac~man 2004-01-25 16:57:15.000000000 -0600 -+++ coreutils-5.1.3/configure.ac 2004-06-29 14:22:10.000000000 -0500 -@@ -232,6 +232,20 @@ - AM_GNU_GETTEXT([external], [need-ngettext]) - AM_GNU_GETTEXT_VERSION(0.13.1) - -+AC_MSG_CHECKING([whether to build man pages]) -+AC_ARG_WITH(manpages, -+ AS_HELP_STRING([--with-manpages], -+ [Enable building of manpages (default=yes)]), -+ [cu_cv_build_manpages=$enableval], -+ [cu_cv_build_manpages=yes]) -+# help2man doesn't work when crosscompiling, as it needs to run the -+# binary that was built. -+if test x"$cross_compiling" = x"yes"; then -+ cu_cv_build_manpages=no -+fi -+AC_MSG_RESULT($cu_cv_build_manpages) -+AM_CONDITIONAL(ENABLE_MANPAGES, test x"$cu_cv_build_manpages" = x"yes") -+ - AC_CONFIG_FILES( - Makefile - doc/Makefile ---- coreutils-5.1.3/Makefile.am~man 2003-11-09 14:23:02.000000000 -0600 -+++ coreutils-5.1.3/Makefile.am 2004-06-29 14:18:14.000000000 -0500 -@@ -1,6 +1,11 @@ - ## Process this file with automake to produce Makefile.in -*-Makefile-*- - -+if ENABLE_MANPAGES - SUBDIRS = lib src doc man m4 po tests -+else -+SUBDIRS = lib src doc m4 po tests -+endif -+ - EXTRA_DIST = Makefile.cfg Makefile.maint GNUmakefile \ - .kludge-stamp .prev-version THANKS-to-translators THANKStt.in \ - .x-sc_space_tab .x-sc_sun_os_names \ diff --git a/packages/coreutils/coreutils-5.1.3/rename-eaccess.patch b/packages/coreutils/coreutils-5.1.3/rename-eaccess.patch deleted file mode 100644 index cde2731477..0000000000 --- a/packages/coreutils/coreutils-5.1.3/rename-eaccess.patch +++ /dev/null @@ -1,44 +0,0 @@ -# On Ubuntu edgy (and perhaps other distributions), eaccess is provided by -# unistd.h - This renames the function so as not to conflict. - ---- coreutils-5.1.3/src/test.c.old 2006-08-17 15:29:41.000000000 +0100 -+++ coreutils-5.1.3/src/test.c 2006-08-17 15:30:44.000000000 +0100 -@@ -125,7 +125,7 @@ - /* Do the same thing access(2) does, but use the effective uid and gid. */ - - static int --eaccess (char const *file, int mode) -+_eaccess (char const *file, int mode) - { - static int have_ids; - static uid_t uid, euid; -@@ -158,7 +158,7 @@ - return result; - } - #else --# define eaccess(F, M) euidaccess (F, M) -+# define _eaccess(F, M) euidaccess (F, M) - #endif - - /* Increment our position in the argument list. Check that we're not -@@ -623,17 +623,17 @@ - - case 'r': /* file is readable? */ - unary_advance (); -- value = -1 != eaccess (argv[pos - 1], R_OK); -+ value = -1 != _eaccess (argv[pos - 1], R_OK); - return (TRUE == value); - - case 'w': /* File is writable? */ - unary_advance (); -- value = -1 != eaccess (argv[pos - 1], W_OK); -+ value = -1 != _eaccess (argv[pos - 1], W_OK); - return (TRUE == value); - - case 'x': /* File is executable? */ - unary_advance (); -- value = -1 != eaccess (argv[pos - 1], X_OK); -+ value = -1 != _eaccess (argv[pos - 1], X_OK); - return (TRUE == value); - - case 'O': /* File is owned by you? */ diff --git a/packages/coreutils/coreutils-5.3.0/futimens.patch b/packages/coreutils/coreutils-5.3.0/futimens.patch deleted file mode 100644 index 3cb2b6ab32..0000000000 --- a/packages/coreutils/coreutils-5.3.0/futimens.patch +++ /dev/null @@ -1,44 +0,0 @@ -Index: coreutils-5.3.0/lib/utimens.c -=================================================================== ---- coreutils-5.3.0.orig/lib/utimens.c 2005-01-03 22:19:15.000000000 +0000 -+++ coreutils-5.3.0/lib/utimens.c 2007-07-01 19:12:32.000000000 +0000 -@@ -55,8 +55,8 @@ - If TIMESPEC is null, set the time stamps to the current time. */ - - int --futimens (int fd ATTRIBUTE_UNUSED, -- char const *file, struct timespec const timespec[2]) -+gl_futimens (int fd ATTRIBUTE_UNUSED, -+ char const *file, struct timespec const timespec[2]) - { - /* There's currently no interface to set file timestamps with - nanosecond resolution, so do the best we can, discarding any -@@ -117,5 +117,5 @@ - int - utimens (char const *file, struct timespec const timespec[2]) - { -- return futimens (-1, file, timespec); -+ return gl_futimens (-1, file, timespec); - } -Index: coreutils-5.3.0/lib/utimens.h -=================================================================== ---- coreutils-5.3.0.orig/lib/utimens.h 2004-11-23 20:54:33.000000000 +0000 -+++ coreutils-5.3.0/lib/utimens.h 2007-07-01 19:12:37.000000000 +0000 -@@ -1,3 +1,3 @@ - #include "timespec.h" --int futimens (int, char const *, struct timespec const [2]); -+int gl_futimens (int, char const *, struct timespec const [2]); - int utimens (char const *, struct timespec const [2]); -Index: coreutils-5.3.0/src/touch.c -=================================================================== ---- coreutils-5.3.0.orig/src/touch.c 2004-11-23 20:54:35.000000000 +0000 -+++ coreutils-5.3.0/src/touch.c 2007-07-01 19:11:52.000000000 +0000 -@@ -191,7 +191,7 @@ - t = timespec; - } - -- ok = (futimens (fd, file, t) == 0); -+ ok = (gl_futimens (fd, file, t) == 0); - if (fd != -1) - ok &= (close (fd) == 0); - diff --git a/packages/coreutils/coreutils-5.3.0/install-cross.patch b/packages/coreutils/coreutils-5.3.0/install-cross.patch deleted file mode 100644 index 98ba3d916c..0000000000 --- a/packages/coreutils/coreutils-5.3.0/install-cross.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- src/install.c~ 2003-08-09 18:46:45.000000000 +0100 -+++ src/install.c 2004-03-27 18:38:45.000000000 +0000 -@@ -516,7 +516,14 @@ - strip (const char *path) - { - int status; -- pid_t pid = fork (); -+ pid_t pid; -+ char *strip_name; -+ -+ strip_name = getenv ("STRIP"); -+ if (strip_name == NULL) -+ strip_name = "strip"; -+ -+ pid = fork (); - - switch (pid) - { -@@ -524,7 +531,7 @@ - error (EXIT_FAILURE, errno, _("fork system call failed")); - break; - case 0: /* Child. */ -- execlp ("strip", "strip", path, NULL); -+ execlp (strip_name, "strip", path, NULL); - error (EXIT_FAILURE, errno, _("cannot run strip")); - break; - default: /* Parent. */ diff --git a/packages/coreutils/coreutils-5.3.0/man.patch b/packages/coreutils/coreutils-5.3.0/man.patch deleted file mode 100644 index 5060e4fdff..0000000000 --- a/packages/coreutils/coreutils-5.3.0/man.patch +++ /dev/null @@ -1,42 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- coreutils-5.3.0/configure.ac~man -+++ coreutils-5.3.0/configure.ac -@@ -237,6 +237,20 @@ - AM_GNU_GETTEXT([external], [need-ngettext]) - AM_GNU_GETTEXT_VERSION(0.13.1) - -+AC_MSG_CHECKING([whether to build man pages]) -+AC_ARG_WITH(manpages, -+ AS_HELP_STRING([--with-manpages], -+ [Enable building of manpages (default=yes)]), -+ [cu_cv_build_manpages=$enableval], -+ [cu_cv_build_manpages=yes]) -+# help2man doesn't work when crosscompiling, as it needs to run the -+# binary that was built. -+if test x"$cross_compiling" = x"yes"; then -+ cu_cv_build_manpages=no -+fi -+AC_MSG_RESULT($cu_cv_build_manpages) -+AM_CONDITIONAL(ENABLE_MANPAGES, test x"$cu_cv_build_manpages" = x"yes") -+ - AC_CONFIG_FILES( - Makefile - doc/Makefile ---- coreutils-5.3.0/Makefile.am~man -+++ coreutils-5.3.0/Makefile.am -@@ -1,6 +1,11 @@ - ## Process this file with automake to produce Makefile.in -*-Makefile-*- - -+if ENABLE_MANPAGES - SUBDIRS = lib src doc man po tests -+else -+SUBDIRS = lib src doc po tests -+endif -+ - EXTRA_DIST = Makefile.cfg Makefile.maint GNUmakefile \ - .kludge-stamp .prev-version THANKS-to-translators THANKStt.in \ - .x-sc_space_tab .x-sc_sun_os_names \ diff --git a/packages/coreutils/coreutils-5.3.0/rename-tee-for-glibc2.5.patch b/packages/coreutils/coreutils-5.3.0/rename-tee-for-glibc2.5.patch deleted file mode 100644 index 148a5f4f8f..0000000000 --- a/packages/coreutils/coreutils-5.3.0/rename-tee-for-glibc2.5.patch +++ /dev/null @@ -1,33 +0,0 @@ -Glibc 2.5 has a function called tee which conflicts with the same function -in coreutils. This patch renames the function to tee_files (as is done in -the newer coreutils versions.) - ---- coreutils-5.3.0/src/tee.c 2006/10/23 07:35:00 1.1 -+++ coreutils-5.3.0/src/tee.c 2006/10/23 07:35:16 -@@ -31,7 +31,7 @@ - - #define AUTHORS "Mike Parker", "Richard M. Stallman", "David MacKenzie" - --static bool tee (int nfiles, const char **files); -+static bool tee_files (int nfiles, const char **files); - - /* If true, append to output files rather than truncating them. */ - static bool append; -@@ -121,7 +121,7 @@ - /* Do *not* warn if tee is given no file arguments. - POSIX requires that it work when given no arguments. */ - -- ok = tee (argc - optind, (const char **) &argv[optind]); -+ ok = tee_files (argc - optind, (const char **) &argv[optind]); - if (close (STDIN_FILENO) != 0) - error (EXIT_FAILURE, errno, _("standard input")); - -@@ -133,7 +133,7 @@ - Return true if successful. */ - - static bool --tee (int nfiles, const char **files) -+tee_files (int nfiles, const char **files) - { - FILE **descriptors; - char buffer[BUFSIZ]; diff --git a/packages/coreutils/coreutils-5.3.0/uptime-pow-lib.patch b/packages/coreutils/coreutils-5.3.0/uptime-pow-lib.patch deleted file mode 100644 index 5eb3fca676..0000000000 --- a/packages/coreutils/coreutils-5.3.0/uptime-pow-lib.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- coreutils-5.3.0/src/Makefile.am.orig 2005-09-27 22:34:35.659272058 -0700 -+++ coreutils-5.3.0/src/Makefile.am 2005-09-27 22:34:39.403507668 -0700 -@@ -74,7 +74,7 @@ - sleep_LDADD = $(nanosec_libs) - tail_LDADD = $(nanosec_libs) - --uptime_LDADD = $(LDADD) $(GETLOADAVG_LIBS) -+uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS) - - su_LDADD = $(LDADD) $(LIB_CRYPT) - diff --git a/packages/coreutils/coreutils-native_5.1.3.bb b/packages/coreutils/coreutils-native_5.1.3.bb deleted file mode 100644 index ee90981895..0000000000 --- a/packages/coreutils/coreutils-native_5.1.3.bb +++ /dev/null @@ -1,7 +0,0 @@ -SECTION = "base" - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/coreutils-${PV}" -S = "${WORKDIR}/coreutils-${PV}" - -require coreutils_${PV}.bb -inherit native diff --git a/packages/coreutils/coreutils-native_5.3.0.bb b/packages/coreutils/coreutils-native_5.3.0.bb deleted file mode 100644 index ee90981895..0000000000 --- a/packages/coreutils/coreutils-native_5.3.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -SECTION = "base" - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/coreutils-${PV}" -S = "${WORKDIR}/coreutils-${PV}" - -require coreutils_${PV}.bb -inherit native diff --git a/packages/coreutils/coreutils-native_6.0.bb b/packages/coreutils/coreutils-native_6.0.bb index ee90981895..057dfa6d80 100644 --- a/packages/coreutils/coreutils-native_6.0.bb +++ b/packages/coreutils/coreutils-native_6.0.bb @@ -1,5 +1,3 @@ -SECTION = "base" - FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/coreutils-${PV}" S = "${WORKDIR}/coreutils-${PV}" diff --git a/packages/coreutils/coreutils.inc b/packages/coreutils/coreutils.inc index 481c32bb3d..38dbd1d4f2 100644 --- a/packages/coreutils/coreutils.inc +++ b/packages/coreutils/coreutils.inc @@ -1,4 +1,5 @@ DESCRIPTION = "A collection of core GNU utilities." +HOMEPAGE = "http://www.gnu.org/software/coreutils" LICENSE = "GPL" SECTION = "base" RREPLACES = "textutils shellutils fileutils" diff --git a/packages/coreutils/coreutils_5.0.bb b/packages/coreutils/coreutils_5.0.bb deleted file mode 100644 index 74e27a8d70..0000000000 --- a/packages/coreutils/coreutils_5.0.bb +++ /dev/null @@ -1,9 +0,0 @@ -require coreutils.inc - -PR = "r1" - -SRC_URI = "${GNU_MIRROR}/coreutils/coreutils-${PV}.tar.gz \ - file://malloc.patch;patch=1 \ - file://configure.patch;patch=1" - -export EXTRA_OEMAKE="'SUBDIRS=lib src doc m4 po tests' MAKEFLAGS=" diff --git a/packages/coreutils/coreutils_5.1.1.bb b/packages/coreutils/coreutils_5.1.1.bb deleted file mode 100644 index e8ae798691..0000000000 --- a/packages/coreutils/coreutils_5.1.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -require coreutils.inc - -PR = "r1" - -SRC_URI = "ftp://alpha.gnu.org/gnu/coreutils/coreutils-${PV}.tar.bz2" diff --git a/packages/coreutils/coreutils_5.1.3.bb b/packages/coreutils/coreutils_5.1.3.bb deleted file mode 100644 index da9b214af5..0000000000 --- a/packages/coreutils/coreutils_5.1.3.bb +++ /dev/null @@ -1,81 +0,0 @@ -require coreutils.inc - -PR = "r8" - -SRC_URI = "ftp://alpha.gnu.org/gnu/coreutils/coreutils-${PV}.tar.bz2 \ - file://install-cross.patch;patch=1;pnum=0 \ - file://man.patch;patch=1 \ - file://rename-eaccess.patch;patch=1" - -# [ gets a special treatment and is not included in this -bindir_progs = "basename cksum comm csplit cut dir dircolors dirname du \ - env expand expr factor fmt fold groups head hostid id install \ - join link logname md5sum mkfifo nice nl nohup od paste pathchk \ - pinky pr printenv printf ptx readlink seq sha1sum shred sort \ - split stat sum tac tail tee test tr tsort tty unexpand uniq \ - unlink users vdir wc who whoami yes \ - " - -# hostname gets a special treatment and is not included in this -base_bindir_progs = "cat chgrp chmod chown cp date dd echo false kill \ - ln ls mkdir mknod mv pwd rm rmdir sleep stty sync touch \ - true uname \ - " - -sbindir_progs= "chroot" - -do_install () { - autotools_do_install - - # Renaming the utilities that should go in /usr/bin - for i in ${bindir_progs}; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${PN}; done - - # Renaming and moving the utilities that should go in /bin (FHS) - install -d ${D}${base_bindir} - for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i.${PN}; done - - # Renaming and moving the utilities that should go in /usr/sbin (FHS) - install -d ${D}${sbindir} - for i in ${sbindir_progs}; do mv ${D}${bindir}/$i ${D}${sbindir}/$i.${PN}; done - - # [ requires special handling because [.coreutils will cause the sed stuff - # in update-alternatives to fail, therefore use lbracket - the name used - # for the actual source file. - mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${PN} - # hostname and uptime separated. busybox's versions are preferred - mv ${D}${bindir}/hostname ${D}${base_bindir}/hostname.${PN} - mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN} - -} - -pkg_postinst_${PN} () { - # The utilities in /usr/bin - for i in ${bindir_progs}; do update-alternatives --install ${bindir}/$i $i $i.${PN} 100; done - - # The utilities in /bin - for i in ${base_bindir_progs}; do update-alternatives --install ${base_bindir}/$i $i $i.${PN} 100; done - - # The utilities in /usr/sbin - for i in ${sbindir_progs}; do update-alternatives --install ${sbindir}/$i $i $i.${PN} 100; done - - # Special cases. uptime and hostname is broken, prefer busybox's version. [ needs to be treated separately. - update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 10 - update-alternatives --install ${base_bindir}/hostname hostname hostname.${PN} 10 - update-alternatives --install '${bindir}/[' '[' 'lbracket.${PN}' 100 -} - -pkg_prerm_${PN} () { - # The utilities in /usr/bin - for i in ${bindir_progs}; do update-alternatives --remove $i $i.${PN}; done - - # The utilities in /bin - for i in ${base_bindir_progs}; do update-alternatives --remove $i $i.${PN}; done - - # The utilities in /usr/sbin - for i in ${sbindir_progs}; do update-alternatives --remove $i $i.${PN}; done - - # The special cases - update-alternatives --remove hostname hostname.${PN} - update-alternatives --remove uptime uptime.${PN} - update-alternatives --remove '[' 'lbracket.${PN}' -} diff --git a/packages/coreutils/coreutils_5.3.0.bb b/packages/coreutils/coreutils_5.3.0.bb deleted file mode 100644 index 521038dbe1..0000000000 --- a/packages/coreutils/coreutils_5.3.0.bb +++ /dev/null @@ -1,83 +0,0 @@ -require coreutils.inc - -PR = "r4" - -SRC_URI = "ftp://alpha.gnu.org/gnu/coreutils/coreutils-${PV}.tar.bz2 \ - file://install-cross.patch;patch=1;pnum=0 \ - file://man.patch;patch=1 \ - file://rename-tee-for-glibc2.5.patch;patch=1 \ - file://uptime-pow-lib.patch;patch=1 \ - file://futimens.patch;patch=1" - -# [ gets a special treatment and is not included in this -bindir_progs = "basename cksum comm csplit cut dir dircolors dirname du \ - env expand expr factor fmt fold groups head hostid id install \ - join link logname md5sum mkfifo nl nohup od paste pathchk \ - pinky pr printenv printf ptx readlink seq sha1sum shred sort \ - split stat sum tac tail tee test tr tsort tty unexpand uniq \ - unlink users vdir wc who whoami yes \ - " - -# hostname gets a special treatment and is not included in this -base_bindir_progs = "cat chgrp chmod chown cp date dd df echo false kill \ - ln ls mkdir mknod mv nice pwd rm rmdir sleep stty sync touch \ - true uname \ - " - -sbindir_progs= "chroot" - -do_install () { - autotools_do_install - - # Renaming the utilities that should go in /usr/bin - for i in ${bindir_progs}; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${PN}; done - - # Renaming and moving the utilities that should go in /bin (FHS) - install -d ${D}${base_bindir} - for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i.${PN}; done - - # Renaming and moving the utilities that should go in /usr/sbin (FHS) - install -d ${D}${sbindir} - for i in ${sbindir_progs}; do mv ${D}${bindir}/$i ${D}${sbindir}/$i.${PN}; done - - # [ requires special handling because [.coreutils will cause the sed stuff - # in update-alternatives to fail, therefore use lbracket - the name used - # for the actual source file. - mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${PN} - # hostname and uptime separated. busybox's versions are preferred - mv ${D}${bindir}/hostname ${D}${base_bindir}/hostname.${PN} - mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN} - -} - -pkg_postinst_${PN} () { - # The utilities in /usr/bin - for i in ${bindir_progs}; do update-alternatives --install ${bindir}/$i $i $i.${PN} 100; done - - # The utilities in /bin - for i in ${base_bindir_progs}; do update-alternatives --install ${base_bindir}/$i $i $i.${PN} 100; done - - # The utilities in /usr/sbin - for i in ${sbindir_progs}; do update-alternatives --install ${sbindir}/$i $i $i.${PN} 100; done - - # Special cases. uptime and hostname is broken, prefer busybox's version. [ needs to be treated separately. - update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 10 - update-alternatives --install ${base_bindir}/hostname hostname hostname.${PN} 10 - update-alternatives --install '${bindir}/[' '[' 'lbracket.${PN}' 100 -} - -pkg_prerm_${PN} () { - # The utilities in /usr/bin - for i in ${bindir_progs}; do update-alternatives --remove $i $i.${PN}; done - - # The utilities in /bin - for i in ${base_bindir_progs}; do update-alternatives --remove $i $i.${PN}; done - - # The utilities in /usr/sbin - for i in ${sbindir_progs}; do update-alternatives --remove $i $i.${PN}; done - - # The special cases - update-alternatives --remove hostname hostname.${PN} - update-alternatives --remove uptime uptime.${PN} - update-alternatives --remove '[' 'lbracket.${PN}' -} diff --git a/packages/coreutils/coreutils_6.0.bb b/packages/coreutils/coreutils_6.0.bb index 02fc70efb5..4d4c049465 100644 --- a/packages/coreutils/coreutils_6.0.bb +++ b/packages/coreutils/coreutils_6.0.bb @@ -2,13 +2,13 @@ require coreutils.inc PR = "r2" -DEFAULT_PREFERENCE = "-1" - -SRC_URI = "ftp://alpha.gnu.org/gnu/coreutils/coreutils-${PV}.tar.bz2 \ - file://man.patch;patch=1 \ - file://oe-old-tools.patch;patch=1 \ - file://futimens.patch;patch=1 \ - file://onceonly.m4" +SRC_URI = "\ + ftp://alpha.gnu.org/gnu/coreutils/coreutils-${PV}.tar.bz2 \ + file://man.patch;patch=1 \ + file://oe-old-tools.patch;patch=1 \ + file://futimens.patch;patch=1 \ + file://onceonly.m4 \ +" # [ gets a special treatment and is not included in this bindir_progs = "basename cksum comm csplit cut df dir dircolors dirname du \ -- cgit 1.2.3-korg From d9bc47972d62ad5fe941c74ab7976c8bcd5e5445 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 00:46:40 +0100 Subject: automake: update to 1.10.2 remove older ones --- .../automake182-update-configscripts.patch | 201 --------------------- .../automake182-update-configscripts.patch | 201 --------------------- .../automake182-update-configscripts.patch | 201 --------------------- packages/automake/automake-native_1.10.2.bb | 3 + packages/automake/automake-native_1.10.bb | 3 - packages/automake/automake-native_1.8.2.bb | 18 -- packages/automake/automake-native_1.8.4.bb | 18 -- packages/automake/automake-native_1.9.2.bb | 2 - packages/automake/automake-native_1.9.3.bb | 3 - packages/automake/automake-native_1.9.6.bb | 3 - packages/automake/automake_1.10.2.bb | 31 ++++ packages/automake/automake_1.10.bb | 31 ---- packages/automake/automake_1.7.7.bb | 22 --- packages/automake/automake_1.8.2.bb | 26 --- packages/automake/automake_1.8.4.bb | 26 --- packages/automake/automake_1.9.2.bb | 27 --- packages/automake/automake_1.9.3.bb | 28 --- packages/automake/automake_1.9.6.bb | 31 ---- packages/automake/files/path_prog_fixes.patch | 49 +++-- 19 files changed, 56 insertions(+), 868 deletions(-) delete mode 100644 packages/automake/automake-1.8.2/automake182-update-configscripts.patch delete mode 100644 packages/automake/automake-1.9.2/automake182-update-configscripts.patch delete mode 100644 packages/automake/automake-1.9.3/automake182-update-configscripts.patch create mode 100644 packages/automake/automake-native_1.10.2.bb delete mode 100644 packages/automake/automake-native_1.10.bb delete mode 100644 packages/automake/automake-native_1.8.2.bb delete mode 100644 packages/automake/automake-native_1.8.4.bb delete mode 100644 packages/automake/automake-native_1.9.2.bb delete mode 100644 packages/automake/automake-native_1.9.3.bb delete mode 100644 packages/automake/automake-native_1.9.6.bb create mode 100644 packages/automake/automake_1.10.2.bb delete mode 100644 packages/automake/automake_1.10.bb delete mode 100644 packages/automake/automake_1.7.7.bb delete mode 100644 packages/automake/automake_1.8.2.bb delete mode 100644 packages/automake/automake_1.8.4.bb delete mode 100644 packages/automake/automake_1.9.2.bb delete mode 100644 packages/automake/automake_1.9.3.bb delete mode 100644 packages/automake/automake_1.9.6.bb diff --git a/packages/automake/automake-1.8.2/automake182-update-configscripts.patch b/packages/automake/automake-1.8.2/automake182-update-configscripts.patch deleted file mode 100644 index 52992b3b26..0000000000 --- a/packages/automake/automake-1.8.2/automake182-update-configscripts.patch +++ /dev/null @@ -1,201 +0,0 @@ ---- automake-1.8.2/lib/config.guess.old 2004-01-11 15:33:12.000000000 -0500 -+++ automake-1.8.2/lib/config.guess 2004-04-24 22:42:44.000000000 -0400 -@@ -3,7 +3,7 @@ - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - --timestamp='2004-01-05' -+timestamp='2004-03-12' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -197,12 +197,18 @@ - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; -+ amd64:OpenBSD:*:*) -+ echo x86_64-unknown-openbsd${UNAME_RELEASE} -+ exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -+ cats:OpenBSD:*:*) -+ echo arm-unknown-openbsd${UNAME_RELEASE} -+ exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -@@ -239,10 +245,24 @@ - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit 0 ;; -+ macppc:MirBSD:*:*) -+ echo powerppc-unknown-mirbsd${UNAME_RELEASE} -+ exit 0 ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit 0 ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU -@@ -280,11 +300,12 @@ - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms -@@ -405,6 +426,9 @@ - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; -@@ -829,6 +853,9 @@ - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; -@@ -1230,8 +1257,8 @@ - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; -- *:DRAGONFLY:*:*) -- echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE} -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - esac - ---- automake-1.8.2/lib/config.sub.old 2004-01-11 15:33:12.000000000 -0500 -+++ automake-1.8.2/lib/config.sub 2004-04-24 22:42:44.000000000 -0400 -@@ -3,7 +3,7 @@ - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - --timestamp='2004-01-05' -+timestamp='2004-03-12' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -237,7 +237,7 @@ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -- | m32r | m68000 | m68k | m88k | mcore \ -+ | m32r | m32rle | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -@@ -262,7 +262,7 @@ - | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ -@@ -308,7 +308,7 @@ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -- | m32r-* \ -+ | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ -@@ -336,7 +336,7 @@ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ -@@ -363,6 +363,9 @@ - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout -@@ -442,12 +445,20 @@ - basic_machine=j90-cray - os=-unicos - ;; -+ cr16c) -+ basic_machine=cr16c-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; -@@ -1070,7 +1081,7 @@ - sh64) - basic_machine=sh64-unknown - ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) -@@ -1143,8 +1154,9 @@ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ diff --git a/packages/automake/automake-1.9.2/automake182-update-configscripts.patch b/packages/automake/automake-1.9.2/automake182-update-configscripts.patch deleted file mode 100644 index 52992b3b26..0000000000 --- a/packages/automake/automake-1.9.2/automake182-update-configscripts.patch +++ /dev/null @@ -1,201 +0,0 @@ ---- automake-1.8.2/lib/config.guess.old 2004-01-11 15:33:12.000000000 -0500 -+++ automake-1.8.2/lib/config.guess 2004-04-24 22:42:44.000000000 -0400 -@@ -3,7 +3,7 @@ - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - --timestamp='2004-01-05' -+timestamp='2004-03-12' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -197,12 +197,18 @@ - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; -+ amd64:OpenBSD:*:*) -+ echo x86_64-unknown-openbsd${UNAME_RELEASE} -+ exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -+ cats:OpenBSD:*:*) -+ echo arm-unknown-openbsd${UNAME_RELEASE} -+ exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -@@ -239,10 +245,24 @@ - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit 0 ;; -+ macppc:MirBSD:*:*) -+ echo powerppc-unknown-mirbsd${UNAME_RELEASE} -+ exit 0 ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit 0 ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU -@@ -280,11 +300,12 @@ - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms -@@ -405,6 +426,9 @@ - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; -@@ -829,6 +853,9 @@ - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; -@@ -1230,8 +1257,8 @@ - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; -- *:DRAGONFLY:*:*) -- echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE} -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - esac - ---- automake-1.8.2/lib/config.sub.old 2004-01-11 15:33:12.000000000 -0500 -+++ automake-1.8.2/lib/config.sub 2004-04-24 22:42:44.000000000 -0400 -@@ -3,7 +3,7 @@ - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - --timestamp='2004-01-05' -+timestamp='2004-03-12' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -237,7 +237,7 @@ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -- | m32r | m68000 | m68k | m88k | mcore \ -+ | m32r | m32rle | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -@@ -262,7 +262,7 @@ - | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ -@@ -308,7 +308,7 @@ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -- | m32r-* \ -+ | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ -@@ -336,7 +336,7 @@ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ -@@ -363,6 +363,9 @@ - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout -@@ -442,12 +445,20 @@ - basic_machine=j90-cray - os=-unicos - ;; -+ cr16c) -+ basic_machine=cr16c-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; -@@ -1070,7 +1081,7 @@ - sh64) - basic_machine=sh64-unknown - ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) -@@ -1143,8 +1154,9 @@ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ diff --git a/packages/automake/automake-1.9.3/automake182-update-configscripts.patch b/packages/automake/automake-1.9.3/automake182-update-configscripts.patch deleted file mode 100644 index 52992b3b26..0000000000 --- a/packages/automake/automake-1.9.3/automake182-update-configscripts.patch +++ /dev/null @@ -1,201 +0,0 @@ ---- automake-1.8.2/lib/config.guess.old 2004-01-11 15:33:12.000000000 -0500 -+++ automake-1.8.2/lib/config.guess 2004-04-24 22:42:44.000000000 -0400 -@@ -3,7 +3,7 @@ - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - --timestamp='2004-01-05' -+timestamp='2004-03-12' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -197,12 +197,18 @@ - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; -+ amd64:OpenBSD:*:*) -+ echo x86_64-unknown-openbsd${UNAME_RELEASE} -+ exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -+ cats:OpenBSD:*:*) -+ echo arm-unknown-openbsd${UNAME_RELEASE} -+ exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -@@ -239,10 +245,24 @@ - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit 0 ;; -+ macppc:MirBSD:*:*) -+ echo powerppc-unknown-mirbsd${UNAME_RELEASE} -+ exit 0 ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit 0 ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU -@@ -280,11 +300,12 @@ - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms -@@ -405,6 +426,9 @@ - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; -@@ -829,6 +853,9 @@ - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; -@@ -1230,8 +1257,8 @@ - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; -- *:DRAGONFLY:*:*) -- echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE} -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - esac - ---- automake-1.8.2/lib/config.sub.old 2004-01-11 15:33:12.000000000 -0500 -+++ automake-1.8.2/lib/config.sub 2004-04-24 22:42:44.000000000 -0400 -@@ -3,7 +3,7 @@ - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - --timestamp='2004-01-05' -+timestamp='2004-03-12' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -237,7 +237,7 @@ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -- | m32r | m68000 | m68k | m88k | mcore \ -+ | m32r | m32rle | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -@@ -262,7 +262,7 @@ - | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ -@@ -308,7 +308,7 @@ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -- | m32r-* \ -+ | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ -@@ -336,7 +336,7 @@ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ -@@ -363,6 +363,9 @@ - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout -@@ -442,12 +445,20 @@ - basic_machine=j90-cray - os=-unicos - ;; -+ cr16c) -+ basic_machine=cr16c-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; -@@ -1070,7 +1081,7 @@ - sh64) - basic_machine=sh64-unknown - ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) -@@ -1143,8 +1154,9 @@ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ diff --git a/packages/automake/automake-native_1.10.2.bb b/packages/automake/automake-native_1.10.2.bb new file mode 100644 index 0000000000..92c861f49c --- /dev/null +++ b/packages/automake/automake-native_1.10.2.bb @@ -0,0 +1,3 @@ +PV := "${PV}" + +require automake-native.inc diff --git a/packages/automake/automake-native_1.10.bb b/packages/automake/automake-native_1.10.bb deleted file mode 100644 index 92c861f49c..0000000000 --- a/packages/automake/automake-native_1.10.bb +++ /dev/null @@ -1,3 +0,0 @@ -PV := "${PV}" - -require automake-native.inc diff --git a/packages/automake/automake-native_1.8.2.bb b/packages/automake/automake-native_1.8.2.bb deleted file mode 100644 index 9a8b1726a8..0000000000 --- a/packages/automake/automake-native_1.8.2.bb +++ /dev/null @@ -1,18 +0,0 @@ -SECTION = "devel" -require automake_${PV}.bb -S = "${WORKDIR}/automake-${PV}" -DEPENDS = "autoconf-native" -RDEPENDS_${PN} = "autoconf-native perl-native-runtime" - -inherit native - -do_stage () { - oe_runmake install - install -d ${datadir} - if [ ! -e ${datadir}/aclocal ]; then - ln -sf aclocal-1.8 ${datadir}/aclocal - fi - if [ ! -e ${datadir}/automake ]; then - ln -sf automake-1.8 ${datadir}/automake - fi -} diff --git a/packages/automake/automake-native_1.8.4.bb b/packages/automake/automake-native_1.8.4.bb deleted file mode 100644 index 9a8b1726a8..0000000000 --- a/packages/automake/automake-native_1.8.4.bb +++ /dev/null @@ -1,18 +0,0 @@ -SECTION = "devel" -require automake_${PV}.bb -S = "${WORKDIR}/automake-${PV}" -DEPENDS = "autoconf-native" -RDEPENDS_${PN} = "autoconf-native perl-native-runtime" - -inherit native - -do_stage () { - oe_runmake install - install -d ${datadir} - if [ ! -e ${datadir}/aclocal ]; then - ln -sf aclocal-1.8 ${datadir}/aclocal - fi - if [ ! -e ${datadir}/automake ]; then - ln -sf automake-1.8 ${datadir}/automake - fi -} diff --git a/packages/automake/automake-native_1.9.2.bb b/packages/automake/automake-native_1.9.2.bb deleted file mode 100644 index 2ecb0eaa1e..0000000000 --- a/packages/automake/automake-native_1.9.2.bb +++ /dev/null @@ -1,2 +0,0 @@ -PV := "${PV}" -require automake-native.inc diff --git a/packages/automake/automake-native_1.9.3.bb b/packages/automake/automake-native_1.9.3.bb deleted file mode 100644 index 92c861f49c..0000000000 --- a/packages/automake/automake-native_1.9.3.bb +++ /dev/null @@ -1,3 +0,0 @@ -PV := "${PV}" - -require automake-native.inc diff --git a/packages/automake/automake-native_1.9.6.bb b/packages/automake/automake-native_1.9.6.bb deleted file mode 100644 index 92c861f49c..0000000000 --- a/packages/automake/automake-native_1.9.6.bb +++ /dev/null @@ -1,3 +0,0 @@ -PV := "${PV}" - -require automake-native.inc diff --git a/packages/automake/automake_1.10.2.bb b/packages/automake/automake_1.10.2.bb new file mode 100644 index 0000000000..a17fe7aabb --- /dev/null +++ b/packages/automake/automake_1.10.2.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "A tool for automatically generating Makefiles." +LICENSE = "GPL" +HOMEPAGE = "http://www.gnu.org/software/automake/" +SECTION = "devel" +PR = "r0" + +SRC_URI = "\ + ${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \ + ${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]} \ +" +S = "${WORKDIR}/automake-${PV}" + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/automake-${PV}" + +inherit autotools + +export AUTOMAKE = "${@bb.which('automake', bb.data.getVar('PATH', d, 1))}" +FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*" + +require automake.inc + +do_install () { + oe_runmake 'DESTDIR=${D}' install + install -d ${D}${datadir} + if [ ! -e ${D}${datadir}/aclocal ]; then + ln -sf aclocal-1.10 ${D}${datadir}/aclocal + fi + if [ ! -e ${D}${datadir}/automake ]; then + ln -sf automake-1.10 ${D}${datadir}/automake + fi +} diff --git a/packages/automake/automake_1.10.bb b/packages/automake/automake_1.10.bb deleted file mode 100644 index 42e0d66d9e..0000000000 --- a/packages/automake/automake_1.10.bb +++ /dev/null @@ -1,31 +0,0 @@ -DESCRIPTION = "A tool for automatically generating Makefiles." -LICENSE = "GPL" -HOMEPAGE = "http://www.gnu.org/software/automake/" -SECTION = "devel" -PR = "r1" - -SRC_URI = "\ - ${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \ - ${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]} \ -" -S = "${WORKDIR}/automake-${PV}" - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/automake-${PV}" - -inherit autotools - -export AUTOMAKE = "${@bb.which('automake', bb.data.getVar('PATH', d, 1))}" -FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*" - -require automake.inc - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${datadir} - if [ ! -e ${D}${datadir}/aclocal ]; then - ln -sf aclocal-1.10 ${D}${datadir}/aclocal - fi - if [ ! -e ${D}${datadir}/automake ]; then - ln -sf automake-1.10 ${D}${datadir}/automake - fi -} diff --git a/packages/automake/automake_1.7.7.bb b/packages/automake/automake_1.7.7.bb deleted file mode 100644 index 4c00ea0891..0000000000 --- a/packages/automake/automake_1.7.7.bb +++ /dev/null @@ -1,22 +0,0 @@ -SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \ - ${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]}" -DESCRIPTION = "A tool for automatically generating Makefiles." -SECTION = "devel" -LICENSE = "GPL" -PR = "r7" -inherit autotools - -FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*" - -require automake.inc - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${datadir} - if [ ! -e ${D}${datadir}/aclocal ]; then - ln -sf aclocal-1.7 ${D}${datadir}/aclocal - fi - if [ ! -e ${D}${datadir}/automake ]; then - ln -sf automake-1.7 ${D}${datadir}/automake - fi -} diff --git a/packages/automake/automake_1.8.2.bb b/packages/automake/automake_1.8.2.bb deleted file mode 100644 index 30002191f5..0000000000 --- a/packages/automake/automake_1.8.2.bb +++ /dev/null @@ -1,26 +0,0 @@ -SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \ - file://automake182-update-configscripts.patch;patch=1;pnum=1 \ - ${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]}" -DESCRIPTION = "A tool for automatically generating Makefiles." -SECTION = "devel" -LICENSE = "GPL" -PR = "r7" - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/automake-${PV}" - -inherit autotools - -FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*" - -require automake.inc - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${datadir} - if [ ! -e ${D}${datadir}/aclocal ]; then - ln -sf aclocal-1.8 ${D}${datadir}/aclocal - fi - if [ ! -e ${D}${datadir}/automake ]; then - ln -sf automake-1.8 ${D}${datadir}/automake - fi -} diff --git a/packages/automake/automake_1.8.4.bb b/packages/automake/automake_1.8.4.bb deleted file mode 100644 index d10ff553df..0000000000 --- a/packages/automake/automake_1.8.4.bb +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION = "A tool for automatically generating Makefiles." -LICENSE = "GPL" -HOMEPAGE = "http://www.gnu.org/software/automake/" -SECTION = "devel" -PR = "r7" - -SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \ - ${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]}" -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/automake-${PV}" - -inherit autotools - -FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*" - -require automake.inc - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${datadir} - if [ ! -e ${D}${datadir}/aclocal ]; then - ln -sf aclocal-1.8 ${D}${datadir}/aclocal - fi - if [ ! -e ${D}${datadir}/automake ]; then - ln -sf automake-1.8 ${D}${datadir}/automake - fi -} diff --git a/packages/automake/automake_1.9.2.bb b/packages/automake/automake_1.9.2.bb deleted file mode 100644 index 19d5d56979..0000000000 --- a/packages/automake/automake_1.9.2.bb +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "A tool for automatically generating Makefiles." -LICENSE = "GPL" -HOMEPAGE = "http://www.gnu.org/software/automake/" -SECTION = "devel" -PR = "r7" - -SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \ - ${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]}" -S = "${WORKDIR}/automake-${PV}" -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/automake-${PV}" - -inherit autotools - -FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*" - -require automake.inc - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${datadir} - if [ ! -e ${D}${datadir}/aclocal ]; then - ln -sf aclocal-1.9 ${D}${datadir}/aclocal - fi - if [ ! -e ${D}${datadir}/automake ]; then - ln -sf automake-1.9 ${D}${datadir}/automake - fi -} diff --git a/packages/automake/automake_1.9.3.bb b/packages/automake/automake_1.9.3.bb deleted file mode 100644 index 52f9b981aa..0000000000 --- a/packages/automake/automake_1.9.3.bb +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION = "A tool for automatically generating Makefiles." -LICENSE = "GPL" -HOMEPAGE = "http://www.gnu.org/software/automake/" -SECTION = "devel" -PR = "r5" - -SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \ - ${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]}" -S = "${WORKDIR}/automake-${PV}" -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/automake-${PV}" - -inherit autotools - -export AUTOMAKE = "${@bb.which('automake', bb.data.getVar('PATH', d, 1))}" -FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*" - -require automake.inc - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${datadir} - if [ ! -e ${D}${datadir}/aclocal ]; then - ln -sf aclocal-1.9 ${D}${datadir}/aclocal - fi - if [ ! -e ${D}${datadir}/automake ]; then - ln -sf automake-1.9 ${D}${datadir}/automake - fi -} diff --git a/packages/automake/automake_1.9.6.bb b/packages/automake/automake_1.9.6.bb deleted file mode 100644 index eef69f4e4a..0000000000 --- a/packages/automake/automake_1.9.6.bb +++ /dev/null @@ -1,31 +0,0 @@ -DESCRIPTION = "A tool for automatically generating Makefiles." -LICENSE = "GPL" -HOMEPAGE = "http://www.gnu.org/software/automake/" -SECTION = "devel" - -SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \ - ${@['file://path_prog_fixes.patch;patch=1', ''][bb.data.inherits_class('native', d)]}" - -S = "${WORKDIR}/automake-${PV}" - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/automake-${PV}" - -inherit autotools - -export AUTOMAKE = "${@bb.which('automake', bb.data.getVar('PATH', d, 1))}" -FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*" - -require automake.inc - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${datadir} - if [ ! -e ${D}${datadir}/aclocal ]; then - ln -sf aclocal-1.9 ${D}${datadir}/aclocal - fi - if [ ! -e ${D}${datadir}/automake ]; then - ln -sf automake-1.9 ${D}${datadir}/automake - fi -} - -DEFAULT_PREFERENCE = "-1" diff --git a/packages/automake/files/path_prog_fixes.patch b/packages/automake/files/path_prog_fixes.patch index a85b244205..69cea77035 100644 --- a/packages/automake/files/path_prog_fixes.patch +++ b/packages/automake/files/path_prog_fixes.patch @@ -1,8 +1,8 @@ -Index: automake-1.9.3/Makefile.am +Index: automake-1.10.2/Makefile.am =================================================================== ---- automake-1.9.3.orig/Makefile.am 2004-10-25 14:57:30.000000000 -0400 -+++ automake-1.9.3/Makefile.am 2005-03-09 16:47:38.241364016 -0500 -@@ -66,7 +66,8 @@ +--- automake-1.10.2.orig/Makefile.am ++++ automake-1.10.2/Makefile.am +@@ -75,7 +75,8 @@ -e 's,[@]SHELL[@],$(SHELL),g' \ -e 's,[@]VERSION[@],$(VERSION),g' \ -e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \ @@ -12,11 +12,11 @@ Index: automake-1.9.3/Makefile.am ## These files depend on Makefile so they are rebuilt if $(VERSION), ## $(datadir) or other do_subst'ituted variables change. -Index: automake-1.9.3/Makefile.in +Index: automake-1.10.2/Makefile.in =================================================================== ---- automake-1.9.3.orig/Makefile.in 2004-11-01 05:23:54.000000000 -0500 -+++ automake-1.9.3/Makefile.in 2005-03-09 16:47:54.712859968 -0500 -@@ -161,7 +161,8 @@ +--- automake-1.10.2.orig/Makefile.in ++++ automake-1.10.2/Makefile.in +@@ -186,7 +186,8 @@ -e 's,[@]SHELL[@],$(SHELL),g' \ -e 's,[@]VERSION[@],$(VERSION),g' \ -e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \ @@ -25,26 +25,11 @@ Index: automake-1.9.3/Makefile.in + -e 's,[@]bindir[@],$(bindir),g' WGET = wget - WGETSGO = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~ -Index: automake-1.9.3/aclocal.in + WGET_SV_CVS = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/ +Index: automake-1.10.2/automake.in =================================================================== ---- automake-1.9.3.orig/aclocal.in 2004-10-10 12:10:24.000000000 -0400 -+++ automake-1.9.3/aclocal.in 2005-03-09 16:47:38.241364016 -0500 -@@ -1,8 +1,8 @@ --#!@PERL@ -+#!@bindir@/env perl - # -*- perl -*- - # @configure_input@ - --eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac' -+eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @bindir@/env perl -S "$0" "$@";; esac' - if 0; - - # aclocal - create aclocal.m4 by scanning configure.ac -Index: automake-1.9.3/automake.in -=================================================================== ---- automake-1.9.3.orig/automake.in 2004-10-21 16:23:26.000000000 -0400 -+++ automake-1.9.3/automake.in 2005-03-09 16:47:38.245363408 -0500 +--- automake-1.10.2.orig/automake.in ++++ automake-1.10.2/automake.in @@ -1,8 +1,10 @@ -#!@PERL@ -w +#!@bindir@/env perl @@ -58,3 +43,13 @@ Index: automake-1.9.3/automake.in if 0; # automake - create Makefile.in from Makefile.am +Index: automake-1.10.2/aclocal.in +=================================================================== +--- automake-1.10.2.orig/aclocal.in ++++ automake-1.10.2/aclocal.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@bindir@/env perl -w + # -*- perl -*- + # @configure_input@ + -- cgit 1.2.3-korg From 0aad705da40a3312eb4b33f3249620bcd732dd73 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 01:04:21 +0100 Subject: coreutils: add 7.1. Not thoroughly tested yet, hence DP=-1 --- .../coreutils/coreutils-7.1/automake-version.patch | 13 +++ packages/coreutils/coreutils-7.1/man.patch | 47 +++++++++++ .../coreutils/coreutils-7.1/oe-old-tools.patch | 26 ++++++ packages/coreutils/coreutils-7.1/onceonly.m4 | 63 +++++++++++++++ .../coreutils/coreutils-7.1/uptime-pow-lib.patch | 11 +++ packages/coreutils/coreutils-native_7.1.bb | 5 ++ packages/coreutils/coreutils_7.1.bb | 92 ++++++++++++++++++++++ 7 files changed, 257 insertions(+) create mode 100644 packages/coreutils/coreutils-7.1/automake-version.patch create mode 100644 packages/coreutils/coreutils-7.1/man.patch create mode 100644 packages/coreutils/coreutils-7.1/oe-old-tools.patch create mode 100644 packages/coreutils/coreutils-7.1/onceonly.m4 create mode 100644 packages/coreutils/coreutils-7.1/uptime-pow-lib.patch create mode 100644 packages/coreutils/coreutils-native_7.1.bb create mode 100644 packages/coreutils/coreutils_7.1.bb diff --git a/packages/coreutils/coreutils-7.1/automake-version.patch b/packages/coreutils/coreutils-7.1/automake-version.patch new file mode 100644 index 0000000000..497ef15385 --- /dev/null +++ b/packages/coreutils/coreutils-7.1/automake-version.patch @@ -0,0 +1,13 @@ +Index: coreutils-7.1/configure.ac +=================================================================== +--- coreutils-7.1.orig/configure.ac ++++ coreutils-7.1/configure.ac +@@ -32,7 +32,7 @@ + AC_CONFIG_AUX_DIR([build-aux]) + AC_CONFIG_HEADERS([lib/config.h:lib/config.hin]) + +-AM_INIT_AUTOMAKE([1.10a dist-xz]) ++AM_INIT_AUTOMAKE([1.10.2]) + + AC_PROG_CC_STDC + AM_PROG_CC_C_O diff --git a/packages/coreutils/coreutils-7.1/man.patch b/packages/coreutils/coreutils-7.1/man.patch new file mode 100644 index 0000000000..3de7c01b0b --- /dev/null +++ b/packages/coreutils/coreutils-7.1/man.patch @@ -0,0 +1,47 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +Index: coreutils-7.1/configure.ac +=================================================================== +--- coreutils-7.1.orig/configure.ac ++++ coreutils-7.1/configure.ac +@@ -373,6 +373,20 @@ + # For a test of uniq: it uses the $LOCALE_FR envvar. + gt_LOCALE_FR + ++AC_MSG_CHECKING([whether to build man pages]) ++AC_ARG_WITH(manpages, ++ AS_HELP_STRING([--with-manpages], ++ [Enable building of manpages (default=yes)]), ++ [cu_cv_build_manpages=$enableval], ++ [cu_cv_build_manpages=yes]) ++# help2man doesn't work when crosscompiling, as it needs to run the ++# binary that was built. ++if test x"$cross_compiling" = x"yes"; then ++ cu_cv_build_manpages=no ++fi ++AC_MSG_RESULT($cu_cv_build_manpages) ++AM_CONDITIONAL(ENABLE_MANPAGES, test x"$cu_cv_build_manpages" = x"yes") ++ + AC_CONFIG_FILES( + Makefile + doc/Makefile +Index: coreutils-7.1/Makefile.am +=================================================================== +--- coreutils-7.1.orig/Makefile.am ++++ coreutils-7.1/Makefile.am +@@ -15,7 +15,12 @@ + # You should have received a copy of the GNU General Public License + # along with this program. If not, see . + ++if ENABLE_MANPAGES + SUBDIRS = lib src doc man po tests gnulib-tests ++else ++SUBDIRS = lib src doc po tests gnulib-tests ++endif ++ + EXTRA_DIST = cfg.mk maint.mk \ + .prev-version THANKS-to-translators THANKStt.in \ + .version \ diff --git a/packages/coreutils/coreutils-7.1/oe-old-tools.patch b/packages/coreutils/coreutils-7.1/oe-old-tools.patch new file mode 100644 index 0000000000..495da36cf7 --- /dev/null +++ b/packages/coreutils/coreutils-7.1/oe-old-tools.patch @@ -0,0 +1,26 @@ +Index: coreutils-6.0/configure.ac +=================================================================== +--- coreutils-6.0.orig/configure.ac 2007-04-02 11:21:27.000000000 +0200 ++++ coreutils-6.0/configure.ac 2007-04-02 11:21:36.000000000 +0200 +@@ -26,7 +26,7 @@ + AC_CONFIG_HEADERS([config.h:config.hin]) + + AB_INIT() +-AM_INIT_AUTOMAKE([1.9.6 gnits dist-bzip2]) ++AM_INIT_AUTOMAKE([1.9.3 gnits dist-bzip2]) + + gl_DEFAULT_POSIX2_VERSION + gl_USE_SYSTEM_EXTENSIONS +Index: coreutils-6.0/m4/jm-macros.m4 +=================================================================== +--- coreutils-6.0.orig/m4/jm-macros.m4 2007-04-02 11:21:54.000000000 +0200 ++++ coreutils-6.0/m4/jm-macros.m4 2007-04-02 11:22:02.000000000 +0200 +@@ -23,7 +23,7 @@ + + AC_DEFUN([gl_MACROS], + [ +- AC_PREREQ(2.60) ++ AC_PREREQ(2.59) + + GNU_PACKAGE="GNU $PACKAGE" + AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE", diff --git a/packages/coreutils/coreutils-7.1/onceonly.m4 b/packages/coreutils/coreutils-7.1/onceonly.m4 new file mode 100644 index 0000000000..f6fec37cbf --- /dev/null +++ b/packages/coreutils/coreutils-7.1/onceonly.m4 @@ -0,0 +1,63 @@ +# onceonly.m4 serial 3 +dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl This file defines some "once only" variants of standard autoconf macros. +dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS +dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS +dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS +dnl AC_REQUIRE([AC_HEADER_STDC]) like AC_HEADER_STDC +dnl The advantage is that the check for each of the headers/functions/decls +dnl will be put only once into the 'configure' file. It keeps the size of +dnl the 'configure' file down, and avoids redundant output when 'configure' +dnl is run. +dnl The drawback is that the checks cannot be conditionalized. If you write +dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi +dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to +dnl empty, and the check will be inserted before the body of the AC_DEFUNed +dnl function. + +dnl Autoconf version 2.57 or newer is recommended. +AC_PREREQ(2.54) + +# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of +# AC_CHECK_HEADERS(HEADER1 HEADER2 ...). +AC_DEFUN([AC_CHECK_HEADERS_ONCE], [ + : + AC_FOREACH([gl_HEADER_NAME], [$1], [ + AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(defn([gl_HEADER_NAME]), + [-./], [___])), [ + AC_CHECK_HEADERS(gl_HEADER_NAME) + ]) + AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME, + [-./], [___]))) + ]) +]) + +# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of +# AC_CHECK_FUNCS(FUNC1 FUNC2 ...). +AC_DEFUN([AC_CHECK_FUNCS_ONCE], [ + : + AC_FOREACH([gl_FUNC_NAME], [$1], [ + AC_DEFUN([gl_CHECK_FUNC_]defn([gl_FUNC_NAME]), [ + AC_CHECK_FUNCS(defn([gl_FUNC_NAME])) + ]) + AC_REQUIRE([gl_CHECK_FUNC_]defn([gl_FUNC_NAME])) + ]) +]) + +# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of +# AC_CHECK_DECLS(DECL1, DECL2, ...). +AC_DEFUN([AC_CHECK_DECLS_ONCE], [ + : + AC_FOREACH([gl_DECL_NAME], [$1], [ + AC_DEFUN([gl_CHECK_DECL_]defn([gl_DECL_NAME]), [ + AC_CHECK_DECLS(defn([gl_DECL_NAME])) + ]) + AC_REQUIRE([gl_CHECK_DECL_]defn([gl_DECL_NAME])) + ]) +]) diff --git a/packages/coreutils/coreutils-7.1/uptime-pow-lib.patch b/packages/coreutils/coreutils-7.1/uptime-pow-lib.patch new file mode 100644 index 0000000000..5eb3fca676 --- /dev/null +++ b/packages/coreutils/coreutils-7.1/uptime-pow-lib.patch @@ -0,0 +1,11 @@ +--- coreutils-5.3.0/src/Makefile.am.orig 2005-09-27 22:34:35.659272058 -0700 ++++ coreutils-5.3.0/src/Makefile.am 2005-09-27 22:34:39.403507668 -0700 +@@ -74,7 +74,7 @@ + sleep_LDADD = $(nanosec_libs) + tail_LDADD = $(nanosec_libs) + +-uptime_LDADD = $(LDADD) $(GETLOADAVG_LIBS) ++uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS) + + su_LDADD = $(LDADD) $(LIB_CRYPT) + diff --git a/packages/coreutils/coreutils-native_7.1.bb b/packages/coreutils/coreutils-native_7.1.bb new file mode 100644 index 0000000000..057dfa6d80 --- /dev/null +++ b/packages/coreutils/coreutils-native_7.1.bb @@ -0,0 +1,5 @@ +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/coreutils-${PV}" +S = "${WORKDIR}/coreutils-${PV}" + +require coreutils_${PV}.bb +inherit native diff --git a/packages/coreutils/coreutils_7.1.bb b/packages/coreutils/coreutils_7.1.bb new file mode 100644 index 0000000000..6488e11a79 --- /dev/null +++ b/packages/coreutils/coreutils_7.1.bb @@ -0,0 +1,92 @@ +require coreutils.inc +PR = "r0" + +# not thoroughly testes yet +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "\ + ftp://ftp.gnu.org/gnu/coreutils/coreutils-${PV}.tar.gz \ + file://automake-version.patch;patch=1 \ + file://man.patch;patch=1 \ + file://onceonly.m4 \ +" + +# [ gets a special treatment and is not included in this +bindir_progs = "basename cksum comm csplit cut df dir dircolors dirname du \ + env expand expr factor fmt fold groups head hostid id install \ + join link logname md5sum mkfifo nice nl nohup od paste pathchk \ + pinky pr printenv printf ptx readlink seq sha1sum shred sort \ + split stat sum tac tail tee test tr tsort tty unexpand uniq \ + unlink users vdir wc who whoami yes \ + " + +# hostname gets a special treatment and is not included in this +base_bindir_progs = "cat chgrp chmod chown cp date dd echo false kill \ + ln ls mkdir mknod mv pwd rm rmdir sleep stty sync touch \ + true uname \ + " + +sbindir_progs= "chroot" + +do_configure_prepend() { + install -m 0644 ${WORKDIR}/onceonly.m4 ${S}/m4 +} + +do_install () { + autotools_do_install + + # Renaming the utilities that should go in /usr/bin + for i in ${bindir_progs}; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${PN}; done + + # Renaming and moving the utilities that should go in /bin (FHS) + install -d ${D}${base_bindir} + for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i.${PN}; done + + # Renaming and moving the utilities that should go in /usr/sbin (FHS) + install -d ${D}${sbindir} + for i in ${sbindir_progs}; do mv ${D}${bindir}/$i ${D}${sbindir}/$i.${PN}; done + + # [ requires special handling because [.coreutils will cause the sed stuff + # in update-alternatives to fail, therefore use lbracket - the name used + # for the actual source file. + mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${PN} + # hostname and uptime separated. busybox's versions are preferred + if [ -e ${D}${bindir}/hostname ]; then + mv ${D}${bindir}/hostname ${D}${base_bindir}/hostname.${PN} + fi + if [ -e ${D}${bindir}/uptime ]; then + mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN} + fi +} + +pkg_postinst_${PN} () { + # The utilities in /usr/bin + for i in ${bindir_progs}; do update-alternatives --install ${bindir}/$i $i $i.${PN} 100; done + + # The utilities in /bin + for i in ${base_bindir_progs}; do update-alternatives --install ${base_bindir}/$i $i $i.${PN} 100; done + + # The utilities in /usr/sbin + for i in ${sbindir_progs}; do update-alternatives --install ${sbindir}/$i $i $i.${PN} 100; done + + # Special cases. uptime and hostname is broken, prefer busybox's version. [ needs to be treated separately. + update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 10 + update-alternatives --install ${base_bindir}/hostname hostname hostname.${PN} 10 + update-alternatives --install '${bindir}/[' '[' 'lbracket.${PN}' 100 +} + +pkg_prerm_${PN} () { + # The utilities in /usr/bin + for i in ${bindir_progs}; do update-alternatives --remove $i $i.${PN}; done + + # The utilities in /bin + for i in ${base_bindir_progs}; do update-alternatives --remove $i $i.${PN}; done + + # The utilities in /usr/sbin + for i in ${sbindir_progs}; do update-alternatives --remove $i $i.${PN}; done + + # The special cases + update-alternatives --remove hostname hostname.${PN} + update-alternatives --remove uptime uptime.${PN} + update-alternatives --remove '[' 'lbracket.${PN}' +} -- cgit 1.2.3-korg From 71e32682808c54d00e80251b8c3f85e55ef06ccf Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 01:13:16 +0100 Subject: sane-toolchain.inc: fix typo in binutils version --- conf/distro/include/sane-toolchain.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc index 6165e752c5..01efe261b8 100644 --- a/conf/distro/include/sane-toolchain.inc +++ b/conf/distro/include/sane-toolchain.inc @@ -30,9 +30,9 @@ PREFERRED_VERSION_linux-libc-headers = "2.6.23" #KERNEL_CCSUFFIX_armv7a= "-4.2.1+csl-arm-2007q3-53" # Binutils -PREFERRED_VERSION_binutils ?= "PREFERRED_BINUTILS" -PREFERRED_VERSION_binutils-cross ?= "PREFERRED_BINUTILS" -PREFERRED_VERSION_binutils-cross-sdk ?= "PREFERRED_BINUTILS" +PREFERRED_VERSION_binutils ?= "${PREFERRED_BINUTILS}" +PREFERRED_VERSION_binutils-cross ?= "${PREFERRED_BINUTILS}" +PREFERRED_VERSION_binutils-cross-sdk ?= "${PREFERRED_BINUTILS}" # Avr32 only has patches for binutils 2.17 in OE PREFERRED_VERSION_binutils_avr32 = "2.17" -- cgit 1.2.3-korg From cf89155284b8a469cc58bf147f6d1157be938517 Mon Sep 17 00:00:00 2001 From: Leon Woestenberg Date: Tue, 3 Feb 2009 16:20:26 +0100 Subject: rt-tests: Moved from 0.21 to 0.28. --- packages/rt-tests/rt-tests_0.21.bb | 20 -------------------- packages/rt-tests/rt-tests_0.28.bb | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 packages/rt-tests/rt-tests_0.21.bb create mode 100644 packages/rt-tests/rt-tests_0.28.bb diff --git a/packages/rt-tests/rt-tests_0.21.bb b/packages/rt-tests/rt-tests_0.21.bb deleted file mode 100644 index 83600d5329..0000000000 --- a/packages/rt-tests/rt-tests_0.21.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Real-time tests, such as cyclictest, for real-time linux PREEMPT RT kernels" -HOMEPAGE = "http://rt.wiki.kernel.org/index.php/Cyclictest" -LICENSE = "GPL" -PR = "r2" - -SRC_URI = "http://www.kernel.org/pub/linux/kernel/people/tglx/rt-tests/rt-tests-${PV}.tar.bz2" - -S = "${WORKDIR}/rt-tests" - -# Limit to cyclictest only for non-real-time kernels. -# EXTRA_OEMAKE = "cyclictest" - -do_install() { - install -d ${D}${bindir} - # any file that is executable by user and/or group - for binary in `find . -perm /u+x,g+x -type f` - do - install -m 0755 $binary ${D}${bindir} - done -} diff --git a/packages/rt-tests/rt-tests_0.28.bb b/packages/rt-tests/rt-tests_0.28.bb new file mode 100644 index 0000000000..4c278ccd2d --- /dev/null +++ b/packages/rt-tests/rt-tests_0.28.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Real-time tests, such as cyclictest, for real-time linux PREEMPT RT kernels" +HOMEPAGE = "http://rt.wiki.kernel.org/index.php/Cyclictest" +LICENSE = "GPL" +PR = "r0" + +SRC_URI = "http://www.kernel.org/pub/linux/kernel/people/tglx/rt-tests/rt-tests-${PV}.tar.bz2" + +S = "${WORKDIR}/rt-tests" + +# Limit to cyclictest only for non-real-time kernels. +# EXTRA_OEMAKE = "cyclictest" + +do_install() { + install -d ${D}${bindir} + # any file that is executable by user and/or group + for binary in `find . -perm /u+x,g+x -type f` + do + install -m 0755 $binary ${D}${bindir} + done +} -- cgit 1.2.3-korg From d42294dad32e345a4a28e9457f4fd7cfcd74af3e Mon Sep 17 00:00:00 2001 From: Cliff Brake Date: Tue, 3 Feb 2009 11:17:34 -0500 Subject: checksums.ini: add checksum for pengutronix canutils --- conf/checksums.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index af95688447..8896079618 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -25546,3 +25546,7 @@ sha256=f57c4e33eb2cdd87a6c2f01bfa4794340fbe61ea1a1cfc7dac3b6671e1dd22af md5=5f7b88ebb2bcd7e8044328482d079661 sha256=f57c4e33eb2cdd87a6c2f01bfa4794340fbe61ea1a1cfc7dac3b6671e1dd22af +[http://www.pengutronix.de/software/socket-can/download/canutils/v3.0/canutils-3.0.2.tar.bz2] +md5=45787d61ba969bcf08b7a65143fad8e3 +sha256=3b10a3e62de58c593d53b7913e4d16b7785469b66fd9da0190b01fa3f6c73f92 + -- cgit 1.2.3-korg From 587bd013e90d39a17212f65dc327c23fda2dabd1 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 25 Feb 2009 09:59:56 +0100 Subject: checksums: add fakeroot 1.12.1 --- conf/checksums.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index 8896079618..03efe02d16 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -5246,6 +5246,10 @@ sha256=4b891e1d58c8cdf397737ac81a9328d8c663743b41f835bb2267831866d75a3e md5=61d29fcb868c5f9c3d0a3686ce45263e sha256=7796adabf4514ba535ccd518bb377c839c098cd2a28ba46984a627b2e9382e26 +[ftp://ftp.debian.org/debian/pool/main/f/fakeroot/fakeroot_1.12.1.tar.gz] +md5=87970d6784f536cde84f9bcbaaa52720 +sha256=6810168a3f2e20103d936513bce225dfcdda4bf1ae5f9f8042af47025c097cef + [http://openzaurus.org/mirror/fakeroot_1.2.13.tar.gz] md5=cf25d5d4c943ebf2293fe6f23ecba0fd sha256=6f51ebdf0e18bea58d18f79e8ffebb797fe57bdf44b96dff9d84b70467af7841 -- cgit 1.2.3-korg From af0e9d42bea7aefa0fd92b3f17b897889acb271b Mon Sep 17 00:00:00 2001 From: "Theodore A. Roth" Date: Tue, 24 Feb 2009 16:30:31 +0000 Subject: getting_oe.xml: Update documentation. * New section about directory structure. * Update 'Getting BitBake' section. Resubmitted against .dev instead of .documentation. Signed-off-by: Theodore A. Roth --- docs/usermanual/chapters/getting_oe.xml | 103 +++++++++++++++++++++++++------- 1 file changed, 83 insertions(+), 20 deletions(-) diff --git a/docs/usermanual/chapters/getting_oe.xml b/docs/usermanual/chapters/getting_oe.xml index 9238e4f29d..c7eb7ec7de 100644 --- a/docs/usermanual/chapters/getting_oe.xml +++ b/docs/usermanual/chapters/getting_oe.xml @@ -2,30 +2,93 @@ Getting Started +
+ OpenEmbedded Directory Structure + + Before you begin downloading OpenEmbedded, you need to setup your + working environment. + + The first step is to decide where on your system you wish to + work. This document will use the $OEBASE variable to + denote the base directory of the OpenEmbedded environment. For + example, $OEBASE could + be /home/joe/work/oe. + + The base directory of your OpenEmbedded environment + ($OEBASE) is the location where sources will be checked + out (or unpacked). You must choose a location with no symlinks + above it. + + To create the directory structure: + + +$ mkdir -p $OEBASE/build/conf +$ cd $OEBASE + + The $OEBASE/build directory will contain your + local configurations and extensions to the OpenEmbedded system which allow + you to build your applications and images. + + + The $OEBASE will also contain both bitbake/ and + openembedded/ directories. These will be discussed in + and + . + +
+
Getting <application>BitBake</application> - The required version of BitBake is - changing rapidly. At the time of writing (end 2007) - BitBake 1.8.latest was required. - - A safe method is to get the BitBake from - a stable Subversion branch (those with an even minor number). -svn co http://svn.berlios.de/svnroot/repos/bitbake/branches/bitbake-1.8 -... -A bitbake-1.8/classes/base.bbclass -U bitbake-1.8 -At revision 827. - BitBake is checked out now; - this completes the first and most critical dependency of OpenEmbedded. - Issuing svn up in the - bitbake-1.8 directory will update - BitBake to the latest stable version, but - generally it is a good idea to stick with a specific known working version - of BitBake until OpenEmbedded asks you to - upgrade. + Before using OE, you must first obtain the build tool it needs: + bitbake. + + It is recommended to run bitbake without installing it, as a sibling + directory of openembedded/ + and build/ directories. Indeed, as bitbake is written + in python it does not need compilation for being used. You'll just have to + set the PATH variable so that the BitBake tools are accessible (see + ). + +
Getting <application>BitBake</application> Using Subversion + To checkout the latest version of the BitBake 1.8 branch, use the + following command: + +$ cd $OEBASE +$ svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.8/ bitbake + + + + BitBake is checked out now and + the $OEBASE directory will contain + a bitbake/ subdirectory. + + If you need to access a Subversion server through a proxy, see the + SVN FAQ + +
+ +
Updating <application>BitBake</application> + Bitbake is being revised fairly often. Periodically it's a good + idea to check the repository of bitbake stable branches to see if a + new stable branch is available or if the current branch has been + revised. Compare your existing bitbake directory with the latest + bitbake branch in the repository. Your existing bitbake branch and + its 'last changed revision' number can be found as follows: + + $ cd $OEBASE/bitbake; svn info + + If there is a new stable branch, you will want to move or delete + your existing bitbake directory and repeat the process listed above + under "To obtain bitbake". If there is no new branch, it is easy to + update bitbake: + + $ cd $OEBASE/bitbake; svn update + +
+
Getting OpenEmbedded @@ -67,4 +130,4 @@ bitbake <recipe_name> This section is a stub, help us by expanding it
-
\ No newline at end of file + -- cgit 1.2.3-korg From 83ef846a36ad8809c6b1b2ac9fd9d13448c58412 Mon Sep 17 00:00:00 2001 From: "Theodore A. Roth" Date: Tue, 24 Feb 2009 16:32:57 +0000 Subject: getting_oe.xml: Update getting openembedded section. Resubmitted against .dev branch instead of .documentation. getting_oe.xml: Update getting openembedded section. Signed-off-by: Theodore A. Roth --- docs/usermanual/chapters/getting_oe.xml | 60 +++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/docs/usermanual/chapters/getting_oe.xml b/docs/usermanual/chapters/getting_oe.xml index c7eb7ec7de..69b9126fad 100644 --- a/docs/usermanual/chapters/getting_oe.xml +++ b/docs/usermanual/chapters/getting_oe.xml @@ -92,24 +92,50 @@ $ svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.8/ b
Getting OpenEmbedded + Note: Once upon a time OpenEmbedded used + Monotone for version control. If you have an OE Monotone repository on + your computer, you should replace it with the Git repository. + The OpenEmbedded metadata has a high rate of development, so it's a - good idea to stay up to date. You'll need monotone 0.28 to get the - metadata and stay up to date. Monotone is available in most distributions - and has binaries at Monotone - homepage. - - Next step is getting snapshot of database. -wget http://openembedded.org/snapshots/OE.mtn.bz2 http://openembedded.org/snapshots/OE.mtn.bz2.md5 - Or if you have monotone 0.30 or later: -wget http://www.openembedded.org/snapshots/OE-this-is-for-mtn-0.30.mtn.bz2 -wget http://www.openembedded.org/snapshots/OE-this-is-for-mtn-0.30.mtn.bz2.md5 - Then verify integrity of snapshot by checking md5sum. -md5sum -c OE.mtn.bz2.md5sum - Then unpack database. -bunzip OE.mtn.bz2 - Finally checkout the development branch. -mtn --db=OE.mtn co -b org.openembedded.dev - + good idea to stay up to date. You'll need Git to get the metadata and + stay up to date. Git is available in most distributions and has binaries + at Git homepage. + +
Checking Out OpenEmbedded With Git + Once you have installed Git, checkout the OpenEmbedded repository: + +$ cd $OEBASE +$ git clone git://git.openembedded.net/openembedded + The $OEBASE/openembedded/ directory should now + exist. +
+ +
Updating OpenEmbedded + The org.openembedded.dev branch of OpenEmbedded + is updated very frequently (as much as several times an hour). The + distro branches are not updated as much but still fairly often. It + seems good practice to update your OpenEmbedded tree at least + daily. To do this, run: + +$ cd $OEBASE +$ git pull + +
+
Changing Branches + Working with multiple branches is very easy to do with Git. The + OpenEmbedded repository holds many branches. To list all branches, use this command: + $ git branch -a + Branch names that begin with origin/ denote + branches that exist on the remote server. The name with a * in front + of it is the branch currently checked out. If you want to work with a + remote branch, you must first create a local copy of it. The following + command will create a local copy of a remote branch: + $ git branch <local_name> <remote_name> + To change branches, use this command: + $ git checkout <branch_name> + There are more complicated branch operations that can be done with git, + but those are beyond the scope of this document. +
-- cgit 1.2.3-korg From f339e1b9b8323529819daff816eac019de71445a Mon Sep 17 00:00:00 2001 From: "Theodore A. Roth" Date: Tue, 24 Feb 2009 16:35:51 +0000 Subject: getting_oe.xml: Add Configuring OpenEmbedded section. This patch fills in the stub for the "Configuring OpenEmbedded" section. Signed-off-by: Theodore A. Roth --- docs/usermanual/chapters/getting_oe.xml | 97 ++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 1 deletion(-) diff --git a/docs/usermanual/chapters/getting_oe.xml b/docs/usermanual/chapters/getting_oe.xml index 69b9126fad..3c685049a4 100644 --- a/docs/usermanual/chapters/getting_oe.xml +++ b/docs/usermanual/chapters/getting_oe.xml @@ -141,7 +141,102 @@ $ git pull
Configuring OpenEmbedded - This section is a stub, help us by expanding it + At this point, your $OEBASE/ directory should + contain at least the following subdirectories: + + build/ + bitbake/ + openembedded/ + + + +
Environment Setup + There are a few environment variables that you will need to set + before you can build software for OpenEmbedded using BitBake. You will + need to set these variables every time you open a terminal for + development. You can automate this in + ~/.profile, /etc/profile, or + perhaps use a script to set the necessary variables for using BitBake. + + + Since the path to your OpenEmbedded installation will be used in + many places, setting it in your environment will allow you to use + the $OEBASE variable in all pathes and make it + easier to change in the future should the need arise. To + set $OEBASE if you use a Bourne like shell + + If you use a CSH like shell (e.g. on a FreeBSD system), you + will set environment variables like this: + +$ setenv VAR_NAME "VAR_VALUE" + + , do this: + + +$ export OEBASE=/path/to/your/oe/installation + + + + If you followed the recommendation to use BitBake from svn, you + will need to add the path to the BitBake executable to + your PATH environment variable like this: + + +$ export PATH=$OEBASE/bitbake/bin:$PATH + + + In order for bitbake to find the configuration files for + OpenEmbedded, you will need to set the BBPATH + variable. + + +$ export BBPATH=$OEBASE/build:$OEBASE/openembedded + + + Finally, if you wish to allow BitBake to inherit + the $OEBASE variable from the environment, you will + need to set the BB_ENV_EXTRAWHITE variable: + + +$ export BB_ENV_EXTRAWHITE="OEBASE" + + Note the absence of the "$" character which implies that you are + setting BB_ENV_EXTRAWHITE to the variable name, not + the variable value. + +
+ +
Local Configuration + It is now time to create your local configuration. While you could + copy the default local.conf.sample like this: + + +$ cd $OEBASE +$ cp openembedded/conf/local.conf.sample build/conf/local.conf +$ vi build/conf/local.conf + + It is actually recommended to start smaller and + keep local.conf.sample in the background. Add + entries from there step-by-step as you understand and need + them. Please, do not just edit + build/conf/local.conf.sample but + actually READ it (read it and then edit it). + + + For building an org.openembedded.dev branch, in + your local.conf file, you should have at least + the following three + entries: BBFILES, DISTRO + and MACHINE. For example, consider the following + mininal local.conf file for the Ångström + distribution and the Openmoko gta01 machine: + + +BBFILES = "${OEBASE}/openembedded/packages/*/*.bb" +DISTRO = "angstrom-2008.1" +MACHINE = "om-gta01" + +
-- cgit 1.2.3-korg From fb87b496ca8298b7f1019a5718c3633ff5de6fbe Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 25 Feb 2009 15:39:19 +0100 Subject: task-gstreamer-ti: add gst-plugins-bad --- packages/tasks/task-gstreamer-ti.bb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/tasks/task-gstreamer-ti.bb b/packages/tasks/task-gstreamer-ti.bb index e6d34be966..cf05c7ce6b 100644 --- a/packages/tasks/task-gstreamer-ti.bb +++ b/packages/tasks/task-gstreamer-ti.bb @@ -1,11 +1,13 @@ - # Task for dsp accelerated gstreamer plugins -DEPENDS = "gst-plugins-base gst-plugins-good gst-plugins-ugly gst-ffmpeg gstreamer-ti gst-openmax" +PR = "r1" + +DEPENDS = "gst-plugins-base gst-plugins-bad gst-plugins-good gst-plugins-ugly gst-ffmpeg gstreamer-ti gst-openmax" RDEPENDS_${PN} = " \ gst-plugins-base-meta \ gst-plugins-good-meta \ +gst-plugins-bad-meta \ gst-plugins-ugly-meta \ gst-ffmpeg \ gst-openmax \ -- cgit 1.2.3-korg From 4c95f1db4ba243dea7af2c9cd00271539dccbb62 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 25 Feb 2009 15:49:16 +0100 Subject: automake: rediff path_prog_fixes for 1.10 * people should really test things before making it a global default. 'sane default' implies that at least do_patch succeeds --- .../automake/automake-1.10/path_prog_fixes.patch | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 packages/automake/automake-1.10/path_prog_fixes.patch diff --git a/packages/automake/automake-1.10/path_prog_fixes.patch b/packages/automake/automake-1.10/path_prog_fixes.patch new file mode 100644 index 0000000000..60d32833ea --- /dev/null +++ b/packages/automake/automake-1.10/path_prog_fixes.patch @@ -0,0 +1,43 @@ +Index: automake-1.9.3/Makefile.am +=================================================================== +--- automake-1.9.3.orig/Makefile.am 2004-10-25 14:57:30.000000000 -0400 ++++ automake-1.9.3/Makefile.am 2005-03-09 16:47:38.241364016 -0500 +@@ -66,7 +66,8 @@ + -e 's,[@]SHELL[@],$(SHELL),g' \ + -e 's,[@]VERSION[@],$(VERSION),g' \ + -e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \ +- -e 's,[@]datadir[@],$(datadir),g' ++ -e 's,[@]datadir[@],$(datadir),g' \ ++ -e 's,[@]bindir[@],$(bindir),g' + + ## These files depend on Makefile so they are rebuilt if $(VERSION), + ## $(datadir) or other do_subst'ituted variables change. +Index: automake-1.9.3/Makefile.in +=================================================================== +--- automake-1.9.3.orig/Makefile.in 2004-11-01 05:23:54.000000000 -0500 ++++ automake-1.9.3/Makefile.in 2005-03-09 16:47:54.712859968 -0500 +@@ -161,7 +161,8 @@ + -e 's,[@]SHELL[@],$(SHELL),g' \ + -e 's,[@]VERSION[@],$(VERSION),g' \ + -e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \ +- -e 's,[@]datadir[@],$(datadir),g' ++ -e 's,[@]datadir[@],$(datadir),g' \ ++ -e 's,[@]bindir[@],$(bindir),g' + + WGET = wget + WGETSGO = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~ +--- /tmp/aclocal.in 2009-02-25 15:43:38.000000000 +0100 ++++ automake-1.10/aclocal.in 2009-02-25 15:44:54.000000000 +0100 +@@ -1,8 +1,10 @@ +-#!@PERL@ -w ++#!@bindir@/env perl + # -*- perl -*- + # @configure_input@ + +-eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac' ++use warnings; ++ ++eval 'case $# in 0) exec @bindir@/env perl -S "$0";; *) exec @bindir@/env perl -S "$0" "$@";; esac' + if 0; + + # aclocal - create aclocal.m4 by scanning configure.ac -- cgit 1.2.3-korg From dea80abd5c52fd183bf9ce7db8d920d5d8839995 Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Wed, 25 Feb 2009 11:02:34 -0500 Subject: checksums.ini : Add checksum for libnetfitler_queue-0.0.16.tar.bz2. * I know I am slow adding this. --- conf/checksums.ini | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/conf/checksums.ini b/conf/checksums.ini index 03efe02d16..3f158212c5 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -3070,6 +3070,10 @@ sha256=837ba51635e01209dc2886491afbc2e97629bfaf32e73566a1862ea0dc090756 md5=ffd824f13f99011984399fc3b7526c71 sha256=837ba51635e01209dc2886491afbc2e97629bfaf32e73566a1862ea0dc090756 +[http://www.pengutronix.de/software/socket-can/download/canutils/v3.0/canutils-3.0.2.tar.bz2] +md5=45787d61ba969bcf08b7a65143fad8e3 +sha256=3b10a3e62de58c593d53b7913e4d16b7785469b66fd9da0190b01fa3f6c73f92 + [http://downloads.sourceforge.net/cbrpager/cbrpager-0.9.14.tar.gz] md5=0ce88fc52025b44812d090d10244b2a4 sha256=9c86a5668a2834f02ec44967737d6341c575e2a1deec76944f47be0292a3cfd7 @@ -12686,6 +12690,10 @@ sha256=ab01882a3d0556176018c09342cd0731f7cbc8e687795009894c3326942c76ff md5=660cbfd3dc8c10bf9b1803cd2b688256 sha256=1d6b180272befbfb19fedd80b5641354b82d6e719bf3d9ffa2d8287c62046536 +[http://www.netfilter.org/projects/libnetfilter_queue/files/libnetfilter_queue-0.0.16.tar.bz2] +md5=b36664e6cd39edbfe46b416a86118add +sha256=977491a20928cd40fa91a51b99c625fe0aa7efb47d4207a551b5f2f5e5e4c391 + [http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-0.0.30.tar.bz2] md5=7fd3c8ddc03d42fa9f0177a17a38f163 sha256=a6a336a5b3e063748d93ae910bbf6b2d36ead9f9ecd6011b14325b8814b54bc2 @@ -25550,7 +25558,3 @@ sha256=f57c4e33eb2cdd87a6c2f01bfa4794340fbe61ea1a1cfc7dac3b6671e1dd22af md5=5f7b88ebb2bcd7e8044328482d079661 sha256=f57c4e33eb2cdd87a6c2f01bfa4794340fbe61ea1a1cfc7dac3b6671e1dd22af -[http://www.pengutronix.de/software/socket-can/download/canutils/v3.0/canutils-3.0.2.tar.bz2] -md5=45787d61ba969bcf08b7a65143fad8e3 -sha256=3b10a3e62de58c593d53b7913e4d16b7785469b66fd9da0190b01fa3f6c73f92 - -- cgit 1.2.3-korg From 9bf9e57a9c860a259db721a68009a0100b39a169 Mon Sep 17 00:00:00 2001 From: Frans Meulenbroeks Date: Wed, 25 Feb 2009 18:02:09 +0100 Subject: cdrtools-native: fixed LICENSE --- packages/cdrtools/cdrtools-native_2.01.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cdrtools/cdrtools-native_2.01.bb b/packages/cdrtools/cdrtools-native_2.01.bb index 87045f4699..35404c9c04 100644 --- a/packages/cdrtools/cdrtools-native_2.01.bb +++ b/packages/cdrtools/cdrtools-native_2.01.bb @@ -2,14 +2,14 @@ # Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved # Released under the MIT license (see packages/COPYING) -LICENSE="GPL" +LICENSE="OSS" DESCRIPTION="A set of tools for CD recording, including cdrecord" HOMEPAGE="http://cdrecord.berlios.de/private/cdrecord.html" SRC_URI="http://ftp.berlios.de/pub/cdrecord/cdrtools-${PV}.tar.bz2" S="${WORKDIR}/cdrtools-${PV}" -PR = "r1" +PR = "r2" inherit native -- cgit 1.2.3-korg From a25928740fd49f754dff4bca74b85478bee06afd Mon Sep 17 00:00:00 2001 From: Frans Meulenbroeks Date: Wed, 25 Feb 2009 18:03:19 +0100 Subject: cdrkit: created package; cmd line tools to create CDs/DVDs --- conf/checksums.ini | 4 ++++ packages/cdrkit/cdrkit_1.1.9.bb | 13 +++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 packages/cdrkit/cdrkit_1.1.9.bb diff --git a/conf/checksums.ini b/conf/checksums.ini index 3f158212c5..331e897abe 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -3122,6 +3122,10 @@ sha256=005db45ef4ee017f5c32ec124f913a0546e77014266c6a1c50df902a55fe64df md5=7218e778b5970a86c958e597f952f193 sha256=1b79fae1aedc692f87d1344410f5c6b666961afccdc78bc5c4c257c450dfa008 +[http://cdrkit.org/releases/cdrkit-1.1.9.tar.gz] +md5=cbc0647e5d85f0e8fb3a692ba1d42edd +sha256=d5d58ab4c7bef036a53ef9742b4e57621f61310cd0cd28f558ba0b88c354efa2 + [ftp://ftp.berlios.de/pub/cdrecord/cdrtools-2.01.tar.bz2] md5=d44a81460e97ae02931c31188fe8d3fd sha256=728b6175069a77c4d7d92ae60108cbda81fbbf7bc7aa02e25153ccf2092f6c22 diff --git a/packages/cdrkit/cdrkit_1.1.9.bb b/packages/cdrkit/cdrkit_1.1.9.bb new file mode 100644 index 0000000000..0e57ef89fb --- /dev/null +++ b/packages/cdrkit/cdrkit_1.1.9.bb @@ -0,0 +1,13 @@ +# cdrkit build file + +LICENSE="GPLv2" +DESCRIPTION="A set of tools for CD recording" +HOMEPAGE="http://www.cdrkit.org" + +PARALLEL_MAKE = "" +DEPENDS = "libcap" +SRC_URI="http://cdrkit.org/releases/cdrkit-${PV}.tar.gz" + +S="${WORKDIR}/cdrkit-${PV}" +PR = "r0" + -- cgit 1.2.3-korg From 2d34d21ee17a5710c6567169a5d3b37c800408ef Mon Sep 17 00:00:00 2001 From: Frans Meulenbroeks Date: Wed, 25 Feb 2009 18:30:26 +0100 Subject: cdrkit: fix install issue --- packages/cdrkit/cdrkit_1.1.9.bb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cdrkit/cdrkit_1.1.9.bb b/packages/cdrkit/cdrkit_1.1.9.bb index 0e57ef89fb..9350273a98 100644 --- a/packages/cdrkit/cdrkit_1.1.9.bb +++ b/packages/cdrkit/cdrkit_1.1.9.bb @@ -9,5 +9,9 @@ DEPENDS = "libcap" SRC_URI="http://cdrkit.org/releases/cdrkit-${PV}.tar.gz" S="${WORKDIR}/cdrkit-${PV}" -PR = "r0" +PR = "r1" +do_install() { + oe_runmake install DESTDIR="${D}" + mv ${D}/usr/local/* ${D}${prefix}/ -f +} -- cgit 1.2.3-korg From 3c3d0700844b4352f8ef139620bd01a357254dab Mon Sep 17 00:00:00 2001 From: Steffen Sledz Date: Wed, 25 Feb 2009 19:03:03 +0100 Subject: checksums.ini: checksums for another e2fsprogs-1.41.4 url added --- conf/checksums.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index 331e897abe..136dcf4126 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -4626,6 +4626,10 @@ sha256=635d6d07e5a4d615e599c051166af965baa754f9ff7435e746de1a5d2a5c0d56 md5=1c1c5177aea9a23b45b9b3f5b3241819 sha256=635d6d07e5a4d615e599c051166af965baa754f9ff7435e746de1a5d2a5c0d56 +[http://downloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.4.tar.gz] +md5=59033388df36987d2b9c9bbf7e19bd57 +sha256=2cc10fee2b29add737e454eb634513135b34a638f7ca2b18364864fe089020dc + [http://qa.debian.org/watch/sf.php/e2fsprogs/e2fsprogs-1.41.4.tar.gz] md5=59033388df36987d2b9c9bbf7e19bd57 sha256=2cc10fee2b29add737e454eb634513135b34a638f7ca2b18364864fe089020dc -- cgit 1.2.3-korg From 88539a8d8a18bde9bc50cfa97fa62b4b216f7d45 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 25 Feb 2009 20:12:24 +0100 Subject: checksums.ini: add more sums --- conf/checksums.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index 136dcf4126..94b640af5a 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -8606,6 +8606,10 @@ sha256=0c9bf796b932dab2baab70829780eccde4113c08ce649768facd5010d6da640a md5=6c96cc0b2df0279cb7baac1ebc5881d3 sha256=8860e61edc26f0665ad6ea0b34be4e3fd2cc7c51c5fd63b25c857a1870e8e137 +[http://download.berlios.de/gpsd/gpsd-2.38.tar.gz] +md5=725c320ca6fa35bcdaa1de2d8908f392 +sha256=ae828da850ac0590fd47768856c4ec29021332204182abe4ad94098d72168474 + [http://www.gpsdrive.cc/gpsdrive-2.10pre2.tar.gz] md5=28b13b7253c8f019433be68686070558 sha256=5f53807375473b00f3748456fc8de33e7af300686032d74557fe5f0a931b3227 -- cgit 1.2.3-korg From 9e49fd17ab1da5589b089b02ae8129ac7341c0a2 Mon Sep 17 00:00:00 2001 From: Stanislav Brabec Date: Wed, 25 Feb 2009 20:30:09 +0000 Subject: mc-4.6.2: Miscelaneous fixes: * Correctly build help whiles cross compiling. * Detect codeset from langinfo tables, not locale name. * Ignore modifiers with Esc + Numeral F-keys emulation. * Package locale dependent files to locale sub-packages. * Install profile. * Use standars stages. * Fixed Serbian locale. --- packages/mc/mc-4.6.2/cross-compile.patch | 16 +++++++ packages/mc/mc-4.6.2/mc-utf8-slang-codeset.patch | 20 +++++++++ packages/mc/mc-4.6.2/multi-press-f-keys.patch | 55 ++++++++++++++++++++++++ packages/mc/mc.inc | 47 ++++++++++---------- packages/mc/mc_4.6.2.bb | 16 ++++++- 5 files changed, 127 insertions(+), 27 deletions(-) create mode 100644 packages/mc/mc-4.6.2/cross-compile.patch create mode 100644 packages/mc/mc-4.6.2/mc-utf8-slang-codeset.patch create mode 100644 packages/mc/mc-4.6.2/multi-press-f-keys.patch diff --git a/packages/mc/mc-4.6.2/cross-compile.patch b/packages/mc/mc-4.6.2/cross-compile.patch new file mode 100644 index 0000000000..53879e9cef --- /dev/null +++ b/packages/mc/mc-4.6.2/cross-compile.patch @@ -0,0 +1,16 @@ +Index: mc-4.6.2/src/Makefile.am +=================================================================== +--- mc-4.6.2.orig/src/Makefile.am 2009-02-01 19:30:21.000000000 +0000 ++++ mc-4.6.2/src/Makefile.am 2009-02-25 13:24:16.000000000 +0000 +@@ -14,7 +14,10 @@ + endif + + noinst_PROGRAMS = man2hlp +-man2hlp_LDADD = $(GLIB_LIBS) ++man2hlp_CFLAGS = $(GLIB_CFLAGS_FOR_BUILD) ++man2hlp_LDADD = $(GLIB_LIBS_FOR_BUILD) ++$(man2hlp_OBJECTS): CC=$(CC_FOR_BUILD) ++man2hlp_LINK = $(LD_FOR_BUILD) -o $@ + + mcmfmt_SOURCES = mfmt.c + diff --git a/packages/mc/mc-4.6.2/mc-utf8-slang-codeset.patch b/packages/mc/mc-4.6.2/mc-utf8-slang-codeset.patch new file mode 100644 index 0000000000..ff4780c7ce --- /dev/null +++ b/packages/mc/mc-4.6.2/mc-utf8-slang-codeset.patch @@ -0,0 +1,20 @@ +--- mc-4.6.2/slang/slcommon.c ++++ mc-4.6.2/slang/slcommon.c +@@ -31,7 +31,7 @@ + # include + #endif + +-#ifdef HAVE_LANGINFO_H ++#ifdef HAVE_LANGINFO_CODESET + # include + #endif + +@@ -87,7 +87,7 @@ + + (void) setlocale (LC_ALL, ""); + +-#ifdef HAVE_NL_LANGINFO_CODESET ++#ifdef HAVE_LANGINFO_CODESET + locale = nl_langinfo (CODESET); + if ((locale != NULL) && (*locale)) + { diff --git a/packages/mc/mc-4.6.2/multi-press-f-keys.patch b/packages/mc/mc-4.6.2/multi-press-f-keys.patch new file mode 100644 index 0000000000..571402552b --- /dev/null +++ b/packages/mc/mc-4.6.2/multi-press-f-keys.patch @@ -0,0 +1,55 @@ +http://www.midnight-commander.org/ticket/287 +Index: mc-4.6.2/src/key.c +=================================================================== +--- mc-4.6.2.orig/src/key.c 2009-02-01 19:30:21.000000000 +0000 ++++ mc-4.6.2/src/key.c 2009-02-25 20:16:46.000000000 +0000 +@@ -694,6 +694,8 @@ + /* F0 is the same as F10 for out purposes */ + if (c == KEY_F (0)) + c = KEY_F (10); ++ if (c == KEY_F_IMMUTABLE (0)) ++ c = KEY_F_IMMUTABLE (10); + + /* + * We are not interested if Ctrl was pressed when entering control +@@ -765,6 +767,16 @@ + mod &= ~KEY_M_SHIFT; + } + ++ /* ++ * Numerals may require modifilers with some keymaps or on obscure ++ * keyboards (e. g. F4 = Esc Shift+4). We have to ignore all ++ * modifiers while interpreting Esc + Numeral. ++ */ ++ if (c >= KEY_F_IMMUTABLE (1) && c <= KEY_F_IMMUTABLE (10)) { ++ c += KEY_F (0) - KEY_F_IMMUTABLE (0); ++ mod &= ~KEY_M_MASK; ++ } ++ + if (!alternate_plus_minus) + switch (c) { + case KEY_KP_ADD: +@@ -917,10 +929,9 @@ + this = this->next; + else { + if (parent != NULL && parent->action == MCKEY_ESCAPE) { +- + /* Convert escape-digits to F-keys */ + if (isdigit(c)) +- c = KEY_F (c - '0'); ++ c = KEY_F_IMMUTABLE (c - '0'); + else if (c == ' ') + c = ESC_CHAR; + else +Index: mc-4.6.2/src/myslang.h +=================================================================== +--- mc-4.6.2.orig/src/myslang.h 2009-02-25 18:25:29.000000000 +0000 ++++ mc-4.6.2/src/myslang.h 2009-02-25 18:25:31.000000000 +0000 +@@ -29,6 +29,7 @@ + }; + + #define KEY_F(x) (1000+x) ++#define KEY_F_IMMUTABLE(x) (970+x) + + #define ACS_VLINE SLSMG_VLINE_CHAR + #define ACS_HLINE SLSMG_HLINE_CHAR diff --git a/packages/mc/mc.inc b/packages/mc/mc.inc index 039fea6a61..5bafa9d1d7 100644 --- a/packages/mc/mc.inc +++ b/packages/mc/mc.inc @@ -4,18 +4,18 @@ HOMEPAGE = "http://www.ibiblio.org/mc/" LICENSE = "GPLv2" SECTION = "console/utils" PRIORITY = "optional" -DEPENDS = "ncurses glib-2.0" +DEPENDS = "ncurses glib-2.0 glib-2.0-native" RDEPENDS = "ncurses-terminfo" SRC_URI = "http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/mc-${PV}.tar.gz" inherit autotools -EXTRA_OECONF = "--disable-glibtest --without-x --without-samba \ +EXTRA_OECONF = "--libexecdir=${libdir} --disable-glibtest --without-x --without-samba \ --without-nfs --without-gpm-mouse --with-screen=ncurses" PACKAGES += "${PN}-extfs ${PN}-hilite" -FILES_${PN} = "${bindir}/ ${libdir}/ ${datadir}/mc/*.*" +FILES_${PN} = "${bindir}/ ${libdir}/ ${datadir}/mc/*.charsets ${datadir}/mc/*.ext ${datadir}/mc/*.hint ${datadir}/mc/*.hlp ${datadir}/mc/*.lib ${datadir}/mc/*.menu ${datadir}/mc/*.rc ${datadir}/mc/bin /etc/profile.d" FILES_${PN}-extfs = "${datadir}/mc/extfs/" FILES_${PN}-hilite = "${datadir}/mc/syntax/" RRECOMMENDS_${PN} += "${PN}-extfs ${PN}-hilite" @@ -24,29 +24,26 @@ RDEPENDS_${PN}-hilite = "${PN}" PACKAGE_ARCH_${PN}-extfs = "all" PACKAGE_ARCH_${PN}-hilite = "all" +export CC_FOR_BUILD = "${BUILD_CC}" +export CFLAGS_FOR_BUILD = "${BUILD_CFLAGS}" +export LD_FOR_BUILD = "${BUILD_CC}" +do_compile_prepend() { + export GLIB_CFLAGS_FOR_BUILD="`${STAGING_BINDIR_NATIVE}/pkg-config --cflags glib-2.0`" + export GLIB_LIBS_FOR_BUILD="`${STAGING_BINDIR_NATIVE}/pkg-config --libs glib-2.0`" +} -do_configure() { - gnu-configize - oe_runconf +do_install_append() { + if test -f ${D}${datadir}/mc/bin/mc.sh ; then + mkdir -p ${D}/etc/profile.d + mv ${D}${datadir}/mc/bin/mc.*sh ${D}/etc/profile.d + fi } -do_install() { - cd src - oe_runmake 'DESTDIR=${D}' install - cd ../syntax - oe_runmake 'DESTDIR=${D}' install - cd ../po - oe_runmake 'DESTDIR=${D}' install - cd ../vfs - oe_runmake 'DESTDIR=${D}' install - cd .. - - install -m 0644 lib/cedit.menu ${D}${datadir}/mc/ - install -m 0644 lib/edit.indent.rc ${D}${datadir}/mc/ - install -m 0644 lib/edit.spell.rc ${D}${datadir}/mc/ - install -m 0644 lib/mc.charsets ${D}${datadir}/mc/ - install -m 0644 lib/mc.ext ${D}${datadir}/mc/ - install -m 0644 lib/mc.lib ${D}${datadir}/mc/ - install -m 0644 lib/mc.menu ${D}${datadir}/mc/ - install -m 0644 lib/mc.menu.sr ${D}${datadir}/mc/ +PACKAGES_DYNAMIC = "mc-localedata-*" + +python populate_packages_prepend () { + mcdir = bb.data.expand('${datadir}/mc', d) + do_split_packages(d, mcdir, '^mc\.[hm][ile][npn].*\.(.*)$', + output_pattern='mc-locale-%s', + description='%s translation for mc') } diff --git a/packages/mc/mc_4.6.2.bb b/packages/mc/mc_4.6.2.bb index a2a5df8afe..ea44320e26 100644 --- a/packages/mc/mc_4.6.2.bb +++ b/packages/mc/mc_4.6.2.bb @@ -1,4 +1,5 @@ require mc.inc +PR = "r1" HOMEPAGE = "http://www.midnight-commander.org/" # UTF-8 fixes copied from openSUSE Factory: @@ -13,9 +14,13 @@ SRC_URI = "http://www.midnight-commander.org/downloads/${P}.tar.gz \ file://00-76-utf8-hotlist-highlight.patch;patch=1 \ file://00-77-utf8-filename-search-highlight.patch;patch=1 \ file://mc-utf8-nlink.patch;patch=1 \ - file://mc-utf8-look-and-feel.patch;patch=1" + file://mc-utf8-look-and-feel.patch;patch=1 \ + file://mc-utf8-slang-codeset.patch;patch=1 \ + file://multi-press-f-keys.patch;patch=1 \ + file://cross-compile.patch;patch=1" -EXTRA_OECONF = "--enable-charset --libexecdir=${libdir}" +EXTRA_OECONF = "--libexecdir=${libdir} --without-x --without-samba \ +--without-nfs --without-gpm-mouse --enable-charset" do_unpack_append() { bb.build.exec_func('do_utf8_conversion', d) @@ -30,9 +35,11 @@ do_utf8_conversion() { iconv -f iso8859-2 -t utf-8 -o mc.hint.cs.tmp mc.hint.cs && mv mc.hint.cs.tmp mc.hint.cs iconv -f iso8859-2 -t utf-8 -o mc.hint.hu.tmp mc.hint.hu && mv mc.hint.hu.tmp mc.hint.hu iconv -f iso8859-2 -t utf-8 -o mc.hint.pl.tmp mc.hint.pl && mv mc.hint.pl.tmp mc.hint.pl + iconv -f iso8859-5 -t utf-8 -o mc.hint.sr.tmp mc.hint.sr && mv mc.hint.sr.tmp mc.hint.sr iconv -f koi8-r -t utf8 -o mc.hint.ru.tmp mc.hint.ru && mv mc.hint.ru.tmp mc.hint.ru iconv -f koi8-u -t utf8 -o mc.hint.uk.tmp mc.hint.uk && mv mc.hint.uk.tmp mc.hint.uk iconv -f big5 -t utf8 -o mc.hint.zh.tmp mc.hint.zh && mv mc.hint.zh.tmp mc.hint.zh + iconv -f iso8859-5 -t utf-8 -o mc.menu.sr.tmp mc.menu.sr && mv mc.menu.sr.tmp mc.menu.sr popd # convert docs to utf-8 pushd doc @@ -56,5 +63,10 @@ do_utf8_conversion() { iconv -f koi8-r -t utf-8 -o mc.1.in.tmp mc.1.in && mv mc.1.in.tmp mc.1.in iconv -f koi8-r -t utf-8 -o xnc.hlp.tmp xnc.hlp && mv xnc.hlp.tmp xnc.hlp popd + pushd sr + iconv -f iso8859-5 -t utf-8 -o mc.1.in.tmp mc.1.in && mv mc.1.in.tmp mc.1.in + iconv -f iso8859-5 -t utf-8 -o xnc.hlp.tmp xnc.hlp && mv xnc.hlp.tmp xnc.hlp + iconv -f iso8859-5 -t utf-8 -o mcserv.8.in.tmp mcserv.8.in && mv mcserv.8.in.tmp mcserv.8.in + popd popd } -- cgit 1.2.3-korg From 80a378e8a7e01d7a9f7c6703fb7933856aa841d2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 25 Feb 2009 14:46:30 -0800 Subject: checksums: Add base-passwd checksum --- conf/checksums.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index 94b640af5a..4fbe3323ed 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -1990,6 +1990,10 @@ sha256=43debdc36c9aed8a2ef366bf3e98c1440e643a5ae9e7e1423b6309ddee5ae25e md5=5afcef5d6047f14cd5f65d2fdbd86fb2 sha256=43debdc36c9aed8a2ef366bf3e98c1440e643a5ae9e7e1423b6309ddee5ae25e +[ftp://ftp.us.debian.org/debian/pool/main/b/base-passwd/base-passwd_3.5.20.tar.gz] +md5=1f93b419b35f0b0b2ae78cf3cb1ef491 +sha256=3f4f59d07af4fccdf6aed0822b25422ad7cfaee442a3ab870dc031f173d456f2 + [ftp://ftp.debian.org/debian/pool/main/b/base-passwd/base-passwd_3.5.9.tar.gz] md5=2dd8ad238abcbab478db690085554d90 sha256=a9d7ac67598b2b004a53a9e70592e0f274d3c8731ed9395ed704fd0259f0c0af -- cgit 1.2.3-korg From be7e9193df2d36db94bcae4cf83a598a1aea42b8 Mon Sep 17 00:00:00 2001 From: Stanislav Brabec Date: Wed, 25 Feb 2009 23:13:25 +0000 Subject: mc: Added checksum, removed obsolete line in mc.inc. --- conf/checksums.ini | 4 ++++ packages/mc/mc.inc | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/conf/checksums.ini b/conf/checksums.ini index 4fbe3323ed..6ea39f04cb 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -14886,6 +14886,10 @@ sha256=396a2de3eed6d5d3c4604b372e11f6c0f18644ef3d8ee14978b715ec26aa0974 md5=18b20db6e40480a53bac2870c56fc3c4 sha256=086ab03daaac28a28c0ddb9a709040b59e1322f6bfa68e39d004d9c66b119e7e +[http://www.midnight-commander.org/downloads/mc-4.6.2.tar.gz] +md5=ec92966f4d0c8b50c344fe901859ae2a +sha256=d34c913e7fff4ea61cf8640b10f9118829cc5359045a1821b6510f3c8b1be26e + [http://www.lilotux.net/~mikael/mcabber/files/mcabber-0.9.9.tar.bz2] md5=189fb9d23f5a8412bc660884528475ea sha256=2a231c9241211d33745f110f35cfa6bdb051b32791461b9579794b6623863bb1 diff --git a/packages/mc/mc.inc b/packages/mc/mc.inc index 5bafa9d1d7..3c622ec736 100644 --- a/packages/mc/mc.inc +++ b/packages/mc/mc.inc @@ -39,8 +39,6 @@ do_install_append() { fi } -PACKAGES_DYNAMIC = "mc-localedata-*" - python populate_packages_prepend () { mcdir = bb.data.expand('${datadir}/mc', d) do_split_packages(d, mcdir, '^mc\.[hm][ile][npn].*\.(.*)$', -- cgit 1.2.3-korg From b295242c18f62ae5ed5d3767e8c2da46f2c2194a Mon Sep 17 00:00:00 2001 From: Mike Westerhof Date: Wed, 25 Feb 2009 20:34:02 -0600 Subject: SlugOS: reinstate fakeroot 1.9.6 and set as the PREFERRED_VERSION --- conf/distro/include/preferred-slugos-versions.inc | 3 ++- .../fakeroot/fakeroot-1.9.6/configure-libtool.patch | 18 ++++++++++++++++++ packages/fakeroot/fakeroot-1.9.6/fix-prefix.patch | 18 ++++++++++++++++++ packages/fakeroot/fakeroot-native_1.9.6.bb | 21 +++++++++++++++++++++ packages/fakeroot/fakeroot_1.9.6.bb | 18 ++++++++++++++++++ 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 packages/fakeroot/fakeroot-1.9.6/configure-libtool.patch create mode 100644 packages/fakeroot/fakeroot-1.9.6/fix-prefix.patch create mode 100644 packages/fakeroot/fakeroot-native_1.9.6.bb create mode 100644 packages/fakeroot/fakeroot_1.9.6.bb diff --git a/conf/distro/include/preferred-slugos-versions.inc b/conf/distro/include/preferred-slugos-versions.inc index d495930b20..dd7856dc48 100644 --- a/conf/distro/include/preferred-slugos-versions.inc +++ b/conf/distro/include/preferred-slugos-versions.inc @@ -69,7 +69,8 @@ PREFERRED_VERSION_udev ?= "118" PREFERRED_VERSION_avahi ?= "0.6.23" PREFERRED_VERSION_gst-plugins-base ?= "0.10.17" PREFERRED_VERSION_tiff ?= "3.7.2" - +PREFERRED_VERSION_fakeroot ?= "1.9.6" +PREFERRED_VERSION_fakeroot-native ?= "1.9.6" # Hack alert - selecting this version of libusb effectively selects # the use of libusb1 and libusb-compat in the case that something diff --git a/packages/fakeroot/fakeroot-1.9.6/configure-libtool.patch b/packages/fakeroot/fakeroot-1.9.6/configure-libtool.patch new file mode 100644 index 0000000000..8830328eb5 --- /dev/null +++ b/packages/fakeroot/fakeroot-1.9.6/configure-libtool.patch @@ -0,0 +1,18 @@ +--- fakeroot-1.8.3/configure.ac.orig 2007-10-31 00:17:27.000000000 -0500 ++++ fakeroot-1.8.3/configure.ac 2007-10-31 00:18:12.000000000 -0500 +@@ -1,14 +1,12 @@ + dnl Process this file with autoconf to produce a configure script. + AC_INIT([fakeroot],[FAKEROOT_VERSION],[schizo@debian.org],[fakeroot]) + AC_PREREQ(2.61) +-LT_PREREQ(2.1a) + AC_CANONICAL_TARGET + AM_INIT_AUTOMAKE + AM_MAINTAINER_MODE + AC_CONFIG_HEADERS([config.h]) + AC_PROG_MAKE_SET +-LT_INIT +-LT_LANG(C) ++AC_PROG_LIBTOOL + + AC_ARG_WITH([ipc], + AS_HELP_STRING([--with-ipc@<:@=IPCTYPE@:>@], diff --git a/packages/fakeroot/fakeroot-1.9.6/fix-prefix.patch b/packages/fakeroot/fakeroot-1.9.6/fix-prefix.patch new file mode 100644 index 0000000000..3884aca01c --- /dev/null +++ b/packages/fakeroot/fakeroot-1.9.6/fix-prefix.patch @@ -0,0 +1,18 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- fakeroot-1.2.13/scripts/fakeroot.in~fix-prefix ++++ fakeroot-1.2.13/scripts/fakeroot.in +@@ -15,8 +15,8 @@ + } + + # strip /bin/fakeroot to find install prefix +-PREFIX=@prefix@ +-BINDIR=@bindir@ ++BINDIR=`dirname $0` ++PREFIX=`dirname ${BINDIR}` + + LIB=lib@fakeroot_transformed@.so.0 + PATHS=@libdir@:${PREFIX}/lib64/libfakeroot:${PREFIX}/lib32/libfakeroot diff --git a/packages/fakeroot/fakeroot-native_1.9.6.bb b/packages/fakeroot/fakeroot-native_1.9.6.bb new file mode 100644 index 0000000000..77d6f58651 --- /dev/null +++ b/packages/fakeroot/fakeroot-native_1.9.6.bb @@ -0,0 +1,21 @@ +require fakeroot_${PV}.bb + +RDEPENDS="util-linux-native" + +SRC_URI += "file://fix-prefix.patch;patch=1 " +S = "${WORKDIR}/fakeroot-${PV}" + +inherit native + +EXTRA_OECONF = " --program-prefix=" + +# Compatability for the rare systems not using or having SYSV +python () { + if bb.data.getVar('HOST_NONSYSV', d, True) and bb.data.getVar('HOST_NONSYSV', d, True) != '0': + bb.data.setVar('EXTRA_OECONF', ' --with-ipc=tcp --program-prefix= ', d) +} + +do_stage_append () { + oe_libinstall -so libfakeroot ${STAGING_LIBDIR}/libfakeroot/ +} + diff --git a/packages/fakeroot/fakeroot_1.9.6.bb b/packages/fakeroot/fakeroot_1.9.6.bb new file mode 100644 index 0000000000..aaf696d79d --- /dev/null +++ b/packages/fakeroot/fakeroot_1.9.6.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Gives a fake root environment" +HOMEPAGE = "http://fakeroot.alioth.debian.org/" +SECTION = "base" +LICENSE = "GPL" +# fakeroot needs getopt which is provided by the util-linux package +RDEPENDS = "util-linux" +PR = "r1" + +SRC_URI = "${DEBIAN_MIRROR}/main/f/fakeroot/fakeroot_${PV}.tar.gz \ + file://configure-libtool.patch;patch=1" + +inherit autotools + +do_stage() { + install -d ${STAGING_INCDIR}/fakeroot + install -m 644 *.h ${STAGING_INCDIR}/fakeroot + autotools_stage_all +} -- cgit 1.2.3-korg From 16fb36ea23f3a1fb4e2bb76e62a6527e2f1c9b21 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 25 Feb 2009 19:14:49 -0800 Subject: checksums.ini: Add checksums for fakeroot_1.12.1.tar.gz and netbase-4.21.tar.gz --- conf/checksums.ini | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index 6ea39f04cb..c35d384d7d 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -5266,6 +5266,10 @@ sha256=7796adabf4514ba535ccd518bb377c839c098cd2a28ba46984a627b2e9382e26 md5=87970d6784f536cde84f9bcbaaa52720 sha256=6810168a3f2e20103d936513bce225dfcdda4bf1ae5f9f8042af47025c097cef +[ftp://ftp.us.debian.org/debian/pool/main/f/fakeroot/fakeroot_1.12.1.tar.gz] +md5=87970d6784f536cde84f9bcbaaa52720 +sha256=6810168a3f2e20103d936513bce225dfcdda4bf1ae5f9f8042af47025c097cef + [http://openzaurus.org/mirror/fakeroot_1.2.13.tar.gz] md5=cf25d5d4c943ebf2293fe6f23ecba0fd sha256=6f51ebdf0e18bea58d18f79e8ffebb797fe57bdf44b96dff9d84b70467af7841 @@ -15834,6 +15838,10 @@ sha256=9d5e27f290bbb954d512f37912d39a94ae03536a7ba3ef4dacec4df5f2476f47 md5=17917abd7d255d231cc0c6188ccd27fb sha256=b6e01cfc0b4223f60fd994eee950635b165d54a96cf63bbe607a5ff64355bd8c +[http://developer.irexnet.com/pub/iOn/Sources/1.0/Third%20party/all/netbase-4.21.tar.gz] +md5=b91eeb701d1733b3efb174b9463c5875 +sha256=cc74bd934a33e80e0218d9b2482d986191879d184ffd03deaefa78b0c8d7a76a + [ftp://ftp.debian.org/debian/pool/main/n/netbase/netbase_4.21.tar.gz] md5=4e4582ed5f84fa074137c1a7ee39a689 sha256=aa54d1822f8505f600b4c8d5debdf289b956b3b86bfd72e2ba02026352c107fc -- cgit 1.2.3-korg From b6ccea256e20f1efdd5635fb52a815fd9e3bd771 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Thu, 26 Feb 2009 09:41:05 +0100 Subject: gstreamer-ti: bump to r127 --- packages/dsplink/gstreamer-ti_svn.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dsplink/gstreamer-ti_svn.bb b/packages/dsplink/gstreamer-ti_svn.bb index 52f1fc04df..a21690d555 100644 --- a/packages/dsplink/gstreamer-ti_svn.bb +++ b/packages/dsplink/gstreamer-ti_svn.bb @@ -1,7 +1,7 @@ DEPENDS = "ti-codec-engine ti-dmai gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly libid3tag liboil libmad" SRC_URI = "svn://omapzoom.org/svn/gstreamer_ti/trunk;module=gstreamer_ti;proto=https" -SRCREV = "126" +SRCREV = "127" PR = "r1" -- cgit 1.2.3-korg From f1d4b0b58acecef4033fbc309d7ff0187930f77c Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Thu, 26 Feb 2009 13:11:08 +0100 Subject: linux-2.6.27: improve boc01 EEPROM support --- .../linux-2.6.27/boc01/005-090112-isl12024.patch | 950 --------------------- .../linux-2.6.27/boc01/005-090217-isl12024.patch | 669 +++++++++++++++ packages/linux/linux-2.6.27/boc01/boc01.dts | 7 +- packages/linux/linux-2.6.27/boc01/defconfig | 31 +- packages/linux/linux_2.6.27.bb | 4 +- 5 files changed, 678 insertions(+), 983 deletions(-) delete mode 100644 packages/linux/linux-2.6.27/boc01/005-090112-isl12024.patch create mode 100644 packages/linux/linux-2.6.27/boc01/005-090217-isl12024.patch diff --git a/packages/linux/linux-2.6.27/boc01/005-090112-isl12024.patch b/packages/linux/linux-2.6.27/boc01/005-090112-isl12024.patch deleted file mode 100644 index 32bde9dfc8..0000000000 --- a/packages/linux/linux-2.6.27/boc01/005-090112-isl12024.patch +++ /dev/null @@ -1,950 +0,0 @@ -Index: linux-2.6.27/drivers/i2c/chips/isl12024-eeprom.c -=================================================================== ---- /dev/null -+++ linux-2.6.27/drivers/i2c/chips/isl12024-eeprom.c -@@ -0,0 +1,254 @@ -+/* -+ * Intersil ISL12024 EEPROM class driver -+ * -+ * -+ * Copyright (C) 2007, CenoSYS (www.cenosys.com). -+ * Guillaume Ligneul -+ * Guillaume.ligneul@gmail.com -+ * -+ * Code is based on eeprom.c -+ * -+ * This software program is licensed subject to the GNU General Public License -+ * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html -+ */ -+ -+#include -+#include -+#include -+//#include -+//#include -+#include -+#include -+#include -+ -+/* Addresses to scan */ -+static const unsigned short normal_i2c[] = { ISL12024_I2C_EEPROM_ADDR, I2C_CLIENT_END }; -+ -+/* Insmod parameters */ -+I2C_CLIENT_INSMOD_1(eeprom); -+ -+ -+/* Size of EEPROM in bytes */ -+#define EEPROM_SIZE 4096 -+ -+/* Each client has this additional data */ -+struct eeprom_data { -+ struct i2c_client client; -+ struct mutex update_lock; -+}; -+ -+int -+isl12024_i2c_read(struct i2c_client *client, u8 reg, u8 buf[], -+ unsigned len) -+{ -+ int ret; -+ u8 dt_addr[2]; -+ -+ struct i2c_msg msgs[2] = { -+ { -+ .addr = client->addr, -+ .flags = 0, -+ .len = 2, -+ .buf = dt_addr, -+ }, -+ { -+ .addr = client->addr, -+ .flags = I2C_M_RD, -+ .len = len , -+ .buf = buf , -+ }, -+ }; -+ -+ dt_addr[0] = 0; -+ dt_addr[1] = reg; -+ -+ ret = i2c_transfer(client->adapter, msgs, 2); -+ if ( ret < 0) { -+ dev_err(&client->dev, "read error\n"); -+ return -EIO; -+ } -+ return ret; -+} -+ -+ -+int -+isl12024_i2c_write(struct i2c_client *client, u8 reg, u8 const buf[], -+ unsigned len) -+{ -+ int ret; -+ u8 i2c_buf[EEPROM_SIZE]; -+ -+ struct i2c_msg msgs[1] = { -+ { -+ .addr = client->addr, -+ .flags = 0, -+ .len = len+2, -+ .buf = i2c_buf, -+ }, -+ }; -+ -+ i2c_buf[0] = 0; -+ i2c_buf[1] = reg; -+ -+ -+ memcpy(&i2c_buf[2], &buf[0], len ); -+ -+ -+ ret = i2c_transfer(client->adapter, msgs, 1); -+ printk(KERN_INFO "i2c_transfer %d\n",ret); -+ return ret; -+} -+static int eeprom_attach_adapter(struct i2c_adapter *adapter); -+static int eeprom_detect(struct i2c_adapter *adapter, int address, int kind); -+static int eeprom_detach_client(struct i2c_client *client); -+ -+/* This is the driver that will be inserted */ -+static struct i2c_driver eeprom_driver = { -+ .driver = { -+ .name = "isl12024-eeprom", -+ }, -+ .attach_adapter = eeprom_attach_adapter, -+ .detach_client = eeprom_detach_client, -+}; -+ -+static ssize_t eeprom_read(struct kobject *kobj, struct bin_attribute *bin_attr, -+ char *buf, loff_t off, size_t count) -+{ -+ struct i2c_client *client = to_i2c_client(container_of(kobj, struct device, kobj)); -+ struct eeprom_data *data = i2c_get_clientdata(client); -+ int rc; -+ -+ mutex_lock(&data->update_lock); -+ -+ if (off >= EEPROM_SIZE) -+ return 0; -+ -+ if (off + count > EEPROM_SIZE) -+ count = EEPROM_SIZE - off; -+ -+ rc = isl12024_i2c_read(client,0,buf,EEPROM_SIZE); -+ -+ if (rc < 0){ -+ mutex_unlock(&data->update_lock); -+ return -EIO; -+ } -+ -+ mutex_unlock(&data->update_lock); -+ return count; -+} -+ -+static ssize_t eeprom_write(struct kobject *kobj, struct bin_attribute *attr, -+ char *buf, loff_t off, size_t count) -+{ -+ struct i2c_client *client = kobj_to_i2c_client(kobj); -+ struct eeprom_data *data = i2c_get_clientdata(client); -+ -+ if (off >= 256) -+ return -ENOSPC; -+ -+ if (off + count > 256) -+ count = 256 - off; -+ -+ mutex_unlock(&data->update_lock); -+ if (isl12024_i2c_write(client, off, buf, count) < 0) -+ { -+ mutex_unlock(&data->update_lock); -+ return -EIO; -+ } -+ -+ mutex_unlock(&data->update_lock); -+ return count; -+} -+ -+static struct bin_attribute eeprom_attr = { -+ .attr = { -+ .name = "eeprom", -+ .mode = S_IRUGO, -+ }, -+ .size = EEPROM_SIZE, -+ .read = eeprom_read, -+ .write= eeprom_write, -+}; -+ -+static int eeprom_attach_adapter(struct i2c_adapter *adapter) -+{ -+ return i2c_probe(adapter, &addr_data, eeprom_detect); -+} -+ -+/* This function is called by i2c_probe */ -+static int eeprom_detect(struct i2c_adapter *adapter, int address, int kind) -+{ -+ struct i2c_client *new_client; -+ struct eeprom_data *data; -+ int err = 0; -+ -+ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_READ_BYTE_DATA -+ | I2C_FUNC_SMBUS_BYTE)) -+ goto exit; -+ -+ if (!(data = kzalloc(sizeof(struct eeprom_data), GFP_KERNEL))) { -+ err = -ENOMEM; -+ goto exit; -+ } -+ -+ new_client = &data->client; -+ i2c_set_clientdata(new_client, data); -+ new_client->addr = address; -+ new_client->adapter = adapter; -+ new_client->driver = &eeprom_driver; -+ new_client->flags = 0; -+ -+ strlcpy(new_client->name, "isl12024-eeprom", I2C_NAME_SIZE); -+ mutex_init(&data->update_lock); -+ -+ /* Tell the I2C layer a new client has arrived */ -+ if ((err = i2c_attach_client(new_client))) -+ goto exit_kfree; -+ -+ /* create the sysfs eeprom file */ -+ err = sysfs_create_bin_file(&new_client->dev.kobj, &eeprom_attr); -+ if (err) -+ goto exit_detach; -+ -+ return 0; -+ -+exit_detach: -+ i2c_detach_client(new_client); -+exit_kfree: -+ kfree(data); -+exit: -+ return err; -+} -+ -+static int eeprom_detach_client(struct i2c_client *client) -+{ -+ int err; -+ -+ sysfs_remove_bin_file(&client->dev.kobj, &eeprom_attr); -+ -+ err = i2c_detach_client(client); -+ if (err) -+ return err; -+ -+ kfree(i2c_get_clientdata(client)); -+ -+ return 0; -+} -+ -+static int __init eeprom_init(void) -+{ -+ return i2c_add_driver(&eeprom_driver); -+} -+ -+static void __exit eeprom_exit(void) -+{ -+ i2c_del_driver(&eeprom_driver); -+} -+ -+ -+MODULE_AUTHOR("Guillaume Ligneul "); -+MODULE_DESCRIPTION("I2C Intersil12024 EEPROM driver"); -+MODULE_LICENSE("GPL"); -+ -+module_init(eeprom_init); -+module_exit(eeprom_exit); -Index: linux-2.6.27/drivers/i2c/chips/Kconfig -=================================================================== ---- linux-2.6.27.orig/drivers/i2c/chips/Kconfig -+++ linux-2.6.27/drivers/i2c/chips/Kconfig -@@ -40,6 +40,15 @@ config AT24 - This driver can also be built as a module. If so, the module - will be called at24. - -+config ISL12024EEPROM -+ tristate "Intersil 12024 EEPROM" -+ depends on RTC_DRV_ISL12024 -+ help -+ If you say yes here you get support for Intersil12024 EEPROM. -+ -+ This driver can also be built as a module. If so, the module -+ will be called isl12024-eeprom. -+ - config SENSORS_EEPROM - tristate "EEPROM reader" - depends on EXPERIMENTAL -Index: linux-2.6.27/drivers/i2c/chips/Makefile -=================================================================== ---- linux-2.6.27.orig/drivers/i2c/chips/Makefile -+++ linux-2.6.27/drivers/i2c/chips/Makefile -@@ -9,6 +9,8 @@ - # * I/O expander drivers go to drivers/gpio - # - -+ -+obj-$(CONFIG_ISL12024EEPROM) += isl12024-eeprom.o - obj-$(CONFIG_DS1682) += ds1682.o - obj-$(CONFIG_AT24) += at24.o - obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o -Index: linux-2.6.27/drivers/rtc/Kconfig -=================================================================== ---- linux-2.6.27.orig/drivers/rtc/Kconfig -+++ linux-2.6.27/drivers/rtc/Kconfig -@@ -124,6 +124,12 @@ comment "I2C RTC drivers" - - if I2C - -+config RTC_DRV_ISL12024 -+ tristate "Intersil 12024 RTC/ UniqueID" -+ help -+ If you say yes .... -+ This driver can also be built as a module. -+ - config RTC_DRV_DS1307 - tristate "Dallas/Maxim DS1307/37/38/39/40, ST M41T00" - help -Index: linux-2.6.27/drivers/rtc/Makefile -=================================================================== ---- linux-2.6.27.orig/drivers/rtc/Makefile -+++ linux-2.6.27/drivers/rtc/Makefile -@@ -34,6 +34,7 @@ obj-$(CONFIG_RTC_DRV_DS1742) += rtc-ds17 - obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o - obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o - obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o -+obj-$(CONFIG_RTC_DRV_ISL12024) += rtc-isl12024.o - obj-$(CONFIG_RTC_DRV_M41T80) += rtc-m41t80.o - obj-$(CONFIG_RTC_DRV_M41T94) += rtc-m41t94.o - obj-$(CONFIG_RTC_DRV_M48T59) += rtc-m48t59.o -Index: linux-2.6.27/drivers/rtc/rtc-isl12024.c -=================================================================== ---- /dev/null -+++ linux-2.6.27/drivers/rtc/rtc-isl12024.c -@@ -0,0 +1,516 @@ -+/* -+ * Intersil ISL12024 class driver -+ * -+ * -+ * Copyright (C) 2007, CenoSYS (www.cenosys.com). -+ * Guillaume Ligneul -+ * Guillaume.ligneul@gmail.com -+ * -+ * This software program is licensed subject to the GNU General Public License -+ * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+ -+#define DBG 1 -+#undef DBG -+ -+static u8 buf_id[ISL12024_RTC_SECTION_LEN] = { 0 ,}; -+ -+#define DRV_NAME "isl12024" -+#define DRV_VERSION "0.1" -+ -+/* i2c configuration */ -+ -+static const unsigned short normal_i2c[] = { -+ ISL12024_I2C_ADDR >>1, I2C_CLIENT_END -+}; -+I2C_CLIENT_INSMOD; -+ -+/* Procfs management */ -+static struct proc_dir_entry * root_proc = NULL; -+static struct proc_dir_entry * entry_proc = NULL; -+static int read_proc (char * page, char ** start, off_t off, int count, int * eof, void * data); -+ -+static int isl12024_get_status(struct i2c_client *client, unsigned char *sr); -+static int isl12024_fix_osc(struct i2c_client *client); -+ -+ -+static int isl12024_attach_adapter(struct i2c_adapter *adapter); -+static int isl12024_detach_client(struct i2c_client *client); -+ -+// To debug (may be add in includ/linux/i2c-id.h) -+#define I2C_DRIVERID_ISL12024 97 -+ -+static struct i2c_driver isl12024_driver = { -+ .driver = { -+ .name = DRV_NAME, -+ }, -+ .id = I2C_DRIVERID_ISL12024, -+ .attach_adapter = &isl12024_attach_adapter, -+ .detach_client = &isl12024_detach_client, -+}; -+ -+int -+isl12024_i2c_read_regs(struct i2c_client *client, u8 reg, u8 buf[], -+ unsigned len) -+{ -+ int ret; -+ u8 dt_addr[2]; -+ -+ struct i2c_msg msgs[2] = { -+ { -+ .addr = client->addr, -+ .flags = 0, -+ .len = 2, -+ .buf = dt_addr, -+ }, -+ { -+ .addr = client->addr, -+ .flags = I2C_M_RD, -+ .len = len , -+ .buf = buf , -+ }, -+ }; -+ -+ dt_addr[0] = 0; -+ dt_addr[1] = reg; -+ -+ ret = i2c_transfer(client->adapter, msgs, 2); -+ if ( ret < 0) { -+ dev_err(&client->dev, "read error\n"); -+ return -EIO; -+ } -+ return ret; -+} -+ -+EXPORT_SYMBOL(isl12024_i2c_read_regs); -+ -+ -+int -+isl12024_i2c_set_regs(struct i2c_client *client, u8 reg, u8 const buf[], -+ unsigned len) -+{ -+ int ret; -+ u8 i2c_buf[10]; -+ -+ struct i2c_msg msgs[1] = { -+ { -+ .addr = client->addr, -+ .flags = 0, -+ .len = len+2, -+ .buf = i2c_buf, -+ }, -+ }; -+ -+ i2c_buf[0] = 0; -+ i2c_buf[1] = reg; -+ -+ -+ memcpy(&i2c_buf[2], &buf[0], len ); -+ -+ -+ ret = i2c_transfer(client->adapter, msgs, 1); -+ printk(KERN_INFO "i2c_transfer %d\n",ret); -+ return ret; -+} -+ -+EXPORT_SYMBOL(isl12024_i2c_set_regs); -+ -+static int isl12024_i2c_validate_client(struct i2c_client *client) -+{ -+ u8 regs[ISL12024_RTC_SECTION_LEN] = { 0, }; -+ u8 zero_mask[ISL12024_RTC_SECTION_LEN] = { -+ 0x80, 0x80, 0x40, 0xc0, 0xe0, 0x00, 0xf8, 0xc6 -+ }; -+ -+ int i; -+ int ret; -+ -+ ret = isl12024_i2c_read_regs(client, ISL12024_REG_SC, regs, ISL12024_RTC_SECTION_LEN); -+ -+ if (ret < 0) -+ return ret; -+ -+ for (i = 0; i < ISL12024_RTC_SECTION_LEN; ++i) { -+ if (regs[i] & zero_mask[i]) /* check if bits are cleared */ -+ return -ENODEV; -+ -+ } -+ -+ return 0; -+} -+ -+static int isl12024_read_time(struct i2c_client *client, -+ struct rtc_time *tm) -+{ -+ unsigned char sr; -+ int err; -+ u8 regs[ISL12024_RTC_SECTION_LEN] = { 0, }; -+ -+ printk(KERN_INFO "%s\n ",__FUNCTION__ ); -+ -+ -+ if (isl12024_get_status(client, &sr) < 0) { -+ dev_err(&client->dev, "%s: reading SR failed\n", __func__); -+ return -EIO; -+ } -+ -+ err = isl12024_i2c_read_regs(client, ISL12024_REG_SC, regs, ISL12024_RTC_SECTION_LEN); -+ -+#ifdef DBG -+ int i; -+ for(i=0; idev, "%s: reading RTC section failed\n", -+ __func__); -+ return sr; -+ } -+ -+ tm->tm_sec = BCD2BIN(regs[0]); -+ tm->tm_min = BCD2BIN(regs[1]); -+ -+ { /* HR field has a more complex interpretation */ -+ const u8 _hr = regs[2]; -+ if (_hr & ISL12024_REG_HR_MIL) /* 24h format */ -+ tm->tm_hour = BCD2BIN(_hr & 0x3f); -+ else { // 12h format -+ tm->tm_hour = BCD2BIN(_hr & 0x1f); -+ if (_hr & ISL12024_REG_HR_PM) /* PM flag set */ -+ tm->tm_hour += 12; -+ } -+ } -+ -+ tm->tm_mday = BCD2BIN(regs[3]); -+ tm->tm_mon = BCD2BIN(regs[4]); -+ tm->tm_year = BCD2BIN(regs[5]) + 100; -+ tm->tm_wday = BCD2BIN(regs[6]); -+ -+ return rtc_valid_tm(tm); -+} -+ -+static int isl12024_get_status(struct i2c_client *client, unsigned char *sr) -+{ -+ static unsigned char sr_addr[2] = { 0, ISL12024_REG_SR }; -+ -+ struct i2c_msg msgs[] = { -+ { client->addr, 0, 2, sr_addr }, /* setup read ptr */ -+ { client->addr, I2C_M_RD, 1, sr }, /* read status */ -+ }; -+ -+ /* read status register */ -+ if (i2c_transfer(client->adapter, &msgs[0], 2) != 2) { -+ dev_err(&client->dev, "%s: read error\n", __func__); -+ return -EIO; -+ } -+ -+ return 0; -+} -+ -+static int isl12024_set_datetime(struct i2c_client *client, struct rtc_time *tm, -+ int datetoo, u8 reg_base, unsigned char alm_enable) -+{ -+ int i, xfer, nbytes; -+ unsigned char buf[8]; -+ unsigned char rdata[10] = { 0, reg_base }; -+ -+ static const unsigned char wel[3] = { 0, ISL12024_REG_SR, -+ ISL12024_SR_WEL }; -+ -+ static const unsigned char rwel[3] = { 0, ISL12024_REG_SR, -+ ISL12024_SR_WEL | ISL12024_SR_RWEL }; -+ -+ static const unsigned char diswe[3] = { 0, ISL12024_REG_SR, 0 }; -+ -+ dev_dbg(&client->dev, -+ "%s: secs=%d, mins=%d, hours=%d\n", -+ __func__, -+ tm->tm_sec, tm->tm_min, tm->tm_hour); -+ -+ buf[CCR_SEC] = BIN2BCD(tm->tm_sec); -+ buf[CCR_MIN] = BIN2BCD(tm->tm_min); -+ -+ /* set hour and 24hr bit */ -+ buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | ISL12024_HR_MIL; -+ -+ /* should we also set the date? */ -+ if (datetoo) { -+ dev_dbg(&client->dev, -+ "%s: mday=%d, mon=%d, year=%d, wday=%d\n", -+ __func__, -+ tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); -+ -+ buf[CCR_MDAY] = BIN2BCD(tm->tm_mday); -+ -+ /* month, 1 - 12 */ -+ buf[CCR_MONTH] = BIN2BCD(tm->tm_mon); -+ -+ /* year, since the rtc epoch*/ -+ buf[CCR_YEAR] = BIN2BCD(tm->tm_year % 100); -+ buf[CCR_WDAY] = tm->tm_wday & 0x07; -+ buf[CCR_Y2K] = BIN2BCD(tm->tm_year / 100); -+ } -+ -+ /* If writing alarm registers, set compare bits on registers 0-4 */ -+ if (reg_base < ISL12024_CCR_BASE) -+ for (i = 0; i <= 4; i++) -+ buf[i] |= 0x80; -+ -+ /* this sequence is required to unlock the chip */ -+ if ((xfer = i2c_master_send(client, wel, 3)) != 3) { -+ dev_err(&client->dev, "%s: wel - %d\n", __func__, xfer); -+ return -EIO; -+ } -+ -+ if ((xfer = i2c_master_send(client, rwel, 3)) != 3) { -+ dev_err(&client->dev, "%s: rwel - %d\n", __func__, xfer); -+ return -EIO; -+ } -+ -+ -+ /* write register's data */ -+ if (datetoo) -+ nbytes = 8; -+ else -+ nbytes = 3; -+ for (i = 0; i < nbytes; i++) -+ rdata[2+i] = buf[i]; -+ -+ xfer = i2c_master_send(client, rdata, nbytes+2); -+ if (xfer != nbytes+2) { -+ dev_err(&client->dev, -+ "%s: result=%d addr=%02x, data=%02x\n", -+ __func__, -+ xfer, rdata[1], rdata[2]); -+ return -EIO; -+ } -+ -+ /* If we wrote to the nonvolatile region, wait 10msec for write cycle*/ -+ if (reg_base < ISL12024_CCR_BASE) { -+ unsigned char al0e[3] = { 0, ISL12024_REG_INT, 0 }; -+ -+ msleep(10); -+ -+ /* ...and set or clear the AL0E bit in the INT register */ -+ -+ /* Need to set RWEL again as the write has cleared it */ -+ xfer = i2c_master_send(client, rwel, 3); -+ if (xfer != 3) { -+ dev_err(&client->dev, -+ "%s: aloe rwel - %d\n", -+ __func__, -+ xfer); -+ return -EIO; -+ } -+ -+ if (alm_enable) -+ al0e[2] = ISL12024_INT_AL0E; -+ -+ xfer = i2c_master_send(client, al0e, 3); -+ if (xfer != 3) { -+ dev_err(&client->dev, -+ "%s: al0e - %d\n", -+ __func__, -+ xfer); -+ return -EIO; -+ } -+ -+ /* and wait 10msec again for this write to complete */ -+ msleep(10); -+ } -+ -+ /* disable further writes */ -+ if ((xfer = i2c_master_send(client, diswe, 3)) != 3) { -+ dev_err(&client->dev, "%s: diswe - %d\n", __func__, xfer); -+ return -EIO; -+ } -+ -+ return 0; -+} -+ -+static int isl12024_fix_osc(struct i2c_client *client) -+{ -+ int err; -+ struct rtc_time tm; -+ -+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0; -+ -+ err = isl12024_set_datetime(client, &tm, 0, ISL12024_CCR_BASE, 0); -+ if (err < 0) -+ printk(KERN_INFO "unable to restart the oscillator\n"); -+ -+ return err; -+} -+ -+static int isl12024_rtc_read_time(struct device *dev, struct rtc_time *tm) -+{ -+ return isl12024_read_time(to_i2c_client(dev), tm); -+ -+} -+ -+static int isl12024_rtc_set_time(struct device *dev, struct rtc_time *tm) -+{ -+ return isl12024_set_datetime(to_i2c_client(dev), -+ tm, 1, ISL12024_CCR_BASE, 0); -+} -+ -+static int -+isl12024_rtc_proc(struct device *dev, struct seq_file *seq) -+{ -+ -+ /* Nothing to do */ -+ -+ return 0; -+} -+ -+static const struct rtc_class_ops isl12024_rtc_ops = { -+ .proc = isl12024_rtc_proc, -+ .read_time = isl12024_rtc_read_time, -+ .set_time = isl12024_rtc_set_time, -+}; -+ -+static int read_proc (char * page, char ** start, off_t off, int count, int * eof, void * data) -+{ -+ int i=0; -+ -+ printk("id: 0x"); -+ for(i=0;iaddr = addr; -+ new_client->adapter = adapter; -+ new_client->driver = &isl12024_driver; -+ new_client->flags = 0; -+ strcpy(new_client->name, DRV_NAME); -+ -+ if (kind < 0) { -+ rc = isl12024_i2c_validate_client(new_client); -+ if (rc < 0) -+ goto failout; -+ } -+ -+ rc = i2c_attach_client(new_client); -+ if (rc < 0) -+ goto failout; -+ -+ rtc = rtc_device_register(isl12024_driver.driver.name, -+ &new_client->dev, -+ &isl12024_rtc_ops, THIS_MODULE); -+ -+ if (IS_ERR(rtc)) { -+ printk("Error during rtc registration\n"); -+ rc = PTR_ERR(rtc); -+ goto failout; -+ } -+ -+ i2c_set_clientdata(new_client, rtc); -+ -+ /* Check for power failures and eventualy enable the osc */ -+ if ((err = isl12024_get_status(new_client, &sr)) == 0) { -+ if (sr & ISL12024_SR_RTCF) { -+ printk(KERN_INFO "power failure detected, " -+ "please set the clock\n"); -+ udelay(50); -+ isl12024_fix_osc(new_client); -+ } -+ } -+ else -+ printk(KERN_INFO "couldn't read status\n"); -+ -+ root_proc = proc_mkdir( "isl12024", 0 ); -+ entry_proc = create_proc_entry("id", S_IFREG | S_IRUGO | S_IWUSR, root_proc); -+ -+ if (entry_proc == NULL) -+ return -1; -+ -+ entry_proc->owner = THIS_MODULE; -+ entry_proc->read_proc = read_proc; -+ -+ /* read unique id from eeprom */ -+ isl12024_i2c_read_regs(new_client, ISL12024_REG_ID, buf_id, sizeof(buf_id)); -+ -+ -+ return 0; -+ -+ failout: -+ kfree(new_client); -+ return rc; -+} -+ -+static int -+isl12024_attach_adapter (struct i2c_adapter *adapter) -+{ -+ return i2c_probe(adapter, &addr_data, isl12024_probe); -+} -+ -+static int -+isl12024_detach_client(struct i2c_client *client) -+{ -+ int rc; -+ struct rtc_device *const rtc = i2c_get_clientdata(client); -+ -+ if (rtc) -+ rtc_device_unregister(rtc); -+ -+ rc = i2c_detach_client(client); -+ if (rc) -+ return rc; -+ -+ kfree(client); -+ -+ return 0; -+} -+ -+/* module init/exit */ -+ -+static int __init isl12024_init(void) -+{ -+ return i2c_add_driver(&isl12024_driver); -+} -+ -+static void __exit isl12024_exit(void) -+{ -+ i2c_del_driver(&isl12024_driver); -+} -+ -+MODULE_AUTHOR("Guillaume Ligneul "); -+MODULE_DESCRIPTION("Intersil ISL12024 driver"); -+MODULE_LICENSE("GPL"); -+MODULE_VERSION(DRV_VERSION); -+ -+module_init(isl12024_init); -+module_exit(isl12024_exit); -Index: linux-2.6.27/include/linux/i2c/isl12024.h -=================================================================== ---- /dev/null -+++ linux-2.6.27/include/linux/i2c/isl12024.h -@@ -0,0 +1,103 @@ -+/* -+ * Intersil ISL12024 chip registers definitions -+ * -+ * -+ * Copyright (C) 2008, CenoSYS (www.cenosys.com). -+ * Guillaume Ligneul -+ * Guillaume.ligneul@gmail.com -+ * -+ * This software program is licensed subject to the GNU General Public License -+ * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html -+ */ -+ -+#ifndef ISL12024_H_ -+#define ISL12024_H_ -+ -+#define ISL12024_REG_SR 0x3F /* status register */ -+#define ISL12024_REG_Y2K 0x37 -+#define ISL12024_REG_DW 0x36 -+#define ISL12024_REG_YR 0x35 -+#define ISL12024_REG_MO 0x34 -+#define ISL12024_REG_DT 0x33 -+#define ISL12024_REG_HR 0x32 -+#define ISL12024_REG_MN 0x31 -+#define ISL12024_REG_SC 0x30 -+#define ISL12024_REG_DTR 0x13 -+#define ISL12024_REG_ATR 0x12 -+#define ISL12024_REG_INT 0x11 -+#define ISL12024_REG_0 0x10 -+#define ISL12024_REG_Y2K1 0x0F -+#define ISL12024_REG_DWA1 0x0E -+#define ISL12024_REG_YRA1 0x0D -+#define ISL12024_REG_MOA1 0x0C -+#define ISL12024_REG_DTA1 0x0B -+#define ISL12024_REG_HRA1 0x0A -+#define ISL12024_REG_MNA1 0x09 -+#define ISL12024_REG_SCA1 0x08 -+#define ISL12024_REG_Y2K0 0x07 -+#define ISL12024_REG_DWA0 0x06 -+#define ISL12024_REG_YRA0 0x05 -+#define ISL12024_REG_MOA0 0x04 -+#define ISL12024_REG_DTA0 0x03 -+#define ISL12024_REG_HRA0 0x02 -+#define ISL12024_REG_MNA0 0x01 -+#define ISL12024_REG_SCA0 0x00 -+ -+#define ISL12024_CCR_BASE 0x30 /* Base address of CCR */ -+#define ISL12024_ALM0_BASE 0x00 /* Base address of ALARM0 */ -+ -+#define ISL12024_SR_RTCF 0x01 /* Clock failure */ -+#define ISL12024_SR_WEL 0x02 /* Write Enable Latch */ -+#define ISL12024_SR_RWEL 0x04 /* Register Write Enable */ -+#define ISL12024_SR_AL0 0x20 /* Alarm 0 match */ -+ -+#define ISL12024_DTR_DTR0 0x01 -+#define ISL12024_DTR_DTR1 0x02 -+#define ISL12024_DTR_DTR2 0x04 -+ -+#define ISL12024_HR_MIL 0x80 /* Set in ccr.hour for 24 hr mode */ -+ -+#define ISL12024_INT_AL0E 0x20 /* Alarm 0 enable */ -+/* I2C ADDRESS */ -+#define ISL12024_I2C_ADDR 0xDE -+#define ISL12024_I2C_EEPROM_ADDR 0x57 -+/* device id section */ -+#define ISL12024_REG_ID 0x20 -+/* Register map */ -+/* rtc section */ -+//#define ISL12024_REG_MSB 0x00 -+//#define ISL12024_REG_SC 0x30 /* Seconds */ -+//#define ISL12024_REG_MN 0x31 /* Minutes */ -+//#define ISL12024_REG_HR 0x32 /* Hours */ -+#define ISL12024_REG_HR_MIL (1<<7) /* 24h/12h mode */ -+#define ISL12024_REG_HR_PM (1<<5) /* PM/AM bit in 12h mode */ -+//#define ISL12024_REG_DT 0x33 /* Date */ -+//#define ISL12024_REG_MO 0x34 /* Month */ -+//#define ISL12024_REG_YR 0x35 /* Year */ -+//#define ISL12024_REG_DW 0x36 -+//#define ISL12024_REG_Y2K 0x37 -+#define ISL12024_RTC_SECTION_LEN 8 -+ -+ -+ -+/* control/status section */ -+//#define ISL12024_REG_SR 0x3F -+//#define ISL12024_REG_SR_BAT (1<<7) /* battery */ -+//#define ISL12024_REG_SR_AL1 (1<<6) /* alarm 0 */ -+//#define ISL12024_REG_SR_AL0 (1<<5) /* alarm 1 */ -+//#define ISL12024_REG_SR_OSCF (1<<4) /* oscillator fail */ -+//#define ISL12024_REG_SR_RWEL (1<<2) /* register write enable latch */ -+//#define ISL12024_REG_SR_WEL (1<<1) /* write enable latch */ -+//#define ISL12024_REG_SR_RTCF (1<<0) /* rtc fail */ -+//#define ISL12024_REG_INT 0x11 -+ -+#define CCR_SEC 0 -+#define CCR_MIN 1 -+#define CCR_HOUR 2 -+#define CCR_MDAY 3 -+#define CCR_MONTH 4 -+#define CCR_YEAR 5 -+#define CCR_WDAY 6 -+#define CCR_Y2K 7 -+ -+#endif /*ISL12024_H_*/ diff --git a/packages/linux/linux-2.6.27/boc01/005-090217-isl12024.patch b/packages/linux/linux-2.6.27/boc01/005-090217-isl12024.patch new file mode 100644 index 0000000000..672e405de0 --- /dev/null +++ b/packages/linux/linux-2.6.27/boc01/005-090217-isl12024.patch @@ -0,0 +1,669 @@ +Index: linux-2.6.27/drivers/rtc/Kconfig +=================================================================== +--- linux-2.6.27.orig/drivers/rtc/Kconfig ++++ linux-2.6.27/drivers/rtc/Kconfig +@@ -124,6 +124,12 @@ comment "I2C RTC drivers" + + if I2C + ++config RTC_DRV_ISL12024 ++ tristate "Intersil 12024 RTC/ UniqueID" ++ help ++ If you say yes .... ++ This driver can also be built as a module. ++ + config RTC_DRV_DS1307 + tristate "Dallas/Maxim DS1307/37/38/39/40, ST M41T00" + help +Index: linux-2.6.27/drivers/rtc/Makefile +=================================================================== +--- linux-2.6.27.orig/drivers/rtc/Makefile ++++ linux-2.6.27/drivers/rtc/Makefile +@@ -34,6 +34,7 @@ obj-$(CONFIG_RTC_DRV_DS1742) += rtc-ds17 + obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o + obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o + obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o ++obj-$(CONFIG_RTC_DRV_ISL12024) += rtc-isl12024.o + obj-$(CONFIG_RTC_DRV_M41T80) += rtc-m41t80.o + obj-$(CONFIG_RTC_DRV_M41T94) += rtc-m41t94.o + obj-$(CONFIG_RTC_DRV_M48T59) += rtc-m48t59.o +Index: linux-2.6.27/drivers/rtc/rtc-isl12024.c +=================================================================== +--- /dev/null ++++ linux-2.6.27/drivers/rtc/rtc-isl12024.c +@@ -0,0 +1,517 @@ ++/* ++ * Intersil ISL12024 class driver ++ * ++ * ++ * Copyright (C) 2007, CenoSYS (www.cenosys.com). ++ * Guillaume Ligneul ++ * Guillaume.ligneul@gmail.com ++ * ++ * This software program is licensed subject to the GNU General Public License ++ * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "isl12024.h" ++ ++ ++#define DBG 1 ++#undef DBG ++ ++static u8 buf_id[ISL12024_RTC_SECTION_LEN] = { 0 ,}; ++ ++#define DRV_NAME "isl12024" ++#define DRV_VERSION "0.1" ++ ++/* i2c configuration */ ++ ++static const unsigned short normal_i2c[] = { ++ ISL12024_I2C_ADDR >>1, I2C_CLIENT_END ++}; ++I2C_CLIENT_INSMOD; ++ ++/* Procfs management */ ++static struct proc_dir_entry * root_proc = NULL; ++static struct proc_dir_entry * entry_proc = NULL; ++static int read_proc (char * page, char ** start, off_t off, int count, int * eof, void * data); ++ ++static int isl12024_get_status(struct i2c_client *client, unsigned char *sr); ++static int isl12024_fix_osc(struct i2c_client *client); ++ ++ ++static int isl12024_attach_adapter(struct i2c_adapter *adapter); ++static int isl12024_detach_client(struct i2c_client *client); ++ ++// To debug (may be add in includ/linux/i2c-id.h) ++#define I2C_DRIVERID_ISL12024 97 ++ ++static struct i2c_driver isl12024_driver = { ++ .driver = { ++ .name = DRV_NAME, ++ }, ++ .id = I2C_DRIVERID_ISL12024, ++ .attach_adapter = &isl12024_attach_adapter, ++ .detach_client = &isl12024_detach_client, ++}; ++ ++int ++isl12024_i2c_read_regs(struct i2c_client *client, u8 reg, u8 buf[], ++ unsigned len) ++{ ++ int ret; ++ u8 dt_addr[2]; ++ ++ struct i2c_msg msgs[2] = { ++ { ++ .addr = client->addr, ++ .flags = 0, ++ .len = 2, ++ .buf = dt_addr, ++ }, ++ { ++ .addr = client->addr, ++ .flags = I2C_M_RD, ++ .len = len , ++ .buf = buf , ++ }, ++ }; ++ ++ dt_addr[0] = 0; ++ dt_addr[1] = reg; ++ ++ ret = i2c_transfer(client->adapter, msgs, 2); ++ if ( ret < 0) { ++ dev_err(&client->dev, "read error\n"); ++ return -EIO; ++ } ++ return ret; ++} ++ ++EXPORT_SYMBOL(isl12024_i2c_read_regs); ++ ++ ++int ++isl12024_i2c_set_regs(struct i2c_client *client, u8 reg, u8 const buf[], ++ unsigned len) ++{ ++ int ret; ++ u8 i2c_buf[10]; ++ ++ struct i2c_msg msgs[1] = { ++ { ++ .addr = client->addr, ++ .flags = 0, ++ .len = len+2, ++ .buf = i2c_buf, ++ }, ++ }; ++ ++ i2c_buf[0] = 0; ++ i2c_buf[1] = reg; ++ ++ ++ memcpy(&i2c_buf[2], &buf[0], len ); ++ ++ ++ ret = i2c_transfer(client->adapter, msgs, 1); ++ printk(KERN_INFO "i2c_transfer %d\n",ret); ++ return ret; ++} ++ ++EXPORT_SYMBOL(isl12024_i2c_set_regs); ++ ++static int isl12024_i2c_validate_client(struct i2c_client *client) ++{ ++ u8 regs[ISL12024_RTC_SECTION_LEN] = { 0, }; ++ u8 zero_mask[ISL12024_RTC_SECTION_LEN] = { ++ 0x80, 0x80, 0x40, 0xc0, 0xe0, 0x00, 0xf8, 0xc6 ++ }; ++ ++ int i; ++ int ret; ++ ++ ret = isl12024_i2c_read_regs(client, ISL12024_REG_SC, regs, ISL12024_RTC_SECTION_LEN); ++ ++ if (ret < 0) ++ return ret; ++ ++ for (i = 0; i < ISL12024_RTC_SECTION_LEN; ++i) { ++ if (regs[i] & zero_mask[i]) /* check if bits are cleared */ ++ return -ENODEV; ++ ++ } ++ ++ return 0; ++} ++ ++static int isl12024_read_time(struct i2c_client *client, ++ struct rtc_time *tm) ++{ ++ unsigned char sr; ++ int err; ++ u8 regs[ISL12024_RTC_SECTION_LEN] = { 0, }; ++ ++ printk(KERN_INFO "%s\n ",__FUNCTION__ ); ++ ++ ++ if (isl12024_get_status(client, &sr) < 0) { ++ dev_err(&client->dev, "%s: reading SR failed\n", __func__); ++ return -EIO; ++ } ++ ++ err = isl12024_i2c_read_regs(client, ISL12024_REG_SC, regs, ISL12024_RTC_SECTION_LEN); ++ ++#ifdef DBG ++ int i; ++ for(i=0; idev, "%s: reading RTC section failed\n", ++ __func__); ++ return sr; ++ } ++ ++ tm->tm_sec = BCD2BIN(regs[0]); ++ tm->tm_min = BCD2BIN(regs[1]); ++ ++ { /* HR field has a more complex interpretation */ ++ const u8 _hr = regs[2]; ++ if (_hr & ISL12024_REG_HR_MIL) /* 24h format */ ++ tm->tm_hour = BCD2BIN(_hr & 0x3f); ++ else { // 12h format ++ tm->tm_hour = BCD2BIN(_hr & 0x1f); ++ if (_hr & ISL12024_REG_HR_PM) /* PM flag set */ ++ tm->tm_hour += 12; ++ } ++ } ++ ++ tm->tm_mday = BCD2BIN(regs[3]); ++ tm->tm_mon = BCD2BIN(regs[4]); ++ tm->tm_year = BCD2BIN(regs[5]) + 100; ++ tm->tm_wday = BCD2BIN(regs[6]); ++ ++ return rtc_valid_tm(tm); ++} ++ ++static int isl12024_get_status(struct i2c_client *client, unsigned char *sr) ++{ ++ static unsigned char sr_addr[2] = { 0, ISL12024_REG_SR }; ++ ++ struct i2c_msg msgs[] = { ++ { client->addr, 0, 2, sr_addr }, /* setup read ptr */ ++ { client->addr, I2C_M_RD, 1, sr }, /* read status */ ++ }; ++ ++ /* read status register */ ++ if (i2c_transfer(client->adapter, &msgs[0], 2) != 2) { ++ dev_err(&client->dev, "%s: read error\n", __func__); ++ return -EIO; ++ } ++ ++ return 0; ++} ++ ++static int isl12024_set_datetime(struct i2c_client *client, struct rtc_time *tm, ++ int datetoo, u8 reg_base, unsigned char alm_enable) ++{ ++ int i, xfer, nbytes; ++ unsigned char buf[8]; ++ unsigned char rdata[10] = { 0, reg_base }; ++ ++ static const unsigned char wel[3] = { 0, ISL12024_REG_SR, ++ ISL12024_SR_WEL }; ++ ++ static const unsigned char rwel[3] = { 0, ISL12024_REG_SR, ++ ISL12024_SR_WEL | ISL12024_SR_RWEL }; ++ ++ static const unsigned char diswe[3] = { 0, ISL12024_REG_SR, 0 }; ++ ++ dev_dbg(&client->dev, ++ "%s: secs=%d, mins=%d, hours=%d\n", ++ __func__, ++ tm->tm_sec, tm->tm_min, tm->tm_hour); ++ ++ buf[CCR_SEC] = BIN2BCD(tm->tm_sec); ++ buf[CCR_MIN] = BIN2BCD(tm->tm_min); ++ ++ /* set hour and 24hr bit */ ++ buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | ISL12024_HR_MIL; ++ ++ /* should we also set the date? */ ++ if (datetoo) { ++ dev_dbg(&client->dev, ++ "%s: mday=%d, mon=%d, year=%d, wday=%d\n", ++ __func__, ++ tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); ++ ++ buf[CCR_MDAY] = BIN2BCD(tm->tm_mday); ++ ++ /* month, 1 - 12 */ ++ buf[CCR_MONTH] = BIN2BCD(tm->tm_mon); ++ ++ /* year, since the rtc epoch*/ ++ buf[CCR_YEAR] = BIN2BCD(tm->tm_year % 100); ++ buf[CCR_WDAY] = tm->tm_wday & 0x07; ++ buf[CCR_Y2K] = BIN2BCD(tm->tm_year / 100); ++ } ++ ++ /* If writing alarm registers, set compare bits on registers 0-4 */ ++ if (reg_base < ISL12024_CCR_BASE) ++ for (i = 0; i <= 4; i++) ++ buf[i] |= 0x80; ++ ++ /* this sequence is required to unlock the chip */ ++ if ((xfer = i2c_master_send(client, wel, 3)) != 3) { ++ dev_err(&client->dev, "%s: wel - %d\n", __func__, xfer); ++ return -EIO; ++ } ++ ++ if ((xfer = i2c_master_send(client, rwel, 3)) != 3) { ++ dev_err(&client->dev, "%s: rwel - %d\n", __func__, xfer); ++ return -EIO; ++ } ++ ++ ++ /* write register's data */ ++ if (datetoo) ++ nbytes = 8; ++ else ++ nbytes = 3; ++ for (i = 0; i < nbytes; i++) ++ rdata[2+i] = buf[i]; ++ ++ xfer = i2c_master_send(client, rdata, nbytes+2); ++ if (xfer != nbytes+2) { ++ dev_err(&client->dev, ++ "%s: result=%d addr=%02x, data=%02x\n", ++ __func__, ++ xfer, rdata[1], rdata[2]); ++ return -EIO; ++ } ++ ++ /* If we wrote to the nonvolatile region, wait 10msec for write cycle*/ ++ if (reg_base < ISL12024_CCR_BASE) { ++ unsigned char al0e[3] = { 0, ISL12024_REG_INT, 0 }; ++ ++ msleep(10); ++ ++ /* ...and set or clear the AL0E bit in the INT register */ ++ ++ /* Need to set RWEL again as the write has cleared it */ ++ xfer = i2c_master_send(client, rwel, 3); ++ if (xfer != 3) { ++ dev_err(&client->dev, ++ "%s: aloe rwel - %d\n", ++ __func__, ++ xfer); ++ return -EIO; ++ } ++ ++ if (alm_enable) ++ al0e[2] = ISL12024_INT_AL0E; ++ ++ xfer = i2c_master_send(client, al0e, 3); ++ if (xfer != 3) { ++ dev_err(&client->dev, ++ "%s: al0e - %d\n", ++ __func__, ++ xfer); ++ return -EIO; ++ } ++ ++ /* and wait 10msec again for this write to complete */ ++ msleep(10); ++ } ++ ++ /* disable further writes */ ++ if ((xfer = i2c_master_send(client, diswe, 3)) != 3) { ++ dev_err(&client->dev, "%s: diswe - %d\n", __func__, xfer); ++ return -EIO; ++ } ++ ++ return 0; ++} ++ ++static int isl12024_fix_osc(struct i2c_client *client) ++{ ++ int err; ++ struct rtc_time tm; ++ ++ tm.tm_hour = tm.tm_min = tm.tm_sec = 0; ++ ++ err = isl12024_set_datetime(client, &tm, 0, ISL12024_CCR_BASE, 0); ++ if (err < 0) ++ printk(KERN_INFO "unable to restart the oscillator\n"); ++ ++ return err; ++} ++ ++static int isl12024_rtc_read_time(struct device *dev, struct rtc_time *tm) ++{ ++ return isl12024_read_time(to_i2c_client(dev), tm); ++ ++} ++ ++static int isl12024_rtc_set_time(struct device *dev, struct rtc_time *tm) ++{ ++ return isl12024_set_datetime(to_i2c_client(dev), ++ tm, 1, ISL12024_CCR_BASE, 0); ++} ++ ++static int ++isl12024_rtc_proc(struct device *dev, struct seq_file *seq) ++{ ++ ++ /* Nothing to do */ ++ ++ return 0; ++} ++ ++static const struct rtc_class_ops isl12024_rtc_ops = { ++ .proc = isl12024_rtc_proc, ++ .read_time = isl12024_rtc_read_time, ++ .set_time = isl12024_rtc_set_time, ++}; ++ ++static int read_proc (char * page, char ** start, off_t off, int count, int * eof, void * data) ++{ ++ int i=0; ++ ++ printk("id: 0x"); ++ for(i=0;iaddr = addr; ++ new_client->adapter = adapter; ++ new_client->driver = &isl12024_driver; ++ new_client->flags = 0; ++ strcpy(new_client->name, DRV_NAME); ++ ++ if (kind < 0) { ++ rc = isl12024_i2c_validate_client(new_client); ++ if (rc < 0) ++ goto failout; ++ } ++ ++ rc = i2c_attach_client(new_client); ++ if (rc < 0) ++ goto failout; ++ ++ rtc = rtc_device_register(isl12024_driver.driver.name, ++ &new_client->dev, ++ &isl12024_rtc_ops, THIS_MODULE); ++ ++ if (IS_ERR(rtc)) { ++ printk("Error during rtc registration\n"); ++ rc = PTR_ERR(rtc); ++ goto failout; ++ } ++ ++ i2c_set_clientdata(new_client, rtc); ++ ++ /* Check for power failures and eventualy enable the osc */ ++ if ((err = isl12024_get_status(new_client, &sr)) == 0) { ++ if (sr & ISL12024_SR_RTCF) { ++ printk(KERN_INFO "power failure detected, " ++ "please set the clock\n"); ++ udelay(50); ++ isl12024_fix_osc(new_client); ++ } ++ } ++ else ++ printk(KERN_INFO "couldn't read status\n"); ++ ++ root_proc = proc_mkdir( "isl12024", 0 ); ++ entry_proc = create_proc_entry("id", S_IFREG | S_IRUGO | S_IWUSR, root_proc); ++ ++ if (entry_proc == NULL) ++ return -1; ++ ++ entry_proc->owner = THIS_MODULE; ++ entry_proc->read_proc = read_proc; ++ ++ /* read unique id from eeprom */ ++ isl12024_i2c_read_regs(new_client, ISL12024_REG_ID, buf_id, sizeof(buf_id)); ++ ++ ++ return 0; ++ ++ failout: ++ kfree(new_client); ++ return rc; ++} ++ ++static int ++isl12024_attach_adapter (struct i2c_adapter *adapter) ++{ ++ return i2c_probe(adapter, &addr_data, isl12024_probe); ++} ++ ++static int ++isl12024_detach_client(struct i2c_client *client) ++{ ++ int rc; ++ struct rtc_device *const rtc = i2c_get_clientdata(client); ++ ++ if (rtc) ++ rtc_device_unregister(rtc); ++ ++ rc = i2c_detach_client(client); ++ if (rc) ++ return rc; ++ ++ kfree(client); ++ ++ return 0; ++} ++ ++/* module init/exit */ ++ ++static int __init isl12024_init(void) ++{ ++ return i2c_add_driver(&isl12024_driver); ++} ++ ++static void __exit isl12024_exit(void) ++{ ++ i2c_del_driver(&isl12024_driver); ++} ++ ++MODULE_AUTHOR("Guillaume Ligneul "); ++MODULE_DESCRIPTION("Intersil ISL12024 driver"); ++MODULE_LICENSE("GPL"); ++MODULE_VERSION(DRV_VERSION); ++ ++module_init(isl12024_init); ++module_exit(isl12024_exit); +Index: linux-2.6.27/drivers/i2c/chips/at24.c +=================================================================== +--- linux-2.6.27.orig/drivers/i2c/chips/at24.c ++++ linux-2.6.27/drivers/i2c/chips/at24.c +@@ -114,6 +114,8 @@ static const struct i2c_device_id at24_i + { "spd", AT24_DEVICE_MAGIC(2048 / 8, + AT24_FLAG_READONLY | AT24_FLAG_IRUGO) }, + { "24c04", AT24_DEVICE_MAGIC(4096 / 8, 0) }, ++ /* Intersil RTC/Unique-ID isl12024 eeprom handled here */ ++ { "isl12024",AT24_DEVICE_MAGIC(4096 / 8, AT24_FLAG_ADDR16) }, + /* 24rf08 quirk is handled at i2c-core */ + { "24c08", AT24_DEVICE_MAGIC(8192 / 8, 0) }, + { "24c16", AT24_DEVICE_MAGIC(16384 / 8, 0) }, +Index: linux-2.6.27/drivers/rtc/isl12024.h +=================================================================== +--- /dev/null ++++ linux-2.6.27/drivers/rtc/isl12024.h +@@ -0,0 +1,100 @@ ++/* ++ * Intersil ISL12024 chip registers definitions ++ * ++ * ++ * Copyright (C) 2008, CenoSYS (www.cenosys.com). ++ * Guillaume Ligneul ++ * Guillaume.ligneul@gmail.com ++ * ++ * This software program is licensed subject to the GNU General Public License ++ * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html ++ */ ++ ++#ifndef ISL12024_H_ ++#define ISL12024_H_ ++ ++#define ISL12024_REG_SR 0x3F /* status register */ ++#define ISL12024_REG_Y2K 0x37 ++#define ISL12024_REG_DW 0x36 ++#define ISL12024_REG_YR 0x35 ++#define ISL12024_REG_MO 0x34 ++#define ISL12024_REG_DT 0x33 ++#define ISL12024_REG_HR 0x32 ++#define ISL12024_REG_MN 0x31 ++#define ISL12024_REG_SC 0x30 ++#define ISL12024_REG_DTR 0x13 ++#define ISL12024_REG_ATR 0x12 ++#define ISL12024_REG_INT 0x11 ++#define ISL12024_REG_0 0x10 ++#define ISL12024_REG_Y2K1 0x0F ++#define ISL12024_REG_DWA1 0x0E ++#define ISL12024_REG_YRA1 0x0D ++#define ISL12024_REG_MOA1 0x0C ++#define ISL12024_REG_DTA1 0x0B ++#define ISL12024_REG_HRA1 0x0A ++#define ISL12024_REG_MNA1 0x09 ++#define ISL12024_REG_SCA1 0x08 ++#define ISL12024_REG_Y2K0 0x07 ++#define ISL12024_REG_DWA0 0x06 ++#define ISL12024_REG_YRA0 0x05 ++#define ISL12024_REG_MOA0 0x04 ++#define ISL12024_REG_DTA0 0x03 ++#define ISL12024_REG_HRA0 0x02 ++#define ISL12024_REG_MNA0 0x01 ++#define ISL12024_REG_SCA0 0x00 ++ ++#define ISL12024_CCR_BASE 0x30 /* Base address of CCR */ ++#define ISL12024_ALM0_BASE 0x00 /* Base address of ALARM0 */ ++ ++#define ISL12024_SR_RTCF 0x01 /* Clock failure */ ++#define ISL12024_SR_WEL 0x02 /* Write Enable Latch */ ++#define ISL12024_SR_RWEL 0x04 /* Register Write Enable */ ++#define ISL12024_SR_AL0 0x20 /* Alarm 0 match */ ++ ++#define ISL12024_DTR_DTR0 0x01 ++#define ISL12024_DTR_DTR1 0x02 ++#define ISL12024_DTR_DTR2 0x04 ++ ++#define ISL12024_HR_MIL 0x80 /* Set in ccr.hour for 24 hr mode */ ++ ++#define ISL12024_INT_AL0E 0x20 /* Alarm 0 enable */ ++ ++/* I2C ADDRESS */ ++#define ISL12024_I2C_ADDR 0xDE ++#define ISL12024_I2C_EEPROM_ADDR 0x57 ++ ++/* device id section */ ++#define ISL12024_REG_ID 0x20 ++ ++/* Register map */ ++/* rtc section */ ++#define ISL12024_REG_HR_MIL (1<<7) /* 24h/12h mode */ ++#define ISL12024_REG_HR_PM (1<<5) /* PM/AM bit in 12h mode */ ++//#define ISL12024_REG_DT 0x33 /* Date */ ++//#define ISL12024_REG_MO 0x34 /* Month */ ++//#define ISL12024_REG_YR 0x35 /* Year */ ++//#define ISL12024_REG_DW 0x36 ++//#define ISL12024_REG_Y2K 0x37 ++#define ISL12024_RTC_SECTION_LEN 8 ++ ++/* control/status section */ ++//#define ISL12024_REG_SR 0x3F ++//#define ISL12024_REG_SR_BAT (1<<7) /* battery */ ++//#define ISL12024_REG_SR_AL1 (1<<6) /* alarm 0 */ ++//#define ISL12024_REG_SR_AL0 (1<<5) /* alarm 1 */ ++//#define ISL12024_REG_SR_OSCF (1<<4) /* oscillator fail */ ++//#define ISL12024_REG_SR_RWEL (1<<2) /* register write enable latch */ ++//#define ISL12024_REG_SR_WEL (1<<1) /* write enable latch */ ++//#define ISL12024_REG_SR_RTCF (1<<0) /* rtc fail */ ++//#define ISL12024_REG_INT 0x11 ++ ++#define CCR_SEC 0 ++#define CCR_MIN 1 ++#define CCR_HOUR 2 ++#define CCR_MDAY 3 ++#define CCR_MONTH 4 ++#define CCR_YEAR 5 ++#define CCR_WDAY 6 ++#define CCR_Y2K 7 ++ ++#endif /*ISL12024_H_*/ diff --git a/packages/linux/linux-2.6.27/boc01/boc01.dts b/packages/linux/linux-2.6.27/boc01/boc01.dts index fec7c85673..ffc27abb31 100644 --- a/packages/linux/linux-2.6.27/boc01/boc01.dts +++ b/packages/linux/linux-2.6.27/boc01/boc01.dts @@ -132,6 +132,10 @@ compatible = "at24,24c32"; reg = <0x50>; }; + at24@57 { + compatible = "at24,isl12024"; + reg = <0x57>; + }; }; crypto@30000 { @@ -184,7 +188,6 @@ mdio@24520 { #address-cells = <1>; #size-cells = <0>; - compatible = "fsl,gianfar-mdio"; reg = <0x24520 0x20>; phy4: ethernet-phy@4 { interrupt-parent = <&ipic>; @@ -252,7 +255,7 @@ gtm1: timer@500 { compatible = "fsl,mpc8313-gtm", "fsl,gtm"; reg = <0x500 0x100>; - interrupts = <90 8 78 8 84 8 72 8>; + interrupts = <72 8 78 8 84 8 90 8>; interrupt-parent = <&ipic>; }; diff --git a/packages/linux/linux-2.6.27/boc01/defconfig b/packages/linux/linux-2.6.27/boc01/defconfig index f302f0747d..bb667bcd10 100644 --- a/packages/linux/linux-2.6.27/boc01/defconfig +++ b/packages/linux/linux-2.6.27/boc01/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.27 -# Fri Jan 16 19:05:52 2009 +# Thu Feb 26 12:59:36 2009 # # CONFIG_PPC64 is not set @@ -40,7 +40,6 @@ CONFIG_ARCH_HAS_ILOG2_U32=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_GPIO=y # CONFIG_ARCH_NO_VIRT_TO_BUS is not set CONFIG_PPC=y CONFIG_EARLY_PRINTK=y @@ -264,7 +263,6 @@ CONFIG_GENERIC_ISA_DMA=y CONFIG_PPC_INDIRECT_PCI=y CONFIG_FSL_SOC=y CONFIG_FSL_PCI=y -CONFIG_FSL_LBC=y CONFIG_PPC_PCI_CHOICE=y CONFIG_PCI=y CONFIG_PCI_DOMAINS=y @@ -734,7 +732,6 @@ CONFIG_MTD_NAND_IDS=y # CONFIG_MTD_NAND_PLATFORM is not set # CONFIG_MTD_ALAUDA is not set CONFIG_MTD_NAND_FSL_ELBC=y -CONFIG_MTD_NAND_FSL_UPM=y # CONFIG_MTD_ONENAND is not set # @@ -742,7 +739,6 @@ CONFIG_MTD_NAND_FSL_UPM=y # # CONFIG_MTD_UBI is not set CONFIG_OF_DEVICE=y -CONFIG_OF_GPIO=y CONFIG_OF_I2C=y CONFIG_OF_SPI=y # CONFIG_PARPORT is not set @@ -1091,7 +1087,6 @@ CONFIG_I2C_HELPER_AUTO=y # # I2C system bus drivers (mostly embedded / system-on-chip) # -# CONFIG_I2C_GPIO is not set CONFIG_I2C_MPC=y # CONFIG_I2C_OCORES is not set # CONFIG_I2C_SIMTEC is not set @@ -1119,13 +1114,11 @@ CONFIG_I2C_MPC=y # # CONFIG_DS1682 is not set CONFIG_AT24=y -CONFIG_ISL12024EEPROM=y # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_PCF8575 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set -# CONFIG_TPS65010 is not set # CONFIG_SENSORS_MAX6875 is not set # CONFIG_SENSORS_TSL2550 is not set # CONFIG_I2C_DEBUG_CORE is not set @@ -1148,26 +1141,7 @@ CONFIG_SPI_MPC83xx=y CONFIG_SPI_SPIDEV=y # CONFIG_SPI_TLE62X0 is not set CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -CONFIG_GPIOLIB=y -CONFIG_GPIO_SYSFS=y - -# -# I2C GPIO expanders: -# -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_PCA953X is not set -# CONFIG_GPIO_PCF857X is not set - -# -# PCI GPIO expanders: -# -# CONFIG_GPIO_BT8XX is not set - -# -# SPI GPIO expanders: -# -# CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MCP23S08 is not set +# CONFIG_GPIOLIB is not set # CONFIG_W1 is not set CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY_DEBUG=y @@ -1528,7 +1502,6 @@ CONFIG_LEDS_CLASS=y # LED drivers # # CONFIG_LEDS_PCA9532 is not set -# CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_PCA955X is not set # diff --git a/packages/linux/linux_2.6.27.bb b/packages/linux/linux_2.6.27.bb index 0a2055e58e..0b219ec705 100644 --- a/packages/linux/linux_2.6.27.bb +++ b/packages/linux/linux_2.6.27.bb @@ -1,6 +1,6 @@ require linux.inc -PR = "r5" +PR = "r6" # Mark archs/machines that this kernel supports DEFAULT_PREFERENCE = "-1" @@ -15,7 +15,7 @@ SRC_URI_append_boc01 = "\ file://boc01.dts \ file://001-090114-sqn11x0-usb-hack.patch;patch=1 \ file://004-081205-usb.patch;patch=1 \ - file://005-090112-isl12024.patch;patch=1 \ + file://005-090217-isl12024.patch;patch=1 \ file://007-081217-lm73.patch;patch=1 \ file://008-081208-spi.patch;patch=1 \ file://010-090112-mii.patch;patch=1 \ -- cgit 1.2.3-korg From c73b66a4631d48a3a9bb57103ccd8b06e15daeaa Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Thu, 26 Feb 2009 07:56:08 -0500 Subject: checksums.ini : Add checksum for base-passwd-3.5.20. --- conf/checksums.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index c35d384d7d..f4abe64570 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -1990,6 +1990,10 @@ sha256=43debdc36c9aed8a2ef366bf3e98c1440e643a5ae9e7e1423b6309ddee5ae25e md5=5afcef5d6047f14cd5f65d2fdbd86fb2 sha256=43debdc36c9aed8a2ef366bf3e98c1440e643a5ae9e7e1423b6309ddee5ae25e +[ftp://ftp.debian.org/debian/pool/main/b/base-passwd/base-passwd_3.5.20.tar.gz] +md5=1f93b419b35f0b0b2ae78cf3cb1ef491 +sha256=3f4f59d07af4fccdf6aed0822b25422ad7cfaee442a3ab870dc031f173d456f2 + [ftp://ftp.us.debian.org/debian/pool/main/b/base-passwd/base-passwd_3.5.20.tar.gz] md5=1f93b419b35f0b0b2ae78cf3cb1ef491 sha256=3f4f59d07af4fccdf6aed0822b25422ad7cfaee442a3ab870dc031f173d456f2 -- cgit 1.2.3-korg From d3aaa3b12154980338924e71d4ffd422357810fe Mon Sep 17 00:00:00 2001 From: Philip Balister Date: Thu, 26 Feb 2009 08:54:52 -0500 Subject: tzcode-native : Add checksums for txcode and tzdata. --- conf/checksums.ini | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index f4abe64570..733bd8432b 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -21358,6 +21358,10 @@ sha256=d9be06167a3a882e39abed547037f1404935fa80410022af455060a1ba9c8bbb md5=1f1de10e168b78681756cc6411ea8145 sha256=1e5630747b12d82e106ff52173f890fe1975e2e72768872db8c64de9eace33d4 +[http://bent.latency.net/bent/darcs/zoneinfo-2007k/src/tzcode2007k.tar.gz] +md5=1f1de10e168b78681756cc6411ea8145 +sha256=1e5630747b12d82e106ff52173f890fe1975e2e72768872db8c64de9eace33d4 + [ftp://elsie.nci.nih.gov/pub/tzdata2007e.tar.gz] md5=b74e5f71714e5222340f1fb30da30a76 sha256=51d14a60ea12aa901bf91e5d39ea30c13ffdc299640e8ec9cb0d35a128874767 @@ -21374,6 +21378,10 @@ sha256=70bb254ae0da44d71f6d0932ffe34f61457bf41c38dfd389a7bf5bfb544a362b md5=595b3b197174fa0c2dd654c52969fb2a sha256=37e986086ce1a1ccb9a4f24c2b77ede54f0eae2ee9959e7a191a49cedb405783 +[http://bent.latency.net/bent/darcs/zoneinfo-2007k/src/tzdata2007k.tar.gz] +md5=595b3b197174fa0c2dd654c52969fb2a +sha256=37e986086ce1a1ccb9a4f24c2b77ede54f0eae2ee9959e7a191a49cedb405783 + [ftp://elsie.nci.nih.gov/pub/tzdata2008b.tar.gz] md5=dbeb9a327bbff77ab4078488b8c5323a sha256=633d76612d73a7add41a3b90fe5721ea5f4282d52bd8408b9d4fab261443aa6c -- cgit 1.2.3-korg From baa37f3a42aa0f0ae35d8ba76eb469c49b9023ba Mon Sep 17 00:00:00 2001 From: Frans Meulenbroeks Date: Thu, 26 Feb 2009 19:29:59 +0100 Subject: pmount: updated to 0.9.18 --- conf/checksums.ini | 4 + packages/pmount/pmount-0.9.18/gettext.patch | 133 ++++++++++++++++++++++++++++ packages/pmount/pmount-0.9.18/install.patch | 15 ++++ packages/pmount/pmount_0.9.18.bb | 22 +++++ 4 files changed, 174 insertions(+) create mode 100644 packages/pmount/pmount-0.9.18/gettext.patch create mode 100644 packages/pmount/pmount-0.9.18/install.patch create mode 100644 packages/pmount/pmount_0.9.18.bb diff --git a/conf/checksums.ini b/conf/checksums.ini index 733bd8432b..ca99238c09 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -17434,6 +17434,10 @@ sha256=25b84792473fa17d118e69b588f32fe940d13a01c3b3db89290ce6516ad01b2e md5=24a676bf495bec367b2d971cdca1c54c sha256=2632d931b5732eb1d0de7a2e2d92c75d64412438958ee96dceb4443e4fc2a62f +[http://alioth.debian.org/frs/download.php/2624/pmount-0.9.18.tar.gz] +md5=d04973bde34edac7dd2e50bfe8f10700 +sha256=b216936e6e011b58fefee8e3f80d01008cb078b7fe2a5632b2ce98bc7bcb05c2 + [http://heanet.dl.sourceforge.net/pmt/pngcrush-1.6.4.tar.gz] md5=a329caad3f49ed3ca105e6fd441f5b93 sha256=22ffea3aed00da9a9518a9c25b619d212bbe27b9ec72165cf74640f930108b2f diff --git a/packages/pmount/pmount-0.9.18/gettext.patch b/packages/pmount/pmount-0.9.18/gettext.patch new file mode 100644 index 0000000000..dbac93f6ba --- /dev/null +++ b/packages/pmount/pmount-0.9.18/gettext.patch @@ -0,0 +1,133 @@ +Index: pmount-0.9.17/src/pmount-hal.c +=================================================================== +--- pmount-0.9.17.orig/src/pmount-hal.c 2007-07-01 13:58:49.000000000 +0200 ++++ pmount-0.9.17/src/pmount-hal.c 2008-10-08 23:39:20.970178412 +0200 +@@ -16,7 +16,6 @@ + #include + #include + #include +-#include + #include + + #include "policy.h" +@@ -26,7 +25,12 @@ + #include "realpath.h" + + /* gettext abbreviation */ ++#ifdef ENABLE_NLS ++#include + #define _(String) gettext(String) ++#else ++#define _(String) (String) ++#endif + + void help() { + puts( _( +@@ -196,10 +200,12 @@ + char *dmask = NULL; + char *iocharset = NULL; + ++#ifdef ENABLE_NLS + /* initialize locale */ + setlocale( LC_ALL, "" ); + bindtextdomain( "pmount", NULL ); + textdomain( "pmount" ); ++#endif + + if( argc < 2 ) { + help(); +Index: pmount-0.9.17/src/utils.h +=================================================================== +--- pmount-0.9.17.orig/src/utils.h 2007-07-07 09:05:06.000000000 +0200 ++++ pmount-0.9.17/src/utils.h 2008-10-08 23:19:09.515475595 +0200 +@@ -12,7 +12,12 @@ + #define __utils_h + + /* gettext abbreviation */ ++#ifdef ENABLE_NLS ++#include + #define _(String) gettext(String) ++#else ++#define _(String) (String) ++#endif + + /* global flag whether to print debug messages (false by default) */ + extern int enable_debug; +Index: pmount-0.9.17/configure.ac +=================================================================== +--- pmount-0.9.17.orig/configure.ac 2007-12-14 20:27:23.000000000 +0100 ++++ pmount-0.9.17/configure.ac 2008-10-08 23:19:09.598820915 +0200 +@@ -77,10 +77,7 @@ + fi + AM_CONDITIONAL(PMOUNT_HAL, test -n "$BUILD_HAL") + +-GETTEXT_PACKAGE="pmount" +-AC_SUBST(GETTEXT_PACKAGE) +-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package]) +-AM_GLIB_GNU_GETTEXT ++AM_GNU_GETTEXT([external]) + + AC_OUTPUT([ + Makefile +Index: pmount-0.9.17/src/pmount.c +=================================================================== +--- pmount-0.9.17.orig/src/pmount.c 2008-10-08 23:36:44.452037557 +0200 ++++ pmount-0.9.17/src/pmount.c 2008-10-08 23:37:38.778816969 +0200 +@@ -21,9 +21,12 @@ + #include + #include + #include +-#include + #include + ++#ifdef ENABLE_NLS ++#include ++#endif ++ + #include "fs.h" + #include "policy.h" + #include "utils.h" +@@ -619,10 +622,12 @@ + { NULL, 0, NULL, 0} + }; + ++#ifdef ENABLE_NLS + /* initialize locale */ + setlocale( LC_ALL, "" ); + bindtextdomain( "pmount", NULL ); + textdomain( "pmount" ); ++#endif + + /* If pmount is run without a single argument, print out the list + of removable devices. Does not require root privileges, just read access +Index: pmount-0.9.17/src/pumount.c +=================================================================== +--- pmount-0.9.17.orig/src/pumount.c 2008-10-08 23:38:21.122028300 +0200 ++++ pmount-0.9.17/src/pumount.c 2008-10-08 23:38:47.972023678 +0200 +@@ -16,9 +16,12 @@ + #include + #include + #include +-#include + #include + ++#ifdef ENABLE_NLS ++#include ++#endif ++ + #include "policy.h" + #include "utils.h" + #include "luks.h" +@@ -172,10 +175,12 @@ + { NULL, 0, NULL, 0} + }; + ++#ifdef ENABLE_NLS + /* initialize locale */ + setlocale( LC_ALL, "" ); + bindtextdomain( "pmount", NULL ); + textdomain( "pmount" ); ++#endif + + /* are we root? */ + if( geteuid() ) { diff --git a/packages/pmount/pmount-0.9.18/install.patch b/packages/pmount/pmount-0.9.18/install.patch new file mode 100644 index 0000000000..b02942a591 --- /dev/null +++ b/packages/pmount/pmount-0.9.18/install.patch @@ -0,0 +1,15 @@ +Index: pmount-0.9.17/src/Makefile.am +=================================================================== +--- pmount-0.9.17.orig/src/Makefile.am 2008-10-09 01:22:41.668067209 +0200 ++++ pmount-0.9.17/src/Makefile.am 2008-10-09 01:23:22.144725902 +0200 +@@ -36,8 +36,8 @@ + + install-data-hook: + test -z $(INSTALL_DIR) || mkdir -p -- $(INSTALL_DIR) +- $(INSTALL_DATA) -o root -g root -m 4755 -D $(INSTALL_SRC)/pmount $(INSTALL_DIR)/pmount +- $(INSTALL_DATA) -o root -g root -m 4755 -D $(INSTALL_SRC)/pumount $(INSTALL_DIR)/pumount ++ $(INSTALL_DATA) -m 4755 -D $(INSTALL_SRC)/pmount $(INSTALL_DIR)/pmount ++ $(INSTALL_DATA) -m 4755 -D $(INSTALL_SRC)/pumount $(INSTALL_DIR)/pumount + + uninstall-hook: + rm -f $(INSTALL_DIR)/pmount diff --git a/packages/pmount/pmount_0.9.18.bb b/packages/pmount/pmount_0.9.18.bb new file mode 100644 index 0000000000..26770b33a9 --- /dev/null +++ b/packages/pmount/pmount_0.9.18.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Policy based mounter that gives the ability to mount removable devices as a user" +HOMEPAGE = "http://pmount.alioth.debian.org/" +LICENSE = "GPLv2" +PR = "r0" + +DEPENDS = "hal e2fsprogs-libs sysfsutils" +RDEPENDS_${PN}-hal = "${PN}" +RRECOMMENDS_${PN}-hal = "hal" + +SRC_URI = "http://alioth.debian.org/frs/download.php/2624/${P}.tar.gz \ + file://gettext.patch;patch=1 \ + file://install.patch;patch=1 \ + " + +inherit autotools gettext + +EXTRA_OECONF = "--enable-hal" + +PACKAGES =+ "${PN}-hal" + +FILES_${PN}-hal = "${bindir}/pmount-hal" + -- cgit 1.2.3-korg From e0670781c4dcc31fd5df2858dc2d5fc563042785 Mon Sep 17 00:00:00 2001 From: woglinde Date: Sun, 22 Feb 2009 01:55:06 +0100 Subject: update-alternatives: update to newer version of dpkg --- .../update-alternatives-dpkg-1.13.25/paths.patch | 26 ++++++++++++++++++++++ .../update-alternatives-dpkg-native_1.13.25.bb | 14 ++++++++++++ .../update-alternatives-dpkg_1.13.25.bb | 12 ++++++++++ 3 files changed, 52 insertions(+) create mode 100644 packages/update-alternatives/update-alternatives-dpkg-1.13.25/paths.patch create mode 100644 packages/update-alternatives/update-alternatives-dpkg-native_1.13.25.bb create mode 100644 packages/update-alternatives/update-alternatives-dpkg_1.13.25.bb diff --git a/packages/update-alternatives/update-alternatives-dpkg-1.13.25/paths.patch b/packages/update-alternatives/update-alternatives-dpkg-1.13.25/paths.patch new file mode 100644 index 0000000000..a23bf9a99d --- /dev/null +++ b/packages/update-alternatives/update-alternatives-dpkg-1.13.25/paths.patch @@ -0,0 +1,26 @@ +diff -ruN dpkg-1.13.22.orig/scripts/update-alternatives.pl dpkg-1.13.22/scripts/update-alternatives.pl +--- dpkg-1.13.22.orig/scripts/update-alternatives.pl 2006-06-21 01:46:12.000000000 -0300 ++++ dpkg-1.13.22/scripts/update-alternatives.pl 2007-08-02 19:36:47.000000000 -0300 +@@ -1,7 +1,7 @@ + #!/usr/bin/perl -- + + $admindir= "/var/lib/dpkg"; # This line modified by Makefile +-$dpkglibdir= "../utils"; # This line modified by Makefile ++$dpkglibdir= "/usr/lib/dpkg"; # This line modified by Makefile + $version= '0.93.80'; # This line modified by Makefile + push (@INC, $dpkglibdir); + require 'dpkg-gettext.pl'; +@@ -129,6 +129,12 @@ + &checkmanymodes; + @ARGV >= 4 || &badusage(_g("--install needs ")); + ($alink,$name,$apath,$apriority,@ARGV) = @ARGV; ++ if (! -e $apath) { ++ $apath = substr($alink,0,rindex($alink,"/")+1).$apath; ++ } ++ if (! -e $apath) { ++ &quit(sprintf(_g("Error: file not found: %s"), $apath)); ++ } + $apriority =~ m/^[-+]?\d+/ || &badusage(_g("priority must be an integer")); + $mode= 'install'; + } elsif (m/^--(remove|set)$/) { + diff --git a/packages/update-alternatives/update-alternatives-dpkg-native_1.13.25.bb b/packages/update-alternatives/update-alternatives-dpkg-native_1.13.25.bb new file mode 100644 index 0000000000..d0af4eac7b --- /dev/null +++ b/packages/update-alternatives/update-alternatives-dpkg-native_1.13.25.bb @@ -0,0 +1,14 @@ +require update-alternatives-dpkg.inc +inherit native + +PROVIDES += "virtual/update-alternatives-native" +DEPENDS = "perl-native" +DEFAULT_PREFERENCE = "-1" + +do_stage () { + install -d ${sbindir} \ + ${localstatedir}/dpkg/alternatives \ + ${sysconfdir}/alternatives + + install -m 0755 scripts/update-alternatives ${sbindir}/update-alternatives +} diff --git a/packages/update-alternatives/update-alternatives-dpkg_1.13.25.bb b/packages/update-alternatives/update-alternatives-dpkg_1.13.25.bb new file mode 100644 index 0000000000..a07d5e36d4 --- /dev/null +++ b/packages/update-alternatives/update-alternatives-dpkg_1.13.25.bb @@ -0,0 +1,12 @@ +require update-alternatives-dpkg.inc + +RPROVIDES_${PN} = "update-alternatives" +RDEPENDS_${PN} = "perl dpkg" + +do_install () { + install -d ${D}${sbindir} \ + ${D}${localstatedir}/dpkg/alternatives \ + ${D}${sysconfdir}/alternatives + + install -m 0755 scripts/update-alternatives ${D}${sbindir}/update-alternatives +} -- cgit 1.2.3-korg From 216894213eba011dcbb25876302d2c18f3123e27 Mon Sep 17 00:00:00 2001 From: woglinde Date: Thu, 26 Feb 2009 22:01:26 +0100 Subject: libpng: add version 1.2.35 * fixes security issues --- packages/libpng/libpng-native_1.2.35.bb | 4 ++++ packages/libpng/libpng_1.2.35.bb | 14 ++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 packages/libpng/libpng-native_1.2.35.bb create mode 100644 packages/libpng/libpng_1.2.35.bb diff --git a/packages/libpng/libpng-native_1.2.35.bb b/packages/libpng/libpng-native_1.2.35.bb new file mode 100644 index 0000000000..52c92e9954 --- /dev/null +++ b/packages/libpng/libpng-native_1.2.35.bb @@ -0,0 +1,4 @@ +require libpng_${PV}.bb +require libpng-native.inc + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libpng-${PV}" diff --git a/packages/libpng/libpng_1.2.35.bb b/packages/libpng/libpng_1.2.35.bb new file mode 100644 index 0000000000..3ed02a7f17 --- /dev/null +++ b/packages/libpng/libpng_1.2.35.bb @@ -0,0 +1,14 @@ +require libpng.inc + +PR = "r0" + +SRC_URI += "file://makefile_fix.patch;patch=1" + +do_stage() { + cp libpng.pc libpng12.pc + install -m 644 png.h ${STAGING_INCDIR}/png.h + install -m 644 pngconf.h ${STAGING_INCDIR}/pngconf.h + oe_libinstall -so libpng ${STAGING_LIBDIR}/ + oe_libinstall -so libpng12 ${STAGING_LIBDIR}/ + ln -sf libpng12.so ${STAGING_LIBDIR}/libpng.so +} -- cgit 1.2.3-korg From fd8ff9f489e5ddf628b9570c4fc0c8b4a394aae0 Mon Sep 17 00:00:00 2001 From: woglinde Date: Thu, 26 Feb 2009 22:11:38 +0100 Subject: libpng: add version 1.2.35 * fixes security issues --- conf/checksums.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index ca99238c09..637f907c19 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -13046,6 +13046,10 @@ sha256=24b354dcd8843274a20e1625e04d618d43f9851082254cb9dae6f33f15c2a5cd md5=78d2f8c4e0d64f8948819563587302d3 sha256=24b354dcd8843274a20e1625e04d618d43f9851082254cb9dae6f33f15c2a5cd +[http://downloads.sourceforge.net/libpng/libpng-1.2.35.tar.bz2] +md5=b8b8d09adf6bee2c5902c8e54c4f2e68 +sha256=cafe6431f9e6d561fb7b396bf94ff73a9cd0f4279f3eea2fc714ab90e345eee6 + [http://downloads.sourceforge.net/libpng/libpng-1.2.8.tar.bz2] md5=00cea4539bea4bd34cbf8b82ff9589cd sha256=9bec729a1e77d8bbc5800b14aa81f09290aa18daa40f344103f2c0d1d681531b -- cgit 1.2.3-korg From fd64b8aeeaceb69d0b7209e6ced92e72e7f820d3 Mon Sep 17 00:00:00 2001 From: Stanislav Brabec Date: Thu, 26 Feb 2009 22:11:48 +0000 Subject: vte: Updated to 0.16.14. Added desktop file. Fixed sub-packages dependencies. --- conf/checksums.ini | 4 +++ packages/vte/files/vte.desktop.in | 76 +++++++++++++++++++++++++++++++++++++++ packages/vte/vte.inc | 17 +++++---- packages/vte/vte_0.16.13.bb | 1 + packages/vte/vte_0.16.14.bb | 1 + 5 files changed, 92 insertions(+), 7 deletions(-) create mode 100644 packages/vte/files/vte.desktop.in create mode 100644 packages/vte/vte_0.16.14.bb diff --git a/conf/checksums.ini b/conf/checksums.ini index 637f907c19..3566d4fee9 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -22062,6 +22062,10 @@ sha256=c31e1e930bce109cccd40dc0378b7ee28933482855918f46573e79d9db818be7 md5=40480f20f6b7664f3d364e4f2ed27889 sha256=edfb74b0bef469ee122ab67c3e4562043e97803c8a32899caf5bd3a71c464a6d +[http://ftp.gnome.org/pub/GNOME/sources/vte/0.16/vte-0.16.14.tar.bz2] +md5=9df3e35b81b209952ac1cf7904f7b620 +sha256=40cf321980d3139c8f084e818504e1366be81bed817eeeec9021257e04c1c0db + [http://ftp.gnome.org/pub/GNOME/sources/vte/0.16/vte-0.16.8.tar.bz2] md5=65344de3023c41c8dda2b35a415bf969 sha256=1dc06ad4224c18061b000de0435b81b7c249215da4163edecb62a8d46090098f diff --git a/packages/vte/files/vte.desktop.in b/packages/vte/files/vte.desktop.in new file mode 100644 index 0000000000..ef2bf17efc --- /dev/null +++ b/packages/vte/files/vte.desktop.in @@ -0,0 +1,76 @@ +[Desktop Entry] +TryExec=vte +Exec=vte +Icon=terminal +Type=Application +Categories=GTK;Utility;TerminalEmulator;GPE; +StartupNotify=true +Name=VTE Terminal +Name[af]=Vte-terminaal +Name[ar]=Vte Terminal +Name[bg]=Vte терминал +Name[ca]=Terminal del VTE +Name[cs]=VTE terminál +Name[da]=VTE terminal +Name[de]=Vte-Terminal +Name[el]=Τερματικό του Vte +Name[es]=Terminal de Vte +Name[et]=VTE terminal +Name[fi]=Vte-pääteohjelma +Name[fr]=Terminal Vte +Name[gl]=Vte Terminal +Name[hu]=Vte konzol +Name[it]=Terminale Vte +Name[ja]=Vte 端末 +Name[km]=ស្ថានីយ Vte +Name[ko]=VTE 터미널 +Name[lt]=Vte terminalas +Name[mr]=VTE टर्मिनल +Name[nb]=Vte-terminal +Name[nl]=Vte Terminal +Name[pa]=VTE ਟਰਮੀਨਲ +Name[pl]=Terminal Vte +Name[pt]=Vte Terminal +Name[pt_BR]=Terminal do Vte +Name[ru]=Vte терминал +Name[sk]=VTE Terminál +Name[sv]=Vte-terminal +Name[uk]=Термінал Vte +Name[xh]=Isiphelo se-Vte +Name[zh_CN]=Vte 终端 +Name[zh_TW]=Vte 終端機 +GenericName=Command Line Terminal +GenericName[af]=Opdragreëlterminaal +GenericName[bg]=Терминал с команден ред +GenericName[cs]=Terminál +GenericName[da]=Kommandolinje-terminal +GenericName[de]=Befehlszeilen-Terminal +GenericName[el]=Τερματικό Γραμμής Εντολών +GenericName[es]=Terminal de línea de órdenes +GenericName[et]=Käsurea terminal +GenericName[fi]=Pääteohjelma +GenericName[fr]=Terminal de ligne de commande +GenericName[gl]=Terminal de Liña de Comandos +GenericName[hu]=Parancssoros terminál +GenericName[it]=Terminale a riga di comando +GenericName[ja]=コマンドラインターミナル +GenericName[km]=ស្ថានីយ​បន្ទាត់​ពាក្យបញ្ជា​ +GenericName[ko]=터미널 명령 라인 +GenericName[lt]=Komandinės eilutės terminalas +GenericName[mr]=लाईन टर्मिनलचा आदेश +GenericName[nb]=Vte-terminal +GenericName[nl]=Commandoregelterminal +GenericName[pa]=ਕਮਾਂਡ ਲਾਇਨ ਟਰਮੀਨਲ +GenericName[pl]=Terminal - linia poleceń +GenericName[pt]=Terminal de Linha de Comando +GenericName[pt_BR]=Terminal de Linha de Comando +GenericName[ru]=Терминал командной строки +GenericName[sv]=Kommandoradsterminal +GenericName[uk]=Термінал командного рядка +GenericName[xh]=Isiphelo Somgca Womyalelo +GenericName[zh_CN]=命令行终端 +GenericName[zh_TW]=指令行終端機 +X-GNOME-Bugzilla-Bugzilla=vte +X-GNOME-Bugzilla-Product=gnome-terminal +X-GNOME-Bugzilla-Component=BugBuddyBugs +X-GNOME-Bugzilla-Version=@VERSION@ diff --git a/packages/vte/vte.inc b/packages/vte/vte.inc index 9151172c59..dcf25c945d 100644 --- a/packages/vte/vte.inc +++ b/packages/vte/vte.inc @@ -1,20 +1,23 @@ DESCRIPTION = "vte is a virtual terminal emulator" LICENSE = "LGPL" -DEPENDS += " glib-2.0 gtk+ intltool-native ncurses " -PR = "r2" +DEPENDS += "glib-2.0 gtk+ intltool-native ncurses" inherit gnome -SRC_URI += "file://vte-pkgconfig-fixes.patch;patch=1" +SRC_URI += "file://vte-pkgconfig-fixes.patch;patch=1 \ + file://vte.desktop.in" EXTRA_OECONF = "--disable-gtk-doc --disable-python" -do_stage() { - autotools_stage_all +# Upstream does not provide desktop file for vte considering it only as +# a testing utility. +do_install_append() { + mkdir -p ${D}${datadir}/applications + sed s/@VERSION@/${PV}/ <${WORKDIR}/vte.desktop.in >${D}${datadir}/applications/vte.desktop } PACKAGES =+ "libvte vte-termcap gnome-pty-helper" -FILES_libvte = "${libdir}/*.so*" +FILES_libvte = "${libdir}/*.so.*" FILES_gnome-pty-helper = "${libexecdir}/gnome-pty-helper" -RDEPENDS_libvte = "vte-termcap" +RDEPENDS_libvte = "vte-termcap gnome-pty-helper" FILES_vte-termcap = "${datadir}/vte/termcap" diff --git a/packages/vte/vte_0.16.13.bb b/packages/vte/vte_0.16.13.bb index 9453fee206..f408632430 100644 --- a/packages/vte/vte_0.16.13.bb +++ b/packages/vte/vte_0.16.13.bb @@ -1 +1,2 @@ require vte.inc +PR = "r3" diff --git a/packages/vte/vte_0.16.14.bb b/packages/vte/vte_0.16.14.bb new file mode 100644 index 0000000000..9453fee206 --- /dev/null +++ b/packages/vte/vte_0.16.14.bb @@ -0,0 +1 @@ +require vte.inc -- cgit 1.2.3-korg From be49495243d3bf12a5cdda3c56fb96717c3b6e04 Mon Sep 17 00:00:00 2001 From: "Theodore A. Roth" Date: Wed, 25 Feb 2009 15:15:52 +0000 Subject: getting_oe.xml: Update "Building Software" section. --- docs/usermanual/chapters/getting_oe.xml | 317 +++++++++++++++++++++++++++++++- 1 file changed, 310 insertions(+), 7 deletions(-) diff --git a/docs/usermanual/chapters/getting_oe.xml b/docs/usermanual/chapters/getting_oe.xml index 3c685049a4..d71ea71e72 100644 --- a/docs/usermanual/chapters/getting_oe.xml +++ b/docs/usermanual/chapters/getting_oe.xml @@ -242,13 +242,316 @@ MACHINE = "om-gta01"
Building Software - Once BitBake and OpenEmbedded are set up and configured, one can build - software and images like this: - -bitbake <recipe_name> - - + The primary interface to the build system is + the bitbake command (see + the BitBake + users manual). BitBake will download and patch files from the + internet, so it helps if you are on a well connected machine. + + + Note that you should issue all BitBake commands from inside of the + build/ directory, or you should + override TMPDIR in + your $OEBASE/build/conf/local.conf to point + elsewhere (by default it goes to tmp/ relative to + the directory you run bitbake commands in). + + + + BitBake might complain that there is a problem with the setting in + /proc/sys/vm/mmap_min_addr, which needs to be set + to zero. You can set it by doing the following as root: + + # echo 0 > /proc/sys/vm/mmap_min_addr + + Note that you can not use a text editor to do this since files + in /proc are not real files. Also note that this + above change will be lost when you reboot your system. To have the + change made automatically when the system boots, some systems provide + a /etc/sysctl.conf file. Add the following line + to that file: + + vm.mmap_min_addr=0 + + If your system does not provide + the /etc/sysctl.conf mechanism, you can try adding + the above echo command line to + your /etc/rc.local. + + + + Once BitBake and OpenEmbedded are set up and configured, you can build + software and images like this: - This section is a stub, help us by expanding it + $ bitbake <recipe_name> + + A recipe name corresponds to a BitBake .bb file. A + BitBake file is a logical unit of tasks to be executed. Normally this is + a package to be built. Inter-recipe dependencies are obeyed. The recipes + are located by BitBake via the BBFILES variable (set + in your $OEBASE/build/conf/local/conf), which is a + space separated list of .bb files, and does handle + wildcards. + + + To build a single package, bypassing the long parse step (and + therefore its dependencies -- use with care): + + $ bitbake -b $OEBASE/openembedded/packages/blah/blah.bb + + + There are a few groups of special recipes located in subdirectories + of the $OEBASE/openembedded/packages/ + directory. These groups are: + + + + tasks/ + A collection of meta-packages that depend on real + packages to make managing package sets easier. + + + + meta/ + A collection of usefull meta tasks and recipes that + don't fit in a general category. + + + + images/ + A collection of image targets that depend on + packages that will be installed into an image which can be put + on the target system. + + + + +
Useful Target Recipes + Although BitBake can build individual packages, it is often more + useful to build a set of packages and combine them into an image. The + following recipe names are commonly used to that effect. + + +
Images + + + + helloworld-image + + Builds an image, that if used as a root filesystem, will + start a static executable that prints hello world then + loops infinitely. Can be used to test the Linux boot + procedure into user space (init). + + + + + + bootstrap-image + + Build image contains task-base packages. + + + + + + console-image + + Build an image without the X11, gtk+, or qt windowing + libraries. + + + + + + x11-image + + Builds an image with X11. + + + + + + beagleboard-demo-image + + Builds the Ångström distribution like Koen + proposed. + + + + + + opie-image + + Build image based on the + Open Palmtop + Integrated Environment (OPIE). OPIE is a completely + Open Source based graphical user environment and suite of + applications for small form-factor devices, such as PDAs, + running Linux. + + + + + + opie-kdepim-image + + Build image based on the OPIE and full featured + KDE-based PIM (pi-sync, ko/pi, ka/pi, etc). + + + + + + pivotboot-image + + Build image that is necessary to flash a Sharp SL C3000, + Zaurus. It pivots after booting from the NAND and finalizes + the install to the HD during the first boot. + + + + + + twin-image + + A image with task-base plus a couple of editors, nano and + vim (why two?), and a mail reader, mutt. + + + + + + uml-image + + A root image for user-mode-linux. Includes task-base, + and parts of opie. + + + + + + gpe-image + + Build a GPE + Palmtop Environment based kernel and rootfs. The GPE + provides a user interface environment for palmtop/handheld + computers running the GNU/Linux or any other UNIX-like + operating system. + + + + + +
+ +
Tasks + + + + task-base + + Build a kernel and core packages for a basic + installation. You won't be able to do much more than ssh to + the machine if this is all that is installed. + + + + + + task-dvb + + Meta-package for DVB application (DVB = Digital Video + Broadcasting). + + + + + + task-python-everything + + All of python. + + + + + + task-native-sdk + + Mata-package for native (on-device) SDK. + + + + + +
+ +
Meta + + + + meta-opie + + Build all OPIE related packages and some more for OPIE + based usage. + + + + + + meta-gpe + + Basic packages to go with gpe-image. + + + + + +
+ +
Other + + + + helloworld + + Builds a static executable that prints hello + world then loops infinitely. + + + + + + world + + Build everything. This takes a long time, a lot + of network bandwidth, and a lot of disc space. Can also + break your toolchain. + + + + + + package-index + + Target to update the "feed" files to reflect the current + set of .ipk's that exist in the deploy directory. Commonly + used after building some packages individually to update the + feed and allow them to be installed via a package manager or + the ipkg command line tools. + + + + + + virtual/kernel + + Builds the appropriate kernel for your device. + + + + +
+
-- cgit 1.2.3-korg From 964299401c8e32ebb21e8b57adc3bf7e0c40ca38 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 27 Feb 2009 08:18:40 +0100 Subject: checksums: add more sums --- conf/checksums.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/checksums.ini b/conf/checksums.ini index 3566d4fee9..225dc1af25 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -10530,6 +10530,10 @@ sha256=bc4f62cbac4716c2c1a25cf53b73343a03883964576d9dd590a9e4c7a70f465a md5=a746183ea41aebc27a0f771036f668e1 sha256=1b8f50169bc2d827c6efe6bc98bbef2161f615219e4e8921e68227888fd50a9e +[http://osdn.dl.sourceforge.jp/julius/37582/julius-4.1.2.tar.gz] +md5=886a114b391aa1992567019213efc63e +sha256=542c7f1042679c8484dc2f5f5536ed0c79fa79b2b9dd6cf6881278a6fdb37a84 + [http://downloads.sourceforge.net/junit/junit-4.3.1-src.jar] md5=170f9645a41398388e8553b32ff5f630 sha256=57d1e49ee3fd0dbdc0a68a852925c973af5c30b1725b6aa63bfb42df6f7c3349 -- cgit 1.2.3-korg From be0a4aca1ae8e356bca78060f47c77a6df6ab7e4 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 27 Feb 2009 11:02:08 +0100 Subject: gstreamer-ti: catch up with site rename, pass in username and passwd --- packages/dsplink/gstreamer-ti_svn.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dsplink/gstreamer-ti_svn.bb b/packages/dsplink/gstreamer-ti_svn.bb index a21690d555..2768a2ae61 100644 --- a/packages/dsplink/gstreamer-ti_svn.bb +++ b/packages/dsplink/gstreamer-ti_svn.bb @@ -1,6 +1,6 @@ DEPENDS = "ti-codec-engine ti-dmai gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly libid3tag liboil libmad" -SRC_URI = "svn://omapzoom.org/svn/gstreamer_ti/trunk;module=gstreamer_ti;proto=https" +SRC_URI = "svn://gforge.ti.com/svn/gstreamer_ti/trunk;module=gstreamer_ti;proto=https;user=anonymous;pswd=''" SRCREV = "127" PR = "r1" -- cgit 1.2.3-korg From fbd582b8dec11e9d1fa88c2f1040e435067bdee1 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 27 Feb 2009 12:42:08 +0100 Subject: udev-124: remove boc01-specific mount.sh --- packages/udev/files/boc01/mount.sh | 73 -------------------------------------- packages/udev/udev_124.bb | 2 +- 2 files changed, 1 insertion(+), 74 deletions(-) delete mode 100644 packages/udev/files/boc01/mount.sh diff --git a/packages/udev/files/boc01/mount.sh b/packages/udev/files/boc01/mount.sh deleted file mode 100644 index 07d2fd2b58..0000000000 --- a/packages/udev/files/boc01/mount.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -# -# Called from udev -# Attemp to mount any added block devices -# and remove any removed devices -# - -MOUNT="/bin/mount" -PMOUNT="/usr/bin/pmount" -UMOUNT="/bin/umount" -name="`basename "$DEVNAME"`" - -for line in `cat /etc/udev/mount.blacklist | grep -v ^#` -do - if ( echo "$DEVNAME" | grep -q "$line" ) - then - logger "udev/mount.sh" "[$DEVNAME] is blacklisted, ignoring" - exit 0 - fi -done - -automount() { - ! test -d "/media/$name" && mkdir -p "/media/$name" - - if ! $MOUNT -t auto -o ro $DEVNAME "/media/$name" - then - #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/media/$name\" failed!" - rm_dir "/media/$name" - else - logger "mount.sh/automount" "Auto-mount of [/media/$name] successful" - touch "/tmp/.automount-$name" - boc-script scripts:photos.js "/media/$name" - fi -} - -rm_dir() { - # We do not want to rm -r populated directories - if test "`find "$1" | wc -l | tr -d " "`" -lt 2 -a -d "$1" - then - ! test -z "$1" && rm -r "$1" - else - logger "mount.sh/automount" "Not removing non-empty directory [$1]" - fi -} - -if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ]; then - if [ -x "$PMOUNT" ]; then - $PMOUNT $DEVNAME 2> /dev/null - elif [ -x $MOUNT ]; then - $MOUNT $DEVNAME 2> /dev/null - fi - - # If the device isn't mounted at this point, it isn't configured in fstab - # 20061107: Small correction: The rootfs partition may be called just "rootfs" and not by - # its true device name so this would break. If the rootfs is mounted on two places - # during boot, it confuses the heck out of fsck. So Im auto-adding the root-partition - # to /etc/udev/mount.blacklist via postinst - - cat /proc/mounts | awk '{print $1}' | grep -q "^$DEVNAME$" || automount - -fi - - - -if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then - for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " ` - do - $UMOUNT $mnt - done - - # Remove empty directories from auto-mounter - test -e "/tmp/.automount-$name" && rm_dir "/media/$name" -fi diff --git a/packages/udev/udev_124.bb b/packages/udev/udev_124.bb index 1cae0ce218..76edb2fa6f 100644 --- a/packages/udev/udev_124.bb +++ b/packages/udev/udev_124.bb @@ -2,7 +2,7 @@ DESCRIPTION = "udev is a daemon which dynamically creates and removes device nod /dev/, handles hotplug events and loads drivers at boot time. It replaces \ the hotplug package and requires a kernel not older than 2.6.12." RPROVIDES_${PN} = "hotplug" -PR = "r13" +PR = "r14" SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ file://noasmlinkage.patch;patch=1 \ -- cgit 1.2.3-korg From 92e0122dcc77ea28f4bd8c2b7688e699258c9656 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 27 Feb 2009 12:45:26 +0100 Subject: qtopia4core.bbclass: depend qt-embedded, qtopia-core is obsolete --- classes/qtopia4core.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/qtopia4core.bbclass b/classes/qtopia4core.bbclass index b5f10fa486..3fac2bda9b 100644 --- a/classes/qtopia4core.bbclass +++ b/classes/qtopia4core.bbclass @@ -1,4 +1,4 @@ -DEPENDS_prepend = "${@["qtopia-core ", ""][(bb.data.getVar('PN', d, 1) == 'qtopia-core')]}" +DEPENDS_prepend = "${@["qt-embedded ", ""][(bb.data.getVar('PN', d, 1) == 'qt-embedded')]}" inherit qmake2 QT_DIR_NAME = "qtopia" -- cgit 1.2.3-korg From 8a7418580d1f193e1af7f405a68894976f8674ad Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 27 Feb 2009 13:03:02 +0100 Subject: qt4: get rid of bogus qtopia-core-4.4.3 package --- packages/qt4/qt-embedded_4.4.3.bb | 3 - packages/qt4/qtopia-core-4.3.3/0004-no-qmake.patch | 25 ++++++ packages/qt4/qtopia-core-4.3.3/build-tools.patch | 28 +++++++ packages/qt4/qtopia-core-4.3.3/linux-oe-qmake.conf | 95 ++++++++++++++++++++++ packages/qt4/qtopia-core/0004-no-qmake.patch | 25 ------ packages/qt4/qtopia-core/build-tools.patch | 28 ------- packages/qt4/qtopia-core/linux-oe-qmake.conf | 95 ---------------------- packages/qt4/qtopia-core_4.4.3.bb | 6 -- 8 files changed, 148 insertions(+), 157 deletions(-) create mode 100644 packages/qt4/qtopia-core-4.3.3/0004-no-qmake.patch create mode 100644 packages/qt4/qtopia-core-4.3.3/build-tools.patch create mode 100644 packages/qt4/qtopia-core-4.3.3/linux-oe-qmake.conf delete mode 100644 packages/qt4/qtopia-core/0004-no-qmake.patch delete mode 100644 packages/qt4/qtopia-core/build-tools.patch delete mode 100644 packages/qt4/qtopia-core/linux-oe-qmake.conf delete mode 100644 packages/qt4/qtopia-core_4.4.3.bb diff --git a/packages/qt4/qt-embedded_4.4.3.bb b/packages/qt4/qt-embedded_4.4.3.bb index 47d65da57d..18cf3cbc44 100644 --- a/packages/qt4/qt-embedded_4.4.3.bb +++ b/packages/qt4/qt-embedded_4.4.3.bb @@ -1,8 +1,5 @@ require qtopia-core.inc -PROVIDES += "qtopia-core" -RPROVIDES_${PN} = "qtopia-core" - PR = "r5" SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-linux-opensource-src-${PV}.tar.bz2 \ diff --git a/packages/qt4/qtopia-core-4.3.3/0004-no-qmake.patch b/packages/qt4/qtopia-core-4.3.3/0004-no-qmake.patch new file mode 100644 index 0000000000..28f8d3ad9d --- /dev/null +++ b/packages/qt4/qtopia-core-4.3.3/0004-no-qmake.patch @@ -0,0 +1,25 @@ +From f5a73ce944240de9013cc23288c115e8213add5e Mon Sep 17 00:00:00 2001 +From: Michael Krelin +Date: Sat, 2 Jun 2007 16:06:59 +0200 +Subject: [PATCH] no qmake + +--- + configure | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure b/configure +index b3c2a52..1901e57 100755 +--- a/configure ++++ b/configure +@@ -3517,7 +3517,7 @@ END { + } + + # build qmake +-if true; then ###[ '!' -f "$outpath/bin/qmake" ]; ++if false; then ###[ '!' -f "$outpath/bin/qmake" ]; + echo "Creating qmake. Please wait..." + + OLD_QCONFIG_H= +-- +1.5.0.7 + diff --git a/packages/qt4/qtopia-core-4.3.3/build-tools.patch b/packages/qt4/qtopia-core-4.3.3/build-tools.patch new file mode 100644 index 0000000000..54ad666374 --- /dev/null +++ b/packages/qt4/qtopia-core-4.3.3/build-tools.patch @@ -0,0 +1,28 @@ +Do not disable tools, examples and demos for the QWS build. Use brute-force +to do this. + +Index: qtopia-core-opensource-src-4.3.3/configure +=================================================================== +--- qtopia-core-opensource-src-4.3.3.orig/configure 2007-12-27 16:30:36.000000000 +0100 ++++ qtopia-core-opensource-src-4.3.3/configure 2007-12-27 16:30:52.000000000 +0100 +@@ -2265,13 +2265,13 @@ + CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS" + + # don't build tools by default when cross-compiling +- if [ "$PLATFORM" != "$XPLATFORM" ]; then +- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"` +- fi +-fi +-for nobuild in $CFG_NOBUILD_PARTS; do +- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"` +-done ++ #if [ "$PLATFORM" != "$XPLATFORM" ]; then ++ # CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"` ++ #fi ++fi ++#for nobuild in $CFG_NOBUILD_PARTS; do ++# CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"` ++#done + if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then + # echo + # echo "WARNING: libs is a required part of the build." diff --git a/packages/qt4/qtopia-core-4.3.3/linux-oe-qmake.conf b/packages/qt4/qtopia-core-4.3.3/linux-oe-qmake.conf new file mode 100644 index 0000000000..fc5ac6dc5c --- /dev/null +++ b/packages/qt4/qtopia-core-4.3.3/linux-oe-qmake.conf @@ -0,0 +1,95 @@ +# +# qmake configuration for linux-oe-g++ / OpenEmbedded Build System / http://openembedded.org +# + +MAKEFILE_GENERATOR = UNIX +TEMPLATE = app +CONFIG += qt warn_on release link_prl +QT += core gui network +QMAKE_INCREMENTAL_STYLE = sublib + +QMAKE_CC = $(OE_QMAKE_CC) +QMAKE_LEX = flex +QMAKE_LEXFLAGS = +QMAKE_YACC = yacc +QMAKE_YACCFLAGS = -d +QMAKE_YACCFLAGS_MANGLE = -p $base -b $base +QMAKE_YACC_HEADER = $base.tab.h +QMAKE_YACC_SOURCE = $base.tab.c +QMAKE_CFLAGS = -pipe $(OE_QMAKE_CFLAGS) $(CFLAGS_EXTRA) +QMAKE_CFLAGS_DEPS = -M +QMAKE_CFLAGS_WARN_ON = -Wall -W +QMAKE_CFLAGS_WARN_OFF = +QMAKE_CFLAGS_RELEASE = $(if $(CFLAGS_RELEASE),$(CFLAGS_RELEASE), -O2) +QMAKE_CFLAGS_DEBUG = -g +QMAKE_CFLAGS_SHLIB = -fPIC +QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses +QMAKE_CFLAGS_THREAD = -D_REENTRANT +QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden + +QMAKE_CXX = $(OE_QMAKE_CXX) +QMAKE_CXXFLAGS = $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) $(CXXFLAGS_EXTRA) +QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS +QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON +QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF +QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE +QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG +QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB +QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC +QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD +QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden + +QMAKE_INCDIR = +QMAKE_LIBDIR = +QMAKE_INCDIR_X11 = +QMAKE_LIBDIR_X11 = +QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT) +QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT) +QMAKE_INCDIR_OPENGL = +QMAKE_LIBDIR_OPENGL = +QMAKE_INCDIR_QTOPIA = $(OE_QMAKE_INCDIR_QTOPIA) +QMAKE_LIBDIR_QTOPIA = $(OE_QMAKE_LIBDIR_QTOPIA) + + +QMAKE_LINK = $(OE_QMAKE_LINK) +QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) +QMAKE_LFLAGS = $(OE_QMAKE_LDFLAGS) $(LFLAGS_EXTRA) +QMAKE_LFLAGS_RELEASE = +QMAKE_LFLAGS_DEBUG = +QMAKE_LFLAGS_SHLIB = -shared +QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB +QMAKE_LFLAGS_SONAME = -Wl,-soname, +QMAKE_LFLAGS_THREAD = +QMAKE_RPATH = -Wl,-rpath-link, + +QMAKE_LIBS = $(LIBS_EXTRA) +QMAKE_LIBS_DYNLOAD = -ldl +QMAKE_LIBS_X11 = +QMAKE_LIBS_X11SM = +QMAKE_LIBS_QT = -lqte +QMAKE_LIBS_QT_THREAD = -lqte-mt +QMAKE_LIBS_QT_OPENGL = -lqgl +QMAKE_LIBS_THREAD = -lpthread +QMAKE_LIBS_QTOPIA = -lqpe -lqtopia +QMAKE_LIBS_THREAD = -lpthread + +QMAKE_MOC = $$[QT_INSTALL_BINS]/moc +QMAKE_UIC = $$[QT_INSTALL_BINS]/uic + +QMAKE_AR = $(OE_QMAKE_AR) cqs +QMAKE_RANLIB = $(OE_QMAKE_RANLIB) + +QMAKE_TAR = tar -cf +QMAKE_GZIP = gzip -9f + +QMAKE_COPY = cp -f +QMAKE_COPY_FILE = $(COPY) +QMAKE_COPY_DIR = $(COPY) -r +QMAKE_MOVE = mv -f +QMAKE_DEL_FILE = rm -f +QMAKE_DEL_DIR = rmdir +QMAKE_STRIP = $(OE_QMAKE_STRIP) +QMAKE_STRIPFLAGS_LIB += --strip-unneeded +QMAKE_CHK_DIR_EXISTS = test -d +QMAKE_MKDIR = mkdir -p +load(qt_config) diff --git a/packages/qt4/qtopia-core/0004-no-qmake.patch b/packages/qt4/qtopia-core/0004-no-qmake.patch deleted file mode 100644 index 28f8d3ad9d..0000000000 --- a/packages/qt4/qtopia-core/0004-no-qmake.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f5a73ce944240de9013cc23288c115e8213add5e Mon Sep 17 00:00:00 2001 -From: Michael Krelin -Date: Sat, 2 Jun 2007 16:06:59 +0200 -Subject: [PATCH] no qmake - ---- - configure | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/configure b/configure -index b3c2a52..1901e57 100755 ---- a/configure -+++ b/configure -@@ -3517,7 +3517,7 @@ END { - } - - # build qmake --if true; then ###[ '!' -f "$outpath/bin/qmake" ]; -+if false; then ###[ '!' -f "$outpath/bin/qmake" ]; - echo "Creating qmake. Please wait..." - - OLD_QCONFIG_H= --- -1.5.0.7 - diff --git a/packages/qt4/qtopia-core/build-tools.patch b/packages/qt4/qtopia-core/build-tools.patch deleted file mode 100644 index 54ad666374..0000000000 --- a/packages/qt4/qtopia-core/build-tools.patch +++ /dev/null @@ -1,28 +0,0 @@ -Do not disable tools, examples and demos for the QWS build. Use brute-force -to do this. - -Index: qtopia-core-opensource-src-4.3.3/configure -=================================================================== ---- qtopia-core-opensource-src-4.3.3.orig/configure 2007-12-27 16:30:36.000000000 +0100 -+++ qtopia-core-opensource-src-4.3.3/configure 2007-12-27 16:30:52.000000000 +0100 -@@ -2265,13 +2265,13 @@ - CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS" - - # don't build tools by default when cross-compiling -- if [ "$PLATFORM" != "$XPLATFORM" ]; then -- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"` -- fi --fi --for nobuild in $CFG_NOBUILD_PARTS; do -- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"` --done -+ #if [ "$PLATFORM" != "$XPLATFORM" ]; then -+ # CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"` -+ #fi -+fi -+#for nobuild in $CFG_NOBUILD_PARTS; do -+# CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"` -+#done - if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then - # echo - # echo "WARNING: libs is a required part of the build." diff --git a/packages/qt4/qtopia-core/linux-oe-qmake.conf b/packages/qt4/qtopia-core/linux-oe-qmake.conf deleted file mode 100644 index fc5ac6dc5c..0000000000 --- a/packages/qt4/qtopia-core/linux-oe-qmake.conf +++ /dev/null @@ -1,95 +0,0 @@ -# -# qmake configuration for linux-oe-g++ / OpenEmbedded Build System / http://openembedded.org -# - -MAKEFILE_GENERATOR = UNIX -TEMPLATE = app -CONFIG += qt warn_on release link_prl -QT += core gui network -QMAKE_INCREMENTAL_STYLE = sublib - -QMAKE_CC = $(OE_QMAKE_CC) -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_YACCFLAGS_MANGLE = -p $base -b $base -QMAKE_YACC_HEADER = $base.tab.h -QMAKE_YACC_SOURCE = $base.tab.c -QMAKE_CFLAGS = -pipe $(OE_QMAKE_CFLAGS) $(CFLAGS_EXTRA) -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = $(if $(CFLAGS_RELEASE),$(CFLAGS_RELEASE), -O2) -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = -D_REENTRANT -QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden - -QMAKE_CXX = $(OE_QMAKE_CXX) -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) $(CXXFLAGS_EXTRA) -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD -QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT) -QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT) -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = -QMAKE_INCDIR_QTOPIA = $(OE_QMAKE_INCDIR_QTOPIA) -QMAKE_LIBDIR_QTOPIA = $(OE_QMAKE_LIBDIR_QTOPIA) - - -QMAKE_LINK = $(OE_QMAKE_LINK) -QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) -QMAKE_LFLAGS = $(OE_QMAKE_LDFLAGS) $(LFLAGS_EXTRA) -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_THREAD = -QMAKE_RPATH = -Wl,-rpath-link, - -QMAKE_LIBS = $(LIBS_EXTRA) -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -QMAKE_LIBS_X11SM = -QMAKE_LIBS_QT = -lqte -QMAKE_LIBS_QT_THREAD = -lqte-mt -QMAKE_LIBS_QT_OPENGL = -lqgl -QMAKE_LIBS_THREAD = -lpthread -QMAKE_LIBS_QTOPIA = -lqpe -lqtopia -QMAKE_LIBS_THREAD = -lpthread - -QMAKE_MOC = $$[QT_INSTALL_BINS]/moc -QMAKE_UIC = $$[QT_INSTALL_BINS]/uic - -QMAKE_AR = $(OE_QMAKE_AR) cqs -QMAKE_RANLIB = $(OE_QMAKE_RANLIB) - -QMAKE_TAR = tar -cf -QMAKE_GZIP = gzip -9f - -QMAKE_COPY = cp -f -QMAKE_COPY_FILE = $(COPY) -QMAKE_COPY_DIR = $(COPY) -r -QMAKE_MOVE = mv -f -QMAKE_DEL_FILE = rm -f -QMAKE_DEL_DIR = rmdir -QMAKE_STRIP = $(OE_QMAKE_STRIP) -QMAKE_STRIPFLAGS_LIB += --strip-unneeded -QMAKE_CHK_DIR_EXISTS = test -d -QMAKE_MKDIR = mkdir -p -load(qt_config) diff --git a/packages/qt4/qtopia-core_4.4.3.bb b/packages/qt4/qtopia-core_4.4.3.bb deleted file mode 100644 index 061fd2cd6c..0000000000 --- a/packages/qt4/qtopia-core_4.4.3.bb +++ /dev/null @@ -1,6 +0,0 @@ -#Empty recipe to break a recursive loop -DEFAULT_PREFERENCE = "-1" -DEFAULT_PREFERENCE_angstrom = "1" - -#keep in sync with qt-embedded_${PV}.bb -PR = "r1" -- cgit 1.2.3-korg From f5cf1567d7c4b7aaea97dc6eb6995284661f367b Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 27 Feb 2009 13:50:17 +0100 Subject: qt_packaging.inc: make phonon4-dev honour QT_LIBINFIX --- packages/qt4/qt_packaging.inc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/qt4/qt_packaging.inc b/packages/qt4/qt_packaging.inc index 4e8bbf6c16..68b3a406eb 100644 --- a/packages/qt4/qt_packaging.inc +++ b/packages/qt4/qt_packaging.inc @@ -124,8 +124,12 @@ FILES_${QT_BASE_LIB}clucene-dbg = "${libdir}/.debug/libQtCLucene*" FILES_${QT_BASE_LIB}webkit = "${libdir}/libQtWebKit${QT_LIBINFIX}.so.*" FILES_${QT_BASE_LIB}webkit-dev = "${@qt_default_dev('WebKit')}" FILES_${QT_BASE_LIB}webkit-dbg = "${libdir}/.debug/libQtWebKit*" -FILES_${QT_BASE_LIB}phonon = "${libdir}/libphonon*.so.*" -FILES_${QT_BASE_LIB}phonon-dev = "${includedir}/qt4/phonon ${libdir}/libphonon.* ${libdir}/pkgconfig/phonon.pc" +FILES_${QT_BASE_LIB}phonon = "${libdir}/libphonon${QT_LIBINFIX}.so.*" +FILES_${QT_BASE_LIB}phonon-dev = "${libdir}/libphonon${QT_LIBINFIX}.la \ + ${libdir}/libphonon${QT_LIBINFIX}.prl \ + ${libdir}/libphonon${QT_LIBINFIX}.so \ + ${includedir}/${QT_DIR_NAME}/phonon \ + ${libdir}/pkgconfig/phonon${QT_LIBINFIX}.pc" FILES_${QT_BASE_LIB}phonon-dbg = "${libdir}/.debug/libphonon*" FILES_${QT_BASE_NAME}-assistant = "${bindir}/*assistant*" -- cgit 1.2.3-korg From c1f7f80ab95d27834b3cd038880addc2d2e53dff Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 27 Feb 2009 13:51:14 +0100 Subject: qt4: split qt-embedded and qtopia-core --- packages/qt4/qt-embedded_4.4.3.bb | 40 +++++++++++++++++++++++++---------- packages/qt4/qtopia-core.inc | 43 -------------------------------------- packages/qt4/qtopia-core_4.3.3.bb | 44 +++++++++++++++++++++++++++++++++++++-- 3 files changed, 71 insertions(+), 56 deletions(-) delete mode 100644 packages/qt4/qtopia-core.inc diff --git a/packages/qt4/qt-embedded_4.4.3.bb b/packages/qt4/qt-embedded_4.4.3.bb index 18cf3cbc44..088300fda5 100644 --- a/packages/qt4/qt-embedded_4.4.3.bb +++ b/packages/qt4/qt-embedded_4.4.3.bb @@ -1,6 +1,10 @@ -require qtopia-core.inc - -PR = "r5" +SUMMARY = "Qt is a versatile cross-platform application framework -- this is the embedded version." +SECTION = "libs" +LICENSE = "GPL" +PRIORITY = "optional" +HOMEPAGE = "http://www.trolltech.com" +DEPENDS += "tslib" +PR = "r6" SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-linux-opensource-src-${PV}.tar.bz2 \ file://qconfig-oe.h \ @@ -8,23 +12,37 @@ SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-linux-opensource-src-${ file://0003-no-tools.patch;patch=1 \ file://0004-no-qmake.patch;patch=1 \ file://0005-fix-mkspecs.patch;patch=1 \ - file://qt-lib-infix.patch;patch=1 \ - file://build-tools.patch;patch=1" -S = "${WORKDIR}/qt-embedded-linux-opensource-src-${PV}" - -SRC_URI += " \ file://0006-freetype-host-includes.patch;patch=1 \ file://0007-openssl-host-includes.patch;patch=1 \ + file://qt-lib-infix.patch;patch=1 \ + file://build-tools.patch;patch=1 \ file://support-2bpp.patch;patch=1 \ # file://allow-configure-plugins.patch;patch=1 \ -" + " +S = "${WORKDIR}/qt-embedded-linux-opensource-src-${PV}" QT_CONFIG_FLAGS += " \ + -nomake demos -nomake examples -nomake tools -qtlibinfix E\ + -embedded ${QT_ARCH} \ + -qt-decoration-styled -plugin-decoration-default -plugin-decoration-windows \ + -plugin-gfx-transformed -plugin-gfx-qvfb -plugin-gfx-vnc\ + -plugin-mouse-tslib -qt-mouse-pc -qt-mouse-qvfb\ + -qt-kbd-tty -qt-kbd-usb -qt-kbd-qvfb\ -webkit \ -DQT_KEYPAD_NAVIGATION \ - " + " + +do_configure_prepend() { + cp ${WORKDIR}/qconfig-oe.h ${S}/src/corelib/global +} QT_BASE_NAME = "qt-embedded" QT_BASE_LIB = "libqt-embedded" +QT_DIR_NAME = "qtopia" +QT_LIBINFIX="E" +require qt_depends.inc +require qt_configuration.inc +require qt_packaging.inc +require qt_staging.inc - +inherit qtopia4core diff --git a/packages/qt4/qtopia-core.inc b/packages/qt4/qtopia-core.inc deleted file mode 100644 index eab7e1b3e1..0000000000 --- a/packages/qt4/qtopia-core.inc +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "Qt is a versatile cross-platform application framework -- this is the QtopiaCore/Embedded version." -SECTION = "libs" -LICENSE = "GPL" -PRIORITY = "optional" -HOMEPAGE = "http://www.trolltech.com" -DEPENDS += "tslib" -PR = "r3" - -SRC_URI = "ftp://ftp.trolltech.com/qt/source/qtopia-core-opensource-src-${PV}.tar.gz \ - file://qconfig-oe.h \ - file://0001-cross-compile.patch;patch=1 \ - file://0003-no-tools.patch;patch=1 \ - file://0004-no-qmake.patch;patch=1 \ - file://0005-fix-mkspecs.patch;patch=1 \ - file://build-tools.patch;patch=1" -S = "${WORKDIR}/qtopia-core-opensource-src-${PV}" - - -QT_CONFIG_FLAGS += " \ - -nomake demos -nomake examples -nomake tools -qtlibinfix E\ - -embedded ${QT_ARCH} \ - -qt-decoration-styled -plugin-decoration-default -plugin-decoration-windows \ - -plugin-gfx-transformed -plugin-gfx-qvfb -plugin-gfx-vnc\ - -plugin-mouse-tslib -qt-mouse-pc -qt-mouse-qvfb\ - -qt-kbd-tty -qt-kbd-usb -qt-kbd-qvfb\ - ${QT_QCONFIG} \ - " - -do_configure_prepend() { - cp ${WORKDIR}/qconfig-oe.h ${S}/src/corelib/global -} - -QT_QCONFIG = "" -QT_BASE_NAME = "qtopiacore" -QT_BASE_LIB = "libqtopiacore" -QT_DIR_NAME = "qtopia" -QT_LIBINFIX="E" -require qt_depends.inc -require qt_configuration.inc -require qt_packaging.inc -require qt_staging.inc - -inherit qtopia4core diff --git a/packages/qt4/qtopia-core_4.3.3.bb b/packages/qt4/qtopia-core_4.3.3.bb index 40ec78ef04..7888a8e7d3 100644 --- a/packages/qt4/qtopia-core_4.3.3.bb +++ b/packages/qt4/qtopia-core_4.3.3.bb @@ -1,6 +1,46 @@ -require qtopia-core.inc -SRC_URI += " \ +SUMMARY = "Qt is a versatile cross-platform application framework -- this is the embedded version." +SECTION = "libs" +LICENSE = "GPL" +PRIORITY = "optional" +HOMEPAGE = "http://www.trolltech.com" +DEPENDS += "tslib" +PR = "r4" + +SRC_URI = "ftp://ftp.trolltech.com/qt/source/qtopia-core-opensource-src-${PV}.tar.gz \ + file://qconfig-oe.h \ + file://0001-cross-compile.patch;patch=1 \ + file://0003-no-tools.patch;patch=1 \ + file://0004-no-qmake.patch;patch=1 \ + file://0005-fix-mkspecs.patch;patch=1 \ + file://build-tools.patch;patch=1 \ file://0006-freetype-host-includes.patch;patch=1 \ file://0007-openssl-host-includes.patch;patch=1 \ file://0008-backport-qt-lib-infix.patch;patch=1 \ file://allow-configure-plugins.patch;patch=1 " +S = "${WORKDIR}/qtopia-core-opensource-src-${PV}" + +QT_CONFIG_FLAGS += " \ + -nomake demos -nomake examples -nomake tools -qtlibinfix E\ + -embedded ${QT_ARCH} \ + -qt-decoration-styled -plugin-decoration-default -plugin-decoration-windows \ + -plugin-gfx-transformed -plugin-gfx-qvfb -plugin-gfx-vnc\ + -plugin-mouse-tslib -qt-mouse-pc -qt-mouse-qvfb\ + -qt-kbd-tty -qt-kbd-usb -qt-kbd-qvfb\ + ${QT_QCONFIG} \ + " + +do_configure_prepend() { + cp ${WORKDIR}/qconfig-oe.h ${S}/src/corelib/global +} + +QT_QCONFIG = "" +QT_BASE_NAME = "qtopiacore" +QT_BASE_LIB = "libqtopiacore" +QT_DIR_NAME = "qtopia" +QT_LIBINFIX="E" +require qt_depends.inc +require qt_configuration.inc +require qt_packaging.inc +require qt_staging.inc + +inherit qtopia4core -- cgit 1.2.3-korg From 188de8046f59298cbe6f10d13bdff59beafe7c10 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 27 Feb 2009 14:01:57 +0100 Subject: qt-embedded: restore qtopia4core.bbclass, add qt4e.bbclass --- classes/qt4e.bbclass | 13 +++++++++++++ classes/qtopia4core.bbclass | 2 +- packages/qt4/qt-embedded_4.4.3.bb | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 classes/qt4e.bbclass diff --git a/classes/qt4e.bbclass b/classes/qt4e.bbclass new file mode 100644 index 0000000000..3fac2bda9b --- /dev/null +++ b/classes/qt4e.bbclass @@ -0,0 +1,13 @@ +DEPENDS_prepend = "${@["qt-embedded ", ""][(bb.data.getVar('PN', d, 1) == 'qt-embedded')]}" +inherit qmake2 + +QT_DIR_NAME = "qtopia" +# +# override variables set by qmake-base to compile QtopiaCore apps +# +export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/qtopia" +export OE_QMAKE_LIBDIR_QT = "${STAGING_LIBDIR}" +export OE_QMAKE_LIBS_QT = "qt" +export OE_QMAKE_LIBS_X11 = "" +export OE_QMAKE_EXTRA_MODULES = "network" +EXTRA_QMAKEVARS_PRE += " QT_LIBINFIX=E " diff --git a/classes/qtopia4core.bbclass b/classes/qtopia4core.bbclass index 3fac2bda9b..b5f10fa486 100644 --- a/classes/qtopia4core.bbclass +++ b/classes/qtopia4core.bbclass @@ -1,4 +1,4 @@ -DEPENDS_prepend = "${@["qt-embedded ", ""][(bb.data.getVar('PN', d, 1) == 'qt-embedded')]}" +DEPENDS_prepend = "${@["qtopia-core ", ""][(bb.data.getVar('PN', d, 1) == 'qtopia-core')]}" inherit qmake2 QT_DIR_NAME = "qtopia" diff --git a/packages/qt4/qt-embedded_4.4.3.bb b/packages/qt4/qt-embedded_4.4.3.bb index 088300fda5..24f45a11eb 100644 --- a/packages/qt4/qt-embedded_4.4.3.bb +++ b/packages/qt4/qt-embedded_4.4.3.bb @@ -45,4 +45,4 @@ require qt_configuration.inc require qt_packaging.inc require qt_staging.inc -inherit qtopia4core +inherit qt4e -- cgit 1.2.3-korg From b697819f7e84e19ca2adc9846421c8c8137b8fca Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 14:43:23 +0100 Subject: linux.inc: fix the infamous 'install ./-m0644: file not found' error --- packages/linux/linux.inc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/linux/linux.inc b/packages/linux/linux.inc index 672d326c9a..5e714e1b7e 100644 --- a/packages/linux/linux.inc +++ b/packages/linux/linux.inc @@ -131,6 +131,10 @@ do_configure_append_avr32() { sed -i -e s:-mno-pic::g arch/avr32/Makefile } +do_configure_append() { + sed -i -e "s:-m0644:-m 0644:g" scripts/Makefile.fwinst +} + do_compile_append() { if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then if test -e arch/${ARCH}/boot/compressed/vmlinux ; then -- cgit 1.2.3-korg From 753b13026aa41bb795ff7b2a2bfe7fb6dd53a163 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 16:53:47 +0100 Subject: busybox-static 1.11.3: make it more convenient to maintain the static version --- .../busybox/busybox-static-1.11.3/B921600.patch | 13 - .../busybox-static-1.11.3/angstrom/defconfig | 855 --------------------- packages/busybox/busybox-static-1.11.3/defconfig | 777 ------------------- .../fdisk_lineedit_segfault.patch | 12 - .../busybox/busybox-static-1.11.3/slugos/defconfig | 851 -------------------- .../busybox-static-1.11.3/udhcpscript.patch | 17 - packages/busybox/busybox-static_1.11.3.bb | 11 +- 7 files changed, 9 insertions(+), 2527 deletions(-) delete mode 100644 packages/busybox/busybox-static-1.11.3/B921600.patch delete mode 100644 packages/busybox/busybox-static-1.11.3/angstrom/defconfig delete mode 100644 packages/busybox/busybox-static-1.11.3/defconfig delete mode 100644 packages/busybox/busybox-static-1.11.3/fdisk_lineedit_segfault.patch delete mode 100644 packages/busybox/busybox-static-1.11.3/slugos/defconfig delete mode 100644 packages/busybox/busybox-static-1.11.3/udhcpscript.patch diff --git a/packages/busybox/busybox-static-1.11.3/B921600.patch b/packages/busybox/busybox-static-1.11.3/B921600.patch deleted file mode 100644 index 61cc32b0e5..0000000000 --- a/packages/busybox/busybox-static-1.11.3/B921600.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -upNr busybox-1.7.2/libbb/speed_table.c busybox-1.7.2-921600/libbb/speed_table.c ---- busybox-1.7.2/libbb/speed_table.c 2007-09-03 13:48:41.000000000 +0200 -+++ busybox-1.7.2-921600/libbb/speed_table.c 2008-10-09 16:23:26.269592899 +0200 -@@ -52,6 +52,9 @@ static const struct speed_map speeds[] = - #ifdef B460800 - {B460800, 460800/256 + 0x8000U}, - #endif -+#ifdef B921600 -+ {B921600, 921600/256 + 0x8000U}, -+#endif - }; - - enum { NUM_SPEEDS = ARRAY_SIZE(speeds) }; diff --git a/packages/busybox/busybox-static-1.11.3/angstrom/defconfig b/packages/busybox/busybox-static-1.11.3/angstrom/defconfig deleted file mode 100644 index 18324092f0..0000000000 --- a/packages/busybox/busybox-static-1.11.3/angstrom/defconfig +++ /dev/null @@ -1,855 +0,0 @@ -# -# Automatically generated make config: don't edit -# Busybox version: 1.11.1 -# Thu Oct 9 14:15:08 2008 -# -CONFIG_HAVE_DOT_CONFIG=y - -# -# Busybox Settings -# - -# -# General Configuration -# -# CONFIG_DESKTOP is not set -CONFIG_FEATURE_ASSUME_UNICODE=y -CONFIG_FEATURE_BUFFERS_USE_MALLOC=y -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set -CONFIG_SHOW_USAGE=y -# CONFIG_FEATURE_VERBOSE_USAGE is not set -CONFIG_FEATURE_COMPRESS_USAGE=y -# CONFIG_FEATURE_INSTALLER is not set -CONFIG_LOCALE_SUPPORT=y -CONFIG_GETOPT_LONG=y -CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set -CONFIG_FEATURE_PIDFILE=y -CONFIG_FEATURE_SUID=y -CONFIG_FEATURE_SUID_CONFIG=y -CONFIG_FEATURE_SUID_CONFIG_QUIET=y -# CONFIG_SELINUX is not set -# CONFIG_FEATURE_PREFER_APPLETS is not set -CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" -CONFIG_FEATURE_SYSLOG=y -CONFIG_FEATURE_HAVE_RPC=y - -# -# Build Options -# -CONFIG_STATIC=y -# CONFIG_PIE is not set -# CONFIG_NOMMU is not set -# CONFIG_BUILD_LIBBUSYBOX is not set -# CONFIG_FEATURE_INDIVIDUAL is not set -# CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y -CONFIG_CROSS_COMPILER_PREFIX="" - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_WERROR is not set -CONFIG_NO_DEBUG_LIB=y -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set -# CONFIG_INCLUDE_SUSv2 is not set - -# -# Installation Options -# -# CONFIG_INSTALL_NO_USR is not set -CONFIG_INSTALL_APPLET_SYMLINKS=y -# CONFIG_INSTALL_APPLET_HARDLINKS is not set -# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set -# CONFIG_INSTALL_APPLET_DONT is not set -# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set -# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set -# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set -CONFIG_PREFIX="./_install" - -# -# Busybox Library Tuning -# -CONFIG_PASSWORD_MINLEN=6 -CONFIG_MD5_SIZE_VS_SPEED=2 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -CONFIG_FEATURE_EDITING=y -CONFIG_FEATURE_EDITING_MAX_LEN=1024 -# CONFIG_FEATURE_EDITING_VI is not set -CONFIG_FEATURE_EDITING_HISTORY=15 -CONFIG_FEATURE_EDITING_SAVEHISTORY=y -CONFIG_FEATURE_TAB_COMPLETION=y -CONFIG_FEATURE_USERNAME_COMPLETION=y -CONFIG_FEATURE_EDITING_FANCY_PROMPT=y -CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_MONOTONIC_SYSCALL=y -CONFIG_IOCTL_HEX2STR_ERROR=y -CONFIG_FEATURE_HWIB=y - -# -# Applets -# - -# -# Archival Utilities -# -CONFIG_AR=y -# CONFIG_FEATURE_AR_LONG_FILENAMES is not set -CONFIG_BUNZIP2=y -# CONFIG_BZIP2 is not set -CONFIG_CPIO=y -# CONFIG_FEATURE_CPIO_O is not set -# CONFIG_DPKG is not set -# CONFIG_DPKG_DEB is not set -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set -CONFIG_GUNZIP=y -# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set -CONFIG_GZIP=y -# CONFIG_RPM2CPIO is not set -# CONFIG_RPM is not set -# CONFIG_FEATURE_RPM_BZ2 is not set -CONFIG_TAR=y -CONFIG_FEATURE_TAR_CREATE=y -CONFIG_FEATURE_TAR_GZIP=y -CONFIG_FEATURE_TAR_BZIP2=y -# CONFIG_FEATURE_TAR_LZMA is not set -# CONFIG_FEATURE_TAR_COMPRESS is not set -CONFIG_FEATURE_TAR_AUTODETECT=y -CONFIG_FEATURE_TAR_FROM=y -CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y -# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set -CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set -CONFIG_FEATURE_TAR_UNAME_GNAME=y -# CONFIG_UNCOMPRESS is not set -# CONFIG_UNLZMA is not set -# CONFIG_FEATURE_LZMA_FAST is not set -CONFIG_UNZIP=y - -# -# Common options for cpio and tar -# -# CONFIG_FEATURE_DEB_TAR_GZ is not set -# CONFIG_FEATURE_DEB_TAR_BZ2 is not set -# CONFIG_FEATURE_DEB_TAR_LZMA is not set - -# -# Coreutils -# -CONFIG_BASENAME=y -# CONFIG_CAL is not set -CONFIG_CAT=y -# CONFIG_CATV is not set -CONFIG_CHGRP=y -CONFIG_CHMOD=y -CONFIG_CHOWN=y -CONFIG_CHROOT=y -# CONFIG_CKSUM is not set -# CONFIG_COMM is not set -CONFIG_CP=y -CONFIG_CUT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -# CONFIG_FEATURE_DD_IBS_OBS is not set -CONFIG_DF=y -# CONFIG_FEATURE_DF_INODE is not set -CONFIG_DIRNAME=y -# CONFIG_DOS2UNIX is not set -# CONFIG_UNIX2DOS is not set -CONFIG_DU=y -CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y -CONFIG_ECHO=y -CONFIG_FEATURE_FANCY_ECHO=y -CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y -# CONFIG_EXPAND is not set -# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set -CONFIG_EXPR=y -# CONFIG_EXPR_MATH_SUPPORT_64 is not set -CONFIG_FALSE=y -# CONFIG_FOLD is not set -CONFIG_HEAD=y -# CONFIG_FEATURE_FANCY_HEAD is not set -# CONFIG_HOSTID is not set -CONFIG_ID=y -# CONFIG_INSTALL is not set -# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set -# CONFIG_LENGTH is not set -CONFIG_LN=y -CONFIG_LOGNAME=y -CONFIG_LS=y -CONFIG_FEATURE_LS_FILETYPES=y -CONFIG_FEATURE_LS_FOLLOWLINKS=y -CONFIG_FEATURE_LS_RECURSIVE=y -CONFIG_FEATURE_LS_SORTFILES=y -CONFIG_FEATURE_LS_TIMESTAMPS=y -CONFIG_FEATURE_LS_USERNAME=y -CONFIG_FEATURE_LS_COLOR=y -# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set -CONFIG_MD5SUM=y -CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y -CONFIG_MKFIFO=y -CONFIG_MKNOD=y -CONFIG_MV=y -# CONFIG_FEATURE_MV_LONG_OPTIONS is not set -# CONFIG_NICE is not set -CONFIG_NOHUP=y -CONFIG_OD=y -# CONFIG_PRINTENV is not set -CONFIG_PRINTF=y -CONFIG_PWD=y -CONFIG_READLINK=y -CONFIG_FEATURE_READLINK_FOLLOW=y -CONFIG_REALPATH=y -CONFIG_RM=y -CONFIG_RMDIR=y -# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set -CONFIG_SEQ=y -# CONFIG_SHA1SUM is not set -CONFIG_SLEEP=y -CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_SORT=y -CONFIG_FEATURE_SORT_BIG=y -# CONFIG_SPLIT is not set -# CONFIG_FEATURE_SPLIT_FANCY is not set -# CONFIG_STAT is not set -# CONFIG_FEATURE_STAT_FORMAT is not set -CONFIG_STTY=y -# CONFIG_SUM is not set -CONFIG_SYNC=y -# CONFIG_TAC is not set -CONFIG_TAIL=y -CONFIG_FEATURE_FANCY_TAIL=y -CONFIG_TEE=y -# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set -CONFIG_TEST=y -# CONFIG_FEATURE_TEST_64 is not set -CONFIG_TOUCH=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -# CONFIG_FEATURE_TR_EQUIV is not set -CONFIG_TRUE=y -CONFIG_TTY=y -CONFIG_UNAME=y -# CONFIG_UNEXPAND is not set -# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set -CONFIG_UNIQ=y -CONFIG_USLEEP=y -# CONFIG_UUDECODE is not set -# CONFIG_UUENCODE is not set -CONFIG_WC=y -# CONFIG_FEATURE_WC_LARGE is not set -CONFIG_WHO=y -CONFIG_WHOAMI=y -CONFIG_YES=y - -# -# Common options for cp and mv -# -# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set - -# -# Common options for ls, more and telnet -# -CONFIG_FEATURE_AUTOWIDTH=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum -# -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - -# -# Console Utilities -# -CONFIG_CHVT=y -CONFIG_CLEAR=y -CONFIG_DEALLOCVT=y -CONFIG_DUMPKMAP=y -# CONFIG_KBD_MODE is not set -CONFIG_LOADFONT=y -CONFIG_LOADKMAP=y -CONFIG_OPENVT=y -CONFIG_RESET=y -# CONFIG_RESIZE is not set -# CONFIG_FEATURE_RESIZE_PRINT is not set -CONFIG_SETCONSOLE=y -# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -# CONFIG_SETKEYCODES is not set -# CONFIG_SETLOGCONS is not set - -# -# Debian Utilities -# -CONFIG_MKTEMP=y -# CONFIG_PIPE_PROGRESS is not set -CONFIG_RUN_PARTS=y -CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y -CONFIG_FEATURE_RUN_PARTS_FANCY=y -CONFIG_START_STOP_DAEMON=y -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y -CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y -CONFIG_WHICH=y - -# -# Editors -# -CONFIG_AWK=y -CONFIG_FEATURE_AWK_MATH=y -CONFIG_CMP=y -CONFIG_DIFF=y -CONFIG_FEATURE_DIFF_BINARY=y -CONFIG_FEATURE_DIFF_DIR=y -CONFIG_FEATURE_DIFF_MINIMAL=y -# CONFIG_ED is not set -CONFIG_PATCH=y -CONFIG_SED=y -CONFIG_VI=y -CONFIG_FEATURE_VI_MAX_LEN=1024 -CONFIG_FEATURE_VI_8BIT=y -CONFIG_FEATURE_VI_COLON=y -CONFIG_FEATURE_VI_YANKMARK=y -CONFIG_FEATURE_VI_SEARCH=y -CONFIG_FEATURE_VI_USE_SIGNALS=y -CONFIG_FEATURE_VI_DOT_CMD=y -# CONFIG_FEATURE_VI_READONLY is not set -# CONFIG_FEATURE_VI_SETOPTS is not set -CONFIG_FEATURE_VI_SET=y -CONFIG_FEATURE_VI_WIN_RESIZE=y -CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y -CONFIG_FEATURE_ALLOW_EXEC=y - -# -# Finding Utilities -# -CONFIG_FIND=y -CONFIG_FEATURE_FIND_PRINT0=y -CONFIG_FEATURE_FIND_MTIME=y -CONFIG_FEATURE_FIND_MMIN=y -CONFIG_FEATURE_FIND_PERM=y -CONFIG_FEATURE_FIND_TYPE=y -CONFIG_FEATURE_FIND_XDEV=y -CONFIG_FEATURE_FIND_MAXDEPTH=y -CONFIG_FEATURE_FIND_NEWER=y -# CONFIG_FEATURE_FIND_INUM is not set -CONFIG_FEATURE_FIND_EXEC=y -CONFIG_FEATURE_FIND_USER=y -CONFIG_FEATURE_FIND_GROUP=y -CONFIG_FEATURE_FIND_NOT=y -CONFIG_FEATURE_FIND_DEPTH=y -CONFIG_FEATURE_FIND_PAREN=y -CONFIG_FEATURE_FIND_SIZE=y -CONFIG_FEATURE_FIND_PRUNE=y -# CONFIG_FEATURE_FIND_DELETE is not set -CONFIG_FEATURE_FIND_PATH=y -CONFIG_FEATURE_FIND_REGEX=y -# CONFIG_FEATURE_FIND_CONTEXT is not set -CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y -CONFIG_FEATURE_GREP_CONTEXT=y -CONFIG_XARGS=y -# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set -CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y -# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set -# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set - -# -# Init Utilities -# -CONFIG_INIT=y -# CONFIG_DEBUG_INIT is not set -CONFIG_FEATURE_USE_INITTAB=y -CONFIG_FEATURE_KILL_REMOVED=y -CONFIG_FEATURE_KILL_DELAY=0 -# CONFIG_FEATURE_INIT_SCTTY is not set -# CONFIG_FEATURE_INIT_SYSLOG is not set -# CONFIG_FEATURE_EXTRA_QUIET is not set -# CONFIG_FEATURE_INIT_COREDUMPS is not set -CONFIG_FEATURE_INITRD=y -CONFIG_HALT=y -# CONFIG_MESG is not set - -# -# Login/Password Management Utilities -# -CONFIG_FEATURE_SHADOWPASSWDS=y -# CONFIG_USE_BB_PWD_GRP is not set -# CONFIG_USE_BB_SHADOW is not set -CONFIG_USE_BB_CRYPT=y -CONFIG_ADDGROUP=y -CONFIG_FEATURE_ADDUSER_TO_GROUP=y -CONFIG_DELGROUP=y -CONFIG_FEATURE_DEL_USER_FROM_GROUP=y -CONFIG_FEATURE_CHECK_NAMES=y -CONFIG_ADDUSER=y -CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y -CONFIG_DELUSER=y -CONFIG_GETTY=y -CONFIG_FEATURE_UTMP=y -CONFIG_FEATURE_WTMP=y -CONFIG_LOGIN=y -# CONFIG_PAM is not set -CONFIG_LOGIN_SCRIPTS=y -CONFIG_FEATURE_NOLOGIN=y -CONFIG_FEATURE_SECURETTY=y -CONFIG_PASSWD=y -CONFIG_FEATURE_PASSWD_WEAK_CHECK=y -CONFIG_CRYPTPW=y -CONFIG_CHPASSWD=y -CONFIG_SU=y -CONFIG_FEATURE_SU_SYSLOG=y -CONFIG_FEATURE_SU_CHECKS_SHELLS=y -CONFIG_SULOGIN=y -CONFIG_VLOCK=y - -# -# Linux Ext2 FS Progs -# -CONFIG_CHATTR=y -CONFIG_FSCK=y -# CONFIG_LSATTR is not set - -# -# Linux Module Utilities -# -# CONFIG_DEPMOD is not set -# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set -# CONFIG_FEATURE_DEPMOD_ALIAS is not set -CONFIG_INSMOD=y -# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set -# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set -# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set -CONFIG_RMMOD=y -CONFIG_LSMOD=y -# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set -CONFIG_MODPROBE=y -CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y -CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y -CONFIG_FEATURE_MODPROBE_BLACKLIST=y - -# -# Options common to multiple modutils -# -CONFIG_FEATURE_CHECK_TAINTED_MODULE=y -# CONFIG_FEATURE_2_4_MODULES is not set -CONFIG_FEATURE_2_6_MODULES=y -CONFIG_DEFAULT_MODULES_DIR="/lib/modules" -CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" -# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set - -# -# Linux System Utilities -# -CONFIG_DMESG=y -CONFIG_FEATURE_DMESG_PRETTY=y -CONFIG_FBSET=y -CONFIG_FEATURE_FBSET_FANCY=y -CONFIG_FEATURE_FBSET_READMODE=y -# CONFIG_FDFLUSH is not set -# CONFIG_FDFORMAT is not set -CONFIG_FDISK=y -CONFIG_FDISK_SUPPORT_LARGE_DISKS=y -CONFIG_FEATURE_FDISK_WRITABLE=y -# CONFIG_FEATURE_AIX_LABEL is not set -# CONFIG_FEATURE_SGI_LABEL is not set -# CONFIG_FEATURE_SUN_LABEL is not set -CONFIG_FEATURE_OSF_LABEL=y -CONFIG_FEATURE_FDISK_ADVANCED=y -# CONFIG_FINDFS is not set -# CONFIG_FREERAMDISK is not set -CONFIG_FSCK_MINIX=y -CONFIG_MKFS_MINIX=y - -# -# Minix filesystem support -# -CONFIG_FEATURE_MINIX2=y -CONFIG_GETOPT=y -CONFIG_HEXDUMP=y -# CONFIG_FEATURE_HEXDUMP_REVERSE is not set -# CONFIG_HD is not set -CONFIG_HWCLOCK=y -CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y -CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y -# CONFIG_IPCRM is not set -# CONFIG_IPCS is not set -CONFIG_LOSETUP=y -CONFIG_MDEV=y -CONFIG_FEATURE_MDEV_CONF=y -CONFIG_FEATURE_MDEV_RENAME=y -CONFIG_FEATURE_MDEV_RENAME_REGEXP=y -CONFIG_FEATURE_MDEV_EXEC=y -CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y -CONFIG_MKSWAP=y -# CONFIG_FEATURE_MKSWAP_V0 is not set -CONFIG_MORE=y -CONFIG_FEATURE_USE_TERMIOS=y -CONFIG_VOLUMEID=y -# CONFIG_FEATURE_VOLUMEID_EXT is not set -# CONFIG_FEATURE_VOLUMEID_REISERFS is not set -# CONFIG_FEATURE_VOLUMEID_FAT is not set -# CONFIG_FEATURE_VOLUMEID_HFS is not set -# CONFIG_FEATURE_VOLUMEID_JFS is not set -# CONFIG_FEATURE_VOLUMEID_XFS is not set -# CONFIG_FEATURE_VOLUMEID_NTFS is not set -# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set -# CONFIG_FEATURE_VOLUMEID_UDF is not set -# CONFIG_FEATURE_VOLUMEID_LUKS is not set -# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set -# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set -# CONFIG_FEATURE_VOLUMEID_ROMFS is not set -# CONFIG_FEATURE_VOLUMEID_SYSV is not set -# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set -# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set -CONFIG_MOUNT=y -# CONFIG_FEATURE_MOUNT_FAKE is not set -# CONFIG_FEATURE_MOUNT_VERBOSE is not set -CONFIG_FEATURE_MOUNT_HELPERS=y -CONFIG_FEATURE_MOUNT_LABEL=y -CONFIG_FEATURE_MOUNT_NFS=y -CONFIG_FEATURE_MOUNT_CIFS=y -CONFIG_FEATURE_MOUNT_FLAGS=y -CONFIG_FEATURE_MOUNT_FSTAB=y -CONFIG_PIVOT_ROOT=y -CONFIG_RDATE=y -CONFIG_READPROFILE=y -# CONFIG_RTCWAKE is not set -# CONFIG_SCRIPT is not set -# CONFIG_SETARCH is not set -CONFIG_SWAPONOFF=y -# CONFIG_FEATURE_SWAPON_PRI is not set -CONFIG_SWITCH_ROOT=y -CONFIG_UMOUNT=y -CONFIG_FEATURE_UMOUNT_ALL=y - -# -# Common options for mount/umount -# -CONFIG_FEATURE_MOUNT_LOOP=y -# CONFIG_FEATURE_MTAB_SUPPORT is not set - -# -# Miscellaneous Utilities -# -# CONFIG_ADJTIMEX is not set -# CONFIG_BBCONFIG is not set -# CONFIG_CHAT is not set -# CONFIG_FEATURE_CHAT_NOFAIL is not set -# CONFIG_FEATURE_CHAT_TTY_HIFI is not set -# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set -# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set -# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set -# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set -# CONFIG_FEATURE_CHAT_CLR_ABORT is not set -# CONFIG_CHRT is not set -# CONFIG_CROND is not set -# CONFIG_DEBUG_CROND_OPTION is not set -# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -# CONFIG_CRONTAB is not set -CONFIG_DC=y -# CONFIG_DEVFSD is not set -# CONFIG_DEVFSD_MODLOAD is not set -# CONFIG_DEVFSD_FG_NP is not set -# CONFIG_DEVFSD_VERBOSE is not set -# CONFIG_FEATURE_DEVFS is not set -# CONFIG_EJECT is not set -# CONFIG_FEATURE_EJECT_SCSI is not set -# CONFIG_FBSPLASH is not set -# CONFIG_INOTIFYD is not set -# CONFIG_LAST is not set -# CONFIG_FEATURE_LAST_SMALL is not set -# CONFIG_FEATURE_LAST_FANCY is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_MAXLINES=9999999 -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y -# CONFIG_FEATURE_LESS_FLAGCS is not set -# CONFIG_FEATURE_LESS_MARKS is not set -# CONFIG_FEATURE_LESS_REGEXP is not set -# CONFIG_HDPARM is not set -# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set -# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set -# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set -CONFIG_MAKEDEVS=y -# CONFIG_FEATURE_MAKEDEVS_LEAF is not set -CONFIG_FEATURE_MAKEDEVS_TABLE=y -# CONFIG_MAN is not set -# CONFIG_MICROCOM is not set -# CONFIG_MOUNTPOINT is not set -# CONFIG_MT is not set -# CONFIG_RAIDAUTORUN is not set -CONFIG_READAHEAD=y -# CONFIG_RUNLEVEL is not set -# CONFIG_RX is not set -# CONFIG_SETSID is not set -CONFIG_STRINGS=y -# CONFIG_TASKSET is not set -# CONFIG_FEATURE_TASKSET_FANCY is not set -CONFIG_TIME=y -# CONFIG_TTYSIZE is not set -# CONFIG_WATCHDOG is not set - -# -# Networking Utilities -# -CONFIG_FEATURE_IPV6=y -CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y -# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set -# CONFIG_ARP is not set -# CONFIG_ARPING is not set -# CONFIG_BRCTL is not set -# CONFIG_FEATURE_BRCTL_FANCY is not set -# CONFIG_FEATURE_BRCTL_SHOW is not set -# CONFIG_DNSD is not set -# CONFIG_ETHER_WAKE is not set -# CONFIG_FAKEIDENTD is not set -# CONFIG_FTPGET is not set -# CONFIG_FTPPUT is not set -# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set -CONFIG_HOSTNAME=y -# CONFIG_HTTPD is not set -# CONFIG_FEATURE_HTTPD_RANGES is not set -# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set -# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set -# CONFIG_FEATURE_HTTPD_SETUID is not set -# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set -# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set -# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set -# CONFIG_FEATURE_HTTPD_CGI is not set -# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set -# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set -# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set -# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set -# CONFIG_FEATURE_HTTPD_PROXY is not set -CONFIG_IFCONFIG=y -CONFIG_FEATURE_IFCONFIG_STATUS=y -# CONFIG_FEATURE_IFCONFIG_SLIP is not set -# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set -CONFIG_FEATURE_IFCONFIG_HW=y -# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set -# CONFIG_IFENSLAVE is not set -CONFIG_IFUPDOWN=y -CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" -# CONFIG_FEATURE_IFUPDOWN_IP is not set -# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y -CONFIG_FEATURE_IFUPDOWN_IPV4=y -CONFIG_FEATURE_IFUPDOWN_IPV6=y -CONFIG_FEATURE_IFUPDOWN_MAPPING=y -# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set -# CONFIG_INETD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set -# CONFIG_FEATURE_INETD_RPC is not set -CONFIG_IP=y -CONFIG_FEATURE_IP_ADDRESS=y -CONFIG_FEATURE_IP_LINK=y -CONFIG_FEATURE_IP_ROUTE=y -CONFIG_FEATURE_IP_TUNNEL=y -# CONFIG_FEATURE_IP_RULE is not set -# CONFIG_FEATURE_IP_SHORT_FORMS is not set -# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set -# CONFIG_IPADDR is not set -# CONFIG_IPLINK is not set -# CONFIG_IPROUTE is not set -# CONFIG_IPTUNNEL is not set -# CONFIG_IPRULE is not set -# CONFIG_IPCALC is not set -# CONFIG_FEATURE_IPCALC_FANCY is not set -# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set -# CONFIG_NAMEIF is not set -# CONFIG_FEATURE_NAMEIF_EXTENDED is not set -CONFIG_NC=y -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y -CONFIG_NETSTAT=y -# CONFIG_FEATURE_NETSTAT_WIDE is not set -CONFIG_NSLOOKUP=y -CONFIG_PING=y -CONFIG_PING6=y -CONFIG_FEATURE_FANCY_PING=y -# CONFIG_PSCAN is not set -CONFIG_ROUTE=y -# CONFIG_SENDMAIL is not set -# CONFIG_FETCHMAIL is not set -# CONFIG_SLATTACH is not set -CONFIG_TELNET=y -# CONFIG_FEATURE_TELNET_TTYPE is not set -CONFIG_FEATURE_TELNET_AUTOLOGIN=y -CONFIG_TELNETD=y -# CONFIG_FEATURE_TELNETD_STANDALONE is not set -CONFIG_TFTP=y -# CONFIG_TFTPD is not set -CONFIG_FEATURE_TFTP_GET=y -CONFIG_FEATURE_TFTP_PUT=y -# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set -# CONFIG_DEBUG_TFTP is not set -CONFIG_TRACEROUTE=y -CONFIG_FEATURE_TRACEROUTE_VERBOSE=y -# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set -# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set -CONFIG_APP_UDHCPD=y -# CONFIG_APP_DHCPRELAY is not set -CONFIG_APP_DUMPLEASES=y -# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set -CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" -CONFIG_APP_UDHCPC=y -CONFIG_FEATURE_UDHCPC_ARPING=y -# CONFIG_FEATURE_UDHCP_PORT is not set -# CONFIG_FEATURE_UDHCP_DEBUG is not set -# CONFIG_FEATURE_RFC3397 is not set -CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 -# CONFIG_VCONFIG is not set -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -# CONFIG_ZCIP is not set -# CONFIG_TCPSVD is not set -# CONFIG_UDPSVD is not set - -# -# Process Utilities -# -CONFIG_FREE=y -CONFIG_FUSER=y -CONFIG_KILL=y -CONFIG_KILLALL=y -# CONFIG_KILLALL5 is not set -# CONFIG_NMETER is not set -# CONFIG_PGREP is not set -CONFIG_PIDOF=y -CONFIG_FEATURE_PIDOF_SINGLE=y -CONFIG_FEATURE_PIDOF_OMIT=y -# CONFIG_PKILL is not set -CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y -# CONFIG_FEATURE_PS_TIME is not set -# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -CONFIG_RENICE=y -CONFIG_BB_SYSCTL=y -CONFIG_TOP=y -CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y -CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y -# CONFIG_FEATURE_TOP_DECIMALS is not set -# CONFIG_FEATURE_TOPMEM is not set -CONFIG_UPTIME=y -CONFIG_WATCH=y - -# -# Shells -# -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_MSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -CONFIG_ASH=y - -# -# Ash Shell Options -# -CONFIG_ASH_BASH_COMPAT=y -CONFIG_ASH_JOB_CONTROL=y -CONFIG_ASH_READ_NCHARS=y -CONFIG_ASH_READ_TIMEOUT=y -CONFIG_ASH_ALIAS=y -CONFIG_ASH_MATH_SUPPORT=y -# CONFIG_ASH_MATH_SUPPORT_64 is not set -CONFIG_ASH_GETOPTS=y -# CONFIG_ASH_BUILTIN_ECHO is not set -CONFIG_ASH_BUILTIN_PRINTF=y -CONFIG_ASH_BUILTIN_TEST=y -# CONFIG_ASH_CMDCMD is not set -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y -# CONFIG_ASH_RANDOM_SUPPORT is not set -CONFIG_ASH_EXPAND_PRMT=y -# CONFIG_HUSH is not set -# CONFIG_HUSH_HELP is not set -# CONFIG_HUSH_INTERACTIVE is not set -# CONFIG_HUSH_JOB is not set -# CONFIG_HUSH_TICK is not set -# CONFIG_HUSH_IF is not set -# CONFIG_HUSH_LOOPS is not set -# CONFIG_LASH is not set -# CONFIG_MSH is not set - -# -# Bourne Shell Options -# -CONFIG_FEATURE_SH_EXTRA_QUIET=y -# CONFIG_FEATURE_SH_STANDALONE is not set -# CONFIG_FEATURE_SH_NOFORK is not set -# CONFIG_CTTYHACK is not set - -# -# System Logging Utilities -# -CONFIG_SYSLOGD=y -CONFIG_FEATURE_ROTATE_LOGFILE=y -CONFIG_FEATURE_REMOTE_LOG=y -CONFIG_FEATURE_SYSLOGD_DUP=y -CONFIG_FEATURE_IPC_SYSLOG=y -CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 -CONFIG_LOGREAD=y -CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y -CONFIG_KLOGD=y -CONFIG_LOGGER=y - -# -# Runit Utilities -# -# CONFIG_RUNSV is not set -# CONFIG_RUNSVDIR is not set -# CONFIG_SV is not set -# CONFIG_SVLOGD is not set -# CONFIG_CHPST is not set -# CONFIG_SETUIDGID is not set -# CONFIG_ENVUIDGID is not set -# CONFIG_ENVDIR is not set -# CONFIG_SOFTLIMIT is not set -# CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set -# CONFIG_GETENFORCE is not set -# CONFIG_GETSEBOOL is not set -# CONFIG_LOAD_POLICY is not set -# CONFIG_MATCHPATHCON is not set -# CONFIG_RESTORECON is not set -# CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set -# CONFIG_SELINUXENABLED is not set -# CONFIG_SETENFORCE is not set -# CONFIG_SETFILES is not set -# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set -# CONFIG_SETSEBOOL is not set -# CONFIG_SESTATUS is not set - -# -# Print Utilities -# -# CONFIG_LPD is not set -# CONFIG_LPR is not set -# CONFIG_LPQ is not set diff --git a/packages/busybox/busybox-static-1.11.3/defconfig b/packages/busybox/busybox-static-1.11.3/defconfig deleted file mode 100644 index 3be63d8174..0000000000 --- a/packages/busybox/busybox-static-1.11.3/defconfig +++ /dev/null @@ -1,777 +0,0 @@ -# -# Automatically generated make config: don't edit -# Busybox version: 1.9.1 -# Thu Feb 14 11:54:00 2008 -# -CONFIG_HAVE_DOT_CONFIG=y - -# -# Busybox Settings -# - -# -# General Configuration -# -# CONFIG_NITPICK is not set -# CONFIG_DESKTOP is not set -# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set -CONFIG_SHOW_USAGE=y -# CONFIG_FEATURE_VERBOSE_USAGE is not set -CONFIG_FEATURE_COMPRESS_USAGE=y -# CONFIG_FEATURE_INSTALLER is not set -CONFIG_LOCALE_SUPPORT=y -CONFIG_GETOPT_LONG=y -CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set -CONFIG_FEATURE_PIDFILE=y -CONFIG_FEATURE_SUID=y -CONFIG_FEATURE_SUID_CONFIG=y -CONFIG_FEATURE_SUID_CONFIG_QUIET=y -# CONFIG_SELINUX is not set -# CONFIG_FEATURE_PREFER_APPLETS is not set -CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" -CONFIG_FEATURE_SYSLOG=y -CONFIG_FEATURE_HAVE_RPC=y - -# -# Build Options -# -CONFIG_STATIC=y -# CONFIG_BUILD_LIBBUSYBOX is not set -# CONFIG_FEATURE_INDIVIDUAL is not set -# CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_WERROR is not set -CONFIG_NO_DEBUG_LIB=y -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set -# CONFIG_INCLUDE_SUSv2 is not set - -# -# Installation Options -# -# CONFIG_INSTALL_NO_USR is not set -CONFIG_INSTALL_APPLET_SYMLINKS=y -# CONFIG_INSTALL_APPLET_HARDLINKS is not set -# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set -# CONFIG_INSTALL_APPLET_DONT is not set -# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set -# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set -# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set -CONFIG_PREFIX="./_install" - -# -# Busybox Library Tuning -# -CONFIG_PASSWORD_MINLEN=6 -CONFIG_MD5_SIZE_VS_SPEED=2 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -CONFIG_FEATURE_EDITING=y -CONFIG_FEATURE_EDITING_MAX_LEN=1024 -CONFIG_FEATURE_EDITING_FANCY_KEYS=y -# CONFIG_FEATURE_EDITING_VI is not set -CONFIG_FEATURE_EDITING_HISTORY=15 -CONFIG_FEATURE_EDITING_SAVEHISTORY=y -CONFIG_FEATURE_TAB_COMPLETION=y -CONFIG_FEATURE_USERNAME_COMPLETION=y -CONFIG_FEATURE_EDITING_FANCY_PROMPT=y -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_MONOTONIC_SYSCALL=y -CONFIG_IOCTL_HEX2STR_ERROR=y - -# -# Applets -# - -# -# Archival Utilities -# -CONFIG_AR=y -# CONFIG_FEATURE_AR_LONG_FILENAMES is not set -CONFIG_BUNZIP2=y -# CONFIG_BZIP2 is not set -CONFIG_CPIO=y -# CONFIG_DPKG is not set -# CONFIG_DPKG_DEB is not set -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set -CONFIG_GUNZIP=y -# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set -CONFIG_GZIP=y -# CONFIG_RPM2CPIO is not set -# CONFIG_RPM is not set -# CONFIG_FEATURE_RPM_BZ2 is not set -CONFIG_TAR=y -CONFIG_FEATURE_TAR_CREATE=y -CONFIG_FEATURE_TAR_BZIP2=y -# CONFIG_FEATURE_TAR_LZMA is not set -CONFIG_FEATURE_TAR_FROM=y -CONFIG_FEATURE_TAR_GZIP=y -# CONFIG_FEATURE_TAR_COMPRESS is not set -# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set -# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set -CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set -# CONFIG_UNCOMPRESS is not set -# CONFIG_UNLZMA is not set -# CONFIG_FEATURE_LZMA_FAST is not set -CONFIG_UNZIP=y - -# -# Common options for cpio and tar -# -# CONFIG_FEATURE_UNARCHIVE_TAPE is not set -# CONFIG_FEATURE_DEB_TAR_GZ is not set -# CONFIG_FEATURE_DEB_TAR_BZ2 is not set -# CONFIG_FEATURE_DEB_TAR_LZMA is not set - -# -# Coreutils -# -CONFIG_BASENAME=y -# CONFIG_CAL is not set -CONFIG_CAT=y -# CONFIG_CATV is not set -CONFIG_CHGRP=y -CONFIG_CHMOD=y -CONFIG_CHOWN=y -CONFIG_CHROOT=y -# CONFIG_CKSUM is not set -# CONFIG_COMM is not set -CONFIG_CP=y -CONFIG_CUT=y -CONFIG_DATE=y -# CONFIG_FEATURE_DATE_ISOFMT is not set -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -# CONFIG_FEATURE_DD_IBS_OBS is not set -CONFIG_DF=y -# CONFIG_FEATURE_DF_INODE is not set -CONFIG_DIRNAME=y -# CONFIG_DOS2UNIX is not set -# CONFIG_UNIX2DOS is not set -CONFIG_DU=y -CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y -CONFIG_ECHO=y -CONFIG_FEATURE_FANCY_ECHO=y -CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y -# CONFIG_EXPAND is not set -# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set -CONFIG_EXPR=y -# CONFIG_EXPR_MATH_SUPPORT_64 is not set -CONFIG_FALSE=y -# CONFIG_FOLD is not set -CONFIG_HEAD=y -# CONFIG_FEATURE_FANCY_HEAD is not set -# CONFIG_HOSTID is not set -CONFIG_ID=y -# CONFIG_INSTALL is not set -# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set -# CONFIG_LENGTH is not set -CONFIG_LN=y -CONFIG_LOGNAME=y -CONFIG_LS=y -CONFIG_FEATURE_LS_FILETYPES=y -CONFIG_FEATURE_LS_FOLLOWLINKS=y -CONFIG_FEATURE_LS_RECURSIVE=y -CONFIG_FEATURE_LS_SORTFILES=y -CONFIG_FEATURE_LS_TIMESTAMPS=y -CONFIG_FEATURE_LS_USERNAME=y -CONFIG_FEATURE_LS_COLOR=y -# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set -CONFIG_MD5SUM=y -CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y -CONFIG_MKFIFO=y -CONFIG_MKNOD=y -CONFIG_MV=y -# CONFIG_FEATURE_MV_LONG_OPTIONS is not set -# CONFIG_NICE is not set -CONFIG_NOHUP=y -CONFIG_OD=y -# CONFIG_PRINTENV is not set -CONFIG_PRINTF=y -CONFIG_PWD=y -CONFIG_READLINK=y -CONFIG_FEATURE_READLINK_FOLLOW=y -CONFIG_REALPATH=y -CONFIG_RM=y -CONFIG_RMDIR=y -CONFIG_SEQ=y -# CONFIG_SHA1SUM is not set -CONFIG_SLEEP=y -CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_SORT=y -CONFIG_FEATURE_SORT_BIG=y -# CONFIG_SPLIT is not set -# CONFIG_FEATURE_SPLIT_FANCY is not set -# CONFIG_STAT is not set -# CONFIG_FEATURE_STAT_FORMAT is not set -CONFIG_STTY=y -# CONFIG_SUM is not set -CONFIG_SYNC=y -CONFIG_TAIL=y -CONFIG_FEATURE_FANCY_TAIL=y -CONFIG_TEE=y -# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set -CONFIG_TEST=y -# CONFIG_FEATURE_TEST_64 is not set -CONFIG_TOUCH=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -# CONFIG_FEATURE_TR_EQUIV is not set -CONFIG_TRUE=y -CONFIG_TTY=y -CONFIG_UNAME=y -# CONFIG_UNEXPAND is not set -# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set -CONFIG_UNIQ=y -CONFIG_USLEEP=y -# CONFIG_UUDECODE is not set -# CONFIG_UUENCODE is not set -CONFIG_WC=y -# CONFIG_FEATURE_WC_LARGE is not set -CONFIG_WHO=y -CONFIG_WHOAMI=y -CONFIG_YES=y - -# -# Common options for cp and mv -# -# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set - -# -# Common options for ls, more and telnet -# -CONFIG_FEATURE_AUTOWIDTH=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum -# -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - -# -# Console Utilities -# -CONFIG_CHVT=y -CONFIG_CLEAR=y -CONFIG_DEALLOCVT=y -CONFIG_DUMPKMAP=y -# CONFIG_KBD_MODE is not set -CONFIG_LOADFONT=y -CONFIG_LOADKMAP=y -CONFIG_OPENVT=y -CONFIG_RESET=y -# CONFIG_RESIZE is not set -# CONFIG_FEATURE_RESIZE_PRINT is not set -CONFIG_SETCONSOLE=y -# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -# CONFIG_SETKEYCODES is not set -# CONFIG_SETLOGCONS is not set - -# -# Debian Utilities -# -CONFIG_MKTEMP=y -# CONFIG_PIPE_PROGRESS is not set -CONFIG_RUN_PARTS=y -CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y -# CONFIG_FEATURE_RUN_PARTS_FANCY is not set -CONFIG_START_STOP_DAEMON=y -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y -CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y -CONFIG_WHICH=y - -# -# Editors -# -CONFIG_AWK=y -CONFIG_FEATURE_AWK_MATH=y -CONFIG_CMP=y -CONFIG_DIFF=y -CONFIG_FEATURE_DIFF_BINARY=y -CONFIG_FEATURE_DIFF_DIR=y -# CONFIG_FEATURE_DIFF_MINIMAL is not set -# CONFIG_ED is not set -CONFIG_PATCH=y -CONFIG_SED=y -CONFIG_VI=y -CONFIG_FEATURE_VI_MAX_LEN=1024 -CONFIG_FEATURE_VI_8BIT=y -CONFIG_FEATURE_VI_COLON=y -CONFIG_FEATURE_VI_YANKMARK=y -CONFIG_FEATURE_VI_SEARCH=y -CONFIG_FEATURE_VI_USE_SIGNALS=y -# CONFIG_FEATURE_VI_DOT_CMD is not set -# CONFIG_FEATURE_VI_READONLY is not set -# CONFIG_FEATURE_VI_SETOPTS is not set -# CONFIG_FEATURE_VI_SET is not set -CONFIG_FEATURE_VI_WIN_RESIZE=y -CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y -CONFIG_FEATURE_ALLOW_EXEC=y - -# -# Finding Utilities -# -CONFIG_FIND=y -CONFIG_FEATURE_FIND_PRINT0=y -CONFIG_FEATURE_FIND_MTIME=y -CONFIG_FEATURE_FIND_MMIN=y -CONFIG_FEATURE_FIND_PERM=y -CONFIG_FEATURE_FIND_TYPE=y -CONFIG_FEATURE_FIND_XDEV=y -CONFIG_FEATURE_FIND_MAXDEPTH=y -CONFIG_FEATURE_FIND_NEWER=y -# CONFIG_FEATURE_FIND_INUM is not set -CONFIG_FEATURE_FIND_EXEC=y -CONFIG_FEATURE_FIND_USER=y -CONFIG_FEATURE_FIND_GROUP=y -CONFIG_FEATURE_FIND_NOT=y -CONFIG_FEATURE_FIND_DEPTH=y -CONFIG_FEATURE_FIND_PAREN=y -CONFIG_FEATURE_FIND_SIZE=y -CONFIG_FEATURE_FIND_PRUNE=y -# CONFIG_FEATURE_FIND_DELETE is not set -CONFIG_FEATURE_FIND_PATH=y -CONFIG_FEATURE_FIND_REGEX=y -# CONFIG_FEATURE_FIND_CONTEXT is not set -CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y -CONFIG_FEATURE_GREP_CONTEXT=y -CONFIG_XARGS=y -# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set -# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set -# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set -# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set - -# -# Init Utilities -# -# CONFIG_INIT is not set -# CONFIG_DEBUG_INIT is not set -# CONFIG_FEATURE_USE_INITTAB is not set -# CONFIG_FEATURE_INIT_SCTTY is not set -# CONFIG_FEATURE_INIT_SYSLOG is not set -# CONFIG_FEATURE_EXTRA_QUIET is not set -# CONFIG_FEATURE_INIT_COREDUMPS is not set -# CONFIG_FEATURE_INITRD is not set -# CONFIG_HALT is not set -# CONFIG_MESG is not set - -# -# Login/Password Management Utilities -# -# CONFIG_FEATURE_SHADOWPASSWDS is not set -# CONFIG_USE_BB_SHADOW is not set -# CONFIG_USE_BB_PWD_GRP is not set -# CONFIG_ADDGROUP is not set -# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set -# CONFIG_DELGROUP is not set -# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set -# CONFIG_ADDUSER is not set -# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set -# CONFIG_DELUSER is not set -# CONFIG_GETTY is not set -# CONFIG_FEATURE_UTMP is not set -# CONFIG_FEATURE_WTMP is not set -# CONFIG_LOGIN is not set -# CONFIG_PAM is not set -# CONFIG_LOGIN_SCRIPTS is not set -# CONFIG_FEATURE_NOLOGIN is not set -# CONFIG_FEATURE_SECURETTY is not set -# CONFIG_PASSWD is not set -# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set -# CONFIG_CRYPTPW is not set -# CONFIG_CHPASSWD is not set -# CONFIG_SU is not set -# CONFIG_FEATURE_SU_SYSLOG is not set -# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set -# CONFIG_SULOGIN is not set -# CONFIG_VLOCK is not set - -# -# Linux Ext2 FS Progs -# -CONFIG_CHATTR=y -CONFIG_FSCK=y -# CONFIG_LSATTR is not set - -# -# Linux Module Utilities -# -CONFIG_INSMOD=y -# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set -# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set -# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set -CONFIG_RMMOD=y -CONFIG_LSMOD=y -# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set -CONFIG_MODPROBE=y -CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y -CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y - -# -# Options common to multiple modutils -# -CONFIG_FEATURE_CHECK_TAINTED_MODULE=y -# CONFIG_FEATURE_2_4_MODULES is not set -CONFIG_FEATURE_2_6_MODULES=y -# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set - -# -# Linux System Utilities -# -CONFIG_DMESG=y -CONFIG_FEATURE_DMESG_PRETTY=y -CONFIG_FBSET=y -CONFIG_FEATURE_FBSET_FANCY=y -CONFIG_FEATURE_FBSET_READMODE=y -# CONFIG_FDFLUSH is not set -# CONFIG_FDFORMAT is not set -CONFIG_FDISK=y -CONFIG_FDISK_SUPPORT_LARGE_DISKS=y -CONFIG_FEATURE_FDISK_WRITABLE=y -# CONFIG_FEATURE_AIX_LABEL is not set -# CONFIG_FEATURE_SGI_LABEL is not set -# CONFIG_FEATURE_SUN_LABEL is not set -# CONFIG_FEATURE_OSF_LABEL is not set -# CONFIG_FEATURE_FDISK_ADVANCED is not set -# CONFIG_FREERAMDISK is not set -CONFIG_FSCK_MINIX=y -CONFIG_MKFS_MINIX=y - -# -# Minix filesystem support -# -CONFIG_FEATURE_MINIX2=y -# CONFIG_GETOPT is not set -CONFIG_HEXDUMP=y -# CONFIG_HD is not set -# CONFIG_FEATURE_HEXDUMP_REVERSE is not set -CONFIG_HWCLOCK=y -CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y -CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y -# CONFIG_IPCRM is not set -# CONFIG_IPCS is not set -CONFIG_LOSETUP=y -# CONFIG_MDEV is not set -# CONFIG_FEATURE_MDEV_CONF is not set -# CONFIG_FEATURE_MDEV_EXEC is not set -# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set -CONFIG_MKSWAP=y -# CONFIG_FEATURE_MKSWAP_V0 is not set -CONFIG_MORE=y -CONFIG_FEATURE_USE_TERMIOS=y -CONFIG_MOUNT=y -# CONFIG_FEATURE_MOUNT_HELPERS is not set -CONFIG_FEATURE_MOUNT_NFS=y -# CONFIG_FEATURE_MOUNT_CIFS is not set -CONFIG_FEATURE_MOUNT_FLAGS=y -CONFIG_FEATURE_MOUNT_FSTAB=y -CONFIG_PIVOT_ROOT=y -CONFIG_RDATE=y -# CONFIG_READPROFILE is not set -# CONFIG_SETARCH is not set -CONFIG_SWAPONOFF=y -CONFIG_SWITCH_ROOT=y -CONFIG_UMOUNT=y -# CONFIG_FEATURE_UMOUNT_ALL is not set - -# -# Common options for mount/umount -# -CONFIG_FEATURE_MOUNT_LOOP=y -# CONFIG_FEATURE_MTAB_SUPPORT is not set - -# -# Miscellaneous Utilities -# -# CONFIG_ADJTIMEX is not set -# CONFIG_BBCONFIG is not set -# CONFIG_CHRT is not set -# CONFIG_CROND is not set -# CONFIG_DEBUG_CROND_OPTION is not set -# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -# CONFIG_CRONTAB is not set -CONFIG_DC=y -# CONFIG_DEVFSD is not set -# CONFIG_DEVFSD_MODLOAD is not set -# CONFIG_DEVFSD_FG_NP is not set -# CONFIG_DEVFSD_VERBOSE is not set -# CONFIG_FEATURE_DEVFS is not set -# CONFIG_EJECT is not set -# CONFIG_LAST is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_MAXLINES=9999999 -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y -# CONFIG_FEATURE_LESS_FLAGCS is not set -# CONFIG_FEATURE_LESS_MARKS is not set -# CONFIG_FEATURE_LESS_REGEXP is not set -# CONFIG_HDPARM is not set -# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set -# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set -# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set -# CONFIG_MAKEDEVS is not set -# CONFIG_FEATURE_MAKEDEVS_LEAF is not set -# CONFIG_FEATURE_MAKEDEVS_TABLE is not set -# CONFIG_MICROCOM is not set -# CONFIG_MOUNTPOINT is not set -# CONFIG_MT is not set -# CONFIG_RAIDAUTORUN is not set -# CONFIG_READAHEAD is not set -# CONFIG_RUNLEVEL is not set -# CONFIG_RX is not set -CONFIG_STRINGS=y -# CONFIG_SETSID is not set -# CONFIG_TASKSET is not set -# CONFIG_FEATURE_TASKSET_FANCY is not set -CONFIG_TIME=y -# CONFIG_TTYSIZE is not set -# CONFIG_WATCHDOG is not set - -# -# Networking Utilities -# -CONFIG_FEATURE_IPV6=y -CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y -# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set -# CONFIG_ARP is not set -# CONFIG_ARPING is not set -# CONFIG_DNSD is not set -# CONFIG_ETHER_WAKE is not set -# CONFIG_FAKEIDENTD is not set -# CONFIG_FTPGET is not set -# CONFIG_FTPPUT is not set -# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set -CONFIG_HOSTNAME=y -# CONFIG_HTTPD is not set -# CONFIG_FEATURE_HTTPD_RANGES is not set -# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set -# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set -# CONFIG_FEATURE_HTTPD_SETUID is not set -# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set -# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set -# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set -# CONFIG_FEATURE_HTTPD_CGI is not set -# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set -# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set -# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set -# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set -# CONFIG_FEATURE_HTTPD_PROXY is not set -CONFIG_IFCONFIG=y -CONFIG_FEATURE_IFCONFIG_STATUS=y -# CONFIG_FEATURE_IFCONFIG_SLIP is not set -# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set -CONFIG_FEATURE_IFCONFIG_HW=y -# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set -CONFIG_IFUPDOWN=y -CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" -# CONFIG_FEATURE_IFUPDOWN_IP is not set -# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y -CONFIG_FEATURE_IFUPDOWN_IPV4=y -CONFIG_FEATURE_IFUPDOWN_IPV6=y -CONFIG_FEATURE_IFUPDOWN_MAPPING=y -# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set -# CONFIG_INETD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set -# CONFIG_FEATURE_INETD_RPC is not set -CONFIG_IP=y -CONFIG_FEATURE_IP_ADDRESS=y -CONFIG_FEATURE_IP_LINK=y -CONFIG_FEATURE_IP_ROUTE=y -CONFIG_FEATURE_IP_TUNNEL=y -# CONFIG_FEATURE_IP_RULE is not set -# CONFIG_FEATURE_IP_SHORT_FORMS is not set -# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set -# CONFIG_IPADDR is not set -# CONFIG_IPLINK is not set -# CONFIG_IPROUTE is not set -# CONFIG_IPTUNNEL is not set -# CONFIG_IPRULE is not set -# CONFIG_IPCALC is not set -# CONFIG_FEATURE_IPCALC_FANCY is not set -# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set -# CONFIG_NAMEIF is not set -# CONFIG_FEATURE_NAMEIF_EXTENDED is not set -CONFIG_NC=y -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y -CONFIG_NETSTAT=y -# CONFIG_FEATURE_NETSTAT_WIDE is not set -CONFIG_NSLOOKUP=y -CONFIG_PING=y -CONFIG_PING6=y -# CONFIG_PSCAN is not set -CONFIG_FEATURE_FANCY_PING=y -CONFIG_ROUTE=y -# CONFIG_SLATTACH is not set -CONFIG_TELNET=y -# CONFIG_FEATURE_TELNET_TTYPE is not set -CONFIG_FEATURE_TELNET_AUTOLOGIN=y -CONFIG_TELNETD=y -# CONFIG_FEATURE_TELNETD_STANDALONE is not set -CONFIG_TFTP=y -CONFIG_FEATURE_TFTP_GET=y -CONFIG_FEATURE_TFTP_PUT=y -# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set -# CONFIG_DEBUG_TFTP is not set -CONFIG_TRACEROUTE=y -# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set -# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set -# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set -CONFIG_APP_UDHCPD=y -# CONFIG_APP_DHCPRELAY is not set -CONFIG_APP_DUMPLEASES=y -# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set -CONFIG_APP_UDHCPC=y -CONFIG_FEATURE_UDHCPC_ARPING=y -# CONFIG_FEATURE_UDHCP_DEBUG is not set -# CONFIG_FEATURE_RFC3397 is not set -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 -# CONFIG_VCONFIG is not set -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -# CONFIG_ZCIP is not set - -# -# Process Utilities -# -CONFIG_FREE=y -CONFIG_FUSER=y -CONFIG_KILL=y -CONFIG_KILLALL=y -# CONFIG_KILLALL5 is not set -# CONFIG_NMETER is not set -# CONFIG_PGREP is not set -CONFIG_PIDOF=y -# CONFIG_FEATURE_PIDOF_SINGLE is not set -# CONFIG_FEATURE_PIDOF_OMIT is not set -# CONFIG_PKILL is not set -CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y -CONFIG_RENICE=y -CONFIG_BB_SYSCTL=y -CONFIG_TOP=y -CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y -CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y -# CONFIG_FEATURE_TOP_DECIMALS is not set -# CONFIG_FEATURE_TOPMEM is not set -CONFIG_UPTIME=y -CONFIG_WATCH=y - -# -# Shells -# -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_MSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -CONFIG_ASH=y - -# -# Ash Shell Options -# -CONFIG_ASH_JOB_CONTROL=y -CONFIG_ASH_READ_NCHARS=y -CONFIG_ASH_READ_TIMEOUT=y -CONFIG_ASH_ALIAS=y -CONFIG_ASH_MATH_SUPPORT=y -# CONFIG_ASH_MATH_SUPPORT_64 is not set -CONFIG_ASH_GETOPTS=y -# CONFIG_ASH_BUILTIN_ECHO is not set -CONFIG_ASH_BUILTIN_TEST=y -# CONFIG_ASH_CMDCMD is not set -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y -# CONFIG_ASH_RANDOM_SUPPORT is not set -CONFIG_ASH_EXPAND_PRMT=y -# CONFIG_HUSH is not set -# CONFIG_HUSH_HELP is not set -# CONFIG_HUSH_INTERACTIVE is not set -# CONFIG_HUSH_JOB is not set -# CONFIG_HUSH_TICK is not set -# CONFIG_HUSH_IF is not set -# CONFIG_HUSH_LOOPS is not set -# CONFIG_LASH is not set -# CONFIG_MSH is not set - -# -# Bourne Shell Options -# -CONFIG_FEATURE_SH_EXTRA_QUIET=y -# CONFIG_FEATURE_SH_STANDALONE is not set -# CONFIG_CTTYHACK is not set - -# -# System Logging Utilities -# -CONFIG_SYSLOGD=y -CONFIG_FEATURE_ROTATE_LOGFILE=y -CONFIG_FEATURE_REMOTE_LOG=y -CONFIG_FEATURE_IPC_SYSLOG=y -CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 -CONFIG_LOGREAD=y -CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y -CONFIG_KLOGD=y -CONFIG_LOGGER=y - -# -# Runit Utilities -# -# CONFIG_RUNSV is not set -# CONFIG_RUNSVDIR is not set -# CONFIG_SV is not set -# CONFIG_SVLOGD is not set -# CONFIG_CHPST is not set -# CONFIG_SETUIDGID is not set -# CONFIG_ENVUIDGID is not set -# CONFIG_ENVDIR is not set -# CONFIG_SOFTLIMIT is not set -# CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set -# CONFIG_GETENFORCE is not set -# CONFIG_GETSEBOOL is not set -# CONFIG_LOAD_POLICY is not set -# CONFIG_MATCHPATHCON is not set -# CONFIG_RESTORECON is not set -# CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set -# CONFIG_SELINUXENABLED is not set -# CONFIG_SETENFORCE is not set -# CONFIG_SETFILES is not set -# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set -# CONFIG_SETSEBOOL is not set -# CONFIG_SESTATUS is not set - -# -# ipsvd utilities -# -# CONFIG_TCPSVD is not set -# CONFIG_UDPSVD is not set diff --git a/packages/busybox/busybox-static-1.11.3/fdisk_lineedit_segfault.patch b/packages/busybox/busybox-static-1.11.3/fdisk_lineedit_segfault.patch deleted file mode 100644 index 633153f1ce..0000000000 --- a/packages/busybox/busybox-static-1.11.3/fdisk_lineedit_segfault.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- old/libbb/lineedit.c 2008/09/27 01:28:56 23530 -+++ new/libbb/lineedit.c 2008/11/02 00:41:05 23898 -@@ -1412,7 +1412,8 @@ - if ((state->flags & SAVE_HISTORY) && state->hist_file) - load_history(state->hist_file); - #endif -- state->cur_history = state->cnt_history; -+ if (state->flags & DO_HISTORY) -+ state->cur_history = state->cnt_history; - - /* prepare before init handlers */ - cmdedit_y = 0; /* quasireal y, not true if line > xt*yt */ diff --git a/packages/busybox/busybox-static-1.11.3/slugos/defconfig b/packages/busybox/busybox-static-1.11.3/slugos/defconfig deleted file mode 100644 index 04f4c230e4..0000000000 --- a/packages/busybox/busybox-static-1.11.3/slugos/defconfig +++ /dev/null @@ -1,851 +0,0 @@ -# -# Automatically generated make config: don't edit -# Busybox version: 1.11.1 -# Thu Aug 21 23:08:10 2008 -# -CONFIG_HAVE_DOT_CONFIG=y - -# -# Busybox Settings -# - -# -# General Configuration -# -# CONFIG_DESKTOP is not set -# CONFIG_FEATURE_ASSUME_UNICODE is not set -CONFIG_FEATURE_BUFFERS_USE_MALLOC=y -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set -CONFIG_SHOW_USAGE=y -CONFIG_FEATURE_VERBOSE_USAGE=y -CONFIG_FEATURE_COMPRESS_USAGE=y -# CONFIG_FEATURE_INSTALLER is not set -CONFIG_LOCALE_SUPPORT=y -CONFIG_GETOPT_LONG=y -CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set -CONFIG_FEATURE_PIDFILE=y -CONFIG_FEATURE_SUID=y -CONFIG_FEATURE_SUID_CONFIG=y -# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set -# CONFIG_SELINUX is not set -# CONFIG_FEATURE_PREFER_APPLETS is not set -CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" -CONFIG_FEATURE_SYSLOG=y -CONFIG_FEATURE_HAVE_RPC=y - -# -# Build Options -# -CONFIG_STATIC=y -# CONFIG_PIE is not set -# CONFIG_NOMMU is not set -# CONFIG_BUILD_LIBBUSYBOX is not set -# CONFIG_FEATURE_INDIVIDUAL is not set -# CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y -CONFIG_CROSS_COMPILER_PREFIX="" - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_WERROR is not set -CONFIG_NO_DEBUG_LIB=y -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set -# CONFIG_INCLUDE_SUSv2 is not set - -# -# Installation Options -# -# CONFIG_INSTALL_NO_USR is not set -CONFIG_INSTALL_APPLET_SYMLINKS=y -# CONFIG_INSTALL_APPLET_HARDLINKS is not set -# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set -# CONFIG_INSTALL_APPLET_DONT is not set -# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set -# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set -# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set -CONFIG_PREFIX="./_install" - -# -# Busybox Library Tuning -# -CONFIG_PASSWORD_MINLEN=6 -CONFIG_MD5_SIZE_VS_SPEED=1 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -CONFIG_FEATURE_EDITING=y -CONFIG_FEATURE_EDITING_MAX_LEN=1024 -# CONFIG_FEATURE_EDITING_VI is not set -CONFIG_FEATURE_EDITING_HISTORY=15 -CONFIG_FEATURE_EDITING_SAVEHISTORY=y -CONFIG_FEATURE_TAB_COMPLETION=y -CONFIG_FEATURE_USERNAME_COMPLETION=y -CONFIG_FEATURE_EDITING_FANCY_PROMPT=y -CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_MONOTONIC_SYSCALL=y -CONFIG_IOCTL_HEX2STR_ERROR=y -# CONFIG_FEATURE_HWIB is not set - -# -# Applets -# - -# -# Archival Utilities -# -CONFIG_AR=y -CONFIG_FEATURE_AR_LONG_FILENAMES=y -CONFIG_BUNZIP2=y -CONFIG_BZIP2=y -# CONFIG_CPIO is not set -# CONFIG_FEATURE_CPIO_O is not set -# CONFIG_DPKG is not set -# CONFIG_DPKG_DEB is not set -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set -CONFIG_GUNZIP=y -CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y -CONFIG_GZIP=y -# CONFIG_RPM2CPIO is not set -# CONFIG_RPM is not set -# CONFIG_FEATURE_RPM_BZ2 is not set -CONFIG_TAR=y -CONFIG_FEATURE_TAR_CREATE=y -CONFIG_FEATURE_TAR_GZIP=y -CONFIG_FEATURE_TAR_BZIP2=y -CONFIG_FEATURE_TAR_LZMA=y -CONFIG_FEATURE_TAR_COMPRESS=y -CONFIG_FEATURE_TAR_AUTODETECT=y -CONFIG_FEATURE_TAR_FROM=y -# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set -# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set -CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -CONFIG_FEATURE_TAR_LONG_OPTIONS=y -CONFIG_FEATURE_TAR_UNAME_GNAME=y -CONFIG_UNCOMPRESS=y -CONFIG_UNLZMA=y -# CONFIG_FEATURE_LZMA_FAST is not set -CONFIG_UNZIP=y - -# -# Common options for cpio and tar -# -# CONFIG_FEATURE_DEB_TAR_GZ is not set -# CONFIG_FEATURE_DEB_TAR_BZ2 is not set -# CONFIG_FEATURE_DEB_TAR_LZMA is not set - -# -# Coreutils -# -CONFIG_BASENAME=y -# CONFIG_CAL is not set -CONFIG_CAT=y -# CONFIG_CATV is not set -CONFIG_CHGRP=y -CONFIG_CHMOD=y -CONFIG_CHOWN=y -CONFIG_CHROOT=y -# CONFIG_CKSUM is not set -# CONFIG_COMM is not set -CONFIG_CP=y -CONFIG_CUT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -CONFIG_FEATURE_DD_IBS_OBS=y -CONFIG_DF=y -CONFIG_FEATURE_DF_INODE=y -CONFIG_DIRNAME=y -CONFIG_DOS2UNIX=y -CONFIG_UNIX2DOS=y -CONFIG_DU=y -CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y -CONFIG_ECHO=y -CONFIG_FEATURE_FANCY_ECHO=y -CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y -# CONFIG_EXPAND is not set -# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set -CONFIG_EXPR=y -# CONFIG_EXPR_MATH_SUPPORT_64 is not set -CONFIG_FALSE=y -# CONFIG_FOLD is not set -CONFIG_HEAD=y -CONFIG_FEATURE_FANCY_HEAD=y -# CONFIG_HOSTID is not set -CONFIG_ID=y -# CONFIG_INSTALL is not set -# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set -CONFIG_LENGTH=y -CONFIG_LN=y -CONFIG_LOGNAME=y -CONFIG_LS=y -CONFIG_FEATURE_LS_FILETYPES=y -CONFIG_FEATURE_LS_FOLLOWLINKS=y -CONFIG_FEATURE_LS_RECURSIVE=y -CONFIG_FEATURE_LS_SORTFILES=y -CONFIG_FEATURE_LS_TIMESTAMPS=y -CONFIG_FEATURE_LS_USERNAME=y -CONFIG_FEATURE_LS_COLOR=y -# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set -CONFIG_MD5SUM=y -CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y -CONFIG_MKFIFO=y -CONFIG_MKNOD=y -CONFIG_MV=y -CONFIG_FEATURE_MV_LONG_OPTIONS=y -CONFIG_NICE=y -CONFIG_NOHUP=y -CONFIG_OD=y -CONFIG_PRINTENV=y -CONFIG_PRINTF=y -CONFIG_PWD=y -CONFIG_READLINK=y -CONFIG_FEATURE_READLINK_FOLLOW=y -CONFIG_REALPATH=y -CONFIG_RM=y -CONFIG_RMDIR=y -CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y -CONFIG_SEQ=y -CONFIG_SHA1SUM=y -CONFIG_SLEEP=y -CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_SORT=y -CONFIG_FEATURE_SORT_BIG=y -CONFIG_SPLIT=y -CONFIG_FEATURE_SPLIT_FANCY=y -# CONFIG_STAT is not set -# CONFIG_FEATURE_STAT_FORMAT is not set -CONFIG_STTY=y -CONFIG_SUM=y -CONFIG_SYNC=y -# CONFIG_TAC is not set -CONFIG_TAIL=y -CONFIG_FEATURE_FANCY_TAIL=y -CONFIG_TEE=y -CONFIG_FEATURE_TEE_USE_BLOCK_IO=y -CONFIG_TEST=y -# CONFIG_FEATURE_TEST_64 is not set -CONFIG_TOUCH=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=y -CONFIG_TRUE=y -CONFIG_TTY=y -CONFIG_UNAME=y -# CONFIG_UNEXPAND is not set -# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set -CONFIG_UNIQ=y -CONFIG_USLEEP=y -# CONFIG_UUDECODE is not set -# CONFIG_UUENCODE is not set -CONFIG_WC=y -# CONFIG_FEATURE_WC_LARGE is not set -CONFIG_WHO=y -CONFIG_WHOAMI=y -CONFIG_YES=y - -# -# Common options for cp and mv -# -CONFIG_FEATURE_PRESERVE_HARDLINKS=y - -# -# Common options for ls, more and telnet -# -CONFIG_FEATURE_AUTOWIDTH=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum -# -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - -# -# Console Utilities -# -CONFIG_CHVT=y -CONFIG_CLEAR=y -CONFIG_DEALLOCVT=y -CONFIG_DUMPKMAP=y -CONFIG_KBD_MODE=y -CONFIG_LOADFONT=y -CONFIG_LOADKMAP=y -CONFIG_OPENVT=y -CONFIG_RESET=y -CONFIG_RESIZE=y -CONFIG_FEATURE_RESIZE_PRINT=y -CONFIG_SETCONSOLE=y -CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y -CONFIG_SETKEYCODES=y -CONFIG_SETLOGCONS=y - -# -# Debian Utilities -# -CONFIG_MKTEMP=y -# CONFIG_PIPE_PROGRESS is not set -CONFIG_RUN_PARTS=y -CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y -CONFIG_FEATURE_RUN_PARTS_FANCY=y -CONFIG_START_STOP_DAEMON=y -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y -CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y -CONFIG_WHICH=y - -# -# Editors -# -CONFIG_AWK=y -CONFIG_FEATURE_AWK_MATH=y -CONFIG_CMP=y -CONFIG_DIFF=y -CONFIG_FEATURE_DIFF_BINARY=y -CONFIG_FEATURE_DIFF_DIR=y -CONFIG_FEATURE_DIFF_MINIMAL=y -# CONFIG_ED is not set -CONFIG_PATCH=y -CONFIG_SED=y -CONFIG_VI=y -CONFIG_FEATURE_VI_MAX_LEN=1024 -CONFIG_FEATURE_VI_8BIT=y -CONFIG_FEATURE_VI_COLON=y -CONFIG_FEATURE_VI_YANKMARK=y -CONFIG_FEATURE_VI_SEARCH=y -CONFIG_FEATURE_VI_USE_SIGNALS=y -# CONFIG_FEATURE_VI_DOT_CMD is not set -# CONFIG_FEATURE_VI_READONLY is not set -# CONFIG_FEATURE_VI_SETOPTS is not set -# CONFIG_FEATURE_VI_SET is not set -CONFIG_FEATURE_VI_WIN_RESIZE=y -CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y -CONFIG_FEATURE_ALLOW_EXEC=y - -# -# Finding Utilities -# -CONFIG_FIND=y -CONFIG_FEATURE_FIND_PRINT0=y -CONFIG_FEATURE_FIND_MTIME=y -CONFIG_FEATURE_FIND_MMIN=y -CONFIG_FEATURE_FIND_PERM=y -CONFIG_FEATURE_FIND_TYPE=y -CONFIG_FEATURE_FIND_XDEV=y -CONFIG_FEATURE_FIND_MAXDEPTH=y -CONFIG_FEATURE_FIND_NEWER=y -CONFIG_FEATURE_FIND_INUM=y -CONFIG_FEATURE_FIND_EXEC=y -CONFIG_FEATURE_FIND_USER=y -CONFIG_FEATURE_FIND_GROUP=y -CONFIG_FEATURE_FIND_NOT=y -CONFIG_FEATURE_FIND_DEPTH=y -CONFIG_FEATURE_FIND_PAREN=y -CONFIG_FEATURE_FIND_SIZE=y -CONFIG_FEATURE_FIND_PRUNE=y -CONFIG_FEATURE_FIND_DELETE=y -CONFIG_FEATURE_FIND_PATH=y -CONFIG_FEATURE_FIND_REGEX=y -# CONFIG_FEATURE_FIND_CONTEXT is not set -CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y -CONFIG_FEATURE_GREP_CONTEXT=y -CONFIG_XARGS=y -CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y -CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y -CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y -CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y - -# -# Init Utilities -# -# CONFIG_INIT is not set -# CONFIG_DEBUG_INIT is not set -# CONFIG_FEATURE_USE_INITTAB is not set -# CONFIG_FEATURE_KILL_REMOVED is not set -CONFIG_FEATURE_KILL_DELAY=0 -# CONFIG_FEATURE_INIT_SCTTY is not set -# CONFIG_FEATURE_INIT_SYSLOG is not set -# CONFIG_FEATURE_EXTRA_QUIET is not set -# CONFIG_FEATURE_INIT_COREDUMPS is not set -# CONFIG_FEATURE_INITRD is not set -# CONFIG_HALT is not set -# CONFIG_MESG is not set - -# -# Login/Password Management Utilities -# -# CONFIG_FEATURE_SHADOWPASSWDS is not set -CONFIG_USE_BB_PWD_GRP=y -# CONFIG_USE_BB_SHADOW is not set -CONFIG_USE_BB_CRYPT=y -CONFIG_ADDGROUP=y -CONFIG_FEATURE_ADDUSER_TO_GROUP=y -CONFIG_DELGROUP=y -CONFIG_FEATURE_DEL_USER_FROM_GROUP=y -CONFIG_FEATURE_CHECK_NAMES=y -CONFIG_ADDUSER=y -CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y -CONFIG_DELUSER=y -CONFIG_GETTY=y -CONFIG_FEATURE_UTMP=y -CONFIG_FEATURE_WTMP=y -CONFIG_LOGIN=y -# CONFIG_PAM is not set -CONFIG_LOGIN_SCRIPTS=y -CONFIG_FEATURE_NOLOGIN=y -CONFIG_FEATURE_SECURETTY=y -CONFIG_PASSWD=y -CONFIG_FEATURE_PASSWD_WEAK_CHECK=y -CONFIG_CRYPTPW=y -CONFIG_CHPASSWD=y -CONFIG_SU=y -CONFIG_FEATURE_SU_SYSLOG=y -CONFIG_FEATURE_SU_CHECKS_SHELLS=y -CONFIG_SULOGIN=y -# CONFIG_VLOCK is not set - -# -# Linux Ext2 FS Progs -# -# CONFIG_CHATTR is not set -# CONFIG_FSCK is not set -# CONFIG_LSATTR is not set - -# -# Linux Module Utilities -# -CONFIG_DEPMOD=y -# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set -CONFIG_FEATURE_DEPMOD_ALIAS=y -CONFIG_INSMOD=y -# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set -# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set -# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set -CONFIG_RMMOD=y -CONFIG_LSMOD=y -CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y -CONFIG_MODPROBE=y -CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y -CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y -CONFIG_FEATURE_MODPROBE_BLACKLIST=y - -# -# Options common to multiple modutils -# -CONFIG_FEATURE_CHECK_TAINTED_MODULE=y -# CONFIG_FEATURE_2_4_MODULES is not set -CONFIG_FEATURE_2_6_MODULES=y -CONFIG_DEFAULT_MODULES_DIR="/lib/modules" -CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" -# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set - -# -# Linux System Utilities -# -CONFIG_DMESG=y -CONFIG_FEATURE_DMESG_PRETTY=y -# CONFIG_FBSET is not set -# CONFIG_FEATURE_FBSET_FANCY is not set -# CONFIG_FEATURE_FBSET_READMODE is not set -# CONFIG_FDFLUSH is not set -# CONFIG_FDFORMAT is not set -CONFIG_FDISK=y -CONFIG_FDISK_SUPPORT_LARGE_DISKS=y -CONFIG_FEATURE_FDISK_WRITABLE=y -# CONFIG_FEATURE_AIX_LABEL is not set -# CONFIG_FEATURE_SGI_LABEL is not set -# CONFIG_FEATURE_SUN_LABEL is not set -# CONFIG_FEATURE_OSF_LABEL is not set -CONFIG_FEATURE_FDISK_ADVANCED=y -CONFIG_FINDFS=y -CONFIG_FREERAMDISK=y -# CONFIG_FSCK_MINIX is not set -# CONFIG_MKFS_MINIX is not set -# CONFIG_FEATURE_MINIX2 is not set -CONFIG_GETOPT=y -CONFIG_HEXDUMP=y -CONFIG_FEATURE_HEXDUMP_REVERSE=y -CONFIG_HD=y -CONFIG_HWCLOCK=y -CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y -CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y -# CONFIG_IPCRM is not set -# CONFIG_IPCS is not set -CONFIG_LOSETUP=y -CONFIG_MDEV=y -CONFIG_FEATURE_MDEV_CONF=y -CONFIG_FEATURE_MDEV_RENAME=y -CONFIG_FEATURE_MDEV_RENAME_REGEXP=y -CONFIG_FEATURE_MDEV_EXEC=y -CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y -CONFIG_MKSWAP=y -# CONFIG_FEATURE_MKSWAP_V0 is not set -CONFIG_MORE=y -CONFIG_FEATURE_USE_TERMIOS=y -CONFIG_VOLUMEID=y -CONFIG_FEATURE_VOLUMEID_EXT=y -# CONFIG_FEATURE_VOLUMEID_REISERFS is not set -CONFIG_FEATURE_VOLUMEID_FAT=y -CONFIG_FEATURE_VOLUMEID_HFS=y -CONFIG_FEATURE_VOLUMEID_JFS=y -# CONFIG_FEATURE_VOLUMEID_XFS is not set -CONFIG_FEATURE_VOLUMEID_NTFS=y -CONFIG_FEATURE_VOLUMEID_ISO9660=y -CONFIG_FEATURE_VOLUMEID_UDF=y -CONFIG_FEATURE_VOLUMEID_LUKS=y -CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y -# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set -# CONFIG_FEATURE_VOLUMEID_ROMFS is not set -# CONFIG_FEATURE_VOLUMEID_SYSV is not set -# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set -CONFIG_FEATURE_VOLUMEID_LINUXRAID=y -CONFIG_MOUNT=y -CONFIG_FEATURE_MOUNT_FAKE=y -CONFIG_FEATURE_MOUNT_VERBOSE=y -CONFIG_FEATURE_MOUNT_HELPERS=y -CONFIG_FEATURE_MOUNT_LABEL=y -CONFIG_FEATURE_MOUNT_NFS=y -CONFIG_FEATURE_MOUNT_CIFS=y -CONFIG_FEATURE_MOUNT_FLAGS=y -CONFIG_FEATURE_MOUNT_FSTAB=y -CONFIG_PIVOT_ROOT=y -CONFIG_RDATE=y -# CONFIG_READPROFILE is not set -# CONFIG_RTCWAKE is not set -CONFIG_SCRIPT=y -# CONFIG_SETARCH is not set -CONFIG_SWAPONOFF=y -CONFIG_FEATURE_SWAPON_PRI=y -CONFIG_SWITCH_ROOT=y -CONFIG_UMOUNT=y -CONFIG_FEATURE_UMOUNT_ALL=y - -# -# Common options for mount/umount -# -CONFIG_FEATURE_MOUNT_LOOP=y -# CONFIG_FEATURE_MTAB_SUPPORT is not set - -# -# Miscellaneous Utilities -# -CONFIG_ADJTIMEX=y -CONFIG_BBCONFIG=y -# CONFIG_CHAT is not set -# CONFIG_FEATURE_CHAT_NOFAIL is not set -# CONFIG_FEATURE_CHAT_TTY_HIFI is not set -# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set -# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set -# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set -# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set -# CONFIG_FEATURE_CHAT_CLR_ABORT is not set -# CONFIG_CHRT is not set -CONFIG_CROND=y -CONFIG_DEBUG_CROND_OPTION=y -# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -CONFIG_CRONTAB=y -CONFIG_DC=y -# CONFIG_DEVFSD is not set -# CONFIG_DEVFSD_MODLOAD is not set -# CONFIG_DEVFSD_FG_NP is not set -# CONFIG_DEVFSD_VERBOSE is not set -# CONFIG_FEATURE_DEVFS is not set -# CONFIG_EJECT is not set -# CONFIG_FEATURE_EJECT_SCSI is not set -# CONFIG_FBSPLASH is not set -# CONFIG_INOTIFYD is not set -# CONFIG_LAST is not set -# CONFIG_FEATURE_LAST_SMALL is not set -# CONFIG_FEATURE_LAST_FANCY is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_MAXLINES=9999999 -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y -CONFIG_FEATURE_LESS_FLAGCS=y -CONFIG_FEATURE_LESS_MARKS=y -CONFIG_FEATURE_LESS_REGEXP=y -CONFIG_HDPARM=y -CONFIG_FEATURE_HDPARM_GET_IDENTITY=y -CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y -CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y -CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y -CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y -CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y -CONFIG_MAKEDEVS=y -# CONFIG_FEATURE_MAKEDEVS_LEAF is not set -CONFIG_FEATURE_MAKEDEVS_TABLE=y -# CONFIG_MAN is not set -CONFIG_MICROCOM=y -CONFIG_MOUNTPOINT=y -# CONFIG_MT is not set -CONFIG_RAIDAUTORUN=y -CONFIG_READAHEAD=y -CONFIG_RUNLEVEL=y -CONFIG_RX=y -# CONFIG_SETSID is not set -CONFIG_STRINGS=y -# CONFIG_TASKSET is not set -# CONFIG_FEATURE_TASKSET_FANCY is not set -CONFIG_TIME=y -# CONFIG_TTYSIZE is not set -# CONFIG_WATCHDOG is not set - -# -# Networking Utilities -# -CONFIG_FEATURE_IPV6=y -CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y -CONFIG_VERBOSE_RESOLUTION_ERRORS=y -CONFIG_ARP=y -CONFIG_ARPING=y -CONFIG_BRCTL=y -CONFIG_FEATURE_BRCTL_FANCY=y -CONFIG_FEATURE_BRCTL_SHOW=y -# CONFIG_DNSD is not set -# CONFIG_ETHER_WAKE is not set -# CONFIG_FAKEIDENTD is not set -# CONFIG_FTPGET is not set -# CONFIG_FTPPUT is not set -# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set -CONFIG_HOSTNAME=y -CONFIG_HTTPD=y -CONFIG_FEATURE_HTTPD_RANGES=y -CONFIG_FEATURE_HTTPD_USE_SENDFILE=y -CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP=y -CONFIG_FEATURE_HTTPD_SETUID=y -CONFIG_FEATURE_HTTPD_BASIC_AUTH=y -CONFIG_FEATURE_HTTPD_AUTH_MD5=y -CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES=y -CONFIG_FEATURE_HTTPD_CGI=y -CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y -CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y -CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y -CONFIG_FEATURE_HTTPD_ERROR_PAGES=y -CONFIG_FEATURE_HTTPD_PROXY=y -CONFIG_IFCONFIG=y -CONFIG_FEATURE_IFCONFIG_STATUS=y -# CONFIG_FEATURE_IFCONFIG_SLIP is not set -# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set -CONFIG_FEATURE_IFCONFIG_HW=y -CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y -# CONFIG_IFENSLAVE is not set -CONFIG_IFUPDOWN=y -CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" -# CONFIG_FEATURE_IFUPDOWN_IP is not set -# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y -CONFIG_FEATURE_IFUPDOWN_IPV4=y -CONFIG_FEATURE_IFUPDOWN_IPV6=y -# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set -# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set -# CONFIG_INETD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set -# CONFIG_FEATURE_INETD_RPC is not set -CONFIG_IP=y -CONFIG_FEATURE_IP_ADDRESS=y -CONFIG_FEATURE_IP_LINK=y -CONFIG_FEATURE_IP_ROUTE=y -CONFIG_FEATURE_IP_TUNNEL=y -CONFIG_FEATURE_IP_RULE=y -CONFIG_FEATURE_IP_SHORT_FORMS=y -# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set -CONFIG_IPADDR=y -CONFIG_IPLINK=y -CONFIG_IPROUTE=y -CONFIG_IPTUNNEL=y -CONFIG_IPRULE=y -CONFIG_IPCALC=y -CONFIG_FEATURE_IPCALC_FANCY=y -CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y -# CONFIG_NAMEIF is not set -# CONFIG_FEATURE_NAMEIF_EXTENDED is not set -CONFIG_NC=y -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y -CONFIG_NETSTAT=y -CONFIG_FEATURE_NETSTAT_WIDE=y -CONFIG_NSLOOKUP=y -CONFIG_PING=y -CONFIG_PING6=y -CONFIG_FEATURE_FANCY_PING=y -# CONFIG_PSCAN is not set -CONFIG_ROUTE=y -# CONFIG_SENDMAIL is not set -# CONFIG_FETCHMAIL is not set -# CONFIG_SLATTACH is not set -CONFIG_TELNET=y -CONFIG_FEATURE_TELNET_TTYPE=y -CONFIG_FEATURE_TELNET_AUTOLOGIN=y -CONFIG_TELNETD=y -# CONFIG_FEATURE_TELNETD_STANDALONE is not set -CONFIG_TFTP=y -CONFIG_TFTPD=y -CONFIG_FEATURE_TFTP_GET=y -CONFIG_FEATURE_TFTP_PUT=y -CONFIG_FEATURE_TFTP_BLOCKSIZE=y -CONFIG_DEBUG_TFTP=y -CONFIG_TRACEROUTE=y -CONFIG_FEATURE_TRACEROUTE_VERBOSE=y -CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE=y -# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set -# CONFIG_APP_UDHCPD is not set -# CONFIG_APP_DHCPRELAY is not set -# CONFIG_APP_DUMPLEASES is not set -# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set -CONFIG_DHCPD_LEASES_FILE="" -CONFIG_APP_UDHCPC=y -CONFIG_FEATURE_UDHCPC_ARPING=y -# CONFIG_FEATURE_UDHCP_PORT is not set -# CONFIG_FEATURE_UDHCP_DEBUG is not set -# CONFIG_FEATURE_RFC3397 is not set -CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=120 -CONFIG_VCONFIG=y -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -# CONFIG_ZCIP is not set -# CONFIG_TCPSVD is not set -# CONFIG_UDPSVD is not set - -# -# Process Utilities -# -CONFIG_FREE=y -CONFIG_FUSER=y -CONFIG_KILL=y -CONFIG_KILLALL=y -# CONFIG_KILLALL5 is not set -# CONFIG_NMETER is not set -# CONFIG_PGREP is not set -CONFIG_PIDOF=y -CONFIG_FEATURE_PIDOF_SINGLE=y -CONFIG_FEATURE_PIDOF_OMIT=y -CONFIG_PKILL=y -CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y -# CONFIG_FEATURE_PS_TIME is not set -# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -CONFIG_RENICE=y -CONFIG_BB_SYSCTL=y -CONFIG_TOP=y -CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y -CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y -CONFIG_FEATURE_TOP_DECIMALS=y -CONFIG_FEATURE_TOPMEM=y -CONFIG_UPTIME=y -CONFIG_WATCH=y - -# -# Shells -# -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_MSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -CONFIG_ASH=y - -# -# Ash Shell Options -# -CONFIG_ASH_BASH_COMPAT=y -CONFIG_ASH_JOB_CONTROL=y -CONFIG_ASH_READ_NCHARS=y -CONFIG_ASH_READ_TIMEOUT=y -CONFIG_ASH_ALIAS=y -CONFIG_ASH_MATH_SUPPORT=y -# CONFIG_ASH_MATH_SUPPORT_64 is not set -CONFIG_ASH_GETOPTS=y -CONFIG_ASH_BUILTIN_ECHO=y -CONFIG_ASH_BUILTIN_PRINTF=y -CONFIG_ASH_BUILTIN_TEST=y -CONFIG_ASH_CMDCMD=y -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y -CONFIG_ASH_RANDOM_SUPPORT=y -CONFIG_ASH_EXPAND_PRMT=y -# CONFIG_HUSH is not set -# CONFIG_HUSH_HELP is not set -# CONFIG_HUSH_INTERACTIVE is not set -# CONFIG_HUSH_JOB is not set -# CONFIG_HUSH_TICK is not set -# CONFIG_HUSH_IF is not set -# CONFIG_HUSH_LOOPS is not set -# CONFIG_LASH is not set -# CONFIG_MSH is not set - -# -# Bourne Shell Options -# -CONFIG_FEATURE_SH_EXTRA_QUIET=y -# CONFIG_FEATURE_SH_STANDALONE is not set -# CONFIG_FEATURE_SH_NOFORK is not set -CONFIG_CTTYHACK=y - -# -# System Logging Utilities -# -CONFIG_SYSLOGD=y -CONFIG_FEATURE_ROTATE_LOGFILE=y -CONFIG_FEATURE_REMOTE_LOG=y -CONFIG_FEATURE_SYSLOGD_DUP=y -CONFIG_FEATURE_IPC_SYSLOG=y -CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 -CONFIG_LOGREAD=y -CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y -CONFIG_KLOGD=y -CONFIG_LOGGER=y - -# -# Runit Utilities -# -# CONFIG_RUNSV is not set -# CONFIG_RUNSVDIR is not set -# CONFIG_SV is not set -# CONFIG_SVLOGD is not set -# CONFIG_CHPST is not set -# CONFIG_SETUIDGID is not set -# CONFIG_ENVUIDGID is not set -# CONFIG_ENVDIR is not set -# CONFIG_SOFTLIMIT is not set -# CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set -# CONFIG_GETENFORCE is not set -# CONFIG_GETSEBOOL is not set -# CONFIG_LOAD_POLICY is not set -# CONFIG_MATCHPATHCON is not set -# CONFIG_RESTORECON is not set -# CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set -# CONFIG_SELINUXENABLED is not set -# CONFIG_SETENFORCE is not set -# CONFIG_SETFILES is not set -# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set -# CONFIG_SETSEBOOL is not set -# CONFIG_SESTATUS is not set - -# -# Print Utilities -# -# CONFIG_LPD is not set -# CONFIG_LPR is not set -# CONFIG_LPQ is not set diff --git a/packages/busybox/busybox-static-1.11.3/udhcpscript.patch b/packages/busybox/busybox-static-1.11.3/udhcpscript.patch deleted file mode 100644 index fc21d440cd..0000000000 --- a/packages/busybox/busybox-static-1.11.3/udhcpscript.patch +++ /dev/null @@ -1,17 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- busybox-1.00-rc3/examples/udhcp/simple.script~udhcpscript -+++ busybox-1.00-rc3/examples/udhcp/simple.script -@@ -17,8 +17,7 @@ - /sbin/ifconfig $interface $ip $BROADCAST $NETMASK - - if [ -n "$router" ] ; then -- echo "deleting routers" -- while route del default gw 0.0.0.0 dev $interface ; do -+ while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do - : - done - diff --git a/packages/busybox/busybox-static_1.11.3.bb b/packages/busybox/busybox-static_1.11.3.bb index cf82921e9b..9529ab7b4b 100644 --- a/packages/busybox/busybox-static_1.11.3.bb +++ b/packages/busybox/busybox-static_1.11.3.bb @@ -1,4 +1,11 @@ require busybox_${PV}.bb -PR = "r3" +PR = "r4" + +FILESPATH = "${FILE_DIRNAME}/busybox-${PV}:${FILE_DIRNAME}/files:${FILE_DIRNAME}" +S = "${WORKDIR}/busybox-${PV}" + +do_configure_append() { + sed -i -e '/CONFIG_STATIC/d' .config + echo "CONFIG_STATIC=y" >>.config +} -S = "${WORKDIR}/busybox-1.11.3" -- cgit 1.2.3-korg From 19d7f35751b114882725ab88c9316dcecb497a93 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 20:05:29 +0100 Subject: qt4[e|x11].bbclass: set ARM_INSTRUCTION_SET to arm --- classes/qt4e.bbclass | 6 +++++- classes/qt4x11.bbclass | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/classes/qt4e.bbclass b/classes/qt4e.bbclass index 3fac2bda9b..3f89fa9da3 100644 --- a/classes/qt4e.bbclass +++ b/classes/qt4e.bbclass @@ -3,7 +3,7 @@ inherit qmake2 QT_DIR_NAME = "qtopia" # -# override variables set by qmake-base to compile QtopiaCore apps +# override variables set by qmake-base to compile Qt/Embedded apps # export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/qtopia" export OE_QMAKE_LIBDIR_QT = "${STAGING_LIBDIR}" @@ -11,3 +11,7 @@ export OE_QMAKE_LIBS_QT = "qt" export OE_QMAKE_LIBS_X11 = "" export OE_QMAKE_EXTRA_MODULES = "network" EXTRA_QMAKEVARS_PRE += " QT_LIBINFIX=E " + +# Qt4 uses atomic instructions not supported in thumb mode +ARM_INSTRUCTION_SET = "arm" + diff --git a/classes/qt4x11.bbclass b/classes/qt4x11.bbclass index 76a45c33cb..923717f8af 100644 --- a/classes/qt4x11.bbclass +++ b/classes/qt4x11.bbclass @@ -1,3 +1,6 @@ DEPENDS_prepend = "${@["qt4x11 ", ""][(bb.data.getVar('PN', d, 1) == 'qt4-x11-free')]}" inherit qmake2 + +# Qt4 uses atomic instructions not supported in thumb mode +ARM_INSTRUCTION_SET = "arm" -- cgit 1.2.3-korg From 9d8e810b599f07f03676787f97576075deaa15b2 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Fri, 27 Feb 2009 20:06:21 +0100 Subject: qmake2-native: revert patch that broke qmake2 finding its spec files --- packages/qmake/qmake2-native_2.10a.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/qmake/qmake2-native_2.10a.bb b/packages/qmake/qmake2-native_2.10a.bb index 8bc537132d..4579838b43 100644 --- a/packages/qmake/qmake2-native_2.10a.bb +++ b/packages/qmake/qmake2-native_2.10a.bb @@ -1,7 +1,7 @@ QTVERSION="4.4.3" FILESDIR += "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qmake2-native" -inherit cross +inherit native require ${PN}.inc -- cgit 1.2.3-korg From cd9af345ea0a90e79851c73645673a035cffcc5e Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sat, 28 Feb 2009 00:56:02 +0100 Subject: python-dweba: new recipe; successor to python-spyro. adjust task-python-everything --- packages/python/python-dweba_0.9.9+1.0.0pre14.bb | 14 ++++++++++++++ packages/python/python-spyro_0.9.22.bb | 13 ------------- packages/tasks/task-python-everything.bb | 9 +++++---- 3 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 packages/python/python-dweba_0.9.9+1.0.0pre14.bb delete mode 100644 packages/python/python-spyro_0.9.22.bb diff --git a/packages/python/python-dweba_0.9.9+1.0.0pre14.bb b/packages/python/python-dweba_0.9.9+1.0.0pre14.bb new file mode 100644 index 0000000000..ddc5979eab --- /dev/null +++ b/packages/python/python-dweba_0.9.9+1.0.0pre14.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Dweba is a framework to develop distributed and web applications \ +for the python programming language." +HOMEPAGE = "http://www.threekong.com" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +PR = "ml0" + +RPV = "1.0.0-pre14" + +SRC_URI = "http://www.threekong.com/download/dweba/dweba-${RPV}.tar.gz" +S = "${WORKDIR}/dweba-${RPV}" + +inherit distutils diff --git a/packages/python/python-spyro_0.9.22.bb b/packages/python/python-spyro_0.9.22.bb deleted file mode 100644 index 9cafd883a4..0000000000 --- a/packages/python/python-spyro_0.9.22.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "Simplified Python Remote Objects is a multilingual object request broker. \ -SPyRO uses the most efficient (or available) connection between peers to minimize costs \ -of transport and parsing in the communication." -HOMEPAGE = "http://www.spyron.org/" -SECTION = "devel/python" -PRIORITY = "optional" -LICENSE = "MIT" -PR = "ml1" - -SRC_URI = "http://lsc.fie.umich.mx/%7esadit/spyro/download/SPyRO-${PV}.tar.gz" -S="${WORKDIR}/SPyRO-${PV}" - -inherit distutils diff --git a/packages/tasks/task-python-everything.bb b/packages/tasks/task-python-everything.bb index de3c555a83..a190c0f9e1 100644 --- a/packages/tasks/task-python-everything.bb +++ b/packages/tasks/task-python-everything.bb @@ -2,7 +2,7 @@ DESCRIPTION= "Everything Python" HOMEPAGE = "http://www.vanille.de/projects/python.spy" LICENSE = "MIT" PV = "2.6" -PR = "ml42" +PR = "ml43" RDEPENDS = "\ python-ao \ @@ -14,6 +14,7 @@ RDEPENDS = "\ python-dbus \ python-dialog \ python-docutils \ + python-dweba \ task-python-efl \ task-python-efl-examples \ python-fam \ @@ -24,7 +25,7 @@ RDEPENDS = "\ python-fugrep \ python-fuse \ python-fusil \ - python-gammu \ +# python-gammu \ python-gmpy \ python-gnosis \ python-gst \ @@ -44,7 +45,8 @@ RDEPENDS = "\ python-ogg \ python-opendir \ python-pexpect \ - python-psyco \ +# only on x86 +# python-psyco \ python-ptrace \ python-pyalsa \ python-pyalsaaudio \ @@ -98,7 +100,6 @@ RDEPENDS = "\ python-sphinx \ python-sphinxsearch \ python-spydi \ - python-spyro \ python-sqlalchemy \ python-sqlobject \ python-traits \ -- cgit 1.2.3-korg From b09627d8bf132b5c9fa847f64302fe13b2baec3d Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sat, 28 Feb 2009 02:42:34 +0100 Subject: python-pylinda: change SRC_URI to mirror --- packages/python/python-pylinda_0.6.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/python-pylinda_0.6.bb b/packages/python/python-pylinda_0.6.bb index 3c7124f2ac..a43dd7e7f8 100644 --- a/packages/python/python-pylinda_0.6.bb +++ b/packages/python/python-pylinda_0.6.bb @@ -6,7 +6,7 @@ LICENSE = "LGPL" SRCNAME = "linda" PR = "r1" -SRC_URI = "http://www-users.cs.york.ac.uk/~aw/pylinda/dist/linda-${PV}.tar.gz \ +SRC_URI = "http://www.handhelds.org/~aquadran/distro/latest/sources/linda-${PV}.tar.gz \ file://honor-datadir.patch;patch=1" S = "${WORKDIR}/${SRCNAME}-${PV}" -- cgit 1.2.3-korg From bdca7e76ccdb11216381e72d158d502bbc536155 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sat, 28 Feb 2009 02:42:49 +0100 Subject: moin: no longer needs install hack --- packages/moin/moin_1.8.1.bb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/moin/moin_1.8.1.bb b/packages/moin/moin_1.8.1.bb index 427455d48c..1e50a739d7 100644 --- a/packages/moin/moin_1.8.1.bb +++ b/packages/moin/moin_1.8.1.bb @@ -1,15 +1,12 @@ DESCRIPTION = "A full fledged WikiWiki system written in Python" LICENSE = "GPL" SECTION = "network" -HOMEPAGE = "http://moinmoin.wikiwikiweb.de/" +HOMEPAGE = "http://moinmoin.wikiwikiweb.de" PRIORITY = "optional" -PR = "ml0" +PR = "ml1" SRC_URI = "http://static.moinmo.in/files/moin-${PV}.tar.gz" inherit distutils -do_install_append() { - mv -f ${D}${datadir}/share/* ${D}${datadir}/ -} - +FILES_${PN} += "${datadir}" -- cgit 1.2.3-korg From 8a013c3930d253b298da2dfb3194768f4228f735 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sat, 28 Feb 2009 02:55:40 +0100 Subject: dtn: fix packaging and constrain arm instruction set --- packages/dtnrg/dtn_2.5.0.bb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/dtnrg/dtn_2.5.0.bb b/packages/dtnrg/dtn_2.5.0.bb index eff2e2e5b9..7dc6fc5af8 100644 --- a/packages/dtnrg/dtn_2.5.0.bb +++ b/packages/dtnrg/dtn_2.5.0.bb @@ -3,7 +3,10 @@ HOMEPAGE = "http://www.dtnrg.org/wiki" SECTION = "libs" DEPENDS = "db openssl python-native xerces-c" LICENSE = "Apache" -PR = "r4" +PR = "r5" + +# thread code atomic ops do not play with thumb +ARM_INSTRUCTION_SET = "arm" SRC_URI = "\ http://www.dtnrg.org/docs/code/dtn_${PV}.tgz \ @@ -51,7 +54,14 @@ PACKAGES =+ "${PN}-lib" FILES_${PN}-lib = "${libdir}/*.so*" PACKAGES += "python-dtn" DESCRIPTION_python-dtn = "Python bindings to the DTN API" -PR_python-dtn = "ml3" +PR_python-dtn = "ml4" FILES_python-dtn = "${libdir}/${PYTHON_DIR}" RDEPENDS_python-dtn = "python-core dtn-lib" -FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug" + +FILES_${PN}-dbg += "\ + ${libdir}/${PYTHON_DIR}/site-packages/.debug \ + ${libdir}/.debug \ + ${bindir}/.debug \ +" + +FILES_${PN} += "${sysconfdir}" -- cgit 1.2.3-korg From 9685c48499414662a982dea75ca6e677f990b905 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sat, 28 Feb 2009 03:01:11 +0100 Subject: python-pygtk 1.2: fix -dev packaging --- packages/python/python-pygtk-1.2_0.6.12.bb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/python/python-pygtk-1.2_0.6.12.bb b/packages/python/python-pygtk-1.2_0.6.12.bb index 502c4cde39..0b153ce1e5 100644 --- a/packages/python/python-pygtk-1.2_0.6.12.bb +++ b/packages/python/python-pygtk-1.2_0.6.12.bb @@ -5,14 +5,14 @@ LICENSE = "LGPL" DEPENDS = "gtk+-1.2" RDEPENDS = "python-shell python-re" SRCNAME = "pygtk" -PR = "r2" +PR = "r3" SRC_URI = "ftp://ftp.gtk.org/pub/gtk/python/v1.2/${SRCNAME}-${PV}.tar.gz \ file://remove-imlib-et-al.patch;patch=1 \ file://acinclude.m4" S = "${WORKDIR}/${SRCNAME}-${PV}" -inherit autotools pkgconfig distutils-base +inherit autotools_stage pkgconfig distutils-base EXTRA_OECONF += "--with-python-includes=${STAGING_INCDIR}/../" @@ -22,6 +22,4 @@ do_configure_prepend() { rm -f aclocal.m4 } -do_stage() { - autotools_stage_includes -} +FILES_${PN}-dev += "${datadir}/pygtk" -- cgit 1.2.3-korg From 42f347f933cf919744fbbe4886d262ff277d2208 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sat, 28 Feb 2009 03:23:43 +0100 Subject: bluez4: hci usb patch no longer necessary --- packages/bluez/bluez4_4.30.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/bluez/bluez4_4.30.bb b/packages/bluez/bluez4_4.30.bb index 920c2ee05d..235fdd9f32 100644 --- a/packages/bluez/bluez4_4.30.bb +++ b/packages/bluez/bluez4_4.30.bb @@ -4,13 +4,13 @@ PRIORITY = "optional" DEPENDS = "gst-plugins-base alsa-lib libusb-compat libusb1 dbus-glib" HOMEPAGE = "http://www.bluez.org" LICENSE = "GPL" -PR = "r2" +PR = "r3" SRC_URI = "\ http://www.kernel.org/pub/linux/bluetooth/bluez-${PV}.tar.gz \ file://fix-dfutool-usb-declaration-mismatch.patch;patch=1 \ file://sbc-thumb.patch;patch=1 \ - file://hid2hci_usb_init.patch;patch=1 \ +# file://hid2hci_usb_init.patch;patch=1 \ " S = "${WORKDIR}/bluez-${PV}" -- cgit 1.2.3-korg From 96484c54eb1c5c48edb7a9c634701b5783095256 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sun, 1 Mar 2009 01:50:52 +0100 Subject: gpe-gallery: svn version is the new default; convert to SRCREV remove 0.97 --- conf/distro/include/sane-srcrevs.inc | 5 +- packages/gpe-gallery/files/makefile-fix.patch | 11 -- packages/gpe-gallery/files/svn-build.patch | 240 -------------------------- packages/gpe-gallery/gpe-gallery_0.97.bb | 16 -- packages/gpe-gallery/gpe-gallery_svn.bb | 9 +- 5 files changed, 5 insertions(+), 276 deletions(-) delete mode 100644 packages/gpe-gallery/files/makefile-fix.patch delete mode 100644 packages/gpe-gallery/files/svn-build.patch delete mode 100644 packages/gpe-gallery/gpe-gallery_0.97.bb diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index 83a3e224e9..379d105939 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -66,9 +66,10 @@ SRCREV_pn-fso-sounds ?= "3d2cf5231cb0e81770a246530574142bd2b8bbff" SRCREV_pn-fstests ?= "204" SRCREV_pn-gconf-dbus ?= "641" SRCREV_pn-gnuradio ?= "10302" +SRCREV_pn-gpe-conf ?= "9798" SRCREV_pn-gpe-contacts ?= "9312" +SRCREV_pn-gpe-gallery ?= "9376" SRCREV_pn-gpe-sketchbook ?= "9547" -SRCREV_pn-gpe-conf ?= "9798" SRCREV_pn-gsmd2 ?= "963f34df8fa3ff4b301079dcf86e9acea6b6fe0f" SRCREV_pn-gtkhtml2 ?= "1158" SRCREV_pn-gypsy ?= "134" @@ -247,7 +248,7 @@ SRCREV_pn-zhone ?= "f38cc52fbf11f7fe945797a6b8ade29ed479d924" # Enlightenment Foundation Libraries # Caution: This is not alphabetically, but (roughly) dependency-sorted. # Please leave it like that. -EFL_SRCREV ?= "39188" +EFL_SRCREV ?= "39263" SRCREV_pn-edb-native ?= "${EFL_SRCREV}" SRCREV_pn-edb ?= "${EFL_SRCREV}" SRCREV_pn-eina-native ?= "${EFL_SRCREV}" diff --git a/packages/gpe-gallery/files/makefile-fix.patch b/packages/gpe-gallery/files/makefile-fix.patch deleted file mode 100644 index ae4583573e..0000000000 --- a/packages/gpe-gallery/files/makefile-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- /tmp/Makefile 2006-07-26 11:02:47.000000000 +0200 -+++ gpe-gallery-0.97/Makefile 2006-07-26 11:05:07.584411000 +0200 -@@ -28,7 +28,7 @@ - $(CC) -o $@ $^ $(LDFLAGS) $(PACKAGE_LDFLAGS) - - install-program: all -- install -Ds $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE) -+ install -D -s $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE) - install -D -m 644 $(PACKAGE).png $(DESTDIR)$(PREFIX)/share/pixmaps/$(PACKAGE).png - install -D -m 644 $(PACKAGE).applications $(DESTDIR)/$(PREFIX)/share/application-registry/$(PACKAGE).applications - mkdir -p $(DESTDIR)$(PREFIX)/share/applications diff --git a/packages/gpe-gallery/files/svn-build.patch b/packages/gpe-gallery/files/svn-build.patch deleted file mode 100644 index 5b6edf4893..0000000000 --- a/packages/gpe-gallery/files/svn-build.patch +++ /dev/null @@ -1,240 +0,0 @@ ---- gpe-gallery.orig/Makefile 2007-04-07 13:34:54.581405005 +0300 -+++ gpe-gallery/Makefile 2007-04-07 13:35:03.589918369 +0300 -@@ -1,7 +1,7 @@ - PREFIX = /usr/local - PACKAGE = gpe-gallery - DEBUG = no --CVSBUILD = yes -+CVSBUILD = no - VERSION = 0.97 - - MEMBERS = main image_tools -diff -Naur gpe-gallery.orig/build/Makefile.dpkg_ipkg gpe-gallery/build/Makefile.dpkg_ipkg ---- gpe-gallery.orig/build/Makefile.dpkg_ipkg 1970-01-01 02:00:00.000000000 +0200 -+++ gpe-gallery/build/Makefile.dpkg_ipkg 2007-02-10 17:21:40.154584782 +0200 -@@ -0,0 +1,114 @@ -+## Please read the README in this directory to see how to use this -+## Makefile snippet -+ -+# Let's use whatever clean target the specific app provides -+ -+CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi` -+ -+# URL to source tarball -+SOURCE = http://gpe.linuxtogo.org/download/source/$(PACKAGE)-$(VERSION).tar.gz -+ -+# can change this to e.g. /var/tmp/deb -+DEB_PATH = ../deb -+ -+ifeq ($(CVSBUILD),yes) -+LIBGPEWIDGET_PC = libgpewidget-uninstalled -+PC_EXTRA=PKG_CONFIG_PATH=../../base/libgpewidget -+else -+LIBGPEWIDGET_PC = libgpewidget -+endif -+ -+ifeq ($(IN_LIBGPEWIDGET),) -+GPECFLAGS = $(shell $(PC_EXTRA) pkg-config --cflags $(LIBGPEWIDGET_PC)) -+GPELIBS = $(shell $(PC_EXTRA) pkg-config --libs $(LIBGPEWIDGET_PC)) -+endif -+ -+GTKCFLAGS = $(shell pkg-config --cflags gtk+-2.0) -+GTKLIBS = $(shell pkg-config --libs gtk+-2.0) -+ -+STANDARD_CPPFLAGS = -D_GNU_SOURCE -DPACKAGE=\"$(PACKAGE)\" -DPREFIX=\"$(PREFIX)\" -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\" -+STANDARD_CFLAGS = -MD -Wall -+ -+ifeq ($(DEBUG),yes) -+CFLAGS += -O2 -g -+LDFLAGS = -g -+else -+CFLAGS += -Os -fomit-frame-pointer -+endif -+ -+dist: check-source clean dist-prep -+ rm -rf ../$(PACKAGE)-$(VERSION) -+ mkdir ../$(PACKAGE)-$(VERSION) -+ ( tar cf - --exclude "*/CVS" --exclude CVS --exclude "*~" --exclude "#*#" --exclude "debian" --exclude ".*" --exclude "*.ipk" --exclude "*.ipk.*" --exclude "*.mo" --exclude "*.batch" --exclude "translation-ipkgs.txt" * ) | (cd ../$(PACKAGE)-$(VERSION); tar xf -) -+ ( if [ -f linguas ]; then LINGUAS=`cat linguas`; PATCH_LINGUAS="s:^LINGUAS =.*:LINGUAS = $${LINGUAS}:"; fi; cd ../$(PACKAGE)-$(VERSION) && mkdir build && cp $(BUILD)/Makefile.dpkg_ipkg $(BUILD)/Makefile.translation build/ && sed "s:^CVSBUILD =.*:CVSBUILD = no:;s:^DEBUG =.*:DEBUG = no:;s:Makefile.translation-auto-linguas:Makefile.translation:;$${PATCH_LINGUAS}" < Makefile > Makefile.new && mv Makefile.new Makefile ) -+ ( cd .. ; tar cf - $(PACKAGE)-$(VERSION) | gzip -9 >$(PACKAGE)-$(VERSION).tar.gz ) -+ rm -rf ../$(PACKAGE)-$(VERSION) -+ $(MAKE) printinfo -+ -+dist-upload: dist -+ scp ../$(PACKAGE)-$(VERSION).tar.gz $(USER)@linuxtogo.org:/media/data/projects/gpe/source/ -+ -+dist-prep: -+ipkg-prep: -+install-mo: -+# empty, can be filled in Makefile.translation -+ -+install: install-program install-mo -+ -+clean-dist: -+ rm -rf familiar/dist familiar/dist.list -+ -+clean: clean-dist -+ -+check-source: -+ @if [ -f familiar/$(CONTROL) ] && ! grep -q '^Source:' familiar/$(CONTROL); then echo -e "\nNo Source: field in control file. Aborting.\n"; exit 1; fi -+ -+ipkg: check-source ipkg-prep clean -+ rm -rf familiar/dist -+ mkdir -p familiar/dist/CONTROL -+ sed 's:VERSION:$(VERSION):;s$$SOURCE$$$(SOURCE)$$' < familiar/$(CONTROL) > familiar/dist/CONTROL/control -+ if test -e familiar/conffiles; then install -m 644 familiar/conffiles familiar/dist/CONTROL; fi -+ if test -e familiar/preinst; then install familiar/preinst familiar/dist/CONTROL; fi -+ if test -e familiar/postinst; then install familiar/postinst familiar/dist/CONTROL; fi -+ if test -e familiar/prerm; then install familiar/prerm familiar/dist/CONTROL; fi -+ if test -e familiar/postrm; then install familiar/postrm familiar/dist/CONTROL; fi -+ $(MAKE) DESTDIR=`pwd`/familiar/dist PREFIX=/usr prefix=/usr DEBUG=no install-program -+ rm -rf familiar/dist.list -+ ipkg-build -o 0 -g 0 familiar/dist | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> familiar/dist.list -+ if [ "x$(LINGUAS)" != "x" ]; then make translation-ipkg; tr ' ' '\n' < translation-ipkgs.txt >> familiar/dist.list; fi -+ md5sum `cat familiar/dist.list` > $(PACKAGE)_$(VERSION).batch -+ rm -rf familiar/dist familiar/dist.list -+ $(MAKE) printinfo -+ -+dpkg: dist -+ mkdir -p $(DEB_PATH) -+ ( olddir=`pwd`; cd $(DEB_PATH); rm -rf $(PACKAGE)-$(VERSION); ln -s $$olddir/../$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz ; tar xzf $(PACKAGE)_$(VERSION).orig.tar.gz ) -+ mkdir -p $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian -+ for i in debian/*; do if test -f $$i; then cp $$i $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian/; fi; done -+ -+CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_]) -+printinfo: -+ @printf '-------------------------------------------------------------------------------\n' -+ @printf "If this becomes a package release, please add a CVS tag.\n" -+ @printf "You can use 'make tag' for that, it will execute\n" -+ @printf " cvs tag %s\n" $(CVSTAG) -+ @printf "Please upload a tarball (created with 'make dist') to\n" -+ @printf " ftp://ftp.handhelds.org/pub/projects/gpe/\n" -+ @printf " (handhelds.org:~ftp/pub/projects/gpe/source)\n" -+ @printf "You can use 'make dist-upload' to do that.\n" -+ @printf "You are currently known as USER %s.\n" $(USER) -+ @printf '-------------------------------------------------------------------------------\n' -+ -+tag: check-source -+ cvs tag $(CVSTAG) -+ -+retag: check-source -+ cvs tag -F $(CVSTAG) -+ -+source: tag dist-upload -+ -+%.pc: %.pc.in -+ sed 's:PREFIX:$(PREFIX):;s:BUILDDIR:$(shell pwd):;s:VERSION:$(VERSION):' < $< > $@ -+ -+.c.o:; -+ $(CC) $(CFLAGS) $(CPPFLAGS) $(PACKAGE_CFLAGS) $(PACKAGE_CPPFLAGS) -c $< -o $@ -diff -Naur gpe-gallery.orig/build/Makefile.translation gpe-gallery/build/Makefile.translation ---- gpe-gallery.orig/build/Makefile.translation 1970-01-01 02:00:00.000000000 +0200 -+++ gpe-gallery/build/Makefile.translation 2007-02-10 17:21:46.170927636 +0200 -@@ -0,0 +1,107 @@ -+.SUFFIXES: .mo .po .pot .po8 -+ -+CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi` -+ -+# use ipkg-build or ipkg-deb-build -+IPKG_BUILD := ipkg-build -+ -+TRANSLATION_SITE := http://www.iro.umontreal.ca/~gnutra/maint -+ -+ifeq ($(DIR_PO),) -+DIR_PO := po -+endif -+ -+ifeq ($(BINPACKAGE),) -+BINPACKAGE := $(PACKAGE) -+endif -+ -+mo-files = $(patsubst %,$(DIR_PO)/%.mo,$(LINGUAS)) -+po-files = $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS)) -+ -+ifeq ($(shell if [ -f $(PACKAGE).desktop.in ]; then echo present; fi;),present) -+desktop-files += $(PACKAGE).desktop -+endif -+ -+ifneq ($(EXTRA_DESKTOPS),) -+desktop-files += $(patsubst %.desktop.in,%.desktop,$(EXTRA_DESKTOPS)) -+endif -+ -+all-mo: $(mo-files) -+ -+all-desktop: $(desktop-files) -+ -+install-mo: all-mo -+ if [ "$(ENABLE_NLS)" != "no" ]; then \ -+ if [ "x$(LINGUAS)" != "x" ]; then \ -+ for i in $(LINGUAS); do mkdir -p $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES; install -m 644 $(DIR_PO)/$$i.mo $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES/$(PACKAGE).mo; done \ -+ fi; \ -+ fi; -+ -+.po8.mo:; -+ if [ "$(ENABLE_NLS)" != "no" ]; then \ -+ msgfmt -o $@ $<; \ -+ fi; -+ -+.po.po8:; -+ CTYPE=`grep "^\"Content-Type:" $< | sed 's/^.*charset=//;s/\\\\.*//'`; sed "s/\(Content-Type: .*=\)$$CTYPE/\1UTF-8/" < $< | iconv -f $${CTYPE} -t UTF-8 >$@ -+ -+update-po: $(po-files) extract-po -+ -+dist-prep: update-po freshen-po -+# empty -+ -+ifeq ($(CVSBUILD),yes) -+ipkg-prep: freshen-po -+# empty -+endif -+ -+extract-po: -+ mkdir -p $(DIR_PO) -+ ( SOURCES="$(SOURCES)"; for DESK in $(PACKAGE).desktop.in $(EXTRA_DESKTOPS); do if [ -f $$DESK ]; then intltool-extract --type=gettext/ini $$DESK; SOURCES="$$SOURCES $${DESK}.h"; fi; done; if [ "x$$SOURCES" != "x" ]; then xgettext --add-comments=TRANSLATORS: -k_ -kN_ -o $(DIR_PO)/$(PACKAGE).pot.new $$SOURCES; fi ) -+ if [ -f $(DIR_PO)/$(PACKAGE).pot.new ]; then if cmp -s $(DIR_PO)/$(PACKAGE).pot.new $(PACKAGE).pot; then rm $(DIR_PO)/$(PACKAGE).pot.new; else mv $(DIR_PO)/$(PACKAGE).pot.new $(DIR_PO)/$(PACKAGE).pot; fi; fi -+ -+clean: clean-po clean-dist-translation -+ -+clean-po: -+ rm -rf $(DIR_PO)/*.mo -+ for i in $(desktop-files); do if [ -f $$i.in ]; then rm -f $$i; rm -f $$i.in.h; fi; done -+ -+%.desktop: %.desktop.in $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS)) -+ intltool-merge -u -d $(DIR_PO) $< $@ -+ -+freshen-po: -+ rm -rf tmp-po -+ mkdir tmp-po -+ cd tmp-po; for LANG in $(LINGUAS); do wget $(TRANSLATION_SITE)/$(PACKAGE)/$$LANG.po; done -+ for LANG in $(LINGUAS); do if [ ! -f $(DIR_PO)/$$LANG.po ] || ! cmp -s $(DIR_PO)/$$LANG.po tmp-po/$$LANG.po ; then mv tmp-po/$$LANG.po $(DIR_PO)/$$LANG.po; echo "Updated $$LANG translation"; fi; done -+ rm -rf tmp-po -+ -+# ------------------------------------------------------------------------ -+ -+MAINTAINER = $(shell grep 'Maintainer: ' familiar/$(CONTROL) | cut -d ' ' -f 2-) -+ -+ifndef BUILD -+BUILD = ../build -+endif -+ -+transdist := familiar/dist-translation -+templates := $(BUILD)/familiar -+ipkglist := translation-ipkgs.txt -+ -+clean-dist-translation: -+ rm -rf $(transdist) $(ipkglist) -+ -+real-translation-package: all-mo -+ rm -rf $(transdist) $(ipkglist) -+ for LINGUA in $(LINGUAS); do \ -+ i=$$(echo $$LINGUA | tr '[A-Z_]' '[a-z+]'); \ -+ mkdir -p $(transdist)/$$i/CONTROL; \ -+ mkdir -p $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES; \ -+ install -m 644 po/$$LINGUA.mo $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES/$(PACKAGE).mo; \ -+ sed -e "s//$(MAINTAINER)/;s//$(BINPACKAGE)/;s//$(VERSION)/;s//$$i/;s!!$(SOURCE)!" $(templates)/control.translation > $(transdist)/$$i/CONTROL/control; \ -+ install $(templates)/postinst.translation $(transdist)/$$i/CONTROL/postinst; \ -+ $(IPKG_BUILD) -g 0 -o 0 $(transdist)/$$i | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> $(ipkglist); \ -+ done -+ -+translation-ipkg: -+ make PREFIX=/usr real-translation-package diff --git a/packages/gpe-gallery/gpe-gallery_0.97.bb b/packages/gpe-gallery/gpe-gallery_0.97.bb deleted file mode 100644 index 4b4cfaebb8..0000000000 --- a/packages/gpe-gallery/gpe-gallery_0.97.bb +++ /dev/null @@ -1,16 +0,0 @@ -LICENSE = "GPL" -PR = "r0" - -inherit gpe - -SRC_URI += "file://makefile-fix.patch;patch=1" - -DEPENDS = "libgpewidget" -SECTION = "gpe" - -FILES_${PN} += "${datadir}/gpe/pixmaps" -FILES_${PN} += "${datadir}/application-registry" - -DESCRIPTION = "GPE image viewer application" -export CVSBUILD = "no" - diff --git a/packages/gpe-gallery/gpe-gallery_svn.bb b/packages/gpe-gallery/gpe-gallery_svn.bb index 863dfe5f93..ea1d23a5be 100644 --- a/packages/gpe-gallery/gpe-gallery_svn.bb +++ b/packages/gpe-gallery/gpe-gallery_svn.bb @@ -2,18 +2,13 @@ DESCRIPTION = "GPE image viewer application" SECTION = "gpe" LICENSE = "GPL" DEPENDS = "libgpewidget" -PV = "0.97+svn-${SRCDATE}" +PV = "0.97+svnr${SRCREV}" inherit autotools export CVSBUILD = "no" -SRC_URI += "${GPE_EXTRA_SVN} \ - file://svn-build.patch;patch=1" - +SRC_URI = "${GPE_EXTRA_SVN}" S = "${WORKDIR}/${PN}" FILES_${PN} += "${datadir}/gpe/pixmaps" FILES_${PN} += "${datadir}/application-registry" - - -DEFAULT_PREFERENCE = "-1" -- cgit 1.2.3-korg From b765ebc700bd5b639f70ccf2268284be624f46df Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sun, 1 Mar 2009 02:20:39 +0100 Subject: vte: stage all for libvte remote 0.16.13 --- packages/vte/vte.inc | 10 ++++++++-- packages/vte/vte_0.16.13.bb | 2 -- packages/vte/vte_0.16.14.bb | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) delete mode 100644 packages/vte/vte_0.16.13.bb diff --git a/packages/vte/vte.inc b/packages/vte/vte.inc index dcf25c945d..08642287d5 100644 --- a/packages/vte/vte.inc +++ b/packages/vte/vte.inc @@ -4,8 +4,10 @@ DEPENDS += "glib-2.0 gtk+ intltool-native ncurses" inherit gnome -SRC_URI += "file://vte-pkgconfig-fixes.patch;patch=1 \ - file://vte.desktop.in" +SRC_URI += "\ + file://vte-pkgconfig-fixes.patch;patch=1 \ + file://vte.desktop.in \ +" EXTRA_OECONF = "--disable-gtk-doc --disable-python" @@ -16,6 +18,10 @@ do_install_append() { sed s/@VERSION@/${PV}/ <${WORKDIR}/vte.desktop.in >${D}${datadir}/applications/vte.desktop } +do_stage() { + autotools_stage_all +} + PACKAGES =+ "libvte vte-termcap gnome-pty-helper" FILES_libvte = "${libdir}/*.so.*" FILES_gnome-pty-helper = "${libexecdir}/gnome-pty-helper" diff --git a/packages/vte/vte_0.16.13.bb b/packages/vte/vte_0.16.13.bb deleted file mode 100644 index f408632430..0000000000 --- a/packages/vte/vte_0.16.13.bb +++ /dev/null @@ -1,2 +0,0 @@ -require vte.inc -PR = "r3" diff --git a/packages/vte/vte_0.16.14.bb b/packages/vte/vte_0.16.14.bb index 9453fee206..ecc3d8d846 100644 --- a/packages/vte/vte_0.16.14.bb +++ b/packages/vte/vte_0.16.14.bb @@ -1 +1,3 @@ require vte.inc +PR = "r1" + -- cgit 1.2.3-korg