/* * rpmdata.h : describes the data gathered for each RPM analyzed. * * Copyright (c) 1997 Daniel Veillard * See COPYING for the status of this software. * * $Id: rpmdata.h,v 1.11 1997/11/15 00:05:49 veillard Exp $ */ #ifndef __RPMDATA_H__ #define __RPMDATA_H__ #include /* * Structure associated to a local directory containing RPM files. */ #define MAX_URLS 100 typedef struct rpm_dir { struct rpm_dir *next; /* next in list */ char *dir; /* The local repository */ char *name; /* Name for this repository */ char *ftp; /* The host URL it's mirrored from */ char *ftpsrc; /* The host URL where src.rpm can be found */ char *color; /* The bgcolor for the pages :-) */ char *trust; /* Confidences in the files */ int nb_urls; /* numbers of mirrors */ char *urls[MAX_URLS]; /* Urls for download */ } rpmDir, *rpmDirPtr; /* * structure associated with an rpm */ #define MAX_RESS 35 #define MAX_REQU 35 typedef struct rpm_data { struct rpm_data *next; /* next in the list */ rpmDirPtr dir; /* directory infos */ char *filename; /* name of the file */ char *name; /* name of the software */ char *version; /* version of the software */ char *release; /* software release */ char *url; /* URL for the software */ char *arch; /* the target platform */ char *os; /* the target system */ char *distribution; /* general OS distribution */ char *vendor; /* general OS vendor */ char *packager; /* the packager */ char *group; /* type of software */ char *summary; /* 1 line summary */ char *description; /* short description */ char *copyright; /* software copyright */ char *srcrpm; /* source RPM */ time_t date; /* date of packaging */ int_32 size; /* size of the software */ char *host; /* build host */ int nb_ressources; /* #of ressources provided */ struct rpm_ressource * ressources[MAX_RESS + 1];/* list of them */ int nb_requires; /* #of ressources required */ struct rpm_ressource * requires[MAX_REQU]; /* list of them */ char *filelist; /* the filelist */ } rpmData, *rpmDataPtr; /* * structure associated with a resource */ #define MAX_PROVIDE 30 typedef struct rpm_ressource { struct rpm_ressource *next; /* next in the list */ char *name; /* name of the ressource */ int nb_provider; /* #of ressources provided */ struct rpm_data * provider[MAX_PROVIDE];/* list of them */ } rpmRess, *rpmRessPtr; extern rpmDataPtr rpmList; extern rpmRessPtr ressList; extern rpmDirPtr dirList; extern void rpmDataPrint(rpmDataPtr rpm); /* extern void rpmDataPrintAll(void); */ extern rpmRessPtr rpmRessAdd(char *ress, rpmDataPtr rpm); extern rpmRessPtr rpmRequAdd(char *requ, rpmDataPtr rpm); extern int rpmOpen(char *nameRpm, rpmDirPtr dir); extern int rpmDirScanAll(void); extern char *extractEMail(char *string); extern void rpmGroupSort(void); extern void rpmDistribSort(void); extern void rpmVendorSort(void); extern void rpmDateSort(void); extern void rpmNameSort(void); #endif /* __RPMDATA_H__ */