Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 225285 - problems with unpacking and missing manifests
Summary: problems with unpacking and missing manifests
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Ebuild Support (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: Portage team
Keywords: InVCS
Depends on:
Blocks: 216231
  Show dependency tree
Reported: 2008-06-07 21:49 UTC by SpanKY
Modified: 2010-09-23 02:09 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---

Allow digestcheck() to succeed with -strict and missing Manifest (strict.patch,420 bytes, patch)
2008-06-08 05:15 UTC, Zac Medico
Details | Diff
let digestcheck() succeed with empty Manifest and strict mode disabled (empty_manifest.patch,686 bytes, patch)
2008-06-10 04:23 UTC, Zac Medico
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description SpanKY gentoo-dev 2008-06-07 21:49:38 UTC
if a manifest is missing (just rm Manifest to reproduce), you get this error:
!!! Missing digest for None
what exactly is "None" ?

also, the latest version is a huge pita for developers for doing unpacks.  every file in an ebuild has to have a correct manifest in order to do 'ebuild ... unpack'.  previously, missing manifests were ignored when executing ebuild.  for people doing patch tarball testing, this gets to be unusable.
Comment 1 Zac Medico gentoo-dev 2008-06-08 01:12:35 UTC
It should work if you insert "digest" just before "unpack" in you command line. If that works then we can make it the default behavior to call "digest" first.
Comment 2 SpanKY gentoo-dev 2008-06-08 03:53:10 UTC
i'm not sure how that's any better from doing nothing at all ?
Comment 3 Zac Medico gentoo-dev 2008-06-08 04:30:42 UTC
Does FEATURES=-strict help? I guess we could make something like that default for the ebuild command.
Comment 4 Zac Medico gentoo-dev 2008-06-08 05:15:39 UTC
Created attachment 155885 [details, diff]
Allow digestcheck() to succeed with -strict and missing Manifest

This should fix it work with FEATURES=-strict.
Comment 5 SpanKY gentoo-dev 2008-06-08 08:58:05 UTC
i'm already running -strict ;)

Portage 2.2_pre7-r1 (default-linux/amd64/2006.1/desktop, gcc-4.3.0, glibc-2.8_p20080602-r0, 2.6.25 x86_64)
System uname: 2.6.25 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
Timestamp of tree: Sun, 08 Jun 2008 04:00:01 +0000
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p39
dev-lang/python:     2.4.4-r8, 2.5.2-r2
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     9999
sys-devel/autoconf:  2.13, 2.62
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:, 2.16-r1, 2.16.1, 2.16.1-r3,,,,,,,,, 2.16.92, 2.16.93, 2.16.94, 2.17-r1,,,,,,,,,,,,,,,,,, 2.18-r1,,,,,,,
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.4
virtual/os-headers:  2.6.25-r3
ACCEPT_KEYWORDS="amd64 ~amd64"
CFLAGS="-O2 -march=k8 -pipe -g -Wimplicit-function-declaration"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/qmail/alias /var/qmail/control /var/vpopmail/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d /var/lib/rpm"
CXXFLAGS="-O2 -march=k8 -pipe -g"
FEATURES="assume-digests buildsyspkg ccache collision-protect cvs distlocks noinfo parallel-fetch preserve-libs sandbox sfperms sign splitdebug unmerge-orphans userfetch"
INSTALL_MASK="/usr/share/applications /usr/kde/*/share/applications"
LDFLAGS="-Wl,-O1 -Wl,-z,relro"
LINGUAS="en en_GB de es cs ru"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/src/gentoo/overlays/vapier/enlightenment"
USE="X a52 aac aalib accessibility acl adns agg aio alsa amd64 apache2 asf audiofile berkdb bitmap-fonts bzip2 cairo cddb cdparanoia cdr cli console cracklib crypt cups curl dba directfb divx4linux dri dts dvb dvd dvdr dvdread emboss encode exif fbcon ffmpeg firefox flac flash fortran ftp gcj gd gif glitz glut gmp gphoto2 gpm gtk gtk2 iconv imap imlib ipv6 isdnlog jbig joystick jpeg jpeg2k libcaca libedit lzo lzw mad maildir matroska midi mikmod mime mjpeg mng modplug mp3 mpeg mplayer mudflap multislot musepack mysql ncurses nls nptl nptlonly nsplugin nvidia objc objc-gc offensive ogg oggvorbis openal opengl openmp pcre pdf perl pic png ppds pppd pulseaudio python qt3 qt4 quicktime readline reflection samba sdl session sndfile snmp spell spl sqlite ssl subtitles svg syslog tcl tcltk tcpd tga theora threads tiff tk truetype truetype-fonts type1-fonts unicode usb vcd vorbis wma wmf xanim xattr xcomposite xine xinerama xml xml2 xorg xpm xrandr xv xvid xvmc zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x    ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3         trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="canon" ELIBC="glibc" INPUT_DEVICES="mouse keyboard joystick void" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_GB de es cs ru" USERLAND="GNU" VIDEO_CARDS="nvidia nv ati r128 radeon vga sisusb"
Comment 6 Zac Medico gentoo-dev 2008-06-08 09:13:26 UTC
Does the patch help though? It seems to help for me with -strict when the manifest is missing.
Comment 7 SpanKY gentoo-dev 2008-06-08 20:14:07 UTC
patch doesnt help.  i still get the missing error.
Comment 8 Zac Medico gentoo-dev 2008-06-10 03:09:57 UTC
Well, it seems to me that the patch should help in the case of a missing Manifest with FEATURES=-strict, so I'm not sure what I'm missing.

If you want, you can reproduce the problem with --debug and FEATURES=python-trace enabled. That produces an extremely verbose log, but the most interesting part should be in the tail 2000 lines or so.
Comment 9 SpanKY gentoo-dev 2008-06-10 03:20:01 UTC
just test like this:
ebuild portage-2.2_pre7-r1.ebuild clean unpack compile install qmerge
echo > Manifest
ebuild portage-2.2_pre7-r1.ebuild clean unpack compile install qmerge

the second one will fail
Comment 10 SpanKY gentoo-dev 2008-06-10 03:21:27 UTC
(of course, i applied the strict.patch to /usr/lib/portage/pym/portage/ after that first qmerge)
Comment 11 Zac Medico gentoo-dev 2008-06-10 04:23:29 UTC
Created attachment 156177 [details, diff]
let digestcheck() succeed with empty Manifest and strict mode disabled

This should handle an empty Manifest. Are there any other cases left to cover?
Comment 12 SpanKY gentoo-dev 2008-06-10 05:15:04 UTC
an empty Manifest really wasnt what i was after ... a Manifest with missing or different entries is what is useful

in other words, what i often do during a version bump is:
ebuild <new ebuild> fetch clean unpack
here there will be no entries for the new files
Comment 13 Zac Medico gentoo-dev 2008-06-10 06:05:38 UTC
Hmm, I think maybe we have a conflict with the expectations of bug 214879. I've always thought that it made sense to make -strict disable all checks but apparently all do not agree on this. Perhaps we should use some flag to toggle the behavior on and off?
Comment 14 SpanKY gentoo-dev 2008-06-10 06:57:54 UTC
i dont think portage can, but i'd expect the behavior to be different with `emerge` and `ebuild`
Comment 15 Zac Medico gentoo-dev 2008-06-10 08:16:13 UTC
We can make emerge/ebuild behavior different if we want, but bug 214879 was about ebuild behavior as well.
Comment 16 SpanKY gentoo-dev 2008-06-11 22:25:26 UTC
if you want to address the issue by adding a new FEATURE, that's fine (ebuild-skipmanifest).  there has to be a way for the digest checking to be bypassed as being forced to constantly keep them in sync with the files you're developing is a huge pita.  maybe i'm a special case, but constantly recomputing digests on large tarballs (kernel/gcc/glibc/etc...) is a killer.
Comment 17 Zac Medico gentoo-dev 2008-06-11 23:59:55 UTC
Maybe it shouldn't be a global feature because it's only applies to the ebuild command. How about a --skip-manifest option for the ebuild command? I suppose we could create an EBUILD_DEFAULT_OPTS variable for storing options like that if you want them to be persistent.
Comment 18 SpanKY gentoo-dev 2008-06-12 03:59:16 UTC
a default opts variable would be a must for that path, but otherwise that sounds like a good idea to me
Comment 19 Zac Medico gentoo-dev 2008-06-20 13:49:41 UTC
This is fixed in 2.2_rc1.
Comment 20 SpanKY gentoo-dev 2008-06-21 06:38:28 UTC
thanks, seems to work like a charm ... even skips the painful checks on ${A} :D