I did not have time to test it on live board tonight (and I wont have time for
it this week), that is why I'm sending it here and not in separate thread
called v3...

This will be good enough for comments.

upgrade and improve uboot-env package

 * bumps to version 2011.12
 * adds md5sum
 * creates a menu so it will look better in "make menuconfig"
 * adds /etc/fw_env.config to conffile
 * adds /etc/config/ubootenv to conffile
 * refresh patches
 * removes init script because we should be using uci-defaults instead
 * supports all current targets using this package - ar71xx and lantiq

Regarding board all0258n:

 * fw_env.config is presrved during upgrade, it's in conffile
 * not included in patch but should be removed completely imho is 
platform_add_ramfs_ubootenv from:

target/linux/ar71xx/base-files/lib/upgrade/all0258n.sh

Also, can somebody explain why do we need platform_add_ramfs_ubootenv in that
file in the first place?

And here is the proposal:

 package/uboot-envtools/Makefile                    |   54 ++++++++++++++------
 package/uboot-envtools/files/ar71xx                |   25 +++++++++
 package/uboot-envtools/files/lantiq                |   25 +++++++++
 package/uboot-envtools/files/uboot-envtools.init   |   27 ----------
 package/uboot-envtools/files/uboot-envtools.sh     |   36 +++++++++++++
 .../patches/001-crc32_func_signature.patch         |    9 ----
 package/uboot-envtools/patches/002-makefile.patch  |   39 +++++++-------
 .../ar71xx/base-files/etc/uci-defaults/ubootenv    |   37 --------------
 .../ar71xx/base-files/lib/upgrade/all0258n.sh      |    1 -
 .../base-files/etc/uci-defaults/uboot_environment  |   32 ------------
 10 files changed, 143 insertions(+), 142 deletions(-)

diff --git a/package/uboot-envtools/Makefile b/package/uboot-envtools/Makefile
index adb2aea..003eecc 100644
--- a/package/uboot-envtools/Makefile
+++ b/package/uboot-envtools/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2011 OpenWrt.org
+# Copyright (C) 2006-2012 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uboot-envtools
 PKG_DISTNAME:=u-boot
-PKG_VERSION:=2011.06
-PKG_RELEASE:=4
+PKG_VERSION:=2011.12
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_DISTNAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=ftp://ftp.denx.de/pub/u-boot
-PKG_MD5SUM:=
+PKG_MD5SUM:=7f29b9f6da44d6e46e988e7561fd1d5f
 PKG_BUILD_DEPENDS:=zlib
 
 include $(INCLUDE_DIR)/package.mk
@@ -26,31 +26,53 @@ define Package/uboot-envtools
   CATEGORY:=Utilities
   TITLE:=read/modify U-Boot bootloader environment
   URL:=http://www.denx.de/wiki/U-Boot
+  MENU:=1
+endef
+
+define Package/uboot-envtools/config
+       menu "Configuration"
+       depends on PACKAGE_uboot-envtools
+
+       config PACKAGE_uboot-envtools_setenv_symlink
+               bool "Create fw_setenv symlink"
+               default n
+               help
+               With this option selected you will be able to edit U-Boot 
bootloader environment.
+ 
+       endmenu
 endef
 
 define Package/uboot-envtools/description
  This package includes tools to read and modify U-Boot bootloader environment.
 endef
 
-define Package/uboot-envtools/config
-        config PACKAGE_uboot-envtools_setenv_symlink
-                bool "create fw_setenv symlink"
+define Build/Prepare
+       mkdir -p $(PKG_BUILD_DIR)
+       tar xvjf $(DL_DIR)/$(PKG_SOURCE) --strip-components=2 -C 
$(PKG_BUILD_DIR) $(PKG_DISTNAME)-$(PKG_VERSION)/lib/crc32.c
+       $(call Build/Prepare/Default)
+endef
+
+define Package/uboot-envtools/conffiles
+/etc/config/ubootenv
+/etc/fw_env.config
 endef
 
 define Package/uboot-envtools/install
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/fw_printenv $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/fw_printenv $(1)/usr/sbin
 ifneq ($(CONFIG_PACKAGE_uboot-envtools_setenv_symlink),)
        ln -s fw_printenv $(1)/usr/sbin/fw_setenv
 endif
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/uboot-envtools.init 
$(1)/etc/init.d/uboot-envtools
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-       tar xvjf $(DL_DIR)/$(PKG_SOURCE) --strip-components=2 -C 
$(PKG_BUILD_DIR) $(PKG_DISTNAME)-$(PKG_VERSION)/lib/crc32.c
-       $(call Build/Prepare/Default)
+       $(INSTALL_DIR) $(1)/lib
+       $(INSTALL_DATA) ./files/uboot-envtools.sh $(1)/lib
+ifneq ($(CONFIG_TARGET_ar71xx),)
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_BIN) ./files/ar71xx $(1)/etc/uci-defaults/uboot-envtools
+endif
+ifneq ($(CONFIG_TARGET_lantiq),)
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_BIN) ./files/lantiq $(1)/etc/uci-defaults/uboot-envtools
+endif
 endef
 
 $(eval $(call BuildPackage,uboot-envtools))
diff --git a/package/uboot-envtools/files/ar71xx 
b/package/uboot-envtools/files/ar71xx
new file mode 100644
index 0000000..15b6b15
--- /dev/null
+++ b/package/uboot-envtools/files/ar71xx
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# Copyright (C) 2011-2012 OpenWrt.org
+#
+
+[ -e /etc/config/ubootenv ] && exit 0
+
+touch /etc/config/ubootenv
+
+. /lib/ar71xx.sh
+. /lib/uboot-envtools.sh
+. /lib/functions.sh
+
+board=$(ar71xx_board_name)
+
+case "$board" in
+all0258n)
+       ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
+       ;;
+esac
+
+config_load ubootenv
+config_foreach ubootenv_add_app_config ubootenv
+
+exit 0
diff --git a/package/uboot-envtools/files/lantiq 
b/package/uboot-envtools/files/lantiq
new file mode 100644
index 0000000..40befc3
--- /dev/null
+++ b/package/uboot-envtools/files/lantiq
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# Copyright (C) 2012 OpenWrt.org
+#
+
+[ -e /etc/config/ubootenv ] && exit 0
+
+touch /etc/config/ubootenv
+
+. /lib/lantiq.sh
+. /lib/uboot-envtools.sh
+. /lib/functions.sh
+
+board=$(lantiq_board_name)
+
+case "$board" in
+GIGASX76X)
+       ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000" "1"
+       ;;
+esac
+
+config_load ubootenv
+config_foreach ubootenv_add_app_config ubootenv
+
+exit 0
diff --git a/package/uboot-envtools/files/uboot-envtools.init 
b/package/uboot-envtools/files/uboot-envtools.init
deleted file mode 100755
index 066109b..0000000
--- a/package/uboot-envtools/files/uboot-envtools.init
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh /etc/rc.common
-# (C) 2011 OpenWrt.org
-# Creates /etc/fw_env.conf for fw_printenv (and fw_setenv)
-
-START=80
-
-create_fwenv_config() {
-       local dev
-       local offset
-       local envsize
-       local secsize
-       local numsec
-       config_get dev "$1" dev
-       config_get offset "$1" offset "0x0000"
-       config_get envsize "$1" envsize
-       config_get secsize "$1" secsize
-       config_get numsec "$1" numsec
-       echo "$dev              $offset         $envsize                
$secsize                $numsec" >>/etc/fw_env.config
-}
-
-start() {
-       [ ! -e /etc/fw_env.config ] && {
-               echo "# MTD device name Device offset   Env. size       Flash 
sector size       Number of sectors" >/etc/fw_env.config
-               config_load ubootenv
-               config_foreach create_fwenv_config ubootenv
-       }
-}
diff --git a/package/uboot-envtools/files/uboot-envtools.sh 
b/package/uboot-envtools/files/uboot-envtools.sh
new file mode 100644
index 0000000..e21b283
--- /dev/null
+++ b/package/uboot-envtools/files/uboot-envtools.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# Copyright (C) 2011-2012 OpenWrt.org
+#
+
+ubootenv_add_uci_config() {
+       local dev=$1
+       local offset=$2
+       local envsize=$3
+       local secsize=$4
+       local numsec=$5
+       uci batch <<EOF
+add ubootenv ubootenv
+set ubootenv.@ubootenv[-1].dev='$dev'
+set ubootenv.@ubootenv[-1].offset='$offset'
+set ubootenv.@ubootenv[-1].envsize='$envsize'
+set ubootenv.@ubootenv[-1].secsize='$secsize'
+set ubootenv.@ubootenv[-1].numsec='$numsec'
+EOF
+       uci commit ubootenv
+}
+
+ubootenv_add_app_config() {
+       local dev
+       local offset
+       local envsize
+       local secsize
+       local numsec
+       config_get dev "$1" dev
+       config_get offset "$1" offset
+       config_get envsize "$1" envsize
+       config_get secsize "$1" secsize
+       config_get numsec "$1" numsec
+       echo "$dev $offset $envsize $secsize $numsec" >>/etc/fw_env.config
+}
+
diff --git a/package/uboot-envtools/patches/001-crc32_func_signature.patch 
b/package/uboot-envtools/patches/001-crc32_func_signature.patch
index da9742f..1f217ba 100644
--- a/package/uboot-envtools/patches/001-crc32_func_signature.patch
+++ b/package/uboot-envtools/patches/001-crc32_func_signature.patch
@@ -110,15 +110,6 @@
  
        /* write environment back to flash */
        if (flash_io(O_RDWR)) {
-@@ -802,7 +804,7 @@ static int flash_write_buf (int dev, int
-               data = malloc (erase_len);
-               if (!data) {
-                       fprintf (stderr,
--                               "Cannot malloc %u bytes: %s\n",
-+                               "Cannot malloc %zu bytes: %s\n",
-                                erase_len, strerror (errno));
-                       return -1;
-               }
 @@ -1107,7 +1109,7 @@ int fw_env_open(void)
        if (flash_io (O_RDONLY))
                return -1;
diff --git a/package/uboot-envtools/patches/002-makefile.patch 
b/package/uboot-envtools/patches/002-makefile.patch
index ddd08e1..b18bff6 100644
--- a/package/uboot-envtools/patches/002-makefile.patch
+++ b/package/uboot-envtools/patches/002-makefile.patch
@@ -1,13 +1,13 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -21,37 +21,16 @@
+@@ -21,34 +21,17 @@
  # MA 02111-1307 USA
  #
  
 -include $(TOPDIR)/config.mk
 -
--HOSTSRCS := $(obj)crc32.c  fw_env.c  fw_env_main.c
-+SRCS := crc32.c  fw_env.c  fw_env_main.c
+-HOSTSRCS := $(SRCTREE)/lib/crc32.c  fw_env.c  fw_env_main.c
++SRCS := crc32.c fw_env.c fw_env_main.c
  HEADERS       := fw_env.h
  
 -# Compile for a hosted environment on the target
@@ -19,27 +19,26 @@
 -ifeq ($(MTD_VERSION),old)
 -HOSTCPPFLAGS += -DMTD_OLD
 -endif
-+CPPFLAGS := -Wall $(CFLAGS)
- 
- all:  $(obj)fw_printenv
- 
- # Some files complain if compiled with -pedantic, use HOSTCFLAGS_NOPED
+-
+-all:  $(obj)fw_printenv
+-
+-# Some files complain if compiled with -pedantic, use HOSTCFLAGS_NOPED
 -$(obj)fw_printenv:    $(HOSTSRCS) $(HEADERS)
 -      $(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTLDFLAGS) -o $@ $(HOSTSRCS)
-+$(obj)fw_printenv:    $(SRCS) $(HEADERS)
-+      $(CC) $(CPPFLAGS) $(SRCS) -o $(obj)fw_printenv
++CPPFLAGS := -Wall $(CFLAGS)
+ 
+-clean:
+-      rm -f $(obj)fw_printenv
++all: fw_printenv
  
- clean:
--      rm -f $(obj)fw_printenv $(obj)crc32.c
--
--$(obj)crc32.c:
--      ln -s $(src)../../lib/crc32.c $(obj)crc32.c
--
 -#########################################################################
--
++fw_printenv: $(SRCS) $(HEADERS)
++      $(CC) $(CPPFLAGS) $(SRCS) -o fw_printenv
+ 
 -include $(TOPDIR)/rules.mk
 -
 -sinclude $(obj).depend
--
--#########################################################################
-+      rm -f $(obj)fw_printenv
++clean:
++      rm -f fw_printenv
+ 
+ #########################################################################
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/ubootenv 
b/target/linux/ar71xx/base-files/etc/uci-defaults/ubootenv
deleted file mode 100755
index 687f340..0000000
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/ubootenv
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2011 OpenWrt.org
-#
-
-add_ubootenv() {
-       local dev=$1
-       local offset=$2
-       local envsize=$3
-       local secsize=$4
-       local numsec=$5
-       uci batch <<EOF
-add ubootenv ubootenv
-set ubootenv.@ubootenv[-1].dev='$dev'
-set ubootenv.@ubootenv[-1].offset='$offset'
-set ubootenv.@ubootenv[-1].envsize='$envsize'
-set ubootenv.@ubootenv[-1].secsize='$secsize'
-set ubootenv.@ubootenv[-1].numsec='$numsec'
-EOF
-}
-
-[ -e /etc/config/ubootenv ] && exit 0
-
-touch /etc/config/ubootenv
-
-. /lib/ar71xx.sh
-
-board=$(ar71xx_board_name)
-
-case "$board" in
-all0258n)
-       add_ubootenv /dev/mtd1 0x0 0x10000 0x10000
-       ;;
-
-esac
-
-uci commit ubootenv
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/all0258n.sh 
b/target/linux/ar71xx/base-files/lib/upgrade/all0258n.sh
index fbcdd41..0873a73 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/all0258n.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/all0258n.sh
@@ -8,7 +8,6 @@ CI_FLADDR=0x9f050000
 # make sure we got uboot-envtools and fw_env.config copied over to the ramfs
 platform_add_ramfs_ubootenv() {
        [ -e /usr/sbin/fw_printenv ] && install_bin /usr/sbin/fw_printenv 
/usr/sbin/fw_setenv
-       [ -e /etc/fw_env.config ] && install_file /etc/fw_env.config
 }
 append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
 
diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/uboot_environment 
b/target/linux/lantiq/base-files/etc/uci-defaults/uboot_environment
deleted file mode 100644
index 58a78df..0000000
--- a/target/linux/lantiq/base-files/etc/uci-defaults/uboot_environment
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2012 OpenWrt.org
-#
-
-uboot_environment_configuration() {
-       local dev=$1
-       local offset=$2
-       local envsize=$3
-       local secsize=$4
-       local numsec=$5
-       echo "$dev $offset $envsize $secsize $numsec" > /etc/fw_env.config
-}
-
-[ -e /etc/config/fw_env.config ] && exit 0
-
-. /lib/lantiq.sh
-
-board=$(lantiq_board_name)
-
-case "$board" in
-GIGASX76X)
-       uboot_environment_configuration "/dev/mtd1" "0x0" "0x10000" "0x10000" 
"1"
-       ;;
-
-*)
-       # custom foo goes here
-       true
-       ;;
-esac
-
-exit 0
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to