50 : fLogger(
DefaultLogger), fName(key), fDir(dir), fLock(dir), fEnabledPackages(0)
94 Info(
"Build",
"building package %s ...",
pack);
110 FILE *
f =
fopen(
"PROOF-INF/proofvers.txt",
"r");
121 " (current: %s, build: %s): cleaning ... ",
138 Error(
"Build",
"failure executing: %s",
cmd.Data());
150 Warning(
"Build",
"failure calculating/saving MD5sum for '%s'", par.
Data());
160 " directory not writable: cannot re-build!!! ",
172 ipath.ReplaceAll(
"\"",
"");
174 cmd.Form(
"export ROOTINCLUDEPATH=\"%s\" ; PROOF-INF/BUILD.sh",
ipath.Data());
177 Error(
"Build",
"failure executing: %s",
cmd.Data());
181 f =
fopen(
"PROOF-INF/proofvers.txt",
"w");
193 Info(
"Build",
"no PROOF-INF/BUILD.sh found for package %s",
pack);
251 if (
mdeps.ReadFile(deps) > 0) {
259 Log(
TString::Format(
"error: TPackMgr::Load: failure loading dep %s ...", os->GetName()));
303 Log(
TString::Format(
"warning: macro '%s/PROOF-INF/SETUP.C' does not contain a SETUP()"
311 " cannot continue",
pack));
318 Log(
TString::Format(
"error: function SETUP() not found in macro '%s/PROOF-INF/SETUP.C':"
319 " cannot continue",
pack));
324 if (
fun->GetNargs() == 0) {
329 " the specified argument will be ignored",
pack));
331 }
else if (
fun->GetNargs() == 1) {
337 if (
argsig.BeginsWith(
"TList")) {
340 }
else if (
argsig.BeginsWith(
"const char")) {
348 " SETUP expects 'const char *': ignoring",
349 optls->First()->ClassName()));
356 " cannot continue", arg->
GetTitle()));
361 Log(
"error: cannot get information about the SETUP() argument:"
365 }
else if (
fun->GetNargs() > 1) {
367 Log(
"error: function SETUP() can have at most a 'TList *' argument:"
524 const char *
fm = (
strstr(
pack,
".par")) ?
"%s/%s" :
"%s/%s.par";
560 if (title &&
strlen(title) > 0)
627 while (
pac.Length() > 0) {
628 if (
pac.EndsWith(
".par")) {
629 pac.ReplaceAll(
".par",
"");
651 while ((o =
nxp())) {
676 if (title &&
strlen(title) > 0)
697 const char *
fm = (
strstr(
pack,
".par")) ?
"%s/%s" :
"%s/%s.par";
711 if (
pn.EndsWith(
".par"))
pn.Remove(
pn.Last(
'.'));
727 if (!
fn.EndsWith(
".par"))
fn +=
".par";
728 if (
pn.EndsWith(
".par"))
pn.Remove(
pn.Last(
'.'));
738 Error(
"Unpack",
"failure executing: %s (rc: %d)",
cmd.Data(),
rc);
748 Error(
"Unpack",
"package %s did not unpack into %s",
fn.Data(),
pn.Data());
776 Error(
"Install",
"%s is invalid", par.
Data());
790 Error(
"Install",
"could not create/get download directory");
797 parsum.ReplaceAll(
".par",
".md5sum");
817 Error(
"Install",
"could not remove existing version of '%s'",
pack.Data());
828 Error(
"Install",
"could not retrieve %s", par.
Data());
845 Error(
"Install",
"could not copy %s to %s",
psrc.Data(),
dest.Data());
853 Warning(
"Install",
"checksums do not match:\n\tdownloaded:\t%s\n\texpected:\t%s",
854 md5d->AsString(),
md5->AsString());
856 Error(
"Install",
"could not unpack %s",
dest.Data());
882 ::Warning(
"TPackMgr::RegisterGlobalPath",
883 "directory for global packages %s does not"
884 " exist or is not readable",
ldir.Data());
896 ::Info(
"TPackMgr::RegisterGlobalPath",
897 "manager for global packages directory %s added to the list",
945 if (
pm->GetParPath(
pack, par) == 0) {
951 if (par.
Length() > 0)
return 0;
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t dest
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
static void DefaultLogger(const char *msg)
const char *const kUNTAR3
const char *const kGUNZIP
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
R__EXTERN TSystem * gSystem
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
static EFileType GetType(const char *name, Option_t *option="", TString *prefix=nullptr)
Resolve the file type as a function of the protocol field in 'name'.
virtual Bool_t Cp(const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000)
Allows to copy this file to the dst URL.
Global functions class (global functions are obtained from CINT).
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
void SetName(const char *path)
Int_t Lock(Bool_t shared=kFALSE)
Int_t Unlock()
Unlock the directory.
This code implements the MD5 message-digest algorithm.
static TMD5 * FileChecksum(const char *file)
Returns checksum of specified file.
static TMD5 * ReadChecksum(const char *file)
Returns checksum stored in ASCII in specified file.
static Int_t WriteChecksum(const char *file, const TMD5 *md5)
Writes checksum in ASCII format to specified file.
Class supporting a collection of lines with C++ code.
Each ROOT method (see TMethod) has a linked list of its arguments.
Method or function calling interface.
const char * GetTitle() const override
Returns title of object.
ULong_t Hash() const override
Return hash value for this object.
Collectable string class.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
The PROOF package manager contains tools to manage packages.
Bool_t IsInDir(const char *path)
Method to check if 'path' is in the managed directory Return kTRUE or kFALSE.
void Show(const char *title=0)
Show available packages.
void GetEnabledPackages(TString &packlist)
Method to get a semi-colon separated list with the names of the enabled packages.
static Bool_t IsEnabled(const char *pack, TPackMgr *packmgr=nullptr)
Check if the package is enabled; priority is given to packmgr, if defined.
Int_t GetPackDir(const char *pack, TString &pdir)
Method to get the path of the dir for package 'pack'.
static THashList * fgGlobalPackMgrList
Int_t Build(const char *pack, Int_t opt=TPackMgr::kCheckROOT)
Method to build a package.
Int_t Install(const char *par, Bool_t rmold=kFALSE)
Install package from par (unpack the file in the directory); par can be an URL for remote retrieval.
Int_t GetParPath(const char *pack, TString &path)
Method to get the path of the PAR file for package 'pack'.
Int_t GetDownloadDir(TString &dldir)
Method to get the download dir; create if not existing Return -1 in case of error (not found; not cre...
Bool_t Has(const char *pack)
Method to check if this package manager has package 'pack'.
Int_t Unpack(const char *pack, TMD5 *sum=0)
Read MD5 checksum of the PAR file from the PROOF-INF/md5.txt file.
TMD5 * GetMD5(const char *pack)
Get MD5 checksum of the PAR file corresponding to given package Returns a pointer to a TMD5 object,...
void ShowEnabled(const char *title=0)
Show enabled packages.
void Log(const char *msg)
Wrapper to notofuer / logger.
static Int_t FindParPath(TPackMgr *packmgr, const char *pack, TString &par)
Get the full path to PAR, looking also in the global dirs.
TList * GetList() const
Get list of available packages Returns a pointer to a TList object, transferring ownership to the cal...
TPackMgr(const TPackMgr &)
Int_t Clean(const char *pack)
Clean dir for package 'pack' Return -1 in case of error, 0 otherwise.
static Int_t RegisterGlobalPath(const char *paths)
Parse one or more paths as possible sources of packages Returns number of paths added; or -1 in case ...
Int_t Load(const char *pack, TList *optls=0)
Method to load a package taking an option list Return -1 on error, 0 otherwise.
Int_t Unload(const char *pack)
Method to unload a package.
TList * GetListOfEnabled() const
Get list of enabled packages Returns a pointer to a TList object, transferring ownership to the calle...
~TPackMgr() override
Destroy a TPackMgr instance.
static TPackMgr * GetPackMgr(const char *pack, TPackMgr *packmgr=nullptr)
Get the package manager having 'pack'; priority is given to packmgr, if defined.
Int_t Remove(const char *pack=0, Bool_t dolock=kTRUE)
Remove package 'pack' If 'pack' is null or empty all packages are cleared.
TMD5 * ReadMD5(const char *pack)
Read MD5 checksum of the PAR file from the PROOF-INF/md5.txt file.
Class used by TMap to store (key,value) pairs.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
Ssiz_t Last(char c) const
Find last occurrence of a character c.
TString & Remove(Ssiz_t pos)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
virtual int Symlink(const char *from, const char *to)
Create a symbolic link from file1 to file2.
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
virtual void AddIncludePath(const char *includePath)
Add a directory to the already set include path.
virtual void FreeDirectory(void *dirp)
Free a directory.
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
virtual int GetPid()
Get process id.
virtual const char * Getenv(const char *env)
Get environment variable.
virtual const char * GetIncludePath()
Get the list of include path.
virtual int mkdir(const char *name, Bool_t recursive=kFALSE)
Make a file system directory.
virtual Int_t Exec(const char *shellcmd)
Execute a command.
virtual void SetIncludePath(const char *includePath)
IncludePath should contain the list of compiler flags to indicate where to find user defined header f...
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
virtual Bool_t ChangeDirectory(const char *path)
Change directory.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual const char * HostName()
Return the system's host name.
virtual const char * WorkingDirectory()
Return working directory.
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
virtual int Unlink(const char *name)
Unlink, i.e.
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
static uint64_t sum(uint64_t i)