diff --git a/BLFS/Makefile b/BLFS/Makefile
index 46ec0a4..50923b4 100644
--- a/BLFS/Makefile
+++ b/BLFS/Makefile
@@ -100,11 +100,9 @@ endif
$(BOOK_XML): $(CONFIG_OUT)
$(Q)$(TOPDIR)/gen_pkg_book.sh $(TOPDIR) $(BLFS_FULL) $(LFS_FULL)
-$(CONFIG_OUT): $(CONFIG_CONFIG_IN) $(MENU)/mconf
- $(Q)$(MENU)/mconf $(CONFIG_CONFIG_IN)
-
-$(MENU)/mconf:
- $(Q)$(MAKE) -C $(MENU) ncurses conf mconf
+$(CONFIG_OUT): $(CONFIG_CONFIG_IN)
+ $(Q)CONFIG_="" KCONFIG_CONFIG=configuration \
+ $(MENU)/menuconfig.py $(CONFIG_CONFIG_IN)
$(CONFIG_CONFIG_IN): $(PACK_LIST) $(XSLDIR)/gen_config.xsl
$(Q)xsltproc --nonet -o $@ $(XSLDIR)/gen_config.xsl $(PACK_LIST)
@@ -202,7 +200,6 @@ $(BLFS_XML):
clean:
rm -f $(CONFIG_OUT) $(CONFIG_OUT).old $(TOPDIR)/packages.xml $(XSLDIR)/specialCases.xsl $(CONFIG_CONFIG_IN) book.xml
rm -rf $(TOPDIR)/dependencies $(TOPDIR)/book-html $(TOPDIR)/scripts
- - $(MAKE) -C $(MENU) clean
FORCE:
.PHONY: clean all update $(CONFIG_OUT) FORCE
diff --git a/BLFS/xsl/gen_config.xsl b/BLFS/xsl/gen_config.xsl
index 29ef95a..ac73ee0 100644
--- a/BLFS/xsl/gen_config.xsl
+++ b/BLFS/xsl/gen_config.xsl
@@ -112,7 +112,7 @@ default n
menu "
"
-depends MENU_
+depends on MENU_
@@ -140,7 +140,7 @@ depends MENU_
menu "
"
- depends MENU_
+ depends on MENU_
@@ -187,7 +187,7 @@ depends MENU_
menu "
"
- depends MENU_
+ depends on MENU_
diff --git a/Config.in b/Config.in
index 34b74c8..08964f4 100644
--- a/Config.in
+++ b/Config.in
@@ -41,7 +41,7 @@ menu "BOOK Settings"
endchoice
choice
- depends BOOK_BLFS
+ depends on BOOK_BLFS
prompt "Init system"
config BLFS_SYSV
@@ -107,7 +107,7 @@ menu "BOOK Settings"
config BRANCH_ID
string "Branch (preceded by \"branch-\"), stable Version, or tag"
default "**EDIT ME**"
- depends BRANCH
+ depends on BRANCH
help
A list of valid branches and stable book IDs is available at
http://wiki.linuxfromscratch.org/alfs/wiki/SupportedBooks
@@ -118,7 +118,7 @@ menu "BOOK Settings"
config BOOK
string "Loc of working copy (mandatory)"
default "**EDIT ME**"
- depends WORKING_COPY
+ depends on WORKING_COPY
help
The full path to a local copy of the book XML sources
@@ -128,7 +128,7 @@ menu "BOOK Settings"
choice
prompt "Target architecture"
default ARCH_X86
- depends BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
+ depends on BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
help
Choose the target system base architecture
@@ -156,7 +156,7 @@ menu "BOOK Settings"
choice
prompt "Hardware Platform"
- depends BOOK_CLFS3 && ARCH_MIPS
+ depends on BOOK_CLFS3 && ARCH_MIPS
default PLATFORM_GENERIC
help
Choose a destination platform
@@ -171,7 +171,7 @@ menu "BOOK Settings"
choice
prompt "Library"
- depends (BOOK_CLFS && !ARCH_ALPHA) || (BOOK_CLFS3 && ARCH_MIPS)
+ depends on (BOOK_CLFS && !ARCH_ALPHA) || (BOOK_CLFS3 && ARCH_MIPS)
default DATA_32
help
Choose the target system libraries type
@@ -188,7 +188,7 @@ menu "BOOK Settings"
choice
prompt "Processor type"
- depends (BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3) && ((ARCH_X86 && !(DATA_64 || DATA_MULTI)) || ARCH_MIPS || ARCH_HPPA || ARCH_ALPHA || (ARCH_SPARC && (DATA_64 || DATA_MULTI)) || (ARCH_ARM && BOOK_CLFS3))
+ depends on (BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3) && ((ARCH_X86 && !(DATA_64 || DATA_MULTI)) || ARCH_MIPS || ARCH_HPPA || ARCH_ALPHA || (ARCH_SPARC && (DATA_64 || DATA_MULTI)) || (ARCH_ARM && BOOK_CLFS3))
help
Choose the target system processor
@@ -258,7 +258,7 @@ menu "BOOK Settings"
choice
prompt "MIPS 64 ABI"
- depends BOOK_CLFS3 && ARCH_MIPS && DATA_64
+ depends on BOOK_CLFS3 && ARCH_MIPS && DATA_64
default ABI_64
help
Choose the target system ABI to use
@@ -322,7 +322,7 @@ menu "BOOK Settings"
config TARGET32
string
- depends DATA_MULTI
+ depends on DATA_MULTI
default "i686-pc-linux-gnu" if ARCH_X86
default "mipsel-unknown-linux-gnu" if PROC_mipsel
default "mips-unknown-linux-gnu" if PROC_mips
@@ -368,13 +368,13 @@ menu "BOOK Settings"
config MIPS_LEVEL
string
- depends BOOK_CLFS3 && ARCH_MIPS
+ depends on BOOK_CLFS3 && ARCH_MIPS
default "1" if DATA_32
default "3" if DATA_64
config ABI
string
- depends BOOK_CLFS3
+ depends on BOOK_CLFS3
default "-m32" if ARCH_X86 || ARCH_ARM
# default "-m64" if NO USED YET IN THE BOOK
default "-mabi=32" if ABI_32 || (ARCH_MIPS && DATA_32)
@@ -383,13 +383,13 @@ menu "BOOK Settings"
config ENDIAN
string
- depends BOOK_CLFS3 && (ARCH_MIPS || ARCH_ARM)
+ depends on BOOK_CLFS3 && (ARCH_MIPS || ARCH_ARM)
default "little" if PROC_mipsel || PROC_ARM || PROC_ARM5L
default "big" if PROC_mips || PROC_ARM5B
choice
prompt "Build method"
- depends BOOK_CLFS
+ depends on BOOK_CLFS
help
What build method should be used: a chroot jail or minimal boot
system. Review the Cross-LFS book chap6 "TO BOOT OR CHROOT" for
@@ -541,7 +541,7 @@ menu "BOOK Settings"
config BLFS_XML
string "BLFS sources directory (internal parameter)"
default "blfs-xml"
- depends BLFS_TOOL || BOOK_BLFS
+ depends on BLFS_TOOL || BOOK_BLFS
help
The directory name under $BLFS_ROOT where the BLFS
book sources will be copied or checked out. Do not change that
@@ -550,7 +550,7 @@ menu "BOOK Settings"
config LFS_XML
string "LFS sources directory (internal parameter)"
default "lfs-xml"
- depends BLFS_TOOL || BOOK_BLFS
+ depends on BLFS_TOOL || BOOK_BLFS
help
The directory name under $BLFS_ROOT where the LFS
book sources will be copied or checked out. Do not change that
@@ -558,8 +558,8 @@ menu "BOOK Settings"
choice
prompt "LFS Release"
- default LFS_SVN
- depends BOOK_BLFS
+ default LFS_relSVN
+ depends on BOOK_BLFS
config LFS_relSVN
bool "LFS SVN"
@@ -595,7 +595,7 @@ menu "BOOK Settings"
#--- Custom Tools support
config CUSTOM_TOOLS
- depends !BOOK_BLFS
+ depends on !BOOK_BLFS
bool "Add custom tools support"
default n
help
@@ -630,7 +630,7 @@ menu "BOOK Settings"
endmenu
menu "General Settings"
-depends !BOOK_BLFS
+depends on !BOOK_BLFS
#--- {C,H,}LFS User Account
@@ -671,7 +671,7 @@ depends !BOOK_BLFS
config SRC_ARCHIVE
string "Package Archive Directory"
default "$SRC_ARCHIVE"
- depends GETPKG
+ depends on GETPKG
help
#-- A local archive for packages/files (not $BUILDDIR/sources)
# Any missing file will be downloaded and archived here,
@@ -680,7 +680,7 @@ depends !BOOK_BLFS
config RETRYSRCDOWNLOAD
bool "Retry on 'connection refused' failure"
default n
- depends GETPKG
+ depends on GETPKG
help
#-- Attempt to download a source package again if it fails
# with a 'connection refused' error. This can happen on
@@ -689,14 +689,14 @@ depends !BOOK_BLFS
config RETRYDOWNLOADCNT
int "Number of retry attempts on download failures"
default 20
- depends GETPKG
+ depends on GETPKG
help
#-- Number of times to retry a failed download.
config DOWNLOADTIMEOUT
int "Download timeout (in seconds)"
default 30
- depends GETPKG
+ depends on GETPKG
help
#-- Number of seconds to wait for a download to start before
# timing out.
@@ -704,7 +704,7 @@ depends !BOOK_BLFS
config SERVER
string "FTP mirror"
default "http://ftp.osuosl.org"
- depends GETPKG
+ depends on GETPKG
help
#-- FTP mirror to download packages and patches if not found
# in $SRC_ARCHIVE
@@ -729,12 +729,12 @@ depends !BOOK_BLFS
endmenu
menu "Build Settings"
-depends !BOOK_BLFS
+depends on !BOOK_BLFS
#--- Test Suites
config CONFIG_TESTS
bool "Run testsuites"
- depends !BOOK_CLFS2 && !BOOK_CLFS3
+ depends on !BOOK_CLFS2 && !BOOK_CLFS3
default y
help
#-- Run test suites
@@ -757,7 +757,7 @@ depends !BOOK_BLFS
# temporary tools phase
menu "Test settings"
- depends CONFIG_TESTS
+ depends on CONFIG_TESTS
choice
prompt "Tests level"
default TST_1
@@ -813,7 +813,7 @@ depends !BOOK_BLFS
#--- Package Management
config PKGMNGT
bool "Package management"
- depends BOOK_LFS || BOOK_LFS_SYSD
+ depends on BOOK_LFS || BOOK_LFS_SYSD
default n
help
#-- Use package management
@@ -838,7 +838,7 @@ depends !BOOK_BLFS
#
# For now, this only works with LFS
choice
- depends PKGMNGT
+ depends on PKGMNGT
prompt "Package management style"
default PKG_PACK
@@ -878,7 +878,7 @@ depends !BOOK_BLFS
# see https://blog.flameeyes.eu/tags/lafiles/
config NO_PROGRESS_BAR
- bool "DO NOT use/display progress_bar "
+ bool "DO NOT use/display progress_bar"
default n
help
#-- Do not use the progress bar routine. On slower machines
@@ -888,7 +888,7 @@ depends !BOOK_BLFS
endmenu
menu "System configuration"
- depends !BOOK_BLFS
+ depends on !BOOK_BLFS
#--- FSTAB
config HAVE_FSTAB
@@ -1066,7 +1066,7 @@ menu "System configuration"
config LOG_LEVEL
string "Default log level (1-8)"
default "4"
- depends BOOK_LFS
+ depends on BOOK_LFS
help
This can be changed using dmesg. 1 means "no message",
8 shows every message sent by the kernel, which is very
@@ -1077,26 +1077,26 @@ menu "System configuration"
endmenu #--- System configuration
menu "Advanced Features"
-depends !BOOK_BLFS
+depends on !BOOK_BLFS
config REPORT
bool "Create SBU and disk usage report"
default y
- #--- ICA/farce
+ #--- ICA
config COMPARE
bool "Run comparison analysis on final stage"
- depends !BOOK_CLFS2 && !BOOK_CLFS3
+ depends on !BOOK_CLFS2 && !BOOK_CLFS3
default n
help
#-- Should an iterative comparison analysis be performed?
#
- # Unless you are familiar with ICA and/or FARCE do not
+ # Unless you are familiar with ICA, do not
# select this option
#
- # ICA and FARCE are analysis tools for comparing one
+ # ICA is an analysis tool for comparing one
# build to the next. Builds mays differ from one iteration
- # to another due to the build order and these tools try
+ # to another due to the build order and this tool try
# to ferret out those differences by examining the stored
# build logs and binary files.
#
@@ -1110,19 +1110,10 @@ depends !BOOK_BLFS
default 3
config RUN_ICA
- bool "ICA testing"
- depends on COMPARE
- default y
- help
- #-- Run ICA testing
+ bool
+ default y if COMPARE
- config RUN_FARCE
- bool "farce testing"
- depends on COMPARE
- default n
- help
- #-- Run farce testing
- #--- End ICA/farce
+ #--- End ICA
#--- Optimizations
if !BOOK_CLFS2 && !BOOK_CLFS3
@@ -1148,7 +1139,7 @@ if !BOOK_CLFS2 && !BOOK_CLFS3
# Do not set for meaningful SBU calculations.
choice
- prompt "Optimization level "
+ prompt "Optimization level"
default OPT_1
help
#-- Optimization values are set in optimize/* files
@@ -1221,10 +1212,6 @@ endif
string "ICA logs directory"
default "$LOGDIR/ICA"
- config FARCELOGDIR
- string "farce logs directory"
- default "$LOGDIR/farce"
-
config MKFILE
string "Makefile"
default "$JHALFSDIR/Makefile"
@@ -1244,7 +1231,7 @@ endif
endmenu
config REBUILD_MAKEFILE
- depends !BOOK_BLFS
+ depends on !BOOK_BLFS
bool "Rebuild the Makefile (see help)"
default n
help
diff --git a/FUNCTION_LIST b/FUNCTION_LIST
index 63f1ae6..cc961b7 100644
--- a/FUNCTION_LIST
+++ b/FUNCTION_LIST
@@ -182,10 +182,6 @@ wrt_do_ica_work():
From common/libs/func_compare.sh.
Description:
--------------------------------------------------------------------------
-wrt_do_farce_work():
-From common/libs/func_compare.sh.
-Description:
---------------------------------------------------------------------------
wrt_logs():
From common/libs/func_compare.sh.
Description:
@@ -246,62 +242,6 @@ clean_builddir():
From common/common-functions.
Description:
--------------------------------------------------------------------------
-function dohelp():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function emessage():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function expected():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function failure():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function fatal():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function filetype():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function message():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function onlyone():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function testar():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function testgzip():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function testso():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function tokenize():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function tokenizeanddiff():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
-function validateargs():
-From extras/farce.
-Description:
---------------------------------------------------------------------------
process_toolchain():
From HLFS/master.sh.
Description: embryo,cocoon and butterfly need special handling
diff --git a/LICENSE b/LICENSE
index 3912109..49dce49 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,340 +1,19 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
+Copyright (C) 2005-2019, jhalfs team
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
- Preamble
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- , 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE
diff --git a/Makefile b/Makefile
index a928dc7..f15a68a 100644
--- a/Makefile
+++ b/Makefile
@@ -5,35 +5,19 @@
# Manuel Canales Esparcia
# Pierre Labastie
-TOPDIR=$(shell pwd)
CONFIG_CONFIG_IN = Config.in
CONFIG = menu
all: menuconfig
-# @clear
@$$(grep RUN_ME configuration 2>/dev/null | sed -e 's@RUN_ME=\"@@' -e 's@\"@@')
-$(CONFIG)/conf:
- $(MAKE) -C $(CONFIG) conf
-
-$(CONFIG)/mconf:
- $(MAKE) -C $(CONFIG) ncurses conf mconf
-
-menuconfig: $(CONFIG)/mconf
- @cp -a configuration configuration.old 2>/dev/null || true
- @$(CONFIG)/mconf $(CONFIG_CONFIG_IN)
-
-config: $(CONFIG)/conf
- @$(CONFIG)/conf $(CONFIG_CONFIG_IN)
+menuconfig:
+ @cp -a configuration .configuration.old 2>/dev/null || true
+ @CONFIG_="" KCONFIG_CONFIG=configuration $(CONFIG)/menuconfig.py $(CONFIG_CONFIG_IN)
# Clean up
clean:
rm -f configuration configuration.old error
- - $(MAKE) -C $(CONFIG) clean
-clean-target:
- rm -f error
- - $(MAKE) -C $(CONFIG) clean
-
-.PHONY: all menuconfig config clean clean-target
+.PHONY: all menuconfig clean
diff --git a/README b/README
index c7cb0f1..f5fccf6 100644
--- a/README
+++ b/README
@@ -204,8 +204,6 @@ $Id$
/extras/do_copy_files
/do_ica_prep
/do_ica_work
- /farce
- /filelist
/optimize/opt_config
/opt_override
diff --git a/common/libs/func_compare.sh b/common/libs/func_compare.sh
index 605eb6c..4f644c0 100644
--- a/common/libs/func_compare.sh
+++ b/common/libs/func_compare.sh
@@ -58,7 +58,6 @@ wrt_compare_work() { #
local ROOT_DIR=/
local DEST_TOPDIR=/${SCRIPT_ROOT}
local ICALOGDIR=/${SCRIPT_ROOT}/logs/ICA
- local FARCELOGDIR=/${SCRIPT_ROOT}/logs/farce
if [[ "$RUN_ICA" = "y" ]] ; then
local DEST_ICA=$DEST_TOPDIR/ICA && \
@@ -73,18 +72,6 @@ EOF
fi
fi
- if [[ "$RUN_FARCE" = "y" ]] ; then
- local DEST_FARCE=$DEST_TOPDIR/farce && \
-(
- cat << EOF
- @extras/do_copy_files "$PRUNEPATH" $ROOT_DIR $DEST_FARCE/$ITERATION >>logs/\$@ 2>&1 && \\
- extras/filelist $DEST_FARCE/$ITERATION $DEST_FARCE/filelist-$ITERATION >>logs/\$@ 2>&1
-EOF
-) >> $MKFILE.tmp
- if [[ "$ITERATION" != "iteration-1" ]] ; then
- wrt_do_farce_work "$PREV_IT" "$ITERATION" "$DEST_FARCE"
- fi
- fi
}
#----------------------------------#
@@ -93,17 +80,6 @@ wrt_do_ica_work() { #
echo -e "\t@extras/do_ica_work $1 $2 $ICALOGDIR $3 >>logs/\$@ 2>&1" >> $MKFILE.tmp
}
-#----------------------------------#
-wrt_do_farce_work() { #
-#----------------------------------#
- local OUTPUT=$FARCELOGDIR/${1}_V_${2}
- local PREDIR=$3/$1
- local PREFILE=$3/filelist-$1
- local ITEDIR=$3/$2
- local ITEFILE=$3/filelist-$2
- echo -e "\t@extras/farce --directory $OUTPUT $PREDIR $PREFILE $ITEDIR $ITEFILE >>logs/\$@ 2>&1" >> $MKFILE.tmp
-}
-
#----------------------------------#
wrt_logs() { #
#----------------------------------#
diff --git a/common/libs/func_install_blfs b/common/libs/func_install_blfs
index 8666ebd..a206dad 100644
--- a/common/libs/func_install_blfs
+++ b/common/libs/func_install_blfs
@@ -22,7 +22,6 @@ if [ "$WRAP_INSTALL" = y ]; then
fi
# Clean-up
-make -C ${BUILDDIR}${BLFS_ROOT}/menu clean
rm -rf ${BUILDDIR}${BLFS_ROOT}/libs/.svn
rm -rf ${BUILDDIR}${BLFS_ROOT}/xsl/.svn
rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/.svn
diff --git a/common/libs/func_validate_configs.sh b/common/libs/func_validate_configs.sh
index b05ad8b..50d8647 100644
--- a/common/libs/func_validate_configs.sh
+++ b/common/libs/func_validate_configs.sh
@@ -27,7 +27,7 @@ inline_doc
RUNMAKE"
local -r BUILD_chroot="TEST BOMB_TEST STRIP"
local -r BUILD_common="FSTAB CONFIG TIMEZONE PAGE LANG INSTALL_LOG"
- local -r ADVANCED_chroot="COMPARE RUN_ICA RUN_FARCE ITERATIONS OPTIMIZE"
+ local -r ADVANCED_chroot="COMPARE RUN_ICA ITERATIONS OPTIMIZE"
local -r ADVANCED_common="REPORT REBUILD_MAKEFILE"
# BOOK Settings by book
@@ -147,7 +147,6 @@ inline_doc
# Envvars that depend on other settings to be displayed
COMPARE) [[ ! "$COMPARE" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
RUN_ICA) [[ "$COMPARE" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
- RUN_FARCE) [[ "$COMPARE" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
ITERATIONS) [[ "$COMPARE" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
BOMB_TEST) [[ ! "$TEST" = "0" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
TARGET32) [[ -n "${TARGET32}" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
diff --git a/extras/farce b/extras/farce
deleted file mode 100755
index 0eaf90f..0000000
--- a/extras/farce
+++ /dev/null
@@ -1,897 +0,0 @@
-#!/bin/bash
-
-# $Id$
-# Acknowledgment:
-# The following code is a no-modified version (except for this comment,
-# the `Id' comment, and the inline_doc fragment) of an original work written by
-# Ken Moffat and is included here with his permission.
-#
-
-# FARCE: Farce Assists Rebuild Comparison Evaluation ;)
-#
-# to answer the question "can it rebuild itself?"
-#
-# We expect four arguments - first directory path, filelist
-# containing the files in this directory which we wish to compare,
-# second directory path, filelist for second directory.
-#
-# Yes, we could just compare everything in each tree, but the
-# filelist script knows about files it can reasonably ignore,
-# and this also allows us to build a sytem, boot it and get a
-# list of files, build a full desktop environment, and only then
-# build and boot the "can it build itself" test system and get
-# _its_ filelist.
-#
-# What this script aims to do:
-# ____________________________
-#
-# First, report files not in both builds.
-#
-# Then, confirm symlinks point to same targets.
-#
-# After that, compare individual files -
-# if different, run the file name through 'expected'
-# to pick out files that are unlikely to match (logs,
-# pids, fstab [assumes '/' is a different device each time],
-# count these as 'expected'.
-#
-# For whatever is left, check the file type - ar archives
-# have their members extraced and compared (every member has
-# a timestamp), gzipped files are compared beyond their
-# timestamp, binaries, at least those using shared libs or
-# which are shared objects, are copied and subjected to
-# --strip-debug. If files match at this stage, count them as
-# 'accepted'.
-#
-# As a last step for any file that doesn't match, copy it
-# through some perl regexps to "process" it (convert any
-# date, time, kernel-version information from standard formats
-# into tokens, then see if the tokensi match.
-#
-# For details of the regexps, see the tokenize function.
-# Those files that match after this are also counted as
-# 'accepted'. Note that I don't always start from the kernel
-# version that I'm going to build, so this copes with e.g. perl
-# files that hardcode the kernel version.
-#
-# We now have files that don't match. A few of these seem to be
-# common to all builds - some (members of) c++ libraries or ar
-# archives, a few programs which perhaps use some sort of c++ code).
-# The file name # is passed to the 'failure' function - these
-# recognized filenames are labelled as 'predictable FAIL:',
-# anything else is labelled as 'unexpected FAIL:'.
-#
-# output:
-# stderr - files only in one of the builds, failure messages,
-# and totals.
-#
-# farce-results - more details, including which files were treated
-# as expected differences, files where neither copy could be read,
-# files treated as accepted, with the reason (and member for ar
-# archives). This data is typically up to 100 characters wide -
-# sometimes it's a bit more, but it doesn't wrap too badly in a
-# 100 character xterm.
-#
-# farce-extras - diffs for the files, or members, that didn't
-# match. This file is to establish new regexps for picking up
-# date/time/kernel-version formats.
-#
-# farce-identical - the names of the files which are identical
-#
-# farce-substitutions - whenever using tokenizeanddiff results in a
-# difference being accepted, for both versions diff the before and
-# after versions to show what got changed. If the file is a binary,
-# the output may still be hard to read. Note that I _know_ glibc
-# version strings pass one of the regexps looking for a kernel version
-# - since I expect you to use the same version of glibc for each
-# build, this is not a problem.
-#
-# farce-differ - the names of the files which could not be treated
-# as matching (whether or not I regard the failure as predictable)
-# for possible input to ICA processing.
-#
-# Copyright (C) 2005, 2006 Ken Moffat
-#
-# All rights reserved.
-#
-# 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, GOOD TITLE or
-# NON INFRINGEMENT. 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-
-: <&2
- echo "$@" >&5
-}
-
-function expected() {
- # if we expect it to differ because of its name,
- # allow it and report, return true ; else return false
- case $1 in
- /boot/grub/menu.lst)
- # just in case somebody puts this into the main filesystem
- true;;
- /etc/aliases.db)
- # some sort of database for postfix, not parsable
- true;;
- /etc/blkid.tab)
- # includes dev name for rootfs
- true;;
- /etc/fstab)
- # fstab, e.g. ' / ' will differ
- true;;
- /etc/group*)
- true;;
- /etc/hosts)
- # with dhcp client, I add current ip address to this in a hook
- true;;
- /etc/ld.so.*)
- # .conf and .cache can vary,
- # particularly if one system has a full build when I run this
- true;;
- /etc/lilo.conf|/etc/yaboot.conf)
- # bootloader control, I assume grub will all be on a separate
- true;;
- /etc/mtab)
- # at a minimum, different '/'
- true;;
- /etc/ntp.drift)
- true;;
- /etc/passwd*)
- true;;
- /etc/shadow*)
- true;;
- /etc/ssh/*key|/etc/ssh/*pub)
- # openssh keys
- true;;
- /misc/*)
- # where I put buildscripts (which mostly won't change)
- # and stamps containing name/time/space which will differ in the times
- true;;
- /root/*)
- # expect .bash_history etc to differ - if we can read them
- true;;
- /usr/bin/lynx)
- # part of my inital builds, I guess this uses anonymous namespaces
- true;;
- /usr/include/c++/*/*/bits/stdc++.h.gch/*)
- # precompiled headers
- true;;
- /usr/lib*/libstdc++.a|/usr/lib*/libstdc++.so*|/usr/lib*/libsupc++.a)
- # probably, anonymous namespaces
- # libstdc++.a, libstdc++.so.n.n.n, libsupc++.a
- true;;
- /usr/share/info/dir)
- # if one system has had extra stuff built, this will likely be bigger
- true;;
- /usr/share/man/whatis)
- # if one system has had extra stuff built, this will likely be bigger
- true;;
- /var/lib/locate/locatedb)
- # if one system has had extra stuff built, this will likely be bigger
- true;;
- /var/lib/nfs/*)
- # allow nfs bookkeeping
- true;;
- /var/log/*)
- true;;
- /var/run/utmp)
- true;;
- /var/spool/fcron*)
- true;;
- /var/state/*)
- # allow dhcp leases
- true;;
- /var/tmp/random-seed)
- true;;
- # following start with wildcards
- *Image*|*.PPCBoot*|*vmlinuz*|*lfskernel*)
- # compressed kernels, sometimes just building at a different
- # date/time is enough to change the length of them, because the
- # long format date and time is part of the compressed data
- true;;
- *pid*)
- # pids, including e.g. /var/spool/postfix/pid/*
- true;;
- *)
- # nothing else is expected to be different
- false;;
- esac
- if [ $? -eq 0 ]; then
- message "expected difference in $1"
- let expected=$expected+1
- case $TYPE in
- AR)
- let EXPAR=$EXPAR+1
- ;;
- ELF)
- let EXPELF=$EXPELF+1
- ;;
- UNK)
- let EXPUNK=$EXPUNK+1
- ;;
- # so far, no other valid types, so don't accumulate them
- *)
- emessage "internal error, expected difference for $1 of type $TYPE not allowed"
- exit 2
- ;;
- esac
- true
- else
- false
- fi
-}
-
-function failure() {
- # first parm is filename or token
- # second parm is the error message
- # update the appropriate total
- # and write to both stderr and the results
- # by using emessage
-
- let different=$different+1
- case $TYPE in
- AR)
- let DIFAR=$DIFAR+1
- ;;
- ELF)
- let DIFELF=$DIFELF+1
- ;;
- GZ)
- let DIFGZ=$DIFGZ+1
- ;;
- SYM)
- let DIFSYM=$DIFSYM+1
- ;;
- UNK)
- let DIFUNK=$DIFUNK+1
- ;;
- *)
- emessage "internal error in failure() for TYPE $TYPE"
- exit 2
- ;;
- esac
- test -f ${P1}$1 && echo $1 >&9
- emessage "FAIL: $2"
-}
-
-function fatal() {
- # unrecoverable error
- echo $*
- exit 1
-}
-
-function filetype() {
- TYPE=`file ${P1}${FILE}`
- case $TYPE in
- *'current ar archive'*)
- let TOTAR=$TOTAR+1
- TYPE=AR
- ;;
- *' ELF '*)
- let TOTELF=$TOTELF+1
- TYPE=ELF
- ;;
- *'gzip compressed data'*)
- let TOTGZ=$TOTGZ+1
- TYPE=GZ
- ;;
- *)
- let TOTUNK=$TOTUNK+1
- TYPE=UNK
- ;;
- esac
-}
-
-function message() {
- # write a string to $RESULT
- echo $* >&5
-}
-
-function onlyone() {
- #report files only in one build
- # text should go to both stderr and the results,
- # but blank lines only go to the results
- if [ $1 == '<' ]; then
- emessage "File(s) only in the first build"
- else
- emessage "File(s) only in the second build"
- fi
- message ""
- FILES=`cat $DIFF | grep "^$1" | cut -d ' ' -f 2`
- for F in $FILES; do
- emessage $F
- let only=$only+1
- done
- message ""
-}
-
-# 'test' functions are called with three arguments:
-# the two pathes and the filename
-# - we know the file is of this type, so see if we
-# can get it to match by reasonalbe means.
-# if not, treat it as different.
-#
-# NB if pathes are absolute, we need to prefix them
-# with the original $PWD to access the .a files
-#
-function testar() {
- # ar archives include timestamps for the members,
- # but diff doesn't show file timestamps unless the data differs
- # put out a message to help locate which archive any messages
- # about the members refer to.
-
- # try just stripping them U1,2 undebuggable
- U1=`mktemp` || fatal "cannot create a temporary file"
- U2=`mktemp` || fatal "cannot create a temporary file"
- cp ${1}${3} $U1
- cp ${2}${3} $U2
- strip --strip-debug $U1
- strip --strip-debug $U2
- cmp -s $U1 $U2
- rm $U1 $U2
- if [ $? -eq 0 ]; then
- let accepted=$accepted+1
- let ACCAR=$ACCAR+1
- message "archive $3 matches after strip --strip-debug"
- return
- fi
- # rest of this function retained primarily for pathologically bad builds
- # put out a message in the log to help identify which archive has issues.
- message "examining ar archive $3"
- D1=`mktemp -d` || fatal "cannot create a temporary directory"
- D2=`mktemp -d` || fatal "cannot create a temporary directory"
- cd $D1
- ar -x ${OP1}${1}${3}
- cd $D2
- ar -x ${OP2}${2}${3}
- cd
- # diff the members - true means they match
- diff -Na $D1 $D2 >/dev/null
- if [ $? -eq 0 ]; then
- message "accept: $3 after diffing the members"
- let accepted=$accepted+1
- let ACCAR=$ACCAR+1
- else
- # process individual members to eliminate date/time/kernel-version
- # first, check the members are the same
- M1=`mktemp` || fatal "cannot create a temporary file"
- M2=`mktemp` || fatal "cannot create a temporary file"
- cd $D1
- MEMBERS=
- for F in *; do
- MEMBERS="$MEMBERS $F"
- done
- cd
- echo $MEMBERS | sort >$M1
- cd $D2
- MEMBERS=
- for F in *; do
- MEMBERS="$MEMBERS $F"
- done
- cd
- echo $MEMBERS | sort >$M2
- cmp -s $M1 $M2
- if [ $? -ne 0 ]; then
- # oh dear, different members
- echo "list of members differs for archive $3" >&6
- diff $M1 $M2 >&6
- failure $3 "$3 list of members differs"
- else
- # members (names) are same,
- # process each one
- STATUS=0
- for M in $MEMBERS; do
- #avoid firing up perl on matching members
- cmp -s $D1/$M $D2/$M
- if [ $? -ne 0 ]; then
- tokenizeanddiff $D1/$M $D2/$M $FILE:$M
- if [ $? -eq 0 ]; then
- message "member $M matches after processing"
- else
- message "member $M DIFFERS after processing"
- STATUS=1
- fi
- fi
- done
- if [ $STATUS -eq 0 ]; then
- let accepted=$accepted+1
- let ACCAR=$ACCAR+1
- else
- let different=$different+1
- let DIFAR=$DIFAR+1
- echo $3 >&9
- emessage "FAIL: in $3"
- fi
- fi
- rm $M1 $M2
- fi
- rm -rf $D1 $D2
-}
-
-function testgzip() {
- # bytes 4,5,6,7 are the timestamp, so ignore these
- cmp -s -i 8 ${1}${3} ${2}${3}
- if [ $? -eq 0 ]; then
- message "accept: $3 after ignoring gzip timestamp"
- let accepted=$accepted+1
- let ACCGZ=$ACCGZ+1
- else
- failure $3 " $3 even after ignoring gzip timestamp"
- fi
-}
-
-function testso() {
- # shared object - first try stripping it
- # in fact, this now handles ALL ELF files
- S1=`mktemp` || fatal "cannot create a temporary file"
- S2=`mktemp` || fatal "cannot create a temporary file"
- cp ${1}${3} $S1
- strip --strip-debug $S1
- cp ${2}${3} $S2
- strip --strip-debug $S2
- cmp -s $S1 $S2
- if [ $? -eq 0 ]; then
- message "accept: $3 after --strip-debug"
- let accepted=$accepted+1
- let ACCELF=$ACCELF+1
- else
- tokenizeanddiff $S1 $S2 $3
- if [ $? -ne 0 ]; then
- failure $3 " $3 differs after stripping and processing"
- else
- message "accept: $3 after --strip-debug and processing"
- let accepted=$accepted+1
- let ACCELF=$ACCELF+1
- fi
- fi
- rm $S1 $S2
-}
-
-function tokenize() {
- # use regexes to replace date/time/kernel-version text
- # with tokens which may allow files to match even though
- # they have hardcoded date/time/kernel-version.
- # arguments are file to process, and where to put it.
- # these regexes are somewhat long, and the order they
- # are applied in is important (to stop short ones being
- # used when a longer version would match).
- # KV00 linux version date (e.g. as in the kernel itself)
- # allow 2 or 3 groups of three alphas here - optional smp, with day, mon
- # KV01 kernel version, including possible cpu details (that is for cdda2wav)
- # KV02 just the version, in quotes e.g. "2.6.12.6" or '2.6.13', for perl stuff
- # except that "|' gives me grif, so try a boundary
- # also, it might need local version on the end, I really want
- # quote2.\d+.\d+.{0,32}quote - it is the quotes that don't work.
- # DT00 Day Mon .d+ hh:mm:ss TZN CCYY variations include non-caps and 'mon d'
- # DT01 Mon .d+ CCYY hh:mm:ss
- # DT02 hh:mm:ss Mon .d CCYY
- # DT03 Mon .d CCYY
- # DT04 Day Mon { ,d}d hh:mm:ss CCYY - for groff example postscript files
- # (somewhat similar to DT00, but ' d' or ' dd' for day of month and no TZN )
- # DT05 hh:mm:ss
- # DT06 ISO date using space as separator
- # DT07 ISO date using dash as separator
- # DT08 ISO date using slash as separator
- # DT09 fullmonth (capitalised), day number, comma, 4-digit year (groff 1.18.1 ps)
- # DT10 dd, fullmonth (capitalised), 4-digit year (groff 1.18.1 manpages)
- # DT11 '(xample comma space digit(s) backslash ) in groff memef.ps which is
- # quite clearly the day of the month when it was compiled, preceded by 'example'
- # with something weird between the e and the x.
-
- if [ $# -ne 2 ]; then
- fatal "tokenizing called with $# arguments : $*"
- fi
-
- cat $1 | perl -p \
- -e 's/(L|l)inux.*\d\.\d\.\d+.* \#\d+( [A-Za-z][a-z]{2}){2,3} \d+ \d\d:\d\d:\d\d [A-Za-z]{3} \d{4}\b/%KV00%/g;' \
- -e 's/(L|l)inux( (\w|_)+)?(-| |_)\d\.\d(\.\d+){1,2}((-|_)?(\w|_)+)?( |\000)*/%KV01%/g;' \
- -e 's/\W2(\.\d+){2,3}(-|_)?((\w|_)+)?\s*\W/%KV02%/g;' \
- -e 's/\b([A-Za-z][a-z]{2} ){2}( |\d)?\d \d\d:\d\d:\d\d [A-Za-z]{3} \d{4}\b/%DT00%/g;' \
- -e 's/\b[A-Z][a-z]{2} ( |\d)\d \d{4} \d\d:\d\d:\d\d\b/%DT01%/g;' \
- -e 's/\b\d\d:\d\d:\d\d [A-Z][a-z]{2} ( |\d)\d \d{4}\b/%DT02%/g;' \
- -e 's/\b[A-Z][a-z]{2} ( |\d)\d \d{4}\b/%DT03%/g;' \
- -e 's/\b([A-Z][a-z]{2} ){2}( |\d)\d \d\d:\d\d:\d\d \d{4}/%DT04%/g;' \
- -e 's/\b\d\d:\d\d:\d\d\b/%DT05%/g;' \
- -e 's/\b\d{4} \d\d \d\d\b/%DT06%/g;' \
- -e 's/\b\d{4}-\d\d-\d\d\b/%DT07%/g;' \
- -e 's/\b\d{4}\/\d\d\/\d\d\b/%DT08%/g;' \
- -e 's/\b[A-Z][a-z]{2,} \d{1,2}, \d{4}/%DT09%/g;' \
- -e 's/\b\d\d [A-Z][a-z]{2,} \d{4}/%DT10%/g;' \
- -e 's/\(xample, \d{1,2}\\\)/%DT11%/g;' \
- >$2
-}
-
-function tokenizeanddiff() {
- # Call tokenize for the inputs, then compare the results
- # Input arguments are path/filename for old and new versions
- # third parm is readable name (filename, or archivename:member)
- # to help understand what is in the extras output.
- # - sometimes called for files, but other times called for
- # members of ar archives extracted into temporary directories
- #message tokenizeanddiff called for $1 $2 $3
- F1=`mktemp` || fatal "cannot create a temporary file"
- F2=`mktemp` || fatal "cannot create a temporary file"
- tokenize $1 $F1
- tokenize $2 $F2
-
- # actually, cmp is probably more efficient
- # but for picking up the pieces it will be better to
- # use diff to see what got through.
- cmp -s $F1 $F2
- TOKENRESULT=$?
- if [ $TOKENRESULT -ne 0 ]; then
- echo "failure in $3..." >&6
- diff -a $F1 $F2 >&6
- rm $F1 $F2
- false
- else
- # show what we did
- echo "substitutions for $3" >&8
- echo "build one" >&8
- diff -a $1 $F1 >&8
- echo "build two" >&8
- diff -a $2 $F2 >&8
- rm $F1 $F2
- true
- fi
-}
-
-function validateargs() {
-# validate the arguments
-BAD=0
-if ! [ -d $1 ]; then
- echo "Error: first argument is not a directory" >&2
- let BAD=$BAD+1
-fi
-NAME=`basename ${2%%-*}`
-if [ $NAME != filelist ]; then
- echo "Error: second argument is not a recognized filelist" >&2
- let BAD=$BAD+1
-fi
-if ! [ -d $3 ]; then
- echo "Error: third argument is not a directory" >&2
- let BAD=$BAD+1
-fi
-NAME=`basename ${4%%-*}`
-if [ $NAME != filelist ]; then
- echo "Error: fourth argument is not a recognized filelist" >&2
- let BAD=$BAD+1
-fi
-for I in $1 $2 $3 $4; do
- if ! [ -r $I ]; then
- echo "Error: cannot read $I" >&2
- let BAD=$BAD+1
- fi
-done
-if [ $1 == $3 ]; then
- echo "Error: directory pathes are identical" >&2
- let BAD=$BAD+1
-fi
-if [ $2 == $4 ]; then
- echo "Error: filelist names are identical" >&2
- let BAD=$BAD+1
-fi
-if [ $BAD -eq 0 ]; then
- ARGS=valid
-fi
-}
-
-# Mainline
-ARGS=unproven
-OUTDIR=
-if [ $# -eq 1 ]; then
- case $1 in
- -version|--version)
- echo "`basename $0` version $VERSION"
- exit 0
- ;;
- -help|--help)
- dohelp
- exit 0
- ;;
- esac
-fi
-if [ $1 = "--directory" ]; then
- OUTDIR=$2
- shift 2
- grep '/$' $OUTDIR >/dev/null 2>&1 || OUTDIR=`echo $OUTDIR | sed 's%$%/%'`
- echo "creating directory $OUTDIR"
- mkdir -p $OUTDIR
- if [ $? -ne 0 ]; then
- echo "cannot mkdir $OUTDIR"
- exit 1
- fi
-fi
-if [ $# -eq 4 ]; then
- validateargs $*
-fi
-if ! [ $ARGS == valid ]; then
- dohelp
- fatal "`basename $0`: error in arguments"
-fi
-
-# ok, we're happy, lets hit these files
-exec 5>${OUTDIR}$RESULT
-exec 6>${OUTDIR}$EXTRAS
-exec 7>${OUTDIR}$IDENTICAL
-exec 8>${OUTDIR}$SUBS
-exec 9>${OUTDIR}$DIFFER
-
->${OUTDIR}$RESULT
-if [ $? -ne 0 ]; then
- fatal "cannot write to ${OUTDIR}$RESULT"
-fi
-
-emessage "will compare:"
-emessage " first build at $1 with files listed in $2"
-emessage "second build at $3 with files listed in $4"
-
-let accepted=0
-let different=0
-let expected=0
-let matched=0
-let only=0
-let predictable=0
-let unreadable=0
-let total=0
-
-# break down the accepted
-let ACCAR=0
-let ACCELF=0
-let ACCGZ=0
-let ACCUNK=0
-
-# break down definitely different
-let DIFAR=0
-let DIFELF=0
-let DIFGZ=0
-let DIFSYM=0
-let DIFUNK=0
-
-# break down the expected differences
-let EXPAR=0
-let EXPELF=0
-let EXPGZ=0
-let EXPUNK=0
-
-# break down the identical files
-let MATAR=0
-let MATELF=0
-let MATGZ=0
-let MATSYM=0
-let MATUNK=0
-
-# break down how many of each type
-let TOTAR=0
-let TOTELF=0
-let TOTGZ=0
-let TOTSYM=0
-let TOTUNK=0
-
-# now identify differences between the two trees
-DIFF=`mktemp` || fatal "cannot create a temporary file"
-diff $2 $4 >$DIFF
-
-for RUN in '<' '>' ; do
- grep -q "$RUN" $DIFF && onlyone "$RUN"
-done
-
-rm $DIFF
-
-# and compare them
-message "Results of file comparison:"
-message ""
-
-# Strip any trailing slash from the path for tidyness,
-# because the filenames all start with a slash. Unfortunately,
-# unfortunately, '/' becomes empty, which breaks subroutines,
-# so special case it.
-# also, to process ar archives we need to extract them in temp
-# directories - that means that after cd'ing we've broken any
-# relative path, so save original pwd as necessary.
-P1=`echo $1 | sed 's%/$%%'`
-echo $1 | grep '^/' >/dev/null
-if [ $? -ne 0 ]; then
- # relative path
- OP1=${PWD}/
- #echo "setting OP1 to $OP1"
-else
- OP1=
- #echo "$1 is an absolute path"
-fi
-test -z "$P1" && P1='/'
-P2=`echo $3 | sed 's%/$%%'`
-echo $3 | grep '^/' >/dev/null
-if [ $? -ne 0 ]; then
- # relative path
- OP2=${PWD}/
- #echo "setting OP2 to $OP2"
-else
- OP2=
- #echo "$3 is an absolute path"
-fi
-test -z "$P2" && P2='/'
-
-echo "about to read $2"
-while read FILE ; do
-#echo "process $FILE"
-#echo "test existence of ${P2}${FILE}"
- # confirm it exists in second build
- # we have already reported files only in one build
- if [ -f ${P2}"${FILE}" ]; then
- let total=$total+1
- # check we can read both of them
- # or count as unreadable - I used to separate only-one-unreadable,
- # but if you compre '/' and a _copy_ of /mnt/lfs that assumption
- # breaks, so be less picky.
- if ! [ -r "${P1}${FILE}" ] || ! [ -r "${P2}${FILE}" ]; then
- message "cannot read one or both versions of $FILE"
- let unreadable=$unreadable+1
- continue
- fi
- if [ -h "${P1}${FILE}" ]; then
- # for symlink, look at what it points to
- # exceptionally, do not call filetype
- TYPE=SYM
- let TOTSYM=$TOTSYM+1
- SL1=`ls -l "${P1}${FILE}" | awk '{ print $11 }'`
- SL2=`ls -l "${P2}${FILE}" | awk '{ print $11 }'`
- if [ "$SL1" = "$SL2" ]; then
- echo "symlink $FILE matches for $SL1" >&5
- let matched=$matched+1
- let MATSYM=$MATSYM+1
- else
- failure TARGET " symlink $FILE points to $SL1 and $SL2"
- echo $FILE >&9
- fi
- else
- # regular file, start by typing it for accounting,
- # then compare it
- filetype ${P1}${FILE}
- cmp -s "${P1}${FILE}" "${P2}${FILE}"
- if [ $? -eq 0 ]; then
- let matched=$matched+1
- case $TYPE in
- AR)
- let MATAR=$MATAR+1
- ;;
- ELF)
- let MATELF=$MATELF+1
- ;;
- GZ)
- let MATGZ=$MATGZ+1
- ;;
- UNK)
- let MATUNK=$MATUNK+1
- ;;
- *)
- echo "unexpected TYPE of $TYPE for $FILE" >&2
- exit 2
- ;;
- esac
- echo ${FILE} >&7
- else
- # seems different, can we do better ?
- # test if we expect it to differ
- expected $FILE
- if [ $? -ne 0 ]; then
- case $TYPE in
- GZ)
- testgzip $P1 $P2 $FILE ;;
- AR)
- testar $P1 $P2 $FILE ;;
- ELF)
- testso $P1 $P2 $FILE ;;
- *)
- # long-stop - strip dates from text files
- tokenizeanddiff "${P1}${FILE}" "${P2}${FILE}" "$FILE"
- if [ $? -eq 0 ]; then
- message "accepted $FILE after processing"
- let accepted=$accepted+1
- let ACCUNK=$ACCUNK+1
- else
- failure "$FILE" " $FILE is different"
- fi
- ;;
- esac
- fi
- fi
- fi
- fi
-done < $2
-
-message ""
-# write totals to stderr as well as the results file
-emessage "$only files in only one of the builds"
-emessage "$total files compared, of which"
-emessage "$unreadable files could not be read, skipped"
-emessage "$matched files are identical"
-emessage "$expected files differed as expected"
-emessage "$accepted files had allowable differences"
-#emessage "$predictable files differed as they normally do"
-emessage "$different files differed"
-
-# totals of different file types
-emessage ""
-emessage "$TOTAR ar archives"
-emessage " of which $MATAR are identical"
-emessage " of which $ACCAR are accepted after strip-debug or extracting, diffing, tokenizing"
-emessage " of which $EXPAR differed as expected"
-emessage " of which $DIFAR differed"
-emessage "$TOTELF ELF executables or shared libraries"
-emessage " of which $MATELF are identical"
-emessage " of which $ACCELF are accepted after stripping and tokenizing"
-emessage " of which $EXPELF differed as expected"
-emessage " of which $DIFELF differed"
-emessage "$TOTGZ gzipped files"
-emessage " of which $MATGZ are identical"
-emessage " of which $ACCGZ are accepted after comparing beyond timestamp"
-emessage " of which $DIFGZ are different"
-emessage "$TOTSYM symbolic links"
-emessage " of which $MATSYM are identical"
-emessage " of which $DIFSYM have different targets"
-emessage "$TOTUNK other files"
-emessage " of which $MATUNK are identical"
-emessage " of which $ACCUNK are accepted after tokenizing"
-emessage " of which $EXPUNK differed as expected"
-emessage " of which $DIFUNK differed"
-
diff --git a/extras/filelist b/extras/filelist
deleted file mode 100755
index f9b1b08..0000000
--- a/extras/filelist
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-#$Id$
-
-# Acknowledgment:
-# The following code is a modified version of an original work written by
-# Ken Moffat for their "farce" project and is included here with his
-# permission.
-#
-
-set -e
-
-: <$OUTFILE
-if [ $? -ne 0 ]; then
- echo "error, cannot write to $OUTFILE"
- exit 1
-fi
-
-find $LOC -xdev -xtype f | sed "s%^${LOC}%/%" | sort >$OUTFILE
-
-echo -e "done.\n"
-
-exit
diff --git a/install-blfs-tools.sh b/install-blfs-tools.sh
index 2457680..c276cfc 100755
--- a/install-blfs-tools.sh
+++ b/install-blfs-tools.sh
@@ -164,11 +164,6 @@ cp README.BLFS ${BUILDDIR}${BLFS_ROOT}
# Clean-up
[[ $VERBOSITY > 0 ]] && echo Cleaning the ${BUILDDIR}${BLFS_ROOT} directory
-make -C ${BUILDDIR}${BLFS_ROOT}/menu clean
-rm -rf ${BUILDDIR}${BLFS_ROOT}/libs/.svn
-rm -rf ${BUILDDIR}${BLFS_ROOT}/xsl/.svn
-rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/.svn
-rm -rf ${BUILDDIR}${BLFS_ROOT}/menu/lxdialog/.svn
# We do not want to keep an old version of the book:
rm -rf ${BUILDDIR}${BLFS_ROOT}/$BLFS_XML
rm -rf ${BUILDDIR}${BLFS_ROOT}/$LFS_XML
diff --git a/jhalfs b/jhalfs
index b3a6154..08a3b0d 100755
--- a/jhalfs
+++ b/jhalfs
@@ -101,31 +101,37 @@ load_file() {
version="
${BOLD} \"jhalfs\"${OFF} builder tool (development) \$Rev$
- \$Date$
+ \$Date$
- Written by George Boudreau, Manuel Canales Esparcia, Pierre Labastie,
- plus several contributions.
+ Copyright (C) 2005-2019, the jhalfs team:
+ Jeremy Huntwork
+ George Boudreau
+ Manuel Canales Esparcia
+ Thomas Pegg
+ Matthew Burgess
+ Pierre Labastie
- Based on an idea from Jeremy Huntwork
+ Unless specified, all the files in this directory and its sub-directories
+ are subjected to the ${BOLD}MIT license${OFF}. See the ${BOLD}LICENSE${OFF} file.
- This set of files are published under the
- ${BOLD}Gnu General Public License, Version 2.${OFF}
- See the ${BOLD}LICENSE${OFF} file in this directory.
+ The files in the ${BOLD}menu${OFF} directory are subjected to the ${BOLD}ISC License${OFF}.
+ See ${BOLD}LICENSE.txt${OFF} and ${BOLD}README${OFF} in that directory.
"
+usage="${nl_}${tab_}${BOLD}${RED}This script cannot be called directly${OFF}
+${tab_}Type ${BOLD}make${OFF} to run the tool, or
+${tab_}Type ${BOLD}./jhalfs -v${OFF} to display version information."
+
case $1 in
-v ) echo "$version" && exit ;;
run ) : ;;
- * )
- echo "${nl_}${tab_}${BOLD}${RED}This script cannot be called directly: EXITING ${OFF}${nl_}"
- exit 1
- ;;
+ * ) echo "$usage" && exit 1 ;;
esac
# If the user has not saved his configuration file, let's ask
# if he or she really wants to run this stuff
time_current=$(stat -c '%Y' configuration 2>/dev/null || date +%s)
-time_old=$(stat -c '%Y' configuration.old 2>/dev/null || printf '%s' "$time_current")
+time_old=$(stat -c '%Y' .configuration.old 2>/dev/null || printf '%s' "$time_current")
if [ "$(printf '%d' "$time_old")" -ge "$(printf '%d' "$time_current")" ] ; then
printf 'Do you want to run jhalfs? yes/no (yes): '
read -r ANSWER
@@ -148,7 +154,6 @@ load_file configuration "Loading config params from "
RUNMAKE=${RUNMAKE:-n}
GETPKG=${GETPKG:-n}
COMPARE=${COMPARE:-n}
-RUN_FARCE=${RUN_FARCE:-n}
RUN_ICA=${RUN_ICA:-n}
PKGMNGT=${PKGMNGT:-n}
WRAP_INSTALL=${WRAP_INSTALL:-n}
diff --git a/menu/BusyBox-1.1.3-menu.patch b/menu/BusyBox-1.1.3-menu.patch
deleted file mode 100644
index 6a4be25..0000000
--- a/menu/BusyBox-1.1.3-menu.patch
+++ /dev/null
@@ -1,507 +0,0 @@
-diff -Npr menu-bb/conf.c menu/conf.c
-*** menu-bb/conf.c 2006-03-22 16:16:18.000000000 -0500
---- menu/conf.c 2006-07-26 17:26:45.000000000 -0400
-*************** int main(int ac, char **av)
-*** 535,554 ****
- conf_parse(name);
- //zconfdump(stdout);
- switch (input_mode) {
-- case set_default:
-- if (!defconfig_file)
-- defconfig_file = conf_get_default_confname();
-- if (conf_read(defconfig_file)) {
-- printf("***\n"
-- "*** Can't find default configuration \"%s\"!\n"
-- "***\n", defconfig_file);
-- exit(1);
-- }
-- break;
- case ask_silent:
- if (stat(".config", &tmpstat)) {
- printf("***\n"
-! "*** You have not yet configured BusyBox!\n"
- "***\n"
- "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
- "*** \"make menuconfig\" or \"make config\").\n"
---- 535,544 ----
- conf_parse(name);
- //zconfdump(stdout);
- switch (input_mode) {
- case ask_silent:
- if (stat(".config", &tmpstat)) {
- printf("***\n"
-! "*** You have not yet configured JHALFS!\n"
- "***\n"
- "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
- "*** \"make menuconfig\" or \"make config\").\n"
-*************** int main(int ac, char **av)
-*** 576,582 ****
- check_conf(&rootmenu);
- } while (conf_cnt);
- if (conf_write(NULL)) {
-! fprintf(stderr, "\n*** Error during writing of the BusyBox configuration.\n\n");
- return 1;
- }
- return 0;
---- 566,572 ----
- check_conf(&rootmenu);
- } while (conf_cnt);
- if (conf_write(NULL)) {
-! fprintf(stderr, "\n*** Error during writing of the JHALFS configuration.\n\n");
- return 1;
- }
- return 0;
-diff -Npr menu-bb/confdata.c menu/confdata.c
-*** menu-bb/confdata.c 2006-03-22 16:16:18.000000000 -0500
---- menu/confdata.c 2006-07-26 17:26:45.000000000 -0400
-***************
-*** 13,24 ****
- #define LKC_DIRECT_LINK
- #include "lkc.h"
-
-! const char conf_def_filename[] = ".config";
-
- const char conf_defname[] = "defconfig";
-
- const char *conf_confnames[] = {
-! ".config",
- conf_defname,
- NULL,
- };
---- 13,24 ----
- #define LKC_DIRECT_LINK
- #include "lkc.h"
-
-! const char conf_def_filename[] = "configuration";
-
- const char conf_defname[] = "defconfig";
-
- const char *conf_confnames[] = {
-! "configuration",
- conf_defname,
- NULL,
- };
-*************** static char *conf_expand_value(const cha
-*** 49,70 ****
- return res_value;
- }
-
-- char *conf_get_default_confname(void)
-- {
-- struct stat buf;
-- static char fullname[PATH_MAX+1];
-- char *env, *name;
--
-- name = conf_expand_value(conf_defname);
-- env = getenv(SRCTREE);
-- if (env) {
-- sprintf(fullname, "%s/%s", env, name);
-- if (!stat(fullname, &buf))
-- return fullname;
-- }
-- return name;
-- }
--
- int conf_read(const char *name)
- {
- FILE *in = NULL;
---- 49,54 ----
-*************** struct menu *next_menu(struct menu *menu
-*** 271,277 ****
-
- int conf_write(const char *name)
- {
-! FILE *out, *out_h;
- struct symbol *sym;
- struct menu *menu;
- const char *basename;
---- 255,261 ----
-
- int conf_write(const char *name)
- {
-! FILE *out;
- struct symbol *sym;
- struct menu *menu;
- const char *basename;
-*************** int conf_write(const char *name)
-*** 279,288 ****
- int type, l;
- const char *str;
-
-- /* busybox`s code */
-- const char *opt_name;
-- int use_flg;
--
- dirname[0] = 0;
- if (name && name[0]) {
- struct stat st;
---- 263,268 ----
-*************** int conf_write(const char *name)
-*** 309,342 ****
- out = fopen(newname, "w");
- if (!out)
- return 1;
-- out_h = NULL;
-- if (!name) {
-- out_h = fopen(".tmpconfig.h", "w");
-- if (!out_h)
-- return 1;
-- }
- fprintf(out, "#\n"
-! "# Automatically generated make config: don't edit\n"
- "#\n");
-
-- /* busybox`s code */
-- if (out_h) {
-- fprintf(out_h, "#ifndef BB_CONFIG_H\n#define BB_CONFIG_H\n");
-- fprintf(out_h, "/*\n"
-- " * Automatically generated header file: don't edit\n"
-- " */\n\n"
-- "/* Version Number */\n"
-- "#define BB_VER \"%s\"\n"
-- "#define BB_BT \"%s\"\n",
-- getenv("VERSION"),
-- getenv("BUILDTIME"));
-- if (getenv("EXTRA_VERSION"))
-- fprintf(out_h, "#define BB_EXTRA_VERSION \"%s\"\n",
-- getenv("EXTRA_VERSION"));
-- fprintf(out_h, "\n");
-- }
-- /* end busybox`s code */
--
- if (!sym_change_count)
- sym_clear_all_valid();
-
---- 289,299 ----
- out = fopen(newname, "w");
- if (!out)
- return 1;
- fprintf(out, "#\n"
-! "# Automatically generated configuration: don't edit\n"
-! "# use make menuconfig or make config to make changes\n"
- "#\n");
-
- if (!sym_change_count)
- sym_clear_all_valid();
-
-*************** int conf_write(const char *name)
-*** 357,367 ****
- "#\n"
- "# %s\n"
- "#\n", str);
-- if (out_h)
-- fprintf(out_h, "\n"
-- "/*\n"
-- " * %s\n"
-- " */\n", str);
- } else if (!(sym->flags & SYMBOL_CHOICE)) {
- sym_calc_value(sym);
- if (!(sym->flags & SYMBOL_FORCEWRITE))
---- 314,319 ----
-*************** int conf_write(const char *name)
-*** 375,388 ****
- type = S_BOOLEAN;
- }
-
-- /* busybox`s code */
-- opt_name = strchr(sym->name, '_');
-- if(opt_name == NULL)
-- opt_name = sym->name;
-- else
-- opt_name++;
-- use_flg = 1;
-- /* end busybox`s code */
-
- switch (type) {
- case S_BOOLEAN:
---- 327,332 ----
-*************** int conf_write(const char *name)
-*** 390,410 ****
- switch (sym_get_tristate_value(sym)) {
- case no:
- fprintf(out, "# %s is not set\n", sym->name);
-- if (out_h)
-- fprintf(out_h, "#undef %s\n", sym->name);
-- use_flg = 0; /* busybox`s code */
- break;
- case mod:
-- #if 0 /* busybox`s code */
- fprintf(out, "%s=m\n", sym->name);
-- if (out_h)
-- fprintf(out_h, "#define %s_MODULE 1\n", sym->name);
-- #endif /* busybox`s code */
- break;
- case yes:
- fprintf(out, "%s=y\n", sym->name);
-- if (out_h)
-- fprintf(out_h, "#define %s 1\n", sym->name);
- break;
- }
- break;
---- 334,345 ----
-*************** int conf_write(const char *name)
-*** 412,473 ****
- // fix me
- str = sym_get_string_value(sym);
- fprintf(out, "%s=\"", sym->name);
-- if (out_h)
-- fprintf(out_h, "#define %s \"", sym->name);
- do {
- l = strcspn(str, "\"\\");
- if (l) {
- fwrite(str, l, 1, out);
-- if (out_h)
-- fwrite(str, l, 1, out_h);
- }
- str += l;
- while (*str == '\\' || *str == '"') {
- fprintf(out, "\\%c", *str);
-- if (out_h)
-- fprintf(out_h, "\\%c", *str);
- str++;
- }
- } while (*str);
- fputs("\"\n", out);
-- if (out_h)
-- fputs("\"\n", out_h);
- break;
- case S_HEX:
- str = sym_get_string_value(sym);
- if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
- fprintf(out, "%s=%s\n", sym->name, *str ? str : "0");
-- if (out_h)
-- fprintf(out_h, "#define %s 0x%s\n", sym->name, str);
- break;
- }
- case S_INT:
- str = sym_get_string_value(sym);
- fprintf(out, "%s=%s\n", sym->name, *str ? str : "0");
-- if (out_h)
-- fprintf(out_h, "#define %s %s\n", sym->name, str);
- break;
- }
-- /* busybox`s code */
-- if (out_h) {
-- fprintf(out_h, "#define ENABLE_%s %d\n", opt_name, use_flg);
-- fprintf(out_h, "#define USE_%s(...)%s\n", opt_name,
-- (use_flg ? " __VA_ARGS__" : ""));
-- fprintf(out_h, "#define SKIP_%s(...)%s\n\n", opt_name,
-- (use_flg ? "" : " __VA_ARGS__"));
-- }
-- /* end busybox`s code */
- }
- next:
- menu = next_menu(menu);
- }
- fclose(out);
-- if (out_h) {
-- fprintf(out_h, "#endif /* BB_CONFIG_H */\n"); /* busybox`s code */
-- fclose(out_h);
-- rename(".tmpconfig.h", "include/bb_config.h"); /* busybox`s config name */
-- file_write_dep(NULL);
-- }
- if (!name || basename != conf_def_filename) {
- if (!name)
- name = conf_def_filename;
---- 347,381 ----
-diff -Npr menu-bb/Makefile menu/Makefile
-*** menu-bb/Makefile 2006-03-22 16:16:18.000000000 -0500
---- menu/Makefile 2006-07-26 18:06:25.000000000 -0400
-***************
-*** 1,11 ****
- # Makefile for BusyBox
- #
- # Copyright (C) 2002 Erik Andersen
-
-- top_srcdir=../..
-- top_builddir=../..
-- srcdir=$(top_srcdir)/scripts/config
-- include $(top_srcdir)/Rules.mak
-
- all: ncurses conf mconf
-
---- 1,30 ----
- # Makefile for BusyBox
- #
- # Copyright (C) 2002 Erik Andersen
-+ # Modified by George Boudreau georgeb@LinuxFromScratch.org
-+
-+ top_srcdir=.
-+ top_builddir=.
-+ srcdir=$(top_srcdir)
-+
-+ # Select the compiler needed to build binaries for your development system
-+ HOSTCC = gcc
-+ HOSTCFLAGS= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-+
-+ # Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
-+ LC_ALL:= C
-+
-+ SED ?= sed
-+ SECHO := @-false
-+ DISP := pur
-+ Q := @
-+
-+ show_objs = $(subst $(top_builddir)/,,$(subst ../,,$@))
-+ pur_disp_compile.h = echo " "HOSTCC $(show_objs)
-+ disp_compile.h = $($(DISP)_disp_compile.h)
-+ cmd_compile.h = $(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
-+ compile.h = @$(disp_compile.h) ; $(cmd_compile.h)
-
-
- all: ncurses conf mconf
-
-diff -Npr menu-bb/mconf.c menu/mconf.c
-*** menu-bb/mconf.c 2006-03-22 16:16:18.000000000 -0500
---- menu/mconf.c 2006-07-26 17:26:45.000000000 -0400
-*************** static char menu_backtitle[128];
-*** 32,38 ****
- static const char mconf_readme[] =
- "Overview\n"
- "--------\n"
-! "Some features may be built directly into BusyBox. Some features\n"
- "may be completely removed altogether. There are also certain\n"
- "parameters which are not really features, but must be\n"
- "entered in as decimal or hexadecimal numbers or possibly text.\n"
---- 32,38 ----
- static const char mconf_readme[] =
- "Overview\n"
- "--------\n"
-! "Some features may be built directly into JHALFS. Some features\n"
- "may be completely removed altogether. There are also certain\n"
- "parameters which are not really features, but must be\n"
- "entered in as decimal or hexadecimal numbers or possibly text.\n"
-*************** load_config_text[] =
-*** 194,204 ****
- "last retrieved. Leave blank to abort.",
- load_config_help[] =
- "\n"
-! "For various reasons, one may wish to keep several different BusyBox\n"
- "configurations available on a single machine.\n"
- "\n"
- "If you have saved a previous configuration in a file other than the\n"
-! "BusyBox's default, entering the name of the file here will allow you\n"
- "to modify that configuration.\n"
- "\n"
- "If you are uncertain, then you have probably never used alternate\n"
---- 194,204 ----
- "last retrieved. Leave blank to abort.",
- load_config_help[] =
- "\n"
-! "For various reasons, one may wish to keep several different JHALFS\n"
- "configurations available on a single machine.\n"
- "\n"
- "If you have saved a previous configuration in a file other than the\n"
-! "JHALFS's default, entering the name of the file here will allow you\n"
- "to modify that configuration.\n"
- "\n"
- "If you are uncertain, then you have probably never used alternate\n"
-*************** save_config_text[] =
-*** 208,214 ****
- "as an alternate. Leave blank to abort.",
- save_config_help[] =
- "\n"
-! "For various reasons, one may wish to keep different BusyBox\n"
- "configurations available on a single machine.\n"
- "\n"
- "Entering a file name here will allow you to later retrieve, modify\n"
---- 208,214 ----
- "as an alternate. Leave blank to abort.",
- save_config_help[] =
- "\n"
-! "For various reasons, one may wish to keep different JHALFS\n"
- "configurations available on a single machine.\n"
- "\n"
- "Entering a file name here will allow you to later retrieve, modify\n"
-*************** int main(int ac, char **av)
-*** 940,946 ****
-
- sym = sym_lookup("VERSION", 0);
- sym_calc_value(sym);
-! snprintf(menu_backtitle, 128, "BusyBox v%s Configuration",
- sym_get_string_value(sym));
-
- mode = getenv("MENUCONFIG_MODE");
---- 940,946 ----
-
- sym = sym_lookup("VERSION", 0);
- sym_calc_value(sym);
-! snprintf(menu_backtitle, 128, "JHALFS v%s Configuration",
- sym_get_string_value(sym));
-
- mode = getenv("MENUCONFIG_MODE");
-*************** int main(int ac, char **av)
-*** 961,976 ****
- init_dialog();
- do {
- stat = dialog_yesno(NULL,
-! "Do you wish to save your new BusyBox configuration?", 5, 60);
- } while (stat < 0);
- end_dialog();
-
- if (stat == 0) {
- conf_write(NULL);
- printf("\n"
-! "*** End of BusyBox configuration.\n");
- } else
-! printf("\n\nYour BusyBox configuration changes were NOT saved.\n\n");
-
- return 0;
- }
---- 961,976 ----
- init_dialog();
- do {
- stat = dialog_yesno(NULL,
-! "Do you wish to save your new JHALFS configuration?", 5, 60);
- } while (stat < 0);
- end_dialog();
-
- if (stat == 0) {
- conf_write(NULL);
- printf("\n"
-! "*** End of JHALFS configuration.\n");
- } else
-! printf("\n\nYour JHALFS configuration changes were NOT saved.\n\n");
-
- return 0;
- }
-diff -Npr menu-bb/zconf.tab.c_shipped menu/zconf.tab.c_shipped
-*** menu-bb/zconf.tab.c_shipped 2006-03-22 16:16:18.000000000 -0500
---- menu/zconf.tab.c_shipped 2006-07-26 17:26:45.000000000 -0400
-*************** void conf_parse(const char *name)
-*** 1925,1931 ****
- sym_init();
- menu_init();
- modules_sym = sym_lookup("MODULES", 0);
-! rootmenu.prompt = menu_add_prop(P_MENU, "BusyBox Configuration", NULL, NULL);
-
- //zconfdebug = 1;
- zconfparse();
---- 1925,1931 ----
- sym_init();
- menu_init();
- modules_sym = sym_lookup("MODULES", 0);
-! rootmenu.prompt = menu_add_prop(P_MENU, "JHALFS Configuration", NULL, NULL);
-
- //zconfdebug = 1;
- zconfparse();
-diff -Npr menu-bb/zconf.y menu/zconf.y
-*** menu-bb/zconf.y 2006-03-22 16:16:18.000000000 -0500
---- menu/zconf.y 2006-07-26 17:26:45.000000000 -0400
-*************** void conf_parse(const char *name)
-*** 487,493 ****
- sym_init();
- menu_init();
- modules_sym = sym_lookup("MODULES", 0);
-! rootmenu.prompt = menu_add_prop(P_MENU, "BusyBox Configuration", NULL, NULL);
-
- //zconfdebug = 1;
- zconfparse();
---- 487,493 ----
- sym_init();
- menu_init();
- modules_sym = sym_lookup("MODULES", 0);
-! rootmenu.prompt = menu_add_prop(P_MENU, "JHALFS Configuration", NULL, NULL);
-
- //zconfdebug = 1;
- zconfparse();
diff --git a/menu/Kconfig-language.txt b/menu/Kconfig-language.txt
deleted file mode 100644
index 493749b..0000000
--- a/menu/Kconfig-language.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-Introduction
-------------
-
-The configuration database is collection of configuration options
-organized in a tree structure:
-
- +- Code maturity level options
- | +- Prompt for development and/or incomplete code/drivers
- +- General setup
- | +- Networking support
- | +- System V IPC
- | +- BSD Process Accounting
- | +- Sysctl support
- +- Loadable module support
- | +- Enable loadable module support
- | +- Set version information on all module symbols
- | +- Kernel module loader
- +- ...
-
-Every entry has its own dependencies. These dependencies are used
-to determine the visible of an entry. Any child entry is only
-visible if its parent entry is also visible.
-
-Menu entries
-------------
-
-Most entries define a config option, all other entries help to organize
-them. A single configuration option is defined like this:
-
-config MODVERSIONS
- bool "Set version information on all module symbols"
- depends MODULES
- help
- Usually, modules have to be recompiled whenever you switch to a new
- kernel. ...
-
-Every line starts with a key word and can be followed by multiple
-arguments. "config" starts a new config entry. The following lines
-define attributes for this config option. Attributes can be the type of
-the config option, input prompt, dependencies, help text and default
-values. A config option can be defined multiple times with the same
-name, but every definition can have only a single input prompt and the
-type must not conflict.
-
-Menu attributes
----------------
-
-A menu entry can have a number of attributes. Not all of them are
-applicable everywhere (see syntax).
-
-- type definition: "bool"/"tristate"/"string"/"hex"/"integer"
- Every config option must have a type. There are only two basic types:
- tristate and string, the other types base on these two. The type
- definition optionally accepts an input prompt, so these two examples
- are equivalent:
-
- bool "Networking support"
- and
- bool
- prompt "Networking support"
-
-- input prompt: "prompt" ["if" ]
- Every menu entry can have at most one prompt, which is used to display
- to the user. Optionally dependencies only for this prompt can be added
- with "if".
-
-- default value: "default" ["if" ]
- A config option can have any number of default values. If multiple
- default values are visible, only the first defined one is active.
- Default values are not limited to the menu entry, where they are
- defined, this means the default can be defined somewhere else or be
- overriden by an earlier definition.
- The default value is only assigned to the config symbol if no other
- value was set by the user (via the input prompt above). If an input
- prompt is visible the default value is presented to the user and can
- be overridden by him.
- Optionally dependencies only for this default value can be added with
- "if".
-
-- dependencies: "depends on"/"requires"
- This defines a dependency for this menu entry. If multiple
- dependencies are defined they are connected with '&&'. Dependencies
- are applied to all other options within this menu entry (which also
- accept "if" expression), so these two examples are equivalent:
-
- bool "foo" if BAR
- default y if BAR
- and
- depends on BAR
- bool "foo"
- default y
-
-- help text: "help"
- This defines a help text. The end of the help text is determined by
- the level indentation, this means it ends at the first line which has
- a smaller indentation than the first line of the help text.
-
-
-Menu dependencies
------------------
-
-Dependencies define the visibility of a menu entry and can also reduce
-the input range of tristate symbols. The tristate logic used in the
-expressions uses one more state than normal boolean logic to express the
-module state. Dependency expressions have the following syntax:
-
- ::= (1)
- '=' (2)
- '!=' (3)
- '(' ')' (4)
- '!' (5)
- '||' (6)
- '&&' (7)
-
-Expressions are listed in decreasing order of precedence.
-
-(1) Convert the symbol into an expression. Boolean and tristate symbols
- are simply converted into the respective expression values. All
- other symbol types result in 'n'.
-(2) If the values of both symbols are equal, it returns 'y',
- otherwise 'n'.
-(3) If the values of both symbols are equal, it returns 'n',
- otherwise 'y'.
-(4) Returns the value of the expression. Used to override precedence.
-(5) Returns the result of (2-/expr/).
-(6) Returns the result of min(/expr/, /expr/).
-(7) Returns the result of max(/expr/, /expr/).
-
-An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
-respectively for calculations). A menu entry becomes visible when it's
-expression evaluates to 'm' or 'y'.
-
-There are two type of symbols: constant and nonconstant symbols.
-Nonconstant symbols are the most common ones and are defined with the
-'config' statement. Nonconstant symbols consist entirely of alphanumeric
-characters or underscores.
-Constant symbols are only part of expressions. Constant symbols are
-always surrounded by single or double quotes. Within the quote any
-other character is allowed and the quotes can be escaped using '\'.
-
-Menu structure
---------------
-
-The position of a menu entry in the tree is determined in two ways. First
-it can be specified explicitely:
-
-menu "Network device support"
- depends NET
-
-config NETDEVICES
- ...
-
-endmenu
-
-All entries within the "menu" ... "endmenu" block become a submenu of
-"Network device support". All subentries inherit the dependencies from
-the menu entry, e.g. this means the dependency "NET" is added to the
-dependency list of the config option NETDEVICES.
-
-The other way to generate the menu structure is done by analyzing the
-dependencies. If a menu entry somehow depends on the previous entry, it
-can be made a submenu of it. First the the previous (parent) symbol must
-be part of the dependency list and then one of these two condititions
-must be true:
-- the child entry must become invisible, if the parent is set to 'n'
-- the child entry must only be visible, if the parent is visible
-
-config MODULES
- bool "Enable loadable module support"
-
-config MODVERSIONS
- bool "Set version information on all module symbols"
- depends MODULES
-
-comment "module support disabled"
- depends !MODULES
-
-MODVERSIONS directly depends on MODULES, this means it's only visible if
-MODULES is different from 'n'. The comment on the other hand is always
-visible when MODULES it's visible (the (empty) dependency of MODULES is
-also part of the comment dependencies).
-
-
-Kconfig syntax
---------------
-
-The configuration file describes a series of menu entries, where every
-line starts with a keyword (except help texts). The following keywords
-end a menu entry:
-- config
-- choice/endchoice
-- comment
-- menu/endmenu
-- if/endif
-- source
-The first four also start the definition of a menu entry.
-
-config:
-
- "config"
-
-
-This defines a config symbol and accepts any of above
-attributes as options.
-
-choices:
-
- "choice"
-
-
- "endchoice"
-
-This defines a choice group and accepts any of above attributes as
-options. A choice can only be of type bool or tristate, while a boolean
-choice only allows a single config entry to be selected, a tristate
-choice also allows any number of config entries to be set to 'm'. This
-can be used if multiple drivers for a single hardware exists and only a
-single driver can be compiled/loaded into the kernel, but all drivers
-can be compiled as modules.
-A choice accepts another option "optional", which allows to set the
-choice to 'n' and no entry needs to be selected.
-
-comment:
-
- "comment"
-
-
-This defines a comment which is displayed to the user during the
-configuration process and is also echoed to the output files. The only
-possible options are dependencies.
-
-menu:
-
- "menu"
-