/* * rpmdata.h : describes the data gathered for each RPM analyzed. * * $Id: rpmdata.h,v 1.6 1997/11/12 05:56:56 veillard Exp $ * * $Log: rpmdata.h,v $ * Revision 1.6 1997/11/12 05:56:56 veillard * Beginning of the coding for the configuration, Daniel. * * Revision 1.5 1997/11/12 03:50:39 veillard * Version submitted to guilde@imag.fr, Daniel. * * Revision 1.4 1997/11/11 22:28:11 veillard * Added the support for dependancies on resources, Daniel. * * Revision 1.3 1997/11/11 21:18:53 veillard * Improved a lot, removed bugs related to sorting, Daniel. * * Revision 1.2 1997/11/11 11:10:10 veillard * State after one night of work, Daniel * * Revision 1.1.1.1 1997/11/11 07:12:32 veillard * First revision of RPM-Check * */ #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 *ftphost; /* The host it's mirrored from */ char *ftpdir; /* The directory it's mirrored from */ 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 *arch; /* the target platform */ char *distribution; /* general OS distribution */ char *vendor; /* general OS vendor */ char *group; /* type of software */ char *summary; /* 1 line summary */ char *description; /* short description */ 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]; /* 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); void rpmGroupSort(void); void rpmDistribSort(void); void rpmVendorSort(void); void rpmDateSort(void); #endif /* __RPMDATA_H__ */