Strange use of tar in jhalfs

George Boudreau georgeb at linuxfromscratch.org
Fri Aug 3 08:33:59 PDT 2007


Petr "Qaxi" Klíma wrote:
> Hello
> 
> I am new to jhalfs ... so sorry
> 
> I succesfully finish those steps
> 
> $ tar -xjf jhalfs-2.3.tar.bz2
> $ tar -xjf LFS-BOOK-6.2-XML.tar.bz2
> $ cd jhalfs-2.3
> $ make menuconfig
> $ make
>     # this downoladed a lot of SRC files ...
> $
> $ cd /mnt/jhalfs-build_dir
> $ cd jhalfs
> 
> 
> When I run make
> 
> $ make
> 
> it fails with this:
> --------------------------------------------------------------------------------
>  Building target 028-binutils-pass1
> tar: This does not look like a tar archive
> tar: Skipping to next header
> tar: Archive contains obsolescent base-64 headers
> tar: Error exit delayed from previous errors
> make: *** [028-binutils-pass1] Error 1
> make: *** [mk_LUSER] Error 2
> 
> 
> What is worse ALL files in /mnt/jhalfs-build_dir/sources are GONE .
   ah-ha.. I had that happen _once_, years ago. I put it down to early 
coding.
> 
> When I debug /mnt/jhalfs-build_dir/jhalfs/Makefile
> 
> That responsible are those pieces of makefiles
> 
> Makefile is calling "remove_existing_dirs"
> -- Makefile --------------------
> 028-binutils-pass1:  022-settingenvironment
>     @$(call echo_message, Building)
>     @export BASHBIN=$(SHELL) && $(SHELL) progress_bar.sh $@ $$PPID &
>     @echo "$(nl_)`date`$(nl_)" >logs/$@
>     @$(PRT_DU) >>logs/$@
>     @$(call remove_existing_dirs,binutils-2.16.1.tar.bz2)
>     @$(call unpack,binutils-2.16.1.tar.bz2)
>     @$(call get_pkg_root_LUSER)
>     @start=$(TIME_MARK) && \
>     source ~/.bashrc && \
>     $(CMDSDIR)/chapter05/$@ >> logs/$@ 2>&1 && \
>     end=$(TIME_MARK) && $(BUILD_TIME) >>logs/$@ && \
>     $(PRT_DU) >>logs/$@
>     @$(call remove_build_dirs,binutils)
>     @$(call housekeeping)
> --------------------------------
> 
> -- makefile-functions ----------
> define remove_existing_dirs
>   @PKG_PATH=`ls -t $(SRCSDIR)/$(1) | head -n1` && \
>   ROOT=`tar -tf $$PKG_PATH | head -n1 | sed -e 's@^./@@;s@/.*@@'` && \
>   rm -rf $(SRCSDIR)/$$ROOT && \
>   rm -rf $(SRCSDIR)/$${ROOT%-*}-build
> endef
> --------------------------------
> 
> As I understand the "ROOT= ...." should contain top directory from package.
> 
> But how can "tar -tf " get it when it is compressed by bzi2 ?
   tar-2.15 can detect the compression type and automatically call the 
appropriate decompression routine.
   The real issue is the routine does not handle 'failures' properly. I 
will check it out.
    What version of tar do you have?
> 
> "tar -tjf" would by better (and may by an other function for handling 
> .gz files)
> 
> Did I miss an importnant point ?
> 
> 




More information about the alfs-discuss mailing list