Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 149979
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: Zac Medico <zmedico@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: kdd@gmx.net
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
emerge-delta-webrsync.diff.tar.bz2 Patch (*.tar.bz2) to fix wrong verification path and other issues patch kdd@gmx.net 2006-10-03 11:41 0000 704 bytes Details | Diff
emerge-delta-webrsync.diff Patch as uncompressed textfile emerge-delta-webrsync.diff patch kdd@gmx.net 2006-10-03 12:04 0000 1.31 KB Details | Diff
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 149979 depends on: Show dependency tree
Bug 149979 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2006-10-03 11:23 0000
Hi,

I noticed that /usr/bin/emerge-delta-webrsync always reports differences
between the distributed file portage-YYYYMMDD.tar.bz2.md5sum from the mirrors
and the checksum of the compressed tarball generated by the script. The script
claims that this is due to differences between bzip2 versions and then creates 
a new *.md5sum file. Comparing this new created checksum file with the file 
from the mirrors the reported checksum is identical and even the verification
of 
the new created compressed tarball against the distributed *.gpgsig from the 
mirrors is sucessful.

This false report about a not matching checksum of the compressed tarball is
due to the scipt assuming a wrong current working directory when calling the
function
verify_md5_file() without giving the second argument for the location of the
original *.md5sum.

You can check this with the following debug code:

diff -Naur orig/emerge-delta-webrsync debug/emerge-delta-webrsync
--- orig/emerge-delta-webrsync  2006-09-28 10:29:52.000000000 +0000
+++ debug/emerge-delta-webrsync 2006-10-03 13:27:49.000000000 +0000
@@ -253,6 +253,10 @@
                cd "$(dirname ${FILE})"
                FILE="$(basename ${FILE})"
        fi
+       ### DEBUG snippet BEGIN ###
+               echo "DEBUG INFO: Verifying ${FILE} against ${MD5_LOC} "
+               echo "DEBUG INFO: Current working directory is $(pwd)"
+       ###  DEBUG snippet END  ###
        if eval "$md5_com"; then
                [ -n "${CUR}" ] && cd "${CUR}"
                return 0

Then you can see that the working directory changed from ${DISTDIR} to
${TEMPDIR} 
for the creation of the new tarball and the location of the tarball and the 
distributed checksum file differs.


I've included a diff for patching the original file emerge-delta-webrsync in
the 
version as emerged from me on 2006-09-29 in the package
app-portage/emerge-delta-webrsync-3.5.1 
(I only found a cvs/changelog for the ebuild on the web, but not for the app,
so I don't know if 
there are already changes in a development version. The diff is for the file
that is installed to /usr/bin/emerge-delta-webrsync).

The patch additionally has changes for 2 different issues:

a.) emerge is called by the original file with a deprecate variant for metadata 
as reported in other bugreport(s). The solution
http://bugs.gentoo.org/attachment.cgi?id=93681 
attached to Bug #127021 http://bugs.gentoo.org/show_bug.cgi?id=127021 seems
more well thougt out 
as my cosmetic addition of "--" to metadata.

b.) emerge-delta-webrsync is trying to fetch the *.umd5sum for the existing 
base tarball even if the checksum file already exist in the distfiles
directory. 
When I'm using this script offline on a machine without a network connection
the 
original script fails even if all necessary files are provided in the distfiles
directory.
Added a check for the existence of the file before the attempt to fetch the
file from the mirrors.



diff -Naur orig/emerge-delta-webrsync modified-r1/emerge-delta-webrsync
--- orig/emerge-delta-webrsync  2006-09-28 10:29:52.000000000 +0000
+++ modified-r1/emerge-delta-webrsync   2006-09-30 12:09:41.000000000 +0000
@@ -218,7 +218,7 @@
                rm -rf portage
        fi
        echo "transferring metadata/cache"
-       emerge metadata
+       emerge --metadata
 }

 fetch_from_mirrors() {
@@ -410,7 +410,7 @@
        echo "thus, bailing (sorry)"
        exit 5
 else
-       if ! fetch_from_mirrors
"/snapshots/portage-${final_date}.tar.bz2.umd5sum"
"portage-${final_date}.tar.bz2.umd5sum"; then
+       if [[ ! -e portage-${final_date}.tar.bz2.umd5sum ]] && !
fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.umd5sum"
"portage-${final_date}.tar.bz2.umd5sum"; then
                if ! fetch_from_mirrors
"/snapshots/portage-${final_date}.tar.bz2.umd5sum"
"portage-${final_date}.tar.bz2.umd5sum"; then
                        echo "couldn't grab umd5sum (uncompressed md5sum) for
${final_date}."
                        echo "can't compensate for bzip2 version differences
iow."
@@ -462,7 +462,7 @@

 echo "verifying generated tarball"

-if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar.bz2"; then
+if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar.bz2"
"${DISTDIR}/portage-${final_date}.tar.bz2.md5sum"; then
        if [[ -z $verified ]]; then
                echo "couldn't verify the generated tarball.  bug, most
likely."
                exit 5





Best regards
Klaus

------- Comment #1 From kdd@gmx.net 2006-10-03 11:41:20 0000 -------
Created an attachment (id=98717) [details]
Patch to fix wrong verification path and other issues

Added a diff file named emerge-delta-webrsync.diff.tar.bz2 as a patch. The
listing of the patch in the description field has a wrong text formatting due
to false line feeds. Sorry for that.

------- Comment #2 From kdd@gmx.net 2006-10-03 12:04:38 0000 -------
Created an attachment (id=98719) [details]
Patch as uncompressed textfile emerge-delta-webrsync.diff

Submitted the unmodified patch as text/plain diff file so everyone can view the
diff in a browser (hopefully)

------- Comment #3 From Petteri Räty 2006-10-14 08:40:50 0000 -------
Fixed in 3.5.1-r1 with permission from zmedico.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug