As Current so often prints out as an error “Bad Week.” Indeed it seems that everything I’ve done this week as been pretty simple and something that should or could have been handled by an underling. However, this has been a bad week so the very simple things have completely blown up and either left me stumpted or taken hours to figure out.

By the way, the last update to tar broke RPM on at least Fedora Core 5 and RHEL 4. None of the -t options to rpm-build currently work. I really like how the error message from tar ends up written in your SPECS/ directory as a file name. That’s just icing on the cake.

So, RPM does this:

[[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */ current]$rpmbuild -ta current-1.7.6.tar.bz2error: Name field must be present in package: (main package)error: Version field must be present in package: (main package)error: Release field must be present in package: (main package)error: Summary field must be present in package: (main package)error: Group field must be present in package: (main package)error: License field must be present in package: (main package)  and I find a filename “tar: Pattern matching characters used in file names. Please,” where I should find the spec file for the package. This all boils down to line 159 in build.c in the RPM source code. sprintf(cmd, "%s < %s | tar xOvf - \\*.spec 2>&1 > %s", zcmds[res & 0x3], arg, tmpSpecFile);  Which explicitly tries to pull the spec file out of the tarball. However, the recent tar update changed how tar handles litteral ‘*’ and other characters that can be used as pattern matching characters. You get the above error. Actually, you really get something that looks like this $ tar xf foo.tar  '*.c'tar: Pattern matching characters used in file names. Please,tar: use --wildcards to enable pattern matching, or --no-wildcards totar: suppress this warning.tar: *.c: Not found in archivetar: Error exit delayed from previous errors


See the changes in recent versions of tar for the full details. This has been Bugzilla’d as 206841 and 207751.