diff --git a/Makefile b/Makefile index 19125cabe2695..dd3e09b8e4f50 100644 --- a/Makefile +++ b/Makefile @@ -97,7 +97,7 @@ MODULES = build interpreter/llvm interpreter/cling core/foundation \ math/matrix \ core/newdelete hist/hist hist/unfold tree/tree graf2d/freetype \ graf2d/mathtext graf2d/graf graf2d/gpad graf3d/g3d \ - gui/gui math/minuit hist/histpainter tree/treeplayer \ + gui/gui math/minuit math/cmaes hist/histpainter tree/treeplayer \ gui/ged tree/treeviewer math/physics graf2d/postscript \ core/rint html montecarlo/eg \ geom/geom geom/geompainter montecarlo/vmc \ @@ -265,6 +265,12 @@ endif ifeq ($(BUILDMINUIT2),yes) MODULES += math/minuit2 endif +ifeq ($(BUILDCMAES),yes) +MODULES += math/cmaes +endif +ifeq ($(BUILDCMAES),yes) +MODULES += math/cmaes +endif ifeq ($(BUILDUNURAN),yes) MODULES += math/unuran endif @@ -350,7 +356,7 @@ MODULES += core/unix core/winnt graf2d/x11 graf2d/x11ttf \ tmva/tmva tmva/tmvagui math/genetic io/hdfs graf2d/fitsio \ roofit/roofitcore \ roofit/roofit roofit/roostats roofit/histfactory \ - math/minuit2 net/monalisa math/fftw sql/odbc math/unuran \ + math/minuit2 math/cmaes net/monalisa math/fftw sql/odbc math/unuran \ geom/geocad geom/gdml graf3d/eve net/glite misc/memstat \ math/genvector net/bonjour graf3d/gviz3d graf2d/gviz \ proof/proofbench proof/afdsmgrd graf2d/ios \ diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt deleted file mode 100644 index aaf3e61fdc603..0000000000000 --- a/build/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################ -# CMakeLists.txt file for building ROOT build package -# @author Pere Mato, CERN -############################################################################ - -file(GLOB rmkdepend_srcs ${CMAKE_CURRENT_SOURCE_DIR}/rmkdepend/*.cxx ${CMAKE_CURRENT_SOURCE_DIR}/rmkdepend/*.c ) -set_source_files_properties(${rmkdepend_srcs} PROPERTIES - COMPILE_DEFINITIONS "INCLUDEDIR=\"/usr/include\";OBJSUFFIX=\".o\";USE_CHMOD") - -ROOT_EXECUTABLE(rmkdepend ${rmkdepend_srcs}) - -if(WIN32) - ROOT_EXECUTABLE(bindexplib ${CMAKE_CURRENT_SOURCE_DIR}/win/bindexplib/*.cxx) -endif() - diff --git a/build/Module.mk b/build/Module.mk deleted file mode 100644 index c0aed2a25f101..0000000000000 --- a/build/Module.mk +++ /dev/null @@ -1,82 +0,0 @@ -# Module.mk for build module -# Copyright (c) 2000 Rene Brun and Fons Rademakers -# -# Author: Fons Rademakers, 29/2/2000 - -ifneq ($(HOST),) - -RMKDEP := $(BUILDTOOLSDIR)/bin/rmkdepend$(EXEEXT) - -else - -MODNAME := build -MODDIR := $(ROOT_SRCDIR)/$(MODNAME) - -RMKDEPDIR := $(MODDIR)/rmkdepend -BINDEXPDIR := $(MODDIR)/win/bindexplib - -##### rmkdepend ##### -RMKDEPH := $(wildcard $(RMKDEPDIR)/*.h) -RMKDEPS1 := $(wildcard $(RMKDEPDIR)/*.c) -RMKDEPS2 := $(wildcard $(RMKDEPDIR)/*.cxx) -RMKDEPO1 := $(call stripsrc,$(RMKDEPS1:.c=.o)) -RMKDEPO2 := $(call stripsrc,$(RMKDEPS2:.cxx=.o)) -RMKDEPO := $(RMKDEPO1) $(RMKDEPO2) -RMKDEP := bin/rmkdepend$(EXEEXT) -RMKDEPCFLAGS := -DINCLUDEDIR=\"/usr/include\" -DOBJSUFFIX=\".o\" - -##### bindexplib ##### -ifeq ($(PLATFORM),win32) -BINDEXPS := $(wildcard $(BINDEXPDIR)/*.cxx) -BINDEXPO := $(call stripsrc,$(BINDEXPS:.cxx=.o)) -BINDEXP := bin/bindexplib$(EXEEXT) - -W32PRAGMA := $(ROOT_SRCDIR)/build/win/w32pragma.h -ALLHDRS += include/w32pragma.h -endif - -##### local rules ##### -.PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME) - -$(RMKDEP): $(RMKDEPO) - $(LD) $(LDFLAGS) -o $@ $(RMKDEPO) - -ifeq ($(PLATFORM),win32) -include/%.h: $(ROOT_SRCDIR)/build/win/%.h - cp $< $@ - -$(BINDEXP): $(BINDEXPO) - $(LD) $(LDFLAGS) -o $@ $(BINDEXPO) - -$(BINDEXPO): $(ORDER_) $(RMKDEP) - -all-$(MODNAME): $(RMKDEP) $(BINDEXP) -else -all-$(MODNAME): $(RMKDEP) -endif - -clean-$(MODNAME): - @rm -f $(RMKDEPO) $(BINDEXPO) - -clean:: clean-$(MODNAME) - -distclean-$(MODNAME): clean-$(MODNAME) - @rm -f $(RMKDEP) $(BINDEXP) - -distclean:: distclean-$(MODNAME) - - -##### dependencies ##### -$(call stripsrc,$(RMKDEPDIR)/cppsetup.o): $(RMKDEPDIR)/def.h $(RMKDEPDIR)/ifparser.h -$(call stripsrc,$(RMKDEPDIR)/ifparser.o): $(RMKDEPDIR)/ifparser.h -$(call stripsrc,$(RMKDEPDIR)/include.o): $(RMKDEPDIR)/def.h -$(call stripsrc,$(RMKDEPDIR)/main.o): $(RMKDEPDIR)/def.h $(RMKDEPDIR)/imakemdep.h -$(call stripsrc,$(RMKDEPDIR)/parse.o): $(RMKDEPDIR)/def.h -$(call stripsrc,$(RMKDEPDIR)/pr.o): $(RMKDEPDIR)/def.h -$(call stripsrc,$(RMKDEPDIR)/mainroot.o): $(RMKDEPDIR)/def.h - -##### local rules ##### -$(RMKDEPO1): CFLAGS += $(RMKDEPCFLAGS) -$(RMKDEPO2): CXXFLAGS += $(RMKDEPCFLAGS) - -endif diff --git a/build/misc/root.m4 b/build/misc/root.m4 deleted file mode 100644 index e59fe897ca4c6..0000000000000 --- a/build/misc/root.m4 +++ /dev/null @@ -1,128 +0,0 @@ -dnl -*- mode: autoconf -*- -dnl -dnl $Id: root.m4,v 1.3 2005/03/21 21:42:21 rdm Exp $ -dnl $Author: rdm $ -dnl $Date: 2005/03/21 21:42:21 $ -dnl -dnl Autoconf macro to check for existence or ROOT on the system -dnl Synopsis: -dnl -dnl ROOT_PATH([MINIMUM-VERSION, [ACTION-IF-FOUND, [ACTION-IF-NOT-FOUND]]]) -dnl -dnl Some examples: -dnl -dnl ROOT_PATH(3.03/05, , AC_MSG_ERROR(Your ROOT version is too old)) -dnl ROOT_PATH(, AC_DEFINE([HAVE_ROOT])) -dnl -dnl The macro defines the following substitution variables -dnl -dnl ROOTCONF full path to root-config -dnl ROOTEXEC full path to root -dnl ROOTCINT full path to rootcint -dnl ROOTLIBDIR Where the ROOT libraries are -dnl ROOTINCDIR Where the ROOT headers are -dnl ROOTETCDIR Where the ROOT configuration is -dnl ROOTCFLAGS Extra compiler flags -dnl ROOTLIBS ROOT basic libraries -dnl ROOTGLIBS ROOT basic + GUI libraries -dnl ROOTAUXLIBS Auxilary libraries and linker flags for ROOT -dnl ROOTAUXCFLAGS Auxilary compiler flags -dnl ROOTRPATH Same as ROOTLIBDIR -dnl -dnl The macro will fail if root-config and rootcint isn't found. -dnl -dnl Christian Holm Christensen -dnl -AC_DEFUN([ROOT_PATH], -[ - AC_ARG_WITH([rootsys], - [AC_HELP_STRING([--with-rootsys], - [top of the ROOT installation directory])], - [user_rootsys=$withval], - [user_rootsys="none"]) - if test ! x"$user_rootsys" = xnone; then - rootbin="$user_rootsys/bin" - elif test ! x"$ROOTSYS" = x ; then - rootbin="$ROOTSYS/bin" - else - rootbin=$PATH - fi - AC_PATH_PROG(ROOTCONF, root-config , no, $rootbin) - AC_PATH_PROG(ROOTEXEC, root , no, $rootbin) - AC_PATH_PROG(ROOTCINT, rootcint , no, $rootbin) - - if test ! x"$ROOTCONF" = "xno" && \ - test ! x"$ROOTCINT" = "xno" ; then - - # define some variables - ROOTLIBDIR=`$ROOTCONF --libdir` - ROOTINCDIR=`$ROOTCONF --incdir` - ROOTETCDIR=`$ROOTCONF --etcdir` - ROOTCFLAGS=`$ROOTCONF --noauxcflags --cflags` - ROOTLIBS=`$ROOTCONF --noauxlibs --noldflags --libs` - ROOTGLIBS=`$ROOTCONF --noauxlibs --noldflags --glibs` - ROOTAUXCFLAGS=`$ROOTCONF --auxcflags` - ROOTAUXLIBS=`$ROOTCONF --auxlibs` - ROOTRPATH=$ROOTLIBDIR - ROOTVERSION=`$ROOTCONF --version` - ROOTSOVERSION=`dirname $ROOTVERSION` - - if test $1 ; then - AC_MSG_CHECKING(wether ROOT version >= [$1]) - vers=`$ROOTCONF --version | tr './' ' ' | awk 'BEGIN { FS = " "; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'` - requ=`echo $1 | tr './' ' ' | awk 'BEGIN { FS = " "; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'` - if test $vers -lt $requ ; then - AC_MSG_RESULT(no) - no_root="yes" - else - AC_MSG_RESULT(yes) - fi - fi - else - # otherwise, we say no_root - no_root="yes" - fi - - AC_SUBST(ROOTLIBDIR) - AC_SUBST(ROOTINCDIR) - AC_SUBST(ROOTETCDIR) - AC_SUBST(ROOTCFLAGS) - AC_SUBST(ROOTLIBS) - AC_SUBST(ROOTGLIBS) - AC_SUBST(ROOTAUXLIBS) - AC_SUBST(ROOTAUXCFLAGS) - AC_SUBST(ROOTRPATH) - AC_SUBST(ROOTVERSION) - AC_SUBST(ROOTSOVERSION) - - if test "x$no_root" = "x" ; then - ifelse([$2], , :, [$2]) - else - ifelse([$3], , :, [$3]) - fi -]) - -# -# Macro to check if ROOT has a specific feature: -# -# ROOT_FEATURE(FEATURE,[ACTION_IF_HAVE,[ACTION_IF_NOT]]) -# -# For example -# -# ROOT_FEATURE([ldap],[AC_DEFINE([HAVE_ROOT_LDAP])]) -# -AC_DEFUN([ROOT_FEATURE], -[ - AC_REQUIRE([ROOT_PATH]) - feat=$1 - res=`$ROOTCONF --has-$feat` - if test "x$res" = "xyes" ; then - ifelse([$2], , :, [$2]) - else - ifelse([$3], , :, [$3]) - fi -]) - -# -# EOF -# diff --git a/build/package/common/libroot-bindings-python-dev.install.in b/build/package/common/libroot-bindings-python-dev.install.in deleted file mode 100644 index 425632c66fe53..0000000000000 --- a/build/package/common/libroot-bindings-python-dev.install.in +++ /dev/null @@ -1,3 +0,0 @@ -@prefix@/lib/root/@version@/ROOT.py -@prefix@/lib/root/@version@/PyCintex.py - diff --git a/build/package/common/libroot-bindings-python.control b/build/package/common/libroot-bindings-python.control deleted file mode 100644 index a8460231bbb70..0000000000000 --- a/build/package/common/libroot-bindings-python.control +++ /dev/null @@ -1,28 +0,0 @@ -Package: libroot-bindings-python@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${python:Depends}, ${misc:Depends} -Replaces: root-plugin-python (<< 5.09.01-1) -Description: Python extension for ROOT - runtime libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Python plug-in for ROOT. This package - provide a Python interface to ROOT, and a ROOT interface to Python. - -Package: libroot-bindings-python-dev -Architecture: any -Section: libdevel -Depends: libroot-bindings-python@libvers@ (= ${binary:Version}), libroot-core-dev, python-dev (>= 2.1), ${python:Depends}, ${misc:Depends} -Provides: ${python:Provides} -Replaces: libroot-python-dev -Conflicts: libroot-python-dev (<< 5.19.01-1) -Description: Python extension for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Python plug-in for ROOT. This package - provide a Python interface to ROOT, and a ROOT interface to Python. - diff --git a/build/package/common/libroot-bindings-ruby.control b/build/package/common/libroot-bindings-ruby.control deleted file mode 100644 index 0977ec1da2e1d..0000000000000 --- a/build/package/common/libroot-bindings-ruby.control +++ /dev/null @@ -1,27 +0,0 @@ -Package: libroot-bindings-ruby@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-ruby (<< 5.09.01-1) -Description: Ruby extension for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ruby extension for ROOT. The interface - goes both ways - that is, you can call ROOT functions from Ruby, and - invoke the Ruby interpreter from ROOT. - -Package: libroot-bindings-ruby-dev -Architecture: any -Section: libdevel -Depends: libroot-bindings-ruby@libvers@ (= ${binary:Version}), libroot-core-dev, ruby1.8-dev | ruby-dev (>= 1.8), ${misc:Depends} -Conflicts: libroot-ruby (<< 5.19.01-1) -Replaces: libroot-ruby -Description: Ruby extension for ROOT - development headers - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ruby extension for ROOT. - diff --git a/build/package/common/libroot-core-dev.install.in b/build/package/common/libroot-core-dev.install.in deleted file mode 100644 index c795f03e894dd..0000000000000 --- a/build/package/common/libroot-core-dev.install.in +++ /dev/null @@ -1,22 +0,0 @@ -@prefix@/share/aclocal/root.m4 -@prefix@/share/emacs/site-lisp/root-help.el -@prefix@/include/root/compiledata.h -@prefix@/include/root/rmain.cxx -@prefix@/include/root/RConfigure.h -@prefix@/lib/root/@version@/python -# @prefix@/lib/root/@version@/PyCintex.py* -@prefix@/bin/genreflex -@prefix@/bin/genreflex-rootcint -@prefix@/bin/rootcint -@prefix@/bin/root-config -@prefix@/bin/memprobe -@prefix@/bin/rmkdepend -@prefix@/bin/rlibmap -@prefix@/share/man/man1/genreflex.1* -@prefix@/share/man/man1/genreflex-rootcint.1* -@prefix@/share/man/man1/rootcint.1* -@prefix@/share/man/man1/root-config.1* -@prefix@/share/man/man1/memprobe.1* -@prefix@/share/man/man1/rmkdepend.1* -@prefix@/share/man/man1/rlibmap.1* -# @sysconfdir@/root/system.rootmap diff --git a/build/package/common/libroot-core.control b/build/package/common/libroot-core.control deleted file mode 100644 index 6661bb1756628..0000000000000 --- a/build/package/common/libroot-core.control +++ /dev/null @@ -1,48 +0,0 @@ -Package: libroot-core@libvers@ -Section: libs -Architecture: any -Depends: root-system-common, ${shlibs:Depends}, ${misc:Depends} -Recommends: root-system-bin, libroot-core-dev -Provides: libroot-core -Description: Numerical data analysis framework - shared runtime libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the shared libraries used by the ROOT - system. The libraries contain numerous C++ class definitions for - various purposes, some of which are: - * System abstraction - * Thin Thread API - * Histograming - * Persistent objects - * GUI API - and many others. Refer also to the package description of - root-bin. - -Package: libroot-core-dev -Section: libdevel -Architecture: any -Depends: ${shlibs:Depends}, zlib1g-dev, libssl-dev, comerr-dev, libkrb5-dev, libx11-dev, libfreetype6-dev, libpcre3-dev, libxpm-dev, g++ | c++-compiler, ${python:Depends}, cfortran, libroot-io-dev, libroot-net-dev, ${misc:Depends} -Suggests: root-system-bin, gccxml -Recommends: libroot-geom-dev, libroot-gui-dev, libroot-hist-dev, libroot-proof-dev, libroot-tree-dev -Provides: libroot-dev -Replaces: libroot-dev (<< 5.19.01-1) -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Header files for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains header files (Class declarations) for the ROOT - class libraries. Please refer the package documentation for libroot - and root-bin. - -Package: libroot-static -Section: libdevel -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: libroot-core-dev -Description: Static archive of ROOT libraries - This package contains static archive of the ROOT classes. - diff --git a/build/package/common/libroot-core.install.in b/build/package/common/libroot-core.install.in deleted file mode 100644 index f1d9fa2baa5f7..0000000000000 --- a/build/package/common/libroot-core.install.in +++ /dev/null @@ -1,2 +0,0 @@ -@prefix@/lib/root/@version@/cint -/etc/ld.so.conf.d diff --git a/build/package/common/libroot-geom.control b/build/package/common/libroot-geom.control deleted file mode 100644 index a17163b5ef70f..0000000000000 --- a/build/package/common/libroot-geom.control +++ /dev/null @@ -1,26 +0,0 @@ -Package: libroot-geom@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: libroot-graf3d-gl@libvers@ (>= ${binary:Version}), root-plugin-geom-gdml, root-plugin-geom-geombuilder, root-plugin-geom-geompainter -Description: Geometry library for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining geometries in ROOT. - -Package: libroot-geom-dev -Architecture: any -Section: libdevel -Depends: libroot-geom@libvers@ (= ${binary:Version}), libroot-math-mathcore-dev, ${misc:Depends} -Recommends: libroot-graf3d-gl-dev -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: Geometry library for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining geometries in ROOT. - diff --git a/build/package/common/libroot-graf2d-gpad.control b/build/package/common/libroot-graf2d-gpad.control deleted file mode 100644 index 15b9cd433a79c..0000000000000 --- a/build/package/common/libroot-graf2d-gpad.control +++ /dev/null @@ -1,32 +0,0 @@ -Package: libroot-graf2d-gpad@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Canvas and pad library for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for canvas and pad manipulations. - -Package: libroot-graf2d-gpad-dev -Architecture: any -Section: libdevel -Depends: libroot-graf2d-gpad@libvers@ (= ${binary:Version}), libroot-graf2d-graf-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: Canvas and pad library for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for canvas and pad manipulations. - diff --git a/build/package/common/libroot-graf2d-graf.control b/build/package/common/libroot-graf2d-graf.control deleted file mode 100644 index 6fdc32a61ef28..0000000000000 --- a/build/package/common/libroot-graf2d-graf.control +++ /dev/null @@ -1,32 +0,0 @@ -Package: libroot-graf2d-graf@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Graph library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Graf library for ROOT. - -Package: libroot-graf2d-graf-dev -Architecture: any -Section: libdevel -Depends: libroot-graf2d-graf@libvers@ (= ${binary:Version}), libroot-hist-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Graph library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Graf library for ROOT. - diff --git a/build/package/common/libroot-graf2d-postscript.control b/build/package/common/libroot-graf2d-postscript.control deleted file mode 100644 index 6907aaac2355d..0000000000000 --- a/build/package/common/libroot-graf2d-postscript.control +++ /dev/null @@ -1,25 +0,0 @@ -Package: libroot-graf2d-postscript@libvers@ -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Postscript/PDF renderer library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for ROOT, which allows rendering - postscript and PDF output. - -Package: libroot-graf2d-postscript-dev -Architecture: any -Section: libdevel -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Depends: libroot-graf2d-postscript@libvers@ (= ${binary:Version}), libroot-graf2d-graf-dev, ${shlibs:Depends}, ${misc:Depends} -Description: Postscript/PDF renderer library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for ROOT, which allows rendering - postscript and PDF output. - diff --git a/build/package/common/libroot-graf3d-eve.control b/build/package/common/libroot-graf3d-eve.control deleted file mode 100644 index 78e986d99414f..0000000000000 --- a/build/package/common/libroot-graf3d-eve.control +++ /dev/null @@ -1,26 +0,0 @@ -Package: libroot-graf3d-eve@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: root-plugin-gl (<= 5.19.01-1) -Replaces: root-plugin-gl (<= 5.19.01-1) -Description: Event display library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining event displays in ROOT. - -Package: libroot-graf3d-eve-dev -Architecture: any -Section: libdevel -Depends: libroot-graf3d-eve@libvers@ (= ${binary:Version}), libroot-geom-dev, libroot-gui-ged-dev, libroot-montecarlo-eg-dev, libroot-tree-treeplayer-dev, ${misc:Depends} -Replaces: root-plugin-gl -Conflicts: root-plugin-gl (<= 5.19.01-1) -Description: Event display library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining event displays in ROOT. - diff --git a/build/package/common/libroot-graf3d-g3d.control b/build/package/common/libroot-graf3d-g3d.control deleted file mode 100644 index 02ac813b18b49..0000000000000 --- a/build/package/common/libroot-graf3d-g3d.control +++ /dev/null @@ -1,39 +0,0 @@ -Package: libroot-graf3d-g3d@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: libroot-graf3d-gl@libvers@ (>= ${binary:Version}) -Suggests: libroot-geom@libvers@ -Description: Basic 3D shapes for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This library contains the basic 3D shapes and classes for ROOT. For - a more full-blown geometry library, see libroot-geom-dev. - -Package: libroot-graf3d-g3d-dev -Architecture: any -Section: libdevel -Depends: libroot-graf3d-g3d@libvers@ (= ${binary:Version}), libroot-graf2d-gpad-dev, ${misc:Depends} -Recommends: libroot-graf3d-gl-dev -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Suggests: libroot-geom-dev -Description: Basic 3D shapes for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This library contains the basic 3D shapes and classes for ROOT. For - a more full-blown geometry library, see libroot-geom-dev. - - diff --git a/build/package/common/libroot-graf3d-gl.control b/build/package/common/libroot-graf3d-gl.control deleted file mode 100644 index 1294f96f9347c..0000000000000 --- a/build/package/common/libroot-graf3d-gl.control +++ /dev/null @@ -1,40 +0,0 @@ -Package: libroot-graf3d-gl@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: root-plugin-graf3d-gl (<< 5.19.00-1) -Replaces: root-plugin-graf3d-gl (<< 5.19.00-1) -Provides: root-plugin-graf3d-gl -Description: GL plugin for ROOT - runtime library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the GL plug-in for ROOT. This plugin provides - 3D rendering of volumes and shapes defined in ROOT, as well as 3D - rendering of histograms, and similar. Included is also a high quality - 3D viewer for ROOT defined geometries. - -Package: libroot-graf3d-gl-dev -Architecture: any -Section: libdevel -Depends: libroot-graf3d-gl@libvers@ (= ${binary:Version}), ${misc:Depends} -Conflicts: root-plugin-graf3d-gl (<< 5.19.00-1) -Replaces: root-plugin-graf3d-gl -Description: GL plugin for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the GL plug-in for ROOT. This plugin provides - 3D rendering of volumes and shapes defined in ROOT. Included is also - a high quality 3D viewer for ROOT defined geometries. - diff --git a/build/package/common/libroot-gui-ged.control b/build/package/common/libroot-gui-ged.control deleted file mode 100644 index 50eea3fe29234..0000000000000 --- a/build/package/common/libroot-gui-ged.control +++ /dev/null @@ -1,25 +0,0 @@ -Package: libroot-gui-ged@libvers@ -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI element for editing various ROOT objecs - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library to show a pop-up window for editing - various ROOT objects. - -Package: libroot-gui-ged-dev -Architecture: any -Section: libdevel -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: libroot-gui-ged@libvers@ (= ${binary:Version}), libroot-gui-dev, libroot-tree-treeplayer-dev, ${misc:Depends} -Description: GUI element for editing various ROOT objecs - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library to show a pop-up window for editing - various ROOT objects. - diff --git a/build/package/common/libroot-gui.control b/build/package/common/libroot-gui.control deleted file mode 100644 index def3db34777ed..0000000000000 --- a/build/package/common/libroot-gui.control +++ /dev/null @@ -1,34 +0,0 @@ -Package: libroot-gui@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: libroot (<< 5.19.01-1) -Recommends: root-plugin-gui-guibuilder -Description: GUI library for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining graphical user interfaces. - -Package: libroot-gui-dev -Architecture: any -Section: libdevel -Depends: libroot-gui@libvers@ (= ${binary:Version}), libroot-graf2d-gpad-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: GUI library for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining graphical user interfaces. - diff --git a/build/package/common/libroot-hist-spectrum.control b/build/package/common/libroot-hist-spectrum.control deleted file mode 100644 index 1ba34993a98b8..0000000000000 --- a/build/package/common/libroot-hist-spectrum.control +++ /dev/null @@ -1,32 +0,0 @@ -Package: libroot-hist-spectrum@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Spectra analysis library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Spectrum library for ROOT. - -Package: libroot-hist-spectrum-dev -Architecture: any -Section: libdevel -Depends: libroot-hist-spectrum@libvers@ (= ${binary:Version}), libroot-hist-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Spectra analysis library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Spectrum library for ROOT. - diff --git a/build/package/common/libroot-hist.control b/build/package/common/libroot-hist.control deleted file mode 100644 index 9b1d9eb2d8169..0000000000000 --- a/build/package/common/libroot-hist.control +++ /dev/null @@ -1,25 +0,0 @@ -Package: libroot-hist@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-plugin-hist-histpainter -Description: Histogram library for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for histogrammin - -Package: libroot-hist-dev -Architecture: any -Section: libdevel -Depends: libroot-hist@libvers@ (= ${binary:Version}), libroot-core-dev, libroot-math-matrix-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Histogram library for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for histogrammin - diff --git a/build/package/common/libroot-html.control b/build/package/common/libroot-html.control deleted file mode 100644 index 9e0bc82c8246a..0000000000000 --- a/build/package/common/libroot-html.control +++ /dev/null @@ -1,34 +0,0 @@ -Package: libroot-html@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Html documentation generator for ROOT - runtime library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains classes to automatically extract documentation - from marked up sources. - -Package: libroot-html-dev -Architecture: any -Section: libdevel -Depends: libroot-html@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Html documentation generator for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains classes to automatically extract documentation - from marked up sources. - diff --git a/build/package/common/libroot-io-xmlparser.control b/build/package/common/libroot-io-xmlparser.control deleted file mode 100644 index 252763cef17a3..0000000000000 --- a/build/package/common/libroot-io-xmlparser.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-io-xmlparser@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Input/output of ROOT objects - runtime library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package provides I/O routines for ROOT objects. - -Package: libroot-io-xmlparser-dev -Architecture: any -Section: libdevel -Depends: libroot-io-xmlparser@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev, root-plugin-xml -Conflicts: libroot-dev (<< 5.19.01-1), root-plugin-xml (<< 5.19.01-1) -Description: Input/output of ROOT objects - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package provides I/O routines for ROOT objects. - diff --git a/build/package/common/libroot-io.control b/build/package/common/libroot-io.control deleted file mode 100644 index 8fee1155ea7b9..0000000000000 --- a/build/package/common/libroot-io.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-io@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Input/output of ROOT objects - runtime library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package provides I/O routines for ROOT objects. - -Package: libroot-io-dev -Architecture: any -Section: libdevel -Depends: libroot-io@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev, root-plugin-proof -Conflicts: libroot-dev (<< 5.19.01-1), root-plugin-proof (<< 5.19.01-1) -Description: Input/output of ROOT objects - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package provides I/O routines for ROOT objects. - diff --git a/build/package/common/libroot-ldap.control b/build/package/common/libroot-ldap.control deleted file mode 100644 index c87ff2f3a1e09..0000000000000 --- a/build/package/common/libroot-ldap.control +++ /dev/null @@ -1,27 +0,0 @@ -Package: libroot-ldap@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: libroot-ldap, root-plugin-ldap -Replaces: root-plugin-ldap (<< 5.09.01-1) -Description: Ldap extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ldap plug-in for ROOT. This gives you - access to Ldap directories via ROOT. - -Package: libroot-ldap-dev -Architecture: any -Section: libdevel -Depends: libroot-ldap@libvers@ (= ${binary:Version}), libroot-dev, libldap2-dev | libldap-dev, ${misc:Depends} -Description: Ldap extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ldap plug-in for ROOT. This gives you - access to Ldap directories via ROOT. - - diff --git a/build/package/common/libroot-math-foam.control b/build/package/common/libroot-math-foam.control deleted file mode 100644 index 76d759202fd2f..0000000000000 --- a/build/package/common/libroot-math-foam.control +++ /dev/null @@ -1,32 +0,0 @@ -Package: libroot-math-foam@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: A Compact Version of the Cellular Event Generator - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The general-purpose self-adapting Monte Carlo (MC) event - generator/simulator mFOAM (standing for mini-FOAM) is a new compact - version of the FOAM program, with a slightly limited functionality - with respect to its parent version. On the other hand, mFOAM is - easier to use for the average user. - -Package: libroot-math-foam-dev -Architecture: any -Section: libdevel -Depends: libroot-math-foam@libvers@ (= ${binary:Version}), libroot-hist-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: A Compact Version of the Cellular Event Generator - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The general-purpose self-adapting Monte Carlo (MC) event - generator/simulator mFOAM (standing for mini-FOAM) is a new compact - version of the FOAM program, with a slightly limited functionality - with respect to its parent version. On the other hand, mFOAM is - easier to use for the average user. - diff --git a/build/package/common/libroot-math-genvector.control b/build/package/common/libroot-math-genvector.control deleted file mode 100644 index 5205432d9c38d..0000000000000 --- a/build/package/common/libroot-math-genvector.control +++ /dev/null @@ -1,26 +0,0 @@ -Package: libroot-math-genvector@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Generalized vector library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Genvector library for ROOT. This provides - a generalized vector library. - -Package: libroot-math-genvector-dev -Architecture: any -Section: libdevel -Depends: libroot-math-genvector@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: Generalized vector library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Genvector library for ROOT. This provides - a generalized vector library. - diff --git a/build/package/common/libroot-math-mathcore.control b/build/package/common/libroot-math-mathcore.control deleted file mode 100644 index 40114d46dc2d6..0000000000000 --- a/build/package/common/libroot-math-mathcore.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-math-mathcore@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Core mathemathics library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MathCore library for ROOT. - -Package: libroot-math-mathcore-dev -Architecture: any -Section: libdevel -Depends: libroot-math-mathcore@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Core mathemathics library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MathCore library for ROOT. - diff --git a/build/package/common/libroot-math-mathmore.control b/build/package/common/libroot-math-mathmore.control deleted file mode 100644 index ba14ed7dc3c36..0000000000000 --- a/build/package/common/libroot-math-mathmore.control +++ /dev/null @@ -1,26 +0,0 @@ -Package: libroot-math-mathmore@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GSL interface library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MathMore library for ROOT. This provides - a partial GNU Scientific Library interface for ROOT. - -Package: libroot-math-mathmore-dev -Architecture: any -Section: libdevel -Depends: libroot-math-mathmore@libvers@ (= ${binary:Version}), libroot-core-dev, libgsl0-dev, ${misc:Depends} -Conflicts: libroot-mathmore-dev (<< 5.19.01-1) -Replaces: libroot-mathmore-dev -Description: Mathmore plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MathMore library for ROOT. This provides - a partial GNU Scientific Library interface for ROOT. - diff --git a/build/package/common/libroot-math-matrix.control b/build/package/common/libroot-math-matrix.control deleted file mode 100644 index deee3a62fd36f..0000000000000 --- a/build/package/common/libroot-math-matrix.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-math-matrix@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Matrix library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Matrix library for ROOT. - -Package: libroot-math-matrix-dev -Architecture: any -Section: libdevel -Depends: libroot-math-matrix@libvers@ (= ${binary:Version}), libroot-core-dev, libroot-math-mathcore-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Matrix library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Matrix library for ROOT. - diff --git a/build/package/common/libroot-math-minuit.control b/build/package/common/libroot-math-minuit.control deleted file mode 100644 index 6796107ca95d5..0000000000000 --- a/build/package/common/libroot-math-minuit.control +++ /dev/null @@ -1,29 +0,0 @@ -Package: libroot-math-minuit@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-minuit (<< 5.09.01-7) -Provides: libroot-math-minuit -Description: Minuit plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MINUIT plug-in for ROOT. This provides a - fitting algorithm for ROOT. - -Package: libroot-math-minuit-dev -Architecture: any -Section: libdevel -Depends: libroot-math-minuit@libvers@ (= ${binary:Version}), libroot-graf2d-graf-dev, ${misc:Depends} -Provides: root-fitter -Replaces: root-plugin-minuit (<< 5.09.01-7), libroot-minuit-dev -Conflicts: libroot-minuit-dev (<< 5.19.01-1) -Description: Minuit plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MINUIT plug-in for ROOT. This provides a - fitting algorithm for ROOT. - diff --git a/build/package/common/libroot-math-mlp.control b/build/package/common/libroot-math-mlp.control deleted file mode 100644 index 9ffd76783d5b4..0000000000000 --- a/build/package/common/libroot-math-mlp.control +++ /dev/null @@ -1,27 +0,0 @@ -Package: libroot-math-mlp@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-mlp (<< 5.09.01-1) -Description: Multi layer perceptron extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the mlp plug-in for ROOT. This plugin provides - a Multi Layer Perceptron Neural Network package for ROOT. - -Package: libroot-math-mlp-dev -Architecture: any -Section: libdevel -Depends: libroot-math-mlp@libvers@ (= ${binary:Version}), libroot-graf2d-gpad-dev, libroot-tree-treeplayer-dev, ${misc:Depends} -Conflicts: libroot-mlp-dev -Replaces: libroot-mlp-dev (<< 5.19.01-1) -Description: Multi layer perceptron extension for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the mlp plug-in for ROOT. This plugin provides - a Multi Layer Perceptron Neural Network package for ROOT. - diff --git a/build/package/common/libroot-math-physics.control b/build/package/common/libroot-math-physics.control deleted file mode 100644 index 2985ce129a20c..0000000000000 --- a/build/package/common/libroot-math-physics.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-math-physics@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Physics library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Physics library for ROOT. - -Package: libroot-math-physics-dev -Architecture: any -Section: libdevel -Depends: libroot-math-physics@libvers@ (= ${binary:Version}), libroot-math-matrix-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Physics library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Physics library for ROOT. - diff --git a/build/package/common/libroot-math-quadp.control b/build/package/common/libroot-math-quadp.control deleted file mode 100644 index 48b1b859cfebd..0000000000000 --- a/build/package/common/libroot-math-quadp.control +++ /dev/null @@ -1,31 +0,0 @@ -Package: libroot-math-quadp@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-quadp (<< 5.09.01-1) -Description: QuadP extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the QuadP plug-in for ROOT. This provides the - user a framework in which to do Quadratic Programming. The quadratic - programming problem involves minimization of a quadratic function - subject to linear constraints. - -Package: libroot-math-quadp-dev -Architecture: any -Section: libdevel -Depends: libroot-math-quadp@libvers@ (= ${binary:Version}), libroot-math-matrix-dev, ${misc:Depends} -Replaces: libroot-quadp -Conflicts: libroot-quadp (<< 5.19.01-1) -Description: QuadP extension for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the QuadP plug-in for ROOT. This provides the - user a framework in which to do Quadratic Programming. The quadratic - programming problem involves minimization of a quadratic function - subject to linear constraints. - diff --git a/build/package/common/libroot-math-smatrix.control b/build/package/common/libroot-math-smatrix.control deleted file mode 100644 index 486cfbeac45ea..0000000000000 --- a/build/package/common/libroot-math-smatrix.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-math-smatrix@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Sparse matrix library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Smatrix library for ROOT. - -Package: libroot-math-smatrix-dev -Architecture: any -Section: libdevel -Depends: libroot-math-smatrix@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Sparse matrix library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Smatrix library for ROOT. - diff --git a/build/package/common/libroot-math-splot.control b/build/package/common/libroot-math-splot.control deleted file mode 100644 index 28651c9837cc5..0000000000000 --- a/build/package/common/libroot-math-splot.control +++ /dev/null @@ -1,74 +0,0 @@ -Package: libroot-math-splot@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Splot library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - A common method used in High Energy Physics to perform measurements - is the maximum Likelihood method, exploiting discriminating variables - to disentangle signal from background. The crucial point for such an - analysis to be reliable is to use an exhaustive list of sources of - events combined with an accurate description of all the Probability - Density Functions (PDF). - . - To assess the validity of the fit, a convincing quality check is to - explore further the data sample by examining the distributions of - control variables. A control variable can be obtained for instance by - removing one of the discriminating variables before performing again - the maximum Likelihood fit: this removed variable is a control - variable. The expected distribution of this control variable, for - signal, is to be compared to the one extracted, for signal, from the - data sample. In order to be able to do so, one must be able to unfold - from the distribution of the whole data sample. - . - The SPlot method allows to reconstruct the distributions for the - control variable, independently for each of the various sources of - events, without making use of any a priori knowledge on this - variable. The aim is thus to use the knowledge available for the - discriminating variables to infer the behaviour of the individual - sources of events with respect to the control variable. - . - SPlot is optimal if the control variable is uncorrelated with the - discriminating variables. - -Package: libroot-math-splot-dev -Architecture: any -Section: libdevel -Depends: libroot-math-splot@libvers@ (= ${binary:Version}), libroot-graf2d-graf-dev, libroot-graf3d-g3d-dev, libroot-tree-treeplayer-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Splot library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - A common method used in High Energy Physics to perform measurements - is the maximum Likelihood method, exploiting discriminating variables - to disentangle signal from background. The crucial point for such an - analysis to be reliable is to use an exhaustive list of sources of - events combined with an accurate description of all the Probability - Density Functions (PDF). - . - To assess the validity of the fit, a convincing quality check is to - explore further the data sample by examining the distributions of - control variables. A control variable can be obtained for instance by - removing one of the discriminating variables before performing again - the maximum Likelihood fit: this removed variable is a control - variable. The expected distribution of this control variable, for - signal, is to be compared to the one extracted, for signal, from the - data sample. In order to be able to do so, one must be able to unfold - from the distribution of the whole data sample. - . - The SPlot method allows to reconstruct the distributions for the - control variable, independently for each of the various sources of - events, without making use of any a priori knowledge on this - variable. The aim is thus to use the knowledge available for the - discriminating variables to infer the behaviour of the individual - sources of events with respect to the control variable. - . - SPlot is optimal if the control variable is uncorrelated with the - discriminating variables. - diff --git a/build/package/common/libroot-math-unuran.control b/build/package/common/libroot-math-unuran.control deleted file mode 100644 index 7ed126687f496..0000000000000 --- a/build/package/common/libroot-math-unuran.control +++ /dev/null @@ -1,54 +0,0 @@ -Package: libroot-math-unuran@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://statistik.wu-wien.ac.at/unuran/ -Description: Random number generator library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - It contains universal (also called automatic or black-box) algorithms - that can generate random numbers from large classes of continuous or - discrete distributions, and also from practically all standard - distributions. - . - To generate random numbers the user must supply some information - about the desired distribution, especially a C-function that computes - the density and - depending on the chosen methods - some additional - information (like the borders of the domain, the mode, the derivative - of the density ...). After a user has given this information an - init-program computes all tables and constants necessary for the - random variate generation. The sample program can then generate - variates from the desired distribution. - . - This package contains the runtime library. - -Package: libroot-math-unuran-dev -Architecture: any -Section: libdevel -Depends: libroot-math-unuran@libvers@ (= ${binary:Version}), libroot-hist-dev, ${misc:Depends} -Replaces: libroot-unuran-dev -Conflicts: libroot-unuran-dev (<< 5.19.01-1) -Homepage: http://statistik.wu-wien.ac.at/unuran/ -Description: Random number generator library - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - It contains universal (also called automatic or black-box) algorithms - that can generate random numbers from large classes of continuous or - discrete distributions, and also from practically all standard - distributions. - . - To generate random numbers the user must supply some information - about the desired distribution, especially a C-function that computes - the density and - depending on the chosen methods - some additional - information (like the borders of the domain, the mode, the derivative - of the density ...). After a user has given this information an - init-program computes all tables and constants necessary for the - random variate generation. The sample program can then generate - variates from the desired distribution. - . - This package contains the development files - diff --git a/build/package/common/libroot-misc-memstat.control b/build/package/common/libroot-misc-memstat.control deleted file mode 100644 index 106e08839629a..0000000000000 --- a/build/package/common/libroot-misc-memstat.control +++ /dev/null @@ -1,26 +0,0 @@ -Package: libroot-misc-memstat@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Memory statistics tool for use with ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the memory statistics tool for debugging memory - leaks and such. - -Package: libroot-misc-memstat-dev -Architecture: any -Section: libdevel -Depends: libroot-misc-memstat@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Memory statistics tool for use with ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the memory statistics tool for debugging memory - leaks and such. - diff --git a/build/package/common/libroot-misc-minicern.control b/build/package/common/libroot-misc-minicern.control deleted file mode 100644 index ec0373edc1b3c..0000000000000 --- a/build/package/common/libroot-misc-minicern.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-misc-minicern@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Small version of CERNLIB for use with ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the mini CERNLIB library for ROOT. - -Package: libroot-misc-minicern-dev -Architecture: any -Section: libdevel -Depends: libroot-misc-minicern@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Small version of CERNLIB for use with ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the mini CERNLIB library for ROOT. - diff --git a/build/package/common/libroot-misc-table.control b/build/package/common/libroot-misc-table.control deleted file mode 100644 index 518b31313a352..0000000000000 --- a/build/package/common/libroot-misc-table.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-misc-table@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Table library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Table library for ROOT. - -Package: libroot-misc-table-dev -Architecture: any -Section: libdevel -Depends: libroot-misc-table@libvers@ (= ${binary:Version}), libroot-graf3d-g3d-dev, libroot-graf2d-gpad-dev, libroot-tree-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Table library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Table library for ROOT. - diff --git a/build/package/common/libroot-montecarlo-eg.control b/build/package/common/libroot-montecarlo-eg.control deleted file mode 100644 index 6f4030bbb30c4..0000000000000 --- a/build/package/common/libroot-montecarlo-eg.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-montecarlo-eg@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Event generator library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Eg library for ROOT. - -Package: libroot-montecarlo-eg-dev -Architecture: any -Section: libdevel -Depends: libroot-montecarlo-eg@libvers@ (= ${binary:Version}), libroot-graf2d-gpad-dev, libroot-graf3d-g3d-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Event generator library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Eg library for ROOT. - diff --git a/build/package/common/libroot-montecarlo-g4root.control b/build/package/common/libroot-montecarlo-g4root.control deleted file mode 100644 index 0b4a933823b32..0000000000000 --- a/build/package/common/libroot-montecarlo-g4root.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-montecarlo-g4root@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Geant4 interface library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the G4root library for ROOT. - -Package: libroot-montecarlo-g4root-dev -Architecture: any -Section: libdevel -Depends: libroot-montecarlo-g4root@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Geant4 interface library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the G4root library for ROOT. - diff --git a/build/package/common/libroot-montecarlo-vmc-dev.install.in b/build/package/common/libroot-montecarlo-vmc-dev.install.in deleted file mode 100644 index e8c0fe021a417..0000000000000 --- a/build/package/common/libroot-montecarlo-vmc-dev.install.in +++ /dev/null @@ -1 +0,0 @@ -@sysconfdir@/root/vmc diff --git a/build/package/common/libroot-montecarlo-vmc.control b/build/package/common/libroot-montecarlo-vmc.control deleted file mode 100644 index 132115858f33c..0000000000000 --- a/build/package/common/libroot-montecarlo-vmc.control +++ /dev/null @@ -1,25 +0,0 @@ -Package: libroot-montecarlo-vmc@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-vmc -Description: Virtual Monte-Carlo (simulation) library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Vmc library for ROOT. - -Package: libroot-montecarlo-vmc-dev -Architecture: any -Section: libdevel -Depends: libroot-montecarlo-vmc@libvers@ (= ${binary:Version}), libroot-geom-dev, libroot-montecarlo-eg-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Virtual Monte-Carlo (simulation) library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Vmc library for ROOT. - diff --git a/build/package/common/libroot-net-auth.control b/build/package/common/libroot-net-auth.control deleted file mode 100644 index af31c9668654c..0000000000000 --- a/build/package/common/libroot-net-auth.control +++ /dev/null @@ -1,25 +0,0 @@ -Package: libroot-net-auth@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-authentication -Description: Authentication extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the basic authentication algorithms used by ROOT. - -Package: libroot-net-auth-dev -Architecture: any -Section: libdevel -Depends: libroot-net-auth@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: Authentication extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the basic authentication algorithms used by ROOT. - diff --git a/build/package/common/libroot-net-bonjour.control b/build/package/common/libroot-net-bonjour.control deleted file mode 100644 index 62cd352b21448..0000000000000 --- a/build/package/common/libroot-net-bonjour.control +++ /dev/null @@ -1,27 +0,0 @@ -Package: libroot-net-bonjour@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Zeroconf extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains classes for declaring zeroconf services, as well - as browsing for such services. This package contains the run-time - libraries - -Package: libroot-net-bonjour-dev -Architecture: any -Section: libdevel -Depends: libroot-net-bonjour@libvers@ (= ${binary:Version}), libroot-core-dev, libavahi-compat-libdnssd-dev , ${misc:Depends} -Description: Zeroconf extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains classes for declaring zeroconf services, as well - as browsing for such services. This package contains the development - libraries and headers. - - diff --git a/build/package/common/libroot-net-ldap.control b/build/package/common/libroot-net-ldap.control deleted file mode 100644 index c3574fe364e0f..0000000000000 --- a/build/package/common/libroot-net-ldap.control +++ /dev/null @@ -1,28 +0,0 @@ -Package: libroot-net-ldap@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-ldap (<< 5.09.01-1) -Description: Ldap extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ldap plug-in for ROOT. This gives you - access to Ldap directories via ROOT. - -Package: libroot-net-ldap-dev -Architecture: any -Section: libdevel -Depends: libroot-net-ldap@libvers@ (= ${binary:Version}), libroot-core-dev, libldap2-dev | libldap-dev, ${misc:Depends} -Conflicts: libroot-ldap-dev (<< 5.19.01-1) -Replaces: libroot-ldap-dev (<< 5.19.01-1) -Description: Ldap extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ldap plug-in for ROOT. This gives you - access to Ldap directories via ROOT. - - diff --git a/build/package/common/libroot-net.control b/build/package/common/libroot-net.control deleted file mode 100644 index dd2245f4b2d1e..0000000000000 --- a/build/package/common/libroot-net.control +++ /dev/null @@ -1,24 +0,0 @@ -Package: libroot-net@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Net library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Net library for ROOT. - -Package: libroot-net-dev -Architecture: any -Section: libdevel -Depends: libroot-net@libvers@ (= ${binary:Version}), libroot-math-mathcore-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Net library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Net library for ROOT. - diff --git a/build/package/common/libroot-proof-clarens.control b/build/package/common/libroot-proof-clarens.control deleted file mode 100644 index 6ce0e0fe74c21..0000000000000 --- a/build/package/common/libroot-proof-clarens.control +++ /dev/null @@ -1,37 +0,0 @@ -Package: libroot-proof-clarens@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-clarens (<< 5.09.01-1) -Homepage: http://clarens.sourceforge.net -Description: Clarens extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Clarens plug-in for ROOT, for use in a GRID - enabled analysis environment. - . - The Clarens Grid-Enabled Web Services Framework is an open source, - secure, high-performance "portal" for ubiquitous access to data and - computational resources provided by computing grids. - -Package: libroot-proof-clarens-dev -Architecture: any -Section: libdevel -Depends: libroot-proof-clarens@libvers@ (= ${binary:Version}), libroot-core-dev, libxmlrpc-c3-dev | libxmlrpc-c-dev, ${misc:Depends} -Conflicts: libroot-clarens-dev (<< 5.19.01-1) -Replaces: libroot-clarens-dev -Homepage: http://clarens.sourceforge.net -Description: Clarens extension for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Clarens plug-in for ROOT, for use in a GRID - enabled analysis environment. - . - The Clarens Grid-Enabled Web Services Framework is an open source, - secure, high-performance "portal" for ubiquitous access to data and - computational resources provided by computing grids. - diff --git a/build/package/common/libroot-proof-proofplayer.control b/build/package/common/libroot-proof-proofplayer.control deleted file mode 100644 index af2a6d8b68132..0000000000000 --- a/build/package/common/libroot-proof-proofplayer.control +++ /dev/null @@ -1,31 +0,0 @@ -Package: libroot-proof-proofplayer@libvers@ -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: root-plugin-net-netx, root-plugin-proof-xproof -Replaces: root-plugin-proof-proofplayer (< 5.23.05-1) -Conflicts: root-plugin-proof-proofplayer (< 5.23.05-1) -Description: PROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF extension ROOT. This provides a - client to use in a PROOF environment. - - -Package: libroot-proof-proofplayer-dev -Section: libdevel -Architecture: any -Depends: libroot-proof-proofplayer@libvers@ (= ${binary:Version}), libroot-proof-dev, ${misc:Depends} -Suggests: root-plugin-net-netx, root-plugin-proof-xproof -Replaces: root-plugin-proof-proofplayer (< 5.23.05-1) -Conflicts: root-plugin-proof-proofplayer (< 5.23.05-1) -Description: PROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF callable extension for ROOT. This - provides a client to use in a PROOF environment. - - diff --git a/build/package/common/libroot-proof.control b/build/package/common/libroot-proof.control deleted file mode 100644 index 9db482d7b65d7..0000000000000 --- a/build/package/common/libroot-proof.control +++ /dev/null @@ -1,26 +0,0 @@ -Package: libroot-proof@libvers@ -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: root-plugin-net-netx, root-plugin-proof-xproof -Description: PROOF library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF library for ROOT. This provides a - client to use in a PROOF environment. - -Package: libroot-proof-dev -Architecture: any -Section: libdevel -Depends: libroot-proof@libvers@ (= ${binary:Version}), libroot-math-mathcore-dev, libroot-tree-dev, ${misc:Depends} -Replaces: root-plugin-proof -Conflicts: root-plugin-proof (<< 5.19.01-1) -Description: PROOF library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF library for ROOT. This provides a - client to use in a PROOF environment. - diff --git a/build/package/common/libroot-roofit.control b/build/package/common/libroot-roofit.control deleted file mode 100644 index 66d05ef9891b8..0000000000000 --- a/build/package/common/libroot-roofit.control +++ /dev/null @@ -1,45 +0,0 @@ -Package: libroot-roofit@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, libroot-math-minuit@libvers@ | root-fitter, ${misc:Depends} -Homepage: http://roofit.sourceforge.net/ -Replaces: root-plugin-roofit (<< 5.09.01-1) -Description: ROOT extension for modeling expected distribtions - libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The RooFit packages provide a toolkit for modeling the expected - distribution of events in a physics analysis. Models can be used to - perform likelihood fits, produce plots, and generate "toy Monte - Carlo" samples for various studies. The RooFit tools are integrated - with the object-oriented and interactive ROOT graphical environment. - . - RooFit has been developed for the BaBar collaboration, a high energy - physics experiment at the Stanford Linear Accelerator Center, and is - primarily targeted to the high-energy physicists using the ROOT - analysis environment, but the general nature of the package make it - suitable for adoption in different disciplines as well. - -Package: libroot-roofit-dev -Architecture: any -Section: libdevel -Homepage: http://roofit.sourceforge.net/ -Depends: libroot-roofit@libvers@ (= ${binary:Version}), libroot-graf2d-graf-dev, libroot-tree-dev, ${misc:Depends} -Description: ROOT extension for modeling expected distribtions - development - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The RooFit packages provide a toolkit for modeling the expected - distribution of events in a physics analysis. Models can be used to - perform likelihood fits, produce plots, and generate "toy Monte - Carlo" samples for various studies. The RooFit tools are integrated - with the object-oriented and interactive ROOT graphical environment. - . - RooFit has been developed for the BaBar collaboration, a high energy - physics experiment at the Stanford Linear Accelerator Center, and is - primarily targeted to the high-energy physicists using the ROOT - analysis environment, but the general nature of the package make it - suitable for adoption in different disciplines as well. - diff --git a/build/package/common/libroot-static.install.in b/build/package/common/libroot-static.install.in deleted file mode 100644 index 7f57c81197762..0000000000000 --- a/build/package/common/libroot-static.install.in +++ /dev/null @@ -1,5 +0,0 @@ -@prefix@/lib/root/@version@/libRoot.a -@prefix@/bin/roota -@prefix@/bin/proofserva -@prefix@/share/man/man1/roota.1* -@prefix@/share/man/man1/proofserva.1* diff --git a/build/package/common/libroot-tmva.control b/build/package/common/libroot-tmva.control deleted file mode 100644 index 93bb7eaf7dbf4..0000000000000 --- a/build/package/common/libroot-tmva.control +++ /dev/null @@ -1,59 +0,0 @@ -Package: libroot-tmva@libvers@ -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://tmva.sourceforge.net -Description: Toolkit for multivariate data analysis - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The Toolkit for Multivariate Analysis (TMVA) provides a - ROOT-integrated environment for the parallel processing and - evaluation of MVA techniques to discriminate signal from background - samples. It presently includes (ranked by complexity): - . - * Rectangular cut optimisation - * Correlated likelihood estimator (PDE approach) - * Multi-dimensional likelihood estimator (PDE - range-search approach) - * Fisher (and Mahalanobis) discriminant - * H-Matrix (chi-squared) estimator - * Artificial Neural Network (two different implementations) - * Boosted Decision Trees - . - The TMVA package includes an implementation for each of these - discrimination techniques, their training and testing (performance - evaluation). In addition all these methods can be tested in parallel, - and hence their performance on a particular data set may easily be - compared. - - -Package: libroot-tmva-dev -Architecture: any -Section: libdevel -Depends: libroot-tmva@libvers@ (= ${binary:Version}), libroot-math-mlp-dev, ${misc:Depends} -Homepage: http://tmva.sourceforge.net -Description: Toolkit for multivariate data analysis - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The Toolkit for Multivariate Analysis (TMVA) provides a - ROOT-integrated environment for the parallel processing and - evaluation of MVA techniques to discriminate signal from background - samples. It presently includes (ranked by complexity): - . - * Rectangular cut optimisation - * Correlated likelihood estimator (PDE approach) - * Multi-dimensional likelihood estimator (PDE - range-search approach) - * Fisher (and Mahalanobis) discriminant - * H-Matrix (chi-squared) estimator - * Artificial Neural Network (two different implementations) - * Boosted Decision Trees - . - The TMVA package includes an implementation for each of these - discrimination techniques, their training and testing (performance - evaluation). In addition all these methods can be tested in parallel, - and hence their performance on a particular data set may easily be - compared. - diff --git a/build/package/common/libroot-tree-treeplayer.control b/build/package/common/libroot-tree-treeplayer.control deleted file mode 100644 index 160db319b5ab6..0000000000000 --- a/build/package/common/libroot-tree-treeplayer.control +++ /dev/null @@ -1,23 +0,0 @@ -Package: libroot-tree-treeplayer@libvers@ -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Library to loop over a ROOT tree - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - Plug-in to loop over a ROOT tree. - -Package: libroot-tree-treeplayer-dev -Architecture: any -Section: libdevel -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: libroot-tree-treeplayer@libvers@ (= ${binary:Version}), libroot-tree-dev, libroot-graf2d-gpad-dev, libroot-graf3d-g3d-dev, ${misc:Depends} -Description: Library to loop over a ROOT tree - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - Plug-in to loop over a ROOT tree. - diff --git a/build/package/common/libroot-tree.control b/build/package/common/libroot-tree.control deleted file mode 100644 index 6d664463b797a..0000000000000 --- a/build/package/common/libroot-tree.control +++ /dev/null @@ -1,25 +0,0 @@ -Package: libroot-tree@libvers@ -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: libroot-tree-treeplayer@libvers@ | root-plugin-tree-treeviewer -Description: Tree library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Tree library for ROOT. - -Package: libroot-tree-dev -Architecture: any -Section: libdevel -Depends: libroot-tree@libvers@ (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Tree library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Tree library for ROOT. - diff --git a/build/package/common/proofserv.in b/build/package/common/proofserv.in deleted file mode 100755 index b9f76ce9fa015..0000000000000 --- a/build/package/common/proofserv.in +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -rootplugins=@prefix@/lib/root/@libvers@ -rootbindir=@prefix@/bin - -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$rootplugins - -exec $rootbindir/proofserv.bin "$@" - -# EOF - diff --git a/build/package/common/root-plugin-asimage.control b/build/package/common/root-plugin-asimage.control deleted file mode 100644 index 4a2160beadfbe..0000000000000 --- a/build/package/common/root-plugin-asimage.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-asimage -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: AfterImage plug-in for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the AfterImage plug-in for ROOT, which allows - you to store output graphics in many formats, including JPEG, PNG, - SVG, etc. - diff --git a/build/package/common/root-plugin-geom-gdml.control b/build/package/common/root-plugin-geom-gdml.control deleted file mode 100644 index 29566489e1992..0000000000000 --- a/build/package/common/root-plugin-geom-gdml.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-geom-gdml -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${python:Depends}, libroot-geom-dev, ${misc:Depends} -Description: GDML import/export module for ROOT geometries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains an import/export module for the ROOT geometry. - diff --git a/build/package/common/root-plugin-geom-gdml.install.in b/build/package/common/root-plugin-geom-gdml.install.in deleted file mode 100644 index f4b544f494730..0000000000000 --- a/build/package/common/root-plugin-geom-gdml.install.in +++ /dev/null @@ -1,2 +0,0 @@ -@prefix@/lib/root/@version@/ROOTwriter.py -@prefix@/lib/root/@version@/writer.py diff --git a/build/package/common/root-plugin-geom-geombuilder.control b/build/package/common/root-plugin-geom-geombuilder.control deleted file mode 100644 index f614fff8372db..0000000000000 --- a/build/package/common/root-plugin-geom-geombuilder.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-geom-geombuilder -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Geometry builder plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a geometry builder plugin for ROOT. - diff --git a/build/package/common/root-plugin-geom-geompainter.control b/build/package/common/root-plugin-geom-geompainter.control deleted file mode 100644 index d9bb6149135ee..0000000000000 --- a/build/package/common/root-plugin-geom-geompainter.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-geom-geompainter -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} , ${misc:Depends} -Description: Geometry painter plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a geometry painter plugin for ROOT. - diff --git a/build/package/common/root-plugin-graf2d-asimage.control b/build/package/common/root-plugin-graf2d-asimage.control deleted file mode 100644 index e26b9c29b4ba5..0000000000000 --- a/build/package/common/root-plugin-graf2d-asimage.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-graf2d-asimage -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: AfterImage plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the AfterImage plug-in for ROOT, which allows - you to store output graphics in many formats, including JPEG, PNG, - SVG, etc. - - diff --git a/build/package/common/root-plugin-graf2d-qt.control b/build/package/common/root-plugin-graf2d-qt.control deleted file mode 100644 index 46673534acf66..0000000000000 --- a/build/package/common/root-plugin-graf2d-qt.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-graf2d-qt -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Qt plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Qt plug-in for ROOT. This plugin - provides an abstraction over a display. Windows are created via Qt. - - diff --git a/build/package/common/root-plugin-graf2d-x11.control b/build/package/common/root-plugin-graf2d-x11.control deleted file mode 100644 index f63e7f912b119..0000000000000 --- a/build/package/common/root-plugin-graf2d-x11.control +++ /dev/null @@ -1,14 +0,0 @@ -Package: root-plugin-graf2d-x11 -Architecture: any -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Provides: root-system-display -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: X window system plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the X11 plug-in for ROOT, which allows using an - X display for showing graphics. - diff --git a/build/package/common/root-plugin-graf3d-x3d.control b/build/package/common/root-plugin-graf3d-x3d.control deleted file mode 100644 index e7cc9ed8d4944..0000000000000 --- a/build/package/common/root-plugin-graf3d-x3d.control +++ /dev/null @@ -1,15 +0,0 @@ -Package: root-plugin-graf3d-x3d -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-plugin-graf3d-gl -Description: X 3D plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the X 3D plug-in for ROOT. This plugin provides - 3D rendering of volumes and shapes defined in ROOT. Included is also - a low quality 3D viewer for ROOT defined geometries. - diff --git a/build/package/common/root-plugin-gui-fitpanel.control b/build/package/common/root-plugin-gui-fitpanel.control deleted file mode 100644 index 1de356ae5da1e..0000000000000 --- a/build/package/common/root-plugin-gui-fitpanel.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-gui-fitpanel -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI element for fits plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a plug-in to show a pop-up dialog when fitting - various kinds of data. - diff --git a/build/package/common/root-plugin-gui-guibuilder.control b/build/package/common/root-plugin-gui-guibuilder.control deleted file mode 100644 index fa0ab1e6148f1..0000000000000 --- a/build/package/common/root-plugin-gui-guibuilder.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-gui-guibuilder -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI editor plug-in for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a plug-in for editing graphical user interfaces - in ROOT. - diff --git a/build/package/common/root-plugin-gui-qt.control b/build/package/common/root-plugin-gui-qt.control deleted file mode 100644 index 595dafc7e7cb2..0000000000000 --- a/build/package/common/root-plugin-gui-qt.control +++ /dev/null @@ -1,11 +0,0 @@ -Package: root-plugin-gui-qt -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Qt plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Qt plug-in for ROOT. This plugin - provides an abstraction over a display. Windows are created via Qt. - diff --git a/build/package/common/root-plugin-gui-sessionviewer.control b/build/package/common/root-plugin-gui-sessionviewer.control deleted file mode 100644 index 5e53b839535e1..0000000000000 --- a/build/package/common/root-plugin-gui-sessionviewer.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-gui-sessionviewer -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI to browse an interactive PROOF session - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a plug-in browsing an interactive PROOF session - in ROOT. - diff --git a/build/package/common/root-plugin-hist-hbook.control b/build/package/common/root-plugin-hist-hbook.control deleted file mode 100644 index 326206eeff9ca..0000000000000 --- a/build/package/common/root-plugin-hist-hbook.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-hist-hbook -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: root-plugin-hbook -Replaces: root-plugin-hbook (<< 5.19.01-1) -Description: Hbook plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Hbook plug-in for ROOT, allowing you to - access legacy Hbook files (NTuples and Histograms from PAW). - diff --git a/build/package/common/root-plugin-hist-hbook.install.in b/build/package/common/root-plugin-hist-hbook.install.in deleted file mode 100644 index ca3bf87319e14..0000000000000 --- a/build/package/common/root-plugin-hist-hbook.install.in +++ /dev/null @@ -1,4 +0,0 @@ -@prefix@/bin/h2root -@prefix@/bin/g2root -@prefix@/share/man/man1/h2root.1* -@prefix@/share/man/man1/g2root.1* diff --git a/build/package/common/root-plugin-hist-histpainter.control b/build/package/common/root-plugin-hist-histpainter.control deleted file mode 100644 index b6377b926d39c..0000000000000 --- a/build/package/common/root-plugin-hist-histpainter.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-hist-histpainter -Architecture: any -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Histogram painter plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package a painter of histograms for ROOT. - diff --git a/build/package/common/root-plugin-hist-spectrumpainter.control b/build/package/common/root-plugin-hist-spectrumpainter.control deleted file mode 100644 index 6a42d213a263b..0000000000000 --- a/build/package/common/root-plugin-hist-spectrumpainter.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-hist-spectrumpainter -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Spectrum painter plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package a painter of spectra for ROOT. - diff --git a/build/package/common/root-plugin-io-castor.control b/build/package/common/root-plugin-io-castor.control deleted file mode 100644 index 8a694a196c6e6..0000000000000 --- a/build/package/common/root-plugin-io-castor.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-io-castor -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://savannah.cern.ch/projects/castor/ -Description: CASTOR plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the rfio plug-in for ROOT. Using this package, - it's possible to access file managed by the SHIFT tape archive - system, as used at CERN. - diff --git a/build/package/common/root-plugin-io-chirp.control b/build/package/common/root-plugin-io-chirp.control deleted file mode 100644 index aa36c2f67a09f..0000000000000 --- a/build/package/common/root-plugin-io-chirp.control +++ /dev/null @@ -1,20 +0,0 @@ -Package: root-plugin-io-chirp -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://www.cs.wisc.edu/condor/chirp/ -Description: Chirp plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Chirp plug-in for ROOT, which allows you to - access files via the Chirp protocol. - . - Chirp is a simple and lightweight remote I/O protocol used by a - variety of research projects related to Condor. The Chirp protocol - corresponds closely to the Unix interface. It consists of familiar - operations such as open(), read(), write(), and close(). In addition, - Chirp provides a variety of authentication methods, allowing remote - users to identify themselves with strong Globus or Kerberos - credentials. The Chirp protocol is used in a variety of systems. - diff --git a/build/package/common/root-plugin-io-dcache.control b/build/package/common/root-plugin-io-dcache.control deleted file mode 100644 index 5788005650b77..0000000000000 --- a/build/package/common/root-plugin-io-dcache.control +++ /dev/null @@ -1,14 +0,0 @@ -Package: root-plugin-io-dcache -Architecture: any -Depends: ${shlibs:Depends}, libdcap1, ${misc:Depends} -Homepage: http://www.dcache.org -Description: dCache plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the dCache plug-in for ROOT, that allows - transparent access to files data via a dCache server. Given a path - which doesn't belong to the dCache managed filesystem, it falls back - to the ordinary TFile behaviour. - diff --git a/build/package/common/root-plugin-io-gfal.control b/build/package/common/root-plugin-io-gfal.control deleted file mode 100644 index 0587697bc4343..0000000000000 --- a/build/package/common/root-plugin-io-gfal.control +++ /dev/null @@ -1,11 +0,0 @@ -Package: root-plugin-io-gfal -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GFal plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the GFal plug-in for ROOT, that allows - transparent access to files data via various Grid file services. - diff --git a/build/package/common/root-plugin-io-sql.control b/build/package/common/root-plugin-io-sql.control deleted file mode 100644 index 49d05edba7cda..0000000000000 --- a/build/package/common/root-plugin-io-sql.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-io-sql -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-db-client | root-plugin-io-mysql -Description: SQL plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the SQL plug-in for ROOT, that allows - transparent access to files data via an SQL database, using ROOT's - TFile interface. - diff --git a/build/package/common/root-plugin-io-xml.control b/build/package/common/root-plugin-io-xml.control deleted file mode 100644 index ab626d7d39397..0000000000000 --- a/build/package/common/root-plugin-io-xml.control +++ /dev/null @@ -1,11 +0,0 @@ -Package: root-plugin-io-xml -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: XML reader plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the XML reader plug-in for ROOT. This package - provide a plug-in to parse XML files with ROOT. - diff --git a/build/package/common/root-plugin-math-fftw3.control b/build/package/common/root-plugin-math-fftw3.control deleted file mode 100644 index ce77540bbc90f..0000000000000 --- a/build/package/common/root-plugin-math-fftw3.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-math-fftw3 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://fftw.org/ -Description: FFTw plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Fast Fourier Transform extension for ROOT. - It uses the very fast fftw (version 3) library. - diff --git a/build/package/common/root-plugin-math-fumili.control b/build/package/common/root-plugin-math-fumili.control deleted file mode 100644 index e432c9ecd8202..0000000000000 --- a/build/package/common/root-plugin-math-fumili.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-math-fumili -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-fitter -Description: Fumili plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the fumili plug-in for ROOT. This provides an - alternative fitting algorithm for ROOT. - - diff --git a/build/package/common/root-plugin-math-minuit2.control b/build/package/common/root-plugin-math-minuit2.control deleted file mode 100644 index 1d914fd76ab8b..0000000000000 --- a/build/package/common/root-plugin-math-minuit2.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-math-minuit2 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-fitter -Description: Minuit version 2 plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MINUIT version 2 plug-in for ROOT. This - provides an fitting algorithm for ROOT. - - diff --git a/build/package/common/root-plugin-montecarlo-pythia5.control b/build/package/common/root-plugin-montecarlo-pythia5.control deleted file mode 100644 index 45aa010ab025f..0000000000000 --- a/build/package/common/root-plugin-montecarlo-pythia5.control +++ /dev/null @@ -1,14 +0,0 @@ -Package: root-plugin-montecarlo-pythia5 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Pythia version 5 plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Pythia version 5 plug-in for ROOT. This - package provide the ROOT user with transparent interface to the - Pythia (version 5) event generators for hadronic interactions. If the - term "hadronic" doesn't ring any bells, this package is not for you. - - diff --git a/build/package/common/root-plugin-montecarlo-pythia6.control b/build/package/common/root-plugin-montecarlo-pythia6.control deleted file mode 100644 index 516c710e4446f..0000000000000 --- a/build/package/common/root-plugin-montecarlo-pythia6.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-montecarlo-pythia6 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Pythia version 6 plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Pythia version 6 plug-in for ROOT. This - package provide the ROOT user with transparent interface to the - Pythia (version 6) event generators for hadronic interactions. If the - term "hadronic" does not ring any bells, this package is not for you. - diff --git a/build/package/common/root-plugin-montecarlo-pythia8.control b/build/package/common/root-plugin-montecarlo-pythia8.control deleted file mode 100644 index 0c630645dc0de..0000000000000 --- a/build/package/common/root-plugin-montecarlo-pythia8.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-montecarlo-pythia8 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Pythia version 8 plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Pythia version 8 plug-in for ROOT. This - package provide the ROOT user with transparent interface to the - Pythia (version 8) event generators for hadronic interactions. If the - term "hadronic" does not ring any bells, this package is not for you. - diff --git a/build/package/common/root-plugin-net-alien.control b/build/package/common/root-plugin-net-alien.control deleted file mode 100644 index 46dacca202a2f..0000000000000 --- a/build/package/common/root-plugin-net-alien.control +++ /dev/null @@ -1,11 +0,0 @@ -Package: root-plugin-net-alien -Architecture: any -Homepage: http://alien.cern.ch -Description: AliEn plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the AliEn plug-in for ROOT, which provides an - interface to the AliEN GRID facility. - diff --git a/build/package/common/root-plugin-net-glite.control b/build/package/common/root-plugin-net-glite.control deleted file mode 100644 index 6c57f8112a5f5..0000000000000 --- a/build/package/common/root-plugin-net-glite.control +++ /dev/null @@ -1,11 +0,0 @@ -Package: root-plugin-net-glite -Architecture: any -Description: Glite plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Glite plug-in for ROOT, which provides an - interface to the Glite GRID facility. - - diff --git a/build/package/common/root-plugin-net-globus.control b/build/package/common/root-plugin-net-globus.control deleted file mode 100644 index 5db84a62d9636..0000000000000 --- a/build/package/common/root-plugin-net-globus.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-net-globus -Architecture: any -Depends: globus-proxy-utils, ${shlibs:Depends}, ${misc:Depends} -Homepage: http://www.globus.org -Description: Globus plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Globus plug-in for ROOT, that allows - authentication and authorization against globus. - diff --git a/build/package/common/root-plugin-net-krb5.control b/build/package/common/root-plugin-net-krb5.control deleted file mode 100644 index c1192fee7bf52..0000000000000 --- a/build/package/common/root-plugin-net-krb5.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-net-krb5 -Architecture: any -Depends: ${shlibs:Depends}, krb5-user | heimdal-clients, ${misc:Depends} -Description: Kerberos (version 5) plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Kerberos (version 5) plug-in for ROOT, that - allows authentication and authorisation using Kerberos tokens. - - diff --git a/build/package/common/root-plugin-net-monalisa.control b/build/package/common/root-plugin-net-monalisa.control deleted file mode 100644 index 43edb3c143d02..0000000000000 --- a/build/package/common/root-plugin-net-monalisa.control +++ /dev/null @@ -1,11 +0,0 @@ -Package: root-plugin-net-monalisa -Architecture: any -Homepage: http://monalisa.cacr.caltech.edu -Description: Monalisa plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Monalisa plug-in for ROOT, which provides an - interface MonaLisa Monitoring Services. - diff --git a/build/package/common/root-plugin-net-netx.control b/build/package/common/root-plugin-net-netx.control deleted file mode 100644 index 509735e983328..0000000000000 --- a/build/package/common/root-plugin-net-netx.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-net-netx -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-plugin-net-xrootd -Description: NetX plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the NetX plug-in for ROOT. Client for the - XRootd server. - - diff --git a/build/package/common/root-plugin-net-srp.control b/build/package/common/root-plugin-net-srp.control deleted file mode 100644 index ce9a8d4fc9c18..0000000000000 --- a/build/package/common/root-plugin-net-srp.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-net-srp -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://srp.stanford.edu -Description: SRP plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the SRP (Secure Remote Protocol) utility plug-in - for ROOT. This package provides some tools for SRP authentication - with ROOT. - diff --git a/build/package/common/root-plugin-net-xrootd.install.in b/build/package/common/root-plugin-net-xrootd.install.in deleted file mode 100644 index cfb51c431c75c..0000000000000 --- a/build/package/common/root-plugin-net-xrootd.install.in +++ /dev/null @@ -1,13 +0,0 @@ -@prefix@/bin/xprep -@prefix@/bin/xrdstagetool -@prefix@/bin/xrdcp -@prefix@/bin/xrdcp.bin -@prefix@/bin/xrdgsiproxy -@prefix@/bin/xrdgsiproxy.bin -@prefix@/bin/xrdpwdadmin -@prefix@/bin/xrdpwdadmin.bin -@prefix@/share/man/man1/xprep.1* -@prefix@/share/man/man1/xrdcp.1* -@prefix@/share/man/man1/xrdgsiproxy.1* -@prefix@/share/man/man1/xrdpwdadmin.1* -@prefix@/share/man/man1/xrdstagetool.1* diff --git a/build/package/common/root-plugin-proof-peac.control b/build/package/common/root-plugin-proof-peac.control deleted file mode 100644 index d370d0a386451..0000000000000 --- a/build/package/common/root-plugin-proof-peac.control +++ /dev/null @@ -1,17 +0,0 @@ -Package: root-plugin-proof-peac -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://physics.ucsd.edu/~schsu/project/peac.html -Description: PEAC plugin for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PEAC (Proof Enabled Analysis Center) - plug-in for ROOT. - . - PEAC is an interactive distributed analysis framework that uses - Clarens as a "glue" protocol to advertise and communicate amongst - SAM, Global Manager (GM), Local Manager (LM), DCache, and PROOF - services. - diff --git a/build/package/common/root-plugin-proof-proofplayer.control b/build/package/common/root-plugin-proof-proofplayer.control deleted file mode 100644 index 84e7da7cb74a3..0000000000000 --- a/build/package/common/root-plugin-proof-proofplayer.control +++ /dev/null @@ -1,30 +0,0 @@ -Package: libroot-proof-proofplayer@libvers@ -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: root-plugin-net-netx, root-plugin-proof-xproof -Replaces: root-plugin-proof-proofplayer (< 5.23.05-1) -Conflicts: root-plugin-proof-proofplayer (< 5.23.05-1) -Description: PROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF extension ROOT. This provides a - client to use in a PROOF environment. - - -Package: libroot-proof-proofplayer-dev -Architecture: any -Depends: libroot-proof-proofplayer@libvers@ (= ${binary:Version}), libroot-proof-dev, ${misc:Depends} -Suggests: root-plugin-net-netx, root-plugin-proof-xproof -Replaces: root-plugin-proof-proofplayer (< 5.23.05-1) -Conflicts: root-plugin-proof-proofplayer (< 5.23.05-1) -Description: PROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF callable extension for ROOT. This - provides a client to use in a PROOF environment. - - diff --git a/build/package/common/root-plugin-proof-xproof.control b/build/package/common/root-plugin-proof-xproof.control deleted file mode 100644 index 81c71c89ae4e5..0000000000000 --- a/build/package/common/root-plugin-proof-xproof.control +++ /dev/null @@ -1,15 +0,0 @@ -Package: root-plugin-proof-xproof -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: root-plugin-net-netx -Replaces: root-proofd -Conflicts: root-proofd (<= 5.13.05-4) -Description: XPROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the xproof plug-in for ROOT. This provides a - client to be used in a PROOF environment. - - diff --git a/build/package/common/root-plugin-proof.control b/build/package/common/root-plugin-proof.control deleted file mode 100644 index cb0a28c46891c..0000000000000 --- a/build/package/common/root-plugin-proof.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-proof -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: root-plugin-netx, root-plugin-xproof -Description: PROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the proof plug-in for ROOT. This provides a - client to use in a PROOF environment. - diff --git a/build/package/common/root-plugin-sql-maxdb.control b/build/package/common/root-plugin-sql-maxdb.control deleted file mode 100644 index c5fe0eb12ac4a..0000000000000 --- a/build/package/common/root-plugin-sql-maxdb.control +++ /dev/null @@ -1,15 +0,0 @@ -Package: root-plugin-sql-maxdb -Architecture: i386 ia64 amd64 -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Homepage: http://www.mysql.com/products/maxdb -Description: MaxDB client plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MaxDB plug-in for ROOT. This package - provide a thin client (interface) to MaxDB servers. Using this - client, one can obtain information from a MaxDB database into - the ROOT environment. - diff --git a/build/package/common/root-plugin-sql-mysql.control b/build/package/common/root-plugin-sql-mysql.control deleted file mode 100644 index 5f6f97fd8eaa9..0000000000000 --- a/build/package/common/root-plugin-sql-mysql.control +++ /dev/null @@ -1,15 +0,0 @@ -Package: root-plugin-sql-mysql -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Description: MySQL client plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MySQL plug-in for ROOT. This plugin - provides a thin client (interface) to MySQL servers. Using this - client, one can obtain information from a MySQL database into the - ROOT environment. - - diff --git a/build/package/common/root-plugin-sql-odbc.control b/build/package/common/root-plugin-sql-odbc.control deleted file mode 100644 index 055e7783467ce..0000000000000 --- a/build/package/common/root-plugin-sql-odbc.control +++ /dev/null @@ -1,14 +0,0 @@ -Package: root-plugin-sql-odbc -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Homepage: http://unixodbc.org or http://iodbc.org -Description: ODBC plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the ODBC (Open DataBase Connectivity) plug-in - for ROOT, that allows transparent access to any kind of database that - supports the ODBC protocol. - diff --git a/build/package/common/root-plugin-sql-oracle.control b/build/package/common/root-plugin-sql-oracle.control deleted file mode 100644 index 2942d6bbf960c..0000000000000 --- a/build/package/common/root-plugin-sql-oracle.control +++ /dev/null @@ -1,15 +0,0 @@ -Package: root-plugin-sql-oracle -Architecture: any -Depends: oracle-instantclient-basic, ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Description: Oracle client plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Oracle plug-in for ROOT. This plugin - provides a thin client (interface) to Oracle servers. Using this - client, one can obtain information from a Oracle database into the - ROOT environment. - - diff --git a/build/package/common/root-plugin-sql-pgsql.control b/build/package/common/root-plugin-sql-pgsql.control deleted file mode 100644 index dfbadb1e14d3a..0000000000000 --- a/build/package/common/root-plugin-sql-pgsql.control +++ /dev/null @@ -1,15 +0,0 @@ -Package: root-plugin-sql-pgsql -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Description: PostgreSQL client plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PostGreSQL plug-in for ROOT. This plugin - provides a thin client (interface) to PostGreSQL servers. Using this - client, one can obtain information from a PostGreSQL database into the - ROOT environment. - - diff --git a/build/package/common/root-plugin-sql-sqlite.control b/build/package/common/root-plugin-sql-sqlite.control deleted file mode 100644 index 61a23644547b0..0000000000000 --- a/build/package/common/root-plugin-sql-sqlite.control +++ /dev/null @@ -1,15 +0,0 @@ -Package: root-plugin-sql-sqlite -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Description: SQLite client plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the SQLite plug-in for ROOT. This plugin - provides a thin client (interface) to SQLite database files. Using this - client, one can obtain information from a SQLite database into the - ROOT environment. - - diff --git a/build/package/common/root-plugin-tree-treeplayer.control b/build/package/common/root-plugin-tree-treeplayer.control deleted file mode 100644 index 0f283c0cf57dd..0000000000000 --- a/build/package/common/root-plugin-tree-treeplayer.control +++ /dev/null @@ -1,12 +0,0 @@ -Package: root-plugin-tree-treeplayer -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Plug-in to loop over a ROOT tree - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - Plug-in to loop over a ROOT tree. - diff --git a/build/package/common/root-plugin-tree-treeviewer.control b/build/package/common/root-plugin-tree-treeviewer.control deleted file mode 100644 index b959960e757f7..0000000000000 --- a/build/package/common/root-plugin-tree-treeviewer.control +++ /dev/null @@ -1,13 +0,0 @@ -Package: root-plugin-tree-treeviewer -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI to browse an a ROOT tree - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a plug-in for browsing a ROOT tree. - in ROOT. - diff --git a/build/package/common/root-system-bin.control b/build/package/common/root-system-bin.control deleted file mode 100644 index 23f8a592cf849..0000000000000 --- a/build/package/common/root-system-bin.control +++ /dev/null @@ -1,31 +0,0 @@ -Package: root-system-bin -Architecture: any -Depends: ${shlibs:Depends}, root-plugin-graf2d-asimage, ${misc:Depends} -Recommends: root-plugin-graf3d-gl, libroot-math-minuit | root-fitter, libroot-core-dev, root-plugin-graf2d-x11 | root-system-display -Description: Numerical data analysis framework - general applications - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - With the data defined as a set of objects, specialized storage methods - can give direct access to the separate attributes of the selected - objects, without having to touch the bulk of the data. Included are - histogramming methods in 1, 2 and 3 dimensions, curve fitting, function - evaluation, minimization, graphics and visualization classes to allow the - easy creation of an analysis system that can query and process the data - interactively or in batch mode. - . - The command language, the scripting (or macro) language, and the - programming language are all C++, thanks to the built-in CINT C++ - interpreter. This interpreter removes the time consuming compile/link - cycle, allowing for fast prototyping of the macros, and providing a - good environment to learn C++. If more performance is needed, the - interactively developed macros can be compiled using a C++ compiler. - . - The system has been designed in such a way that it can query its - databases in parallel on MPP machines or on clusters of workstations - or high-end PCs. ROOT is an open system that can be dynamically - extended by linking external libraries. This makes ROOT a premier - platform on which to build data acquisition, simulation and data - analysis systems. - diff --git a/build/package/common/root-system-bin.install.in b/build/package/common/root-system-bin.install.in deleted file mode 100644 index d2197756600b5..0000000000000 --- a/build/package/common/root-system-bin.install.in +++ /dev/null @@ -1,19 +0,0 @@ -@prefix@/share/root/macros/Dialogs.C -@prefix@/bin/ssh2rpd -@prefix@/bin/root.exe -@prefix@/bin/roots.exe -@prefix@/bin/rootn.exe -@prefix@/bin/hadd -# @prefix@/bin/cint -# @prefix@/bin/makecint -@prefix@/share/man/man1/ssh2rpd.1* -@prefix@/share/man/man1/root.exe.1* -@prefix@/share/man/man1/rootn.exe.1* -@prefix@/share/man/man1/roots.exe.1* -@prefix@/share/man/man1/hadd.1* -# @prefix@/share/man/man1/cint.1* -# @prefix@/share/man/man1/makecint.1* -@prefix@/share/root/macros/html.C -@prefix@/share/applications -@prefix@/share/icons -@prefix@/share/pixmaps diff --git a/build/package/common/root-system-common.control b/build/package/common/root-system-common.control deleted file mode 100644 index e648fddb4c209..0000000000000 --- a/build/package/common/root-system-common.control +++ /dev/null @@ -1,11 +0,0 @@ -Package: root-system-common -Architecture: all -Depends: ttf-freefont | root-ttf, ttf-opensymbol | root-ttf, ${misc:Depends} -Description: Common files for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains some common infrastructure files for ROOT. - - diff --git a/build/package/common/root-system-common.install.in b/build/package/common/root-system-common.install.in deleted file mode 100644 index 30a81c9d32ee5..0000000000000 --- a/build/package/common/root-system-common.install.in +++ /dev/null @@ -1,18 +0,0 @@ -@sysconfdir@/root/gdb-backtrace.sh -#@sysconfdir@/root/gdb-backtrace-script -@sysconfdir@/root/hostcert.conf -@sysconfdir@/root/html -@sysconfdir@/root/pdg_table.txt -@sysconfdir@/root/plugins -@sysconfdir@/root/RadioNuclides.txt -@sysconfdir@/root/root.mimes -# @sysconfdir@/root/svninfo.txt -@sysconfdir@/root/system.rootauthrc -@sysconfdir@/root/system.rootrc -@sysconfdir@/root/system.rootdaemonrc -@sysconfdir@/root/valgrind-root.supp -@sysconfdir@/root/helgrind-root.supp -@prefix@/share/man/man1/system.rootdaemonrc.1* -@prefix@/share/root/icons/ -@prefix@/share/root/fonts/symbol.ttf - diff --git a/build/package/common/root-system-doc.control b/build/package/common/root-system-doc.control deleted file mode 100644 index e054846888d98..0000000000000 --- a/build/package/common/root-system-doc.control +++ /dev/null @@ -1,14 +0,0 @@ -Package: root-system-doc -Section: doc -Architecture: all -Suggests: root-system-bin -Depends: ${misc:Depends} -Description: Tutorial and test suit for the ROOT system - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the tutorial scripts and test suit for the ROOT - system, as well as the automatically generated HTML class documentation. - - diff --git a/build/package/common/root-system-doc.install.in b/build/package/common/root-system-doc.install.in deleted file mode 100644 index a66a69f0c19cd..0000000000000 --- a/build/package/common/root-system-doc.install.in +++ /dev/null @@ -1 +0,0 @@ -@pkgdocdir@ diff --git a/build/package/common/root-system-proofd.control b/build/package/common/root-system-proofd.control deleted file mode 100644 index 222e31a61ab90..0000000000000 --- a/build/package/common/root-system-proofd.control +++ /dev/null @@ -1,17 +0,0 @@ -Package: root-system-proofd -Architecture: any -Depends: root-system-common, lsb-base (>= 3.0-6), openbsd-inetd | inet-superserver, ${shlibs:Depends}, ${misc:Depends} -Recommends: root-system-bin, libroot-dev, root-file-server | root-system-rootd -Description: Parallel ROOt Facility - distributed, parallel computing - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF server. proofd is the core daemon of - the PROOF (Parallel ROOt Facility) system for distributed parallel - computing. Installing this package on a machine, makes it possible - for the machine to participate in a parallel computing farm (cluster - or via the Internet), either as a master or a slave, using a - transparent interface. - - diff --git a/build/package/common/root-system-proofd.install.in b/build/package/common/root-system-proofd.install.in deleted file mode 100644 index 9004fd7e5ad2e..0000000000000 --- a/build/package/common/root-system-proofd.install.in +++ /dev/null @@ -1,8 +0,0 @@ -@prefix@/share/root/proof/ -@prefix@/bin/proofserv -@prefix@/bin/proofserv.exe -@prefix@/bin/proofserv.bin -@prefix@/share/man/man1/proofserv.1* - - - diff --git a/build/package/common/root-system-rootd.control b/build/package/common/root-system-rootd.control deleted file mode 100644 index b489b96a83bfb..0000000000000 --- a/build/package/common/root-system-rootd.control +++ /dev/null @@ -1,16 +0,0 @@ -Package: root-system-rootd -Architecture: any -Depends: root-system-common, lsb-base (>= 3.0-6), adduser, openbsd-inetd | inet-superserver, ${shlibs:Depends}, ${misc:Depends} -Recommends: root-system-bin, libroot-dev -Provides: root-file-server -Description: ROOT remote file server - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains ROOT file server. rootd is a server for ROOT - files, serving files over the Internet. Using this daemon, you can - access files on the machine from anywhere on the Internet, using a - transparent interface. - - diff --git a/build/package/common/root-system-rootd.dscr b/build/package/common/root-system-rootd.dscr deleted file mode 100644 index d19d074d40f08..0000000000000 --- a/build/package/common/root-system-rootd.dscr +++ /dev/null @@ -1,6 +0,0 @@ -short: Remote file server for ROOT files -long: -This package installs the rootd daemon. This daemon allows -access to ROOT files resident on remote hosts from any -interactive ROOT session. The daemon also provides FTP-like -and administrative (stat, opendir, ...) functionality. diff --git a/build/package/common/root-system-xrootd.control b/build/package/common/root-system-xrootd.control deleted file mode 100644 index 941edb6059656..0000000000000 --- a/build/package/common/root-system-xrootd.control +++ /dev/null @@ -1,28 +0,0 @@ -Package: root-plugin-net-xrootd -Section: science -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-system-xrootd -Conflicts: root-system-xrootd (<< 5.19.03-1) -Homepage: http://xrootd.slac.stanford.edu -Description: Plugins for xrootd protocol - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the plug-ins for xrootd protocol. - -Package: root-system-xrootd -Architecture: any -Depends: root-system-common, lsb-base (>= 3.0-6), ${shlibs:Depends}, ${misc:Depends} -Recommends: root-plugin-net-xrootd -Provides: root-file-server -Homepage: http://xrootd.slac.stanford.edu -Description: Extented ROOT file server - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the xrootd server for ROOT, the eXtended - Request Daemon (xrd) and associated software. - diff --git a/build/package/common/root-system-xrootd.install.in b/build/package/common/root-system-xrootd.install.in deleted file mode 100644 index 2454107ef30a3..0000000000000 --- a/build/package/common/root-system-xrootd.install.in +++ /dev/null @@ -1,8 +0,0 @@ -@prefix@/bin/cmsd -#@prefix@/bin/olbd -@prefix@/bin/xrd.bin -@prefix@/bin/xrootd -@prefix@/share/man/man1/cmsd.1* -#@prefix@/share/man/man1/olbd.1* -@prefix@/share/man/man1/xrd.1* -@prefix@/share/man/man1/xrootd.1* diff --git a/build/package/common/s050000l.pe b/build/package/common/s050000l.pe deleted file mode 100644 index 71bc6fe4a55da..0000000000000 --- a/build/package/common/s050000l.pe +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/fontforge -# -# Copyright: 1994, 1995, 1996, 1997, 1998, 1999 ROOT Team -# 2000, 2001, 2002, 2003, 2004, 2005 ROOT Team -# 2006 ROOT Team -# -# This library is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of the -# License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 -# USA -# -Print("Opening s050000l.pfb"); -Open("./s050000l.pfb"); -Print("Reencoding to symbol"); -Reencode("symbol"); -Generate("s050000l.sym.ttf","ttf"); -# Move misplaced glyphs" -a = Array(9); -a[0] = 39; -a[1] = 68; -a[2] = 87; -a[3] = 109; -a[4] = 160; -a[5] = 210; -a[6] = 211; -a[7] = 212; -a[8] = 224; -s = Array(9); -s[0] = "suchthat"; -s[1] = "Delta"; -s[2] = "Omega"; -s[3] = "mu"; -s[4] = "Euro"; -s[5] = "registerserif"; -s[6] = "copyrightserif"; -s[7] = "trademarkserif"; -s[8] = "lozenge"; -i = 0; -while (i < 9) - Print("Moving ",256+i," (",s[i],") to ",a[i]); - Select(256+i); - Cut(); - Select(a[i]); - Paste(); - SetCharName(s[i]); - i++; -endloop; -Print("Scale to em"); -ScaleToEm(1638,410); -Print("Saving to s050000l.sym.ttf"); -Generate("s050000l.sym.ttf","ttf"); -Print("Please rename s050000l.sym.ttf to symbol.ttf"); - -# -# EOF -# diff --git a/build/package/common/s050000l.pfb b/build/package/common/s050000l.pfb deleted file mode 100644 index d0505e46cd551..0000000000000 Binary files a/build/package/common/s050000l.pfb and /dev/null differ diff --git a/build/package/common/ttf-root-installer.control b/build/package/common/ttf-root-installer.control deleted file mode 100644 index ccbbe01b8ff26..0000000000000 --- a/build/package/common/ttf-root-installer.control +++ /dev/null @@ -1,16 +0,0 @@ -Package: ttf-root-installer -Architecture: all -Section: contrib/fonts -Depends: ${misc:Depends}, wget (>= 1.9.1-4), xfonts-utils | xutils (>= 4.0.2), debconf (>= 1.2.0), ${misc:Depends} -Provides: root-ttf -Conflicts: ttf-root -Description: True type fonts for ROOT - installer package - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package will install the True Type Fonts (TTF) used by ROOT. - These fonts are provided by Microsoft. Note, that you may not - redistribute this font files. This package will download the fonts - from the ROOT FTP server, or alternatively use an already downloaded - tar-file. diff --git a/build/package/common/xrd.in b/build/package/common/xrd.in deleted file mode 100644 index 162485f9277b7..0000000000000 --- a/build/package/common/xrd.in +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -rootplugins=@prefix@/lib/root/@libvers@ -rootbindir=@prefix@/bin - -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$rootplugins - -exec $rootbindir/xrd.bin "$@" - -# EOF - diff --git a/build/package/common/xrdcp.in b/build/package/common/xrdcp.in deleted file mode 100644 index 62344f6f61cee..0000000000000 --- a/build/package/common/xrdcp.in +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -rootplugins=@prefix@/lib/root/@libvers@ -rootbindir=@prefix@/bin - -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$rootplugins - -exec $rootbindir/xrdcp.bin "$@" - -# EOF - diff --git a/build/package/common/xrdgsiproxy.in b/build/package/common/xrdgsiproxy.in deleted file mode 100755 index 52b6e79e28511..0000000000000 --- a/build/package/common/xrdgsiproxy.in +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -rootplugins=@prefix@/lib/root/@libvers@ -rootbindir=@prefix@/bin - -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$rootplugins - -exec $rootbindir/xrdgsiproxy.bin "$@" - -# EOF - diff --git a/build/package/common/xrdpwdadmin.in b/build/package/common/xrdpwdadmin.in deleted file mode 100755 index 345b2e2559604..0000000000000 --- a/build/package/common/xrdpwdadmin.in +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -rootplugins=@prefix@/lib/root/@libvers@ -rootbindir=@prefix@/bin - -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$rootplugins - -exec $rootbindir/xrdpwdadmin.bin "$@" - -# EOF - diff --git a/build/package/debian/README.Debian b/build/package/debian/README.Debian deleted file mode 100644 index 43c0064b918dd..0000000000000 --- a/build/package/debian/README.Debian +++ /dev/null @@ -1,546 +0,0 @@ -root for Debian ---------------- - -Abstract: -========= -This document outlines the contents, design, and considerations that -went into making the ROOT packages for Debian and Redhat. First part -is of general interest, while the second part is for people who'd like -to know the full story (needed if you want to build the packages your -self or do fixes). - -Introduction: -============= -These are the Debian GNU/Linux and Redhat packages of ROOT, the -analysis frame work written in C++. - -Meta package: - -* root-system This will install the core of ROOT, plus some - of the most useful packages. Note, this works - best on Debian as Debian has a higher level of - granularity than Red Hat when it comes to - dependencies. - -The core packages are: - -* libroot Basic ROOT libraries -* libroot-dev The header files for the ROOT libraries -* root-system-common Common files for ROOT -* root-system-bin The interactive interface and utilities -* root-system-doc Examples and tutorials - -A few `server' packages are available - -* root-system-rootd Remote fileserver -* root-system-proofd PROOF environment -* root-system-xrootd Extendend ROOT Remote File server - -A few `extension' packages - -* libroot-clarens Grid-Enabled Web Services -* libroot-clarens-dev Development files for libroot-clarens -* libroot-mlp Multi-Layer-Perceptron Neural Net (**) -* libroot-mlp-dev Development files for libroot-mlp -* libroot-minuit Fitting algorithm for ROOT (**) -* libroot-minuit-dev Development files for libroot-minuit -* libroot-python Python interface to ROOT -* libroot-python-dev Development files for libroot-python -* libroot-ruby Ruby interface to ROOT -* libroot-ruby-dev Development files for libroot-ruby - -Further more, there's a number of plugin packages. Which exactly are -built depends on your system. - -* root-plugin-alien AliEN interface (*,***) -* root-plugin-asimage AfterStep image manipulation plugin -* root-plugin-castor Interface to CASTOR managed tape robots (***) -* root-plugin-chirp Access files via the Chirp protocol (***) -* root-plugin-dcache Access to files data via a dCache server (***) -* root-plugin-fumuli Alternative fitting algorithm for ROOT (**) -* root-plugin-globus Authentication and authorisation against Globus(*,***) -* root-plugin-gl OpenGL support using Mesa (or XFree) -* root-plugin-hbook Conversion tools from HBOOK to ROOT files -* root-plugin-ldap Interface to LDAP -* root-plugin-mysql MySQL client for ROOT -* root-plugin-netx Client for XRootd server (**) -* root-plugin-oracle Oracle client for ROOT (***) -* root-plugin-peac Proof Enabled Analysis Center plugin -* root-plugin-pqsql PostGreSQL client for ROOT -* root-plugin-proof PROOF Client (**) -* root-plugin-pythia5 Wrapper for Pythia event generator (version 5) (***) -* root-plugin-pythia6 Wrapper for Pythia event generator (version 6) (***) -* root-plugin-qt ROOT GUIs using QT -* root-plugin-quadp Quadratic Programming plugin -* root-plugin-maxdb MaxDB/SapDB client for ROOT -* root-plugin-venus Wrapper for Venus event generator (***) -* root-plugin-xml XML plugin for ROOT - -(*) Note that these packages have not been tested. -(**) These packages can always be build, as they do not depend on - external packages. As such, they can be considered part of an - extended `base' system. -(***) These packages are not distributed by Debian for license, and - availability reasons. - -The packages are structured like this, to allow maximum modularity and -flexibility for the user. - -The `root-plugin-' contain proper plug-ins, and should not -be linked to by the developer. For example `root-plugin-minuit' -contain `libMinuit'. This library is automatically loaded when one -starts fitting data if the proper `TEnv' value is set in `.rootrc'. -However, `libFumili' from `root-plugin-fumili' could also be loaded if -so specified in `.rootrc'. The point here is, that the developer -should not use `TMinuit' or similar directly in their code. Instead -they should use the proper virtual interface (e.g., `TVirtualFitter'), -and leave the decision of which concrete implementation to use to the -user. - -The `libroot-' packages contain proper extensions, which -the developer can link to explicitly, or load dynamically via ROOT. -Hence, these packages comes in pairs - a run-time shared library -package, and a development package. - -The latest Debian GNU/Linux packages should be available from [1], and -a back catalogue as well as latest build should be available from the -ROOT web-site [2]. - -[1] deb http://mirror.phy.bnl.gov/debian-root unstable main contrib -[2] http://root.cern.ch - -Original Sources: -================= -The packaging scripts for both Debian GNU/Linux and Redhat - those -normally found in "/debian" or as a separate "spec" file - -are a part of the of the ROOT source tree, hence no patches has been -applied to build the packages. In fact, the ROOT team maintainer and -the maintainers of the packages has worked closely together on making -ROOT packages for Debian GNU/Linux and Redhat as easy as possible. -This cooperate work has made many improvements to both the packages, -as well as for the ROOT system itself. - -The sources for ROOT are available via anonymous CVS from - - Repository: :pserver:cvs@root.cern.ch:/user/cvs - Password: cvs - -For more availability of ROOT, including other OSs then Linux - IBM -AIX, HP Unix, Digital Unix on Alpha, FreeBSD, Windows, and many others -- please refer to [1]. - -[1] http://root.cern.ch - -Parallel Redhat and Debian GNU/Linux Packages: -============================================== -These packages was developed in parallel on both Debian GNU/Linux and -Redhat, so that a coherent outlook could be maintained over the two -Linux distributions. - -Documentation, Mailing list and Questions: -========================================== -No documentation package is made. This is because the documentation -is vast and not particularly manageable in a package. Instead, please -refer to the ROOT web-site [1]. There you'll find reference pages for -every class in ROOT [2], as well as a printable Users guide -[3]. There's a mailing list for ROOT issues at [4], and an archive is -available via the main ROOT web page [5]. - -Do not mail directly to the maintainer with questions on ROOT. -Instead mail questions to [5] - The maintainer is on that list and -will happily answer questions in that forum. - -[1] http://root.cern.ch -[2] http://root.cern.ch/root/htmldoc/ClassIndex.html -[3] http://root.cern.ch/root/UsersGuide.html -[4] mailto:roottalk@cern.ch -[5] http://root.cern.ch/root/AboutRootTalk.html - - -Pure CINT and ROOT's CINT: -========================== -To facilitate a parallel installation of a Pure CINT on a Debian -GNU/Linux system, the `root-system-bin' package exploits the -"alternatives" feature of dpkg. Since most ROOT users never use the -Pure CINT programs "cint" and "makecint" is is reasonably safe to have -a Pure CINT installation next to ROOT. A Debian GNU/Linux package of -CINT is being maintained by Richard B. Kreckel. - -The pure CINT packages have not been in Debian for some time now. -However, the alternatives are still used, as the pure CINT packages -might get resurrected at some point in the future. - -I (Christian Holm) know of no such system on Redhat so no attempt to -provide a similar mechanism has been tried. If anyone should know -about such a system, please let us know. - -Building the Package: -===================== -The basic process of building the RPM and Debian packages is given in -README/INSTALL; here we'll go into the details. - -Basic configuration: --------------------- -The source tree is configured with - - ./configure \ - --prefix= \ - --etcdir= \ - --enable-table \ - --enable-shared \ - --enable-soversion \ - --disable-afs \ - --disable-srp \ - --with-sys-iconpath=/usr/share/pixmaps \ - --with-ttf-fontdir=/usr/share/fonts/truetype - -* 3rd party libraries: - The packages will use third-party shared libraries when ever - possible. This is noted in the below items. - -* TrueType Font Support: - Note, that if you want to have system wide TrueType Font support, - you can install the fonts into the directory - - @prefix@/share/fonts/truetype - - It's possible for individual users to override this path, using the - lines - - # Path where to look for TrueType fonts - Unix.*.Root.UseTTFonts: true - Unix.*.Root.TTFontPath: - - in thier "~/.rootrc", where is the path to the TrueType - Fonts. - - The currently supported TrueType Fonts in ROOT are: - - # Descriptive name file - ----------------------------------------------- - 1 : times-medium-i-normal timesi.ttf - 2 : times-bold-r-normal timesbd.ttf - 3 : times-bold-i-normal timesi.ttf - 4 : helvetica-medium-r-normal arial.ttf - 5 : helvetica-medium-o-normal ariali.ttf - 6 : helvetica-bold-r-normal arialbd.ttf - 7 : helvetica-bold-o-normal arialbi.ttf - 8 : courier-medium-r-normal cour.ttf - 9 : courier-medium-o-normal couri.ttf - 10 : courier-bold-r-normal courbd.ttf - 11 : courier-bold-o-normal courbi.ttf - 12 : symbol-medium-r-normal symbol.ttf - 13 : times-medium-r-normal times.ttf - 14 : wingding.ttf - - Please note, that these fonts are copyright of Microsoft, under - a restrictive license. In a nut shell, this license prohibits - the maintainer from including them in the packages, since it will - violate other license issues, and make ROOT less close to being - OpenSource. - - The ROOT sources has been patched to allow using FreeFont files - instead of the MS Core fonts. The package `ttf-root-installer' (in - contrib) downloads the MS Core fonts from the ROOT web-site in case - these are wanted. - -* Version number in soname: - Debian GNU/Linux (indirectly) mandates that any shared library shall - have the major version number the soname, so that the packaging - system ("dpkg"/"apt") may resolve conflicts, dependencies, etc. - Hence, the ROOT libraries are build with the major version number in - the`soname. Redhat does not have such a strict policy, but it is - generally a good idea to set version numbers in sonames (the shared - library's internal identifier) so that the runtime environment may - resolve conflicts etc. cleanly. - - -3rd Party libraries: -==================== -Below is listed the 3rd party interfaces possible which are not -normally build on a Debian or Red Hat system. Most have rather -restrictive licenses which prohibits redistribution of modified -sources, thereby rendering them non-free (in the meaning of -`free-speech'). - -SHIFT managed tape I/O: ------------------------ -To build the library providing CERN RFIO (remote I/O) support you need -to get the "libshift.a" library from CERN. You can get pre-build -libraries from - - http://root.cern.ch/root/shift - -or you can download the full source from - - http://castor.web.cern.ch/castor/ - -The full sources may contain the `debian' directory. - -Chirp File access: ------------------- -This allows transparent access to files via Condor file access -protocol chirp. It requires libraries from - - http://www.cs.wisc.edu/condor/chirp - -There are no known Debian packages of this software. - -DCache file access: -------------------- -Provides transparent access to files stored in a DCache file archive. -This need client libraries from - - $ cvs -d :pserver:cvs@cvs.dcache.org:/cvs login - Logging in to :pserver:cvs@cvs.dcache.org:2401/cvs - CVS password: (password is 'cvs') - $ cvs -d :pserver:cvs@cvs.dcache.org:/cvs co . - -Note, there are no known packages of this software. - -Oracle database access: ------------------------ -Provides transparent access to Oracle data bases. This need the -client interface library from - - http://www.oracle.com/ - -There are RPMs of this client (you need oracle-instantclient-devel and -oracle-instantclient-core) and these can be used on Debian via -`alien'. - -Pythia Event Generators: ------------------------- -To build the event generator interfaces for Pythia and Pythia6, you -first have to get the pythia libraries. You can get pre-build -libraries from: - - ftp://root.cern.ch/root/pythia/ - -or you can download the source from the same directory. The original -sources can be found via Lunds FTP server. - -More information is available from: - - http://www.thep.lu.se/~torbjorn/Pythia.html - -Note, that one Debian you can use Kevin McCarty's -`montecarlo-installer-data' package to make the packages `pythia6', -`pythia6-dev', `pythia5', and `pythia5-dev'. - -Venus Event Generators: ------------------------ -To build the event generator interface for Venus, you need to have the -Venus libraries. The sources can be downloaded from - - ftp://root.cern.ch/root/venus/ - -There's no official or semi official package of this code, but the -sources (from the above web-site) can easily be turned into a binary -package. However, this redistribution is painfully in conflict with -the license given by the upstream author Klaus Werner: - - Copyright K. Werner, Nantes 1995. - - Copyright reserved in all countries of the world. The program may - not be reproduced by any method without prior consent of the author - (K. Werner). - -Secure Remote Password (SRP) Authentication: --------------------------------------------- -To build the strong authentication module used by rootd and proofd, -you first have to install the SRP (Secure Remote Password) -system. See: - - http://srp.stanford.edu/ - -Please note, that the library "libsrp-dev" as distributed by Standford -is not enough to build the two utility program in the `srputil' -sub-directory. There are no known packages of this code. - -Globus Authentication: ----------------------- -To build the Globus authentication module used by rootd and proofd, -you first have to make sure that the Globus Tool Kit is installed -on the machine. See: - - http://www.globus.org/ - -for details and downloads. - -Globus Tool Kit is available only for a subset of Unix platforms. The -variable GLOBUS_LOCATION should be defined as the directory containing -Globus lib, include and bin. For compilation purposes you can pass -this directory to the configure script with the option ---with-globus-dir=. An experimental path is available for -versions 2.2.3 and 2.2.4 of the Globus Tool Kit to fix a small bug -preventing full fonctionallity of the root implementation; this is -activated by setting --with-globus-patch-dir= where - is the globus tool kit source directory. - -There exists experimental packages of this software. - - -Adding a new package: -===================== -From time to time, ROOT accepts new `modules' or plugins, in the ROOT -source tree. Here's a description of how to make a new package that -contains that new module. Let's assume that the new plugin is called -`foo', and that the source code is in `foo/{src,inc}'. - -1: Open `configure' and add the line - - test "x$enable_foo" = "xyes" && pkglist="$pkglist root-plugin-foo" - - Near where it says `Debian or Red Hat Package list' - -2: Create the file `root-plugin-foo.control' in - `build/package/common/'. This file is really a Debian GNU/Linux - control file snippet (the RPM stuff get information from there), so - anything that's valid in a Debian control file is valid there too. - The file should look something like - - Package: root-plugin-foo - Architecture: any - Depends: ${shlibs:Depends}, ${misc:Depends} - Enhances: libroot - Description: Foo plugin for ROOT - This package contains the Foo plug-in for ROOT. This package - provide a plug-in to ... in ROOT - . - ROOT web-site: http://root.cern.ch - Foo web-site: http://www.foo.org - - Please note, that the file _must_ end in 2 (two) newlines. Also, - blank lines (except for the final two lines) are not allowed. In - stead put a `.' in 2nd column, as shown above. - -3: If the plugin requires some development files (libraries and - headers) to be available on the system, find out which Debian and - RedHat packages these are in. Suppose you need the library - `libfoo' and the header `foo.h', then try - - dpkg -S libfoo.so foo.h # Debian - rpm -qf /usr/lib/libfoo.so /usr/include/foo.h # RedHat - - Then edit the file `build/package/lib/makebuilddepend.sh' - accordingly. Suppose libfoo.so and foo.h is in the Debian package - libfoo-dev and RedHat package foo-devel, add the two lines - - *foo) echo -n ", foo-devel" ;; - - and - - *foo) echo -n ", libfoo-dev" ;; - - at the appropriate places in that shell script. - -4: That should be it for most packages. However, if your plugin - needs some extra files that is not listed in the variables - `ALLLIBS', `ALLHDRS', or `ALLEXECS' in the `foo/Module.mk' file, - then you need to add the file - `build/package/common/root-plugin-foo.install.in'. Suppose the - package needs the files `/etc/root/system.foorc' and - `/usr/share/root/foo/Init.C', then the file should contain lines - like - - @sysconfdir@/root/system.foorc - @prefix@/share/root/foo/Init.C - - Also, if your plugin needs special stuff to be done before and/or - after installation and/or removal, you need to add the appropriate - shell script snippets in one or more of the following pairs of - files in `build/package/' - - debian/root-plugin-foo.preinst.in and rpm/root-plugin-foo.pre - debian/root-plugin-foo.postinst.in and rpm/root-plugin-foo.post - debian/root-plugin-foo.prerm.in and rpm/root-plugin-foo.preun - debian/root-plugin-foo.postrm.in and rpm/root-plugin-foo.postun - - Please look in the existing files for more information. - - -Package Bugs, etc.: -=================== -If you didn't get the packages from the official repositories, please -do not use the regular Debian bug tracking system. Instead, please -send bug reports to the Debian GNU/Linux package maintainer - and possibly also the ROOT mailing list -. - -Experimental Packages: -====================== -Packages downloaded from the 'experimental' distribution are snapshots -of the development versions of ROOT. As such, there's no guaranty -that the Application Binary Interface (ABI) or Application Programming -Interface (API) is stable or backward compatible. Therefor, use -these packages at your own risk. You may have to recompile code that -uses ROOT even if the major and minor version numbers have not -changed. - -Development snapshots are numbered like .<2 * M + 1>. (that is, -have odd minor version) while production releases are numbered like -.<2 * M>.00. - -Thanks: -======= - -* Many MANY thanks to the ROOT team - Rene Brun - and Fons Rademakers - for a great piece - of software. Especially thanks to Fons Rademakers for putting up - with a lot of emails from me (Christian Holm) during the initial - development. - -* Many thanks to Masaharu Goto for CINT, inspiring - correspondence, advice, and patience (loads of emails from me). - -* Also many thanks to all the contributors of ROOT, for making it - great. - -* Anders Waananen for putting the initial Red Hat - packages together, many suggestions and inspirrational talks. - -* Thanks to Richard B. Kreckel the CINT Debian GNU/Linux package - maintainer, for inspirring correspondence, advice, and great - cooperation. - -* Boris (?) for porting to mips - -* James Ferrando for the i386 - `sarge' (stable) builds. - -* Dirk Van Hertem for porting to hppa - -* John Kehayias for the amd64 `sid' (unstable) - builds. - -* Frederic Lehobey for linux-sparc64, - linux-powerpc, and gnu-kfreebsd-i386 testing and builds. - -* Frank Lichtenheld for help on porting to sparc. - -* Kevin McCarty for his many suggestions, - testing, and sponsorship, as well as some amd64 builds. - -* Daniele Nicolodi for powerpc testing and builds - on Ubuntu. - -* Charles Plessy for powerpc64 - testing and builds. - -* Thiemo Seufer for help on MIPS - his huge - expertise on the architecture was quite instructive. - -* Brett Viren for hosting the repository as well as doing - alpha and beta testing of the Debian GNU/Linux packages. - -* Ricardo Yanez for suggestions, testing and - stable i386 builds. - - - -- Christian Holm Christensen , Mon, 21 Feb 2005 16:28:37 +0100 - -Local Variables: - mode: text -End: - diff --git a/build/package/debian/application-x-root.png b/build/package/debian/application-x-root.png deleted file mode 100644 index 64a62f9c0b492..0000000000000 Binary files a/build/package/debian/application-x-root.png and /dev/null differ diff --git a/build/package/debian/changelog b/build/package/debian/changelog deleted file mode 100644 index b77524d81d814..0000000000000 --- a/build/package/debian/changelog +++ /dev/null @@ -1,821 +0,0 @@ -root-system (5.28.00-2) unstable; urgency=low - - * New upstream version - * Upgraded the patches (5.28.00b) - - -- Antonio Salvucci Thu, 17 Mar 2011 02:02:50 +0100 - -root-system (5.28.00-1) unstable; urgency=low - - * New upstream version (5.28.00a) - - -- Antonio Salvucci Thu, 17 Mar 2011 02:00:14 +0100 - -root-system (5.24.00-1) unstable; urgency=low - - * New upstream version - * Fix "no hashsum checks of downloaded content, thus allowing - downloading and installation of malicious content" Implemented check - against static sha256sums distributed with package (Closes: #545240) - * Fix "generates incorrect package with python-support from - experimental" Packages now make sym-links in /usr/lib, so - pythons' loader should be able to find it. Hence, the sym-link is - gone. (Closes: #517320) - * Fix "bashism in debian/rules" replaced echo -e with printf - (Closes: #535421) - * Fix "libroot5.18 has circular Depends on root-plugin-proof" Fixed by - new library structure (Closes: #524991) - * Fix "root-system-rootd fails to install" Do not modify rootd user - in pre-installation. (Closes: #498398) - * Fix "should this package be orphaned?" New upload w/bug fixes - (Closes: #543737) - * Fix "root-system new version available" New version (Closes: #515568) - * Fix "[INTL:ja] please add Japanese po-debconf template translation - (ja.po)" Added translation (Closes: #546187) - * Fix "Package is missing most of its files" Fixed by rebuilt - (Closes: #515091) - * Fixed by rebuilt - * Fix "h2root crashes on amd64" Fixed by upstream's introduction of - libminicern (Closes: #518926) - * Fix "No symlink into /usr/lib/root" Fixed by new directory structure - - libraries in /usr/lib - and libQt is a plug-in and should not be linked - to directly by developer. (Closes: #525142) - * Fix "include Math/ProbFuncMathCore.h fails with CINT" Removed relative - path components, since CINT should know where to look.(Closes: #534202) - * root-system-rootd does it's set-up of the user and group in postinst, - thereby removing the need to pre-depend on adduser, etc. - - -- Christian Holm Christensen Fri, 18 Sep 2009 13:51:15 -0400 - -root-system (5.23.05-1) unstable; urgency=low - - * New upstream version - * Fix "root-system - FTBFS: error: unrecognized command line option "- - m32"" Removed the -m32 flag for s390 builds (Closes: #517575) - * Fix "root-system_5.18.00-2.3+b1(mips/unstable): FTFBS on mips. - Undefined symbol." Use krb5_c_valid_cksumtype instead of private - valid_cksumtype (Closes: #529998) - * Fix "FTBFS: krb5auth/src/Krb5Auth.cxx:424: error: 'valid_cksumtype' - was not declared in this scope" See above. (Closes: #533964) - * Fix "root-system - FTBFS: Attempts at guessing your architecture - failed." Put stuff into relevant files - still need to see that it - actuall works on s390 (Closes: #487935) - * Fix "root-system_5.18.00-2(sparc/unstable): FTBFS, - `debian/tmp/usr/bin/olbd': No such file or directory" Re-enabled built of - XRootD stuff on sparc. Hopefully it will work. (Closes: #493345) - * Fix "[debconf_rewrite] Debconf templates and debian/control review" - Adopted all recommendations - thanks. (Closes: #514827) - * Fix "root-system new version available" Build newer version - (Closes: #515568) - * Fix "returns errors when using graphics" Fixed by proper rebuild - (Closes: #515632) - * Added new package libroot-net-bonjour that contains zeroconf service - declaration and discovery classes. - * Build-depend on libglew instead of using built-in code. - * Moved TFileMerger back to proofplayer and made proofplayer a callable - extension rather than a plug-in. - - -- Christian Holm Christensen Thu, 25 Jun 2009 15:55:08 +0200 - -root-system (5.23.01-1) unstable; urgency=low - - * New upstream version - * Moved TFileMerger from proof/proofplayer to tree/treeplayer. - * Moved TXMLEngine from io/xml to io/io - - -- Christian Holm Christensen Thu, 18 Dec 2008 13:12:04 +0100 - -root-system (5.21.07-4) unstable; urgency=low - - * Made virtual base class TVirtualGeoOverlap and use that where - appropriate. This makes the libGeomPainter a true plug-in. - - -- Christian Holm Christensen Wed, 17 Dec 2008 11:40:54 +0100 - -root-system (5.21.07-3) unstable; urgency=low - - * New upstream - - -- Christian Holm Christensen Mon, 15 Dec 2008 12:51:08 +0100 - -root-system (5.21.07-2) unstable; urgency=low - - * Discovery of s390x implemented - should check if this works also in - terms of code (Closes: #487935) - * Do not modify rootd user after creation. Perhaps this fixes - #498398 - * FTBFS with GCC 4.4: wrong #elif - fixed upstream (Closes: #505015) - * can FTBFS due to incomplete calls to open - fixed upstream - (Closes: #502873) - * incomplete ftgl-dev => libftgl-dev transition fixed - (Closes: #498677) - - -- Christian Holm Christensen Wed, 03 Dec 2008 10:45:16 +0100 - -root-system (5.21.07-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Fri, 28 Nov 2008 19:28:17 +0100 - -root-system (5.21.05-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Tue, 07 Oct 2008 09:26:04 +0200 - -root-system (5.19.05-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Wed, 14 May 2008 23:16:12 +0200 - -root-system (5.19.03-2) unstable; urgency=low - - * Moved root-plugin-graf3d-gl to libroot-graf3d-gl and - libroot-graf3d-dev, since the code needs to be callable for custom - EVE implementations of quads, etc. - * Fixed problem with startup URL - points to - http://localhost/doc/root/html - implies recommendation of a - web-server. Aparently, the TGHtml gui element does not really know - how to resolve relative links from a "file:///" URL. - * Added "--etcdir" option to root-config script - should be useful - for VMC and the like implementations. - - -- Christian Holm Christensen Thu, 08 May 2008 08:09:44 +0200 - -root-system (5.19.03-1) unstable; urgency=low - - * New upstream version (Closes: #478956) - * Added prober build dependencies on fortran compiler on all - platforms (Closes: #429186) - * With the kind help of Thiemo Seufer , - Dirk Van Hertem , and Boris - we managed to get ROOT to compile on mips/mipsel. This is a new ROOT - platform too. (Closes: #434855, #425257) - * Fixed GSL version recognision. (Closes: #450507, #450508) - * ROOT now builds against Qt 4. (Closes: #476324) - * Fixed download URL of TTF files (Closes: #451510) - * Split package root-system-xrootd into 2 packages: root-system-xrootd and - root-plugin-net-xrootd. - * Follow new source directory structure in package structure. Several new - packages that split older libroot package. - * libroot-proof replaces root-plugin-proof - - -- Christian Holm Christensen Fri, 02 May 2008 08:21:48 +0200 - -root-system (5.18.00-2.2) UNRELEASED; urgency=low - - * Debconf templates and debian/control reviewed by the debian-l10n- - english team as part of the Smith review project. Closes: #514827 - * [Debconf translation updates] - - Galician. Closes: #515481 - - Vietnamese. Closes: #515596 - - Swedish. Closes: #515939 - - Basque. Closes: #516013 - - Italian. Closes: #516445 - - Spanish. Closes: #517177 - - Portuguese. Closes: #517185 - - German. Closes: #517381 - - Russian. Closes: #517492 - - Czech. Closes: #517536 - - Finnish. Closes: #518187 - - French. Closes: #517806 - - -- Christian Perrier Wed, 11 Feb 2009 10:18:46 +0100 - -root-system (5.18.00-2.1) unstable; urgency=low - - * Non-maintainer upload to fix pending l10n issues. - * Remove extra space in debconf templates. Closes: #488136 - * Debconf translations: - - German. Closes: #488135 - - Portuguese. Closes: #488582 - - Russian. Closes: #489490 - - Danish translation file renamed to da.po - - Finnish. Closes: #491740 - - Czech. Closes: #492494 - - Basque. Closes: #492528 - - Galician. Closes: #492612 - - Brazilian Portuguese. Closes: #492720 - - Italian. Closes: #493960 - - -- Christian Perrier Fri, 18 Jul 2008 09:58:03 +0200 - -root-system (5.17.07-1) unstable; urgency=low - - * New upstream version - * Fixed problem with libroot-python-dev being uninstallable on - ubuntu. - - -- Christian Holm Christensen Sun, 09 Dec 2007 14:17:30 +0100 - -root-system (5.17.05-6) unstable; urgency=low - - * Fix configure to allow GSL > 1.9 (Closes: #450507) - * Builds on hppa, mips, mipsel (Closes: #434855, 425257) - * All linux platforms will use gfortran by default (Closes: #429186) - * Use proper GCC 4 I/O bits fixed upstream (Closes: #441333) - * ttf-root-installer: Suggest proper URL for font downloading - (Closes: #451510) - * Add missing libRooFitCore to libroot-roofit package. - - -- Christian Holm Christensen Fri, 23 Nov 2007 17:15:52 +0100 - -root-system (5.17.05-5) unstable; urgency=low - - * Fixes to Qt discovery and code in qtgsi. - * Better support for MIPS (thanks to Thiemo Seufer - of Debian) - - -- Christian Holm Christensen Wed, 07 Nov 2007 09:40:11 +0100 - -root-system (5.17.05-4) unstable; urgency=low - - * Upstream fix to TGX11::DrawPolyMarker. - - -- Christian Holm Christensen Tue, 06 Nov 2007 14:17:06 +0000 - -root-system (5.17.05-3) unstable; urgency=low - - * Do not try to make libFTGL nor put it in the libRGL.rootmap file, - since we use the system libftgl_pic.a to link in the functionality. - - -- Christian Holm Christensen Thu, 01 Nov 2007 23:05:53 +0000 - -root-system (5.17.05-2) unstable; urgency=low - - * Forgot top copy over the changes in makelist script, so that - standard library container dictionaries was missing. - - -- Christian Holm Christensen Wed, 31 Oct 2007 00:21:41 +0000 - -root-system (5.17.05-1) unstable; urgency=low - - * New development release. - * Add proper fortran dependencies and discovery code (Closes: #429186). - * Add archicture discovery for mips (Closes: #434855). - * Add archicture discovery for hppa (Closes: #425257). - - -- Christian Holm Christensen Tue, 23 Oct 2007 15:06:37 +0200 - -root-system (5.16.00-2) unstable; urgency=low - - * Fix missing lib*Dict.so for precompiled dictionaries of standard - library containers, like vector, map, etc. - - -- Christian Holm Christensen Tue, 23 Oct 2007 12:28:42 +0200 - -root-system (5.16.00-1) unstable; urgency=low - - * New upstream version. This is a production version, so it's - targeted at unstable. - * Fix some stuff on dependencies and the like. - * Updated README.Debian for new package names. - * Added gfortran switch for amd64 et al (Closes: #429186). - - -- Christian Holm Christensen Thu, 26 Jul 2007 23:34:19 +0200 - -root-system (5.15.07-4) experimental; urgency=low - - * Attempt to fix broken Python dependencies on Ubuntu. - - -- Christian Holm Christensen Mon, 14 May 2007 17:17:50 +0200 - -root-system (5.15.07-3) experimental; urgency=low - - * [Kevin] Corrected some english in the control file - * [Kevin] Removed root-system dependency on libroot. - * [Kevin] Removed postinst stubs for root-system-{rootd,proofd} - * [Kevin] Removed various directories from root-system. - * [Kevin] Fixed script name in /etc/init.d/root-system-{rootd,proofd}. - Perhaps it's time to look into 'upstart' scripts? - * Fixed package names in README.Debian. - - -- Christian Holm Christensen Sat, 12 May 2007 10:43:24 +0200 - -root-system (5.15.07-2) experimental; urgency=low - - * Previous source package broken due to tar-balls not unpacked. - * Fixes for new lib*.rootmap instead of global system.rootmap. - * Fixes for new ld.so.conf.d/ scheme of configuring ld.so's search path. - * Split off unuran into it's own package libroot-unuran, since it is - GPL'ed. - - -- Christian Holm Christensen Fri, 11 May 2007 02:04:02 +0200 - -root-system (5.15.07-1) experimental; urgency=low - - * New version. - * New source package name to please FTP-masters. - - -- Christian Holm Christensen Tue, 01 May 2007 22:18:01 +0200 - -root (5.13.05-7) experimental; urgency=low - - * New release. take out /usr/lib/root/ from - /etc/root/system.rootrc as it may cause problems. Should have no - consequence to the users. - - -- Christian Holm Christensen Thu, 2 Nov 2006 10:19:18 +0100 - -root (5.13.05-6) experimental; urgency=low - - * Fix to Qt plug-in to allow fixed directory builds. - - -- Christian Holm Christensen Mon, 30 Oct 2006 12:19:24 +0100 - -root (5.13.05-5) experimental; urgency=low - - * Added man page for xrd. - * [Kevin] Fixed some broken dependencies in the [X]Proofd packages. I moved - the libXrdProofd library into the root-plugin-xproof package as it seems - to be used by the client only. - * [Kevin] Fixed up some man pages. - * [Kevin] Fixed some spelling errors in descriptions. - - -- Christian Holm Christensen Sat, 28 Oct 2006 12:16:50 +0200 - -root (5.13.05-4) experimental; urgency=low - - * [Kevin] Fixed up the README.Debian file for an imminent upload to - experimental. - * [Kevin] Removed some autotools generated files from the libAfterImage - directory in the source package. - * [Kevin] Corrected a typo in the debian/rules clean target. - - -- Christian Holm Christensen Fri, 27 Oct 2006 10:15:25 +0200 - -root (5.13.05-3) experimental; urgency=low - - * [Kevin] Use system libungif if possible. - * [Kevin] Removed some files left after clean in libAfterImage. - * [Kevin] Fixed up the initd scripts with Required-{start,stop} - - -- Christian Holm Christensen Thu, 26 Oct 2006 11:17:44 +0200 - -root (5.13.05-2) experimental; urgency=low - - * [Kevin] Fix missing install of libSpectrum and libFitPanel. - * [Kevin] Fix duplicate build-depends - * [Kevin] Fix missing install of PyCintex.py - * [Kevin] Fix unpacking of tar-balls for asimage and xrootd. - * [Kevin] Fix init missing info. - - -- Christian Holm Christensen Tue, 24 Oct 2006 12:43:14 +0200 - -root (5.13.05-1) experimental; urgency=low - - * New upstream development version. - * [Kevin] Remove cruft left behind after removing ttf-root-installer - * [Kevin] Install RadioNuclides.txt - * [Kevin] Fix build dependency on python-support. - - -- Christian Holm Christensen Mon, 23 Oct 2006 12:13:11 +0200 - -root (5.13.03-1) experimental; urgency=low - - * New upstream version - - -- Christian Holm Christensen Thu, 31 Aug 2006 00:45:21 +0200 - -root (5.13.02-1) experimental; urgency=low - - * New upstream version - * [Kevin] First attempt at complying with the Python policy. - * Python seems ok. We install for one version only - the one we were - compiled against. - * Made init.d scripts use LSB functions (except start-stop-daemon is still - used, since the normal one isn't OK). daemons depend on lsb-base. - - -- Christian Holm Christensen Thu, 31 Aug 2006 00:33:04 +0200 - -root (5.13.01-4) experimental; urgency=low - - * copyrights fixed by Fons. - * Try to fix TBrowser option. - - -- Christian Holm Christensen Thu, 24 Aug 2006 19:44:28 +0200 - -root (5.13.01-3) experimental; urgency=low - - * Fixed reference to CINT copyright statement and license. - * Fixed some problems in the xrootd build. - * Fixed a bug in some reflex code. - * Added 32x32 xpm icon. - * Make sure python scripts do not contain a she-bang. - * RSA and ALICE license issues have been solved, but Fons hasn't - uploaded the new files yet. The Krb5 export restriction is still - unresolved. The old Zip license issue should have been solved, - but the change to the license statement has been put in CVS yet. - Hence, the copyright file contains the old license and coppyright - statements. - - -- Christian Holm Christensen Wed, 23 Aug 2006 16:45:47 +0200 - -root (5.13.01-2) experimental; urgency=low - - * Added the package `libroot-tmva', to avoid bad dependencies. - * Fixed problem with PostGreSQL plugin missing - * Permanently fixed man page problems in RPMs (added glob star to all - man pages in the file lists). - * Some other minor fixes. - * Better desktop integration for both RPMs and DEBs. - * Added `-fail-on-missing' to make the building fail if a dependency - isn't found. - * Added third-party copyrights and licenses to the copyright file. - - -- Christian Holm Christensen Mon, 21 Aug 2006 17:00:57 +0200 - -root (5.13.01-1) experimental; urgency=low - - * New upstream version - * Added TMVA to the libroot package. - * Also put GDML files into the libroot-python package. - * Upstream should have fixed a number of copyright statements. - * It seems that the RSA problem persists - sigh! - - -- Christian Holm Christensen Mon, 31 Jul 2006 15:42:12 +0200 - -root (5.11.03-6) experimental; urgency=low - - * Fixes to allow compilation with prefix != /usr for RPMs - - -- Christian Holm Christensen Thu, 11 May 2006 09:02:43 +0200 - -root (5.11.03-5) experimental; urgency=low - - * Fixed to RPM building. Make sure SYSV init scripts is installed. - * Make sure we use the same configure arguments when we make the spec file, - as are used by the spec file. - * Add this changelog to the spec file. - * Build-depend on GSL. - * Build more packages by default. - * Fixes to RPM SYSV init scripts - * Fixed to ttf-root-installer RPM post install and pre remove scripts. - - -- Christian Holm Christensen Mon, 8 May 2006 16:48:47 +0200 - -root (5.11.03-4) experimental; urgency=low - - * Fixes to RPM creation. - - -- Christian Holm Christensen Sun, 7 May 2006 14:18:37 +0200 - -root (5.11.03-3) experimental; urgency=low - - * Added libraries libReflex and libCintex to libroot, and the - corresponding headers and development libraries to libroot-dev. - The Python scripts are added to libroot-dev. This means, that - ROOT now always build-depends and depends on Python. - * Added gccxml as a Suggests to libroot-dev for `rootcint -gccxml'. - * The library libCintex is temporary. - * Added krb5-user | heimdal-clients as build-dependency for - root-plugin-krb5. The configure script need to know where kinit is. - The same packages are also added as run-time dependency. - * Fixed root-rootd and root-xrootd and root-proofd to not bark when - upgrading and the servers are not running. Thanks to Kevin. - * Fixed some minor mistakes in `ttf-root-installer.copyright'. Again, - Thanks to Kevin. - - -- Christian Holm Christensen Tue, 25 Apr 2006 02:19:39 +0200 - -root (5.11.03-2) experimental; urgency=low - - * Minor fixes. Typos in the font generation script, lingering temp file, - remove build code, lingering source directory, better copyright file, - and so on. - * Fixes to ODBC interface to use SQL{U}LEN consistently where specified - by the ODBC prototypes. This should remove any problems with - i386/ia64/amd64/windows. - - -- Christian Holm Christensen Sat, 22 Apr 2006 03:15:21 +0200 - -root (5.11.03-1) experimental; urgency=low - - * fixes to Proof library loading. Missing `#include "config.h"' added. - * Fix to ODBC plugin. - * Added print-out to s050000l.pe. - * Fixed symbol.ttf font in TImageDump. - * Fixed FSF address in root-common.copyright - - -- Christian Holm Christensen Thu, 20 Apr 2006 22:17:08 +0200 - -root (5.11.02-1) experimental; urgency=low - - * New upstream version. - * New scheme to make package file lists. - * Using new GPL'ed `symbol.tff' - * Fix it so that the font installer package doesn't overwrite and delete - the already installed `symbol.ttf'. - * Fixed free font table in TTF.cxx to include the GPL'ed symbol.ttf. - - -- Christian Holm Christensen Thu, 20 Apr 2006 02:20:08 +0200 - -root (5.11.01-9) unstable; urgency=low - - * Added plugin package root-plugin-odbc - ODBC database connectivty. - * [Kevin] Fixed spelling errors in description of libroot-mathmore - * [Kevin] Fixed call to dh_makeshlibs - * [Kevin] Fixed maxdb build on amd64 - * [Kevin] Fixed some dependencies of root-plugin-peac and root-proofd - * [Kevin] Fixed some code problems in SapDB code (again!) - * Leave in `symbol.ttf' in the root-common package, because it will soon - be replaced by a GPL'ed one. - * Added a specific copyright file for root-common due to the new - symbol.ttf font. - - -- Christian Holm Christensen Wed, 19 Apr 2006 02:25:10 +0200 - -root (5.11.01-8) unstable; urgency=low - - * Various fixes from Kevin - * Added overrides for various extension packages - - -- Christian Holm Christensen Sat, 15 Apr 2006 12:25:12 +0200 - -root (5.11.01-7) unstable; urgency=low - - * Fixed a problem with transition of libroot-fftw to root-plugin-fftw3 - - -- Christian Holm Christensen Thu, 13 Apr 2006 15:26:10 +0200 - -root (5.11.01-6) unstable; urgency=low - - * Package libroot-fftw made a plugin by Fons. Now it's called - root-plugin-fftw. - * Small fixes from Kevin. - * Default ZipMode is now 1 (checked in debian/rules). - * Implemented a configure switch to use system Zlib. - - -- Christian Holm Christensen Wed, 12 Apr 2006 15:39:11 +0200 - -root (5.11.01-5) unstable; urgency=low - - * Added new package libroot-fftw, and libroot-fftw-dev. Extension - packages with libraries to interface FFTw. - - -- Christian Holm Christensen Tue, 11 Apr 2006 18:01:26 +0200 - -root (5.11.01-4) unstable; urgency=low - - * Added packages libroot-mathmore5.11 and libroot-mathmore-dev. - * Also build libMathCore. This is put in libroot5.11 and libroot-dev. - - -- Christian Holm Christensen Sun, 2 Apr 2006 15:15:16 +0200 - -root (5.11.01-3) unstable; urgency=low - - * Fixed installation of PROOF configuration examples to new location. - - -- Christian Holm Christensen Fri, 31 Mar 2006 12:12:56 +0200 - -root (5.11.01-2) unstable; urgency=low - - * Some fixes upstream - - -- Christian Holm Christensen Wed, 22 Mar 2006 15:11:49 +0100 - -root (5.11.01-1) unstable; urgency=low - - * New upstream version. No changes to the debian part. - - -- Christian Holm Christensen Tue, 21 Mar 2006 01:59:33 +0100 - -root (5.10.00-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Thu, 2 Mar 2006 10:09:35 +0100 - -root (5.09.01-10) unstable; urgency=low - - * Removed dangling code directory in `minuit2/src' - * Set `Root.Zlib=1' in `/etc/root/system.rootrc' per default. - * Fixed some minor bugs in wrapper scripts and SYSV init scripts. - - -- Christian Holm Christensen Fri, 24 Feb 2006 11:47:18 +0100 - -root (5.09.01-9) unstable; urgency=low - - * Initial release. (Closes: #325306: RFP: root -- An object oriented - data analysis framework - Debian Bug report logs) - - -- Christian Holm Christensen Thu, 23 Feb 2006 15:25:22 +0100 - -root (5.09.01-8) unstable; urgency=low - - * Added some lintian overrides. - * Moved some shared configuration files to root-common. - * Fixed problems in init scripts. - * Fixed problem with wrappers using `root-config'. - * Removed some unused configuation scripts. - * Install xinetd files as examples. - * Removed /usr/share/root/proof/etc/*.sample and install them as - examples instead. - * Made `Replaces' and `Conflicts' dependencies on older packages - be version specific to static version numbers. We don't want - libroot-roofit to conflict with root-plugin-rootfit for all time. - - -- Christian Holm Christensen Wed, 15 Feb 2006 23:11:28 +0100 - -root (5.09.01-7) unstable; urgency=low - - * [Kevin] Fixed a problem with libXrdProof.so symlinks in root-xrootd. - * [Kevin] Made a wrapper script that calls proofserv with LD_LIBRARY_PATH - set to the plugin directory. This should be fixed upstream. - * [Kevin] Made wrapper scripts that calls xrdpwdadmin and xrdgsiproxy with - LD_LIBRARY_PATH set to plugin-script. - * [Kevin] Fixed problem in man page of xrdcp. - * Corrected kfreebsd-gnu to kfreebsd-i386. - * [Kevin] Fixed problem in proofserv man page. - - -- Christian Holm Christensen Wed, 15 Feb 2006 04:33:07 +0100 - -root (5.09.01-6) unstable; urgency=low - - * Fixed a problem in the rules file with a errornous backslash. - * Make configure output config.log for debugging. - * [Kevin] Build depend on libmysqlclient15-dev instead of older 12 or 14. - * [Kevin] Fix typo's in description of libroot-minuit. - * [Kevin] Use `-s' instead of `-a'. - * [Kevin] Fix a logic error in ttf-root-installer. - * [Kevin] Moved dependency of fonts from libroot to root-common. - * [Kevin] Removed all mention of root-cint - * [Kevin] Fixed problem with `set -e' in root-rootd.postrm. - * [Kevin] Set sticky bit on `/var/cache/rootd/{tmp,pub}' so users can - not overwrite each others files (root-rootd.preinst). - * Make sure that libHbook is linked against libg2c.so and not libg2c.a - which made `lintian' complain about `shlib-with-non-pic-code'. - - -- Christian Holm Christensen Tue, 14 Feb 2006 01:10:54 +0100 - -root (5.09.01-5) unstable; urgency=low - - * root-plugin-minuit moved to libroot-minut{,-dev} - - -- Christian Holm Christensen Tue, 7 Feb 2006 18:21:50 +0100 - -root (5.09.01-4) unstable; urgency=low - - * Fixed some build-dependencies. In partiucular, libsqlod75-dev is only - available on certain platforms, and libpacklib1-dev is not available on - GNU/kFreeBSD. - - -- Christian Holm Christensen Sun, 15 Jan 2006 12:43:38 +0100 - -root (5.09.01-3) unstable; urgency=low - - * Fixed some build dependencies. - * Fixed some non-POSIX /bin/sh code - * Fixed Python module location - * Added libafterimage-dev build-dependencies - eventually we'll use the - normal libafterimage-dev, but currently that's disabled up-stream. - * Added the executable xproofd to the root-proofd package, along with - it's man(1) page. - * Removed build-depends on libxpm4-dev, as that pulls in libxaw7-dev, - which is not really what we need. Instead the build-depends is now - libxpm. - * The TTF installer package now depends on msttcorefonts, and makes - mostly symbolic links to files in that package. Hence, we only need - to get and install `symbol.ttf' and `windings.ttf'. - * Revived the package root-plugin-sapdb as root-plugin-maxdb. Thanks to - Ricardo Yanez for pointing out libsqlod to me. - - -- Christian Holm Christensen Fri, 13 Jan 2006 09:27:52 +0100 - -root (5.09.01-2) unstable; urgency=low - - * Added the package root-common to hold common files - * Replaced root-plugin-clarens, root-plugin-ldap, root-plugin-mlp - root-plugin-python, root-plugin-quadp, root-plugin-roofit, - root-plugin-ruby with two packages, a run-time library package - (libroot-<...>) and a development package (libroot-<...>-dev). - This is because developers may want to link against these libraries. - * Removed the package root-cint, and moved libraries to libroot, headers - and the like to libroot-dev, and programs to root-bin. The - alternatives still exists for cint and makecint. - * Applied a patch that allows ROOT to use DFSG free TTF's rather than - the MS Core Fonts. - * Put a symlink to ruby extension library in ruby load directory. - These are in the _development_ package. - * Put a symlink to Python script and extension library in Python - load directory. These are in the _development_ package. - * Fixed some dependency issues, and similar - thanks to Kevin McCarty - for all his help on this. - - -- Christian Holm Christensen Wed, 11 Jan 2006 01:16:25 +0100 - -root (5.09.01-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Mon, 9 Jan 2006 21:49:48 +0100 - -root (5.08.00-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Thu, 15 Dec 2005 14:59:41 +0100 - -root (5.06.01-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Wed, 16 Nov 2005 10:46:04 +0100 - -root (5.05.01-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Wed, 12 Oct 2005 00:41:44 +0200 - -root (5.04.00-2) unstable; urgency=low - - * Some new stuff to handle the libraries and plugins installed by the - packages. For the plugin packages, we do not install the link - libraries in /usr/lib/root, but in /usr/lib/root/, as these - libraries are really plugins and should not be linked against. - However, we do need to install the `lib.so.' in - /usr/lib/root, as some may incrementally link against these. - - -- Christian Holm Christensen Wed, 21 Sep 2005 22:07:12 +0200 - -root (5.04.00-1) unstable; urgency=low - - * New upstream version - - -- Christian Holm Christensen Tue, 20 Sep 2005 22:34:53 +0200 - -root (5.03.01-2) unstable; urgency=low - - * New upstream version - * Make links in /usr/lib/root/ to shared libraries, so that - we can have many versions of the libraries installed, and we do not - need libroot-dev - - -- Christian Holm Christensen Mon, 15 Aug 2005 00:46:18 +0200 - -root (5.01.01-1) unstable; urgency=low - - * New upstream - - -- Christian Holm Christensen Mon, 23 May 2005 13:42:03 +0200 - -root (4.03.03-1) unstable; urgency=low - - * New upstream ROOT version - * New package root-plugin-oracle - * Package root-plugin-xml now contains an XML parser, not the XML I/O - - -- Christian Holm Christensen Sun, 20 Mar 2005 16:28:37 +0100 - -root (4.03.02-1) unstable; urgency=low - - * New packaging scripts - - -- Christian Holm Christensen Mon, 21 Feb 2005 16:28:37 +0100 - -root (3.03.05-1) unstable; urgency=low - - * Bumped Debian GNU/Linux version with ROOT - - -- Christian Holm Mon, 13 May 2002 13:32:54 +0200 - -root (3.02.06-1) unstable; urgency=low - - * Bumped Debian GNU/Linux version with ROOT - - -- Christian Holm Wed, 9 Jan 2002 04:08:19 +0100 - -root (3.02.04-1) unstable; urgency=low - - * Bumped Debian GNU/Linux version with ROOT - - -- Christian Holm Tue, 8 Jan 2002 03:16:39 +0100 - -root (3.02.00-1) unstable; urgency=low - - * Bumped Debian GNU/Linux version with ROOT - - -- Christian Holm Thu, 15 Nov 2001 21:34:26 +0100 - -root (3.00.06-1) unstable; urgency=low - - * Bumped Debian GNU/Linux version with ROOT - - -- Christian Holm Sat, 24 Mar 2001 16:12:08 +0100 - -root (3.00.04-1) unstable; urgency=low - - * Bump version to 3.00/04 - - -- Christian Holm Fri, 16 Feb 2001 23:59:40 +0100 - -root (2.26.00-1) unstable; urgency=low - - * Initial Release. - - -- Christian Holm Fri, 16 Feb 2001 23:59:04 +0100 - - diff --git a/build/package/debian/compat b/build/package/debian/compat deleted file mode 100644 index 7ed6ff82de6bc..0000000000000 --- a/build/package/debian/compat +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/build/package/debian/control b/build/package/debian/control deleted file mode 100644 index 307c08f40b53f..0000000000000 --- a/build/package/debian/control +++ /dev/null @@ -1,1897 +0,0 @@ -Source: root-system -Section: science -Priority: optional -Maintainer: Antonio Salvucci -Homepage: http://root.cern.ch -Build-Depends: debhelper (>= 5.0.37.2), po-debconf, libssl-dev, comerr-dev, libxpm-dev, x11proto-xext-dev, libxext-dev, libfreetype6-dev, libpcre3-dev, zlib1g-dev | libz-dev, python-dev (>= 2.1), graphviz, ttf-freefont, libncurses5-dev | libcurses-dev, libgraphviz-dev, libxft-dev, python-support (>= 0.3), ruby (>= 1.8), ruby1.8-dev | ruby-dev (>= 1.8), libglu1-mesa-dev | libglu1-xorg-dev | xlibmesa-glu-dev | libglu-dev, libglew1.5-dev | libglew-dev, libftgl-dev | ftgl-dev, libxml2-dev, libgsl0-dev, libldap2-dev | libldap-dev, libavahi-compat-libdnssd-dev, libxmlrpc-c3-dev | libxmlrpc-c-dev, libcurl4-gnutls-dev | libcurl4-openssl-dev | libcurl-dev, libjpeg62-dev, libpng12-dev, libtiff4-dev, libgif-dev | libungif4-dev, libxinerama-dev, libfftw3-dev | fftw3-dev, libglobus-gss-assist-dev, libglobus-gssapi-gsi-dev, libglobus-gsi-credential-dev, libglobus-common-dev, libglobus-gsi-callback-dev, libglobus-gsi-sysconfig-dev, libglobus-gssapi-gsi-dev, libglobus-gsi-callback-dev, libglobus-gsi-cert-utils-dev, libglobus-openssl-dev, libglobus-gsi-proxy-core-dev, libglobus-callout-dev, globus-proxy-utils,krb5-user|heimdal-clients, libmysqlclient15-dev | libmysqlclient14-dev| libmysqlclient12-dev| libmysqlclient-dev, libiodbc2-dev | unixodbc-dev, libpq-dev | postgresql-dev, gfortran|fortran-compiler, libqt4-dev (>= 4.3.0) | libqt3-mt-dev (>= 3.3.0), qt4-dev-tools (>= 4.3.0) | qt3-dev-tools (>= 3.3.0), libqt4-opengl-dev, libkrb5-dev|heimdal-dev -Standards-Version: 3.8.3 - -Package: root-system -Architecture: all -Depends: root-system-bin, libroot-core-dev, ${misc:Depends} -Recommends: libroot-graf3d-gl-dev (>= ${binary:Version}), libroot-io-xmlparser-dev (>= ${binary:Version}), libroot-math-mathmore-dev (>= ${binary:Version}), libroot-math-unuran-dev (>= ${binary:Version}), libroot-misc-table-dev (>= ${binary:Version}), libroot-net-ldap-dev (>= ${binary:Version}), libroot-net-bonjour-dev (>= ${binary:Version}), root-plugin-graf2d-asimage (>= ${binary:Version}), root-plugin-gui-qt (>= ${binary:Version}), root-plugin-graf2d-qt (>= ${binary:Version}), root-plugin-math-fftw3 (>= ${binary:Version}), root-plugin-math-minuit2 (>= ${binary:Version}), root-plugin-net-krb5 (>= ${binary:Version}), root-plugin-sql-odbc (>= ${binary:Version}), root-system-xrootd (>= ${binary:Version}), root-plugin-net-netx (>= ${binary:Version}), root-plugin-net-xrootd (>= ${binary:Version}), libroot-geom-dev (>= ${binary:Version}), libroot-graf2d-gpad-dev (>= ${binary:Version}), libroot-graf2d-graf-dev (>= ${binary:Version}), libroot-graf2d-postscript-dev (>= ${binary:Version}), libroot-graf3d-eve-dev (>= ${binary:Version}), libroot-graf3d-g3d-dev (>= ${binary:Version}), libroot-gui-dev (>= ${binary:Version}), libroot-gui-ged-dev (>= ${binary:Version}), libroot-hist-dev (>= ${binary:Version}), libroot-hist-spectrum-dev (>= ${binary:Version}), libroot-io-dev (>= ${binary:Version}), libroot-math-foam-dev (>= ${binary:Version}), libroot-math-genvector-dev (>= ${binary:Version}), libroot-math-mathcore-dev (>= ${binary:Version}), libroot-math-matrix-dev (>= ${binary:Version}), libroot-math-minuit-dev (>= ${binary:Version}), libroot-math-mlp-dev (>= ${binary:Version}), libroot-math-physics-dev (>= ${binary:Version}), libroot-math-quadp-dev (>= ${binary:Version}), libroot-math-smatrix-dev (>= ${binary:Version}), libroot-math-splot-dev (>= ${binary:Version}), libroot-misc-minicern-dev (>= ${binary:Version}), libroot-misc-memstat-dev (>= ${binary:Version}), libroot-montecarlo-eg-dev (>= ${binary:Version}), libroot-montecarlo-vmc-dev (>= ${binary:Version}), libroot-net-dev (>= ${binary:Version}), libroot-net-auth-dev (>= ${binary:Version}), libroot-proof-dev (>= ${binary:Version}), libroot-proof-proofplayer-dev (>= ${binary:Version}), libroot-tmva-dev (>= ${binary:Version}), libroot-tree-dev (>= ${binary:Version}), libroot-tree-treeplayer-dev (>= ${binary:Version}), root-plugin-geom-geombuilder (>= ${binary:Version}), root-plugin-geom-geompainter (>= ${binary:Version}), root-plugin-graf2d-x11 (>= ${binary:Version}), root-plugin-graf3d-x3d (>= ${binary:Version}), root-plugin-gui-fitpanel (>= ${binary:Version}), root-plugin-gui-guibuilder (>= ${binary:Version}), root-plugin-gui-sessionviewer (>= ${binary:Version}), root-plugin-hist-hbook (>= ${binary:Version}), root-plugin-hist-histpainter (>= ${binary:Version}), root-plugin-hist-spectrumpainter (>= ${binary:Version}), root-plugin-io-sql (>= ${binary:Version}), root-plugin-io-xml (>= ${binary:Version}), root-plugin-math-fumili (>= ${binary:Version}), root-plugin-proof-xproof (>= ${binary:Version}), root-plugin-tree-treeviewer (>= ${binary:Version}), root-system-proofd (>= ${binary:Version}), root-system-rootd (>= ${binary:Version}), root-system-doc (>= ${binary:Version}) -Suggests: libroot-bindings-python-dev (>= ${binary:Version}), libroot-bindings-ruby-dev (>= ${binary:Version}), libroot-proof-clarens-dev (>= ${binary:Version}), libroot-roofit-dev (>= ${binary:Version}), root-plugin-geom-gdml (>= ${binary:Version}), root-plugin-net-globus (>= ${binary:Version}), root-plugin-proof-peac (>= ${binary:Version}), root-plugin-sql-mysql (>= ${binary:Version}), root-plugin-sql-pgsql (>= ${binary:Version}) -Description: metapackage to install all ROOT packages - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - With the data defined as a set of objects, specialized storage methods - can give direct access to the separate attributes of the selected - objects, without having to touch the bulk of the data. Included are - histogramming methods in 1, 2 and 3 dimensions, curve fitting, function - evaluation, minimization, graphics and visualization classes to allow the - easy creation of an analysis system that can query and process the data - interactively or in batch mode. - . - The command language, the scripting (or macro) language, and the - programming language are all C++, thanks to the built-in CINT C++ - interpreter. This interpreter removes the time consuming compile/link - cycle, allowing for fast prototyping of the macros, and providing a - good environment to learn C++. If more performance is needed, the - interactively developed macros can be compiled using a C++ compiler. - . - The system has been designed in such a way that it can query its - databases in parallel on MPP machines or on clusters of workstations - or high-end PCs. ROOT is an open system that can be dynamically - extended by linking external libraries. This makes ROOT a premier - platform on which to build data acquisition, simulation and data - analysis systems. - . - This package is a metapackage to ensure the installation of all - possible ROOT packages on a system. - - -Package: libroot-bindings-python5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${python:Depends}, ${misc:Depends} -Replaces: root-plugin-python (<< 5.09.01-1) -Description: Python extension for ROOT - runtime libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Python plug-in for ROOT. This package - provide a Python interface to ROOT, and a ROOT interface to Python. - -Package: libroot-bindings-python-dev -Architecture: any -Section: libdevel -Depends: libroot-bindings-python5.24 (= ${binary:Version}), libroot-core-dev, python-dev (>= 2.1), ${python:Depends}, ${misc:Depends} -Provides: ${python:Provides} -Replaces: libroot-python-dev -Conflicts: libroot-python-dev (<< 5.19.01-1) -Description: Python extension for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Python plug-in for ROOT. This package - provide a Python interface to ROOT, and a ROOT interface to Python. - -Package: libroot-bindings-ruby5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-ruby (<< 5.09.01-1) -Description: Ruby extension for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ruby extension for ROOT. The interface - goes both ways - that is, you can call ROOT functions from Ruby, and - invoke the Ruby interpreter from ROOT. - -Package: libroot-bindings-ruby-dev -Architecture: any -Section: libdevel -Depends: libroot-bindings-ruby5.24 (= ${binary:Version}), libroot-core-dev, ruby1.8-dev | ruby-dev (>= 1.8), ${misc:Depends} -Conflicts: libroot-ruby (<< 5.19.01-1) -Replaces: libroot-ruby -Description: Ruby extension for ROOT - development headers - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ruby extension for ROOT. - -Package: libroot-graf3d-gl5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: root-plugin-graf3d-gl (<< 5.19.00-1) -Replaces: root-plugin-graf3d-gl (<< 5.19.00-1) -Provides: root-plugin-graf3d-gl -Description: GL plugin for ROOT - runtime library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the GL plug-in for ROOT. This plugin provides - 3D rendering of volumes and shapes defined in ROOT, as well as 3D - rendering of histograms, and similar. Included is also a high quality - 3D viewer for ROOT defined geometries. - -Package: libroot-graf3d-gl-dev -Architecture: any -Section: libdevel -Depends: libroot-graf3d-gl5.24 (= ${binary:Version}), ${misc:Depends} -Conflicts: root-plugin-graf3d-gl (<< 5.19.00-1) -Replaces: root-plugin-graf3d-gl -Description: GL plugin for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the GL plug-in for ROOT. This plugin provides - 3D rendering of volumes and shapes defined in ROOT. Included is also - a high quality 3D viewer for ROOT defined geometries. - -Package: libroot-io-xmlparser5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Input/output of ROOT objects - runtime library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package provides I/O routines for ROOT objects. - -Package: libroot-io-xmlparser-dev -Architecture: any -Section: libdevel -Depends: libroot-io-xmlparser5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev, root-plugin-xml -Conflicts: libroot-dev (<< 5.19.01-1), root-plugin-xml (<< 5.19.01-1) -Description: Input/output of ROOT objects - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package provides I/O routines for ROOT objects. - -Package: libroot-math-mathmore5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GSL interface library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MathMore library for ROOT. This provides - a partial GNU Scientific Library interface for ROOT. - -Package: libroot-math-mathmore-dev -Architecture: any -Section: libdevel -Depends: libroot-math-mathmore5.24 (= ${binary:Version}), libroot-core-dev, libgsl0-dev, ${misc:Depends} -Conflicts: libroot-mathmore-dev (<< 5.19.01-1) -Replaces: libroot-mathmore-dev -Description: Mathmore plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MathMore library for ROOT. This provides - a partial GNU Scientific Library interface for ROOT. - -Package: libroot-math-unuran5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://statistik.wu-wien.ac.at/unuran/ -Description: Random number generator library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - It contains universal (also called automatic or black-box) algorithms - that can generate random numbers from large classes of continuous or - discrete distributions, and also from practically all standard - distributions. - . - To generate random numbers the user must supply some information - about the desired distribution, especially a C-function that computes - the density and - depending on the chosen methods - some additional - information (like the borders of the domain, the mode, the derivative - of the density ...). After a user has given this information an - init-program computes all tables and constants necessary for the - random variate generation. The sample program can then generate - variates from the desired distribution. - . - This package contains the runtime library. - -Package: libroot-math-unuran-dev -Architecture: any -Section: libdevel -Depends: libroot-math-unuran5.24 (= ${binary:Version}), libroot-hist-dev, ${misc:Depends} -Replaces: libroot-unuran-dev -Conflicts: libroot-unuran-dev (<< 5.19.01-1) -Homepage: http://statistik.wu-wien.ac.at/unuran/ -Description: Random number generator library - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - It contains universal (also called automatic or black-box) algorithms - that can generate random numbers from large classes of continuous or - discrete distributions, and also from practically all standard - distributions. - . - To generate random numbers the user must supply some information - about the desired distribution, especially a C-function that computes - the density and - depending on the chosen methods - some additional - information (like the borders of the domain, the mode, the derivative - of the density ...). After a user has given this information an - init-program computes all tables and constants necessary for the - random variate generation. The sample program can then generate - variates from the desired distribution. - . - This package contains the development files - -Package: libroot-misc-table5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Table library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Table library for ROOT. - -Package: libroot-misc-table-dev -Architecture: any -Section: libdevel -Depends: libroot-misc-table5.24 (= ${binary:Version}), libroot-graf3d-g3d-dev, libroot-graf2d-gpad-dev, libroot-tree-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Table library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Table library for ROOT. - -Package: libroot-net-ldap5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-ldap (<< 5.09.01-1) -Description: Ldap extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ldap plug-in for ROOT. This gives you - access to Ldap directories via ROOT. - -Package: libroot-net-ldap-dev -Architecture: any -Section: libdevel -Depends: libroot-net-ldap5.24 (= ${binary:Version}), libroot-core-dev, libldap2-dev | libldap-dev, ${misc:Depends} -Conflicts: libroot-ldap-dev (<< 5.19.01-1) -Replaces: libroot-ldap-dev (<< 5.19.01-1) -Description: Ldap extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Ldap plug-in for ROOT. This gives you - access to Ldap directories via ROOT. - - -Package: libroot-net-bonjour5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Zeroconf extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains classes for declaring zeroconf services, as well - as browsing for such services. This package contains the run-time - libraries - -Package: libroot-net-bonjour-dev -Architecture: any -Section: libdevel -Depends: libroot-net-bonjour5.24 (= ${binary:Version}), libroot-core-dev, libavahi-compat-libdnssd-dev , ${misc:Depends} -Description: Zeroconf extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains classes for declaring zeroconf services, as well - as browsing for such services. This package contains the development - libraries and headers. - - -Package: libroot-proof-clarens5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-clarens (<< 5.09.01-1) -Homepage: http://clarens.sourceforge.net -Description: Clarens extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Clarens plug-in for ROOT, for use in a GRID - enabled analysis environment. - . - The Clarens Grid-Enabled Web Services Framework is an open source, - secure, high-performance "portal" for ubiquitous access to data and - computational resources provided by computing grids. - -Package: libroot-proof-clarens-dev -Architecture: any -Section: libdevel -Depends: libroot-proof-clarens5.24 (= ${binary:Version}), libroot-core-dev, libxmlrpc-c3-dev | libxmlrpc-c-dev, ${misc:Depends} -Conflicts: libroot-clarens-dev (<< 5.19.01-1) -Replaces: libroot-clarens-dev -Homepage: http://clarens.sourceforge.net -Description: Clarens extension for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Clarens plug-in for ROOT, for use in a GRID - enabled analysis environment. - . - The Clarens Grid-Enabled Web Services Framework is an open source, - secure, high-performance "portal" for ubiquitous access to data and - computational resources provided by computing grids. - -Package: libroot-roofit5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, libroot-math-minuit5.24 | root-fitter, ${misc:Depends} -Homepage: http://roofit.sourceforge.net/ -Replaces: root-plugin-roofit (<< 5.09.01-1) -Description: ROOT extension for modeling expected distribtions - libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The RooFit packages provide a toolkit for modeling the expected - distribution of events in a physics analysis. Models can be used to - perform likelihood fits, produce plots, and generate "toy Monte - Carlo" samples for various studies. The RooFit tools are integrated - with the object-oriented and interactive ROOT graphical environment. - . - RooFit has been developed for the BaBar collaboration, a high energy - physics experiment at the Stanford Linear Accelerator Center, and is - primarily targeted to the high-energy physicists using the ROOT - analysis environment, but the general nature of the package make it - suitable for adoption in different disciplines as well. - -Package: libroot-roofit-dev -Architecture: any -Section: libdevel -Homepage: http://roofit.sourceforge.net/ -Depends: libroot-roofit5.24 (= ${binary:Version}), libroot-graf2d-graf-dev, libroot-tree-dev, ${misc:Depends} -Description: ROOT extension for modeling expected distribtions - development - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The RooFit packages provide a toolkit for modeling the expected - distribution of events in a physics analysis. Models can be used to - perform likelihood fits, produce plots, and generate "toy Monte - Carlo" samples for various studies. The RooFit tools are integrated - with the object-oriented and interactive ROOT graphical environment. - . - RooFit has been developed for the BaBar collaboration, a high energy - physics experiment at the Stanford Linear Accelerator Center, and is - primarily targeted to the high-energy physicists using the ROOT - analysis environment, but the general nature of the package make it - suitable for adoption in different disciplines as well. - -Package: root-plugin-graf2d-asimage -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: AfterImage plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the AfterImage plug-in for ROOT, which allows - you to store output graphics in many formats, including JPEG, PNG, - SVG, etc. - - -Package: root-plugin-geom-gdml -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${python:Depends}, libroot-geom-dev, ${misc:Depends} -Description: GDML import/export module for ROOT geometries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains an import/export module for the ROOT geometry. - -Package: root-plugin-gui-qt -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Qt plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Qt plug-in for ROOT. This plugin - provides an abstraction over a display. Windows are created via Qt. - -Package: root-plugin-graf2d-qt -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Qt plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Qt plug-in for ROOT. This plugin - provides an abstraction over a display. Windows are created via Qt. - - -Package: root-plugin-math-fftw3 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://fftw.org/ -Description: FFTw plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Fast Fourier Transform extension for ROOT. - It uses the very fast fftw (version 3) library. - -Package: root-plugin-math-minuit2 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-fitter -Description: Minuit version 2 plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MINUIT version 2 plug-in for ROOT. This - provides an fitting algorithm for ROOT. - - -Package: root-plugin-net-globus -Architecture: any -Depends: globus-proxy-utils, ${shlibs:Depends}, ${misc:Depends} -Homepage: http://www.globus.org -Description: Globus plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Globus plug-in for ROOT, that allows - authentication and authorization against globus. - -Package: root-plugin-net-krb5 -Architecture: any -Depends: ${shlibs:Depends}, krb5-user | heimdal-clients, ${misc:Depends} -Description: Kerberos (version 5) plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Kerberos (version 5) plug-in for ROOT, that - allows authentication and authorisation using Kerberos tokens. - - -Package: root-plugin-proof-peac -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://physics.ucsd.edu/~schsu/project/peac.html -Description: PEAC plugin for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PEAC (Proof Enabled Analysis Center) - plug-in for ROOT. - . - PEAC is an interactive distributed analysis framework that uses - Clarens as a "glue" protocol to advertise and communicate amongst - SAM, Global Manager (GM), Local Manager (LM), DCache, and PROOF - services. - -Package: root-plugin-sql-mysql -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Description: MySQL client plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MySQL plug-in for ROOT. This plugin - provides a thin client (interface) to MySQL servers. Using this - client, one can obtain information from a MySQL database into the - ROOT environment. - - -Package: root-plugin-sql-odbc -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Homepage: http://unixodbc.org or http://iodbc.org -Description: ODBC plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the ODBC (Open DataBase Connectivity) plug-in - for ROOT, that allows transparent access to any kind of database that - supports the ODBC protocol. - -Package: root-plugin-sql-pgsql -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-db-client -Description: PostgreSQL client plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PostGreSQL plug-in for ROOT. This plugin - provides a thin client (interface) to PostGreSQL servers. Using this - client, one can obtain information from a PostGreSQL database into the - ROOT environment. - - -Package: root-plugin-net-xrootd -Section: science -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-system-xrootd -Conflicts: root-system-xrootd (<< 5.19.03-1) -Homepage: http://xrootd.slac.stanford.edu -Description: Plugins for xrootd protocol - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the plug-ins for xrootd protocol. - -Package: root-system-xrootd -Architecture: any -Depends: root-system-common, lsb-base (>= 3.0-6), ${shlibs:Depends}, ${misc:Depends} -Recommends: root-plugin-net-xrootd -Provides: root-file-server -Homepage: http://xrootd.slac.stanford.edu -Description: Extented ROOT file server - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the xrootd server for ROOT, the eXtended - Request Daemon (xrd) and associated software. - -Package: root-plugin-net-netx -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-plugin-net-xrootd -Description: NetX plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the NetX plug-in for ROOT. Client for the - XRootd server. - - -Package: libroot-geom5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: libroot-graf3d-gl5.24 (>= ${binary:Version}), root-plugin-geom-gdml, root-plugin-geom-geombuilder, root-plugin-geom-geompainter -Description: Geometry library for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining geometries in ROOT. - -Package: libroot-geom-dev -Architecture: any -Section: libdevel -Depends: libroot-geom5.24 (= ${binary:Version}), libroot-math-mathcore-dev, ${misc:Depends} -Recommends: libroot-graf3d-gl-dev -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: Geometry library for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining geometries in ROOT. - -Package: libroot-graf2d-gpad5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Canvas and pad library for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for canvas and pad manipulations. - -Package: libroot-graf2d-gpad-dev -Architecture: any -Section: libdevel -Depends: libroot-graf2d-gpad5.24 (= ${binary:Version}), libroot-graf2d-graf-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: Canvas and pad library for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for canvas and pad manipulations. - -Package: libroot-graf2d-graf5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Graph library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Graf library for ROOT. - -Package: libroot-graf2d-graf-dev -Architecture: any -Section: libdevel -Depends: libroot-graf2d-graf5.24 (= ${binary:Version}), libroot-hist-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Graph library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Graf library for ROOT. - -Package: libroot-graf2d-postscript5.24 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Postscript/PDF renderer library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for ROOT, which allows rendering - postscript and PDF output. - -Package: libroot-graf2d-postscript-dev -Architecture: any -Section: libdevel -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Depends: libroot-graf2d-postscript5.24 (= ${binary:Version}), libroot-graf2d-graf-dev, ${shlibs:Depends}, ${misc:Depends} -Description: Postscript/PDF renderer library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for ROOT, which allows rendering - postscript and PDF output. - -Package: libroot-graf3d-eve5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: root-plugin-gl (<= 5.19.01-1) -Replaces: root-plugin-gl (<= 5.19.01-1) -Description: Event display library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining event displays in ROOT. - -Package: libroot-graf3d-eve-dev -Architecture: any -Section: libdevel -Depends: libroot-graf3d-eve5.24 (= ${binary:Version}), libroot-geom-dev, libroot-gui-ged-dev, libroot-montecarlo-eg-dev, libroot-tree-treeplayer-dev, ${misc:Depends} -Replaces: root-plugin-gl -Conflicts: root-plugin-gl (<= 5.19.01-1) -Description: Event display library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining event displays in ROOT. - -Package: libroot-graf3d-g3d5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: libroot-graf3d-gl5.24 (>= ${binary:Version}) -Suggests: libroot-geom5.24 -Description: Basic 3D shapes for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This library contains the basic 3D shapes and classes for ROOT. For - a more full-blown geometry library, see libroot-geom-dev. - -Package: libroot-graf3d-g3d-dev -Architecture: any -Section: libdevel -Depends: libroot-graf3d-g3d5.24 (= ${binary:Version}), libroot-graf2d-gpad-dev, ${misc:Depends} -Recommends: libroot-graf3d-gl-dev -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Suggests: libroot-geom-dev -Description: Basic 3D shapes for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This library contains the basic 3D shapes and classes for ROOT. For - a more full-blown geometry library, see libroot-geom-dev. - - -Package: libroot-gui5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: libroot (<< 5.19.01-1) -Recommends: root-plugin-gui-guibuilder -Description: GUI library for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining graphical user interfaces. - -Package: libroot-gui-dev -Architecture: any -Section: libdevel -Depends: libroot-gui5.24 (= ${binary:Version}), libroot-graf2d-gpad-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: GUI library for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for defining graphical user interfaces. - -Package: libroot-gui-ged5.24 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI element for editing various ROOT objecs - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library to show a pop-up window for editing - various ROOT objects. - -Package: libroot-gui-ged-dev -Architecture: any -Section: libdevel -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: libroot-gui-ged5.24 (= ${binary:Version}), libroot-gui-dev, libroot-tree-treeplayer-dev, ${misc:Depends} -Description: GUI element for editing various ROOT objecs - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library to show a pop-up window for editing - various ROOT objects. - -Package: libroot-hist5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-plugin-hist-histpainter -Description: Histogram library for ROOT - run-time library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for histogrammin - -Package: libroot-hist-dev -Architecture: any -Section: libdevel -Depends: libroot-hist5.24 (= ${binary:Version}), libroot-core-dev, libroot-math-matrix-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Histogram library for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a library for histogrammin - -Package: libroot-hist-spectrum5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Spectra analysis library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Spectrum library for ROOT. - -Package: libroot-hist-spectrum-dev -Architecture: any -Section: libdevel -Depends: libroot-hist-spectrum5.24 (= ${binary:Version}), libroot-hist-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Spectra analysis library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Spectrum library for ROOT. - -Package: libroot-io5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Input/output of ROOT objects - runtime library - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package provides I/O routines for ROOT objects. - -Package: libroot-io-dev -Architecture: any -Section: libdevel -Depends: libroot-io5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev, root-plugin-proof -Conflicts: libroot-dev (<< 5.19.01-1), root-plugin-proof (<< 5.19.01-1) -Description: Input/output of ROOT objects - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package provides I/O routines for ROOT objects. - -Package: libroot-math-foam5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: A Compact Version of the Cellular Event Generator - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The general-purpose self-adapting Monte Carlo (MC) event - generator/simulator mFOAM (standing for mini-FOAM) is a new compact - version of the FOAM program, with a slightly limited functionality - with respect to its parent version. On the other hand, mFOAM is - easier to use for the average user. - -Package: libroot-math-foam-dev -Architecture: any -Section: libdevel -Depends: libroot-math-foam5.24 (= ${binary:Version}), libroot-hist-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: A Compact Version of the Cellular Event Generator - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The general-purpose self-adapting Monte Carlo (MC) event - generator/simulator mFOAM (standing for mini-FOAM) is a new compact - version of the FOAM program, with a slightly limited functionality - with respect to its parent version. On the other hand, mFOAM is - easier to use for the average user. - -Package: libroot-math-genvector5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Generalized vector library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Genvector library for ROOT. This provides - a generalized vector library. - -Package: libroot-math-genvector-dev -Architecture: any -Section: libdevel -Depends: libroot-math-genvector5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: Generalized vector library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Genvector library for ROOT. This provides - a generalized vector library. - -Package: libroot-math-mathcore5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Core mathemathics library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MathCore library for ROOT. - -Package: libroot-math-mathcore-dev -Architecture: any -Section: libdevel -Depends: libroot-math-mathcore5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Core mathemathics library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MathCore library for ROOT. - -Package: libroot-math-matrix5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Matrix library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Matrix library for ROOT. - -Package: libroot-math-matrix-dev -Architecture: any -Section: libdevel -Depends: libroot-math-matrix5.24 (= ${binary:Version}), libroot-core-dev, libroot-math-mathcore-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Matrix library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Matrix library for ROOT. - -Package: libroot-math-minuit5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-minuit (<< 5.09.01-7) -Provides: libroot-math-minuit -Description: Minuit plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MINUIT plug-in for ROOT. This provides a - fitting algorithm for ROOT. - -Package: libroot-math-minuit-dev -Architecture: any -Section: libdevel -Depends: libroot-math-minuit5.24 (= ${binary:Version}), libroot-graf2d-graf-dev, ${misc:Depends} -Provides: root-fitter -Replaces: root-plugin-minuit (<< 5.09.01-7), libroot-minuit-dev -Conflicts: libroot-minuit-dev (<< 5.19.01-1) -Description: Minuit plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the MINUIT plug-in for ROOT. This provides a - fitting algorithm for ROOT. - -Package: libroot-math-mlp5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-mlp (<< 5.09.01-1) -Description: Multi layer perceptron extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the mlp plug-in for ROOT. This plugin provides - a Multi Layer Perceptron Neural Network package for ROOT. - -Package: libroot-math-mlp-dev -Architecture: any -Section: libdevel -Depends: libroot-math-mlp5.24 (= ${binary:Version}), libroot-graf2d-gpad-dev, libroot-tree-treeplayer-dev, ${misc:Depends} -Conflicts: libroot-mlp-dev -Replaces: libroot-mlp-dev (<< 5.19.01-1) -Description: Multi layer perceptron extension for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the mlp plug-in for ROOT. This plugin provides - a Multi Layer Perceptron Neural Network package for ROOT. - -Package: libroot-math-physics5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Physics library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Physics library for ROOT. - -Package: libroot-math-physics-dev -Architecture: any -Section: libdevel -Depends: libroot-math-physics5.24 (= ${binary:Version}), libroot-math-matrix-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Physics library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Physics library for ROOT. - -Package: libroot-math-quadp5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: root-plugin-quadp (<< 5.09.01-1) -Description: QuadP extension for ROOT - run-time libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the QuadP plug-in for ROOT. This provides the - user a framework in which to do Quadratic Programming. The quadratic - programming problem involves minimization of a quadratic function - subject to linear constraints. - -Package: libroot-math-quadp-dev -Architecture: any -Section: libdevel -Depends: libroot-math-quadp5.24 (= ${binary:Version}), libroot-math-matrix-dev, ${misc:Depends} -Replaces: libroot-quadp -Conflicts: libroot-quadp (<< 5.19.01-1) -Description: QuadP extension for ROOT - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the QuadP plug-in for ROOT. This provides the - user a framework in which to do Quadratic Programming. The quadratic - programming problem involves minimization of a quadratic function - subject to linear constraints. - -Package: libroot-math-smatrix5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Sparse matrix library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Smatrix library for ROOT. - -Package: libroot-math-smatrix-dev -Architecture: any -Section: libdevel -Depends: libroot-math-smatrix5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Sparse matrix library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Smatrix library for ROOT. - -Package: libroot-math-splot5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Splot library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - A common method used in High Energy Physics to perform measurements - is the maximum Likelihood method, exploiting discriminating variables - to disentangle signal from background. The crucial point for such an - analysis to be reliable is to use an exhaustive list of sources of - events combined with an accurate description of all the Probability - Density Functions (PDF). - . - To assess the validity of the fit, a convincing quality check is to - explore further the data sample by examining the distributions of - control variables. A control variable can be obtained for instance by - removing one of the discriminating variables before performing again - the maximum Likelihood fit: this removed variable is a control - variable. The expected distribution of this control variable, for - signal, is to be compared to the one extracted, for signal, from the - data sample. In order to be able to do so, one must be able to unfold - from the distribution of the whole data sample. - . - The SPlot method allows to reconstruct the distributions for the - control variable, independently for each of the various sources of - events, without making use of any a priori knowledge on this - variable. The aim is thus to use the knowledge available for the - discriminating variables to infer the behaviour of the individual - sources of events with respect to the control variable. - . - SPlot is optimal if the control variable is uncorrelated with the - discriminating variables. - -Package: libroot-math-splot-dev -Architecture: any -Section: libdevel -Depends: libroot-math-splot5.24 (= ${binary:Version}), libroot-graf2d-graf-dev, libroot-graf3d-g3d-dev, libroot-tree-treeplayer-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Splot library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - A common method used in High Energy Physics to perform measurements - is the maximum Likelihood method, exploiting discriminating variables - to disentangle signal from background. The crucial point for such an - analysis to be reliable is to use an exhaustive list of sources of - events combined with an accurate description of all the Probability - Density Functions (PDF). - . - To assess the validity of the fit, a convincing quality check is to - explore further the data sample by examining the distributions of - control variables. A control variable can be obtained for instance by - removing one of the discriminating variables before performing again - the maximum Likelihood fit: this removed variable is a control - variable. The expected distribution of this control variable, for - signal, is to be compared to the one extracted, for signal, from the - data sample. In order to be able to do so, one must be able to unfold - from the distribution of the whole data sample. - . - The SPlot method allows to reconstruct the distributions for the - control variable, independently for each of the various sources of - events, without making use of any a priori knowledge on this - variable. The aim is thus to use the knowledge available for the - discriminating variables to infer the behaviour of the individual - sources of events with respect to the control variable. - . - SPlot is optimal if the control variable is uncorrelated with the - discriminating variables. - -Package: libroot-misc-minicern5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Small version of CERNLIB for use with ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the mini CERNLIB library for ROOT. - -Package: libroot-misc-minicern-dev -Architecture: any -Section: libdevel -Depends: libroot-misc-minicern5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Small version of CERNLIB for use with ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the mini CERNLIB library for ROOT. - -Package: libroot-misc-memstat5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Memory statistics tool for use with ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the memory statistics tool for debugging memory - leaks and such. - -Package: libroot-misc-memstat-dev -Architecture: any -Section: libdevel -Depends: libroot-misc-memstat5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Memory statistics tool for use with ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the memory statistics tool for debugging memory - leaks and such. - -Package: libroot-montecarlo-eg5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Event generator library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Eg library for ROOT. - -Package: libroot-montecarlo-eg-dev -Architecture: any -Section: libdevel -Depends: libroot-montecarlo-eg5.24 (= ${binary:Version}), libroot-graf2d-gpad-dev, libroot-graf3d-g3d-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Event generator library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Eg library for ROOT. - -Package: libroot-montecarlo-vmc5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-vmc -Description: Virtual Monte-Carlo (simulation) library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Vmc library for ROOT. - -Package: libroot-montecarlo-vmc-dev -Architecture: any -Section: libdevel -Depends: libroot-montecarlo-vmc5.24 (= ${binary:Version}), libroot-geom-dev, libroot-montecarlo-eg-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Virtual Monte-Carlo (simulation) library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Vmc library for ROOT. - -Package: libroot-net5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Net library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Net library for ROOT. - -Package: libroot-net-dev -Architecture: any -Section: libdevel -Depends: libroot-net5.24 (= ${binary:Version}), libroot-math-mathcore-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Net library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Net library for ROOT. - -Package: libroot-net-auth5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-authentication -Description: Authentication extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the basic authentication algorithms used by ROOT. - -Package: libroot-net-auth-dev -Architecture: any -Section: libdevel -Depends: libroot-net-auth5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<= 5.19.01-1) -Description: Authentication extension for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the basic authentication algorithms used by ROOT. - -Package: libroot-proof5.24 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: root-plugin-net-netx, root-plugin-proof-xproof -Description: PROOF library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF library for ROOT. This provides a - client to use in a PROOF environment. - -Package: libroot-proof-dev -Architecture: any -Section: libdevel -Depends: libroot-proof5.24 (= ${binary:Version}), libroot-math-mathcore-dev, libroot-tree-dev, ${misc:Depends} -Replaces: root-plugin-proof -Conflicts: root-plugin-proof (<< 5.19.01-1) -Description: PROOF library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF library for ROOT. This provides a - client to use in a PROOF environment. - -Package: libroot-proof-proofplayer5.24 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: root-plugin-net-netx, root-plugin-proof-xproof -Replaces: root-plugin-proof-proofplayer (< 5.23.05-1) -Conflicts: root-plugin-proof-proofplayer (< 5.23.05-1) -Description: PROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF extension ROOT. This provides a - client to use in a PROOF environment. - - -Package: libroot-proof-proofplayer-dev -Section: libdevel -Architecture: any -Depends: libroot-proof-proofplayer5.24 (= ${binary:Version}), libroot-proof-dev, ${misc:Depends} -Suggests: root-plugin-net-netx, root-plugin-proof-xproof -Replaces: root-plugin-proof-proofplayer (< 5.23.05-1) -Conflicts: root-plugin-proof-proofplayer (< 5.23.05-1) -Description: PROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF callable extension for ROOT. This - provides a client to use in a PROOF environment. - - -Package: libroot-tmva5.24 -Architecture: any -Section: libs -Depends: ${shlibs:Depends}, ${misc:Depends} -Homepage: http://tmva.sourceforge.net -Description: Toolkit for multivariate data analysis - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The Toolkit for Multivariate Analysis (TMVA) provides a - ROOT-integrated environment for the parallel processing and - evaluation of MVA techniques to discriminate signal from background - samples. It presently includes (ranked by complexity): - . - * Rectangular cut optimisation - * Correlated likelihood estimator (PDE approach) - * Multi-dimensional likelihood estimator (PDE - range-search approach) - * Fisher (and Mahalanobis) discriminant - * H-Matrix (chi-squared) estimator - * Artificial Neural Network (two different implementations) - * Boosted Decision Trees - . - The TMVA package includes an implementation for each of these - discrimination techniques, their training and testing (performance - evaluation). In addition all these methods can be tested in parallel, - and hence their performance on a particular data set may easily be - compared. - - -Package: libroot-tmva-dev -Architecture: any -Section: libdevel -Depends: libroot-tmva5.24 (= ${binary:Version}), libroot-math-mlp-dev, ${misc:Depends} -Homepage: http://tmva.sourceforge.net -Description: Toolkit for multivariate data analysis - development files - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - The Toolkit for Multivariate Analysis (TMVA) provides a - ROOT-integrated environment for the parallel processing and - evaluation of MVA techniques to discriminate signal from background - samples. It presently includes (ranked by complexity): - . - * Rectangular cut optimisation - * Correlated likelihood estimator (PDE approach) - * Multi-dimensional likelihood estimator (PDE - range-search approach) - * Fisher (and Mahalanobis) discriminant - * H-Matrix (chi-squared) estimator - * Artificial Neural Network (two different implementations) - * Boosted Decision Trees - . - The TMVA package includes an implementation for each of these - discrimination techniques, their training and testing (performance - evaluation). In addition all these methods can be tested in parallel, - and hence their performance on a particular data set may easily be - compared. - -Package: libroot-tree5.24 -Section: libs -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: libroot-tree-treeplayer5.24 | root-plugin-tree-treeviewer -Description: Tree library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Tree library for ROOT. - -Package: libroot-tree-dev -Architecture: any -Section: libdevel -Depends: libroot-tree5.24 (= ${binary:Version}), libroot-core-dev, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Tree library for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Tree library for ROOT. - -Package: libroot-tree-treeplayer5.24 -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Library to loop over a ROOT tree - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - Plug-in to loop over a ROOT tree. - -Package: libroot-tree-treeplayer-dev -Architecture: any -Section: libdevel -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: libroot-tree-treeplayer5.24 (= ${binary:Version}), libroot-tree-dev, libroot-graf2d-gpad-dev, libroot-graf3d-g3d-dev, ${misc:Depends} -Description: Library to loop over a ROOT tree - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - Plug-in to loop over a ROOT tree. - -Package: root-plugin-geom-geombuilder -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Geometry builder plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a geometry builder plugin for ROOT. - -Package: root-plugin-geom-geompainter -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} , ${misc:Depends} -Description: Geometry painter plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a geometry painter plugin for ROOT. - -Package: root-plugin-graf2d-x11 -Architecture: any -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Provides: root-system-display -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: X window system plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the X11 plug-in for ROOT, which allows using an - X display for showing graphics. - -Package: root-plugin-graf3d-x3d -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-plugin-graf3d-gl -Description: X 3D plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the X 3D plug-in for ROOT. This plugin provides - 3D rendering of volumes and shapes defined in ROOT. Included is also - a low quality 3D viewer for ROOT defined geometries. - -Package: root-plugin-gui-fitpanel -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI element for fits plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a plug-in to show a pop-up dialog when fitting - various kinds of data. - -Package: root-plugin-gui-guibuilder -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI editor plug-in for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a plug-in for editing graphical user interfaces - in ROOT. - -Package: root-plugin-gui-sessionviewer -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI to browse an interactive PROOF session - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a plug-in browsing an interactive PROOF session - in ROOT. - -Package: root-plugin-hist-hbook -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Conflicts: root-plugin-hbook -Replaces: root-plugin-hbook (<< 5.19.01-1) -Description: Hbook plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the Hbook plug-in for ROOT, allowing you to - access legacy Hbook files (NTuples and Histograms from PAW). - -Package: root-plugin-hist-histpainter -Architecture: any -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Histogram painter plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package a painter of histograms for ROOT. - -Package: root-plugin-hist-spectrumpainter -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: libroot-dev -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Spectrum painter plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package a painter of spectra for ROOT. - -Package: root-plugin-io-sql -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: root-db-client | root-plugin-io-mysql -Description: SQL plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the SQL plug-in for ROOT, that allows - transparent access to files data via an SQL database, using ROOT's - TFile interface. - -Package: root-plugin-io-xml -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: XML reader plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the XML reader plug-in for ROOT. This package - provide a plug-in to parse XML files with ROOT. - -Package: root-plugin-math-fumili -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Provides: root-fitter -Description: Fumili plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the fumili plug-in for ROOT. This provides an - alternative fitting algorithm for ROOT. - - -Package: root-plugin-proof-xproof -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Suggests: root-plugin-net-netx -Replaces: root-proofd -Conflicts: root-proofd (<= 5.13.05-4) -Description: XPROOF plugin for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the xproof plug-in for ROOT. This provides a - client to be used in a PROOF environment. - - -Package: root-plugin-tree-treeviewer -Architecture: any -Conflicts: libroot-dev (<< 5.19.01-1) -Replaces: libroot-dev -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: GUI to browse an a ROOT tree - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains a plug-in for browsing a ROOT tree. - in ROOT. - -Package: root-system-proofd -Architecture: any -Depends: root-system-common, lsb-base (>= 3.0-6), openbsd-inetd | inet-superserver, ${shlibs:Depends}, ${misc:Depends} -Recommends: root-system-bin, libroot-dev, root-file-server | root-system-rootd -Description: Parallel ROOt Facility - distributed, parallel computing - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the PROOF server. proofd is the core daemon of - the PROOF (Parallel ROOt Facility) system for distributed parallel - computing. Installing this package on a machine, makes it possible - for the machine to participate in a parallel computing farm (cluster - or via the Internet), either as a master or a slave, using a - transparent interface. - - -Package: root-system-rootd -Architecture: any -Depends: root-system-common, lsb-base (>= 3.0-6), adduser, openbsd-inetd | inet-superserver, ${shlibs:Depends}, ${misc:Depends} -Recommends: root-system-bin, libroot-dev -Provides: root-file-server -Description: ROOT remote file server - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains ROOT file server. rootd is a server for ROOT - files, serving files over the Internet. Using this daemon, you can - access files on the machine from anywhere on the Internet, using a - transparent interface. - - -Package: root-system-doc -Section: doc -Architecture: all -Suggests: root-system-bin -Depends: ${misc:Depends} -Description: Tutorial and test suit for the ROOT system - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the tutorial scripts and test suit for the ROOT - system, as well as the automatically generated HTML class documentation. - - -Package: root-system-bin -Architecture: any -Depends: ${shlibs:Depends}, root-plugin-graf2d-asimage, ${misc:Depends} -Recommends: root-plugin-graf3d-gl, libroot-math-minuit | root-fitter, libroot-core-dev, root-plugin-graf2d-x11 | root-system-display -Description: Numerical data analysis framework - general applications - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - With the data defined as a set of objects, specialized storage methods - can give direct access to the separate attributes of the selected - objects, without having to touch the bulk of the data. Included are - histogramming methods in 1, 2 and 3 dimensions, curve fitting, function - evaluation, minimization, graphics and visualization classes to allow the - easy creation of an analysis system that can query and process the data - interactively or in batch mode. - . - The command language, the scripting (or macro) language, and the - programming language are all C++, thanks to the built-in CINT C++ - interpreter. This interpreter removes the time consuming compile/link - cycle, allowing for fast prototyping of the macros, and providing a - good environment to learn C++. If more performance is needed, the - interactively developed macros can be compiled using a C++ compiler. - . - The system has been designed in such a way that it can query its - databases in parallel on MPP machines or on clusters of workstations - or high-end PCs. ROOT is an open system that can be dynamically - extended by linking external libraries. This makes ROOT a premier - platform on which to build data acquisition, simulation and data - analysis systems. - -Package: libroot-core5.24 -Section: libs -Architecture: any -Depends: root-system-common, ${shlibs:Depends}, ${misc:Depends} -Recommends: root-system-bin, libroot-core-dev -Provides: libroot-core -Description: Numerical data analysis framework - shared runtime libraries - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains the shared libraries used by the ROOT - system. The libraries contain numerous C++ class definitions for - various purposes, some of which are: - * System abstraction - * Thin Thread API - * Histograming - * Persistent objects - * GUI API - and many others. Refer also to the package description of - root-bin. - -Package: libroot-core-dev -Section: libdevel -Architecture: any -Depends: ${shlibs:Depends}, zlib1g-dev, libssl-dev, comerr-dev, libkrb5-dev, libx11-dev, libfreetype6-dev, libpcre3-dev, libxpm-dev, g++ | c++-compiler, ${python:Depends}, cfortran, libroot-io-dev, libroot-net-dev, ${misc:Depends} -Suggests: root-system-bin, gccxml -Recommends: libroot-geom-dev, libroot-gui-dev, libroot-hist-dev, libroot-proof-dev, libroot-tree-dev -Provides: libroot-dev -Replaces: libroot-dev (<< 5.19.01-1) -Conflicts: libroot-dev (<< 5.19.01-1) -Description: Header files for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains header files (Class declarations) for the ROOT - class libraries. Please refer the package documentation for libroot - and root-bin. - -Package: libroot-static -Section: libdevel -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: libroot-core-dev -Description: Static archive of ROOT libraries - This package contains static archive of the ROOT classes. - -Package: root-system-common -Architecture: all -Depends: ttf-freefont | root-ttf, ttf-opensymbol | root-ttf, ${misc:Depends} -Description: Common files for ROOT - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package contains some common infrastructure files for ROOT. - - -Package: ttf-root-installer -Architecture: all -Section: contrib/fonts -Depends: ${misc:Depends}, wget (>= 1.9.1-4), xfonts-utils | xutils (>= 4.0.2), debconf (>= 1.2.0), ${misc:Depends} -Provides: root-ttf -Conflicts: ttf-root -Description: True type fonts for ROOT - installer package - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - This package will install the True Type Fonts (TTF) used by ROOT. - These fonts are provided by Microsoft. Note, that you may not - redistribute this font files. This package will download the fonts - from the ROOT FTP server, or alternatively use an already downloaded - tar-file. diff --git a/build/package/debian/control.in b/build/package/debian/control.in deleted file mode 100644 index cd74b5cc51239..0000000000000 --- a/build/package/debian/control.in +++ /dev/null @@ -1,44 +0,0 @@ -Source: root-system -Section: science -Priority: optional -Maintainer: Antonio Salvucci -Homepage: http://root.cern.ch -Build-Depends: debhelper (>= 5.0.37.2), po-debconf, libssl-dev, comerr-dev, libxpm-dev, x11proto-xext-dev, libxext-dev, libfreetype6-dev, libpcre3-dev, zlib1g-dev | libz-dev, python-dev (>= 2.1), graphviz, ttf-freefont, libncurses5-dev | libcurses-dev, libgraphviz-dev, libavahi-core-dev, libxft-dev@builddepends@ -Standards-Version: 3.8.3 - -Package: root-system -Architecture: all -Depends: root-system-bin, libroot-core-dev, ${misc:Depends} -Recommends: @plugins@ -Suggests: @extras@ -Description: metapackage to install all ROOT packages - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyze large amounts of data - efficiently. - . - With the data defined as a set of objects, specialized storage methods - can give direct access to the separate attributes of the selected - objects, without having to touch the bulk of the data. Included are - histogramming methods in 1, 2 and 3 dimensions, curve fitting, function - evaluation, minimization, graphics and visualization classes to allow the - easy creation of an analysis system that can query and process the data - interactively or in batch mode. - . - The command language, the scripting (or macro) language, and the - programming language are all C++, thanks to the built-in CINT C++ - interpreter. This interpreter removes the time consuming compile/link - cycle, allowing for fast prototyping of the macros, and providing a - good environment to learn C++. If more performance is needed, the - interactively developed macros can be compiled using a C++ compiler. - . - The system has been designed in such a way that it can query its - databases in parallel on MPP machines or on clusters of workstations - or high-end PCs. ROOT is an open system that can be dynamically - extended by linking external libraries. This makes ROOT a premier - platform on which to build data acquisition, simulation and data - analysis systems. - . - This package is a metapackage to ensure the installation of all - possible ROOT packages on a system. - - diff --git a/build/package/debian/copyright b/build/package/debian/copyright deleted file mode 100644 index f042f01f70c9d..0000000000000 --- a/build/package/debian/copyright +++ /dev/null @@ -1,607 +0,0 @@ -This package was debianized by Christian Holm Christensen on -Mon, 21 Feb 2005 16:28:37 +0100. -The current maintainer is Antonio Salvucci . - -It was downloaded from :pserver:cvs@root.cern.ch:/user/cvs -(anonymous CVS access to main repository - password is "cvs") - -Upstream Authors: The ROOT Team consisting of Rene Brun - and Fons Rademakers - -License: - -Copyright: 1994, 1995, 1996, 1997, 1998, 1999 ROOT Team - 2000, 2001, 2002, 2003, 2004, 2005 ROOT Team - 2006 ROOT Team - - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 - USA - -On Debian systems, the complete text of the GNU Lesser General Public -License, version 2.1, can be found in -/usr/share/common-licenses/LGPL-2.1. - -Note, that the sources and the packages have been purged of the -non-free MS TTF Core fonts. - -The above license applies also to the following files and directories, -but they have different copyright holders, as listed below: - - asimage/src/libAfterImage.tar.gz - (and unpacked sources in asimage/src/libAfterImage/) - libAfterBase - Copyright (C) 1999-2004 Sasha Vasko - Copyright (c) 2000,2001 Andrew Ferguson - Copyright (C) 1999 Ethan Fischer - Copyright (C) 1998 Pierre Clerissi - - libAfterImage - Copyright (C) 1999-2004 Sasha Vasko - Copyright (c) 2004 Valeriy Onuchin - Copyright (c) 2001 Eric Kowalski - Copyright (c) 1999,2001 Ethan Fisher - Copyright (C) 1999-2001 Free Software Foundation, Inc. - Copyright (c) 2004 Maxim Nikulin - - asimage/src/TASImage.cxx - parts are - Copyright (c) 2002 Sasha Vasko - Copyright (c) 1998, 1999 Ethan Fischer - - auth/inc/rsaaux.h - auth/inc/rsadef.h - auth/inc/rsafun.h - auth/inc/rsalib.h - auth/src/rsaaux.cxx - auth/src/rsafun.cxx - auth/src/rsalib.cxx: - Copyright (C) 2006 Martin Nicolay - - base/inc/Byteswap.h - Copyright (C) 1997 Free Software Foundation, Inc. - - base/src/TRandom3.cxx - Copyright (C) 1997 Makoto Matsumoto and Takuji Nishimura. - - clib/inc/Demangle.h - Copyright 1992 Free Software Foundation, Inc. - - clib/inc/mmprivate.h - Copyright 1990, 1991, 1992 Free Software Foundation - - eg/inc/TVirtualMCDecayer.h - Copyright (C) 2006, Rene Brun and Fons Rademakers. * - Copyright (C) 1998-1999, ALICE Experiment at CERN. - - gl/src/gl2ps.h - Copyright (C) 1999-2005 Christophe Geuzaine - - gl/src/CsgOps.cxx - Copyright (C) 2003-2004 Laurence Bourn - Copyright (C) 1997-1998 Gino van den Bergen - - graf/inc/TGraphSmooth.h - graf/src/TGraphSmooth.cxx - Copyright(c) 2001, Dr. Christian Stratowa, Vienna, Austria. - - gui/inc/TGApplication.h - gui/src/TGApplication.cxx - Copyright (C) 2001, Guy Barrand. - - gui/inc/TGMdi.h - gui/inc/TGMdiFrame.h - gui/inc/TGMdiMainFrame.h - gui/inc/TGMdiMenu.h - Copyright (C) 1998-2002 by Harald Radke, Hector Peraza. - - gui/inc/TGTableLayout.h - gui/src/TGTableLayout.cxx - Copyright (C) 2001, Brett Viren - - gui/ - Except as noted above, the code in this directory is based on - Xclass95, which as the following copyright notice. - Copyright (C) 1996, 1997 David Barth, Ricky Ralston, Hector - Peraza. - - mathcore/inc/Math/GenVector/etaMax.h - Copyright (c) 2005, FNAL MathLib Team - - physics/inc/TFeldmanCousins.h - physics/inc/TFeldmanCousins.h - physics/src/TFeldmanCousins.cxx - Copyright (C) 2001, Liverpool University. - - physics/src/TRolke.cxx - Copyright CERN 2004 Jan.Conrad@cern.ch - - qt/ - Copyright (C) 2002 by Valeri Fine. - - table/inc/TDsKey.h - table/inc/TFileIter.h - table/inc/TIndexTable.h - table/inc/TTableMap.h - table/src/TDsKey.cxx - table/src/TFileIter.cxx - table/src/TIndexTable.cx - table/src/TTableMap.cxx - Copyright (C) 1995-2001, Rene Brun and Fons Rademakers. - Copyright (C) 2001 [BNL] Brookhaven National Laboratory. - - eg/inc/TVirtualMCDecayer.h - eg/inc/TVirtualMCDecayer.cxx - vmc/ - Copyright (C) 2006, Rene Brun and Fons Rademakers. - Copyright(c) 1998-1999, 2002, 2003, ALICE Experiment at CERN, All - rights reserved. - - win32gdk/gdk - Various files are copyright of different parties. The copyright - statements is summarised below. - Copyright (c) 1995-1999 Peter Mattis, Spencer Kimball and Josh MacDonald - Copyright (c) 1998-2000 Tor Lillqvist - Copyright (c) 1998-2000 Red Hat, Inc. - Copyright (c) 1997 by Federico Mena (port to Gtk/Gdk) - Copyright (c) 1997 by Ripley Software Development - Copyright (c) 1994,1995 John L. Cwikla - Copyright (c) 2000 Ali Abdin - Copyright (c) 1998, 1999, 2000 Tim Janik and Red Hat, Inc. - Copyright (c) 1999, 2000 Tom Tromey - - winnt/src/TWinNTSystem.cxx - This file contains code that is - Copyright (C) 2000-2004 Computer Graphics Systems Group at the - Hasso-Plattner-Institute (HPI), Potsdam, Germany. - - xmlparser/src/TSAXParser.cxx - xmlparser/src/TXMLParser.cxx - Code is based on libxml++, which is Copyright (C) 2000 by Ari - Johnson - -The following files and directories are not licensed under the GNU -Lesser General Public License, but carry their own license and -copyright statements. These are reproduced below. - - build/rmkdepend/def.h - build/rmkdepend/imakemdep.h - Copyright (c) 1993, 1994 X Consortium - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, copy, - modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR - ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of the X Consortium - shall not be used in advertising or otherwise to promote the sale, - use or other dealings in this Software without prior written - authorization from the X Consortium. - - build/rmkdepend/ifparser.h - Copyright 1992 Network Computing Devices, Inc. - - Permission to use, copy, modify, and distribute this software and - its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both that copyright notice and this permission - notice appear in supporting documentation, and that the name of - Network Computing Devices may not be used in advertising or - publicity pertaining to distribution of the software without - specific, written prior permission. Network Computing Devices - makes no representations about the suitability of this software - for any purpose. It is provided ``as is'' without express or - implied warranty. - - NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO - THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE - FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN - AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, - ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF - THIS SOFTWARE. - - cint/ - Copyright (c) 2006 Masaharu Goto (gotom@hanno.jp) - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, copy, - modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - except where otherwise noted in this file. - - cint/stl/bstring.h - Copyright(c) 1995~2006 Masaharu Goto (root-cint@cern.ch) - - Same license as the rest of the cint directory. - - Copyright (c) 1994-1995 Modena Software Inc., - - Permission to use, copy, modify, distribute and sell this software - and its documentation for any purpose is hereby granted without - fee, provided that the above copyright notice appear in all copies - and that both that copyright notice and this permission notice - appear in supporting documentation. Modena Software, Inc. makes - no representations about the suitability of this software for any - purpose. It is provided "as is" without express or implied - warranty. - - cintex - Copyright CERN, CH-1211 Geneva 23, 2004-2005, All rights reserved. - - Permission to use, copy, modify, and distribute this software for - any purpose is hereby granted without fee, provided that this - copyright and permissions notice appear in all copies and - derivatives. - - This software is provided "as is" without express or implied - warranty. - - ftgl - [Apparently, ftql is dual licensed on the LGPL and a much more - liberal license. I have reproduced the non-LGPL license below.] - - Copyright (C) 2001-3 Henry Maddocks - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, copy, - modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - krb5auth/inc/Krb5Auth.h - krb5auth/src/Krb5Auth.cxx - Parts of these file are copied from the MIT krb5 distribution and - are subject to the following license: - - Copyright 1990,1991 by the Massachusetts Institute of Technology. - All Rights Reserved. - - Export of this software from the United States of America may - require a specific license from the United States Government. It - is the responsibility of any person or organization contemplating - export to obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation, and that - the name of M.I.T. not be used in advertising or publicity - pertaining to distribution of the software without specific, - written prior permission. Furthermore if you modify this software - you must label your software as modified software and not - distribute it in such a fashion that it might be confused with the - original M.I.T. software. M.I.T. makes no representations about - the suitability of this software for any purpose. It is provided - "as is" without express or implied warranty. - - - mathmore/src/complex_quartic.h - Copyright (C) 2003 CERN and K.S. K\"{o}lbig - Licensed under the GNU GPL version 2 - - pcre/src/pcre-6.4.tar.gz - Copyright (c) 1997-2000 University of Cambridge - - Permission is granted to anyone to use this software for any - purpose on any computer system, and to redistribute it freely, - subject to the following restrictions: - - 1. This software is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. - - 2. The origin of this software must not be misrepresented, either - by explicit claim or by omission. In practice, this means that - if you use PCRE in software which you distribute to others, - commercially or otherwise, you must put a sentence like this - - Regular expression support is provided by the PCRE library - package, which is open source software, written by Philip - Hazel, and copyright by the University of Cambridge, England. - - somewhere reasonably visible in your documentation and in any - relevant files or online help data or similar. A reference to - the ftp site for the source, that is, to - - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ - - should also be given in the documentation. - - 3. Altered versions must be plainly marked as such, and must not - be misrepresented as being the original software. - - 4. If PCRE is embedded in any software that is released under the - GNU General Purpose Licence (GPL), then the terms of that - licence shall supersede any condition above with which it is - incompatible. - - quadp - Parts of this file are copied from the OOQP distribution and are - subject to the following license: - - COPYRIGHT 2001 UNIVERSITY OF CHICAGO - - The copyright holder hereby grants you royalty-free rights to use, - reproduce, prepare derivative works, and to redistribute this - software to others, provided that any changes are clearly - documented. - - reflex - Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights - reserved. - - Permission to use, copy, modify, and distribute this software for - any purpose is hereby granted without fee, provided that this - copyright and permissions notice appear in all copies and - derivatives. - - This software is provided "as is" without express or implied - warranty. - - Except: - - reflex/inc/Reflex/Any.h - Copyright Kevlin Henney, 2000, 2001, 2002. All rights reserved. - - Permission to use, copy, modify, and distribute this software for - any purpose is hereby granted without fee, provided that this - copyright and permissions notice appear in all copies and - derivatives. - - This software is provided "as is" without express or implied - warranty. - - roofit - Copyright (c) 2000-2005, Regents of the University of California - and Stanford University. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF - THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - - Except (same license): - - roofit/inc/RooEffGenContext.h - roofit/src/RooEffGenContext.cxx - Copyright (c) 2005, NIKHEF. All rights reserved. - - roofit/inc/RooParametricStepFunction.h - roofit/src/RooParametricStepFunction.cxx - Copyright (c) 2000-2005, Stanford University. All rights reserved. - - roofit/src/RooGaussKronrodIntegrator1D.cxx - Copyright (c) 2000-2005, Regents of the University of California and - Stanford University. All rights reserved. - - - smatrix/inc/Math/StaticCheck.h - Copyright (c) 2001 by Andrei Alexandrescu - - This code accompanies the book: Alexandrescu, Andrei. "Modern C++ - Design: Generic Programming and Design Patterns - Applied". Copyright (c) 2001. Addison-Wesley. - - Permission to use, copy, modify, distribute and sell this software - for any purpose is hereby granted without fee, provided that the - above copyright notice appear in all copies and that both that - copyright notice and this permission notice appear in supporting - documentation. - - The author or Addison-Wesley Longman make no representations about - the suitability of this software for any purpose. It is provided - "as is" without express or implied warranty. - - table/inc/TDataSetIter.h - Copyright(c) 1997~2001 [BNL] Brookhaven National Laboratory - Copyright(c) 1997~2001 Valery Fine (fine.gov) - License unclear. - - tmva - Copyright (c) 2005-2006, Regents of CERN (Switzerland), the - University of Victoria (Canada), the University of Heidelberg - (Germany), and LAPP (France) - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials - provided with the distribution. - - * Neither the name of the above mentioned organizations nor the - names of its contributors may be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF - THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - - unuran/src/unuran-*-root - Copyright (c) 2000-2007 Wolfgang Hoermann and Josef Leydold - Licensed under the GNU GPL version 2 - - x11/inc/Xpm.h - Copyright (C) 1989-95 GROUPE BULL - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, copy, - modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL GROUPE BULL BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of GROUPE BULL shall - not be used in advertising or otherwise to promote the sale, use - or other dealings in this Software without prior written - authorization from GROUPE BULL. - - x11/src/Rotated.cxx - Copyright (c) 1993 Alan Richardson (mppa3@uk.ac.sussex.syma) - - Permission to use, copy, modify, and distribute this software and - its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both the copyright notice and this permission - notice appear in supporting documentation. All work developed as - a consequence of the use of this program should duly acknowledge - such use. No representations are made about the suitability of - this software for any purpose. It is provided "as is" without - express or implied warranty. - - x3d/inc/x3d.h - Copyright 1992 Mark Spychalla - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that copyright notice and this permission - notice appear in supporting documentation, and that the name of - Mark Spychalla not be used in advertising or publicity pertaining - to distribution of the software without specific, written prior - permission. Mark Spychalla makes no representations about the - suitability of this software for any purpose. It is provided "as - is" without express or implied warranty. - - Mark Spychalla disclaims all warranties with regard to this - software, including all implied warranties of merchantability and - fitness, in no event shall Mark Spychalla be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether in - an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. Local Variables: mode: text End: - - zip/ - Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any - damages arising from the use of this software. - - Permission is granted to anyone to use this software for any - purpose, including commercial applications, and to alter it and - redistribute it freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - 3. This notice may not be removed or altered from any source - distribution. - -Local Variables: - mode: text -End: diff --git a/build/package/debian/libroot-bindings-python-dev.links.in b/build/package/debian/libroot-bindings-python-dev.links.in deleted file mode 100644 index e58dbf18766d9..0000000000000 --- a/build/package/debian/libroot-bindings-python-dev.links.in +++ /dev/null @@ -1 +0,0 @@ -@prefix@/lib/root/@libvers@/ROOT.py /usr/share/python-support/root/ROOT.py diff --git a/build/package/debian/libroot-bindings-ruby-dev.links.in b/build/package/debian/libroot-bindings-ruby-dev.links.in deleted file mode 100644 index 77430f36bb12a..0000000000000 --- a/build/package/debian/libroot-bindings-ruby-dev.links.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/root/libRuby.so @rubyarchdir@/libRuby.so diff --git a/build/package/debian/libroot-clarens.overrides.in b/build/package/debian/libroot-clarens.overrides.in deleted file mode 100644 index 3c0b85111431c..0000000000000 --- a/build/package/debian/libroot-clarens.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-clarens@libvers@: postinst-has-useless-call-to-ldconfig -libroot-clarens@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-core.postinst b/build/package/debian/libroot-core.postinst deleted file mode 100644 index 3533c435a7586..0000000000000 --- a/build/package/debian/libroot-core.postinst +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -e - -case "$1" in - - configure) - ldconfig - ;; - - abort-upgrade) - # do nothing - ;; - - abort-remove) - # do nothing - ;; - - abort-deconfigure) - # do nothing - ;; - - *) - echo "$0: incorrect arguments: $*" >&2 - exit 1 - ;; - -esac - -#DEBHELPER# diff --git a/build/package/debian/libroot-ldap.overrides.in b/build/package/debian/libroot-ldap.overrides.in deleted file mode 100644 index c3996b85d633e..0000000000000 --- a/build/package/debian/libroot-ldap.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-ldap@libvers@: postinst-has-useless-call-to-ldconfig -libroot-ldap@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-mathmore.overrides.in b/build/package/debian/libroot-mathmore.overrides.in deleted file mode 100644 index be386f2066b57..0000000000000 --- a/build/package/debian/libroot-mathmore.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-mathmore@libvers@: postinst-has-useless-call-to-ldconfig -libroot-mathmore@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-minuit.overrides.in b/build/package/debian/libroot-minuit.overrides.in deleted file mode 100644 index 8d88a51e1827a..0000000000000 --- a/build/package/debian/libroot-minuit.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-minuit@libvers@: postinst-has-useless-call-to-ldconfig -libroot-minuit@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-mlp.overrides.in b/build/package/debian/libroot-mlp.overrides.in deleted file mode 100644 index 6cff600c93491..0000000000000 --- a/build/package/debian/libroot-mlp.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-mlp@libvers@: postinst-has-useless-call-to-ldconfig -libroot-mlp@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-python-dev.links.in b/build/package/debian/libroot-python-dev.links.in deleted file mode 100644 index 7cbc4458db16d..0000000000000 --- a/build/package/debian/libroot-python-dev.links.in +++ /dev/null @@ -1,9 +0,0 @@ -@prefix@/lib/root/@libvers@/libPyROOT.so @pythondir@/libPyROOT.so -@prefix@/lib/root/@libvers@/ROOT.py /usr/share/python-support/root/ROOT.py -@prefix@/lib/root/@libvers@/GDMLROOT.py /usr/share/python-support/root/GDMLROOT.py -@prefix@/lib/root/@libvers@/ROOTBinding.py /usr/share/python-support/root/ROOTBinding.py -@prefix@/lib/root/@libvers@/ROOTGDML.py /usr/share/python-support/root/ROOTGDML.py -@prefix@/lib/root/@libvers@/ROOTwriter.py /usr/share/python-support/root/ROOTwriter.py -@prefix@/lib/root/@libvers@/processes.py /usr/share/python-support/root/processes.py -@prefix@/lib/root/@libvers@/units.py /usr/share/python-support/root/units.py -@prefix@/lib/root/@libvers@/writer.py /usr/share/python-support/root/writer.py diff --git a/build/package/debian/libroot-python.overrides.in b/build/package/debian/libroot-python.overrides.in deleted file mode 100644 index 4cdc68bd187b0..0000000000000 --- a/build/package/debian/libroot-python.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-python@libvers@: postinst-has-useless-call-to-ldconfig -libroot-python@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-quadp.overrides.in b/build/package/debian/libroot-quadp.overrides.in deleted file mode 100644 index bd4992e90c25a..0000000000000 --- a/build/package/debian/libroot-quadp.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-quadp@libvers@: postinst-has-useless-call-to-ldconfig -libroot-quadp@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-roofit.copyright b/build/package/debian/libroot-roofit.copyright deleted file mode 100644 index 3b16eba59d078..0000000000000 --- a/build/package/debian/libroot-roofit.copyright +++ /dev/null @@ -1,40 +0,0 @@ -This package was debianized by Christian Holm Christensen on -Mon, 21 Feb 2005 16:28:37 +0100. -The current maintainer is Antonio Salvucci . - -It was downloaded from :pserver:cvs@root.cern.ch:/user/cvs -(anonymous CVS access to main repository - password is "cvs") - -Copyright: 2005 Wouter Verkerke and David Kirkby - -Upstream Authors: Wouter Verkerke and -David Kirkby - -License: - -RooFit --- Copyright (c) 2000-2005, Regents of the University of -California and Stanford University All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/package/debian/libroot-roofit.overrides.in b/build/package/debian/libroot-roofit.overrides.in deleted file mode 100644 index 9c2a3a8238bd5..0000000000000 --- a/build/package/debian/libroot-roofit.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-roofit@libvers@: postinst-has-useless-call-to-ldconfig -libroot-roofit@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-ruby-dev.links.in b/build/package/debian/libroot-ruby-dev.links.in deleted file mode 100644 index 77430f36bb12a..0000000000000 --- a/build/package/debian/libroot-ruby-dev.links.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/root/libRuby.so @rubyarchdir@/libRuby.so diff --git a/build/package/debian/libroot-ruby.overrides.in b/build/package/debian/libroot-ruby.overrides.in deleted file mode 100644 index f4b1db9e75563..0000000000000 --- a/build/package/debian/libroot-ruby.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-ruby@libvers@: postinst-has-useless-call-to-ldconfig -libroot-ruby@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-tmva.overrides.in b/build/package/debian/libroot-tmva.overrides.in deleted file mode 100644 index c28e70f20ef0c..0000000000000 --- a/build/package/debian/libroot-tmva.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-tmva@libvers@: postinst-has-useless-call-to-ldconfig -libroot-tmva@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot-unuran.overrides.in b/build/package/debian/libroot-unuran.overrides.in deleted file mode 100644 index b0fb81e4383ed..0000000000000 --- a/build/package/debian/libroot-unuran.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot-unuran@libvers@: postinst-has-useless-call-to-ldconfig -libroot-unuran@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/libroot.overrides.in b/build/package/debian/libroot.overrides.in deleted file mode 100644 index 0beef1a0e06fa..0000000000000 --- a/build/package/debian/libroot.overrides.in +++ /dev/null @@ -1,3 +0,0 @@ -libroot@libvers@: postinst-has-useless-call-to-ldconfig -libroot@libvers@: postrm-has-useless-call-to-ldconfig - diff --git a/build/package/debian/po/POTFILES.in b/build/package/debian/po/POTFILES.in deleted file mode 100644 index b0ced0392c8dd..0000000000000 --- a/build/package/debian/po/POTFILES.in +++ /dev/null @@ -1 +0,0 @@ -[type: gettext/rfc822deb] ttf-root-installer.templates diff --git a/build/package/debian/po/cs.po b/build/package/debian/po/cs.po deleted file mode 100644 index 3a42550f450b0..0000000000000 --- a/build/package/debian/po/cs.po +++ /dev/null @@ -1,121 +0,0 @@ -# Czech translation of root-system debconf messages. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the root-system package. -# Miroslav Kure , 2008, 2009 -# -msgid "" -msgstr "" -"Project-Id-Version: root-system\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-28 13:37+0100\n" -"Last-Translator: Miroslav Kure \n" -"Language-Team: Czech \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Nesvobodné fonty" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Fonty v tomto balíku byly poskytnuty Microsoftem „v zájmu meziplatformní " -"kompatibility“. To již nÄ›jakou dobu neplatí, ale fonty jsou stále dostupné " -"od tÅ™etích stran." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Jste oprávnÄ›ni si tyto fonty stáhnout a používat, ovÅ¡em nesmíte je " -"distribuovat v pozmÄ›nÄ›né podobÄ› (mj. nesmíte soubory pÅ™ejmenovat, nebo " -"pozmÄ›nit formát archivu)." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Adresář s Microsoftími fonty (pokud již byly staženy):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Pokud jste již stáhli Microsoft TrueType Core Fonts z FTP serveru ROOT " -"(ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), zadejte jméno adresáře, " -"který obsahuje tento archiv." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Pokud jste fonty zatím nestáhli, ponechte prázdné a fonty se stáhnou " -"automaticky (cca 1.6 MB)." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Pokud zrovna nejste pÅ™ipojeni k Internetu, nebo pokud chcete fonty stáhnout " -"jindy, zadejte „none“ a instalace se pÅ™eruší." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Soubory s fonty nenalezeny" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Zadaný adresář neexistuje, nebo se v nÄ›m nenachází Microsoft TrueType Core " -"Fonts pro ROOT." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Archivovat tyto soubory do (volitelné):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Pokud byste chtÄ›li mít trvalý archiv komprimovaných fontů Microsoft Core, " -"zadejte adresář, kam je chcete uložit. Ponecháte-li prázdné, budou soubory " -"po instalaci smazány." - -#~ msgid "These fonts are not free" -#~ msgstr "Tyto fonty nejsou svobodné" diff --git a/build/package/debian/po/da.po b/build/package/debian/po/da.po deleted file mode 100644 index 69cfa7b30c41f..0000000000000 --- a/build/package/debian/po/da.po +++ /dev/null @@ -1,171 +0,0 @@ -# -# Translators, if you are not familiar with the PO format, gettext -# documentation is worth reading, especially sections dedicated to -# this format, e.g. by running: -# info -n '(gettext)PO Files' -# info -n '(gettext)Header Entry' -# -# Some information specific to po-debconf are available at -# /usr/share/doc/po-debconf/README-trans -# or http://www.debian.org/intl/l10n/po-debconf/README-trans -# -# Developers do not need to manually edit POT or PO files. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -#, fuzzy -#| msgid "" -#| "These fonts were provided by Microsoft \"in the interest of cross-" -#| "platform compatibility\". This is no longer the case, but they are still " -#| "available from third parties." -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Disse fonte er fra Microsoft \"med henblik på kryds kompatbilitet mellem " -"platforme\". De er dog ikke længere tilgængelige fra Microsoft, men kan " -"hentes fra andensteds." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -#, fuzzy -#| msgid "" -#| "You are free to download these fonts and use them for your own use, but " -#| "you may not redistribute them in modified form, including changes to the " -#| "file name or packaging format." -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Du kan downloade disse fonte og bruge dem selv, men du må ikke " -"redistriburerer modificerede udgaver, hvilket også gælder ændringer i " -"filnavne og pakke format." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -#, fuzzy -#| msgid "Directory holding MS fonts (if already downloaded):" -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Katalog hvor MS fontene er (hvis allerede hentet):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -#, fuzzy -#| msgid "" -#| "If you have already downloaded Microsoft's TrueType Core Fonts from the " -#| "ROOT FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), type the " -#| "name of the directory which contains the archive." -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Hvis du allerede har hentet Microsofts TrueType Core Fonte fra ROOTs FTP " -"server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), skriv navnet på det " -"katalog hvor arkivet er." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -#, fuzzy -#| msgid "" -#| "If you haven't yet downloaded these fonts, leave this blank and the fonts " -#| "will be downloaded for you. Approximately 1.6 MB will need to be " -#| "downloaded." -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Hvis du ikke har hentet arkivet, lad dette felt være blankt - så vil fontene " -"automatisk blive hentet for dig. Cirka 1.6 MB data vil blive hentet." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -#, fuzzy -#| msgid "" -#| "If you are not connected to the internet or do not wish to download these " -#| "fonts now, enter \"none\" to abort." -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Hvis du ikke er forbundet til internettet eller du ikke ønsker at hente " -"disse fonte nu, så skriv \"none\" for at afslutte." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -#, fuzzy -msgid "Font files not found" -msgstr "Font filerne er ikke fundet" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -#, fuzzy -#| msgid "" -#| "The directory you entered either did not exist, or did not contain the " -#| "Microsoft TrueType Core Fonts for ROOT. Please re-enter the directory " -#| "containing the Microsoft font files or enter \"none\" to abort." -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Det katalog du specificerede findes ikke, eller indeholder ikke Microsoft " -"TrueType Core Fonts til ROOT. Skriv et nyt katalog navn, eller \"none\" for " -"at afslutte." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -#, fuzzy -#| msgid "Archive these files to (optional):" -msgid "Archive files to (optional):" -msgstr "Arkiver disse filer i (optional):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -#, fuzzy -#| msgid "" -#| "If you would like to keep a permanent archive of the compressed Microsoft " -#| "Core fonts, enter the directory where you'd like them stored. If you " -#| "leave this blank, the files will be deleted after installation." -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Hvis du vil beholde et permanent arkiv af de komprimerede Microsoft Core " -"fonts, indtast da det katalog navn hvor du have dem gemt. Hvis du lader " -"dette felt være blankt vil filerne blive slettet efter installationen." - -#, fuzzy -#~ msgid "These fonts are not free" -#~ msgstr "Disse fonte er ikke frie." diff --git a/build/package/debian/po/de.po b/build/package/debian/po/de.po deleted file mode 100644 index a92ae486a091f..0000000000000 --- a/build/package/debian/po/de.po +++ /dev/null @@ -1,123 +0,0 @@ -# Translation of root-system debconf templates to German -# Copyright (C) Helge Kreutzmann , 2008. -# Copyright (C) Thomas Müller , 2009. -# This file is distributed under the same license as the root-system package. -# -msgid "" -msgstr "" -"Project-Id-Version: root-system 5.18.00-1\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-18 19:41+0100\n" -"Last-Translator: Thomas Müller \n" -"Language-Team: de \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Nicht freie Schriften" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Die Schriften in diesem Paket wurden von Microsoft »im Interesse der " -"Plattform-übergreifenden Kompatibilität« bereitgestellt. Dies ist nicht mehr " -"der Fall, aber sie sind noch von dritten Stellen verfügbar." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Sie dürfen diese Schriften herunterladen und für eigene Zwecke verwenden, " -"aber Sie dürfen sie nicht in veränderter Form weitervertreiben. Dazu gehören " -"auch Änderungen am Dateinamen und Paketformat." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "" -"Verzeichnis, in dem sich die Microsoft-Schriften befinden (falls bereits " -"heruntergeladen):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Falls Sie die TrueType Core Fonts von Microsoft bereits vom ROOT FTP-Server " -"(ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz) heruntergeladen haben, geben " -"Sie bitte den Namen des Verzeichnisses, in dem sich das Archiv befindet, an." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Falls Sie diese Schriften noch nicht heruntergeladen haben, lassen Sie dies " -"leer und die Schriften werden automatisch heruntergeladen. Die Größe des " -"Downloads beträgt ungefähr 1,6 MB." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Falls Sie nicht mit dem Internet verbunden sind oder nicht wünschen, dass " -"diese Schriften jetzt heruntergeladen werden, geben Sie »none« ein, um " -"abzubrechen." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Schriftdateien nicht gefunden" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Das Verzeichnis, das Sie angegeben haben, existiert entweder nicht oder " -"enthält die Microsoft TrueType Core Fonts für ROOT nicht." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Archiviere diese Dateien nach (optional):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Falls Sie ein permanentes Archiv der komprimierten Microsoft Core-Schriften " -"behalten möchten, geben Sie bitte das Verzeichnis an, in dem dieses " -"gespeichert werden soll. Falls Sie dies leer lassen, werden die Dateien nach " -"der Installation gelöscht." diff --git a/build/package/debian/po/es.po b/build/package/debian/po/es.po deleted file mode 100644 index 9c26c01b969fd..0000000000000 --- a/build/package/debian/po/es.po +++ /dev/null @@ -1,143 +0,0 @@ -# root-system po-debconf translation to Spanish -# Copyright (C) 2009 Software in the Public Interest -# This file is distributed under the same license as the root-system package. -# -# Changes: -# - Initial translation -# Francisco Javier Cuadrado , 2009 -# -# Traductores, si no conocen el formato PO, merece la pena leer la -# documentación de gettext, especialmente las secciones dedicadas a este -# formato, por ejemplo ejecutando: -# info -n '(gettext)PO Files' -# info -n '(gettext)Header Entry' -# -# Equipo de traducción al español, por favor lean antes de traducir -# los siguientes documentos: -# -# - El proyecto de traducción de Debian al español -# http://www.debian.org/intl/spanish/ -# especialmente las notas y normas de traducción en -# http://www.debian.org/intl/spanish/notas -# -# - La guía de traducción de po's de debconf: -# /usr/share/doc/po-debconf/README-trans -# o http://www.debian.org/intl/l10n/po-debconf/README-trans -# -msgid "" -msgstr "" -"Project-Id-Version: root-system 5.18.00-2.2\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-16 17:40+0100\n" -"Last-Translator: Francisco Javier Cuadrado \n" -"Language-Team: Debian l10n Spanish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Tipografías no libres" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Microsoft proporcionó las tipografías contenidas en este paquete «en " -"beneficio de la compatibilidad multiplataforma». Desde hace tiempo esto ya " -"no es así, aunque siguen estando disponibles gracias a terceras partes." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Es libre para descargar estas tipografías y utilizarlas para sus propios " -"propósitos, pero no tiene permiso para redistribuirlas modificadas, " -"incluyendo cambios en el nombre del archivo o en el formato del paquete." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "" -"Directorio que contiene las tipografías de Microsoft (si ya están " -"descargadas):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Si ya ha descargado las tipografías «TrueType» básicas de Microsoft desde el " -"servidor FTP de ROOT («ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz»), " -"introduzca el nombre del directorio que contiene los archivos." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Si todavía no ha descargado estas tipografías, deje en blanco este campo y " -"las tipografías se descargarán automáticamente. El tamaño de la descarga es " -"aproximadamente de 1.6 MB." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Si no está conectado a internet o no quiere descargar estas tipografías " -"ahora, introduzca «none» (no) para abortar la descarga." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "No se han encontrado los archivos de las tipografías" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"El directorio que ha introducido no existe o no contiene las tipografías " -"«TrueType» básicas de Microsoft para ROOT." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Guardar los archivos en (opcional):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Si quiere guardar una copia permanente con las tipografías básicas de " -"Microsoft comprimidas, introduzca el directorio dónde querría almacenarlas. " -"Si deja este campo en blanco, los archivos se borrarán después de completar " -"la instalación." diff --git a/build/package/debian/po/eu.po b/build/package/debian/po/eu.po deleted file mode 100644 index 57db5af19952e..0000000000000 --- a/build/package/debian/po/eu.po +++ /dev/null @@ -1,124 +0,0 @@ -# translation of eu.po to Basque -# translation of root-system debconf template to Euskara -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Xabier Bilbao , 2008. -# Iñaki Larrañaga Murgoitio , 2008, 2009. -msgid "" -msgstr "" -"Project-Id-Version: eu\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-18 21:43+0100\n" -"Last-Translator: Iñaki Larrañaga Murgoitio \n" -"Language-Team: Basque \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Letra-tipo ez libreak" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Letra-tipo hauek Microsoft-ek hornitu zituen \"plataformen arteko " -"bateragarritasuna errazte aldera\". Gaur egun hau horrela izan ez arren " -"letra-tipoak eskuragarri daude oraindik beste iturri batzuetatik." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Aske zara letra-tipo hauek deskargatzeko eta zure gauzetarako erabiltzeko, " -"baina ezin dituzu aldaketekin berriro banatu, barne direla fitxategiaren " -"izen-aldaketak edo paketatze-formatoaren aldaketak." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "" -"Microsoft letra-tipoak dituen direktorioa (dagoeneko deskargatu badituzu):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Microsoft-en 'TrueType Core Fonts' letra-tipoak dagoeneko deskargatu " -"badituzu ROOT ftp zerbitzaritik (ftp://root.cern.ch/root/ttf/ttf_fonts.tar." -"gz), idatz ezazu artxiboa kokatua dagoen direktorioaren izena." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Ez badituzu deskargatu, bete gabe utzi eremu hau eta letra-tipoak " -"automatikoki deskargatuko dira. Gutxi gorabehera 1.6 MB deskargatu behar " -"dira." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Ez bazaude internetera konektatuta edo geroago deskargatu nahi badituzu, " -"idatzi \"none\" konfigurazioa bertan behera uzteko." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Ez dira letra-tipoen fitxategiak aurkitu" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Zuk emandako direktorioa edo ez da zuzena edo ez ditu bere baitan " -"ROOTentzako \"Microsoft TrueType Core\" letra-tipoak." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Fitxategi hauek hemen gorde (aukerakoa):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Konprimitutako Microsoft Core letra-tipoen kopia bat gorde nahi baduzu," -"idatzi hauek gordetzea nahi duzun direktorioaren bide-izena. Eremu hau bete " -"gabe uzten baduzu fitxategiak ezabatu egingo dira instalazioaren ondoren." diff --git a/build/package/debian/po/fi.po b/build/package/debian/po/fi.po deleted file mode 100644 index d21199ca6e065..0000000000000 --- a/build/package/debian/po/fi.po +++ /dev/null @@ -1,115 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: root-system\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-03-04 19:24+0200\n" -"Last-Translator: Esko Arajärvi \n" -"Language-Team: Finnish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Finnish\n" -"X-Poedit-Country: FINLAND\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Ei-vapaat fontit" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Microsoft tarjosi tässä paketissa olevia fontteja käyttöön â€tukeakseen " -"käyttöjärjestelmien yhteensopivuuttaâ€. Näin ei enää ole, mutta fontit ovat " -"edelleen saatavissa muilta tahoilta." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Nämä fontit saa vapaasti ladata ja niitä saa käyttää, mutta eteenpäin " -"jaettaessa niiden tulee olla samassa muodossa myös tiedostojen nimien ja " -"pakkauksen osalta." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Hakemisto, jossa Microsoft-fontit ovat (jos ne on jo ladattu):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Jos paketti â€Microsoftin TrueType Core Fonts†on jo ladattu ROOTin FTP-" -"palvelimelta (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), anna hakemisto, " -"jossa paketti on." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Jos fontteja ei ole vielä ladattu, jätä kenttä tyhjäksi. Tällöin fontit " -"ladataan automaattisesti. Ladattavaa on noin 1,6 MB." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Jos et halua ladata fontteja nyt tai yhteys Internetiin ei ole auki, syötä " -"â€none†keskeyttääksesi." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Fonttitiedostoja ei löytynyt" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Annettua hakemistoa ei ole tai se ei sisältänyt ROOTin tarvitsemaa pakettia " -"â€Microsoft TrueType Core Fontsâ€." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Tallenna tiedostot hakemistoon (vapaaehtoista):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Jos Microsoftin Core-fontit halutaan säilyttää pysyvästi, anna hakemisto, " -"johon ne tallennetaan. Jos jätät kentän tyhjäksi, tiedostot poistetaan " -"asennuksen jälkeen." diff --git a/build/package/debian/po/fr.po b/build/package/debian/po/fr.po deleted file mode 100644 index 8ef96e43723ad..0000000000000 --- a/build/package/debian/po/fr.po +++ /dev/null @@ -1,125 +0,0 @@ -# Translation of root-system debconf templates to French -# Copyright (C) 2007-2009 Debian French l10n team -# This file is distributed under the same license as the root-system package. -# -# Christian Perrier , 2007-2009. -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: fr\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-15 14:30+0100\n" -"Last-Translator: Christian Perrier \n" -"Language-Team: French \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Polices non libres" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Les polices fournies dans ce paquet étaient distribuées par Microsoft « pour " -"la compatibilité entre les plate-formes ». Ce n'est désormais plus le cas " -"mais elles restent disponibles depuis des sites tiers." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Vous pouvez librement télécharger et utiliser à titre personnel ces polices, " -"mais pas les redistribuer sous une forme modifiée (y compris les noms de " -"fichiers et le format de l'archive)." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Répertoire contenant les polices Microsoft (si déjà téléchargées) :" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Si vous avez déjà téléchargé les polices TrueType de base de Microsoft " -"depuis le serveur FTP de ROOT (ftp://root.cern.ch/root/ttf/ttf_fonts.tar." -"gz), veuillez indiquer le nom du répertoire qui contient cette archive." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Si vous n'avez pas encore téléchargé ces polices, veuillez laisser ce champ " -"vide et elles seront téléchargées automatiquement (le téléchargement " -"représente environ 1,6 Mo)." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Si aucune connexion Internet n'est disponible ou que vous ne souhaitez pas " -"télécharger les polices maintenant, veuillez indiquer « none » pour annuler." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Fichiers de polices non trouvés" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Le répertoire indiqué n'existe pas ou ne contient pas les polices de base " -"TrueType de Microsoft pour ROOT." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Archiver ces fichiers dans (paramètre optionnel) :" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Si vous souhaitez conserver une archive des polices Microsoft sous forme " -"compressée, veuillez indiquer le répertoire où vous souhaitez l'enregistrer. " -"Si ce champ est laissé vide, les fichiers seront supprimés après " -"l'installation." - -#~ msgid "These fonts are not free" -#~ msgstr "Polices non libres" diff --git a/build/package/debian/po/gl.po b/build/package/debian/po/gl.po deleted file mode 100644 index 14072d7efed75..0000000000000 --- a/build/package/debian/po/gl.po +++ /dev/null @@ -1,124 +0,0 @@ -# Galician translation of root-system's debconf templates -# This file is distributed under the same license as the root-system package. -# -# Jacobo Tarrio , 2008. -# marce villarino , 2009. -msgid "" -msgstr "" -"Project-Id-Version: root-system\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-15 21:39+0100\n" -"Last-Translator: marce villarino \n" -"Language-Team: gl \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 0.3\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Tipos de letra non libres" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Os tipos de letra contidos neste paquete fornecíaos Microsoft «no interese da " -"compatibilidade entre plataformas». Xa non é o caso, pero aínda están " -"dispoñíbeis grazas a terceiros." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"É libre de descargar estes tipos de letra e empregalos vostede, pero non ten " -"permiso para redistribuílos nunha forma modificada, o que inclúe " -"modificacións ao nome do ficheiro ou no formato do paquete." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "" -"Directorio que contén tipos de letra de Microsoft (se xa se obtiveron):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Se xa descargou os tipos de letra TrueType Core de Microsoft do servidor FTP " -"de ROOT (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), indique o nome do " -"directorio que contén o arquivo." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Se aínda non obtivo estes tipos de letra, deixe isto en branco e hanse obter " -"automaticamente. Transferiranse aproximadamente uns 1,6 MB." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Se non está conectado a internet ou non quere obter agora os tipos, " -"introduza «none» para abortar." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Non se atoparon os ficheiros de tipos de letra" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"O directorio que introduciu ou non existe, ou non contén os tipos TrueType " -"Core de Microsoft en ROOT." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Arquivar os ficheiros en (opcional):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Se quere gardar un arquivo permanente dos ficheiros comprimidos dos tipos de " -"letra centrais de Microsoft, introduza o directorio no que os quere gardar. " -"Se o deixa en branco, hanse borrar os ficheiros tras instalalos." - -#~ msgid "These fonts are not free" -#~ msgstr "Estes tipos de letra non son libres" diff --git a/build/package/debian/po/it.po b/build/package/debian/po/it.po deleted file mode 100644 index 339608a999140..0000000000000 --- a/build/package/debian/po/it.po +++ /dev/null @@ -1,120 +0,0 @@ -# Italian (it) translation of debconf templates for root-system -# Copyright (C) 2008 Software in the Public Interest -# This file is distributed under the same license as the root-system package. -# Luca Monducci , 2008, 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: root-system root-system 5.18.00-2.2\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-21 14:42+0100\n" -"Last-Translator: Luca Monducci \n" -"Language-Team: Italian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Caratteri non-liberi" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"In passato i caratteri distribuiti con questo pacchetto erano forniti da " -"Microsoft \"nell'interesse della compatibilità fra piattaforme diverse\". " -"Anche se questo non è più vero, i caratteri continuano a essere disponibili " -"da terze parti." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Ognuno è libero di scaricare questi caratteri e di usarli per le proprie " -"attività, non è permesso redistribuirli se modificati in qualsiasi modo, " -"comprese le modifiche al nome del file o al formato di distribuzione." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Directory contenente i caratteri Microsoft (se già scaricati):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Se i Microsoft TrueType Core Fonts sono già stati scaricati dal server FTP " -"ROOT (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), inserire il nome della " -"directory in cui è stato salvato l'archivio." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Se i caratteri non sono stati ancora scaricati, lasciare vuoto questo campo " -"per recuperarli automaticamente. Saranno scaricati circa 1,6 MB di dati." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Se non si è connessi a Internet oppure se non si vuole scaricare i caratteri " -"adesso, inserire \"none\" per interrompere l'installazione." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "I file con i caratteri non sono stati trovati" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"La directory inserita non esiste oppure non contiene i Microsoft TrueType " -"Core Fonts di ROOT." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Archiviare i file in (opzionale):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Se si desidera conservare in un archivio permanente i caratteri Microsoft " -"Core, inserire la directory in cui si vogliono salvare. Altrimenti, " -"lasciando vuoto questo campo, i file saranno eliminati al termine " -"dell'installazione." diff --git a/build/package/debian/po/ja.po b/build/package/debian/po/ja.po deleted file mode 100644 index 5746f440098fa..0000000000000 --- a/build/package/debian/po/ja.po +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (C) 2009 Christian Holm Christensen -# This file is distributed under the same license as root-system package. -# Hideki Yamane (Debian-JP) , 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: root-system 5.18.00-2.3\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-09-12 04:26+0900\n" -"Last-Translator: Hideki Yamane (Debian-JP) \n" -"Language-Team: Japanese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "non-free ãªãƒ•ォント" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"ã“ã®ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ã§æä¾›ã•れã¦ã„ãŸãƒ•ォントã¯ãƒžã‚¤ã‚¯ãƒ­ã‚½ãƒ•トã‹ã‚‰ã€Œãƒ—ラットフォーム" -"é–“ã®äº’æ›æ€§ã®ãŸã‚ã«ã€æä¾›ã•れã¦ã„ãŸã‚‚ã®ã§ã™ã€‚æ—¢ã«æä¾›ã•れãªããªã£ã¦ã„ã¾ã™ãŒã€" -"今ã§ã‚‚サードパーティã‹ã‚‰å…¥æ‰‹å¯èƒ½ã§ã™ã€‚" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"ã“れらã®ãƒ•ォントã¯è‡ªåˆ†ã§åˆ©ç”¨ã™ã‚‹ç¯„囲ã«ãŠã„ã¦ã¯è‡ªç”±ã«ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã—ã¦åˆ©ç”¨ã§ã" -"ã¾ã™ãŒã€ãƒ•ァイルåã®å¤‰æ›´ã‚„パッケージ形å¼ã®å¤‰æ›´ã‚‚å«ã‚ã€æ”¹å¤‰ã—ã¦ã®å†é…布ã¯è¨±ã•れ" -"ã¦ã„ã¾ã›ã‚“。" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "MicroSoft フォントãŒã‚るディレクトリ (æ—¢ã«ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰æ¸ˆã¿ã®å ´åˆ):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"ROOT FTP サーãƒã‹ã‚‰ãƒžã‚¤ã‚¯ãƒ­ã‚½ãƒ•ト社製㮠TrueType コアフォントをダウンロード済" -"ã¿ã®å ´åˆ (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz)ã€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ãŒã‚るディ" -"レクトリåを入力ã—ã¦ãã ã•ã„。" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"ã“れらã®ãƒ•ォントをã¾ã ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã—ã¦ã„ãªã„å ´åˆã¯ã€ã“ã®æ¬„を空白ã®ã¾ã¾ã«ã—ã¦" -"フォントをダウンロードã—ã¦ãã ã•ã„。ダウンロードサイズã¯ãŠãŠã‚ˆã 1.6MB ã§ã™ã€‚" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"インターãƒãƒƒãƒˆã«æŽ¥ç¶šã—ã¦ã„ãªã„ã€ã‚ã‚‹ã„ã¯ä»Šã™ãã«ã“れらã®ãƒ•ォントをダウンロー" -"ドã—ãŸããªã„å ´åˆã¯ã€\"none\" ã¨å…¥åŠ›ã—ã¦ä¸­æ–­ã—ã¦ãã ã•ã„。" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "フォントファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"ã‚ãªãŸãŒå…¥åŠ›ã—ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯å­˜åœ¨ã—ã¦ã„ãªã„ã‹ã€ROOT 用ã®ãƒžã‚¤ã‚¯ãƒ­ã‚½ãƒ•ト社製 " -"TrueType コアフォントをå«ã‚“ã§ã„ã¾ã›ã‚“ã§ã—ãŸã€‚" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "ファイルをä¿å­˜ã™ã‚‹ (オプション):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"圧縮済ã¿ãƒžã‚¤ã‚¯ãƒ­ã‚½ãƒ•ト社製コアフォントã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’ãšã£ã¨ä¿å­˜ã—ã¦ãŠããŸã„å ´" -"åˆã¯ã€ä¿å­˜ã—ã¦ãŠããŸã„ディレクトリã®åå‰ã‚’入力ã—ã¦ãã ã•ã„。ã“ã®æ¬„を空ã®ã¾ã¾" -"ã«ã—ã¦ãŠãã¨ã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«å¾Œã«ãƒ•ァイルã¯å‰Šé™¤ã•れã¾ã™ã€‚" - diff --git a/build/package/debian/po/pt.po b/build/package/debian/po/pt.po deleted file mode 100644 index cba8344927b8b..0000000000000 --- a/build/package/debian/po/pt.po +++ /dev/null @@ -1,121 +0,0 @@ -# translation of root-system debconf to Portuguese -# Copyright (C) 2008 the root-system's copyright holder -# This file is distributed under the same license as the root-system package. -# -# Américo Monteiro , 2009. -msgid "" -msgstr "" -"Project-Id-Version: root-system 5.18.00-2.2\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-24 20:04+0000\n" -"Last-Translator: Américo Monteiro \n" -"Language-Team: Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Fonts non-free (não livres)" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Os tipos de letra (fonts) disponibilizados por este pacote foram " -"disponibilizadas pela Microsoft \"no interesse de compatibilidade no " -"cruzamento de plataformas\". Isto não é mais o caso, mas continuam " -"disponíveis a partir de terceiros." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Você é livre de descarregar estas fonts e usá-las para seu uso próprio, mas " -"não tem permissão para distribui-las em forma modificada, incluindo " -"alterações no nome do ficheiro ou formato de empacotamento." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Directório que contém as fonts da Microsoft (se já descarregadas):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Se você já descarregou as fonts TrueType Core da Microsoft do servidor ROOT " -"FTP (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), por favor indique o nome " -"do directório que contém o arquivo." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Se você ainda não descarregou estas fonts, deixe este campo vazio e as fonts " -"serão descarregadas automaticamente. O tamanho do arquivo a descarregar é de " -"1.6Mb aproximadamente." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Se você não está ligado à Internet ou não deseja descarregar as fonts agora, " -"escreva \"none\" para cancelar." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Ficheiros font não encontrados" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"O directório que indicou ou não existe, ou não contém as fonts Microsoft " -"TrueType Core para ROOT." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Arquivar ficheiros em (opcional):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Se desejar manter um arquivo permanente das fonts Microsoft Core " -"comprimidas, por favor indique a directoria onde deseja guardá-las. Se " -"deixar este campo em vazio, os ficheiros serão apagados após a instalação." diff --git a/build/package/debian/po/pt_BR.po b/build/package/debian/po/pt_BR.po deleted file mode 100644 index bab488ff9a137..0000000000000 --- a/build/package/debian/po/pt_BR.po +++ /dev/null @@ -1,164 +0,0 @@ -# Translation of root-system debconf templates to Brazilian Portuguese -# Copyright (C) 2008 The root-system's COPYRIGHT HOLDER -# This file is distributed under the same license as the root-system package. -# -# Herbert Parentes Fortes Neto , 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: root-system-5.18.00\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2008-07-25 19:50-0300\n" -"Last-Translator: Herbert Parentes Fortes Neto \n" -"Language-Team: l10n Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"pt_BR\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -#, fuzzy -#| msgid "" -#| "These fonts were provided by Microsoft \"in the interest of cross-" -#| "platform compatibility\". This is no longer the case, but they are still " -#| "available from third parties." -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Estas fontes eram fornecidas pela Microsoft \"no interesse da " -"compatibilidade interplataforma\". Este não é mais o caso, mas elas " -"continuam disponíveis a partir de terceiros." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -#, fuzzy -#| msgid "" -#| "You are free to download these fonts and use them for your own use, but " -#| "you may not redistribute them in modified form, including changes to the " -#| "file name or packaging format." -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Você pode baixar estas fontes e utilizá-las para uso próprio, mas você não " -"pode redistribuí-las sob uma forma modificada, incluindo mudanças no nome do " -"arquivo ou no formato do empacotamento." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -#, fuzzy -#| msgid "Directory holding MS fonts (if already downloaded):" -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Diretório que armazena as fontes MS (caso já tenham sido baixadas):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -#, fuzzy -#| msgid "" -#| "If you have already downloaded Microsoft's TrueType Core Fonts from the " -#| "ROOT FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), type the " -#| "name of the directory which contains the archive." -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Se você já baixou as Fontes Centrais TrueType da Microsoft (\"Microsoft's " -"TrueType Core Fonts\") do servidor FTP RAIZ (ftp://root.cern.ch/root/ttf/" -"ttf_fonts.tar.gz), digite o nome do diretório que contém o arquivo." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -#, fuzzy -#| msgid "" -#| "If you haven't yet downloaded these fonts, leave this blank and the fonts " -#| "will be downloaded for you. Approximately 1.6 MB will need to be " -#| "downloaded." -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Se você ainda não baixou estas fontes, deixe o campo em branco e as fontes " -"serão baixadas para você. Será necessário baixar aproximadamente 1.6 MB." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -#, fuzzy -#| msgid "" -#| "If you are not connected to the internet or do not wish to download these " -#| "fonts now, enter \"none\" to abort." -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Se você não está conectado à internet ou se não quiser baixar estes arquivos " -"agora, informe \"none\" para abortar." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Arquivos das fontes não encontrado" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -#, fuzzy -#| msgid "" -#| "The directory you entered either did not exist, or did not contain the " -#| "Microsoft TrueType Core Fonts for ROOT. Please re-enter the directory " -#| "containing the Microsoft font files or enter \"none\" to abort." -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"O diretório que você informou não existe ou não contém o arquivo com as " -"Fontes Centrais TrueType da Microsoft (\"Microsoft TrueType Core Fonts\") " -"para ROOT. Por favor, informe novamente o diretório contendo os arquivos de " -"fonte da Microsoft ou informe \"none\" para abortar." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -#, fuzzy -#| msgid "Archive these files to (optional):" -msgid "Archive files to (optional):" -msgstr "Armazene esses arquivos em (opcional):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -#, fuzzy -#| msgid "" -#| "If you would like to keep a permanent archive of the compressed Microsoft " -#| "Core fonts, enter the directory where you'd like them stored. If you " -#| "leave this blank, the files will be deleted after installation." -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Se você quiser manter um arquivo permanente do das fontes Centrais da " -"Microsoft (\"Microsoft Core fonts\"), informe o diretório onde você gostaria " -"de armazená-las. Se você deixar o campo em branco, os arquivos serão " -"excluídos após a instalação." - -#~ msgid "These fonts are not free" -#~ msgstr "Estas fontes não são livres" diff --git a/build/package/debian/po/ru.po b/build/package/debian/po/ru.po deleted file mode 100644 index af67cf3c15c71..0000000000000 --- a/build/package/debian/po/ru.po +++ /dev/null @@ -1,122 +0,0 @@ -# translation of ru.po to Russian -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Yuri Kozlov , 2008. -# Yuri Kozlov , 2009. -msgid "" -msgstr "" -"Project-Id-Version: root-system 5.18.00-2.2\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-16 20:34+0300\n" -"Last-Translator: Yuri Kozlov \n" -"Language-Team: Russian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "ÐеÑвободные шрифты" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Шрифты данного пакета предоÑтавлÑлиÑÑŒ Microsoft \"в интереÑах " -"межплатформенной ÑовмеÑтимоÑти\". Теперь Ñтого больше нет, но шрифты ещё " -"можно Ñкачать из других меÑÑ‚." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Ð’Ñ‹ можете Ñвободно Ñкачать и иÑпользовать Ñти шрифты Ð´Ð»Ñ Ñвоих нужд, но вы " -"не можете раÑпроÑтранÑть их в изменённом виде, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° и формат, в " -"котором они раÑпроÑтранÑÑŽÑ‚ÑÑ." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Каталог, где лежат шрифты Microsoft (еÑли они уже Ñкачаны):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"ЕÑли вы уже Ñкачали Microsoft TrueType Core Fonts Ñ FTP-Ñервера ROOT (ftp://" -"root.cern.ch/root/ttf/ttf_fonts.tar.gz), введите Ð¸Ð¼Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð°, в котором " -"лежит Ñтот архив." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"ЕÑли вы ещё не Ñкачали Ñти шрифты, то оÑтавьте поле пуÑтым и шрифты будут " -"Ñкачаны автоматичеÑки. ПотребуетÑÑ Ñкачать приблизительно 1.6 МБ." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"ЕÑли вы не подключены к Интернету или не хотите Ñкачивать шрифты ÑейчаÑ, " -"введите \"none\"." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Файлы шрифтов не найдены" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Указанный вами каталог не ÑущеÑтвует или не Ñодержит Microsoft TrueType Core " -"Fonts Ñ ROOT." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Сохранить Ñти файлы (необÑзательно):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"ЕÑли вы хотите Ñохранить Ñжатые шрифты Microsoft Core Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ " -"иÑпользованиÑ, то введите каталог, где они будут хранитьÑÑ. ЕÑли оÑтавить " -"поле пуÑтым, то файлы будут удалены поÑле уÑтановки." diff --git a/build/package/debian/po/sv.po b/build/package/debian/po/sv.po deleted file mode 100644 index 0427c39842a9e..0000000000000 --- a/build/package/debian/po/sv.po +++ /dev/null @@ -1,122 +0,0 @@ -# translation of root-system_5.18.00-1_templates.po to swedish -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Martin Bagge , 2008. -msgid "" -msgstr "" -"Project-Id-Version: root-system_5.18.00-1_templates\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-18 13:16+0100\n" -"Last-Translator: Martin Bagge \n" -"Language-Team: swedish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "typsnitt som inte är fria" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Dessa typsnitt gjordes tillgängliga av Microsoft för att \"uppnÃ¥ " -"kompabilitet mellan platformar\". SÃ¥ är inte längre fallet men du kan " -"fortfarande fÃ¥ tag pÃ¥ dem via tredjepart." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Det stÃ¥r dig fritt att ladda ned typsnitten och använda dem men du fÃ¥r inte " -"sprida dem vidare om du ändrar dem. Det inkluderar att ändra filnamn eller " -"paketeringsformat." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Katalog för typsnitt frÃ¥n Microsoft (om dessa redan hämtats hem):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Om du redan har laddat hem Microsofts TrueType Core Fonts frÃ¥n ROOT-servern " -"(ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz) ska du ange namnet för " -"katalogen där arkivfilen finns:" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Om du inte har laddat hem typsnitten sÃ¥ lämnar du fältet tomt sÃ¥ laddas " -"filen ned automatiskt Ã¥t dig. Ungefär 1,6MB kommer att laddas hem." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Om du inte är ansluten till Internet eller inte vill ladda hem dessa " -"typsnitt nu sÃ¥ anger du \"none\" för att avbryta." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Fil med typsnitt hittades ej." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Antingen sÃ¥ fanns inte katalogen du angav eller sÃ¥ fanns inte filen med " -"Microsoft TrueType Core Fonts for ROOT i katalogen. " - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Arkivera dessa filer i (valbart):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Om du vill skapa ett permanent arkiv med de komprimerade typsnittsfilerna " -"frÃ¥n Microsoft sÃ¥ anger du katalogen där de ska sparas här. Om du lämnar " -"fältet tomt sÃ¥ kommer filerna att tas bort efter installationen." - -#~ msgid "These fonts are not free" -#~ msgstr "Dessa teckensnitt är inte fria" diff --git a/build/package/debian/po/templates.pot b/build/package/debian/po/templates.pot deleted file mode 100644 index 3d48ac515175e..0000000000000 --- a/build/package/debian/po/templates.pot +++ /dev/null @@ -1,101 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" diff --git a/build/package/debian/po/vi.po b/build/package/debian/po/vi.po deleted file mode 100644 index 5ea98c2d66b71..0000000000000 --- a/build/package/debian/po/vi.po +++ /dev/null @@ -1,118 +0,0 @@ -# Vietnamese translation for Root System. -# Copyright © 2009 Free Software Foundation, Inc. -# Clytie Siddall , 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: root-system 5.18.00-2.2\n" -"Report-Msgid-Bugs-To: root-system@packages.debian.org\n" -"POT-Creation-Date: 2009-02-15 12:03+0100\n" -"PO-Revision-Date: 2009-02-16 22:40+1030\n" -"Last-Translator: Clytie Siddall \n" -"Language-Team: Vietnamese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: LocFactoryEditor 1.8\n" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "Non-free fonts" -msgstr "Phông chữ khác tá»± do" - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"The fonts provided in this package were provided by Microsoft \"in the " -"interest of cross-platform compatibility\". This is no longer the case, but " -"they are still available from third parties." -msgstr "" -"Các phông chữ có sẵn trong gói này đã được Microsoft cung cấp « để tương " -"thích vá»›i nhóm thứ ba ». Không còn phải như thế lại, nhưng mà các phông chữ " -"này vẫn còn sẵn sàng từ nhóm thứ ba." - -#. Type: note -#. Description -#: ../ttf-root-installer.templates:2001 -msgid "" -"You are free to download these fonts and use them for your own purposes, but " -"you have no permission to redistribute them in modified form, including " -"changes to the file name or packaging format." -msgstr "" -"Bạn có quyá»n tải vá» các phông chữ này và sá»­ dụng chúng nhằm mục đích riêng, " -"nhưng KHÔNG có quyá»n phát hành lại chúng dưới dạng bị sá»­a đổi, bao gồm thay " -"đổi tên tập tin hay định dạng đóng gói." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "Directory holding Microsoft fonts (if already downloaded):" -msgstr "Thư mục chứa phông chữ MS (nếu đã tải vá»):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you have already downloaded Microsoft's TrueType Core Fonts from the ROOT " -"FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the " -"name of the directory which contains the archive." -msgstr "" -"Nếu lúc trước bạn đã tải các phông chữ Microsoft's TrueType Core Fonts xuống " -"máy phục vụ FTP ROOT (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz) thì hãy " -"nhập tên cá»§a thư mục chứa kho nén đó." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you haven't yet downloaded these fonts, leave this blank and the fonts " -"will be downloaded automatically. The download size is approximately 1.6 MB." -msgstr "" -"Chưa tải vá» thì bá» trống trưá»ng này, và các phông chữ sẽ được tá»± động tải " -"vá». Kích cỡ tải vá» xấp xỉ 1,6 MB." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:3001 -msgid "" -"If you are not connected to the Internet or do not wish to download these " -"fonts now, enter \"none\" to abort." -msgstr "" -"Không có kết nối tá»›i Internet, hoặc chưa muốn tải vá» các phông chữ này, thì " -"gõ « none » để há»§y bá» tiến trình này." - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "Font files not found" -msgstr "Không tìm thấy tập tin phông chữ" - -#. Type: error -#. Description -#: ../ttf-root-installer.templates:4001 -msgid "" -"The directory you entered either does not exist, or does not contain the " -"Microsoft TrueType Core Fonts for ROOT." -msgstr "" -"Bạn đã gõ má»™t thư mục không tồn tại hoặc không chứa phông chữ Microsoft " -"TrueType Core Fonts cho ROOT." - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "Archive files to (optional):" -msgstr "Lưu tập tin vào (tùy chá»n):" - -#. Type: string -#. Description -#: ../ttf-root-installer.templates:5001 -msgid "" -"If you would like to keep a permanent archive of the compressed Microsoft " -"Core fonts, please enter the directory where you'd like them stored. If you " -"leave this blank, the files will be deleted after installation." -msgstr "" -"Muốn giữ má»™t khó nén bá»n bỉ chứa các phông chữ MS Core thì gõ thư mục đích. " -"Bá» trống trưá»ng này thì các tập tin đó bị xoá má»™t khi cài đặt." diff --git a/build/package/debian/root-plugin-geom-gdml.links.in b/build/package/debian/root-plugin-geom-gdml.links.in deleted file mode 100644 index cfdc3ade25668..0000000000000 --- a/build/package/debian/root-plugin-geom-gdml.links.in +++ /dev/null @@ -1,2 +0,0 @@ -@prefix@/lib/root/@libvers@/ROOTwriter.py /usr/share/python-support/root/ROOTwriter.py -@prefix@/lib/root/@libvers@/writer.py /usr/share/python-support/root/writer.py diff --git a/build/package/debian/root-plugin-net-xrootd.links.in b/build/package/debian/root-plugin-net-xrootd.links.in deleted file mode 100644 index aae18dbc52c7b..0000000000000 --- a/build/package/debian/root-plugin-net-xrootd.links.in +++ /dev/null @@ -1,7 +0,0 @@ -@prefix@/share/man/man1/xrdcp.1.gz @prefix@/share/man/man1/xrdcp.bin.1.gz -@prefix@/share/man/man1/xrdgsiproxy.1.gz @prefix@/share/man/man1/xrdgsiproxy.bin.1.gz -@prefix@/share/man/man1/xrdpwdadmin.1.gz @prefix@/share/man/man1/xrdpwdadmin.bin.1.gz - - - - diff --git a/build/package/debian/root-plugin-net-xrootd.overrides b/build/package/debian/root-plugin-net-xrootd.overrides deleted file mode 100644 index 0b9af91e29c4a..0000000000000 --- a/build/package/debian/root-plugin-net-xrootd.overrides +++ /dev/null @@ -1,3 +0,0 @@ -root-plugin-net-xrootd: binary-without-manpage usr/bin/xrdpwdadmin.bin -root-plugin-net-xrootd: binary-without-manpage usr/bin/xrd.bin -root-plugin-net-xrootd: binary-without-manpage usr/bin/xrdcp.bin diff --git a/build/package/debian/root-system-bin.desktop.in b/build/package/debian/root-system-bin.desktop.in deleted file mode 100644 index 65aa28fab9ce4..0000000000000 --- a/build/package/debian/root-system-bin.desktop.in +++ /dev/null @@ -1,13 +0,0 @@ -[Desktop Entry] -Name=ROOT -GenericName=ROOT -Comment=ROOT's Object Oriented Technologies -Comment[dk]=ROOT er Object Orienteret Teknologi -Exec=@prefix@/bin/root %F -Icon=root-system-bin.png -Categories=Education;Science;Math;DataVisualization;NumericalAnalysis;Physics; -MimeType=application/x-root -Terminal=true -Type=Application -StartupNotify=false - diff --git a/build/package/debian/root-system-bin.menu.in b/build/package/debian/root-system-bin.menu.in deleted file mode 100644 index 62ecac59f41cd..0000000000000 --- a/build/package/debian/root-system-bin.menu.in +++ /dev/null @@ -1,6 +0,0 @@ -?package(root-system-bin):needs="text" \ - section="Applications/Science/Data Analysis" \ - title="ROOT" \ - longtitle="ROOT's Object Oriented Technologies" \ - command="@prefix@/bin/root" \ - icon="@prefix@/share/pixmaps/root-system-bin.xpm" diff --git a/build/package/debian/root-system-bin.mime b/build/package/debian/root-system-bin.mime deleted file mode 100644 index 4dd132de47cff..0000000000000 --- a/build/package/debian/root-system-bin.mime +++ /dev/null @@ -1 +0,0 @@ -application/x-root; root %s; test=test "x$DISPLAY" != "x" ; description=ROOT Archive; nametemplate=%s.root; priority=7 diff --git a/build/package/debian/root-system-bin.png b/build/package/debian/root-system-bin.png deleted file mode 100644 index a7813e516c3c0..0000000000000 Binary files a/build/package/debian/root-system-bin.png and /dev/null differ diff --git a/build/package/debian/root-system-bin.postinst.in b/build/package/debian/root-system-bin.postinst.in deleted file mode 100644 index 402f4a3347c03..0000000000000 --- a/build/package/debian/root-system-bin.postinst.in +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/sh -# postinst script for libroot -# -# see: dh_installdeb(1) - -set -e - -case "$1" in - configure) - # Alternatives update - # update-alternatives --install @prefix@/bin/cint cint \ - # @prefix@/bin/cint.root 30 \ - # --slave @prefix@/share/man/man1/cint.1.gz \ - # cint.1.gz @prefix@/share/man/man1/cint.root.1.gz - # update-alternatives --install @prefix@/bin/makecint makecint \ - # @prefix@/bin/makecint.root 30 \ - # --slave @prefix@/share/man/man1/makecint.1.gz \ - # makecint.1.gz @prefix@/share/man/man1/makecint.root.1.gz - ;; - abort-upgrade|abort-remove|abort-deconfigure) - # Nothing to be done here - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 0 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --git a/build/package/debian/root-system-bin.preinst.in b/build/package/debian/root-system-bin.preinst.in deleted file mode 100644 index d88d13bafa6f7..0000000000000 --- a/build/package/debian/root-system-bin.preinst.in +++ /dev/null @@ -1,33 +0,0 @@ -#! /bin/sh -# postinst script for libroot -# -# see: dh_installdeb(1) -# summary of how this script can be called: -# * `install' -# * `install' -# * `upgrade' -# * `abort-upgrade' -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -set -e - -case "$1" in - install|upgrade) - # Remove old alternatives - update-alternatives --remove cint @prefix@/bin/cint.root - update-alternatives --remove makecint @prefix@/bin/makecint.root - ;; - *) - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --git a/build/package/debian/root-system-bin.prerm.in b/build/package/debian/root-system-bin.prerm.in deleted file mode 100644 index c82cf92e05662..0000000000000 --- a/build/package/debian/root-system-bin.prerm.in +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh -# prerm script for root-cint -# -# see: dh_installdeb(1) - -set -e - -if [ "$1" != "upgrade" ] -then - update-alternatives --remove cint @prefix@/bin/cint.root - update-alternatives --remove makecint @prefix@/bin/makecint.root -fi - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/build/package/debian/root-system-bin.sharedmimeinfo b/build/package/debian/root-system-bin.sharedmimeinfo deleted file mode 100644 index 956f69e933091..0000000000000 --- a/build/package/debian/root-system-bin.sharedmimeinfo +++ /dev/null @@ -1,15 +0,0 @@ - - - - ROOT data file - ROOT Datei - ROOT banque de donnees - ROOT data fil - ROOT data fil - ROOT data fil - - - - - - diff --git a/build/package/debian/root-system-bin.xpm b/build/package/debian/root-system-bin.xpm deleted file mode 100644 index 39ce385172a11..0000000000000 --- a/build/package/debian/root-system-bin.xpm +++ /dev/null @@ -1,229 +0,0 @@ -/* XPM */ -static char * root_bin_xpm[] = { -"32 32 194 2", -" c None", -". c #8FB2AA", -"+ c #838574", -"@ c #8FB7A9", -"# c #8FE3EA", -"$ c #B0C2C0", -"% c #A6A69E", -"& c #87D9CC", -"* c #A3CDBD", -"= c #A3B6B1", -"- c #95CCC0", -"; c #D4D3C9", -"> c #B8C0D3", -", c #B1B5D0", -"' c #D7DCE2", -") c #CBCBC9", -"! c #D1D0CC", -"~ c #C9CECE", -"{ c #AAAFAF", -"] c #CAD8DC", -"^ c #D0D5DF", -"/ c #BDBED3", -"( c #CBCDD6", -"_ c #E3E3E0", -": c #C7CACA", -"< c #C5B7B6", -"[ c #D1DEE0", -"} c #CDDDE3", -"| c #BCC4D6", -"1 c #A8AAC0", -"2 c #CAD1D6", -"3 c #C9C0BA", -"4 c #C3C5C5", -"5 c #E5E8E9", -"6 c #E9E3E3", -"7 c #D5CBCA", -"8 c #CCD8DA", -"9 c #B2C4C8", -"0 c #9FADB1", -"a c #D7EAEE", -"b c #D3D1CF", -"c c #E1E6E8", -"d c #EEEEEE", -"e c #E6E5E3", -"f c #DEE3E2", -"g c #D4E4E8", -"h c #CFDFE1", -"i c #D0DCDD", -"j c #BCACA4", -"k c #C8D1D4", -"l c #F5F7F6", -"m c #F7F8F8", -"n c #F8FAFA", -"o c #DBE8EC", -"p c #CBCECD", -"q c #8C0000", -"r c #DCE4E6", -"s c #F4F7F7", -"t c #EEF4F5", -"u c #D2E1E6", -"v c #CCDCE2", -"w c #E70000", -"x c #730000", -"y c #EFF0EF", -"z c #F9FAFA", -"A c #DEE8EB", -"B c #C6D6DB", -"C c #BABDB9", -"D c #FD0000", -"E c #D60000", -"F c #640000", -"G c #EEF1EA", -"H c #FDFDFD", -"I c #F2F8F7", -"J c #E0E8E7", -"K c #FC0000", -"L c #FF0000", -"M c #E00000", -"N c #00005B", -"O c #E7ECDC", -"P c #FCFDFB", -"Q c #FAFCFB", -"R c #D5D1CD", -"S c #FA0000", -"T c #FE0000", -"U c #D30000", -"V c #000080", -"W c #D2D7C8", -"X c #F9FBF3", -"Y c #FAFCF7", -"Z c #DDE0DE", -"` c #FB0000", -" . c #BF0000", -".. c #0000C7", -"+. c #C4CAB9", -"@. c #F0F8E2", -"#. c #E9EFDF", -"$. c #E7EAE4", -"%. c #E3E5E2", -"&. c #F60000", -"*. c #B50000", -"=. c #33002A", -"-. c #0000EB", -";. c #ACB0A7", -">. c #EAF4D9", -",. c #D5DDCD", -"'. c #DFE6D4", -"). c #F0F4E8", -"!. c #F90000", -"~. c #BF0011", -"{. c #2200B8", -"]. c #ABADA8", -"^. c #CDD4C0", -"/. c #C3C7BD", -"(. c #CAD1BF", -"_. c #E8F3D4", -":. c #D1D7C8", -"<. c #FD0001", -"[. c #A90036", -"}. c #9B9D9A", -"|. c #BDC3B3", -"1. c #BBBDB8", -"2. c #AAB19C", -"3. c #DBE8C3", -"4. c #B2BBA2", -"5. c #B10404", -"6. c #F80000", -"7. c #F90003", -"8. c #AB0014", -"9. c #969893", -"0. c #A8A994", -"a. c #8E8B71", -"b. c #A6A47D", -"c. c #ABB08A", -"d. c #E90000", -"e. c #660000", -"f. c #7E786B", -"g. c #877757", -"h. c #92865D", -"i. c #83886A", -"j. c #DA0000", -"k. c #74624B", -"l. c #817352", -"m. c #91866F", -"n. c #907768", -"o. c #570000", -"p. c #7A604D", -"q. c #77593E", -"r. c #876C59", -"s. c #876F60", -"t. c #88725F", -"u. c #BC1714", -"v. c #6B4A3D", -"w. c #694E3C", -"x. c #734F37", -"y. c #8E755F", -"z. c #948573", -"A. c #B45C49", -"B. c #916F52", -"C. c #482D26", -"D. c #7B5F46", -"E. c #97755C", -"F. c #937362", -"G. c #B85546", -"H. c #815E52", -"I. c #907260", -"J. c #9C4D43", -"K. c #CF2721", -"L. c #87665B", -"M. c #A38173", -"N. c #7C3F38", -"O. c #F20000", -"P. c #F30907", -"Q. c #DC1812", -"R. c #A9493B", -"S. c #966A65", -"T. c #8E6F60", -"U. c #90715D", -"V. c #845A46", -"W. c #91523E", -"X. c #68483A", -"Y. c #926D61", -"Z. c #835E4B", -"`. c #6D5543", -" + c #957166", -".+ c #6F594A", -"++ c #6D5848", -"@+ c #716052", -"#+ c #7F6E60", -"$+ c #8C7063", -"%+ c #88756B", -"&+ c #877365", -"*+ c #91776A", -"=+ c #897A70", -" . + @ # ", -" $ % ", -" & * = - ", -" ; > , ' ) ! ", -" ~ { ] ^ / ( _ ", -" : < [ } | 1 2 3 ", -" 4 5 6 7 8 9 0 a b ", -" c d e f g h i j ", -" k l m n o p ", -" q r s t u v ", -" w x y z A B C ", -" D E F G H I J ", -" K L M N O P Q R ", -" S L T U V W X Y Z ", -" K L L ` . .. +.@.#.$.%. ", -" D L L L &.*.=.-. ;.>.,.'.). ", -" D L L L L !.~.{. ].^./.(._.:. ", -" T L L L L L <.[. }.|.1.2.3.4. ", -" 5.6.L L L L L L 7.8. 9.0.a.b.c. ", -" K L L L L L L L d.e. f.g.h.i. ", -" D L L L L L L L T j. k.l.m.n. ", -" D L L L L L L L L L o. p.q.r.s.t. ", -" T L L L L L L L L L L u.v.w.x.y.z. ", -" 6.L L L L L L L L L L A.B.C.D.E.F. ", -" ` L L L L L L L L L L G. H.I.J. ", -" K L L L L L L L L L L K. L.M.N. ", -" T L D O.L L L ` K P.Q.R. S.T.U. ", -" V.W.X. Y.Z.`. ", -" +.+++@+ ", -" #+ $+%+ ", -" &+ *+=+ ", -" "}; diff --git a/build/package/debian/root-system-common.copyright b/build/package/debian/root-system-common.copyright deleted file mode 100644 index a95fb6cf1af80..0000000000000 --- a/build/package/debian/root-system-common.copyright +++ /dev/null @@ -1,74 +0,0 @@ -This package was debianized by Christian Holm Christensen on -Mon, 21 Feb 2005 16:28:37 +0100. - -It was downloaded from :pserver:cvs@root.cern.ch:/user/cvs -(anonymous CVS access to main repository - password is "cvs") - -Upstream Authors: The ROOT Team consisting of Rene Brun - and Fons Rademakers - -License: - -Copyright: 1994, 1995, 1996, 1997, 1998, 1999 ROOT Team - 2000, 2001, 2002, 2003, 2004, 2005 ROOT Team - 2006 ROOT Team - - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 - USA - -On Debian systems, the complete text of the GNU Lesser General Public -License, version 2.1, can be found in -/usr/share/common-licenses/LGPL-2.1. - -Note, that the sources and the packages have been purged of the -non-free MS TTF Core fonts. - -The font `/usr/share/root/fonts/symbol.ttf' is made from the -Ghostscript [1] PS font `s050000l.pfb' using fontforge [2], using the -script `s050000l.pe'. The file `s050000l.pe' may be found in the ROOT -source package. The Ghostscript PS file is licensed under the GPL, as -is the `symbol.ttf' file. The copyright and license of `s050000l.pfb' -is as follows: - - URW++ Design & Development GmbH, Valek Filippov et. al. - - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 dated June, 1991. - - This package is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 - USA. - - As a special exception, permission is granted to include this font - program in a Postscript or PDF file that consists of a document that - contains text to be displayed or printed using this font, regardless - of the conditions or license applying to the document itself. - -[1] ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/fonts/ -[2] http://fontforge.sourceforge.net/ - -On Debian systems, the complete text of the GNU General Public -License, can be found in /usr/share/common-licenses/GPL. - -Local Variables: - mode: text -End: diff --git a/build/package/debian/root-system-common.dirs.in b/build/package/debian/root-system-common.dirs.in deleted file mode 100644 index 11780a690865d..0000000000000 --- a/build/package/debian/root-system-common.dirs.in +++ /dev/null @@ -1 +0,0 @@ -@sysconfdir@/root diff --git a/build/package/debian/root-system-common.links.in b/build/package/debian/root-system-common.links.in deleted file mode 100644 index 9dad5689bdc1f..0000000000000 --- a/build/package/debian/root-system-common.links.in +++ /dev/null @@ -1,13 +0,0 @@ -usr/share/fonts/truetype/freefont/FreeMono.ttf @prefix@/share/root/fonts/FreeMono.ttf -usr/share/fonts/truetype/freefont/FreeMonoBold.ttf @prefix@/share/root/fonts/FreeMonoBold.ttf -usr/share/fonts/truetype/freefont/FreeMonoOblique.ttf @prefix@/share/root/fonts/FreeMonoOblique.ttf -usr/share/fonts/truetype/freefont/FreeMonoBoldOblique.ttf @prefix@/share/root/fonts/FreeMonoBoldOblique.ttf -usr/share/fonts/truetype/freefont/FreeSans.ttf @prefix@/share/root/fonts/FreeSans.ttf -usr/share/fonts/truetype/freefont/FreeSansBold.ttf @prefix@/share/root/fonts/FreeSansBold.ttf -usr/share/fonts/truetype/freefont/FreeSansOblique.ttf @prefix@/share/root/fonts/FreeSansOblique.ttf -usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf @prefix@/share/root/fonts/FreeSansBoldOblique.ttf -usr/share/fonts/truetype/freefont/FreeSerif.ttf @prefix@/share/root/fonts/FreeSerif.ttf -usr/share/fonts/truetype/freefont/FreeSerifBold.ttf @prefix@/share/root/fonts/FreeSerifBold.ttf -usr/share/fonts/truetype/freefont/FreeSerifItalic.ttf @prefix@/share/root/fonts/FreeSerifItalic.ttf -usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf @prefix@/share/root/fonts/FreeSerifBoldItalic.ttf -usr/share/fonts/truetype/openoffice/opens___.ttf @prefix@/share/root/fonts/opens___.ttf diff --git a/build/package/debian/root-system-doc.doc-base b/build/package/debian/root-system-doc.doc-base deleted file mode 100644 index 54bb6fd97fcb9..0000000000000 --- a/build/package/debian/root-system-doc.doc-base +++ /dev/null @@ -1,19 +0,0 @@ -Document: root-system -Title: ROOT Reference Manual -Author: ROOT Team -Abstract: Reference manual of all ROOT classes. - The ROOT system provides a set of OO frameworks with all the - functionality needed to handle and analyse large amounts of data in a - very efficient way. Having the data defined as a set of objects, - specialised storage methods are used to get direct access to the - separate attributes of the selected objects, without having to touch - the bulk of the data. Included are histograming methods in 1, 2 and 3 - dimensions, curve fitting, function evaluation, minimisation, - graphics and visualisation classes to allow the easy setup of an - analysis system that can query and process the data interactively or - in batch mode. -Section: Science/Physics - -Format: HTML -Index: /usr/share/doc/root/html/index.html -Files: /usr/share/doc/root/html/*.html diff --git a/build/package/debian/root-system-doc.docs b/build/package/debian/root-system-doc.docs deleted file mode 100644 index 27de2e3ef6078..0000000000000 --- a/build/package/debian/root-system-doc.docs +++ /dev/null @@ -1,8 +0,0 @@ -README/BUILDSYSTEM -README/CREDITS -README/README -README/README.ALIEN -README/README.AUTH -README/README.GLOBUS -README/README.PROOF -README/README.SELECTOR diff --git a/build/package/debian/root-system-doc.overrides b/build/package/debian/root-system-doc.overrides deleted file mode 100644 index 4881d3cabce70..0000000000000 --- a/build/package/debian/root-system-doc.overrides +++ /dev/null @@ -1 +0,0 @@ -root-system-doc: wrong-name-for-upstream-changelog usr/share/doc/root-system-doc/ChangeLog-2-24.gz diff --git a/build/package/debian/root-system-proofd.README.Debian b/build/package/debian/root-system-proofd.README.Debian deleted file mode 100644 index 5bb49935bc146..0000000000000 --- a/build/package/debian/root-system-proofd.README.Debian +++ /dev/null @@ -1,27 +0,0 @@ -Parallel ROOT Facility Daemon: -============================== - -Per default, the PROOF daemon (proofd) is turned off. This is because -the user need to set up a few things before starting the daemon. - -Specifically, the user need to make the files -`/etc/cluster.conf' and `/etc/proofd.conf'. - -Examples for these are provided in the documentation directory of -`root-system-proofd' (`/usr/share/doc/root-system-proofd/examples/'). - -`' can be set to any location in -`/etc/default/root-system-proofd'. - -Note, however, that ROOT recommends that this directory is shared (via -NFS or similar) among all the nodes of the cluster. - -To enable `root-system-proofd' set `ENABLE_PROOFD=yes' in -`/etc/default/root-system-proofd'. - -See also the `read me' file -`/usr/share/doc/root-system-doc/README.PROOF' in the `root-system-doc' -package, as well as the web-site [1]. - -[1] http://root.cern.ch/root/PROOF.html - diff --git a/build/package/debian/root-system-proofd.default b/build/package/debian/root-system-proofd.default deleted file mode 100644 index b3263c6d80a37..0000000000000 --- a/build/package/debian/root-system-proofd.default +++ /dev/null @@ -1,20 +0,0 @@ -# Defaults for proofd initscript -# sourced by /etc/init.d/proofd -# installed at /etc/default/proofd by the maintainer scripts -# -# Please refer to the proofd(1) man(1) page for more information on -# command line parameters. -# -# This is a POSIX shell fragment -# -# Whether to enable proofd via SYSV init scripts. Please note, that -# you can not enable both proofd via both inetd and SYSV init, and -# inetd will reserve the port 1093 for it self. -ENABLE_PROOFD= - -# Additional options that are passed to the Daemon. -DAEMON_OPTS= - -# Specify your base of your PROOF directory here. If left blank, it -# will use the system default (e.g., /usr/share/root/proof). -PROOF_DIR= diff --git a/build/package/debian/root-system-proofd.examples b/build/package/debian/root-system-proofd.examples deleted file mode 100644 index d2a8aa5bbc48b..0000000000000 --- a/build/package/debian/root-system-proofd.examples +++ /dev/null @@ -1,2 +0,0 @@ -etc/daemons/proofd.xinetd -etc/proof/*.sample diff --git a/build/package/debian/root-system-proofd.init.in b/build/package/debian/root-system-proofd.init.in deleted file mode 100644 index 1fca9e797074c..0000000000000 --- a/build/package/debian/root-system-proofd.init.in +++ /dev/null @@ -1,139 +0,0 @@ -#! /bin/sh -# -# skeleton Written by Miquel van Smoorenburg . -# Modified for Debian -# by Ian Murdock . -# -# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl -# -### BEGIN INIT INFO -# Provides: root-system-proofd -# Required-Start: $local_fs -# Required-Stop: $local_fs -# Should-Start: $network, $remote_fs, root-file-server -# Should-Stop: $network, $remote_fs, root-file-server -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Parallel ROOt Facility Server -# Description: Parallel ROOt Facility Server to let the node -# participate in a PROOF cluster, either as slave or -# master. -### END INIT INFO - -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -DAEMON=@prefix@/bin/proofd -NAME=proofd -DESC="Parallel ROOt Facility Server" - -test -x $DAEMON || exit 0 - -# Include root defaults if available -if [ -f @sysconfdir@/default/root-system-proofd ] ; then - . @sysconfdir@/default/root-system-proofd -fi - -# Load the VERBOSE setting and other rcS variables -[ -f /etc/default/rcS ] && . /etc/default/rcS - -# Define LSB log_* functions. -. /lib/lsb/init-functions - -# Check if inetd is controlling proofd -if test -f /var/run/inetd.pid ; then - # Inetd is running - if grep -q ^$NAME /etc/inetd.conf > /dev/null 2>&1 ; then - # PROOFD is controlled by inetd. - ENABLE_PROOFD=no - fi -fi -# Check if xinetd is controlling proofd -if test -f /var/run/xinetd.pid ; then - # Inetd is running - if grep -q ^$NAME /etc/inetd.conf > /dev/null 2>&1 ; then - # PROOFD is controlled by xinetd. - ENABLE_PROOFD=no - fi - # old name - for i in proofd root-proofd root-system-proofd ; do - if test ! -f /etc/xinetd.d/$i ; then continue ; fi - if grep "disable[[:space:]]*= *[Nn][Oo]" /etc/xinetd.d/$i \ - > /dev/null 2>&1 ; then - # PROOFD is controlled by xinetd. - ENABLE_PROOFD=no - break - fi - done -fi - -# Check if we're enabled -case `echo $ENABLE_PROOFD | tr '[:upper:]' '[:lower:]'` in - yes) ;; - *) exit 0;; -esac - -# function to start daemon -startit () -{ - start-stop-daemon --make-pidfile --start --quiet --pidfile \ - /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS $PROOF_DIR - ret=$? - if test $ret -ne 0 ; then - echo "Failed" - exit 1 - fi - pidof $DAEMON > /var/run/$NAME.pid 2> /dev/null - return $ret -} - -# function to stop daemon -stopit () -{ - start-stop-daemon --stop --oknodo --quiet --pidfile /var/run/$NAME.pid \ - --exec $DAEMON - ret=$? - if test $ret -ne 0 ; then - echo "Failed" - exit 1 - fi - return $ret -} - -# Executable code -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - startit - ret=$? - [ "$VERBOSE" != no ] && log_end_msg $ret - ;; - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - stopit - ret=$? - [ "$VERBOSE" != no ] && log_end_msg $ret - ;; - restart|force-reload) - # - # If the "reload" option is implemented, move the "force-reload" - # option to the "reload" entry above. If not, "force-reload" is - # just the same as "restart". - # - log_daemon_msg "Restarting $DESC" "$NAME" - stopit - sleep 1 - startit - ret=$? - log_end_msg $ret - ;; - *) - N=@sysconfdir@/init.d/root-system-$NAME - # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 - echo "Usage: $N {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 -# -# EOF -# diff --git a/build/package/debian/root-system-proofd.links.in b/build/package/debian/root-system-proofd.links.in deleted file mode 100644 index 2f41d46221e65..0000000000000 --- a/build/package/debian/root-system-proofd.links.in +++ /dev/null @@ -1,4 +0,0 @@ -@prefix@/share/man/man1/proofserv.1.gz @prefix@/share/man/man1/proofserv.bin.1.gz -@prefix@/share/man/man1/proofserv.1.gz @prefix@/share/man/man1/proofserv.exe.1.gz - - diff --git a/build/package/debian/root-system-proofd.overrides b/build/package/debian/root-system-proofd.overrides deleted file mode 100644 index 5ca722dfddf6e..0000000000000 --- a/build/package/debian/root-system-proofd.overrides +++ /dev/null @@ -1,2 +0,0 @@ -root-system-proofd: binary-without-manpage usr/bin/proofserv.bin -root-system-proofd: binary-without-manpage usr/bin/proofserv.exe diff --git a/build/package/debian/root-system-proofd.prerm b/build/package/debian/root-system-proofd.prerm deleted file mode 100644 index cf67f2087758c..0000000000000 --- a/build/package/debian/root-system-proofd.prerm +++ /dev/null @@ -1,32 +0,0 @@ -#! /bin/sh -# prerm script for root-proofd -# -# see: dh_installdeb(1) - -set -e - -case "$1" in - remove) - if grep ^proofd /etc/inetd.conf > /dev/null 2>&1 ; then - update-inetd --remove proofd - fi - ;; - upgrade|deconfigure) - # Nothing to be done here - ;; - failed-upgrade) - ;; - *) - echo "prerm called with unknown argument \`$1'" >&2 - exit 0 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --git a/build/package/debian/root-system-rootd.default b/build/package/debian/root-system-rootd.default deleted file mode 100644 index 294dd0f4655df..0000000000000 --- a/build/package/debian/root-system-rootd.default +++ /dev/null @@ -1,87 +0,0 @@ -# Defaults for rootd initscript -# sourced by /etc/init.d/root-system-rootd -# installed at /etc/default/root-system-rootd by the maintainer scripts -# -# Please refer to the rootd(1) man(1) page for more information on -# command line parameters. -# -# This is a POSIX shell fragment -# -# If this is set to `yes', then the server is started. -# Anything else disables the server -# -# Note, that you can not run rootd via both inetd and SYSV init; at -# least not if they are both using the same port (per default both -# use 1094). So either disable the inetd or the SYSV init rootd, or -# specify separate ports. -ENABLE_ROOTD=yes - -# User to run as (default is `rootd') -ROOTD_USER=rootd - -# Port (range to listen to) (-p) -# specifies the port number to listen on. Use port-port2 to -# find the first available port in the indicated range. Use 0-N -# for range relative to default service port. (default is 1094) -ROOTD_PORT= - -# SSH port (-s) -# specifies the port number for the sshd daemon used for -# authentication (default is 22). -SSH_PORT= - -# TCP window size (-b) -# specifies the tcp window size in bytes (e.g. see -# http://www.psc.edu/networking/perf_tune.html). Default is -# 65535. Only change default for pipes with a high -# bandwidth*delay product. -#ROOTD_WINDOW_SIZE=65535 - -# Debug level (-d) -# level of debug info written to syslogd 0 = no debug -# (default), 1 = minimum, 2 = medium, 3 = maximum. -#ROOTD_DEBUG=0 - -# Access rules configuration file (-D) -# read access rules from file . By default -# /system.rootdaemonrc is used for access rules; -# for privately started daemons $HOME/.rootdaemonrc (if -# present) is read first. -#ROOTD_ACCESS_RULES= - -# Run in foreground (-f) -# run in the foreground (output on the window); useful for -# debugging purposes. Only a value of "yes" enables. -#ROOTD_FOREGROUND= - -# Disable authentification (-noauth) -# do not require client authentication. This shouldn't be enabled -# unless you know what you're doing. Only a value of "yes" enables. -#ROOTD_NO_AUTH= - -# Read only access (-r) -# files can only be opened in read-only mode. Only a value of -# "yes" enables. -#ROOTD_READ_ONLY= - -# -# Temporary director (-T ) -# specifies the directory path to be used to place temporary -# files; default is /usr/tmp. Useful when running with limited -# privileges. -#ROOTD_TMP= - -# Require password (-w) -# do not check /etc/hosts.equiv, $HOME/.rhosts for -# password-based authentication; by default these files are -# checked first by calling ruserok(...); if this option is -# specified a password is always required. Only a value of -# "yes" enables. -#ROOTD_REQUIRE_PASSWD= - -# Use this variable to pass other options to the daemon. -DAEMON_OPTS= - -# -# EOF -# diff --git a/build/package/debian/root-system-rootd.examples b/build/package/debian/root-system-rootd.examples deleted file mode 100644 index 9052720d665c9..0000000000000 --- a/build/package/debian/root-system-rootd.examples +++ /dev/null @@ -1 +0,0 @@ -etc/daemons/rootd.xinetd diff --git a/build/package/debian/root-system-rootd.init.in b/build/package/debian/root-system-rootd.init.in deleted file mode 100644 index 7f9677ca93eed..0000000000000 --- a/build/package/debian/root-system-rootd.init.in +++ /dev/null @@ -1,160 +0,0 @@ -#! /bin/bash -# -# skeleton Written by Miquel van Smoorenburg . -# Modified for Debian -# by Ian Murdock . -# -# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl -# -### BEGIN INIT INFO -# Provides: root-system-rootd -# Required-Start: $local_fs -# Required-Stop: $local_fs -# Should-Start: $network, $remote_fs -# Should-Stop: $network, $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: ROOT file server -# Description: Server of ROOT files via special ROOT protocol -### END INIT INFO -# -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -DAEMON=@prefix@/bin/rootd -NAME=rootd -DESC="ROOT file server" -USER=rootd -test -x $DAEMON || exit 0 - -# Include root defaults if available -if [ -f @sysconfdir@/default/root-system-rootd ] ; then - . @sysconfdir@/default/root-system-rootd -fi - -# Load the VERBOSE setting and other rcS variables -[ -f /etc/default/rcS ] && . /etc/default/rcS - -# Define LSB log_* functions. -. /lib/lsb/init-functions - -# Check options from system settings -# User to execute rootd as -test ! "x$ROOTD_USER" = "x" && USER=$ROOTD_USER -# Port to listen to -test ! "x$ROOTD_PORT" = "x" && DAEMON_OPTS="$DAEMON_OPTS -p $ROOTD_PORT" -# SSH port -test ! "x$SSH_PORT" = "x" && DAEMON_OPTS="$DAEMON_OPTS -s $SSH_PORT" -# TCP window size -test ! "x$ROOTD_WINDOW_SIZE" = "x" && DAEMON_OPTS="$DAEMON_OPTS -b $ROOTD_WINDOW_SIZE" -# Debug level -test ! "x$ROOTD_DEBUG" = "x" && DAEMON_OPTS="$DAEMON_OPTS -d $ROOTD_DEBUG" -# Access rules file -test ! "x$ROOTD_ACCESS_RULES" = "x" && DAEMON_OPTS="$DAEMON_OPTS -D $ROOTD_ACCESS_RULES" -# Run in foreground (shouldn't be done in init script) -test "x$ROOTD_FOREGROUND" = "xyes" && DAEMON_OPTS="$DAEMON_OPTS -f" -# No client authentification (security issue) -test "x$ROOTD_NO_AUTH" = "xyes" && DAEMON_OPTS="$DAEMON_OPTS -noauth" -# files can only be opened read-only -test "x$ROOTD_READ_ONLY" = "xyes" && DAEMON_OPTS="$DAEMON_OPTS -r" -# Temporary directory -test ! "x$ROOTD_TMP" = "x" && DAEMON_OPTS="$DAEMON_OPTS -T $ROOTD_TMP" -# Require passwords. -test "x$ROOTD_REQUIRE_PASSWD" = "xyes" && DAEMON_OPTS="$DAEMON_OPTS -w" - - -# Check if rootd is under inetds control -if test -f /var/run/inetd.pid ; then - # Inetd is running - if grep -q ^$NAME /etc/inetd.conf > /dev/null 2>&1 ; then - # ROOTD is controlled by inetd. - ENABLE_ROOTD=no - fi -fi -# Check if rootd is under xinetds control -if test -f /var/run/xinetd.pid ; then - # Inetd is running - if grep -q ^$NAME /etc/inetd.conf > /dev/null 2>&1 ; then - # ROOTD is controlled by xinetd. - ENABLE_ROOTD=no - fi - # old name - for i in rootd root-rootd root-system-rootd ; do - if test ! -f /etc/xinetd.d/$i ; then continue ; fi - if test grep "disable[[:space:]]*= *[Nn][Oo]" /etc/xinetd.d/$i \ - > /dev/null 2>&1 ; then - # ROOTD is controlled by xinetd. - ENABLE_ROOTD=no - break - fi - done -fi - -# Check if we're enabled at all -case `echo $ENABLE_ROOTD | tr '[:upper:]' '[:lower:]'` in - yes) ;; - *) exit 0;; -esac - - -# Function to start the daemon -startit() -{ - o=`start-stop-daemon --chuid $USER --start --quiet --pidfile \ - /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS` - ret=$? - test $ret -ne 0 && return 1 - eval $o - # echo " (pid: $ROOTD_PID) " - echo $ROOTD_PID > /var/run/$NAME.pid - return $ret -} - -# Function to stop the daemon -stopit() -{ - start-stop-daemon --user $USER --stop --oknodo --quiet --pidfile \ - /var/run/$NAME.pid --exec $DAEMON - ret=$? - test $ret -ne 0 && return 1 - rm -f /var/run/$NAME.pid - return $ret -} - -# Main code -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - startit - ret=$? - [ "$VERBOSE" != no ] && log_end_msg $ret - ;; - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - stopit - ret=$? - [ "$VERBOSE" != no ] && log_end_msg $ret - ;; - restart|force-reload) - # - # If the "reload" option is implemented, move the "force-reload" - # option to the "reload" entry above. If not, "force-reload" is - # just the same as "restart". - # - log_daemon_msg "Restarting $DESC" "$NAME" - stopit - sleep 1 - startit - ret=$? - log_end_msg $ret - ;; - *) - N=@sysconfdir@/init.d/root-system-$NAME - # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 - echo "Usage: $N {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 -# -# EOF -# diff --git a/build/package/debian/root-system-rootd.postinst b/build/package/debian/root-system-rootd.postinst deleted file mode 100644 index f77d6e44c1719..0000000000000 --- a/build/package/debian/root-system-rootd.postinst +++ /dev/null @@ -1,97 +0,0 @@ -#! /bin/sh - -set -e - -case "$1" in - configure) - # Install user rootd for anonymous file access in /var/spool/rootd - # directory. - # The lines below are taken from the mysql-server package, and - # modified to reflects the needs of rootd. - - # Make sure we can add a user properly - if [ ! -x "`which adduser`" ]; then - echo "I need adduser(8) from the adduser package !"; - exit 1; - fi - if [ ! -x "`which addgroup`" ]; then - echo "I need addgroup(8) from the adduser package !"; - exit 1; - fi - if [ ! -x "`which usermod`" ]; then - echo "I need usermod(8) from the passwd package !"; - exit 1; - fi - - # Now we have to ensure the following state: - # /etc/passwd: rootd:x:Anonymous rootd:/var/spool/rootd:/bin/false - # /etc/group: rootd:x:72:rootd - if ! getent group rootd > /dev/null; then - addgroup --system rootd - fi - if ! getent passwd rootd > /dev/null; then - #echo Adding system user: rootd. - adduser \ - --system \ - --disabled-login \ - --ingroup rootd \ - --gecos "Anonymous rootd" \ - --shell /bin/false \ - --home /var/spool/rootd \ - rootd >/dev/null - fi - - # creating rootd home directory - if ! test -d /var/spool/rootd; then - mkdir /var/spool/rootd - fi - - # modifying the user - # usermod -c "Anonymous rootd" rootd > /dev/null - # usermod -d "/var/spool/rootd" rootd > /dev/null - # usermod -g "rootd" rootd > /dev/null - # usermod -s "/bin/false" rootd > /dev/null - - # Since the home directory was created before putting the user - # into the rootd group and moreover we cannot guarantee that - # the permissions were correctly *before* calling this script, - # we fix them now. - #echo - #echo "SECURITY: Fixing permission of /var/spool/rootd !" - #echo "(I.e. replacing GIDs other than root and rootd with rootd.)" - #echo - chown rootd:rootd /var/spool/rootd - find /var/spool/rootd \ - -not \( -group root -or -group rootd \) \ - -exec chgrp rootd {} \; - - # Create the tmp and pub directories in /var/spool/rootd and - # make them world read- and writeable. - if [ ! -d /var/spool/rootd/tmp ] ; then - mkdir -p /var/spool/rootd/tmp - chmod 1777 /var/spool/rootd/tmp - fi - - if [ ! -d /var/spool/rootd/pub ] ; then - mkdir -p /var/spool/rootd/pub - chmod 1777 /var/spool/rootd/pub - fi - - # Nothing to be done here - # if [ "$1" = "upgrade" ] - # then - # start-stop-daemon --stop --quiet --oknodo \ - # --pidfile /var/run/root.pid \ - # --exec @prefix@/sbin/root 2>/dev/null || true - # fi - ;; - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 0 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# diff --git a/build/package/debian/root-system-rootd.prerm b/build/package/debian/root-system-rootd.prerm deleted file mode 100644 index ea306040b138b..0000000000000 --- a/build/package/debian/root-system-rootd.prerm +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh -# prerm script for root-rootd -# -# see: dh_installdeb(1) - -# Do not set - If we cannot remove the rootd user, it is OK -set -e - -case "$1" in - remove) - if grep ^rootd /etc/inetd.conf > /dev/null 2>&1 ; then - update-inetd --remove rootd - fi - # Remove the rootd user and group - # Taken from mysql-server package and modified for ROOT - # rm -rf /var/spool/rootd - if getent passwd rootd > /dev/null; then - deluser --remove-home rootd - reason=$? - if [ $reason -ne 0 ] ; then - # Could not remove user. Ignore. - echo "Couldn't remove user rootd, check it. Reason" - case $reason in - 1) echo "can't update password file" ;; - 2) echo "bad command syntax" ;; - 6) echo "specified user doesn't exist" ;; - 8) echo "user currently logged in" ;; - 10) echo "can't update group file" ;; - 12) echo "can't remove home directory" ;; - *) echo "Unrecognized exit code $reason" ;; - esac - fi - fi - ;; - upgrade|deconfigure) - # Nothing to be done here - ;; - failed-upgrade) - ;; - *) - echo "prerm called with unknown argument \`$1'" >&2 - exit 0 - ;; -esac - -# Now we set fail-on-sub-error so that the debhelper stuff is done correctly. -# set -e - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --git a/build/package/debian/root-system-xrootd.default b/build/package/debian/root-system-xrootd.default deleted file mode 100644 index 474b408063480..0000000000000 --- a/build/package/debian/root-system-xrootd.default +++ /dev/null @@ -1,78 +0,0 @@ -# Defaults for rootd initscript -# sourced by /etc/init.d/root-system-xrootd -# installed at /etc/default/root-system-xrootd by the maintainer scripts -# -# Please refer to the xrootd(1) and olbd(1) man(1) page for more -# information on command line parameters. -# -# This is a POSIX shell fragment -# -# -XROOTD_USER= - -# If this is set to `yes', then the server is started. -# Anything else disables the server -ENABLE_XROOTD=yes - -# Configuration file for xrootd - please refer to the xrootd(1) manual. -XROOTD_CONFIG_FILE= - -# Log file for xrootd -XROOTD_LOG_FILE= - -# Port to listen to (per default 1094) - note, that you can not run -# both rootd and xrootd on the same port. You should give a different -# port to one of them. -XROOTD_PORT= - -# Whether this server is a redirector (see xrootd(1) manual) -XROOTD_REDIRECTOR=no - -# Base directory for xrootd -XROOTD_BASE_DIR= - -# Additional options for xrootd -XDAEMON_OPTS= - -# If this is set to `yes', then the server is started. -# Anything else disables the server -ENABLE_OLBD=no - -# Configuration file for olbd - please refer to the olbd(1) manual. -OLBD_CONFIG_FILE= - -# Log file for olbd -OLBD_LOG_FILE= - -# Port to listen to (per default 1094) - note, that you can not run -# both rootd and olbd on the same port. You should give a different -# port to one of them. -OLBD_PORT= - -# Whether this server is a redirector (see olbd(1) manual) -OLBD_REDIRECTOR=no - -# Additional options for olbd -ODAEMON_OPTS= - -# If this is set to `yes', then the server is started. -# Anything else disables the server -ENABLE_CMSD=no - -# Configuration file for cmsd - please refer to the cmsd(1) manual. -CMSD_CONFIG_FILE= - -# Log file for cmsd -CMSD_LOG_FILE= - -# Port to listen to (per default 1094) - note, that you can not run -# both rootd and cmsd on the same port. You should give a different -# port to one of them. -CMSD_PORT= - -# Additional options for cmsd -CDAEMON_OPTS= - -# -# EOF -# diff --git a/build/package/debian/root-system-xrootd.init.in b/build/package/debian/root-system-xrootd.init.in deleted file mode 100644 index 74c94fe41a4b0..0000000000000 --- a/build/package/debian/root-system-xrootd.init.in +++ /dev/null @@ -1,224 +0,0 @@ -#! /bin/sh -# -# skeleton Written by Miquel van Smoorenburg . -# Modified for Debian -# by Ian Murdock . -# -# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl -# -### BEGIN INIT INFO -# Provides: root-system-xrootd -# Required-Start: $local_fs -# Required-Stop: $local_fs -# Should-Start: $network, $remote_fs, $named -# Should-Stop: $network, $remote_fs, $named -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Extended ROOT file server -# Description: Extended Server of ROOT files via special ROOT -# protocol, and Open Load Balancer server. -### END INIT INFO - -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -XDAEMON=@prefix@/bin/xrootd -ODAEMON=@prefix@/bin/olbd -CDAEMON=@prefix@/bin/cmsd -XNAME=xrootd -ONAME=olbd -CNAME=cmsd -DESC="Extended ROOT file server" -XDESC="Extended ROOT file server" -ODESC="Open Load Balancer server" -CDESC="Cluster Management System server" -USER=root -test -x $DAEMON || exit 0 - -# Include root defaults if available -if [ -f @sysconfdir@/default/root-system-xrootd ] ; then - . @sysconfdir@/default/root-system-xrootd -fi - -# Load the VERBOSE setting and other rcS variables -[ -f /etc/default/rcS ] && . /etc/default/rcS - -# Define LSB log_* functions. -. /lib/lsb/init-functions - -# Check enables -enable_xrootd=`echo $ENABLE_XROOTD | tr '[:upper:]' '[:lower:]'` -enable_olbd=`echo $ENABLE_OLBD| tr '[:upper:]' '[:lower:]'` -enable_cmsd=`echo $ENABLE_CMSD| tr '[:upper:]' '[:lower:]'` - -# xrood options -# Configuration file -if test "x$XROOTD_CONFIG_FILE" != "x" ; then - XDAEMON_OPTS="$XDAEMON_OPTS -c $XROOTD_CONFIG_FILE" -fi -# Log file -if test "x$XROOTD_LOG_FILE" != "x" ; then - XDAEMON_OPTS="$XDAEMON_OPTS -l $XROOTD_LOG_FILE" -fi -# port to listen to -if test "x$XROOTD_PORT" != "x" ; then - XDAEMON_OPTS="$XDAEMON_OPTS -p $XROOTD_PORT" -fi -# Redirection -if test "x$XROOTD_REDIRECTOR" != "xyes" ; then - XDAEMON_OPTS="$XDAEMON_OPTS -r" -fi -# Base directory -if test "x$XROOTD_BASEDIR" != "xyes" ; then - XDAEMON_OPTS="$XDAEMON_OPTS $XROOTD_BASEDIR" -fi - -# olbd options -# Confguration file -if test "x$OLBD_CONFIG_FILE" != "x" ; then - ODAEMON_OPTS="$ODAEMON_OPTS -c $OLBD_CONFIG_FILE" -fi -# Log file -if test "x$OLBD_LOG_FILE" != "x" ; then - ODAEMON_OPTS="$ODAEMON_OPTS -l $OLBD_LOG_FILE" -fi -# Port to listen to -if test "x$OLBD_PORT" != "x" ; then - ODAEMON_OPTS="$ODAEMON_OPTS -p $OLBD_PORT" -fi -# Redirection. -if test "x$OLBD_REDIRECTOR" != "xyes" ; then - ODAEMON_OPTS="$ODAEMON_OPTS -r" -fi - -# cmsd options -# Confguration file -if test "x$CMSD_CONFIG_FILE" != "x" ; then - CDAEMON_OPTS="$CDAEMON_OPTS -c $CMSD_CONFIG_FILE" -fi -# Log file -if test "x$CMSD_LOG_FILE" != "x" ; then - CDAEMON_OPTS="$CDAEMON_OPTS -l $CMSD_LOG_FILE" -fi -# Port to listen to -if test "x$CMSD_PORT" != "x" ; then - CDAEMON_OPTS="$CDAEMON_OPTS -p $CMSD_PORT" -fi - -# User -if test "x$XROOTD_USER" = "xroot" ; then - : -elif test "x$XROOTD_USER" != "x" ; then - USER=$XROOTD_USER -fi - -# Check if we're enabled -case $enable_rootd:$enable_olbd:$enable_cmsd in - yes:*:*) ;; - *:yes:*) ;; - *:*:yes) ;; - *) exit 0;; -esac - -# function to start the main server -startitx () -{ - [ "$VERBOSE" != no ] && log_progress_msg "$XNAME" - start-stop-daemon --make-pidfile --chuid $USER --start --quiet \ - --pidfile /var/run/$XNAME.pid --exec $XDAEMON \ - --background -- $XDAEMON_OPTS -} -startito () -{ - [ "$VERBOSE" != no ] && log_progress_msg "$ONAME" - start-stop-daemon --make-pidfile --chuid $USER --start --quiet \ - --pidfile /var/run/$ONAME.pid --exec $ODAEMON \ - --background -- $ODAEMON_OPTS -} -startitc () -{ - [ "$VERBOSE" != no ] && log_progress_msg "$CNAME" - start-stop-daemon --make-pidfile --chuid $USER --start --quiet \ - --pidfile /var/run/$CNAME.pid --exec $CDAEMON \ - --background -- $CDAEMON_OPTS -} - -stopitx() -{ - start-stop-daemon --user $USER --stop --oknodo --quiet --pidfile \ - /var/run/$XNAME.pid --exec $XDAEMON -} -stopito() -{ - start-stop-daemon --user $USER --stop --oknodo --quiet --pidfile \ - /var/run/$ONAME.pid --exec $ODAEMON -} -stopitc() -{ - start-stop-daemon --user $USER --stop --oknodo --quiet --pidfile \ - /var/run/$CNAME.pid --exec $CDAEMON -} - -# executable code -case "$1" in - start) - ret=0 - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" - if test "x$enable_xrootd" = "xyes" ; then - startitx - ret=$? - fi - if test $ret -eq 0 && test "x$enable_olbd" = "xyes" ; then - startito - ret=$? - fi - [ "$VERBOSE" != no ] && log_end_msg $ret - [ $ret -ne 0 ] && exit $ret - ;; - stop) - ret=0 - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" - if test "x$enable_xrootd" = "xyes" ; then - [ "$VERBOSE" != no ] && log_progress_msg "$XNAME" - stopitx - ret=$? - fi - if test "x$enable_olbd" = "xyes" ; then - [ "$VERBOSE" != no ] && log_progress_msg "$ONAME" - stopito - ret=$? - fi - [ "$VERBOSE" != no ] && log_end_msg $ret - [ $ret -ne 0 ] && exit $ret - ;; - restart|force-reload) - # - # If the "reload" option is implemented, move the "force-reload" - # option to the "reload" entry above. If not, "force-reload" is - # just the same as "restart". - # - ret=0 - [ "$VERBOSE" != no ] && log_daemon_msg "Restarting $DESC" - if test "x$enable_xrootd" = "xyes" ; then - stopitx - startitx - ret=$? - fi - if test $ret -eq 0 && test "x$enable_olbd" = "xyes" ; then - stopito - startito - ret=$? - fi - [ "$VERBOSE" != no ] && log_end_msg $ret - [ $ret -ne 0 ] && exit $ret - ;; - *) - N=@sysconfdir@/init.d/root-system-$XNAME - # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 - echo "Usage: $N {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 -# -# EOF -# diff --git a/build/package/debian/root-system-xrootd.links.in b/build/package/debian/root-system-xrootd.links.in deleted file mode 100644 index 0b27fc77df5f1..0000000000000 --- a/build/package/debian/root-system-xrootd.links.in +++ /dev/null @@ -1,2 +0,0 @@ -@prefix@/share/man/man1/xrd.1.gz @prefix@/share/man/man1/xrd.bin.1.gz - diff --git a/build/package/debian/root-system-xrootd.overrides b/build/package/debian/root-system-xrootd.overrides deleted file mode 100644 index 4ead084238f32..0000000000000 --- a/build/package/debian/root-system-xrootd.overrides +++ /dev/null @@ -1,4 +0,0 @@ -root-system-xrootd: binary-without-manpage usr/bin/xrdgsiproxy.bin -root-system-xrootd: binary-without-manpage usr/bin/xrdpwdadmin.bin -root-system-xrootd: binary-without-manpage usr/bin/xrd.bin -root-system-xrootd: binary-without-manpage usr/bin/xrdcp.bin diff --git a/build/package/debian/root-system.overrides b/build/package/debian/root-system.overrides deleted file mode 100644 index 6fdd27bc07640..0000000000000 --- a/build/package/debian/root-system.overrides +++ /dev/null @@ -1,3 +0,0 @@ -W: root-system source: debian-rules-ignores-make-clean-error line 388 -W: root-system source: configure-generated-file-in-source graf2d/asimage/src/libAfterImage/config.log -W: root-system source: configure-generated-file-in-source graf2d/asimage/src/libAfterImage/config.status diff --git a/build/package/debian/root.conf b/build/package/debian/root.conf deleted file mode 100644 index d19223c17c5d2..0000000000000 --- a/build/package/debian/root.conf +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/root diff --git a/build/package/debian/rules b/build/package/debian/rules deleted file mode 100644 index 057fa4505569e..0000000000000 --- a/build/package/debian/rules +++ /dev/null @@ -1,777 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. -# -# Modified to make a template file for a multi-binary package with separated -# build-arch and build-indep targets by Bill Allombert 2001 -# -# Last changes are made by Antonio Salvucci - -# Uncomment this to turn on verbose mode. -export DH_VERBOSE=1 - -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -DEB_BUILD_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM) -DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) -ifeq ($(DEB_HOST_ARCH_CPU),powerpc) -PLATFORM = linux -else -PLATFORM = -endif -ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) -BUILDOPT = --build=debug -endif -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) -INSTALL_PROGRAM = -s -endif -UNUR = --enable-unuran -#ifneq (,$(findstring alpha, $(DEB_BUILD_ARCH))) -#UNUR = --disable-unuran -#endif -XRD = --enable-xrootd -#ifneq (,$(findstring sparc, $(DEB_BUILD_ARCH))) -#XRD = --disable-xrootd -#endif - -DTMP = debian/tmp -PREFIX = /usr -SYSCONFDIR = /etc -PKGDOCDIR = $(PREFIX)/share/doc/root -CINTDIR = $(PREFIX)/lib/root/$(SOVERS) -ICONTHEME = $(PREFIX)/share/icons/hicolor/48x48 -CONFOPTIONS :=--enable-bonjour \ - --enable-cintex \ - --enable-clarens \ - --enable-editline \ - --enable-explicitlink \ - --enable-gdml \ - --enable-globus \ - --enable-gsl-shared \ - --enable-gviz \ - --enable-fftw3 \ - --enable-krb5 \ - --enable-ldap \ - --enable-qt \ - --enable-qtgsi \ - --enable-mathcore \ - --enable-mathmore \ - --enable-minuit2 \ - --enable-mysql \ - --enable-peac \ - --enable-pgsql \ - --enable-odbc \ - --enable-reflex \ - --enable-roofit \ - --enable-ruby \ - --enable-shadowpw \ - --enable-shared \ - --enable-soversion \ - --enable-table \ - --disable-rpath \ - --disable-afs \ - --disable-srp \ - --disable-builtin-afterimage \ - --disable-builtin-ftgl \ - --disable-builtin-freetype \ - --disable-builtin-glew \ - --disable-builtin-pcre \ - --disable-builtin-zlib \ - --disable-alien \ - --disable-chirp \ - --disable-dcache \ - --disable-gfal \ - --disable-monalisa \ - --disable-oracle \ - --disable-pythia6 \ - --disable-rfio \ - --disable-sapdb \ - --fail-on-missing \ - --with-globus=/usr \ - --with-globus-incdir=/usr/include/globus \ - --with-globus-libdir=/usr/lib \ - $(UNUR) \ - $(XRD) \ - $(BUILDOPT) -# -# Things for the future -# -# --enable-mathcore libroot -# --enable-cintex libroot -# --enable-reflex libroot -# --with-globus=/opt/globus -# --disable-builtin-gsl -# --disable-builtin \ - -VERSION := $(shell cat build/version_number | tr '/' '.') -MAJOR := $(shell echo $(VERSION) | tr '.' ' ' | cut -f1 -d' ') -MINOR := $(shell echo $(VERSION) | tr '.' ' ' | cut -f2 -d' ') -SOVERS := $(MAJOR).$(MINOR) -PKGLIST := $(shell ./configure $(PLATFORM) --pkglist $(CONFOPTIONS) | sed -n -e 's/packages: //p') -ESSENTIALS := libroot-core-dev \ - libroot-core \ - root-system-bin \ - root-system-common \ - ttf-root-installer -PLUGINS := libroot-geom \ - libroot-graf2d-gpad \ - libroot-graf2d-graf \ - libroot-graf2d-postscript \ - libroot-graf3d-eve \ - libroot-graf3d-g3d \ - libroot-graf3d-gl \ - libroot-gui \ - libroot-gui-ged \ - libroot-hist \ - libroot-hist-spectrum \ - libroot-io \ - libroot-io-xmlparser \ - libroot-math-foam \ - libroot-math-genvector \ - libroot-math-mathcore \ - libroot-math-mathmore \ - libroot-math-matrix \ - libroot-math-minuit \ - libroot-math-mlp \ - libroot-math-quadp \ - libroot-math-physics \ - libroot-math-smatrix \ - libroot-math-splot \ - libroot-math-unuran \ - libroot-misc-minicern \ - libroot-misc-memstat \ - libroot-misc-table \ - libroot-montecarlo-eg \ - libroot-montecarlo-vmc \ - libroot-net \ - libroot-net-auth \ - libroot-net-bonjour \ - libroot-net-ldap \ - libroot-proof \ - libroot-proof-proofplayer \ - libroot-tmva \ - libroot-tree \ - libroot-tree-treeplayer \ - root-plugin-geom-geombuilder \ - root-plugin-geom-geompainter \ - root-plugin-graf2d-asimage \ - root-plugin-graf2d-qt \ - root-plugin-graf2d-x11 \ - root-plugin-graf2d-gvi \ - root-plugin-graf3d-x3d \ - root-plugin-gui-fitpanel \ - root-plugin-gui-guibuilder \ - root-plugin-gui-qt \ - root-plugin-gui-sessionviewer \ - root-plugin-hist-hbook \ - root-plugin-hist-histpainter \ - root-plugin-hist-spectrumpainter \ - root-plugin-io-sql \ - root-plugin-io-xml \ - root-plugin-math-fftw3 \ - root-plugin-math-fumili \ - root-plugin-math-minuit2 \ - root-plugin-net-krb5 \ - root-plugin-net-netx \ - root-plugin-net-xrootd \ - root-plugin-proof-xproof \ - root-plugin-sql-odbc \ - root-plugin-tree-treeviewer \ - root-system-proofd \ - root-system-doc \ - root-system-rootd \ - root-system-xrootd -EXTRAS := libroot-proof-clarens \ - libroot-bindings-python \ - libroot-roofit \ - libroot-bindings-ruby \ - root-plugin-geom-gdml \ - root-plugin-io-castor \ - root-plugin-io-chirp \ - root-plugin-io-dcache \ - root-plugin-montecarlo-pythia8 \ - root-plugin-net-globus \ - root-plugin-net-bonjour \ - root-plugin-net-alien \ - root-plugin-net-srp \ - root-plugin-proof-peac \ - root-plugin-sql-maxdb \ - root-plugin-sql-mysql \ - root-plugin-sql-oracle \ - root-plugin-sql-pgsql -PLUGINLIST := $(filter-out $(EXTRAS) $(ESSENTIALS), $(PKGLIST)) -EXTRALIST := $(filter-out $(PLUGINS) $(ESSENTIALS), $(PKGLIST)) -PLUGINLIST := $(PLUGINLIST:libroot%=libroot%-dev) -EXTRALIST := $(EXTRALIST:libroot%=libroot%-dev) -PLUGINHEAD := $(filter-out $(lastword $(PLUGINLIST)), $(PLUGINLIST)) -PLUGINLIST := $(PLUGINHEAD:%=%,) $(lastword $(PLUGINLIST)) -EXTRAHEAD := $(filter-out $(lastword $(EXTRALIST)), $(EXTRALIST)) -EXTRALIST := $(EXTRAHEAD:%=%,) $(lastword $(EXTRALIST)) -TEMPLATES := $(wildcard debian/*.in) -SPKGLIST := $(filter-out root-system-doc root-system-common ttf-root-installer, $(PKGLIST:libroot%=libroot%$(SOVERS))) $(filter libroot%, $(PKGLIST:libroot%=libroot%-dev)) libroot-static -IPKGLIST := root-system-doc ttf-root-installer root-system-common root-system -DPKGLIST := $(SPKGLIST:%=%,) root-system-doc, root-ttf -#root-plugins root-extra-plugins -SPKGOPTS := $(SPKGLIST:%=-p%) -IPKGOPTS := $(IPKGLIST:%=-p%) -PKGOPTS := $(IPKGOPTS) $(SPKGOPTS) -HAVERUBY := $(filter libroot-bindings-ruby, $(PKGLIST)) -ifeq ($(HAVERUBY), libroot-bindings-ruby) -RUBYARCHDIR := $(shell ruby -rrbconfig -e 'puts Config::CONFIG["archdir"]' | sed 's,/,,') -else -RUBYARCHDIR := -endif -HAVEPYTHON := $(filter libroot-bindings-python, $(PKGLIST)) -ifeq ($(HAVEPYTHON), libroot-bindings-python) -PYVERS := $(shell pyversions -vs) -PYVER := $(shell python -c 'import sys; print "%d.%d" % (sys.version_info[0], sys.version_info[1])') -PYTHONDIR := /usr/lib/python-support/root/python$(PYVER) -else -PYTHONDIR := -endif - -# This has to be exported to make some magic below work. -export DH_OPTIONS - -show_pkgs: - @printf "SPKGLIST:\n $(foreach i, $(SPKGLIST), \t$(i)\n)" - @printf "IPKGLIST:\n $(foreach i, $(IPKGLIST), \t$(i)\n)" - @printf "PLUGINLIST:\n $(foreach i, $(PLUGINLIST), \t$(i)\n)" - @printf "EXTRALIST:\n $(foreach i, $(EXTRALIST), \t$(i)\n)" - @printf "HAVERUBY: $(HAVERUBY)\nRUBYARCHDIR: $(RUBYARCHDIR)" - @printf "HAVEPYTHON: $(HAVEPYTHON)\nPYTHONDIR: $(PYTHONDIR)" - -show_libpkgs: - @echo "$(SPKGLIST)" - @echo "$(patsubst %, -p%, $(filter libroot%$(SOVERS),$(SPKGLIST)))" - -show_conf: - ./configure $(PLATFORM) --pkglist $(CONFOPTIONS) - -debian/%:debian/%.in debian/rules - @echo "Making $@ from $< " - @sed -e 's,@prefix@,$(PREFIX),g' \ - -e 's,@sysconfdir@,$(SYSCONFDIR),g' \ - -e 's,@pkgdocdir@,$(PKGDOCDIR),g' \ - -e 's,@rubyarchdir@,$(RUBYARCHDIR),g' \ - -e 's,@pythondir@,$(PYTHONDIR),g' \ - -e 's,@libvers@,$(SOVERS),g' < $< > $@ - -debian/control:debian/control.in debian/rules - @echo "Making $@ (special)" - @cp $< $@.tmp - @echo "Packages are $(PKGLIST)" - @for p in $(PKGLIST) ; do \ - if test -f build/package/common/$$p.control ; then \ - echo "Adding package $$p to control file" ; \ - cat build/package/common/$$p.control >> $@.tmp ; fi ; done - @builddep="$(shell ./build/package/lib/makebuilddepend.sh $(PKGLIST))" && \ - sed -e 's,@prefix@,$(PREFIX),g' \ - -e 's,@libvers@,$(SOVERS),g' \ - -e 's,@sysconfdir@,$(SYSCONFDIR),g' \ - -e 's,@pkgdocdir@,$(PKGDOCDIR),g' \ - -e "s/@builddepends@/$${builddep}/" \ - -e 's/@pyvers@/$(PYVER)/g' \ - -e 's/@pkglist@/$(DPKGLIST)/' \ - -e 's/@plugins@/$(PLUGINLIST:%,=% (>= $${binary:Version}),) (>= $${binary:Version})/' \ - -e 's/@extras@/$(EXTRALIST:%,=% (>= $${binary:Version}),) (>= $${binary:Version})/' < $@.tmp > $@ - rm -rf $@.tmp - -.PRECIOUS: debian/html.C - -debian/html.C: - rm -f $@ - @echo "{" >> $@ - @echo " /* magic line from Rene */" >> $@ - @echo " gEnv->SetValue(\"Root.PluginPath\"," >> $@ - @echo " \"$(CURDIR)/etc/plugins\");" >> $@ - @echo " gEnv->SetValue(\"Root.TTFontPath\"," >> $@ - @echo " \"/usr/share/fonts/truetype/freefont/:$(CURDIR)/fonts\");" >> $@ - @echo " gSystem->AddIncludePath(\"$(CURDIR)/include\");" >> $@ - @echo " gROOT->GetPluginManager()->" >> $@ - @echo " LoadHandlersFromPluginDirs(\"\");" >> $@ - @echo " gROOT->GetPluginManager()->" >> $@ - @echo " AddHandler(\"TVirtualPS\",\"image\"," >> $@ - @echo " \"TImageDump\",\"Postscript\"," >> $@ - @echo " \"TImageDump()\");" >> $@ - @echo " gROOT->GetPluginManager()->" >> $@ - @echo " AddHandler(\"TVirtualStreamerInfo\"," >> $@ - @echo " \"*\",\"TStreamerInfo\"," >> $@ - @echo " \"RIO\",\"TStreamerInfo()\");" >> $@ - @echo " gROOT->GetPluginManager()->" >> $@ - @echo " AddHandler(\"TVirtualGraphPainter\", \"*\"," >> $@ - @echo " \"TGraphPainter\",\"GraphPainter\",">> $@ - @echo " \"TGraphPainter()\");" >> $@ - @echo " THtml html;" >> $@ - @echo " html.SetProductName(\"ROOT\");" >> $@ - @echo " html.SetEtcDir(\"$(CURDIR)/etc/html\");" >> $@ - @echo " html.SetHomepage(\"http://root.cern.ch\");" >> $@ - @echo " html.LoadAllLibs();" >> $@ - @echo " html.SetBatch(kTRUE);" >> $@ - @echo " html.MakeAll();" >> $@ - @echo "}" >> $@ - -htmldoc:debian/html.C build-arch-cint-stamp - mkdir $(CURDIR)/etc/html.tmp - for i in $(CURDIR)/etc/html/* ; do \ - sed -e 's,http://root.cern.ch/drupal/sites/default/files/,,' \ - -e 's,http://root.cern.ch/drupal/sites/all/themes/newsflash/images/blue/,,' < $$i > $(CURDIR)/etc/html.tmp/`basename $$i` ; \ - done - LD_LIBRARY_PATH=$(CURDIR)/lib:$(CURDIR)/include:$(LD_LIBRARY_PATH) ROOTSYS=$(CURDIR) \ - $(CURDIR)/bin/root.exe -l -b -q $^ - # rm -f debian/html.C - for i in info.png root-banner.png rootdrawing-logo.png ; do \ - cp $(CURDIR)/etc/html/$$i $(CURDIR)/htmldoc/$$i ; done - rm -rf $(CURDIR)/etc/html.tmp - @touch htmldoc-stamp - -htmldoc-stamp: htmldoc - -configure-stamp:$(TEMPLATES:%.in=%) config.status -config.status: configure - dh_testdir - # Add here commands to configure the package. - ./configure $(PLATFORM) \ - --prefix=$(PREFIX) \ - --mandir=$(PREFIX)/share/man/man1 \ - --docdir=$(PKGDOCDIR) \ - --cintincdir=$(CINTDIR) \ - --etcdir=$(SYSCONFDIR)/root \ - --with-sys-iconpath=$(PREFIX)/share/pixmaps \ - --libdir=$(PREFIX)/lib/root/$(SOVERS) \ - $(CONFOPTIONS) - touch math/unuran/src/headers.d - touch configure-stamp - -# --fontdir=%_datadir/root/fonts/truetype -#Architecture -build: build-arch build-indep - -# inserted comment to unable htmldoc -#build-arch: build-arch-cint-stamp htmldoc-stamp -build-arch: build-arch-cint-stamp - -build-arch-stamp: configure-stamp - - # Add here commands to compile the arch part of the package. - #$(MAKE) ASTEPETAG= XROOTDETAG= UNURANETAG= - $(MAKE) UNURANETAG= - $(MAKE) static UNURANETAG= - touch build-arch-stamp - -build-arch-cint-stamp:build-arch-stamp - $(MAKE) all-cintdlls - touch build-arch-cint-stamp - -build-indep: build-indep-stamp -build-indep-stamp: configure-stamp - - # Add here commands to compile the indep part of the package. - #$(MAKE) doc - touch build-indep-stamp - -clean: $(TEMPLATES:%.in=%) - tar -xvzf math/unuran/src/unuran*.tar.gz - #if change, correct unurar version - rm -rf ./math/unuran/src/unuran-1.8.0-root - mv unuran-1.8.0-root ./math/unuran/src/. - dh_testdir - dh_testroot - debconf-updatepo --podir=build/package/debian/po - rm -f debian/pyversions debian/pycombat debian/html.C - rm -f build-arch-stamp build-indep-stamp build-arch-cint-stamp \ - config.status configure-stamp config.log htmldoc-stamp - rm -rf minuit2/src/Minuit-1_7_6 - rm -rf freetype/src/freetype-2.1.9 - #-rm -rf asimage/src/libAfterImage - rm -rf debian/*.files debian/*.install - rm -f macros/html.C - rm -f memstat.root - rm -f *.Cexec - rm -f etc/daemons/proofd.rc.d - rm -f etc/daemons/proofd.xinetd - rm -f etc/daemons/rootd.rc.d - rm -f etc/daemons/rootd.xinetd - rm -f etc/daemons/olbd.rc.d - rm -f etc/daemons/xrootd.rc.d - rm -f qtgsi/src/G__QtGSI.cxx qtgsi/src/G__QtGSI.h - rm -f qt/src/moc_*.cxx - rm -f G__genreflex_rootcint.h - rm -f graf2d/asimage/src/libAfterImage/Makefile - rm -f graf2d/asimage/src/libAfterImage/afterbase.h - rm -f graf2d/asimage/src/libAfterImage/afterimage-config - rm -f graf2d/asimage/src/libAfterImage/afterimage-libs - rm -f graf2d/asimage/src/libAfterImage/config.h - rm -f graf2d/asimage/src/libAfterImage/config.log - rm -f graf2d/asimage/src/libAfterImage/config.status - rm -f graf2d/asimage/src/libAfterImage/libAfterImage.a - #-rm -f net/xrootd/src/xrootd/GNUmakefile - #-rm -f net/xrootd/src/xrootd/src/GNUmake.env - #-rm -f net/xrootd/src/xrootd/src/GNUmake.options - find . -name ".#*" | xargs rm -rf - find . \( -name "G__*.cxx" \ - -or -name "G__*.h" \ - -or -name "G__*.c" \) \ - -and -not -name "G__ci.h" \ - -and -not -name G__postprocess.h \ - -and -not -name "G__main.c" \ - -and -not -name "G__setup.c" \ - -and -not -name "G__ci_fproto.h" \ - -and -not -name "G__security.h" \ - | xargs rm -rf - # Add here commands to clean up after the build process. - [ ! -f config/Makefile.config ] || $(MAKE) distclean \ - UNURANETAG= \ - UNURKEEP=yes - # OK to ignore errors for these - makecintdll.sh might fail - -for i in climits complex deque exception list map2 map multimap2 \ - multimap multiset queue set stack stdexcept valarray \ - vectorbool vector ; do \ - build/unix/makecintdll.sh clean $$i ; done - rm -rf bin lib include htmldoc \ - system.rootrc \ - config/Makefile.config \ - README/Changelog \ - etc/system.rootrc \ - etc/system.rootauthrc \ - etc/system.rootdaemonrc \ - etc/root.mimes \ - build/misc/root-help.el \ - debian/*.files \ - debian/*.install \ - debian/shlibs.local \ - graf2d/freetype/src/freetype-2.1.3 \ - core/pcre/src/pcre-6.4 \ - math/unuran/src/unuran-*-root/config.status \ - math/unuran/src/unuran-*-root/config.log \ - net/xrootd/src/xrootd/lib \ - net/xrootd/src/xrootd/obj \ - net/xrootd/src/xrootd/bin \ - htmldoc \ - math/unuran/src/unuran-*-root/config.h \ - math/unuran/src/unuran-*-root/Makefile \ - math/unuran/src/unuran-*-root/libtool \ - math/unuran/src/unuran-*-root/stamp-h1 \ - math/unuran/src/unuran-*-root/src/Makefile \ - math/unuran/src/unuran-*-root/src/distr/Makefile \ - math/unuran/src/unuran-*-root/src/utils/Makefile \ - math/unuran/src/unuran-*-root/src/distributions/Makefile \ - math/unuran/src/unuran-*-root/src/tests/Makefile \ - math/unuran/src/unuran-*-root/src/methods/Makefile \ - math/unuran/src/unuran-*-root/src/specfunct/Makefile \ - math/unuran/src/unuran-*-root/src/urng/Makefile \ - math/unuran/src/unuran-*-root/src/uniform/Makefile \ - math/unuran/src/unuran-*-root/src/parser/Makefile - # touch the headers for xrootd and asimage - # touch net/xrootd/src/headers.d - # touch graf2d/asimage/src/headers.d - rm -f $(filter-out debian/control, $(TEMPLATES:%.in=%)) - dh_clean - -pkglists: - rm -rf debian/*.files debian/*.install - build/package/lib/makelists.sh debian debian/tmp \ - $(VERSION) $(PREFIX) $(SYSCONFDIR) $(PKGDOCDIR) -# @for i in debian/libroot* ; do \ -# if test -d $$i ; then continue ; fi ; \ -# case $$i in \ -# *-dev.*|*.in|libroot*$(SOVERS).*) continue ;; \ -# *) echo "Renaming $$i to version specific" ; \ -# cp $$i `echo $$i | sed 's/libroot\(.*\)\.\(.*\)/libroot\1$(SOVERS).\2/'` ;; esac ; \ -# done - -install: install-indep install-arch -install-indep: - dh_testdir - dh_testroot - dh_clean -k -i -X$(DTMP) - dh_installdirs -i - - # Add here commands to install the indep part of the package into - # debian/-doc. - #INSTALLDOC# - - # dh_install $(IPKGOPTS) --sourcedir=$(DTMP) - dh_install -i --sourcedir=$(DTMP) - #inserted comment htmldoc line - #cp -a htmldoc/ $(CURDIR)/debian/root-system-doc/usr/share/doc/root/html - # Make sym-link so that web-page refers to installed tutorials dir. - #ln -s $(CURDIR)/debian/root-system-doc/usr/share/doc/root/tutorials \ - # $(CURDIR)/debian/root-system-doc/usr/share/doc/root/html/ - - # Fix some permissions - -find debian/root-system-common/$(PREFIX)/share/root/icons \ - -perm 0755 -and -not -type d | xargs chmod a-x - # mkdir -p debian/root-system-doc/usr/share/lintian/overrides/ - # cp debian/root-system-doc.overrides \ - # debian/root-system-doc/usr/share/lintian/overrides/root-system-doc - - # Install sha256sums for ttf installer - cp -a debian/ttf-root-installer.sha256sums \ - debian/ttf-root-installer/var/lib/ttf-root-installer/sha256sums - - # New Ld.so.conf file - # cp debian/root-system-common.conf \ - # debian/root-system-common/$(SYSCONFDIR)/ld.so.conf.d - - -install-arch: - dh_testroot - dh_clean -k -s -X$(DTMP) - # Need to clean this, because we don't want to use the - # symblic links made later on. - rm -rf $(DTMP)$(PREFIX)/lib/root - dh_installdirs -s - - # Add here commands to install the arch part of the package into - # $(DTMP). - #$(MAKE) install DESTDIR=$(CURDIR)/$(DTMP) \ - # ASTEPETAG= XROOTDETAG= UNURANETAG= - $(MAKE) install DESTDIR=$(CURDIR)/$(DTMP) UNURANETAG= - - # Install desktop entry and icon - mkdir -p $(DTMP)$(PREFIX)/share/applications - mkdir -p $(DTMP)$(PREFIX)/share/pixmaps - mkdir -p $(DTMP)$(ICONTHEME)/apps - mkdir -p $(DTMP)$(ICONTHEME)/mimetypes - cp debian/root-system-bin.desktop $(DTMP)$(PREFIX)/share/applications - cp build/package/debian/root-system-bin.xpm \ - $(DTMP)$(PREFIX)/share/pixmaps/root-system-bin.xpm - cp build/package/debian/root-system-bin.png \ - $(DTMP)$(ICONTHEME)/apps/root-system-bin.png - cp build/package/debian/application-x-root.png \ - $(DTMP)$(ICONTHEME)/mimetypes/application-x-root.png - - #library path patch - mkdir -p $(DTMP)/etc/ld.so.conf.d - cp debian/root.conf $(DTMP)/etc/ld.so.conf.d - - # Make root-config output '/usr/lib/root' instead of - # '/usr/lib/root/' - sed 's,$(PREFIX)/lib/root/$(SOVERS),$(PREFIX)/lib/root,' \ - < $(DTMP)$(PREFIX)/bin/root-config > root-config.tmp - mv root-config.tmp $(DTMP)$(PREFIX)/bin/root-config - - # Make default ZIP mode be new library (system library), - # remove ROOT plug-in library from load path, since this file - # is supposed to be version independent. - # and set start-up url of TBrowser embedded HTML renderer to - # be local install of documentation - sed -e 's,Root\.ZipMode:.*,Root.ZipMode: 1,' \ - -e 's,\(.*\.DynamicPath:.*\):$(PREFIX)/lib/root[^:]*\(.*\),\1\2,' \ - -e 's,\(Browser.StartUrl: *\).*,\1http://localhost/doc/root/html/index.html,'\ - < $(DTMP)$(SYSCONFDIR)/root/system.rootrc > rootrc.tmp - mv rootrc.tmp $(DTMP)$(SYSCONFDIR)/root/system.rootrc - - # Rename proofserv, xrdgsiproxy, xrdpwdadmin, xrdcp, and xrd in - # /usr/bin to end in `.bin' and make wrapper script in /usr/bin - for i in proofserv xrdgsiproxy xrdpwdadmin xrdcp xrd ; do \ - if test -f $(DTMP)$(PREFIX)/bin/$$i && \ - test -f build/package/common/$$i.in ; then \ - mv $(DTMP)$(PREFIX)/bin/$$i \ - $(DTMP)$(PREFIX)/bin/$$i.bin ; \ - sed -e 's,@prefix@,$(PREFIX),g' \ - -e 's,@libvers@,$(SOVERS),g' \ - < build/package/common/$$i.in \ - > $(DTMP)$(PREFIX)/bin/$$i ; \ - chmod 755 $(DTMP)$(PREFIX)/bin/$$i ; \ - else \ - echo $i missing in $(DTMP)$(PREFIX)/bin ; fi ; done - - # Make the empty proof log file - mkdir -p $(DTMP)$(PREFIX)/share/root/proof/log - touch $(DTMP)$(PREFIX)/share/root/proof/log/proof.log - - # Let usr/include/root/cfortran.h point to usr/include/cfortran.h - rm -rf $(DTMP)$(PREFIX)/include/root/cfortran.h - (cd $(DTMP)$(PREFIX)/include/root && ln -s ../cfortran.h cfortran.h) - - # Remove some unwanted files - rm -rf $(DTMP)$(PREFIX)/share/doc/root/INSTALL - rm -rf $(DTMP)$(PREFIX)/share/doc/root/LICENSE - rm -rf $(DTMP)$(PREFIX)/share/doc/root/COPYING.CINT - rm -rf $(DTMP)$(PREFIX)/share/doc/root/cfortran.doc - rm -rf $(DTMP)$(PREFIX)/share/root/fonts/LICENSE - - # Remove MacOSX service descriptions - rm -rf $(DTMP)$(SYSCONFDIR)/root/*.plist - - # Remove Xinetd and Red Hat Init scripts from /etc - rm -rf $(DTMP)$(SYSCONFDIR)/root/*.xinetd - rm -rf $(DTMP)$(SYSCONFDIR)/root/proofd - rm -rf $(DTMP)$(SYSCONFDIR)/root/rootd - rm -rf $(DTMP)$(SYSCONFDIR)/root/xrootd - rm -rf $(DTMP)$(SYSCONFDIR)/root/olbd - - # Remove sample configurations for PROOF - rm -rf $(DTMP)/$(PREFIX)/share/root/proof/etc/*.sample - - # Remove the CVS directories if present - find $(DTMP) -name "CVS" | xargs rm -fr - find $(DTMP) -name ".cvsignore" | xargs rm -fr - - # Fix some permissions - -find $(DTMP)$(CINTDIR)/cint \ - -perm 755 -and -not -type d | xargs chmod a-x - -chmod a-x $(DTMP)$(PREFIX)/lib/root/$(SOVERS)/*.py - -chmod a-x $(DTMP)$(SYSCONFDIR)/root/html/* - # -chmod a+x $(DTMP)$(PREFIX)/lib/root/$(SOVERS)/GDMLROOT.py - - # Remove she-bang line from a python scripts - -for i in $(DTMP)$(PREFIX)/lib/root/$(SOVERS)/*.py ; do \ - sed -e 's,#!/usr/bin/env python[0-9.]*,#,' \ - -e 's,#!/usr/bin/python[0-9.]*,#,' \ - < $$i > $$i.tmp ; \ - mv $$i.tmp $$i ; \ - done - - # Make file lists - mkdir -p $(DTMP)$(PREFIX)/lib/root - ./debian/rules pkglists - - # --sourcedir=$(DTMP) $(SPKGOPTS) - dh_install -s \ - --list-missing \ - --sourcedir=$(DTMP) \ - -X$(PREFIX)/include/root/config.h \ - -X$(PREFIX)/include/root/rootcint.pri \ - -X$(PREFIX)/include/root/rootcintrule.pri \ - -X$(PREFIX)/include/root/rootlibs.pri \ - -X$(PREFIX)/include/root/precompile.h \ - -X$(PREFIX)/include/root/precompile.h.gch \ - -X$(PREFIX)/include/root/TQtWidget.cw \ - -X$(PREFIX)/share/root/fonts \ - -X$(PREFIX)/share/doc/root \ - -X$(PREFIX)/share/man/man1/system.rootdaemonrc.1 \ - -X$(PREFIX)/bin/thisroot.sh \ - -X$(PREFIX)/bin/thisroot.csh \ - -X$(PREFIX)/share/root/icons/ \ - -X$(SYSCONFDIR)/root/rootd \ - -X$(SYSCONFDIR)/root/daemons/ \ - -X$(SYSCONFDIR)/root/proof/ \ - -X$(SYSCONFDIR)/root/html \ - -X$(SYSCONFDIR)/root/RadioNuclides.txt \ - -X$(SYSCONFDIR)/root/gdb-backtrace-script \ - -X$(SYSCONFDIR)/root/gdb-backtrace.sh \ - -X$(SYSCONFDIR)/root/hostcert.conf \ - -X$(SYSCONFDIR)/root/pdg_table.txt \ - -X$(SYSCONFDIR)/root/root.mimes \ - -X$(SYSCONFDIR)/root/system.rootrc \ - -X$(SYSCONFDIR)/root/system.rootauthrc \ - -X$(SYSCONFDIR)/root/system.rootdaemonrc \ - -X$(PREFIX)/lib/root/$(SOVERS)/libAfterImage.a \ - -X$(PREFIX)/lib/root/$(SOVERS)/PyCintex.pyc \ - -X$(PREFIX)/lib/root/$(SOVERS)/PyCintex.pyo \ - -X$(PREFIX)/lib/root/$(SOVERS)/ROOT.pyc \ - -X$(PREFIX)/lib/root/$(SOVERS)/ROOT.pyo \ - -X$(PREFIX)/lib/root/$(SOVERS)/cint7 \ - -X$(PREFIX)/include/root/Minuit2 -# $(foreach i, \ -# $(wildcard $(DTMP)/$(PREFIX)/lib/root/lib*.so.$(SOVERS)), \ -# -X$(i:$(DTMP)/%=%) ) - - # Install Lintian overrides files - # for i in $(filter libroot%$(SOVERS), $(SPKGLIST)) ; do \ - # t=debian/$$i/usr/share/lintian/overrides/ ; \ - # rm -rf $$t ; \ - # mkdir -p $$t ; \ - # echo "$$i: postinst-has-useless-call-to-ldconfig" > $$t/$$i; \ - # echo "$$i: postrm-has-useless-call-to-ldconfig" >> $$t/$$i; \ - # done - for i in debian/*.overrides ; do \ - if test ! -f $$i ; then continue; fi; \ - b=`basename $$i .overrides` ; \ - echo "Installing Lintian override $$i in debian/$$b/usr/share/lintian/overrides/$$b" ; \ - mkdir -p debian/$$b/usr/share/lintian/overrides/ ; \ - cp $$i debian/$$b/usr/share/lintian/overrides/$$b ; \ - done - - # This is for alternatives registration, if one want's to install - # Richard Kreckels cint package next to ROOT - # mv debian/root-system-bin/$(PREFIX)/bin/cint \ - # debian/root-system-bin/$(PREFIX)/bin/cint.root - # mv debian/root-system-bin/$(PREFIX)/bin/makecint \ - # debian/root-system-bin/$(PREFIX)/bin/makecint.root - # mv debian/root-system-bin/$(PREFIX)/share/man/man1/cint.1 \ - # debian/root-system-bin/$(PREFIX)/share/man/man1/cint.root.1 - # mv debian/root-system-bin/$(PREFIX)/share/man/man1/makecint.1 \ - # debian/root-system-bin/$(PREFIX)/share/man/man1/makecint.root.1 - -# Must not depend on anything. This is to be called by -# binary-arch/binary-indep -# in another 'make' thread. -binary-common: - dh_testdir - dh_testroot - dh_installchangelogs - dh_installdocs - dh_installexamples - dh_installmenu - dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam - dh_installmime - dh_installinit -# dh_installcron -# dh_installinfo - dh_installman - dh_link - dh_strip - dh_compress \ - -Xusr/share/doc/root/test \ - -Xusr/share/doc/root/tutorials \ - -Xusr/share/doc/root/html - dh_fixperms -# dh_perl - -# Build architecture independent packages using the common target. -binary-indep: build-indep install-indep - $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common - dh_installdeb -i - dh_gencontrol -i - dh_md5sums -i - dh_builddeb -i - -# Build architecture dependent packages using the common target. -binary-arch: build-arch install-arch - $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common -ifeq ($(HAVEPYTHON), libroot-bindings-python) - # We make this here, so that we get the right python version on the - # system compiling. - echo "$(PYVER)-" > debian/pyversions -endif - dh_pysupport -plibroot-bindings-python-dev - # $(PREFIX)/lib/root/$(SOVERS) $(PREFIX)/lib/root - dh_pysupport -plibroot-core-dev \ - $(PREFIX)/lib/root/$(SOVERS)/python/genreflex -ifeq ($(HAVEPYTHON), libroot-bindings-python) - # dh_pysupport will only write this field if the package is - # named something like 'python-*', so we make it ourselves. - echo "python:Provides=python$(PYVER)-pyroot" >> debian/libroot-bindings-python-dev.substvars -endif - dh_makeshlibs -V \ - $(patsubst %, -p%, $(filter libroot%$(SOVERS),$(SPKGLIST))) - dh_makeshlibs -V -n \ - $(patsubst %, -p%, $(filter root-plugin%,$(SPKGLIST))) - dh_installdeb -s - dh_shlibdeps -s $(SPKGLIST:%=-L%) \ - -l$(shell echo $(SPKGLIST:%=$(CURDIR)/debian/%$(PREFIX)/lib/root/$(SOVERS)) | tr ' ' ':') -- --warnings=1 - dh_gencontrol -s - dh_md5sums -s - dh_builddeb -s - -binary: binary-arch binary-indep -.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch - -# -# EOF -# diff --git a/build/package/debian/ttf-root-installer.config b/build/package/debian/ttf-root-installer.config deleted file mode 100644 index 37e72ee51b3a6..0000000000000 --- a/build/package/debian/ttf-root-installer.config +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -# Config prior to download/install of Microsoft Core Fonts for the Web -# -# (C) 2001 Eric Sharkey. -# You may freely distribute this file under the terms of the GNU General -# Public License, version 2 or later - -set -e - -archive=ttf_fonts.tar.gz -# Source debconf library. -. /usr/share/debconf/confmodule - -db_title "ROOT TTF Installer" -# db_reset ttf-root-installer/blurb -db_input high ttf-root-installer/blurb || true -db_input high ttf-root-installer/dldir || true -db_go -db_get ttf-root-installer/dldir -dldir=$RET -while [ -n "$dldir" ] && \ - [ `echo $dldir | tr [:upper:] [:lower:]` != "none" ] ; do - BADDIR="" - if test ! -f $dldir/$archive ; then BADDIR=1 ; fi - - if [ -n "$BADDIR" ] ; then - db_fset ttf-root-installer/baddldir seen false - db_fset ttf-root-installer/dldir seen false - db_input critical ttf-root-installer/baddldir || true - db_input critical ttf-root-installer/dldir || true - db_go - db_get ttf-root-installer/dldir - dldir=`echo $RET | tr [:upper:] [:lower:] ` - else - break - fi -done -if [ -z "$dldir" ] || - [ `echo $dldir | tr [:upper:] [:lower:]` = "none" ]; then - db_input high ttf-root-installer/savedir || true - db_go - db_get ttf-root-installer/savedir -fi - -# -# EOF -# diff --git a/build/package/debian/ttf-root-installer.copyright b/build/package/debian/ttf-root-installer.copyright deleted file mode 100644 index e6e5c7ff4aa41..0000000000000 --- a/build/package/debian/ttf-root-installer.copyright +++ /dev/null @@ -1,38 +0,0 @@ -This package was orginally created by Christian Holm Christensen on -Mon, 21 Feb 2005 16:28:37 +0100. -The current maintainer is Antonio Salvucci . - -Copyright: - -Upstream Authors: The ROOT Team consiting of Rene Brun - and Fons Rademakers , -and Christian Holm Christensen - -License: - -Copyright: 1994, 1995, 1996, 1997, 1998, 1999 ROOT Team - 2000, 2001, 2002, 2003, 2004, 2005 ROOT Team - 2006 ROOT Team - - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 - USA - -On Debian systems, the complete text of the GNU Lesser General Public -License, version 2.1, can be found in -/usr/share/common-licenses/LGPL-2.1. - -Please also refer to -/usr/share/doc/ttf-root-installer/root/LICENSE.fonts for the licensing -terms of the fonts themselves. diff --git a/build/package/debian/ttf-root-installer.dirs b/build/package/debian/ttf-root-installer.dirs deleted file mode 100644 index 4b0abdaeb7d7e..0000000000000 --- a/build/package/debian/ttf-root-installer.dirs +++ /dev/null @@ -1,2 +0,0 @@ -usr/share/root/fonts -var/lib/ttf-root-installer diff --git a/build/package/debian/ttf-root-installer.overrides b/build/package/debian/ttf-root-installer.overrides deleted file mode 100644 index 1ca9dc4572ae0..0000000000000 --- a/build/package/debian/ttf-root-installer.overrides +++ /dev/null @@ -1 +0,0 @@ -W: ttf-root-installer: package-contains-empty-directory usr/share/root/fonts/ diff --git a/build/package/debian/ttf-root-installer.postinst.in b/build/package/debian/ttf-root-installer.postinst.in deleted file mode 100644 index 9a21d48f219db..0000000000000 --- a/build/package/debian/ttf-root-installer.postinst.in +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh - -set -e -. /usr/share/debconf/confmodule - -archive=ttf_fonts.tar.gz - -db_get ttf-root-installer/dldir -LOCALCOPY=$RET - -db_get ttf-root-installer/savedir -SAVEDIR=${RET} - -case "$1" in - configure) - if test ! -f /var/cache/ttf-root-installer && \ - test "x`echo $LOCALCOPY | tr [:upper:] [:lower:]`" != "xnone" ; then - savdir=`pwd` - tmpdir=`mktemp -d` - cd $tmpdir - if test -z $LOCALCOPY ; then - # We need to download the tar-ball - wget --continue --tries=1 --dns-timeout=10 \ - --connect-timeout=5 --read-timeout=300 -q \ - --directory-prefix . -c \ - ftp://root.cern.ch/root/ttf/$archive - else - # Have the tar-ball already - cp $LOCALCOPY/$archive . - fi - if test ! -f $archive ; then - exit 1 - fi - # Unpack - tar -tzf $archive | grep "\.ttf$" | sed 's,ttf/fonts/,,' \ - | grep -v "symbol.ttf" > /var/cache/ttf-root-installer - tar -xzf $archive - mkdir -p @prefix@/share/root/fonts/ - cd ttf/fonts/ - for i in *.ttf ; do - case $i in - *symbol.ttf) ;; # ignore this one - *) - if grep $i /var/lib/ttf-root-installer/sha256sums | sha256sum -c ; then - cp -a $i @prefix@/share/root/fonts/ - else - echo "Checksum mismatch for $i, aborting" - exit 1 - fi - ;; - esac - done - cp LICENSE \ - @prefix@/share/doc/ttf-root-installer/LICENSE.fonts - cd ../../ - rm -rf ttf - - if test "x$SAVEDIR" != "x" ; then - mkdir -p $SAVEDIR - cp -a $archive $SAVEDIR/$archive - fi - rm -f $archive - cd $savdir - fi - ;; - abort-upgrade|abort-remove|abort-deconfigure) - # Nothing to be done here - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 0 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/build/package/debian/ttf-root-installer.prerm.in b/build/package/debian/ttf-root-installer.prerm.in deleted file mode 100644 index 270423c3986a4..0000000000000 --- a/build/package/debian/ttf-root-installer.prerm.in +++ /dev/null @@ -1,25 +0,0 @@ -#! /bin/sh -# prerm script for ttf-root-installer -# -# see: dh_installdeb(1) - -set -e - -. /usr/share/debconf/confmodule - -archive=ttf_fonts.tar.gz - -if test -f /var/cache/ttf-root-installer ; then - (cd @prefix@/share/root/fonts && - rm -f `cat /var/cache/ttf-root-installer`) - rm -f @prefix@/share/doc/ttf-root-installer/LICENSE.fonts - rm -f /var/cache/ttf-root-installer -fi - - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/build/package/debian/ttf-root-installer.sha256sums b/build/package/debian/ttf-root-installer.sha256sums deleted file mode 100644 index 307aa326f76d8..0000000000000 --- a/build/package/debian/ttf-root-installer.sha256sums +++ /dev/null @@ -1,32 +0,0 @@ -ab638a6a4bdbda8be8fb0aac6eb4f69541765f60291c1b3f681f2911e6b2ddb1 arialbd.ttf -01e42b5cc8dacc43664af06d377c3652a0b1a5cacecd3de99d59c62a8e643a72 arialbi.ttf -b4be860554eedf38a2d8a4a5dddda488ea8870523ad3567dd08783995a5f6f06 ariali.ttf -5a43f55a6166780d43a351a6c112daceb6e2855f20d2f32edaae33dca58b97c8 arial.ttf -e553601fe667e91f040e24a88d49bfaafe1de89e7616e6a81733e26bb94b9ab5 ariblk.ttf -9a6df26dfdb367bd1a0cddf201e7fdfdeb64ac7de0e4cf53813515b2865d9608 comicbd.ttf -08e336a641ef44f0a6c745a52c64ba10ad58a8aad631e3db79c98cb703b9893f comic.ttf -c391964f35bd80ad03aec3019f9b6e2267f4ff4253ddb49174163b325b0e0fad courbd.ttf -2eb59450f7405c27f95ab88049d49413e91f638e571451c31931e857db561e27 courbi.ttf -94450160219c7145e00440b52ffb7c5ee765efbfba2e2d073254f72cff327689 couri.ttf -f450ed481208d51ca2ebf4bf01649fdceeb36295e887c8f6166d411740879619 cour.ttf -aa53fab49b006325c42dd2ebcbc9daaed25dd51623ef884deecd2103c25a3025 georgiab.ttf -0010b652c5b23236352e19444f04c1273e158ac4e32da40ff0ddc5dfb88a00e0 georgiai.ttf -c4c13685f658ae0f19cc27ca01fc897d088da03ee5749d04cc1b9c8fc6c2120b georgia.ttf -30c9eff27c96f52e6632a29e322191ae7ce1ca3d86cbcc737a2740a9420d571b georgiaz.ttf -37818cc75fbaff2991b65dad617feb3f0a95df5a0a472f15b7782fbc1aa7dd61 impact.ttf -52b10e4ff3142adfe0634d32aff79d74eea63ca2a2eaf8016001487b183a83a1 monotype.ttf -12af2fec15206fb188d716ba66911e18797a27c756e1fad97dad000bfc37eef7 symbol.ttf -02014e120d0a8582b130582ce03c405643a8a751eeb4af94905b35311b2e2334 timesbd.ttf -4d48db0cfa5ceb4566714052519dc0b02e871da04d262d30022c62daa51238fa timesbi.ttf -5d2b795310280640255b71ab63fad142e51670898461842d8e09c66a589f2a42 timesi.ttf -26b91be3951c947090d16eef4928a10bdc08b89e5322b4b17005ce76a29d7ed2 times.ttf -d8fe80ea31a5b11dc1f179b7bb0ca7f1995ff8ec1356fa2e93cfbf8f7423a0d7 trebucbd.ttf -4f4cf68016af9a6a5c114d9accee78b27dbc4c16bed03f0642d56d30354fb6a8 trebucbi.ttf -9dd37d69907c6cffc7524e466f944cbd22ef34fce83686a8e3e940c54f13ceaa trebucit.ttf -b2f6a62527add1c1c6307e90852f1c2fff5f297156ccc5fa9338a2a776b0ab89 trebuc.ttf -eb120818af5277b256bc56814f9a0d0e7678e166016fecca44f818de0b925b7e verdanab.ttf -5e8130ce5b5e6e7b33dec2264b7a5dc4f97e75c89a01eeba9d61c97f9402fe13 verdanai.ttf -836697de9e101a21557563d35f6c3cd4529810d909ab8c0979e790b14d3bd02a verdana.ttf -f5cd068af31c8aa6574b2a9437ffdf15a574ce89bad016f4f9501d5dd3102764 verdanaz.ttf -27cec47f691ec1b7211979657f5cb3a144d2fddd1f716ea7e05bef6baf55a1a8 webdings.ttf -2a367bb1ae06b4c0aca764a1a6fbbac41c61ecf4f5606d475521241bcb7dc057 wingding.ttf diff --git a/build/package/debian/ttf-root-installer.templates b/build/package/debian/ttf-root-installer.templates deleted file mode 100644 index 66c16ef7e633c..0000000000000 --- a/build/package/debian/ttf-root-installer.templates +++ /dev/null @@ -1,45 +0,0 @@ -# These templates have been reviewed by the debian-l10n-english -# team -# -# If modifications/additions/rewording are needed, please ask -# debian-l10n-english@lists.debian.org for advice. -# -# Even minor modifications require translation updates and such -# changes should be coordinated with translators and reviewers. - -Template: ttf-root-installer/blurb -Type: note -_Description: Non-free fonts - The fonts provided in this package were provided by Microsoft "in the interest of cross-platform - compatibility". This is no longer the case, but they are still available - from third parties. - . - You are free to download these fonts and use them for your own purposes, - but you have no permission to redistribute them in modified form, including - changes to the file name or packaging format. - -Template: ttf-root-installer/dldir -Type: string -_Description: Directory holding Microsoft fonts (if already downloaded): - If you have already downloaded Microsoft's TrueType Core Fonts from the - ROOT FTP server (ftp://root.cern.ch/root/ttf/ttf_fonts.tar.gz), please enter the - name of the directory which contains the archive. - . - If you haven't yet downloaded these fonts, leave this blank and the fonts - will be downloaded automatically. The download size is approximately 1.6 MB. - . - If you are not connected to the Internet or do not wish to download these - fonts now, enter "none" to abort. - -Template: ttf-root-installer/baddldir -Type: error -_Description: Font files not found - The directory you entered either does not exist, or does not contain the - Microsoft TrueType Core Fonts for ROOT. - -Template: ttf-root-installer/savedir -Type: string -_Description: Archive files to (optional): - If you would like to keep a permanent archive of the compressed Microsoft - Core fonts, please enter the directory where you'd like them stored. If you - leave this blank, the files will be deleted after installation. diff --git a/build/package/lib/makebuilddepend.sh b/build/package/lib/makebuilddepend.sh deleted file mode 100755 index c3285e0e08fe5..0000000000000 --- a/build/package/lib/makebuilddepend.sh +++ /dev/null @@ -1,338 +0,0 @@ -#!/bin/sh -# - -need_krb5=0 -need_qt=0 -if test "x$1" = "xrpm" ; then - shift - for i in $* ; do - case $i in - *-dev) ;; - libroot-bindings-python) - echo "BuildRequires: python-devel >= 2.1" ;; - libroot-bindings-ruby) - echo "BuildRequires: ruby-devel >= 1.8" - echo "BuildRequires: ruby >= 1.8" ;; - libroot-core) ;; - libroot-geom) ;; - libroot-graf2d-gpad) ;; - libroot-graf2d-graf) ;; - libroot-graf2d-postscript) ;; - libroot-graf3d-eve) ;; - libroot-graf3d-g3d) ;; - libroot-graf3d-gl) - echo "BuildRequires: mesa-libGLU-devel" ;; - libroot-gui) ;; - libroot-gui-ged) ;; - libroot-hist) ;; - libroot-hist-spectrum) ;; - libroot-io) ;; - libroot-io-xmlparser) - echo "BuildRequires: libxml2-devel" ;; - libroot-math-physics) ;; - libroot-math-foam) ;; - libroot-math-genvector) ;; - libroot-math-mathcore) ;; - libroot-math-mathmore) - echo "BuildRequires: gsl-devel" ;; - libroot-math-matrix) ;; - libroot-math-minuit) ;; - libroot-math-mlp) ;; - libroot-math-quadp) ;; - libroot-math-smatrix) ;; - libroot-math-splot) ;; - libroot-math-unuran) ;; - libroot-misc-table) ;; - libroot-misc-memstat) ;; - libroot-misc-minicern) - echo "BuildRequires: gcc-gfortran" ;; - libroot-montecarlo-eg) ;; - libroot-montecarlo-vmc) ;; - libroot-net-ldap) - echo "BuildRequires: openldap-devel" ;; - libroot-net-bonjour) ;; - libroot-proof) ;; - libroot-proof-clarens) - echo "BuildRequires: xmlrpc-c-devel" ;; - libroot-proof-proofplayer) ;; - libroot-roofit) ;; - libroot-static) ;; - libroot-tmva) ;; - libroot-tree) ;; - libroot-tree-treeplayer) ;; - libroot-net) ;; - libroot-net-auth) ;; - root-plugin-geom-geompainter) ;; - root-plugin-geom-geombuilder) ;; - root-plugin-geom-gdml) ;; - root-plugin-graf2d-x11) ;; -# Build dependency on AfterStep-devel temporarily commented out -# until such a time when ROOT can use the normal libAfterImage. -# Input the build dependencies of the libafterimage-dev package -# *asimage) echo -n ", AfterStep-devel" ;; - root-plugin-graf2d-asimage) - echo "BuildRequires: freetype-devel" - echo "BuildRequires: zlib-devel" - echo "BuildRequires: libtiff-devel" - echo "BuildRequires: libpng-devel" - echo "BuildRequires: libungif-devel" - echo "BuildRequires: libjpeg-devel" - echo "BuildRequires: libICE-devel" - echo "BuildRequires: libSM-devel" - echo "BuildRequires: gawk" ;; - root-plugin-graf2d-qt) need_qt=1 ;; - root-plugin-graf2d-gviz) ;; - root-plugin-graf3d-x3d) ;; - root-plugin-gui-fitpanel) ;; - root-plugin-gui-guibuilder) ;; - root-plugin-gui-qt) need_qt=1 ;; - root-plugin-gui-sessionviewer) ;; - root-plugin-hist-hbook) ;; - root-plugin-hist-histpainter) ;; - root-plugin-hist-spectrumpainter) ;; - root-plugin-io-castor) - echo "BuildRequires: castor-devel" ;; - root-plugin-io-chirp) ;; - root-plugin-io-dcache) - echo "BuildRequires: d-cache-client" ;; - root-plugin-io-sql) ;; - root-plugin-io-xml) ;; - root-plugin-math-fftw3) - echo "BuildRequires: fftw3-devel" ;; - root-plugin-math-fumili) ;; - root-plugin-math-mathmore) ;; - root-plugin-math-minuit2) ;; - root-plugin-math-mlp) ;; - root-plugin-montecarlo-pythia6) - echo "BuildRequires: pythia6-devel" ;; - root-plugin-montecarlo-pythia8) - echo "BuildRequires: pythia8-devel" ;; - root-plugin-net-alien) - echo "BuildRequires: AliEn-Client" ;; - root-plugin-net-globus) - echo "BuildRequires: globus" ;; - root-plugin-net-krb5) - echo "BuildRequires: krb5-devel" ;; - root-plugin-net-netx) ;; - root-plugin-net-srp) - echo "BuildRequires: srp-devel" ;; - root-plugin-net-xrootd) ;; - root-plugin-net-bonjour) - echo -n ", libavahi-core-dev" ;; - root-plugin-proof-peac) ;; - root-plugin-proof-proofplayer) ;; - root-plugin-proof-xproof) ;; - root-plugin-sql-oracle) - "BuildRequires: oracle-instantclient-devel" ;; - root-plugin-sql-mysql) - cat <= 4.1.0 - %else -BuildRequires: mysql-devel >= 4.1.0 - %endif -%else -BuildRequires: mysql-devel >= 4.1.0 -%endif -EOF - ;; - root-plugin-sql-odbc) - echo "BuildRequires: unixODBC-devel >= 2.2.11" ;; - root-plugin-sql-pgsql) - echo "BuildRequires: postgresql-devel" ;; - root-plugin-sql-maxdb) - echo "BuildRequires: libsqlod75-dev" ;; - root-plugin-tree-treeviewer) ;; - root-system-bin) ;; - root-system-common) ;; - root-system-doc) ;; - root-system-proofd) ;; - root-system-rootd) ;; - root-system-xrootd) need_krb=1 ;; - ttf-root*) ;; - *) - echo "*** Warning *** Unknown package $i - please update $0" \ - > /dev/stderr ;; - esac - done - if test $need_qt -gt 0 ; then - cat <= 4.3.0 - %else -BuildRequires: qt4-devel >= 4.3.0 - %endif - %endif -%else -BuildRequires: qt4-devel >= 4.3.0 -%endif -EOF - fi - if test $need_krb5 -gt 0 ; then - echo "BuildRequires: krb5-devel" - fi - exit 0 -fi - -### echo %%% Making build dependencies -bd= -for i in $* ; do - case $i in - *-dev) ;; - libroot-bindings-python) - echo -n ", python-support (>= 0.3)" ;; - libroot-bindings-ruby) - echo -n ", ruby (>= 1.8), ruby1.8-dev | ruby-dev (>= 1.8)" ;; - libroot-core) ;; - libroot-geom) ;; - libroot-graf2d-gpad) ;; - libroot-graf2d-graf) ;; - libroot-graf2d-postscript) ;; - libroot-graf3d-eve) ;; - libroot-graf3d-g3d) ;; - libroot-graf3d-gl) - echo -n ", libglu1-mesa-dev | libglu1-xorg-dev " - echo -n "| xlibmesa-glu-dev | libglu-dev" - echo -n ", libglew1.5-dev | libglew-dev" - echo -n ", libftgl-dev | ftgl-dev" ;; - libroot-gui) ;; - libroot-gui-ged) ;; - libroot-hist) ;; - libroot-hist-spectrum) ;; - libroot-io) ;; - libroot-io-xmlparser) echo -n ", libxml2-dev" ;; - libroot-math-physics) ;; - libroot-math-foam) ;; - libroot-math-genvector) ;; - libroot-math-mathcore) ;; - libroot-math-mathmore) echo -n ", libgsl0-dev" ;; - libroot-math-matrix) ;; - libroot-math-minuit) ;; - libroot-math-mlp) ;; - libroot-math-quadp) ;; - libroot-math-smatrix) ;; - libroot-math-splot) ;; - libroot-math-unuran) ;; - libroot-misc-table) ;; - libroot-misc-memstat) ;; - libroot-misc-minicern) - echo -n ", gfortran|fortran-compiler" ;; - libroot-montecarlo-eg) ;; - libroot-montecarlo-vmc) ;; - libroot-net-ldap) - echo -n ", libldap2-dev | libldap-dev" ;; - libroot-proof) ;; - libroot-proof-clarens) - echo -n ", libxmlrpc-c3-dev | libxmlrpc-c-dev | libxmlrpc-core-c3-dev" - echo -n ", libcurl4-gnutls-dev | libcurl4-openssl-dev | libcurl-dev" - ;; - libroot-proof-proofplayer) ;; - libroot-roofit) ;; - libroot-tmva) ;; - libroot-tree) ;; - libroot-tree-treeplayer) ;; - libroot-net) ;; - libroot-net-auth) ;; - libroot-net-bonjour) - echo -n ", libavahi-compat-libdnssd-dev" ;; - root-plugin-geom-geompainter) ;; - root-plugin-geom-geombuilder) ;; - root-plugin-geom-gdml) ;; - root-plugin-graf2d-x11) ;; -# Build dependency libafterimage-dev temporarily commented out -# until such a time that ROOT can use the normal libAfterImage. -# root-plugin-graf3d-asimage) echo -n ", libafterimage-dev" ;; -# Input the build dependencies of the libafterimage-dev package - root-plugin-graf2d-asimage) - echo -n ", libjpeg62-dev, libpng12-dev, libtiff4-dev" - echo -n ", libgif-dev | libungif4-dev, libxinerama-dev";; - root-plugin-graf2d-qt) need_qt=1 ;; - root-plugin-graf2d-gviz) ;; - root-plugin-graf3d-x3d) ;; - root-plugin-gui-fitpanel) ;; - root-plugin-gui-guibuilder) ;; - root-plugin-gui-qt) need_qt=1 ;; - root-plugin-gui-sessionviewer) ;; - root-plugin-hist-hbook) ;; - root-plugin-hist-histpainter) ;; - root-plugin-hist-spectrumpainter) ;; - root-plugin-io-castor) echo -n ", libshift-dev" ;; - root-plugin-io-chirp) echo -n ", libchirp-dev" ;; - root-plugin-io-dcache) echo -n ", libdcap-dev" ;; - root-plugin-io-sql) ;; - root-plugin-io-xml) ;; - root-plugin-math-fftw3) - echo -n ", libfftw3-dev | fftw3-dev" ;; - root-plugin-math-fumili) ;; - root-plugin-math-minuit2) ;; - root-plugin-math-mlp) ;; - root-plugin-montecarlo-pythia5) echo -n ", pythia5-dev" ;; - root-plugin-montecarlo-pythia6) echo -n ", pythia6-dev" ;; - root-plugin-montecarlo-pythia8) echo -n ", pythia8-dev" ;; - root-plugin-net-alien) echo -n ", libgapiui-dev" ;; - root-plugin-net-globus) - echo -n ", libglobus-gss-assist-dev" - echo -n ", libglobus-gssapi-gsi-dev" - echo -n ", libglobus-gsi-credential-dev" - echo -n ", libglobus-common-dev" - echo -n ", libglobus-gsi-callback-dev" - echo -n ", libglobus-gsi-sysconfig-dev" - echo -n ", libglobus-gssapi-gsi-dev" - echo -n ", libglobus-gsi-callback-dev" - echo -n ", libglobus-gsi-cert-utils-dev" - echo -n ", libglobus-openssl-dev" - echo -n ", libglobus-gsi-proxy-core-dev" - echo -n ", libglobus-callout-dev" - echo -n ", globus-proxy-utils" - ;; - root-plugin-net-krb5) need_krb5=1 - echo -n ",krb5-user|heimdal-clients" ;; - root-plugin-net-netx) ;; - root-plugin-net-srp) echo -n ", libsrputil-dev" ;; - root-plugin-net-xrootd) ;; - root-plugin-net-bonjour) - echo -n ", libavahi-core-dev" ;; - root-plugin-proof-peac) ;; - root-plugin-proof-proofplayer) ;; - root-plugin-proof-xproof) ;; - root-plugin-sql-oracle) - echo -n ", oracle-instantclient-devel" ;; - root-plugin-sql-mysql) - echo -n ", libmysqlclient15-dev | libmysqlclient14-dev" - echo -n "| libmysqlclient12-dev| libmysqlclient-dev" ;; - root-plugin-sql-odbc) - echo -n ", libiodbc2-dev | unixodbc-dev" ;; - root-plugin-sql-pgsql) - echo -n ", libpq-dev | postgresql-dev" ;; - root-plugin-sql-maxdb) - echo -n ", libsqlod75-dev [i386 ia64 amd64]" ;; - root-plugin-tree-treeviewer) ;; - root-system-bin) ;; - root-system-common) ;; - root-system-doc) ;; - root-system-proofd) ;; - root-system-rootd) ;; - root-system-xrootd) need_krb5=1 ;; - ttf-root*) ;; - *) - echo "*** Warning *** Unknown package $i - please update $0" \ - > /dev/stderr ;; - esac -done -if test $need_qt -gt 0 ; then - echo -n ", libqt4-dev (>= 4.3.0) | libqt3-mt-dev (>= 3.3.0)" - echo -n ", qt4-dev-tools (>= 4.3.0) | qt3-dev-tools (>= 3.3.0)" - echo -n ", libqt4-opengl-dev" -fi -if test $need_krb5 -gt 0 ; then - echo -n ", libkrb5-dev|heimdal-dev" -fi - -# -# EOF -# diff --git a/build/package/lib/makedebdir.sh b/build/package/lib/makedebdir.sh deleted file mode 100755 index aaaba79c23f6d..0000000000000 --- a/build/package/lib/makedebdir.sh +++ /dev/null @@ -1,374 +0,0 @@ -#!/bin/sh -# -# $Id: makedebdir.sh,v 1.17 2007/05/14 07:42:44 rdm Exp $ -# -# Make the debian packaging directory -# -purge=0 -leave=0 -clean=0 -setup=1 -upcl=1 -root_sovers=`cat build/version_number | sed 's,/.*,,'` - - -# ____________________________________________________________________ -usage () -{ - cat </dev/null` - for i in ${tars} ; do - case `basename $i ${ext}` in - .bogus) continue ;; - *) - sub=`tar -t${dopt}f $i | head -n 1 | xargs basename` - if test "x$sub" != "x" && \ - test "x$sub" != "x." ; then - message -n "Removing $dir/$sub" - rm -rf $dir/$sub - check_retval - fi - message -n "Extracting `basename $i`" - tar -x${dopt}f $i -C $dir - check_retval "" - - message -n "Removing $i" - rm -f ${i} - touch ${dir}/headers.d - check_retval - ;; - esac - done -} - - -# ____________________________________________________________________ -purge () -{ - test $purge -lt 1 && return 0 - - cat <<-EOF - ============================================================= - Warning: Purging sources of unwanted stuff - - I will expand tar-balls, and remove them. I will also remove - non-free True Type Fonts. To restore these files, you should - do a CVS update. - ============================================================= - EOF - # Now, remove files we definitely don't want - # rm -f fonts/*.ttf - message -n "Removing unwanted files" - rm -f \ - build/package/common/libroot-clarens.control \ - build/package/common/libroot.control \ - build/package/common/libroot-dev.install.in \ - build/package/common/libroot.install.in \ - build/package/common/libroot-mathmore.control \ - build/package/common/libroot-minuit.control \ - build/package/common/libroot-mlp.control \ - build/package/common/libroot-python.control \ - build/package/common/libroot-python-dev.install.in \ - build/package/common/libroot-python.install.in \ - build/package/common/libroot-quadp.control \ - build/package/common/libroot-ruby.control \ - build/package/common/libroot-unuran.control \ - build/package/common/libroot-dev.control \ - build/package/debian/libroot.postinst \ - build/package/debian/libroot.postrm \ - build/package/common/root-plugin-alien.control \ - build/package/common/root-plugin-castor.control \ - build/package/common/root-plugin-chirp.control \ - build/package/common/root-plugin-dcache.control \ - build/package/common/root-plugin-fftw3.control \ - build/package/common/root-plugin-fumili.control \ - build/package/common/root-plugin-gl.control \ - build/package/common/root-plugin-globus.control \ - build/package/common/root-plugin-hbook.control \ - build/package/common/root-plugin-hbook.install.in \ - build/package/common/root-plugin-krb5.control \ - build/package/common/root-plugin-maxdb.control \ - build/package/common/root-plugin-minuit2.control \ - build/package/common/root-plugin-mysql.control \ - build/package/common/root-plugin-netx.control \ - build/package/common/root-plugin-odbc.control \ - build/package/common/root-plugin-oracle.control \ - build/package/common/root-plugin-peac.control \ - build/package/common/root-plugin-pgsql.control \ - build/package/common/root-plugin-pythia5.control \ - build/package/common/root-plugin-pythia6.control \ - build/package/common/root-plugin-qt.control \ - build/package/common/root-plugin-sql.control \ - build/package/common/root-plugin-srp.control \ - build/package/common/root-plugin-venus.control \ - build/package/common/root-plugin-xml.control \ - build/package/common/root-plugin-xproof.control \ - build/package/common/root-plugin-clarens.control \ - build/package/common/root-plugin-ldap.control \ - build/package/common/root-plugin-minuit.control \ - build/package/common/root-plugin-mlp.control \ - build/package/common/root-plugin-python.control \ - build/package/common/root-plugin-python.install.in \ - build/package/common/root-plugin-quadp.control \ - build/package/common/root-plugin-roofit.control \ - build/package/common/root-plugin-ruby.control \ - build/package/common/root-plugin-sapdb.control \ - build/package/debian/root-plugin-roofit.copyright \ - build/package/debian/root-system-proofd.postinst.in \ - build/package/debian/root-system-rootd.postinst.in \ - build/package/common/root-cint.control \ - build/package/common/root-cint.copyright \ - build/package/common/root-cint.install.in \ - build/package/debian/root-cint.copyright \ - build/package/debian/root-cint.postinst.in \ - build/package/debian/root-cint.postrm.in \ - build/package/debian/root-cint.prerm.in \ - build/package/common/root-rootd.install.in \ - build/package/common/root-xrootd.install.old \ - build/package/debian/pycompat \ - build/package/common/ttf-root.control \ - build/package/common/ttf-root.install.in \ - build/package/debian/ttf-root.copyright \ - build/package/debian/dirs \ - build/package/lib/makerpmspecs.sh \ - fonts/LICENSE - check_retval "unwanted files" - - - # rm -rf asimage/src/libAfterImage - # rm -rf xrootd/src/xrootd - # rm -rf unuran/src/unuran-*-root - message -n "Removing non-free fonts" - for i in fonts/*.ttf ; do - if test ! -f ${i} ; then continue ; fi - case $i in - */symbol.ttf) ;; - *) rm $i ;; - esac - done - check_retval - - if test $leave -lt 1 ; then - message -n "Removing old packaging files" - # Remove old package files - for i in build/package/*/root-{bin,doc,common,xrootd,rootd,proofd}* - do - if test ! -f $i ; then continue ; fi - rm $i - done - check_retval - fi - - # Extract tar-balls, and remove the tar-balls. - message "Extracting tar-balls" - extract_tarballs math/unuran/src - if test $? -eq 0 ; then - rm -f math/unuran/src/unuran-*-root/config.status - rm -f math/unuran/src/unuran-*-root/config.log - fi -} - -# ____________________________________________________________________ -clean() -{ - if test $clean -lt 1 ; then return 0 ; fi - - message -n "Cleaning" - make maintainer-clean \ - UNURANETAG= \ - UNURKEEP=yes > /dev/null 2>&1 - rm -rf debian - rm -f fonts/s050000l.pfb - rm -f fonts/s050000l.pe - check_retval -} - - -# ____________________________________________________________________ -vers2num() -{ - echo $1 | \ - tr '/' '.' | \ - awk 'BEGIN {FS="."}{printf "%d", (($1*1000)+$2)*1000+$3}' -} - -# ____________________________________________________________________ -update_cl() -{ - test $upcl -lt 1 && return 0 - - cl=build/package/debian/changelog - message -n "Update $cl" - root_vers=`cat build/version_number | tr '/' '.'` - last_vers=`head -n 1 $cl | sed 's/root-system (\(.*\)).*/\1/'` - root_lvers=`vers2num $root_vers` - last_lvers=`vers2num $last_vers` - if test $root_lvers -gt $last_lvers ; then - res=$root_lvers - dch -v ${root_vers}-1 -c $cl "New upstream version" - else - res="same version" - fi - check_retval $res -} - -# ____________________________________________________________________ -setup() -{ - test $setup -lt 1 && return 0 - - ### echo %%% Make the directory - message "Setting up debian directory ..." - mkdir -p debian - - ### echo %%% Copy files to directory, making subsitutions if needed - for i in build/package/debian/* ; do - if test -d $i ; then - case $i in - */CVS|.svn) continue ;; - esac - fi - - case $i in - */lib*-static.*.in) - e=`basename $i .in | sed 's/.*\.//'` - b=`basename $i .$e.in` - t="${b}.${e}.in" - echo "Copying ${b}.${e}.in to debian/${t}" - cp -a $i debian/${t} - ;; - */lib*-dev*) - echo "Copying `basename $i` to debian/" - cp -a $i debian/ - ;; - */lib*.overrides.in) - b=`basename $i .overrides.in ` - t="${b}${root_sovers}.overrides" - echo "Copying ${b}.overrides to debian/${t}" - sed "s/@libvers@/${root_sovers}/g" < $i > debian/${t} - ;; - */lib*.in) - e=`basename $i .in | sed 's/.*\.//'` - b=`basename $i .$e.in` - t="${b}${root_sovers}.${e}.in" - echo "Copying ${b}.${e}.in to debian/${t}" - cp -a $i debian/${t} - ;; - */lib*) - e=`basename $i | sed 's/.*\.//'` - b=`basename $i .$e` - t="${b}${root_sovers}.${e}" - echo "Copying ${b}.${e}.in to debian/${t}" - cp -a $i debian/${t} - ;; - */s050000l.pfb|*/s050000l.pe) - # Copying s050000l.pfb and s050000l.pe to font directory - b=`basename $i` - echo "Copying $b to fonts/$b" - cp $i fonts/ - ;; - */po) - b=`basename $i` - echo "Making directory debian/$b" - mkdir -p debian/$b - echo "Copying to directory debian/$b" - cp -a $i/* debian/$b/ - ;; - *) - b=`basename ${i}` - echo "Copying $b to debian/$b" - cp -a $i debian/ - ;; - esac - done - - # cp -a build/package/debian/* debian/ - find debian -name "CVS" | xargs -r rm -frv - find debian -name ".svn" | xargs -r rm -frv - rm -fr debian/root-system-bin.png - rm -fr debian/application-x-root.png - chmod a+x debian/rules - chmod a+x build/package/lib/* - - # Make sure we rebuild debian/control - touch debian/control.in - check_retval "Setting up debian directory" -} - -# ____________________________________________________________________ -while test $# -gt 0 ; do - case $1 in - -h|--help) usage ;; - -p|--purge) purge=1 ;; - -c|--clean) clean=1 ;; - -n|--no-setup) setup=0 ; upcl=0 ;; - -o|--leave-old) leave=1 ;; - *) echo "Unknown option: $1, try $0 --help" > /dev/stderr ;; - esac - shift -done - -# ____________________________________________________________________ -purge -clean -update_cl -setup - -# -# EOF -# diff --git a/build/package/lib/makelist b/build/package/lib/makelist deleted file mode 100755 index 678edbb73d53c..0000000000000 --- a/build/package/lib/makelist +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/make -f -# -# -# Normal variables derived from passed variables -LPATH := $(PREFIX)/lib/root -IPATH := $(PREFIX)/include/root -BPATH := $(PREFIX)/bin -MPATH := $(PREFIX)/share/man/man1 -SOEXT := so -MAJOR := $(shell echo $(VERSION) | tr '.' ' ' | cut -f1 -d' ') -MINOR := $(shell echo $(VERSION) | tr '.' ' ' | cut -f2 -d' ') -SOVER := $(MAJOR).$(MINOR) -RLIBD := $(PREFIX)/lib/root - -# Put all library files into version-specific lists -ifneq ($(LIB),$(DEV)) -SLIB := $(LIB)$(SOVER) -else -SLIB := $(LIB) -endif -ifneq ($(LIB),$(BIN)) -SBIN := $(BIN) -else -SBIN := $(SLIB) -endif - -# Include general and directory specific make rules -ifneq ($(DIRS),) -include config/Makefile.config -include config/Makefile.$(ARCH) -include $(foreach i, $(DIRS), $(i)/Module.mk) -# Special case of xrootd -ifeq ($(DIRS), net/xrootd) -XRDLIBS := $(patsubst lib/%, $(LPATH)/%, \ - $(filter-out lib/libXrdProofd.so, $(wildcard lib/libXrd*.so))) -ALLLIBS := $(XRDLIBS:$(RLIBD)/%=$(RLIBD)/%) -ALLEXECS:= $(filter-out bin/xrootd bin/olbd, $(ALLEXECS)) -endif # $(DIRS) = xrootd -endif # ! $(DIRS) = -ifneq ($(filter cint/cint,$(DIRS)),) -include cint/ROOT/cintdlls.mk -DICTLIBS += $(patsubst lib/%, $(RLIBD)/%, $(filter lib/%, $(CINTDICTDLLS))) -ALLMAPS = $(patsubst lib/%, $(RLIBD)/%, $(filter lib/%, $(CINTDICTMAPS))) -endif - -# Default target and message -all: hello liblist devlist binlist -hello: - @echo "Making list for '$(DIRS)' ($(SLIB),$(DEV),$(SBIN))" -# @echo "ALLLIBS=$(ALLLIBS) ALLMAPS=$(ALLMAPS) PKGLIBS=$(PKGLIBS)" - -# If we have a development package, get the list of headers. -ifneq ($(DEV),) -PKGHDRS := $(shell echo $(ALLHDRS) | sed -e 's,[^ ]*inc/,include/,g' -e 's,include/,usr/include/root/,g') -endif - -# If we have a Library, then we get the list of libraries -ifneq ($(LIB),) -# if the development package and the library package is not the same, -# we need to append the soversion to the library directory -ifneq ($(LIB),$(DEV)) -PKGLIBS := $(ALLLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%.$(SOVER)) \ - $(ALLLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%.$(MAJOR)) \ - $(ALLLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%) \ - $(ALLLIBS:$(RLIBD)/%=$(RLIBD)/%.$(SOVER)) \ - $(DICTLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%.$(SOVER)) \ - $(DICTLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%.$(MAJOR)) \ - $(DICTLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%) -DEVLIBS := $(ALLLIBS) -else # ! $(LIB) = $(DEV) -# If the development and library package is the same (plugins), then we need -# only add the soversion to the library directory -ifeq ($(DIRS), net/xrootd) -PKGLIBS := $(ALLLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%) -else -PKGLIBS := $(ALLLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%.$(SOVER)) \ - $(ALLLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%.$(MAJOR)) \ - $(ALLLIBS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%) -endif # $(DIRS) = net/xrootd -endif # $(LIB) = $(DEV) -endif # $(LIB) -ifneq ($(NOMAP),1) -#NOXRD := $(filter-out $(LIBPATH)/libXrd%, $(ALLLIBS)) -#PKGLIBS := $(PKGLIBS) $(NOXRD:$(RLIBD)/%.so=$(RLIBD)/$(SOVER)/%.rootmap) -PKGLIBS := $(PKGLIBS) $(ALLMAPS:$(RLIBD)/%=$(RLIBD)/$(SOVER)/%) -endif - -# The rule to make library lists -liblist: -ifneq ($(LIB),) - @for f in $(PKGLIBS) ; do echo $$f ; done >> $(OUT)/$(SLIB).install -ifneq ($(LIB), $(DEV)) - @(cd $(BUILD)/$(RLIBD) && \ - for i in $(ALLLIBS) ; do \ - b=`basename $$i` ; \ - ln -fs $(SOVER)/$$b . ; \ - ln -fs $(SOVER)/$$b.$(SOVER) . ; done) -endif # $(LIB) = $(DEV) -endif # $(LIB) - -# If we have a development library, get the list of headers for the package. -ifneq ($(DEV),) -PKGHDRS := $(ALLHDRS:include/%=$(IPATH)/%) $(DEVLIBS) -endif # $(DEV) - -# Rule to make development package list -devlist: -ifneq ($(DEV),) -ifneq ($(DEV),$(LIB)) - @for f in $(filter-out %.cw %.pri, $(PKGHDRS)) ; \ - do echo $$f ; done >> $(OUT)/$(DEV).install -endif -endif - -# If we have a binary package, then get list of programs and man pages -ifneq ($(BIN),) -PKGEXECS= $(ALLEXECS:bin/%=$(BPATH)/%) -PKGMANS = $(ALLEXECS:bin/%=$(MPATH)/%.1) -endif # $(BIN) - -# Rule to make program package list -binlist: -ifneq ($(BIN),) - @for f in $(PKGEXECS) ; do echo $$f ; done >> $(OUT)/$(SBIN).install - @for f in $(PKGMANS) ; do echo $$f\* ; done >> $(OUT)/$(SBIN).install -endif - -# -# EOF -# diff --git a/build/package/lib/makelists.sh b/build/package/lib/makelists.sh deleted file mode 100755 index 64eabfe8f8e84..0000000000000 --- a/build/package/lib/makelists.sh +++ /dev/null @@ -1,205 +0,0 @@ -#!/bin/sh - -outdir=$1 ; shift -build=$1 ; shift -version=$1 ; shift -prefix=$1 ; shift -sysconfdir=$1 ; shift -pkgdocdir=$1 ; shift -sovers=`echo $version | sed 's/\([[:digit:]]*\.[[:digit:]]*\)\..*/\1/'` -rm -f $outdir/*.install - -# install file lists that need no substitutions -for i in build/package/common/*.install ; do - if test ! -f $i ; then continue ; fi - cp $i $outdir -done - -set_lib_names() -{ - base=$1 ; shift - sub=$1 ; shift - - lib=libroot-${base} - if test "x$sub" != "x" ; then lib=${lib}-${sub} ; fi - dev=${lib}-dev - if test "x$1" != "x" ; then - bin=$1 - else - bin=${lib} - fi -} - -set_plugin_names() -{ - base=$1 ; shift - sub=$1 ; shift - lib=root-plugin-${base}-${sub} - dev=${lib} - if test "x$1" != "x" ; then - bin=$1 - else - bin=${lib} - fi -} - - -# -# Loop over the directories, and update the file lists based on the -# information in Module.mk files in each subdirectory -# -l=`find . -name "Module.mk" -print0 | xargs -L 1 -0 dirname | sort -u | sed 's,./,,'` -for d in $l ; do - # - # If there's no Module.mk file in the currently inspected - # directory, continue - # - if test ! -d $d || test ! -f $d/Module.mk ; then continue ; fi - - # - # Reset variables - # - pkg= - lib= - bin= - extra= - base=`dirname $d` - sub=`basename $d` - - # - # Deal with some special directories. For each directory, check - # if it's libraries and such should go into some special package. - # - case $d in - bindings/pyroot)set_lib_names $base python ;; - bindings/*) set_lib_names $base $sub ;; - build) continue ;; - core/winnt) continue ;; - core/newdelete) set_lib_names $base "" root-system-bin - extra="ALLMAPS=${prefix}/lib/root/libCore.rootmap ";; - core/rint) set_lib_names $base "" root-system-bin ;; - core/thread) set_lib_names $base "" root-system-bin ;; - core/*) set_lib_names $base "" root-system-bin - extra="ALLMAPS=${prefix}/lib/root/libCore.rootmap " - extra="$extra ALLLIBS=${prefix}/lib/root/libCore.so" ;; - cint/cint) set_lib_names core "" root-system-bin - extra="ALLLIBS=${prefix}/lib/root/libCint.so" ;; - # extra="NOMAP=1 ALLLIBS=${prefix}/lib/root/libCint.so" - cint/reflex) set_lib_names core "" libroot-core-dev - extra="REFLEXLIB=${prefix}/lib/root/libReflex.so" ;; - interpreter/cling) continue ;; - cint/*) set_lib_names core "" root-system-bin ;; - geom/geom) set_lib_names $base "" ;; - geom/*) set_plugin_names $base $sub ;; - graf2d/gpad) set_lib_names $base $sub ;; - graf2d/graf) set_lib_names $base $sub ;; - graf2d/postscript) set_lib_names $base $sub ;; - graf2d/gviz) set_plugin_names $base $sub ;; - graf2d/asimage) set_plugin_names $base $sub ;; - graf2d/freetype)continue;; - graf2d/win32gdk)continue;; - graf2d/x11*) set_plugin_names $base x11 ;; - graf2d/*) set_plugin_names $base $sub ;; - graf3d/ftgl) continue;; - graf3d/gl) set_lib_names $base $sub ;; - graf3d/g3d) set_lib_names $base $sub ;; - graf3d/eve) set_lib_names $base $sub ;; - graf3d/*) set_plugin_names $base $sub ;; - gui/gui) set_lib_names $base "" ;; - gui/guihtml) set_lib_names $base "" ;; - gui/ged) set_lib_names $base $sub ;; - gui/qt*) set_plugin_names $base qt ;; - gui/*) set_plugin_names $base $sub ;; - hist/hist) set_lib_names $base "" ;; - hist/spectrum) set_lib_names $base $sub ;; - hist/*) set_plugin_names $base $sub ;; - html) set_lib_names $sub "" ;; - io/io) set_lib_names $base "" ;; - io/xmlparser) set_lib_names $base $sub ;; - io/rfio) continue;; - io/*) set_plugin_names $base $sub ;; - main) continue;; - math/fftw) set_plugin_names $base ${sub}3 ;; - math/fumili) set_plugin_names $base $sub ;; - math/minuit2) set_plugin_names $base $sub ;; - math/*) set_lib_names $base $sub ;; - misc/*) set_lib_names $base $sub ;; - montecarlo/pythia*) - set_plugin_names $base $sub ;; - montecarlo/*) set_lib_names $base $sub ;; - net/auth) set_lib_names $base $sub ;; - net/net) set_lib_names $base "" ;; - net/ldap) set_lib_names $base $sub ;; - net/rootd) lib=root-system-$sub ; dev=$lib ; bin=$lib ;; - net/xrootd) set_plugin_names $base $sub ;; - net/globusauth) set_plugin_names $base globus ;; - net/bonjour) set_plugin_names $base $sub ;; - net/krb5auth) set_plugin_names $base krb5 ;; - net/srputils) set_plugin_names $base srp ;; - net/rpdutils) set_lib_names core "" root-system-bin ;; - net/*) set_plugin_names $base $sub ;; - proof/proofd) set_plugin_names $base xproof root-system-${base}d ;; - proof/proofx) set_plugin_names $base xproof ;; - proof/clarens) set_lib_names $base $sub ;; - proof/proof) set_lib_names $base "" ;; - proof/*) set_plugin_names $base $sub ;; - roofit/*) set_lib_names $base "" ;; - rootx) set_lib_names core "" root-system-bin ;; - sql/sapdb) set_plugin_names $base maxdb ;; - sql/*) set_plugin_names $base $sub ;; - tmva) set_lib_names $sub "" ;; - tree/tree) set_lib_names $base "" ;; - tree/treeplayer)set_lib_names $base $sub ;; - tree/*) set_plugin_names $base $sub ;; - *) set_plugin_names $base $sub ;; - esac - - # - # Update package list based on the Module.mk in the currenly - # investigated directory - # - # echo "Making list for $d (dev=$dev lib=$lib bin=$bin extra=$extra)" - # echo "Making list for $d" - build/package/lib/makelist DIRS=$d DEV=$dev LIB=$lib BIN=$bin \ - VERSION=$version PREFIX=$prefix OUT=$outdir BUILD=$build $extra \ - --no-print-directory all -done - -# -# For each skeleton file, replace occurances of @prefix@, -# @sysconfdir@, and @pkgdocdir@ with the appropriate values -# -for i in build/package/common/*.install.in ; do - if test ! -f $i ; then continue ; fi - b=`basename $i .install.in` - case $b in - lib*static*) b=$outdir/${b} ;; - lib*-dev) b=$outdir/${b} ;; - lib*) b=$outdir/${b}${sovers} ;; - *) b=$outdir/${b} ;; - esac - grep -v "^#" $i | \ - sed -e "s|@prefix@|${prefix}|g" \ - -e "s|@sysconfdir@|${sysconfdir}|g" \ - -e "s|@pkgdocdir@|${pkgdocdir}|g" \ - -e "s|@version@|${sovers}|g" \ - > ${b}.tmp - if test -f ${b}.install ; then - cat ${b}.tmp ${b}.install > ${b}.tmp2 - mv ${b}.tmp2 ${b}.install - else - cp ${b}.tmp ${b}.install - fi - rm -f ${b}.tmp ${b}.tmp2 -done - -for i in $outdir/*.install ; do - if test ! -f $i ; then continue ; fi - sort -u ${i} > ${i}.tmp - mv ${i}.tmp ${i} -done - - -# -# EOF -# diff --git a/build/package/lib/makerpmcl.pl b/build/package/lib/makerpmcl.pl deleted file mode 100755 index bf14b54a8acd6..0000000000000 --- a/build/package/lib/makerpmcl.pl +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/perl - -$since=''; -$expect='first heading'; -sub clerror { printf(STDERR "$_[0], at changelog line $.\n"); exit(1); } - -sub printit { - $fulldate=$_[0]; - $fullauth=$_[1]; - $changes=$_[2]; - $changes =~ s/^\s+(\*)/ +/g; - $_=$fulldate; - if (m/([a-zA-Z]+), *([0-9]+) *([a-zA-Z]+) *([0-9]+).*/i) { - $day=$1; - $date=$2; - $month=$3; - $year=$4; - } - else { - &clerror("Bad date format $_"); - } - $_=$fullauth; - if (m/([^<]+) *<([^>]+)>/i) { - $name=$1; - $email=$2; - } - else { - &clerror("Bad maintainer format $_"); - } - printf("* %s %s %02d %d %s %s\n%s\n", - $day, $month, $date, $year, $name, $email, $changes); -} - -while () { - # Eat white space - s/\s*\n$//; - # printf(STDERR "%-39.39s %-39.39s\n",$expect,$_); - # Match a line - if (m/^(\w[-+0-9a-z.]*) \(([^\(\) \t]+)\)((\s+[-0-9a-z]+)+)\;/i) { - if ($expect eq 'first heading') { - $f{'Source'} = $1; - $f{'Version'} = $2; - $f{'Distribution'} = $3; - $f{'Distribution'} =~ s/^\s+//; - $f{'Changes'} = " \n [" . $f{'Version'} . "]\n"; - } elsif ($expect eq 'next heading or eof') { - last if $2 eq $since; - $f{'Version'} = $2; - $f{'Distribution'} = $3; - $f{'Distribution'} =~ s/^\s+//; - $f{'Changes'} .= " \n [" . $f{'Version'} . "]\n"; - } else { - &clerror("found start of entry where expected $expect"); - } - $expect= 'start of change data'; $blanklines=0; - # $f{'Changes'}.= " $_\n \n"; - } elsif (m/^\S/) { - &clerror("badly formatted heading line"); - } elsif (m/^ \-\- (.*) <(.*)> ((\w+\,\s*)?\d{1,2}\s+\w+\s+\d{4}\s+\d{1,2}:\d\d:\d\d\s+[-+]\d{4}(\s+\([^\\\(\)]\))?)$/) { - $expect eq 'more change data or trailer' || - &clerror("found trailer where expected $expect"); - $f{'Maintainer'}= "$1 <$2>" unless defined($f{'Maintainer'}); - $f{'Date'}= $3 unless defined($f{'Date'}); - &printit($f{'Date'},$f{'Maintainer'},$f{'Changes'}); - $f{'Changes'} = ''; - $expect= 'next heading or eof'; - # last if $since eq ''; - } elsif (m/^ \-\-/) { - &clerror("badly formatted trailer line"); - } elsif (m/^\s{2,}\S/) { - $expect eq 'start of change data' || - $expect eq 'more change data or trailer' || - &clerror("found change data where expected $expect"); - $f{'Changes'} .= (" \n"x$blanklines); - s/^ *\*/ +/; - $f{'Changes'} .= " $_\n"; - $blanklines=0; - $expect= 'more change data or trailer'; - } elsif (!m/\S/) { - next if $expect eq 'start of change data' || - $expect eq 'next heading or eof'; - $expect eq 'more change data or trailer' || - &clerror("found blank line where expected $expect"); - $blanklines++; - } else { - &clerror("unrecognised line"); - } - - -} diff --git a/build/package/lib/makerpmspec.sh b/build/package/lib/makerpmspec.sh deleted file mode 100755 index a0cd045f78c2f..0000000000000 --- a/build/package/lib/makerpmspec.sh +++ /dev/null @@ -1,237 +0,0 @@ -#!/bin/sh -e -# -# $Id: makerpmspec.sh,v 1.15 2006/08/24 13:49:53 rdm Exp $ -# -# Make the rpm spec file in ../root.spec -# -# -### echo %%% Some general variables -chmod a+x build/package/lib/* -tgtdir=rpm - -# Configure arguments -confargs="--enable-cintex \ - --disable-clarens \ - --enable-explicitlink \ - --enable-gdml \ - --enable-gsl-shared \ - --disable-fftw3 \ - --enable-ldap \ - --disable-qt \ - --disable-qtgsi \ - --enable-mathcore \ - --enable-mathmore \ - --enable-minuit2 \ - --enable-mysql \ - --disable-peac \ - --enable-pgsql \ - --enable-odbc \ - --enable-reflex \ - --enable-roofit \ - --enable-ruby \ - --enable-shadowpw \ - --enable-shared \ - --enable-soversion \ - --enable-table \ - --disable-rpath \ - --disable-afs \ - --disable-srp \ - --enable-builtin-ftgl \ - --disable-builtin-freetype \ - --disable-builtin-pcre \ - --disable-builtin-zlib \ - --disable-alien \ - --disable-chirp \ - --disable-dcache \ - --disable-g4root \ - --disable-gfal \ - --disable-globus \ - --disable-monalisa \ - --disable-oracle \ - --disable-pythia6 \ - --disable-rfio \ - --fail-on-missing \ - --enable-unuran \ - --enable-xrootd \ - --disable-sapdb \ - --enable-cern" - -# Configure arguments -# confargs="--enable-cintex \ -# --enable-explicitlink \ -# --enable-fftw3 \ -# --enable-mathmore \ -# --enable-mathcore \ -# --enable-minuit2 \ -# --enable-odbc \ -# --enable-pythia6 \ -# --enable-qt \ -# --enable-qtgsi \ -# --enable-reflex \ -# --enable-roofit \ -# --enable-ruby \ -# --enable-shared \ -# --enable-shadowpw \ -# --enable-soversion \ -# --enable-table \ -# --enable-xrootd \ -# --disable-rpath \ -# --disable-afs \ -# --disable-srp \ -# --disable-builtin-freetype \ -# --disable-builtin-pcre \ -# --disable-builtin-zlib" - -test "x$QTDIR" = "x" || unset QTDIR -test "x$QTLIB" = "x" || unset QTLIB -test "x$QTINC" = "x" || unset QTINC - -### echo %%% Packages ordered by preference -pkglist=`./configure --pkglist ${confargs} \ - | sed -n -e 's/packages: //p'` -if test $? -ne 0 ; then - echo "Failed to get package list from configure, try" - echo " ./configure --pkglist ${confargs}" \ - | tr '\n' ' ' | sed 's/ */ /' - exit 1 -fi -pkglist=`echo $pkglist | sed 's/libroot\([-a-zA-Z0-9]*\)/libroot\1 libroot\1-dev/g'` -pkglist="libroot-static $pkglist" -echo $pkglist -for i in $pkglist ; do - echo "Adding package $i to spec" -done -builddepends=`build/package/lib/makebuilddepend.sh rpm $pkglist` -if test $? -ne 0 ;then - echo "Failed to make build dependencies" - exit 1 -fi -dpkglist="`echo $pkglist | sed -e 's/ *ttf-root[-a-z]* *//g' -e 's/ /, /g'`, root-ttf" - -# ROOT version -version=`cat build/version_number | tr '/' '.'` -major=`echo $version | cut -f1 -d.` -sovers=`echo $version | cut -f1,2 -d.` -### echo %%% make sure we've got a fresh file -rm -f root.spec -csplit -s -f root.spec. build/package/rpm/spec.in '/@builddepends@/' -cat root.spec.00 > root.spec.in -echo "$builddepends" >> root.spec.in -sed '/@builddepends/d' < root.spec.01 >> root.spec.in -rm -f root.spec.00 root.spec.01 -### echo %%% Write header stuff -sed -e "s/@version@/${version}/" \ - -e "s/@sovers@/${sovers}/" \ - -e "s/@pkglist@/${dpkglist}/" \ - -e "s/@confargs@/${confargs}/" \ - < root.spec.in > root.spec -rm -f root.spec.in - -# Write out sub-package information -for p in $pkglist ; do - # if test "x$p" = "xttf-root-installer" ; then continue ; fi - case $p in - root-common) pp=$p ; c=libroot-core ;; - libroot-static) pp=$p ; c=libroot-core ;; - libroot*-dev) pp=$p ; c=`echo $p | sed 's/-dev//'`;; - libroot*) pp=$p$major ; c=$p ;; - *-net-xrootd) pp=$p ; c=root-system-xrootd ;; - *) pp=$p ; c=$p ;; - esac - echo "Adding package $p ($pp) to spec file" - cat >> root.spec <<-EOF - # ----------------------------------------------- - # Package $pp - EOF - sed -n -e "/Package: $p/,/^ / { s/^Package: $p\(@libvers@\)*/%package -n $pp/p; s/^Description:/Summary:/p ; /^ /q}" < build/package/common/$c.control >> root.spec - # # ----------------------------------------------- - # # Package $pp - # %package -n $pp - # Summary: $short - # Group: Applications/Physics - # EOF - echo "Group: Applications/Physics" >> root.spec - case $pp in - ttf-root*) - echo "Provides: root-ttf" >> root.spec - ;; - *net-xrootd) - echo "Provides: libXrdClient.so" >> root.spec - echo "Provides: libXrdCrypto.so" >> root.spec - echo "Provides: libXrdSut.so" >> root.spec - ;; - *xrootd) - echo "Provides: root-file-server" >> root.spec - ;; - *rootd) - echo "Provides: root-file-server" >> root.spec - ;; - *minuit*|*fumili) - echo "Provides: root-fitter" >> root.spec - echo "Provides: $p" >> root.spec - ;; - libroot*) - echo "Provides: $p" >> root.spec - ;; - esac - case $p in - root-bin) - echo "Requires: root-fitter" >> root.spec - ;; - libroot) - echo "Requires: root-ttf, root-system-common" >> root.spec - ;; - *rootd) - echo "Prefix: %_prefix" >> root.spec - ;; - esac - sed -n "/Package: $p/,/^$/ { s/^Description:.*/%description -n $pp/p ; s/^ //p; /^$/q }" < build/package/common/$c.control >> root.spec - case $p in - libroot-static) files=rpm/${p}.install ;; - lib*-dev) files=rpm/${p}.install ;; - lib*) files=rpm/${p}${sovers}.install ;; - *) files=rpm/${p}.install ;; - esac - - cat >> root.spec <<-EOF - %files -n $pp -f ${files} - %defattr(-,root,root) - - EOF - - for s in post postun pre preun ; do - if test -f build/package/rpm/$p.$s ; then - echo "%$s -n $pp" >> root.spec - cat build/package/rpm/$p.$s >> root.spec - echo "" >> root.spec - fi - done - echo "" >> root.spec -done -# Add changelog -cat >> root.spec <> root.spec -cat >> root.spec </dev/null` -if test "x$l" = "x" ; then - svn update math/unuran/src - rm -rf math/unuran/src/unuran-*-root -fi - -# -# EOF -# diff --git a/build/package/msi/Language_en-us.wxl b/build/package/msi/Language_en-us.wxl deleted file mode 100644 index e99d50309148f..0000000000000 --- a/build/package/msi/Language_en-us.wxl +++ /dev/null @@ -1,587 +0,0 @@ - - - [ProductName] Setup - OK - Cancel - &Look in: - WixUI_Bmp_Up - Up one level - WixUI_Bmp_New - Create a new folder - &Folder name: - WixUI_Bmp_Banner - Browse to the destination folder - {\WixUI_Font_Title}Change destination folder - - [ProductName] Setup - &No - &Yes - Are you sure you want to cancel [ProductName] installation? - WixUI_Ico_Info - Information icon - - [ProductName] Setup - Tree of selections - B&rowse... - Re&set - Disk &Usage - < &Back - &Next > - Cancel - WixUI_Bmp_Banner - Click the icons in the tree below to change the way features will be installed. - Select the way you want features to be installed. - {\WixUI_Font_Title}Custom Setup - Neque porro quisquam est qui dolorem ipsum quia dolor sit amet - Neque porro quisquam est qui dolorem ipsum quia dolor sit amet - Neque porro quisquam est qui dolorem ipsum quia dolor sit amet - Location: - - [ProductName] Setup - OK - WixUI_Bmp_Banner - Highlighted volumes do not have enough disk space available for selected features. You can either remove some files from the highlighted volumes, install fewer features, or select different destination drives. - The disk space required for the installation of the selected features. - {\WixUI_Font_Title}Disk Space Requirements - {120}{70}{70}{70}{70} - - [ProductName] Setup - Information text - &Yes - Cancel - Cancel - WixUI_Ico_Info - Information icon - &Ignore - &No - OK - &Retry - - [ProductName] Setup - &Finish - Cancel - WixUI_Bmp_Dialog - &Back - Click the Finish button to exit the Setup Wizard. - {\WixUI_Font_Bigger}Completing the [ProductName] Setup Wizard - - [ProductName] Setup - &Finish - Cancel - WixUI_Bmp_Dialog - < &Back - {\WixUI_Font_Bigger}[ProductName] Setup Wizard ended prematurely - [ProductName] Setup Wizard ended prematurely because of an error. Your system has not been modified. To install this program at a later time, run Setup Wizard again. - Click the Finish button to exit the Setup Wizard. - - [ProductName] Setup - &Retry - &Ignore - E&xit - WixUI_Bmp_Banner - The following applications are using files that need to be updated by this setup. Close these applications and then click &Retry to continue the installation or Cancel to exit it. - Some files that need to be updated are currently in use. - {\WixUI_Font_Title}Files in Use - - [ProductName] Setup - I &accept the terms in the License Agreement - < &Back - &Next > - Cancel - WixUI_Bmp_Banner - - Please read the following license agreement carefully - {\WixUI_Font_Title}End-User License Agreement - - [ProductName] Setup - &Modify - Modify Installation - Re&pair - Repair Installation - &Remove - Remove Installation - < &Back - &Next > - Cancel - WixUI_Bmp_Banner - Select the operation you wish to perform. - {\WixUI_Font_Title}Modify, repair, or remove installation - Lets you change the way features are installed. - [ProductName] has no independently selectable features. - Removes [ProductName] from your computer. - Repairs errors in the most recent installation by fixing missing and corrupt files, shortcuts, and registry entries. - - [ProductName] Setup - &Next > - Cancel - WixUI_Bmp_Dialog - < &Back - The Setup Wizard allows you to change the way [ProductName] features are installed on your computer or to remove it from your computer. Click Next to continue or Cancel to exit the Setup Wizard. - {\WixUI_Font_Bigger}Welcome to the [ProductName] Setup Wizard - - [ProductName] Setup - OK - WixUI_Bmp_Banner - The highlighted volumes do not have enough disk space available for the currently selected features. You can remove some files from the highlighted volumes, install fewer features, or select a different destination drive. - Disk space required for the installation exceeds available disk space. - {\WixUI_Font_Title}Out of Disk Space - {120}{70}{70}{70}{70} - - [ProductName] Setup - &No - &Yes - WixUI_Bmp_Banner - The highlighted volumes do not have enough disk space available for the currently selected features. You can remove some files from the highlighted volumes, install fewer features, or select a different destination drive. - Disk space required for the installation exceeds available disk space. - {\WixUI_Font_Title}Out of Disk Space - {120}{70}{70}{70}{70} - Alternatively, you may choose to disable the installer's rollback functionality. Disabling rollback prevents the installer from restoring your computer's original state should the installation be interrupted in any way. Click Yes if you wish to take the risk of disabling rollback. - - [ProductName] Setup - Cancel - WixUI_Bmp_Dialog - Please wait while the Setup Wizard prepares to guide you through the installation. - {\WixUI_Font_Bigger}Welcome to the [ProductName] Setup Wizard - < &Back - &Next > - - [ProductName] Setup - Cancel - WixUI_Bmp_Banner - < &Back - &Next > - Please wait while the Setup Wizard installs [ProductName]. - {\WixUI_Font_Title}Installing [ProductName] - Please wait while the Setup Wizard changes [ProductName]. - {\WixUI_Font_Title}Changing [ProductName] - Please wait while the Setup Wizard repairs [ProductName]. - {\WixUI_Font_Title}Repairing [ProductName] - Please wait while the Setup Wizard removes [ProductName]. - {\WixUI_Font_Title}Removing [ProductName] - Progress done - Status: - - [ProductName] Setup - &Install - Cancel - WixUI_Bmp_Dialog - &Back - The Setup Wizard will complete the installation of [ProductName] on your computer. Click Install to continue or Cancel to exit the Setup Wizard. - {\WixUI_Font_Bigger}Resuming the [ProductName] Setup Wizard - - [ProductName] Setup - &Typical - Typical Installation - C&ustom - Custom Installation - C&omplete - Complete Installation - < &Back - &Next > - Cancel - WixUI_Bmp_Banner - {\WixUI_Font_Title}Choose Setup Type - Choose the setup type that best suits your needs - Installs the most common program features. Recommended for most users. - Allows users to choose which program features will be installed and where they will be installed. Recommended for advanced users. - All program features will be installed. Requires the most disk space. - - [ProductName] Setup - &Finish - Cancel - WixUI_Bmp_Dialog - &Back - {\WixUI_Font_Bigger}[ProductName] Setup Wizard was interrupted - [ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. - Click the Finish button to exit the Setup Wizard. - - [ProductName] Setup - &Install - Cancel - WixUI_Bmp_Banner - &Back - Click Install to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - The Setup Wizard is ready to begin - {\WixUI_Font_Title}Ready to Install - - [ProductName] Setup - &Back - &Remove - Cancel - WixUI_Bmp_Banner - Click Remove to remove [ProductName] from your computer. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - You have chosen to remove the program from your computer. - {\WixUI_Font_Title}Remove [ProductName] - - [ProductName] Setup - Re&pair - Cancel - WixUI_Bmp_Banner - &Back - Click Repair to repair the installation of [ProductName]. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - The Setup Wizard is ready to begin the repair of [ProductName]. - {\WixUI_Font_Title}Repair [ProductName] - - [ProductName] Setup - &Return - Please wait while the installer finishes determining your disk space requirements. - WixUI_Ico_Exclam - Exclamation icon - - [ProductName] Setup - &Next > - Cancel - WixUI_Bmp_Dialog - < &Back - The Setup Wizard will install [ProductName] on your computer. Click Next to continue or Cancel to exit the Setup Wizard. - {\WixUI_Font_Bigger}Welcome to the [ProductName] Setup Wizard - - [ProductName] Setup - WixUI_Bmp_Dialog - I &accept the terms in the License Agreement - &Back - &Install - Cancel - {\WixUI_Font_Title}Please read the [ProductName] License Agreement - - - Validating install - Copying new files - File: [1], Directory: [9], Size: [6] - Copying network install files - File: [1], Directory: [9], Size: [6] - Computing space requirements - Computing space requirements - Computing space requirements - Creating shortcuts - Shortcut: [1] - Publishing Qualified Components - Component ID: [1], Qualifier: [2] - Publishing Product Features - Feature: [1] - Publishing product information - Registering Class servers - Class Id: [1] - Registering extension servers - Extension: [1] - Registering MIME info - MIME Content Type: [1], Extension: [2] - Registering program identifiers - ProgId: [1] - Allocating registry space - Free space: [1] - Searching for installed applications - Property: [1], Signature: [2] - Binding executables - File: [1] - Searching for qualifying products - Creating folders - Folder: [1] - Deleting services - Service: [1] - Creating duplicate files - File: [1], Directory: [9], Size: [6] - Searching for related applications - Found application: [1] - Installing ODBC components - Installing new services - Service: [2] - Evaluating launch conditions - Migrating feature states from related applications - Application: [1] - Moving files - File: [1], Directory: [9], Size: [6] - Patching files - File: [1], Directory: [2], Size: [3] - Updating component registration - Registering COM+ Applications and Components - AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}} - Registering fonts - Font: [1] - Registering product - [1] - Registering type libraries - LibID: [1] - Registering user - [1] - Removing duplicated files - File: [1], Directory: [9] - Updating environment strings - Name: [1], Value: [2], Action [3] - Removing applications - Application: [1], Command line: [2] - Removing files - File: [1], Directory: [9] - Removing folders - Folder: [1] - Removing INI files entries - File: [1], Section: [2], Key: [3], Value: [4] - Removing ODBC components - Removing system registry values - Key: [1], Name: [2] - Removing shortcuts - Shortcut: [1] - Searching for qualifying products - Registering modules - File: [1], Folder: [2] - Unregistering modules - File: [1], Folder: [2] - Initializing ODBC directories - Starting services - Service: [1] - Stopping services - Service: [1] - Unpublishing Qualified Components - Component ID: [1], Qualifier: [2] - Unpublishing Product Features - Feature: [1] - Unregister Class servers - Class Id: [1] - Unregistering COM+ Applications and Components - AppId: [1]{{, AppType: [2]}} - Unregistering extension servers - Extension: [1] - Unregistering fonts - Font: [1] - Unregistering MIME info - MIME Content Type: [1], Extension: [2] - Unregistering program identifiers - ProgId: [1] - Unregistering type libraries - LibID: [1] - Updating environment strings - Name: [1], Value: [2], Action [3] - Writing INI files values - File: [1], Section: [2], Key: [3], Value: [4] - Writing system registry values - Key: [1], Name: [2], Value: [3] - Advertising application - Generating script operations for action: - [1] - Installing system catalog - File: [1], Dependencies: [2] - Publishing assembly information - Application Context:[1], Assembly Name:[2] - Unpublishing assembly information - Application Context:[1], Assembly Name:[2] - Rolling back action: - [1] - Removing backup files - File: [1] - Removing moved files - File: [1], Directory: [9] - Unpublishing product information - - {{Fatal error: }} - {{Error [1]. }} - Warning [1]. - Info [1]. - The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}} - {{Disk full: }} - Action [Time]: [1]. [2] - [ProductName] - {[2]}{, [3]}{, [4]} - Message type: [1], Argument: [2] - === Logging started: [Date] [Time] === - === Logging stopped: [Date] [Time] === - Action start [Time]: [1]. - Action ended [Time]: [1]. Return value [2]. - Time remaining: {[1] minutes }{[2] seconds} - Out of memory. Shut down other applications before retrying. - Installer is no longer responding. - Installer stopped prematurely. - Please wait while Windows configures [ProductName] - Gathering required information... - Removing older versions of this application... - Preparing to remove older versions of this application... - {[ProductName] }Setup completed successfully. - {[ProductName] }Setup failed. - Error reading from file: [2]. {{ System error [3].}} Verify that the file exists and that you can access it. - Cannot create the file '[2]'. A directory with this name already exists. Cancel the install and try installing to a different location. - Please insert the disk: [2] - The installer has insufficient privileges to access this directory: [2]. The installation cannot continue. Log on as administrator or contact your system administrator. - Error writing to file: [2]. Verify that you have access to that directory. - Error reading from file [2]. {{ System error [3].}} Verify that the file exists and that you can access it. - Another application has exclusive access to the file '[2]'. Please shut down all other applications, then click Retry. - There is not enough disk space to install this file: [2]. Free some disk space and click Retry, or click Cancel to exit. - Source file not found: [2]. Verify that the file exists and that you can access it. - Error reading from file: [3]. {{ System error [2].}} Verify that the file exists and that you can access it. - Error writing to file: [3]. {{ System error [2].}} Verify that you have access to that directory. - Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it. - Cannot create the directory '[2]'. A file with this name already exists. Please rename or remove the file and click Retry, or click Cancel to exit. - The volume [2] is currently unavailable. Please select another. - The specified path '[2]' is unavailable. - Unable to write to the specified folder: [2]. - A network error occurred while attempting to read from the file: [2] - An error occurred while attempting to create the directory: [2] - A network error occurred while attempting to create the directory: [2] - A network error occurred while attempting to open the source file cabinet: [2] - The specified path is too long: [2] - The Installer has insufficient privileges to modify this file: [2]. - A portion of the folder path '[2]' is invalid. It is either empty or exceeds the length allowed by the system. - The folder path '[2]' contains words that are not valid in folder paths. - The folder path '[2]' contains an invalid character. - '[2]' is not a valid short file name. - Error getting file security: [3] GetLastError: [2] - Invalid Drive: [2] - Error applying patch to file [2]. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. {{System Error: [3]}} - A file that is required cannot be installed because the cabinet file [2] is not digitally signed. This may indicate that the cabinet file is corrupt. - A file that is required cannot be installed because the cabinet file [2] has an invalid digital signature. This may indicate that the cabinet file is corrupt.{{ Error [3] was returned by WinVerifyTrust.}} - Failed to correctly copy [2] file: CRC error. - Failed to correctly move [2] file: CRC error. - Failed to correctly patch [2] file: CRC error. - The file '[2]' cannot be installed because the file cannot be found in cabinet file '[3]'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. - The cabinet file '[2]' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. - There was an error creating a temporary file that is needed to complete this installation.{{ Folder: [3]. System error code: [2]}} - Could not create key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not open key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not delete value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not delete key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not read value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not write value [2] to key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not get value names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not get sub key names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not read security information for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not increase the available registry space. [2] KB of free registry space is required for the installation of this application. - Another installation is in progress. You must complete that installation before continuing this one. - Error accessing secured data. Please make sure the Windows Installer is configured properly and try the install again. - User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. Your current install will now continue. - User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. - Out of disk space -- Volume: '[2]'; required space: [3] KB; available space: [4] KB. Free some disk space and retry. - Are you sure you want to cancel? - The file [2][3] is being held in use{ by the following process: Name: [4], Id: [5], Window Title: '[6]'}. Close that application and retry. - The product '[2]' is already installed, preventing the installation of this product. The two products are incompatible. - There is not enough disk space on the volume '[2]' to continue the install with recovery enabled. [3] KB are required, but only [4] KB are available. Click Ignore to continue the install without saving recovery information, click Retry to check for available space again, or click Cancel to quit the installation. - Could not access network location [2]. - The following applications should be closed before continuing the install: - Could not find any previously installed compliant products on the machine for installing this product. - An error occurred while applying security settings. [2] is not a valid user or group. This could be a problem with the package, or a problem connecting to a domain controller on the network. Check your network connection and click Retry, or Cancel to end the install. {{Unable to locate the user's SID, system error [3]}} - The key [2] is not valid. Verify that you entered the correct key. - The installer must restart your system before configuration of [2] can continue. Click Yes to restart now or No if you plan to manually restart later. - You must restart your system for the configuration changes made to [2] to take effect. Click Yes to restart now or No if you plan to manually restart later. - An installation for [2] is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes? - A previous installation for this product is in progress. You must undo the changes made by that installation to continue. Do you want to undo those changes? - An installation package for the product [2] cannot be found. Try the installation again using a valid copy of the installation package '[3]'. - Installation completed successfully. - Installation failed. - Product: [2] -- [3] - You may either restore your computer to its previous state or continue the install later. Would you like to restore? - An error occurred while writing installation information to disk. Check to make sure enough disk space is available, and click Retry, or Cancel to end the install. - One or more of the files required to restore your computer to its previous state could not be found. Restoration will not be possible. - [2] cannot install one of its required products. Contact your technical support group. {{System Error: [3].}} - The older version of [2] cannot be removed. Contact your technical support group. {{System Error [3].}} - Installed [2] - Configured [2] - Removed [2] - File [2] was rejected by digital signature policy. - The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance. - There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. {{Custom action [2] script error [3], [4]: [5] Line [6], Column [7], [8] }} - There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action: [2], location: [3], command: [4] }} - There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. {{Action [2], location: [3], command: [4] }} - There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action [2], entry: [3], library: [4] }} - Removal completed successfully. - Removal failed. - Advertisement completed successfully. - Advertisement failed. - Configuration completed successfully. - Configuration failed. - You must be an Administrator to remove this application. To remove this application, you can log on as an Administrator, or contact your technical support group for assistance. - The source installation package for the product [2] is out of sync with the client package. Try the installation again using a valid copy of the installation package '[3]'. - In order to complete the installation of [2], you must restart the computer. Other users are currently logged on to this computer, and restarting may cause them to lose their work. Do you want to restart now? - The path [2] is not valid. Please specify a valid path. - Out of memory. Shut down other applications before retrying. - There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to go back to the previously selected volume. - There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to return to the browse dialog and select a different volume. - The folder [2] does not exist. Please enter a path to an existing folder. - You have insufficient privileges to read this folder. - A valid destination folder for the install could not be determined. - Error attempting to read from the source install database: [2]. - Scheduling reboot operation: Renaming file [2] to [3]. Must reboot to complete operation. - Scheduling reboot operation: Deleting file [2]. Must reboot to complete operation. - Module [2] failed to register. HRESULT [3]. Contact your support personnel. - Module [2] failed to unregister. HRESULT [3]. Contact your support personnel. - Failed to cache package [2]. Error: [3]. Contact your support personnel. - Could not register font [2]. Verify that you have sufficient permissions to install fonts, and that the system supports this font. - Could not unregister font [2]. Verify that you that you have sufficient permissions to remove fonts. - Could not create Shortcut [2]. Verify that the destination folder exists and that you can access it. - Could not remove Shortcut [2]. Verify that the shortcut file exists and that you can access it. - Could not register type library for file [2]. Contact your support personnel. - Could not unregister type library for file [2]. Contact your support personnel. - Could not update the ini file [2][3]. Verify that the file exists and that you can access it. - Could not schedule file [2] to replace file [3] on reboot. Verify that you have write permissions to file [3]. - Error removing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. - Error installing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. - Error removing ODBC driver: [4], ODBC error [2]: [3]. Verify that you have sufficient privileges to remove ODBC drivers. - Error installing ODBC driver: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. - Error configuring ODBC data source: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. - Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services. - Service '[2]' ([3]) could not be stopped. Verify that you have sufficient privileges to stop system services. - Service '[2]' ([3]) could not be deleted. Verify that you have sufficient privileges to remove system services. - Service '[2]' ([3]) could not be installed. Verify that you have sufficient privileges to install system services. - Could not update environment variable '[2]'. Verify that you have sufficient privileges to modify environment variables. - You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation. - Could not set file security for file '[3]'. Error: [2]. Verify that you have sufficient privileges to modify the security permissions for this file. - Component Services (COM+ 1.0) are not installed on this computer. This installation requires Component Services in order to complete successfully. Component Services are available on Windows 2000. - Error registering COM+ Application. Contact your support personnel for more information. - Error unregistering COM+ Application. Contact your support personnel for more information. - The description for service '[2]' ([3]) could not be changed. - The Windows Installer service cannot update the system file [2] because the file is protected by Windows. You may need to update your operating system for this program to work correctly. {{Package version: [3], OS Protected version: [4]}} - The Windows Installer service cannot update the protected Windows file [2]. {{Package version: [3], OS Protected version: [4], SFP Error: [5]}} - The Windows Installer service cannot update one or more protected Windows files. {{SFP Error: [2]. List of protected files:\r\n[3]}} - User installations are disabled via policy on the machine. - An error occurred during the installation of assembly '[6]'. Please refer to Help and Support for more information. HRESULT: [3]. {{assembly interface: [4], function: [5], component: [2]}} - An error occurred during the installation of assembly '[6]'. The assembly is not strongly named or is not signed with the minimal key length. HRESULT: [3]. {{assembly interface: [4], function: [5], component: [2]}} - An error occurred during the installation of assembly '[6]'. The signature or catalog could not be verified or is not valid. HRESULT: [3]. {{assembly interface: [4], function: [5], component: [2]}} - An error occurred during the installation of assembly '[6]'. One or more modules of the assembly could not be found. HRESULT: [3]. {{assembly interface: [4], function: [5], component: [2]}} - - bytes - GB - KB - MB - Entire feature will be unavailable - Feature will be installed when required - Entire feature will be installed to run from CD - Entire feature will be installed on local hard drive - Entire feature will be installed to run from network - Will be installed to run from CD - Will be installed on local hard drive - Will be installed to run from network - Gathering required information... - This feature will remain uninstalled - This feature will be set to be installed when required - This feature will be installed to run from CD - This feature will be installed on the local hard drive - This feature will be installed to run from the network - This feature will become unavailable - Will be installed when required - This feature will be available to run from CD - This feature will be installed on your local hard drive - This feature will be available to run from the network - This feature will be uninstalled completely, you won't be able to run it from CD - This feature will change from run from CD state to set to be installed when required - This feature will remain to be run from CD - This feature will change from run from CD state to be installed on the local hard drive - This feature frees up [1] on your hard drive. - This feature requires [1] on your hard drive. - Compiling cost for this feature... - This feature will be completely removed - This feature will be removed from your local hard drive, but will be set to be installed when required - This feature will be removed from your local hard drive, but will be still available to run from CD - This feature will remain on you local hard drive - This feature will be removed from your local hard drive, but will be still available to run from the network - This feature will be uninstalled completely, you won't be able to run it from the network - This feature will change from run from network state to set to be installed when required - This feature will change from run from network state to be installed on the local hard drive - This feature will remain to be run from the network - This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. - This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. - This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. - This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. - Time remaining: {[1] minutes }{[2] seconds} - Available - Difference - Required - Disk Size - Volume - - \ No newline at end of file diff --git a/build/package/msi/License.rtf b/build/package/msi/License.rtf deleted file mode 100644 index 542460852269a..0000000000000 --- a/build/package/msi/License.rtf +++ /dev/null @@ -1,168 +0,0 @@ -{\rtf1\ansi\deff0{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\fmodern Courier New;}{\f2\fmodern\fcharset0 Courier New;}} -{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\lang1033\f0\fs20\page\b GNU LESSER GENERAL PUBLIC LICENSE\b0\par -\par -\par -\pard\qc Version 2.1, February 1999\par -\par -\pard\keep\li720\f1 Copyright (C) 1991, 1999 Free Software Foundation, Inc.\line 51 Franklin St -- Fifth Floor, Boston, MA 02110-1301, USA\line\line Everyone is permitted to copy and distribute verbatim copies\line of this license document, but changing it is not allowed.\line\line [This is the first released version of the Lesser GPL. It also counts\f2 \f1 as the successor of the GNU Library Public License, version 2, hence the\f2 \f1 version number 2.1.]\par -\pard\qc\f0\par -\pard\b Preamble\b0\par -\par -The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.\par -\par -This license, the Lesser General Public License, applies to some specially designated software--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.\par -\par -When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.\par -\par -To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.\par -\par -For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.\par -\par -We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.\par -\par -To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.\par -\par -Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.\par -\par -Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.\par -\par -When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.\par -\par -We call this license the "Lesser" General Public License because it does \i Less\i0 to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.\par -\par -For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.\par -\par -In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.\par -\par -Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.\par -\par -The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.\par -\par -\pard\qc GNU LESSER GENERAL PUBLIC LICENSE\par -\par -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\par -\par -\pard\fi-720\li720\tx144\tx720\tab 0.\tab This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".\par -\par -\pard\li720 A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.\par -\par -The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)\par -\par -"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.\par -\par -Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 1.\tab You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.\par -\par -\pard\li720 You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 2.\tab You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:\par -\par -\pard\fi-720\li1440\tx864\tx1440\tab a.\tab The modified work must itself be a software library.\par -\par -\tab b.\tab You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.\par -\par -\tab c.\tab You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.\par -\par -\tab d.\tab If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.\par -\par -\pard\li1440 (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)\par -\pard\fi-720\li720\par -\pard\li720 These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.\par -\par -Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.\par -\par -In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 3.\tab You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.\par -\par -\pard\li720 Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.\par -\par -This option is useful when you wish to copy part of the code of the Library into a program that is not a library.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 4.\tab You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.\par -\par -\pard\li720 If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 5.\tab A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.\par -\par -\pard\li720 However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.\par -\par -When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.\par -\par -If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)\par -\par -Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 6.\tab As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.\par -\par -\pard\li720 You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:\par -\par -\pard\fi-720\li1440\tx864\tx1440\tab a.\tab Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)\par -\par -\tab b.\tab Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.\par -\par -\tab c.\tab Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.\par -\par -\tab d.\tab If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.\par -\par -\tab e.\tab Verify that the user has already received a copy of these materials or that you have already sent this user a copy.\par -\pard\li720\par -For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.\par -\par -It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 7.\tab You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:\par -\par -\pard\fi-720\li1440\tx864\tx1440\tab a.\tab Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.\par -\par -\tab b.\tab Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.\par -\pard\fi-720\li720\par -\pard\fi-720\li720\tx144\tx720\tab 8.\tab You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.\par -\par -\tab 9.\tab You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.\par -\par -\tab 10.\tab Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.\par -\par -\tab 11.\tab If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.\par -\par -\pard\li720 If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.\par -\par -It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.\par -\par -This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 12.\tab If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.\par -\par -\tab 13.\tab The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\par -\par -\pard\li720 Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.\par -\par -\pard\fi-720\li720\tx144\tx720\tab 14.\tab If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.\par -\par -\pard\li720\qc NO WARRANTY\par -\par -\pard\fi-720\li720\tx144\tx720\tab 15.\tab BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par -\par -\tab 16.\tab IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par -\pard\par -\pard\qc END OF TERMS AND CONDITIONS\par -\par -\pard\b How to Apply These Terms to Your New Libraries\b0\par -\par -If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).\par -\par -To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.\par -\par -\i\f1 one line to give the library's name and an idea of what it does.\i0\f0\line Copyright (C) \i year\i0 \i name of author\i0\line\line This library is free software; you can redistribute it and/or modify it\line under the terms of the GNU Lesser General Public License as published by\line the Free Software Foundation; either version 2.1 of the License, or (at\line your option) any later version.\line\line This library is distributed in the hope that it will be useful, but\line WITHOUT ANY WARRANTY; without even the implied warranty of\line MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\line Lesser General Public License for more details.\line\line You should have received a copy of the GNU Lesser General Public\line License along with this library; if not, write to the Free Software\line Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\line USA.\par -\par -Also add information on how to contact you by electronic and paper mail.\par -\par -You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:\par -\par -\pard\keep\li720\f1 Yoyodyne, Inc., hereby disclaims all copyright interest in the library\f2 \f1 `Frob' (a library for tweaking knobs) written by James Random Hacker.\line\line\i signature of Ty Coon\i0 , 1 April 1990\line Ty Coon, President of Vice\par -\pard\f0\par -That's all there is to it!\par -\par -} - \ No newline at end of file diff --git a/build/package/msi/makemsi.cxx b/build/package/msi/makemsi.cxx deleted file mode 100644 index d55db9deb21ac..0000000000000 --- a/build/package/msi/makemsi.cxx +++ /dev/null @@ -1,385 +0,0 @@ -// @(#)root/winnt:$Id$ -// Author: Axel Naumann 2006-05-09 - -/************************************************************************* - * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * - * All rights reserved. * - * * - * For the licensing terms see $ROOTSYS/LICENSE. * - * For the list of contributors see $ROOTSYS/README/CREDITS. * - *************************************************************************/ - -// WiX MSI Installer Package Utility -// Creates a WiX source file - -// USAGE: makemsi outputfile.msi -T filelist.txt -// will create a MSI file for files in filelist.txt - -#if !defined(VERSION) || !defined(PRODUCT) -# error "Define the CPP macros PRODUCT and VERSION!" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using std::string; -using std::list; -using std::map; -using std::cerr; -using std::endl; -using std::ostream; - -//////////////////////////////////////////////////////////////////////////////// -// CLASS DECLARATIONS -//////////////////////////////////////////////////////////////////////////////// - -class MSIDir; - -class MSIDirEntry { -public: - MSIDirEntry(const char* name, MSIDir* parent, bool dir); - virtual ~MSIDirEntry() {} - - string GetLongName() const {return fLongName;} - string GetShortName() const {return fShortName;} - string GetPath() const {return fPath;} - string GetId() const; - MSIDir* GetParent() const {return fParent;} - - virtual void WriteRecurse(std::ostream& out, string indent) const = 0; - std::ostream& WriteLongShort(std::ostream& out) const; - -private: - void SetShortName(bool dir); - string GetMyId() const; - - string fLongName; // regular name - string fShortName; // 8.3 name - string fPath; // path incl parents - MSIDir* fParent; // parent dir -}; - -//////////////////////////////////////////////////////////////////////////////// - -class MSIFile; - -class MSIDir: public MSIDirEntry { -public: - MSIDir(const char* name, MSIDir* parent=0): MSIDirEntry(name, parent, true) {} - ~MSIDir() {if (!GetParent()) UpdateGuids();} - - void AddFile(const char* file); - - void Write(std::ostream& out) const; - -private: - void WriteRecurse(std::ostream& out, string indent) const; - void WriteComponentsRecurse(std::ostream& out, string indent) const; - const char* GetGuid() const { - if (!fgGuids.size() && !fgNewGuids.size()) SetupGuids(); - std::map::const_iterator iGuid = fgGuids.find(GetId()); - if (iGuid == fgGuids.end()) return CreateGuid(); - return iGuid->second.c_str(); - } - const char* CreateGuid() const; - static void SetupGuids(); - static void UpdateGuids(); - - std::map fSubdirs; - std::list fFiles; - - static std::map fgGuids; - static std::map fgNewGuids; // guids created during this process - static const char* fgGuidFileName; // location of the GUID file -}; - -//////////////////////////////////////////////////////////////////////////////// - -class MSIFile: public MSIDirEntry { -public: - MSIFile(const char* name, MSIDir* parent): MSIDirEntry(name, parent, false) {} - - void WriteRecurse(std::ostream& out, string indent) const { - out << indent << "" << std::endl; - }; -}; - - - -//////////////////////////////////////////////////////////////////////////////// -// MSIDirEntry DEFINITIONS -//////////////////////////////////////////////////////////////////////////////// - -MSIDirEntry::MSIDirEntry(const char* name, MSIDir* parent, bool dir): fLongName(name), fParent(parent) -{ - if (fParent) fPath = fParent->GetPath() + '/' + name; - else fPath = "."; - SetShortName(dir); -} - -void MSIDirEntry::SetShortName(bool dir) { - WIN32_FIND_DATA findData; - string filename(GetPath()); - HANDLE hFind = ::FindFirstFile(filename.c_str(), &findData); - if (hFind == INVALID_HANDLE_VALUE) { - std::cerr << "Cannot find " << filename << std::endl; - } else { - bool foundDir = (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) > 0; - if (foundDir == !dir) - std::cerr << filename << " is not what I expected it to be!" << std::endl; - else - fShortName = findData.cAlternateFileName; - } - FindClose(hFind); -} - -string MSIDirEntry::GetId() const { - string ret; - if (fParent) ret = fParent->GetId() + "_"; - return ret + GetMyId(); -} - -string MSIDirEntry::GetMyId() const { - string ret(fLongName); - std::replace(ret.begin(), ret.end(), '/', '_'); - std::replace(ret.begin(), ret.end(), '-', '_'); - std::replace(ret.begin(), ret.end(), '#', '_'); - std::replace(ret.begin(), ret.end(), '~', '_'); - std::replace(ret.begin(), ret.end(), '@', '_'); - return ret; -} - -std::ostream& MSIDirEntry::WriteLongShort(std::ostream& out) const { - if (!fShortName.empty()) - out << "LongName=\"" << fLongName <<"\" Name=\"" << fShortName << "\" "; - else out << "Name=\"" << fLongName << "\" "; - return out; -} - - - -//////////////////////////////////////////////////////////////////////////////// -// MSIDir DEFINITIONS -//////////////////////////////////////////////////////////////////////////////// - -std::map MSIDir::fgGuids; -std::map MSIDir::fgNewGuids; -const char* MSIDir::fgGuidFileName = 0; // set to e.g. "guids.txt" make GUIDs persistent - -void MSIDir::AddFile(const char* file) { - string subdir(file); - string filename(file); - - string::size_type posSlash = subdir.find('/'); - if (posSlash != string::npos) { - subdir.erase(posSlash, subdir.length()); - filename.erase(0, posSlash+1); - } else subdir.erase(); - - if (filename.empty()) { - std::cerr << "Cannot add empty filename!" << std::endl; - return; - } - if (subdir.empty()) fFiles.push_back(new MSIFile(filename.c_str(), this)); - else { - if (!fSubdirs[subdir]) fSubdirs[subdir] = new MSIDir(subdir.c_str(), this); - fSubdirs[subdir]->AddFile(filename.c_str()); - } -} - -void MSIDir::Write(std::ostream& out) const { - const DWORD bufsize = MAX_PATH; - char pwd[bufsize]; - DWORD len = ::GetCurrentDirectory(bufsize, pwd); - if (len > 0 && pwd[len - 1] == '\\') { - pwd[len - 1] = 0; - } - - out << "" << std::endl; - out << "" << std::endl; - out << "" << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - - WriteRecurse(out, std::string(" ")); - - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - - WriteComponentsRecurse(out, std::string(" ")); - - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << " " << std::endl; - out << "" << std::endl; - out << "" << std::endl; -} - -void MSIDir::WriteRecurse(std::ostream& out, string indent) const { - // write to out recursively - if (!fFiles.size() && !fSubdirs.size()) return; - - if (GetParent()) { - // assume that Write takes care of the root dir. - out << indent << "" << std::endl; - indent+=" "; - } - - if (fFiles.size()) { - out << indent << "" << std::endl; - indent+=" "; - - for (std::list::const_iterator iFile = fFiles.begin(); iFile != fFiles.end(); ++iFile) { - (*iFile)->WriteRecurse(out, indent); - } - indent.erase(indent.length()-3, 3); - out << indent << "" << std::endl; - } - for (std::map::const_iterator iSubdir = fSubdirs.begin(); iSubdir != fSubdirs.end(); ++iSubdir) - iSubdir->second->WriteRecurse(out, indent); - - indent.erase(indent.length()-3, 3); - if (GetParent()) { - // assume that Write takes care of the root dir. - out << indent << "" << std::endl; - } -} - -void MSIDir::WriteComponentsRecurse(std::ostream& out, string indent) const { - // write all components to out - if (!fFiles.empty()) - out << indent << "" << std::endl; - for (std::map::const_iterator iSubdir = fSubdirs.begin(); iSubdir != fSubdirs.end(); ++iSubdir) - iSubdir->second->WriteComponentsRecurse(out, indent); -} - - -const char* MSIDir::CreateGuid() const { - UUID uuid; - ::UuidCreate(&uuid); - unsigned char* str = 0; - ::UuidToString(&uuid, &str); - std::string id = GetId(); - const std::string& ret = fgGuids[id] = (char*)str; - fgNewGuids[id] = ret; - RpcStringFree(&str); - return ret.c_str(); -} - -void MSIDir::SetupGuids() { - if (!fgGuidFileName) return; - - std::ifstream in(fgGuidFileName); - std::string line; - while (std::getline(in, line)) { - std::istringstream sin(line); - std::string id, guid; - sin >> id >> guid; - fgGuids[id] = guid; - } -} - -void MSIDir::UpdateGuids() { - if (!fgNewGuids.size() || !fgGuidFileName) return; - - std::ofstream out(fgGuidFileName, std::ios_base::app); - if (!out) { - std::cerr << "ERROR: cannot write to GUID file " - << fgGuidFileName << "!" << std::endl; - std::cerr << "ERROR: You should NOT use this MSI file, but re-generate with with accessible GUID file!" - << std::endl; - return; - } - for (std::map::const_iterator iGuid = fgNewGuids.begin(); iGuid != fgNewGuids.end(); ++iGuid) - out << iGuid->first << " " << iGuid->second << std::endl; - std::cout << "WARNING: new GUIDs created; please cvs checkin " << fgGuidFileName << "!" << std::endl; -} - - - -//////////////////////////////////////////////////////////////////////////////// -// main() -//////////////////////////////////////////////////////////////////////////////// - -int main(int argc, char *argv[]) { - if (argc<4 || string(argv[2]) != "-T") { - std::cerr << "USAGE: " << argv[0] << " -T " << std::endl; - return 1; - } - - string outfile = argv[1]; - std::ofstream out(outfile.c_str()); - if (!out) { - std::cerr << "Cannot open output file " << outfile << "!" << std::endl; - return 2; - } - - string infile = argv[3]; - std::ifstream in(infile.c_str()); - if (!in) { - std::cerr << "Cannot open input file " << infile << "!" << std::endl; - return 2; - } - - MSIDir fileroot("ROOTSYS"); - string line; - while (std::getline(in, line)) - fileroot.AddFile(line.c_str()); - - fileroot.Write(out); -} diff --git a/build/package/msi/makemsi.sh b/build/package/msi/makemsi.sh deleted file mode 100755 index 7e981b813499f..0000000000000 --- a/build/package/msi/makemsi.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh - -# -# Creates a msi installer package, using WiX (http://wix.sf.net) -# -# Axel, 2006-05-05 - -# USAGE: makemsi outputfile.msi -T filelist.txt -# will create a MSI file for files in filelist.txt - -if ! which candle > /dev/null 2>&1; then - echo "" - echo ' WiX not found!' - echo "" - echo 'Please download the VERSION 3 wix binaries from http://wix.sf.net,' - echo 'extract them, and put them into your $PATH so I can find them.' - exit 1 -fi - -MSIFILE=$1 -[ "$MSIFILE" = "" ] && MSIFILE=root.msi - -MSIDIR=`dirname $MSIFILE` -[ "$MSIDIR" = "" ] && MSIDIR=$PWD -[ -d $MSIDIR ] || mkdir -p $MSIDIR - -WIXDIR=`which light | sed 's,^\(.*/\)[^/].*$,\1,'` -ROOTSYS=$PWD - -ROOTXMS=$MSIDIR/ROOT.xms -ROOTXMSO=$MSIDIR/ROOT.wixobj - -shift -echo `cygpath -m $ROOTXMS` $* | xargs build/package/msi/makemsi.exe || exit 1 - -# fix WiX UI problem... -if [ ! -d $WIXDIR/lib/Bitmaps -o ! -f $WIXDIR/lib/Bitmaps/dlgbmp.bmp ]; then - mkdir $WIXDIR/lib/Bitmaps - mv $WIXDIR/lib/*.ico $WIXDIR/lib/Bitmaps/ - mv $WIXDIR/lib/*.bmp $WIXDIR/lib/Bitmaps/ -fi - -# stupid license file cannot be anywhere else but in $WIXDIR, or we have to re-generate the UI... -[ -f $WIXDIR/lib/License.rtf.orig ] || mv -f $WIXDIR/lib/License.rtf $WIXDIR/lib/License.rtf.orig -cp $ROOTSYS/build/package/msi/License.rtf $WIXDIR/lib/License.rtf - -# now compile! -echo "Compiling and linking - this will take a while..." -CMD="candle -nologo -sw1044 `cygpath -w $ROOTXMS` -out `cygpath -w $MSIDIR/root.wixobj`" -echo $CMD -$CMD || exit 1 - -CMD="light -nologo -out `cygpath -w $MSIFILE` `cygpath -w $ROOTXMSO` `cygpath -w $WIXDIR/lib/wixui_mondo.wixlib` -loc `cygpath -w $ROOTSYS/build/package/msi/Language_en-us.wxl`" -echo $CMD -$CMD || exit 1 -echo "" -rm $ROOTXMSO $ROOTXMS -chmod a+rx $MSIFILE -echo "Done." diff --git a/build/package/rpm/libroot-core.post b/build/package/rpm/libroot-core.post deleted file mode 100644 index 596a0c15e5868..0000000000000 --- a/build/package/rpm/libroot-core.post +++ /dev/null @@ -1,7 +0,0 @@ -# Add %{_prefix}/lib/root to the directories searched by ldd, if not -# so already -if ! grep -qs ^%{_prefix}/lib/root\$ /etc/ld.so.conf ; then - echo %{_prefix}/lib/root >> /etc/ld.so.conf -fi -# update /etc/ld.so.cache -ldconfig diff --git a/build/package/rpm/libroot.post b/build/package/rpm/libroot.post deleted file mode 100644 index 596a0c15e5868..0000000000000 --- a/build/package/rpm/libroot.post +++ /dev/null @@ -1,7 +0,0 @@ -# Add %{_prefix}/lib/root to the directories searched by ldd, if not -# so already -if ! grep -qs ^%{_prefix}/lib/root\$ /etc/ld.so.conf ; then - echo %{_prefix}/lib/root >> /etc/ld.so.conf -fi -# update /etc/ld.so.cache -ldconfig diff --git a/build/package/rpm/root-cint.post b/build/package/rpm/root-cint.post deleted file mode 100644 index a3f1602fcc48b..0000000000000 --- a/build/package/rpm/root-cint.post +++ /dev/null @@ -1,7 +0,0 @@ -# Add %{_prefix}/lib/root to the directories searched by ldd, if not -# so already -if ! grep -qs ^%{_prefix}/lib/root\$ /etc/ld.so.conf ; then - echo %{_prefix}/lib/root >> /etc/ld.so.conf -fi -# update /etc/ld.so.cache -ldconfig diff --git a/build/package/rpm/root-system-proofd.post b/build/package/rpm/root-system-proofd.post deleted file mode 100644 index 9606b929bae1c..0000000000000 --- a/build/package/rpm/root-system-proofd.post +++ /dev/null @@ -1,37 +0,0 @@ -#--------------------------------------------------------------------- -# Post installation - only body -# -# Add INETD line to configuration file, if not already present -# -# if test -f /etc/inetd.conf ; then -# if ! grep -qs ^proofd /etc/inetd.conf ; then -# echo 'proofd stream tcp nowait root %{_prefix}/bin/proofd proofd %{_prefix}/share/root' \ -# >> /etc/inetd.conf -# fi -# fi -# -# Add a file to /etc/xinet.d if it exists -# -# if test -d /etc/xinetd.d ; then -# rm -f /etc/xinetd.d/proofd -# cat > /etc/xinetd.d/proofd <> /etc/services -fi - -# end of script diff --git a/build/package/rpm/root-system-proofd.preun b/build/package/rpm/root-system-proofd.preun deleted file mode 100644 index 9f226b60a52d7..0000000000000 --- a/build/package/rpm/root-system-proofd.preun +++ /dev/null @@ -1,20 +0,0 @@ -#--------------------------------------------------------------------- -# Pre removal - only body -# -# Remove entry from /etc/inetd.conf -# -# if test -f /etc/inetd.conf ; then -# if ! grep -qs ^proofd /etc/inetd.conf ; then -# sed '/^proofd.*/d' < /etc/inetd.conf > /etc/inetd.conf.rpmnew -# mv /etc/inetd.conf.rpmnew /etc/inetd.conf -# fi -# fi -# rm -f /etc/xinetd.d/proofd - -# -# Do not remove antries from /etc/services, since the numbers _are_ -# assigned IANA, so there's no need -# -%_sysconfdir/init.d/proofd stop - -# end of script diff --git a/build/package/rpm/root-system-rootd.post b/build/package/rpm/root-system-rootd.post deleted file mode 100644 index e326a46892ba2..0000000000000 --- a/build/package/rpm/root-system-rootd.post +++ /dev/null @@ -1,52 +0,0 @@ -#--------------------------------------------------------------------- -# Post installation - only body -# -# Add INETD line to configuration file, if not already present -# -# if test -f /etc/inetd.conf ; then -# if ! grep -qs ^rootd /etc/inetd.conf ; then -# echo 'rootd stream tcp nowait root %{_prefix}/bin/rootd rootd -i' \ -# >> /etc/inetd.conf -# fi -# fi -# -# Add a file to /etc/xinet.d if it exists -# -# if test -d /etc/xinetd.d ; then -# rm -f /etc/xinetd.d/rootd -# cat > /etc/xinetd.d/rootd <> /etc/services -fi - -# -# Make sure that the rootd location is correct in /etc/rc.d/init.d/rootd -# -sed -e "s|%_prefix|$RPM_INSTALL_PREFIX|g" \ - < %_sysconfdir/rc.d/init.d/rootd \ - > %_sysconfdir/rc.d/init.d/rootd.tmp -mv %_sysconfdir/rc.d/init.d/rootd.tmp %_sysconfdir/rc.d/init.d/rootd -chmod 0755 %_sysconfdir/rc.d/init.d/rootd - -# -# Start the service -# -%_sysconfdir/init.d/rootd start - -# -# end of script diff --git a/build/package/rpm/root-system-rootd.postun b/build/package/rpm/root-system-rootd.postun deleted file mode 100644 index 9c5c82930b9f6..0000000000000 --- a/build/package/rpm/root-system-rootd.postun +++ /dev/null @@ -1,23 +0,0 @@ -#--------------------------------------------------------------------- -# Post removal - only body -# rm -rf /var/spool/rootd -# -# Remove the user rootd and the group if possible -# -userdel -r rootd -reason=$? -if [ $reason -ne 0 ] ; then - # Could not remove user. Ignore. - echo "Couldn't remove user rootd, check it. Reason" - case $reason in - 1) echo "can't update password file" ;; - 2) echo "bad command syntax" ;; - 6) echo "specified user doesn't exist" ;; - 8) echo "user currently logged in" ;; - 10) echo "can't update group file" ;; - 12) echo "can't remove home directory" ;; - *) echo "Unknown" ;; - esac -fi -# end of script - diff --git a/build/package/rpm/root-system-rootd.pre b/build/package/rpm/root-system-rootd.pre deleted file mode 100644 index a7afda3c74d74..0000000000000 --- a/build/package/rpm/root-system-rootd.pre +++ /dev/null @@ -1,56 +0,0 @@ -#--------------------------------------------------------------------- -# Pre installation - only body -# -# Now we have to ensure the following state: -# /etc/passwd: rootd:x:Anonymous rootd:/var/spool/rootd:/bin/false -# /etc/group: rootd:x:72:rootd -# -if ! grep -q ^rootd: /etc/group; then - groupadd rootd -fi -if ! grep -q ^rootd: /etc/passwd; then - useradd -c "Anonymous rootd" -d "/var/spool/rootd" -s /bin/false \ - -g rootd rootd -fi - -# -# Make home directory -# -if [ ! -d /var/spool/rootd ] ; then - mkdir -p /var/spool/rootd -fi - -# -# If user already exist, modify it. -# -usermod -c "Anonymous rootd" rootd -usermod -d /var/spool/rootd rootd -usermod -g rootd rootd -usermod -s /bin/false rootd - - -# Since the home directory was created before putting the user -# into the rootd group and moreover we cannot guarantee that -# the permissions were correctly *before* calling this script, -# we fix them now. -#echo -#echo "SECURITY: Fixing permission of /var/spool/rootd !" -#echo "(I.e. replacing GIDs other than root and rootd with rootd.)" -#echo -chown rootd.rootd /var/spool/rootd -find /var/spool/rootd \ - -not \( -group root -or -group rootd \) \ - -exec chgrp rootd {} \; - -# Create the tmp and pub directories in /var/spool/rootd and -# make them world read- and writeable. -if [ ! -d /var/spool/rootd/tmp ] ; then - mkdir -p /var/spool/rootd/tmp - chmod 777 /var/spool/rootd/tmp -fi -if [ ! -d /var/spool/rootd/pub ] ; then - mkdir -p /var/spool/rootd/pub - chmod 777 /var/spool/rootd/pub -fi - -# end of script diff --git a/build/package/rpm/root-system-rootd.preun b/build/package/rpm/root-system-rootd.preun deleted file mode 100644 index 4e3cb7e4bb8f3..0000000000000 --- a/build/package/rpm/root-system-rootd.preun +++ /dev/null @@ -1,23 +0,0 @@ -#--------------------------------------------------------------------- -# Pre removal - only body -# -# Remove entry from /etc/inetd.conf -# -# if test -f /etc/inetd.conf ; then -# if ! grep -qs ^rootd /etc/inetd.conf ; then -# sed '/^rootd.*/d' < /etc/inetd.conf > /etc/inetd.conf.rpmnew -# mv /etc/inetd.conf.rpmnew /etc/inetd.conf -# fi -# fi -# rm -f /etc/xinetd.d/rootd -# -# Do not remove antries from /etc/services, since the numbers _are_ -# assigned IANA, so there's no need -# - -# -# Stop the service -# -%_sysconfdir/init.d/rootd stop - -# end of script diff --git a/build/package/rpm/root-system-rootd.spec.in b/build/package/rpm/root-system-rootd.spec.in deleted file mode 100644 index a7d11249c6bd5..0000000000000 --- a/build/package/rpm/root-system-rootd.spec.in +++ /dev/null @@ -1,155 +0,0 @@ -##################################################################### -# -# Preamble -# -# Macro definitions -%define ver @version@ -%define rel @release@ -%define _prefix @prefix@ -%define _sysconfdir @etcdir@ -%define _defaultdocdir %_prefix/share/doc -%define _rootdir @rootdir@ - -###################################################################### -# -# Header -# -Name: rootd@arcomp@ -Version: %{ver} -Release: %{rel} -Copyright: ROOT Software Terms and Conditions (see package) -Packager: Gerri Ganis -Distribution: ROOT -Vendor: ROOT Team -URL: http://root.cern.ch -Source: ftp://root.cern.ch/root/root_v%{ver}.source.tar.gz -Group: ROOT -BuildRoot: /tmp/rootdrpm -Prefix: %{_prefix} -Summary: @short@ -Conflicts: root-system-rootd - -#--------------------------------------------------------------------- -# Less concise description -%description -@long@ - -#--------------------------------------------------------------------- -# Install -%install -rm -rf $RPM_BUILD_ROOT%{_prefix} -mkdir -p $RPM_BUILD_ROOT%{_prefix}/bin -mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/man/man1 -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir} -mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d - -# The rootd executable -install -s -m 755 %{_rootdir}/bin/rootd $RPM_BUILD_ROOT%{_prefix}/bin/rootd -# Small application used internally for backward compatibility in SSH auth -install -s -m 755 %{_rootdir}/bin/ssh2rpd $RPM_BUILD_ROOT%{_prefix}/bin/ssh2rpd -# The rootd man page -install -m 644 %{_rootdir}/man/man1/rootd.1 $RPM_BUILD_ROOT%{_prefix}/share/man/man1/rootd.1 -gzip $RPM_BUILD_ROOT%{_prefix}/share/man/man1/rootd.1 -# The system.rootdaemonrc man page -install -m 644 %{_rootdir}/man/man1/system.rootdaemonrc.1 $RPM_BUILD_ROOT%{_prefix}/share/man/man1/system.rootdaemonrc.1 -gzip $RPM_BUILD_ROOT%{_prefix}/share/man/man1/system.rootdaemonrc.1 -# The access control configuration file with local CERN rules -install -m 644 %{_rootdir}/etc/system.rootdaemonrc $RPM_BUILD_ROOT%{_sysconfdir}/system.rootdaemonrc -# Add CERN local rules -echo "#" >> $RPM_BUILD_ROOT%{_sysconfdir}/system.rootdaemonrc -echo "# CERN local rules for RFIO compatibility" >> $RPM_BUILD_ROOT%{_sysconfdir}/system.rootdaemonrc -echo "*.cern.ch:rootd usrpwd ssh uidgid" >> $RPM_BUILD_ROOT%{_sysconfdir}/system.rootdaemonrc -# The start script; will make it relocatable in the post-install -install -m 755 %{_rootdir}/etc/daemons/rootd.rc.d $RPM_BUILD_ROOT/etc/rc.d/init.d/rootd -#--------------------------------------------------------------------- -# Files that go into this package -%files -%attr(0755, root, root) %{_prefix}/bin/rootd -%attr(0755, root, root) %{_prefix}/bin/ssh2rpd -%attr(0644, root, root) %{_prefix}/share/man/man1/rootd.1.gz -%attr(0644, root, root) %{_prefix}/share/man/man1/system.rootdaemonrc.1.gz -%attr(0644, root, root) %config(noreplace) %{_sysconfdir}/system.rootdaemonrc -%attr(0755, root, root) /etc/rc.d/init.d/rootd - -#--------------------------------------------------------------------- -# Pre installation script - only body -#%pre - -# end of script -#--------------------------------------------------------------------- -# Post installation script - only body -%post -# -# If using inetd.conf, add relevant lines to the configuration file, -# if not already present -if [ -f /etc/inetd.conf ] ; then - if ! grep -qs ^rootd /etc/inetd.conf ; then - echo 'rootd stream tcp nowait root %{_prefix}/bin/rootd rootd -i' \ - >> /etc/inetd.conf - fi -fi -# -# If using xinetd, add a relevant entry in the config dir -if [ -d /etc/xinetd.d ] ; then - # remove existing rootd entry - if [ -f /etc/xinetd.d/rootd ] ; then - rm -f /etc/xinetd.d/rootd - fi - # Create the file - cat > /etc/xinetd.d/rootd << EOF -# default: on -# description: The rootd daemon (ROOT file server) -# -service rootd -{ - disable = no - flags = REUSE - socket_type = stream - wait = no - user = root - server = %{_prefix}/bin/rootd - server_args = -i -} -EOF -fi -# -# Make sure that port 1094 is assigned to rootd in /etc/services -if ! grep -qs "^rootd" /etc/services ; then - echo "rootd 1094/tcp # ROOT file access daemon" >> /etc/services -fi -# -# Make sure that the rootd location is correct in /etc/rc.d/init.d/rootd -sed -e "s|/usr/local|$RPM_INSTALL_PREFIX|" < /etc/rc.d/init.d/rootd > /etc/rc.d/init.d/rootd.tmp -mv /etc/rc.d/init.d/rootd.tmp /etc/rc.d/init.d/rootd -chmod 0755 /etc/rc.d/init.d/rootd -# -# end of script -#--------------------------------------------------------------------- -# Pre removal -%preun -# -# Stop the service -# -/etc/rc.d/init.d/rootd stop -# -# Remove entries from /etc/inetd.conf -if [ -f /etc/inetd.conf ] ; then - if ! grep -qs ^rootd /etc/inetd.conf ; then - sed '/^rootd.*/d' < /etc/inetd.conf > /etc/inetd.conf.rpmnew - mv /etc/inetd.conf.rpmnew /etc/inetd.conf - fi -fi -# -# Remove entry from /etc/xinetd.d -if [ -d /etc/xinetd.d ] ; then - rm -f /etc/xinetd.d/rootd -fi -# -# Do not remove antries from /etc/services, since the numbers _are_ -# assigned IANA, so there's no need -# -# end of script -#--------------------------------------------------------------------- -# Post removal - only body -# end of script - diff --git a/build/package/rpm/spec.in b/build/package/rpm/spec.in deleted file mode 100644 index a5dabff2cfd96..0000000000000 --- a/build/package/rpm/spec.in +++ /dev/null @@ -1,253 +0,0 @@ -#!/usr/bin/rpm -###################################################################### -# -# Preamble -# -# Macro definitions -%define ver @version@ -%define sovers @sovers@ -%define rel 1 -%define _prefix /usr -%define _sysconfdir /etc -%define _defaultdocdir %_prefix/share/doc/root-%ver -%define _unpackaged_files_terminate_build 0 -%define _icontheme %_prefix/share/icons/hicolor/48x48 - -###################################################################### -# -# Header -# -Name: root-system -Version: %{ver} -Release: %{rel} -License: GNU Lesser General Public License -Packager: Christian Holm Christensen -Distribution: Applications/Physics -Vendor: ROOT Team -URL: http://root.cern.ch -Source: ftp://root.cern.ch/root/root_v%{ver}.source.tar.gz -Group: Applications/Physics -BuildRoot: /tmp/rootrpm -Summary: Numerical data analysis framework (OO) -BuildRequires: libX11-devel -BuildRequires: libXext-devel -BuildRequires: pcre-devel -BuildRequires: freetype-devel -BuildRequires: openssl-devel -BuildRequires: gsl-devel -@builddepends@ -Requires: @pkglist@ -# -# Over all description - not used, but required -# -%description -This package is a meta package to ensure the installation of all -possible ROOT packages on this system. - -ROOT web-site: http://root.cern.ch - -%files -%defattr(-,root,root) -%{_defaultdocdir}/README - -###################################################################### -# -# Package building section -# -# Prepare sources - make package output dir (e.g. ../i686) -%prep -%setup -n root - -#--------------------------------------------------------------------- -# The actual build -# -# Configure the ROOT source tree. You may want to disable some -# features here, though it is STRONGLY DISCOURAGED -# -# -%build -test "x$QTDIR" = "x" || unset QTDIR -test "x$QTLIB" = "x" || unset QTLIB -test "x$QTINC" = "x" || unset QTINC -./configure @confargs@ \ - --prefix=%_prefix \ - --libdir=%_prefix/lib/root/%{sovers} \ - --mandir=%_prefix/share/man/man1 \ - --docdir=%_defaultdocdir \ - --cintincdir=%_prefix/lib/root/%{sovers} \ - --etcdir=%_sysconfdir/root \ - --with-sys-iconpath=%_datadir/pixmaps - -# Usage of external afterimage disabled until such a time when ROOT can use -# the normal libAfterImage -# --disable-builtin-afterimage \ - -make -make all-cintdlls -make static -# cat > html.C < ${RPM_BUILD_ROOT}/%{_prefix}/share/applications/root-system-bin.desktop -cp build/package/debian/root-system-bin.xpm \ - ${RPM_BUILD_ROOT}/%{_prefix}/share/pixmaps/root-system-bin.xpm -cp build/package/debian/root-system-bin.png \ - ${RPM_BUILD_ROOT}/%{_icontheme}/apps/root-system-bin.png -cp build/package/debian/application-x-root.png \ - ${RPM_BUILD_ROOT}/%{_icontheme}/mimetypes/application-x-root.png - -# Make links from version specific directory to `normal' libary dir -(cd ${RPM_BUILD_ROOT}%{_prefix}/lib/root && \ - for i in %{sovers}/*.so.%{sovers} %{sovers}/libXrd*.so ; do \ - ln -sf $i . ; \ - ln -sf $i `basename $i .%{sovers}` ; done; \ - ln -sf %{sovers}/cint .) - -# Rename proofserv, xrdgsiproxy, and xrdpwdadmin in /usr/bin -# to end in `.bin' and make wrapper script in /usr/bin -for i in proofserv xrdgsiproxy xrdpwdadmin xrd xrdcp ; do - if test -f ${RPM_BUILD_ROOT}%{_prefix}/bin/$i && \ - test -f build/package/common/$i.in ; then - mv ${RPM_BUILD_ROOT}%{_prefix}/bin/$i \ - ${RPM_BUILD_ROOT}%{_prefix}/bin/$i.bin - sed -e 's,@prefix@,%{_prefix},g' \ - -e 's,@libvers@,%{sovers},g' \ - < build/package/common/$i.in \ - > ${RPM_BUILD_ROOT}%{_prefix}/bin/$i - chmod 755 ${RPM_BUILD_ROOT}%{_prefix}/bin/$i - fi -done - - -# Prepare SYSV init scripts -mkdir -p ${RPM_BUILD_ROOT}/%{_sysconfdir}/rc.d/init.d -cp -a etc/daemons/rootd.rc.d \ - ${RPM_BUILD_ROOT}/%{_sysconfdir}/rc.d/init.d/rootd -cp -a etc/daemons/proofd.rc.d \ - ${RPM_BUILD_ROOT}/%{_sysconfdir}/rc.d/init.d/proofd -if test -f etc/daemons/xrootd.rc.d ; then - cp -a etc/daemons/xrootd.rc.d \ - ${RPM_BUILD_ROOT}/%{_sysconfdir}/rc.d/init.d/xrootd -fi -if test -f etc/daemons/olbd.rc.d ; then - cp -a etc/daemons/olbd.rc.d \ - ${RPM_BUILD_ROOT}/%{_sysconfdir}/rc.d/init.d/olbd -fi - -# Make package lists -mkdir -p rpm -build/package/lib/makelists.sh rpm ${RPM_BUILD_ROOT} \ - %ver %_prefix %_sysconfdir %_defaultdocdir -echo "%attr(0755, root, root) %{_sysconfdir}/rc.d/init.d/rootd" \ - >> rpm/root-system-rootd.install -echo "%attr(0755, root, root) %{_sysconfdir}/rc.d/init.d/proofd" \ - >> rpm/root-system-proofd.install -touch rpm/ttf-root-installer.install -if test -f rpm/root-system-xrootd.install ; then - echo "%attr(0755, root, root) %{_sysconfdir}/rc.d/init.d/xrootd" \ - >> rpm/root-system-xrootd.install - echo "%attr(0755, root, root) %{_sysconfdir}/rc.d/init.d/olbd" \ - >> rpm/root-system-xrootd.install -fi - -# Make the empty proof log file -mkdir -p ${RPM_BUILD_ROOT}/%{_prefix}/share/root/proof/log -touch ${RPM_BUILD_ROOT}/%{_prefix}/share/root/proof/log/proof.log - -# Now fix up the file lists -for i in rpm/*.install ; do - if test ! -f $i ; then continue ; fi - echo "Fixing $i" - # -e "s/\.1$/.1${EXT}/g" - sed -e "s,%_sysconfdir,%config %_sysconfdir," \ - -e "s,%_defaultdocdir,%doc %_defaultdocdir," \ - < $i > $i.tmp - mv $i.tmp $i -done - -# Remove bad files - this is to quiet RPM about installed but unpackaged files -rm -f ${RPM_BUILD_ROOT}%{_sysconfdir}/root/rootd \ - ${RPM_BUILD_ROOT}%{_prefix}/lib/root/%{sovers}/libAfterImage.a \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/BlackChancery.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/LICENSE \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/arial.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/arialbd.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/arialbi.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/ariali.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/ariblk.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/comic.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/comicbd.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/cour.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/courbd.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/courbi.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/couri.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/georgia.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/georgiab.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/georgiai.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/georgiaz.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/impact.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/monotype.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/times.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/timesbd.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/timesbi.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/timesi.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/trebuc.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/trebucbd.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/trebucbi.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/trebucit.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/verdana.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/verdanab.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/verdanai.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/verdanaz.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/webdings.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/root/fonts/wingding.ttf \ - ${RPM_BUILD_ROOT}%{_prefix}/share/man/man1/xproofd.1* \ - ${RPM_BUILD_ROOT}%{_sysconfdir}/root/proof/*.sample \ - ${RPM_BUILD_ROOT}%{_sysconfdir}/root/proof/.cvsignore \ - ${RPM_BUILD_ROOT}%{_prefix}/bin/thisroot* \ - ${RPM_BUILD_ROOT}%{_prefix}/include/root/*.cw \ - ${RPM_BUILD_ROOT}%{_prefix}/include/root/*.pri -rm -rf ${RPM_BUILD_ROOT}%{_sysconfdir}/root/daemons -rm -rf ${RPM_BUILD_ROOT}%{_sysconfdir}/root/proof/utils - -# ------------------------------------------------------------------- -# Clean up -# -%clean -rm -rf $RPM_BUILD_ROOT - -###################################################################### -# -# Sub packages -# - - - diff --git a/build/package/rpm/ttf-root-installer.post b/build/package/rpm/ttf-root-installer.post deleted file mode 100644 index 95a5fbc65d5aa..0000000000000 --- a/build/package/rpm/ttf-root-installer.post +++ /dev/null @@ -1,34 +0,0 @@ -#--------------------------------------------------------------------- -# Post installation - only body -# -savdir=`pwd` -archive=ttf_fonts.tar.gz -cd /tmp -wget --continue --tries=1 --dns-timeout=10 --connect-timeout=5 \ - --read-timeout=300 -q --directory-prefix . -c \ - ftp://root.cern.ch/root/ttf/$archive -if test ! -f $archive ; then - echo "Failed to get ftp://root.cern.ch/root/ttf/$archive" - return 0 -fi -mkdir -p /var/cache/ -tar -tzf $archive | grep "\.ttf$" | \ - sed -e 's,ttf/fonts/,,' -e '/symbol.ttf/d' \ - > /var/cache/ttf-root-installer -tar -xzf $archive -mkdir -p %_prefix@/share/root/fonts/ -for i in ttf/fonts/*.ttf ; do - case $i in - *symbol.ttf) continue ;; - *) ;; - esac - cp -a $i %_prefix/share/root/fonts/ -done -mkdir -p %_prefix/share/doc/ttf-root-installer/ -cp ttf/fonts/LICENSE \ - %_prefix/share/doc/ttf-root-installer/LICENSE.fonts -rm -rf ttf -rm -f $archive -cd $savdir - -# end of script diff --git a/build/package/rpm/ttf-root-installer.preun b/build/package/rpm/ttf-root-installer.preun deleted file mode 100644 index 1221c08aeb413..0000000000000 --- a/build/package/rpm/ttf-root-installer.preun +++ /dev/null @@ -1,10 +0,0 @@ -#--------------------------------------------------------------------- -# Pre removal - only body -# -if test -f /var/cache/ttf-root-installer ; then - ( cd %_prefix/share/root/fonts && \ - rm -f `cat /var/cache/ttf-root-installer` ) - rm -f %_prefix/share/doc/ttf-root-installer/LICENSE.fonts - rm -rf %_prefix/share/doc/ttf-root-installer/ - rm -f /var/cache/ttf-root-installer -fi diff --git a/build/package/rpmspec/root-5.26.00c.spec b/build/package/rpmspec/root-5.26.00c.spec deleted file mode 100644 index e6fc86d840c2d..0000000000000 --- a/build/package/rpmspec/root-5.26.00c.spec +++ /dev/null @@ -1,204 +0,0 @@ -%{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')} - -%define base_version 5.26.00 -%define patch_release c - -Name: root -Version: %{base_version}%{patch_release} -Release: 1%{dist} -License: ROOT Software Terms and Conditions -Packager: Mark Dalton , Sergio Ballestrero -Vendor: ROOT Team -URL: http://root.cern.ch/ -Prefix: /opt/root -Source0: ftp://root.cern.ch/root/root_v%{base_version}%{patch_release}.source.tar.gz -#Source1: root.config.Makefile.linux-OPT.P4 -#Patch0: root_v5.24.00d.patch -Group: Applications/Science -BuildRoot: %{_tmppath}/%{name}-%{version}-root -BuildRequires: gcc-c++, libstdc++-devel -BuildRequires: libX11-devel, libXpm-devel -#BuildRequires: xorg-x11-devel, xpm-devel -BuildRequires: libGL-devel, libGLU-devel -BuildRequires: python-devel -BuildRequires: qt-devel -BuildRequires: zlib-devel, libpng-devel, libjpeg-devel, libtiff-devel -BuildRequires: cernlib-devel -BuildRequires: gsl-devel -BuildRequires: pcre-devel -BuildRequires: freetype-devel -BuildRequires: openssl-devel -BuildRequires: fftw-devel -BuildRequires: ncurses-devel -BuildRequires: graphviz-devel -Summary: Numerical data analysis framework (OO) -Requires(pre,post): /sbin/ldconfig - -Provides:root-devel - -BuildArchitectures: %ix86 x86_64 -ExclusiveArch: %ix86 x86_64 - -%define cernlib_version 2006 -%ifarch %ix86 -%define cernlib_path /usr/lib/cernlib -%define cernlib_arch_config linux -%else -%define cernlib_path /usr/lib64/cernlib -%define cernlib_arch_config linuxx8664gcc -%endif - -%description -From the web page (http://root.cern.ch/): - -The ROOT system provides a set of OO frameworks with all the -functionality needed to handle and analyse large amounts of data in a -very efficient way. Having the data defined as a set of objects, -specialised storage methods are used to get direct access to the -separate attributes of the selected objects, without having to touch -the bulk of the data. Included are histograming methods in 1, 2 and 3 -dimensions, curve fitting, function evaluation, minimisation, graphics -and visualisation classes to allow the easy setup of an analysis -system that can query and process the data interactively or in batch -mode. - -Thanks to the built in CINT C++ interpreter the command language, the -scripting, or macro, language and the programming language are all -C++. The interpreter allows for fast prototyping of the macros since -it removes the time consuming compile/link cycle. It also provides a -good environment to learn C++. If more performance is needed the -interactively developed macros can be compiled using a C++ compiler. - -The system has been designed in such a way that it can query its -databases in parallel on MPP machines or on clusters of workstations -or high-end PC's. ROOT is an open system that can be dynamically -extended by linking external libraries. This makes ROOT a premier -platform on which to build data acquisition, simulation and data -analysis systems. - -More information can be obtained via the ROOT web pages: - http://root.cern.ch - -%prep -%setup -q -n root -#kefile.linuxcp %{SOURCE1} config/Makefile.linux -#%patch0 -p1 - -%build -#export ROOTSYS=%{_prefix} -export QTDIR=/usr/lib64/qt4 -./configure %{cernlib_arch_config} \ - --prefix=%{_prefix} \ - --libdir=%{_libdir} \ - --docdir=%{_defaultdocdir}/%{name}-%{version} \ - --fontdir=%{_datadir}/fonts/%{name} \ - --with-cern-libdir=%{cernlib_path}/%{cernlib_version}/lib \ - --enable-cern \ - --enable-cintex \ - --enable-editline \ - --enable-qt \ - --enable-qtgsi \ - --enable-opengl \ - --enable-explicitlink \ - --enable-python \ - --enable-mathcore \ - --enable-genvector \ - --enable-mathmore \ - --enable-g4root \ - --enable-gsl-shared \ - --enable-minuit2 \ - --enable-reflex \ - --enable-roofit \ - --enable-shadowpw \ - --enable-shared \ - --enable-soversion \ - --enable-table \ - --enable-xml \ - --enable-xrootd \ - --enable-xft \ - --enable-fftw3 \ - --enable-gdml \ - --enable-tmva \ - --enable-ssl \ - --enable-memstat \ - --enable-gviz \ - --disable-afs \ - --disable-krb5 \ - --disable-ldap \ - --disable-globus \ - --disable-mysql \ - --disable-pgsql \ - --disable-oracle \ - --disable-pythia6 \ - --disable-rfio \ - --disable-srp \ - --disable-builtin-zlib \ - --disable-builtin-freetype \ - --disable-builtin-pcre - -%{__make} %{_smp_mflags} -%{__make} %{_smp_mflags} cintdlls - -%install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT/%{_prefix} - -make install DESTDIR=${RPM_BUILD_ROOT} USECONFIG=TRUE -find ${RPM_BUILD_ROOT} -name "CVS" | xargs rm -fr - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig - -%files -%defattr(-,root,root) -%docdir %{_defaultdocdir} -#%%{_libdir}/python%{pyver}/site-packages/* -%{_prefix} -%{_sysconfdir} - -%changelog -* Wed Jul 21 2010 Olivier Lahaye - 5.26.00c-1%{dist} -- New upstream release. -* Fri Apr 23 2010 Olivier Lahaye - 5.26.00b-2%{dist} -- Added build options: fftw3, gdml, gviz, memstat, g4root, genvector, editline, - gsl-shared, ssl, tmva -* Wed Apr 07 2010 Olivier Lahaye - 5.26.00b-1%{dist} -- new upstream version -* Thu Aug 20 2009 Olivier Lahaye - 5.24.00d-1%{dist} -- bugfix release -* Fri Aug 7 2009 Olivier Lahaye - 5.24.00-1%{dist} -- new upstream version -* Tue Jul 7 2009 Olivier Lahaye - 5.16.00-1.el4 -- rebuild using qt4 -* Tue Jul 7 2009 Olivier Lahaye - 5.16.00-0.el4 -- support for x86_64 -* Tue Sep 18 2007 Sergio Ballestrero - 5.16.00-0.SL4.WITS -- upstream release 5.16.00 -* Fri Mar 23 2007 Sergio Ballestrero - 5.14.00d-0.SL4.WITS -- upstream release 5.14.00d -* Tue Jul 25 2006 Sergio Ballestrero - 5.12.00-0.SL4.WITS -- Updates for 5.12.00 -- copy some config from official root binaries -* Fri May 26 2006 Sergio Ballestrero - 5.10.00d-0.SL4.WITS -- Updates for 5.10.00d -* Thu Feb 16 2006 Mark Dalton -- added --enable-minuit2 -* Fri Dec 13 2005 Sergio Ballestrero -- path, ld.so.conf.d -* Fri Dec 09 2005 Sergio Ballestrero -- profile scripts, _wits sub-version, BuildRequires -* Thu Nov 10 2005 Sergio Ballestrero -- h2root, OpenGL -* Mon Jun 13 2005 Katarina Pajcel -- Added cintdlls -* Sun May 29 2005 Mattias Ellert -- Updates for 4.04.04 -* Mon Feb 23 2004 Jakob Langgaard Nielsen -- Updates for 3.10.02 -* Mon Nov 24 2003 Jakob Langgaard Nielsen -- Updates for 3.05.07 -* Fri Aug 8 2003 Jakob Langgaard Nielsen -- Updates for 3.05.06 diff --git a/build/rmkdepend/cppsetup.c b/build/rmkdepend/cppsetup.c deleted file mode 100644 index 58c78aebcda0c..0000000000000 --- a/build/rmkdepend/cppsetup.c +++ /dev/null @@ -1,245 +0,0 @@ -/* $XConsortium: cppsetup.c /main/17 1996/09/28 16:15:03 rws $ */ -/* - -Copyright (c) 1993, 1994 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the X Consortium. - -*/ -/* $XFree86: xc/config/makedepend/cppsetup.c,v 3.2 1996/12/30 13:57:53 dawes Exp $ */ - -#include "def.h" - -#ifdef CPP -/* - * This file is strictly for the sake of cpy.y and yylex.c (if - * you indeed have the source for cpp). - */ -#define IB 1 -#define SB 2 -#define NB 4 -#define CB 8 -#define QB 16 -#define WB 32 -#define SALT '#' -#if defined(pdp11) || defined(vax) || defined(ns16000) || defined(mc68000) || defined(ibm032) -#define COFF 128 -#else -#define COFF 0 -#endif -/* - * These variables used by cpy.y and yylex.c - */ -extern char *outp, *inp, *newp, *pend; -extern char *ptrtab; -extern char fastab[]; -extern char slotab[]; - -/* - * cppsetup - */ -struct filepointer *currentfile; -struct inclist *currentinc; - -int -cppsetup(line, filep, inc) -register char *line; -register struct filepointer *filep; -register struct inclist *inc; -{ - register char *p, savec; - static boolean setupdone = FALSE; - boolean value; - - if (!setupdone) { - cpp_varsetup(); - setupdone = TRUE; - } - - currentfile = filep; - currentinc = inc; - inp = newp = line; - for (p = newp; *p; p++) - ; - - /* - * put a newline back on the end, and set up pend, etc. - */ - *p++ = '\n'; - savec = *p; - *p = '\0'; - pend = p; - - ptrtab = slotab + COFF; - *--inp = SALT; - outp = inp; - value = yyparse(); - *p = savec; - return(value); -} - -struct symtab **lookup(symbol) - char *symbol; -{ - static struct symtab *undefined; - struct symtab **sp; - - sp = isdefined(symbol, currentinc, NULL); - if (sp == NULL) { - sp = &undefined; - (*sp)->s_value = NULL; - } - return (sp); -} - -pperror(tag, x0, x1, x2, x3, x4) -int tag, x0, x1, x2, x3, x4; -{ - warning("\"%s\", line %d: ", currentinc->i_file, currentfile->f_line); - warning(x0, x1, x2, x3, x4); -} - - -yyerror(s) -register char *s; -{ - fatalerr("Fatal error: %s\n", s); -} -#else /* not CPP */ - -#include "ifparser.h" -struct _parse_data { - struct filepointer *filep; - struct inclist *inc; - const char *line; -}; - -static const char * -my_if_errors(ip, cp, expecting) -IfParser *ip; -const char *cp; -const char *expecting; -{ - struct _parse_data *pd = (struct _parse_data *) ip->data; - int lineno = pd->filep->f_line; - char *filename = pd->inc->i_file; - char *prefix; - int prefixlen; - int i; - - prefix = (char*)malloc(strlen(filename) + 32); - sprintf(prefix, "\"%s\":%d", filename, lineno); - prefixlen = strlen(prefix); - fprintf(stderr, "%s: warning: %s", prefix, pd->line); - i = cp - pd->line; - if (i > 0 && pd->line[i-1] != '\n') { - putc('\n', stderr); - } - for (i += prefixlen + 11; i > 0; i--) { - putc(' ', stderr); - } - fprintf(stderr, "^--- expecting %s\n", expecting); - free(prefix); - return NULL; -} - - -#define MAXNAMELEN 256 - -static struct symtab ** - lookup_variable(ip, var, len) - IfParser *ip; -const char *var; -int len; -{ - char tmpbuf[MAXNAMELEN + 1]; - struct _parse_data *pd = (struct _parse_data *) ip->data; - - if (len > MAXNAMELEN) - return 0; - - strncpy(tmpbuf, var, len); - tmpbuf[len] = '\0'; - return isdefined(tmpbuf, pd->inc, NULL); -} - - -static int -my_eval_defined(ip, var, len) -IfParser *ip; -const char *var; -int len; -{ - if (lookup_variable(ip, var, len)) - return 1; - else - return 0; -} - -#define isvarfirstletter(ccc) (isalpha(ccc) || (ccc) == '_') - -static long -my_eval_variable(ip, var, len) -IfParser *ip; -const char *var; -int len; -{ - struct symtab **s; - - s = lookup_variable(ip, var, len); - if (!s) - return 0; - do { - var = (*s)->s_value; - if (!isvarfirstletter(*var)) - break; - s = lookup_variable(ip, var, (int)strlen(var)); - } while (s); - - return strtol(var, NULL, 0); -} - - -int cppsetup(line, filep, inc) -register char *line; -register struct filepointer *filep; -register struct inclist *inc; -{ - IfParser ip; - struct _parse_data pd; - long val = 0; - - pd.filep = filep; - pd.inc = inc; - pd.line = line; - ip.funcs.handle_error = my_if_errors; - ip.funcs.eval_defined = my_eval_defined; - ip.funcs.eval_variable = my_eval_variable; - ip.data = (char *) & pd; - - (void) ParseIfExpression(&ip, line, &val); - if (val) - return IF; - else - return IFFALSE; -} -#endif /* CPP */ diff --git a/build/rmkdepend/def.h b/build/rmkdepend/def.h deleted file mode 100644 index ac4099f475258..0000000000000 --- a/build/rmkdepend/def.h +++ /dev/null @@ -1,150 +0,0 @@ -/* $XConsortium: def.h /main/30 1996/12/04 10:11:12 swick $ */ -/* $XFree86: xc/config/makedepend/def.h,v 3.3 1997/01/12 10:38:17 dawes Exp $ */ -/* - -Copyright (c) 1993, 1994 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the X Consortium. - -*/ - -#ifndef X_NOT_POSIX -#ifndef _POSIX_SOURCE -#define _POSIX_SOURCE -#endif -#endif -#include -#ifndef X_NOT_STDC_ENV -#include -#endif -#include -#include -#include -#include - -#define MAXFILES 4096 -#define MAXDIRS 4096 -#define SYMTABINC 10 /* must be > 1 for define() to work right */ -#define TRUE 1 -#define FALSE 0 - -/* the following must match the directives table in main.c */ -#define IF 0 -#define IFDEF 1 -#define IFNDEF 2 -#define ELSE 3 -#define ENDIF 4 -#define DEFINE 5 -#define UNDEF 6 -#define INCLUDE 7 -#define LINE 8 -#define PRAGMA 9 -#define ERROR 10 -#define IDENT 11 -#define SCCS 12 -#define ELIF 13 -#define EJECT 14 -#define WARNING 15 -#define IFFALSE 16 /* pseudo value --- never matched */ -#define ELIFFALSE 17 /* pseudo value --- never matched */ -#define INCLUDEDOT 18 /* pseudo value --- never matched */ -#define IFGUESSFALSE 19 /* pseudo value --- never matched */ -#define ELIFGUESSFALSE 20 /* pseudo value --- never matched */ - -#ifdef DEBUG -extern int _debugmask; -/* - * debug levels are: - * - * 0 show ifn*(def)*,endif - * 1 trace defined/!defined - * 2 show #include - * 3 show #include SYMBOL - * 4-6 unused - */ -#define debug(level,arg) { if (_debugmask & (1 << level)) warning arg; } -#else -#define debug(level,arg) /**/ -#endif /* DEBUG */ - -typedef unsigned char boolean; - -struct symtab { - char *s_name; - char *s_value; -}; - -/* possible i_flag */ -#define DEFCHECKED (1<<0) /* whether defines have been checked */ -#define NOTIFIED (1<<1) /* whether we have revealed includes */ -#define MARKED (1<<2) /* whether it's in the makefile */ -#define SEARCHED (1<<3) /* whether we have read this */ -#define FINISHED (1<<4) /* whether we are done reading this */ -#define INCLUDED_SYM (1<<5) /* whether #include SYMBOL was found -Can't use i_list if TRUE */ -struct inclist { -char *i_incstring; /* string from #include line */ -char *i_file; /* path name of the include file */ -struct inclist **i_list; /* list of files it itself includes */ -int i_listlen; /* length of i_list */ -struct symtab **i_defs; /* symbol table for this file and its -children when merged */ -int i_ndefs; /* current # defines */ -boolean *i_merged; /* whether we have merged child -defines */ -unsigned char i_flags; -}; - -struct filepointer { -char *f_p; -char *f_base; -char *f_end; -long f_len; -long f_line; -}; - -#ifndef X_NOT_STDC_ENV -#include -#if defined(macII) && !defined(__STDC__) /* stdlib.h fails to define these */ -char *malloc(), *realloc(); -#endif /* macII */ -#else -char *malloc(); -char *realloc(); -#endif - -char *copy(char*); -char *base_name(char*); -char *rgetline(struct filepointer*); -struct symtab **slookup(char*, struct inclist*); -struct symtab **isdefined(char*,struct inclist*, struct inclist**); -struct symtab **fdefined(); -struct filepointer *getfile(char*); -struct inclist *newinclude(char*,char*); -struct inclist *inc_path(char*, char*, boolean); -void undefine_all(struct inclist *); - -extern void fatalerr(char *, ...); -extern void warning(char *, ...); -extern void warning1(char *, ...); - -extern int rootBuild; diff --git a/build/rmkdepend/ifparser.c b/build/rmkdepend/ifparser.c deleted file mode 100644 index 9440d7b15d7f4..0000000000000 --- a/build/rmkdepend/ifparser.c +++ /dev/null @@ -1,603 +0,0 @@ -/* - * $XConsortium: ifparser.c /main/10 1996/09/28 16:15:18 rws $ - * $XFree86: xc/config/makedepend/ifparser.c,v 3.6 1996/12/30 13:57:55 dawes Exp $ - * - * Copyright 1992 Network Computing Devices, Inc. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Network Computing Devices may not be - * used in advertising or publicity pertaining to distribution of the software - * without specific, written prior permission. Network Computing Devices makes - * no representations about the suitability of this software for any purpose. - * It is provided ``as is'' without express or implied warranty. - * - * NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS - * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, - * IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE - * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * Author: Jim Fulton - * Network Computing Devices, Inc. - * - * Simple if statement processor - * - * This module can be used to evaluate string representations of C language - * if constructs. It accepts the following grammar: - * - * EXPRESSION := VALUE - * | VALUE BINOP EXPRESSION - * | VALUE '?' EXPRESSION ':' EXPRESSION - * - * VALUE := '(' EXPRESSION ')' - * | '!' VALUE - * | '-' VALUE - * | '~' VALUE - * | 'defined' '(' variable ')' - * | 'defined' variable - * | # variable '(' variable-list ')' - * | variable - * | number - * - * BINOP := '*' | '/' | '%' - * | '+' | '-' - * | '<<' | '>>' - * | '<' | '>' | '<=' | '>=' - * | '==' | '!=' - * | '&' | '^' | '|' - * | '&&' | '||' - * - * The normal C order of precedence is supported. - * - * - * External Entry Points: - * - * ParseIfExpression parse a string for #if - */ - -#include "ifparser.h" -#include -#include -#include - -/**************************************************************************** - Internal Macros and Utilities for Parser - ****************************************************************************/ - -#define DO(val) if (!(val)) return NULL -#define CALLFUNC(ggg,fff) (*((ggg)->funcs.fff)) -#define SKIPSPACE(ccc) while (isspace(*ccc)) ccc++ -#define isvarfirstletter(ccc) (isalpha(ccc) || (ccc) == '_') - - -static const char * -parse_variable(g, cp, varp) -IfParser *g; -const char *cp; -const char **varp; -{ - SKIPSPACE(cp); - - if (!isvarfirstletter(*cp)) - return CALLFUNC(g, handle_error)(g, cp, "variable name"); - - *varp = cp; - /* EMPTY */ - for (cp++; isalnum(*cp) || *cp == '_'; cp++) ; - return cp; -} - - -static const char * -parse_number(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - SKIPSPACE(cp); - - if (!isdigit(*cp)) - return CALLFUNC(g, handle_error)(g, cp, "number"); - - *valp = strtol(cp, &cp, 0); - /* skip trailing qualifiers */ - while (*cp == 'U' || *cp == 'u' || *cp == 'L' || *cp == 'l') cp++; -#if 0 - *valp = atoi(cp); - /* EMPTY */ - for (cp++; isdigit(*cp); cp++) ; -#endif - return cp; -} - -static const char * -parse_character(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - char val; - if (g) { } /* use argument */ - - SKIPSPACE(cp); - if (*cp == '\\') - switch (cp[1]) { - case 'n': - val = '\n'; - break; - case 't': - val = '\t'; - break; - case 'v': - val = '\v'; - break; - case 'b': - val = '\b'; - break; - case 'r': - val = '\r'; - break; - case 'f': - val = '\f'; - break; - case 'a': - val = '\a'; - break; - case '\\': - val = '\\'; - break; - case '?': - val = '\?'; - break; - case '\'': - val = '\''; - break; - case '\"': - val = '\"'; - break; - case 'x': - val = (char) strtol(cp + 2, NULL, 16); - break; - default: - val = (char) strtol(cp + 1, NULL, 8); - break; - } - else - val = *cp; - while (*cp != '\'') cp++; - *valp = (long) val; - return cp; -} - -static const char * -parse_value(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - const char *var; - - *valp = 0; - var = 0; - - SKIPSPACE(cp); - if (!*cp) - return cp; - - switch (*cp) { - case '(': - DO(cp = ParseIfExpression(g, cp + 1, valp)); - SKIPSPACE(cp); - if (*cp != ')') - return CALLFUNC(g, handle_error)(g, cp, ")"); - - return cp + 1; /* skip the right paren */ - - case '!': - DO(cp = parse_value(g, cp + 1, valp)); - *valp = !(*valp); - return cp; - - case '-': - DO(cp = parse_value(g, cp + 1, valp)); - *valp = -(*valp); - return cp; - - case '~': - DO(cp = parse_value(g, cp + 1, valp)); - *valp = ~(*valp); - return cp; - - case '#': - DO(cp = parse_variable(g, cp + 1, &var)); - SKIPSPACE(cp); - if (*cp != '(') - return CALLFUNC(g, handle_error)(g, cp, "("); - do { - DO(cp = parse_variable(g, cp + 1, &var)); - SKIPSPACE(cp); - } while (*cp && *cp != ')'); - if (*cp != ')') - return CALLFUNC(g, handle_error)(g, cp, ")"); - *valp = 1; /* XXX */ - return cp + 1; - - case '\'': - DO(cp = parse_character(g, cp + 1, valp)); - if (*cp != '\'') - return CALLFUNC(g, handle_error)(g, cp, "'"); - return cp + 1; - - case 'd': - if (strncmp(cp, "defined", 7) == 0 && !isalnum(cp[7])) { - int paren = 0; - int len; - - cp += 7; - SKIPSPACE(cp); - if (*cp == '(') { - paren = 1; - cp++; - } - DO(cp = parse_variable(g, cp, &var)); - len = cp - var; - SKIPSPACE(cp); - if (paren && *cp != ')') - return CALLFUNC(g, handle_error)(g, cp, ")"); - *valp = (*(g->funcs.eval_defined))(g, var, len); - return cp + paren; /* skip the right paren */ - } - /* fall out */ - case '_': - if (strncmp(cp, "__has_", 6) == 0) { - cp += 6; - while (isalnum(*cp) || *cp == '_') - ++cp; - - int paren = 0; - SKIPSPACE(cp); - if (*cp == '(') { - paren = 1; - cp++; - } - DO(cp = parse_variable(g, cp, &var)); - SKIPSPACE(cp); - if (paren && *cp != ')') - return CALLFUNC(g, handle_error)(g, cp, ")"); - *valp = 0; /* no features / attributes by default */ - return cp + paren; /* skip the right paren */ - } else if (strncmp(cp, "__GNUC_PREREQ", 13) == 0 && (cp += 7)) { - cp += 13; - while (*cp != '(' && *cp) ++cp; - while (*cp != ')' && *cp) ++cp; - *valp = 0; // assume old GCC - return cp; - } - - /* fall out */ - } - - if (isdigit(*cp)) { - DO(cp = parse_number(g, cp, valp)); - } else if (!isvarfirstletter(*cp)) - return CALLFUNC(g, handle_error)(g, cp, "variable or number"); - else { - DO(cp = parse_variable(g, cp, &var)); - *valp = (*(g->funcs.eval_variable))(g, var, cp - var); - } - - return cp; -} - - - -static const char * -parse_product(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_value(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '*': - DO(cp = parse_product(g, cp + 1, &rightval)); - *valp = (*valp * rightval); - break; - - case '/': - DO(cp = parse_product(g, cp + 1, &rightval)); - if (rightval) - *valp = (*valp / rightval); - break; - - case '%': - DO(cp = parse_product(g, cp + 1, &rightval)); - if (rightval) - *valp = (*valp % rightval); - break; - } - return cp; -} - - -static const char * -parse_sum(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_product(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '+': - DO(cp = parse_sum(g, cp + 1, &rightval)); - *valp = (*valp + rightval); - break; - - case '-': - DO(cp = parse_sum(g, cp + 1, &rightval)); - *valp = (*valp - rightval); - break; - } - return cp; -} - - -static const char * -parse_shift(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_sum(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '<': - if (cp[1] == '<') { - DO(cp = parse_shift(g, cp + 2, &rightval)); - *valp = (*valp << rightval); - } - break; - - case '>': - if (cp[1] == '>') { - DO(cp = parse_shift(g, cp + 2, &rightval)); - *valp = (*valp >> rightval); - } - break; - } - return cp; -} - - -static const char * -parse_inequality(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_shift(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '<': - if (cp[1] == '=') { - DO(cp = parse_inequality(g, cp + 2, &rightval)); - *valp = (*valp <= rightval); - } else { - DO(cp = parse_inequality(g, cp + 1, &rightval)); - *valp = (*valp < rightval); - } - break; - - case '>': - if (cp[1] == '=') { - DO(cp = parse_inequality(g, cp + 2, &rightval)); - *valp = (*valp >= rightval); - } else { - DO(cp = parse_inequality(g, cp + 1, &rightval)); - *valp = (*valp > rightval); - } - break; - } - return cp; -} - - -static const char * -parse_equality(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_inequality(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '=': - if (cp[1] == '=') - cp++; - DO(cp = parse_equality(g, cp + 1, &rightval)); - *valp = (*valp == rightval); - break; - - case '!': - if (cp[1] != '=') - break; - DO(cp = parse_equality(g, cp + 2, &rightval)); - *valp = (*valp != rightval); - break; - } - return cp; -} - - -static const char * -parse_band(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_equality(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '&': - if (cp[1] != '&') { - DO(cp = parse_band(g, cp + 1, &rightval)); - *valp = (*valp & rightval); - } - break; - } - return cp; -} - - -static const char * -parse_bxor(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_band(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '^': - DO(cp = parse_bxor(g, cp + 1, &rightval)); - *valp = (*valp ^ rightval); - break; - } - return cp; -} - - -static const char * -parse_bor(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_bxor(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '|': - if (cp[1] != '|') { - DO(cp = parse_bor(g, cp + 1, &rightval)); - *valp = (*valp | rightval); - } - break; - } - return cp; -} - - -static const char * -parse_land(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_bor(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '&': - if (cp[1] != '&') - return CALLFUNC(g, handle_error)(g, cp, "&&"); - DO(cp = parse_land(g, cp + 2, &rightval)); - *valp = (*valp && rightval); - break; - } - return cp; -} - - -static const char * -parse_lor(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long rightval; - - DO(cp = parse_land(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '|': - if (cp[1] != '|') - return CALLFUNC(g, handle_error)(g, cp, "||"); - DO(cp = parse_lor(g, cp + 2, &rightval)); - *valp = (*valp || rightval); - break; - } - return cp; -} - - -static const char * -parse_cond(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - long trueval, falseval; - - DO(cp = parse_lor(g, cp, valp)); - SKIPSPACE(cp); - - switch (*cp) { - case '?': - DO(cp = parse_cond(g, cp + 1, &trueval)); - SKIPSPACE(cp); - if (*cp != ':') - return CALLFUNC(g, handle_error)(g, cp, ":"); - DO(cp = parse_cond(g, cp + 1, &falseval)); - *valp = (*valp ? trueval : falseval); - break; - } - return cp; -} - - -/**************************************************************************** - External Entry Points - ****************************************************************************/ - -const char * -ParseIfExpression(g, cp, valp) -IfParser *g; -const char *cp; -long *valp; -{ - return parse_cond(g, cp, valp); -} diff --git a/build/rmkdepend/ifparser.h b/build/rmkdepend/ifparser.h deleted file mode 100644 index 3dec15b7ac7b9..0000000000000 --- a/build/rmkdepend/ifparser.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * $XConsortium: ifparser.h /main/4 1996/09/28 16:15:24 rws $ - * - * Copyright 1992 Network Computing Devices, Inc. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Network Computing Devices may not be - * used in advertising or publicity pertaining to distribution of the software - * without specific, written prior permission. Network Computing Devices makes - * no representations about the suitability of this software for any purpose. - * It is provided ``as is'' without express or implied warranty. - * - * NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS - * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, - * IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE - * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * Author: Jim Fulton - * Network Computing Devices, Inc. - * - * Simple if statement processor - * - * This module can be used to evaluate string representations of C language - * if constructs. It accepts the following grammar: - * - * EXPRESSION := VALUE - * | VALUE BINOP EXPRESSION - * | VALUE '?' EXPRESSION ':' EXPRESSION - * - * VALUE := '(' EXPRESSION ')' - * | '!' VALUE - * | '-' VALUE - * | '~' VALUE - * | 'defined' '(' variable ')' - * | variable - * | number - * - * BINOP := '*' | '/' | '%' - * | '+' | '-' - * | '<<' | '>>' - * | '<' | '>' | '<=' | '>=' - * | '==' | '!=' - * | '&' | '^' | '|' - * | '&&' | '||' - * - * The normal C order of precedence is supported. - * - * - * External Entry Points: - * - * ParseIfExpression parse a string for #if - */ - -/* $XFree86: xc/config/makedepend/ifparser.h,v 3.2 1996/12/30 13:57:56 dawes Exp $ */ - -#include - -#ifdef const -#undef const -#endif -#define const /**/ -typedef int Bool; -#define False 0 -#define True 1 - -typedef struct _if_parser { - struct { /* functions */ - char *(*handle_error)(/* struct _if_parser *, const char *, - const char * */); - long(*eval_variable)(/* struct _if_parser *, const char *, int */); - int (*eval_defined)(/* struct _if_parser *, const char *, int */); - } funcs; - char *data; -} IfParser; - -char *ParseIfExpression( -#ifdef __STDC__ - IfParser *, - const char *, - long * -#endif -); diff --git a/build/rmkdepend/imakemdep.h b/build/rmkdepend/imakemdep.h deleted file mode 100644 index 4ed23d56d7f9b..0000000000000 --- a/build/rmkdepend/imakemdep.h +++ /dev/null @@ -1,930 +0,0 @@ -/* $TOG: imakemdep.h /main/101 1997/06/06 09:13:20 bill $ */ -/* - -Copyright (c) 1993, 1994 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the X Consortium. - -*/ -/* $XFree86: xc/config/imake/imakemdep.h,v 3.24.2.3 1997/07/27 02:41:05 dawes Exp $ */ - - -/* - * This file contains machine-dependent constants for the imake utility. - * When porting imake, read each of the steps below and add in any necessary - * definitions. In general you should *not* edit ccimake.c or imake.c! - */ - -#ifdef CCIMAKE -/* - * Step 1: imake_ccflags - * Define any special flags that will be needed to get imake.c to compile. - * These will be passed to the compile along with the contents of the - * make variable BOOTSTRAPCFLAGS. - */ -#if defined(clipper) || defined(__clipper__) -#define imake_ccflags "-O -DSYSV -DBOOTSTRAPCFLAGS=-DSYSV" -#endif - -#ifdef hpux -#ifdef hp9000s800 -#define imake_ccflags "-DSYSV" -#else -#define imake_ccflags "-Wc,-Nd4000,-Ns3000 -DSYSV" -#endif -#endif - -#if defined(macII) || defined(_AUX_SOURCE) -#define imake_ccflags "-DmacII -DSYSV" -#endif - -#ifdef stellar -#define imake_ccflags "-DSYSV" -#endif - -#if defined(USL) || defined(__USLC__) || defined(Oki) || defined(NCR) -#define imake_ccflags "-Xa -DSVR4" -#endif - -/* SCO may define __USLC__ so put this after the USL check */ -#if defined(M_UNIX) || defined(_SCO_DS) -#ifdef imake_ccflags -#undef imake_ccflags -#endif -#define imake_ccflags "-Dsco -DSYSV" -#endif - -#ifdef sony -#if defined(SYSTYPE_SYSV) || defined(_SYSTYPE_SYSV) -#define imake_ccflags "-DSVR4" -#else -#include -#if NEWSOS < 41 -#define imake_ccflags "-Dbsd43 -DNOSTDHDRS" -#else -#if NEWSOS < 42 -#define imake_ccflags "-Dbsd43" -#endif -#endif -#endif -#endif - -#ifdef _CRAY -#define imake_ccflags "-DSYSV -DUSG" -#endif - -#if defined(_IBMR2) || defined(aix) -#define imake_ccflags "-Daix -DSYSV" -#endif - -#ifdef Mips -# if defined(SYSTYPE_BSD) || defined(BSD) || defined(BSD43) -# define imake_ccflags "-DBSD43" -# else -# define imake_ccflags "-DSYSV" -# endif -#endif - -#ifdef is68k -#define imake_ccflags "-Dluna -Duniosb" -#endif - -#ifdef SYSV386 -# ifdef SVR4 -# define imake_ccflags "-Xa -DSVR4" -# else -# define imake_ccflags "-DSYSV" -# endif -#endif - -#ifdef SVR4 -# ifdef i386 -# define imake_ccflags "-Xa -DSVR4" -# endif -#endif - -#ifdef SYSV -# ifdef i386 -# define imake_ccflags "-DSYSV" -# endif -#endif - -#ifdef __convex__ -#define imake_ccflags "-fn -tm c1" -#endif - -#ifdef apollo -#define imake_ccflags "-DX_NOT_POSIX" -#endif - -#ifdef WIN32 -#if _MSC_VER < 1000 -#define imake_ccflags "-nologo -batch -D__STDC__" -#else -#define imake_ccflags "-nologo -D__STDC__" -#endif -#endif - -#ifdef __uxp__ -#define imake_ccflags "-DSVR4 -DANSICPP" -#endif - -#ifdef __sxg__ -#define imake_ccflags "-DSYSV -DUSG -DNOSTDHDRS" -#endif - -#ifdef sequent -#define imake_ccflags "-DX_NOT_STDC_ENV -DX_NOT_POSIX" -#endif - -#ifdef _SEQUENT_ -#define imake_ccflags "-DSYSV -DUSG" -#endif - -#if defined(SX) || defined(PC_UX) -#define imake_ccflags "-DSYSV" -#endif - -#ifdef nec_ews_svr2 -#define imake_ccflags "-DUSG" -#endif - -#if defined(nec_ews_svr4) || defined(_nec_ews_svr4) || defined(_nec_up) || defined(_nec_ft) -#define imake_ccflags "-DSVR4" -#endif - -#ifdef MACH -#define imake_ccflags "-DNOSTDHDRS" -#endif - -/* this is for OS/2 under EMX. This won't work with DOS */ -#if defined(__EMX__) -#define imake_ccflags "-DBSD43" -#endif - -#else /* not CCIMAKE */ -#ifndef MAKEDEPEND -/* - * Step 2: dup2 - * If your OS doesn't have a dup2() system call to duplicate one file - * descriptor onto another, define such a mechanism here (if you don't - * already fall under the existing category(ies). - */ -#if defined(SYSV) && !defined(_CRAY) && !defined(Mips) && !defined(_SEQUENT_) && !defined(sco) -#define dup2(fd1,fd2) ((fd1 == fd2) ? fd1 : (close(fd2), \ - fcntl(fd1, F_DUPFD, fd2))) -#endif - - -/* - * Step 3: FIXUP_CPP_WHITESPACE - * If your cpp collapses tabs macro expansions into a single space and - * replaces escaped newlines with a space, define this symbol. This will - * cause imake to attempt to patch up the generated Makefile by looking - * for lines that have colons in them (this is why the rules file escapes - * all colons). One way to tell if you need this is to see whether or not - * your Makefiles have no tabs in them and lots of @@ strings. - */ -#if defined(sun) || defined(SYSV) || defined(SVR4) || defined(hcx) || defined(WIN32) || defined(sco) || (defined(AMOEBA) && defined(CROSS_COMPILE)) -#define FIXUP_CPP_WHITESPACE -#endif -#ifdef WIN32 -#define REMOVE_CPP_LEADSPACE -#define INLINE_SYNTAX -#define MAGIC_MAKE_VARS -#endif -#ifdef __minix_vmd -#define FIXUP_CPP_WHITESPACE -#endif - -/* - * Step 4: USE_CC_E, DEFAULT_CC, DEFAULT_CPP - * If you want to use cc -E instead of cpp, define USE_CC_E. - * If use cc -E but want a different compiler, define DEFAULT_CC. - * If the cpp you need is not in /lib/cpp, define DEFAULT_CPP. - */ -#ifdef hpux -#define USE_CC_E -#endif -#ifdef WIN32 -#define USE_CC_E -#define DEFAULT_CC "cl" -#endif -#ifdef apollo -#define DEFAULT_CPP "/usr/lib/cpp" -#endif -#if defined(clipper) || defined(__clipper__) -#define DEFAULT_CPP "/usr/lib/cpp" -#endif -#if defined(_IBMR2) && !defined(DEFAULT_CPP) -#define DEFAULT_CPP "/usr/ccs/lib/cpp" -#endif -#if defined(sun) && (defined(SVR4) || defined(__svr4__) || defined(__SVR4) || defined(__sol__)) -#define DEFAULT_CPP "/usr/ccs/lib/cpp" -#endif -#ifdef __bsdi__ -#define DEFAULT_CPP "/usr/bin/cpp" -#endif -#ifdef __uxp__ -#define DEFAULT_CPP "/usr/ccs/lib/cpp" -#endif -#ifdef __sxg__ -#define DEFAULT_CPP "/usr/lib/cpp" -#endif -#ifdef _CRAY -#define DEFAULT_CPP "/lib/pcpp" -#endif -#if defined(__386BSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) -#define DEFAULT_CPP "/usr/libexec/cpp" -#endif -#if defined(__sgi) && defined(__ANSI_CPP__) -#define USE_CC_E -#endif -#ifdef MACH -#define USE_CC_E -#endif -#ifdef __minix_vmd -#define DEFAULT_CPP "/usr/lib/cpp" -#endif -#if defined(__EMX__) -/* expects cpp in PATH */ -#define DEFAULT_CPP "cpp" -#endif - -/* - * Step 5: cpp_argv - * The following table contains the flags that should be passed - * whenever a Makefile is being generated. If your preprocessor - * doesn't predefine any unique symbols, choose one and add it to the - * end of this table. Then, do the following: - * - * a. Use this symbol in Imake.tmpl when setting MacroFile. - * b. Put this symbol in the definition of BootstrapCFlags in your - * .cf file. - * c. When doing a make World, always add "BOOTSTRAPCFLAGS=-Dsymbol" - * to the end of the command line. - * - * Note that you may define more than one symbol (useful for platforms - * that support multiple operating systems). - */ - -#define ARGUMENTS 50 /* number of arguments in various arrays */ -char *cpp_argv[ARGUMENTS] = { - "cc", /* replaced by the actual program to exec */ - "-I.", /* add current directory to include path */ -#ifdef unix - "-Uunix", /* remove unix symbol so that filename unix.c okay */ -#endif -#if defined(__386BSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(MACH) -# ifdef __i386__ - "-D__i386__", -# endif -# ifdef __GNUC__ - "-traditional", -# endif -#endif -#ifdef M4330 - "-DM4330", /* Tektronix */ -#endif -#ifdef M4310 - "-DM4310", /* Tektronix */ -#endif -#if defined(macII) || defined(_AUX_SOURCE) - "-DmacII", /* Apple A/UX */ -#endif -#if defined(USL) || defined(__USLC__) - "-DUSL", /* USL */ -#endif -#ifdef sony - "-Dsony", /* Sony */ -#if !defined(SYSTYPE_SYSV) && !defined(_SYSTYPE_SYSV) && NEWSOS < 42 - "-Dbsd43", -#endif -#endif -#ifdef _IBMR2 - "-D_IBMR2", /* IBM RS-6000 (we ensured that aix is defined above */ -#ifndef aix -#define aix /* allow BOOTSTRAPCFLAGS="-D_IBMR2" */ -#endif -#endif /* _IBMR2 */ -#ifdef aix - "-Daix", /* AIX instead of AOS */ -#ifndef ibm -#define ibm /* allow BOOTSTRAPCFLAGS="-Daix" */ -#endif -#endif /* aix */ -#ifdef ibm - "-Dibm", /* IBM PS/2 and RT under both AOS and AIX */ -#endif -#ifdef luna - "-Dluna", /* OMRON luna 68K and 88K */ -#ifdef luna1 - "-Dluna1", -#endif -#ifdef luna88k /* need not on UniOS-Mach Vers. 1.13 */ - "-traditional", /* for some older version */ -#endif /* instead of "-DXCOMM=\\#" */ -#ifdef uniosb - "-Duniosb", -#endif -#ifdef uniosu - "-Duniosu", -#endif -#endif /* luna */ -#ifdef _CRAY /* Cray */ - "-Ucray", -#endif -#ifdef Mips - "-DMips", /* Define and use Mips for Mips Co. OS/mach. */ -# if defined(SYSTYPE_BSD) || defined(BSD) || defined(BSD43) - "-DBSD43", /* Mips RISCOS supports two environments */ -# else - "-DSYSV", /* System V environment is the default */ -# endif -#endif /* Mips */ -#ifdef MOTOROLA - "-DMOTOROLA", /* Motorola Delta Systems */ -# ifdef SYSV - "-DSYSV", -# endif -# ifdef SVR4 - "-DSVR4", -# endif -#endif /* MOTOROLA */ -#if defined(M_UNIX) || defined(sco) - "-Dsco", - "-DSYSV", -#endif -#ifdef i386 - "-Di386", -# ifdef SVR4 - "-DSVR4", -# endif -# ifdef SYSV - "-DSYSV", -# ifdef ISC - "-DISC", -# ifdef ISC40 - "-DISC40", /* ISC 4.0 */ -# else -# ifdef ISC202 - "-DISC202", /* ISC 2.0.2 */ -# else -# ifdef ISC30 - "-DISC30", /* ISC 3.0 */ -# else - "-DISC22", /* ISC 2.2.1 */ -# endif -# endif -# endif -# endif -# ifdef SCO - "-DSCO", -# ifdef _SCO_DS - "-DSCO325 -DSVR4", -# endif -# endif -# endif -# ifdef ESIX - "-DESIX", -# endif -# ifdef ATT - "-DATT", -# endif -# ifdef DELL - "-DDELL", -# endif -#endif -#ifdef SYSV386 /* System V/386 folks, obsolete */ - "-Di386", -# ifdef SVR4 - "-DSVR4", -# endif -# ifdef ISC - "-DISC", -# ifdef ISC40 - "-DISC40", /* ISC 4.0 */ -# else -# ifdef ISC202 - "-DISC202", /* ISC 2.0.2 */ -# else -# ifdef ISC30 - "-DISC30", /* ISC 3.0 */ -# else - "-DISC22", /* ISC 2.2.1 */ -# endif -# endif -# endif -# endif -# ifdef SCO - "-DSCO", -# ifdef _SCO_DS - "-DSCO325 -DSVR4", -# endif -# endif -# ifdef ESIX - "-DESIX", -# endif -# ifdef ATT - "-DATT", -# endif -# ifdef DELL - "-DDELL", -# endif -#endif -#ifdef __osf__ - "-D__osf__", -# ifdef __mips__ - "-D__mips__", -# endif -# ifdef __alpha - "-D__alpha", -# endif -# ifdef __alpha__ - "-D__alpha__", -# endif -# ifdef __i386__ - "-D__i386__", -# endif -# ifdef __GNUC__ - "-traditional", -# endif -#endif -#ifdef Oki - "-DOki", -#endif -#ifdef sun -#if defined(SVR4) || defined(__svr4__) || defined(__SVR4) || defined(__sol__) - "-DSVR4", -#endif -#endif -#ifdef WIN32 - "-DWIN32", - "-nologo", -#if _MSC_VER < 1000 - "-batch", -#endif - "-D__STDC__", -#endif -#ifdef NCR - "-DNCR", /* NCR */ -#endif -#ifdef linux - "-traditional", - "-Dlinux", -#endif -#ifdef __uxp__ - "-D__uxp__", -#endif -#ifdef __sxg__ - "-D__sxg__", -#endif -#ifdef nec_ews_svr2 - "-Dnec_ews_svr2", -#endif -#ifdef AMOEBA - "-DAMOEBA", -# ifdef CROSS_COMPILE - "-DCROSS_COMPILE", -# ifdef CROSS_i80386 - "-Di80386", -# endif -# ifdef CROSS_sparc - "-Dsparc", -# endif -# ifdef CROSS_mc68000 - "-Dmc68000", -# endif -# else -# ifdef i80386 - "-Di80386", -# endif -# ifdef sparc - "-Dsparc", -# endif -# ifdef mc68000 - "-Dmc68000", -# endif -# endif -#endif -#if defined(__sgi) && defined(__ANSI_CPP__) - "-cckr", -#endif -#ifdef __minix_vmd - "-Dminix", -#endif - -#if defined(__EMX__) - "-traditional", - "-Demxos2", -#endif - -}; - - -/* - * Step 6: DEFAULT_OS_MAJOR_REV, DEFAULT_OS_MINOR_REV, DEFAULT_OS_TEENY_REV, - * and DEFAULT_OS_NAME. - * If your systems provides a way to generate the default major, - * minor, teeny, or system names at runtime add commands below. - * The syntax of the _REV strings is 'f fmt' where 'f' is an argument - * you would give to uname, and "fmt" is a scanf() format string. - * Supported uname arguments are "snrvm", and if you specify multiple - * arguments they will be separated by spaces. No more than 5 arguments - * may be given. Unlike uname() order of arguments matters. - * - * DEFAULT_OS_MAJOR_REV_FROB, DEFAULT_OS_MINOR_REV_FROB, - * DEFAULT_OS_TEENY_REV_FROB, and DEFAULT_OS_NAME_FROB can be used to - * modify the results of the use of the various strings. - */ -#if defined(aix) -/* uname -v returns "x" (e.g. "4"), and uname -r returns "y" (e.g. "1") */ -# define DEFAULT_OS_MAJOR_REV "v %[0-9]" -# define DEFAULT_OS_MINOR_REV "r %[0-9]" -/* No information available to generate default OSTeenyVersion value. */ -# define DEFAULT_OS_NAME "srvm %[^\n]" -#elif defined(sun) || defined(sgi) || defined(ultrix) || defined(__uxp__) || defined(sony) -/* uname -r returns "x.y[.z]", e.g. "5.4" or "4.1.3" */ -# define DEFAULT_OS_MAJOR_REV "r %[0-9]" -# define DEFAULT_OS_MINOR_REV "r %*d.%[0-9]" -# define DEFAULT_OS_TEENY_REV "r %*d.%*d.%[0-9]" -# define DEFAULT_OS_NAME "srvm %[^\n]" -#elif defined(hpux) -/* uname -r returns "W.x.yz", e.g. "B.10.01" */ -# define DEFAULT_OS_MAJOR_REV "r %*[^.].%[0-9]" -# define DEFAULT_OS_MINOR_REV "r %*[^.].%*d.%1s" -# define DEFAULT_OS_TEENY_REV "r %*[^.].%*d.%*c%[0-9]" -# define DEFAULT_OS_NAME "srvm %[^\n]" -#elif defined(USL) || defined(__USLC__) -/* uname -v returns "x.yz" or "x.y.z", e.g. "2.02" or "2.1.2". */ -# define DEFAULT_OS_MAJOR_REV "v %[0-9]" -# define DEFAULT_OS_MINOR_REV "v %*d.%1s" -# define DEFAULT_OS_TEENY_REV "v %*d.%*c%[.0-9]" -# define DEFAULT_OS_NAME "srvm %[^\n]" -#elif defined(__osf__) -/* uname -r returns "Wx.y", e.g. "V3.2" or "T4.0" */ -# define DEFAULT_OS_MAJOR_REV "r %*[^0-9]%[0-9]" -# define DEFAULT_OS_MINOR_REV "r %*[^.].%[0-9]" -# define DEFAULT_OS_NAME "srvm %[^\n]" -#elif defined(__uxp__) -/* NOTE: "x.y[.z]" above handles UXP/DF. This is a sample alternative. */ -/* uname -v returns "VxLy Yzzzzz ....", e.g. "V20L10 Y95021 Increment 5 ..." */ -# define DEFAULT_OS_MAJOR_REV "v V%[0-9]" -# define DEFAULT_OS_MINOR_REV "v V%*dL%[0-9]" -# define DEFAULT_OS_NAME "srvm %[^\n]" -#elif defined(linux) -# define DEFAULT_OS_MAJOR_REV "r %[0-9]" -# define DEFAULT_OS_MINOR_REV "r %*d.%[0-9]" -# define DEFAULT_OS_TEENY_REV "r %*d.%*d.%[0-9]" -# define DEFAULT_OS_NAME "srm %[^\n]" -#elif defined(ISC) -/* ISC all Versions ? */ -/* uname -r returns "x.y", e.g. "3.2" ,uname -v returns "x" e.g. "2" */ -# define DEFAULT_OS_MAJOR_REV "r %[0-9]" -# define DEFAULT_OS_MINOR_REV "r %*d.%[0-9]" -# define DEFAULT_OS_TEENY_REV "v %[0-9]" -/* # define DEFAULT_OS_NAME "srm %[^\n]" */ /* Not useful on ISC */ -#elif defined(__FreeBSD__) -/* BSD/OS too? */ -/* uname -r returns "x.y[.z]-mumble", e.g. "2.1.5-RELEASE" or "2.2-0801SNAP" */ -# define DEFAULT_OS_MAJOR_REV "r %[0-9]" -# define DEFAULT_OS_MINOR_REV "r %*d.%[0-9]" -# define DEFAULT_OS_TEENY_REV "r %*d.%*d.%[0-9]" -# define DEFAULT_OS_NAME "srm %[^\n]" -/* Use an alternate way to find the teeny version for -STABLE, -SNAP versions */ -# define DEFAULT_OS_TEENY_REV_FROB(buf, size) \ - do { \ - if (*buf == 0) { \ - int __mib[2]; \ - size_t __len; \ - int __osrel; \ - \ - __mib[0] = CTL_KERN; \ - __mib[1] = KERN_OSRELDATE; \ - __len = sizeof(__osrel); \ - sysctl(__mib, 2, &__osrel, &__len, NULL, 0); \ - if (__osrel < 210000) { \ - if (__osrel < 199607) \ - buf[0] = '0'; \ - else if (__osrel < 199612) \ - buf[0] = '5'; \ - else if (__osrel == 199612) \ - buf[0] = '6'; \ - else \ - buf[0] = '8'; /* guess */ \ - } else { \ - buf[0] = ((__osrel / 1000) % 10) + '0'; \ - } \ - buf[1] = 0; \ - } \ - } while (0) -#elif defined(__OpenBSD__) -/* uname -r returns "x.y", e.g. "3.7" */ -# define DEFAULT_OS_MAJOR_REV "r %[0-9]" -# define DEFAULT_OS_MINOR_REV "r %*d.%[0-9]" -# define DEFAULT_OS_NAME "srm %[^\n]" -# define DEFAULT_MACHINE_ARCHITECTURE "m %[^\n]" -#elif defined(__NetBSD__) -/* - * uname -r returns "x.y([ABCD...]|_mumble)", e.g.: - * 1.2 1.2_BETA 1.2A 1.2B - * - * That means that we have to do something special to turn the - * TEENY revision into a form that we can use (i.e., a string of - * decimal digits). - * - * We also frob the name DEFAULT_OS_NAME so that it looks like the - * 'standard' NetBSD name for the version, e.g. "NetBSD/i386 1.2B" for - * NetBSD 1.2B on an i386. - */ -# define DEFAULT_OS_MAJOR_REV "r %[0-9]" -# define DEFAULT_OS_MINOR_REV "r %*d.%[0-9]" -# define DEFAULT_OS_TEENY_REV "r %*d.%*d%[A-Z]" -# define DEFAULT_OS_TEENY_REV_FROB(buf, size) \ - do { \ - if (*(buf) >= 'A' && *(buf) <= 'Z') /* sanity check */ \ - snprintf((buf), (size), "%d", *(buf) - 'A' + 1); \ - else \ - *(buf) = '\0'; \ - } while (0) -# define DEFAULT_OS_NAME "smr %[^\n]" -# define DEFAULT_OS_NAME_FROB(buf, size) \ - do { \ - char *__sp; \ - if ((__sp = strchr((buf), ' ')) != NULL) \ - *__sp = '/'; \ - } while (0) -#endif - -#else /* else MAKEDEPEND */ -/* - * Step 7: predefs - * If your compiler and/or preprocessor define any specific symbols, add - * them to the the following table. The definition of struct symtab is - * in util/makedepend/def.h. - */ -struct symtab predefs[] = { -#ifdef apollo - {"apollo", "1"}, -#endif -#if defined(clipper) || defined(__clipper__) - {"clipper", "1"}, - {"__clipper__", "1"}, - {"clix", "1"}, - {"__clix__", "1"}, -#endif -#ifdef ibm032 - {"ibm032", "1"}, -#endif -#ifdef ibm - {"ibm", "1"}, -#endif -#ifdef aix - {"aix", "1"}, -#endif -#ifdef sun - {"sun", "1"}, -#endif -#ifdef sun2 - {"sun2", "1"}, -#endif -#ifdef sun3 - {"sun3", "1"}, -#endif -#ifdef sun4 - {"sun4", "1"}, -#endif -#ifdef sparc - {"sparc", "1"}, -#endif -#ifdef __sparc__ - {"__sparc__", "1"}, -#endif -#ifdef hpux - {"hpux", "1"}, -#endif -#ifdef __hpux - {"__hpux", "1"}, -#endif -#ifdef __hp9000s800 - {"__hp9000s800", "1"}, -#endif -#ifdef __hp9000s700 - {"__hp9000s700", "1"}, -#endif -#ifdef vax - {"vax", "1"}, -#endif -#ifdef VMS - {"VMS", "1"}, -#endif -#ifdef cray - {"cray", "1"}, -#endif -#ifdef CRAY - {"CRAY", "1"}, -#endif -#ifdef _CRAY - {"_CRAY", "1"}, -#endif -#ifdef att - {"att", "1"}, -#endif -#ifdef mips - {"mips", "1"}, -#endif -#ifdef __mips__ - {"__mips__", "1"}, -#endif -#ifdef ultrix - {"ultrix", "1"}, -#endif -#ifdef stellar - {"stellar", "1"}, -#endif -#ifdef mc68000 - {"mc68000", "1"}, -#endif -#ifdef mc68020 - {"mc68020", "1"}, -#endif -#ifdef __GNUC__ - {"__GNUC__", "1"}, -#endif -#if __STDC__ - {"__STDC__", "1"}, -#endif -#ifdef __HIGHC__ - {"__HIGHC__", "1"}, -#endif -#ifdef CMU - {"CMU", "1"}, -#endif -#ifdef linux - {"linux", "1"}, -#endif -#ifdef luna - {"luna", "1"}, -#ifdef luna1 - {"luna1", "1"}, -#endif -#ifdef luna2 - {"luna2", "1"}, -#endif -#ifdef luna88k - {"luna88k", "1"}, -#endif -#ifdef uniosb - {"uniosb", "1"}, -#endif -#ifdef uniosu - {"uniosu", "1"}, -#endif -#endif -#ifdef ieeep754 - {"ieeep754", "1"}, -#endif -#ifdef is68k - {"is68k", "1"}, -#endif -#ifdef m68k - {"m68k", "1"}, -#endif -#ifdef m88k - {"m88k", "1"}, -#endif -#ifdef __m88k__ - {"__m88k__", "1"}, -#endif -#ifdef bsd43 - {"bsd43", "1"}, -#endif -#ifdef hcx - {"hcx", "1"}, -#endif -#ifdef sony - {"sony", "1"}, -#ifdef SYSTYPE_SYSV - {"SYSTYPE_SYSV", "1"}, -#endif -#ifdef _SYSTYPE_SYSV - {"_SYSTYPE_SYSV", "1"}, -#endif -#endif -#ifdef __OSF__ - {"__OSF__", "1"}, -#endif -#ifdef __osf__ - {"__osf__", "1"}, -#endif -#ifdef __alpha - {"__alpha", "1"}, -#endif -#ifdef __alpha__ - {"__alpha__", "1"}, -#endif -#ifdef __DECC - {"__DECC", "1"}, -#endif -#ifdef __decc - {"__decc", "1"}, -#endif -#ifdef __unix__ - {"__unix__", "1"}, -#endif -#ifdef __uxp__ - {"__uxp__", "1"}, -#endif -#ifdef __sxg__ - {"__sxg__", "1"}, -#endif -#ifdef _SEQUENT_ - {"_SEQUENT_", "1"}, - {"__STDC__", "1"}, -#endif -#ifdef __bsdi__ - {"__bsdi__", "1"}, -#endif -#ifdef nec_ews_svr2 - {"nec_ews_svr2", "1"}, -#endif -#ifdef nec_ews_svr4 - {"nec_ews_svr4", "1"}, -#endif -#ifdef _nec_ews_svr4 - {"_nec_ews_svr4", "1"}, -#endif -#ifdef _nec_up - {"_nec_up", "1"}, -#endif -#ifdef SX - {"SX", "1"}, -#endif -#ifdef nec - {"nec", "1"}, -#endif -#ifdef _nec_ft - {"_nec_ft", "1"}, -#endif -#ifdef PC_UX - {"PC_UX", "1"}, -#endif -#ifdef sgi - {"sgi", "1"}, -#endif -#ifdef __sgi - {"__sgi", "1"}, -#endif -#ifdef __FreeBSD__ - {"__FreeBSD__", "1"}, -#endif -#ifdef __OpenBSD__ - {"__OpenBSD__", "1"}, -#endif -#ifdef __NetBSD__ - {"__NetBSD__", "1"}, -#endif -#ifdef __ELF__ - {"__ELF__", "1"}, -#endif -#ifdef __EMX__ - {"__EMX__", "1"}, -#endif -#ifdef __APPLE__ - {"__APPLE__", "1"}, -#endif -#ifdef __ppc__ - {"__ppc__", "1"}, -#endif -#ifdef __arm__ - {"__arm__", "1"}, -#endif -#ifdef __x86_64__ - {"__x86_64__", "1"}, -#endif - - /* add any additional symbols before this line */ - {NULL, NULL} -}; - -#endif /* MAKEDEPEND */ -#endif /* CCIMAKE */ diff --git a/build/rmkdepend/include.c b/build/rmkdepend/include.c deleted file mode 100644 index 95c5c746e5456..0000000000000 --- a/build/rmkdepend/include.c +++ /dev/null @@ -1,335 +0,0 @@ -/* $XConsortium: include.c /main/20 1996/12/04 10:11:18 swick $ */ -/* - -Copyright (c) 1993, 1994 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the X Consortium. - -*/ - - -#include "def.h" - -#ifdef __SUNPRO_C -extern int lstat(); -#endif - -extern struct inclist inclist[ MAXFILES ], - *inclistp; -extern char *includedirs[ ]; -extern char *notdotdot[ ]; -extern boolean show_where_not; -extern boolean warn_multiple; - - -boolean -isdot(p) -register char *p; -{ - if (p && *p++ == '.' && *p++ == '\0') - return(TRUE); - return(FALSE); -} - -boolean -isdotdot(p) -register char *p; -{ - if (p && *p++ == '.' && *p++ == '.' && *p++ == '\0') - return(TRUE); - return(FALSE); -} - -boolean -issymbolic(dir, component) -register char *dir, *component; -{ -#ifdef S_IFLNK - struct stat st; - char buf[ BUFSIZ ], **pp; - - sprintf(buf, "%s%s%s", dir, *dir ? "/" : "", component); - for (pp = notdotdot; *pp; pp++) - if (strcmp(*pp, buf) == 0) - return (TRUE); - if (lstat(buf, &st) == 0 - && (st.st_mode & S_IFMT) == S_IFLNK) { - *pp++ = copy(buf); - if (pp >= ¬dotdot[ MAXDIRS ]) - fatalerr("out of .. dirs, increase MAXDIRS\n"); - return(TRUE); - } -#else - if (dir && component) { } /* use arguments */ -#endif - return(FALSE); -} - -/* - * Occasionally, pathnames are created that look like .../x/../y - * Any of the 'x/..' sequences within the name can be eliminated. - * (but only if 'x' is not a symbolic link!!) - */ -void -remove_dotdot(path) -char *path; -{ - register char *end, *from, *to, **cp; - char *components[ MAXFILES ], - newpath[ BUFSIZ ]; - boolean component_copied; - - /* - * slice path up into components. - */ - to = newpath; - if (*path == '/') - *to++ = '/'; - *to = '\0'; - cp = components; - for (from = end = path; *end; end++) - if (*end == '/') { - while (*end == '/') - *end++ = '\0'; - if (*from) - *cp++ = from; - from = end; - } - *cp++ = from; - *cp = NULL; - - /* - * Recursively remove all 'x/..' component pairs. - */ - cp = components; - while (*cp) { - if (!isdot(*cp) && !isdotdot(*cp) && isdotdot(*(cp + 1)) - && !issymbolic(newpath, *cp)) { - char **fp = cp + 2; - char **tp = cp; - - do - *tp++ = *fp; /* move all the pointers down */ - while (*fp++); - if (cp != components) - cp--; /* go back and check for nested ".." */ - } else { - cp++; - } - } - /* - * Concatenate the remaining path elements. - */ - cp = components; - component_copied = FALSE; - while (*cp) { - if (component_copied) - *to++ = '/'; - component_copied = TRUE; - for (from = *cp; *from;) - *to++ = *from++; - *to = '\0'; - cp++; - } - *to++ = '\0'; - - /* - * copy the reconstituted path back to our pointer. - */ - strcpy(path, newpath); -} - -/* - * Add an include file to the list of those included by 'file'. - */ -struct inclist *newinclude(newfile, incstring) - register char *newfile, *incstring; -{ - register struct inclist *ip; - - /* - * First, put this file on the global list of include files. - */ - ip = inclistp++; - if (inclistp == inclist + MAXFILES - 1) - fatalerr("out of space: increase MAXFILES\n"); - ip->i_file = copy(newfile); - - if (incstring == NULL) - ip->i_incstring = ip->i_file; - else - ip->i_incstring = copy(incstring); - - return(ip); -} - -void -included_by(ip, newfile) -register struct inclist *ip, *newfile; -{ - register int i; - - if (ip == NULL) - return; - /* - * Put this include file (newfile) on the list of files included - * by 'file'. If 'file' is NULL, then it is not an include - * file itself (i.e. was probably mentioned on the command line). - * If it is already on the list, don't stick it on again. - */ - if (ip->i_list == NULL) { - ip->i_list = (struct inclist **) - malloc(sizeof(struct inclist *) * ++ip->i_listlen); - ip->i_merged = (boolean *) - malloc(sizeof(boolean) * ip->i_listlen); - } else { - for (i = 0; i < ip->i_listlen; i++) - if (ip->i_list[ i ] == newfile) { - i = strlen(newfile->i_file); - if (!(ip->i_flags & INCLUDED_SYM) && - !(i > 2 && - newfile->i_file[i-1] == 'c' && - newfile->i_file[i-2] == '.')) { - /* only bitch if ip has */ - /* no #include SYMBOL lines */ - /* and is not a .c file */ - if (warn_multiple) { - warning("%s includes %s more than once!\n", - ip->i_file, newfile->i_file); - warning1("Already have\n"); - for (i = 0; i < ip->i_listlen; i++) - warning1("\t%s\n", ip->i_list[i]->i_file); - } - } - return; - } - ip->i_list = (struct inclist **) realloc(ip->i_list, - sizeof(struct inclist *) * ++ip->i_listlen); - ip->i_merged = (boolean *) - realloc(ip->i_merged, sizeof(boolean) * ip->i_listlen); - } - ip->i_list[ ip->i_listlen-1 ] = newfile; - ip->i_merged[ ip->i_listlen-1 ] = FALSE; -} - -void -inc_clean() -{ - register struct inclist *ip; - - for (ip = inclist; ip < inclistp; ip++) { - ip->i_flags &= ~MARKED; - ip->i_flags &= ~SEARCHED; - undefine_all(ip); - } -} - -struct inclist *inc_path(char *file, char *include, boolean dot) { - static char path[ BUFSIZ ]; - register char **pp, *p; - register struct inclist *ip; - struct stat st; - boolean found = FALSE; - - /* - * Check all previously found include files for a path that - * has already been expanded. - */ - for (ip = inclist; ip->i_file; ip++) - if ((strcmp(ip->i_incstring, include) == 0) && - !(ip->i_flags & INCLUDED_SYM)) { - found = TRUE; - break; - } - - /* - * If the path was surrounded by "" or is an absolute path, - * then check the exact path provided. - */ - if (!found && (dot || *include == '/')) { -#ifdef _WIN32 - if (stat(include, &st) == 0 && (st.st_mode & S_IFREG)) { -#else - if (stat(include, &st) == 0 && S_ISREG(st.st_mode)) { -#endif - ip = newinclude(include, include); - found = TRUE; - } else if (show_where_not) - warning1("\tnot in %s\n", include); - } - - /* - * If the path was surrounded by "" see if this include file is in the - * directory of the file being parsed. - */ - if (!found && dot) { - for (p = file + strlen(file); p > file; p--) - if (*p == '/') - break; - if (p == file) { - strncpy(path, include, sizeof(path) - 1); - path[sizeof(path)-1] = '\0'; - } else { - strncpy(path, file, (p - file) + 1); - path[(p-file) + 1] = '\0'; - strncpy(path + (p - file) + 1, include, sizeof(path) - (p - file + 1)); - } - remove_dotdot(path); -#ifdef _WIN32 - if (stat(path, &st) == 0 && (st.st_mode & S_IFREG)) { -#else - if (stat(path, &st) == 0 && S_ISREG(st.st_mode)) { -#endif - ip = newinclude(path, include); - found = TRUE; - } else if (show_where_not) - warning1("\tnot in %s\n", path); - } - - /* - * Check the include directories specified. (standard include dir - * should be at the end.) - */ - if (!found) - for (pp = includedirs; *pp; pp++) { - if (strlen(*pp) + strlen(include) + 2 > sizeof(path)) { - warning1("\t%s/%s too long\n", *pp, include); - continue; - } - sprintf(path, "%s/%s", *pp, include); - remove_dotdot(path); -#ifdef _WIN32 - if (stat(path, &st) == 0 && (st.st_mode & S_IFREG)) { -#else - if (stat(path, &st) == 0 && S_ISREG(st.st_mode)) { -#endif - ip = newinclude(path, include); - found = TRUE; - break; - } else if (show_where_not) - warning1("\tnot in %s\n", path); - } - - if (!found) - ip = NULL; - return(ip); -} diff --git a/build/rmkdepend/main.c b/build/rmkdepend/main.c deleted file mode 100644 index a4e9dd37f4c9f..0000000000000 --- a/build/rmkdepend/main.c +++ /dev/null @@ -1,787 +0,0 @@ -/* $XConsortium: main.c /main/84 1996/12/04 10:11:23 swick $ */ -/* $XFree86: xc/config/makedepend/main.c,v 3.11.2.1 1997/05/11 05:04:07 dawes Exp $ */ -/* - -Copyright (c) 1993, 1994 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the X Consortium. - -*/ - -#if !defined(USGISH) || !defined(_SEQUENT_) || !defined(USE_CHMOD) -#define _DEFAULT_SOURCE /* def.h includes sys/stat and we need _BSD_SOURCE for fchmod see man fchmod */ -#endif - -#include "def.h" -#ifdef __hpux -#define sigvec sigvector -#endif /* hpux */ - -#ifdef X_POSIX_C_SOURCE -#define _POSIX_C_SOURCE X_POSIX_C_SOURCE -#include -#undef _POSIX_C_SOURCE -#else -#if defined(X_NOT_POSIX) || defined(_POSIX_SOURCE) -#include -#else -#define _POSIX_SOURCE -#include -#undef _POSIX_SOURCE -#endif -#endif - -#include -#ifndef WIN32 -#include -#else -#include -#endif -#ifdef MINIX -#define USE_CHMOD 1 -#endif - -#ifdef DEBUG -int _debugmask; -#endif - -char *ProgramName; - -char *directives[] = { - "if", - "ifdef", - "ifndef", - "else", - "endif", - "define", - "undef", - "include", - "line", - "pragma", - "error", - "ident", - "sccs", - "elif", - "eject", - "warning", - NULL -}; - -#define MAKEDEPEND -#include "imakemdep.h" /* from config sources */ -#undef MAKEDEPEND - -struct inclist inclist[ MAXFILES ], - *inclistp = inclist, - maininclist; - -char *filelist[ MAXFILES ]; -char *targetlist[ MAXFILES ]; -char *includedirs[ MAXDIRS + 1 ]; -char *notdotdot[ MAXDIRS ]; -char *objprefix = ""; -char *objsuffix = OBJSUFFIX; -char *startat = "# DO NOT DELETE"; -char *isysroot = ""; -int width = 78; -boolean append = FALSE; -boolean printed = FALSE; -boolean verbose = FALSE; -boolean show_where_not = FALSE; -boolean warn_multiple = FALSE; /* Warn on multiple includes of same file */ - -void freefile(struct filepointer*); -void redirect(char*, char*); - -static -#ifdef SIGNALRETURNSINT -int -#else -void -#endif -catch (int sig) -{ - fflush(stdout); - fatalerr("got signal %d\n", sig); -} - -#if defined(USG) || (defined(i386) && defined(SYSV)) || defined(WIN32) || defined(__EMX__) || defined(Lynx_22) -#define USGISH -#endif - -#ifndef USGISH -#ifndef _POSIX_SOURCE -#define sigaction sigvec -#define sa_handler sv_handler -#define sa_mask sv_mask -#define sa_flags sv_flags -#endif -struct sigaction sig_act; -#endif /* USGISH */ - -extern void define2(char *name, char *val, struct inclist *file); -extern void define(char *def, struct inclist *file); -extern void undefine(char *symbol, struct inclist *file); -extern int find_includes(struct filepointer *filep, struct inclist *file, - struct inclist *file_red, int recursion, - boolean failOK); -extern void recursive_pr_include(struct inclist *head, char *file, char *base, char *dep); -extern void inc_clean(); - -int main_orig(argc, argv) -int argc; -char **argv; -{ - register char **fp = filelist; - register char **tp = targetlist; - register char **incp = includedirs; - register char *p; - register struct inclist *ip; - char *makefile = NULL; - struct filepointer *filecontent; - struct symtab *psymp = predefs; - char *endmarker = NULL; - char *defincdir = NULL; - char **undeflist = NULL; - int numundefs = 0, i; - int numfiles = 0; - - ProgramName = argv[0]; - - while (psymp->s_name) { - define2(psymp->s_name, psymp->s_value, &maininclist); - psymp++; - } - if (argc == 2 && argv[1][0] == '@') { - struct stat ast; - int afd; - char *args; - char **nargv; - int nargc; - char quotechar = '\0'; - - nargc = 1; - if ((afd = open(argv[1] + 1, O_RDONLY)) < 0) - fatalerr("cannot open \"%s\"\n", argv[1] + 1); - fstat(afd, &ast); - args = (char *)malloc(ast.st_size + 1); - if ((ast.st_size = read(afd, args, ast.st_size)) < 0) - fatalerr("failed to read %s\n", argv[1] + 1); - args[ast.st_size] = '\0'; - close(afd); - for (p = args; *p; p++) { - if (quotechar) { - if (quotechar == '\\' || - (*p == quotechar && p[-1] != '\\')) - quotechar = '\0'; - continue; - } - switch (*p) { - case '\\': - case '"': - case '\'': - quotechar = *p; - break; - case ' ': - case '\n': - *p = '\0'; - if (p > args && p[-1]) - nargc++; - break; - } - } - if (p[-1]) - nargc++; - nargv = (char **)malloc(nargc * sizeof(char *)); - nargv[0] = argv[0]; - argc = 1; - for (p = args; argc < nargc; p += strlen(p) + 1) - if (*p) nargv[argc++] = p; - argv = nargv; - } - for (argc--, argv++; argc; argc--, argv++) { - /* if looking for endmarker then check before parsing */ - if (endmarker && strcmp(endmarker, *argv) == 0) { - endmarker = NULL; - continue; - } - if (**argv != '-') { - /* treat +thing as an option for C++ */ - if (endmarker && **argv == '+') - continue; - *fp++ = argv[0]; - *tp++ = 0; - ++numfiles; - continue; - } - switch (argv[0][1]) { - case '-': - endmarker = &argv[0][2]; - if (endmarker[0] == '\0') endmarker = "--"; - break; - case 't': - if (endmarker) break; - if (numfiles == 0) { - fatalerr("-t should follow a file name\n"); - } else { - *(tp - 1) = argv[0] + 2; - } - break; - case 'D': - if (argv[0][2] == '\0') { - argv++; - argc--; - } - for (p = argv[0] + 2; *p ; p++) - if (*p == '=') { - *p = ' '; - break; - } - define(argv[0] + 2, &maininclist); - break; - case 'I': - if (incp >= includedirs + MAXDIRS) - fatalerr("Too many -I flags.\n"); - *incp++ = argv[0] + 2; - if (**(incp - 1) == '\0') { - *(incp - 1) = *(++argv); - argc--; - } - break; - case 'U': - /* Undef's override all -D's so save them up */ - numundefs++; - if (numundefs == 1) - undeflist = malloc(sizeof(char *)); - else - undeflist = realloc(undeflist, - numundefs * sizeof(char *)); - if (argv[0][2] == '\0') { - argv++; - argc--; - } - undeflist[numundefs - 1] = argv[0] + 2; - break; - case 'Y': - defincdir = argv[0] + 2; - break; - case 'i': - if (!strcmp(argv[0] + 2, "sysroot")) { - argv++; - argc--; - isysroot = argv[0]; - } - break; - /* do not use if endmarker processing */ - case 'a': - if (endmarker) break; - append = TRUE; - break; - case 'w': - if (endmarker) break; - if (argv[0][2] == '\0') { - argv++; - argc--; - width = atoi(argv[0]); - } else - width = atoi(argv[0] + 2); - break; - case 'o': - if (endmarker) break; - if (argv[0][2] == '\0') { - argv++; - argc--; - objsuffix = argv[0]; - } else - objsuffix = argv[0] + 2; - break; - case 'p': - if (endmarker) break; - if (argv[0][2] == '\0') { - argv++; - argc--; - objprefix = argv[0]; - } else - objprefix = argv[0] + 2; - break; - case 'v': - if (endmarker) break; - verbose = TRUE; -#ifdef DEBUG - if (argv[0][2]) - _debugmask = atoi(argv[0] + 2); -#endif - break; - case 's': - if (endmarker) break; - startat = argv[0] + 2; - if (*startat == '\0') { - startat = *(++argv); - argc--; - } - if (*startat != '#') - fatalerr("-s flag's value should start %s\n", - "with '#'."); - break; - case 'f': - if (endmarker) break; - makefile = argv[0] + 2; - if (*makefile == '\0') { - makefile = *(++argv); - argc--; - } - break; - - case 'm': - warn_multiple = TRUE; - break; - - /* Ignore -O, -g so we can just pass ${CFLAGS} to - makedepend - */ - case 'O': - case 'g': - break; - default: - if (endmarker) break; - /* fatalerr("unknown opt = %s\n", argv[0]); */ - warning("ignoring option %s\n", argv[0]); - } - } - /* Now do the undefs from the command line */ - for (i = 0; i < numundefs; i++) - undefine(undeflist[i], &maininclist); - if (numundefs > 0) - free(undeflist); - - if (!defincdir) { -#ifdef PREINCDIR - if (incp >= includedirs + MAXDIRS) - fatalerr("Too many -I flags.\n"); - *incp++ = PREINCDIR; -#endif -#ifdef __EMX__ - { - char *emxinc = getenv("C_INCLUDE_PATH"); - /* can have more than one component */ - if (emxinc) { - char *beg, *end; - beg = (char*)strdup(emxinc); - for (;;) { - end = (char*)strchr(beg, ';'); - if (end) *end = 0; - if (incp >= includedirs + MAXDIRS) - fatalerr("Too many include dirs\n"); - *incp++ = beg; - if (!end) break; - beg = end + 1; - } - } - } -#else /* !__EMX__, does not use INCLUDEDIR at all */ - if (incp >= includedirs + MAXDIRS) - fatalerr("Too many -I flags.\n"); - *incp++ = INCLUDEDIR; -#endif - -#ifdef POSTINCDIR - if (incp >= includedirs + MAXDIRS) - fatalerr("Too many -I flags.\n"); - *incp++ = POSTINCDIR; -#endif - } else if (*defincdir) { - if (incp >= includedirs + MAXDIRS) - fatalerr("Too many -I flags.\n"); - *incp++ = defincdir; - } - - redirect(startat, makefile); - - /* - * catch signals. - */ -#ifdef USGISH - /* should really reset SIGINT to SIG_IGN if it was. */ -#ifdef SIGHUP - signal(SIGHUP, catch); -#endif - signal(SIGINT, catch); -#ifdef SIGQUIT - signal(SIGQUIT, catch); -#endif - signal(SIGILL, catch); -#ifdef SIGBUS - signal(SIGBUS, catch); -#endif - signal(SIGSEGV, catch); -#ifdef SIGSYS - signal(SIGSYS, catch); -#endif -#else - sig_act.sa_handler = catch ; -#ifdef _POSIX_SOURCE -sigemptyset(&sig_act.sa_mask); - sigaddset(&sig_act.sa_mask, SIGINT); - sigaddset(&sig_act.sa_mask, SIGQUIT); -#ifdef SIGBUS - sigaddset(&sig_act.sa_mask, SIGBUS); -#endif - sigaddset(&sig_act.sa_mask, SIGILL); - sigaddset(&sig_act.sa_mask, SIGSEGV); - sigaddset(&sig_act.sa_mask, SIGHUP); - sigaddset(&sig_act.sa_mask, SIGPIPE); -#ifdef SIGSYS - sigaddset(&sig_act.sa_mask, SIGSYS); -#endif -#else - sig_act.sa_mask = ((1 << (SIGINT - 1)) - | (1 << (SIGQUIT - 1)) -#ifdef SIGBUS - | (1 << (SIGBUS - 1)) -#endif - | (1 << (SIGILL - 1)) - | (1 << (SIGSEGV - 1)) - | (1 << (SIGHUP - 1)) - | (1 << (SIGPIPE - 1)) -#ifdef SIGSYS - | (1 << (SIGSYS - 1)) -#endif - ); -#endif /* _POSIX_SOURCE */ - sig_act.sa_flags = 0; - sigaction(SIGHUP, &sig_act, (struct sigaction *)0); - sigaction(SIGINT, &sig_act, (struct sigaction *)0); - sigaction(SIGQUIT, &sig_act, (struct sigaction *)0); - sigaction(SIGILL, &sig_act, (struct sigaction *)0); -#ifdef SIGBUS - sigaction(SIGBUS, &sig_act, (struct sigaction *)0); -#endif - sigaction(SIGSEGV, &sig_act, (struct sigaction *)0); -#ifdef SIGSYS - sigaction(SIGSYS, &sig_act, (struct sigaction *)0); -#endif -#endif /* USGISH */ - - /* - * now peruse through the list of files. - */ - for (fp = filelist, tp = targetlist; *fp; fp++, tp++) { - filecontent = getfile(*fp); - ip = newinclude(*fp, (char *)NULL); - - find_includes(filecontent, ip, ip, 0, FALSE); - freefile(filecontent); - if (!rootBuild) - recursive_pr_include(ip, ip->i_file, base_name(*fp), *tp); - else - recursive_pr_include(ip, ip->i_file, base_name(makefile), *tp); - inc_clean(); - } - if (!rootBuild) { - if (printed) - printf("\n"); - exit(0); - } - return 0; -} - -#ifdef __EMX__ -/* - * eliminate \r chars from file - */ -static int elim_cr(char *buf, int sz) -{ - int i, wp; - for (i = wp = 0; i < sz; i++) { - if (buf[i] != '\r') - buf[wp++] = buf[i]; - } - return wp; -} -#endif - -struct filepointer *getfile(file) - char *file; -{ - register int fd; - struct filepointer *content; - struct stat st; - - content = (struct filepointer *)malloc(sizeof(struct filepointer)); - if ((fd = open(file, O_RDONLY)) < 0) { - warning("cannot open \"%s\"\n", file); - content->f_p = content->f_base = content->f_end = (char *)malloc(1); - *content->f_p = '\0'; - return(content); - } - fstat(fd, &st); - content->f_base = (char *)malloc(st.st_size + 1); - if (content->f_base == NULL) - fatalerr("cannot allocate mem\n"); - if ((st.st_size = read(fd, content->f_base, st.st_size)) < 0) - fatalerr("failed to read %s\n", file); -#ifdef __EMX__ - st.st_size = elim_cr(content->f_base, st.st_size); -#endif - close(fd); - content->f_len = st.st_size + 1; - content->f_p = content->f_base; - content->f_end = content->f_base + st.st_size; - *content->f_end = '\0'; - content->f_line = 0; - return(content); -} - -void -freefile(fp) -struct filepointer *fp; -{ - free(fp->f_base); - free(fp); -} - -char *copy(str) -register char *str; -{ - register char *p = (char *)malloc(strlen(str) + 1); - - strcpy(p, str); - return(p); -} - -int match(str, list) -register char *str, **list; -{ - register int i; - - for (i = 0; *list; i++, list++) - if (strcmp(str, *list) == 0) - return(i); - return(-1); -} - -/* - * Get the next line. We only return lines beginning with '#' since that - * is all this program is ever interested in. - */ -char *rgetline(filep) -register struct filepointer *filep; -{ - register char *p, /* walking pointer */ - *eof, /* end of file pointer */ - *bol; /* beginning of line pointer */ - register int lineno; /* line number */ - - p = filep->f_p; - eof = filep->f_end; - if (p >= eof) - return((char *)NULL); - lineno = filep->f_line; - - for (bol = p--; ++p < eof;) { - if (*p == '/') { - if (*(p + 1) == '/') { /* consume C++ comments */ - *p++ = ' ', *p++ = ' '; - while (*p && *p != '\n') - *p++ = ' '; - p--; - continue; - } else if (*(p + 1) == '*') { /* consume C comments */ - *p++ = ' ', *p++ = ' '; - while (*p) { - if (*p == '*' && *(p + 1) == '/') { - *p++ = ' ', *p = ' '; - break; - } else if (*p == '\n') - lineno++; - *p++ = ' '; - } - continue; - } - } else if (*p == '\\') { - if (*(p + 1) == '\n') { - *p = ' '; - *(p + 1) = ' '; - lineno++; - } - } else if (*p == '\n') { - lineno++; - if (*bol == '#') { - register char *cp; - - *p++ = '\0'; - /* punt lines with just # (yacc generated) */ - for (cp = bol + 1; - (*cp == ' ' || *cp == '\t'); cp++) {}; - if (*cp) goto done; - } - bol = p + 1; - } - } - if (*bol != '#') - bol = NULL; -done: - filep->f_p = p; - filep->f_line = lineno; - return(bol); -} - -/* - * Strip the file name down to what we want to see in the Makefile. - * It will have objprefix and objsuffix around it. - */ -char *base_name(file) -register char *file; -{ - register char *p; - - file = copy(file); - for (p = file + strlen(file); p > file && *p != '.'; p--) ; - - if (*p == '.') - *p = '\0'; - return(file); -} - -#if defined(USG) && !defined(CRAY) && !defined(SVR4) && !defined(__EMX__) && !defined(clipper) && !defined(__clipper__) -int rename(from, to) -char *from, *to; -{ - (void) unlink(to); - if (link(from, to) == 0) { - unlink(from); - return 0; - } else { - return -1; - } -} -#endif /* USGISH */ - -void -redirect(line, makefile) -char *line, -*makefile; -{ - struct stat st; - FILE *fdin = 0, *fdout = 0; - char backup[ BUFSIZ ], - buf[ BUFSIZ ]; - boolean found = FALSE; - int len; - - /* - * if makefile is "-" then let it pour onto stdout. - */ - if (makefile && *makefile == '-' && *(makefile + 1) == '\0') { - puts(line); - return; - } - - /* - * use a default makefile is not specified. - */ - if (!makefile) { - if (stat("Makefile", &st) == 0) - makefile = "Makefile"; - else if (stat("makefile", &st) == 0) - makefile = "makefile"; - else - fatalerr("[mM]akefile is not present\n"); - } else - stat(makefile, &st); - if (!rootBuild) { - if ((fdin = fopen(makefile, "r")) == NULL) - fatalerr("cannot open \"%s\"\n", makefile); - sprintf(backup, "%s.bak", makefile); - unlink(backup); -#if defined(WIN32) || defined(__EMX__) - fclose(fdin); -#endif - if (rename(makefile, backup) < 0) - fatalerr("cannot rename %s to %s\n", makefile, backup); -#if defined(WIN32) || defined(__EMX__) - if ((fdin = fopen(backup, "r")) == NULL) - fatalerr("cannot open \"%s\"\n", backup); -#endif - } - if ((fdout = freopen(makefile, "w", stdout)) == NULL) - fatalerr("cannot open \"%s\"\n", makefile); - if (!rootBuild) { - len = strlen(line); - while (!found && fgets(buf, BUFSIZ, fdin)) { - if (*buf == '#' && strncmp(line, buf, len) == 0) - found = TRUE; - fputs(buf, fdout); - } - if (!found) { - if (verbose) - warning("Adding new delimiting line \"%s\" and dependencies...\n", - line); - puts(line); /* same as fputs(fdout); but with newline */ - } else if (append) { - while (fgets(buf, BUFSIZ, fdin)) { - fputs(buf, fdout); - } - } - fflush(fdout); -#if defined(USGISH) || defined(_SEQUENT_) || defined(USE_CHMOD) - chmod(makefile, st.st_mode); -#else - fchmod(fileno(fdout), st.st_mode); - fclose(fdin); -#endif /* USGISH */ - } else { - printf(" "); /* we need this to update the time stamp! */ - fflush(fdout); - } -} - -void fatalerr(char *msg, ...) -{ - va_list args; - fprintf(stderr, "%s: error: ", ProgramName); - va_start(args, msg); - vfprintf(stderr, msg, args); - va_end(args); - exit(1); -} - -void warning(char *msg, ...) -{ - if (!rootBuild) { - va_list args; - fprintf(stderr, "%s: warning: ", ProgramName); - va_start(args, msg); - vfprintf(stderr, msg, args); - va_end(args); - } -} - -void warning1(char *msg, ...) -{ - if (!rootBuild) { - va_list args; - va_start(args, msg); - vfprintf(stderr, msg, args); - va_end(args); - } -} diff --git a/build/rmkdepend/mainroot.cxx b/build/rmkdepend/mainroot.cxx deleted file mode 100644 index 7b05e778ec8e8..0000000000000 --- a/build/rmkdepend/mainroot.cxx +++ /dev/null @@ -1,191 +0,0 @@ -// @(#)root/build:$Id$ -// Author: Axel Naumann 21/03/06 - -/************************************************************************* - * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. * - * All rights reserved. * - * * - * For the licensing terms see $ROOTSYS/LICENSE. * - * For the list of contributors see $ROOTSYS/README/CREDITS. * - *************************************************************************/ - -// ROOT wrapper around ROOT's mkdepend incarnation + wrapper script, -// known as depends.sh in earlier days. -// If the first(!) argument is '-R' it triggers a few special -// routines: -// * dependencies for .d files use $(wildcard ...), so gmake doesn't -// bail out if one of the dependencies doesn't exist. -// * output files starting with '/G__' and ending on ".d" are assumed to -// be dictionaries. rmkdepend generates rules for these dictionaries -// covering the .d file, and the .cxx file itself, -// so the dictionaries get re-egenerated when an included header -// file gets changed. -// * the detection / wildcarding of a dictionary file can be changed -// by specifying -R=[tag]%[ext] as parameter to -R. The default is -// "-R=/G__%.d". -// * remove output file if we encounter an error. - -#include - -#if defined(__sun) && defined(__SUNPRO_CC) -#include -#endif -#include "def.h" - -#ifndef WIN32 -#include -#else -extern "C" int unlink(const char *FILENAME); -#include "../../core/utils/src/cygpath.h" -#endif - -extern "C" int main_orig(int argc, char **argv); - - -int rootBuild = 0; - -static int isDict = 0; -static int newFile = 0; -static int openWildcard = 0; -static std::string currentDependencies; -static std::string currentFileBase; - -extern "C" -void ROOT_newFile() -{ - newFile = 1; -} - -void ROOT_flush() -{ - if (openWildcard) { - if (fwrite(")\n", 2, 1, stdout) != 1) // closing "$(wildcard" - fprintf(stderr, "Warning: ROOT_flush: fwrite error\n"); - openWildcard = 0; - } - /* now done via "XYZ.d XYZ.o: $(wildcard dependencies)" - if (!currentFileBase.empty()) { - currentFileBase += "o"; - fwrite(currentFileBase.c_str(), currentFileBase.length(), 1, stdout); - currentDependencies += '\n'; - fwrite(currentDependencies.c_str(), currentDependencies.length(), 1, stdout); - } - */ - currentFileBase.clear(); - currentDependencies.clear(); -} - -extern "C" -void ROOT_adddep(char* buf, size_t len) -{ - char* posColon = 0; - if (newFile) - posColon = strstr(buf, ".o: "); - - if (!posColon) { - if (fwrite(buf, len, 1, stdout) != 1) - fprintf(stderr, "Warning: ROOT_adddep: fwrite error\n"); - currentDependencies += buf; - return; - } - -/* isDict: - sed -e 's@^\(.*\)\.o[ :]*\(.*\)\@ - \1.d: $\(wildcard \2\)\@\1.cxx: $\(wildcard \2\)@' - -e 's@^#.*$@@' - -e '/^$/d' - | tr '@' '\n' -else - sed -e 's@^\(.*\)\.o[ :]*\(.*\)@ - \1.d: $\(wildcard \2\)\@\1.o: \2@' - -e 's@^#.*$@@' - -e '/^$/d' $1.tmp - | tr '@' '\n' -*/ - // flush out the old dependencies - ROOT_flush(); - - newFile = 0; - - buf[0] = ' '; - if (isDict) { - posColon[1]=0; - char s = posColon[4]; // save char that will be overwritten by \0 of "cxx" - strcat(posColon, "cxx"); - if (fwrite(buf, (posColon - buf)+4, 1, stdout) != 1) // .cxx - fprintf(stderr, "Warning: ROOT_adddep: fwrite error\n"); - posColon[4] = s; - } - - posColon[1]='o'; - if (fwrite(buf, (posColon - buf)+2, 1, stdout) != 1) // .o - fprintf(stderr, "Warning: ROOT_adddep: fwrite error\n"); - posColon[1]='d'; - if (fwrite(buf, (posColon - buf)+2, 1, stdout) != 1) // .d - fprintf(stderr, "Warning: ROOT_adddep: fwrite error\n"); - - if (!isDict) { - posColon[1] = 0; - currentFileBase = buf + 1; - currentDependencies = posColon + 2; - } - if (fwrite(": $(wildcard ", 13, 1, stdout) != 1) - fprintf(stderr, "Warning: ROOT_adddep: fwrite error\n"); - if (fwrite(posColon + 4, len - (posColon + 4 - buf), 1, stdout) != 1) - fprintf(stderr, "Warning: ROOT_adddep: fwrite error\n"); - openWildcard = 1; -} - -int main(int argc, char **argv) -{ - isDict = false; - if (argc<3 || (strcmp(argv[1], "-R") && strncmp(argv[1], "-R=", 3))) - return main_orig(argc, argv); - - rootBuild = 1; - const char* outname = argv[2]+2; - while (*outname == ' ') ++outname; - if (*outname) { - if (argv[1][2] == '=') { - // dictionary tag passed after -R= - std::string sDictTag(argv[1] + 1); - size_t posExt = sDictTag.find('%'); - if (posExt != std::string::npos && posExt < sDictTag.length() - 1) { - std::string sDictExt = sDictTag.substr(posExt + 1); - sDictTag.erase(posExt); - isDict = (strstr(outname, sDictTag.c_str())) - && !(strcmp(outname + strlen(outname) - sDictExt.length(), - sDictExt.c_str())); - } else { - isDict = (strstr(outname, sDictTag.c_str()) != 0); - } - } else { - // no = after "-R", thus "/G__%.d"; - isDict = (strstr(outname, "/G__")) - && (!strcmp(outname + strlen(outname) - 2, ".d")); - } - } - - argv[1] = argv[0]; // keep program name - -#ifdef _WIN32 - for (int i = 2; i < argc; ++i) { - std::string arg(argv[i]); - if (FromCygToNativePath(arg)) { - size_t len = arg.length(); - // yes, we leak. - char* argvi = new char[len + 1]; - strncpy(argvi, arg.c_str(), len + 1); - argv[i] = argvi; - } - } -#endif - - int ret = main_orig(argc-1, &argv[1]); - if (ret) { - // delete output file - unlink(outname); - } else - ROOT_flush(); - return ret; -} diff --git a/build/rmkdepend/parse.c b/build/rmkdepend/parse.c deleted file mode 100644 index 5758257010b75..0000000000000 --- a/build/rmkdepend/parse.c +++ /dev/null @@ -1,658 +0,0 @@ -/* $XConsortium: parse.c /main/33 1996/12/04 10:11:28 swick $ */ -/* - -Copyright (c) 1993, 1994 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the X Consortium. - -*/ -/* $XFree86: xc/config/makedepend/parse.c,v 1.3 1997/01/12 10:39:45 dawes Exp $ */ - -#include "def.h" - -extern char *directives[]; -extern struct inclist maininclist; - -extern int deftype(char *line, struct filepointer *filep, - struct inclist *file_red, struct inclist *file, - int parse_it); -extern int match(char *str, char **list); -extern int zero_value(char *exp, struct filepointer *filep, - struct inclist *file_red); -extern int merge2defines(struct inclist *file1, struct inclist *file2); -extern int cppsetup(char *line, struct filepointer *filep, - struct inclist *inc); -extern void add_include(struct filepointer *filep, struct inclist *file, - struct inclist *file_red, char *include, - boolean dot, boolean failOK); - - - -int -gobble(filep, file, file_red) -register struct filepointer *filep; -struct inclist *file, *file_red; -{ - register char *line; - register int type; - - while ((line = rgetline(filep))) { - switch (type = deftype(line, filep, file_red, file, FALSE)) { - case IF: - case IFFALSE: - case IFGUESSFALSE: - case IFDEF: - case IFNDEF: - type = gobble(filep, file, file_red); - while ((type == ELIF) || (type == ELIFFALSE) || - (type == ELIFGUESSFALSE)) - type = gobble(filep, file, file_red); - if (type == ELSE) - (void)gobble(filep, file, file_red); - break; - case ELSE: - case ENDIF: - debug(0, ("%s, line %d: #%s\n", - file->i_file, filep->f_line, - directives[type])); - return(type); - case DEFINE: - case UNDEF: - case INCLUDE: - case INCLUDEDOT: - case PRAGMA: - case ERROR: - case IDENT: - case SCCS: - case EJECT: - case WARNING: - break; - case ELIF: - case ELIFFALSE: - case ELIFGUESSFALSE: - return(type); - case -1: - warning("%s, line %d: unknown directive == \"%s\"\n", - file_red->i_file, filep->f_line, line); - break; - } - } - return(-1); -} - -/* copy from to to, where from and to might overlap */ -static void inplace_strcpy(char* to, const char* from) -{ - while (*from) - *to++ = *from++; - *to = *from; -} - -/* - * Decide what type of # directive this line is. - */ -int deftype(line, filep, file_red, file, parse_it) -register char *line; -register struct filepointer *filep; -register struct inclist *file_red, *file; -int parse_it; -{ - register char *p; - char *directive, savechar; - register int ret; - - /* - * Parse the directive... - */ - directive = line + 1; - while (*directive == ' ' || *directive == '\t') - directive++; - - p = directive; - while (*p >= 'a' && *p <= 'z') - p++; - savechar = *p; - *p = '\0'; - ret = match(directive, directives); - *p = savechar; - - /* If we don't recognize this compiler directive or we happen to just - * be gobbling up text while waiting for an #endif or #elif or #else - * in the case of an #elif we must check the zero_value and return an - * ELIF or an ELIFFALSE. - */ - - if (ret == ELIF && !parse_it) { - while (*p == ' ' || *p == '\t') - p++; - /* - * parse an expression. - */ - debug(0, ("%s, line %d: #elif %s ", - file->i_file, filep->f_line, p)); - ret = zero_value(p, filep, file_red); - if (ret != IF) { - debug(0, ("false...\n")); - if (ret == IFFALSE) - return(ELIFFALSE); - else - return(ELIFGUESSFALSE); - } else { - debug(0, ("true...\n")); - return(ELIF); - } - } - - if (ret < 0 || ! parse_it) - return(ret); - - /* - * now decide how to parse the directive, and do it. - */ - while (*p == ' ' || *p == '\t') - p++; - switch (ret) { - case IF: - /* - * parse an expression. - */ - ret = zero_value(p, filep, file_red); - debug(0, ("%s, line %d: %s #if %s\n", - file->i_file, filep->f_line, ret ? "false" : "true", p)); - break; - case IFDEF: - case IFNDEF: - debug(0, ("%s, line %d: #%s %s\n", - file->i_file, filep->f_line, directives[ret], p)); - case UNDEF: - /* - * separate the name of a single symbol. - */ - while (isalnum((int)*p) || *p == '_') - *line++ = *p++; - *line = '\0'; - break; - case INCLUDE: - debug(2, ("%s, line %d: #include %s\n", - file->i_file, filep->f_line, p)); - - /* Support ANSI macro substitution */ - { - struct symtab **sym = isdefined(p, file_red, NULL); - while (sym) { - p = (*sym)->s_value; - debug(3, ("%s : #includes SYMBOL %s = %s\n", - file->i_incstring, - (*sym) -> s_name, - (*sym) -> s_value)); - /* mark file as having included a 'soft include' */ - file->i_flags |= INCLUDED_SYM; - sym = isdefined(p, file_red, NULL); - } - } - - /* - * Separate the name of the include file. - */ - while (*p && *p != '"' && *p != '<') - p++; - if (! *p) - return(-2); - if (*p++ == '"') { - ret = INCLUDEDOT; - while (*p && *p != '"') - *line++ = *p++; - } else - while (*p && *p != '>') - *line++ = *p++; - *line = '\0'; - break; - case DEFINE: - /* - * copy the definition back to the beginning of the line. - */ - inplace_strcpy(line, p); - break; - case ELSE: - case ENDIF: - case ELIF: - case PRAGMA: - case ERROR: - case IDENT: - case SCCS: - case EJECT: - case WARNING: - debug(0, ("%s, line %d: #%s\n", - file->i_file, filep->f_line, directives[ret])); - /* - * nothing to do. - */ - break; - } - return(ret); -} - -struct symtab **fdefined(symbol, file, srcfile) - register char *symbol; -struct inclist *file; -struct inclist **srcfile; -{ - register struct inclist **ip; - register struct symtab **val; - register int i; - static int recurse_lvl = 0; - - if (file->i_flags & DEFCHECKED) - return(NULL); - file->i_flags |= DEFCHECKED; - if ((val = slookup(symbol, file))) { - debug(1, ("%s defined in %s as %s\n", - symbol, file->i_file, (*val)->s_value)); - } - if (val == NULL && file->i_list) { - for (ip = file->i_list, i = 0; i < file->i_listlen; i++, ip++) - if (file->i_merged[i] == FALSE) { - val = fdefined(symbol, *ip, srcfile); - if ((*ip)->i_flags & FINISHED) { - merge2defines(file, *ip); - file->i_merged[i] = TRUE; - } - if (val != NULL) break; - } - } else if (val != NULL && srcfile != NULL) *srcfile = file; - recurse_lvl--; - file->i_flags &= ~DEFCHECKED; - - return(val); -} - -struct symtab **isdefined(symbol, file, srcfile) - register char *symbol; -struct inclist *file; -struct inclist **srcfile; -{ - register struct symtab **val; - - if ((val = slookup(symbol, &maininclist))) { - debug(1, ("%s defined on command line\n", symbol)); - if (srcfile != NULL) *srcfile = &maininclist; - return(val); - } - if ((val = fdefined(symbol, file, srcfile))) - return(val); - debug(1, ("%s not defined in %s\n", symbol, file->i_file)); - return(NULL); -} - -/* - * Return type based on if the #if expression evaluates to 0 - */ -int -zero_value(exp, filep, file_red) -register char *exp; -register struct filepointer *filep; -register struct inclist *file_red; -{ - if (cppsetup(exp, filep, file_red)) - return(IFFALSE); - else - return(IF); -} - -void -define2(name, val, file) -char *name, *val; -struct inclist *file; -{ - int first, last, below; - register struct symtab **sp = NULL, **dest; - struct symtab *stab; - - /* Make space if it's needed */ - if (file->i_defs == NULL) { - file->i_defs = (struct symtab **) - malloc(sizeof(struct symtab*) * SYMTABINC); - file->i_ndefs = 0; - } else if (!(file->i_ndefs % SYMTABINC)) - file->i_defs = (struct symtab **) - realloc(file->i_defs, - sizeof(struct symtab*) * (file->i_ndefs + SYMTABINC)); - - if (file->i_defs == NULL) - fatalerr("malloc()/realloc() failure in insert_defn()\n"); - - below = first = 0; - last = file->i_ndefs - 1; - while (last >= first) { - /* Fast inline binary search */ - register char *s1; - register char *s2; - register int middle = (first + last) / 2; - - /* Fast inline strchr() */ - s1 = name; - s2 = file->i_defs[middle]->s_name; - while (*s1++ == *s2++) - if (s2[-1] == '\0') break; - - /* If exact match, set sp and break */ - if (*--s1 == *--s2) { - sp = file->i_defs + middle; - break; - } - - /* If name > i_defs[middle] ... */ - if (*s1 > *s2) { - below = first; - first = middle + 1; - } - /* else ... */ - else { - below = last = middle - 1; - } - } - - /* Search is done. If we found an exact match to the symbol name, - just replace its s_value */ - if (sp != NULL) { - free((*sp)->s_value); - (*sp)->s_value = copy(val); - return; - } - - sp = file->i_defs + file->i_ndefs++; - dest = file->i_defs + below + 1; - while (sp > dest) { - *sp = sp[-1]; - sp--; - } - stab = (struct symtab *) malloc(sizeof(struct symtab)); - if (stab == NULL) - fatalerr("malloc()/realloc() failure in insert_defn()\n"); - - stab->s_name = copy(name); - stab->s_value = copy(val); - *sp = stab; -} - -void -define(def, file) -char *def; -struct inclist *file; -{ - char *val; - - /* Separate symbol name and its value */ - val = def; - while (isalnum((int)*val) || *val == '_') - val++; - if (*val) - *val++ = '\0'; - while (*val == ' ' || *val == '\t') - val++; - - if (!*val) - val = "1"; - define2(def, val, file); -} - -struct symtab **slookup(symbol, file) - register char *symbol; -register struct inclist *file; -{ - register int first = 0; - register int last = file->i_ndefs - 1; - - while (last >= first) { - /* Fast inline binary search */ - register char *s1; - register char *s2; - register int middle = (first + last) / 2; - - /* Fast inline strchr() */ - s1 = symbol; - s2 = file->i_defs[middle]->s_name; - while (*s1++ == *s2++) - if (s2[-1] == '\0') break; - - /* If exact match, we're done */ - if (*--s1 == *--s2) { - return file->i_defs + middle; - } - - /* If symbol > i_defs[middle] ... */ - if (*s1 > *s2) { - first = middle + 1; - } - /* else ... */ - else { - last = middle - 1; - } - } - return(NULL); -} - -int merge2defines(file1, file2) -struct inclist *file1; -struct inclist *file2; -{ - if ((file1 != NULL) && (file2 != NULL)) { - int first1 = 0; - int last1 = file1->i_ndefs - 1; - - int first2 = 0; - int last2 = file2->i_ndefs - 1; - - int first = 0; - struct symtab** i_defs = NULL; - int deflen = file1->i_ndefs + file2->i_ndefs; - - if (deflen > 0) { - /* make sure deflen % SYMTABINC == 0 is still true */ - deflen += (SYMTABINC - deflen % SYMTABINC) % SYMTABINC; - i_defs = (struct symtab**)malloc(deflen * sizeof(struct symtab*)); - } - if (i_defs == NULL) return 0; - - while ((last1 >= first1) && (last2 >= first2)) { - char *s1 = file1->i_defs[first1]->s_name; - char *s2 = file2->i_defs[first2]->s_name; - - if (strcmp(s1, s2) < 0) - i_defs[first++] = file1->i_defs[first1++]; - else if (strcmp(s1, s2) > 0) - i_defs[first++] = file2->i_defs[first2++]; - else { /* equal */ - i_defs[first++] = file2->i_defs[first2++]; - first1++; - } - } - while (last1 >= first1) { - i_defs[first++] = file1->i_defs[first1++]; - } - while (last2 >= first2) { - i_defs[first++] = file2->i_defs[first2++]; - } - - if (file1->i_defs) free(file1->i_defs); - file1->i_defs = i_defs; - file1->i_ndefs = first; - - return 1; - } - return 0; -} - -void -undefine(symbol, file) -char *symbol; -register struct inclist *file; -{ - register struct symtab **ptr; - struct inclist *srcfile; - while ((ptr = isdefined(symbol, file, &srcfile)) != NULL) { - srcfile->i_ndefs--; - for (; ptr < srcfile->i_defs + srcfile->i_ndefs; ptr++) - *ptr = ptr[1]; - } -} - -void -undefine_all(file) -register struct inclist *file; -{ - register struct symtab **ptr; - - for (ptr = file->i_defs; ptr < file->i_defs + file->i_ndefs; ptr++) - *ptr = 0; - /* should delete it instead? */ - file->i_ndefs = 0; -} - -int -find_includes(filep, file, file_red, recursion, failOK) -struct filepointer *filep; -struct inclist *file, *file_red; -int recursion; -boolean failOK; -{ - register char *line; - register int type; - boolean recfailOK; - - while ((line = rgetline(filep))) { - switch (type = deftype(line, filep, file_red, file, TRUE)) { - case IF: -doif: - type = find_includes(filep, file, - file_red, recursion + 1, failOK); - while ((type == ELIF) || (type == ELIFFALSE) || - (type == ELIFGUESSFALSE)) - type = gobble(filep, file, file_red); - if (type == ELSE) - gobble(filep, file, file_red); - break; - case IFFALSE: - case IFGUESSFALSE: -doiffalse: - if (type == IFGUESSFALSE || type == ELIFGUESSFALSE) - recfailOK = TRUE; - else - recfailOK = failOK; - type = gobble(filep, file, file_red); - if (type == ELSE) - find_includes(filep, file, - file_red, recursion + 1, recfailOK); - else - if (type == ELIF) - goto doif; - else - if ((type == ELIFFALSE) || (type == ELIFGUESSFALSE)) - goto doiffalse; - break; - case IFDEF: - case IFNDEF: - if ((type == IFDEF && isdefined(line, file_red, (struct inclist**)0)) - || (type == IFNDEF && !isdefined(line, file_red, (struct inclist **)0))) { - debug(1, (type == IFNDEF ? - "line %d: %s !def'd in %s via %s%s\n" : "", - filep->f_line, line, - file->i_file, file_red->i_file, ": doit")); - type = find_includes(filep, file, - file_red, recursion + 1, failOK); - while (type == ELIF || type == ELIFFALSE || type == ELIFGUESSFALSE) - type = gobble(filep, file, file_red); - if (type == ELSE) - gobble(filep, file, file_red); - } else { - debug(1, (type == IFDEF ? - "line %d: %s !def'd in %s via %s%s\n" : "", - filep->f_line, line, - file->i_file, file_red->i_file, ": gobble")); - type = gobble(filep, file, file_red); - if (type == ELSE) - find_includes(filep, file, - file_red, recursion + 1, failOK); - else if (type == ELIF) - goto doif; - else if (type == ELIFFALSE || type == ELIFGUESSFALSE) - goto doiffalse; - } - break; - case ELSE: - case ELIFFALSE: - case ELIFGUESSFALSE: - case ELIF: - if (!recursion) - gobble(filep, file, file_red); - /* fallthrough */ - case ENDIF: - if (recursion) - return(type); - /* fallthrough */ - case DEFINE: - define(line, file); - break; - case UNDEF: - if (!*line) { - warning("%s, line %d: incomplete undef == \"%s\"\n", - file_red->i_file, filep->f_line, line); - break; - } - undefine(line, file_red); - break; - case INCLUDE: - add_include(filep, file, file_red, line, FALSE, failOK); - break; - case INCLUDEDOT: - add_include(filep, file, file_red, line, TRUE, failOK); - break; - case ERROR: - case WARNING: - warning("%s: %d: %s\n", file_red->i_file, - filep->f_line, line); - break; - - case PRAGMA: - case IDENT: - case SCCS: - case EJECT: - break; - case - 1: - warning("%s", file_red->i_file); - if (file_red != file) - warning1(" (reading %s)", file->i_file); - warning1(", line %d: unknown directive == \"%s\"\n", - filep->f_line, line); - break; - case - 2: - warning("%s", file_red->i_file); - if (file_red != file) - warning1(" (reading %s)", file->i_file); - warning1(", line %d: incomplete include == \"%s\"\n", - filep->f_line, line); - break; - } - } - file->i_flags |= FINISHED; - return(-1); -} diff --git a/build/rmkdepend/pr.c b/build/rmkdepend/pr.c deleted file mode 100644 index af8a4a0631448..0000000000000 --- a/build/rmkdepend/pr.c +++ /dev/null @@ -1,174 +0,0 @@ -/* $XConsortium: pr.c /main/20 1996/12/04 10:11:41 swick $ */ -/* - -Copyright (c) 1993, 1994 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the X Consortium. - -*/ - -#include "def.h" - -extern struct inclist inclist[ MAXFILES ], - *inclistp; -extern char *objprefix; -extern char *objsuffix; -extern int width; -extern boolean printed; -extern boolean verbose; -extern boolean show_where_not; - -extern void included_by(struct inclist *ip, struct inclist *newfile); -extern int find_includes(struct filepointer *filep, struct inclist *file, - struct inclist *file_red, int recursion, - boolean failOK); -extern void freefile(struct filepointer *fp); - -extern void ROOT_adddep(char* buf, size_t len); -extern void ROOT_newFile(); - -void -add_include(filep, file, file_red, include, dot, failOK) -struct filepointer *filep; -struct inclist *file, *file_red; -char *include; -boolean dot, failOK; -{ - register struct inclist *newfile; - register struct filepointer *content; - - /* - * First decide what the pathname of this include file really is. - */ - newfile = inc_path(file->i_file, include, dot); - if (newfile == NULL) { - if (failOK) - return; - if (file != file_red) - warning("%s (reading %s, line %d): ", - file_red->i_file, file->i_file, filep->f_line); - else - warning("%s, line %d: ", file->i_file, filep->f_line); - warning1("cannot find include file \"%s\"\n", include); - show_where_not = TRUE; - newfile = inc_path(file->i_file, include, dot); - show_where_not = FALSE; - } - - if (newfile) { - included_by(file, newfile); - if (!(newfile->i_flags & SEARCHED)) { - newfile->i_flags |= SEARCHED; - if (strncmp(newfile->i_file, "/usr/include/", 13)) { - content = getfile(newfile->i_file); - find_includes(content, newfile, file_red, 0, failOK); - freefile(content); - } - } - } -} - -void -pr(ip, file, base, dep) -register struct inclist *ip; -char *file, *base, *dep; -{ - static char *lastfile; - static int current_len; - register int len, i; - char buf[ BUFSIZ ]; - char *ipifile; - - printed = TRUE; - len = strlen(ip->i_file) + 1; - ipifile = 0; - if (len > 2 && ip->i_file[1] == ':') { - if (getenv("OSTYPE") && !strcmp(getenv("OSTYPE"), "msys")) { - /* windows path */ - ipifile = malloc(len); - strcpy(ipifile, ip->i_file); - ipifile[1] = ipifile[0]; - ipifile[0] = '/'; - } else { - /* generic cygwin */ - ipifile = malloc(len + 11); - strcpy(ipifile, "/cygdrive/"); - ipifile[10] = ip->i_file[0]; - strcpy(ipifile + 11, ip->i_file + 2); - len += 9; - } - } else ipifile = ip->i_file; - - if (current_len + len > width || file != lastfile) { - lastfile = file; - if (rootBuild) - ROOT_newFile(); - if (dep == 0) { - sprintf(buf, "\n%s%s%s: %s", objprefix, base, objsuffix, - ipifile); - } else { - sprintf(buf, "\n%s: %s", dep, - ipifile); - } - len = current_len = strlen(buf); - } else { - buf[0] = ' '; - strcpy(buf + 1, ipifile); - current_len += len; - } - if (len > 2 && ip->i_file[1] == ':') - free(ipifile); - - if (rootBuild) - ROOT_adddep(buf, len); - else - if (fwrite(buf, len, 1, stdout) != 1) - fprintf(stderr, "pr: fwrite error\n"); - - /* - * If verbose is set, then print out what this file includes. - */ - if (! verbose || ip->i_list == NULL || ip->i_flags & NOTIFIED) - return; - ip->i_flags |= NOTIFIED; - lastfile = NULL; - printf("\n# %s includes:", ip->i_file); - for (i = 0; i < ip->i_listlen; i++) - printf("\n#\t%s", ip->i_list[ i ]->i_incstring); -} - -void -recursive_pr_include(head, file, base, dep) -register struct inclist *head; -register char *file, *base; -register char *dep; -{ - register int i; - - if (head->i_flags & MARKED) - return; - head->i_flags |= MARKED; - if (head->i_file != file) - pr(head, file, base, dep); - for (i = 0; i < head->i_listlen; i++) - recursive_pr_include(head->i_list[ i ], file, base, dep); -} diff --git a/build/unix/compiledata.sh b/build/unix/compiledata.sh deleted file mode 100755 index a3c8498f09f13..0000000000000 --- a/build/unix/compiledata.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/env bash - -# Script to generate the file include/compiledata.h. -# Called by main Makefile. -# -# Author: Fons Rademakers, 29/2/2000 - -COMPILEDATA=$1 -CXX=$2 -CXXOPT=$3 -CXXDEBUG=$4 -CXXFLAGS=$5 -SOFLAGS=$6 -LDFLAGS=$7 -SOEXT=$8 -SYSLIBS=$9 -shift -LIBDIR=$9 -shift -ROOTLIBS=$9 -shift -RINTLIBS=$9 -shift -INCDIR=$9 -shift -CUSTOMSHARED=$9 -shift -CUSTOMEXE=$9 -shift -ARCH=$9 -shift -ROOTBUILD=$9 -shift -EXPLICITLINK=$9 -shift - -if [ "$INCDIR" = "$ROOTSYS/include" ]; then - INCDIR=\$ROOTSYS/include -fi -if [ "$LIBDIR" = "$ROOTSYS/lib" ]; then - LIBDIR=\$ROOTSYS/lib -fi - -if [ "$EXPLICITLINK" = "yes" ]; then - EXPLLINKLIBS="\$LinkedLibs" -else - EXPLLINKLIBS="\$DepLibs" -fi - -if [ "$ARCH" = "macosx" ] || [ "$ARCH" = "macosx64" ] || \ - [ "$ARCH" = "macosxicc" ]; then - macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2` - SOEXT="so" - if [ $macosx_minor -ge 5 ]; then - if [ "x`echo $SOFLAGS | grep -- '-install_name'`" != "x" ]; then - # If install_name is specified, remove it. - SOFLAGS="$OPT -dynamiclib -single_module -Wl,-dead_strip_dylibs" - fi - elif [ $macosx_minor -ge 3 ]; then - SOFLAGS="-bundle $OPT -undefined dynamic_lookup" - EXPLLINKLIBS="" - else - SOFLAGS="-bundle $OPT -undefined suppress" - EXPLLINKLIBS="" - fi -elif [ "x`echo $SOFLAGS | grep -- '-soname,$'`" != "x" ]; then - # If soname is specified, add the library name. - SOFLAGS=$SOFLAGS\$LibName.$SOEXT - # Alternatively we could remove the soname flag. - # SOFLAGS=`echo $SOFLAGS | sed -e 's/-soname,/ /' -e 's/ -Wl, / /' ` -fi - -# Remove -Iinclude since it is 'location' dependent -CXXFLAGS=`echo $CXXFLAGS | sed 's/-Iinclude //' ` - -# Remove the flags turning warnings into errors or extending -# the number of warnings. -CXXFLAGS=`echo $CXXFLAGS | sed -e 's/-Werror //g' -e 's/-Werror=\S* //g' -e 's/-Wall //g' -e 's/-Wshadow //g' ` - -# Determine the compiler version -BXX="`basename $CXX`" -COMPILERVERS="$BXX" -case $BXX in -g++*) - cxxTemp=`$CXX -dumpversion` - COMPILERVERS="gcc" - ;; -icc) - cxxTemp=`$CXX -dumpversion` - ;; -clang++*) - cxxTemp=`$CXX --version | grep version | \ - sed 's/.*\(version .*\)/\1/; s/.*based on \(LLVM .*\)svn)/\1/' | \ - cut -d ' ' -f 2` - COMPILERVERS="clang" - ;; -esac - -cxxMajor=`echo $cxxTemp 2>&1 | cut -d'.' -f1` -cxxMinor=`echo $cxxTemp 2>&1 | cut -d'.' -f2` -cxxPatch=`echo $cxxTemp 2>&1 | cut -d'.' -f3` -if [ "$cxxMajor" != "x" ] ; then - COMPILERVERS="$COMPILERVERS$cxxMajor" - if [ "$cxxMinor" != "x" ] ; then - COMPILERVERS="$COMPILERVERS$cxxMinor" - if [ "$cxxPatch" != "x" ] ; then - COMPILERVERS="$COMPILERVERS$cxxPatch" - fi - fi -fi - -rm -f __compiledata - -echo "/* This file is automatically generated */" > __compiledata -echo "#define BUILD_ARCH \"$ARCH\"" >> __compiledata -echo "#define BUILD_NODE \""`uname -a`"\"" >> __compiledata -echo "#define CXX \"$BXX\"" >> __compiledata -echo "#define COMPILER \""`type -path $CXX`"\"" >> __compiledata -echo "#define COMPILERVERS \"$COMPILERVERS\"" >> __compiledata -if [ "$CUSTOMSHARED" = "" ]; then - echo "#define MAKESHAREDLIB \"cd \$BuildDir ; $BXX -c \$Opt $CXXFLAGS \$IncludePath \$SourceFiles ; $BXX \$ObjectFiles $SOFLAGS $LDFLAGS $EXPLLINKLIBS -o \$SharedLib\"" >> __compiledata -else - echo "#define MAKESHAREDLIB \"$CUSTOMSHARED\"" >> __compiledata -fi -if [ "$CUSTOMEXE" = "" ]; then - echo "#define MAKEEXE \"cd \$BuildDir ; $BXX -c $OPT $CXXFLAGS \$IncludePath \$SourceFiles; $BXX \$ObjectFiles $LDFLAGS -o \$ExeName \$LinkedLibs $SYSLIBS\"" >> __compiledata -else - echo "#define MAKEEXE \"$CUSTOMEXE\"" >> __compiledata -fi -echo "#define CXXOPT \"$CXXOPT\"" >> __compiledata -echo "#define CXXDEBUG \"$CXXDEBUG\"" >> __compiledata -echo "#define ROOTBUILD \"$ROOTBUILD\"" >> __compiledata -echo "#define LINKEDLIBS \"-L$LIBDIR $ROOTLIBS $RINTLIBS \"" >> __compiledata -echo "#define INCLUDEPATH \"-I$INCDIR\"" >> __compiledata -echo "#define OBJEXT \"o\"" >> __compiledata -echo "#define SOEXT \"$SOEXT\"" >> __compiledata - -( -if [ -r $COMPILEDATA ]; then - diff __compiledata $COMPILEDATA > /dev/null; status=$?; - if [ "$status" -ne "0" ]; then - echo "Running $0" - echo "Changing $COMPILEDATA" - mv __compiledata $COMPILEDATA; - else - rm -f __compiledata; fi -else - echo "Running $0" - echo "Making $COMPILEDATA" - mv __compiledata $COMPILEDATA; fi -) - -exit 0 diff --git a/build/unix/distfilelist.sh b/build/unix/distfilelist.sh deleted file mode 100755 index 74628a483d133..0000000000000 --- a/build/unix/distfilelist.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh - -# Script to produce list of files to be included in the -# binary distribution of ROOT. -# Called by makedist.sh. -# -# Axel, 2006-05-16 - -# $1 contains dir to prepend to file names - -# dir name to prepend (e.g. for tar) - make sure it ends on '/' -PREPENDDIR=`echo ${1}|sed 's,/$,,'`/ -if [ "x${PREPENDDIR}" = "x/" ]; then - PREPENDDIR= -else - cd $PREPENDDIR || exit 1 -fi - -# clean tutorials so we can include the entire directory -# (copy of code in main Makefile, so change there too if needed) -mv -f tutorials/hsimple.root tutorials/hsimple.root- -mv -f tutorials/gallery.root tutorials/gallery.root- -mv -f tutorials/mlp/mlpHiggs.root tutorials/mlp/mlpHiggs.root- -mv -f tutorials/quadp/stock.root tutorials/quadp/stock.root- -mv -f tutorials/proof/ntprndm.root tutorials/proof/ntprndm.root- -mv -f tutorials/tmva/data/toy_sigbkg_categ_offset.root tutorials/tmva/data/toy_sigbkg_categ_offset.root- -mv -f tutorials/tmva/data/toy_sigbkg_categ_varoff.root tutorials/tmva/data/toy_sigbkg_categ_varoff.root- -find tutorials -name "*.root" -exec rm -rf {} \; >/dev/null 2>&1;true -find tutorials -name "*.ps" -exec rm -rf {} \; >/dev/null 2>&1;true -find tutorials -path tutorials/doc -prune -o -name "*.gif" -exec rm -rf {} \; >/dev/null 2>&1;true -find tutorials -name "so_locations" -exec rm -rf {} \; >/dev/null 2>&1;true -find tutorials -name "pca.C" -exec rm -rf {} \; >/dev/null 2>&1;true -find tutorials -name "*.so" -exec rm -rf {} \; >/dev/null 2>&1;true -find tutorials -name "work.pc" -exec rm -rf {} \; >/dev/null 2>&1;true -find tutorials -name "work.pcl" -exec rm -rf {} \; >/dev/null 2>&1;true -find tutorials -name "*.pcm" -exec rm -rf {} \; >/dev/null 2>&1;true - -mv -f tutorials/hsimple.root- tutorials/hsimple.root -mv -f tutorials/gallery.root- tutorials/gallery.root -mv -f tutorials/mlp/mlpHiggs.root- tutorials/mlp/mlpHiggs.root -mv -f tutorials/quadp/stock.root- tutorials/quadp/stock.root -mv -f tutorials/proof/ntprndm.root- tutorials/proof/ntprndm.root -mv -f tutorials/tmva/data/toy_sigbkg_categ_offset.root- tutorials/tmva/data/toy_sigbkg_categ_offset.root -mv -f tutorials/tmva/data/toy_sigbkg_categ_varoff.root- tutorials/tmva/data/toy_sigbkg_categ_varoff.root - -# mixture of files, wildcards, and directories -WILDCARDS="LICENSE README bin \ - include lib man config/Makefile.comp config/Makefile.config \ - tutorials geom/gdml/*.py \ - test/*.cxx test/*.h test/Makefile* test/*.rootmap \ - test/*.C test/*.sh test/dt_Makefile test/*.ref test/*_ref.root \ - test/README test/*.txt test/*.xml test/HistFactoryTest.tar \ - test/RootShower/*.h test/RootShower/*.cxx \ - test/RootShower/*.rc test/RootShower/*.ico \ - test/RootShower/*.png test/RootShower/Makefile* \ - test/RootShower/anim test/RootShower/icons \ - test/ProofBench test/RootIDE \ - macros icons fonts etc include/rmain.cxx" -# tmva/test/*.gif tmva/test/*.png tmva/test/*.C tmva/test/README \ - -# expand wildcards, recursively add directories -FILES= -for wc in ${WILDCARDS}; do - if [ -d "${wc}" ]; then - FILES="${FILES} `find ${wc} -type f -o -type l`" - else - FILES="${FILES} ${wc}" - fi -done - -FILES=`echo ${FILES} | tr ' ' '\n'` - -ARCH=`grep '^ARCH' config/Makefile.config | sed 's,^ARCH.*:= ,,'` -if [ "x$ARCH" = "xwin32" ]; then - FILES=`echo ${FILES} | tr ' ' '\n' | sed -e 's,^lib/.*\.dll$,,'` -fi -# remove all files we don't want, put one file per line -echo `echo ${FILES} | tr ' ' '\n' | sed \ - -e 's,^.*.cvsignore$,,' \ - -e 's,^.*/CVS/.*$,,' \ - -e 's,^.*/.svn/.*$,,' \ - -e 's,^.*/.git/.*$,,' \ - -e 's,^.*/.*.dSYM/.*$,,' \ - | grep -v '^$'` | tr ' ' '\n' | sort | uniq | sed -e 's,^,'${PREPENDDIR}',' diff --git a/build/unix/git2cl.pl b/build/unix/git2cl.pl deleted file mode 100755 index 4d633ea359694..0000000000000 --- a/build/unix/git2cl.pl +++ /dev/null @@ -1,413 +0,0 @@ -#!/usr/bin/perl - -# Copyright (C) 2007, 2008 Simon Josefsson -# Copyright (C) 2007 Luis Mondesi -# * calls git directly. To use it just: -# cd ~/Project/my_git_repo; git2cl > ChangeLog -# * implements strptime() -# * fixes bugs in $comment parsing -# - copy input before we remove leading spaces -# - skip "merge branch" statements as they don't -# have information about files (i.e. we never -# go into $state 2) -# - behaves like a pipe/filter if input is given from the CLI -# else it calls git log by itself -# -# The functions mywrap, last_line_len, wrap_log_entry are derived from -# the cvs2cl tool, see : -# Copyright (C) 2001,2002,2003,2004 Martyn J. Pearce -# Copyright (C) 1999 Karl Fogel -# -# git2cl is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# git2cl is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with git2cl; see the file COPYING. If not, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301 USA. - -=head1 NAME - - git2cl - tool to convert git logs to GNU ChangeLog - - =head1 SYNOPSIS - - git2cl > ChangeLog - - If you don't want git2cl to invoke git log internally, you can use it - as a pipe. - It needs a git log generated with --pretty --numstat and --summary. - You can use it as follows: - - git log --pretty --numstat --summary | git2cl > ChangeLog - - =head1 DESCRIPTION - - This is a quick'n'dirty tool to convert git logs to GNU ChangeLog - format. - - The tool invokes `git log` internally unless you pipe a log to it. - Thus, typically you would use it as follows: - - =head1 SEE ALSO - - Output format specification: - - - =head1 AUTHORS - - git2cl is developed by Simon Josefsson - and Luis Mondesi - - =cut - -use strict; -use POSIX qw(strftime); -use Text::Wrap qw(wrap); -use FileHandle; - -use constant EMPTY_LOG_MESSAGE => '*** empty log message ***'; - -# this is a helper hash for stptime. -# Assumes you are calling 'git log ...' with LC_ALL=C -my %month = ( -'Jan'=>0, -'Feb'=>1, -'Mar'=>2, -'Apr'=>3, -'May'=>4, -'Jun'=>5, -'Jul'=>6, -'Aug'=>7, -'Sep'=>8, -'Oct'=>9, -'Nov'=>10, -'Dec'=>11, -); - -my $fh = new FileHandle; - -sub key_ready -{ - my ($rin, $nfd); - vec($rin, fileno(STDIN), 1) = 1; - return $nfd = select($rin, undef, undef, 0); -} - -sub strptime { - my $str = shift; - return undef if not defined $str; - - # we are parsing this format - # Fri Oct 26 00:42:56 2007 -0400 - # to these fields - # sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1 - # Luis Mondesi - my @date; - if ($str =~ /([[:alpha:]]{3})\s+([[:alpha:]]{3})\s+([[:digit:]]{1,2})\s+([[:digit:]]{1,2}):([[:digit:]]{1,2}):([[:digit:]]{1,2})\s+([[:digit:]]{4})/){ - push(@date,$6,$5,$4,$3,$month{$2},($7 - 1900),-1,-1,-1); - } else { - die ("Cannot parse date '$str'\n'"); - } - return @date; -} - -sub mywrap { - my ($indent1, $indent2, @text) = @_; - # If incoming text looks preformatted, don't get clever - my $text = Text::Wrap::wrap($indent1, $indent2, @text); - if ( grep /^\s+/m, @text ) { - return $text; - } - my @lines = split /\n/, $text; - $indent2 =~ s!^((?: {8})+)!"\t" x (length($1)/8)!e; - $lines[0] =~ s/^$indent1\s+/$indent1/; - s/^$indent2\s+/$indent2/ - for @lines[1..$#lines]; - my $newtext = join "\n", @lines; - $newtext .= "\n" - if substr($text, -1) eq "\n"; - return $newtext; -} - -sub last_line_len { - my $files_list = shift; - my @lines = split (/\n/, $files_list); - my $last_line = pop (@lines); - return length ($last_line); -} - -# A custom wrap function, sensitive to some common constructs used in -# log entries. -sub wrap_log_entry { - my $text = shift; # The text to wrap. - my $left_pad_str = shift; # String to pad with on the left. - - # These do NOT take left_pad_str into account: - my $length_remaining = shift; # Amount left on current line. - my $max_line_length = shift; # Amount left for a blank line. - - my $wrapped_text = ''; # The accumulating wrapped entry. - my $user_indent = ''; # Inherited user_indent from prev line. - - my $first_time = 1; # First iteration of the loop? - my $suppress_line_start_match = 0; # Set to disable line start checks. - - my @lines = split (/\n/, $text); - while (@lines) # Don't use `foreach' here, it won't work. - { - my $this_line = shift (@lines); - chomp $this_line; - - if ($this_line =~ /^(\s+)/) { - $user_indent = $1; - } - else { - $user_indent = ''; - } - - # If it matches any of the line-start regexps, print a newline now... - if ($suppress_line_start_match) - { - $suppress_line_start_match = 0; - } - elsif (($this_line =~ /^(\s*)\*\s+[a-zA-Z0-9]/) - || ($this_line =~ /^(\s*)\* [a-zA-Z0-9_\.\/\+-]+/) - || ($this_line =~ /^(\s*)\([a-zA-Z0-9_\.\/\+-]+(\)|,\s*)/) - || ($this_line =~ /^(\s+)(\S+)/) - || ($this_line =~ /^(\s*)- +/) - || ($this_line =~ /^()\s*$/) - || ($this_line =~ /^(\s*)\*\) +/) - || ($this_line =~ /^(\s*)[a-zA-Z0-9](\)|\.|\:) +/)) - { - $length_remaining = $max_line_length - (length ($user_indent)); - } - - # Now that any user_indent has been preserved, strip off leading - # whitespace, so up-folding has no ugly side-effects. - $this_line =~ s/^\s*//; - - # Accumulate the line, and adjust parameters for next line. - my $this_len = length ($this_line); - if ($this_len == 0) - { - # Blank lines should cancel any user_indent level. - $user_indent = ''; - $length_remaining = $max_line_length; - } - elsif ($this_len >= $length_remaining) # Line too long, try breaking it. - { - # Walk backwards from the end. At first acceptable spot, break - # a new line. - my $idx = $length_remaining - 1; - if ($idx < 0) { $idx = 0 }; - while ($idx > 0) - { - if (substr ($this_line, $idx, 1) =~ /\s/) - { - my $line_now = substr ($this_line, 0, $idx); - my $next_line = substr ($this_line, $idx); - $this_line = $line_now; - - # Clean whitespace off the end. - chomp $this_line; - - # The current line is ready to be printed. - $this_line .= "\n${left_pad_str}"; - - # Make sure the next line is allowed full room. - $length_remaining = $max_line_length - (length ($user_indent)); - - # Strip next_line, but then preserve any user_indent. - $next_line =~ s/^\s*//; - - # Sneak a peek at the user_indent of the upcoming line, so - # $next_line (which will now precede it) can inherit that - # indent level. Otherwise, use whatever user_indent level - # we currently have, which might be none. - my $next_next_line = shift (@lines); - if ((defined ($next_next_line)) && ($next_next_line =~ /^(\s+)/)) { - $next_line = $1 . $next_line if (defined ($1)); - # $length_remaining = $max_line_length - (length ($1)); - $next_next_line =~ s/^\s*//; - } - else { - $next_line = $user_indent . $next_line; - } - if (defined ($next_next_line)) { - unshift (@lines, $next_next_line); - } - unshift (@lines, $next_line); - - # Our new next line might, coincidentally, begin with one of - # the line-start regexps, so we temporarily turn off - # sensitivity to that until we're past the line. - $suppress_line_start_match = 1; - - last; - } - else - { - $idx--; - } - } - - if ($idx == 0) - { - # We bottomed out because the line is longer than the - # available space. But that could be because the space is - # small, or because the line is longer than even the maximum - # possible space. Handle both cases below. - - if ($length_remaining == ($max_line_length - (length ($user_indent)))) - { - # The line is simply too long -- there is no hope of ever - # breaking it nicely, so just insert it verbatim, with - # appropriate padding. - $this_line = "\n${left_pad_str}${this_line}"; - } - else - { - # Can't break it here, but may be able to on the next round... - unshift (@lines, $this_line); - $length_remaining = $max_line_length - (length ($user_indent)); - $this_line = "\n${left_pad_str}"; - } - } - } - else # $this_len < $length_remaining, so tack on what we can. - { - # Leave a note for the next iteration. - $length_remaining = $length_remaining - $this_len; - - if ($this_line =~ /\.$/) - { - $this_line .= " "; - $length_remaining -= 2; - } - else # not a sentence end - { - $this_line .= " "; - $length_remaining -= 1; - } - } - - # Unconditionally indicate that loop has run at least once. - $first_time = 0; - - $wrapped_text .= "${user_indent}${this_line}"; - } - - # One last bit of padding. - $wrapped_text .= "\n"; - - return $wrapped_text; -} - -# main - -my @date; -my $author; -my @files; -my $comment; - -my $state; # 0-header 1-comment 2-files -my $done = 0; - -$state = 0; - -# if reading from STDIN, we assume that we are -# getting git log as input -if (key_ready()) -{ - - #my $dummyfh; # don't care about writing - #($fh,$dummyfh) = FileHandle::pipe; - $fh->fdopen(*STDIN, 'r'); -} -else -{ - $fh->open("LC_ALL=C git log --pretty --numstat --summary|") - or die("Cannot execute git log...$!\n"); -} - -while (my $_l = <$fh>) { - #print STDERR "debug ($state, " . (@date ? (strftime "%Y-%m-%d", @date) : "") . "): `$_'\n"; - if ($state == 0) { - if ($_l =~ m,^Author: (.*),) { - $author = $1; - } - if ($_l =~ m,^Date: (.*),) { - @date = strptime($1); - } - $state = 1 if ($_l =~ m,^$, and $author and (@date+0>0)); - } elsif ($state == 1) { - # * modifying our input text is a bad choice - # let's make a copy of it first, then we remove spaces - # * if we meet a "merge branch" statement, we need to start - # over and find a real entry - # Luis Mondesi - my $_s = $_l; - $_s =~ s/^ //g; - if ($_s =~ m/^Merge branch/) - { - @date = (); - $author = ""; - $state=0; - next; - } - if ($_s =~ m/^git-svn-id:/) - { - next; - } - $comment = $comment . $_s; - $state = 2 if ($_l =~ m,^$,); - } elsif ($state == 2) { - if ($_l =~ m,^([0-9]+)\t([0-9]+)\t(.*)$,) { - push @files, $3; - } - $done = 1 if ($_l =~ m,^$,); - } - - if ($done) { - print (strftime "%Y-%m-%d $author\n\n", @date); - - my $files = join (", ", @files); - $files = mywrap ("\t", "\t", "* $files"), ": "; - - if (index($comment, EMPTY_LOG_MESSAGE) > -1 ) { - $comment = "[no log message]\n"; - } - - my $files_last_line_len = 0; - $files_last_line_len = last_line_len($files) + 1; - my $msg = wrap_log_entry($comment, "\t", 69-$files_last_line_len, 69); - - $msg =~ s/[ \t]+\n/\n/g; - - print "$files: $msg\n"; - - @date = (); - $author = ""; - @files = (); - $comment = ""; - - $state = 0; - $done = 0; - } -} - -if (@date + 0) -{ - print (strftime "%Y-%m-%d $author\n\n", @date); - my $msg = wrap_log_entry($comment, "\t", 69, 69); - $msg =~ s/[ \t]+\n/\n/g; - print "\t* $msg\n"; -} diff --git a/build/unix/git_coreteam.py b/build/unix/git_coreteam.py deleted file mode 100755 index 6418b354d9d42..0000000000000 --- a/build/unix/git_coreteam.py +++ /dev/null @@ -1,203 +0,0 @@ -#!/usr/bin/python - -#Author: Timur Pocheptsov, 17/03/2014. -#A script to generate rootcoreteam.h from git stats. - -from urllib import urlopen -from HTMLParser import HTMLParser - -header1 = r"""#ifndef ROOT_ROOTCoreTeam -#define ROOT_ROOTCoreTeam - -namespace ROOT { -namespace ROOTX { - -//This file is automatically generated with names from http://root.cern.ch/gitstats/authors.html. -//The names are sorted in an alphabetical order (sorted by a family name). -//Please note the structure: it should be always like this - names as -//string literals in an array's initializer -//with a terminating 0 - that's what our rootxx.cxx and rootx-cocoa.mm expect. -//The array (or its elements actually) has an internal linkage -//(it has a definition here, not in rootxx.cxx or rootx-cocoa.mm files. -//Please, do not modify this file. - -const char * gROOTCoreTeam[] = { -""" - -header2 = r""" - 0}; -} -} - -#endif -""" - - -class ParserState: - #waiting must be the first, done and errorFound the last. - waiting = 0 #initial idle state - started = 1 # found, waiting for a header row. - parsingHeaderRow = 2 - parsingHeaderCell = 3 - parsingRow = 4 #we've parsed a header and now reading the table. - parsingCell = 5 - done = 6 #we stopped after the first table. - errorFound = 7 #something bad happend. - - -class GitStatsParser(HTMLParser) : - def __init__(self) : - HTMLParser.__init__(self) - - self.table = [] - self.state = ParserState.waiting - - #a couple of aux. functions. - def isParsing(self) : - return self.state > ParserState.waiting and self.state < ParserState.done - def isParsingCell(self) : - return self.state == ParserState.parsingCell or self.state == ParserState.parsingHeaderCell - - #start tags. we are interested only in the first
and - #any of , ,
, (in the correct order and place). - def handle_starttag(self, tag, attrs): - if self.state >= ParserState.done :#done or error. - return - - if tag == 'table' : - #we need only one table, when the state is 'waiting'. - if self.state == ParserState.waiting : - self.state = ParserState.started - else : - #any other state and means an error. - self.state = ParserState.errorFound - elif not self.isParsing() :#ignore tags outside of our table. - return - - if tag == 'tr' : - if self.state == ParserState.parsingRow : - #we can be here only after a valid header row. - self.currentColumn = 0 - #header is ... - elif self.state == ParserState.started : - # in every other state is an error. - self.state = ParserState.parsingHeaderRow - self.nFields = 0 - self.authorIndex = -1 - else : - self.state = ParserState.errorFound - elif tag == 'td' : - if self.state == ParserState.parsingRow : - #valid td can happen only inside a table's row. - self.state = ParserState.parsingCell - self.cellData = '' - else : - self.state = ParserState.errorFound - elif tag == 'th' : - if self.state == ParserState.parsingHeaderRow : - self.state = ParserState.parsingHeaderCell - self.cellData = '' - else : - self.state = ParserState.errorFound - - - def handle_endtag(self, tag) : - #we need only the first
......
or any of ,
. - if not self.isParsing() : #wating, done or error. - return - - if tag == 'table' : - if self.state == ParserState.parsingRow : - self.state = ParserState.done - else : - #??? unexpected
!!! - self.state = ParserState.errorFound - elif tag == 'th' : - #th outside of parsingHeader is an error. - if self.state == ParserState.parsingHeaderCell : - self.state = ParserState.parsingHeaderRow - if self.cellData.strip().lower() == 'author' : - if self.authorIndex == -1 : - self.authorIndex = self.nFields - else :#'Author' more than once. - self.state = ParserState.errorFound - self.nFields += 1 - else : - self.state = ParserState.errorFound - elif tag == 'tr' :# must close only. - if self.state == ParserState.parsingRow : - if self.nFields != self.currentColumn : - self.state = ParserState.errorFound - elif self.state == ParserState.parsingHeaderRow : - if self.authorIndex == -1 or not self.nFields : - self.state = ParserState.errorFound - else : - self.state = ParserState.parsingRow - self.currentColumn = 0 - else : - self.state = ParserState.errorFound - elif tag == 'td' :# must fo after - if self.state == ParserState.parsingCell : - if self.currentColumn == self.authorIndex : - #we got a name!!! - name = self.cellData.strip() - if name : - self.table.append(name) - self.state = ParserState.parsingRow - self.currentColumn += 1 - else : - self.state = ParserState.errorFound - - def handle_data(self, data) : - if self.state == ParserState.parsingHeaderCell or self.state == ParserState.parsingCell : - self.cellData += data - -#_____________________________________________________________________ -def sort_predicate(x, y) : - #Sort names using a family name. - name1 = x.split(' ') - name2 = y.split(' ') - if len(name1) == 2 and len(name2) == 2 : - return cmp(name1[1], name2[1]) - return cmp(x, y) - -#_____________________________________________________________________ -def generate_rootheader(names) : - if names : - output = open("rootcoreteam.h", "w") - output.write(header1) - coreTeam = '' - for name in names : - if coreTeam : - coreTeam += ',\n' - coreTeam += '\t"' + name + '"' - coreTeam += ',' - output.write(coreTeam) - output.write(header2) - -#_____________________________________________________________________ -def main() : - try : - url = "http://root.cern.ch/gitstats/authors.html" - html = urlopen(url).read() - if html : - parser = GitStatsParser() - parser.feed(html) - - if parser.state != ParserState.errorFound and parser.table : - names = parser.table - #fix some problems: - if 'CristinaCristescu' in names : - names.remove('CristinaCristescu') - names.append('Cristina Cristescu') - if 'Stefan Roiser' in names : - names.remove('Stefan Roiser') - names.append('Valeri Onuchine') - #names.sort(sort_predicate) - generate_rootheader(names) - except : - pass - - -if __name__ == '__main__' : - main() diff --git a/build/unix/githeader.sh b/build/unix/githeader.sh deleted file mode 100755 index a26a2a353f3ab..0000000000000 --- a/build/unix/githeader.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -# Generate the header file from the Store info about in which git branch, what SHA1 and at what date/time -# we executed make. - -echo '#ifndef ROOT_RGITCOMMIT_H' > $1 -echo '#define ROOT_RGITCOMMIT_H' >> $1 -echo '#define ROOT_GIT_BRANCH "'`head -n 1 etc/gitinfo.txt | tail -n1`'"' >> $1 -echo '#define ROOT_GIT_COMMIT "'`head -n 2 etc/gitinfo.txt | tail -n1`'"' >> $1 -echo '#endif' >> $1 - diff --git a/build/unix/gitinfo.sh b/build/unix/gitinfo.sh deleted file mode 100755 index b68093622eb07..0000000000000 --- a/build/unix/gitinfo.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash - -# Store info about in which git branch, what SHA1 and at what date/time -# we executed make. - -dir= -dotgit=".git" -git=git -if [ $# = 1 ]; then - if [ -x /bin/cygpath ]; then - dir=`cygpath -u $1` - git=/usr/bin/git - else - dir=$1 - fi - dotgit="$dir/.git" -fi - -# if we don't see the .git directory, just return -if test ! -d $dotgit; then - exit 0; -fi - -OUT=etc/gitinfo.txt - -git --git-dir=$dotgit describe --all > $OUT -git --git-dir=$dotgit describe --always >> $OUT -date "+%b %d %Y, %H:%M:%S" >> $OUT - -exit 0 diff --git a/build/unix/gitinfollvm.sh b/build/unix/gitinfollvm.sh deleted file mode 100755 index aa2e213c0eb38..0000000000000 --- a/build/unix/gitinfollvm.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash - -# Check version of interpreter/llvm directory and if it is changed force -# a make in the LLVM tree. It creates the file -# interpreter/llvm/obj/llvmrev.txt -# containing the current interpreter/llvm SHA1. -# If the current SHA1 is different from the stored SHA1, force a make -# in the LLVM tree. Script returns 1 when make has to be forced, 0 otherwise. -# Exit status is always 0. - -ret=0 -dir= -dotgit=".git" -git=git -if [ $# = 1 ]; then - if [ -x /bin/cygpath ]; then - dir=`cygpath -u $1` - git=/usr/bin/git - else - dir=$1 - fi - dotgit="$dir/.git" -fi - -# if we don't see the .git directory, just return -if test ! -d $dotgit; then - echo $ret - exit 0; -fi - -OUT=interpreter/llvm/obj/llvmrev.txt -revold= -rev=`$git --git-dir=$dotgit log -1 --pretty=format:"%h" -- interpreter/llvm` - -if [ -f $OUT ]; then - revold=`cat $OUT` - if [ $rev != $revold ]; then - ret=1 - fi -else - ret=1 -fi - -[ -d `dirname $OUT` ] || mkdir -p `dirname $OUT` -echo $rev > $OUT -echo $ret - -exit 0 diff --git a/build/unix/installDavix.sh b/build/unix/installDavix.sh deleted file mode 100755 index 87b13368a7d19..0000000000000 --- a/build/unix/installDavix.sh +++ /dev/null @@ -1,381 +0,0 @@ -#!/bin/bash - -# -# Script to install a given version of Davix -# created from the xrootd similar script -# -# Syntax: -# ./installDavix.sh [] [-h|--help] [-d|--debug] [-o|--optimized] -# [-v |--version=] -# [-t |--tarball=] -# [-b |--builddir=] -# [--dvxopts=""] -# [--vers-subdir[=]] [--no-vers-subdir] -# [-j |--jobs=] -# [-k|--keep] [--bzip2] -# -# See printhelp for a description of the options. -# - -printhelp() -{ - echo " " - echo " Script to install a given version of Davix" - echo " " - echo " Syntax:" - echo " ./installDavix.sh [] [-h|--help] [-d|--debug] [-o|--optimized]" - echo " [-v |--version=]" - echo " [-t |--tarball=]" - echo " [-b |--builddir=]" - echo " [--dvxopts=\"\"]" - echo " [-j |--jobs=]" - echo " [--vers-subdir[=]] [--no-vers-subdir]" - echo " [-k|--keep] [--bzip2]" - echo " " - echo " where" - echo " : the directory where the bin, lib, include/davix, share and" - echo " man directories will appear (see also --vers-subdir)" - echo " The default is ." - echo " -b , --builddir=" - echo " directory where to build; default /tmp/davix-" - echo " -d,--debug build in debug mode (no optimization)" - echo " -h, --help print this help screen" - echo " -o,--optimized build in optimized mode without any debug symbol" - echo " -t , --tarball=" - echo " full local path to source tarball" - echo " -v , --version=" - echo " version in the form x.j.w[-hash-or-tag] ;" - echo " current default 0.2.7-3" - echo " --dvxopts=" - echo " additional configuration options to davix" - echo " (see davix web site)" - echo " --no-vers-subdir install in instead of /davix-" - echo " (or /, see --vers-subdir" - echo " --vers-subdir[=]" - echo " install in / instead of" - echo " /davix- or . Has priority" - echo " over --no-vers-subdir. Default =davix-." - echo " This option is on by default." - echo " -j , --jobs=" - echo " number of build jobs to run simultaneously when bulding;" - echo " default is + 1." - echo " -k, --keep" - echo " keep the build directory" - echo " --bzip2" - echo " use bzip2 to manage the tarball (when extension is .b2z)" - echo " " - echo " When relevant, the script uses 'wget' ('curl' on MacOS X) to retrieve" - echo " the tarball" -} - -cleanbuilddir() -{ - if test ! "x$KEEP" = "xyes"; then - if test ! "x$BUILDDIR" = "x" && test -d $BUILDDIR ; then - rm -rf $BUILDDIR - fi - fi -} - -DBGOPT="-DCMAKE_BUILD_TYPE=RelWithDebInfo" -TGTDIR="." -VERS="" -TARBALL="" -BUILDDIR="" -XRDOPTS="" -VSUBDIR="davix-" -MAKEMJ="" -KEEP="" -UNZIP="gunzip" -TUNZIP="xzf" - -# -# Parse long options first -other_args= -short_opts= -is_short="no" -for i in $@ ; do - opt="" - case $i in - --*) opt=`echo "$i" | sed 's/--//'` ;; - -*) if test "x$short_opts" = "x" ; then - short_opts="$i" ; - else - short_opts="$short_opts $i" ; - fi; is_short="yes" ;; - *) if test "x$is_short" = "xyes" ; then - if test "x$short_opts" = "x" ; then - short_opts="$i" ; - else - short_opts="$short_opts $i" ; - fi; - is_short="no" - else - if test "x$other_args" = "x" ; then - other_args="$i"; - else - other_args="$other_args $i"; - fi; - fi; - esac - if test ! "x$opt" = "x" ; then - case "$opt" in - *=*) oarg=`echo "$opt" | sed 's/[-_a-zA-Z0-9]*=//'`;; - *) oarg= ;; - esac ; - case $opt in - builddir=*) BUILDDIR="$oarg" ;; - debug) DBGOPT="-DCMAKE_BUILD_TYPE=Debug" ;; - help) printhelp ; exit ;; - jobs) MAKEMJ="-j$OPTARG" ;; - no-vers-subdir) VSUBDIR="" ;; - optimized) DBGOPT="-DCMAKE_BUILD_TYPE=Release" ;; - tarball=*) TARBALL="$oarg" ;; - version=*) VERS="$oarg" ;; - vers-subdir) VSUBDIR="davix-" ;; - vers-subdir=*) VSUBDIR="$oarg" ;; - xrdopts=*) XRDOPTS="$oarg" ;; - keep) KEEP="yes" ;; - bzip2) UNZIP="bunzip2" ; TUNZIP="xjf" ;; - esac - fi -done - -if test ! "x$short_opts" = "x" ; then - while getopts b:j:t:v:dhok i $short_opts ; do - case $i in - b) BUILDDIR="$OPTARG" ;; - d) DBGOPT="-DCMAKE_BUILD_TYPE=Debug" ;; - h) printhelp ; exit ;; - j) MAKEMJ="-j$OPTARG" ;; - o) DBGOPT="-DCMAKE_BUILD_TYPE=Release" ;; - t) TARBALL="$OPTARG" ;; - v) VERS="$OPTARG" ;; - k) KEEP="yes" ;; - \?) printhelp; exit 1 ;; - esac - if test ! "x$OPTARG" = "x" ; then - noa= - for a in $other_args ; do - if test ! "x$OPTARG" = "x$a" ; then - if test "x$noa" = "x" ; then - noa="$a" - else - noa="$noa $a" - fi - fi - done - other_args=$noa - fi - done -fi - -# Fill empty fields with any non-prefixed argument -if test ! "x$other_args" = "x" ; then - TGTDIR="$other_args" -fi - -XMK=make - -WRKDIR=$PWD - -if test "x$TGTDIR" = "x" ; then - echo " Install dir undefined!" - printhelp - exit 1 -else - tgtd="$TGTDIR" - TGTDIR=`(cd $tgtd && pwd)` - if [ "$?" -ne "0" ]; then - echo "Install dir $tgtd does not exist, please create it first." - exit 1 - fi -fi - -if test "x$VERS" = "x" ; then - VERS="0.2.10" -fi -echo "Version: $VERS" - -if test ! "x$VSUBDIR" = "x" ; then - TGTDIR="$TGTDIR/$VSUBDIR$VERS" -fi -echo "Installing in: $TGTDIR" - -retrieve="yes" -if test ! "x$TARBALL" = "x" && test -f $TARBALL ; then - retrieve="no" - TGTBALL=$TARBALL -fi -if test "x$retrieve" = "xyes" ; then - if test "x$TARBALL" = "x" ; then - TARBALL="http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/davix-$VERS.tar.gz" - TGTBALL="davix-$VERS.tar.gz" - else - TGTBALL=`basename $TARBALL` - fi -fi -if test "x$retrieve" = "xyes" ; then - echo "Retrieving source from tarball $TARBALL" -else - echo "Building tarball $TARBALL" -fi - -# Build dir -if test "x$BUILDDIR" = "x"; then - BUILDDIR="/tmp/davix-$VERS-$RANDOM" -fi -if test ! -d $BUILDDIR ; then - mkdir -p $BUILDDIR - if test ! -d $BUILDDIR ; then - echo "Could not create build dir $BUILDDIR, exiting..." - exit 1 - fi -else - # Builddir already exists, exit - echo "Build dir $BUILDDIR already exists, exiting..." - exit 1 -fi -echo "Build dir: $BUILDDIR" - -cd $BUILDDIR - -# Retrieving source -ARCH=`uname -s` -if test "x$retrieve" = "xyes" ; then - if test "x$ARCH" = "xDarwin" ; then - curl $TARBALL -o $TGTBALL - else - wget $TARBALL -O $TGTBALL - fi - if test ! -f $TGTBALL ; then - echo "Tarball retrieval failed!" - cd $WRKDIR - cleanbuilddir - exit 1 - fi -fi - -# Untar tarball -if test "x$ARCH" = "xSunOS" ; then - XMK="gmake" - $UNZIP -c $TGTBALL > "$TGTBALL.tar" - tar xf "$TGTBALL.tar" - rm -f "$TGTBALL.tar" -else - tar $TUNZIP $TGTBALL -fi -if test ! -d davix-$VERS ; then - echo "Could not find source sub-directory davix-$VERS" - cd $WRKDIR - cleanbuilddir - exit 1 -fi -cd davix-$VERS - -# CMake or old {make,configure} ? -if test -f CMakeLists.txt ; then - - # CMake: check if there - XCMK=`which cmake 2> /dev/null` - echo "XCMK = '$XCMK'" - if test "x$XCMK" = "x" || test ! -f $XCMK ; then - echo " " - echo "To build davix cmake is required: " - echo "you can get it from http://cmake.org/cmake/resources/software.html" - echo "or from the software manager of your system" - echo " " - cd $WRKDIR - cleanbuilddir - exit 1 - fi - - # Check that we can build this version - #if test ! -r VERSION_INFO ; then - # echo "VERSION_INFO file not found: this davix version is probably too old and cannot be built by this script" - # cd $WRKDIR - # cleanbuilddir - # exit 1 - #fi - - # Create build directory - mkdir build - cd build - - # Configure - $XCMK -DCMAKE_INSTALL_PREFIX=$TGTDIR $DBGOPT $XRDOPTS .. - - # Get the '-j' setting if not specified - if test "x$MAKEMJ" = "x" ; then - MJ=`grep -c bogomips /proc/cpuinfo 2> /dev/null` - [ "$?" != 0 ] && MJ=`sysctl hw.ncpu | cut -b10 2> /dev/null` - let MJ++ - MAKEMJ="-j$MJ" - fi - - # Build - $XMK $MAKEMJ - if [ "$?" != "0" ] ; then - echo "Problems running $XMK $MAKEMJ ..." - cd $WRKDIR - cleanbuilddir - exit "$?" - fi - - # Install - $XMK install - if [ "$?" != "0" ] ; then - echo "Problems running $XMK install ..." - cd $WRKDIR - cleanbuilddir - exit "$?" - fi - -else - - # Old {configure,make} - - # Check that we can build this version - if test ! -r configure.classic ; then - echo "configure.classic file not found: this davix version cannot be built by this script" - cd $WRKDIR - cleanbuilddir - exit 1 - fi - - # Configure options - if test "x$DBGOPT" = "xRelease" ; then - DBGOPT="" - else - DBGOPT="--build=debug" - fi - CFGOPT="--disable-krb4 --no-arch-subdirs --disable-mon --enable-krb5" - - # Configure - ./configure.classic --prefix=$TGTDIR $DBGOPT $CFGOPT $XRDOPTS - if [ "$?" != "0" ] ; then - echo "Problems running configure.classic ..." - cd $WRKDIR - cleanbuilddir - exit "$?" - fi - - # Make - $XMK - if [ "$?" != "0" ] ; then - echo "Problems running $XMK ..." - cd $WRKDIR - cleanbuilddir - exit "$?" - fi - - # Install - $XMK install - -fi - -# Go back where we started -cd $WRKDIR -cleanbuilddir - -exit diff --git a/build/unix/installXrootd.sh b/build/unix/installXrootd.sh deleted file mode 100755 index b35133efe74f5..0000000000000 --- a/build/unix/installXrootd.sh +++ /dev/null @@ -1,381 +0,0 @@ -#!/bin/bash - -# -# Script to install a given version of Xrootd/Scalla -# -# Syntax: -# ./installXrootd.sh [] [-h|--help] [-d|--debug] [-o|--optimized] -# [-v |--version=] -# [-t |--tarball=] -# [-b |--builddir=] -# [--xrdopts=""] -# [--vers-subdir[=]] [--no-vers-subdir] -# [-j |--jobs=] -# [-k|--keep] [--bzip2] -# -# See printhelp for a description of the options. -# - -printhelp() -{ - echo " " - echo " Script to install a given version of Xrootd/Scalla" - echo " " - echo " Syntax:" - echo " ./installXrootd.sh [] [-h|--help] [-d|--debug] [-o|--optimized]" - echo " [-v |--version=]" - echo " [-t |--tarball=]" - echo " [-b |--builddir=]" - echo " [--xrdopts=\"\"]" - echo " [-j |--jobs=]" - echo " [--vers-subdir[=]] [--no-vers-subdir]" - echo " [-k|--keep] [--bzip2]" - echo " " - echo " where" - echo " : the directory where the bin, lib, include/xrootd, share and" - echo " man directories will appear (see also --vers-subdir)" - echo " The default is ." - echo " -b , --builddir=" - echo " directory where to build; default /tmp/xrootd-" - echo " -d,--debug build in debug mode (no optimization)" - echo " -h, --help print this help screen" - echo " -o,--optimized build in optimized mode without any debug symbol" - echo " -t , --tarball=" - echo " full local path to source tarball" - echo " -v , --version=" - echo " version in the form x.j.w[-hash-or-tag] ;" - echo " current default 4.3.0" - echo " --xrdopts=" - echo " additional configuration options to xrootd; pass one switch per each" - echo " additional option, i.e. --xrdopts=\"add-opt-1\" --xrdopts=\"add-opt-2\"" - echo " (see xrootd web site for available options)" - echo " --no-vers-subdir install in instead of /xrootd-" - echo " (or /, see --vers-subdir" - echo " --vers-subdir[=]" - echo " install in / instead of" - echo " /xrootd- or . Has priority" - echo " over --no-vers-subdir. Default =xrootd-." - echo " This option is on by default." - echo " -j , --jobs=" - echo " number of build jobs to run simultaneously when bulding;" - echo " default is + 1." - echo " -k, --keep" - echo " keep the build directory" - echo " --bzip2" - echo " use bzip2 to manage the tarball (when extension is .b2z)" - echo " " - echo " When relevant, the script uses 'wget' ('curl' on MacOS X) to retrieve" - echo " the tarball" -} - -cleanbuilddir() -{ - if test ! "x$KEEP" = "xyes"; then - if test ! "x$BUILDDIR" = "x" && test -d $BUILDDIR ; then - rm -rf $BUILDDIR - fi - fi -} - -DBGOPT="-DCMAKE_BUILD_TYPE=RelWithDebInfo" -TGTDIR="." -VERS="" -TARBALL="" -BUILDDIR="" -XRDOPTS="" -VSUBDIR="xrootd-" -MAKEMJ="" -KEEP="" -UNZIP="gunzip" -TUNZIP="xzf" - -# -# Parse long options first -other_args= -short_opts= -is_short="no" -for i in $@ ; do - opt="" - case $i in - --*) opt=`echo "$i" | sed 's/--//'` ;; - -*) if test "x$short_opts" = "x" ; then - short_opts="$i" ; - else - short_opts="$short_opts $i" ; - fi; is_short="yes" ;; - *) if test "x$is_short" = "xyes" ; then - if test "x$short_opts" = "x" ; then - short_opts="$i" ; - else - short_opts="$short_opts $i" ; - fi; - is_short="no" - else - if test "x$other_args" = "x" ; then - other_args="$i"; - else - other_args="$other_args $i"; - fi; - fi; - esac - if test ! "x$opt" = "x" ; then - case "$opt" in - *=*) oarg=`echo "$opt" | sed 's/[-_a-zA-Z0-9]*=//'`;; - *) oarg= ;; - esac ; - case $opt in - builddir=*) BUILDDIR="$oarg" ;; - debug) DBGOPT="-DCMAKE_BUILD_TYPE=Debug" ;; - help) printhelp ; exit ;; - jobs) MAKEMJ="-j$OPTARG" ;; - no-vers-subdir) VSUBDIR="" ;; - optimized) DBGOPT="-DCMAKE_BUILD_TYPE=Release" ;; - tarball=*) TARBALL="$oarg" ;; - version=*) VERS="$oarg" ;; - vers-subdir) VSUBDIR="xrootd-" ;; - vers-subdir=*) VSUBDIR="$oarg" ;; - xrdopts=*) XRDOPTS="$XRDOPTS $oarg" ;; - keep) KEEP="yes" ;; - bzip2) UNZIP="bunzip2" ; TUNZIP="xjf" ;; - esac - fi -done - -if test ! "x$short_opts" = "x" ; then - while getopts b:j:t:v:dhok i $short_opts ; do - case $i in - b) BUILDDIR="$OPTARG" ;; - d) DBGOPT="-DCMAKE_BUILD_TYPE=Debug" ;; - h) printhelp ; exit ;; - j) MAKEMJ="-j$OPTARG" ;; - o) DBGOPT="-DCMAKE_BUILD_TYPE=Release" ;; - t) TARBALL="$OPTARG" ;; - v) VERS="$OPTARG" ;; - k) KEEP="yes" ;; - \?) printhelp; exit 1 ;; - esac - if test ! "x$OPTARG" = "x" ; then - noa= - for a in $other_args ; do - if test ! "x$OPTARG" = "x$a" ; then - if test "x$noa" = "x" ; then - noa="$a" - else - noa="$noa $a" - fi - fi - done - other_args=$noa - fi - done -fi - -# Fill empty fields with any non-prefixed argument -if test ! "x$other_args" = "x" ; then - TGTDIR="$other_args" -fi - -XMK=make - -WRKDIR=$PWD - -if test "x$TGTDIR" = "x" ; then - echo " Install dir undefined!" - printhelp - exit 1 -else - tgtd="$TGTDIR" - TGTDIR=`(cd $tgtd && pwd)` - if [ "$?" -ne "0" ]; then - echo "Install dir $tgtd does not exist, please create it first." - exit 1 - fi -fi - -if test "x$VERS" = "x" ; then - VERS="4.2.1" -fi -echo "Version: $VERS" - -if test ! "x$VSUBDIR" = "x" ; then - TGTDIR="$TGTDIR/$VSUBDIR$VERS" -fi -echo "Installing in: $TGTDIR" - -retrieve="yes" -if test ! "x$TARBALL" = "x" && test -f $TARBALL ; then - retrieve="no" - TGTBALL=$TARBALL -fi -if test "x$retrieve" = "xyes" ; then - if test "x$TARBALL" = "x" ; then - TARBALL="http://xrootd.org/download/v$VERS/xrootd-$VERS.tar.gz" - TGTBALL="xrootd-$VERS.tar.gz" - else - TGTBALL=`basename $TARBALL` - fi -fi -if test "x$retrieve" = "xyes" ; then - echo "Retrieving source from tarball $TARBALL" -else - echo "Building tarball $TARBALL" -fi - -# Build dir -if test "x$BUILDDIR" = "x"; then - BUILDDIR="/tmp/xrootd-$VERS-$RANDOM" -fi -if test ! -d $BUILDDIR ; then - mkdir -p $BUILDDIR - if test ! -d $BUILDDIR ; then - echo "Could not create build dir $BUILDDIR, exiting..." - exit 1 - fi -else - # Builddir already exists, exit - echo "Build dir $BUILDDIR already exists, exiting..." - exit 1 -fi -echo "Build dir: $BUILDDIR" - -cd $BUILDDIR - -# Retrieving source -ARCH=`uname -s` -if test "x$retrieve" = "xyes" ; then - if test "x$ARCH" = "xDarwin" ; then - curl $TARBALL -o $TGTBALL - else - wget $TARBALL -O $TGTBALL - fi - if test ! -f $TGTBALL ; then - echo "Tarball retrieval failed!" - cd $WRKDIR - cleanbuilddir - exit 1 - fi -fi - -# Untar tarball -if test "x$ARCH" = "xSunOS" ; then - XMK="gmake" - $UNZIP -c $TGTBALL > "$TGTBALL.tar" - tar xf "$TGTBALL.tar" - rm -f "$TGTBALL.tar" -else - tar $TUNZIP $TGTBALL -fi -if test ! -d xrootd-$VERS ; then - echo "Could not find source sub-directory xrootd-$VERS" - cd $WRKDIR - cleanbuilddir - exit 1 -fi -cd xrootd-$VERS - -# CMake or old {make,configure} ? -if test -f CMakeLists.txt ; then - - # CMake: check if there - XCMK=`which cmake 2> /dev/null` - echo "XCMK = '$XCMK'" - if test "x$XCMK" = "x" || test ! -f $XCMK ; then - echo " " - echo "To build xrootd cmake is required: " - echo "you can get it from http://cmake.org/cmake/resources/software.html" - echo "or from the software manager of your system" - echo " " - cd $WRKDIR - cleanbuilddir - exit 1 - fi - - # Check that we can build this version - if test ! -r VERSION_INFO ; then - echo "VERSION_INFO file not found: this xrootd version is probably too old and cannot be built by this script" - cd $WRKDIR - cleanbuilddir - exit 1 - fi - - # Create build directory - mkdir build - cd build - - # Configure - $XCMK -DCMAKE_INSTALL_PREFIX=$TGTDIR $DBGOPT $XRDOPTS .. - - # Get the '-j' setting if not specified - if test "x$MAKEMJ" = "x" ; then - MJ=`grep -c bogomips /proc/cpuinfo 2> /dev/null` - [ "$?" != 0 ] && MJ=`sysctl hw.ncpu | cut -b10 2> /dev/null` - let MJ++ - MAKEMJ="-j$MJ" - fi - - # Build - $XMK $MAKEMJ - if [ "$?" != "0" ] ; then - echo "Problems running $XMK $MAKEMJ ..." - cd $WRKDIR - cleanbuilddir - exit "$?" - fi - - # Install - $XMK install - if [ "$?" != "0" ] ; then - echo "Problems running $XMK install ..." - cd $WRKDIR - cleanbuilddir - exit "$?" - fi - -else - - # Old {configure,make} - - # Check that we can build this version - if test ! -r configure.classic ; then - echo "configure.classic file not found: this xrootd version cannot be built by this script" - cd $WRKDIR - cleanbuilddir - exit 1 - fi - - # Configure options - if test "x$DBGOPT" = "xRelease" ; then - DBGOPT="" - else - DBGOPT="--build=debug" - fi - CFGOPT="--disable-krb4 --no-arch-subdirs --disable-mon --enable-krb5" - - # Configure - ./configure.classic --prefix=$TGTDIR $DBGOPT $CFGOPT $XRDOPTS - if [ "$?" != "0" ] ; then - echo "Problems running configure.classic ..." - cd $WRKDIR - cleanbuilddir - exit "$?" - fi - - # Make - $XMK - if [ "$?" != "0" ] ; then - echo "Problems running $XMK ..." - cd $WRKDIR - cleanbuilddir - exit "$?" - fi - - # Install - $XMK install - -fi - -# Go back where we started -cd $WRKDIR -cleanbuilddir - -exit diff --git a/build/unix/libc.modulemap b/build/unix/libc.modulemap deleted file mode 100644 index 3a7c6a0826e15..0000000000000 --- a/build/unix/libc.modulemap +++ /dev/null @@ -1,40 +0,0 @@ -module "libc" { - export * - module "assert.h" { - export * - header "assert.h" - } - module "ctype.h" { - export * - header "ctype.h" - } - module "errno.h" { - export * - header "errno.h" - } - module "fenv.h" { - export * - header "fenv.h" - } - module "float.h" { - export * - header "float.h" - } - module "inttypes.h" { - export * - header "inttypes.h" - } - - module "xlocale.h" { - export * - header "xlocale.h" - } - module "math.h" { - export * - header "math.h" - } - module "stdio.h" { - export * - header "stdio.h" - } -} diff --git a/build/unix/makechangelog.sh b/build/unix/makechangelog.sh deleted file mode 100755 index b28351e820184..0000000000000 --- a/build/unix/makechangelog.sh +++ /dev/null @@ -1,13 +0,0 @@ -#! /bin/sh - -ROOTSRCDIR=$1 -GIT2CL=$ROOTSRCDIR/build/unix/git2cl.pl - -echo "" -echo "Generating README/ChangeLog from Git logs..." -echo "" - -# Generate ChangeLog from version v5-33-01 till now -( cd $ROOTSRCDIR && LC_ALL=C git log --pretty --numstat --summary 82607481af2c5a2ece9a0d343fe795b00f3940d8..HEAD ) | $GIT2CL > README/ChangeLog - -exit 0 diff --git a/build/unix/makedist.sh b/build/unix/makedist.sh deleted file mode 100755 index 4c015d9c9c9c8..0000000000000 --- a/build/unix/makedist.sh +++ /dev/null @@ -1,104 +0,0 @@ -#! /bin/sh - -# Script to produce binary distribution of ROOT. -# Called by main Makefile. -# -# Author: Fons Rademakers, 29/2/2000 - -# first arguments is the source directory -if [ $# -ge 1 ]; then - ROOT_SRCDIR=$1 - shift -else - echo "$0: expecting at least ROOT_SRCDIR as first argument" - exit 1 -fi - -ROOTVERS=`cat $ROOT_SRCDIR/build/version_number | sed -e 's/\//\./'` -TYPE=`bin/root-config --arch` -if [ "x`bin/root-config --platform`" = "xmacosx" ]; then - TYPE=$TYPE-`sw_vers -productVersion | cut -d . -f1 -f2` - TYPE=$TYPE-`uname -p` - # /usr/bin/tar on OSX is BSDTAR which is for our purposes GNU tar compatible - TAR=/usr/bin/tar -fi -if [ "x`bin/root-config --platform`" = "xsolaris" ]; then - TYPE=$TYPE-`uname -r` - TYPE=$TYPE-`uname -p` -fi - -# debug build? -DEBUG= -BUILDOPT=`grep ROOTBUILD config/Makefile.config` -if [ "x$BUILDOPT" != "x" ]; then - if echo $BUILDOPT | grep debug > /dev/null 2>& 1 ; then - DEBUG=".debug" - fi -else - if echo $ROOTBUILD | grep debug > /dev/null 2>& 1 ; then - DEBUG=".debug" - fi -fi - -# MSI? -if [ "x$1" = "x-msi" ]; then - MSI=1 - shift -fi - -# compiler specified? -COMPILER=$1 -if [ "x${COMPILER}" != "x" ]; then - COMPILER="-${COMPILER}" -fi - -TARFILE=root_v${ROOTVERS}.${TYPE}${COMPILER}${DEBUG} -# figure out which tar to use -if [ "x$MSI" = "x1" ]; then - TARFILE=../${TARFILE}.msi - TARCMD="$ROOT_SRCDIR/build/package/msi/makemsi.sh ${TARFILE} -T ${TARFILE}.filelist" -else - TARFILE=${TARFILE}.tar - ISGNUTAR="`tar --version 2>&1 | grep GNU`" - if [ "x${ISGNUTAR}" != "x" ]; then - TAR=tar - else - if [ "x`which gtar 2>/dev/null | awk '{if ($1~/gtar/) print $1;}'`" != "x" ]; then - TAR=gtar - fi - fi - if [ "x${TAR}" != "x" ]; then - TARFILE=${TARFILE}".gz" - TARCMD="${TAR} zcvf ${TARFILE} -T ${TARFILE}.filelist" - else - # use r to append to archive which is needed when using xargs - TARCMD="tar rvf ${TARFILE}" - DOGZIP="y" - fi -fi - -cp -f $ROOT_SRCDIR/main/src/rmain.cxx include/ -pwd=`pwd` -if [ "x${MSI}" = "x" ]; then - dir=`basename $pwd` - cd .. -fi - -$ROOT_SRCDIR/build/unix/distfilelist.sh $dir > ${TARFILE}.filelist -rm -f ${TARFILE} -if [ "x${TAR}" != "x" ] || [ "x$MSI" = "x1" ]; then - $TARCMD || exit 1 -else - (cat ${TARFILE}.filelist | xargs $TARCMD) || exit 1 -fi -rm ${TARFILE}.filelist - -if [ "x$DOGZIP" = "xy" ]; then - rm -f ${TARFILE}.gz - gzip $TARFILE -fi - -cd $pwd -rm -f include/rmain.cxx - -exit 0 diff --git a/build/unix/makedistsrc.sh b/build/unix/makedistsrc.sh deleted file mode 100755 index 1fcba34ddb2df..0000000000000 --- a/build/unix/makedistsrc.sh +++ /dev/null @@ -1,25 +0,0 @@ -#! /bin/sh - -ROOTSRCDIR=$1 - -CURVERS=`cat $ROOTSRCDIR/build/version_number | sed -e "s/^/v/" -e "s/\./-/" -e "s/\//-/"` -ROOTVERS=`cat $ROOTSRCDIR/build/version_number | sed -e 's/\//\./'` -TYPE=source -TARFILE=root_v$ROOTVERS.$TYPE.tar - -( cd $ROOTSRCDIR; git checkout $CURVERS ) -# generate etc/gitinfo.txt -$ROOTSRCDIR/build/unix/gitinfo.sh $ROOTSRCDIR - -( cd $ROOTSRCDIR; git archive -v -o ../$TARFILE --prefix=root-$ROOTVERS/ $CURVERS ) - -mkdir -p etc/root-$ROOTVERS/etc -cp etc/gitinfo.txt etc/root-$ROOTVERS/etc/ -cd etc -tar -r -vf ../../$TARFILE root-$ROOTVERS/etc/gitinfo.txt -cd .. -rm -rf etc/root-$ROOTVERS -cd .. -gzip $TARFILE - -exit 0 diff --git a/build/unix/makehtml.sh b/build/unix/makehtml.sh deleted file mode 100755 index a94e7905faf88..0000000000000 --- a/build/unix/makehtml.sh +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh - -dir=`pwd` -ROOT=$dir/bin/root -cd tutorials -# we need tutorials/hsimple.root -if [ ! -f hsimple.root ]; then - $ROOT -n -l -b -q hsimple.C -fi -cd tree -# we need tutorials/tree/cernstaff.root -if [ ! -f cernstaff.root ]; then - $ROOT -n -l -b -q cernbuild.C -fi -cd $dir - -echo "" -echo "Generating doc in directory htmldoc/..." -echo "" - -# To generate the full documentation, we do need to -# use the graphics engine, so do not use '-b'. -$ROOT -n -l < $LIB done" - -exit 0 diff --git a/build/unix/makeloghtml.sh b/build/unix/makeloghtml.sh deleted file mode 100755 index 3b39e21ed68a9..0000000000000 --- a/build/unix/makeloghtml.sh +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh - -dir=`pwd` -ROOT=$dir/bin/root -ROOTCONFIG=$dir/bin/root-config - -VERS=`$ROOTCONFIG --prefix=. --version` - -echo "" -echo "Generating hyperized version of README/ChangeLog in directory htmldoc/..." -echo "" - -$ROOT -b -l <, 2014-10-16 -# Translated to Python by Danilo Piparo, 2015-04-22 - -from __future__ import print_function -import sys -import os -import glob -import shutil - -#------------------------------------------------------------------------------- -def removeFiles(filesList): - existingFilesList = filter(os.path.exists,filesList) - map(os.unlink, existingFilesList) - -#------------------------------------------------------------------------------- -def removeLeftOvers(): - """ - Remove leftover files from old versions of this script. - """ - filesToRemove = [os.path.join("include","allHeaders.h"), - os.path.join("include","allHeaders.h.pch"), - os.path.join("include","allLinkDef.h"), - "all.h", - "cppflags.txt", - os.path.join("include","allLinkDef.h"), - os.path.join("etc","allDict.cxx"), - os.path.join("etc","allDict.cxx.h")] - removeFiles(filesToRemove) - -#------------------------------------------------------------------------------- -def getParams(): - """ - Extract parameters from the commandline, which looks like - makePCHInput.py ZZZ XXX YYY -- CXXFLAGS - """ - argv = sys.argv - rootSrcDir, modules = argv[1:3] - posDelim = argv.index('--') - clingetpchList = argv[3:posDelim] - cxxflags = argv[posDelim + 1:] - #print (', '.join(cxxflags)) - cxxflagsNoW = [flag for flag in cxxflags if (flag[0:2] != '-W' and flag[0:3] != '-wd' and \ - flag[0:2] != '-x' and flag[0:3] != '-ax' and \ - flag[0:2] != '-O' and flag[0:5] != '-arch') \ - or flag[0:4] == '-Wno'] - #print (', '.join(cxxflagsNoW)) - - return rootSrcDir, modules, clingetpchList, cxxflagsNoW - -#------------------------------------------------------------------------------- -def getGuardedStlInclude(headerName): - return '#if __has_include("%s")\n' %headerName +\ - '#include <%s>\n' %headerName +\ - '#endif\n' - -#------------------------------------------------------------------------------- -def getSTLIncludes(): - """ - Here we include the list of c++11 stl headers - From http://en.cppreference.com/w/cpp/header - regex is removed until ROOT-7004 is fixed - """ - stlHeadersList = ("cstdlib", - "csignal", - "csetjmp", - "cstdarg", - "typeinfo", - "typeindex", - "type_traits", - "bitset", - "functional", - "utility", - "ctime", - "chrono", - "cstddef", - "initializer_list", - "tuple", - "new", - "memory", - "scoped_allocator", - "climits", - "cfloat", - "cstdint", - "cinttypes", - "limits", - "exception", - "stdexcept", - "cassert", - "system_error", - "cerrno", - "cctype", - "cwctype", - "cstring", - "cwchar", - "cuchar", - "string", - "array", - "vector", - "deque", - "list", - "forward_list", - "set", - "map", - "unordered_set", - "unordered_map", - "stack", - "queue", - "algorithm", - "iterator", - "cmath", - "complex", - "valarray", - "random", - "numeric", - "ratio", - "cfenv", - "iosfwd", - "ios", - "istream", - "ostream", - "iostream", - "fstream", - "sstream", - "iomanip", - "streambuf", - "cstdio", - "locale", - "clocale", - "codecvt", - "atomic", - "thread", - "mutex", - "future", - "condition_variable", - "ciso646", - "ccomplex", - "ctgmath", - "cstdalign", - "cstdbool") - - allHeadersPartContent = "// STL headers\n" - - for header in stlHeadersList: - allHeadersPartContent += getGuardedStlInclude(header) - - # Special case for regex - allHeadersPartContent += '// treat regex separately\n' +\ - '#if __has_include("regex") && !defined __APPLE__\n' +\ - '#include \n' +\ - '#endif\n' - - # treat this deprecated headers in a special way - stlDeprecatedHeadersList=["strstream"] - allHeadersPartContent += '// STL Deprecated headers\n' +\ - '#define _BACKWARD_BACKWARD_WARNING_H\n' +\ - "#pragma clang diagnostic push\n" +\ - '#pragma GCC diagnostic ignored "-Wdeprecated"\n' - - for header in stlDeprecatedHeadersList: - allHeadersPartContent += getGuardedStlInclude(header) - - allHeadersPartContent += '#pragma clang diagnostic pop\n' +\ - '#undef _BACKWARD_BACKWARD_WARNING_H\n' - return allHeadersPartContent - -#------------------------------------------------------------------------------- -def getExtraIncludes(headers): - """ - Add include files according to list - """ - allHeadersPartContent="" - for header in headers: - allHeadersPartContent+='#include "%s"\n' %header - return allHeadersPartContent - -#------------------------------------------------------------------------------- -def getDictNames(theDirName): - """ - Get a list of all dictionaries in a directory - """ - #`find $modules -name 'G__*.cxx' 2> /dev/null | grep -v core/metautils/src/G__std_`; do - wildcards = (os.path.join(theDirName , "*", "*", "G__*.cxx"), - os.path.join(theDirName , "*", "G__*.cxx")) - allDictNames = [] - for wildcard in wildcards: - allDictNames += glob.glob(wildcard) - stdDictpattern = os.path.join("core","metautils","src","G__std_") - dictNames = filter (lambda dictName: not (stdDictpattern in dictName),allDictNames ) - return dictNames - -#------------------------------------------------------------------------------- -def getDirName(dictName): - """ - foo/src/G__PIPPO.cxx --> foo/ - """ - # get rid of the drive on win - dirName = os.path.splitdrive(dictName) - - # foo/src/G__PIPPO.cxx --> foo/src/ - dirName = os.path.split(dictName)[0] - - # foo/src/ --> foo/src - dirName = dirName[:-1] - - # foo/src --> foo/ - return os.path.normpath(os.path.split(dictName)[0]) - -#------------------------------------------------------------------------------- -def isAnyPatternInString(patterns,theString): - """ - Check if any of the patterns is contained in the string - """ - for pattern in patterns: - if pattern in theString: return True - return False - -#------------------------------------------------------------------------------- -def isDirForPCH(dirName): - """ - Check if the directory corresponds to a module whose headers must belong to - the PCH - """ - PCHPatternsWhitelist = ("interpreter/", - "core/", - "io/io", - "net/net", - "math/", - "hist/", - "tree/", - "graf2d", - "graf3d/ftgl", - "graf3d/g3d", - "graf3d/gl", - "gui/gui", - "gui/fitpanel", - "rootx", - "bindings/pyroot", - "roofit/", - "tmva", - "main") - PCHPatternsBlacklist = ("graf2d/qt", - "gui/guihtml", - "gui/guibuilder", - "math/fftw", - "math/foam", - "math/fumili", - "math/mlp", - "math/quadp", - "math/rtools" - "math/splot", - "math/unuran", - "math/vdt", - "tmva/rmva") - - accepted = isAnyPatternInString(PCHPatternsWhitelist,dirName) and \ - not isAnyPatternInString(PCHPatternsBlacklist,dirName) - - return accepted - -#------------------------------------------------------------------------------- -def getLinesFromDict(marker, dictFileName): - """ - Search for the line marker - in the dictionary and save all lines until the line '0' - Return them as List - """ - selectedLines = [] - ifile = open(dictFileName) - lines = ifile.readlines() - ifile.close() - recording = False - for line in lines: - if marker in line: - recording = True - continue - - if recording and "0" == line[0]: break - - if recording: - selectedLines.append(line[:-1]) - - return selectedLines - -#------------------------------------------------------------------------------- -def getIncludeLinesFromDict(dictFileName): - """ - Search for the headers after the line - 'static const char* headers[]' - Return the code to be added to the allHeaders as string - """ - allHeadersPartContent="" - selectedLines = getLinesFromDict('static const char* headers[]', dictFileName) - allHeadersPartContent += "// %s\n" % dictFileName - for selectedLine in selectedLines: - header = selectedLine[:-1] # remove the "," - allHeadersPartContent += "#include %s\n" %header - return allHeadersPartContent - -#------------------------------------------------------------------------------- -def getIncludePathsFromDict(dictFileName): - """ - Search for the include paths after the line - 'static const char* includePaths[]' - Return them as list - """ - incPathsPart=[] - selectedLines = getLinesFromDict('static const char* includePaths[]', dictFileName) - for selectedLine in selectedLines: - incPath = selectedLine[1:-2] # remove the "," and the two '"' - incPathsPart.append(incPath) - return incPathsPart - -#------------------------------------------------------------------------------- -def getDefUndefLines(dirName): - """ - Add undefines and defines if the directory needs them - """ - allHeadersPartContent="" - if "%sqt" %os.sep in dirName: - allHeadersPartContent += '#ifdef emit\n' +\ - '# undef emit\n' +\ - '#endif\n' +\ - '#ifdef signals\n' +\ - '# undef signals\n' +\ - '#endif\n' - if "%snet%sldap" %(os.sep,os.sep) in dirName: - allHeadersPartContent += '#ifdef Debug\n' +\ - '# undef Debug\n' +\ - '#endif\n' +\ - '#ifdef GSL_SUCCESS\n' +\ - '# undef GSL_SUCCESS\n' +\ - '#endif\n' - return allHeadersPartContent - -#------------------------------------------------------------------------------- -def mkdirIfNotThere(dirName): - if not os.path.exists(dirName): - os.makedirs(dirName) - -#------------------------------------------------------------------------------- -def copyLinkDefs(rootSrcDir, outdir): - """ - Extract the linkdef files - """ - linkDefPartContent = "" - curDir = os.getcwd() - os.chdir(rootSrcDir) - wildcards = (os.path.join("*", "inc", "*LinkDef*.h"), - os.path.join("*", "*", "inc", "*LinkDef*.h"), - os.path.join("*", "*", "inc", "*" , "*LinkDef*.h")) - linkDefNames = [] - for wildcard in wildcards: - linkDefNames += glob.glob(wildcard) - os.chdir(curDir) - for linkDefName in linkDefNames: - linkDefDirName = os.path.dirname(linkDefName) - mkdirIfNotThere(os.path.join(outdir,linkDefDirName)) - srcName = os.path.join(rootSrcDir,linkDefName) - destName = os.path.join(outdir,linkDefName) - shutil.copyfile(srcName, destName) - -#------------------------------------------------------------------------------- -def getLocalLinkDefs(rootSrcDir, outdir , dirName): - linkDefPartContent = "" - curDir = os.getcwd() - os.chdir(rootSrcDir) - wildcards = (os.path.join(dirName , "*", "*", "*LinkDef*.h"), - os.path.join(dirName , "*", "*LinkDef*.h")) - linkDefNames = [] - for wildcard in wildcards: - linkDefNames += glob.glob(wildcard) - - # now get the ones in the inc directory - linkDefNames = filter (lambda name: "%sinc%s" %(os.sep,os.sep) in name, linkDefNames) - - for linkDefName in linkDefNames: - fullLinkDefName = os.path.join(outdir,linkDefName) - linkDefPartContent += '#include "%s"\n' %fullLinkDefName - os.chdir(curDir) - return linkDefPartContent - -#------------------------------------------------------------------------------- -def resolveSoftLinks(thePaths): - return map(os.path.realpath,thePaths) - -#------------------------------------------------------------------------------- -def getCppFlags(rootSrcDir,allIncPaths): - """ - Sort, clean, no duplicates - cat $cppflags.tmp | sort | uniq | grep -v $srcdir | grep -v `pwd` > $cppflags - We must resolve softlinks. - returns a string - """ - allHeadersPartContent = "" - filteredIncPaths = sorted(list(set(resolveSoftLinks(allIncPaths)))) - for name in resolveSoftLinks((rootSrcDir,os.getcwd())): - filteredIncPaths = filter (lambda incPath: not name in incPath,filteredIncPaths) - for incPath in filteredIncPaths: - allHeadersPartContent += "-I%s\n" %incPath - return allHeadersPartContent - -#------------------------------------------------------------------------------- -def writeToFile(content, filename): - ofile = open(filename, "w") - ofile.write(content) - ofile.close() - -#------------------------------------------------------------------------------- -def writeFiles(contentFileNamePairs): - for content, filename in contentFileNamePairs: - writeToFile(content, filename) - -#------------------------------------------------------------------------------- -def printModulesMessageOnScreen(selModules): - modulesList = sorted(list(selModules)) - print ("\nGenerating PCH for %s\n" %" ".join(modulesList)) - -#------------------------------------------------------------------------------- -def getExtraHeaders(): - """ Get extra headers which do not fall in other special categories - """ - extraHeaders=["ROOT/TSeq.hxx","ROOT/StringConv.hxx"] - code = "// Extra headers\n" - for extraHeader in extraHeaders: - code += '#include "%s"\n' %extraHeader - return code - -#------------------------------------------------------------------------------- -def removeUnwantedHeaders(allHeadersContent): - """ remove unwanted headers, e.g. the ones used for dictionaries but not desirable in the pch - """ - unwantedHeaders = ['ROOT/TDataFrame.hxx'] - deprecatedHeaders = ['TSelectorCint.h'] - unwantedHeaders.extend(deprecatedHeaders) - for unwantedHeader in unwantedHeaders: - allHeadersContent = allHeadersContent.replace('#include "%s"' %unwantedHeader,"") - return allHeadersContent - - -#------------------------------------------------------------------------------- -def makePCHInput(): - """ - Create the input for the pch file, i.e. 3 files: - * etc/dictpch/allLinkDefs.h - * etc/dictpch/allHeaders.h - * etc/dictpch/allCppflags.txt - """ - rootSrcDir, modules, clingetpchList, cxxflags = getParams() - - removeLeftOvers() - - outdir = os.path.join("etc","dictpch") - allHeadersFilename = os.path.join(outdir,"allHeaders.h") - allLinkdefsFilename = os.path.join(outdir,"allLinkDefs.h") - cppFlagsFilename = os.path.join(outdir, "allCppflags.txt") - - mkdirIfNotThere(outdir) - removeFiles((allHeadersFilename,allLinkdefsFilename)) - - allHeadersContent = getSTLIncludes() - allHeadersContent += getExtraIncludes(clingetpchList) - - allLinkdefsContent = "" - - # Loop over the dictionaries, ROOT modules - dictNames = getDictNames(modules) - selModules = set([]) - allIncPathsList = [] - for dictName in dictNames: - dirName = getDirName(dictName) - if not isDirForPCH(dirName): continue - - selModules.add(dirName) - - allHeadersContent += getIncludeLinesFromDict(dictName) - allIncPathsList += getIncludePathsFromDict(dictName) - - allHeadersContent += getDefUndefLines(dictName) - - allLinkdefsContent += getLocalLinkDefs(rootSrcDir, outdir , dirName) - - allHeadersContent += getExtraHeaders() - - allHeadersContent = removeUnwantedHeaders(allHeadersContent) - - copyLinkDefs(rootSrcDir, outdir) - - cppFlagsContent = getCppFlags(rootSrcDir,allIncPathsList) + '\n'.join(cxxflags) + '\n' - - writeFiles(((allHeadersContent, allHeadersFilename), - (allLinkdefsContent, allLinkdefsFilename), - (cppFlagsContent, cppFlagsFilename))) - - - printModulesMessageOnScreen(selModules) - -if __name__ == "__main__": - makePCHInput() diff --git a/build/unix/makepchinput.sh b/build/unix/makepchinput.sh deleted file mode 100755 index 9b7ba97f316da..0000000000000 --- a/build/unix/makepchinput.sh +++ /dev/null @@ -1,152 +0,0 @@ -#!/bin/sh -# -# Extract the input needed to build a PCH for the main (enabled) ROOT modules. -# Script takes as argument the source directory path, the set of enabled -# modules and extra headers (from cling) to be included in the PCH. -# -# Copyright (c) 2014 Rene Brun and Fons Rademakers -# Author: Axel Naumann , 2014-10-16 - -# Usage: $0 "module0 module1 ... moduleN" header0 header1 ... headerN -- cxxflag0 cxxflag1 ... - -srcdir=$1 -shift -modules=$1 -shift - -outdir=etc/dictpch -allheaders=$outdir/allHeaders.h -alllinkdefs=$outdir/allLinkDefs.h -cppflags=$outdir/allCppflags.txt - -# Remove leftover files from old versions of this script. -rm -f include/allHeaders.h include/allHeaders.h.pch include/allLinkDef.h all.h cppflags.txt include/allLinkDef.h etc/allDict.cxx etc/allDict.cxx.h $cppflags.tmp $allheaders $alllinkdefs $cppflags - -mkdir -p $outdir -rm -f $allheaders $alllinkdefs - -# Here we include the list of c++11 stl headers -# From http://en.cppreference.com/w/cpp/header -# regex is removed until ROOT-7004 is fixed -stlHeaders="cstdlib csignal csetjmp cstdarg typeinfo typeindex type_traits bitset functional utility ctime chrono cstddef initializer_list tuple new memory scoped_allocator climits cfloat cstdint cinttypes limits exception stdexcept cassert system_error cerrno cctype cwctype cstring cwchar cuchar string array vector deque list forward_list set map unordered_set unordered_map stack queue algorithm iterator cmath complex valarray random numeric ratio cfenv iosfwd ios istream ostream iostream fstream sstream iomanip streambuf cstdio locale clocale codecvt atomic thread mutex future condition_variable ciso646 ccomplex ctgmath cstdalign cstdbool" - -echo "// STL headers" >> $allheaders -for stlHeader in $stlHeaders; do - echo '#if __has_include("'$stlHeader'")' >> $allheaders - echo '#include <'$stlHeader'>' >> $allheaders - echo '#endif' >> $allheaders -done - -# Special case for regex -echo "// treat regex separately" >> $allheaders -echo '#if __has_include("regex") && !defined __APPLE__' >> $allheaders -echo '#include ' >> $allheaders -echo '#endif' >> $allheaders - -# treat this deprecated headers in a special way -stlDeprecatedHeaders="strstream" -echo "// STL Deprecated headers" >> $allheaders -echo "#define _BACKWARD_BACKWARD_WARNING_H" >> $allheaders -echo '#pragma clang diagnostic push' >> $allheaders -echo '#pragma GCC diagnostic ignored "-Wdeprecated"' >> $allheaders -for stlHeader in $stlDeprecatedHeaders; do - echo '#if __has_include("'$stlHeader'")' >> $allheaders - echo '#include <'$stlHeader'>' >> $allheaders - echo '#endif' >> $allheaders -done -echo '#pragma clang diagnostic pop' >> $allheaders -echo '#undef _BACKWARD_BACKWARD_WARNING_H' >> $allheaders - -while ! [ "x$1" = "x" -o "x$1" = "x--" ]; do - echo '#include "'$1'"' >> $allheaders - shift -done - -# Add ad hoc headers which are not in dictionaries and are not stl -# Can not be put in a dictionary until they properly handle ROOT/* -echo '#include "ROOT/TSeq.hxx"' >> $allheaders -echo '#include "ROOT/StringConv.hxx"' >> $allheaders - -if [ "x$1" = "x--" ]; then - shift -fi - -while ! [ "x$1" = "x" ]; do - case $1 in - -Wno*) echo "$1" >> $cppflags.tmp ;; - -W*) ;; - -x*) ;; - -ax*) ;; - *) echo "$1" >> $cppflags.tmp ;; - esac - shift -done - -for dict in `find $modules -name 'G__*.cxx' 2> /dev/null | grep -v core/metautils/src/G__std_ | grep -v tree/treeplayer/src/G__DataFrame`; do - dirname=`dirname $dict` # to get foo/src - dirname=`echo $dirname | sed -e 's,/src$,,' -e 's,^[.]/,,' ` # to get foo/ - - case $dirname in - graf2d/qt | math/fftw | math/foam | math/fumili | math/mlp | math/quadp | math/splot | math/unuran | math/vdt | tmva/rmva ) continue;; - - interpreter/* | core/* | io/io | net/net | math/* | hist/* | tree/* | graf2d/* | graf3d/ftgl | graf3d/g3d | graf3d/gl | gui/gui | gui/fitpanel | rootx | bindings/pyroot | roofit/* | tmva/* | main) ;; - - *) continue;; - esac - - # Check if selmodules already contains the dirname. - # Happens for instance for math/smatrix with its two (32bit and 64 bit) - # dictionaries. - if ! ( echo $selmodules | grep "$dirname " > /dev/null ); then - selmodules="$selmodules$dirname " - fi - - awk 'BEGIN{START=-1} /includePaths\[\] = {/, /^0$/ { if (START==-1) START=NR; else if ($0 != "0") { sub(/",/,"",$0); sub(/^"/,"-I",$0); print $0 } }' $dict >> $cppflags.tmp - echo "// $dict" >> $allheaders -# awk 'BEGIN{START=-1} /payloadCode =/, /^;$/ { if (START==-1) START=NR; else if ($1 != ";") { code=substr($0,2); sub(/\\n"/,"",code); print code } }' $dict >> $allheaders - awk 'BEGIN{START=-1} /headers\[\] = {/, /^0$/ { if (START==-1) START=NR; else if ($0 != "0") { sub(/,/,"",$0); print "#include",$0 } }' $dict >> $allheaders - - if ! test "$dirname" = "`echo $dirname| sed 's,/qt,,'`"; then - # something qt; undef emit afterwards - cat <> $allheaders -#ifdef emit -# undef emit -#endif -#ifdef signals -# undef signals -#endif -EOF - elif ! test "$dirname" = "`echo $dirname| sed 's,net/ldap,,'`"; then - # ldap; undef Debug afterwards - cat <> $allheaders -#ifdef Debug -# undef Debug -#endif -#ifdef GSL_SUCCESS -# undef GSL_SUCCESS -#endif -EOF - fi - - for f in `cd $srcdir; find $dirname/inc/ -name '*LinkDef*.h'`; do - echo '#include "'$outdir/$f'"' >> $alllinkdefs - done -done - -# E.g. core's LinkDef includes clib/LinkDef, so just copy all LinkDefs. -for f in `cd $srcdir; find . -path ./etc -prune -or -name '*LinkDef*.h' -print`; do - mkdir -p $outdir/`dirname $f` - cp $srcdir/$f $outdir/$f -done - -cat $cppflags.tmp | sort | uniq | grep -v $srcdir | grep -v `pwd` > $cppflags - -# Remove unwanted files -sed -e "s/.*TSelectorCint.h.*//g" \ - -e "s/.*ROOT\/TDataFrame.hxx.*//g" < $allheaders > $allheaders.tmp -mv -f $allheaders.tmp $allheaders - -echo -echo Generating PCH for ${selmodules} -echo - diff --git a/build/unix/makeplugins-ios.sh b/build/unix/makeplugins-ios.sh deleted file mode 100755 index 9c7d284313d00..0000000000000 --- a/build/unix/makeplugins-ios.sh +++ /dev/null @@ -1,23 +0,0 @@ -#! /bin/sh - -ROOT=bin/root.exe -OUT=etc/system.plugins-ios -DATE=`date` - -echo "" -echo "Generating etc/system.plugins-ios" -echo "" - -$ROOT -l <WritePluginRecords("plugins-ios"); - .q -makeplugins - -echo "# This file has been generated using:" > $OUT -echo "# make plugins-ios" >> $OUT -echo "# On $DATE" >> $OUT -echo "# DON'T MAKE CHANGES AS THEY WILL GET LOST NEXT TIME THE FILE IS GENERATED" >> $OUT -cat plugins-ios >> $OUT -rm -f plugins-ios - -exit 0 diff --git a/build/unix/makereleasenotes.sh b/build/unix/makereleasenotes.sh deleted file mode 100755 index 6844f3078f6d8..0000000000000 --- a/build/unix/makereleasenotes.sh +++ /dev/null @@ -1,15 +0,0 @@ -#! /bin/sh - -VERS="606" -ROOTSRCDIR=`dirname $0` # .../build/unix -ROOTSRCDIR=`dirname $ROOTSRCDIR` # .../build -ROOTSRCDIR=`dirname $ROOTSRCDIR` # ... - -DIR="README/ReleaseNotes" -pandoc -f markdown -t html --filter $ROOTSRCDIR/build/unix/pandoc-jira.sh -s -S -f markdown --toc -H $ROOTSRCDIR/documentation/users-guide/css/github.css --mathjax \ -$ROOTSRCDIR/$DIR/v${VERS}/index.md -o $DIR/v${VERS}/index.html - -echo "Generated $DIR/v${VERS}/index.html" -echo "" - -exit 0 diff --git a/build/unix/makestatic.sh b/build/unix/makestatic.sh deleted file mode 100755 index 6bfe2a132bea8..0000000000000 --- a/build/unix/makestatic.sh +++ /dev/null @@ -1,53 +0,0 @@ -#! /bin/sh - -# Script to generate statically linked ROOT executables. -# Called by main Makefile. -# -# Author: Fons Rademakers, 21/01/2001 - -PLATFORM=$1 -CXX=$2 -CC=$3 -LD=$4 -LDFLAGS="$5 -Wl,-E " -XLIBS=$6 -SYSLIBS=$7 -EXTRALIBS=$8 -STATICOBJECTLIST=$9 - -ROOTALIB=lib/libRoot.a -ROOTAEXE=bin/roota -PROOFAEXE=bin/proofserva - -rm -f $ROOTAEXE $PROOFAEXE - -# If linking with Cocoa framework, then don't use XLIBS -if echo $EXTRALIBS | grep ' Cocoa' > /dev/null 2>& 1 ; then - XLIBS= -fi - -echo "Making $ROOTAEXE..." -CMD="$LD $LDFLAGS -o $ROOTAEXE main/src/rmain.o \ - -Wl,--no-as-needed -Wl,--whole-archive $ROOTALIB -Wl,--as-needed -Wl,--no-whole-archive \ - $XLIBS $SYSLIBS $EXTRALIBS" -echo $CMD -$CMD - -linkstat=$? -if [ $linkstat -ne 0 ]; then - exit $linkstat -fi - -echo "Making $PROOFAEXE..." -CMD="$LD $LDFLAGS -o $PROOFAEXE main/src/pmain.o \ - -Wl,--no-as-needed -Wl,--whole-archive $ROOTALIB -Wl,--as-needed -Wl,--no-whole-archive \ - $XLIBS $SYSLIBS $EXTRALIBS" -echo $CMD -$CMD - -linkstat=$? -if [ $linkstat -ne 0 ]; then - exit $linkstat -fi - -exit 0 diff --git a/build/unix/makestaticlib.sh b/build/unix/makestaticlib.sh deleted file mode 100755 index 6968fd1c3a875..0000000000000 --- a/build/unix/makestaticlib.sh +++ /dev/null @@ -1,25 +0,0 @@ -#! /bin/sh - -# Script to generate the libRoot.a archive library. -# Called by main Makefile. -# -# Author: Fons Rademakers, 21/01/2001 - -STATICOBJECTLIST=$1 - -ROOTALIB=lib/libRoot.a - -rm -f $ROOTALIB - -objs=`$STATICOBJECTLIST` - -echo "Making $ROOTALIB..." -echo ar rv $ROOTALIB core/textinput/src/textinput/*.o $objs -ar rv $ROOTALIB core/textinput/src/textinput/*.o $objs > /dev/null 2>&1 - -arstat=$? -if [ $arstat -ne 0 ]; then - exit $arstat -fi - -exit 0 diff --git a/build/unix/makeversion.sh b/build/unix/makeversion.sh deleted file mode 100755 index 6b8b48d2a1790..0000000000000 --- a/build/unix/makeversion.sh +++ /dev/null @@ -1,31 +0,0 @@ -#! /bin/sh - -# Script to update base/inc/RVersion.h. -# Called by main Makefile as soon as build/version_number has been updated. -# -# Author: Fons Rademakers, 28/4/2000 - -ROOTEXE=$1/bin/root.exe -SCRIPT=build/version.cxx -CORETEAM=build/unix/git_coreteam.py -VERSION=`cat build/version_number` - -$ROOTEXE -q -b -l $SCRIPT || exit 1 - -python $CORETEAM || exit 1 -mv rootcoreteam.h rootx/src/rootcoreteam.h - -if test "x`uname | grep -i cygwin`" != "x"; then - dos2unix core/base/inc/RVersion.h - dos2unix rootx/src/rootcoreteam.h -fi - -echo "Committing changes." -git commit core/base/inc/RVersion.h rootx/src/rootcoreteam.h build/version_number documentation/doxygen/Doxyfile \ - -m "Update ROOT version files to v$VERSION." || exit 1 - -echo "Update also doc/vXXX/index.html to $VERSION." -echo "" -echo "New version is $VERSION." -echo "See http://root.cern.ch/drupal/howtorelease for the next steps," -echo "for instance tagging if this is a release." diff --git a/build/unix/module.modulemap b/build/unix/module.modulemap deleted file mode 100644 index b630e8890bbd7..0000000000000 --- a/build/unix/module.modulemap +++ /dev/null @@ -1,75 +0,0 @@ -// This can be used in C mode. It cannot go in ROOT_Type because ThreadLocalStorage.h -// uses kFALSE and kTRUE, which come from Rtypes.h causing a cycle. -// FIXME: This should be separated because it introduces header dependency -// libThread->libCore->libThread. We should figure out a way to implement it in -// a more reasonable way. -module ThreadLocalStorage { - header "ThreadLocalStorage.h" - export * -} -// These can be used in C mode. -module ROOT_Types { - module "RtypesCore.h" { header "RtypesCore.h" export * } - module "ESTLType.h" { header "ESTLType.h" export * } - // FIXME: This module should contain only header files with types. - // The listed below headers are here because we want them to work in both - // -frtti and -fno-rtti environment. Move them into a separate module. - module "RStringView.h" { header "RStringView.h" export * } - module "Varargs.h" { header "Varargs.h" export * } // Old should revisit, either drop or delete. - module "TClassEdit.h" { header "TClassEdit.h" export * } - module "strlcpy.h" { header "strlcpy.h" export * } - module "RConfig.h" { textual header "RConfig.h" export * } - module "RConfigure.h" { textual header "RConfigure.h" export * } - module "RVersion.h" { textual header "RVersion.h" export * } - // This should go in RConfig.h as it defines macros. - module "TException.h" { textual header "TException.h" export * } - export * -} - -module ROOT_IsAProxy { - module "TIsAProxy.h" { header "TIsAProxy.h" export * } - module "TVirtualIsAProxy.h" { header "TVirtualIsAProxy.h" export * } - export * -} - -// This module is special, it contains headers which don't require rtti support -// to build (eg. don't use dynamic_cast or typeid). They are also needed when -// compiling rootcling with -fno-rtti. We have to keep them outside module ROOT -// to avoid -fno-rtti invocation to trigger building of entire module ROOT -// some of whose headers require -frtti. -// Rtypes.h however has an optional dependency on rtti unless one defines -// R__NO_INLINE_CLASSDEF. We therefore keep two versions of this module: One -// with rtti and one without rtti. -module ROOT_Core_Config_C { - //requires cplusplus - - exclude header "RtypesImp.h" - module "Rtypes.h" { header "Rtypes.h" export * } - module "DllImport.h" { header "DllImport.h" export * } // Should merge in RConfig.h. - module "TGenericClassInfo.h" { header "TGenericClassInfo.h" export * } - module "TSchemaHelper.h" { header "TSchemaHelper.h" export * } - module "RootMetaSelection.h" { header "RootMetaSelection.h" export * } - module "snprintf.h" { header "snprintf.h" export * } // #included by Rtypes, could go away? - - // Should we marked textual because of inclusion libcpp_string_view.h, - // using macros to set up the header file. - module "RWrap_libcpp_string_view.h" { textual header "RWrap_libcpp_string_view.h" export * } - - export * -} - -// Some frameworks include gl.h or gltypes.h (eg. Cocoa) and thus we cannot build -// this module as part of the ROOT. The only way is either by outlining it here -// or relying on fragile module ordering (eg. order before things such as Cocoa.h -// including gltypes.h. -// FIXME: We can switch back to using umbrella folder and submodules once -// https://llvm.org/bugs/show_bug.cgi?id=30508 gets resolved. -// module ROOT_Glew { - // Depending on the platform we get some of these three installed. - module "glew.h" { header "GL/glew.h" export * } - module "wglew.h" { header "GL/wglew.h" export * } - module "glxew.h" { header "GL/glxew.h" export * } -// link "lib/libGLEW.so" -//} - -// From this point on the contents of this file are automatically generated. diff --git a/build/unix/modulemap.overlay.yaml.in b/build/unix/modulemap.overlay.yaml.in deleted file mode 100644 index db5eab20c4560..0000000000000 --- a/build/unix/modulemap.overlay.yaml.in +++ /dev/null @@ -1,20 +0,0 @@ -{ - 'version': 0, - 'ignore-non-existent-contents': false, - 'roots': [ - { 'name': '@__libcpp_full_path@', 'type': 'directory', - 'contents': [ - { 'name': 'module.modulemap', 'type': 'file', - 'external-contents': '@CMAKE_BINARY_DIR@/include/stl.cppmap' - } - ] - }, - { 'name': '/usr/include/', 'type': 'directory', - 'contents': [ - { 'name': 'module.modulemap', 'type': 'file', - 'external-contents': '@CMAKE_BINARY_DIR@/include/libc.modulemap' - } - ] - } - ] -} diff --git a/build/unix/newreleasenotes.sh b/build/unix/newreleasenotes.sh deleted file mode 100755 index 06ebcf278952f..0000000000000 --- a/build/unix/newreleasenotes.sh +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/sh - -PACKAGES="core io net sql tree proof hist interpreter bindings math roofit \ - tmva geom montecarlo gui graf2d graf3d html misc tutorials" - -VERS="602" - -OUTDIR="README/ReleaseNotes" - -echo "" -echo "Creating new package docs..." - - -# write package notes -for i in $PACKAGES; do - for v in $VERS; do - if [ ! -r ${i}/doc/v${v}/index.md ]; then - mkdir ${i}/doc/v${v} - touch ${i}/doc/v${v}/index.md - echo "created ${i}/doc/v${v}/index.md" - fi - done -done - -echo "" -echo "Generated v${v}/index.md (s)" -echo "" - -exit 0 diff --git a/build/unix/pandoc-jira.sh b/build/unix/pandoc-jira.sh deleted file mode 100755 index ddf16cfa9bdb0..0000000000000 --- a/build/unix/pandoc-jira.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# Script to be called as filter by pandoc. -# Replaces text (!) [ROOT-7392] with a proper link; doesn't touch any link that -# includes [ROOT-7392](...) -# Axel, 2015-06-09 - -# In JSON: -# Replace {"t":"Str","c":"[ROOT-7392]"} -# with {"t":"Link","c":[[{"t":"Str","c":"ROOT-7290"}],["https://sft.its.cern.ch/jira/browse/ROOT-7290",""]]} - -sed -E 's@\{"t":"Str","c":"\[ROOT-([[:digit:]]+)\]([^"]+)?"\}@{"t":"Link","c":[[{"t":"Str","c":"ROOT-\1"}],["https://sft.its.cern.ch/jira/browse/ROOT-\1",""]]},{"t":"Str","c":"\2"}@g' diff --git a/build/unix/reconfigure.sh b/build/unix/reconfigure.sh deleted file mode 100755 index 21e001f2bfd87..0000000000000 --- a/build/unix/reconfigure.sh +++ /dev/null @@ -1,36 +0,0 @@ -#! /bin/sh -# -# A simple reconfigure script. -# -# Author: Axel Naumann -# -###################################################################### - -if [ ! -f config.status ]; then - echo "" - echo "Can't get config line from config.status." - exit 1; -fi - -confline=`cat config.status` - -if [ "x$1" != "x" ]; then - what=" because $1 has changed" -fi - -if [ "x$2" != "x" ]; then - srcdir="$2" -else - srcdir="." -fi - -echo "" -echo "Trying to reconfigure${what}." -echo "Using config statement:" -echo "$srcdir/configure $confline" -echo "" -$srcdir/configure $confline --nohowto || exit 1 -echo "Reconfigure successful." -echo "If the build fails, please run $srcdir/configure again." -echo "" -test -e Makefile && sleep 1 && touch Makefile diff --git a/build/unix/rootmapcat.py b/build/unix/rootmapcat.py deleted file mode 100755 index a15030669818d..0000000000000 --- a/build/unix/rootmapcat.py +++ /dev/null @@ -1,84 +0,0 @@ -#! /usr/bin/env python - -''' -An utility to smartly "cat" rootmap files. -''' -from __future__ import print_function -import argparse -import sys - -#------------------------------------------------------------------------------- -def getParser(): - parser = argparse.ArgumentParser(description='Get input rootmaps and output rootmap.') - parser.add_argument("rootmaps", nargs='+', help='The name of the rootmaps separated by a space.') - parser.add_argument("-o", "--output", dest='output', - default="all.rootmap", help='The output rootmap name.') - return parser - -#------------------------------------------------------------------------------- -class Rootmap(object): - def __init__(self): - self.fwdDecls = [] - self.sections = {} - - def ParseAndAddMany(self,rootmapnames): - for rootmapname in rootmapnames: - self.ParseAndAdd(rootmapname) - - def ParseAndAdd(self,rootmapname): - ifile = open(rootmapname) - rootmapLines = ifile.readlines() - ifile.close() - fwdDeclsSet = set() - fwdDeclsSection = False - keysSection = True - for line in rootmapLines: - if line.startswith("{ decls }"): - fwdDeclsSection = True - keysSection = False - continue - if line.startswith("[ "): - fwdDeclsSection = False - keysSection = True - secName = line - if line == "\n": continue - if fwdDeclsSection: - fwdDeclsSet.add(line) - if keysSection: - if self.sections.has_key(secName): - self.sections[secName].append(line) - else: - self.sections[secName] = [] - self.fwdDecls.extend(fwdDeclsSet) - - def Print(self,outrootmapname): - # Now we reduce the fwd declarations - self.fwdDecls = sorted(list(set(self.fwdDecls))) - ofile = file(outrootmapname, "w") - if len(self.fwdDecls) != 0: - ofile.write("{ decls }\n") - for fwdDecl in self.fwdDecls: - ofile.write(fwdDecl) - ofile.write("\n") - - for libname, keylines in self.sections.items(): - ofile.write(libname) - for keyline in keylines: - ofile.write(keyline) - ofile.write("\n") - ofile.close() - -#------------------------------------------------------------------------------- -def merge(rmapsnames, outrootmapname): - rm = Rootmap() - rm.ParseAndAddMany(rmapsnames) - rm.Print(outrootmapname) - return 0 - -#------------------------------------------------------------------------------- -if __name__ == "__main__": - parser = getParser() - args = parser.parse_args() - rmapsnames = args.rootmaps - outrootmapname = args.output - sys.exit(merge(rmapsnames, outrootmapname)) diff --git a/build/unix/staticobjectlist.sh b/build/unix/staticobjectlist.sh deleted file mode 100755 index 8ea97a4a6afbe..0000000000000 --- a/build/unix/staticobjectlist.sh +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh - -# Script to generate the list of object files to be included -# in the static ROOT library or that are needed to link to static -# ROOT applications. -# Called by build/unix/makestaticlib.sh and build/unix/makestatic.sh. -# -# Author: Fons Rademakers, 13/12/2010 - -#in case called with argument -d then return only the dictionary object files (G__*.o). -if [ "$1" = "-d" ]; then - dictonly="yes" -fi - -excl="main proof/proofd net/rootd net/xrootd rootx \ - montecarlo/pythia6 montecarlo/pythia8 sql/mysql sql/pgsql sql/sqlite \ - sql/sapdb io/rfio hist/hbook core/newdelete misc/table core/utils \ - net/srputils net/krb5auth net/globusauth io/chirp io/dcache net/alien \ - graf2d/asimage net/ldap graf2d/qt gui/qtroot math/quadp \ - bindings/pyroot bindings/ruby tmva math/genetic \ - io/xmlparser graf3d/gl graf3d/ftgl roofit/roofit roofit/roofitcore \ - roofit/roostats roofit/histfactory sql/oracle net/netx net/auth \ - net/rpdutils math/mathmore math/minuit2 io/gfal net/monalisa \ - proof/proofx math/fftw gui/qtgsi sql/odbc io/castor math/unuran \ - geom/gdml montecarlo/g4root graf2d/gviz graf3d/gviz3d graf3d/eve \ - net/glite misc/minicern misc/memstat net/bonjour graf2d/fitsio \ - net/davix net/netxng net/http proof/pq2" - -objs="" -gobjs="" -for i in * ; do - inc=$i - for j in $excl ; do - if [ $j = $i ]; then - continue 2 - fi - done - ls $inc/src/*.o > /dev/null 2>&1 && objs="$objs `ls $inc/src/*.o`" - ls $inc/src/G__*.o > /dev/null 2>&1 && gobjs="$gobjs `ls $inc/src/G__*.o`" - if [ -d $i ]; then - for k in $i/* ; do - inc=$k - for j in $excl ; do - if [ $j = $k ]; then - continue 2 - fi - done - ls $inc/src/*.o > /dev/null 2>&1 && objs="$objs `ls $inc/src/*.o`" - ls $inc/src/G__*.o > /dev/null 2>&1 && gobjs="$gobjs `ls $inc/src/G__*.o`" - done - fi -done - -# add Cling objects -for i in Interpreter MetaProcessor Utils ; do - ls interpreter/cling/lib/$i/*.o > /dev/null 2>&1 && objs="$objs `ls interpreter/cling/lib/$i/*.o`" -done - -if [ "x$dictonly" = "xyes" ]; then - echo $gobjs -else - echo $objs -fi - -exit 0 diff --git a/build/unix/stl.cppmap b/build/unix/stl.cppmap deleted file mode 100644 index 9ee4c19818956..0000000000000 --- a/build/unix/stl.cppmap +++ /dev/null @@ -1,389 +0,0 @@ -module "stl" { - export * - module "algorithm" { - export * - header "algorithm" - } - module "array" { - export * - header "array" - } - module "atomic" { - export * - header "atomic" - } - module "bitset" { - export * - header "bitset" - } - module "cassert" { - export * - header "cassert" - } - module "ccomplex" { - export * - header "ccomplex" - } - module "cctype" { - export * - header "cctype" - } - module "cerrno" { - export * - header "cerrno" - } - module "cfenv" { - export * - header "cfenv" - } - module "cfloat" { - export * - header "cfloat" - } - module "chrono" { - export * - header "chrono" - } - module "cinttypes" { - export * - header "cinttypes" - } - module "ciso646" { - export * - header "ciso646" - } - module "climits" { - export * - header "climits" - } - module "clocale" { - export * - header "clocale" - } - module "cmath" { - export * - header "cmath" - } - module "complex" { - export * - header "complex" - } - module "complex.h" { - export * - header "complex.h" - } - module "condition_variable" { - export * - header "condition_variable" - } - module "csetjmp" { - export * - header "csetjmp" - } - module "csignal" { - export * - header "csignal" - } - module "cstdalign" { - export * - header "cstdalign" - } - module "cstdarg" { - export * - header "cstdarg" - } - module "cstdbool" { - export * - header "cstdbool" - } - module "cstddef" { - export * - header "cstddef" - } - module "cstdint" { - export * - header "cstdint" - } - module "cstdio" { - export * - header "cstdio" - } - module "cstdlib" { - export * - header "cstdlib" - } - module "cstring" { - export * - header "cstring" - } - module "ctgmath" { - export * - header "ctgmath" - } - module "ctime" { - export * - header "ctime" - } -// module "ctype.h" { -// export * -// header "ctype.h" -// } - module "cwchar" { - export * - header "cwchar" - } - module "cwctype" { - export * - header "cwctype" - } - module "cxxabi.h" { - export * - header "cxxabi.h" - } - module "deque" { - export * - header "deque" - } - module "exception" { - export * - header "exception" - } - module "fenv.h" { - export * - header "fenv.h" - } - module "forward_list" { - export * - header "forward_list" - } - module "fstream" { - export * - header "fstream" - } - module "functional" { - export * - header "functional" - } - module "future" { - export * - header "future" - } -/* module "hash_map" { - export * - header "hash_map" - } - module "hash_set" { - export * - header "hash_set" - } - */ - module "initializer_list" { - export * - header "initializer_list" - } - module "iomanip" { - export * - header "iomanip" - } - module "ios" { - export * - header "ios" - } - module "iosfwd" { - export * - header "iosfwd" - } - module "iostream" { - export * - header "iostream" - } -// module "iostream.h" { -// export * -// header "iostream.h" -// } - module "istream" { - export * - header "istream" - } - module "iterator" { - export * - header "iterator" - } - module "limits" { - export * - header "limits" - } - module "list" { - export * - header "list" - } - module "locale" { - export * - header "locale" - } -// module "locale.h" { -// export * -// header "locale.h" -// } - module "map" { - export * - header "map" - } -// module "math.h" { -// export * -// header "math.h" -// } - module "memory" { - export * - header "memory" - } - module "mutex" { - export * - header "mutex" - } - module "new" { - export * - header "new" - } - module "numeric" { - export * - header "numeric" - } - module "ostream" { - export * - header "ostream" - } - module "queue" { - export * - header "queue" - } - module "random" { - export * - header "random" - } - module "ratio" { - export * - header "ratio" - } - module "regex" { - export * - header "regex" - } - module "scoped_allocator" { - export * - header "scoped_allocator" - } - module "set" { - export * - header "set" - } -// module "setjmp.h" { -// export * -// header "setjmp.h" -// } - module "sstream" { - export * - header "sstream" - } - module "stack" { - export * - header "stack" - } - module "stdexcept" { - export * - header "stdexcept" - } - module "streambuf" { - export * - header "streambuf" - } - module "string" { - export * - header "string" - } -// module "string.h" { -// export * -// header "string.h" - // } - module "system_error" { - export * - header "system_error" - } -// module "tgmath.h" { -// export * -// header "tgmath.h" -// } - module "thread" { - export * - header "thread" - } - module "tuple" { - export * - header "tuple" - } - module "type_traits" { - export * - header "type_traits" - } - module "typeindex" { - export * - header "typeindex" - } - module "typeinfo" { - export * - header "typeinfo" - } - module "unordered_map" { - export * - header "unordered_map" - } - module "unordered_set" { - export * - header "unordered_set" - } - module "utility" { - export * - header "utility" - } - module "valarray" { - export * - header "valarray" - } - module "vector" { - export * - header "vector" - } - //module "experimental/algorithm" { - // export * - // header "experimental/algorithm" - //} - module "ext/functional" { - export * - header "ext/functional" - } -/* module "ext/hash_map" { - export * - header "ext/hash_map" - } - module "ext/hash_set" { - export * - header "ext/hash_set" - } -*/ - module "ext/numeric" { - export * - header "ext/numeric" - } - module "bits/exception_defines.h" { - export * - header "bits/exception_defines.h" - } - module "bits/ios_base.h" { - export * - header "bits/ios_base.h" - } - module "bits/locale_facets.h" { - export * - header "bits/locale_facets.h" - } -} diff --git a/build/unix/svn_load_dirs.pl b/build/unix/svn_load_dirs.pl deleted file mode 100755 index 30a0c9ca794cc..0000000000000 --- a/build/unix/svn_load_dirs.pl +++ /dev/null @@ -1,2052 +0,0 @@ -#!/usr/bin/perl -w - -# $HeadURL: http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in $ -# $LastChangedDate: 2008-03-25 07:42:32 -0700 (Tue, 25 Mar 2008) $ -# $LastChangedBy: arfrever $ -# $LastChangedRevision: 30041 $ - -$| = 1; - -use strict; -use Carp; -use Cwd; -use Digest::MD5 2.20; -use File::Copy 2.03; -use File::Find; -use File::Path 1.0404; -use File::Temp 0.12 qw(tempdir tempfile); -use Getopt::Long 2.25; -use Text::Wrap; -use URI 1.17; -use English; - -$Text::Wrap::columns = 72; - -# Specify the location of the svn command. -my $svn = 'svn'; - -# Process the command line options. - -# The base URL for the portion of the repository to work in. Note -# that this does not have to be the root of the subversion repository, -# it can point to a subdirectory in the repository. -my $repos_base_url; - -# The relative path from the repository base URL to work in to the -# directory to load the input directories into. -my $repos_load_rel_path; - -# To specify where tags, which are simply copies of the imported -# directory, should be placed relative to the repository base URL, use -# the -t command line option. This value must contain regular -# expressions that match portions of the input directory names to -# create an unique tag for each input directory. The regular -# expressions are surrounded by a specified character to distinguish -# the regular expression from the normal directory path. -my $opt_import_tag_location; - -# Do not ask for any user input. Just go ahead and do everything. -my $opt_no_user_input; - -# Do not automatically set the svn:executable property based on the -# file's exe bit. -my $opt_no_auto_exe; - -# Username to use for commits. -my $opt_svn_username; - -# Password to use for commits. -my $opt_svn_password; - -# Verbosity level. -my $opt_verbose; - -# Path to already checked-out working copy. -my $opt_existing_wc_dir; - -# List of filename patterns to ignore (as in .subversion/config's -# "global-ignores" option). -my $opt_glob_ignores; - -# Message to use for the final commit. -my $opt_final_commit_msg; - -# This is the character used to separate regular expressions occuring -# in the tag directory path from the path itself. -my $REGEX_SEP_CHAR = '@'; - -# This specifies a configuration file that contains a list of regular -# expressions to check against a file and the properties to set on -# matching files. -my $property_config_filename; - -GetOptions('no_user_input' => \$opt_no_user_input, - 'no_auto_exe' => \$opt_no_auto_exe, - 'property_cfg_filename=s' => \$property_config_filename, - 'svn_password=s' => \$opt_svn_password, - 'svn_username=s' => \$opt_svn_username, - 'tag_location=s' => \$opt_import_tag_location, - 'verbose+' => \$opt_verbose, - 'wc=s' => \$opt_existing_wc_dir, - 'glob_ignores=s' => \$opt_glob_ignores, - 'message=s' => \$opt_final_commit_msg) - or &usage; -&usage("$0: too few arguments") if @ARGV < 2; - -$repos_base_url = shift; -$repos_load_rel_path = shift; - -# Check that the repository base URL and the import directories do not -# contain any ..'s. -if ($repos_base_url =~ /\.{2}/) - { - die "$0: repos base URL $repos_base_url cannot contain ..'s.\n"; - } -if ($repos_load_rel_path =~ /\.{2}/) - { - die "$0: repos import relative directory path $repos_load_rel_path ", - "cannot contain ..'s.\n"; - } - -# If there are no directories listed on the command line, then the -# directories are read from standard input. In this case, the -# -no_user_input command line option must be specified. -if (!@ARGV and !$opt_no_user_input) - { - &usage("$0: must use -no_user_input if no dirs listed on command line."); - } - -# The tag option cannot be used when directories are read from -# standard input because tags may collide and no user input can be -# taken to verify that the input is ok. -if (!@ARGV and $opt_import_tag_location) - { - &usage("$0: cannot use -tag_location when dirs are read from stdin."); - } - -# If the tag directory is set, then the import directory cannot be '.'. -if (defined $opt_import_tag_location and $repos_load_rel_path eq '.') - { - &usage("$0: cannot set import_dir to '.' and use -t command line option."); - } - -# Set the svn command line options that are used anytime svn connects -# to the repository. -my @svn_use_repos_cmd_opts; -&set_svn_use_repos_cmd_opts($opt_svn_username, $opt_svn_password); - -# Check that the tag directories do not contain any ..'s. Also, the -# import and tag directories cannot be absolute. -if (defined $opt_import_tag_location and $opt_import_tag_location =~ /\.{2}/) - { - die "$0: repos tag relative directory path $opt_import_tag_location ", - "cannot contain ..'s.\n"; - } -if ($repos_load_rel_path =~ m|^/|) - { - die "$0: repos import relative directory path $repos_load_rel_path ", - "cannot start with /.\n"; - } -if (defined $opt_import_tag_location and $opt_import_tag_location =~ m|^/|) - { - die "$0: repos tagrelative directory path $opt_import_tag_location ", - "cannot start with /.\n"; - } - -if (defined $opt_existing_wc_dir) - { - unless (-e $opt_existing_wc_dir) - { - die "$0: working copy '$opt_existing_wc_dir' does not exist.\n"; - } - - unless (-d _) - { - die "$0: working copy '$opt_existing_wc_dir' is not a directory.\n"; - } - - unless (-d "$opt_existing_wc_dir/.svn") - { - die "$0: working copy '$opt_existing_wc_dir' does not have .svn ", - "directory.\n"; - } - - $opt_existing_wc_dir = Cwd::abs_path($opt_existing_wc_dir) - } - -# If no glob_ignores specified, try to deduce from config file, -# or use the default below. -my $ignores_str = - '*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store'; - -if ( defined $opt_glob_ignores) - { - $ignores_str = $opt_glob_ignores; - } -elsif ( -f "$ENV{HOME}/.subversion/config" ) - { - open my $conf, "$ENV{HOME}/.subversion/config"; - while (<$conf>) - { - if ( /^global-ignores\s*=\s*(.*?)\s*$/ ) - { - $ignores_str = $1; - last; - } - } - } - -my @glob_ignores = map - { - s/\./\\\./g; s/\*/\.\*/g; "^$_\$"; - } split(/\s+/, $ignores_str); -unshift @glob_ignores, '\.svn$'; - -# Convert the string URL into a URI object. -$repos_base_url =~ s|/*$||; -my $repos_base_uri = URI->new($repos_base_url); - -# Check that $repos_load_rel_path is not a directory here implying -# that a command line option was forgotten. -if ($repos_load_rel_path ne '.' and -d $repos_load_rel_path) - { - die "$0: import_dir '$repos_load_rel_path' is a directory.\n"; - } - -# The remaining command line arguments should be directories. Check -# that they all exist and that there are no duplicates. -if (@ARGV) - { - my %dirs; - foreach my $dir (@ARGV) - { - unless (-e $dir) - { - die "$0: directory '$dir' does not exist.\n"; - } - - unless (-d _) - { - die "$0: directory '$dir' is not a directory.\n"; - } - - if ($dirs{$dir}) - { - die "$0: directory '$dir' is listed more than once on command ", - "line.\n"; - } - $dirs{$dir} = 1; - } - } - -# Create the tag locations and print them for the user to review. -# Check that there are no duplicate tags. -my %load_tags; -if (@ARGV and defined $opt_import_tag_location) - { - my %seen_tags; - - foreach my $load_dir (@ARGV) - { - my $load_tag = &get_tag_dir($load_dir); - - print "Directory $load_dir will be tagged as $load_tag\n"; - - if ($seen_tags{$load_tag}) - { - die "$0: duplicate tag generated.\n"; - } - $seen_tags{$load_tag} = 1; - - $load_tags{$load_dir} = $load_tag; - } - - exit 0 unless &get_answer("Please examine identified tags. Are they " . - "acceptable? (Y/n) ", 'ny', 1); - print "\n"; - } - -# Load the property configuration filename, if one was specified, into -# an array of hashes, where each hash contains a regular expression -# and a property to apply to the file if the regular expression -# matches. -my @property_settings; -if (defined $property_config_filename and length $property_config_filename) - { - open(CFG, $property_config_filename) - or die "$0: cannot open '$property_config_filename' for reading: $!\n"; - - my $ok = 1; - - while (my $line = ) - { - next if $line =~ /^\s*$/; - next if $line =~ /^\s*#/; - - # Split the input line into words taking into account that - # single or double quotes may define a single word with - # whitespace in it. The format for the file is - # regex control property_name property_value - my @line = &split_line($line); - next if @line == 0; - - unless (@line == 2 or @line == 4) - { - warn "$0: line $. of '$property_config_filename' has to have 2 ", - "or 4 columns.\n"; - $ok = 0; - next; - } - my ($regex, $control, $property_name, $property_value) = @line; - - unless ($control eq 'break' or $control eq 'cont') - { - warn "$0: line $. of '$property_config_filename' has illegal ", - "value for column 3 '$control', must be 'break' or 'cont'.\n"; - $ok = 0; - next; - } - - # Compile the regular expression. - my $re; - eval { $re = qr/$regex/i }; - if ($@) - { - warn "$0: line $. of '$property_config_filename' regex '$regex' ", - "does not compile:\n$@\n"; - $ok = 0; - next; - } - - push(@property_settings, {name => $property_name, - value => $property_value, - control => $control, - re => $re}); - } - close(CFG) - or warn "$0: error in closing '$property_config_filename' for ", - "reading: $!\n"; - - exit 1 unless $ok; - } - -# Check that the svn base URL works by running svn log on it. Only -# get the HEAD revision log message; there's no need to waste -# bandwidth seeing all of the log messages. -print "Checking that the base URL is a Subversion repository.\n"; -read_from_process($svn, 'log', '-r', 'HEAD', - @svn_use_repos_cmd_opts, $repos_base_uri); -print "\n"; - -my $orig_cwd = cwd; - -# The first step is to determine the root of the svn repository. Do -# this with the svn log command. Take the svn_url hostname and port -# as the initial url and append to it successive portions of the final -# path until svn log succeeds. -print "Finding the root URL of the Subversion repository.\n"; -my $repos_root_uri; -my $repos_root_uri_path; -my $repos_base_path_segment; -{ - my $r = $repos_base_uri->clone; - my @path_segments = grep { length($_) } $r->path_segments; - my @repos_base_path_segments = @path_segments; - unshift(@path_segments, ''); - $r->path(''); - my @r_path_segments; - - while (@path_segments) - { - $repos_root_uri_path = shift @path_segments; - push(@r_path_segments, $repos_root_uri_path); - $r->path_segments(@r_path_segments); - if (safe_read_from_pipe($svn, 'log', '-r', 'HEAD', - @svn_use_repos_cmd_opts, $r) == 0) - { - $repos_root_uri = $r; - last; - } - shift @repos_base_path_segments; - } - $repos_base_path_segment = join('/', @repos_base_path_segments); -} - -if ($repos_root_uri) - { - print "Determined that the svn root URL is $repos_root_uri.\n\n"; - } -else - { - die "$0: cannot determine root svn URL.\n"; - } - -# Create a temporary directory for svn to work in. -my $temp_dir = tempdir( "svn_load_dirs_XXXXXXXXXX", TMPDIR => 1 ); - -# Put in a signal handler to clean up any temporary directories. -sub catch_signal { - my $signal = shift; - warn "$0: caught signal $signal. Quitting now.\n"; - exit 1; -} - -$SIG{HUP} = \&catch_signal; -$SIG{INT} = \&catch_signal; -$SIG{TERM} = \&catch_signal; -$SIG{PIPE} = \&catch_signal; - -# Create an object that when DESTROY'ed will delete the temporary -# directory. The CLEANUP flag to tempdir should do this, but they -# call rmtree with 1 as the last argument which takes extra security -# measures that do not clean up the .svn directories. -my $temp_dir_cleanup = Temp::Delete->new; - -# Determine the native end of line style for this system. Do this the -# most portable way, by writing a file with a single \n in non-binary -# mode and then reading the file in binary mode. -my $native_eol = &determine_native_eol; - -# Check if all the directories exist to load the directories into the -# repository. If not, ask if they should be created. For tags, do -# not create the tag directory itself, that is done on the svn cp. -{ - print "Finding if any directories need to be created in repository.\n"; - - my @dirs_to_create; - my @urls_to_create; - my %seen_dir; - my @load_tags_without_last_segment; - - # Assume that the last portion of the tag directory contains the - # version number and remove it from the directories to create, - # because the tag directory will be created by svn cp. - foreach my $load_tag (sort values %load_tags) - { - # Skip this tag if there is only one segment in its name. - my $index = rindex($load_tag, '/'); - next if $index == -1; - - # Trim off the last segment and record the result. - push(@load_tags_without_last_segment, substr($load_tag, 0, $index)); - } - - foreach my $dir ($repos_load_rel_path, @load_tags_without_last_segment) - { - next unless length $dir; - my $d = ''; - foreach my $segment (split('/', $dir)) - { - $d = length $d ? "$d/$segment" : $segment; - my $url = "$repos_base_url/$d"; - unless ($seen_dir{$d}) - { - $seen_dir{$d} = 1; - if (safe_read_from_pipe($svn, 'log', '-r', 'HEAD', - @svn_use_repos_cmd_opts, $url) != 0) - { - push(@dirs_to_create, $d); - push(@urls_to_create, $url); - } - } - } - } - - if (@dirs_to_create) - { - print "The following directories do not exist and need to exist:\n"; - foreach my $dir (@dirs_to_create) - { - print " $dir\n"; - } - exit 0 unless &get_answer("You must add them now to load the " . - "directories. Continue (Y/n)? ", 'ny', 1); - - my $message = "Create directories to load project into.\n\n"; - - foreach my $dir (@dirs_to_create) - { - if (length $repos_base_path_segment) - { - $message .= "* $repos_base_path_segment/$dir: New directory.\n"; - } - else - { - $message .= "* $dir: New directory.\n"; - } - } - $message = wrap('', ' ', $message); - - read_from_process($svn, 'mkdir', @svn_use_repos_cmd_opts, - '-m', $message, @urls_to_create); - } - else - { - print "No directories need to be created to prepare repository.\n"; - } -} - -# Either checkout a new working copy from the repository or use an -# existing working copy. -if (defined $opt_existing_wc_dir) - { - # Update an already existing working copy. - print "Not checking out anything; using existing working directory at\n"; - print "$opt_existing_wc_dir\n"; - - chdir($opt_existing_wc_dir) - or die "$0: cannot chdir '$opt_existing_wc_dir': $!\n"; - - read_from_process($svn, 'update', @svn_use_repos_cmd_opts); - } -else - { - # Check out the svn repository starting at the svn URL into a - # fixed directory name. - my $checkout_dir_name = 'my_import_wc'; - - # Check out only the directory being imported to, otherwise the - # checkout of the entire base URL can be very huge, if it contains - # a large number of tags. - my $checkout_url; - if ($repos_load_rel_path eq '.') - { - $checkout_url = $repos_base_url; - } - else - { - $checkout_url = "$repos_base_url/$repos_load_rel_path"; - } - - print "Checking out $checkout_url into $temp_dir/$checkout_dir_name\n"; - - chdir($temp_dir) - or die "$0: cannot chdir '$temp_dir': $!\n"; - - read_from_process($svn, 'checkout', - @svn_use_repos_cmd_opts, - $checkout_url, $checkout_dir_name); - - chdir($checkout_dir_name) - or die "$0: cannot chdir '$checkout_dir_name': $!\n"; - } - -# At this point, the current working directory is the top level -# directory of the working copy. Record the absolute path to this -# location because the script will chdir back here later on. -my $wc_import_dir_cwd = cwd; - -# Set up the names for the path to the import and tag directories. -my $repos_load_abs_path; -if ($repos_load_rel_path eq '.') - { - $repos_load_abs_path = length($repos_base_path_segment) ? - $repos_base_path_segment : "/"; - } -else - { - $repos_load_abs_path = length($repos_base_path_segment) ? - "$repos_base_path_segment/$repos_load_rel_path" : - $repos_load_rel_path; - } - -# Now go through each source directory and copy each file from the -# source directory to the target directory. For new target files, add -# them to svn. For files that no longer exist, delete them. -my $print_rename_message = 1; -my @load_dirs = @ARGV; -while (defined (my $load_dir = &get_next_load_dir)) - { - my $load_tag = $load_tags{$load_dir}; - - if (defined $load_tag) - { - print "\nLoading $load_dir and will save in tag $load_tag.\n"; - } - else - { - print "\nLoading $load_dir.\n"; - } - - # The first hash is keyed by the old name in a rename and the - # second by the new name. The last variable contains a list of - # old and new filenames in a rename. - my %rename_from_files; - my %rename_to_files; - my @renamed_filenames; - - unless ($opt_no_user_input) - { - my $repeat_loop; - do - { - $repeat_loop = 0; - - my %add_files; - my %del_files; - - # Get the list of files and directories in the repository - # working copy. This hash is called %del_files because - # each file or directory will be deleted from the hash - # using the list of files and directories in the source - # directory, leaving the files and directories that need - # to be deleted. - %del_files = &recursive_ls_and_hash($wc_import_dir_cwd); - - # This anonymous subroutine finds all the files and - # directories in the directory to load. It notes the file - # type and for each file found, it deletes it from - # %del_files. - my $wanted = sub - { - s#^\./##; - return if $_ eq '.'; - - my $source_path = $_; - my $dest_path = "$wc_import_dir_cwd/$_"; - - my ($source_type) = &file_info($source_path); - my ($dest_type) = &file_info($dest_path); - - # Fail if the destination type exists but is of a - # different type of file than the source type. - if ($dest_type ne '0' and $source_type ne $dest_type) - { - die "$0: does not handle changing source and destination ", - "type for '$source_path'.\n"; - } - - if ($source_type ne 'd' and - $source_type ne 'f' and - $source_type ne 'l') - { - warn "$0: skipping loading file '$source_path' of type ", - "'$source_type'.\n"; - unless ($opt_no_user_input) - { - print STDERR "Press return to continue: "; - ; - } - return; - } - - unless (defined delete $del_files{$source_path}) - { - $add_files{$source_path}{type} = $source_type; - } - }; - - # Now change into the directory containing the files to - # load. First change to the original directory where this - # script was run so that if the specified directory is a - # relative directory path, then the script can change into - # it. - chdir($orig_cwd) - or die "$0: cannot chdir '$orig_cwd': $!\n"; - chdir($load_dir) - or die "$0: cannot chdir '$load_dir': $!\n"; - - find({no_chdir => 1, - preprocess => sub { sort { $b cmp $a } - grep { $_ !~ /^[._]svn$/ } @_ }, - wanted => $wanted - }, '.'); - - # At this point %add_files contains the list of new files - # and directories to be created in the working copy tree - # and %del_files contains the files and directories that - # need to be deleted. Because there may be renames that - # have taken place, give the user the opportunity to - # rename any deleted files and directories to ones being - # added. - my @add_files = sort keys %add_files; - my @del_files = sort keys %del_files; - - # Because the source code management system may keep the - # original renamed file or directory in the working copy - # until a commit, remove them from the list of deleted - # files or directories. - &filter_renamed_files(\@del_files, \%rename_from_files); - - # Now change into the working copy directory in case any - # renames need to be performed. - chdir($wc_import_dir_cwd) - or die "$0: cannot chdir '$wc_import_dir_cwd': $!\n"; - - # Only do renames if there are both added and deleted - # files and directories. - if (@add_files and @del_files) - { - my $max = @add_files > @del_files ? @add_files : @del_files; - - # Print the files that have been added and deleted. - # Find the deleted file with the longest name and use - # that for the width of the filename column. Add one - # to the filename width to let the directory / - # character be appended to a directory name. - my $line_number_width = 4; - my $filename_width = 0; - foreach my $f (@del_files) - { - my $l = length($f); - $filename_width = $l if $l > $filename_width; - } - ++$filename_width; - my $printf_format = "%${line_number_width}d"; - - if ($print_rename_message) - { - $print_rename_message = 0; - print "\n", - "The following table lists files and directories that\n", - "exist in either the Subversion repository or the\n", - "directory to be imported but not both. You now have\n", - "the opportunity to match them up as renames instead\n", - "of deletes and adds. This is a Good Thing as it'll\n", - "make the repository take less space.\n\n", - "The left column lists files and directories that\n", - "exist in the Subversion repository and do not exist\n", - "in the directory being imported. The right column\n", - "lists files and directories that exist in the\n", - "directory being imported. Match up a deleted item\n", - "from the left column with an added item from the\n", - "right column. Note the line numbers on the left\n", - "which you type into this script to have a rename\n", - "performed.\n"; - } - - # Sort the added and deleted files and directories by - # the lowercase versions of their basenames instead of - # their complete path, which makes finding files that - # were moved into different directories easier to - # match up. - @add_files = map { $_->[0] } - sort { $a->[1] cmp $b->[1] } - map { [$_->[0], lc($_->[1])] } - map { [$_, m#([^/]+)$#] } - @add_files; - @del_files = map { $_->[0] } - sort { $a->[1] cmp $b->[1] } - map { [$_->[0], lc($_->[1])] } - map { [$_, m#([^/]+)$#] } - @del_files; - - RELIST: - - for (my $i=0; $i<$max; ++$i) - { - my $add_filename = ''; - my $del_filename = ''; - if ($i < @add_files) - { - $add_filename = $add_files[$i]; - if ($add_files{$add_filename}{type} eq 'd') - { - $add_filename .= '/'; - } - } - if ($i < @del_files) - { - $del_filename = $del_files[$i]; - if ($del_files{$del_filename}{type} eq 'd') - { - $del_filename .= '/'; - } - } - - if ($i % 22 == 0) - { - print - "\n", - " " x $line_number_width, - " ", - "Deleted", " " x ($filename_width-length("Deleted")), - " ", - "Added\n"; - } - - printf $printf_format, $i; - print " ", $del_filename, - "_" x ($filename_width - length($del_filename)), - " ", $add_filename, "\n"; - - if (($i+1) % 22 == 0) - { - unless (&get_answer("Continue printing (Y/n)? ", - 'ny', 1)) - { - last; - } - } - } - - # Get the feedback from the user. - my $line; - my $add_filename; - my $add_index; - my $del_filename; - my $del_index; - my $got_line = 0; - do { - print "Enter two indexes for each column to rename, ", - "(R)elist, or (F)inish: "; - $line = ; - $line = '' unless defined $line; - if ($line =~ /^R$/i ) - { - goto RELIST; - } - - if ($line =~ /^F$/i) - { - $got_line = 1; - } - elsif ($line =~ /^(\d+)\s+(\d+)$/) - { - print "\n"; - - $del_index = $1; - $add_index = $2; - if ($del_index >= @del_files) - { - print "Delete index $del_index is larger than ", - "maximum index of ", scalar @del_files - 1, - ".\n"; - $del_index = undef; - } - if ($add_index > @add_files) - { - print "Add index $add_index is larger than maximum ", - "index of ", scalar @add_files - 1, ".\n"; - $add_index = undef; - } - $got_line = defined $del_index && defined $add_index; - - # Check that the file or directory to be renamed - # has the same file type. - if ($got_line) - { - $add_filename = $add_files[$add_index]; - $del_filename = $del_files[$del_index]; - if ($add_files{$add_filename}{type} ne - $del_files{$del_filename}{type}) - { - print "File types for $del_filename and ", - "$add_filename differ.\n"; - $got_line = undef; - } - } - } - } until ($got_line); - - if ($line !~ /^F$/i) - { - print "Renaming $del_filename to $add_filename.\n"; - - $repeat_loop = 1; - - # Because subversion cannot rename the same file - # or directory twice, which includes doing a - # rename of a file in a directory that was - # previously renamed, a commit has to be - # performed. Check if the file or directory being - # renamed now would cause such a problem and - # commit if so. - my $do_commit_now = 0; - foreach my $rename_to_filename (keys %rename_to_files) - { - if (contained_in($del_filename, - $rename_to_filename, - $rename_to_files{$rename_to_filename}{type})) - { - $do_commit_now = 1; - last; - } - } - - if ($do_commit_now) - { - print "Now committing previously run renames.\n"; - &commit_renames($load_dir, - \@renamed_filenames, - \%rename_from_files, - \%rename_to_files); - } - - push(@renamed_filenames, $del_filename, $add_filename); - { - my $d = $del_files{$del_filename}; - $rename_from_files{$del_filename} = $d; - $rename_to_files{$add_filename} = $d; - } - - # Check that any required directories to do the - # rename exist. - my @add_segments = split('/', $add_filename); - pop(@add_segments); - my $add_dir = ''; - my @add_dirs; - foreach my $segment (@add_segments) - { - $add_dir = length($add_dir) ? "$add_dir/$segment" : - $segment; - unless (-d $add_dir) - { - push(@add_dirs, $add_dir); - } - } - - if (@add_dirs) - { - read_from_process($svn, 'mkdir', @add_dirs); - } - - read_from_process($svn, 'mv', - $del_filename, $add_filename); - } - } - } while ($repeat_loop); - } - - # If there are any renames that have not been committed, then do - # that now. - if (@renamed_filenames) - { - &commit_renames($load_dir, - \@renamed_filenames, - \%rename_from_files, - \%rename_to_files); - } - - # At this point all renames have been performed. Now get the - # final list of files and directories in the working copy - # directory. The %add_files hash will contain the list of files - # and directories to add to the working copy and %del_files starts - # with all the files already in the working copy and gets files - # removed that are in the imported directory, which results in a - # list of files that should be deleted. %upd_files holds the list - # of files that have been updated. - my %add_files; - my %del_files = &recursive_ls_and_hash($wc_import_dir_cwd); - my %upd_files; - - # This anonymous subroutine copies files from the source directory - # to the working copy directory. - my $wanted = sub - { - s#^\./##; - return if $_ eq '.'; - - my $source_path = $_; - my $dest_path = "$wc_import_dir_cwd/$_"; - - my ($source_type, $source_is_exe) = &file_info($source_path); - my ($dest_type) = &file_info($dest_path); - - return if ($source_type ne 'd' and - $source_type ne 'f' and - $source_type ne 'l'); - - # Fail if the destination type exists but is of a different - # type of file than the source type. - if ($dest_type ne '0' and $source_type ne $dest_type) - { - die "$0: does not handle changing source and destination type ", - "for '$source_path'.\n"; - } - - # Determine if the file is being added or is an update to an - # already existing file using the file's digest. - my $del_info = delete $del_files{$source_path}; - if (defined $del_info) - { - if (defined (my $del_digest = $del_info->{digest})) - { - my $new_digest = &digest_hash_file($source_path); - if ($new_digest ne $del_digest) - { - print "U $source_path\n"; - $upd_files{$source_path} = $del_info; - } - } - } - else - { - print "A $source_path\n"; - $add_files{$source_path}{type} = $source_type; - - # Create an array reference to hold the list of properties - # to apply to this object. - unless (defined $add_files{$source_path}{properties}) - { - $add_files{$source_path}{properties} = []; - } - - # Go through the list of properties for a match on this - # file or directory and if there is a match, then apply - # the property to it. - foreach my $property (@property_settings) - { - my $re = $property->{re}; - if ($source_path =~ $re) - { - my $property_name = $property->{name}; - my $property_value = $property->{value}; - - # The property value may not be set in the - # configuration file, since the user may just want - # to set the control flag. - if (defined $property_name and defined $property_value) - { - # Ignore properties that do not apply to - # directories. - if ($source_type eq 'd') - { - if ($property_name eq 'svn:eol-style' or - $property_name eq 'svn:executable' or - $property_name eq 'svn:keywords' or - $property_name eq 'svn:mime-type') - { - next; - } - } - - # Ignore properties that do not apply to - # files. - if ($source_type eq 'f') - { - if ($property_name eq 'svn:externals' or - $property_name eq 'svn:ignore') - { - next; - } - } - - print "Adding to '$source_path' property ", - "'$property_name' with value ", - "'$property_value'.\n"; - - push(@{$add_files{$source_path}{properties}}, - $property); - } - - last if $property->{control} eq 'break'; - } - } - } - - # Add svn:executable to files that have their executable bit - # set. - if ($source_is_exe and !$opt_no_auto_exe) - { - print "Adding to '$source_path' property 'svn:executable' with ", - "value '*'.\n"; - my $property = {name => 'svn:executable', value => '*'}; - push (@{$add_files{$source_path}{properties}}, - $property); - } - - # Now make sure the file or directory in the source directory - # exists in the repository. - if ($source_type eq 'd') - { - if ($dest_type eq '0') - { - mkdir($dest_path) - or die "$0: cannot mkdir '$dest_path': $!\n"; - } - } - elsif - ($source_type eq 'l') { - my $link_target = readlink($source_path) - or die "$0: cannot readlink '$source_path': $!\n"; - if ($dest_type eq 'l') - { - my $old_target = readlink($dest_path) - or die "$0: cannot readlink '$dest_path': $!\n"; - return if ($old_target eq $link_target); - unlink($dest_path) - or die "$0: unlink '$dest_path' failed: $!\n"; - } - symlink($link_target, $dest_path) - or die "$0: cannot symlink '$dest_path' to '$link_target': $!\n"; - } - elsif - ($source_type eq 'f') { - # Only copy the file if the digests do not match. - if ($add_files{$source_path} or $upd_files{$source_path}) - { - copy($source_path, $dest_path) - or die "$0: copy '$source_path' to '$dest_path': $!\n"; - } - } - else - { - die "$0: does not handle copying files of type '$source_type'.\n"; - } - }; - - # Now change into the directory containing the files to load. - # First change to the original directory where this script was run - # so that if the specified directory is a relative directory path, - # then the script can change into it. - chdir($orig_cwd) - or die "$0: cannot chdir '$orig_cwd': $!\n"; - chdir($load_dir) - or die "$0: cannot chdir '$load_dir': $!\n"; - - find({no_chdir => 1, - preprocess => sub { sort { $b cmp $a } - grep { $_ !~ /^[._]svn$/ } @_ }, - wanted => $wanted - }, '.'); - - # The files and directories that are in %del_files are the files - # and directories that need to be deleted. Because svn will - # return an error if a file or directory is deleted in a directory - # that subsequently is deleted, first find all directories and - # remove from the list any files and directories inside those - # directories from this list. Work through the list repeatedly - # working from short to long names so that directories containing - # other files and directories will be deleted first. - my $repeat_loop; - do - { - $repeat_loop = 0; - my @del_files = sort {length($a) <=> length($b) || $a cmp $b} - keys %del_files; - &filter_renamed_files(\@del_files, \%rename_from_files); - foreach my $file (@del_files) - { - if ($del_files{$file}{type} eq 'd') - { - my $dir = "$file/"; - my $dir_length = length($dir); - foreach my $f (@del_files) - { - next if $file eq $f; - if (length($f) >= $dir_length and - substr($f, 0, $dir_length) eq $dir) - { - print "d $f\n"; - delete $del_files{$f}; - $repeat_loop = 1; - } - } - - # If there were any deletions of files and/or - # directories inside a directory that will be deleted, - # then restart the entire loop again, because one or - # more keys have been deleted from %del_files. - # Equally important is not to stop this loop if no - # deletions have been done, otherwise later - # directories that may contain files and directories - # to be deleted will not be deleted. - last if $repeat_loop; - } - } - } while ($repeat_loop); - - # What is left are files that are not in any directories to be - # deleted and directories to be deleted. To delete the files, - # deeper files and directories must be deleted first. Because we - # have a hash keyed by remaining files and directories to be - # deleted, instead of trying to figure out which directories and - # files are contained in other directories, just reverse sort by - # the path length and then alphabetically. - my @del_files = sort {length($b) <=> length($a) || $a cmp $b } - keys %del_files; - &filter_renamed_files(\@del_files, \%rename_from_files); - foreach my $file (@del_files) - { - print "D $file\n"; - } - - # Now change back to the trunk directory and run the svn commands. - chdir($wc_import_dir_cwd) - or die "$0: cannot chdir '$wc_import_dir_cwd': $!\n"; - - # If any of the added files have the svn:eol-style property set, - # then pass -b to diff, otherwise diff may fail because the end of - # lines have changed and the source file and file in the - # repository will not be identical. - my @diff_ignore_space_changes; - - if (keys %add_files) - { - my @add_files = sort {length($a) <=> length($b) || $a cmp $b} - keys %add_files; - my $target_filename = &make_targets_file(@add_files); - read_from_process($svn, 'add', '-N', '--targets', $target_filename); - unlink($target_filename); - - # Add properties on the added files. - foreach my $add_file (@add_files) - { - foreach my $property (@{$add_files{$add_file}{properties}}) - { - my $property_name = $property->{name}; - my $property_value = $property->{value}; - - if ($property_name eq 'svn:eol-style') - { - @diff_ignore_space_changes = ('-b'); - } - - # Write the value to a temporary file in case it's multi-line - my ($handle, $tmpfile) = tempfile(DIR => $temp_dir); - print $handle $property_value; - close($handle); - - read_from_process($svn, - 'propset', - $property_name, - '--file', - $tmpfile, - $add_file); - } - } - } - if (@del_files) - { - my $target_filename = &make_targets_file(@del_files); - read_from_process($svn, 'rm', '--targets', $target_filename); - unlink($target_filename); - } - - # Go through the list of updated files and check the svn:eol-style - # property. If it is set to native, then convert all CR, CRLF and - # LF's in the file to the native end of line characters. Also, - # modify diff's command line so that it will ignore the change in - # end of line style. - if (keys %upd_files) - { - my @upd_files = sort {length($a) <=> length($b) || $a cmp $b} - keys %upd_files; - foreach my $upd_file (@upd_files) - { - # Always append @BASE to a filename in case they contain a - # @ character, in which case the Subversion command line - # client will attempt to parse the characters after the @ - # as a revision and most likely fail, or if the characters - # after the @ are a valid revision, then it'll possibly - # get the incorrect information. So always append @BASE - # and any preceding @'s will be treated normally and the - # correct information will be retrieved. - my @command = ($svn, - 'propget', - 'svn:eol-style', - "$upd_file\@BASE"); - my @lines = read_from_process(@command); - next unless @lines; - if (@lines > 1) - { - warn "$0: '@command' returned more than one line of output: ", - "'@lines'.\n"; - next; - } - - my $eol_style = $lines[0]; - if ($eol_style eq 'native') - { - @diff_ignore_space_changes = ('-b'); - if (&convert_file_to_native_eol($upd_file)) - { - print "Native eol-style conversion modified $upd_file.\n"; - } - } - } - } - - my $message = $opt_final_commit_msg; - if (!$message) - { - $message = wrap('', '', "Load $load_dir into $repos_load_abs_path.\n"); - } - read_from_process($svn, 'commit', - @svn_use_repos_cmd_opts, - '-m', $message); - - # If an update is not run now after a commit, then some file and - # directory paths will have an older revisions associated with - # them and any future commits will fail because they are out of - # date. - read_from_process($svn, 'update', @svn_use_repos_cmd_opts); - - # Now remove any files and directories to be deleted in the - # repository. - if (@del_files) - { - rmtree(\@del_files, 1, 0); - } - - # Now make the tag by doing a copy in the svn repository itself. - if (defined $load_tag) - { - my $repos_tag_abs_path = length($repos_base_path_segment) ? - "$repos_base_path_segment/$load_tag" : - $load_tag; - - my $from_url = $repos_load_rel_path eq '.' ? - $repos_load_rel_path : - "$repos_base_url/$repos_load_rel_path"; - my $to_url = "$repos_base_url/$load_tag"; - - $message = wrap("", - "", - "Tag $repos_load_abs_path as " . - "$repos_tag_abs_path.\n"); - read_from_process($svn, 'cp', @svn_use_repos_cmd_opts, - '-m', $message, $from_url, $to_url); - - # Now check out the tag and run a recursive diff between the - # original source directory and the tag for a consistency - # check. - my $checkout_dir_name = "my_tag_wc_named_$load_tag"; - print "Checking out $to_url into $temp_dir/$checkout_dir_name\n"; - - chdir($temp_dir) - or die "$0: cannot chdir '$temp_dir': $!\n"; - - read_from_process($svn, 'checkout', - @svn_use_repos_cmd_opts, - $to_url, $checkout_dir_name); - - chdir($checkout_dir_name) - or die "$0: cannot chdir '$checkout_dir_name': $!\n"; - - chdir($orig_cwd) - or die "$0: cannot chdir '$orig_cwd': $!\n"; - read_from_process('diff', '-u', @diff_ignore_space_changes, - '-x', '.svn', - '-r', $load_dir, "$temp_dir/$checkout_dir_name"); - } - } - -exit 0; - -sub usage -{ - warn "@_\n" if @_; - die "usage: $0 [options] svn_url svn_import_dir [dir_v1 [dir_v2 [..]]]\n", - " svn_url is the file:// or http:// URL of the svn repository\n", - " svn_import_dir is the path relative to svn_url where to load dirs\n", - " dir_v1 .. list dirs to import otherwise read from stdin\n", - "options are\n", - " -no_user_input don't ask yes/no questions and assume yes answer\n", - " -no_auto_exe don't set svn:executable for executable files\n", - " -p filename table listing properties to apply to matching files\n", - " -svn_username username to perform commits as\n", - " -svn_password password to supply to svn commit\n", - " -t tag_dir create a tag copy in tag_dir, relative to svn_url\n", - " -v increase program verbosity, multiple -v's allowed\n", - " -wc path use the already checked-out working copy at path\n", - " instead of checkout out a fresh working copy\n", - " -glob_ignores List of filename patterns to ignore (as in svn's\n", - " global-ignores config option)\n", - " -message Final commit message\n"; -} - -# Get the next directory to load, either from the command line or from -# standard input. -my $get_next_load_dir_init = 0; -my @get_next_load_dirs; -sub get_next_load_dir -{ - if (@ARGV) - { - unless ($get_next_load_dir_init) - { - $get_next_load_dir_init = 1; - @get_next_load_dirs = @ARGV; - } - return shift @get_next_load_dirs; - } - - if ($opt_verbose) - { - print "Waiting for next directory to import on standard input:\n"; - } - my $line = ; - - print "\n" if $opt_verbose; - - chomp $line; - if ($line =~ m|(\S+)\s+(\S+)|) - { - $line = $1; - set_svn_use_repos_cmd_opts($2, $opt_svn_password); - } - $line; -} - -# This constant stores the commonly used string to indicate that a -# subroutine has been passed an incorrect number of arguments. -use vars qw($INCORRECT_NUMBER_OF_ARGS); -$INCORRECT_NUMBER_OF_ARGS = "passed incorrect number of arguments.\n"; - -# Creates a temporary file in the temporary directory and stores the -# arguments in it for use by the svn --targets command line option. -# If any part of the file creation failed, exit the program, as -# there's no workaround. Use a unique number as a counter to the -# files. -my $make_targets_file_counter; -sub make_targets_file -{ - unless (@_) - { - confess "$0: make_targets_file $INCORRECT_NUMBER_OF_ARGS"; - } - - $make_targets_file_counter = 1 unless defined $make_targets_file_counter; - - my $filename = sprintf "%s/targets.%05d", - $temp_dir, - $make_targets_file_counter; - ++$make_targets_file_counter; - - open(TARGETS, ">$filename") - or die "$0: cannot open '$filename' for writing: $!\n"; - - foreach my $file (@_) - { - print TARGETS "$file\n"; - } - - close(TARGETS) - or die "$0: error in closing '$filename' for writing: $!\n"; - - $filename; -} - -# Set the svn command line options that are used anytime svn connects -# to the repository. -sub set_svn_use_repos_cmd_opts -{ - unless (@_ == 2) - { - confess "$0: set_svn_use_repos_cmd_opts $INCORRECT_NUMBER_OF_ARGS"; - } - - my $username = shift; - my $password = shift; - - @svn_use_repos_cmd_opts = ('--non-interactive'); - if (defined $username and length $username) - { - push(@svn_use_repos_cmd_opts, '--username', $username); - } - if (defined $password) - { - push(@svn_use_repos_cmd_opts, '--password', $password); - } -} - -sub get_tag_dir -{ - unless (@_ == 1) - { - confess "$0: get_tag_dir $INCORRECT_NUMBER_OF_ARGS"; - } - - my $load_dir = shift; - - # Take the tag relative directory, search for pairs of - # REGEX_SEP_CHAR's and use the regular expression inside the pair to - # put in the tag directory name. - my $tag_location = $opt_import_tag_location; - my $load_tag = ''; - while ((my $i = index($tag_location, $REGEX_SEP_CHAR)) >= 0) - { - $load_tag .= substr($tag_location, 0, $i, ''); - substr($tag_location, 0, 1, ''); - my $j = index($tag_location, $REGEX_SEP_CHAR); - if ($j < 0) - { - die "$0: -t value '$opt_import_tag_location' does not have ", - "matching $REGEX_SEP_CHAR.\n"; - } - my $regex = substr($tag_location, 0, $j, ''); - $regex = "($regex)" unless ($regex =~ /\(.+\)/); - substr($tag_location, 0, 1, ''); - my @results = $load_dir =~ m/$regex/; - $load_tag .= join('', @results); - } - $load_tag .= $tag_location; - - $load_tag; -} - -# Return a two element array. The first element is a single character -# that represents the type of object the path points to. The second -# is a boolean (1 for true, '' for false) if the path points to a file -# and if the file is executable. -sub file_info -{ - lstat(shift) or return ('0', ''); - -b _ and return ('b', ''); - -c _ and return ('c', ''); - -d _ and return ('d', ''); - -f _ and return ('f', -x _); - -l _ and return ('l', ''); - -p _ and return ('p', ''); - -S _ and return ('S', ''); - return '?'; -} - -# Start a child process safely without using /bin/sh. -sub safe_read_from_pipe -{ - unless (@_) - { - croak "$0: safe_read_from_pipe $INCORRECT_NUMBER_OF_ARGS"; - } - - my $openfork_available = "MSWin32" ne $OSNAME; - if ($openfork_available) - { - print "Running @_\n"; - my $pid = open(SAFE_READ, "-|"); - unless (defined $pid) - { - die "$0: cannot fork: $!\n"; - } - unless ($pid) - { - # child - open(STDERR, ">&STDOUT") - or die "$0: cannot dup STDOUT: $!\n"; - exec(@_) - or die "$0: cannot exec '@_': $!\n"; - } - } - else - { - # Redirect the comment into a temp file and use that to work around - # Windoze's (non-)handling of multi-line commands. - my @commandline = (); - my $command; - my $comment; - - while ($command = shift) - { - if ("-m" eq $command) - { - my $comment = shift; - my ($handle, $tmpfile) = tempfile(DIR => $temp_dir); - print $handle $comment; - close($handle); - - push(@commandline, "--file"); - push(@commandline, $tmpfile); - } - else - { - # Munge the command to protect it from the command line - $command =~ s/\"/\\\"/g; - if ($command =~ m"\s") { $command = "\"$command\""; } - if ($command eq "") { $command = "\"\""; } - if ($command =~ m"\n") - { - warn "$0: carriage return detected in command - may not work\n"; - } - push(@commandline, $command); - } - } - - print "Running @commandline\n"; - if ( $comment ) { print $comment; } - - # Now do the pipe. - open(SAFE_READ, "@commandline |") - or die "$0: cannot pipe to command: $!\n"; - } - - # parent - my @output; - while () - { - chomp; - push(@output, $_); - } - close(SAFE_READ); - my $result = $?; - my $exit = $result >> 8; - my $signal = $result & 127; - my $cd = $result & 128 ? "with core dump" : ""; - if ($signal or $cd) - { - warn "$0: pipe from '@_' failed $cd: exit=$exit signal=$signal\n"; - } - if (wantarray) - { - return ($result, @output); - } - else - { - return $result; - } -} - -# Use safe_read_from_pipe to start a child process safely and exit the -# script if the child failed for whatever reason. -sub read_from_process -{ - unless (@_) - { - croak "$0: read_from_process $INCORRECT_NUMBER_OF_ARGS"; - } - my ($status, @output) = &safe_read_from_pipe(@_); - if ($status) - { - print STDERR "$0: @_ failed with this output:\n", join("\n", @output), - "\n"; - unless ($opt_no_user_input) - { - print STDERR - "Press return to quit and clean up svn working directory: "; - ; - } - exit 1; - } - else - { - return @output; - } -} - -# Get a list of all the files and directories in the specified -# directory, the type of file and a digest hash of file types. -sub recursive_ls_and_hash -{ - unless (@_ == 1) - { - croak "$0: recursive_ls_and_hash $INCORRECT_NUMBER_OF_ARGS"; - } - - # This is the directory to change into. - my $dir = shift; - - # Get the current directory so that the script can change into the - # current working directory after changing into the specified - # directory. - my $return_cwd = cwd; - - chdir($dir) - or die "$0: cannot chdir '$dir': $!\n"; - - my %files; - - my $wanted = sub - { - s#^\./##; - return if $_ eq '.'; - my ($file_type) = &file_info($_); - my $file_digest; - if ($file_type eq 'f' or ($file_type eq 'l' and stat($_) and -f _)) - { - $file_digest = &digest_hash_file($_); - } - $files{$_} = {type => $file_type, - digest => $file_digest}; - }; - find({no_chdir => 1, - preprocess => sub - { - grep - { - my $ok=1; - foreach my $x (@glob_ignores) - { - if ( $_ =~ /$x/ ) {$ok=0;last;} - } - $ok - } @_ - }, - wanted => $wanted - }, '.'); - - chdir($return_cwd) - or die "$0: cannot chdir '$return_cwd': $!\n"; - - %files; -} - -# Given a list of files and directories which have been renamed but -# not commtited, commit them with a proper log message. -sub commit_renames -{ - unless (@_ == 4) - { - croak "$0: commit_renames $INCORRECT_NUMBER_OF_ARGS"; - } - - my $load_dir = shift; - my $renamed_filenames = shift; - my $rename_from_files = shift; - my $rename_to_files = shift; - - my $number_renames = @$renamed_filenames/2; - - my $message = "To prepare to load $load_dir into $repos_load_abs_path, " . - "perform $number_renames rename" . - ($number_renames > 1 ? "s" : "") . ".\n"; - - # Text::Wrap::wrap appears to replace multiple consecutive \n's with - # one \n, so wrap the text and then append the second \n. - $message = wrap("", "", $message) . "\n"; - while (@$renamed_filenames) - { - my $from = "$repos_load_abs_path/" . shift @$renamed_filenames; - my $to = "$repos_load_abs_path/" . shift @$renamed_filenames; - $message .= wrap("", " ", "* $to: Renamed from $from.\n"); - } - - # Change to the top of the working copy so that any - # directories will also be updated. - my $cwd = cwd; - chdir($wc_import_dir_cwd) - or die "$0: cannot chdir '$wc_import_dir_cwd': $!\n"; - read_from_process($svn, 'commit', @svn_use_repos_cmd_opts, '-m', $message); - read_from_process($svn, 'update', @svn_use_repos_cmd_opts); - chdir($cwd) - or die "$0: cannot chdir '$cwd': $!\n"; - - # Some versions of subversion have a bug where renamed files - # or directories are not deleted after a commit, so do that - # here. - my @del_files = sort {length($b) <=> length($a) || $a cmp $b } - keys %$rename_from_files; - rmtree(\@del_files, 1, 0); - - # Empty the list of old and new renamed names. - undef %$rename_from_files; - undef %$rename_to_files; -} - -# Take a one file or directory and see if its name is equal to a -# second or is contained in the second if the second file's file type -# is a directory. -sub contained_in -{ - unless (@_ == 3) - { - croak "$0: contain_in $INCORRECT_NUMBER_OF_ARGS"; - } - - my $contained = shift; - my $container = shift; - my $container_type = shift; - - if ($container eq $contained) - { - return 1; - } - - if ($container_type eq 'd') - { - my $dirname = "$container/"; - my $dirname_length = length($dirname); - - if ($dirname_length <= length($contained) and - $dirname eq substr($contained, 0, $dirname_length)) - { - return 1; - } - } - - return 0; -} - -# Take an array reference containing a list of files and directories -# and take a hash reference and remove from the array reference any -# files and directories and the files the directory contains listed in -# the hash. -sub filter_renamed_files -{ - unless (@_ == 2) - { - croak "$0: filter_renamed_files $INCORRECT_NUMBER_OF_ARGS"; - } - - my $array_ref = shift; - my $hash_ref = shift; - - foreach my $remove_filename (keys %$hash_ref) - { - my $remove_file_type = $hash_ref->{$remove_filename}{type}; - for (my $i=0; $i<@$array_ref;) - { - if (contained_in($array_ref->[$i], - $remove_filename, - $remove_file_type)) - { - splice(@$array_ref, $i, 1); - next; - } - ++$i; - } - } -} - -# Get a digest hash of the specified filename. -sub digest_hash_file -{ - unless (@_ == 1) - { - croak "$0: digest_hash_file $INCORRECT_NUMBER_OF_ARGS"; - } - - my $filename = shift; - - my $ctx = Digest::MD5->new; - if (open(READ, $filename)) - { - binmode READ; - $ctx->addfile(*READ); - close(READ); - } - else - { - die "$0: cannot open '$filename' for reading: $!\n"; - } - $ctx->digest; -} - -# Read standard input until a line contains the required input or an -# empty line to signify the default answer. -sub get_answer -{ - unless (@_ == 3) - { - croak "$0: get_answer $INCORRECT_NUMBER_OF_ARGS"; - } - - my $message = shift; - my $answers = shift; - my $def_ans = shift; - - return $def_ans if $opt_no_user_input; - - my $char; - do - { - print $message; - $char = ''; - my $line = ; - if (defined $line and length $line) - { - $char = substr($line, 0, 1); - $char = '' if $char eq "\n"; - } - } until $char eq '' or $answers =~ /$char/ig; - - return $def_ans if $char eq ''; - return pos($answers) - 1; -} - -# Determine the native end of line on this system by writing a \n in -# non-binary mode to an empty file and reading the same file back in -# binary mode. -sub determine_native_eol -{ - my $filename = "$temp_dir/svn_load_dirs_eol_test.$$"; - if (-e $filename) - { - unlink($filename) - or die "$0: cannot unlink '$filename': $!\n"; - } - - # Write the \n in non-binary mode. - open(NL_TEST, ">$filename") - or die "$0: cannot open '$filename' for writing: $!\n"; - print NL_TEST "\n"; - close(NL_TEST) - or die "$0: error in closing '$filename' for writing: $!\n"; - - # Read the \n in binary mode. - open(NL_TEST, $filename) - or die "$0: cannot open '$filename' for reading: $!\n"; - binmode NL_TEST; - local $/; - undef $/; - my $eol = ; - close(NL_TEST) - or die "$0: cannot close '$filename' for reading: $!\n"; - unlink($filename) - or die "$0: cannot unlink '$filename': $!\n"; - - my $eol_length = length($eol); - unless ($eol_length) - { - die "$0: native eol length on this system is 0.\n"; - } - - print "Native EOL on this system is "; - for (my $i=0; $i<$eol_length; ++$i) - { - printf "\\%03o", ord(substr($eol, $i, 1)); - } - print ".\n\n"; - - $eol; -} - -# Take a filename, open the file and replace all CR, CRLF and LF's -# with the native end of line style for this system. -sub convert_file_to_native_eol -{ - unless (@_ == 1) - { - croak "$0: convert_file_to_native_eol $INCORRECT_NUMBER_OF_ARGS"; - } - - my $filename = shift; - open(FILE, $filename) - or die "$0: cannot open '$filename' for reading: $!\n"; - binmode FILE; - local $/; - undef $/; - my $in = ; - close(FILE) - or die "$0: error in closing '$filename' for reading: $!\n"; - my $out = ''; - - # Go through the file and transform it byte by byte. - my $i = 0; - while ($i < length($in)) - { - my $cc = substr($in, $i, 2); - if ($cc eq "\015\012") - { - $out .= $native_eol; - $i += 2; - next; - } - - my $c = substr($cc, 0, 1); - if ($c eq "\012" or $c eq "\015") - { - $out .= $native_eol; - } - else - { - $out .= $c; - } - ++$i; - } - - return 0 if $in eq $out; - - my $tmp_filename = ".svn/tmp/svn_load_dirs.$$"; - open(FILE, ">$tmp_filename") - or die "$0: cannot open '$tmp_filename' for writing: $!\n"; - binmode FILE; - print FILE $out; - close(FILE) - or die "$0: cannot close '$tmp_filename' for writing: $!\n"; - rename($tmp_filename, $filename) - or die "$0: cannot rename '$tmp_filename' to '$filename': $!\n"; - - return 1; -} - -# Split the input line into words taking into account that single or -# double quotes may define a single word with whitespace in it. -sub split_line -{ - unless (@_ == 1) - { - croak "$0: split_line $INCORRECT_NUMBER_OF_ARGS"; - } - - my $line = shift; - - # Strip leading whitespace. Do not strip trailing whitespace which - # may be part of quoted text that was never closed. - $line =~ s/^\s+//; - - my $line_length = length $line; - my @words = (); - my $current_word = ''; - my $in_quote = ''; - my $in_protect = ''; - my $in_space = ''; - my $i = 0; - - while ($i < $line_length) - { - my $c = substr($line, $i, 1); - ++$i; - - if ($in_protect) - { - if ($c eq $in_quote) - { - $current_word .= $c; - } - elsif ($c eq '"' or $c eq "'") - { - $current_word .= $c; - } - else - { - $current_word .= "$in_protect$c"; - } - $in_protect = ''; - } - elsif ($c eq '\\') - { - $in_protect = $c; - } - elsif ($in_quote) - { - if ($c eq $in_quote) - { - $in_quote = ''; - } - else - { - $current_word .= $c; - } - } - elsif ($c eq '"' or $c eq "'") - { - $in_quote = $c; - } - elsif ($c =~ m/^\s$/) - { - unless ($in_space) - { - push(@words, $current_word); - $current_word = ''; - } - } - else - { - $current_word .= $c; - } - - $in_space = $c =~ m/^\s$/; - } - - # Handle any leftovers. - $current_word .= $in_protect if $in_protect; - push(@words, $current_word) if length $current_word; - - @words; -} - -# This package exists just to delete the temporary directory. -package Temp::Delete; - -sub new -{ - bless {}, shift; -} - -sub DESTROY -{ - print "Cleaning up $temp_dir\n"; - File::Path::rmtree([$temp_dir], 0, 0); -} diff --git a/build/unix/updatellvm.sh b/build/unix/updatellvm.sh deleted file mode 100755 index 44dce90d1ed57..0000000000000 --- a/build/unix/updatellvm.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/sh - -if [ $# -ne 1 ]; then - echo "Must specify LLVM/clang revision number" - exit 1 -fi - -GOLDEN=$1 - -cd -rm -rf llvm-export -svn export -r $GOLDEN http://llvm.org/svn/llvm-project/llvm/trunk llvm-export - -# don't need the test directory -rm -rf llvm-export/test - -rm -rf clang-export -svn export -r $GOLDEN http://llvm.org/svn/llvm-project/cfe/trunk clang-export - -# don't need the test directory -rm -rf clang-export/test - -# will automatically commit into vendor branch -$ROOTSYS/build/unix/svn_load_dirs.pl https://root.cern.ch/svn/root/vendors llvm llvm-export -m "Update LLVM to r$GOLDEN." - -# will automatically commit into vendor branch -$ROOTSYS/build/unix/svn_load_dirs.pl https://root.cern.ch/svn/root/vendors clang clang-export -m "Update Clang to r$GOLDEN." - -# Both of the 'svn_load_dirs.pl' steps should have given you a final revision -# number for their checkins. We need to merge those changes into 'trunk/'. -##cd $ROOTSYS/interpreter/llvm/src -##svn merge -c $LLVM_REV https://root.cern.ch/svn/root/vendors/llvm . - -##cd $ROOTSYS/interpreter/llvm/src/tools/clang -##svn merge -c $CLANG_REV https://root.cern.ch/svn/root/vendors/clang . - -# now apply the patches from 'interpreter/cling/patches' -# and run 'make all-llvm' in '$ROOTSYS' and next 'make test' from -# 'interpreter/llvm/obj'. diff --git a/build/unix/wingcc_ld.sh b/build/unix/wingcc_ld.sh deleted file mode 100755 index d37b64be1fd01..0000000000000 --- a/build/unix/wingcc_ld.sh +++ /dev/null @@ -1,32 +0,0 @@ -#! /bin/sh - -# Put dlls into bin/, symlinking them to lib/, and create -# a symlinked import archive .dll.a in lib/. - -CXX=`grep CXX config/Makefile.comp | sed 's,CXX[[:space:]]*=,,'` - -args= -isdll=0 -while [ "$1" != "" ]; do - case "$1" in - -o) args="$args $1"; shift; - dllname="$1"; dllbase=`basename $1`; - if [ "`echo $dllname | sed 's#^lib/.*\.dll$##'`" != "$dllname" ]; then - isdll=1 - args="$args bin/$dllbase" - else - args="$args $1" - fi ;; - *) args="$args $1" ;; - esac - shift -done - -# -$CXX $args \ - && ( if [ "$isdll" != "0" ]; then \ - ln -sf $dllbase $dllname.a; \ - ln -sf ../bin/$dllbase $dllname; \ - fi ) - -exit $? diff --git a/build/version.cxx b/build/version.cxx deleted file mode 100644 index 535ad92dbe8de..0000000000000 --- a/build/version.cxx +++ /dev/null @@ -1,57 +0,0 @@ -int version() -{ - // Reads from the file build/version_number the new version - // number and generates the header base/inc/RVersion.h. - // To be executed as CINT script by build/unix/makeversion.sh. - // - // Author: Fons Rademakers 11/10/99 - - const char *in = "build/version_number"; - - FILE *fp = fopen(in, "r"); - if (!fp) { - printf("version.cxx: can not open input file %s\n", in); - return 1; - } - char vers[32]; - fgets(vers, sizeof(vers), fp); - if (vers[strlen(vers)-1] == '\n') vers[strlen(vers)-1] = 0; - fclose(fp); - - const char *out = "core/base/inc/RVersion.h"; - fp = fopen(out, "w"); - if (!fp) { - printf("version.cxx: can not open output file %s\n", out); - return 1; - } - - fprintf(fp, "#ifndef ROOT_RVersion\n"); - fprintf(fp, "#define ROOT_RVersion\n\n"); - fprintf(fp, "/* Version information automatically generated by installer. */\n\n"); - fprintf(fp, "/*\n"); - fprintf(fp, " * These macros can be used in the following way:\n"); - fprintf(fp, " *\n"); - fprintf(fp, " * #if ROOT_VERSION_CODE >= ROOT_VERSION(2,23,4)\n"); - fprintf(fp, " * #include \n"); - fprintf(fp, " * #else\n"); - fprintf(fp, " * #include \n"); - fprintf(fp, " * #endif\n"); - fprintf(fp, " *\n"); - fprintf(fp, "*/\n\n"); - - int xx, yy, zz; - sscanf(vers, "%d.%d/%d", &xx, &yy, &zz); - int vers_code = (xx << 16) + (yy << 8) + zz; - - fprintf(fp, "#define ROOT_RELEASE \"%s\"\n", vers); - fprintf(fp, "#define ROOT_RELEASE_DATE \"%s\"\n", __DATE__); - fprintf(fp, "#define ROOT_RELEASE_TIME \"%s\"\n", __TIME__); - fprintf(fp, "#define ROOT_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))\n"); - fprintf(fp, "#define ROOT_VERSION_CODE ROOT_VERSION(%d,%d,%d) /* %d */\n", - xx, yy, zz, vers_code); - fprintf(fp, "\n#endif\n"); - - fclose(fp); - - return 0; -} diff --git a/build/version_number b/build/version_number deleted file mode 100644 index 1c4a70ee62674..0000000000000 --- a/build/version_number +++ /dev/null @@ -1 +0,0 @@ -6.09/03 diff --git a/build/win/bindexplib/bindexplib.cxx b/build/win/bindexplib/bindexplib.cxx deleted file mode 100644 index 29b6f64970868..0000000000000 --- a/build/win/bindexplib/bindexplib.cxx +++ /dev/null @@ -1,736 +0,0 @@ -/* -*---------------------------------------------------------------------- -* Program: dumpexts.exe -* Author: Gordon Chaffee -* -* History: The real functionality of this file was written by -* Matt Pietrek in 1993 in his pedump utility. I've -* modified it to dump the externals in a bunch of object -* files to create a .def file. -* -* Notes: Visual C++ puts an underscore before each exported symbol. -* This file removes them. I don't know if this is a problem -* this other compilers. If _MSC_VER is defined, -* the underscore is removed. If not, it isn't. To get a -* full dump of an object file, use the -f option. This can -* help determine the something that may be different with a -* compiler other than Visual C++. -* ====================================== -* Corrections (Axel 2006-04-04): -* Conversion to C++. Mostly. -* - * Extension (Axel 2006-03-15) - * As soon as an object file contains an /EXPORT directive (which - * is generated by the compiler when a symbol is declared as - * declspec(dllexport)) no to-be-exported symbols are printed, - * as the linker will see these directives, and if those directives - * are present we only export selectively (i.e. we trust the - * programmer). - * - * ====================================== -* ====================================== -* Corrections (Valery Fine 23/02/98): -* -* The "(vector) deleting destructor" MUST not be exported -* To recognize it the following test are introduced: -* "@@UAEPAXI@Z" scalar deleting dtor -* "@@QAEPAXI@Z" vector deleting dtor -* "AEPAXI@Z" vector deleting dtor with thunk adjustor -* ====================================== -* Corrections (Valery Fine 12/02/97): -* -* It created a wrong EXPORTS for the global pointers and constants. -* The Section Header has been involved to discover the missing information -* Now the pointers are correctly supplied supplied with "DATA" descriptor -* the constants with no extra descriptor. -* -* Corrections (Valery Fine 16/09/96): -* -* It didn't work for C++ code with global variables and class definitons -* The DumpExternalObject function has been introduced to generate .DEF file -* -* Author: Valery Fine 16/09/96 (E-mail: fine@vxcern.cern.ch) -*---------------------------------------------------------------------- -*/ - -static char sccsid[] = "@(#) winDumpExts.c 1.2 95/10/03 15:27:34"; - -#include -#include -#include -#include - -/* -*---------------------------------------------------------------------- -* GetArgcArgv -- -* -* Break up a line into argc argv -*---------------------------------------------------------------------- -*/ -int -GetArgcArgv(std::string &s, char **argv) -{ - int quote = 0; - int argc = 0; - std::string::iterator bp = s.begin(); - - while (1) { - while (isspace(*bp)) { - bp++; - } - if (*bp == '\n' || *bp == '\0') { - *bp = '\0'; - return argc; - } - if (*bp == '\"') { - quote = 1; - bp++; - } - argv[argc++] = &(*bp); - - while (*bp != '\0') { - if (quote) { - if (*bp == '\"') { - quote = 0; - *bp = '\0'; - bp++; - break; - } - bp++; - continue; - } - if (isspace(*bp)) { - *bp = '\0'; - bp++; - break; - } - bp++; - } - } -} - -/* -* The names of the first group of possible symbol table storage classes -*/ -char * SzStorageClass1[] = { - "NULL","AUTOMATIC","EXTERNAL","STATIC","REGISTER","EXTERNAL_DEF","LABEL", - "UNDEFINED_LABEL","MEMBER_OF_STRUCT","ARGUMENT","STRUCT_TAG", - "MEMBER_OF_UNION","UNION_TAG","TYPE_DEFINITION","UNDEFINED_STATIC", - "ENUM_TAG","MEMBER_OF_ENUM","REGISTER_PARAM","BIT_FIELD" -}; - -/* -* The names of the second group of possible symbol table storage classes -*/ -char * SzStorageClass2[] = { - "BLOCK","FUNCTION","END_OF_STRUCT","FILE","SECTION","WEAK_EXTERNAL" -}; - -/* -*---------------------------------------------------------------------- -* GetSZStorageClass -- -* -* Given a symbol storage class value, return a descriptive -* ASCII string -*---------------------------------------------------------------------- -*/ -PSTR -GetSZStorageClass(BYTE storageClass) -{ - if ( storageClass <= IMAGE_SYM_CLASS_BIT_FIELD ) - return SzStorageClass1[storageClass]; - else if ( (storageClass >= IMAGE_SYM_CLASS_BLOCK) - && (storageClass <= IMAGE_SYM_CLASS_WEAK_EXTERNAL) ) - return SzStorageClass2[storageClass-IMAGE_SYM_CLASS_BLOCK]; - else - return "???"; -} - -void AddHex(std::string& buf, long val, bool caps=false) -{ - buf += "0x"; - int len=buf.length(); - while (val) { - char hex = (char)(val & 16); - val = val >> 4; - if (hex<10) hex+='0'; - else if (caps) hex+='A'-10; - else hex+='a'-10; - buf.insert(len, hex, 1); - } -} - -/* -*---------------------------------------------------------------------- -* GetSectionName -- -* -* Used by DumpSymbolTable, it gives meaningful names to -* the non-normal section number. -* -* Results: -* A name is returned in buffer -*---------------------------------------------------------------------- -*/ -void -GetSectionName(PIMAGE_SYMBOL pSymbolTable, std::string& buffer) -{ - DWORD section; - - section = pSymbolTable->SectionNumber; - - switch ( (SHORT)section ) - { - case IMAGE_SYM_UNDEFINED: if (pSymbolTable->Value) buffer += "COMM"; else buffer += "UNDEF"; break; - case IMAGE_SYM_ABSOLUTE: buffer += "ABS "; break; - case IMAGE_SYM_DEBUG: buffer += "DEBUG"; break; - default: AddHex(buffer, section, true); - } -} - -/* -*---------------------------------------------------------------------- -* GetSectionCharacteristics -- -* -* Converts the Characteristics field of IMAGE_SECTION_HEADER -* to print. -* -* Results: -* A definiton of the section symbol type -*---------------------------------------------------------------------- -*/ -void -GetSectionCharacteristics(PIMAGE_SECTION_HEADER pSectionHeaders, int nSectNum, std::string &buffer) -{ - DWORD SectChar; - std::string TempBuf; - buffer.clear(); - if (nSectNum > 0) { - SectChar = pSectionHeaders[nSectNum-1].Characteristics; - - buffer = " "; - AddHex(buffer, SectChar); - if (SectChar & IMAGE_SCN_CNT_CODE) buffer += " Code"; - else if (SectChar & IMAGE_SCN_CNT_INITIALIZED_DATA) buffer += " Init. data"; - else if (SectChar & IMAGE_SCN_CNT_UNINITIALIZED_DATA ) buffer += " UnInit data"; - else buffer += " Unknow type"; - - if (SectChar & IMAGE_SCN_MEM_READ) { - buffer += " Read"; - if (SectChar & IMAGE_SCN_MEM_WRITE) - buffer += " and Write"; - else buffer += " only"; - } - else if (SectChar & IMAGE_SCN_MEM_WRITE) - buffer +=" Write only"; - - } -} - -/* -*---------------------------------------------------------------------- -* DumpSymbolTable -- -* -* Dumps a COFF symbol table from an EXE or OBJ. We only use -* it to dump tables from OBJs. -*---------------------------------------------------------------------- -*/ -void -DumpSymbolTable(PIMAGE_SYMBOL pSymbolTable, PIMAGE_SECTION_HEADER pSectionHeaders, FILE *fout, unsigned cSymbols) -{ - unsigned i; - PSTR stringTable; - std::string sectionName; - std::string sectionCharacter; - int iSectNum; - - fprintf(fout, "Symbol Table - %X entries (* = auxillary symbol)\n", - cSymbols); - - fprintf(fout, - "Indx Name Value Section cAux Type Storage Character\n" - "---- -------------------- -------- ---------- ----- ------- -------- ---------\n"); - - /* - * The string table apparently starts right after the symbol table - */ - stringTable = (PSTR)&pSymbolTable[cSymbols]; - - for ( i=0; i < cSymbols; i++ ) { - fprintf(fout, "%04X ", i); - if ( pSymbolTable->N.Name.Short != 0 ) - fprintf(fout, "%-20.8s", pSymbolTable->N.ShortName); - else - fprintf(fout, "%-20s", stringTable + pSymbolTable->N.Name.Long); - - fprintf(fout, " %08X", pSymbolTable->Value); - - iSectNum = pSymbolTable->SectionNumber; - GetSectionName(pSymbolTable, sectionName); - fprintf(fout, " sect:%s aux:%X type:%02X st:%s", - sectionName.c_str(), - pSymbolTable->NumberOfAuxSymbols, - pSymbolTable->Type, - GetSZStorageClass(pSymbolTable->StorageClass) ); - - GetSectionCharacteristics(pSectionHeaders,iSectNum,sectionCharacter); - fprintf(fout," hc: %s \n",sectionCharacter.c_str()); -#if 0 - if ( pSymbolTable->NumberOfAuxSymbols ) - DumpAuxSymbols(pSymbolTable); -#endif - - /* - * Take into account any aux symbols - */ - i += pSymbolTable->NumberOfAuxSymbols; - pSymbolTable += pSymbolTable->NumberOfAuxSymbols; - pSymbolTable++; - } -} - -/* -*---------------------------------------------------------------------- -* DumpExternals -- -* -* Dumps a COFF symbol table from an EXE or OBJ. We only use -* it to dump tables from OBJs. -*---------------------------------------------------------------------- -*/ -void -DumpExternals(PIMAGE_SYMBOL pSymbolTable, FILE *fout, unsigned cSymbols) -{ - unsigned i; - PSTR stringTable; - std::string symbol; - - /* - * The string table apparently starts right after the symbol table - */ - stringTable = (PSTR)&pSymbolTable[cSymbols]; - - for ( i=0; i < cSymbols; i++ ) { - if (pSymbolTable->SectionNumber > 0 && pSymbolTable->Type == 0x20) { - if (pSymbolTable->StorageClass == IMAGE_SYM_CLASS_EXTERNAL) { - if (pSymbolTable->N.Name.Short != 0) { - symbol = ""; - symbol.insert(0, (const char *)(pSymbolTable->N.ShortName), 8); - } else { - symbol = stringTable + pSymbolTable->N.Name.Long; - } - std::string::size_type posAt = symbol.find('@'); - if (posAt != std::string::npos) symbol.erase(posAt); -#ifndef _MSC_VER - fprintf(fout, "\t%s\n", symbol.c_str()); -#else - fprintf(fout, "\t%s\n", symbol.c_str()+1); -#endif - } - } - - /* - * Take into account any aux symbols - */ - i += pSymbolTable->NumberOfAuxSymbols; - pSymbolTable += pSymbolTable->NumberOfAuxSymbols; - pSymbolTable++; - } -} - -/* -+ * Utility func, strstr with size -+ */ -const char* StrNStr(const char* start, const char* find, size_t &size) { - int len; - const char* hint; - - if (!start || !find || !size) { - size = 0; - return 0; - } - len = strlen(find); - - while (hint = (const char*) memchr(start, find[0], size-len+1)) { - size -= (hint - start); - if (!strncmp(hint, find, len)) - return hint; - start = hint + 1; - } - - size = 0; - return 0; -} - -/* - *---------------------------------------------------------------------- - * HaveExportedObjects -- - * - * Returns >0 if export directives (declspec(dllexport)) exist. - * - *---------------------------------------------------------------------- - */ -int -HaveExportedObjects(PIMAGE_FILE_HEADER pImageFileHeader, PIMAGE_SECTION_HEADER pSectionHeaders, FILE *fout) -{ - static int fImportFlag = 0; /* The status is nor defined yet */ - WORD i; - size_t size; - char foundExports; - const char * rawdata; - - PIMAGE_SECTION_HEADER pDirectivesSectionHeader; - - if (fImportFlag) return 1; - - i = 0; - foundExports = 0; - pDirectivesSectionHeader = 0; - for(i = 0; i < pImageFileHeader->NumberOfSections && !pDirectivesSectionHeader; i++) - if (!strncmp((const char*)&pSectionHeaders[i].Name[0], ".drectve",8)) - pDirectivesSectionHeader = &pSectionHeaders[i]; - if (!pDirectivesSectionHeader) return 0; - - rawdata=(const char*)pImageFileHeader+pDirectivesSectionHeader->PointerToRawData; - if (!pDirectivesSectionHeader->PointerToRawData || !rawdata) return 0; - - size = pDirectivesSectionHeader->SizeOfRawData; - const char* posImportFlag = rawdata; - while ((posImportFlag = StrNStr(posImportFlag, " /EXPORT:", size))) { - const char* lookingForDict = posImportFlag + 9; - if (!strncmp(lookingForDict, "_G__cpp_",8) || - !strncmp(lookingForDict, "_G__set_cpp_",12)) { - posImportFlag = lookingForDict; - continue; - } - - const char* lookingForDATA = posImportFlag + 9; - while (*(++lookingForDATA) && *lookingForDATA != ' '); - lookingForDATA -= 5; - // ignore DATA exports - if (strncmp(lookingForDATA, ",DATA", 5)) break; - posImportFlag = lookingForDATA + 5; - } - fImportFlag = (int)posImportFlag; - return fImportFlag; -} - - - -/* - *---------------------------------------------------------------------- -* DumpExternalsObjects -- -* -* Dumps a COFF symbol table from an EXE or OBJ. We only use -* it to dump tables from OBJs. -*---------------------------------------------------------------------- -*/ -void -DumpExternalsObjects(PIMAGE_SYMBOL pSymbolTable, PIMAGE_SECTION_HEADER pSectionHeaders, - FILE *fout, unsigned cSymbols, int fort) -{ - unsigned i; - PSTR stringTable; - std::string symbol; - DWORD SectChar; - static int fImportFlag = -1; /* The status is nor defined yet */ - - /* - * The string table apparently starts right after the symbol table - */ - stringTable = (PSTR)&pSymbolTable[cSymbols]; - - for ( i=0; i < cSymbols; i++ ) { - if (pSymbolTable->SectionNumber > 0 && ( pSymbolTable->Type == 0x20 || pSymbolTable->Type == 0x0)) { - if (pSymbolTable->StorageClass == IMAGE_SYM_CLASS_EXTERNAL) { - /* - * The name of the Function entry points - */ - if (pSymbolTable->N.Name.Short != 0) { - symbol = ""; - symbol.insert(0, (const char *)pSymbolTable->N.ShortName, 8); - } else { - symbol = stringTable + pSymbolTable->N.Name.Long; - } - - while (isspace(symbol[0])) symbol.erase(0,1); -#ifdef _MSC_VER - if (symbol[0] == '_') symbol.erase(0,1); - if (fort) { - std::string::size_type posAt = symbol.find('@'); - if (posAt != std::string::npos) symbol.erase(posAt); - } -#endif - if (fImportFlag) { - fImportFlag = 0; - fprintf(fout,"EXPORTS \n"); - } - /* - Check whether it is "Scalar deleting destructor" and - "Vector deleting destructor" - */ - /* - if (!strstr(s,"@@UAEPAXI@Z") && !strstr(s,"@@QAEPAXI@Z") && - !strstr(s,"@AEPAXI@Z") && !strstr(s,"AEPAXI@Z") && - !strstr(s,"real@")) - */ - const char *scalarPrefix = "??_G"; - const char *vectorPrefix = "??_E"; - if (symbol.compare(0, 4, scalarPrefix) && - symbol.compare(0, 4, vectorPrefix) && - symbol.find("real@") == std::string::npos) - { - SectChar = pSectionHeaders[pSymbolTable->SectionNumber-1].Characteristics; - if (!pSymbolTable->Type && (SectChar & IMAGE_SCN_MEM_WRITE)) { - // Read only (i.e. constants) must be excluded - fprintf(fout, "\t%s \t DATA\n", symbol.c_str()); - } else { - if ( pSymbolTable->Type || !(SectChar & IMAGE_SCN_MEM_READ)) { - fprintf(fout, "\t%s\n", symbol.c_str()); - } else { - // printf(" strange symbol: %s \n",s); - } - } - } - } - } - else if (pSymbolTable->SectionNumber == IMAGE_SYM_UNDEFINED && !pSymbolTable->Type && 0){ - /* - * The IMPORT global variable entry points - */ - if (pSymbolTable->StorageClass == IMAGE_SYM_CLASS_EXTERNAL) { - symbol = stringTable + pSymbolTable->N.Name.Long; - while (isspace(symbol[0])) symbol.erase(0,1); - if (symbol[0] == '_') symbol.erase(0,1); - if (!fImportFlag) { - fImportFlag = 1; - fprintf(fout,"IMPORTS \n"); - } - fprintf(fout, "\t%s DATA \n", symbol.c_str()+1); - } - } - - /* - * Take into account any aux symbols - */ - i += pSymbolTable->NumberOfAuxSymbols; - pSymbolTable += pSymbolTable->NumberOfAuxSymbols; - pSymbolTable++; - } -} - -/* -*---------------------------------------------------------------------- -* DumpObjFile -- -* -* Dump an object file--either a full listing or just the exported -* symbols. -*---------------------------------------------------------------------- -*/ -void -DumpObjFile(PIMAGE_FILE_HEADER pImageFileHeader, FILE *fout, int full, int fort) -{ - PIMAGE_SYMBOL PCOFFSymbolTable; - PIMAGE_SECTION_HEADER PCOFFSectionHeaders; - DWORD COFFSymbolCount; - - PCOFFSymbolTable = (PIMAGE_SYMBOL) - ((DWORD)pImageFileHeader + pImageFileHeader->PointerToSymbolTable); - COFFSymbolCount = pImageFileHeader->NumberOfSymbols; - - PCOFFSectionHeaders = (PIMAGE_SECTION_HEADER) - ((DWORD)pImageFileHeader + - IMAGE_SIZEOF_FILE_HEADER + - pImageFileHeader->SizeOfOptionalHeader); - - - if (full) { - DumpSymbolTable(PCOFFSymbolTable, PCOFFSectionHeaders, fout, COFFSymbolCount); - } else { - int haveExports = HaveExportedObjects(pImageFileHeader, PCOFFSectionHeaders, fout); - if (!haveExports) - DumpExternalsObjects(PCOFFSymbolTable, PCOFFSectionHeaders, fout, COFFSymbolCount, fort); - } -} - -/* -*---------------------------------------------------------------------- -* DumpFile -- -* -* Open up a file, memory map it, and call the appropriate -* dumping routine -*---------------------------------------------------------------------- -*/ -void -DumpFile(LPSTR filename, FILE *fout, int full, int fort) -{ - HANDLE hFile; - HANDLE hFileMapping; - LPVOID lpFileBase; - PIMAGE_DOS_HEADER dosHeader; - - hFile = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - - if (hFile == INVALID_HANDLE_VALUE) { - fprintf(stderr, "Couldn't open file with CreateFile()\n"); - return; - } - - hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL); - if (hFileMapping == 0) { - CloseHandle(hFile); - fprintf(stderr, "Couldn't open file mapping with CreateFileMapping()\n"); - return; - } - - lpFileBase = MapViewOfFile(hFileMapping, FILE_MAP_READ, 0, 0, 0); - if (lpFileBase == 0) { - CloseHandle(hFileMapping); - CloseHandle(hFile); - fprintf(stderr, "Couldn't map view of file with MapViewOfFile()\n"); - return; - } - - dosHeader = (PIMAGE_DOS_HEADER)lpFileBase; - if (dosHeader->e_magic == IMAGE_DOS_SIGNATURE) { -#if 0 - DumpExeFile( dosHeader ); -#else - fprintf(stderr, "File is an executable. I don't dump those.\n"); - return; -#endif - } - /* Does it look like a i386 COFF OBJ file??? */ - else if ((dosHeader->e_magic == 0x014C) && (dosHeader->e_sp == 0)) { - /* - * The two tests above aren't what they look like. They're - * really checking for IMAGE_FILE_HEADER.Machine == i386 (0x14C) - * and IMAGE_FILE_HEADER.SizeOfOptionalHeader == 0; - */ - DumpObjFile((PIMAGE_FILE_HEADER) lpFileBase, fout, full, fort); - } else { - printf("unrecognized file format\n"); - } - UnmapViewOfFile(lpFileBase); - CloseHandle(hFileMapping); - CloseHandle(hFile); -} - -void -main(int argc, char **argv) -{ - std::string cmdline; - int i, arg; - FILE *fout; - int full = 0; - int fort = 0; - char *dllname = ""; - char *outfile = NULL; - - if (argc < 3) { -Usage: - fprintf(stderr, "Usage: %s ?-o outfile? ?-f(ull)? ..\n", argv[0]); - exit(1); - } - - arg = 1; - while (argv[arg][0] == '-') { - if (strcmp(argv[arg], "--") == 0) { - arg++; - break; - } else if (strcmp(argv[arg], "-f") == 0) { - full = 1; - } else if (strcmp(argv[arg], "-x") == 0) { - fort = 1; - } else if (strcmp(argv[arg], "-o") == 0) { - arg++; - if (arg == argc) { - goto Usage; - } - outfile = argv[arg]; - } - arg++; - } - if (arg == argc) { - goto Usage; - } - - if (outfile) { - fout = fopen(outfile, "w+"); - if (fout == NULL) { - fprintf(stderr, "Unable to open \'%s\' for writing:\n", - argv[arg]); - perror(""); - exit(1); - } - } else { - fout = stdout; - } - - if (! full) { - dllname = argv[arg]; - arg++; - if (arg == argc) { - goto Usage; - } - fprintf(fout, "LIBRARY %s\n", dllname); -#ifndef _X86_ - fprintf(fout, "CODE PRELOAD MOVEABLE DISCARDABLE\n"); - fprintf(fout, "DATA PRELOAD MOVEABLE MULTIPLE\n\n"); -#endif - } - - for (; arg < argc; arg++) { - WIN32_FIND_DATA FindFileData; - HANDLE SearchFile; - if (argv[arg][0] == '@') { - std::ifstream fargs(&argv[arg][1]); - if (!fargs) { - fprintf(stderr, "Unable to open \'%s\' for reading:\n", - argv[arg]); - perror(""); - exit(1); - } - char *fargv[1000]; - for (i = 0; i < arg; i++) { - cmdline += argv[i]; - fargv[i] = argv[i]; - } - std::string line; - std::getline(fargs, line); - cmdline += line; - fprintf(stderr, "%s\n", line.c_str()); - i += GetArgcArgv(line, &fargv[i]); - argc = i; - argv = fargv; - } - /* - * Argument can contain the wildcard names - */ - SearchFile = FindFirstFile(argv[arg],&FindFileData); - if (SearchFile == INVALID_HANDLE_VALUE){ - fprintf(stderr, "Unable to find \'%s\' for reading:\n", - argv[arg]); - exit(1); - } - else { - /* - * Since WIN32_FIND_DATA has no path information one has to extract it oneself. - */ - TCHAR *filename = argv[arg]; - TCHAR path[2048]; - int i = strlen(filename); - i--; - while( filename[i] != '\\' && filename[i] != '/' && i >=0) i--; - do - { - if (i >= 0) strncpy( path, filename, i+1); /* Generate the 'path' info */ - path[i+1] = '\0'; - DumpFile(strcat(path, FindFileData.cFileName), fout, full, fort); - } while (FindNextFile(SearchFile,&FindFileData)); - - - FindClose(SearchFile); - } - } - exit(0); -} diff --git a/build/win/cl.sh b/build/win/cl.sh deleted file mode 100755 index 4304dcb281b4c..0000000000000 --- a/build/win/cl.sh +++ /dev/null @@ -1,25 +0,0 @@ -#! /bin/sh - -# Simple interface to cl.exe, tansforming /cygdrive/... into "mixed" path. - -args= - -while [ "$1" != "" ]; do - case "$1" in - -I*) narg=`echo $1 | sed -e s/-I//`; args="$args -I`cygpath -m -- $narg`" ;; - -c) args="$args -c "; shift; args="$args`cygpath -m -- $1`" ;; - *) args="$args $1" ;; - esac - shift -done - -cl.exe $args -stat=$? - -if [ $stat -eq 126 ]; then -# cygwin causes spurious exit codes 126; just re-try. - cl.exe $args - stat=$? -fi - -exit $stat diff --git a/build/win/compiledata.sh b/build/win/compiledata.sh deleted file mode 100755 index 7becb83e43d81..0000000000000 --- a/build/win/compiledata.sh +++ /dev/null @@ -1,109 +0,0 @@ -#! /bin/sh - -# Script to generate the file include/compiledata.h. -# Called by main Makefile. -# -# Author: Fons Rademakers, 29/2/2000 - -COMPILEDATA=$1 -CXX=$2 -CXXOPT=$3 -CXXDEBUG=$4 -CXXFLAGS=$5 -SOFLAGS=$6 -LDFLAGS=$7 -SOEXT=$8 -SYSLIBS=$9 -shift -LIBDIR=$9 -shift -ROOTLIBS=$9 -shift -RINTLIBS=$9 -shift -INCDIR=$9 -shift -CUSTOMSHARED=$9 -shift -CUSTOMEXE=$9 -shift -ARCH=$9 -shift -ROOTBUILD=$9 -shift - -if [ "x$ROOTSYS" = "x" ]; then - ROOTSYS=$PWD -fi - -if [ "$(cd $INCDIR && cygpath -u $PWD)" = "$(cd $ROOTSYS/include && cygpath -u $PWD)" ]; then - INCDIR=%ROOTSYS%/include -fi -if [ "$(cd $LIBDIR && cygpath -u $PWD)" = "$(cd $ROOTSYS/lib && cygpath -u $PWD)" ]; then - LIBDIR=%ROOTSYS%/lib -fi - -CXXDEBUG=`echo $CXXDEBUG|sed 's,-Fdbin/root.pdb,,g'` - -HAVEMT=`(unset VS_UNICODE_OUTPUT; mt '/?' >/dev/null 2>&1) && echo 1` -if [ "$HAVEMT" == "1" ]; then - HAVEMTDLL=' && if EXIST \"$BuildDir\\$LibName.dll.manifest\" ( mt -nologo -manifest \"$BuildDir\\$LibName.dll.manifest\" \"-outputresource:$BuildDir\\$LibName.dll;2\" && del \"$BuildDir\\$LibName.dll.manifest\" )' - HAVEMTEXE=' && if EXIST \"$ExeName.exe.manifest\" ( mt -nologo -manifest \"$ExeName.exe.manifest\" \"-outputresource:$ExeName.exe;1\" && del \"$ExeName.exe.manifest\" )' -fi - - -if [ "$CXX" == "./build/win/cl.sh" ] ; then - # We are using the wrapper dealing with cygwin path, - # which is hard coded to use cl.exe, so let's record - # information about cl.exe - CXX=cl.exe -fi - -# Determine the compiler version -COMPILERVERS="`$CXX 2>&1 | grep Version | dos2unix`" - -rm -f __compiledata - -echo "Running $0" -echo "/* This file is automatically generated */" > __compiledata -echo "#define BUILD_ARCH \"$ARCH\"" >> __compiledata -echo "#define BUILD_NODE \""`uname -a`"\" " >> __compiledata -echo "#define COMPILER \""`type -path $CXX`"\" " >> __compiledata -echo "#define COMPILERVERS \"$COMPILERVERS\"" >> __compiledata -if [ "$CUSTOMSHARED" = "" ]; then - echo "#define MAKESHAREDLIB \"cl \$Opt -nologo -TP -c $CXXFLAGS \$IncludePath \$SourceFiles -Fo\$ObjectFiles && bindexplib \$LibName \$ObjectFiles > \$BuildDir\\\\\$LibName.def && lib -nologo -MACHINE:IX86 -out:\$BuildDir\\\\\$LibName.lib \$ObjectFiles -def:\$BuildDir\\\\\$LibName.def && link -nologo \$ObjectFiles -DLL $LDFLAGS -out:\$BuildDir\\\\\$LibName.dll \$BuildDir\\\\\$LibName.exp -LIBPATH:%ROOTSYS%\\\\lib \$LinkedLibs libCore.lib libCint.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib $HAVEMTDLL \" " >> __compiledata -else - echo "#define MAKESHAREDLIB \"$CUSTOMSHARED\"" >> __compiledata -fi - -if [ "$CUSTOMEXE" = "" ]; then - echo "#define MAKEEXE \"cl -nologo -TP -Iinclude -I../include -c \$Opt $CXXFLAGS \$IncludePath \$SourceFiles && link -opt:ref $LDFLAGS \$ObjectFiles \$LinkedLibs $SYSLIBS -out:\$ExeName $HAVEMTEXE \"" >> __compiledata -else - echo "#define MAKEEXE \"$CUSTOMEXE\"" >> __compiledata -fi - -echo "#define CXXOPT \"$CXXOPT\"" >> __compiledata -echo "#define CXXDEBUG \"$CXXDEBUG\"" >> __compiledata -echo "#define ROOTBUILD \"$ROOTBUILD\"" >> __compiledata - -echo "#define LINKEDLIBS \"-LIBPATH:%ROOTSYS% $ROOTLIBS $RINTLIBS \"" >> __compiledata - -echo "#define INCLUDEPATH \"-I$INCDIR\"" >> __compiledata -echo "#define OBJEXT \"obj\" " >> __compiledata -echo "#define SOEXT \"$SOEXT\" " >> __compiledata - -( -if [ -r $COMPILEDATA ]; then - diff __compiledata $COMPILEDATA > /dev/null; status=$?; - if [ "$status" -ne "0" ]; then - echo "Changing $COMPILEDATA" - mv __compiledata $COMPILEDATA; - else - rm -f __compiledata; fi -else - echo "Making $COMPILEDATA" - mv __compiledata $COMPILEDATA; fi -) - -exit 0 - diff --git a/build/win/f77.sh b/build/win/f77.sh deleted file mode 100755 index 1eba838fb8695..0000000000000 --- a/build/win/f77.sh +++ /dev/null @@ -1,48 +0,0 @@ -#! /bin/sh - -# Simple interface to FL32, tansforming -o to -Fo and unix -# pathnames to windows pathnames (fl32 does not access unix style names). -# When -link is specified the output option should be -out: and it -# should be at the end of the option list. - -args= -dolink=no -link= - -while [ "$1" != "" ]; do - arg=$1 - case "$arg" in - -optimize:*) args="$args $arg" ;; - -link) link="$arg"; dolink=yes ;; - -o) if [ "$dolink" = "yes" ]; then - link="$link -out:" - shift; link="$link`cygpath -w -- $1`" - else - args="$args -Fo" - shift; args="$args`cygpath -w -- $1`" - fi ;; - -c) args="$args -c "; shift; args="$args`cygpath -w -- $1`" ;; - -*) if [ "$dolink" = "yes" ]; then - link="$link `cygpath -w -- $1`" - else - args="$args `cygpath -w -- $1`" - fi ;; - *) args="$args `cygpath -w -- $1`" ;; - esac - shift -done - -if [ "$dolink" = "yes" ]; then - fl32 $args $link - stat=$? - if [ $stat -eq 1 ]; then - stat=0 - fi -else - fl32 $args - stat=$? -fi - -rm -f *.rsp - -exit $stat diff --git a/build/win/githeader.bat b/build/win/githeader.bat deleted file mode 100644 index e68d0c707326b..0000000000000 --- a/build/win/githeader.bat +++ /dev/null @@ -1,13 +0,0 @@ -@echo off - -rem Generate the header file from the Store info about in which git branch, -rem what SHA1 and at what date/time we executed make. - -for /f "delims=" %%a in ('powershell.exe -command "& {Get-Content .\etc\gitinfo.txt | select -First 1}"') do set GIT_BRANCH=%%a -for /f "delims=" %%a in ('powershell.exe -command "& {Get-Content .\etc\gitinfo.txt | select -First 2 | select -Last 1}"') do set GIT_COMMIT=%%a - -echo #ifndef ROOT_RGITCOMMIT_H > %1 -echo #define ROOT_RGITCOMMIT_H >> %1 -echo #define ROOT_GIT_BRANCH "%GIT_BRANCH%" >> %1 -echo #define ROOT_GIT_COMMIT "%GIT_COMMIT%" >> %1 -echo #endif >> %1 diff --git a/build/win/gitinfo.bat b/build/win/gitinfo.bat deleted file mode 100644 index 0db5462033d53..0000000000000 --- a/build/win/gitinfo.bat +++ /dev/null @@ -1,20 +0,0 @@ -@echo off - -rem Store info about in which git branch, what SHA1 and at what date/time we executed make. - -set dir="" -set dotgit=".git" -if not "%1"=="" set dotgit="%1\.git" - -rem if we don't see the .git directory, just return -if not exist %dotgit% exit /b 0 - -set OUT=".\etc\gitinfo.txt" - -call git.exe --git-dir=%dotgit% describe --all > %OUT% -call git.exe --git-dir=%dotgit% describe --always >> %OUT% - -for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j -set ldt=%ldt:~6,2% %ldt:~4,2% %ldt:~0,4%, %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,2% -echo %ldt%>> %OUT% - diff --git a/build/win/ld.sh b/build/win/ld.sh deleted file mode 100755 index 634bb6d48d0d5..0000000000000 --- a/build/win/ld.sh +++ /dev/null @@ -1,63 +0,0 @@ -#! /bin/sh - -# Simple interface to LINK, tansforming -o to -out: and unix -# pathnames to windows pathnames. - -dir=`dirname $0` -args= -dll= -debug= -while [ "$1" != "" ]; do - case "$1" in - -o) args="$args -out:$2" - dll="$2" - shift ;; - -debug) args="$args $1" - debug=-DDEBUG;; - *) args="$args $1" ;; - esac - shift -done - -if [ "$dll" != "bin/rmkdepend.exe" -a \ - "$dll" != "bin/bindexplib.exe" -a \ - "$dll" != "bin/cint.exe" -a \ - "$dll" != "bin/makecint.exe" -a \ - "$dll" != "bin/rootcint.exe" -a \ - "$dll" != "bin/rlibmap.exe" -a \ - "$dll" != "bin/genmap.exe" -a \ - "$dll" != "cint/main/cint_tmp.exe" -a \ - "$dll" != "utils/src/rootcint_tmp.exe" -a \ - "$dll" != "bin/libCint.dll" -a \ - "$dll" != "bin/libReflex.dll" -a \ - "$dll" == "`echo $dll | sed 's,^cint/,,'`" -a \ - -r base/src/precompile.o ]; then - args="$args base/src/precompile.o" -fi - -if [ "$dll" != "" ]; then - $dir/makeresource.sh "$dll" \ - && rc $debug -Iinclude -Fo"${dll}.res" "${dll}.rc" > /dev/null 2>&1 - if [ -r "${dll}.res" ]; then - args="$args ${dll}.res" - fi - rm -f "${dll}.rc" -fi - -WHICHLINK="`which cl.exe|sed 's,cl\.exe$,link.exe,'`" -"${WHICHLINK}" $args || exit $? - -if [ "$dll" != "" -a -f $dll.manifest ]; then - if [ "${dll%.dll}" == "$dll" ] - then resourceID=1; # .exe - else resourceID=2 #.dll - fi - mt -nologo -manifest $dll.manifest -outputresource:${dll}\;$resourceID - rm $dll.manifest -fi - -if [ "$dll" != "" ]; then - rm -f "${dll}.res" -fi - -exit 0 diff --git a/build/win/makelib.sh b/build/win/makelib.sh deleted file mode 100755 index 26e989c4cee49..0000000000000 --- a/build/win/makelib.sh +++ /dev/null @@ -1,111 +0,0 @@ -#! /bin/sh - -# Script to generate a shared library (DLL) on Win32 for VC++. -# Called by main Makefile. -# -# Author: Fons Rademakers, 29/2/2000 - -# the -v and -x options are not used, but handled anyway -if [ "$1" = "-v" ] ; then - R__MAJOR=$2 - R__MINOR=$3 - R__REVIS=$4 - shift - shift - shift - shift -fi - -if [ "$1" = "-x" ] ; then - R__EXPLICIT="yes" - shift -fi - -R__PLATFORM=$1 -R__LD=$2 -R__LDFLAGS=$3 -R__SOFLAGS=$4 -R__SONAME=$5 -R__LIB=$6 -R__OBJS=$7 -R__EXTRA=$8 -R__LEXTRA=$9 - -lastsyslib=comctl32.lib -extralibs=$lastsyslib -syslibs="kernel32.lib advapi32.lib \ - user32.lib gdi32.lib comdlg32.lib winspool.lib \ - $extralibs" - -name=`basename $R__LIB .dll` -targetdir=`dirname $R__LIB` - -bindexp=bin/bindexplib - -rm -f $R__LIB - -if [ "$targetdir" = "lib" ]; then - libdir=lib - dlldir=bin - relocated=x -else - libdir=$targetdir - dlldir=$targetdir -fi - -if [ "$R__PLATFORM" = "win32" ]; then - if [ "`basename $R__LD`" = "ld.sh" ]; then - echo "$bindexp $name $R__OBJS > $libdir/${name}.def" - $bindexp $name $R__OBJS > $libdir/${name}.def - cmd="lib -ignore:4049,4206,4217,4221 \ - -nologo -MACHINE:IX86 -out:$libdir/${name}.lib $R__OBJS \ - -def:$libdir/${name}.def $R__LEXTRA" - echo $cmd - $cmd - if [ "$R__LIB" = "lib/libCint.dll" ]; then - cmd="$R__LD $R__SOFLAGS $R__LDFLAGS -o $dlldir/${name}.dll $R__OBJS \ - $libdir/${name}.exp $syslibs" - elif [ "$R__LIB" = "lib/libReflex.dll" ]; then - cmd="$R__LD $R__SOFLAGS $R__LDFLAGS -o $dlldir/${name}.dll $R__OBJS \ - $libdir/${name}.exp $R__EXTRA $syslibs" - elif [ "$R__LIB" = "lib/libCintex.dll" ]; then - cmd="$R__LD $R__SOFLAGS $R__LDFLAGS -o $dlldir/${name}.dll $R__OBJS \ - $libdir/${name}.exp lib/libCore.lib lib/libReflex.lib \ - lib/libCint.lib $R__EXTRA $syslibs" - elif [ "$R__LIB" = "lib/libCore.dll" ]; then - cmd="$R__LD $R__SOFLAGS $R__LDFLAGS -o $dlldir/${name}.dll $R__OBJS \ - $libdir/${name}.exp lib/libCint.lib \ - $R__EXTRA $syslibs shell32.lib WSock32.lib Oleaut32.lib Iphlpapi.lib" - elif [ "$R__LIB" = "lib/libminicern.dll" ]; then - cmd="$R__LD $R__SOFLAGS $R__LDFLAGS -o $dlldir/${name}.dll $R__OBJS \ - $libdir/${name}.exp $R__EXTRA $syslibs" - else - if [ "$(bin/root-config --dicttype)" != "cint" ]; then - needReflex="lib/libCintex.lib lib/libReflex.lib" - fi - cmd="$R__LD $R__SOFLAGS $R__LDFLAGS -o $dlldir/${name}.dll $R__OBJS \ - $libdir/${name}.exp $R__EXTRA \ - $needReflex lib/libCore.lib lib/libCint.lib \ - $syslibs" - fi - echo $cmd - $cmd - fi -fi - -linkstat=$? -if [ $linkstat -ne 0 ]; then - exit $linkstat -fi - -if [ "$relocated" = "x" ]; then - # dummy dll (real one in in bin/) to prevent rebuilds of the dll - touch $R__LIB -fi - -# once we have the .dll we don't need the .def anymore -rm -f $libdir/${name}.def - -echo "==> $R__LIB done" - -exit 0 diff --git a/build/win/makeresource.sh b/build/win/makeresource.sh deleted file mode 100755 index fc2c583f96800..0000000000000 --- a/build/win/makeresource.sh +++ /dev/null @@ -1,115 +0,0 @@ -#! /bin/sh - -# Generate a resource file holding the version info for a FILENAME / EXE. -# Called as -# makeresource.sh -# it will generate .rc to be compiled with -# %.res: %.rc -# rc -fo"$@" $< $CXXFLAGS -# This .res file can then be passed to the linker like an object file. -# -# Author: Axel, 2009. - -FILENAME=$1 - -FILEBASE=`basename $FILENAME` -RC=$FILENAME.rc -FILESTEM=${FILEBASE%.*} - -if [ "x`echo $FILENAME| grep -i '\.DLL$'`" = "x${FILENAME}" ]; then - RCFILETYPE=VFT_DLL - RCFILETITLE=library -else - RCFILETYPE=VFT_APP - RCFILETITLE=application -fi -if [ "$FILEBASE" = "root.exe" ]; then - RCFILEICON="101 ICON \"icons/RootIcon.ico\"" -else - RCFILEICON= -fi - -# Use gitinfo.txt: more precise than the info in Rversion.h -GITBRANCH=`cat etc/gitinfo.txt|head -n1` -GITREV=`cat etc/gitinfo.txt|head -n2|tail -n1` -GITDATE="`cat etc/gitinfo.txt|tail -n1`" -GITYEARCOMMA=`echo $GITDATE|cut -d' ' -f3` - -# Can't do that inside the .rc file: FILEVERSION doesn't evaluate a>>b -VERSION=`grep "ROOT_RELEASE " include/RVersion.h | sed 's,^.*"\([^"]*\)".*$,\1,' | sed 's,[^[:digit:]], ,g'` -VER1=`echo $VERSION| cut -d ' ' -f 1| sed 's,^0,,'` -VER2=`echo $VERSION| cut -d ' ' -f 2| sed 's,^0,,'` -VER3=`echo $VERSION| cut -d ' ' -f 3| sed 's,^0,,'` - -# 0: tag, 1: trunk, 2: branch -VERBRANCHFLAG=1 -if [ "x${GITBRANCH/tag/}" != "x${GITBRANCH}" ]; then - VERBRANCHFLAG=0 -elif [ "x${GITBRANCH/branch/}" != "x${GITBRANCH}" ]; then - VERBRANCHFLAG=2 -fi - -DATE="`date +'%F %T'`" -HOST=`hostname` - -cat > $RC < -#include - -#if $RCFILETYPE == VFT_APP -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#pragma code_page(1250) -${RCFILEICON} -#endif - -#define ROOT_VERSION_STR ROOT_RELEASE " (${GITREV}@${GITBRANCH}, ${GITDATE})\0" - -#if (${VERBRANCHFLAG} != 0) -# define ROOT_IS_PRERELEASE VS_FF_PRERELEASE -#else -# define ROOT_IS_PRERELEASE 0 -#endif - -#ifndef DEBUG -#define ROOT_IS_DEBUG 0 -#else -#define ROOT_IS_DEBUG VS_FF_DEBUG -#endif - -VS_VERSION_INFO VERSIONINFO -FILEVERSION $VER1, $VER2, $VER3, $VERBRANCHFLAG -PRODUCTVERSION $VER1, $VER2, $VER3, $VERBRANCHFLAG -FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -FILEFLAGS (ROOT_IS_DEBUG | ROOT_IS_PRERELEASE) -FILEOS VOS__WINDOWS32 -FILETYPE $RCFILETYPE -BEGIN - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END - - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" - BEGIN - VALUE "Built By", "$USER\0" - VALUE "Build Host", "$HOST\0" - VALUE "Build Time", "$DATE\0" - VALUE "Comments", "ROOT: An Object-Oriented Data Analysis Framework\0" - VALUE "CompanyName", "The ROOT Team\0" - VALUE "FileDescription", "ROOT ${RCFILETITLE} ${FILESTEM}\0" - VALUE "FileVersion", ROOT_VERSION_STR - VALUE "InternalName", "${FILESTEM}\0" - VALUE "LegalCopyright", "Copyright (C) 1995-${GITYEARCOMMA} Rene Brun and Fons Rademakers.\0" - VALUE "OriginalFilename","${FILENAME}\0" - VALUE "ProductName", "ROOT\0" - VALUE "ProductVersion", ROOT_VERSION_STR - END - END -END -EOF diff --git a/build/win/qtmoc.sh b/build/win/qtmoc.sh deleted file mode 100755 index eb8332788bd49..0000000000000 --- a/build/win/qtmoc.sh +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/sh - -# Simple interface to Qt's moc.exe, tansforming /cygdrive/... into "mixed" path. - -args= - -while [ "$1" != "" ]; do - case "$1" in - -o) args="$args $1" ;; - *) args="$args `cygpath -m -- $1`" ;; - esac - shift -done - -$args -stat=$? - -exit $stat diff --git a/build/win/sehmap.h b/build/win/sehmap.h deleted file mode 100644 index 033ff95a3f4fd..0000000000000 --- a/build/win/sehmap.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - - SEHMAP.H - Map old-style structured exception handling to correct names. - - The mapping of structured exception handling statements from {try, except, - finally, leave} to their proper names (prefaced by "__") has been removed - from win32.mak. This header is provided solely for compatibility with - source code that used the older convention. - -*/ - - -#ifndef __cplusplus -#undef try -#undef except -#undef finally -#undef leave -#define try __try -#define except __except -#define finally __finally -#define leave __leave -#endif diff --git a/build/win/w32pragma.h b/build/win/w32pragma.h deleted file mode 100644 index e2d2ebfff93b2..0000000000000 --- a/build/win/w32pragma.h +++ /dev/null @@ -1,87 +0,0 @@ -/* @(#)build/win:$Id$ */ - -/************************************************************************* - * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. * - * All rights reserved. * - * * - * For the licensing terms see $ROOTSYS/LICENSE. * - * For the list of contributors see $ROOTSYS/README/CREDITS. * - *************************************************************************/ - -#ifndef ROOT_w32pragma -#define ROOT_w32pragma - -/************************************************************************* - * * - * w32pragma * - * * - * Pragmas and defines for MSVC * - * * - *************************************************************************/ - -#ifdef _WIN32 - -/* Disable warning about truncated symboles (usually coming from stl) */ -#pragma warning (disable: 4786) -/* Disable warning about inconsistent dll linkage (dllexport assumed) */ -#pragma warning (disable: 4273) -/* "no suitable definition provided for explicit template instantiation"*/ -#pragma warning (disable: 4661) -/* "deprecated, use ISO C++ conformant name" */ -#pragma warning (disable: 4996) -/* "new behavior: elements default initialized" */ -#pragma warning (disable: 4351) -/* local static not thread safe */ -#pragma warning (disable: 4640) -/*forcing int to bool (performance warning) */ -#pragma warning (disable: 4800) -/* truncation from double to float */ -#pragma warning (disable: 4305) -/* signed unsigned mismatch */ -#pragma warning (disable: 4018) -/* truncation of constant value */ -#pragma warning (disable: 4309) -/* check op precedence for error */ -#pragma warning (disable: 4554) -/* qualifier applied to reference type; ignored */ -#pragma warning (disable: 4181) -/* /GS can not buffer overrun protect parameters and locals: function not optimized */ -#pragma warning (disable: 4748) -/* function(): resolved overload was found by argument-dependent lookup */ -#pragma warning (disable: 4675) -/* X needs to have dll-interface to be used by clients of class Y */ -#pragma warning (disable: 4251) -/* decorated name length exceeded, name was truncated */ -#pragma warning (disable: 4503) - -/* function is hidden */ -#pragma warning (3: 4266) -/* loop control variable is used outside the for-loop scope */ -#pragma warning (3: 4289) - -#define WIN32 1 -#define _WINDOWS 1 -#define WINVER 0x0400 -#define CRTAPI1 _cdecl -#define CRTAPI2 _cdecl -#define _X86_ 1 -// #define _DLL - used to be explicitly defined, -// but it's implicitely defined via /MD(d) -#define G__REDIRECTIO 1 -#define G__SHAREDLIB 1 -#define G__UNIX 1 -#define G__ROOT 1 -#define G__WIN32 1 - -#if (_MSC_VER >= 1310) -# define G__NEWSTDHEADER 1 -#endif - -#if (_MSC_VER >= 1400) -#define _CRT_SECURE_NO_DEPRECATE 1 -#define _USE_ATTRIBUTES_FOR_SAL 0 -#endif - -#endif // _WIN32 - -#endif // defined ROOT_w32pragma diff --git a/cmake/modules/FindLibCmaes.cmake b/cmake/modules/FindLibCmaes.cmake new file mode 100644 index 0000000000000..00757a145447a --- /dev/null +++ b/cmake/modules/FindLibCmaes.cmake @@ -0,0 +1,53 @@ +# - Try to find libcmaes, https://github.com/beniz/libcmaes +# Once done this will define +# +# LIBCMAES_FOUND - system has libcmaes +# LIBCMES_INCLUDE_DIR - the libcmaes include directory +# LIBCMAES_LIBRARIES - Link these to use libcmaes +# LIBCMAES_DEFINITIONS - Compiler switches required for using libcmaes +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +# Copyright (c) 2014, Emmanuel Benazera, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if ( LIBCMAES_INCLUDE_DIR AND LIBCMAES_LIBRARIES ) + # in cache already + SET(Libcmaes_FIND_QUIETLY TRUE) +endif ( LIBCMAES_INCLUDE_DIR AND LIBCMAES_LIBRARIES ) + +# use pkg-config to get the directories and then use these values +# in the FIND_PATH() and FIND_LIBRARY() calls +if( NOT WIN32 ) + find_package(PkgConfig) + pkg_check_modules(PC_LIBCMAES QUIET libcmaes) + + if( PKG_CONFIG_FOUND ) + set(LIBCMAES_INCLUDE_DIR ${PC_LIBCMAES_INCLUDE_DIRS}) + set(LIBCMAES_LIBRARIES ${PC_LIBCMAES_LIBRARY_DIRS}) + set(LIBCMAES_DEFINITIONS ${PC_LIBCMAES_CFLAGS_OTHER}) + endif( PKG_CONFIG_FOUND ) + +endif( NOT WIN32 ) + +find_path(LIBCMAES_INCLUDE_DIR NAMES cmaes.h + PATHS + ${PC_LIBCMAES_INCLUDEDIR} + ${PC_LIBCMAES_INCLUDE_DIRS} +) + +find_library(LIBCMAES_LIBRARIES NAMES libcmaes + PATHS + ${PC_LIBCMAES_LIBDIR} + ${PC_LIBCMAES_LIBRARY_DIRS} +) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Libcmaes DEFAULT_MSG LIBCMAES_INCLUDE_DIR LIBCMAES_LIBRARIES ) + +# show the LIBCMAES_INCLUDE_DIR and LIBCMAES_LIBRARIES variables only in the advanced view +mark_as_advanced(LIBCMAES_INCLUDE_DIR LIBCMAES_LIBRARIES ) diff --git a/cmake/modules/FindLibCmaes.cmake~ b/cmake/modules/FindLibCmaes.cmake~ new file mode 100644 index 0000000000000..dc152d40ca4ca --- /dev/null +++ b/cmake/modules/FindLibCmaes.cmake~ @@ -0,0 +1,51 @@ +# - Try to find libcmaes, https://github.com/beniz/libcmaes +# Once done this will define +# +# LIBCMAES_FOUND - system has libcmaes +# LIBCMES_INCLUDE_DIR - the libcmaes include directory +# LIBCMAES_LIBRARIES - Link these to use libcmaes +# LIBCMAES_DEFINITIONS - Compiler switches required for using libcmaes +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +# Copyright (c) 2014, Emmanuel Benazera, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if ( LIBCMAES_INCLUDE_DIR AND LIBCMAES_LIBRARIES ) + # in cache already + SET(Libcmaes_FIND_QUIETLY TRUE) +endif ( LIBCMAES_INCLUDE_DIR AND LIBCMAES_LIBRARIES ) + +# use pkg-config to get the directories and then use these values +# in the FIND_PATH() and FIND_LIBRARY() calls +if( NOT WIN32 ) + find_package(PkgConfig) + + pkg_check_modules(PC_LIBCMAES REQUIRED libcmaes) + + set(LIBCMAES_INCLUDE_DIRS ${PC_LIBCMAES_INCLUDE_DIRS}) + set(LIBCMAES_LIBRARIES ${PC_LIBCMAES_LIBRARIES_DIRS}) + set(LIBCMAES_DEFINITIONS ${PC_LIBCMAES_CFLAGS_OTHER}) +endif( NOT WIN32 ) + +find_path(LIBCMAES_INCLUDE_DIR NAMES cmaes.h + PATHS + ${PC_LIBCMAES_INCLUDEDIR} + ${PC_LIBCMAES_INCLUDE_DIRS} +) + +find_library(LIBCMAES_LIBRARIES NAMES libcmaes + PATHS + ${PC_LIBCMAES_LIBDIR} + ${PC_LIBCMAES_LIBRARY_DIRS} +) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Libcmaes DEFAULT_MSG LIBCMAES_INCLUDE_DIR LIBCMAES_LIBRARIES ) + +# show the LIBCMAES_INCLUDE_DIR and LIBCMAES_LIBRARIES variables only in the advanced view +mark_as_advanced(LIBCMAES_INCLUDE_DIR LIBCMAES_LIBRARIES ) diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake index 32010860e13d9..85dc8c4fa8487 100644 --- a/cmake/modules/RootBuildOptions.cmake +++ b/cmake/modules/RootBuildOptions.cmake @@ -122,6 +122,7 @@ ROOT_BUILD_OPTION(imt ON "Implicit multi-threading support") ROOT_BUILD_OPTION(jemalloc OFF "Using the jemalloc allocator") ROOT_BUILD_OPTION(krb5 ON "Kerberos5 support, requires Kerberos libs") ROOT_BUILD_OPTION(ldap ON "LDAP support, requires (Open)LDAP libs") +ROOT_BUILD_OPTION(libcmaes OFF "Build the libcmaes minimizer library") ROOT_BUILD_OPTION(macos_native OFF "Disable looking for libraries, includes and binaries in locations other than a native installation (MacOS only)") ROOT_BUILD_OPTION(mathmore ON "Build the new libMathMore extended math library, requires GSL (vers. >= 1.8)") ROOT_BUILD_OPTION(memstat ON "A memory statistics utility, helps to detect memory leaks") diff --git a/cmake/modules/RootConfiguration.cmake b/cmake/modules/RootConfiguration.cmake index acc86db36ffae..d9222c1b71a7a 100644 --- a/cmake/modules/RootConfiguration.cmake +++ b/cmake/modules/RootConfiguration.cmake @@ -399,6 +399,7 @@ set(buildmathmore ${value${mathmore}}) set(buildcling ${value${cling}}) set(buildroofit ${value${roofit}}) set(buildminuit2 ${value${minuit2}}) +set(buildcmaes ${value${libcmaes}}) set(buildunuran ${value${unuran}}) set(buildgdml ${value${gdml}}) set(buildhttp ${value${http}}) diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake index 0461a7628fe36..8b35f4f14f387 100644 --- a/cmake/modules/SearchInstalledSoftware.cmake +++ b/cmake/modules/SearchInstalledSoftware.cmake @@ -719,6 +719,39 @@ if(sqlite) endif() endif() +#---Check for Libcmaes------------------------------------------------------------------- +if(libcmaes) + message(STATUS "Looking for libcmaes") + find_package(LibCmaes) + if(NOT LIBCMAES_FOUND) + message(STATUS "Fetching and compiling libcmaes") + ExternalProject_Add( + eigen3 + PREFIX eigen3 + INSTALL_DIR ${CMAKE_BINARY_DIR} + URL http://bitbucket.org/eigen/eigen/get/3.2.2.tar.gz + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= + ) + ExternalProject_Add( + cma + DEPENDS eigen3 + PREFIX cma + INSTALL_DIR ${CMAKE_BINARY_DIR} + URL https://github.com/beniz/libcmaes/archive/master.tar.gz + CONFIGURE_COMMAND ./autogen.sh && ./configure --prefix= --with-eigen3-include=${CMAKE_BINARY_DIR}/include/eigen3 --enable-onlylib --disable-surrog + BUILD_IN_SOURCE 1 + ) + set(LIBCMAES_INCLUDE_DIR ${CMAKE_BINARY_DIR}/include/libcmaes ${CMAKE_BINARY_DIR}/include/eigen3) + set(LIBCMAES_LIBRARIES ${CMAKE_BINARY_DIR}/lib/) + #if(fail-on-missing) + # message(FATAL_ERROR "libcmaes not found") + #else() + # message(STATUS "libcmaes not found. Switching off libcmaes option") + # set(libcmaes OFF CACHE BOOL "" FORCE) + #endif() + endif() +endif() + #---Check for Pythia6------------------------------------------------------------------- if(pythia6) message(STATUS "Looking for Pythia6") diff --git a/config/Makefile.depend b/config/Makefile.depend index 0c5698b90c666..c3c4ec09cbaaa 100644 --- a/config/Makefile.depend +++ b/config/Makefile.depend @@ -26,6 +26,7 @@ HTMLLIBDEPM = $(GRAFLIB) $(THREADLIB) MATHMORELIBDEPM = $(MATHCORELIB) MINUITLIBDEPM = $(GRAFLIB) $(HISTLIB) $(MATRIXLIB) $(MATHCORELIB) MINUIT2LIBDEPM = $(GRAFLIB) $(HISTLIB) $(MATRIXLIB) $(MATHCORELIB) +CMAESLIBDEPM = $(GRAFLIB) $(HISTLIB) $(MATHCORELIB) FUMILILIBDEPM = $(GRAFLIB) $(HISTLIB) $(MATHCORELIB) TREELIBDEPM = $(NETLIB) $(IOLIB) $(THREADLIB) TREEPLAYERLIBDEPM = $(TREELIB) $(G3DLIB) $(GRAFLIB) $(HISTLIB) $(GPADLIB) \ @@ -170,6 +171,7 @@ SPECTRUMPAINTERLIBDEP = $(SPECTRUMPAINTERLIBDEPM) HTMLLIBDEP = $(HTMLLIBDEPM) MINUITLIBDEP = $(MINUITLIBDEPM) MINUIT2LIBDEP = $(MINUIT2LIBDEPM) +CMAESLIBDEP = $(CMAESLIBDEPM) MATHMORELIBDEP = $(MATHMORELIBDEPM) FUMILILIBDEP = $(FUMILILIBDEPM) TREELIBDEP = $(TREELIBDEPM) @@ -284,6 +286,7 @@ MINUITLIBEXTRA = lib/libGraf.lib lib/libHist.lib lib/libMatrix.lib \ lib/libMathCore.lib MINUIT2LIBEXTRA = lib/libGraf.lib lib/libHist.lib lib/libMatrix.lib \ lib/libMathCore.lib +CMAESLIBEXTRA = lib/libGraf.lib lib/libHist.lib lib/libMathCore.lib MATHMORELIBEXTRA = lib/libMathCore.lib FUMILILIBEXTRA = lib/libGraf.lib lib/libHist.lib lib/libMathCore.lib TREELIBEXTRA = lib/libNet.lib lib/libRIO.lib lib/libThread.lib @@ -460,6 +463,7 @@ SPECTRUMPAINTERLIBEXTRA = -Llib -lGraf -lHist HTMLLIBEXTRA = -Llib -lGraf -lThread MINUITLIBEXTRA = -Llib -lGraf -lHist -lMatrix -lMathCore MINUIT2LIBEXTRA = -Llib -lGraf -lHist -lMatrix -lMathCore +CMAESLIBEXTRA = -Llib -lGraf -lHist -lMathCore FUMILILIBEXTRA = -Llib -lGraf -lHist -lMathCore MATHMORELIBEXTRA = -Llib -lMathCore TREELIBEXTRA = -Llib -lNet -lRIO -lThread diff --git a/config/Makefile.in b/config/Makefile.in index bf0d2f347412b..e988e06502291 100644 --- a/config/Makefile.in +++ b/config/Makefile.in @@ -412,6 +412,11 @@ BUILDROOFIT := @buildroofit@ BUILDMINUIT2 := @buildminuit2@ +BUILDCMAES := @buildcmaes@ +CMAESINCDIR := $(filter-out -I/usr/include, @cmaesincdir@) +CMAESLIBDIR := @cmaeslibdir@ +CMAESLIB := -lcmaes + BUILDUNURAN := @buildunuran@ BUILDVC := @buildvc@ diff --git a/configure b/configure index 5b545d4f4223a..51b5b05692b6e 100755 --- a/configure +++ b/configure @@ -96,6 +96,7 @@ options=" \ enable_mathmore \ enable_memstat \ enable_minuit2 \ + enable_cmaes \ enable_monalisa \ enable_mysql \ enable_odbc \ @@ -183,6 +184,7 @@ enable_qtgsi=no enable_r=no enable_roofit=no enable_minuit2=no +enable_cmaes=yes enable_rpath=no enable_ruby=no enable_shadowpw= @@ -214,6 +216,7 @@ if test "x$ENABLEALL" = "xyes"; then enable_qtgsi=yes enable_roofit=yes enable_minuit2=yes + enable_cmaes=yes #enable_ruby=yes #not supported in ROOT v6.0.0 yet enable_table=yes enable_unuran=yes @@ -268,6 +271,7 @@ SSL \ AFS \ ROOFIT \ MINUIT2 \ +CMAES \ TABLE \ XMLDIR \ CASROOT \ @@ -1758,6 +1762,7 @@ enable/disable options, prefix with either --enable- or --disable- mathmore Build the new libMathMore extended math library, requires GSL (vers. >= 1.10) memstat A memory statistics utility, helps to detect memory leaks minuit2 Build the new libMinuit2 minimizer library + cmaes Build the wrapper to the libcmaes mininmizer library monalisa Monalisa monitoring support, requires libapmoncpp mysql MySQL support, requires libmysqlclient odbc ODBC support, requires libiodbc or libodbc @@ -2284,6 +2289,8 @@ if test $# -gt 0 ; then --with-rfio-libdir=*) shiftlibdir=$optarg ; enable_rfio="yes" ;; --with-sqlite-incdir=*) sqliteincdir=$optarg ; enable_sqlite="yes" ;; --with-sqlite-libdir=*) sqlitelibdir=$optarg ; enable_sqlite="yes" ;; + --with-cmaes-incdir=*) cmaesincdir=$optarg ; enable_cmaes="yes" ;; + --with-cmaes-libdir=*) cmaeslibdir=$optarg ; enable_cmaes="yes" ;; --with-srp=*) srpdir=$optarg ; enable_srp="yes" ;; --with-srp-incdir=*) srpincdir=$optarg ; enable_srp="yes" ;; --with-srp-libdir=*) srplibdir=$optarg ; enable_srp="yes" ;; @@ -7098,6 +7105,19 @@ else result "no" fi +###################################################################### +# +### echo %%% libcmaes support - Third party libraries +# +#check_header "cmaes.h" $HOME/include/libcmaes /usr/include/libcmaes +check_header "cmaes.h" "$cmaesincdir" /usr/include/libcmaes +cmaesinc=$found_hdr +cmaesincdir=$found_dir +check_library "libcmaes" "yes" "$cmaeslibdir" /usr/lib +# $HOME/lib /usr/lib +cmaeslib=$found_lib +cmaeslibdir=$found_dir + ###################################################################### # ### echo %%% Unuran Library - Contributed library @@ -7289,6 +7309,7 @@ if test "x$show_pkglist" = "xyes" ; then test "x$enable_fitsio" = "xyes" && pl="$pl root-plugin-graf2d-fitsio" test "x$enable_gviz" = "xyes" && pl="$pl root-plugin-graf2d-gviz" test "x$enable_minuit2" = "xyes" && pl="$pl root-plugin-math-minuit2" + test "x$enable_cmaes" = "xyes" && pl="$pl root-plugin-math-cmaes" test "x$enable_pythia6" = "xyes" && pl="$pl root-plugin-montecarlo-pythia6" test "x$enable_alien" = "xyes" && pl="$pl root-plugin-net-alien" test "x$enable_bonjour" = "xyes" && pl="$pl root-plugin-net-bonjour" @@ -7322,6 +7343,7 @@ if test "x$show_pkglist" = "xyes" ; then libroot-math-mathcore \ libroot-math-matrix \ libroot-math-minuit \ + libroot-math-cmaes \ libroot-math-mlp \ libroot-math-physics \ libroot-math-quadp \ @@ -7809,6 +7831,10 @@ sed -e "s|@aclocaldir@|$aclocaldir|" \ -e "s|@lzmalibdir@|$lzmalibdir|" \ -e "s|@buildroofit@|$enable_roofit|" \ -e "s|@buildminuit2@|$enable_minuit2|" \ + -e "s|@buildcmaes@|$enable_cmaes|" \ + -e "s|@cmaeslibdir@|$cmaeslibdir|" \ + -e "s|@cmaeslib@|$cmaeslib|" \ + -e "s|@cmaesincdir@|$cmaesincdir|" \ -e "s|@buildunuran@|$enable_unuran|" \ -e "s|@buildvc@|$enable_vc|" \ -e "s|@buildgdml@|$enable_gdml|" \ diff --git a/core/base/src/TPluginManager.cxx b/core/base/src/TPluginManager.cxx index d811a338538f8..409d48c533508 100644 --- a/core/base/src/TPluginManager.cxx +++ b/core/base/src/TPluginManager.cxx @@ -376,7 +376,7 @@ void TPluginManager::LoadHandlersFromEnv(TEnv *env) TString ctor = strtok(0, ";\""); if (!ctor.Contains("(")) ctor = strtok(0, ";\""); - AddHandler(s, regexp, clss, plugin, ctor, "TEnv"); + AddHandler(s, regexp, clss, plugin, ctor, "TEnv"); cnt++; } delete [] v; @@ -585,8 +585,8 @@ TPluginHandler *TPluginManager::FindHandler(const char *base, const char *uri) while ((h = (TPluginHandler*) next())) { if (h->CanHandle(base, uri)) { - if (gDebug > 0) - Info("FindHandler", "found plugin for %s", h->GetClass()); + /*if (gDebug > 0) + Info("FindHandler", "found plugin for %s", h->GetClass());*/ return h; } } diff --git a/etc/plugins/ROOT@@Math@@Minimizer/P010_Minuit2Minimizer.C b/etc/plugins/ROOT@@Math@@Minimizer/P010_Minuit2Minimizer.C index 781b5f7e4c03f..2575db17ce019 100644 --- a/etc/plugins/ROOT@@Math@@Minimizer/P010_Minuit2Minimizer.C +++ b/etc/plugins/ROOT@@Math@@Minimizer/P010_Minuit2Minimizer.C @@ -1,5 +1,5 @@ void P010_Minuit2Minimizer() { - gPluginMgr->AddHandler("ROOT::Math::Minimizer", "Minuit2", "ROOT::Minuit2::Minuit2Minimizer", - "Minuit2", "Minuit2Minimizer(const char *)"); + gPluginMgr->AddHandler("ROOT::Math::Minimizer", "Minuit2", "ROOT::Minuit2::Minuit2Minimizer", + "Minuit2", "Minuit2Minimizer(const char *)"); } diff --git a/etc/plugins/ROOT@@Math@@Minimizer/P090_TCMAESMinimizer.C b/etc/plugins/ROOT@@Math@@Minimizer/P090_TCMAESMinimizer.C new file mode 100644 index 0000000000000..161ffdc5a3b8e --- /dev/null +++ b/etc/plugins/ROOT@@Math@@Minimizer/P090_TCMAESMinimizer.C @@ -0,0 +1,5 @@ +void P090_TCMAESMinimizer() +{ + gPluginMgr->AddHandler("ROOT::Math::Minimizer", "cmaes", "ROOT::cmaes::TCMAESMinimizer", + "cmaes_root", "TCMAESMinimizer(const char *)"); +} diff --git a/graf2d/asimage/src/libAfterImage/asfont.c b/graf2d/asimage/src/libAfterImage/asfont.c index 415bf6147686b..c069ddae2ab33 100644 --- a/graf2d/asimage/src/libAfterImage/asfont.c +++ b/graf2d/asimage/src/libAfterImage/asfont.c @@ -63,11 +63,11 @@ # include # include FT_FREETYPE_H # endif -# ifdef HAVE_FREETYPE_FREETYPE +/*# ifdef HAVE_FREETYPE_FREETYPE # include -# else +# else*/ # include -# endif +//# endif # if (FREETYPE_MAJOR == 2) && ((FREETYPE_MINOR == 0) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 3))) # define FT_KERNING_DEFAULT ft_kerning_default # endif diff --git a/math/CMakeLists.txt b/math/CMakeLists.txt index 8e84d69bb8860..2e2e13ed0a984 100644 --- a/math/CMakeLists.txt +++ b/math/CMakeLists.txt @@ -7,6 +7,9 @@ add_subdirectory(minuit) if(minuit2) add_subdirectory(minuit2) endif() +if (libcmaes) + add_subdirectory(cmaes) +endif() add_subdirectory(fumili) add_subdirectory(physics) add_subdirectory(mlp) diff --git a/math/cmaes/CMakeLists.txt b/math/cmaes/CMakeLists.txt new file mode 100644 index 0000000000000..93fdcc4d2db90 --- /dev/null +++ b/math/cmaes/CMakeLists.txt @@ -0,0 +1,18 @@ +############################################################################ +# CMakeLists.txt file for building ROOT math/cmaes package +############################################################################ + +#ROOT_USE_PACKAGE(math/mathcore) +#ROOT_USE_PACKAGE(hist/hist) + +add_definitions(-DWARNINGMSG -DUSE_ROOT_ERROR) + +ROOT_GLOB_HEADERS(headers RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/inc ${CMAKE_CURRENT_SOURCE_DIR}/inc/*.h) + +include_directories(${LIBCMAES_INCLUDE_DIR}) +link_directories(${LIBCMAES_LIBRARIES}) + +ROOT_GENERATE_DICTIONARY(G__cmaes *.h MODULE cmaes LINKDEF LinkDef.h) + +ROOT_LINKER_LIBRARY(cmaes_root *.cxx G__cmaes.cxx DEPENDENCIES MathCore Hist LIBRARIES cmaes) +ROOT_INSTALL_HEADERS() diff --git a/math/cmaes/Module.mk b/math/cmaes/Module.mk new file mode 100644 index 0000000000000..e5c19d24a402d --- /dev/null +++ b/math/cmaes/Module.mk @@ -0,0 +1,140 @@ +# Module.mk for cmaes module. + +MODNAME := cmaes +MODDIR := $(ROOT_SRCDIR)/math/$(MODNAME) +MODDIRS := $(MODDIR)/src +MODDIRI := $(MODDIR)/inc + +CMAESDIR := $(MODDIR) +CMAESDIRS := $(CMAESDIR)/src +CMAESDIRI := $(CMAESDIR)/inc +#CMAESDIRT :=$(call stripsrc,$(CMAESDIR)/test) + +CMAESBASEVERS := cmaes-1_0_0 +CMAESBASESRCS := $(MODDIRS)/$(CMAESBASEVERS).tar.gz +CMAESBASEDIRS := $(MODDIRS)/$(CMAESBASEVERS) +CMAESBASEDIRI := -I$(MODDIRS)/$(CMAESBASEVERS) +CMAESBASEETAG := $(MODDIRS)/headers.d + +##### liblcg_cmaes ##### +ifeq ($(PLATFORM),win32) +CMAESBASELIBA := $(CMAESBASEDIRS)/libcmaesbase.lib +CMAESBASELIB := $(LPATH)/libcmaesbase.lib +ifeq (debug,$(findstring debug,$(ROOTBUILD))) +CMAESBASEBLD = "DEBUG=1" +else +CMAESBASEBLD = "" +endif +else +CMAESBASELIBA := $(CMAESBASEDIRS)/src/.libs/liblcg_cmaes.a +CMAESBASELIB := $(LPATH)/libcmaesbase.a +endif +CMAESBASEDEP := $(CMAESBASELIB) + +##### libcmaes ##### +CMAESL := $(MODDIRI)/LinkDef.h +CMAESDS := $(call stripsrc,$(MODDIRS)/G__cmaes.cxx) +CMAESDO := $(CMAESDS:.cxx=.o) +CMAESDH := $(CMAESDS:.cxx=.h) + +CMAESAH := $(filter-out $(MODDIRI)/LinkDef%,$(wildcard $(MODDIRI)/*.h)) +CMAESBH := $(filter-out $(MODDIRI)/cmaes/LinkDef%,$(wildcard $(MODDIRI)/cmaes/*.h)) +CMAESH := $(CMAESAH) $(CMAESBH) +CMAESS := $(filter-out $(MODDIRS)/G__%,$(wildcard $(MODDIRS)/*.cxx)) +CMAESO := $(call stripsrc,$(CMAESS:.cxx=.o)) + +CMAESDEP := $(CMAESO:.o=.d) $(CMAESDO:.o=.d) + +CMAESLIB := $(LPATH)/libcmaes_root.$(SOEXT) +CMAESMAP := $(CMAESLIB:.$(SOEXT)=.rootmap) + +# use this compiler option if want to optimize object allocation in cmaes +# NOTE: using this option one loses the thread safety. +# It is worth to use only for minimization of cheap (non CPU intensive) functions +#CXXFLAGS += -DMN_USE_STACK_ALLOC + +# used in the main Makefile +ALLHDRS += $(patsubst $(MODDIRI)/%.h,include/%.h,$(CMAESH)) +ALLLIBS += $(CMAESLIB) +ALLMAPS += $(CMAESMAP) + +# include all dependency files +INCLUDEFILES += $(CMAESDEP) + +##### local rules ##### +.PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME) \ + test-$(MODNAME) + +include/cmaes/%.h: $(CMAESDIRI)/cmaes/%.h + @(if [ ! -d "include/cmaes" ]; then \ + mkdir -p include/cmaes; \ + fi) + cp $< $@ + +include/%.h: $(CMAESDIRI)/%.h + cp $< $@ + +$(CMAESLIB): $(CMAESO) $(CMAESDO) $(ORDER_) $(MAINLIBS) $(CMAESLIBDEP) + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ + "$(SOFLAGS)" libcmaes_root.$(SOEXT) $@ \ + "$(CMAESO) $(CMAESDO)" "-lcmaes -lMathCore" "$(CMAESLIBEXTRA)" + +$(call pcmrule,CMAES) + $(noop) + +$(CMAESDS): $(CMAESH) $(CMAESL) $(ROOTCLINGEXE) $(call pcmdep,CMAES) + $(MAKEDIR) + @echo "Generating dictionary $@..." + $(ROOTCLINGSTAGE2) -f $@ $(call dictModule,CMAES) -I$(CMAESINCDIR) -I/usr/include/eigen3 -c $(CMAESH) $(CMAESL) + +$(CMAESMAP): $(CMAESH) $(CMAESL) $(ROOTCLINGEXE) $(call pcmdep,CMAES) + $(MAKEDIR) + @echo "Generating rootmap $@..." + $(ROOTCLINGSTAGE2) -r $(CMAESDS) $(call dictModule,CMAES) -c $(CMAESH) $(CMAESL) + +all-$(MODNAME): $(CMAESLIB) + +#test-$(MODNAME): all-$(MODNAME) +#ifneq ($(ROOT_OBJDIR),$(ROOT_SRCDIR)) +# @$(INSTALL) $(CMAESDIR)/test $(CMAESDIRT) +#endif + @cd $(CMAESDIRT) && $(MAKE) ROOTCONFIG=../../../bin/root-config + +clean-$(MODNAME): + @rm -f $(CMAESO) $(CMAESDO) + +clean:: clean-$(MODNAME) + +distclean-$(MODNAME): clean-$(MODNAME) + @rm -f $(CMAESDEP) $(CMAESDS) $(CMAESDH) $(CMAESLIB) \ + $(CMAESMAP) + @rm -rf include/cmaes +ifneq ($(ROOT_OBJDIR),$(ROOT_SRCDIR)) + @rm -rf $(CMAESDIRT) +else + @cd $(CMAESDIRT) && $(MAKE) distclean ROOTCONFIG=../../../bin/root-config +endif + +distclean:: distclean-$(MODNAME) + +##### extra rules ###### +$(CMAESO): CXXFLAGS += -DWARNINGMSG -DUSE_ROOT_ERROR +$(CMAESDO): CXXFLAGS += -DWARNINGMSG -DUSE_ROOT_ERROR +#for thread -safet +#$(CMAESO): CXXFLAGS += -DCMAES_THREAD_SAFE +# for openMP +#ifneq ($(USE_PARALLEL_CMAES),) +#ifneq ($(USE_OPENMP),) +#$(CMAESO): CXXFLAGS += -DCMAES_THREAD_SAFE -DCMAES_PARALLEL_OPENMP +#math/cmaes/src/Numerical2PGradientCalculator.o: +$(CMAESO):CXXFLAGS += -D_GLIBCXX_PARALLEL -fopenmp +$(CMAESDO):CXXFLAGS += -D_GLIBCXX_PARALLEL -fopenmp +$(CMAESLIB):LDFLAGS += -fopenmp +#endif + +$(CMAESO):CXXFLAGS += -I$(CMAESINCDIR) -I/usr/include/eigen3 +$(CMAESDO):CXXFLAGS += -I$(CMAESINCDIR) -I/usr/include/eigen3 +$(CMAESDS):CXXFLAGS += -I$(CMAESINCDIR) -I/usr/include/eigen3 +$(CMAESLIB):LDFLAGS += $(CMAESLIBDIR) +# Optimize dictionary with stl containers. +$(CMAESDO): NOOPT = $(OPT) diff --git a/math/cmaes/README.md b/math/cmaes/README.md new file mode 100644 index 0000000000000..3830e9dcebcbd --- /dev/null +++ b/math/cmaes/README.md @@ -0,0 +1,128 @@ +### This is support for black-box optimization with CMA-ES from within ROOT (http://root.cern.ch/drupal/). + +This work was supported by the ANR-2010-COSI-002 grant of the French NationalA Research Agency. + +** This work is improved when needed, see status here: https://github.com/beniz/libcmaes/issues/13 ** + +** This work may be about to be merged into ROOT repository, follow integration here: +https://github.com/root-mirror/root/pull/40 ** + +libcmaes can be used from CERN's ROOT6 as a seamless replacement or addition to Minuit2 optimizer. It is designed to be used from ROOT6 **exactly** as Minuit2 is used, so code using Minuit2 should be easily run against CMA-ES. + +Below are instructions for testing it out. + +### Building ROOT6 and libcmaes +As for now, the only way to use libcmaes is from ROOT6, using the following special repository, and compiling it from sources (1): https://github.com/beniz/root + +* get ROOT6 from https://github.com/beniz/root/tree/cmaes4root_master, configure & compile it (this will take a while) (2): +```` +git clone https://github.com/beniz/root.git +cd root +``` +It is recommended to build with cmake, see below. + +#### Build with autoconf (configure) #### +For this, you need to have libcmaes installed already, see https://github.com/beniz/libcmaes/wiki +``` +./configure --enable-minuit2 --enable-roofit --enable-python --with-cmaes-incdir=/home/yourusername/include/libcmaes --with-cmaes-libdir=/home/yourusername/lib +make +```` +use make -jx where x is the number of cores on your system in order to minimize the building time. + +#### Build with cmake #### +```` +mkdir mybuild +cd mybuild +cmake ../ -Dall=on -Dtesting=on -Dlibcmaes=on +make +```` +use make -jx where x is the number of cores on your system in order to minimize the building time. + +### Running an example with CMA-ES +To run the basic fitting of a Gaussian, originally taken from Minuit2's tutorial files, do: +```` +root +.L tutorials/fit/cmaesGausFit.C++g +cmaesGausFit() +```` +You should see a plot similar to +![cmaes_gaus_fit_root_errors](https://cloud.githubusercontent.com/assets/3530657/2890890/4d96ae1c-d52d-11e3-9610-f24790b23e98.png) + +To quick test competitiveness against Minuit2: +```` +root +.L tutorials/fit/cmaesFitBench.C + cmaesFitBench() +```` +You should witness a plot similar to +![](http://juban.free.fr/stuff/libcmaes/cmaes_minuit2_competitive.png) + +### Running a benchmark comparison of CMA-ES and Minuit2 + +To run the current benchmark and visualize results, take the following steps: +```` +root +.L tutorials/fit/cmaesFullBench.C +run_experiments(10) +python math/cmaes/test/cmaesFullBench.py +```` + +This should show a series of histograms comparing results from both optimizers on a selection of problems. + +### Options to the CMA-ES minimizers within ROOT +There's built-in control for several hyper-parameters and options of CMA-ES: +* several flavors of the algorithm are available, and can be choosen at creation of the Minimizer object: +```` +TVirtualFitter::SetDefaultFitter(``acmaes''); +```` +or +```` +ROOT::Fit::Fitter fitter; +fitter.Config().SetMinimizer(``cmaes'',''acmaes''); +```` +The available algorithms are: `cmaes, ipop, bipop, acmaes, aipop, abipop, sepcmaes, sepipop, sepbipop`. + +'acmaes' should be the most appropriate in most cases, and 'sepacmaes' when the number of dimensions nears a thousand. + +The options below are not required, but can be used by filling up a MinimizerOptions object beforehand: +```` +const char *fitter = "acmaes" +TVirtualFitter::SetDefaultFitter(fitter); +ROOT::Math::IOptions &opts = ROOT::Math::MinimizerOptions::Default(fitter); +opts.SetIntValue("lambda",100); +```` +Options below are not activated by default: +* 'sigma': initial step-size +* 'lambda': number of offsprings at each generation +* 'noisy': flag that updates some hyper-parameters if the objective function is noisy +* 'restarts': maximum number of restarts, only applies to ipop, bipop, aipop, abipop, sepipop and sepbipop +* 'ftarget': the objective function target that stops optimization when reached, useful when the final value is known, e.g. 0 +* 'fplot': output file in libcmaes format for later plotting of eigenvalues and state convergence, mostly for debug purposes +* 'lscaling': automatic linear scaling of parameters with auto-selection of step-size sigma, usually recommended if results are not satisfactory +* 'mt_feval': allows for parallel calls of the objective function, faster but the objective function is required to be thread-safe. + +### Using CMA-ES from RooFit +libcmaes support within ROOT extends to RooFit without effort. + +From Roofit, it is enough to set the Minimizer with +```C++ + +``` +and from PyROOT for example +```Python +RooFit.Minimizer("cmaes","acmaes") +``` + +For setting CMA-ES custom options, such as 'sigma', 'lambda' or 'lscaling', it is enough to set the options as explained in the non RooFit case: +```C++ +ROOT::Math::IOptions &opts = ROOT::Math::MinimizerOptions::Default(fitter); +opts.SetIntValue("lambda",100); +``` +and from PyRoot +```Python +opt = ROOT.Math.MinimizerOptions.Default("cmaes") +opt.SetIntValue("lambda",100) +``` + +(1) more convenient ways will be provided. +(2) we recommend building support for both Minuit2 (i.e. for comparison to CMA-ES) and debug. \ No newline at end of file diff --git a/math/cmaes/inc/CMAESMinimizer.h b/math/cmaes/inc/CMAESMinimizer.h new file mode 100644 index 0000000000000..9b4a76f43fb6f --- /dev/null +++ b/math/cmaes/inc/CMAESMinimizer.h @@ -0,0 +1,313 @@ +/** + * CMA-ES, Covariance Matrix Evolution Strategy + * Copyright (c) 2014 INRIA + * Author: Emmanuel Benazera + * + * This file is part of libcmaes. + * + * libcmaes is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * libcmaes is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with libcmaes. If not, see . + */ + +#ifndef ROOT_CMAES_CMAESMinimizer +#define ROOT_CMAES_CMAESMinimizer + +#ifndef ROOT_Math_Minimizer +#include "Math/Minimizer.h" +#endif + +#ifndef ROOT_Math_IFunctionfwd +#include "Math/IFunctionfwd.h" +#endif + +#include "libcmaes/cmaes.h" + +using namespace libcmaes; + +namespace ROOT +{ + namespace cmaes + { + + class TCMAESMinimizer : public ROOT::Math::Minimizer + { + public: + + /** + * Default constructor + */ + TCMAESMinimizer(); // CMAES_DEFAULT + + /** + * Constructor with a char (used by PM) + */ + TCMAESMinimizer(const char *type); + + /** + * Destructor + */ + virtual ~TCMAESMinimizer(); + + private: + // blocking copy constructor. + TCMAESMinimizer(const TCMAESMinimizer &m); + + /** + * assignment operator. + */ + TCMAESMinimizer& operator = (const TCMAESMinimizer &rhs); + + public: + + // clear resources (parameters) for consecutives minimizations + virtual void Clear(); + + /// set the function to minimize + virtual void SetFunction(const ROOT::Math::IMultiGenFunction & func); + + /// set gradient the function to minimize + virtual void SetFunction(const ROOT::Math::IMultiGradFunction & func); + + /// set free variable + virtual bool SetVariable(unsigned int ivar, const std::string & name, double val, double step); + + /// set lower limit variable (override if minimizer supports them ) + virtual bool SetLowerLimitedVariable(unsigned int ivar , const std::string & name , double val , double step , double lower ); + /// set upper limit variable (override if minimizer supports them ) + virtual bool SetUpperLimitedVariable(unsigned int ivar , const std::string & name , double val , double step , double upper ); + /// set upper/lower limited variable (override if minimizer supports them ) + virtual bool SetLimitedVariable(unsigned int ivar , const std::string & name , double val , double step , double /* lower */, double /* upper */); + /// set fixed variable (override if minimizer supports them ) + virtual bool SetFixedVariable(unsigned int /* ivar */, const std::string & /* name */, double /* val */); + /// set variable + virtual bool SetVariableValue(unsigned int ivar, double val); + // set variable values + virtual bool SetVariableValues(const double * val); + /// set the step size of an already existing variable + virtual bool SetVariableStepSize(unsigned int ivar, double step ); + /// set the lower-limit of an already existing variable + virtual bool SetVariableLowerLimit(unsigned int ivar, double lower); + /// set the upper-limit of an already existing variable + virtual bool SetVariableUpperLimit(unsigned int ivar, double upper); + /// set the limits of an already existing variable + virtual bool SetVariableLimits(unsigned int ivar, double lower, double upper); + /// fix an existing variable + virtual bool FixVariable(unsigned int ivar); + /// release an existing variable + //virtual bool ReleaseVariable(unsigned int ivar); + /// query if an existing variable is fixed (i.e. considered constant in the minimization) + /// note that by default all variables are not fixed + virtual bool IsFixedVariable(unsigned int ivar) const; + /// get variable settings in a variable object (like ROOT::Fit::ParamsSettings) + virtual bool GetVariableSettings(unsigned int ivar, ROOT::Fit::ParameterSettings & varObj) const; + /// get name of variables (override if minimizer support storing of variable names) + virtual std::string VariableName(unsigned int ivar) const; + /// get index of variable given a variable given a name + /// return -1 if variable is not found + virtual int VariableIndex(const std::string & name) const; + + // sets libcmaes parameter object based on options. + template + void SetMParameters(CMAParameters &cmaparams, + const int &maxiter, const int &maxfevals, + const int &noisy, const int &nrestarts, + const double &ftarget, + const std::string &fplot, + const bool &withnumgradient, + const bool &mtfeval, + const bool &quiet, + const int &elitist, // 0: off (default), then 1, 2 or 3 + const bool &uh); + + /** + method to perform the minimization. + Return false in case the minimization did not converge. In this case a + status code different than zero is set + (retrieved by the derived method Minimizer::Status() )" + + status = 1 : Covariance was made pos defined -> not yet implemented in libcmaes + status = 2 : Hesse is invalid => Not Applicable, kept for correspondence with Minuit2 + status = 3 : Edm is above max + status = 4 : Reached call limit + status = 5 : Any other failure + */ + virtual bool Minimize(); + + /// return minimum function value + virtual double MinValue() const; + + /// return expected distance reached from the minimum + virtual double Edm() const; + + /// return pointer to X values at the minimum + virtual const double * X() const; + + /// return pointer to gradient values at the minimum + virtual const double * MinGradient() const { return 0; } // not available in CMAES + + /// number of function calls to reach the minimum + virtual unsigned int NCalls() const; + + /// this is <= Function().NDim() which is the total + /// number of variables (free+ constrained ones) + virtual unsigned int NDim() const { return fDim; } + + /// number of free variables (real dimension of the problem) + /// this is <= Function().NDim() which is the total + virtual unsigned int NFree() const { return fFreeDim; } + + /// minimizer provides error and error matrix + virtual bool ProvidesError() const { return true; } + + /// return errors at the minimum + virtual const double* Errors() const; + + /** + return covariance matrix elements + if the variable is fixed or const the value is zero + The ordering of the variables is the same as in errors and parameter value. + This is different from the direct interface of Minuit2 or TMinuit where the + values were obtained only to variable parameters + */ + virtual double CovMatrix(unsigned int i, unsigned int j) const; + + + /** + Fill the passed array with the covariance matrix elements + if the variable is fixed or const the value is zero. + The array will be filled as cov[i *ndim + j] + The ordering of the variables is the same as in errors and parameter value. + This is different from the direct interface of Minuit2 or TMinuit where the + values were obtained only to variable parameters + */ + virtual bool GetCovMatrix(double * cov) const; + + /** + Fill the passed array with the Hessian matrix elements + The Hessian matrix is the matrix of the second derivatives + and is the inverse of the covariance matrix + If the variable is fixed or const the values for that variables are zero. + The array will be filled as h[i *ndim + j] + */ + //virtual bool GetHessianMatrix(double * h) const; + + + /** + return the status of the covariance matrix + status = -1 : not available (inversion failed or Hesse failed) + status = 0 : available but not positive defined + status = 1 : covariance only approximate + status = 2 : full matrix but forced pos def + status = 3 : full accurate matrix + + */ + virtual int CovMatrixStatus() const { return 3; } + /** + return correlation coefficient between variable i and j. + If the variable is fixed or const the return value is zero + */ + virtual double Correlation(unsigned int i, unsigned int j ) const; + + /** + get global correlation coefficient for the variable i. This is a number between zero and one which gives + the correlation between the i-th variable and that linear combination of all other variables which + is most strongly correlated with i. + If the variable is fixed or const the return value is zero + */ + virtual double GlobalCC(unsigned int i) const; + + /** + get the minos error for parameter i, return false if Minos failed + A minimizaiton must be performed befre, return false if no minimization has been done + In case of Minos failed the status error is updated as following + status += 10 * minosStatus where the minos status is: + status = 1 : maximum number of function calls exceeded when running for lower error + status = 2 : maximum number of function calls exceeded when running for upper error + status = 3 : new minimum found when running for lower error + status = 4 : new minimum found when running for upper error + status = 5 : any other failure + + */ + virtual bool GetMinosError(unsigned int i, double & errLow, double & errUp, int = 0); + + /** + scan a parameter i around the minimum. A minimization must have been done before, + return false if it is not the case + */ + virtual bool Scan(unsigned int i, unsigned int & nstep, double * x, double * y, double xmin = 0, double xmax = 0); + + /** + find the contour points (xi,xj) of the function for parameter i and j around the minimum + The contour will be find for value of the function = Min + ErrorUp(); + */ + virtual bool Contour(unsigned int i, unsigned int j, unsigned int & npoints, double *xi, double *xj); + + + /** + perform a full calculation of the Hessian matrix for error calculation + If a valid minimum exists the calculation is done on the minimum point otherwise is performed + in the current set values of parameters + Status code of minimizer is updated according to the following convention (in case Hesse failed) + status += 100*hesseStatus where hesse status is: + status = 1 : hesse failed + status = 2 : matrix inversion failed + status = 3 : matrix is not pos defined + */ + //virtual bool Hesse(); + + + /// return reference to the objective function + //virtual const ROOT::Math::IGenFunction & Function() const; + + /// print result of minimization + virtual void PrintResults(); + + /// set an object to trace operation for each iteration + /// The object muust implement operator() (unsigned int, MinimumState & state) + //void SetTraceObject(MnTraceObject & obj); + + /// set storage level = 1 : store all iteration states (default) + /// = 0 : store only first and last state to save memory + // N/A + void SetStorageLevel(int level); + + private: + unsigned int fDim = 0; // dimension of the function to be minimized + unsigned int fFreeDim = 0; // Number of free dimensions. + std::string fMinimizer = "cmaes"; // minimizer algo. + const ROOT::Math::IMultiGenFunction *fObjFunc = nullptr; + const ROOT::Math::IMultiGradFunction *fObjFuncGrad = nullptr; + std::vector fLBounds; // Lower bounds of variables + std::vector fUBounds; // Upper bounds of variables + std::vector fVariablesType; // 0 for free variable, 1 for fixed variable, 2 for lower bounded, 3 for upper bounded, 4 for lower and upper bounded. + std::vector fInitialX; + std::vector fNames; // Names of the variables. + std::vector fInitialSigma; // User-set Initial step-size for each variables. + std::map fFixedVariables; // fixed variables and values. + CMASolutions fCMAsols; + CMAParameters> fCMAparams; // params no bounds. + CMAParameters> fCMAparams_b; // params with bounds. + CMAParameters> fCMAparams_l; // params no bounds + linear scaling. + CMAParameters> fCMAparams_lb; // params with bounds + linear scaling. + mutable std::vector fGlobalCC; // vector of global correlation coefficients. + mutable std::vector fValues; // X values. + mutable std::vector fErrors; // X errors. + bool fWithBounds = false; // whether using box-type constraints as required by parameters. + bool fWithGradient = false; // whether to use gradient information when available. + int fWithLinearScaling = 0; // wheter to use linear scaling of objective function parameters. */ + }; + + } // end namespace cmaes +} // end namespace ROOT + +#endif diff --git a/math/cmaes/inc/LinkDef.h b/math/cmaes/inc/LinkDef.h new file mode 100644 index 0000000000000..c5a1c5e2825ba --- /dev/null +++ b/math/cmaes/inc/LinkDef.h @@ -0,0 +1,30 @@ +/** + * CMA-ES, Covariance Matrix Evolution Strategy + * Copyright (c) 2014 INRIA + * Author: Emmanuel Benazera + * + * This file is part of libcmaes. + * + * libcmaes is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * libcmaes is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with libcmaes. If not, see . + */ + +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ class TCMAESMinimizer; + +#endif diff --git a/math/cmaes/src/CMAESMinimizer.cxx b/math/cmaes/src/CMAESMinimizer.cxx new file mode 100644 index 0000000000000..0d074f800954b --- /dev/null +++ b/math/cmaes/src/CMAESMinimizer.cxx @@ -0,0 +1,771 @@ +/** + * CMA-ES, Covariance Matrix Evolution Strategy + * Copyright (c) 2014 INRIA + * Author: Emmanuel Benazera + * + * This file is part of libcmaes. + * + * libcmaes is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * libcmaes is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with libcmaes. If not, see . + */ + +#include "CMAESMinimizer.h" +#include "Math/IFunctionfwd.h" // fObjFunc +#include "Math/IOptions.h" +#include "Math/Error.h" +#include "Fit/ParameterSettings.h" + +#include "errstats.h" // libcmaes extras. + +#ifdef USE_ROOT_ERROR +#include "TROOT.h" +#endif + +#include + +using namespace libcmaes; + +namespace ROOT +{ + namespace cmaes + { + + TCMAESMinimizer::TCMAESMinimizer() + :Minimizer(),fDim(0),fFreeDim(0),fWithBounds(false),fWithGradient(false) + { + } + + TCMAESMinimizer::TCMAESMinimizer(const char *type) + :Minimizer(),fDim(0),fFreeDim(0),fWithBounds(false),fWithGradient(false) + { + std::string algoname(type); + // tolower() is not an std function (Windows) + std::transform(algoname.begin(), algoname.end(), algoname.begin(), (int(*)(int)) tolower ); + fMinimizer = algoname; + } + + /*TCMAESMinimizer::TCMAESMinimizer(const TCMAESMinimizer &m) + :Minimizer(),fDim(0),fFreeDim(0),fWithBounds(false),fWithGradient(false) + { + }*/ + + TCMAESMinimizer& TCMAESMinimizer::operator = (const TCMAESMinimizer &rhs) + { + if (this == &rhs) return *this; + return *this; + } + + TCMAESMinimizer::~TCMAESMinimizer() + { + } + + void TCMAESMinimizer::Clear() + { + fCMAsols = CMASolutions(); + fCMAparams = CMAParameters>(); + fCMAparams_b = CMAParameters>(); + fCMAparams_l = CMAParameters>(); + fCMAparams_lb = CMAParameters>(); + fDim = 0; fFreeDim = 0; + fLBounds.clear(); + fUBounds.clear(); + fVariablesType.clear(); + fInitialX.clear(); + fInitialSigma.clear(); + fFixedVariables.clear(); + fNames.clear(); + fGlobalCC.clear(); + fValues.clear(); + fErrors.clear(); + } + + void TCMAESMinimizer::SetFunction(const ROOT::Math::IMultiGenFunction &fun) + { + fObjFunc = &fun; + fDim = fun.NDim(); + } + + void TCMAESMinimizer::SetFunction(const ROOT::Math::IMultiGradFunction &fun) + { + SetFunction(static_cast (fun)); + fObjFuncGrad = &fun; + //fDim = fun.NDim(); + fWithGradient = true; + } + + bool TCMAESMinimizer::SetVariable(unsigned int ivar, const std::string & name, double val, double step) + { + if (ivar > fInitialX.size() ) { + MATH_ERROR_MSG("TCMAESMinimizer::SetVariable","ivar out of range"); + return false; + } + if (ivar == fInitialX.size() ) { + fInitialX.push_back(val); + fNames.push_back(name); + fInitialSigma.push_back(step); + fLBounds.push_back(-std::numeric_limits::max()); + fUBounds.push_back(std::numeric_limits::max()); + if (step==0.){ + fVariablesType.push_back(1); + } + else { + fFreeDim++; + fVariablesType.push_back(0); + } + } + else { + if (step==0.) { + if (fInitialSigma[ivar]!=0.) { //Constraining a free variable. + fFreeDim--; + fVariablesType[ivar] = 1; + } + } + else { + if (fInitialSigma[ivar]==0.) { //Freeing a constrained variable + fFreeDim++; + fVariablesType[ivar] = 0; + } + } + fInitialX[ivar] = val; + fNames[ivar] = name; + fInitialSigma[ivar] = step; + } + return true; + } + + bool TCMAESMinimizer::SetLowerLimitedVariable(unsigned int ivar , const std::string & name , double val , double step , double lower ) + { + if (lower > val) { + MATH_WARN_MSG("TCMAESMinimizer::SetLowerLimitedVariable", "Starting point set into the unfeasible domain"); // fix with val=lower; ? + } + bool r = SetVariable(ivar, name, val, step); + if (!r) return false; + fLBounds[ivar] = lower; + fVariablesType[ivar] = 2; + fWithBounds = true; + return true; + } + + bool TCMAESMinimizer::SetUpperLimitedVariable(unsigned int ivar , const std::string & name , double val , double step , double upper ) + { + if (upper > val) { + MATH_WARN_MSG("TCMAESMinimizer::SetUpperLimitedVariable", "Starting point set into the unfeasible domain"); + } + bool r = SetVariable(ivar, name, val, step); + if (!r) return false; + fUBounds[ivar] = upper; + fVariablesType[ivar] = 3; + fWithBounds = true; + return true; + } + + bool TCMAESMinimizer::SetLimitedVariable(unsigned int ivar , const std::string & name , double val , double step , double lower, double upper) + { + if (upper == lower) { + MATH_WARN_MSG("TCMAESMinimizer::SetLimitedVariable","Upper bound equal to lower bound. Variable is constrained to fixed value."); + return SetFixedVariable(ivar, name, val); + } + if (upper < lower) { + MATH_WARN_MSG("TCMAESMinimizer::SetLimitedVariable","Upper bound lesser than lower bound. Bounds exchanged."); + double temp(upper); + upper = lower; + lower = temp; + } + if (val < lower || val > upper) { + MATH_WARN_MSG("TCMAESMinimizer::SetLimitedVariable", "Starting point set into the unfeasible domain"); + } + bool r = SetVariable(ivar, name, val, step); + if (!r) return false; + fLBounds[ivar] = lower; + fUBounds[ivar] = upper; + fVariablesType[ivar] = 4; + fWithBounds = true; + return true; + } + + bool TCMAESMinimizer::SetFixedVariable(unsigned int ivar, const std::string &name, double val) + { + SetVariable(ivar,name,val,0.0); + fFixedVariables.insert(std::pair(ivar,val)); + return true; + } + + bool TCMAESMinimizer::SetVariableValue(unsigned int ivar, double val ) + { + if (ivar >= fInitialX.size() ) { + //TODO string that gives value of ivar and fInitialX.size() + MATH_ERROR_MSG("TCMAESMinimizer::SetVariableValue","ivar out of range"); + return false; + } + if (fVariablesType[ivar] == 2 || fVariablesType[ivar] == 4) { + if (fLBounds[ivar] > val) { + MATH_WARN_MSG("TCMAESMinimizer::SetVariableValue", "Starting point set into the unfeasible domain"); + } + } + if (fVariablesType[ivar] == 3 || fVariablesType[ivar] == 4) { + if (fUBounds[ivar] < val) { + MATH_WARN_MSG("TCMAESMinimizer::SetVariableValue", "Starting point set into the unfeasible domain"); + } + } + fInitialX[ivar] = val; + return true; + } + + bool TCMAESMinimizer::SetVariableValues(const double * x) + { + if (x == NULL) + { + MATH_WARN_MSG("TCMAESMinimizer::SetVariableValues", "No values given, no change to the starting point."); + return false; + } + unsigned int i; + for (i=0; i fInitialX.size()) + return false; + fInitialSigma[ivar] = step; + return true; + } + + bool TCMAESMinimizer::SetVariableLowerLimit(unsigned int ivar, double lower) + { + if (ivar > fLBounds.size()) + return false; + fLBounds[ivar] = lower; + fVariablesType[ivar] = 2; + fWithBounds = true; + return true; + } + + bool TCMAESMinimizer::SetVariableUpperLimit(unsigned int ivar, double upper) + { + if (ivar > fUBounds.size()) + return false; + fUBounds[ivar] = upper; + fVariablesType[ivar] = 3; + fWithBounds = true; + return true; + } + + bool TCMAESMinimizer::SetVariableLimits(unsigned int ivar, double lower, double upper) + { + if (ivar >= fLBounds.size() || ivar >= fUBounds.size()) + return false; + fLBounds[ivar] = lower; + fUBounds[ivar] = upper; + fVariablesType[ivar] = 4; + fWithBounds = true; + return true; + } + + bool TCMAESMinimizer::FixVariable(unsigned int ivar) + { + if (ivar >= fInitialX.size()) + return false; + fFixedVariables.insert(std::pair(ivar,fInitialX.at(ivar))); // XXX: sets initial variable. + return true; + } + + bool TCMAESMinimizer::IsFixedVariable(unsigned int ivar) const + { + std::map::const_iterator mit; + if ((mit=fFixedVariables.find(ivar))!=fFixedVariables.end()) + return true; + return false; + } + + bool TCMAESMinimizer::GetVariableSettings(unsigned int ivar, ROOT::Fit::ParameterSettings &varObj) const + { + if (ivar >= fInitialX.size()) + { + MATH_ERROR_MSG("TCMAESMinimizer::GetVariableSettings","wrong variable index"); + return false; + } + varObj.Set(fNames.at(ivar),fInitialX.at(ivar),false); //XXX: not sure of last param type. + if (fVariablesType.at(ivar) == 4) + varObj.SetLimits(fLBounds.at(ivar),fUBounds.at(ivar)); + else if (fVariablesType.at(ivar) == 3) + varObj.SetUpperLimit(fUBounds.at(ivar)); + else if (fVariablesType.at(ivar) == 2) + varObj.SetLowerLimit(fLBounds.at(ivar)); + return true; + } + + std::string TCMAESMinimizer::VariableName(unsigned int ivar) const + { + if (ivar >= fInitialX.size()) + return std::string(); + return fNames.at(ivar); + } + + int TCMAESMinimizer::VariableIndex(const std::string &name) const + { + for (unsigned int i=0;i + void TCMAESMinimizer::SetMParameters(CMAParameters &cmaparams, + const int &maxiter, const int &maxfevals, + const int &noisy, const int &nrestarts, + const double &ftarget, + const std::string &fplot, + const bool &withnumgradient, + const bool &mtfeval, + const bool &quiet, + const int &elitist, + const bool &uh) + { + cmaparams.set_str_algo(fMinimizer); + if (gDebug > 0 || !quiet) + cmaparams.set_quiet(false); + else cmaparams.set_quiet(true); + for (auto mit=fFixedVariables.begin();mit!=fFixedVariables.end();mit++) + cmaparams.set_fixed_p((*mit).first,(*mit).second); + cmaparams.set_edm(true); // always activate EDM computation. + cmaparams.set_ftolerance(Tolerance()); + cmaparams.set_max_iter(maxiter); + cmaparams.set_max_fevals(maxfevals); + if (noisy > 0) + cmaparams.set_noisy(); + if (nrestarts > 0) + cmaparams.set_restarts(nrestarts); + if (ftarget > 0.0) + cmaparams.set_ftarget(ftarget); + cmaparams.set_fplot(fplot); + cmaparams.set_gradient(withnumgradient); + cmaparams.set_mt_feval(mtfeval); + cmaparams.set_elitism(elitist); + cmaparams.set_uh(uh); + } + + bool TCMAESMinimizer::Minimize() + { + if (!fObjFunc) { + MATH_ERROR_MSG("TCMAESMinimizer::Minimize","Objective function has not been set"); + return false; + } + if (!fDim) { + MATH_ERROR_MSG("TCMAESMinimizer::Minimize","Dimension has not been set"); + return false; + } + if (fDim > fInitialX.size()) { + std::cout << "fDim=" << fDim << " / fInitialX size=" << fInitialX.size() << " / freeDim=" << fFreeDim << std::endl; + MATH_ERROR_MSG("TCMAESMinimizer::Minimize","Dimension larger than initial X size's"); + return false; + } + if (fDim < fInitialX.size()) { + MATH_WARN_MSG("TCMAESMinimizer::Minimize","Dimension smaller than initial X size's"); + } + + ROOT::Math::IOptions *cmaesOpt = ROOT::Math::MinimizerOptions::FindDefault("cmaes"); + //std::cerr << "cmaesOpt ptr: " << cmaesOpt << std::endl; + if (cmaesOpt) + cmaesOpt->Print(std::cout); + + FitFunc ffit = [this](const double *x, const int N) + { + /*std::copy(x,x+N,std::ostream_iterator(std::cout," ")); + std::cout << std::endl;*/ + (void)N; + return (*fObjFunc)(x); + }; + + // gradient function. + //std::cout << "fWithGradient=" << fWithGradient << std::endl; + GradFunc gfit = nullptr; + if (fWithGradient) + { + gfit = [this](const double *x, const int N) + { + dVec grad(N); + fObjFuncGrad->Gradient(x,grad.data()); + return grad; + }; + } + + //debug + /*if (fWithBounds) + { + std::cout << "bounds:\n"; + std::copy(fLBounds.begin(),fLBounds.end(),std::ostream_iterator(std::cout," ")); + std::cout << std::endl; + std::copy(fUBounds.begin(),fUBounds.end(),std::ostream_iterator(std::cout," ")); + std::cout << std::endl; + }*/ + //debug + + double sigma0 = *std::min_element(fInitialSigma.begin(),fInitialSigma.end()); + double sigma0scaled = 1e-1; // default value. + if (!fWithLinearScaling) + sigma0scaled = sigma0; + dVec vscaling = dVec::Constant(fDim,1.0); + for (size_t i=0;iGetValue("lambda",lambda); + cmaesOpt->GetValue("noisy",noisy); + cmaesOpt->GetValue("restarts",nrestarts); + cmaesOpt->GetValue("ftarget",ftarget); + cmaesOpt->GetValue("fplot",fplot); + cmaesOpt->GetValue("lscaling",fWithLinearScaling); + cmaesOpt->GetValue("numgradient",withnumgradient); + cmaesOpt->GetValue("mt_feval",mtfeval); + cmaesOpt->GetValue("quiet",quiet); + cmaesOpt->GetValue("seed",seed); + cmaesOpt->GetValue("elitist",elitist); + cmaesOpt->GetValue("uh",uh); + } + + if (gDebug > 0) + { + std::cout << "Running CMA-ES with dim=" << fDim << " / sigma0=" << sigma0scaled << " / lambda=" << lambda << " / fTol=" << Tolerance() << " / with_bounds=" << fWithBounds << " / with_gradient=" << fWithGradient << " / linear_scaling=" << fWithLinearScaling << " / maxiter=" << maxiter << " / maxfevals=" << maxfevals << " / mtfeval=" << mtfeval << std::endl; + std::cout << "x0="; + std::copy(fInitialX.begin(),fInitialX.end(),std::ostream_iterator(std::cout," ")); + std::cout << std::endl; + } + + if (fWithLinearScaling) + { + if (fWithBounds) + { + Info("CMAESMinimizer","Minimizing with bounds and linear scaling"); + GenoPheno gp(vscaling,vshift,&fLBounds.front(),&fUBounds.front()); + CMAParameters> cmaparams(fDim,&fInitialX.front(),sigma0scaled,lambda,seed,gp); + SetMParameters(cmaparams,maxiter,maxfevals,noisy,nrestarts,ftarget,fplot,withnumgradient,mtfeval,quiet,elitist,uh); + fCMAsols = libcmaes::cmaes>(ffit,cmaparams,CMAStrategy>::_defaultPFunc,fWithGradient?gfit:nullptr); + fCMAparams_lb = cmaparams; + } + else + { + Info("CMAESMinimizer","Minimizing with linear scaling"); + GenoPheno gp(vscaling,vshift); + CMAParameters> cmaparams(fDim,&fInitialX.front(),sigma0scaled,lambda,seed,gp); + SetMParameters(cmaparams,maxiter,maxfevals,noisy,nrestarts,ftarget,fplot,withnumgradient,mtfeval,quiet,elitist,uh); + fCMAsols = libcmaes::cmaes>(ffit,cmaparams,CMAStrategy>::_defaultPFunc,fWithGradient?gfit:nullptr); + fCMAparams_l = cmaparams; + } + } + else + { + if (fWithBounds) + { + Info("CMAESMinimizer","Minimizing with bounds"); + GenoPheno gp(&fLBounds.front(),&fUBounds.front(),fDim); + CMAParameters> cmaparams(fDim,&fInitialX.front(),sigma0scaled,lambda,seed,gp); + SetMParameters(cmaparams,maxiter,maxfevals,noisy,nrestarts,ftarget,fplot,withnumgradient,mtfeval,quiet,elitist,uh); + fCMAsols = libcmaes::cmaes>(ffit,cmaparams,CMAStrategy>::_defaultPFunc,fWithGradient?gfit:nullptr); + fCMAparams_b = cmaparams; + } + else + { + Info("CMAESMinimizer","Minimizing without bounds or linear scaling"); + CMAParameters> cmaparams(fDim,&fInitialX.front(),sigma0scaled,lambda,seed); + SetMParameters(cmaparams,maxiter,maxfevals,noisy,nrestarts,ftarget,fplot,withnumgradient,mtfeval,quiet,elitist,uh); + fCMAsols = libcmaes::cmaes>(ffit,cmaparams,CMAStrategy>::_defaultPFunc,fWithGradient?gfit:nullptr); + fCMAparams = cmaparams; + } + } + Info("CMAESMinimizer","optimization status=%i",fCMAsols.run_status()); + if (fCMAsols.edm() > 10*Tolerance()) // XXX: max edm seems to be left to each minimizer's internal implementation... + fStatus = 3; + else if (fCMAsols.run_status() == 0 || fCMAsols.run_status() == 1) + fStatus = 0; + else if (fCMAsols.run_status() == 7 || fCMAsols.run_status() == 9) + fStatus = 4; // reached budget limit. + else fStatus = 5; + return fCMAsols.run_status() >= 0; // above 0 are partial successes at worst. + } + + double TCMAESMinimizer::MinValue() const + { + return fCMAsols.best_candidate().get_fvalue(); + } + + const double* TCMAESMinimizer::X() const + { + fValues.clear(); + Candidate bc = fCMAsols.best_candidate(); + + dVec x; + if (fWithLinearScaling) + { + if (fWithBounds) + x = bc.get_x_pheno_dvec>(fCMAparams_lb); + else x = bc.get_x_pheno_dvec>(fCMAparams_l); + } + else + { + if (fWithBounds) + x = bc.get_x_pheno_dvec>(fCMAparams_b); + else x = bc.get_x_dvec(); + } + for (int i=0;i<(int)fDim;i++) + fValues.push_back(x(i)); + return &fValues.front(); + } + + double TCMAESMinimizer::Edm() const + { + // XXX: cannot recompute it here as there's no access to the optimizer itself. + // instead this is returning the value computed at the end of last optimization call + // and stored within the solution object. + return fCMAsols.edm(); + } + + const double* TCMAESMinimizer::Errors() const + { + fErrors.clear(); + dVec verrors; + if (fWithLinearScaling) + { + if (fWithBounds) + verrors = fCMAsols.errors(fCMAparams_lb); + else verrors = fCMAsols.errors(fCMAparams_l); + } + else + { + if (fWithBounds) + verrors = fCMAsols.errors(fCMAparams_b); + else verrors = fCMAsols.errors(fCMAparams); + } + for (int i=0;i<(int)fDim;i++) + fErrors.push_back(verrors(i)); + return &fErrors.front(); + } + + unsigned int TCMAESMinimizer::NCalls() const + { + return fCMAsols.nevals(); + } + + double TCMAESMinimizer::CovMatrix(unsigned int i, unsigned int j) const + { + return fCMAsols.cov_ref()(i,j); + } + + bool TCMAESMinimizer::GetCovMatrix(double *cov) const + { + std::copy(fCMAsols.cov_data(),fCMAsols.cov_data()+fCMAsols.cov_ref().size(),cov); + return true; + } + + double TCMAESMinimizer::Correlation(unsigned int i, unsigned int j) const + { + return std::sqrt(std::abs(fCMAsols.cov_ref()(i,i)*fCMAsols.cov_ref()(j,j))); + } + + double TCMAESMinimizer::GlobalCC(unsigned int i) const + { + // original Minuit paper says: + // \rho_k^2 = 1 - [C_{kk}C_{kk}^{-1}]^{-1} + if (fGlobalCC.empty()) // need to pre-compute the vector coefficient + { + dMat covinv = fCMAsols.cov_ref().inverse(); + for (int i=0;i 0.0) + fGlobalCC.push_back(0.0); + else fGlobalCC.push_back(std::sqrt(1.0 - 1.0/denom)); + } + } + return fGlobalCC.at(i); + } + + bool TCMAESMinimizer::GetMinosError(unsigned int i, double &errLow, double &errUp, int j) + { + (void)j; + FitFunc ffit = [this](const double *x, const int N) + { + (void)N; + return (*fObjFunc)(x); + }; + + // runopt is a flag which specifies if only lower or upper error needs to be run. TODO: support for one bound only in libcmaes ? + int samplesize = 10; + if (gDebug > 0) + std::cerr << "Computing 'Minos' confidence interval with profile likelihood on parameter " << i << " / samplesize=" << samplesize << " / with_bounds=" << fWithBounds << std::endl; + pli le; + if (fWithLinearScaling) + { + if (!fWithBounds) + { + le = errstats>::profile_likelihood(ffit,fCMAparams_l,fCMAsols,i,false,samplesize,ErrorDef(),100); + } + else + { + le = errstats>::profile_likelihood(ffit,fCMAparams_lb,fCMAsols,i,false,samplesize); + } + } + else + { + if (!fWithBounds) + { + le = errstats>::profile_likelihood(ffit,fCMAparams,fCMAsols,i,false,samplesize,ErrorDef()); + } + else + { + le = errstats>::profile_likelihood(ffit,fCMAparams_b,fCMAsols,i,false,samplesize); + } + } + errLow = le.get_err_min(); + errUp = le.get_err_max(); + return true; + } + + bool TCMAESMinimizer::Scan(unsigned int i, unsigned int &nstep, double *x, double *y, double xmin, double xmax) + { + std::vector> result; + std::vector params = fValues; + double amin = MinValue(); + result.push_back(std::pair(params[i],amin)); + + double low=xmin, high=xmax; + if (low <= high && nstep-1 >= 2) + { + if (low == 0 && high == 0) + { + low = fValues[i] - 2.0*fErrors.at(i); + high = fValues[i] + 2.0*fErrors.at(i); + } + + if (low == 0 && high == 0 + && (fLBounds[i] > -std::numeric_limits::max() + || fUBounds[i] < std::numeric_limits::max())) + { + if (fLBounds[i] > -std::numeric_limits::max()) + low = fLBounds[i]; + if (fUBounds[i] < std::numeric_limits::max()) + high = fUBounds[i]; + } + + if (fLBounds[i] > -std::numeric_limits::max() + || fUBounds[i] < std::numeric_limits::max()) + { + if (fLBounds[i] > -std::numeric_limits::max()) + low = std::max(low,fLBounds[i]); + if (fUBounds[i] < std::numeric_limits::max()) + high = std::min(high,fUBounds[i]); + } + + double x0 = low; + double stp = (high-low) / static_cast(nstep-2); + for (unsigned int j=0;j(params[i],fval)); + } + } + + for (int s=0;s<(int)nstep;s++) + { + x[s] = result[s].first; + y[s] = result[s].second; + } + return true; + } + + bool TCMAESMinimizer::Contour(unsigned int i, unsigned int j, unsigned int &npoints, double *xi, double *xj) + { + FitFunc ffit = [this](const double *x, const int N) + { + (void)N; + return (*fObjFunc)(x); + }; + + contour ct; + if (fWithLinearScaling) + { + if (!fWithBounds) + { + ct = errstats>::contour_points(ffit,i,j,npoints,ErrorDef(), + fCMAparams_l,fCMAsols,0.1,100); + } + else + { + ct = errstats>::contour_points(ffit,i,j,npoints,ErrorDef(), + fCMAparams_lb,fCMAsols,0.1,100); + } + } + else + { + if (!fWithBounds) + { + ct = errstats>::contour_points(ffit,i,j,npoints,ErrorDef(), + fCMAparams,fCMAsols,0.1,100); + } + else + { + ct = errstats>::contour_points(ffit,i,j,npoints,ErrorDef(), + fCMAparams_b,fCMAsols,0.1,100); + } + } + for (size_t i=0;i 1) + std::cout << "\t(limited)"; + std::cout << std::endl; + } + } + + } +} diff --git a/math/cmaes/test/CMakeLists.txt b/math/cmaes/test/CMakeLists.txt new file mode 100644 index 0000000000000..e41053d5999d0 --- /dev/null +++ b/math/cmaes/test/CMakeLists.txt @@ -0,0 +1,66 @@ +project(cmaes-tests) +find_package(ROOT REQUIRED) + +include(${ROOT_USE_FILE}) +include_directories(${ROOT_INCLUDE_DIRS}) + +set(TestSource + testMinimizer.cxx +) + +set(TestSourceMnTutorial + MnTutorial/Quad1FMain.cxx + MnTutorial/Quad4FMain.cxx + MnTutorial/Quad8FMain.cxx + MnTutorial/Quad12FMain.cxx +) + +set(TestSourceMnSim + MnSim/DemoGaussSim.cxx + MnSim/DemoFumili.cxx + MnSim/PaulTest.cxx + MnSim/PaulTest2.cxx + MnSim/PaulTest3.cxx + MnSim/PaulTest4.cxx + MnSim/ReneTest.cxx + MnSim/ParallelTest.cxx + MnSim/demoMinimizer.cxx +) + + + + +#---For the simple cmaes tests build and defined them--------------- +foreach(file ${TestSourceMnTutorial}) + get_filename_component(testname ${file} NAME_WE) + ROOT_EXECUTABLE(${testname} ${file} LIBRARIES cmaes) + ROOT_ADD_TEST(minuit2-${testname} COMMAND ${testname}) +endforeach() + + +ROOT_LINKER_LIBRARY(Minuit2TestMnSim MnSim/GaussDataGen.cxx MnSim/GaussFcn.cxx MnSim/GaussFcn2.cxx LIBRARIES Minuit2) + +#input text files +configure_file(MnSim/paul.txt paul.txt @COPY_ONLY) +configure_file(MnSim/paul2.txt paul2.txt @COPY_ONLY) +configure_file(MnSim/paul3.txt paul3.txt @COPY_ONLY) +configure_file(MnSim/paul4.txt paul4.txt @COPY_ONLY) + +foreach(file ${TestSourceMnSim}) + get_filename_component(testname ${file} NAME_WE) + ROOT_EXECUTABLE(${testname} ${file} LIBRARIES Minuit2 Minuit2TestMnSim) + ROOT_ADD_TEST(minuit2-${testname} COMMAND ${testname}) +endforeach() + +#for the global tests using ROOT libs (Minuit2 should be taken via the PluginManager) + +set(RootLibraries Core RIO Net Hist Graf Graf3d Gpad Tree + Rint Postscript Matrix Physics MathCore Thread) + +foreach(file ${TestSource}) + get_filename_component(testname ${file} NAME_WE) + ROOT_EXECUTABLE(${testname} ${file} LIBRARIES ${RootLibraries} ) + ROOT_ADD_TEST(minuit2-${testname} COMMAND ${testname}) +endforeach() + + diff --git a/math/cmaes/test/Makefile b/math/cmaes/test/Makefile new file mode 100644 index 0000000000000..189834c4f7331 --- /dev/null +++ b/math/cmaes/test/Makefile @@ -0,0 +1,90 @@ +# Makefile for the ROOT test programs. +# This Makefile shows nicely how to compile and link applications +# using the ROOT libraries on all supported platforms. +# +# Copyright (c) 2000 Rene Brun and Fons Rademakers +# +# Author: Fons Rademakers, 29/2/2000 + +ROOTSYS = ../../.. +include $(ROOTSYS)/etc/Makefile.arch + +#------------------------------------------------------------------------------ + +ifeq ($(PLATFORM),win32) +EXTRALIBS = "$(ROOTSYS)/lib/libcmaesroot.lib" +else +EXTRALIBS = -lcmaesroot -lglog -lgflags +endif + +# for using with MPI +ifneq ($(USE_MPI),) +CXX=mpic++ +LD=mpic++ +endif +ifneq ($(USE_OPENMP),) +CXXFLAGS += -D_GLIBCXX_PARALLEL -fopenmp +LDFLAGS += -fopenmp +endif + + + +USERFUNCOBJ = testUserFunc.$(ObjSuf) +USERFUNCSRC = testUserFunc.$(SrcSuf) +USERFUNC = testUserFunc$(ExeSuf) + +MINIMIZEROBJ = testMinimizer.$(ObjSuf) +MINIMIZERSRC = testMinimizer.$(SrcSuf) +MINIMIZER = testMinimizer$(ExeSuf) + +NDIMFITOBJ = testNdimFit.$(ObjSuf) +NDIMFITSRC = testNdimFit.$(SrcSuf) +NDIMFIT = testNdimFit$(ExeSuf) + +GAUSFITOBJ = testUnbinGausFit.$(ObjSuf) +GAUSFITSRC = testUnbinGausFit.$(SrcSuf) +GAUSFIT = testUnbinGausFit$(ExeSuf) + + +OBJS = $(USERFUNCOBJ) $(GRAPHOBJ) $(MINIMIZEROBJ) $(NDIMFITOBJ) $(GAUSFITOBJ) + +PROGRAMS = $(USERFUNC) $(GRAPH) $(MINIMIZER) $(NDIMFIT) $(GAUSFIT) + +.SUFFIXES: .$(SrcSuf) .$(ObjSuf) $(ExeSuf) + + +all: $(PROGRAMS) + +$(USERFUNC): $(USERFUNCOBJ) + $(LD) $(LDFLAGS) $^ $(LIBS) $(EXTRALIBS) $(OutPutOpt)$@ + @echo "$@ done" + +$(MINIMIZER): $(MINIMIZEROBJ) +ifeq ($(PLATFORM),win32) + $(LD) $(LDFLAGS) $^ $(LIBS) "$(ROOTSYS)/lib/libcmaesroot.lib" $(OutPutOpt)$@ +else + $(LD) $(LDFLAGS) $^ $(LIBS) -lMathCore $(OutPutOpt)$@ +endif + @echo "$@ done" + +$(NDIMFIT): $(NDIMFITOBJ) + $(LD) $(LDFLAGS) $^ $(LIBS) $(EXTRALIBS) $(OutPutOpt)$@ + @echo "$@ done" + +$(GAUSFIT): $(GAUSFITOBJ) + $(LD) $(LDFLAGS) $^ $(LIBS) $(EXTRALIBS) $(OutPutOpt)$@ + @echo "$@ done" + + +clean: + @rm -f $(OBJS) core + +distclean: clean + @rm -f $(PROGRAMS) *Dict.* *.def *.exp \ + *.root *.ps *.so *.lib *.dll *.d .def so_locations + +.SUFFIXES: .$(SrcSuf) + + +.$(SrcSuf).$(ObjSuf): + $(CXX) $(CXXFLAGS) -c $< diff --git a/math/cmaes/test/cmaesFullBench.py b/math/cmaes/test/cmaesFullBench.py new file mode 100644 index 0000000000000..cba3a55f8afbd --- /dev/null +++ b/math/cmaes/test/cmaesFullBench.py @@ -0,0 +1,104 @@ +import sys, csv +import numpy as np +import matplotlib.pyplot as plt +from numpy import * + +datfiles = ["combined.dat","example3D.dat","fit2a.dat","fit2.dat","fit2dhist.dat","gauss2D_fit.dat","gauss_fit.dat","lorentz_fit.dat"] + +fig, axarr = plt.subplots(8,2) + +i = 0 +j = 0 +N = 2 +runs = -1 +for f in datfiles: + dat = loadtxt(f,dtype=float,comments='#') + nalgs = len(dat) + + if runs == -1: + runs = dat[0,3]+dat[0,4] # get the number of runs once. + + hcolor = 'Teal' + aa = 0 + oldrec = None + for a in range(nalgs): + if a == nalgs-1: + hcolor = 'LightGreen' + + aavg1 = [dat[a,2],dat[a,9]] + aastd1 = [0.0,0.0] + aavg2 = [dat[a,5]*1000.0,dat[a,7]] + aastd2 = [dat[a,6]*1000.0,dat[a,8]] + + ## necessary variables + ind = np.arange(N) # the x locations for the groups + width = 0.05 # the width of the bars + + ## the bars + rects1 = axarr[i,j+1].bar(ind+aa*width, aavg1, width, + color=hcolor, + yerr=aastd1, + error_kw=dict(elinewidth=2,ecolor='red')) + if a == 0: + oldrec = rects1 + + #rects2 = ax2.bar(ind+width, minAvg, width, + # color='LightGreen', + # yerr=minStd, + # error_kw=dict(elinewidth=2,ecolor='black')) + + rects12 = axarr[i,j].bar(ind+aa*width, aavg2, width, + color=hcolor, + yerr=aastd2, + error_kw=dict(elinewidth=2,ecolor='red')) + + #rects22 = axarr[i,j].bar(ind+width, minAvg2, width, + # color='LightGreen', + # yerr=minStd2, + # error_kw=dict(elinewidth=2,ecolor='black')) + + #add a legend + if i == 6: + axarr[6,1].legend((oldrec[0], rects12[0]), ('aCMA-ES', 'Minuit2'), fontsize=10 ) + aa = aa + 1 + + + + # axes and labels + axarr[i,j].set_yscale("log",nonposy='clip') + #axarr[i,j].set_xlim(-width,len(ind)+width) + axarr[i,j].set_ylim(0) + #axarr[i,j+1].set_xlim(-width,len(ind)+width) + axarr[i,j+1].set_ylim(top=runs) + if i == 4 or i == 6: + axarr[i,j+1].set_ylim(top=2*runs) + if i == 7: + axarr[i,j+1].set_ylim(top=100) + #axarr[i,j].set_ylabel('Scores') + axarr[i,j].set_title(f + " / " + str(dat[0,0]) + "-D",fontsize=12) + #axarr[i,j].set_xticks(ind+width) + #axarr[i,j+1].set_xticks(ind+width) + plt.setp(axarr[i,j].get_xticklabels(),visible=False) + plt.setp(axarr[i,j+1].get_xticklabels(),visible=False) + if i == 7: + xTickMarks1 = ["CPU avg (ms)","","","","","Budget avg"] + xTickMarks2 = ["Found","","","","","wins"] + xtickNames = axarr[7,j].set_xticklabels(xTickMarks1) + plt.setp(xtickNames, rotation=45, fontsize=10) + xtickNames2 = axarr[7,j+1].set_xticklabels(xTickMarks2) + plt.setp(xtickNames2, rotation=45, fontsize=10) + plt.setp(axarr[i,j].get_xticklabels(),visible=True) + plt.setp(axarr[i,j+1].get_xticklabels(),visible=True) + + #add a legend +# if i == 6: +# axarr[7,1].legend()# (rects1[0], rects12[0]), ('aCMA-ES', 'Minuit2'), fontsize=10 ) + i = i + 1 + j = 0 +# if i == 2: +# i = 0 +# j = j + 1 + +#plt.tight_layout() +plt.suptitle('aCMA-ES / Minuit2 Benchmark Suite / ' + str(len(datfiles)) + ' experiments / ' + str(int(runs)) + ' runs on each\nlambda={auto, 50, 200, auto-aipop-4-restarts, auto-abipop-10-restarts}') #10, 20, 40, 80, 160, 320, 640, 1280}') +plt.show() diff --git a/math/cmaes/test/testMinimizer.cxx b/math/cmaes/test/testMinimizer.cxx new file mode 100644 index 0000000000000..dc42368a9dbff --- /dev/null +++ b/math/cmaes/test/testMinimizer.cxx @@ -0,0 +1,891 @@ +// test of minimization using new minimizer classes + +#include "Math/Minimizer.h" +#include "Math/Factory.h" +#include "Math/Functor.h" + +#include "TVirtualFitter.h" +#include "TSystem.h" + +#include "Math/IFunction.h" +#include "Math/Util.h" +#include +#include + +#include +#include + +#include "TStopwatch.h" +#include "TMatrixD.h" +#include "TVectorD.h" +#include "TRandom3.h" +#include "TMath.h" + +//#define DEBUG + +int gNCall = 0; +int gNCall2 = 0; +int gNmin = 1000; +int gVerbose = 0; +bool useGradient = true; + +bool minos = true; + +double gAbsTolerance = 0.005; + +// Rosenbrok function to be minimize + +typedef void (*FCN)(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag); + + + +// ROSENBROCK function +//______________________________________________________________________________ +void RosenBrock(Int_t &, Double_t *, Double_t &f, Double_t *par, Int_t /*iflag*/) +{ + gNCall++; + const Double_t x = par[0]; + const Double_t y = par[1]; + const Double_t tmp1 = y-x*x; + const Double_t tmp2 = 1-x; + f = 100*tmp1*tmp1+tmp2*tmp2; +} + + + +class RosenBrockFunction : public ROOT::Math::IMultiGenFunction { + +public : + + virtual ~RosenBrockFunction() {} + + unsigned int NDim() const { return 2; } + + ROOT::Math::IMultiGenFunction * Clone() const { + return new RosenBrockFunction(); + } + + const double * TrueMinimum() const { + fTrueMin[0] = 1; + fTrueMin[1] = 1; + return fTrueMin; + } + + private: + + inline double DoEval (const double * x) const { +#ifdef USE_FREE_FUNC + double f = 0; + int ierr = 0; + int i = 0; + RosenBrock(i,0,f,const_cast(x),ierr); + return f; +#else + gNCall++; + const Double_t xx = x[0]; + const Double_t yy = x[1]; + const Double_t tmp1 = yy-xx*xx; + const Double_t tmp2 = 1-xx; + return 100*tmp1*tmp1+tmp2*tmp2; +#endif + } + + + mutable double fTrueMin[2]; +}; + + +// TRIGONOMETRIC FLETCHER FUNCTION + +class TrigoFletcherFunction : public ROOT::Math::IMultiGradFunction { + +public : + + + TrigoFletcherFunction(unsigned int dim) : fDim(dim) { + double seed = 3; + A.ResizeTo(dim,dim); + B.ResizeTo(dim,dim); + x0.ResizeTo(dim); + sx0.ResizeTo(dim); + cx0.ResizeTo(dim); + sx.ResizeTo(dim); + cx.ResizeTo(dim); + v0.ResizeTo(dim); + v.ResizeTo(dim); + r.ResizeTo(dim); + A.Randomize(-100.,100,seed); + B.Randomize(-100.,100,seed); + for (unsigned int i = 0; i < dim; i++) { + for (unsigned int j = 0; j < dim; j++) { + A(i,j) = int(A(i,j)); + B(i,j) = int(B(i,j)); + } + } + x0.Randomize(-TMath::Pi(),TMath::Pi(),seed); + // calculate vector Ei + for (unsigned int i = 0; i < fDim ; ++i) { + cx0[i] = std::cos(x0[i]); + sx0[i] = std::sin(x0[i]); + } + v0 = A*sx0+B*cx0; + } + + + unsigned int NDim() const { return fDim; } + + ROOT::Math::IMultiGenFunction * Clone() const { + TrigoFletcherFunction * f = new TrigoFletcherFunction(*this); +// std::cerr <<"cannot clone this function" << std::endl; +// assert(0); + return f; + } + + + void StartPoints(double * x, double * s) { + TRandom3 rndm; + const double stepSize = 0.01; + const double deltaAmp = 0.1; + const double pi = TMath::Pi(); + for (unsigned int i = 0; i < fDim; ++i) { + double delta = rndm.Uniform(-deltaAmp*pi,deltaAmp*pi); + x[i] = x0(i) + 0.1*delta; + if (x[i] <= - pi) x[i] += 2.*pi; + if (x[i] > pi) x[i] -= 2.*pi; + s[i] = stepSize; + } + } + + + const double * TrueMinimum() const { + return x0.GetMatrixArray(); + } + + + void Gradient (const double * x, double * g) const { + gNCall2++; + + for (unsigned int i = 0; i < fDim ; ++i) { + cx [i] = std::cos(x[i]); + sx [i] = std::sin(x[i]); + } + + v = A*sx +B*cx; + r = v0-v; + + + // calculate the grad components + for (unsigned int i = 0; i < fDim ; ++i) { + g[i] = 0; + for (unsigned int k = 0; k < fDim ; ++k) { + g[i] += 2. * r(k) * ( - A(k,i) * cx(i) + B(k,i) * sx(i) ); + } + } + + } + +#ifdef USE_FDF + void FdF (const double * x, double & f, double * g) const { + gNCall++; + + for (unsigned int i = 0; i < fDim ; ++i) { + cx [i] = std::cos(x[i]); + sx [i] = std::sin(x[i]); + } + + v = A*sx +B*cx; + r = v0-v; + + f = r * r; + + + // calculate the grad components + for (unsigned int i = 0; i < fDim ; ++i) { + g[i] = 0; + for (unsigned int k = 0; k < fDim ; ++k) { + g[i] += 2. * r(k) * ( - A(k,i) * cx(i) + B(k,i) * sx(i) ); + } + } + } +#endif + + private: + +// TrigoFletcherFunction(const TrigoFletcherFunction & ) {} +// TrigoFletcherFunction & operator=(const TrigoFletcherFunction &) { return *this; } + + double DoEval (const double * x) const { + gNCall++; + + + for (unsigned int i = 0; i < fDim ; ++i) { + cx [i] = std::cos(x[i]); + sx [i] = std::sin(x[i]); + } + + v = A*sx +B*cx; + r = v0-v; + + return r * r; + } + + + double DoDerivative (const double * x, unsigned int i ) const { + std::vector g(fDim); + Gradient(x,&g[0]); + return g[i]; + } + +private: + + unsigned int fDim; + + TMatrixD A; + TMatrixD B; + TVectorD x0; + mutable TVectorD sx0; + mutable TVectorD cx0; + mutable TVectorD sx; + mutable TVectorD cx; + mutable TVectorD v0; + mutable TVectorD v; + mutable TVectorD r; + + +}; + + +// CHEBYQUAD FUNCTION + +class ChebyQuadFunction : public ROOT::Math::IMultiGradFunction { + +public : + + ChebyQuadFunction(unsigned int n) : + fDim(n), + fvec(std::vector(n) ), + fTrueMin(std::vector(n) ) + { + } + + unsigned int NDim() const { return fDim; } + + ROOT::Math::IMultiGenFunction * Clone() const { + return new ChebyQuadFunction(*this); + } + + const double * TrueMinimum() const { + return &fTrueMin[0]; + } + + // use equally spaced points + void StartPoints(double * x, double * s) { + for (unsigned int i = 0; i < fDim; ++i) { + s[i] = 0.01; + x[i] = double(i)/(double(fDim)+1.0); + } + } + + // compute gradient + + void Gradient(const double * x, double * g) const { + gNCall2++; + unsigned int n = fDim; + // estimate first the fvec + DoCalculatefi(x); + + for (unsigned int j = 0; j < n; ++j) { + g[j] = 0.0; + double t1 = 1.0; + double t2 = 2.0 * x[j] - 1.0; + double t = 2.0 * t2; + double s1 = 0.0; + double s2 = 2.0; + for (unsigned int i = 0; i < n; ++i) { + g[j] += fvec[i] * s2; + double th = 4.0 * t2 + t * s2 - s1; + s1 = s2; + s2 = th; + th = t * t2 - t1; + t1 = t2; + t2 = th; + } + g[j] = 2. * g[j] / double(n); + } + + + } + + private: + + double DoEval (const double * x) const { + + gNCall++; + DoCalculatefi(x); + double f = 0; + for (unsigned int i = 0; i < fDim; ++i) + f += fvec[i] * fvec[i]; + + return f; + + } + + double DoDerivative (const double * x, unsigned int i ) const { + std::vector g(fDim); + Gradient(x,&g[0]); + return g[i]; + } + + void DoCalculatefi(const double * x) const { + // calculate the i- element ; F(X) = Sum {fi] + unsigned int n = fDim; + for (unsigned int i = 0; i < n; ++i) + fvec[i] = 0; + + for (unsigned int j = 0; j < n; ++j) { + double t1 = 1.0; + double t2 = 2.0 * x[j] - 1.0; + double t = 2.0 * t2; + for (unsigned int i = 0; i < n; ++i) { + fvec[i] += t2; + double th = t * t2 - t1; + t1 = t2; + t2 = th; + } + } + + // sum with the integral (integral is zero for odd Cheb polynomial and = 1/(i**2 -1) for the even ones + for (unsigned int i = 1; i <= n; ++i) { + int l = i-1; + fvec[l] /= double ( n ); + if ( ( i % 2 ) == 0 ) { + fvec[l] += 1.0 / ( double ( i*i ) - 1.0 ); + } + } + } + + unsigned int fDim; + mutable std::vector fvec; + mutable std::vector fTrueMin; +}; + +//WOOD function (4 dim function) + +double WoodFunction(const double * par) { + gNCall++; + + const double w = par[0]; + const double x = par[1]; + const double y = par[2]; + const double z = par[3]; + + const double w1 = w-1; + const double x1 = x-1; + const double y1 = y-1; + const double z1 = z-1; + const double tmp1 = x-w*w; + const double tmp2 = z-y*y; + + double f = 100*tmp1*tmp1+w1*w1+90*tmp2*tmp2+y1*y1+10.1*(x1*x1+z1*z1)+19.8*x1*z1; + return f; +} + +//Powell Function (4 dim function) +double PowellFunction(const double * par) { + gNCall++; + + const double w = par[0]; + const double x = par[1]; + const double y = par[2]; + const double z = par[3]; + + const double tmp1 = w+10*x; + const double tmp2 = y-z; + const double tmp3 = x-2*y; + const double tmp4 = w-z; + + double f = tmp1*tmp1+5*tmp2*tmp2+tmp3*tmp3*tmp3*tmp3+10*tmp4*tmp4*tmp4*tmp4; + return f; +} + +double SimpleQuadFunction(const double * par) { + gNCall++; + double x = par[0]; + double y = par[1]; + double f = x * x + 2 * y * y - x*y; + std::cout << "Quadfunc " << gNCall << "\t" << x << " , " << y << " f = " << f << std::endl; + return f; +} + +const double * TrueMinimum(const ROOT::Math::IMultiGenFunction & func) { + + const RosenBrockFunction * fRB = dynamic_cast< const RosenBrockFunction *> (&func); + if (fRB != 0) return fRB->TrueMinimum(); + const TrigoFletcherFunction * fTF = dynamic_cast< const TrigoFletcherFunction *> (&func); + if (fTF != 0) return fTF->TrueMinimum(); +// const ChebyQuadFunction * fCQ = dynamic_cast< const ChebyQuadFunction *> (&func); +// if (fCQ != 0) return fCQ->TrueMinimum(); + return 0; +} + +void printMinimum(const std::vector & x) { + std::cout << "Minimum X values\n"; + std::cout << "\t"; + int pr = std::cout.precision(12); + unsigned int n = x.size(); + for (unsigned int i = 0; i < n; ++i) { + std::cout << x[i]; + if ( i != n-1 ) std::cout << " , "; + if ( i > 0 && i % 6 == 0 ) std::cout << "\n\t"; + } + std::cout << std::endl; + std::cout.precision(pr); +} + +int DoNewMinimization( const ROOT::Math::IMultiGenFunction & func, const double * x0, const double * s0, ROOT::Math::Minimizer * min, double &minval, double &edm, double * minx) { + + int iret = 0; + + min->SetMaxFunctionCalls(1000000); + min->SetMaxIterations(100000); + min->SetTolerance(gAbsTolerance); + if (func.NDim() >= 10) { + min->SetTolerance(0.01); + + } + + min->SetPrintLevel(gVerbose); + // check if func provides gradient + const ROOT::Math::IMultiGradFunction * gfunc = dynamic_cast(&func); + if (gfunc != 0 && useGradient) + min->SetFunction(*gfunc); + else + min->SetFunction(func); + + for (unsigned int i = 0; i < func.NDim(); ++i) { +#ifdef DEBUG + std::cout << "set variable " << i << " to value " << x0[i] << std::endl; +#endif + min->SetVariable(i,"x" + ROOT::Math::Util::ToString(i),x0[i], s0[i]); + } + + bool ret = min->Minimize(); + minval = min->MinValue(); + edm = min->Edm(); + + if (!ret) { + return -1; + } + + const double * xmin = min->X(); + + bool ok = true; + const double * trueMin = TrueMinimum(func); + if (trueMin != 0) { + for (unsigned int i = 0; i < func.NDim(); ++i) + ok &= (std::fabs(xmin[i]-trueMin[i] ) < gAbsTolerance); + } + + if (!ok) iret = -2; + int ncall_migrad = gNCall; + + // test Minos (use the default up of 1) + if (minos) { + + double el,eu; + for (unsigned int i = 0; i < func.NDim(); ++i) { + ret = min->GetMinosError(i,el,eu); + std::cout << "ncalls " << gNCall << "\t"; + if (ret) std::cout << "MINOS error for " << i << " = " << el << " " << eu << std::endl; + else std::cout << "MINOS failed for " << i << std::endl; + } + } + + std::cout << "\nMigrad Ncalls:\t " << ncall_migrad << std::endl; + std::cout << "Minos Ncalls :\t " << gNCall - ncall_migrad << std::endl; + + +// std::cout << "function at the minimum " << func(xmin) << std::endl; + std::copy(xmin,xmin+func.NDim(),minx); + min->Clear(); + + return iret; +} + +int DoOldMinimization( FCN func, TVirtualFitter * min, double &minval, double &edm) { + + int iret = 0; + + assert(min != 0); + min->SetFCN( func ); + + Double_t arglist[100]; + arglist[0] = gVerbose-1; + min->ExecuteCommand("SET PRINT",arglist,1); + + min->SetParameter(0,"x",-1.2,0.01,0,0); + min->SetParameter(1,"y", 1.0,0.01,0,0); + + arglist[0] = 0; + min->ExecuteCommand("SET NOW",arglist,0); + arglist[0] = 1000; // number of function calls + arglist[1] = gAbsTolerance; // tolerance + //min->ExecuteCommand("MIGRAD",arglist,0); + min->ExecuteCommand("MIGRAD",arglist,2); + + if (minos) min->ExecuteCommand("MINOS",arglist,0); + + Double_t parx,pary; + Double_t we,al,bl; + Char_t parName[32]; + min->GetParameter(0,parName,parx,we,al,bl); + min->GetParameter(1,parName,pary,we,al,bl); + + bool ok = ( TMath::Abs(parx-1.) < gAbsTolerance && + TMath::Abs(pary-1.) < gAbsTolerance ); + + + double errdef = 0; + int nvpar, nparx; + min->GetStats(minval,edm,errdef,nvpar,nparx); + if (!ok) iret = -2; + + min->Clear(); // for further use + return iret; + +} + + +int testNewMinimizer( const ROOT::Math::IMultiGenFunction & func, const double * x0, const double * s0, const std::string & minimizer, const std::string & algoType) { + + std::cout << "\n************************************************************\n"; + std::cout << "\tTest new ROOT::Math::Minimizer\n"; + std::cout << "\tMinimizer is " << minimizer << " " << algoType << std::endl; + + int iret = 0; + double minval,edm = 0; + std::vector xmin(func.NDim() ); + + TStopwatch w; + w.Start(); + + ROOT::Math::Minimizer * min = ROOT::Math::Factory::CreateMinimizer(minimizer, algoType); + if (min == 0) { + std::cout << "Error using minimizer " << minimizer << " " << algoType << std::endl; + return -1; + } + + + for (int i = 0; i < gNmin; ++i) { + gNCall = 0; gNCall2 = 0; + iret |= DoNewMinimization(func, x0, s0, min,minval,edm,&xmin[0]); + } + + w.Stop(); + if (iret != 0) std::cout << "\n****** ERROR: Minimization FAILED ! \n"; + int pr = std::cout.precision(18); + std::cout << "\nNCalls: \t" << gNCall << " , " << gNCall2 + << "\tMinValue: \t" << minval << "\tEdm: \t" << edm; std::cout.precision(pr); + std::cout << "\nTime: \t" << w.RealTime() << " , " << w.CpuTime() << std::endl; + printMinimum(xmin ); + std::cout << "\n************************************************************\n"; + +#ifdef CHECK_WITHMINUIT + // do Minuit after BFGS + if (minimizer == "GSL_BFGS") { + std::cout << "DO cmaes from last point\n"; + gNCall = 0; + iret |= DoNewMinimization(func, &xmin.front(), s0, "cmaes","",minval,edm,&xmin[0]); + int pr = std::cout.precision(18); + std::cout << "\nNCalls: \t" << gNCall << "\tMinValue: \t" << minval << "\tEdm: \t" << edm; std::cout.precision(pr); + std::cout << std::endl; + } +#endif + + delete min; + + return iret; +} + + +int testOldMinimizer( FCN func, const std::string & fitter, int n=25) { + + std::cout << "\n************************************************************\n"; + std::cout << "\tTest using TVirtualFitter\n"; + std::cout << "\tFitter is " << fitter << std::endl; + + int iret = 0; + double minval,edm = 0; + + TStopwatch w; + w.Start(); + + TVirtualFitter::SetDefaultFitter(fitter.c_str()); + + TVirtualFitter *min = TVirtualFitter::Fitter(0,n); + + //min->Dump(); + + for (int i = 0; i < gNmin; ++i) { + gNCall = 0; + iret |= DoOldMinimization(func, min,minval,edm); + } + + w.Stop(); + if (iret != 0) std::cout << "\n****** ERROR: Minimization FAILED ! \n"; + int pr = std::cout.precision(18); + std::cout << "\nNCalls: \t" << gNCall << "\tMinValue: \t" << minval << "\tEdm: \t" << edm; std::cout.precision(pr); + std::cout << "\nTime: \t" << w.RealTime() << " , " << w.CpuTime() << std::endl; + std::cout << "\n************************************************************\n"; + + return iret; +} + +int testRosenBrock() { + + int iret = 0; + + + std::cout << "\n************************************************************\n"; + std::cout << "\tROSENBROCK function test\n\n"; + + double s0[2] = {0.01,0.01}; + + // minimize using Rosenbrock Function +#ifndef DEBUG + gNmin = 2000; +#endif + + gNmin = 1; + + + RosenBrockFunction fRB; + double xRB[2] = { -1.,1.2}; + + iret |= testNewMinimizer(fRB,xRB,s0,"Minuit",""); + iret |= testNewMinimizer(fRB,xRB,s0,"cmaes",""); + +// iret |= testNewMinimizer(fRB,xRB,s0,"GSLMultiMin","ConjugateFR"); +// iret |= testNewMinimizer(fRB,xRB,s0,"GSLMultiMin","ConjugatePR"); +// iret |= testNewMinimizer(fRB,xRB,s0,"GSLMultiMin","BFGS"); +// iret |= testNewMinimizer(fRB,xRB,s0,"GSLMultiMin","BFGS2"); + +// iret |= testOldMinimizer(RosenBrock,"Minuit",2); +// iret |= testOldMinimizer(RosenBrock,"cmaes",2); + + + return iret; +} + + +int testChebyQuad() { + + int iret = 0; + + // test with ChebyQuad function + + const int n = 8; + ChebyQuadFunction func(n); + +#ifndef DEBUG + gNmin = std::max(1, int(20000/n/n) ); +#endif + gNmin = 1; + + + double s0[n]; + double x0[n]; + func.StartPoints(x0,s0); + + std::cout << "\n************************************************************\n"; + std::cout << "\tCHEBYQUAD function test , n = " << n << "\n\n"; + + +// double x[8] = {0.043153E+00, 0.193091E+00, 0.266329E+00, 0.500000E+00, +// 0.500000E+00, 0.733671E+00, 0.806910E+00, 0.956847E+00 }; +// double x[2] = {0.5, 0.5001}; +// std::cout << "FUNC " << func(x) << std::endl; + double x1[100] = { 0.00712780070646 , 0.0123441993113 , 0.0195428378255 , 0.0283679084192 , 0.0385291131289 , 0.0492202424892 , 0.0591277976178 , + 0.0689433195252 , 0.0791293590525 , 0.088794974369 , 0.0988949579193 , 0.108607151294 , 0.118571075831 , + 0.128605446238 , 0.137918291068 , 0.149177761352 , 0.156665324587 , 0.170851061982 , 0.174688134016 , + 0.192838903364 , 0.193078270803 , 0.209255377225 , 0.217740096779 , 0.225888518345 , 0.241031047421 , + 0.244253844041 , 0.257830449676 , 0.269467652526 , 0.274286498012 , 0.288877029988 , 0.297549406597 , + 0.304950954529 , 0.319230811642 , 0.326387092206 , 0.335229058731 , 0.349178359226 , 0.355905988048 , + 0.365197862755 , 0.379068092603 , 0.385826036925 , 0.394978252826 , 0.408974425717 , 0.415968185065 , + 0.424621041584 , 0.438837361714 , 0.446214149031 , 0.454242324351 , 0.468614308013 , 0.476506553416 , + 0.483916944941 , 0.498229247409 , 0.506794629616 , 0.513736742474 , 0.527712475478 , 0.537073277673 , + 0.543731917673 , 0.557187513963 , 0.567346279639 , 0.57379846397 , 0.586691058785 , 0.597561941009 , + 0.60382873461 , 0.616316037506 , 0.627719652101 , 0.633760038662 , 0.646175283836 , 0.657809344891 , + 0.663569004722 , 0.676314563639 , 0.687674566849 , 0.69332205923 , 0.706839545953 , 0.716907408637 , + 0.723407327715 , 0.738019389561 , 0.744806584048 , 0.754657613362 , 0.769181875619 , 0.772250323489 , + 0.787104833193 , 0.795856360905 , 0.804099304478 , 0.82142178741 , 0.819589601284 , 0.839024540481 , + 0.842457233039 , 0.857393475964 , 0.86408033345 , 0.876329840525 , 0.884867318008 , 0.895744532071 , + 0.905113958163 , 0.915445338697 , 0.925148068352 , 0.935344457785 , 0.945127838313 , 0.955272197168 , + 0.965687518559 , 0.975129521484 , 0.982662007764 }; + + std::cout << "FUNC " << func(x1) << std::endl; + + + iret |= testNewMinimizer(func,x0,s0, "Minuit",""); + iret |= testNewMinimizer(func,x0,s0, "cmaes",""); + +// iret |= testNewMinimizer(func,x0,s0, "GSLMultiMin","ConjugateFR"); +// iret |= testNewMinimizer(func,x0,s0, "GSLMultiMin","ConjugatePR"); +// iret |= testNewMinimizer(func,x0,s0, "GSLMultiMin","BFGS"); + + return iret; +} + + +int testTrigoFletcher() { + + int iret = 0; + + + // test with fletcher trigonometric function +#ifndef DEBUG + gNmin = 2; +#endif + gNmin = 1; + + const int nT = 50; + TrigoFletcherFunction fTrigo(nT); + double sTrigo[nT]; + double xTrigo[nT]; + fTrigo.StartPoints(xTrigo,sTrigo); + + std::cout << "\n************************************************************\n"; + std::cout << "\tTRIGONOMETRIC Fletcher function test , n = " << nT << "\n\n"; + + + iret |= testNewMinimizer(fTrigo,xTrigo,sTrigo,"cmaes",""); + iret |= testNewMinimizer(fTrigo,xTrigo,sTrigo,"Minuit",""); + +// iret |= testNewMinimizer(fTrigo,xTrigo,sTrigo,"GSLMultiMin","ConjugateFR"); +// iret |= testNewMinimizer(fTrigo,xTrigo,sTrigo,"GSLMultiMin","ConjugatePR"); +// iret |= testNewMinimizer(fTrigo,xTrigo,sTrigo,"GSLMultiMin","BFGS"); + + + return iret; +} + + +int testWood() { + + int iret = 0; + + + // test with Wood function (4d) +// minimum : F(1,1,1,1) = 0. + + +#ifndef DEBUG + gNmin = 1000; +#endif + gNmin = 1; + + ROOT::Math::Functor f(&WoodFunction,4); + + double x0[4] = { -3, -1, -3, -1 }; + double s0[4] = { 0.1, 0.1, 0.1, 0.1}; + + std::cout << "\n************************************************************\n"; + std::cout << "\tWOOD 4 function test \n\n"; + + + iret |= testNewMinimizer(f, x0, s0,"Minuit",""); + iret |= testNewMinimizer(f, x0, s0,"cmaes",""); + + + return iret; +} + +int testPowell() { + + int iret = 0; + + + // test with Powell function (4d) + // minimum is at F(0,0,0,0) = 0 +#ifndef DEBUG + gNmin = 1000; +#endif + gNmin = 1; + + ROOT::Math::Functor f(&PowellFunction,4); + + double x0[4] = { -3, -1, 0, 1 }; + double s0[4] = { 0.1, 0.1, 0.1, 0.1}; + + std::cout << "\n************************************************************\n"; + std::cout << "\tPOWELL function test \n\n"; + + + iret |= testNewMinimizer(f, x0, s0,"Minuit",""); + iret |= testNewMinimizer(f, x0, s0,"cmaes",""); + + + return iret; +} + + +int testQuadFunc() { + + int iret = 0; + + + // test with a simple quadratic function 2d + // minimum is at F(0,0) = 0 +#ifndef DEBUG + gNmin = 1000; +#endif + gNmin = 1; + + ROOT::Math::Functor f(&SimpleQuadFunction,2); + + double x0[4] = { -3, -3 }; + double s0[4] = { 0.1, 0.1}; + + std::cout << "\n************************************************************\n"; + std::cout << "\tSIMPLE QUAD function test \n\n"; + + + iret |= testNewMinimizer(f, x0, s0,"Minuit",""); + iret |= testNewMinimizer(f, x0, s0,"cmaes",""); + + + return iret; +} + + +int main() { + + gSystem->Load("/usr/lib/x86_64-linux-gnu/libglog.so"); + gSystem->Load("/usr/lib/x86_64-linux-gnu/libgflags.so"); + + int iret = 0; + +#ifdef DEBUG + gVerbose = 4; + gNmin = 1; +#endif + + + iret |= testRosenBrock(); + iret |= testChebyQuad(); + iret |= testTrigoFletcher(); + + iret |= testWood(); + iret |= testPowell(); + + iret |= testQuadFunc(); + + + + if (iret != 0) + std::cerr << "testMinim :\t FAILED " << std::endl; + else + std::cerr << "testMinim :\t OK " << std::endl; + return iret; + +} diff --git a/math/cmaes/test/testNdimFit.cxx b/math/cmaes/test/testNdimFit.cxx new file mode 100644 index 0000000000000..b3cecc526f12d --- /dev/null +++ b/math/cmaes/test/testNdimFit.cxx @@ -0,0 +1,285 @@ +#include "TMath.h" +#include "TSystem.h" +#include "TRandom3.h" +#include "TTree.h" +#include "TROOT.h" + +#include "Fit/UnBinData.h" +#include "Fit/Fitter.h" + + +#include "Math/IParamFunction.h" +#include "Math/WrappedTF1.h" +#include "Math/WrappedMultiTF1.h" +#include "Math/WrappedParamFunction.h" +#include "Math/MultiDimParamFunctionAdapter.h" + +#include "TGraphErrors.h" + +#include "TStyle.h" + + +#include "Math/DistFunc.h" + +#include +#include + +#include "TStopwatch.h" + +#define DEBUG + +// test fit with many dimension + +const int N = 10; +const std::string branchType = "x[10]/D"; +const int NPoints = 100000; + +// const int N = 50; +// const std::string branchType = "x[50]/D"; +// const int NPoints = 10000; + + + +double truePar[2*N]; +double iniPar[2*N]; +//const int nfit = 1; +const int strategy = 0; + +double gausnorm(const double *x, const double *p) { + + double invsig = 1./p[1]; + double tmp = (x[0]-p[0]) * invsig; + const double sqrt_2pi = 1./std::sqrt(2.* 3.14159 ); + return std::exp(-0.5 * tmp*tmp ) * sqrt_2pi * invsig; +} + +double gausnormN(const double *x, const double *p) { + double f = 1; + for (int i = 0; i < N; ++i) + f *= gausnorm(x+i,p+2*i); + + return f; +} + +struct CMAES { + static std::string name() { return "cmaes"; } + static std::string name2() { return "acmaes"; } +}; + +// fill fit data structure +ROOT::Fit::UnBinData * FillUnBinData(TTree * tree ) { + + // fill the unbin data set from a TTree + ROOT::Fit::UnBinData * d = 0; + + // for the large tree access directly the branches + d = new ROOT::Fit::UnBinData(); + + unsigned int n = tree->GetEntries(); +#ifdef DEBUG + std::cout << "number of unbin data is " << n << " of dim " << N << std::endl; +#endif + d->Initialize(n,N); + TBranch * bx = tree->GetBranch("x"); + double vx[N]; + bx->SetAddress(vx); + std::vector m(N); + for (int unsigned i = 0; i < n; ++i) { + bx->GetEntry(i); + d->Add(vx); + for (int j = 0; j < N; ++j) + m[j] += vx[j]; + } + +#ifdef DEBUG + std::cout << "average values of means :\n"; + for (int j = 0; j < N; ++j) + std::cout << m[j]/n << " "; + std::cout << "\n"; +#endif + + delete tree; + tree = 0; + return d; + +} + + +// unbin fit + +typedef ROOT::Math::IParamMultiFunction Func; +template +int DoUnBinFit(T * tree, Func & func, bool debug = false ) { + + ROOT::Fit::UnBinData * d = FillUnBinData(tree ); + // need to have done Tree->Draw() before fit + //FillUnBinData(d,tree); + + //std::cout << "data size type and size is " << typeid(*d).name() << " " << d->Size() << std::endl; + std::cout << "Fit data size = " << d->Size() << " dimension = " << d->NDim() << std::endl; + + + + //printData(d); + + // create the fitter + //std::cout << "Fit parameter 2 " << f.Parameters()[2] << std::endl; + + ROOT::Fit::Fitter fitter; + fitter.Config().SetMinimizer(MinType::name().c_str(),MinType::name2().c_str()); + + if (debug) + fitter.Config().MinimizerOptions().SetPrintLevel(3); + else + fitter.Config().MinimizerOptions().SetPrintLevel(0); + + // set tolerance 1 for tree to be same as in TTTreePlayer::UnBinFIt + fitter.Config().MinimizerOptions().SetTolerance(1); + + // set strategy (0 to avoid MnHesse + fitter.Config().MinimizerOptions().SetStrategy(strategy); + + + // create the function + + fitter.SetFunction(func); + // need to fix param 0 , normalization in the unbinned fits + //fitter.Config().ParSettings(0).Fix(); + + bool ret = fitter.Fit(*d); + if (!ret) { + std::cout << " Fit Failed " << std::endl; + return -1; + } + if (debug) + fitter.Result().Print(std::cout); + + // check fit result + double chi2 = 0; + for (int i = 0; i < N; ++i) { + double d = (truePar[i] - fitter.Result().Value(i) )/ (fitter.Result().Error(i) ); + chi2 += d*d; + } + double prob = ROOT::Math::chisquared_cdf_c(chi2,N); + int iret = (prob < 1.0E-6) ? -1 : 0; + if (iret != 0) { + std::cout <<"Found difference in fitted values - prob = " << prob << std::endl; + if (!debug) fitter.Result().Print(std::cout); + for (int i = 0; i < N; ++i) { + double d = (truePar[i] - fitter.Result().Value(i) )/ (fitter.Result().Error(i) ); + std::cout << "par_" << i << " = " << fitter.Result().Value(i) << " true = " << truePar[i] << " pull = " << d << std::endl; + } + + } + + delete d; + + return iret; + +} + + +template +int DoFit(TTree * tree, Func & func, bool debug = false ) { + return DoUnBinFit(tree, func, debug); +} +// template +// int DoFit(TH1 * h1, Func & func, bool debug = false, bool copyData = false ) { +// return DoBinFit(h1, func, debug, copyData); +// } +// template +// int DoFit(TGraph * gr, Func & func, bool debug = false, bool copyData = false ) { +// return DoBinFit(gr, func, debug, copyData); +// } + +template +int FitUsingNewFitter(FitObj * fitobj, Func & func ) { + + std::cout << "\n************************************************************\n"; + std::cout << "\tFit using new Fit::Fitter " << typeid(*fitobj).name() << std::endl; + std::cout << "\tMinimizer is " << MinType::name() << " " << MinType::name2() << " func dim = " << func.NDim() << std::endl; + + int iret = 0; + TStopwatch w; w.Start(); + +#ifdef DEBUG + std::cout << "initial Parameters " << iniPar << " " << *iniPar << " " << *(iniPar+1) << std::endl; + func.SetParameters(iniPar); + iret |= DoFit(fitobj,func,true ); + +#else + for (int i = 0; i < nfit; ++i) { + func.SetParameters(iniPar); + iret = DoFit(fitobj,func, false); + if (iret != 0) { + std::cout << "Fit failed " << std::endl; + break; + } + } +#endif + w.Stop(); + std::cout << "\nTime: \t" << w.RealTime() << " , " << w.CpuTime() << std::endl; + std::cout << "\n************************************************************\n"; + + return iret; +} + + +int testNdimFit() { + + + std::cout << "\n\n************************************************************\n"; + std::cout << "\t UNBINNED TREE (GAUSSIAN MULTI-DIM) FIT\n"; + std::cout << "************************************************************\n"; + + TTree * t1 = new TTree("t2","a large Tree with gaussian variables"); + double x[N]; + Int_t ev; + t1->Branch("x",x,branchType.c_str()); + t1->Branch("ev",&ev,"ev/I"); + + // generate the true parameters + for (int j = 0; j < N; ++j) { + double mu = double(j)/10.; + double s = 1.0 + double(j)/10.; + truePar[2*j] = mu; + truePar[2*j+1] = s; + } + + + //fill the tree + TRandom3 r; + for (Int_t i=0;iFill(); + + } + //t1.Draw("x"); // to select fit variable + + + for (int i = 0; i f2(&gausnormN,N,2*N,iniPar); + + int iret = 0; + iret |= FitUsingNewFitter(t1,f2); + + return iret; +} + +int main() { + gSystem->Load("/usr/lib/x86_64-linux-gnu/libglog.so"); + gSystem->Load("/usr/lib/x86_64-linux-gnu/libgflags.so"); + return testNdimFit(); +} diff --git a/math/cmaes/test/testUnbinGausFit.cxx b/math/cmaes/test/testUnbinGausFit.cxx new file mode 100644 index 0000000000000..9192ac50dc8fa --- /dev/null +++ b/math/cmaes/test/testUnbinGausFit.cxx @@ -0,0 +1,333 @@ +#include "TMath.h" +#include "TSystem.h" +#include "TRandom3.h" +#include "TTree.h" +#include "TROOT.h" + +#include "Fit/UnBinData.h" +#include "Fit/Fitter.h" + + +#include "Math/IParamFunction.h" +#include "Math/WrappedTF1.h" +#include "Math/WrappedMultiTF1.h" +#include "Math/WrappedParamFunction.h" +#include "Math/MultiDimParamFunctionAdapter.h" + +#include "TGraphErrors.h" + +#include "TStyle.h" + + +#include "Math/DistFunc.h" + +#include +#include + +#include "TStopwatch.h" + +#define DEBUG + +// test fit with many dimension + +const int N = 1; // 1d fit +const int NGaus = 3; +const int NPar = 8; // sum of 3 gaussians +const std::string branchType = "x[1]/D"; + +// for 8 core testing use 1M points +const int NPoints = 100000; +double truePar[NPar]; +double iniPar[NPar]; +//const int nfit = 1; +const int strategy = 0; + +double gausnorm(const double *x, const double *p) { + + double invsig = 1./std::abs(p[1]); + double tmp = (x[0]-p[0]) * invsig; + const double sqrt_2pi = 1./std::sqrt(2.* 3.14159 ); + return std::exp(-0.5 * tmp*tmp ) * sqrt_2pi * invsig; +} + +double gausSum(const double *x, const double *p) { + + double f = gausnorm(x,p+2) + + p[0] * gausnorm(x,p+4) + + p[1] * gausnorm(x,p+6); + + double norm = 1. + p[0] + p[1]; + return f/norm; +} + +struct CMAES { + static std::string name() { return "cmaes"; } + static std::string name2() { return "acmaes"; } +}; + +// fill fit data structure +ROOT::Fit::UnBinData * FillUnBinData(TTree * tree ) { + + // fill the unbin data set from a TTree + ROOT::Fit::UnBinData * d = 0; + + // for the large tree access directly the branches + d = new ROOT::Fit::UnBinData(); + + unsigned int n = tree->GetEntries(); +#ifdef DEBUG + std::cout << "number of unbin data is " << n << " of dim " << N << std::endl; +#endif + d->Initialize(n,N); + TBranch * bx = tree->GetBranch("x"); + double vx[N]; + bx->SetAddress(vx); + std::vector m(N); + for (int unsigned i = 0; i < n; ++i) { + bx->GetEntry(i); + d->Add(vx); + for (int j = 0; j < N; ++j) + m[j] += vx[j]; + } + +#ifdef DEBUG + std::cout << "average values of means :\n"; + for (int j = 0; j < N; ++j) + std::cout << m[j]/n << " "; + std::cout << "\n"; +#endif + + return d; +} + + +// unbin fit + +typedef ROOT::Math::IParamMultiFunction Func; +template +int DoUnBinFit(T * tree, Func & func, bool debug = false ) { + + ROOT::Fit::UnBinData * d = FillUnBinData(tree ); + // need to have done Tree->Draw() before fit + //FillUnBinData(d,tree); + + std::cout << "Filled the fit data " << std::endl; + //printData(d); + +#ifdef DEBUG + std::cout << "data size type and size is " << typeid(*d).name() << " " << d->Size() << std::endl; +#endif + + + + // create the fitter + //std::cout << "Fit parameter 2 " << f.Parameters()[2] << std::endl; + + ROOT::Fit::Fitter fitter; + fitter.Config().SetMinimizer(MinType::name().c_str(),MinType::name2().c_str()); + + if (debug) + fitter.Config().MinimizerOptions().SetPrintLevel(3); + else + fitter.Config().MinimizerOptions().SetPrintLevel(1); + + + // set tolerance 1 for tree to be same as in TTTreePlayer::UnBinFIt + fitter.Config().MinimizerOptions().SetTolerance(0.01); + + // set strategy (0 to avoid MnHesse + fitter.Config().MinimizerOptions().SetStrategy(strategy); + + + // create the function + + fitter.SetFunction(func); + // need to set limits to constant term + fitter.Config().ParSettings(0).SetLowerLimit(0.); + fitter.Config().ParSettings(1).SetLowerLimit(0.); + + if (debug) + std::cout << "do fitting... " << std::endl; + + bool ret = fitter.Fit(*d); + if (!ret) { + std::cout << " Fit Failed " << std::endl; + return -1; + } + if (debug) + fitter.Result().Print(std::cout); + + // check fit result + double chi2 = 0; + //if (fitter.Result().Value(0) < 0.5 ) { + for (int i = 0; i < NPar; ++i) { + double d = (truePar[i] - fitter.Result().Value(i) )/ (fitter.Result().Error(i) ); + chi2 += d*d; + } +//} +// else { +// double truePar2[NPar]; +// truePar2[0] = 1.-truePar[0]; +// truePar2[1] = truePar[3]; +// truePar2[2] = truePar[4]; +// truePar2[3] = truePar[1]; +// truePar2[4] = truePar[2]; +// for (int i = 0; i < N; ++i) { +// double d = ( truePar2[i] - fitter.Result().Value(i) )/ (fitter.Result().Error(i) ); +// chi2 += d*d; +// } +// } + double prob = ROOT::Math::chisquared_cdf_c(chi2,NPar); + int iret = (prob < 1.0E-6) ? -1 : 0; + if (iret != 0) { + std::cout <<"Found difference in fitted values - chi2 = " << chi2 + << " prob = " << prob << std::endl; + fitter.Result().Print(std::cout); + } + + delete d; + + return iret; + +} + + +template +int DoFit(TTree * tree, Func & func, bool debug = false ) { + return DoUnBinFit(tree, func, debug); +} +// template +// int DoFit(TH1 * h1, Func & func, bool debug = false, bool copyData = false ) { +// return DoBinFit(h1, func, debug, copyData); +// } +// template +// int DoFit(TGraph * gr, Func & func, bool debug = false, bool copyData = false ) { +// return DoBinFit(gr, func, debug, copyData); +// } + +template +int FitUsingNewFitter(FitObj * fitobj, Func & func ) { + + std::cout << "\n************************************************************\n"; + std::cout << "\tFit using new Fit::Fitter " << typeid(*fitobj).name() << std::endl; + std::cout << "\tMinimizer is " << MinType::name() << " " << MinType::name2() << " func dim = " << func.NDim() << std::endl; + + int iret = 0; + TStopwatch w; w.Start(); + +#ifdef DEBUG + std::cout << "initial Parameters " << iniPar << " " << *iniPar << " " << *(iniPar+1) << std::endl; + func.SetParameters(iniPar); + iret |= DoFit(fitobj,func,true ); + if (iret != 0) { + std::cout << "Test failed " << std::endl; + } + +#else + for (int i = 0; i < nfit; ++i) { + func.SetParameters(iniPar); + iret = DoFit(fitobj,func, false); + if (iret != 0) { + std::cout << "Test failed " << std::endl; + break; + } + } +#endif + w.Stop(); + std::cout << "\nTime: \t" << w.RealTime() << " , " << w.CpuTime() << std::endl; + std::cout << "\n************************************************************\n"; + + return iret; +} + + +int testNdimFit() { + + + std::cout << "\n\n************************************************************\n"; + std::cout << "\t UNBINNED TREE (GAUSSIAN MULTI-DIM) FIT\n"; + std::cout << "************************************************************\n"; + + TTree t1("t2","a large Tree with gaussian variables"); + double x[N]; + Int_t ev; + t1.Branch("x",x,branchType.c_str()); + t1.Branch("ev",&ev,"ev/I"); + + // generate the true parameters +// for (int j = 0; j < NGaus; ++j) { +// double a = j+1; +// double mu = double(j)/NGaus; +// double s = 1.0 + double(j)/NGaus; +// truePar[3*j] = a; +// truePar[3*j+1] = mu; +// truePar[3*j+2] = s; +// tot += a; +// } + truePar[0] = 0.2; // % second gaussian + truePar[1] = 0.05; // % third gaussian ampl + truePar[2] = 0.; // mean first gaussian + truePar[3] = 0.5; // s1 + truePar[4] = 0.; // mean secon gauss + truePar[5] = 1; + truePar[6] = -3; // mean third gaus + truePar[7] = 10; + + + + //fill the tree + TRandom3 r; + double norm = (1+truePar[0] + truePar[1] ); + double a = 1./norm; + double b = truePar[0]/ norm; + double c = truePar[1]/ norm; + assert(a+b+c == 1.); + std::cout << " True amplitude gaussians " << a << " " << b << " " << c << std::endl; + for (Int_t i=0;i f2(&gausSum,1,NPar,iniPar); + + int iret = 0; + iret |= FitUsingNewFitter(&t1,f2); + + return iret; +} + +int main() { + gSystem->Load("/usr/lib/x86_64-linux-gnu/libglog.so"); + gSystem->Load("/usr/lib/x86_64-linux-gnu/libgflags.so"); + return testNdimFit(); +} diff --git a/math/cmaes/test/testUserFunc.cxx b/math/cmaes/test/testUserFunc.cxx new file mode 100644 index 0000000000000..d175326201394 --- /dev/null +++ b/math/cmaes/test/testUserFunc.cxx @@ -0,0 +1,88 @@ +// @(#)root/minuit2:$Id$ +// Author: L. Moneta 10/2005 + +/********************************************************************** + * * + * Copyright (c) 2005 ROOT Foundation, CERN/PH-SFT * + * * + **********************************************************************/ + + +#include "TApplication.h" +#include "TH1.h" +#include "TF1.h" +#include "TRandom3.h" +#include "Math/MinimizerOptions.h" +#include "TMath.h" +#include "TSystem.h" + +#include + +double myfunc( double * x, double * p) { + + return p[0]*TMath::Gaus(x[0],p[1],p[2]); +} + +void testUserFunc(std::string type="cmaes", int n = 1000) { + + + + gRandom = new TRandom3(); + + + ROOT::Math::MinimizerOptions::SetDefaultMinimizer(type.c_str() ); + + + + TH1D * h1 = new TH1D("h1","fit histo 1",100, -5, 5. ); + +// gStyle->SetOptStat(1111111); +// gStyle->SetOptFit(1111111); + + + + + for (int i = 0; i < n; ++i) { + h1->Fill( gRandom->Gaus(0,1) ); + } + + TF1 * f = new TF1("f",myfunc,-10,10,3); + double p[3] = { 100.0, 0.0, 1.0 } ; + f->SetParameters(p); + + h1->Fit(f); + // try fix a parameter + //TVirtualFitter * fitter = TVirtualFitter::GetFitter(); + //std::cout << typeid(*fitter).name() << std::endl; + //fitter->FixParameter(2); + f->FixParameter(2,1.0); + + h1->Fit(f,"V"); + + h1->Draw(); + + + +} + +#ifndef __CINT__ +int main(int argc, char **argv) +{ + gSystem->Load("/usr/lib/x86_64-linux-gnu/libglog.so"); + gSystem->Load("/usr/lib/x86_64-linux-gnu/libgflags.so"); + if (argc > 1) { + TApplication theApp("App", &argc, argv); + testUserFunc( ); + theApp.Run(); + } + else + testUserFunc( ); + return 0; +} +#endif + +//#ifndef __CINT__ +//int main() { +// testUserFunc( ); +//} +//#endif diff --git a/math/mathcore/src/Factory.cxx b/math/mathcore/src/Factory.cxx index 03f02a29ac3e4..98cef48ce2fca 100644 --- a/math/mathcore/src/Factory.cxx +++ b/math/mathcore/src/Factory.cxx @@ -26,6 +26,7 @@ // #define MATH_NO_PLUGIN_MANAGER // #define HAS_MINUIT // #define HAS_MINUIT2 +// #define HAS_CMAES #ifndef MATH_NO_PLUGIN_MANAGER // use ROOT Plug-in manager @@ -41,6 +42,9 @@ #ifdef HAS_MINUIT #include "TMinuitMinimizer.h" #endif +#ifdef HAS_CMAES +#include "TCMAESMinimizer.h" +#endif #ifdef R__HAS_MATHMORE #include "Math/GSLMinimizer.h" #include "Math/GSLNLSMinimizer.h" @@ -52,7 +56,6 @@ #include #include -//#define DEBUG #ifdef DEBUG #include #endif @@ -80,9 +83,14 @@ ROOT::Math::Minimizer * ROOT::Math::Factory::CreateMinimizer(const std::string & s1 = "Minuit"; minim = s1.c_str(); } - + if (minimizerType.find("cmaes")!=std::string::npos + ||minimizerType.find("ipop")!=std::string::npos) + { + s1 = minimizerType; + minim = s1.c_str(); + } if (minimizerType.empty() ) minim = ROOT::Math::MinimizerOptions::DefaultMinimizerType().c_str(); - + R__LOCKGUARD2(gROOTMutex); // create Minimizer using the PM @@ -104,9 +112,9 @@ ROOT::Math::Minimizer * ROOT::Math::Factory::CreateMinimizer(const std::string & else std::cout << "Error creating Minimizer " << minimizerType << " " << algoType << std::endl; #endif - - return min; + return min; } + std::cout << "returning 0\n"; return 0; } @@ -140,6 +148,12 @@ ROOT::Math::Minimizer * ROOT::Math::Factory::CreateMinimizer(const std::string & min = new TMinuitMinimizer(algoType.c_str()); #endif +#ifdef HAS_CMAES + if (minimizerType.find("cmaes") != std::string::npos + || minimizerType.find("ipop") != std::string::npos) + min = new ROOT::cmaes::TCMAESMinimizer(algoType.c_str()); +#endif + #ifdef R__HAS_MATHMORE // use GSL minimizer if (minimizerType == "GSL") diff --git a/math/mathcore/src/FitConfig.cxx b/math/mathcore/src/FitConfig.cxx index 7ef55e02b915a..c6c2ea24f6e77 100644 --- a/math/mathcore/src/FitConfig.cxx +++ b/math/mathcore/src/FitConfig.cxx @@ -158,8 +158,8 @@ void FitConfig::SetParamsSettings(unsigned int npar, const double *params, const if (val == 0) step = 0.3; } else - step = vstep[i]; - + step = vstep[i]; + if (createNew) fSettings.push_back( ParameterSettings("Par_" + ROOT::Math::Util::ToString(i), val, step ) ); else { diff --git a/math/mathcore/src/MinimizerOptions.cxx b/math/mathcore/src/MinimizerOptions.cxx index 1c8faffa09a57..e8512fad06477 100644 --- a/math/mathcore/src/MinimizerOptions.cxx +++ b/math/mathcore/src/MinimizerOptions.cxx @@ -162,11 +162,18 @@ void MinimizerOptions::ResetToDefaultOptions() { fMinimType = "Minuit2"; fAlgoType = "Fumili"; } + else if (fMinimType.find("cmaes")!=std::string::npos + || fMinimType.find("ipop")!=std::string::npos) + { + fAlgoType = fMinimType; + fMinimType = "cmaes"; + } else if (fMinimType == "GSLMultiMin" && fAlgoType == "Migrad") fAlgoType = "BFGS2"; delete fExtraOptions; fExtraOptions = 0; + // check if extra options exists (copy them if needed) if (Minim::gDefaultExtraOptions) fExtraOptions = Minim::gDefaultExtraOptions->Clone(); diff --git a/math/minuit2/src/Minuit2Minimizer.cxx b/math/minuit2/src/Minuit2Minimizer.cxx index cf4193b9a57f4..cc225d0845153 100644 --- a/math/minuit2/src/Minuit2Minimizer.cxx +++ b/math/minuit2/src/Minuit2Minimizer.cxx @@ -182,7 +182,7 @@ bool Minuit2Minimizer::SetVariable(unsigned int ivar, const std::string & name, // if index is wrong (i.e. variable already exists but with a different index return false) but // value is set for corresponding variable name -// std::cout << " add parameter " << name << " " << val << " step " << step << std::endl; + //std::cout << " add parameter " << name << " " << val << " step " << step << std::endl; if (step <= 0) { std::string txtmsg = "Parameter " + name + " has zero or invalid step size - consider it as constant "; diff --git a/tutorials/fit/Ifit.C b/tutorials/fit/Ifit.C index 9eae64fa765cf..c93b3bd95f18f 100644 --- a/tutorials/fit/Ifit.C +++ b/tutorials/fit/Ifit.C @@ -36,8 +36,8 @@ Double_t func(float x,float y,Double_t *par) //______________________________________________________________________________ void fcn(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag) { - const Int_t nbins = 5; - Int_t i; + const Int_t nbins = 5; + Int_t i; //calculate chisquare Double_t chisq = 0; diff --git a/tutorials/fit/cmaesFitBench.C b/tutorials/fit/cmaesFitBench.C new file mode 100644 index 0000000000000..fc070af89b756 --- /dev/null +++ b/tutorials/fit/cmaesFitBench.C @@ -0,0 +1,131 @@ +//+ Fitting 1-D histograms with cmaes +// Author: L. Moneta 10/2005 +// Author: E. Benazera 05/2014 + +/********************************************************************** + * * + * Copyright (c) 2014 INRIA * + * Copyright (c) 2005 ROOT Foundation, CERN/PH-SFT * + * * + **********************************************************************/ + +#include "TH1.h" +#include "TF1.h" +#include "TCanvas.h" +#include "TStopwatch.h" +#include "TSystem.h" +#include "TRandom3.h" +#include "TVirtualFitter.h" +#include "TPaveLabel.h" +#include "TStyle.h" +#include "TMath.h" +#include "TROOT.h" +#include "TFrame.h" +#include "TSystem.h" + +//#include "Fit/FitConfig.h" + + +TF1 *fitFcn; +TH1 *histo; + +// Quadratic background function +Double_t background(Double_t *x, Double_t *par) { + return par[0] + par[1]*x[0] + par[2]*x[0]*x[0]; +} + +// Lorenzian Peak function +Double_t lorentzianPeak(Double_t *x, Double_t *par) { + return (0.5*par[0]*par[1]/TMath::Pi()) / + TMath::Max( 1.e-10,(x[0]-par[2])*(x[0]-par[2]) + .25*par[1]*par[1]); +} + +// Sum of background and peak function +Double_t fitFunction(Double_t *x, Double_t *par) { + return background(x,par) + lorentzianPeak(x,&par[3]); +} + +void DoFit(const char* fitter, TVirtualPad *pad, Int_t npass, Double_t sigma, Int_t lambda) { + printf("\n*********************************************************************************\n"); + printf("\t %s \n",fitter); + printf("*********************************************************************************\n"); + + gRandom = new TRandom3(); + TStopwatch timer; + // timer.Start(); + TVirtualFitter::SetDefaultFitter(fitter); + //ROOT::Fit::FitConfig::SetDefaultMinimizer(fitter); + ROOT::Math::IOptions &opts = ROOT::Math::MinimizerOptions::Default(fitter); + opts.SetIntValue("lambda",lambda); + opts.SetIntValue("lscaling",1); + opts.SetRealValue("sigma",sigma); + + pad->SetGrid(); + pad->SetLogy(); + fitFcn->SetParameters(1,1,1,6,.03,1); + fitFcn->Update(); + std::string title = std::string(fitter) + " fit bench"; + histo = new TH1D(fitter,title.c_str(),200,0,3); + + timer.Start(); + for (Int_t pass=0;passSetParameters(1,1,1,6,.03,1); + for (Int_t i=0;i<5000;i++) { + histo->Fill(fitFcn->GetRandom()); + } + //histo->Print("all"); + //histo->Fit(fitFcn,"Q0"); // from TH1.cxx: Q: quiet, 0: do not plot + } + + histo->Fit(fitFcn,"V"); // E: use Minos, V: verbose. + timer.Stop(); + + (histo->GetFunction("fitFcn"))->SetLineColor(kRed+3); + gPad->SetFillColor(kYellow-10); + + + Double_t cputime = timer.CpuTime(); + printf("%s, npass=%d : RT=%7.3f s, Cpu=%7.3f s\n",fitter,npass,timer.RealTime(),cputime); + TPaveLabel *p = new TPaveLabel(0.45,0.7,0.88,0.8,Form("%s CPU= %g s",fitter,cputime),"brNDC"); + p->Draw(); + p->SetTextColor(kRed+3); + p->SetFillColor(kYellow-8); + pad->Update(); + + //delete p; + //delete histo; + delete gRandom; +} + +void cmaesFitBench(Int_t npass=20, Double_t sigma=0.1, Int_t lambda=-1) { + TH1::AddDirectory(kFALSE); + TCanvas *c1 = new TCanvas("FitBench","Fitting Demo",10,10,900,900); + c1->Divide(2,2); + c1->SetFillColor(kYellow-9); + // create a TF1 with the range from 0 to 3 and 6 parameters + fitFcn = new TF1("fitFcn",fitFunction,0,3,6); + fitFcn->SetNpx(200); + gStyle->SetOptFit(); + gStyle->SetStatY(0.6); + + //with Minuit2 + c1->cd(1); + DoFit("Minuit2",gPad,npass,sigma,lambda); + + //with Fumili + c1->cd(2); + DoFit("Fumili",gPad,npass,sigma,lambda); + + //with cmaes + c1->cd(3); + DoFit("cmaes",gPad,npass,sigma,lambda); + + //with acmaes + c1->cd(4); + DoFit("acmaes",gPad,npass,sigma,lambda); + + //c1->SaveAs("FitBench.root"); + //delete c1; + delete fitFcn; +} diff --git a/tutorials/fit/cmaesFitBench2D.C b/tutorials/fit/cmaesFitBench2D.C new file mode 100644 index 0000000000000..52b7f2bd4c442 --- /dev/null +++ b/tutorials/fit/cmaesFitBench2D.C @@ -0,0 +1,97 @@ +// Author: L. Moneta 10/2005 +// Author: E. Benazera 05/2014 + +/********************************************************************** + * * + * Copyright (c) 2005 ROOT Foundation, CERN/PH-SFT * + * * + **********************************************************************/ + +#include "TH1.h" +#include "TF1.h" +#include "TH2D.h" +#include "TF2.h" +#include "TCanvas.h" +#include "TStopwatch.h" +#include "TSystem.h" +#include "TRandom3.h" +#include "TVirtualFitter.h" +#include "TPaveLabel.h" +#include "TStyle.h" + + +TF2 *fitFcn; +TH2D *histo; + +// Quadratic background function +Double_t gaus2D(Double_t *x, Double_t *par) { + double t1 = x[0] - par[1]; + double t2 = x[1] - par[2]; + return par[0]* exp( - 0.5 * ( t1*t1/( par[3]*par[3]) + t2*t2 /( par[4]*par[4] ) ) ) ; +} + +// Sum of background and peak function +Double_t fitFunction(Double_t *x, Double_t *par) { + return gaus2D(x,par); +} + +void fillHisto(int n =10000) { + + gRandom = new TRandom3(); + for (int i = 0; i < n; ++i) { + double x = gRandom->Gaus(2,3); + double y = gRandom->Gaus(-1,4); + histo->Fill(x,y,1.); + } +} + +void DoFit(const char* fitter, TVirtualPad *pad, Int_t npass) { + TStopwatch timer; + TVirtualFitter::SetDefaultFitter(fitter); + pad->SetGrid(); + fitFcn->SetParameters(100,0,0,2,7); + fitFcn->Update(); + + timer.Start(); + histo->Fit("fitFcn","0"); + timer.Stop(); + + histo->Draw(); + Double_t cputime = timer.CpuTime(); + printf("%s, npass=%d : RT=%7.3f s, Cpu=%7.3f s\n",fitter,npass,timer.RealTime(),cputime); + TPaveLabel *p = new TPaveLabel(0.5,0.7,0.85,0.8,Form("%s CPU= %g s",fitter,cputime),"brNDC"); + p->Draw(); + pad->Update(); +} + +void cmaesFitBench2D(int n = 100000) { + TH1::AddDirectory(kFALSE); + TCanvas *c1 = new TCanvas("c1","Fitting Demo",10,10,900,900); + c1->Divide(2,2); + // create a TF1 with the range from 0 to 3 and 6 parameters + fitFcn = new TF2("fitFcn",fitFunction,-10,10,-10,10,5); + //fitFcn->SetNpx(200); + gStyle->SetOptFit(); + gStyle->SetStatY(0.6); + + histo = new TH2D("h2","2D Gauss",100,-10,10,100,-10,10); + fillHisto(n); + + int npass=0; + + //with Minuit2 + c1->cd(3); + DoFit("Minuit2",gPad,npass); + + //with Fumili + c1->cd(4); + DoFit("Fumili",gPad,npass); + + //with cmaes + c1->cd(1); + DoFit("cmaes",gPad,npass); + + //with acmaes + c1->cd(2); + DoFit("acmaes",gPad,npass); +} diff --git a/tutorials/fit/cmaesFullBench.C b/tutorials/fit/cmaesFullBench.C new file mode 100644 index 0000000000000..fc04c6913cdf1 --- /dev/null +++ b/tutorials/fit/cmaesFullBench.C @@ -0,0 +1,1037 @@ +// Author: E. Benazera 6/2014 + +#include +#include +#include +#include + +#include "TH1.h" +#include "TF1.h" +#include "TH2D.h" +#include "TF2.h" +#include "TStopwatch.h" +#include "TRandom3.h" +#include "TVirtualFitter.h" +#include "TPaveLabel.h" +#include "TStyle.h" +#include "TSystem.h" +#include "TFile.h" +#include "TList.h" +#include "TMath.h" +#include "TROOT.h" + +class expstats +{ +public: + expstats(const std::string &name, + const int &dim, + const int &lambda=-1): + _name(name),_dim(dim),_lambda(lambda) {} + ~expstats() {} + + void add_exp(const bool &succ, + const double &fmin, + const std::vector &x, + const double &cputime, + const double &budget) + { + if (succ) + ++_succs; + else ++_fails; + _vsuccs.push_back(succ); + _fmin.push_back(fmin); + _x.push_back(x); + _cputime.push_back(cputime); + _cpu_avg = std::accumulate(_cputime.begin(),_cputime.end(),0.0) / static_cast(_cputime.size()); + _cpu_std = stddev(_cputime,_cpu_avg); + _budget.push_back(budget); + _budget_avg = std::accumulate(_budget.begin(),_budget.end(),0.0) / static_cast(_budget.size()); + _budget_std = stddev(_budget,_budget_avg); + } + + void merge(const expstats &stats) + { + for (size_t i=0;i _vsuccs; + std::vector _fmin; + std::vector> _x; + std::vector _cputime; + double _cpu_avg = 0.0; + double _cpu_std = 0.0; + std::vector _budget; + double _budget_avg = 0.0; + double _budget_std = 0.0; + + int _lambda = -1; + + // diff + int _found = 0; /* number of times the correct minima was found. */ + std::vector _fdiff; + std::vector _cputime_diff; + std::vector _cputime_ratio; + std::vector _budget_diff; + std::vector _budget_ratio; + double _cputime_diff_avg = 0.0; + double _cputime_ratio_avg = 1.0; + double _budget_diff_avg = 0.0; + double _budget_ratio_avg = 1.0; + int _isuccs = 0; /* number of times the best f-min among the two algorithms, was found. */ + int _ifails = 0; + int _iequals = 0; /* number of times the same fmin was found. */ +}; + +std::ostream& operator<<(std::ostream &out, const expstats &stats) +{ + return stats.print(out); +} + +typedef std::function ExpFunc; + +class experiment +{ +public: + experiment(const std::string &name) + :_name(name) + { + ROOT::Math::IOptions &opts = ROOT::Math::MinimizerOptions::Default("cmaes"); + opts.SetRealValue("sigma",0.1); + } + + void set_lambda(const int &lambda) + { + ROOT::Math::IOptions &opts = ROOT::Math::MinimizerOptions::Default("cmaes"); + opts.SetIntValue("lambda",lambda); + _lambda = lambda; + } + + void set_lscaling(const int &lscaling) + { + ROOT::Math::IOptions &opts = ROOT::Math::MinimizerOptions::Default("cmaes"); + opts.SetIntValue("lscaling",lscaling); + } + + void set_restarts(const int &nrestarts) + { + ROOT::Math::IOptions &opts = ROOT::Math::MinimizerOptions::Default("cmaes"); + opts.SetIntValue("restarts",nrestarts); + } + + virtual ~experiment() {} + + virtual void Setup() {} + + virtual void Cleanup() {} + + ExpFunc _ef; + std::string _name; + int _lambda = -1; +}; + +/*- gauss_fit -*/ +class gauss_fit_e : public experiment +{ +public: + gauss_fit_e() + :experiment("gauss_fit") + { + _ef = [this](const std::string &fitter) + { + std::string ename = "gauss_fit"; + + TVirtualFitter::SetDefaultFitter(fitter.c_str() ); + TH1D * h1 = new TH1D("h1f1","Chi2 Fit",100, -5, 5. ); + TH1D * h1bis = new TH1D("h1f2","Likelihood Fit",100, -5, 5. ); + for (int i = 0; i < _n; ++i) { + h1->Fill( _x.at(i) ); + h1bis->Fill( _x.at(i) ); + } + delete ((TF1 *)(gROOT->GetFunction("gaus"))); + TStopwatch timer; + timer.Start(); + TFitResultPtr r1 = h1->Fit("gaus","VS0"); + timer.Stop(); + Double_t cputime1 = timer.CpuTime(); + delete ((TF1 *)(gROOT->GetFunction("gaus"))); + TStopwatch timer2; + timer2.Start(); + TFitResultPtr r2 = h1bis->Fit("gaus","VLS0"); + timer2.Stop(); + Double_t cputime2 = timer2.CpuTime(); + + delete h1; + delete h1bis; + + expstats stats(ename,r1->NTotalParameters(),_lambda); + stats.add_exp(r1->Status()==0,r1->MinFcnValue(),r1->Parameters(),cputime1,r1->NCalls()); + stats.add_exp(r2->Status()==0,r2->MinFcnValue(),r2->Parameters(),cputime2,r2->NCalls()); + std::cout << "gaus_fit stats: " << stats << std::endl; + std::cout << "fmin1=" << r1->MinFcnValue() << std::endl;//" / fmin2=" << r2->MinFcnValue() << std::endl; + return stats; + }; + } + + ~gauss_fit_e() {} + + virtual void Setup() + { + std::cout << "setting up gauss_fit\n"; + for (int i=0;i<_n;i++) + _x.push_back(_grandom.Gaus(0,1)); + } + + int _n = 1000; + TRandom3 _grandom; + std::vector _x; +}; +gauss_fit_e ggauss_fit; + +/*- lorentz_fit -*/ +class lorentz_fit_e : public experiment +{ +public: + lorentz_fit_e() + :experiment("lorentz_fit") + { + _ef = [this](const std::string &fitter) + { + std::string title = "fit bench"; + std::string ename = "lorentz_fit"; + expstats stats(ename,6,_lambda); + TVirtualFitter::SetDefaultFitter(fitter.c_str()); + + TH1D *mhisto =new TH1D("fit",title.c_str(),200,0,3); + for (Int_t pass=0;pass<_npass;pass++) { + TStopwatch timer; + TF1 *fitFcn = new TF1("fitFcn",lorentz_fit_e::fitFunction,0,3,6); + fitFcn->SetParameters(1,1,1,6,.03,1); + TH1D *histo = new TH1D("fit2",title.c_str(),200,0,3); + //histo->Print("all"); + for (Int_t j=0;j<5000;j++) + { + histo->Fill(_xs.at(pass).at(j)); + mhisto->Fill(_xs.at(pass).at(j)); + } + /*timer.Start(); + TFitResultPtr r = histo->Fit(fitFcn,"VS0"); // from TH1.cxx: Q: quiet, 0: do not plot + timer.Stop(); + Double_t cputime = timer.CpuTime(); + stats.add_exp(r->Status()==0,r->MinFcnValue(),r->Parameters(),cputime,r->NCalls());*/ + delete histo; + delete fitFcn; + } + TStopwatch timer; + timer.Start(); + TF1 *fitFcn = new TF1("fitFcn",lorentz_fit_e::fitFunction,0,3,6); + fitFcn->SetParameters(1,1,1,6,.03,1); + TFitResultPtr r = mhisto->Fit(fitFcn,"VS0"); + timer.Stop(); + double cputime = timer.CpuTime(); + stats.add_exp(r->Status()==0,r->MinFcnValue(),r->Parameters(),cputime,r->NCalls()); + printf("%s, npass=%d : RT=%7.3f s, Cpu=%7.3f s\n",fitter.c_str(),_npass,timer.RealTime(),cputime); + //std::cout << "lorentz_fit stats: " << stats << std::endl; + delete mhisto; + delete fitFcn; + return stats; + }; + } + + virtual ~lorentz_fit_e() + { + _xs.clear(); + } + + // Quadratic background function + static Double_t background(Double_t *x, Double_t *par) { + return par[0] + par[1]*x[0] + par[2]*x[0]*x[0]; + } + + // Lorenzian Peak function + static Double_t lorentzianPeak(Double_t *x, Double_t *par) { + return (0.5*par[0]*par[1]/TMath::Pi()) / + TMath::Max( 1.e-10,(x[0]-par[2])*(x[0]-par[2]) + .25*par[1]*par[1]); + } + + // Sum of background and peak function + static Double_t fitFunction(Double_t *x, Double_t *par) { + return lorentz_fit_e::background(x,par) + lorentz_fit_e::lorentzianPeak(x,&par[3]); + } + + virtual void Setup() + { + TF1 *fitFcn = new TF1("fitFcn",lorentz_fit_e::fitFunction,0,3,6); + fitFcn->SetNpx(200); + fitFcn->SetParameters(1,1,1,6,.03,1); + fitFcn->Update(); + std::vector x; + for (int i=0;i<_npass;i++) + { + for (Int_t j=0;j<5000;j++) { + x.push_back(fitFcn->GetRandom()); + } + _xs.push_back(x); + } + delete fitFcn; + } + + virtual void Cleanup() + { + _xs.clear(); + } + + int _npass = 20; + //TF1 *_fitFcn; + std::vector > _xs; +}; +lorentz_fit_e glorentz_fit; + +/*- gauss2D_fit -*/ +class gauss2D_fit_e : public experiment +{ +public: + gauss2D_fit_e() + :experiment("gauss2D_fit") + { + _ef = [this](const std::string &fitter) + { + std::string ename = "gauss2D_fit"; + int npass = 0; + int n = 100000; + TStopwatch timer; + TVirtualFitter::SetDefaultFitter(fitter.c_str()); + TF2 *fitFcn = new TF2("fitFcn",gauss2D_fit_e::fitFunction2,-10,10,-10,10,5); + fitFcn->SetParameters(100,0,0,2,7); + fitFcn->Update(); + timer.Start(); + TFitResultPtr r = _histo->Fit("fitFcn","VS0"); + timer.Stop(); + Double_t cputime = timer.CpuTime(); + printf("%s : RT=%7.3f s, Cpu=%7.3f s\n",fitter.c_str(),timer.RealTime(),cputime); + delete fitFcn; + expstats stats(ename,r->NTotalParameters(),_lambda); + stats.add_exp(r->Status()==0,r->MinFcnValue(),r->Parameters(),cputime,r->NCalls()); + std::cout << "gauss2D_fit stats: " << stats << std::endl; + return stats; + }; + } + + ~gauss2D_fit_e() + { + if (_histo) + delete _histo; + } + + // Quadratic background function + static Double_t gaus2D(Double_t *x, Double_t *par) { + double t1 = x[0] - par[1]; + double t2 = x[1] - par[2]; + return par[0]* exp( - 0.5 * ( t1*t1/( par[3]*par[3]) + t2*t2 /( par[4]*par[4] ) ) ) ; + } + + // Sum of background and peak function + static Double_t fitFunction2(Double_t *x, Double_t *par) { + return gaus2D(x,par); + } + + static void fillHisto(int n, + TH2D *histo) + { + gRandom = new TRandom3(); + for (int i = 0; i < n; ++i) { + double x = gRandom->Gaus(2,3); + double y = gRandom->Gaus(-1,4); + histo->Fill(x,y,1.); + } + } + + virtual void Setup() + { + _histo = new TH2D("h2","2D Gauss",100,-10,10,100,-10,10); + fillHisto(_n,_histo); + } + + virtual void Cleanup() + { + if (_histo) + delete _histo; + _histo = nullptr; + } + + int _n = 100000; + TH2D *_histo = nullptr; +}; +gauss2D_fit_e ggauss2D_fit; + +/*- fit2a -*/ +class fit2a_e : public experiment +{ +public: + fit2a_e() + :experiment("fit2a") + { + _ef = [this](const std::string &fitter) + { + const Int_t npar = 15; + TVirtualFitter::SetDefaultFitter(fitter.c_str()); + TF2 *f2 = new TF2("f2",fun2,-10,10,-10,10, npar); + TH2F *h2 = new TH2F("h2","From f2",40,-10,10,40,-10,10); + for (int i=0;i<_nentries;i++) + h2->Fill(_x.at(i),_y.at(i)); + + Double_t f2params[npar] = {100,-3,3,-3,3,160,0,0.8,0,0.9,40,4,0.7,4,0.7}; + Float_t ratio = 4*_nentries/100000; + f2params[ 0] *= ratio; + f2params[ 5] *= ratio; + f2params[10] *= ratio; + f2->SetParameters(f2params); + + //Fit h2 with original function f2 + TStopwatch timer; + timer.Start(); + TFitResultPtr r = h2->Fit("f2","SN0"); + timer.Stop(); + Double_t cputime = timer.CpuTime(); + expstats stats("fit2a",r->NTotalParameters(),_lambda); + stats.add_exp(r->Status()==0,r->MinFcnValue(),r->Parameters(),cputime,r->NCalls()); + delete h2; + delete f2; + return stats; + }; + } + + ~fit2a_e() + { + Cleanup(); + } + + static Double_t g2(Double_t *x, Double_t *par) { + Double_t r1 = Double_t((x[0]-par[1])/par[2]); + Double_t r2 = Double_t((x[1]-par[3])/par[4]); + return par[0]*TMath::Exp(-0.5*(r1*r1+r2*r2)); + } + + static Double_t fun2(Double_t *x, Double_t *par) { + Double_t *p1 = &par[0]; + Double_t *p2 = &par[5]; + Double_t *p3 = &par[10]; + Double_t result = g2(x,p1) + g2(x,p2) + g2(x,p3); + return result; + } + + virtual void Setup() + { + const Int_t npar = 15; + Double_t f2params[npar] = {100,-3,3,-3,3,160,0,0.8,0,0.9,40,4,0.7,4,0.7}; + TF2 *f2 = new TF2("f2",fun2,-10,10,-10,10, npar); + f2->SetParameters(f2params); + _x = std::vector(_nentries); + _y = std::vector(_nentries); + for (int i=0;i<_nentries;i++) + f2->GetRandom2(_x.at(i),_y.at(i)); + delete f2; + } + + virtual void Cleanup() + { + } + + int _nentries = 100000; + std::vector _x,_y; +}; +fit2a_e gfit2a; + +/*- fit2dhist -*/ +class fit2dhist_e : public experiment +{ +public: + fit2dhist_e() + :experiment("fit2dhist") + { + _ef = [this](const std::string &fitter) + { + int nbx1 = 50; + int nby1 = 50; + int nbx2 = 50; + int nby2 = 50; + double xlow1 = 0.; + double ylow1 = 0.; + double xup1 = 10.; + double yup1 = 10.; + double xlow2 = 5.; + double ylow2 = 5.; + double xup2 = 20.; + double yup2 = 20.; + TH2D *h1 = new TH2D("h1","core",nbx1,xlow1,xup1,nby1,ylow1,yup1); + TH2D *h2 = new TH2D("h2","tails",nbx2,xlow2,xup2,nby2,ylow2,yup2); + double iniParams[10] = { 100, 6., 2., 7., 3, 100, 12., 3., 11., 2. }; + TF2 *func1 = new TF2("func",fit2dhist_e::my2Dfunc,xlow2,xup2,ylow2,yup2, 10); + func1->SetParameters(iniParams); + TF2 *func2 = new TF2("func",fit2dhist_e::my2Dfunc,xlow2,xup2,ylow2,yup2, 10); + func2->SetParameters(iniParams); + + // fill up histograms. + int n1 = 1000000; + int n2 = 1000000; + for (int i=0;iFill(_xr1.at(i),_yr1.at(i)); + h2->Fill(_xr2.at(i),_yr2.at(i)); // since n1 == n2. + } + + // scale histograms to same heights (for fitting) + double dx1 = (xup1-xlow1)/double(nbx1); + double dy1 = (yup1-ylow1)/double(nby1); + double dx2 = (xup2-xlow2)/double(nbx2); + double dy2 = (yup2-ylow2)/double(nby2); + // scale histo 2 to scale of 1 + h2->Sumw2(); + h2->Scale( ( double(n1) * dx1 * dy1 ) / ( double(n2) * dx2 * dy2 ) ); + + TStopwatch timer; + timer.Start(); + TVirtualFitter::SetDefaultFitter(fitter.c_str()); + TFitResultPtr r1 = h1->Fit(func1,"VS0"); + timer.Stop(); + Double_t cputime1 = timer.CpuTime(); + TStopwatch timer2; + timer2.Start(); + TFitResultPtr r2 = h2->Fit(func2,"VS0"); + timer2.Stop(); + Double_t cputime2 = timer2.CpuTime(); + expstats stats("fit2dhist",r1->NTotalParameters(),_lambda); + stats.add_exp(r1->Status()==0,r1->MinFcnValue(),r1->Parameters(),cputime1,r1->NCalls()); + stats.add_exp(r2->Status()==0,r2->MinFcnValue(),r2->Parameters(),cputime2,r2->NCalls()); + delete h1; + delete h2; + delete func1; + delete func2; + return stats; + }; + } + + ~fit2dhist_e() + { + Cleanup(); + } + + static double gauss2D(double *x, double *par) { + double z1 = double((x[0]-par[1])/par[2]); + double z2 = double((x[1]-par[3])/par[4]); + return par[0]*exp(-0.5*(z1*z1+z2*z2)); + } + + static double my2Dfunc(double *x, double *par) { + return gauss2D(x,&par[0]) + gauss2D(x,&par[5]); + } + + static void FillHisto2(std::vector &xr, std::vector &yr, int n, double * p) + { + const double mx1 = p[1]; + const double my1 = p[3]; + const double sx1 = p[2]; + const double sy1 = p[4]; + const double mx2 = p[6]; + const double my2 = p[8]; + const double sx2 = p[7]; + const double sy2 = p[9]; + //const double w1 = p[0]*sx1*sy1/(p[5]*sx2*sy2); + const double w1 = 0.5; + + double x, y; + for (int i = 0; i < n; ++i) { + // generate randoms with larger gaussians + fit2dhist_e::_rndm.Rannor(x,y); + + double r = fit2dhist_e::_rndm.Rndm(1); + if (r < w1) { + x = x*sx1 + mx1; + y = y*sy1 + my1; + } + else { + x = x*sx2 + mx2; + y = y*sy2 + my2; + } + xr.push_back(x); + yr.push_back(y); + } + } + + void Setup() + { + double xlow1 = 0.; + double ylow1 = 0.; + double xup1 = 10.; + double yup1 = 10.; + double xlow2 = 5.; + double ylow2 = 5.; + double xup2 = 20.; + double yup2 = 20.; + double iniParams[10] = { 100, 6., 2., 7., 3, 100, 12., 3., 11., 2. }; + int n1 = 1000000; + int n2 = 1000000; + FillHisto2(_xr1,_yr1,n1,iniParams); + FillHisto2(_xr2,_yr2,n2,iniParams); + } + + void Cleanup() + { + } + + static TRandom3 _rndm; + std::vector _xr1,_yr1,_xr2,_yr2; +}; +TRandom3 fit2dhist_e::_rndm = TRandom3(); +fit2dhist_e gfit2dhist; + +/*- combined_fit -*/ +class combined_fit_e : public experiment +{ +public: + struct GlobalChi2 { + GlobalChi2( ROOT::Math::IMultiGenFunction & f1, + ROOT::Math::IMultiGenFunction & f2) : + fChi2_1(&f1), fChi2_2(&f2) {} + + // parameter vector is first background (in common 1 and 2) + // and then is signal (only in 2) + double operator() (const double *par) const { + int iparB[2] = {0,2}; + int iparSB[5] = {1,2,3,4,5}; + double p1[2]; + for (int i = 0; i < 2; ++i) p1[i] = par[iparB[i] ]; + + double p2[5]; + for (int i = 0; i < 5; ++i) p2[i] = par[iparSB[i] ]; + + return (*fChi2_1)(p1) + (*fChi2_2)(p2); + } + + const ROOT::Math::IMultiGenFunction * fChi2_1; + const ROOT::Math::IMultiGenFunction * fChi2_2; + }; + + combined_fit_e() + :experiment("combined_fit") + { + _ef = [this](const std::string &fitter) + { + // perform now global fit + TF1 * fSB = new TF1("fSB","expo + gaus(2)",0,100); + + ROOT::Math::WrappedMultiTF1 wfB(*_fB,1); + ROOT::Math::WrappedMultiTF1 wfSB(*fSB,1); + + ROOT::Fit::DataOptions opt; + ROOT::Fit::DataRange rangeB; + // set the data range + rangeB.SetRange(10,90); + ROOT::Fit::BinData dataB(opt,rangeB); + ROOT::Fit::FillData(dataB, _hB); + + ROOT::Fit::DataRange rangeSB; + rangeSB.SetRange(10,50); + ROOT::Fit::BinData dataSB(opt,rangeSB); + ROOT::Fit::FillData(dataSB, _hSB); + + ROOT::Fit::Chi2Function chi2_B(dataB, wfB); + ROOT::Fit::Chi2Function chi2_SB(dataSB, wfSB); + + GlobalChi2 globalChi2(chi2_B, chi2_SB); + + ROOT::Fit::Fitter rfitter; + + const int Npar = 6; + double par0[Npar] = { 5,5,-0.1,100, 30,10}; + + // create before the parameter settings in order to fix or set range on them + rfitter.Config().SetParamsSettings(6,par0); + // fix 5-th parameter + //rfitter.Config().ParSettings(4).Fix(); // weird random crash, not yet understood: fitter tries to set variable 4 instead of 5, sometimes... + // set limits on the third and 4-th parameter + rfitter.Config().ParSettings(2).SetLimits(-10,-1.E-4); + rfitter.Config().ParSettings(3).SetLimits(0,10000); + rfitter.Config().ParSettings(3).SetStepSize(5); + + rfitter.Config().MinimizerOptions().SetPrintLevel(0); + if (fitter == "Minuit2") + rfitter.Config().SetMinimizer("Minuit2","Migrad"); + else rfitter.Config().SetMinimizer("cmaes",fitter.c_str()); + + // fit FCN function directly + // (specify optionally data size and flag to indicate that is a chi2 fit) + TStopwatch timer; + timer.Start(); + std::cout << "starting\n"; + rfitter.FitFCN(6,globalChi2,0,dataB.Size()+dataSB.Size(),true); + timer.Stop(); + Double_t cputime = timer.CpuTime(); + ROOT::Fit::FitResult r = rfitter.Result(); + //result.Print(std::cout); + + delete fSB; + expstats stats("combined",r.NTotalParameters(),_lambda); + stats.add_exp(r.Status()==0,r.MinFcnValue(),r.Parameters(),cputime,r.NCalls()); + std::cout << "combined stats: " << stats << std::endl; + std::cout << "fmin=" << r.MinFcnValue() << std::endl; + return stats; + }; + } + + ~combined_fit_e() + { + Cleanup(); + } + + virtual void Setup() + { + _hB = new TH1D("hB","histo B",100,0,100); + _hSB = new TH1D("hSB","histo S+B",100, 0,100); + _fB = new TF1("fB","expo",0,100); + _fB->SetParameters(1,-0.05); + _hB->FillRandom("fB"); + _fS = new TF1("fS","gaus",0,100); + _fS->SetParameters(1,30,5); + _hSB->FillRandom("fB",2000); + _hSB->FillRandom("fS",1000); + } + + virtual void Cleanup() + { + if (_hB) + delete _hB; + if (_hSB) + delete _hSB; + if (_fB) + delete _fB; + if (_fS) + delete _fS; + } + + TH1D *_hB = nullptr; + TH1D *_hSB = nullptr; + TF1 *_fB = nullptr; + TF1 *_fS = nullptr; +}; +combined_fit_e gcombined_fit; + +/*- ex3d -*/ +class ex3d_e : public experiment +{ +public: + ex3d_e() + :experiment("ex3d") + { + _ef = [this](const std::string &fitter) + { + double ev = 0.1; + + // create a 3d binned data structure + ROOT::Fit::BinData data(_n,3); + double xx[3]; + for(int i = 0; i < _n; ++i) { + xx[0] = _x[i]; + xx[1] = _y[i]; + xx[2] = _z[i]; + // add the 3d-data coordinate, the predictor value (v[i]) and its errors + data.Add(xx, _v[i], ev); + } + + TF3 * f3 = new TF3("f3","[0] * sin(x) + [1] * cos(y) + [2] * z",0,10,0,10,0,10); + f3->SetParameters(2,2,2); + ROOT::Fit::Fitter rfitter; + /*if (fitter.find("cmaes")!=std::string::npos) + rfitter.Config().SetMinimizer("cmaes","acmaes");*/ + if (fitter != "Minuit2") + rfitter.Config().SetMinimizer("cmaes",fitter.c_str()); + // wrapped the TF1 in a IParamMultiFunction interface for the Fitter class + ROOT::Math::WrappedMultiTF1 wf(*f3,3); + rfitter.SetFunction(wf); + TStopwatch timer; + timer.Start(); + bool ret = rfitter.Fit(data); + timer.Stop(); + Double_t cputime = timer.CpuTime(); + const ROOT::Fit::FitResult & res = rfitter.Result(); + if (ret) { + // print result (should be around 1) + res.Print(std::cout); + // copy all fit result info (values, chi2, etc..) in TF3 + f3->SetFitResult(res); + // test fit p-value (chi2 probability) + double prob = res.Prob(); + if (prob < 1.E-2) + Error("exampleFit3D","Bad data fit - fit p-value is %f",prob); + else + std::cout << "Good fit : p-value = " << prob << std::endl; + } + else Error("exampleFit3D","3D fit failed"); + expstats stats("example3D",res.NTotalParameters(),_lambda); + stats.add_exp(res.Status()==0,res.MinFcnValue(),res.Parameters(),cputime,res.NCalls()); + delete f3; + return stats; + }; + } + + ~ex3d_e() + { + } + + virtual void Setup() + { + double ev = 0.1; + TRandom2 r; + for (int i = 0; i < _n; ++i) { + _x.push_back(r.Uniform(0,10)); + _y.push_back(r.Uniform(0,10)); + _z.push_back(r.Uniform(0,10)); + _v.push_back(sin(_x[i] ) + cos(_y[i]) + _z[i] + r.Gaus(0,ev)); + } + } + + virtual void Cleanup() + { + _x.clear(); + _y.clear(); + _z.clear(); + _v.clear(); + } + + int _n = 1000; + std::vector _x; + std::vector _y; + std::vector _z; + std::vector _v; +}; +ex3d_e gex3d; + +/*- fit2 -*/ +class fit2_e : public experiment +{ +public: + fit2_e() + :experiment("fit2") + { + _ef = [this](const std::string &fitter) + { + TVirtualFitter::SetDefaultFitter(fitter.c_str()); + TF2 *f2 = new TF2("f2",fit2_e::fun22,-10,10,-10,10, _npar); + + Double_t f2params[15] = + {100,-3,3,-3,3,160,0,0.8,0,0.9,40,4,0.7,4,0.7}; + Float_t ratio = 4*_nentries/100000; + f2params[ 0] *= ratio; + f2params[ 5] *= ratio; + f2params[10] *= ratio; + f2->SetParameters(f2params); + + TH2F *h2 = new TH2F("h2","from f2",40,-10,10,40,-10,10); + for (int i=0;i<_nentries;i++) + h2->Fill(_x.at(i),_y.at(i)); + + //Fit h2 with original function f2 + TStopwatch timer; + timer.Start(); + TFitResultPtr r = h2->Fit("f2","VS0"); + timer.Stop(); + Double_t cputime = timer.CpuTime(); + expstats stats("fit2",r->NTotalParameters(),_lambda); + stats.add_exp(r->Status()==0,r->MinFcnValue(),r->Parameters(),cputime,r->NCalls()); + delete h2; + delete f2; + return stats; + }; + } + + ~fit2_e() + { + } + + virtual void Setup() + { + TF2 *f2 = new TF2("f2",fit2_e::fun22,-10,10,-10,10, _npar); + Double_t f2params[15] = + {100,-3,3,-3,3,160,0,0.8,0,0.9,40,4,0.7,4,0.7}; + f2->SetParameters(f2params); + _x = std::vector(_nentries); + _y = std::vector(_nentries); + for (int i=0;i<_nentries;i++) + f2->GetRandom2(_x.at(i),_y.at(i)); + delete f2; + } + + static Double_t g22(Double_t *x, Double_t *par) { + Double_t r1 = Double_t((x[0]-par[1])/par[2]); + Double_t r2 = Double_t((x[1]-par[3])/par[4]); + return par[0]*TMath::Exp(-0.5*(r1*r1+r2*r2)); + } + + static Double_t fun22(Double_t *x, Double_t *par) { + Double_t *p1 = &par[0]; + Double_t *p2 = &par[5]; + Double_t *p3 = &par[10]; + Double_t result = fit2_e::g22(x,p1) + fit2_e::g22(x,p2) + fit2_e::g22(x,p3); + return result; + } + + Int_t _nentries = 100000; + Int_t _npar = 15; + std::vector _x, _y; +}; +fit2_e gfit2; + +void cmaesFullBench(const int &n=100, + const int &lscaling=1) +{ + std::cout << "Proceeding with " << n << " runs on every problems\n"; + if (lscaling > 0) + std::cout << "Linear scaling of parameters in ON\n"; + //std::vector lambdas = {-1, 5, 10, 20, 40, 80, 160, 320, 640, 1280}; + std::vector lambdas = {-1, 50, 200, -2, -3}; + std::vector acmaes_stats; + std::vector minuit2_stats; + std::map mexperiments; + mexperiments.insert(std::pair(ggauss_fit._name,&ggauss_fit)); + mexperiments.insert(std::pair(glorentz_fit._name,&glorentz_fit)); + mexperiments.insert(std::pair(gfit2._name,&gfit2)); + mexperiments.insert(std::pair(ggauss2D_fit._name,&ggauss2D_fit)); + mexperiments.insert(std::pair(gfit2a._name,&gfit2a)); + mexperiments.insert(std::pair(gfit2dhist._name,&gfit2dhist)); + mexperiments.insert(std::pair(gcombined_fit._name,&gcombined_fit)); + mexperiments.insert(std::pair(gex3d._name,&gex3d)); + int nexp = mexperiments.size(); + int cn = 0; + std::map::iterator mit = mexperiments.begin(); + while(mit!=mexperiments.end()) + { + std::cout << "Running " << (*mit).first << std::endl; + for (int i=0;iSetup(); + for (int j=0;j<(int)lambdas.size();j++) + { + std::string fitter_name = "acmaes"; + if (lambdas.at(j) >= -1) + (*mit).second->set_lambda(lambdas.at(j)); + else if (lambdas.at(j) == -2) + { + (*mit).second->set_lambda(-1); + (*mit).second->set_restarts(4); + fitter_name = "aipop"; + } + else if (lambdas.at(j) == -3) + { + (*mit).second->set_lambda(-1); + (*mit).second->set_restarts(10); + fitter_name = "abipop"; + } + (*mit).second->set_lscaling(lscaling); + + if (i == 0) + { + acmaes_stats.push_back((*mit).second->_ef(fitter_name)); + } + else + { + acmaes_stats.at(cn*(lambdas.size())+j).merge((*mit).second->_ef(fitter_name)); + } + } + (*mit).second->set_lambda(-1); // N/A to Minuit2 + if (i == 0) + minuit2_stats.push_back((*mit).second->_ef("Minuit2")); + else minuit2_stats.back().merge((*mit).second->_ef("Minuit2")); + (*mit).second->Cleanup(); + } + ++cn; + ++mit; + } + + std::cout << "nexp=" << nexp << " / stats size=" << acmaes_stats.size() << std::endl; + + for (size_t i=0;i +#include + +bool libloaded = false; + +void testGausFit( std::string type = "cmaes", int n = 1000) { + + gRandom = new TRandom3(); + + TVirtualFitter::SetDefaultFitter(type.c_str() ); + + std::string name; + name = "h1_" + type; + TH1D * h1 = new TH1D(name.c_str(),"Chi2 Fit",100, -5, 5. ); + name = "h1bis_" + type; + TH1D * h1bis = new TH1D(name.c_str(),"Likelihood Fit",100, -5, 5. ); + /*name = "h2_" + type; + TH1D * h2 = new TH1D(name.c_str(),"Chi2 Fit with Minos Error",100, -5, 5. ); + name = "h3_" + type; + TH1D * h3 = new TH1D(name.c_str(),"Chi2 Fit with Integral and Minos",100, -5, 5. ); + name = "h4_" + type; + TH1D * h4 = new TH1D(name.c_str(),"Likelihood Fit with Minos Error",100, -5, 5. );*/ + + gStyle->SetOptStat(1111111); + gStyle->SetOptFit(1111111); + + for (int i = 0; i < n; ++i) { + double x = gRandom->Gaus(0,1); + h1->Fill( x ); + h1bis->Fill( x ); + /* h2->Fill( x ); + h3->Fill( x ); + h4->Fill( x ); */ + } + + std::string cname = type + "Canvas" ; + std::string ctitle = type + " Gaussian Fit" ; + TCanvas *c1 = new TCanvas(cname.c_str(),cname.c_str(),10,10,900,900); + c1->Divide(2,1); + + c1->cd(1); + cout << "\nDo Fit 1\n"; + h1->Fit("gaus","Q"); + h1->Draw(); + c1->cd(2); + cout << "\nDo Fit 1bis\n"; + h1bis->Fit("gaus","VLE"); + h1bis->Draw(); + /*c1->cd(2); + cout << "\nDo Fit 2\n"; + h2->Fit("gaus","VE"); + h2->Draw(); + c1->cd(3); + cout << "\nDo Fit 3\n"; + h3->Fit("gaus","IE"); + h3->Draw(); + c1->cd(4); + cout << "\nDo Fit 4\n"; + h4->Fit("gaus","VLE"); + h4->Draw();*/ + +} + +void cmaesGausFit() { + if (!libloaded) + { + libloaded = true; + } + int n = 1000; + testGausFit("cmaes",n); + //testGausFit("acmaes",n); +} + + + diff --git a/tutorials/fit/cmaes_fit2a.C b/tutorials/fit/cmaes_fit2a.C new file mode 100644 index 0000000000000..3911b4316e057 --- /dev/null +++ b/tutorials/fit/cmaes_fit2a.C @@ -0,0 +1,82 @@ +#include "TF2.h" +#include "TH2.h" +#include "TCutG.h" +#include "TMath.h" +#include "TCanvas.h" +#include "TStyle.h" +#include "TVirtualFitter.h" + + +//+ Fitting a 2-D histogram (a variant) +// This tutorial illustrates : +// - how to create a 2-d function +// - fill a 2-d histogram randomly from this function +// - fit the histogram +// - display the fitted function on top of the histogram (lego-plot) +// using a surface plot in a sub-range of the histogram. +// +// This example can be executed via the interpreter or/and the compiler +// root > .x fit2a.C +// root > .x fit2a.C++ +//Author: Rene Brun +//Author: Emmanuel Benazera + +bool libloaded = false; + +Double_t g2(Double_t *x, Double_t *par) { + Double_t r1 = Double_t((x[0]-par[1])/par[2]); + Double_t r2 = Double_t((x[1]-par[3])/par[4]); + return par[0]*TMath::Exp(-0.5*(r1*r1+r2*r2)); +} +Double_t fun2(Double_t *x, Double_t *par) { + Double_t *p1 = &par[0]; + Double_t *p2 = &par[5]; + Double_t *p3 = &par[10]; + Double_t result = g2(x,p1) + g2(x,p2) + g2(x,p3); + return result; +} + +TCanvas *fit2a(const char *fitter="cmaes") { + if (!libloaded) + { + libloaded = true; + } + + TVirtualFitter::SetDefaultFitter(fitter); + + ROOT::Math::IOptions &opts = ROOT::Math::MinimizerOptions::Default(fitter); + //opts.SetIntValue("lambda",100); + opts.SetNamedValue("fplot","fit2a.dat"); + + TCanvas *c = new TCanvas(); + gStyle->SetOptStat(kTRUE); + gStyle->SetPalette(1); + const Int_t npar = 15; + Double_t f2params[npar] = {100,-3,3,-3,3,160,0,0.8,0,0.9,40,4,0.7,4,0.7}; + TF2 *f2 = new TF2("f2",fun2,-10,10,-10,10, npar); + f2->SetParameters(f2params); + + //Create an histogram and fill it randomly with f2 + TH2F *h2 = new TH2F("h2","From f2",40,-10,10,40,-10,10); + Int_t nentries = 100000; + h2->FillRandom("f2",nentries); + //Fit h2 with original function f2 + Float_t ratio = 4*nentries/100000; + f2params[ 0] *= ratio; + f2params[ 5] *= ratio; + f2params[10] *= ratio; + f2->SetParameters(f2params); + h2->Fit("f2","N"); + TCutG *cutg = new TCutG("cutg",5); + cutg->SetPoint(0,-7,-7); + cutg->SetPoint(1, 2,-7); + cutg->SetPoint(2, 2, 2); + cutg->SetPoint(3,-7, 2); + cutg->SetPoint(4,-7,-7); + h2->Draw("lego2 0"); + h2->SetFillColor(38); + f2->SetNpx(80); + f2->SetNpy(80); + f2->Draw("surf1 same bb [cutg]"); + return c; +} diff --git a/tutorials/fit/cmaes_fit2dHist.C b/tutorials/fit/cmaes_fit2dHist.C new file mode 100644 index 0000000000000..607aaff2f0e02 --- /dev/null +++ b/tutorials/fit/cmaes_fit2dHist.C @@ -0,0 +1,244 @@ +// +//+ Example to fit two histograms at the same time via TVirtualFitter +// +// To execute this tutorial, you can do: +// +// root > .x fit2dHist.C (executing via CINT, slow) +// or +// root > .x fit2dHist.C+ (executing via ACLIC , fast, with Minuit) +// root > .x fit2dHist.C+(2) (executing via ACLIC , fast, with Minuit2) +// or using the option to fit independently the 2 histos +// root > .x fit2dHist.C+(10) (via ACLIC, fast, independent fits with Minuit) +// root > .x fit2dHist.C+(12) (via ACLIC, fast, independent fits with Minuit2) +// +// Note that you can also execute this script in batch with eg, +// root -b -q "fit2dHist.C+(12)" +// +// or execute interactively from the shell +// root fit2dHist.C+ +// root "fit2dHist.C+(12)" +// +// Authors: Lorenzo Moneta, Rene Brun 18/01/2006 + +#include "TH2D.h" +#include "TF2.h" +#include "TCanvas.h" +#include "TStyle.h" +#include "TRandom3.h" +#include "TVirtualFitter.h" +#include "TList.h" +#include "TSystem.h" + +#include + +double gauss2D(double *x, double *par) { + double z1 = double((x[0]-par[1])/par[2]); + double z2 = double((x[1]-par[3])/par[4]); + return par[0]*exp(-0.5*(z1*z1+z2*z2)); +} +double my2Dfunc(double *x, double *par) { + return gauss2D(x,&par[0]) + gauss2D(x,&par[5]); +} + + +// data need to be globals to be visible by fcn +TRandom3 rndm; +TH2D *h1, *h2; +Int_t npfits; + +void myFcn(Int_t & /*nPar*/, Double_t * /*grad*/ , Double_t &fval, Double_t *p, Int_t /*iflag */ ) +{ + TAxis *xaxis1 = h1->GetXaxis(); + TAxis *yaxis1 = h1->GetYaxis(); + TAxis *xaxis2 = h2->GetXaxis(); + TAxis *yaxis2 = h2->GetYaxis(); + + int nbinX1 = h1->GetNbinsX(); + int nbinY1 = h1->GetNbinsY(); + int nbinX2 = h2->GetNbinsX(); + int nbinY2 = h2->GetNbinsY(); + + double chi2 = 0; + double x[2]; + double tmp; + npfits = 0; + for (int ix = 1; ix <= nbinX1; ++ix) { + x[0] = xaxis1->GetBinCenter(ix); + for (int iy = 1; iy <= nbinY1; ++iy) { + if ( h1->GetBinError(ix,iy) > 0 ) { + x[1] = yaxis1->GetBinCenter(iy); + tmp = (h1->GetBinContent(ix,iy) - my2Dfunc(x,p))/h1->GetBinError(ix,iy); + chi2 += tmp*tmp; + npfits++; + } + } + } + for (int ix = 1; ix <= nbinX2; ++ix) { + x[0] = xaxis2->GetBinCenter(ix); + for (int iy = 1; iy <= nbinY2; ++iy) { + if ( h2->GetBinError(ix,iy) > 0 ) { + x[1] = yaxis2->GetBinCenter(iy); + tmp = (h2->GetBinContent(ix,iy) - my2Dfunc(x,p))/h2->GetBinError(ix,iy); + chi2 += tmp*tmp; + npfits++; + } + } + } + fval = chi2; +} + +void FillHisto(TH2D * h, int n, double * p) { + + + const double mx1 = p[1]; + const double my1 = p[3]; + const double sx1 = p[2]; + const double sy1 = p[4]; + const double mx2 = p[6]; + const double my2 = p[8]; + const double sx2 = p[7]; + const double sy2 = p[9]; + //const double w1 = p[0]*sx1*sy1/(p[5]*sx2*sy2); + const double w1 = 0.5; + + double x, y; + for (int i = 0; i < n; ++i) { + // generate randoms with larger gaussians + rndm.Rannor(x,y); + + double r = rndm.Rndm(1); + if (r < w1) { + x = x*sx1 + mx1; + y = y*sy1 + my1; + } + else { + x = x*sx2 + mx2; + y = y*sy2 + my2; + } + h->Fill(x,y); + + } +} + + + + +int fit2dHist(int option=1) { + + // create two histograms + + int nbx1 = 50; + int nby1 = 50; + int nbx2 = 50; + int nby2 = 50; + double xlow1 = 0.; + double ylow1 = 0.; + double xup1 = 10.; + double yup1 = 10.; + double xlow2 = 5.; + double ylow2 = 5.; + double xup2 = 20.; + double yup2 = 20.; + + h1 = new TH2D("h1","core",nbx1,xlow1,xup1,nby1,ylow1,yup1); + h2 = new TH2D("h2","tails",nbx2,xlow2,xup2,nby2,ylow2,yup2); + + double iniParams[10] = { 100, 6., 2., 7., 3, 100, 12., 3., 11., 2. }; + // create fit function + TF2 * func = new TF2("func",my2Dfunc,xlow2,xup2,ylow2,yup2, 10); + func->SetParameters(iniParams); + + // fill Histos + int n1 = 1000000; + int n2 = 1000000; + FillHisto(h1,n1,iniParams); + FillHisto(h2,n2,iniParams); + + // scale histograms to same heights (for fitting) + double dx1 = (xup1-xlow1)/double(nbx1); + double dy1 = (yup1-ylow1)/double(nby1); + double dx2 = (xup2-xlow2)/double(nbx2); + double dy2 = (yup2-ylow2)/double(nby2); + // scale histo 2 to scale of 1 + h2->Sumw2(); + h2->Scale( ( double(n1) * dx1 * dy1 ) / ( double(n2) * dx2 * dy2 ) ); + + bool global = false; + if (option > 10) global = true; + if (global) { + // fill data structure for fit (coordinates + values + errors) + std::cout << "Do global fit" << std::endl; + // fit now all the function together + + //The default minimizer is Minuit, you can also try Minuit2 + if (option%10 == 2) + TVirtualFitter::SetDefaultFitter("Minuit2"); + else TVirtualFitter::SetDefaultFitter("Minuit"); + TVirtualFitter * minuit = TVirtualFitter::Fitter(0,10); + for (int i = 0; i < 10; ++i) { + minuit->SetParameter(i, func->GetParName(i), func->GetParameter(i), 0.01, 0,0); + } + minuit->SetFCN(myFcn); + + double arglist[100]; + arglist[0] = 0; + // set print level + minuit->ExecuteCommand("SET PRINT",arglist,2); + + // minimize + arglist[0] = 5000; // number of function calls + arglist[1] = 0.01; // tolerance + minuit->ExecuteCommand("MIGRAD",arglist,2); + + //get result + double minParams[10]; + double parErrors[10]; + for (int i = 0; i < 10; ++i) { + minParams[i] = minuit->GetParameter(i); + parErrors[i] = minuit->GetParError(i); + } + double chi2, edm, errdef; + int nvpar, nparx; + minuit->GetStats(chi2,edm,errdef,nvpar,nparx); + + func->SetParameters(minParams); + func->SetParErrors(parErrors); + func->SetChisquare(chi2); + int ndf = npfits-nvpar; + func->SetNDF(ndf); + + // add to list of functions + h1->GetListOfFunctions()->Add(func); + h2->GetListOfFunctions()->Add(func); + } + else { + // fit independently + TVirtualFitter::SetDefaultFitter("cmaes"); + h1->Fit(func); + h2->Fit(func); + } + + // Create a new canvas. + TCanvas * c1 = new TCanvas("c1","Two HIstogram Fit example",100,10,900,800); + c1->Divide(2,2); + gStyle->SetOptFit(); + gStyle->SetStatY(0.6); + + c1->cd(1); + h1->Draw(); + func->SetRange(xlow1,ylow1,xup1,yup1); + func->DrawCopy("cont1 same"); + c1->cd(2); + h1->Draw("lego"); + func->DrawCopy("surf1 same"); + c1->cd(3); + func->SetRange(xlow2,ylow2,xup2,yup2); + h2->Draw(); + func->DrawCopy("cont1 same"); + c1->cd(4); + h2->Draw("lego"); + gPad->SetLogz(); + func->Draw("surf1 same"); + + return 0; +}