about summary refs log tree commit diff
path: root/etc/portage/patches/x11-misc/xsnow
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>1970-01-01 03:00:00 +0300
committerAzat Bahawi <azat@bahawi.net>2022-09-20 11:52:07 +0300
commit962c35425636e3f942fd8a624369a7c53748f47e (patch)
treec69e76f6c4cdd7f9f66d02a02ee683fe4d5426e7 /etc/portage/patches/x11-misc/xsnow
chore: init HEAD master
Diffstat (limited to 'etc/portage/patches/x11-misc/xsnow')
-rw-r--r--etc/portage/patches/x11-misc/xsnow/compositor.patch1501
1 files changed, 1501 insertions, 0 deletions
diff --git a/etc/portage/patches/x11-misc/xsnow/compositor.patch b/etc/portage/patches/x11-misc/xsnow/compositor.patch
new file mode 100644
index 0000000..7ecedf0
--- /dev/null
+++ b/etc/portage/patches/x11-misc/xsnow/compositor.patch
@@ -0,0 +1,1501 @@
+diff -rupN ./xsnow-1.42/make2.com xsnow-comp-tmp/make2.com
+--- ./xsnow-1.42/make2.com	1995-11-19 06:53:27.000000000 -0500
++++ xsnow-comp-tmp/make2.com	1969-12-31 19:00:00.000000000 -0500
+@@ -1,51 +0,0 @@
+-$! Compile and link Xsnow under VMS 
+-$!
+-$! Get compiler info
+-$!
+-$ CFLAGS = "/optimize"
+-$ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "" -
+-        .and. CFLAGS - "/VAXC" .eqs. CFLAGS
+-$ all_cflags = CFLAGS
+-$ if decc then all_cflags = "/DECC/PREFIX=ALL " + all_cflags
+-$!
+-$!      Build the option-file
+-$!
+-$ open/write optf xsnow.opt
+-$ write optf "xsnow"
+-$ if .not.decc then write optf "SYS$SHARE:ucx$ipc/lib"
+-$ write optf "Identification=""Xsnow 1.39""
+-$!
+-$!
+-$!  Find out which X-Version we're running.  This will fail for older
+-$!  VMS versions (i.e., v5.5-1).  Therefore, choose DECWindows XUI for
+-$!  default.
+-$!
+-$ On Error Then GoTo XUI
+-$ @sys$update:decw$get_image_version sys$share:decw$xlibshr.exe decw$version
+-$ if f$extract(4,3,decw$version).eqs."1.0"
+-$ then
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$ endif
+-$ if f$extract(4,3,decw$version).eqs."1.1"
+-$ then
+-$   write optf "sys$share:decw$xmulibshr.exe/share"
+-$   write optf "sys$share:decw$xtshr.exe/share"
+-$ endif
+-$ if f$extract(4,3,decw$version).eqs."1.2"
+-$ then
+-$   write optf "sys$share:decw$xmulibshrr5.exe/share"
+-$   write optf "sys$share:decw$xtlibshrr5.exe/share"
+-$ endif
+-$ GoTo MAIN
+-$!
+-$XUI:
+-$!
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$MAIN:
+-$!
+-$ write optf "sys$share:decw$xlibshr.exe/share"
+-$ if .not.decc then write optf "SYS$SHARE:VAXCRTL/SHARE"
+-$ close optf
+-$ cc'all_cflags' xsnow.c
+-$ link xsnow.opt/opt
+-$ exit
+diff -rupN ./xsnow-1.42/make.com xsnow-comp-tmp/make.com
+--- ./xsnow-1.42/make.com	1995-11-19 06:53:27.000000000 -0500
++++ xsnow-comp-tmp/make.com	1969-12-31 19:00:00.000000000 -0500
+@@ -1,85 +0,0 @@
+-$! Compile and link Xsnow under VMS 
+-$!
+-$! Get compiler info
+-$!
+-$ XSNOW_VERSION = "Xsnow 1.37"
+-$ 
+-$ echo := write sys$output
+-$ echo " --- This is a command procedure to build ''XSNOW_VERSION' ---"
+-$ 
+-$ CFLAGS = "/OPTIMIZE"
+-$ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "" -
+-        .and. CFLAGS - "/VAXC" .eqs. CFLAGS
+-$ all_cflags = CFLAGS
+-$ if decc then all_cflags = "/DECC/PREFIX=ALL " + all_cflags
+-$!
+-$!      Build the option-file
+-$!
+-$ open/write optf xsnow.opt
+-$ write optf "xsnow"
+-$ if .not.decc 
+-$ then 
+-$ 	if f$trnlmn("MULTINET").nes.""
+-$ 	then
+-$ 		! Try first the SHARE in MULTINET:
+-$		write optf "MULTINET:UCX$IPC_SHR/SHARE"
+-$ 	else
+-$ 		! Well, try the OLB then ...
+-$ 		if f$search("SYS$SHARE:UCX$IPC.OLB").nes."" 
+-$ 		then write optf "SYS$SHARE:ucx$ipc/lib"
+-$ 		endif
+-$ 	endif
+-$ endif
+-$ write optf "Identification=""''XSNOW_VERSION'""
+-$!
+-$!
+-$!  Find out which X-Version we're running.  This will fail for older
+-$!  VMS versions (i.e., v5.5-1).  Therefore, choose DECWindows XUI for
+-$!  default.
+-$!
+-$ On Error Then GoTo XUI
+-$ IF F$SEARCH("SYS$UPDATE:DECW$GET_IMAGE_VERSION.COM").NES.""
+-$ THEN
+-$  @sys$update:decw$get_image_version sys$share:decw$xlibshr.exe decw$version
+-$  if f$extract(4,3,decw$version).eqs."1.0"
+-$  then
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$  endif
+-$  if f$extract(4,3,decw$version).eqs."1.1"
+-$  then
+-$   write optf "sys$share:decw$xmulibshr.exe/share"
+-$   write optf "sys$share:decw$xtshr.exe/share"
+-$  endif
+-$  if f$extract(4,3,decw$version).eqs."1.2"
+-$  then
+-$   write optf "sys$share:decw$xmulibshrr5.exe/share"
+-$   write optf "sys$share:decw$xtlibshrr5.exe/share"
+-$  endif
+-$  GoTo MAIN
+-$ ENDIF
+-$!
+-$XUI:
+-$!
+-$   write optf "Sys$share:DECW$DWTLIBSHR.EXE/Share"
+-$MAIN:
+-$!
+-$ set noon
+-$ write optf "sys$share:decw$xlibshr.exe/share"
+-$ if .not.decc then write optf "SYS$SHARE:VAXCRTL/SHARE"
+-$ close optf
+-$ echo " . Compiling Xsnow "
+-$ cc'all_cflags' xsnow.c
+-$ echo " . Linking Xsnow"
+-$ on error then goto ERR
+-$ link xsnow.opt/opt
+-$ echo ""
+-$ echo "Xsnow is ready."
+-$ echo "  XSNOW :== $''f$env("DEFAULT")'XSNOW"
+-$ echo ""
+-$ XSNOW :== $'f$env("DEFAULT")'XSNOW
+-$ exit
+-$ 
+-$ ERR:
+-$  echo ""
+-$  echo "An error occur while linking Xsnow - Sorry"
+-$ EXIT
+diff -rupN ./xsnow-1.42/Makefile xsnow-comp-tmp/Makefile
+--- ./xsnow-1.42/Makefile	2001-12-15 18:43:31.000000000 -0500
++++ xsnow-comp-tmp/Makefile	1969-12-31 19:00:00.000000000 -0500
+@@ -1,957 +0,0 @@
+-# Makefile generated by imake - do not edit!
+-# $TOG: imake.c /main/104 1998/03/24 12:45:15 kaleb $
+-
+-# ----------------------------------------------------------------------
+-# Makefile generated from "Imake.tmpl" and <Imakefile>
+-# $TOG: Imake.tmpl /main/249 1997/10/13 15:28:56 kaleb $
+-#
+-#
+-#
+-#
+-# $XFree86: xc/config/cf/Imake.tmpl,v 3.87 2000/12/02 19:06:57 herrb Exp $
+-# ----------------------------------------------------------------------
+-
+-all::
+-
+-.SUFFIXES: .i
+-
+-# $TOG: Imake.cf /main/30 1998/04/28 13:55:25 barstow $
+-
+-# $XFree86: xc/config/cf/Imake.cf,v 3.63 2000/11/06 19:24:00 dawes Exp $
+-
+-# Keep cpp from replacing path elements containing 1/i586/i686
+-
+-#  for compatibility with 3.3.x
+-
+-# -----------------------------------------------------------------------
+-# site-specific configuration parameters that need to come before
+-# the platform-specific parameters - edit site.def to change
+-
+-# site:  $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+-
+-# site:  $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+-
+-# $XFree86: xc/config/cf/xf86site.def,v 3.170 2000/12/14 16:38:45 dawes Exp $
+-
+-# ----------------------------------------------------------------------
+-# platform-specific configuration parameters - edit linux.cf to change
+-
+-# platform:  $TOG: linux.cf /main/47 1998/04/17 11:32:51 mgreess
+-
+-# platform:  $XFree86: xc/config/cf/linux.cf,v 3.157 2000/12/14 17:00:46 dawes Exp $
+-
+-# operating system:  SuSE Linux [ELF] (2.4.0)
+-# libc:	(6.2.0)
+-# binutils:	(30)
+-
+-# $TOG: lnxLib.rules /main/14 1998/03/16 11:15:30 mgreess $
+-# $XFree86: xc/config/cf/lnxLib.rules,v 3.38 2000/06/15 20:49:56 dawes Exp $
+-
+-# $XFree86: xc/config/cf/xfree86.cf,v 3.338 2000/12/14 16:59:06 dawes Exp $
+-
+-# $TOG: xfree86.cf /main/38 1997/10/22 13:01:59 kaleb $
+-
+-AFB_DEFS = -DUSE_AFB
+-
+-DRIVERSDKDIR = $(USRLIBDIR)/Server
+-DRIVERSDKMODULEDIR = $(USRLIBDIR)/Server/modules
+-DRIVERSDKINCLUDEDIR = $(USRLIBDIR)/Server/include
+-
+-       XF86SRC = $(SERVERSRC)/hw/xfree86
+-    XF86COMSRC = $(XF86SRC)/common
+- XF86PARSERSRC = $(XF86SRC)/parser
+-     XF86OSSRC = $(XF86SRC)/os-support
+- XF86DRIVERSRC = $(XF86SRC)/drivers
+-     DRIVERSRC = $(XF86DRIVERSRC)
+-
+-        XFREE86DOCDIR = $(DOCDIR)
+-      XFREE86PSDOCDIR = $(DOCPSDIR)
+-    XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
+-XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
+-
+-# $XConsortium: xf86.rules /main/9 1996/10/31 14:54:26 kaleb $
+-# $XFree86: xc/config/cf/xf86.rules,v 3.32 2000/10/30 23:02:06 tsi Exp $
+-
+-# ----------------------------------------------------------------------
+-# site-specific configuration parameters that go after
+-# the platform-specific parameters - edit site.def to change
+-
+-# site:  $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+-
+-# site:  $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+-
+-# ---------------------------------------------------------------------
+-# Imake rules for building libraries, programs, scripts, and data files
+-# rules:  $TOG: Imake.rules /main/227 1998/02/02 12:07:57 kaleb $
+-#
+-#
+-#
+-#
+-# rules:  $XFree86: xc/config/cf/Imake.rules,v 3.86 2000/12/12 17:05:30 dawes Exp $
+-
+- _NULLCMD_ = @ echo -n
+-
+-GLIDE2INCDIR = /usr/include/glide
+-
+-GLIDE3INCDIR = /usr/include/glide3
+-
+-GLIDE3LIBNAME = glide3
+-
+-TKLIBNAME =
+-
+-TKLIBDIR =
+-
+-TCLLIBNAME =
+-
+-TCLIBDIR =
+-
+-          PATHSEP = /
+-            SHELL = /bin/sh -e
+-
+-              TOP = .
+-      CURRENT_DIR = .
+-
+-            IMAKE = imake
+-           DEPEND = gccmakedep
+-        MKDIRHIER = mkdir -p
+-          REVPATH = revpath
+-    EXPORTLISTGEN =
+-             RMAN = rman
+-      RMANOPTIONS = -f HTML
+-        CONFIGSRC = $(TOP)/config
+-         IMAKESRC = $(CONFIGSRC)/imake
+-        DEPENDSRC = $(CONFIGSRC)/util
+-
+-          INCROOT = /usr/X11R6/include
+-        USRLIBDIR = /usr/X11R6/lib
+-           VARDIR = /var
+-        VARLIBDIR = $(VARDIR)/lib
+-  SYSTEMUSRLIBDIR = /usr/lib
+-  SYSTEMUSRINCDIR = /usr/include
+-         SHLIBDIR = /usr/X11R6/lib
+-       LINTLIBDIR = $(USRLIBDIR)/lint
+-          MANPATH = /usr/X11R6/man
+-    MANSOURCEPATH = $(MANPATH)/man
+-           MANDIR = $(MANSOURCEPATH)1
+-        LIBMANDIR = $(MANSOURCEPATH)3
+-       FILEMANDIR = $(MANSOURCEPATH)5
+-       MISCMANDIR = $(MANSOURCEPATH)$(MISCMANSUFFIX)
+-     DRIVERMANDIR = $(MANSOURCEPATH)$(DRIVERMANSUFFIX)
+-     LOGDIRECTORY = $(VARDIR)/log
+-
+-        VARRUNDIR = $(VARDIR)/run
+-
+-         VARDBDIR = /var/lib
+-
+-               AR = ar clq
+-  BOOTSTRAPCFLAGS =
+-               CC = gcc
+-               AS = as
+-
+-.SUFFIXES: .cc
+-
+-              CXX = c++
+-          CXXFILT = c++filt
+-           CXXLIB =
+-    CXXDEBUGFLAGS = -O2
+-CXXDEPENDINCLUDES =
+- CXXEXTRA_DEFINES =
+-CXXEXTRA_INCLUDES =
+-   CXXSTD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(CXXPROJECT_DEFINES)
+-       CXXOPTIONS =
+-      CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES)
+-       CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(CXXEXTRA_DEFINES) $(DEFINES)
+-         CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
+-
+-         COMPRESS = compress
+-          GZIPCMD = gzip
+-              CPP = /lib/cpp $(STD_CPP_DEFINES)
+-           RAWCPP = /lib/cpp -undef $(STD_CPP_OPTIONS)
+-    PREPROCESSCMD = gcc -E $(STD_CPP_DEFINES)
+-          INSTALL = install
+-     INSTALLFLAGS = -c
+-               LD = ld
+-              LEX = flex -l
+-               M4 = m4
+-          M4FLAGS =
+-           LEXLIB = -lfl
+-             YACC = bison -y
+-           CCYACC = bison -y
+-             LINT = lint
+-      LINTLIBFLAG = -C
+-         LINTOPTS = -axz
+-               LN = ln -s
+-             MAKE = make
+-               MV = mv -f
+-               CP = cp
+-
+-           RANLIB = ranlib
+-  RANLIBINSTFLAGS =
+-
+-               RM = rm -f
+-             PERL = perl
+-         PERLOPTS =
+-        MANSUFFIX = 1x
+-     LIBMANSUFFIX = 3x
+-    FILEMANSUFFIX = 5x
+-    MISCMANSUFFIX = 7
+-  DRIVERMANSUFFIX = 4
+-          MANDEFS = -D__filemansuffix__=$(FILEMANSUFFIX) -D__miscmansuffix__=$(MISCMANSUFFIX) -D__drivermansuffix__=$(DRIVERMANSUFFIX) -D__projectroot__=$(PROJECTROOT)
+-
+-            TROFF = groff -Tps
+-            NROFF = nroff
+-         MSMACROS = -ms
+-        MANMACROS = -man
+-              TBL = tbl
+-              EQN = eqn
+-             NEQN = neqn
+-              COL = col
+-         COLFLAGS = -b
+-            MODCC = gcc
+-           MODCPP = /lib/cpp
+-        MODCFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREAD_CFLAGS) $(ALLDEFINES)
+-            MODAS = as
+-       MODASFLAGS =
+-            MODLD = ld
+-       MODLDFLAGS =
+-MODLDCOMBINEFLAGS = -r
+-            MODAR = ar clq
+-        MODRANLIB =
+-
+-     STD_INCLUDES =
+-  STD_CPP_OPTIONS = -traditional
+-  STD_CPP_DEFINES = -traditional -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(PROJECT_DEFINES)
+-      STD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    $(PROJECT_DEFINES)
+- EXTRA_LOAD_FLAGS =
+-  EXTRA_LDOPTIONS =
+-  EXTRA_LIBRARIES =
+-             TAGS = ctags
+-
+-   PARALLELMFLAGS =
+-
+-    SHAREDCODEDEF =
+-         SHLIBDEF =
+-
+-     SHLIBLDFLAGS = -shared
+-
+-         PICFLAGS = -fPIC
+-
+-      CXXPICFLAGS = -fPIC
+-
+-    PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO
+-
+-     INSTPGMFLAGS =
+-
+-     INSTBINFLAGS = -m 0755
+-     INSTUIDFLAGS = -m 4711
+-     INSTLIBFLAGS = -m 0644
+-     INSTINCFLAGS = -m 0444
+-     INSTMANFLAGS = -m 0444
+-     INSTDATFLAGS = -m 0444
+-    INSTKMEMFLAGS = -m 4711
+-
+-      PROJECTROOT = /usr/X11R6
+-
+-      CDEBUGFLAGS = -O2
+-        CCOPTIONS =
+-
+-      ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES)
+-       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES)
+-           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
+-        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+-         LDPRELIB = -L$(USRLIBDIR)
+-        LDPOSTLIB =
+-        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)  $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+-     CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+-
+-           LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+-
+-           CCLINK = $(CC)
+-
+-          CXXLINK = $(CXX)
+-
+-     LDSTRIPFLAGS = -x
+-   LDCOMBINEFLAGS = -r
+-      DEPENDFLAGS =
+-
+-# Not sure this belongs here
+-         TKLIBDIR =
+-         TKINCDIR =
+-        TKLIBNAME =
+-        TKLIBRARY = -L$(TKLIBDIR) -l$(TKLIBNAME)
+-        TCLLIBDIR =
+-        TCLINCDIR =
+-       TCLLIBNAME =
+-       TCLLIBRARY = -L$(TCLLIBDIR) -l$(TCLLIBNAME)
+-
+-        MACROFILE = linux.cf
+-           RM_CMD = $(RM)
+-
+-    IMAKE_DEFINES =
+-
+-         IRULESRC = $(CONFIGDIR)
+-        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
+-
+-     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl 			$(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) 			$(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules $(IRULESRC)/xf86site.def $(IRULESRC)/host.def $(EXTRA_ICONFIGFILES)
+-
+-# $TOG: X11.rules /main/4 1997/04/30 15:23:24 kaleb $
+-
+-# $XFree86: xc/config/cf/X11.rules,v 1.5 2000/11/06 19:24:00 dawes Exp $
+-
+-# ----------------------------------------------------------------------
+-# X Window System Build Parameters and Rules
+-# $TOG: X11.tmpl /main/308 1998/06/16 15:14:24 msr $
+-#
+-#
+-#
+-#
+-# $XFree86: xc/config/cf/X11.tmpl,v 1.93 2000/12/15 18:18:04 keithp Exp $
+-
+-STICKY_DEFINES = -DHAS_STICKY_DIR_BIT
+-
+-FCHOWN_DEFINES = -DHAS_FCHOWN
+-
+-# -----------------------------------------------------------------------
+-# X Window System make variables; these need to be coordinated with rules
+-
+-             XTOP = $(TOP)
+-           BINDIR = /usr/X11R6/bin
+-     BUILDINCROOT = $(TOP)/exports
+-      BUILDINCDIR = $(BUILDINCROOT)/include
+-      BUILDINCTOP = ../..
+-      BUILDLIBDIR = $(TOP)/exports/lib
+-      BUILDLIBTOP = ../..
+-      BUILDBINDIR = $(TOP)/exports/bin
+-      BUILDBINTOP = ../..
+-   BUILDMODULEDIR = $(BUILDLIBDIR)/modules
+-   BUILDMODULETOP = $(BUILDLIBTOP)/..
+-    XBUILDINCROOT = $(XTOP)/exports
+-     XBUILDINCDIR = $(XBUILDINCROOT)/include/X11
+-     XBUILDINCTOP = ../../..
+-     XBUILDBINDIR = $(XBUILDINCROOT)/bin
+-           INCDIR = $(INCROOT)
+-           ADMDIR = /usr/adm
+-           LIBDIR = $(USRLIBDIR)/X11
+-       LIBEXECDIR = /usr/X11R6/libexec
+-        MODULEDIR = $(USRLIBDIR)/modules
+-   TOP_X_INCLUDES =
+-
+-        ETCX11DIR = /etc/X11
+-
+-          CONFDIR = $(ETCX11DIR)
+-
+-           DOCDIR = $(LIBDIR)/doc
+-       DOCHTMLDIR = $(DOCDIR)/html
+-         DOCPSDIR = $(DOCDIR)/PostScript
+-          FONTDIR = $(LIBDIR)/fonts
+-     ENCODINGSDIR = $(FONTDIR)/encodings
+-         XINITDIR = $(LIBDIR)/xinit
+-           XDMDIR = /etc/X11/xdm
+-        XDMVARDIR = $(VARLIBDIR)/xdm
+-           TWMDIR = $(LIBDIR)/twm
+-           XSMDIR = $(LIBDIR)/xsm
+-           NLSDIR = $(LIBDIR)/nls
+-       XLOCALEDIR = $(LIBDIR)/locale
+-        PEXAPIDIR = $(LIBDIR)/PEX
+-      LBXPROXYDIR = $(LIBDIR)/lbxproxy
+-  PROXYMANAGERDIR = $(LIBDIR)/proxymngr
+-        XPRINTDIR = $(LIBDIR)/xserver
+-      XAPPLOADDIR = $(LIBDIR)/app-defaults
+-       FONTCFLAGS = -t
+-
+-     INSTAPPFLAGS = $(INSTDATFLAGS)
+-
+-              RGB = $(BINDIR)/rgb
+-            FONTC = $(BINDIR)/bdftopcf
+-        MKFONTDIR = $(BINDIR)/mkfontdir
+-      MKHTMLINDEX = $(BINDIR)/mkhtmlindex
+-          UCS2ANY = $(BINDIR)/ucs2any.pl
+-      BDFTRUNCATE = $(BINDIR)/bdftruncate.pl
+-     UCSMAPPREFIX = $(FONTDIR)/util/map-
+-
+-     HTMLINDEXCMD = HtmlIndexCmd
+-
+-       DOCUTILSRC = $(XTOP)/doc/util
+-        CLIENTSRC = $(TOP)/clients
+-          DEMOSRC = $(TOP)/demos
+-       XDOCMACROS = $(DOCUTILSRC)/macros.t
+-       XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
+-       PROGRAMSRC = $(TOP)/programs
+-           LIBSRC = $(XTOP)/lib
+-          FONTSRC = $(XTOP)/fonts
+-     ENCODINGSSRC = $(FONTSRC)/encodings
+-       INCLUDESRC = $(BUILDINCROOT)/include
+-      XINCLUDESRC = $(INCLUDESRC)/X11
+-        SERVERSRC = $(XTOP)/programs/Xserver
+-       CONTRIBSRC = $(XTOP)/../contrib
+-   UNSUPPORTEDSRC = $(XTOP)/unsupported
+-           DOCSRC = $(XTOP)/doc
+-           RGBSRC = $(XTOP)/programs/rgb
+-      BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
+-     MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
+-    FONTSERVERSRC = $(PROGRAMSRC)/xfs
+-       FONTINCSRC = $(XTOP)/include/fonts
+-        EXTINCSRC = $(XTOP)/include/extensions
+-      FTSOURCEDIR = $(TOP)/extras/FreeType
+-     XTTSOURCEDIR = $(TOP)/extras/X-TrueType
+-       MESASRCDIR = $(TOP)/extras/Mesa
+-  OGLSAMPLESRCDIR = $(TOP)/extras/ogl-sample
+-        PSWRAPSRC = $(XTOP)/config/pswrap
+-     TRANSCOMMSRC = $(LIBSRC)/xtrans
+-   TRANS_INCLUDES = -I$(TRANSCOMMSRC)
+- CONNECTION_FLAGS = -DUNIXCONN -DTCPCONN $(STICKY_DEFINES) $(FCHOWN_DEFINES)
+-
+-       XENVLIBDIR = $(USRLIBDIR)
+-   CLIENTENVSETUP = LD_LIBRARY_PATH=$(XENVLIBDIR)
+-
+-# $TOG: lnxLib.tmpl /main/7 1998/03/20 14:26:41 mgreess $
+-# $XFree86: xc/config/cf/lnxLib.tmpl,v 3.12 1999/06/27 14:07:17 dawes Exp $
+-
+-          XLIBSRC = $(LIBSRC)/X11
+-
+-SOXLIBREV = 6.2
+-DEPXONLYLIB =
+-XONLYLIB =  -lX11
+-
+-LINTXONLY = $(LINTLIBDIR)/llib-lX11.ln
+-
+-         XLIBONLY = $(XONLYLIB)
+-
+-      XEXTLIBSRC = $(LIBSRC)/Xext
+-
+-SOXEXTREV = 6.4
+-DEPEXTENSIONLIB =
+-EXTENSIONLIB =  -lXext
+-
+-LINTEXTENSION = $(LINTLIBDIR)/llib-lXext.ln
+-
+-LINTEXTENSIONLIB = $(LINTEXTENSION)
+-          DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
+-             XLIB = $(EXTENSIONLIB) $(XONLYLIB)
+-         LINTXLIB = $(LINTXONLYLIB)
+-
+-    XSSLIBSRC = $(LIBSRC)/Xss
+-
+-DEPXSSLIB = $(USRLIBDIR)/libXss.a
+-XSSLIB =  -lXss
+-
+-LINTXSS = $(LINTLIBDIR)/llib-lXss.ln
+-
+-    XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc
+-
+-SOXXF86MISCREV = 1.0
+-DEPXXF86MISCLIB =
+-XXF86MISCLIB =  -lXxf86misc
+-
+-LINTXXF86MISC = $(LINTLIBDIR)/llib-lXxf86misc.ln
+-
+-    XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm
+-
+-SOXXF86VMREV = 1.0
+-DEPXXF86VMLIB =
+-XXF86VMLIB =  -lXxf86vm
+-
+-LINTXXF86VM = $(LINTLIBDIR)/llib-lXxf86vm.ln
+-
+-    XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga
+-
+-SOXXF86DGAREV = 1.0
+-DEPXXF86DGALIB =
+-XXF86DGALIB =  -lXxf86dga
+-
+-LINTXXF86DGA = $(LINTLIBDIR)/llib-lXxf86dga.ln
+-
+-    XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
+-
+-DEPXXF86RUSHLIB = $(USRLIBDIR)/libXxf86rush.a
+-XXF86RUSHLIB =  -lXxf86rush
+-
+-LINTXXF86RUSH = $(LINTLIBDIR)/llib-lXxf86rush.ln
+-
+-    XVLIBSRC = $(LIBSRC)/Xv
+-
+-SOXVREV = 1.0
+-DEPXVLIB =
+-XVLIB =  -lXv
+-
+-LINTXV = $(LINTLIBDIR)/llib-lXv.ln
+-
+-    XINERAMALIBSRC = $(LIBSRC)/Xinerama
+-
+-DEPXINERAMALIB = $(USRLIBDIR)/libXinerama.a
+-XINERAMALIB =  -lXinerama
+-
+-LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
+-
+-    XINERAMALIBSRC = $(LIBSRC)/Xinerama
+-
+-DEPXINERAMALIB = $(USRLIBDIR)/libXinerama.a
+-XINERAMALIB =  -lXinerama
+-
+-LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
+-
+-    DPSLIBSRC = $(LIBSRC)/dps
+-
+-SODPSREV = 1.0
+-DEPDPSLIB =
+-DPSLIB =  -ldps
+-
+-LINTDPS = $(LINTLIBDIR)/llib-ldps.ln
+-
+-    DPSTKLIBSRC = $(LIBSRC)/dpstk
+-
+-SODPSTKREV = 1.0
+-DEPDPSTKLIB =
+-DPSTKLIB =  -ldpstk
+-
+-LINTDPSTK = $(LINTLIBDIR)/llib-ldpstk.ln
+-
+-    PSRESLIBSRC = $(LIBSRC)/psres
+-
+-SOPSRESREV = 1.0
+-DEPPSRESLIB =
+-PSRESLIB =  -lpsres
+-
+-LINTPSRES = $(LINTLIBDIR)/llib-lpsres.ln
+-
+-    GLXLIBSRC = $(LIBSRC)/GL
+-
+-SOGLREV = 1.2
+-DEPGLXLIB =
+-GLXLIB =  -lGL
+-
+-LINTGLX = $(LINTLIBDIR)/llib-lGL.ln
+-
+-    GLWIDGETSRC = $(LIBSRC)/GLw
+-
+-DEPGLWLIB = $(USRLIBDIR)/libGLw.a
+-GLWLIB =  -lGLw
+-
+-LINTGLW = $(LINTLIBDIR)/llib-lGLw.ln
+-
+-    XRENDERLIBSRC = $(LIBSRC)/Xrender
+-
+-SOXRENDERREV = 1.0
+-DEPXRENDERLIB =
+-XRENDERLIB =  -lXrender
+-
+-LINTXRENDER = $(LINTLIBDIR)/llib-lXrender.ln
+-
+-    XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache
+-
+-DEPXFONTCACHELIB = $(USRLIBDIR)/libXfontcache.a
+-XFONTCACHELIB =  -lXfontcache
+-
+-LINTXFONTCACHE = $(LINTLIBDIR)/llib-lXfontcache.ln
+-
+-         XAUTHSRC = $(LIBSRC)/Xau
+-
+-DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
+-XAUTHLIB =  -lXau
+-
+-LINTXAUTH = $(LINTLIBDIR)/llib-lXau.ln
+-
+-      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
+-
+-DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a
+-XDMCPLIB =  -lXdmcp
+-
+-LINTXDMCP = $(LINTLIBDIR)/llib-lXdmcp.ln
+-
+-           XMUSRC = $(LIBSRC)/Xmu
+-
+-SOXMUREV = 6.2
+-DEPXMULIB =
+-XMULIB =  -lXmu
+-
+-LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
+-
+-       OLDXLIBSRC = $(LIBSRC)/oldX
+-
+-DEPOLDXLIB = $(USRLIBDIR)/liboldX.a
+-OLDXLIB =  -loldX
+-
+-LINTOLDX = $(LINTLIBDIR)/llib-loldX.ln
+-
+-         XPLIBSRC = $(LIBSRC)/Xp
+-
+-SOXPREV = 6.2
+-DEPXPLIB =
+-XPLIB =  -lXp
+-
+-LINTXP = $(LINTLIBDIR)/llib-lXp.ln
+-
+-       TOOLKITSRC = $(LIBSRC)/Xt
+-
+-SOXTREV = 6.0
+-DEPXTOOLONLYLIB =
+-XTOOLONLYLIB =  -lXt
+-
+-LINTXTOOLONLY = $(LINTLIBDIR)/llib-lXt.ln
+-
+-      DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
+-         XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
+-     LINTXTOOLLIB = $(LINTXTOOLONLYLIB)
+-
+-       XALIBSRC = $(LIBSRC)/Xa
+-
+-SOXAREV = 1.0
+-DEPXALIB =
+-XALIB =  -lXa
+-
+-LINTXA = $(LINTLIBDIR)/llib-lXa.ln
+-
+-       AWIDGETSRC = $(LIBSRC)/Xaw
+-
+-SOXAWREV = 7.0
+-DEPXAWLIB =
+-XAWLIB =  -lXaw
+-
+-LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
+-
+-       AWIDGET6SRC = $(LIBSRC)/Xaw6
+-
+-SOXAW6REV = 6.1
+-DEPXAW6LIB =
+-XAW6LIB =  -lXaw
+-
+-LINTXAW6 = $(LINTLIBDIR)/llib-lXaw.ln
+-
+-         XILIBSRC = $(LIBSRC)/Xi
+-
+-SOXINPUTREV = 6.0
+-DEPXILIB =
+-XILIB =  -lXi
+-
+-LINTXI = $(LINTLIBDIR)/llib-lXi.ln
+-
+-      XTESTLIBSRC = $(LIBSRC)/Xtst
+-
+-SOXTESTREV = 6.1
+-DEPXTESTLIB =
+-XTESTLIB =  -lXtst
+-
+-LINTXTEST = $(LINTLIBDIR)/llib-lXtst.ln
+-
+-        PEXLIBSRC = $(LIBSRC)/PEX5
+-
+-SOPEXREV = 6.0
+-DEPPEXLIB =
+-PEXLIB =  -lPEX5
+-
+-LINTPEX = $(LINTLIBDIR)/llib-lPEX5.ln
+-
+-        XIELIBSRC = $(LIBSRC)/XIE
+-
+-SOXIEREV = 6.0
+-DEPXIELIB =
+-XIELIB =  -lXIE
+-
+-LINTXIE = $(LINTLIBDIR)/llib-lXIE.ln
+-
+-      PHIGSLIBSRC = $(LIBSRC)/PHIGS
+-
+-DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a
+-PHIGSLIB =  -lphigs
+-
+-LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln
+-
+-DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
+-XBSDLIB =  -lXbsd
+-
+-LINTXBSD = $(LINTLIBDIR)/llib-lXbsd.ln
+-
+-           ICESRC = $(LIBSRC)/ICE
+-
+-SOICEREV = 6.3
+-DEPICELIB =
+-ICELIB =  -lICE
+-
+-LINTICE = $(LINTLIBDIR)/llib-lICE.ln
+-
+-            SMSRC = $(LIBSRC)/SM
+-
+-SOSMREV = 6.0
+-DEPSMLIB =
+-SMLIB =  -lSM
+-
+-LINTSM = $(LINTLIBDIR)/llib-lSM.ln
+-
+-           XKEYSRC = $(LIBSRC)/Xkey
+-
+-SOXKEYREV = 6.0
+-DEPXKEYLIB =
+-XKEYLIB =  -lXkey
+-
+-LINTXKEY = $(LINTLIBDIR)/llib-lXkey.ln
+-
+-         FSLIBSRC = $(LIBSRC)/FS
+-
+-DEPFSLIB = $(USRLIBDIR)/libFS.a
+-FSLIB =  -lFS
+-
+-LINTFS = $(LINTLIBDIR)/llib-lFS.ln
+-
+-         FONTLIBSRC = $(LIBSRC)/font
+-
+-SOFONTREV = 1.3
+-DEPFONTLIB =
+-FONTLIB = -L$(FREETYPELIBDIR) -L$(FONTLIBSRC)  -lXfont
+-
+-LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+-#
+-SOFONTREV = 1.3
+-DEPXFONTLIB =
+-XFONTLIB =  -lXfont
+-
+-LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+-
+-     FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs
+-
+-DEPFONTSTUBLIB = $(USRLIBDIR)/libfntstubs.a
+-FONTSTUBLIB =  -lfntstubs
+-
+-LINTFONTSTUB = $(LINTLIBDIR)/llib-lfntstubs.ln
+-         DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB)
+-            FONTLIB = $(XFONTLIB) $(FONTSTUBLIB)
+-
+-          XPMLIBSRC = $(LIBSRC)/Xpm
+-
+-SOXPMREV = 4.11
+-DEPXPMLIB =
+-XPMLIB =  -lXpm
+-
+-LINTXPM = $(LINTLIBDIR)/llib-lXpm.ln
+-
+-          XFTLIBSRC = $(LIBSRC)/Xft
+-
+-SOXFTREV = 1.0
+-DEPXFTLIB =
+-XFTLIB =  -lXft
+-
+-LINTXFT = $(LINTLIBDIR)/llib-lXft.ln
+-
+-FREETYPE2DIR = freetype-2.0.1
+-FREETYPE2LIBDIR = freetype-2.0.1/lib
+-FREETYPE2INCDIR = freetype-2.0.1/include/freetype2
+-FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)
+-FREETYPE2LIB = -L$(FREETYPE2LIBDIR) -lfreetype
+-FREETYPE2DEFINES = -DFREETYPE2
+-
+-    XKBFILELIBSRC = $(LIBSRC)/xkbfile
+-
+-DEPXKBFILELIB = $(USRLIBDIR)/libxkbfile.a
+-XKBFILELIB =  -lxkbfile
+-
+-LINTXKBFILE = $(LINTLIBDIR)/llib-lxkbfile.ln
+-
+-     XKBCOMPCMD = $(BINDIR)/xkbcomp
+-
+-    XKBUILIBSRC = $(LIBSRC)/xkbui
+-
+-DEPXKBUILIB = $(USRLIBDIR)/libxkbui.a
+-XKBUILIB =  -lxkbui
+-
+-LINTXKBUI = $(LINTLIBDIR)/llib-lxkbui.ln
+-
+-          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
+-
+-         DEPLIBS1 = $(DEPLIBS)
+-         DEPLIBS2 = $(DEPLIBS)
+-         DEPLIBS3 = $(DEPLIBS)
+-         DEPLIBS4 = $(DEPLIBS)
+-         DEPLIBS5 = $(DEPLIBS)
+-         DEPLIBS6 = $(DEPLIBS)
+-         DEPLIBS7 = $(DEPLIBS)
+-         DEPLIBS8 = $(DEPLIBS)
+-         DEPLIBS9 = $(DEPLIBS)
+-         DEPLIBS10 = $(DEPLIBS)
+-
+-XMULIBONLY = -lXmu
+-XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
+-
+-        CONFIGDIR = $(LIBDIR)/config
+-
+-    USRLIBDIRPATH = $(USRLIBDIR)
+-        LDPRELIBS = -L$(USRLIBDIR)
+-       LDPOSTLIBS =
+-     TOP_INCLUDES = -I$(INCROOT) $(TOP_X_INCLUDES)
+-  PROJECT_DEFINES =
+-
+-CXXPROJECT_DEFINES =
+-
+-# ----------------------------------------------------------------------
+-# start of Imakefile
+-
+-SYS_LIBRARIES = -lm -lXpm
+-LOCAL_LIBRARIES = $(XLIB)
+-DEPLIBS = $(DEPXLIB)
+-SRCS = xsnow.c toon_root.c xsnow.h vroot.h
+-OBJS = xsnow.o toon_root.o
+-
+- PROGRAM = xsnow
+-
+-all:: xsnow
+-
+-xsnow: $(OBJS) $(DEPLIBS)
+-	$(RM) $@
+-	$(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES) $(LDLIBS)  $(EXTRA_LOAD_FLAGS)
+-
+-install:: xsnow
+-	@if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \
+-	else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi
+-	$(INSTALL) $(INSTALLFLAGS) $(INSTPGMFLAGS)  xsnow $(DESTDIR)$(BINDIR)/xsnow
+-
+-install.man:: xsnow.man
+-	@if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \
+-	else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi
+-	$(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) xsnow.man $(DESTDIR)$(MANDIR)/xsnow.$(MANSUFFIX)
+-
+-depend::
+-	$(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS)
+-
+-lint:
+-	$(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
+-lint1:
+-	$(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
+-
+-clean::
+-	$(RM) xsnow
+-
+-# ----------------------------------------------------------------------
+-# common rules for all Makefiles - do not edit
+-
+-.c.i:
+-	$(RM) $@
+-	 $(CC) -E $(CFLAGS) $(_NOOP_) $*.c > $@
+-
+-.SUFFIXES: .s
+-
+-.c.s:
+-	$(RM) $@
+-	 $(CC) -S $(CFLAGS) $(_NOOP_) $*.c
+-
+-emptyrule::
+-
+-clean::
+-	$(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut  "#"*
+-
+-Makefile::
+-	-@if [ -f Makefile ]; then set -x; \
+-	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
+-	else exit 0; fi
+-	$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+-
+-tags::
+-	$(TAGS) -w *.[ch]
+-	$(TAGS) -xw *.[ch] > TAGS
+-
+-man_keywords::
+-
+-html_index::
+-
+-# ----------------------------------------------------------------------
+-# empty rules for directories that do not have SUBDIRS - do not edit
+-
+-install::
+-	@echo "install in $(CURRENT_DIR) done"
+-
+-install.man::
+-	@echo "install.man in $(CURRENT_DIR) done"
+-
+-install.sdk::
+-	@echo "install.sdk in $(CURRENT_DIR) done"
+-
+-Makefiles::
+-
+-includes::
+-
+-depend::
+-
+-# ----------------------------------------------------------------------
+-# dependencies generated by makedepend
+-
+-# DO NOT DELETE
+-xsnow.o: xsnow.c /usr/X11R6/include/X11/Intrinsic.h \
+- /usr/X11R6/include/X11/Xlib.h /usr/include/sys/types.h \
+- /usr/include/features.h /usr/include/sys/cdefs.h \
+- /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stddef.h \
+- /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+- /usr/include/sys/select.h /usr/include/bits/select.h \
+- /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \
+- /usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
+- /usr/X11R6/include/X11/Xosdefs.h /usr/X11R6/include/X11/Xutil.h \
+- /usr/X11R6/include/X11/Xresource.h /usr/include/string.h \
+- /usr/X11R6/include/X11/Core.h /usr/X11R6/include/X11/Composite.h \
+- /usr/X11R6/include/X11/Constraint.h /usr/X11R6/include/X11/Object.h \
+- /usr/X11R6/include/X11/RectObj.h /usr/X11R6/include/X11/Xos.h \
+- /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+- /usr/include/sys/stat.h /usr/include/bits/stat.h \
+- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+- /usr/include/bits/confname.h /usr/include/getopt.h \
+- /usr/include/sys/time.h /usr/include/bits/time.h \
+- /usr/X11R6/include/X11/Xarch.h /usr/X11R6/include/X11/xpm.h \
+- /usr/include/stdio.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stdarg.h \
+- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+- /usr/include/bits/wchar.h /usr/include/gconv.h \
+- /usr/include/bits/stdio_lim.h /usr/include/math.h \
+- /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h \
+- /usr/include/bits/mathcalls.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/float.h \
+- /usr/include/signal.h /usr/include/bits/signum.h \
+- /usr/include/bits/siginfo.h /usr/include/bits/wordsize.h \
+- /usr/include/bits/sigaction.h /usr/include/bits/sigcontext.h \
+- /usr/include/asm/sigcontext.h /usr/include/bits/sigstack.h \
+- /usr/include/ucontext.h /usr/include/sys/ucontext.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/limits.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/syslimits.h \
+- /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+- /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+- /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+- /usr/include/bits/waitstatus.h /usr/include/alloca.h xsnow.h \
+- pixmaps/snow00.xbm pixmaps/snow01.xbm pixmaps/snow02.xbm \
+- pixmaps/snow03.xbm pixmaps/snow04.xbm pixmaps/snow05.xbm \
+- pixmaps/snow06.xbm pixmaps/tannenbaum.xbm pixmaps/BigSanta1.XPM \
+- pixmaps/BigSanta2.XPM pixmaps/BigSanta3.XPM pixmaps/BigSanta4.XPM \
+- pixmaps/BigSantaRudolf1.XPM pixmaps/BigSantaRudolf2.XPM \
+- pixmaps/BigSantaRudolf3.XPM pixmaps/BigSantaRudolf4.XPM \
+- pixmaps/MediumSanta1.XPM pixmaps/MediumSanta2.XPM \
+- pixmaps/MediumSanta3.XPM pixmaps/MediumSanta4.XPM \
+- pixmaps/MediumSantaRudolf1.XPM pixmaps/MediumSantaRudolf2.XPM \
+- pixmaps/MediumSantaRudolf3.XPM pixmaps/MediumSantaRudolf4.XPM \
+- pixmaps/RegularSanta1.XPM pixmaps/RegularSanta2.XPM \
+- pixmaps/RegularSanta3.XPM pixmaps/RegularSanta4.XPM \
+- pixmaps/RegularSantaRudolf1.XPM pixmaps/RegularSantaRudolf2.XPM \
+- pixmaps/RegularSantaRudolf3.XPM pixmaps/RegularSantaRudolf4.XPM \
+- toon.h /usr/X11R6/include/X11/extensions/shape.h
+-toon_root.o: toon_root.c toon.h /usr/X11R6/include/X11/Intrinsic.h \
+- /usr/X11R6/include/X11/Xlib.h /usr/include/sys/types.h \
+- /usr/include/features.h /usr/include/sys/cdefs.h \
+- /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stddef.h \
+- /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+- /usr/include/sys/select.h /usr/include/bits/select.h \
+- /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \
+- /usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
+- /usr/X11R6/include/X11/Xosdefs.h /usr/X11R6/include/X11/Xutil.h \
+- /usr/X11R6/include/X11/Xresource.h /usr/include/string.h \
+- /usr/X11R6/include/X11/Core.h /usr/X11R6/include/X11/Composite.h \
+- /usr/X11R6/include/X11/Constraint.h /usr/X11R6/include/X11/Object.h \
+- /usr/X11R6/include/X11/RectObj.h /usr/X11R6/include/X11/Xos.h \
+- /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+- /usr/include/sys/stat.h /usr/include/bits/stat.h \
+- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+- /usr/include/bits/confname.h /usr/include/getopt.h \
+- /usr/include/sys/time.h /usr/include/bits/time.h \
+- /usr/X11R6/include/X11/Xarch.h /usr/X11R6/include/X11/xpm.h \
+- /usr/X11R6/include/X11/extensions/shape.h \
+- /usr/X11R6/include/X11/Xatom.h /usr/X11R6/include/X11/Xproto.h \
+- /usr/X11R6/include/X11/Xmd.h /usr/X11R6/include/X11/Xprotostr.h \
+- /usr/include/stdio.h \
+- /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include/stdarg.h \
+- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+- /usr/include/bits/wchar.h /usr/include/gconv.h \
+- /usr/include/bits/stdio_lim.h
+diff -rupN ./xsnow-1.42/PATCH_LICENSE xsnow-comp-tmp/PATCH_LICENSE
+--- ./xsnow-1.42/PATCH_LICENSE	1969-12-31 19:00:00.000000000 -0500
++++ xsnow-comp-tmp/PATCH_LICENSE	2016-02-27 19:47:13.444837394 -0500
+@@ -0,0 +1,21 @@
++The MIT License (MIT)
++
++Copyright (c) 2016 Austin Anderson
++
++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.
+diff -rupN ./xsnow-1.42/xsnow.c xsnow-comp-tmp/xsnow.c
+--- ./xsnow-1.42/xsnow.c	2001-12-15 18:44:47.000000000 -0500
++++ xsnow-comp-tmp/xsnow.c	2016-02-27 19:47:13.448170769 -0500
+@@ -212,7 +212,8 @@
+ 	etc.
+ */
+ #define VERSION "Xsnow-1.42, December 14th 2001 by Rick Jansen (rja@euronet.nl)\n\
+-WWW: http://www.euronet.nl/~rja/Xsnow/\n"
++WWW: http://www.euronet.nl/~rja/Xsnow/\n\
++Compositor patch v1 https://github.com/protractorninja/xsnow-comp-patch\n"
+ 
+ #ifdef VMS
+ #include <socket.h>
+@@ -253,6 +254,7 @@ typedef int ErrorHandler();
+ #endif
+ Display *display;
+ int screen;
++Window snowWin;
+ Window rootWin;
+ char toon_message[TOON_MESSAGE_LENGTH] = "";
+ Window Parent;
+@@ -272,6 +274,7 @@ int NoKeepSnow = 0;
+ int NoKeepSBot = 0;
+ int NoKeepSWin = 0;
+ int NoPopuphandling = 1;
++int ForceNewWindow = 0;
+ int NoWind = 0;
+ unsigned int borderWidth = 0;
+ int SnowOffset = 0;
+@@ -321,6 +324,7 @@ XRectangle AddRect;
+ unsigned int RunCounter = 0;
+ int SantaUpdateFactor = 3;
+ /* Forward decls */
++int  HasCompositor();
+ void Usage();
+ void SigHandler();
+ void SigHupHandler();
+@@ -506,6 +510,9 @@ char *av[];
+ 				printf("\nThis is %s\n\n", VERSION);
+ 				exit(0);
+ 			}
++			else if (strcmp(arg, "-nouseroot") == 0) {
++				ForceNewWindow = 1;
++			}
+ 			else {
+ 				Usage();
+ 			}
+@@ -553,10 +560,29 @@ char *av[];
+ 		}
+ 		screen = DefaultScreen(display);
+ 		rootWin = ToonGetRootWindow(display, screen, &Parent);
+-		black = BlackPixel(display, screen);
+-		white = WhitePixel(display, screen);
+ 		display_width = DisplayWidth(display, screen);
+ 		display_height = DisplayHeight(display, screen);
++		if (HasCompositor(display, screen) || ForceNewWindow) {
++			NoSanta = 1;
++			XVisualInfo vinfo;
++			XMatchVisualInfo(display, DefaultScreen(display), 32, TrueColor, &vinfo);
++			XSetWindowAttributes attr;
++			attr.colormap = XCreateColormap(display, rootWin, vinfo.visual, AllocNone);
++			attr.border_pixel = 0;
++			attr.background_pixel = 0;
++			attr.override_redirect = 1;
++			snowWin = XCreateWindow(display, rootWin, 0, 0, display_width, display_height, 0, vinfo.depth, InputOutput, vinfo.visual, CWColormap | CWBorderPixel | CWBackPixel | CWOverrideRedirect, &attr);
++			XClassHint* hint = XAllocClassHint();
++			hint->res_name = "xsnow";
++			hint->res_class = "xsnow";
++			XSetClassHint(display, snowWin, hint);
++			XMapRaised(display, snowWin);
++			XLowerWindow(display, snowWin);
++		} else {
++			snowWin = rootWin;
++		}
++		black = BlackPixel(display, screen);
++		white = WhitePixel(display, screen);
+ 		center_x = display_width / 2;
+ 		center_y = display_height / 2;
+ 		current_snow_height = display_height;
+@@ -566,13 +592,13 @@ char *av[];
+ 		}
+ 		for (flake=0; flake<=SNOWFLAKEMAXTYPE; flake++) {
+ 			rp = &snowPix[flake];
+-			rp->pixmap = XCreateBitmapFromData(display, rootWin,
++			rp->pixmap = XCreateBitmapFromData(display, snowWin,
+ 						rp->snowBits, rp->width, rp->height);
+ 			if (rp->height > MaxSnowFlakeHeight) MaxSnowFlakeHeight = rp->height;
+ 		}
+ 		snowflakes = (Snow *)malloc(sizeof(Snow) * MAXSNOWFLAKES);
+ 		tp = &tannenbaumPix[0];
+-		tp->pixmap = XCreateBitmapFromData(display, rootWin,
++		tp->pixmap = XCreateBitmapFromData(display, snowWin,
+ 						tp->tannenbaumBits, tp->width, tp->height);
+ 		InitSantaPixymaps();
+ 		redPix =   AllocNamedColor(redColor, black);
+@@ -581,21 +607,21 @@ char *av[];
+ 		blackPix = AllocNamedColor(blackColor, black);
+ 		snowcPix = AllocNamedColor(snowColor, white);   
+ 		trPix = AllocNamedColor(trColor, black);
+-		gc = XCreateGC(display, rootWin, 0, NULL);
++		gc = XCreateGC(display, snowWin, 0, NULL);
+ 		XGetGCValues(display, gc, 0, &xgcv);
+ 		XSetForeground(display, gc, blackPix);
+ 		XSetFillStyle(display, gc, FillStippled);
+ 		if(strcmp(bgColor,"none") != 0) {
+ 			bgPix = AllocNamedColor(bgColor, white);
+-			XSetWindowBackground(display, rootWin, bgPix);
+-			XClearWindow(display, rootWin);
++			XSetWindowBackground(display, snowWin, bgPix);
++			XClearWindow(display, snowWin);
+ 			XFlush(display);
+ 			if (!UseFillForClear) {
+ 				printf("\nNote: when using backgrounds of one color also specifying\n");
+ 				printf("      -solidbg MAY greatly improve performance!\n");
+ 			}
+ 			else {
+-				ClearSnowGC = XCreateGC(display, rootWin, 0L, &xgcv);
++				ClearSnowGC = XCreateGC(display, snowWin, 0L, &xgcv);
+ 				XCopyGC(display,gc,0,ClearSnowGC);
+ 				XSetForeground(display,ClearSnowGC, bgPix);
+ 			}
+@@ -608,13 +634,13 @@ char *av[];
+ 			exit(1);
+ 		}
+ 		for (flake=0; flake<=SNOWFLAKEMAXTYPE; flake++) {
+-			SnowGC[flake] = XCreateGC(display, rootWin, 0L, &xgcv);
++			SnowGC[flake] = XCreateGC(display, snowWin, 0L, &xgcv);
+ 			XCopyGC(display,gc,0,SnowGC[flake]);
+ 			XSetStipple(display, SnowGC[flake], snowPix[flake].pixmap);
+ 			XSetForeground(display,SnowGC[flake],snowcPix);
+ 			XSetFillStyle(display, SnowGC[flake], FillStippled);
+ 		}
+-		TreesGC = XCreateGC(display, rootWin, 0L, &xgcv);
++		TreesGC = XCreateGC(display, snowWin, 0L, &xgcv);
+ 		XCopyGC(display,gc,0,TreesGC);
+ 		XSetStipple(display, TreesGC, tannenbaumPix[0].pixmap);
+ 		XSetForeground(display,TreesGC,trPix);
+@@ -678,7 +704,7 @@ rc = MWR(1);
+ 														ev.xconfigure.width,
+ 														ev.xconfigure.height,
+ 														ev.xconfigure.border_width,
+-														(rootWin == ev.xconfigure.event)  
++														(snowWin == ev.xconfigure.event)  
+ 												);
+ 									printf("ConfigureNotify calling DDLT\n");
+ 									#endif
+@@ -772,7 +798,7 @@ rc = MWR(1);
+ 		XDestroyRegion(PrevWr);
+ 		XDestroyRegion(WDR);
+ 		XDestroyRegion(rscrr);
+-		XClearWindow(display, rootWin);
++		XClearWindow(display, snowWin);
+ 		XCloseDisplay(display);
+ 		exit(0);
+ }		/* End of the snow */
+@@ -809,6 +835,7 @@ Usage()
+ 		USEPRT("       -nokeepsnowonwindows\n");
+ 		USEPRT("       -nokeepsnowonscreen\n");
+ 		USEPRT("       -nonopopup\n");
++		USEPRT("       -nouseroot\n");
+ 		USEPRT("       -version\n\n");
+ 		USEPRT("Recommended: xsnow -bg SkyBlue3\n");
+ 		exit(1);
+@@ -827,7 +854,7 @@ SigHupHandler()
+ 	XSetForeground(display,FurGC,trPix);
+ 	XSetFillStyle(display,FurGC, FillSolid);
+ 	XSetRegion(display,FurGC,snscr);
+-	XFillRectangle(display,rootWin,FurGC,0,0,display_width,display_height);
++	XFillRectangle(display,snowWin,FurGC,0,0,display_width,display_height);
+ 	XFlush(display);
+ 	signal(SIGHUP, Sig_Hup_ptr);
+ }
+@@ -1002,7 +1029,7 @@ int rx;
+ 		Snow *snow;
+ 		snow = &snowflakes[rx];
+ 		XSetTSOrigin(display, SnowGC[snow->whatFlake], snow->intX, snow->intY);
+-		XFillRectangle(display, rootWin, SnowGC[snow->whatFlake],
++		XFillRectangle(display, snowWin, SnowGC[snow->whatFlake],
+ 				 snow->intX, snow->intY,
+ 				 snowPix[snow->whatFlake].width, snowPix[snow->whatFlake].height);
+ }
+@@ -1015,13 +1042,13 @@ int rx;
+ 		snow = &snowflakes[rx];
+ 	 
+ 		if (UseFillForClear) {
+-			XFillRectangle(display, rootWin, ClearSnowGC,
++			XFillRectangle(display, snowWin, ClearSnowGC,
+ 								 snow->intX, snow->intY,
+ 								 snowPix[snow->whatFlake].width, 
+ 								 snowPix[snow->whatFlake].height);
+ 			}
+ 		else {
+-			XClearArea(display, rootWin, 
++			XClearArea(display, snowWin, 
+ 								 snow->intX, snow->intY,
+ 								 snowPix[snow->whatFlake].width, 
+ 								 snowPix[snow->whatFlake].height,
+@@ -1050,7 +1077,7 @@ DrawTannenbaum(x,y)
+ int x,y;
+ {
+ 		XSetTSOrigin(display, TreesGC, x,y);
+-		XFillRectangle(display, rootWin, TreesGC,
++		XFillRectangle(display, snowWin, TreesGC,
+ 				 x,y,
+ 				 tannenbaumPix[0].width, tannenbaumPix[0].height);
+ }
+@@ -1065,49 +1092,49 @@ void InitSantaPixymaps()
+ 	switch (SantaSize) {
+ 		case 0:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*RegularSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, RegularSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, RegularSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*RegularSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+ 		case 1:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*MediumSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, MediumSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, MediumSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*MediumSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+ 		case 2:
+ 			if (!Rudolf) {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSanta4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*BigSanta1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 			else {
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
+-				rc = XpmCreatePixmapFromData(	display, rootWin, BigSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf1, &SantaPixmap[0], &SantaMaskPixmap[0], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf2, &SantaPixmap[1], &SantaMaskPixmap[1], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf3, &SantaPixmap[2], &SantaMaskPixmap[2], NULL);
++				rc = XpmCreatePixmapFromData(	display, snowWin, BigSantaRudolf4, &SantaPixmap[3], &SantaMaskPixmap[3], NULL);
+ 				sscanf(*BigSantaRudolf1,"%d %d", &SantaWidth,&SantaHeight);
+ 			}
+ 		break;
+@@ -1196,7 +1223,7 @@ DrawSanta() {
+ 											SantaX,SantaY);
+ 	rc = XCopyArea(			display,
+ 											SantaPixmap[CurrentSanta],
+-											rootWin,
++											snowWin,
+ 											gc,
+ 											0,0,SantaWidth,SantaHeight,
+ 											SantaX,SantaY);
+@@ -1209,7 +1236,7 @@ DrawSanta() {
+ void
+ EraseSanta()
+ {
+-	XClearArea(display, rootWin,
++	XClearArea(display, snowWin,
+ 						 SantaX , SantaY,     
+ 						 SantaWidth,SantaHeight,
+ 						 False);
+@@ -1245,6 +1272,17 @@ Pixel dfltPix;
+ 	return pix;
+ }
+ /* ------------------------------------------------------------------ */ 
++int
++HasCompositor(dpy, screen)
++Display * dpy;
++int screen;
++{
++    char prop_name[20];
++    snprintf(prop_name, 20, "_NET_WM_CM_S%d", screen);
++    Atom prop_atom = XInternAtom(dpy, prop_name, False);
++    return XGetSelectionOwner(dpy, prop_atom) != None;
++}
++/* ------------------------------------------------------------------ */ 
+ void sig_alarm()
+ {
+ 		int rand=RandInt(100);
+@@ -1405,7 +1443,7 @@ int DDLT() {
+ 		printf("DDLT: diffR: (%d,%d,%d,%d)\n",
+ 						DiffRect.x,DiffRect.y,DiffRect.x+DiffRect.width,DiffRect.y+DiffRect.height); 
+ 		#endif
+-	  if (0) XClearArea(display, rootWin,
++	  if (0) XClearArea(display, snowWin,
+ 	             				DiffRect.x,
+ 	             				DiffRect.y,
+ 	             				DiffRect.width,              
+@@ -1470,7 +1508,7 @@ int ClearX, ClearY;
+ 		#if debug
+ 		printf("HEAr: clearing (%d,%d,%d,%d)\n", AddX,AddY,AddRect.width,AddRect.height);
+ 		#endif
+-	  XClearArea(display, rootWin,
++	  XClearArea(display, snowWin,
+ 	             AddX,
+ 	             AddY,
+ 	             AddRect.width,              
+@@ -1479,3 +1517,4 @@ int ClearX, ClearY;
+ 	  XSubtractRegion(snscr,SubR, snscr);
+ 	XDestroyRegion(SubR);
+ }
++/* vim: set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab : */
+diff -rupN ./xsnow-1.42/xsnow.hlp xsnow-comp-tmp/xsnow.hlp
+--- ./xsnow-1.42/xsnow.hlp	2000-12-19 15:26:36.000000000 -0500
++++ xsnow-comp-tmp/xsnow.hlp	2016-02-27 19:47:13.448170769 -0500
+@@ -99,6 +99,12 @@
+  all windows, then specify this option. Symptom would be that no snow is
+  kept on any window, but only at the screen bottom
+ 
++    -nouseroot
++ Do not draw on the desktop's root window; instead, create a new window
++ underneath all others and draw there. Should be automatically enabled if
++ you are using a compositing window manger. Also useful if you want to set
++ a background color (with -bg) that won't remain after xsnow exits.
++
+     -version
+  Prints the current Xsnow version.
+ 
+diff -rupN ./xsnow-1.42/xsnow.man xsnow-comp-tmp/xsnow.man
+--- ./xsnow-1.42/xsnow.man	2001-12-15 18:11:04.000000000 -0500
++++ xsnow-comp-tmp/xsnow.man	2016-02-27 19:47:13.448170769 -0500
+@@ -107,6 +107,12 @@ nature. If however, you use an Xserver t
+ all windows, then specify this option. Symptom would be that no snow
+ is kept on any window, but only at the screen bottom.
+ .TP 8
++-nouseroot
++Do not draw on the desktop's root window; instead, create a new window
++underneath all others and draw there. Should be automatically enabled if
++you are using a compositing window manger. Also useful if you want to set
++a background color (with -bg) that won't remain after xsnow exits.
++.TP 8
+ -version
+ Prints the current Xsnow version and does not start Xsnow.
+ The current version (of this man page) is 1.42, December 14th 2001

Consider giving Nix/NixOS a try! <3