Bug 9026 - Separator, mismatch "main.packages" filesize.
: Separator, mismatch "main.packages" filesize.
Status: CLOSED WONTFIX
: Branch 3.0
(All bugs in Branch 3.0/separator)
: 3.0
: all Linux
: P2 major
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2006-02-06 12:58 by
Modified: 2008-02-15 19:33 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-02-06 12:58:36
При генерации инсталяционного образа, список RPM файлов , которые копируются в  
каталог "out/ALTLinux/RPMS.main" при последовательных сборках и постоянной     
конфигурации разное... Изучив немного скрипты сепаратора, нашел, что список     
этих файлов читается из tmp/main.packages, но во время чтения списка данный     
файл меньше, его окончательного размера.    
Пример:    
Непосредственно перед чтением списка:    
-rw-r--r-- 1 root root 4096 Jan 31     
17:54 /home/hasher/_hasher/tmp/main.packages    

Реальный размер, измеренный после окончания процеса сборки:    
-rw-r--r-- 1 root root 16506 Jan 31     
17:54 /home/hasher/_hasher/tmp/main.packages    

Вот... :)    
Иногда этот файл вообще нулевой длины...    
Иногда такое творится с /home/hasher/_hasher/tmp/base.packages"    

Для исправления ситуации как вариант можно добавить вызов "sync" перед чтением  
списка пакетов из файла "$TMPDIR/$IDENT.packages".  

/usr/share/separator/functions 
... 
[skip] 

copypackages() 
{ 
    local WORKDIR APTBOX IDENT INSTALLDIR APTBOX TMPDIR INSTALLDIRS i OUTDIR 
    WORKDIR=$1 
    IDENT=$2 
    INSTALLDIR=$3 
    INSTALLDIRS=$4 
    OUTDIR=$5 
    APTBOX="$WORKDIR/aptbox" 
    TMPDIR="$WORKDIR/tmp" 
    [ -z "$IDENT" ] && IDENT="packages" 
    [ -d "$APTBOX" ] || Fatal "Please, create $APTBOX first" 
    [ -d "$INSTALLDIR" ] || mkdir -p "$INSTALLDIR" 
    Info "removing old packages ($IDENT) ..." 
    rm -f $INSTALLDIR/*0 
    Info "copying new packages ($IDENT) ..." 

    sync; 
#   ^^^^ 
    while read i 
    do 
        packagestatus "$INSTALLDIRS" `basename $i` $OUTDIR || continue 
        if ! curl $i -qs -o $INSTALLDIR/`basename $i`; then 
            echo "Copy package $i to  $INSTALLDIR/`basename $i` failed !!!" 
            exit 1 
        fi 
        echo -n "." 
    done < $TMPDIR/$IDENT.packages 
    echo "" 
} 
Steps to Reproduce:
1.Add line $(ls -l $TMPDIR/$IDENT.packages >> /tmp/separator.bug)  
after part of code in the file /usr/share/separator/functions  
...  
[skip]  

copypackages()  
{  
    local WORKDIR APTBOX IDENT INSTALLDIR APTBOX TMPDIR INSTALLDIRS i OUTDIR  
    WORKDIR=$1  
    IDENT=$2  
    INSTALLDIR=$3  
    INSTALLDIRS=$4  
    OUTDIR=$5  
    APTBOX="$WORKDIR/aptbox"  
    TMPDIR="$WORKDIR/tmp"  
    [ -z "$IDENT" ] && IDENT="packages"  
    [ -d "$APTBOX" ] || Fatal "Please, create $APTBOX first"  
    [ -d "$INSTALLDIR" ] || mkdir -p "$INSTALLDIR"  
    Info "removing old packages ($IDENT) ..."  
    rm -f $INSTALLDIR/*0  
    Info "copying new packages ($IDENT) ..."  
-> Here <-  
2. Build installer image  
3. Look to the file /tmp/separator.bug and compare included data with a data  
about the same file ("$TMPDIR/$IDENT.packages" or "tmp/main.packages") in a 
current time.  
Actual Results:  
Data in the file /tmp/separator.bug and a data   
about the same file ("$TMPDIR/$IDENT.packages" or "tmp/main.packages") in a  
current time is different. 

Expected Results:  
Data in the file /tmp/separator.bug and a data   
about the same file ("$TMPDIR/$IDENT.packages" or "tmp/main.packages") in a  
current time is a same.
------- Comment #1 From 2008-02-15 19:33:37 -------
apparently wontfix; use spt/mkimage