Skip to contentSkip to conversation

Introduce new deprecation symbols, and remove squashfs3/ttcp

PATCH New Thomas De Schampheleire 3 participants 13 messages Jan 3, 2014 – Jan 10, 2014 SquashFS file system

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 Introduce new deprecation symbols, and remove squashfs3/ttcp

In this third version I have stopped using the feature-removal-schedule.txt file, and moved to an alternate strategy: introduce symbols BR2_DEPRECATED_SINCE_xxxx_xx, which also provide an indication of when features can be removed.

---
 Config.in                                              |  42 +++++++++++++-
 Config.in.legacy                                       |  24 ++++++++
 arch/Config.in.mips                                    |   8 +-
 docs/manual/appendix.txt                               |   8 ++-
 fs/squashfs/Config.in                                  |  16 -----
 fs/squashfs/squashfs.mk                                |  12 ----
 package/Config.in                                      |   2 -
 package/autoconf/Config.in                             |   2 +-
 package/automake/Config.in                             |   2 +-
 package/bison/Config.in                                |   4 +-
 package/busybox/Config.in                              |   2 +-
 package/ccache/Config.in                               |   2 +-
 package/flex/Config.in                                 |   3 +-
 package/gcc/Config.in.host                             |   4 +-
 package/gdb/Config.in.host                             |   4 +-
 package/gob2/Config.in                                 |   3 +-
 package/linux-headers/Config.in.host                   |  14 ++--
 package/lzma/Config.in                                 |   4 +-
 package/m4/Config.in                                   |   3 +-
 package/squashfs3/Config.in                            |  12 ----
 package/squashfs3/squashfs3-3.4-build-system-fix.patch |  37 ------------
 package/squashfs3/squashfs3-3.4-get_nprocs.patch       |  33 -----------
 package/squashfs3/squashfs3.mk                         |  34 -----------
 package/ttcp/Config.in                                 |   7 --
 package/ttcp/ttcp-0001-replace-deprecated-bcopy.patch  |  15 -----
 package/ttcp/ttcp.mk                                   |  25 --------
 package/vala/Config.in                                 |   4 +-
 package/xstroke/Config.in                              |   2 +-
 support/scripts/gen-manual-lists.py                    |  21 ++++---
 toolchain/toolchain-external/Config.in                 |   8 +-
 30 files changed, 121 insertions(+), 236 deletions(-)
#1 lore raw

PATCH v3 1/1 deprecated handling: introduce BR2_DEPRECATED_SINCE_xxxx_xx

In order to keep better track of when a feature got deprecated, and hence when it can be removed, a new set of symbols BR2_DEPRECATED_SINCE_xxxx_xx is introduced. These symbols are automatically selected when BR2_DEPRECATED is selected, and thus are transparent to the user.
A deprecated feature will no longer depend on BR2_DEPRECATED directly, but rather on the appropriate BR2_DEPRECATED_SINCE_xxxx_xx. If that symbol does not yet exist, it has to be created in Config.in.
When removing a deprecated feature, one should also check whether this was the last feature using the BR2_DEPRECATED_SINCE_xxxx_xx symbol, in which case the latter can be removed from Config.in.

A followup patch will make sure the overview is added to the list of deprecated features in the manual, so that a buildroot core developer can easily determine which features to remove in a given development cycle.

---
 Config.in                              |  42 +++++++++++++++++++++++++++++-
 arch/Config.in.mips                    |   8 ++--
 fs/squashfs/Config.in                  |   2 +-
 package/autoconf/Config.in             |   2 +-
 package/automake/Config.in             |   2 +-
 package/bison/Config.in                |   4 ++-
 package/busybox/Config.in              |   2 +-
 package/ccache/Config.in               |   2 +-
 package/flex/Config.in                 |   3 +-
 package/gcc/Config.in.host             |   4 +-
 package/gdb/Config.in.host             |   4 +-
 package/gob2/Config.in                 |   3 +-
 package/linux-headers/Config.in.host   |  14 +++++-----
 package/lzma/Config.in                 |   4 +-
 package/m4/Config.in                   |   3 +-
 package/squashfs3/Config.in            |   4 +-
 package/ttcp/Config.in                 |   2 +-
 package/vala/Config.in                 |   4 +-
 package/xstroke/Config.in              |   2 +-
 toolchain/toolchain-external/Config.in |   8 ++--
 20 files changed, 82 insertions(+), 37 deletions(-)
Config.in +41 -1
@@ -254,6 +254,46 @@ config BR2_DEPRECATED
 	help
 	  This option hides outdated/obsolete versions of packages.
 
+if BR2_DEPRECATED
+
+config BR2_DEPRECATED_SINCE_2010_05
+	bool
+	default y
+
+config BR2_DEPRECATED_SINCE_2010_11
+	bool
+	default y
+
+config BR2_DEPRECATED_SINCE_2012_05
+	bool
+	default y
+
+config BR2_DEPRECATED_SINCE_2012_11
+	bool
+	default y
+
+config BR2_DEPRECATED_SINCE_2013_02
+	bool
+	default y
+
+config BR2_DEPRECATED_SINCE_2013_05
+	bool
+	default y
+
+config BR2_DEPRECATED_SINCE_2013_08
+	bool
+	default y
+
+config BR2_DEPRECATED_SINCE_2013_11
+	bool
+	default y
+
+config BR2_DEPRECATED_SINCE_2014_02
+	bool
+	default y
+
+endif
+
 config BR2_ENABLE_DEBUG
 	bool "build packages with debugging symbols"
 	help
@@ -443,7 +483,7 @@ config BR2_PREFER_STATIC_LIB
 config BR2_HAVE_DOCUMENTATION
 	bool "documentation on the target"
 	# We no longer want to support a toolchain on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2012_11
 	help
 	  Install the documentation, including manual pages and info
 	  pages, on the target.
arch/Config.in.mips +4 -4
@@ -11,16 +11,16 @@ choice
 
 config BR2_mips_1
 	bool "mips I (generic)"
-	depends on !BR2_ARCH_IS_64 && BR2_DEPRECATED
+	depends on !BR2_ARCH_IS_64 && BR2_DEPRECATED_SINCE_2013_11
 config BR2_mips_2
 	bool "mips II"
-	depends on !BR2_ARCH_IS_64 && BR2_DEPRECATED
+	depends on !BR2_ARCH_IS_64 && BR2_DEPRECATED_SINCE_2013_11
 config BR2_mips_3
 	bool "mips III"
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2013_11
 config BR2_mips_4
 	bool "mips IV"
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2013_11
 config BR2_mips_32
 	bool "mips 32"
 	depends on !BR2_ARCH_IS_64
fs/squashfs/Config.in +1 -1
@@ -15,7 +15,7 @@ config BR2_TARGET_ROOTFS_SQUASHFS4
 	bool "4.x"
 
 config BR2_TARGET_ROOTFS_SQUASHFS3
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2010_05
 	bool "3.x"
 
 endchoice
package/autoconf/Config.in +1 -1
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_AUTOCONF
 	bool "autoconf"
 	# We no longer support a toolchain on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2012_11
 	select BR2_PACKAGE_PERL
 	help
 	  Extensible program for developing configure scripts.  These
package/automake/Config.in +1 -1
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_AUTOMAKE
 	bool "automake"
 	# We no longer support a toolchain on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2012_11
 	select BR2_PACKAGE_AUTOCONF
 	select BR2_PACKAGE_PERL
 	help
package/bison/Config.in +3 -1
@@ -5,7 +5,7 @@ config BR2_PACKAGE_BISON
 	# m4 uses fork()
 	depends on BR2_USE_MMU
 	# development tool, useless on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	help
 	  General-purpose parser generator that converts a
 	  grammar description for an LALR context-free grammar into a C
@@ -14,4 +14,6 @@ config BR2_PACKAGE_BISON
 	  http://www.gnu.org/software/bison/
 
 comment "bison needs a toolchain w/ wchar"
+	depends on BR2_DEPRECATED_SINCE_2014_02
+	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR
package/busybox/Config.in +1 -1
@@ -19,7 +19,7 @@ choice
 
 	config BR2_BUSYBOX_VERSION_1_19_X
 		bool "BusyBox 1.19.x"
-		depends on BR2_DEPRECATED
+		depends on BR2_DEPRECATED_SINCE_2014_02
 
 	config BR2_BUSYBOX_VERSION_1_20_X
 		bool "BusyBox 1.20.x"
package/ccache/Config.in +1 -1
@@ -3,7 +3,7 @@ config BR2_PACKAGE_CCACHE
 	# needs fork()
 	depends on BR2_USE_MMU
 	# We no longer support a toolchain on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2013_02
 	help
 	  ccache is a compiler cache. It speeds up recompilation by
 	  caching previous compilations and detecting when the same
package/flex/Config.in +2 -1
@@ -16,12 +16,13 @@ config BR2_PACKAGE_FLEX_BINARY
 	# runtime dependency
 	select BR2_PACKAGE_M4
 	# development tool, useless on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	depends on BR2_USE_WCHAR # m4
 	help
 	  Install the flex binary tool in the target filesystem.
 
 comment "flex binary needs a toolchain w/ wchar"
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR
 
package/gcc/Config.in.host +2 -2
@@ -124,7 +124,7 @@ comment "C++ support broken in uClibc wi
 config BR2_INSTALL_OBJC
 	bool "Enable Objective-C support"
 	depends on !BR2_avr32
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2013_11
 	help
 	  Enable the support for the Objective-C language in the
 	  cross-compiler, and install the Objective-C runtime to the
@@ -133,7 +133,7 @@ config BR2_INSTALL_OBJC
 config BR2_INSTALL_FORTRAN
 	bool "Enable Fortran support"
 	depends on !BR2_avr32
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2013_11
 	select BR2_PACKAGE_LIBMPFR
 	help
 	  Enable the support for the Fortran language in the
package/gdb/Config.in.host +2 -2
@@ -34,12 +34,12 @@ choice
 	config BR2_GDB_VERSION_7_2
 		bool "gdb 7.2.x"
 		depends on !BR2_bfin
-		depends on BR2_DEPRECATED
+		depends on BR2_DEPRECATED_SINCE_2013_02
 
 	config BR2_GDB_VERSION_7_3
 		bool "gdb 7.3.x"
 		depends on !BR2_bfin
-		depends on BR2_DEPRECATED
+		depends on BR2_DEPRECATED_SINCE_2013_02
 
 	config BR2_GDB_VERSION_7_4
 		bool "gdb 7.4.x"
package/gob2/Config.in +2 -1
@@ -7,7 +7,7 @@ config BR2_PACKAGE_GOB2
 	select BR2_PACKAGE_FLEX
 	select BR2_PACKAGE_BISON
 	# development tool, useless on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	help
 	  GOB (GTK+ Object Builder) is a preprocessor which simplifies
 	  the writing of GObjects in C.
@@ -16,4 +16,5 @@ config BR2_PACKAGE_GOB2
 
 comment "gob2 needs a toolchain w/ wchar"
 	depends on BR2_USE_MMU
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
package/linux-headers/Config.in.host +7 -7
@@ -20,7 +20,7 @@ choice
 
 	config BR2_KERNEL_HEADERS_3_1
 		bool "Linux 3.1.x kernel headers"
-		depends on BR2_DEPRECATED && !BR2_arc
+		depends on BR2_DEPRECATED_SINCE_2013_02 && !BR2_arc
 
 	config BR2_KERNEL_HEADERS_3_2
 		bool "Linux 3.2.x kernel headers"
@@ -28,7 +28,7 @@ choice
 
 	config BR2_KERNEL_HEADERS_3_3
 		bool "Linux 3.3.x kernel headers"
-		depends on BR2_DEPRECATED && !BR2_arc
+		depends on BR2_DEPRECATED_SINCE_2013_02 && !BR2_arc
 
 	config BR2_KERNEL_HEADERS_3_4
 		bool "Linux 3.4.x kernel headers"
@@ -36,23 +36,23 @@ choice
 
 	config BR2_KERNEL_HEADERS_3_5
 		bool "Linux 3.5.x kernel headers"
-		depends on BR2_DEPRECATED && !BR2_arc
+		depends on BR2_DEPRECATED_SINCE_2013_02 && !BR2_arc
 
 	config BR2_KERNEL_HEADERS_3_6
 		bool "Linux 3.6.x kernel headers"
-		depends on BR2_DEPRECATED && !BR2_arc
+		depends on BR2_DEPRECATED_SINCE_2013_05 && !BR2_arc
 
 	config BR2_KERNEL_HEADERS_3_7
 		bool "Linux 3.7.x kernel headers"
-		depends on BR2_DEPRECATED && !BR2_arc
+		depends on BR2_DEPRECATED_SINCE_2013_05 && !BR2_arc
 
 	config BR2_KERNEL_HEADERS_3_8
 		bool "Linux 3.8.x kernel headers"
-		depends on BR2_DEPRECATED && !BR2_arc
+		depends on BR2_DEPRECATED_SINCE_2013_08 && !BR2_arc
 
 	config BR2_KERNEL_HEADERS_3_9
 		bool "Linux 3.9.x kernel headers"
-		depends on BR2_DEPRECATED
+		depends on BR2_DEPRECATED_SINCE_2013_11
 
 	config BR2_KERNEL_HEADERS_3_10
 		bool "Linux 3.10.x kernel headers"
package/lzma/Config.in +2 -2
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_LZMA
 	bool "lzma"
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2010_11
 	help
 	  Lempel Ziv compression method (LZMA) is a compression
 	  algorithm with high compression ratio.
@@ -9,5 +9,5 @@ config BR2_PACKAGE_LZMA
 	  http://tukaani.org/lzma/
 
 comment "lzma needs a toolchain w/ C++"
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2010_11
 	depends on !BR2_INSTALL_LIBSTDCPP
package/m4/Config.in +2 -1
@@ -4,12 +4,13 @@ config BR2_PACKAGE_M4
 	# uses fork()
 	depends on BR2_USE_MMU
 	# development tool, useless on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	help
 	  An implementation of the traditional Unix macro processor.
 
 	  http://www.gnu.org/software/m4/m4.html
 
 comment "m4 needs a toolchain w/ wchar"
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR
package/squashfs3/Config.in +2 -2
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_SQUASHFS3
 	bool "squashfs3"
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2010_05
 	depends on BR2_LARGEFILE
 	help
 	  Tools to generate SquashFS 3.x filesystems.
@@ -8,5 +8,5 @@ config BR2_PACKAGE_SQUASHFS3
 	  http://squashfs.sourceforge.net/
 
 comment "squashfs3 needs a toolchain w/ largefile"
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2010_05
 	depends on !BR2_LARGEFILE
package/ttcp/Config.in +1 -1
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_TTCP
 	bool "ttcp"
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2012_05
 	help
 	  Benchmarking tool for determining TCP and UDP performance.
 
package/vala/Config.in +2 -2
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_VALA
 	bool "vala"
 	# We no longer support a toolchain on the target
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2013_05
 	depends on BR2_USE_WCHAR # glib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
@@ -14,6 +14,6 @@ config BR2_PACKAGE_VALA
 	  http://live.gnome.org/Vala
 
 comment "vala needs a toolchain w/ wchar, threads"
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2013_05
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
package/xstroke/Config.in +1 -1
@@ -2,7 +2,7 @@ config BR2_PACKAGE_XSTROKE
 	bool "xstroke"
 	depends on BR2_PACKAGE_XORG7
 	# dead upstream, probably not many users
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2013_02
 	select BR2_PACKAGE_XLIB_LIBXFT
 	select BR2_PACKAGE_XLIB_LIBXTST
 	select BR2_PACKAGE_XLIB_LIBXPM
support/scripts/gen-manual-lists.py +3 -1
@@ -234,7 +234,9 @@ class Buildroot:
         """ Return True if the symbol is marked as deprecated, otherwise False.
 
         """
-        return self._deprecated in symbol.get_referenced_symbols()
+        # This also catches BR2_DEPRECATED_SINCE_xxxx_xx
+        return bool([ symbol for x in symbol.get_referenced_symbols()
+            if x.get_name().startswith(self._deprecated.get_name()) ])
 
     def _is_package(self, symbol):
         """ Return True if the symbol is a package or a host package, otherwise
toolchain/toolchain-external/Config.in +4 -4
@@ -721,7 +721,7 @@ config BR2_TOOLCHAIN_EXTERNAL_XILINX_MIC
 	depends on BR2_microblazeel
 	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
 	depends on !BR2_PREFER_STATIC_LIB
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
@@ -735,7 +735,7 @@ config BR2_TOOLCHAIN_EXTERNAL_XILINX_MIC
 	depends on BR2_microblazeel
 	depends on BR2_HOSTARCH = "x86_64"
 	depends on !BR2_PREFER_STATIC_LIB
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	help
@@ -747,7 +747,7 @@ config BR2_TOOLCHAIN_EXTERNAL_XILINX_MIC
 	depends on BR2_microblazebe
 	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
 	depends on !BR2_PREFER_STATIC_LIB
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	select BR2_HOSTARCH_NEEDS_IA32_LIBS
@@ -761,7 +761,7 @@ config BR2_TOOLCHAIN_EXTERNAL_XILINX_MIC
 	depends on BR2_microblazebe
 	depends on BR2_HOSTARCH = "x86_64"
 	depends on !BR2_PREFER_STATIC_LIB
-	depends on BR2_DEPRECATED
+	depends on BR2_DEPRECATED_SINCE_2014_02
 	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	help
#2 lore raw

PATCH v3 1/1 deprecated handling: introduce BR2_DEPRECATED_SINCE_xxxx_xx

Quoted 11 lines · Thomas De Schampheleire

In order to keep better track of when a feature got deprecated, and hence when it can be removed, a new set of symbols BR2_DEPRECATED_SINCE_xxxx_xx is introduced. These symbols are automatically selected when BR2_DEPRECATED is selected, and thus are transparent to the user.
A deprecated feature will no longer depend on BR2_DEPRECATED directly, but rather on the appropriate BR2_DEPRECATED_SINCE_xxxx_xx. If that symbol does not yet exist, it has to be created in Config.in.
When removing a deprecated feature, one should also check whether this was the last feature using the BR2_DEPRECATED_SINCE_xxxx_xx symbol, in which case the latter can be removed from Config.in.

Quoted 3 lines

A followup patch will make sure the overview is added to the list of deprecated features in the manual, so that a buildroot core developer can easily determine which features to remove in a given development cycle.

Just a small note: this patch series does not yet really add this overview to the manual, I now realize. The manual looks as before, except that the name of the symbol itself got added. I will try to make a followup patch that changes that, but I think it can be independent of this series.

#3 lore raw

PATCH v3 1/1 deprecated handling: introduce BR2_DEPRECATED_SINCE_xxxx_xx

In reply to Thomas De Schampheleire
Quoted 11 lines · Thomas De Schampheleire

In order to keep better track of when a feature got deprecated, and hence when it can be removed, a new set of symbols BR2_DEPRECATED_SINCE_xxxx_xx is introduced. These symbols are automatically selected when BR2_DEPRECATED is selected, and thus are transparent to the user.
A deprecated feature will no longer depend on BR2_DEPRECATED directly, but rather on the appropriate BR2_DEPRECATED_SINCE_xxxx_xx. If that symbol does not yet exist, it has to be created in Config.in.
When removing a deprecated feature, one should also check whether this was the last feature using the BR2_DEPRECATED_SINCE_xxxx_xx symbol, in which case the latter can be removed from Config.in.

Quoted 3 lines

A followup patch will make sure the overview is added to the list of deprecated features in the manual, so that a buildroot core developer can easily determine which features to remove in a given development cycle.

Just a small note: this patch series does not yet really add this overview to the manual, I now realize. The manual looks as before, except that the name of the symbol itself got added. I will try to make a followup patch that changes that, but I think it can be independent of this series.

#4 lore raw

PATCH v3 1/1 deprecated handling: introduce BR2_DEPRECATED_SINCE_xxxx_xx

In reply to Thomas De Schampheleire
Quoted 11 lines · Thomas De Schampheleire

In order to keep better track of when a feature got deprecated, and hence when it can be removed, a new set of symbols BR2_DEPRECATED_SINCE_xxxx_xx is introduced. These symbols are automatically selected when BR2_DEPRECATED is selected, and thus are transparent to the user.
A deprecated feature will no longer depend on BR2_DEPRECATED directly, but rather on the appropriate BR2_DEPRECATED_SINCE_xxxx_xx. If that symbol does not yet exist, it has to be created in Config.in.
When removing a deprecated feature, one should also check whether this was the last feature using the BR2_DEPRECATED_SINCE_xxxx_xx symbol, in which case the latter can be removed from Config.in.

Quoted 5 lines

A followup patch will make sure the overview is added to the list of deprecated features in the manual, so that a buildroot core developer can easily determine which features to remove in a given development cycle.

At first I was afraid of the complexity added by this patch, but it's
actually not that bad. Therefore:

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#5 lore raw

PATCH v3 1/1 deprecated handling: introduce BR2_DEPRECATED_SINCE_xxxx_xx

In reply to Thomas De Schampheleire
Quoted 13 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas De Schampheleire <[email protected]> writes:

In order to keep better track of when a feature got deprecated, and hence when it can be removed, a new set of symbols BR2_DEPRECATED_SINCE_xxxx_xx is introduced. These symbols are automatically selected when BR2_DEPRECATED is selected, and thus are transparent to the user.
A deprecated feature will no longer depend on BR2_DEPRECATED directly, but rather on the appropriate BR2_DEPRECATED_SINCE_xxxx_xx. If that symbol does not yet exist, it has to be created in Config.in.
When removing a deprecated feature, one should also check whether this was the last feature using the BR2_DEPRECATED_SINCE_xxxx_xx symbol, in which case the latter can be removed from Config.in.

Quoted 5 lines

A followup patch will make sure the overview is added to the list of deprecated features in the manual, so that a buildroot core developer can easily determine which features to remove in a given development cycle.

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#6 lore raw

PATCH v3 1/1 manual: clarify handling of deprecated features

In reply to Thomas De Schampheleire
---
 docs/manual/appendix.txt |  8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
docs/manual/appendix.txt +7 -1
@@ -29,6 +29,12 @@ Deprecated features
 -------------------
 
 The following features are marked as _deprecated_ in Buildroot due to
-their status either too old or unmaintained.
+them being either too old or unmaintained. They will be removed at
+some point, so stop using them.
+Each deprecated symbol in kconfig depends on a symbol
++BR2_DEPRECATED_SINCE_xxxx_xx+, which provides an indication of when
+the feature can be removed: features will not be removed within the
+year following deprecation. For example, a symbol depending on
++BR2_DEPRECATED_SINCE_2013_05+ can be removed from 2014.05 onwards.
 
 include::deprecated-list.txt[]
#7 lore raw

PATCH v3 1/1 manual package list: add symbol name in table

In reply to Thomas De Schampheleire

Particularly in the list of deprecated packages, it is not always clear what the entry name refers to. For example, for squashfs3 rootfs support, the string is simply "3.x". Likewise for the flex target binary: "Install tool in the target".

To clarify the entries, add the actual symbol name (BR2_xxx) in the table.

---
 support/scripts/gen-manual-lists.py |  17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)
support/scripts/gen-manual-lists.py +9 -8
@@ -124,20 +124,20 @@ def format_asciidoc_table(root, get_labe
     :param sub_menu:       Output the column with the sub-menu path
 
     """
-    def _format_entry(item, parents, sub_menu):
+    def _format_entry(item, symbol, parents, sub_menu):
         """ Format an asciidoc table entry.
 
         """
         if sub_menu:
-            return "| {0:<40} <| {1}\n".format(item, " -> ".join(parents))
+            return "| {0:<40} <| {1} | {2}\n".format(item, symbol, " -> ".join(parents))
         else:
-            return "| {0:<40}\n".format(item)
+            return "| {0:<40} | {1}\n".format(item, symbol)
     lines = []
     for item in get_symbol_subset(root, filter_func):
         if not item.is_symbol() or not item.prompts:
             continue
         loc = get_symbol_parents(item, root, enable_choice=enable_choice)
-        lines.append(_format_entry(get_label_func(item), loc, sub_menu))
+        lines.append(_format_entry(get_label_func(item), item.get_name(), loc, sub_menu))
     if sorted:
         lines.sort(key=lambda x: x.lower())
     if hasattr(root, "get_title"):
@@ -147,16 +147,17 @@ def format_asciidoc_table(root, get_labe
         loc_label = ["Location"]
     if not item_label:
         item_label = "Items"
+    symbol_label = "Symbol"
     table = ":halign: center\n\n"
     if sub_menu:
         width = "100%"
-        columns = "^1,4"
+        columns = "^1,1,4"
     else:
-        width = "30%"
-        columns = "^1"
+        width = "60%"
+        columns = "^1,1"
     table = "[width=\"{0}\",cols=\"{1}\",options=\"header\"]\n".format(width, columns)
     table += "|===================================================\n"
-    table += _format_entry(item_label, loc_label, sub_menu)
+    table += _format_entry(item_label, symbol_label, loc_label, sub_menu)
     table += "\n" + "".join(lines) + "\n"
     table += "|===================================================\n"
     return table
#8 lore raw

PATCH v3 1/1 manual package list: add symbol name in table

Quoted 8 lines · Thomas De Schampheleire

Particularly in the list of deprecated packages, it is not always clear what the entry name refers to. For example, for squashfs3 rootfs support, the string is simply "3.x". Likewise for the flex target binary: "Install tool in the target".

To clarify the entries, add the actual symbol name (BR2_xxx) in the table.

I checked the PDF output, and the column with the symbol names
overflows into the following column, rendering the whole thing unreadable.

Since it's only the two entries that you mention that are confusing,
and since the squashfs3 part will be removed in the next patch, I'd dispense of this completely and instead change the wording of the flex symbol.

Regards,
Arnout

[snip]

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#9 lore raw

PATCH v3 1/1 squashfs3: remove deprecated package/rootfs

In reply to Thomas De Schampheleire

---
Note: I did not add a legacy entry for BR2_TARGET_ROOTFS_SQUASHFS4 because it's simply removed, its role now played by the parent BR2_TARGET_ROOTFS_SQUASHFS. Therefore, I don't think we need legacy symbols in this case, right?

 Config.in.legacy                                       |  17 ++++++
 fs/squashfs/Config.in                                  |  16 ------
 fs/squashfs/squashfs.mk                                |  12 ----
 package/Config.in                                      |   1 -
 package/squashfs3/Config.in                            |  12 ----
 package/squashfs3/squashfs3-3.4-build-system-fix.patch |  37 --------------
 package/squashfs3/squashfs3-3.4-get_nprocs.patch       |  33 ------------
 package/squashfs3/squashfs3.mk                         |  34 ------------
 8 files changed, 17 insertions(+), 145 deletions(-)
Config.in.legacy +17 -0
@@ -101,6 +101,23 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2014.02"
 
+config BR2_PACKAGE_SQUASHFS3
+	bool "squashfs3 has been removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_SQUASHFS
+	help
+	  The 'squashfs3' package has been removed since it has been
+	  deprecated for more than four buildroot releases. Package
+	  'squashfs' (4) has been selected automatically as replacement.
+
+config BR2_TARGET_ROOTFS_SQUASHFS3
+	bool "squashfs3 rootfs support has been removed"
+	select BR2_LEGACY
+	help
+	  Together with the removal of the squashfs3 package, support
+	  for squashfs3 root filesystems has been removed too. Squashfs
+	  root filesystems will automatically use squashfs4 now.
+
 config BR2_PACKAGE_NETKITBASE
 	bool "netkitbase has been removed"
 	select BR2_LEGACY
fs/squashfs/Config.in +0 -16
@@ -4,26 +4,10 @@ config BR2_TARGET_ROOTFS_SQUASHFS
 	  Build a squashfs root filesystem
 
 if BR2_TARGET_ROOTFS_SQUASHFS
-choice
-	prompt "SquashFS version"
-	default BR2_TARGET_ROOTFS_SQUASHFS4
-	help
-	  Select the Squash filesystem version to use to generate the
-	  root filesystem.
-
-config BR2_TARGET_ROOTFS_SQUASHFS4
-	bool "4.x"
-
-config BR2_TARGET_ROOTFS_SQUASHFS3
-	depends on BR2_DEPRECATED_SINCE_2010_05
-	bool "3.x"
-
-endchoice
 
 choice
 	prompt "Compression algorithm"
 	default BR2_TARGET_ROOTFS_SQUASHFS4_GZIP
-	depends on BR2_TARGET_ROOTFS_SQUASHFS4
 	help
 	  Select the squashfs compression algorithm to use when
 	  generating the filesystem.
fs/squashfs/squashfs.mk +0 -12
@@ -4,7 +4,6 @@
 #
 ################################################################################
 
-ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4),y)
 ROOTFS_SQUASHFS_DEPENDENCIES = host-squashfs
 
 ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS4_LZO),y)
@@ -21,17 +20,6 @@ endif
 endif
 endif
 
-else
-ROOTFS_SQUASHFS_DEPENDENCIES = host-squashfs3
-
-ifeq ($(BR2_ENDIAN),"BIG")
-ROOTFS_SQUASHFS_ARGS=-be
-else
-ROOTFS_SQUASHFS_ARGS=-le
-endif
-
-endif
-
 define ROOTFS_SQUASHFS_CMD
 	$(HOST_DIR)/usr/bin/mksquashfs $(TARGET_DIR) $@ -noappend \
 		$(ROOTFS_SQUASHFS_ARGS) && \
package/Config.in +0 -1
@@ -147,7 +147,6 @@ source "package/mtd/Config.in"
 source "package/nfs-utils/Config.in"
 source "package/ntfs-3g/Config.in"
 source "package/squashfs/Config.in"
-source "package/squashfs3/Config.in"
 source "package/sshfs/Config.in"
 source "package/sunxi-tools/Config.in"
 source "package/unionfs/Config.in"
package/squashfs3/Config.in deleted +0 -12
deleted file mode 100644
@@ -1,12 +0,0 @@
-config BR2_PACKAGE_SQUASHFS3
-	bool "squashfs3"
-	depends on BR2_DEPRECATED_SINCE_2010_05
-	depends on BR2_LARGEFILE
-	help
-	  Tools to generate SquashFS 3.x filesystems.
-
-	  http://squashfs.sourceforge.net/
-
-comment "squashfs3 needs a toolchain w/ largefile"
-	depends on BR2_DEPRECATED_SINCE_2010_05
-	depends on !BR2_LARGEFILE
package/squashfs3/squashfs3-3.4-build-system-fix.patch deleted +0 -37
deleted file mode 100644
@@ -1,37 +0,0 @@
-[PATCH]: squashfs-tools: Handle user supplied CFLAGS/LDFLAGS
-
-Properly handle make CFLAGS=.. LDFLAGS=..
-
-Signed-off-by: Peter Korsgaard <[email protected]>
----
- squashfs-tools/Makefile |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: squashfs3.4/squashfs-tools/Makefile
-===================================================================
---- squashfs3.4.orig/squashfs-tools/Makefile	2008-08-26 09:10:13.000000000 +0200
-+++ squashfs3.4/squashfs-tools/Makefile	2010-05-06 21:09:28.000000000 +0200
-@@ -2,12 +2,12 @@
- 
- INCLUDEDIR = .
- 
--CFLAGS := -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -O2
-+override CFLAGS += -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -O2
- 
- all: mksquashfs unsquashfs
- 
- mksquashfs: mksquashfs.o read_fs.o sort.o
--	$(CC) mksquashfs.o read_fs.o sort.o -lz -lpthread -lm -o $@
-+	$(CC) $(LDFLAGS) mksquashfs.o read_fs.o sort.o -lz -lpthread -lm -o $@
- 
- mksquashfs.o: mksquashfs.c squashfs_fs.h mksquashfs.h global.h sort.h
- 
-@@ -16,7 +16,7 @@
- sort.o: sort.c squashfs_fs.h global.h sort.h
- 
- unsquashfs: unsquashfs.o
--	$(CC) unsquashfs.o -lz -lpthread -lm -o $@
-+	$(CC) $(LDFLAGS) unsquashfs.o -lz -lpthread -lm -o $@
- 
- unsquashfs.o: unsquashfs.c squashfs_fs.h read_fs.h global.h
- 
package/squashfs3/squashfs3-3.4-get_nprocs.patch deleted +0 -33
deleted file mode 100644
@@ -1,33 +0,0 @@
-squashfs3: fix build with uClibc
-
-The squashfs3 package uses the old get_nprocs() GNU extension which does not
-exist in uClibc. This has already been fixed in newer squashfs releases
-(>=4.0).
-
-Signed-off-by: Markos Chandras <[email protected]>
-Index: squashfs3-3.4/squashfs-tools/mksquashfs.c
-===================================================================
---- squashfs3-3.4.orig/squashfs-tools/mksquashfs.c
-+++ squashfs3-3.4/squashfs-tools/mksquashfs.c
-@@ -3178,7 +3178,7 @@ void initialise_threads()
- 			processors = 1;
- 		}
- #else
--		processors = get_nprocs();
-+		processors = sysconf(_SC_NPROCESSORS_CONF);
- #endif
- 	}
- 
-Index: squashfs3-3.4/squashfs-tools/unsquashfs.c
-===================================================================
---- squashfs3-3.4.orig/squashfs-tools/unsquashfs.c
-+++ squashfs3-3.4/squashfs-tools/unsquashfs.c
-@@ -2428,7 +2428,7 @@ void initialise_threads(int fragment_buf
- 			processors = 1;
- 		}
- #else
--		processors = get_nprocs();
-+		processors = sysconf(_SC_NPROCESSORS_CONF);
- #endif
- 	}
- 
package/squashfs3/squashfs3.mk deleted +0 -34
deleted file mode 100644
@@ -1,34 +0,0 @@
-################################################################################
-#
-# squashfs3
-#
-################################################################################
-
-SQUASHFS3_VERSION = 3.4
-SQUASHFS3_SOURCE = squashfs$(SQUASHFS3_VERSION).tar.gz
-SQUASHFS3_SITE = http://downloads.sourceforge.net/project/squashfs/squashfs/$(SQUASHFS3_VERSION)
-
-SQUASHFS3_DEPENDENCIES = zlib
-
-define SQUASHFS3_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(MAKE)    \
-   CC="$(TARGET_CC)"           \
-   CFLAGS="$(TARGET_CFLAGS)"   \
-   LDFLAGS="$(TARGET_LDFLAGS)" \
-   -C $(@D)/squashfs-tools/
-endef
-
-define SQUASHFS3_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/squashfs-tools/ INSTALL_DIR=$(TARGET_DIR)/usr/bin install
-endef
-
-define HOST_SQUASHFS3_BUILD_CMDS
- $(HOST_MAKE_ENV) $(MAKE) CFLAGS="$(HOST_CFLAGS)" LDFLAGS="$(HOST_LDFLAGS)" -C $(@D)/squashfs-tools/
-endef
-
-define HOST_SQUASHFS3_INSTALL_CMDS
- $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/squashfs-tools/ INSTALL_DIR=$(HOST_DIR)/usr/bin install
-endef
-
-$(eval $(generic-package))
-$(eval $(host-generic-package))
#10 lore raw

PATCH v3 1/1 squashfs3: remove deprecated package/rootfs

Quoted 1 line · Thomas De Schampheleire
Quoted 6 lines

---
Note: I did not add a legacy entry for BR2_TARGET_ROOTFS_SQUASHFS4 because it's simply removed, its role now played by the parent BR2_TARGET_ROOTFS_SQUASHFS. Therefore, I don't think we need legacy symbols in this case, right?

This should have been part of the commit message...

But I agree with the principle.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#11 lore raw

PATCH v3 1/1 squashfs3: remove deprecated package/rootfs

In reply to Thomas De Schampheleire
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas De Schampheleire <[email protected]> writes:

---
Note: I did not add a legacy entry for BR2_TARGET_ROOTFS_SQUASHFS4 because it's simply removed, its role now played by the parent BR2_TARGET_ROOTFS_SQUASHFS. Therefore, I don't think we need legacy symbols in this case, right?

Committed with the now unused BR2_DEPRECATED_SINCE_2010_05 symbol removed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#12 lore raw

PATCH v3 1/1 ttcp: remove deprecated package

In reply to Thomas De Schampheleire
---
 Config.in.legacy                                      |   7 ++++
 package/Config.in                                     |   1 -
 package/ttcp/Config.in                                |   7 ----
 package/ttcp/ttcp-0001-replace-deprecated-bcopy.patch |  15 ---------
 package/ttcp/ttcp.mk                                  |  25 ---------------
 5 files changed, 7 insertions(+), 48 deletions(-)
Config.in.legacy +7 -0
@@ -101,6 +101,13 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2014.02"
 
+config BR2_PACKAGE_TTCP
+	bool "ttcp has been removed"
+	select BR2_LEGACY
+	help
+	  The 'ttcp' package has been removed since it has been
+	  deprecated for more than four buildroot releases.
+
 config BR2_PACKAGE_SQUASHFS3
 	bool "squashfs3 has been removed"
 	select BR2_LEGACY
package/Config.in +0 -1
@@ -915,7 +915,6 @@ source "package/thttpd/Config.in"
 source "package/tinyhttpd/Config.in"
 source "package/tn5250/Config.in"
 source "package/transmission/Config.in"
-source "package/ttcp/Config.in"
 source "package/tvheadend/Config.in"
 source "package/udpcast/Config.in"
 source "package/ulogd/Config.in"
package/ttcp/Config.in deleted +0 -7
deleted file mode 100644
@@ -1,7 +0,0 @@
-config BR2_PACKAGE_TTCP
-	bool "ttcp"
-	depends on BR2_DEPRECATED_SINCE_2012_05
-	help
-	  Benchmarking tool for determining TCP and UDP performance.
-
-	  ftp://ftp.sgi.com/sgi/src/ttcp/README
package/ttcp/ttcp-0001-replace-deprecated-bcopy.patch deleted +0 -15
deleted file mode 100644
@@ -1,15 +0,0 @@
-Replace deprecated bcopy call by using memmove instead.
-
-Index: b/ttcp.c
-===================================================================
---- a/ttcp.c
-+++ b/ttcp.c
-@@ -241,7 +241,7 @@
- 			if ((addr=gethostbyname(host)) == NULL)
- 				err("bad hostname");
- 			sinhim.sin_family = addr->h_addrtype;
--			bcopy(addr->h_addr,(char*)&addr_tmp, addr->h_length);
-+			memmove((char*)&addr_tmp, addr->h_addr, addr->h_length);
- #if defined(cray)
- 			sinhim.sin_addr = addr_tmp;
- #else
package/ttcp/ttcp.mk deleted +0 -25
deleted file mode 100644
@@ -1,25 +0,0 @@
-################################################################################
-#
-# ttcp
-#
-################################################################################
-
-TTCP_VERSION = 1.12
-TTCP_SITE    = ftp://ftp.sgi.com/sgi/src/ttcp/
-TTCP_SOURCE  = ttcp.c
-TTCP_LICENSE = public domain
-
-define TTCP_EXTRACT_CMDS
-	cp -f -t $(@D) $(DL_DIR)/$(TTCP_SOURCE)
-endef
-
-define TTCP_BUILD_CMDS
-	$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) \
-		-o $(@D)/ttcp $(@D)/$(TTCP_SOURCE)
-endef
-
-define TTCP_INSTALL_TARGET_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/ttcp $(TARGET_DIR)/usr/bin/ttcp
-endef
-
-$(eval $(generic-package))