Hello,
the status of the Live CD repository is rather bad.
1) glibc instructions in trunk match none of the available books
2) utf8 branch is out of date and doesn't build due to a missing tarball
with RedHat patches (but please keep it for reference, it's the only
branch that provided UTF-8 support and resulted in a released CD).
3) utf8-newmake never was built up to the end
4) sha1 sums for many packages don't match if one unpacks a big
all-packages tar from lfs-matrix.net instead of downloading all packages
5) commands, visual effects and logging are not clearly separated in
Makefiles. As a result, it takes more than one 80x25 screen to compare
the commands in the Makefile and in the book
6) downloading of the SVN book to /usr/share/LFS-BOOK is broken
7) unionfs is still used, although device-mapper solution is already
tested, but even it is in fact unnecessary in the utf8 branch: any
reason for the need to write to /usr is a bug, and the font-related
reason is resolved there by avoiding non-Xft based apps.
So, I merged everything from trunk and started fixing some of this mess
in my utf8-newmake branch (but didn't commit yet, see below why).
The UTF-8 variant of the old book is available at
http://www.linuxfromscratch.org/~alexander/lfs-book/ (only Chapters 5
and 6 are valid). Merging gcc4 changes here resulted only in two easily
resolvable conflits. So I am currently updating my local copy of the
utf8-newmake branch according to the merged instructions. I will put
those instructions online after verification that nothing in LFS fails
to build. Currently, I am at the beginning of Chapter 6, but I also
applied the
http://www.diy-linux.org/downloads/patches/gcc-4.0.1-volatile-fix-1.patch
because it apparently better fixes the vgahw problem with Xorg and is
closer to upsteram.
Also, I attempted to separate logging and visual effects from commands,
by replacing the scripts/functions file with the attached one and
cleaning up each Makefile from useless comments and logging by piping it
through the following Perl script:
#!/usr/bin/perl
$/ = undef;
$input = <>;
$input =~ s/# ?=*\n//g;
$input =~ s/#\n//g;
$input =~ s/#.*?\\\/\n//g;
$input =~ s/#.*?Status Messages.*?\n//g;
$input =~ s/[EMAIL PROTECTED](call echo.*?\n//g;
$input =~ s/[EMAIL PROTECTED](OK\)\n//g;
$input =~ s/\t@/\t/g;
$input =~ s/ \>\>?.*?log 2\>\&1//g;
$input =~ s/ \\\n\t\n/\n/g;
print $input;
# EOF
(after this, one has to change sep_dir_build to sep_dir_build_noclean in
tcl and binutils, and revamp the "make clean" logic in packages using
sep_dir_build)
This cleanup resulted in more easily readable/verifiable commands and
freed me from thinking about logging in each package's Makefile.
However, committing this will result in a 300KB message and inability
for me to merge things to/from trunk (but since Jeremy Huntwork said
goodbye, that isn't a big problem). Also I am going to remove sha1 sum
checking because of frequent (apparently bogus) mismatches (e.g. on
make-3.80). Do you want this cleanup?
--
Alexander E. Patrakov
#==============================================================================
# Functions for use in the LiveCD Makefiles
#
# Authors: Jeremy Huntwork, Alexander Patrakov
# Date : 2005-07-17
#==============================================================================
define echo_message
@echo $(BRW)
@echo
================================================================================
@echo $(BRW)$(1) $(ORANGE)$(NM)-$(VRS)$(BRW) for target $(ORANGE)[EMAIL
PROTECTED](BRW)
@echo
================================================================================$(WHITE)
endef
define OK
@echo $(GREEN)=====================================[ OK
]=====================================$(WHITE)
endef
define std_build
@$(call echo_message, Building)
@unpack $(FILE) >$(DIR)[EMAIL PROTECTED] 2>&1
@make -C $(DIR) -f ../Makefile compile-$@ >>$(DIR)[EMAIL PROTECTED] 2>&1
@make clean >>$(DIR)[EMAIL PROTECTED] 2>&1
@touch $@
endef
define std_build_noclean
@$(call echo_message, Building)
@unpack $(FILE) >$(DIR)[EMAIL PROTECTED] 2>&1
@make -C $(DIR) -f ../Makefile compile-$@ >>$(DIR)[EMAIL PROTECTED] 2>&1
@touch $@
endef
define sep_dir_build
@$(call echo_message, Building)
@unpack $(FILE) >$(DIR)[EMAIL PROTECTED] 2>&1
@rm -rf $(NM)-build >>$(DIR)[EMAIL PROTECTED] 2>&1
@mkdir -v $(NM)-build >>$(DIR)[EMAIL PROTECTED] 2>&1
@$(MAKE) -C $(NM)-build -f ../Makefile compile-$@ >>$(DIR)[EMAIL
PROTECTED] 2>&1
@make clean >>$(DIR)[EMAIL PROTECTED] 2>&1
@touch $@
endef
define sep_dir_build_noclean
@$(call echo_message,Building)
@unpack $(FILE) >$(DIR)[EMAIL PROTECTED] 2>&1
@rm -rf $(NM)-build >>$(DIR)[EMAIL PROTECTED] 2>&1
@mkdir -v $(NM)-build >>$(DIR)[EMAIL PROTECTED] 2>&1
@$(MAKE) -C $(NM)-build -f ../Makefile compile-$@ >>$(DIR)[EMAIL
PROTECTED] 2>&1
@touch $@
endef
# This takes the form of 'download [filename] [url] [sha1sum]'
define download
@cd $(SRC) ; if [ ! -f $(1) ] ; then $(WGET) $(2) ; \
elif ! echo "$(3) $(SRC)/$(1)" | sha1sum -c - >/dev/null 2>/dev/null
; then \
$(WGET) -c $(2) ; fi
@if echo "$(3) $(SRC)/$(1)" | sha1sum -c - >/dev/null 2>/dev/null ;
then \
echo $(BRW)sha1sum check on $(SRC)/$(1): $(GREEN)[ OK ]$(WHITE); \
else echo $(BRW)sha1sum check on $(SRC)/$(1): $(RED)[ FAILED
]$(WHITE); exit 1 ; fi
@ln -sf $(SRC)/$(1) .
endef
%.gz %.tgz %.bz2 %.zip %.patch %.rules %.ttf:
$(call download,$@,$(URL-$@),$(SHA-$@))
wget-list-entry:
@echo $(URL-$(FILE)) >>$(MKTREE)/wget-list
@echo $(URL-$(FILE1)) >>$(MKTREE)/wget-list
@echo $(URL-$(FILE2)) >>$(MKTREE)/wget-list
@echo $(URL-$(FILE3)) >>$(MKTREE)/wget-list
@echo $(URL-$(FILE4)) >>$(MKTREE)/wget-list
@echo $(URL-$(FILE5)) >>$(MKTREE)/wget-list
@echo $(URL-$(PATCH)) >>$(MKTREE)/wget-list
@echo $(URL-$(PATCH1)) >>$(MKTREE)/wget-list
@echo $(URL-$(PATCH2)) >>$(MKTREE)/wget-list
@echo $(URL-$(PATCH3)) >>$(MKTREE)/wget-list
@echo $(URL-$(PATCH4)) >>$(MKTREE)/wget-list
@echo $(URL-$(PATCH5)) >>$(MKTREE)/wget-list
@echo $(URL-$(PATCH6)) >>$(MKTREE)/wget-list
@echo $(URL-$(PATCH7)) >>$(MKTREE)/wget-list
--
http://linuxfromscratch.org/mailman/listinfo/livecd
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page