2.5.1 -> 2.5.2:
- added -bs to build just a source package
- included irix.req and irix.prov (Tim Mooney)
+ - copy CHANGELOG* and URL tags to all subpackages
+ - follow symlinks when packaging sources
2.5 -> 2.5.1:
- fail if sources are not regular files
}
fl.fileList[x].fileName = strdup(fn);
fl.fileList[x].verifyFlags = RPMVERIFY_ALL;
- lstat(s, &sb);
+ stat(s, &sb);
fl.fileList[x].mode = sb.st_mode;
fl.fileList[x].uid = sb.st_uid;
fl.fileList[x].gid = sb.st_gid;
cpioListPtr->finalGid = p->gid;
cpioListPtr->mapFlags = CPIO_MAP_PATH | CPIO_MAP_MODE |
CPIO_MAP_UID | CPIO_MAP_GID;
+ if (isSrc) {
+ cpioListPtr->mapFlags |= CPIO_FOLLOW_SYMLINKS;
+ }
cpioListPtr++;
(*cpioCount)++;
}
#include "read.h"
#include "misc.h"
-static int checkSources(Spec spec);
static void setStandardMacros(Spec spec, char *arch, char *os);
int parseSpec(Spec *specp, char *specFile, char *buildRoot,
closeSpec(spec);
*specp = spec;
- if (checkSources(spec)) {
- freeSpec(spec);
- return 1;
- }
-
return 0;
}
-static int checkSources(Spec spec)
-{
- struct Source *p;
- Package pkg;
- char buf[BUFSIZ];
- struct stat sb;
- int res = 0;
-
- p = spec->sources;
- while (p) {
- sprintf(buf, "%s/%s", rpmGetVar(RPMVAR_SOURCEDIR), p->source);
- lstat(buf, &sb);
- if (! S_ISREG(sb.st_mode)) {
- rpmError(RPMERR_BADSPEC, "Source file not regular: %s", buf);
- res = 1;
- }
- p = p->next;
- }
-
- pkg = spec->packages;
- while (pkg) {
- p = pkg->icon;
- while (p) {
- sprintf(buf, "%s/%s", rpmGetVar(RPMVAR_SOURCEDIR), p->source);
- lstat(buf, &sb);
- if (! S_ISREG(sb.st_mode)) {
- rpmError(RPMERR_BADSPEC, "Source file not regular: %s", buf);
- res = 1;
- }
- p = p->next;
- }
- pkg = pkg->next;
- }
-
- return res;
-}
-
static void setStandardMacros(Spec spec, char *arch, char *os)
{
char buf[BUFSIZ];