./PaxHeaders.8596/sparkleshare-1.1.00000644000000000000000000000013212150404311015174 xustar000000000000000030 mtime=1369573577.342175262 30 atime=1369573578.250175283 30 ctime=1369573577.342175262 sparkleshare-1.1.0/0000755000000000000000000000000012150404311014162 5ustar00rootroot00000000000000sparkleshare-1.1.0/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212117356351017176 xustar000000000000000030 mtime=1363008745.787246161 30 atime=1369573544.722174518 30 ctime=1369573577.310175261 sparkleshare-1.1.0/Makefile.in0000664000175000017500000005751012117356351016564 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/build/m4/shave/shave-libtool.in \ $(top_srcdir)/build/m4/shave/shave.in $(top_srcdir)/configure \ config.guess config.sub install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = build/m4/shave/shave build/m4/shave/shave-libtool CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ basedirs = build SparkleLib SparkleLib/Git SUBDIRS = $(basedirs) $(GUISUBDIRS) DIST_SUBDIRS = $(basedirs) SparkleShare EXTRA_DIST = \ News.txt \ README.md \ legal/License.txt \ legal/Trademark.txt \ legal/Authors.txt DISTCLEANFILES = \ intltool-extract \ intltool-merge \ intltool-update \ gnome-doc-utils.make all: all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): build/m4/shave/shave: $(top_builddir)/config.status $(top_srcdir)/build/m4/shave/shave.in cd $(top_builddir) && $(SHELL) ./config.status $@ build/m4/shave/shave-libtool: $(top_builddir)/config.status $(top_srcdir)/build/m4/shave/shave-libtool.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool clean-local ctags ctags-recursive dist dist-all \ dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am clean-local: rm -rf $(top_builddir)/bin # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/PaxHeaders.8596/missing0000644000000000000000000000013212117356351016525 xustar000000000000000030 mtime=1363008745.115246146 30 atime=1369573447.750172305 30 ctime=1369573577.326175262 sparkleshare-1.1.0/missing0000755000175000017500000002415212117356351016110 0ustar00hbonshbons00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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. # This program 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 program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sparkleshare-1.1.0/PaxHeaders.8596/aclocal.m40000644000000000000000000000013112075245530016767 xustar000000000000000029 mtime=1358252888.99795116 30 atime=1369573449.158172337 30 ctime=1369573577.306175261 sparkleshare-1.1.0/aclocal.m40000664000175000017500000007565212075245530016365 0ustar00hbonshbons00000000000000# generated automatically by aclocal 1.11.3 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, # Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program 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 of the License, or # (at your option) any later version. # # This program 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 program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, # 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([build/m4/shave/shave.m4]) m4_include([build/m4/shamrock/expansions.m4]) m4_include([build/m4/shamrock/mono.m4]) m4_include([build/m4/shamrock/nunit.m4]) m4_include([build/m4/shamrock/programs.m4]) m4_include([build/m4/sparkleshare/gtk-sharp.m4]) m4_include([build/m4/sparkleshare/notify-sharp.m4]) sparkleshare-1.1.0/PaxHeaders.8596/configure0000644000000000000000000000013212075245531017035 xustar000000000000000030 mtime=1358252889.361951168 30 atime=1369573544.742174518 30 ctime=1369573577.314175261 sparkleshare-1.1.0/configure0000775000175000017500000046550012075245531016430 0ustar00hbonshbons00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for SparkleShare 1.1.0. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='SparkleShare' PACKAGE_TARNAME='sparkleshare' PACKAGE_VERSION='1.1.0' PACKAGE_STRING='SparkleShare 1.1.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS Q V OBJC F77 FC CXX CC LIBTOOL SED AM_MAKEFLAGS MAKEFLAGS shavedir NUNIT_LIBS NUNIT_CFLAGS ENABLE_TESTS_FALSE ENABLE_TESTS_TRUE GUISUBDIRS HAVE_APP_INDICATOR_FALSE HAVE_APP_INDICATOR_TRUE APP_INDICATOR_LIBS APP_INDICATOR_CFLAGS WEBKIT_SHARP_LIBS WEBKIT_SHARP_CFLAGS ENABLE_ATK_FALSE ENABLE_ATK_TRUE GTKSHARP_A11Y_LIBS GTKSHARP_A11Y_CFLAGS HAVE_GLIBSHARP_2_12_7_FALSE HAVE_GLIBSHARP_2_12_7_TRUE GLIBSHARP_2_12_7_LIBS GLIBSHARP_2_12_7_CFLAGS GLIBSHARP_LIBS GLIBSHARP_CFLAGS GTKSHARP_LIBS GTKSHARP_CFLAGS ENABLE_RELEASE_FALSE ENABLE_RELEASE_TRUE ENABLE_DEBUG_FALSE ENABLE_DEBUG_TRUE EXTERNAL_NOTIFY_SHARP_FALSE EXTERNAL_NOTIFY_SHARP_TRUE NOTIFY_SHARP_LIBS NOTIFY_SHARP_CFLAGS MCS MONO MONO_MODULE_LIBS MONO_MODULE_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH expanded_datadir expanded_bindir expanded_libdir ACLOCAL_AMFLAGS PKG_CONFIG ASM_VERSION MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_debug enable_release enable_appindicator enable_tests enable_shave ' ac_precious_vars='build_alias host_alias target_alias PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR MONO_MODULE_CFLAGS MONO_MODULE_LIBS NOTIFY_SHARP_CFLAGS NOTIFY_SHARP_LIBS GTKSHARP_CFLAGS GTKSHARP_LIBS GLIBSHARP_CFLAGS GLIBSHARP_LIBS GLIBSHARP_2_12_7_CFLAGS GLIBSHARP_2_12_7_LIBS GTKSHARP_A11Y_CFLAGS GTKSHARP_A11Y_LIBS WEBKIT_SHARP_CFLAGS WEBKIT_SHARP_LIBS APP_INDICATOR_CFLAGS APP_INDICATOR_LIBS NUNIT_CFLAGS NUNIT_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures SparkleShare 1.1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/sparkleshare] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of SparkleShare 1.1.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-debug Use 'DEBUG' Configuration [default=YES] --enable-release Use 'RELEASE' Configuration [default=NO] --enable-appindicator=[no/auto/yes] Build support for application indicators --enable-tests Enable NUnit tests --enable-shave use shave to make the build pretty [[default=yes]] Some influential environment variables: PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path MONO_MODULE_CFLAGS C compiler flags for MONO_MODULE, overriding pkg-config MONO_MODULE_LIBS linker flags for MONO_MODULE, overriding pkg-config NOTIFY_SHARP_CFLAGS C compiler flags for NOTIFY_SHARP, overriding pkg-config NOTIFY_SHARP_LIBS linker flags for NOTIFY_SHARP, overriding pkg-config GTKSHARP_CFLAGS C compiler flags for GTKSHARP, overriding pkg-config GTKSHARP_LIBS linker flags for GTKSHARP, overriding pkg-config GLIBSHARP_CFLAGS C compiler flags for GLIBSHARP, overriding pkg-config GLIBSHARP_LIBS linker flags for GLIBSHARP, overriding pkg-config GLIBSHARP_2_12_7_CFLAGS C compiler flags for GLIBSHARP_2_12_7, overriding pkg-config GLIBSHARP_2_12_7_LIBS linker flags for GLIBSHARP_2_12_7, overriding pkg-config GTKSHARP_A11Y_CFLAGS C compiler flags for GTKSHARP_A11Y, overriding pkg-config GTKSHARP_A11Y_LIBS linker flags for GTKSHARP_A11Y, overriding pkg-config WEBKIT_SHARP_CFLAGS C compiler flags for WEBKIT_SHARP, overriding pkg-config WEBKIT_SHARP_LIBS linker flags for WEBKIT_SHARP, overriding pkg-config APP_INDICATOR_CFLAGS C compiler flags for APP_INDICATOR, overriding pkg-config APP_INDICATOR_LIBS linker flags for APP_INDICATOR, overriding pkg-config NUNIT_CFLAGS C compiler flags for NUNIT, overriding pkg-config NUNIT_LIBS linker flags for NUNIT, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF SparkleShare configure 1.1.0 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by SparkleShare $as_me 1.1.0, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='sparkleshare' VERSION='1.1.0' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 $as_echo_n "checking how to create a pax tar archive... " >&6; } # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' _am_tools=${am_cv_prog_tar_pax-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done am__tar="$_am_tar --format=posix -chf - "'"$$tardir"' am__tar_="$_am_tar --format=posix -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x pax -w "$$tardir"' am__tar_='pax -L -x pax -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H pax -L' am__tar_='find "$tardir" -print | cpio -o -H pax -L' am__untar='cpio -i -H pax -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_pax}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -rf conftest.dir if test -s conftest.tar; then { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir if ${am_cv_prog_tar_pax+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_pax=$_am_tool fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 $as_echo "$am_cv_prog_tar_pax" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE ASM_VERSION=1.1.0 # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$PKG_CONFIG" = "xno"; then as_fn_error $? "You need to install pkg-config" "$LINENO" 5 fi ACLOCAL_AMFLAGS="-I build/m4/sparkleshare -I build/m4/shamrock -I build/m4/shave \${ACLOCAL_FLAGS}" expanded_libdir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $libdir )` expanded_bindir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $bindir )` case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac expanded_datadir=`(eval echo $datadir)` expanded_datadir=`(eval echo $expanded_datadir)` if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MONO_MODULE" >&5 $as_echo_n "checking for MONO_MODULE... " >&6; } if test -n "$MONO_MODULE_CFLAGS"; then pkg_cv_MONO_MODULE_CFLAGS="$MONO_MODULE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= 2.8\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= 2.8") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MONO_MODULE_CFLAGS=`$PKG_CONFIG --cflags "mono >= 2.8" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MONO_MODULE_LIBS"; then pkg_cv_MONO_MODULE_LIBS="$MONO_MODULE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= 2.8\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= 2.8") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MONO_MODULE_LIBS=`$PKG_CONFIG --libs "mono >= 2.8" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono >= 2.8" 2>&1` else MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono >= 2.8" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MONO_MODULE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (mono >= 2.8) were not met: $MONO_MODULE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MONO_MODULE_CFLAGS and MONO_MODULE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MONO_MODULE_CFLAGS and MONO_MODULE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else MONO_MODULE_CFLAGS=$pkg_cv_MONO_MODULE_CFLAGS MONO_MODULE_LIBS=$pkg_cv_MONO_MODULE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # Extract the first word of "mono", so it can be a program name with args. set dummy mono; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MONO+:} false; then : $as_echo_n "(cached) " >&6 else case $MONO in [\\/]* | ?:[\\/]*) ac_cv_path_MONO="$MONO" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MONO="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MONO" && ac_cv_path_MONO="no" ;; esac fi MONO=$ac_cv_path_MONO if test -n "$MONO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MONO" >&5 $as_echo "$MONO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$MONO" = "xno"; then as_fn_error $? "You need to install 'mono'" "$LINENO" 5 fi if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= 2.8\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= 2.8") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Extract the first word of "dmcs", so it can be a program name with args. set dummy dmcs; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MCS+:} false; then : $as_echo_n "(cached) " >&6 else case $MCS in [\\/]* | ?:[\\/]*) ac_cv_path_MCS="$MCS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MCS" && ac_cv_path_MCS="no" ;; esac fi MCS=$ac_cv_path_MCS if test -n "$MCS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5 $as_echo "$MCS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$MCS" = "xno"; then as_fn_error $? "You need to install 'dmcs'" "$LINENO" 5 fi for asm in $(echo "mono,4.0,System System.Security Mono.Posix " | cut -d, -f3- | sed 's/\,/ /g') do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mono 4.0 GAC for $asm.dll" >&5 $as_echo_n "checking for Mono 4.0 GAC for $asm.dll... " >&6; } if test \ -e "$($PKG_CONFIG --variable=libdir mono)/mono/4.0/$asm.dll" -o \ -e "$($PKG_CONFIG --variable=prefix mono)/lib/mono/4.0/$asm.dll"; \ then \ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } as_fn_error $? "missing required Mono 4.0 assembly: $asm.dll" "$LINENO" 5 fi done fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NOTIFY_SHARP" >&5 $as_echo_n "checking for NOTIFY_SHARP... " >&6; } if test -n "$NOTIFY_SHARP_CFLAGS"; then pkg_cv_NOTIFY_SHARP_CFLAGS="$NOTIFY_SHARP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"notify-sharp\""; } >&5 ($PKG_CONFIG --exists --print-errors "notify-sharp") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NOTIFY_SHARP_CFLAGS=`$PKG_CONFIG --cflags "notify-sharp" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$NOTIFY_SHARP_LIBS"; then pkg_cv_NOTIFY_SHARP_LIBS="$NOTIFY_SHARP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"notify-sharp\""; } >&5 ($PKG_CONFIG --exists --print-errors "notify-sharp") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NOTIFY_SHARP_LIBS=`$PKG_CONFIG --libs "notify-sharp" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "notify-sharp" 2>&1` else NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "notify-sharp" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$NOTIFY_SHARP_PKG_ERRORS" >&5 have_notify_sharp=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_notify_sharp=no else NOTIFY_SHARP_CFLAGS=$pkg_cv_NOTIFY_SHARP_CFLAGS NOTIFY_SHARP_LIBS=$pkg_cv_NOTIFY_SHARP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_notify_sharp=yes fi if test "x$have_notify_sharp" = "xyes"; then if true; then EXTERNAL_NOTIFY_SHARP_TRUE= EXTERNAL_NOTIFY_SHARP_FALSE='#' else EXTERNAL_NOTIFY_SHARP_TRUE='#' EXTERNAL_NOTIFY_SHARP_FALSE= fi else if false; then EXTERNAL_NOTIFY_SHARP_TRUE= EXTERNAL_NOTIFY_SHARP_FALSE='#' else EXTERNAL_NOTIFY_SHARP_TRUE='#' EXTERNAL_NOTIFY_SHARP_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; enable_debug=yes else enable_debug=no fi if test x$enable_debug = xyes; then ENABLE_DEBUG_TRUE= ENABLE_DEBUG_FALSE='#' else ENABLE_DEBUG_TRUE='#' ENABLE_DEBUG_FALSE= fi if test "x$enable_debug" = "xyes" ; then CONFIG_REQUESTED="yes" fi # Check whether --enable-release was given. if test "${enable_release+set}" = set; then : enableval=$enable_release; enable_release=yes else enable_release=no fi if test x$enable_release = xyes; then ENABLE_RELEASE_TRUE= ENABLE_RELEASE_FALSE='#' else ENABLE_RELEASE_TRUE='#' ENABLE_RELEASE_FALSE= fi if test "x$enable_release" = "xyes" ; then CONFIG_REQUESTED="yes" fi if test -z "$CONFIG_REQUESTED" ; then if true; then ENABLE_DEBUG_TRUE= ENABLE_DEBUG_FALSE='#' else ENABLE_DEBUG_TRUE='#' ENABLE_DEBUG_FALSE= fi enable_debug=yes fi #PKG_CHECK_MODULES([NDESK_DBUS], [ndesk-dbus-1.0]) #AC_SUBST(NDESK_DBUS_LIBS) #PKG_CHECK_MODULES([NDESK_DBUS_GLIB], [ndesk-dbus-glib-1.0]) #AC_SUBST(NDESK_DBUS_GLIB_LIBS) GTKSHARP_REQUIRED=2.12.2 pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKSHARP" >&5 $as_echo_n "checking for GTKSHARP... " >&6; } if test -n "$GTKSHARP_CFLAGS"; then pkg_cv_GTKSHARP_CFLAGS="$GTKSHARP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 >= \$GTKSHARP_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKSHARP_CFLAGS=`$PKG_CONFIG --cflags "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTKSHARP_LIBS"; then pkg_cv_GTKSHARP_LIBS="$GTKSHARP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 >= \$GTKSHARP_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKSHARP_LIBS=`$PKG_CONFIG --libs "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTKSHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1` else GTKSHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTKSHARP_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk-sharp-2.0 >= $GTKSHARP_REQUIRED) were not met: $GTKSHARP_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTKSHARP_CFLAGS and GTKSHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTKSHARP_CFLAGS and GTKSHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GTKSHARP_CFLAGS=$pkg_cv_GTKSHARP_CFLAGS GTKSHARP_LIBS=$pkg_cv_GTKSHARP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIBSHARP" >&5 $as_echo_n "checking for GLIBSHARP... " >&6; } if test -n "$GLIBSHARP_CFLAGS"; then pkg_cv_GLIBSHARP_CFLAGS="$GLIBSHARP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0 >= \$GTKSHARP_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0 >= $GTKSHARP_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIBSHARP_CFLAGS=`$PKG_CONFIG --cflags "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GLIBSHARP_LIBS"; then pkg_cv_GLIBSHARP_LIBS="$GLIBSHARP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0 >= \$GTKSHARP_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0 >= $GTKSHARP_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIBSHARP_LIBS=`$PKG_CONFIG --libs "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLIBSHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1` else GLIBSHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIBSHARP_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-sharp-2.0 >= $GTKSHARP_REQUIRED) were not met: $GLIBSHARP_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GLIBSHARP_CFLAGS and GLIBSHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GLIBSHARP_CFLAGS and GLIBSHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GLIBSHARP_CFLAGS=$pkg_cv_GLIBSHARP_CFLAGS GLIBSHARP_LIBS=$pkg_cv_GLIBSHARP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIBSHARP_2_12_7" >&5 $as_echo_n "checking for GLIBSHARP_2_12_7... " >&6; } if test -n "$GLIBSHARP_2_12_7_CFLAGS"; then pkg_cv_GLIBSHARP_2_12_7_CFLAGS="$GLIBSHARP_2_12_7_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0 >= 2.12.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0 >= 2.12.7") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIBSHARP_2_12_7_CFLAGS=`$PKG_CONFIG --cflags "glib-sharp-2.0 >= 2.12.7" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GLIBSHARP_2_12_7_LIBS"; then pkg_cv_GLIBSHARP_2_12_7_LIBS="$GLIBSHARP_2_12_7_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0 >= 2.12.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0 >= 2.12.7") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIBSHARP_2_12_7_LIBS=`$PKG_CONFIG --libs "glib-sharp-2.0 >= 2.12.7" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLIBSHARP_2_12_7_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-sharp-2.0 >= 2.12.7" 2>&1` else GLIBSHARP_2_12_7_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-sharp-2.0 >= 2.12.7" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIBSHARP_2_12_7_PKG_ERRORS" >&5 HAVE_GLIBSHARP_2_12_7=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } HAVE_GLIBSHARP_2_12_7=no else GLIBSHARP_2_12_7_CFLAGS=$pkg_cv_GLIBSHARP_2_12_7_CFLAGS GLIBSHARP_2_12_7_LIBS=$pkg_cv_GLIBSHARP_2_12_7_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } HAVE_GLIBSHARP_2_12_7=yes fi if test "$HAVE_GLIBSHARP_2_12_7" = "yes"; then HAVE_GLIBSHARP_2_12_7_TRUE= HAVE_GLIBSHARP_2_12_7_FALSE='#' else HAVE_GLIBSHARP_2_12_7_TRUE='#' HAVE_GLIBSHARP_2_12_7_FALSE= fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKSHARP_A11Y" >&5 $as_echo_n "checking for GTKSHARP_A11Y... " >&6; } if test -n "$GTKSHARP_A11Y_CFLAGS"; then pkg_cv_GTKSHARP_A11Y_CFLAGS="$GTKSHARP_A11Y_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 >= 2.12.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0 >= 2.12.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKSHARP_A11Y_CFLAGS=`$PKG_CONFIG --cflags "gtk-sharp-2.0 >= 2.12.10" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTKSHARP_A11Y_LIBS"; then pkg_cv_GTKSHARP_A11Y_LIBS="$GTKSHARP_A11Y_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 >= 2.12.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0 >= 2.12.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKSHARP_A11Y_LIBS=`$PKG_CONFIG --libs "gtk-sharp-2.0 >= 2.12.10" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTKSHARP_A11Y_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-sharp-2.0 >= 2.12.10" 2>&1` else GTKSHARP_A11Y_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-sharp-2.0 >= 2.12.10" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTKSHARP_A11Y_PKG_ERRORS" >&5 gtksharp_with_a11y=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } gtksharp_with_a11y=no else GTKSHARP_A11Y_CFLAGS=$pkg_cv_GTKSHARP_A11Y_CFLAGS GTKSHARP_A11Y_LIBS=$pkg_cv_GTKSHARP_A11Y_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } gtksharp_with_a11y=yes fi if test "x$gtksharp_with_a11y" = "xyes"; then ENABLE_ATK_TRUE= ENABLE_ATK_FALSE='#' else ENABLE_ATK_TRUE='#' ENABLE_ATK_FALSE= fi # Check whether --enable-appindicator was given. if test "${enable_appindicator+set}" = set; then : enableval=$enable_appindicator; enable_appindicator=$enableval else enable_appindicator="auto" fi OSNAME=`uname -s` if test "$OSNAME" = "Linux" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT_SHARP" >&5 $as_echo_n "checking for WEBKIT_SHARP... " >&6; } if test -n "$WEBKIT_SHARP_CFLAGS"; then pkg_cv_WEBKIT_SHARP_CFLAGS="$WEBKIT_SHARP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit-sharp-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "webkit-sharp-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_WEBKIT_SHARP_CFLAGS=`$PKG_CONFIG --cflags "webkit-sharp-1.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$WEBKIT_SHARP_LIBS"; then pkg_cv_WEBKIT_SHARP_LIBS="$WEBKIT_SHARP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit-sharp-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "webkit-sharp-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_WEBKIT_SHARP_LIBS=`$PKG_CONFIG --libs "webkit-sharp-1.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "webkit-sharp-1.0" 2>&1` else WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "webkit-sharp-1.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$WEBKIT_SHARP_PKG_ERRORS" >&5 have_webkit_sharp=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_webkit_sharp=no else WEBKIT_SHARP_CFLAGS=$pkg_cv_WEBKIT_SHARP_CFLAGS WEBKIT_SHARP_LIBS=$pkg_cv_WEBKIT_SHARP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_webkit_sharp=yes fi if test "x$have_webkit_sharp" = "xno" ; then as_fn_error $? "\"webkit-sharp is a required dependency: you need to install the appropriate devel package before you can compile\"" "$LINENO" 5 fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NOTIFY_SHARP" >&5 $as_echo_n "checking for NOTIFY_SHARP... " >&6; } if test -n "$NOTIFY_SHARP_CFLAGS"; then pkg_cv_NOTIFY_SHARP_CFLAGS="$NOTIFY_SHARP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"notify-sharp\""; } >&5 ($PKG_CONFIG --exists --print-errors "notify-sharp") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NOTIFY_SHARP_CFLAGS=`$PKG_CONFIG --cflags "notify-sharp" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$NOTIFY_SHARP_LIBS"; then pkg_cv_NOTIFY_SHARP_LIBS="$NOTIFY_SHARP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"notify-sharp\""; } >&5 ($PKG_CONFIG --exists --print-errors "notify-sharp") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NOTIFY_SHARP_LIBS=`$PKG_CONFIG --libs "notify-sharp" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "notify-sharp" 2>&1` else NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "notify-sharp" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$NOTIFY_SHARP_PKG_ERRORS" >&5 have_notify_sharp=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_notify_sharp=no else NOTIFY_SHARP_CFLAGS=$pkg_cv_NOTIFY_SHARP_CFLAGS NOTIFY_SHARP_LIBS=$pkg_cv_NOTIFY_SHARP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_notify_sharp=yes fi if test "x$have_notify_sharp" = "xno" ; then as_fn_error $? "\"notify-sharp is a required dependency: you need to install the appropriate devel package before you can compile\"" "$LINENO" 5 fi APPINDICATOR_REQUIRED=0.0.7 if test x$enable_appindicator = xauto ; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"appindicator-sharp-0.1 >= \$APPINDICATOR_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then enable_appindicator="yes" else enable_appindicator="no" fi fi if test x$enable_appindicator = xyes ; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"appindicator-sharp-0.1 >= \$APPINDICATOR_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : else as_fn_error $? "appindicator-sharp-0.1 is not installed" "$LINENO" 5 fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for APP_INDICATOR" >&5 $as_echo_n "checking for APP_INDICATOR... " >&6; } if test -n "$APP_INDICATOR_CFLAGS"; then pkg_cv_APP_INDICATOR_CFLAGS="$APP_INDICATOR_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"appindicator-sharp-0.1 >= \$APPINDICATOR_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_APP_INDICATOR_CFLAGS=`$PKG_CONFIG --cflags "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$APP_INDICATOR_LIBS"; then pkg_cv_APP_INDICATOR_LIBS="$APP_INDICATOR_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"appindicator-sharp-0.1 >= \$APPINDICATOR_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_APP_INDICATOR_LIBS=`$PKG_CONFIG --libs "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then APP_INDICATOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>&1` else APP_INDICATOR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$APP_INDICATOR_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED) were not met: $APP_INDICATOR_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables APP_INDICATOR_CFLAGS and APP_INDICATOR_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables APP_INDICATOR_CFLAGS and APP_INDICATOR_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else APP_INDICATOR_CFLAGS=$pkg_cv_APP_INDICATOR_CFLAGS APP_INDICATOR_LIBS=$pkg_cv_APP_INDICATOR_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi $as_echo "#define HAVE_APP_INDICATOR 1" >>confdefs.h fi GUISUBDIRS=SparkleShare else GUISUBDIRS= fi if test x"$enable_appindicator" = xyes; then HAVE_APP_INDICATOR_TRUE= HAVE_APP_INDICATOR_FALSE='#' else HAVE_APP_INDICATOR_TRUE='#' HAVE_APP_INDICATOR_FALSE= fi NUNIT_REQUIRED=2.4.7 # Check whether --enable-tests was given. if test "${enable_tests+set}" = set; then : enableval=$enable_tests; enable_tests=$enableval else enable_tests="no" fi if test "x$enable_tests" = "xno"; then do_tests=no if false; then ENABLE_TESTS_TRUE= ENABLE_TESTS_FALSE='#' else ENABLE_TESTS_TRUE='#' ENABLE_TESTS_FALSE= fi else pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NUNIT" >&5 $as_echo_n "checking for NUNIT... " >&6; } if test -n "$NUNIT_CFLAGS"; then pkg_cv_NUNIT_CFLAGS="$NUNIT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nunit >= \$NUNIT_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "nunit >= $NUNIT_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NUNIT_CFLAGS=`$PKG_CONFIG --cflags "nunit >= $NUNIT_REQUIRED" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$NUNIT_LIBS"; then pkg_cv_NUNIT_LIBS="$NUNIT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nunit >= \$NUNIT_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "nunit >= $NUNIT_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NUNIT_LIBS=`$PKG_CONFIG --libs "nunit >= $NUNIT_REQUIRED" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "nunit >= $NUNIT_REQUIRED" 2>&1` else NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "nunit >= $NUNIT_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$NUNIT_PKG_ERRORS" >&5 do_tests="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } do_tests="no" else NUNIT_CFLAGS=$pkg_cv_NUNIT_CFLAGS NUNIT_LIBS=$pkg_cv_NUNIT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } do_tests="yes" fi if test "x$do_tests" = "xyes"; then ENABLE_TESTS_TRUE= ENABLE_TESTS_FALSE='#' else ENABLE_TESTS_TRUE='#' ENABLE_TESTS_FALSE= fi if test "x$do_tests" = "xno"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NUNIT" >&5 $as_echo_n "checking for NUNIT... " >&6; } if test -n "$NUNIT_CFLAGS"; then pkg_cv_NUNIT_CFLAGS="$NUNIT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-nunit >= 2.4\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono-nunit >= 2.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NUNIT_CFLAGS=`$PKG_CONFIG --cflags "mono-nunit >= 2.4" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$NUNIT_LIBS"; then pkg_cv_NUNIT_LIBS="$NUNIT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-nunit >= 2.4\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono-nunit >= 2.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NUNIT_LIBS=`$PKG_CONFIG --libs "mono-nunit >= 2.4" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono-nunit >= 2.4" 2>&1` else NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono-nunit >= 2.4" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$NUNIT_PKG_ERRORS" >&5 do_tests="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } do_tests="no" else NUNIT_CFLAGS=$pkg_cv_NUNIT_CFLAGS NUNIT_LIBS=$pkg_cv_NUNIT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } do_tests="yes" fi if test "x$do_tests" = "xyes"; then ENABLE_TESTS_TRUE= ENABLE_TESTS_FALSE='#' else ENABLE_TESTS_TRUE='#' ENABLE_TESTS_FALSE= fi if test "x$do_tests" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find nunit: tests will not be available" >&5 $as_echo "$as_me: WARNING: Could not find nunit: tests will not be available" >&2;} fi fi fi # Check whether --enable-shave was given. if test "${enable_shave+set}" = set; then : enableval=$enable_shave; else enable_shave=yes fi if test x"$enable_shave" = xyes; then shavedir="$ac_pwd/build/m4/shave" MAKEFLAGS=-s AM_MAKEFLAGS='`test -z $V && echo -s`' # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_SED+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$SED"; then ac_cv_prog_SED="$SED" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_SED="sed" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_SED" && ac_cv_prog_SED="false" fi fi SED=$ac_cv_prog_SED if test -n "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi SHAVE_SAVED_LIBTOOL=$LIBTOOL LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'" SHAVE_SAVED_CC=$CC SHAVE_SAVED_CXX=$CXX SHAVE_SAVED_FC=$FC SHAVE_SAVED_F77=$F77 SHAVE_SAVED_OBJC=$OBJC SHAVE_SAVED_MCS=$MCS CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}" CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}" FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}" F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}" OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}" MCS="${SHELL} ${shavedir}/shave mcs ${SHAVE_SAVED_MCS}" V=@ else V=1 fi Q='$(V:1=)' ac_config_files="$ac_config_files build/Makefile build/m4/Makefile build/m4/shave/shave build/m4/shave/shave-libtool SparkleLib/Defines.cs SparkleLib/Makefile SparkleLib/Git/Makefile SparkleShare/Common/Makefile SparkleShare/Common/HTML/Makefile SparkleShare/Common/Plugins/Makefile SparkleShare/Common/Pixmaps/Makefile SparkleShare/Linux/Makefile SparkleShare/Linux/Pixmaps/Makefile SparkleShare/Linux/Pixmaps/icons/Makefile SparkleShare/Linux/Pixmaps/icons/gnome/Makefile SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile SparkleShare/Linux/sparkleshare SparkleShare/Makefile Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EXTERNAL_NOTIFY_SHARP_TRUE}" && test -z "${EXTERNAL_NOTIFY_SHARP_FALSE}"; then as_fn_error $? "conditional \"EXTERNAL_NOTIFY_SHARP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EXTERNAL_NOTIFY_SHARP_TRUE}" && test -z "${EXTERNAL_NOTIFY_SHARP_FALSE}"; then as_fn_error $? "conditional \"EXTERNAL_NOTIFY_SHARP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_DEBUG_TRUE}" && test -z "${ENABLE_DEBUG_FALSE}"; then as_fn_error $? "conditional \"ENABLE_DEBUG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_RELEASE_TRUE}" && test -z "${ENABLE_RELEASE_FALSE}"; then as_fn_error $? "conditional \"ENABLE_RELEASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_DEBUG_TRUE}" && test -z "${ENABLE_DEBUG_FALSE}"; then as_fn_error $? "conditional \"ENABLE_DEBUG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GLIBSHARP_2_12_7_TRUE}" && test -z "${HAVE_GLIBSHARP_2_12_7_FALSE}"; then as_fn_error $? "conditional \"HAVE_GLIBSHARP_2_12_7\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_ATK_TRUE}" && test -z "${ENABLE_ATK_FALSE}"; then as_fn_error $? "conditional \"ENABLE_ATK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_APP_INDICATOR_TRUE}" && test -z "${HAVE_APP_INDICATOR_FALSE}"; then as_fn_error $? "conditional \"HAVE_APP_INDICATOR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_TESTS_TRUE}" && test -z "${ENABLE_TESTS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_TESTS_TRUE}" && test -z "${ENABLE_TESTS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_TESTS_TRUE}" && test -z "${ENABLE_TESTS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by SparkleShare $as_me 1.1.0, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ SparkleShare config.status 1.1.0 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "build/Makefile") CONFIG_FILES="$CONFIG_FILES build/Makefile" ;; "build/m4/Makefile") CONFIG_FILES="$CONFIG_FILES build/m4/Makefile" ;; "build/m4/shave/shave") CONFIG_FILES="$CONFIG_FILES build/m4/shave/shave" ;; "build/m4/shave/shave-libtool") CONFIG_FILES="$CONFIG_FILES build/m4/shave/shave-libtool" ;; "SparkleLib/Defines.cs") CONFIG_FILES="$CONFIG_FILES SparkleLib/Defines.cs" ;; "SparkleLib/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleLib/Makefile" ;; "SparkleLib/Git/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleLib/Git/Makefile" ;; "SparkleShare/Common/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Common/Makefile" ;; "SparkleShare/Common/HTML/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Common/HTML/Makefile" ;; "SparkleShare/Common/Plugins/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Common/Plugins/Makefile" ;; "SparkleShare/Common/Pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Common/Pixmaps/Makefile" ;; "SparkleShare/Linux/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Linux/Makefile" ;; "SparkleShare/Linux/Pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Linux/Pixmaps/Makefile" ;; "SparkleShare/Linux/Pixmaps/icons/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Linux/Pixmaps/icons/Makefile" ;; "SparkleShare/Linux/Pixmaps/icons/gnome/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Linux/Pixmaps/icons/gnome/Makefile" ;; "SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile" ;; "SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile" ;; "SparkleShare/Linux/sparkleshare") CONFIG_FILES="$CONFIG_FILES SparkleShare/Linux/sparkleshare" ;; "SparkleShare/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Makefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo " SparkleShare ${VERSION} Configuration: Prefix : ${prefix} " sparkleshare-1.1.0/PaxHeaders.8596/SparkleShare0000644000000000000000000000013212150404311017423 xustar000000000000000030 mtime=1369573577.742175271 30 atime=1369573578.250175283 30 ctime=1369573577.742175271 sparkleshare-1.1.0/SparkleShare/0000755000000000000000000000000012150404311016546 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212117356351021562 xustar000000000000000030 mtime=1363008745.659246158 30 atime=1369573545.130174527 30 ctime=1369573577.650175269 sparkleshare-1.1.0/SparkleShare/Makefile.in0000664000175000017500000004225112117356351021144 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = SparkleShare DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = Linux \ Common all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/Common0000644000000000000000000000013212150404312020654 xustar000000000000000030 mtime=1369573578.078175278 30 atime=1369573578.250175283 30 ctime=1369573578.078175278 sparkleshare-1.1.0/SparkleShare/Common/0000755000000000000000000000000012150404312017777 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/Common/PaxHeaders.8596/Makefile.in0000644000000000000000000000013112117356351023011 xustar000000000000000029 mtime=1363008745.33124615 30 atime=1369573545.598174538 30 ctime=1369573578.074175279 sparkleshare-1.1.0/SparkleShare/Common/Makefile.in0000664000175000017500000004231112117356351022371 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = SparkleShare/Common DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = HTML \ Plugins \ Pixmaps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Common/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Common/PaxHeaders.8596/Pixmaps0000644000000000000000000000013212150404312022275 xustar000000000000000030 mtime=1369573578.242175282 30 atime=1369573578.250175283 30 ctime=1369573578.242175282 sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/0000755000000000000000000000000012150404312021420 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212117356351024433 xustar000000000000000030 mtime=1363008745.363246152 30 atime=1369573545.786174542 30 ctime=1369573578.242175282 sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/Makefile.in0000664000175000017500000003111212117356351024007 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = SparkleShare/Common/Pixmaps DIST_COMMON = $(dist_pixmaps_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pixmapsdir)" DATA = $(dist_pixmaps_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_pixmaps_DATA = \ side-splash.png \ user-icon-default.png \ tutorial-slide-1.png\ tutorial-slide-2.png \ about.png pixmapsdir = $(pkgdatadir)/pixmaps/ MAINTAINERCLEANFILES = \ Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Common/Pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Common/Pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_pixmapsDATA: $(dist_pixmaps_DATA) @$(NORMAL_INSTALL) test -z "$(pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" @list='$(dist_pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapsdir)" || exit $$?; \ done uninstall-dist_pixmapsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pixmapsdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(pixmapsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_pixmapsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_pixmapsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_pixmapsDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-dist_pixmapsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/PaxHeaders.8596/side-splash.png0000644000000000000000000000013212054411677025313 xustar000000000000000030 mtime=1353847743.056423701 30 atime=1369573475.774172944 30 ctime=1369573578.230175282 sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/side-splash.png0000775000175000017500000017742112054411677024710 0ustar00hbonshbons00000000000000PNG  IHDRoIDATx^ߏ]UZ{LkhigtvSPBHȋ>賏> $DĄR!T@*؀`ATi*{Ϗ{N';si\v{|f]k|LH}q3.9C"W.}-ߴuWYor&4.wy~g9'Kyq lH`(r'yll,;/VOGhm3b`#!'6*@$xQ"ԨlwKKNap'+S#2He}D6Ys ̤:"9hg'OJcm]֖V8)ObpuÕc$J7 *-i_#TMN+>%'D*+ DN%0Uy,NN`*OJ8U%P2Äy剎M=C@*T{A2#,ђK1'PdV@=ʧ8a˓8X;-hSr@N-մ1L >ȓxge2^wxy 8W)ɕ "'Ec %ZC(q':9砓< KKǔ>9 TStZ.OU8RQа$D `ȯSDDz/Koix",]&$bAaVҋ'a\ l>Fɞ"Od[)1{S(:{R2Vʓxrr4F'zEydޫg(,q'ʈB =:R/\ry# J,:9 )+.OlTbSlN8TUR(9WIIȉz}-{8}:˵3R/{=6ģHv,NN{AzvƓr JN:R~%$7r,ɱGP1BIJyK!H p 9<ƒ(2} qȍbo XHrZT Nv1K!ED''.OG|+ED''r%rreKN l<ԵPp|=.2; X֒ӱI+x@Ix V$'yG_rٜGdOT4yByT1r4HJ0XFyu$\e^@KN6ɓx hy5F$'':9+DD59!U6Tei{:(08cdGdU2Rpl`B yyrμ*S3oL ֶR 9kn05Du6':9e! .OHeO(mBWQ)(%Xr2S&c/,yrһcWvzh$=&49Fx3llɩ1$$d)u۶sp'vgg>0k!"@뽲#ž3 hm9iEsWOo|dhi|iSo$Ѐ]e ݖR~9rXr^i|}Ke<0ΕW\uWW/@ѪedYzՕtO= ]h\)lSkOE#/tfyһmn]+]פIR9|wwN0t`_קhm! {$JPr18RV+Ouߖ4I:{S}Z@ }rq7v )IS-<9,yv_=c 3<7M_00c'_;OGw9;GB ,I9ObHD<짿:{iK`(?y/v0 ,9Ý^~ `b F$ǵ{(J^O!SUn_2Ւs[yeyavmDx=G_}=`-4{ z*YIE@%9<14Y(3gvv޵^^߰6I$ m#5$ԪU_ި}TMU[\8@ s|ns4fFgΞy>}gBB7 5y@u P1 -)lwoM_t1P8?p7i6| d !l',`3pκTw'X3l{ j4KC ~1櫭6*=Ӂ".xPC9}wɦ MwՎ.lF¥n\ÖeQ.~IJ#(N^uْ/5W Ķ=U}o񒲢zús8Lؼ Q45矜 6U;*#v|##q qMȥ>j͊s #ʆ1QNo.R-PTǥщ@4Ա?ƻadHf EmYMVZR|1fWDe=qIa[Y5Xkׂ`œ67+M?ߞ_v-5R~GJk7-E9ּotbkr879f LE3O7XHE;ڂkN3Y԰fo1}c#@%('&TF 3/ZBFcFwn*|dkze>&됪5Ɗps6gBi$O+ F<6('u,J A\1j(0 128s,P:v)_L>5Xrzj^QXQPzN}EٖFwjș+ PaX_\jeU<Oxw0M6~xT*`2TKGb׈ cJ>o0|kvl8`RDk(D` )Һ @AM9MHyH[<4_ld3t,$ PF3,h:X`ѷFO]m[DЬ4믨os!>#' /mor2),(g.k:5n>:qʵ]-d*DaA`0wJXĨ( +tHWN1Yuk?Y YEƄrb#[RG 30~@?WLK}fxtϿxB+6t$):!~0W0k|Һ ߡ[8_ǣg`Β&p-2 'E;<[>%ZZ:ysmAWSY Dh' 82x/H ն<CKomjz8I4 䌉4&yUvY'yx6 ysɅs㍭u,N.dщL9 <&,[UH8l̻ٜj>GHyévyog0.cRq>r"U?x ^MagmMnN͓i[Gyz¾q!& (R"$-Agi^սGz |΃ٛvݥ:YYlCI;}yt65 |Ӊ5&:H,Z%-Xa.U4BoDU+<K" %}T &’o{,Z{\+96)$crL܉Bf iԔ{ ("R?t:_qҙ(vVN\8Dz-cFU!2/YK~y2p.W 'lQsܢ./|6'l1SFJεe5c)x#f56,6NE@p=ɹ{rҰYݲX9r{*K 5&SmP*/ H a*CmPEs1XE\ :xNn;v f&7l%5GL I'LS4!'8T|X~ C?^yu3L=fV4xdaC8B}.x76L cTI^ΨYNgl V]6㖵NeG~2wr)a(tֱ>Ag?6B%\ʢ(aG`M|6E =#/&r^rUUn8ZnX"8Uo$:hH GUIb?B>]FXőhLG.*̸-Y@eł蚾]2o61,q܌ I+ǢHx`0/;թhĀ#]$l?*> jnJoL,F1Ym"EĆbHv Ob,?\u&4[*t"orK|baSW_>sis୽?ۼ~ł[s):jXȺ}&B47]E3{s)"JI SwHe$jOxBn]*$Oys~=(w$hMhZG"˚ܵ|!}9"HAv8䔐;p͏@jOj9n'01>u(n [\5hd+包hǹ6>7zɰ1X@<1c!UosK!^I~z<1TmYy:-l]X5S,aۂ)d`uh qS<iNlMg٨LGttjMMWk)5wpKK'texaL+jvLFlۨ')EJ1X<9DeQjJ t<:s0k$w=k`>[f,7*M&c0 TϾqg%{c7:#{Ԥ YIH]pξÍ##ᱏӐİzGp5W;Cu/kdd:JeLڭ*)r]h2flkwPSSBߣQ ʀFWJ6t9ujfbHt0*!/Uq"j@>eǜ>UcMNf*)\4ok& 20 ⑳YE#35FP @Bz4 aY `Whn&G'A+eXUI=!78֮ MV.XDrO_533Y4gfp%Tm>*QU E\zyȌQIȑ\ p N%ipدkP'+YR|o>a9b܁cPA˄%58T+f3X>- W.\2m@ZΨ/zW[$=kGg-K} [nE$?m@{eGQXbtdz{E]h0]Sba@̽lS+#>H dJL|hjU)ܛ(dT p& vUv(y*Xp{[}Ҫ홛/W;=Dg02t~b.%; !'P155'6N$R_gWGuuhϓ!X?x%WuH*pUTI'tLjIThȆY)PqjW^nkm"X=+@/4C6r֭^Gga _v瓝M[WzOxG?jZ#IVG q9ϦK?d6HGGbaotg?q0 |hj*9ORd\މMo"1c96F;u=^}x`3/]1a\7.<#Ej*4yz 2(DػD:M G-ǚtwwF TUud4(pOkiA0J [i$!$:O9*U{V(E>8@(v߽mS10A9 ; _9+\#6,bm%ZVH,F՟Y0}' XuD @(knTJC RqB spZ4[ Z: ;ŏ$Nu|HpX,e^'kϪ]X_v@dǞkIET(0MgU^UP.BKQ:D/x/1]zOiFf$[6*%Uс{͓אvU]v&=N<$F;4X5WHu{^(/LWX T$QGW;uG~vےW0=͚ z7V4(pQe49瓀D>@4^^!:%Zw|]Ƞb6$ ,cEfWQQ䊒@a|ЌЌ7,|g4;HP8fŴ%Do)_Yi~m#_A MKxk3tih,M%F$13_bo <0&n]I#gx j"ST2\v.·_B?wϬXmlpN=%%Rϴʋf]9S:dӞ{W~n0[@旀:f|sQ%t2@In4x+I=U2zj?])hAʄ$@[J)1.{ʥx|_pSZĭ.yTooVMiEǐ+67>MuT2V ӨGy"5Hӥ`KJ}tmQŭn;xT!+&) aҶ2W{ sPm/2"` L"݊a-ePIj՝T$ũBr[w#!?Vj+0^wzUsWυ{: nI0K/4q$7Mໝi2 زвF۴)uqEт;f9Kʊd5qg1,-rtP@rH(xKgu3(WΝQ;ߝhscJUS0?К}dP$9.ʿ zg)#:KcωlБPm=1iFe d~M0l C '2xm'& %ibj7;2ԪERQ7g7uټe'6==rJr"ƲMo֝ݟHŏVP8̧H\O I_ao% 5\"lFd˨(aEȢkE"Qd 3C򠌀;g~! [h"e a7ܹh,O[WAceMYk}j8:ۛ^JI; \vd4GOw;H;6z; 5E&HJ%RCdYQ8}TbAܪz?>LIC#<+z0-*I%65<2}1a,e(\نEH~y 7gl>) TUjUF#Vo:^CI-;LZ41 8~ \ U4Eyhų.Nӂ+n(r #W8,Bh Spl)΃yB C$0ZP|,IDmt6!J "ZTEU_̕ѱ a0zL- jwrx$K_{}?WϹ(@(duEZO :{-C[v(RsAZpϯV̳~e>h |g. |"l3ݤx(x\L>oI}ĒYt5?q[$wKp0ӻUEJ\M%v4tN sE,ݚ{Ê7-H_r\/llTex4OO'B IZ  E{Ho"B$Cݤ߶l[ηjjٰpPڟ-z1Ł b޳[;Z"rIGv]qrBAUݺW>{!(B 沕^Sr;V -Y\ bh<)^.8O95 S*xA71qxϼvt3GZYT R1N>ؾ-$2D&f v߰aˌ,UU_@q5!xJX7eT[[|2*GǸi C(L'hHf0ׂ p(p1g>a'=~6;=~(&X{X~"B'ڎ3I31n,,[L&4oFRTe)E !W|QLaQ73LRXtQ$0nBZL+[RBv'wjВt#aw, * lgo'R g23N<ܠ #ycמ3cHLfZVdZTUS̛?P%%[7(:N9 "\?tH|䘣Z„}<&l]]כ^Z*p:F몯hw5ܚF @(xJD?T"ի'CQG+(D)GZ8;Gn3xu?u@2jdEEUӱ9s}2kޘ{k,D̄+ѵ2-&Sf?Xqk̘)D4 ,?-4%6_˯^ %n7M%S.8{VE$]  C1S-)$B9hW#TY< f,}" ()?n~8, ^ƴ>r X ,d.@ Zxg .[|:f5 tU0GEI8+B IFKL~*'OVr2`;-Eer!2^xBQ+ЫE QԒu>[}iZYET ƾ._><++*7a"3D>i}[SWeYNI[Eu屖3/ '[~B,hwx,`íPrF!".PAF™·qt%(ة>ZSG+-j˿[ ] 1LKDb OhBQ`޻%8fE]]SL鳯jޠCW,,H[9|2zq ue9w"ю%Z#4GAҊSAE(@ A3DI:PdwΞh25KHV ~޿"ᚺCzFg% _rEn -G $v+0+BhRT$@BYH1c0f78r,Y-l=vChFbW + L1,@G˖\}q- tw{{/RASj#M|6L09)dE%MVaAÏ Ų4GħTP4|A B@Z,wsnd;mY;pS2  ɂ8O{͟K>+ɒ@xO>?*h OOKq @B) R^-A6edES4.#.:m,!G6`g,BN0lL6~{kg"D2j`LERْ`7>wmHlh}G:$ +BX/ysV܉p,䎷DǡDC1 Ə'H*t)Ph%u-` ui&R <&-o{x$6%& G3ࡰow,˄B ?z@ߚ ~uMU! Yy 7Ap{G>|;a@v> <\ @|b$j }4r? G1H O!4RPrcñh<Nؠ:S%+~G*6<^_*ܸeϬꍦ=USP9| T{[G(-_9E:OYd5Ɯ! `|f(3AqKU P"柀."=81sNjj3m݈5( Z[+ںμ{ y`0ZڙgW^AjsRG7n:)Wh%!P GEjpF]QA`_V/ PtPP3dyE RTT]lqBwnL<H|1gyݻw ORG}"/a01 ܚW^M 3Cs%e$Bb&/gscuaC[;f߲+u^uE}ȽxJA$IvH"?MH#GTD,$5D5REuرg`$g":Nŀwٛ/U'0d~c?{ N5_ =g9x打mGO,J.795@%!A%]GFRqC7Ȗr;2O\8ǝ1>&l^b!ݳ~Ɲ;vww G"L&eۜj4pd˞zk0}1k}}Ol8)]Rx v%W(ߋR%FKJæfC+BiWeƥ̏&6, oνDĈ90aFcl|``E(ApG[v}ppJ 6sܭ{Ǐ|kǼ@S I7xⷫ8) M=-*Xrb rCn\hFO1y,\f2iKgNBӮ̊D @jGGzR, ̜bU<؉N,Ą7.žݷl@`$¤\ņS]տO>zzz^zyZR:,|X)SabA ̌63T>.ģwet٭يl GUK2̥+B#il_xoE8aOn<԰vށp"'˳YP}/oWUMQSgZz5x*ArTolt@Zl}6e'uM J=# XKWH%z%K%@ˤ)@Q.&]nLHv BPI&Nłs;7ϴn]˩=]p$ ^;5OSwqݞz/-zKW ΢hNWpFF!Nɇ'̩=/tSwLCá>\NOYU(՞7@՞(‘Q/O+}{(BwOUv*eHx.BDBP{L&6~|X18~㦞ޞNl $ з</{x jO4xWo$9%d^,ŀE GsHڜbӔ-^/2]H=p%Mex<^ kٝq6/lW11;vl3z[Ϟ팎FptF u}LZEVw?"3z=C^{ߟťBr8x\>EZ9n8{ 14юצTXWUPe-=346o7,_5"@@ 9%ux_Dcm```톍G 8~!qa jn|pG2zDWΡSxC 3ei 3ʲ Q[M*[O=?8V@%.#c<)\~L!']YǫHj 841]T`Ut钥,rg8pN`(O_mִi L[?bN[`▁Go,tΪ5[ɲ{^{ݧ_yOΘq =gz1'Em<:Z9~˥(ow`׬6MJZj"ёܞGT,?'4F=ә2ٔĔ*L>w_ת8y{@ .6l (jER!+sjFtuQ}/J 1cE(X$!+Oax"%>`M.Hi+2h O~7"zI=f-Iُ<[Q @Xa U("+SQ&bIkMAcqFRC-C I.9P9'%{^Y_ z?p6i) bxawS$g5RZt,( !E%**$9re-&߼{ |˗v'GgQ{ݐz?,>$(:"{ I>}{YU}L\{XXZIPm2he9HT8iIQ,a[[v8HClˌ-AA`qj.\3}֕{U2{|[*3{~W@}r<xR/_\uʼn0w٘Y~B ׯS-jKFeL(_?@$<7_^iffnwoF,Psi%[J[:D{d>xj/p rRi]/!Ք.5eD|{VLJ\BS]b^j94;+ȁv*.?^j 83OXe Ҩ;d&k6oDdƘ/l?~V˾$bc(~Z=>xg980P.+s5٭sV?ή4ȇDSZ+0NM%)O6@uB;_u+$bD7o; ]8Ł3Y%hz‡{=c=4pHqí9dtafo\6 /SODARr ܚȔ'oE/_Cǖܐ6ͼ(/?{gO:~z?—H`3L0"B`_3 ^qYWo\Z}Hf|3X(>%掩@5.*eYw/y֠r9y:IcxhrPEA.飁c~LLܞ0K[;z [0;kNK76wѪYc_%.~[~pʥ_o+n@==azOBF=Za0*W66]g  8|ˢ\(swi t23+/}Owww^=COfS}ϦQL=_pE.wxU)K)x{u7_30N"A$fCIjZ)2c"US]W`pVϐ3tia7wqOw E/!KOPB j44E;'Օ;9ױrE3|_>wn\'/{Axf)f$@GvO=J\ݸG.ġ}b_'?kYf W[·a `̽ =jrvdz9އ U;F_,`Iz s@ҿVrg$>R]{oVξ/7bp*a_>6|}޽ "%RiLE/tBTU(YϘHx90{O/5{'to䋦a+GjŸ{>wPB3ݭ%0s%)^Wׯus%L-B(;WWpG`͸ J [AfS'x7Q/=ץ]Xd,(JFU[:?h 77pAG!<ŏҙ;=~D>J :Bny7BB[!w>hп:ҳsݭKzl,ѻs[ѫÌ{0 T?ŵVwnwՏDw(3Kb*g{O,Y\ZJ!=,36`RZ͠}>tb1 mFLvo{g{c}NsV9=>0[j|Xf׾=ZTϤYkI1b+ Ap X2s#]_O=Dn{ws^yK/lLϞZ}޼"Z@jUW'4֘jLQ'R? d495@˗,̯>Ͼwk''3]VD_)3 Ao< <`Hx6-f犻@` *rpJc oΨGmsvo07_=ǖNv|z+ˊuYQ{c S%C.C.H.YY7Yk T "< kZ4mh;y3A?&Sk? w;ӫ@lHMcpUe6 1sAi*Q&Eh{W^ͭ۝[v/I̘~7ӳ+*:f<4,K+WC(QDgr.4SGWOXqA+,n{NRȌIS1Ҡ/.?:~Ϡt[?w~{Z>tX/QDI5VDCb_vQ AHV|KW&1P "rຼ$ºE{gu񡠸SPKI|ۼPC fAuyFfzb-Yoj6ǿ+RZ_[Y^߿h7 4O5vWbTF9!20`va{D@ f߆P)KHkmN^8f {(Tp!(.PV<<ĜPBww=E[ד̉U85r\EN| bsAbŴvnxs̓?0w,ѭ k_7(h \zAe8!BrbK#7 ;y)q>3"vy(cAp)fC 7X7v[qJ jct:;l0ј( do3rds?)-WS]atSPF /xfi߻O<ӫ)pn./<\s΋! xx7H4ʂ"2CHN1 ﴬh:e B&]_DA`ϭVJ#@AT{CʸzI%z[SHg?ę,ߧ&LQyQy^ ok9MvwQ|j9^llwGo3~OYyBkFLg!o-WzAҍB’ Y9W!e}Ib5-ZN/m9wǕ޽@o/$:Mrͧ>cg{?"(HX+H9z2K&+jW"@iW7~ؕc\\[ۧW?~SgN<.n67e纹ݳk]QFrp"d B LNQ^#[|4t҄Xrf+zg4@@g?s @jDb], 2G`\\.{\5QF?\ %Bts/[ܸ|+K8s(씲ibИ&\wPNT0Sbt60rD>mno6 P6B0!N ͽRhYDIBN=Fd}P?3*F"%0yQ#jcw`D4I#^x%"Ճ8"j~Y!&/^~LçO^M޾|ֵV^^Z9:?LĊx&" KC.,9;vo=Q(GJrbFޱ։NW_dU"F1oɉKTj>n@ΪBLIg_ͽ×~~ztm5hn@Q'9#+F<ϵg^;=?{澋ff61JP  r2ۚ+\ϩ vlǝk^Q(\0PI3 1kssՇЀI sKf־?O䆮vd rNYKβsdxaOnlntś;pXSz !Dd0 43j,Pb?wv(s'Wk۝}).]62GJ#&fC9wTXr }WjcAV8&~A,s,q95/fI13;x5RtVC\󂊂w M } C'mTӡ a$DDsF+L5z7ufIu 2r fZg0ZrR61G;_nw_̶lGENy 3 5$^8Q)dE08oZ 'UtЦID9 .l-[,{~?〖oVXjF%'H!c@\`flNumon\LRDɄE0=s{Wnp|̳"{Yd!Psg(2"3 #??7hcƥ[_W/o"VXrڻ"cL6eÆ@dOt4wVWŜwJ‰J4jZK9EzŖu[M}~::Ќ[ղ%(3>؉O=zj0~m " WWM!D gA=PV(pwB||YyV?:77 ֘z@*}S pF@@FJebqs:^6=??n;bHig;ц-ҙAb>.'cIHuvPkR @(C A7dWs]~JZ7,;;?g*Ip&D/k-|$fu;2A3FFı WsyP?W_NPZ+;ؖ3*^@N|d*3LT>pѰ0b1F]&(Z@Ͻy?t;ܛn|G?-lmm/jjB8DžkOeņ?D)H4u2WctnY-4O}k N"{d_V5 P sCآ8Ha! O] B9'`H0V\EpʳS'V^ǗϞ|zi>ZYnQt)kHV1ٹgB)Sz|p"'yI5~ OO_|O8t+p\4v(!o pK=Jw 0IX!P"'qk`Hrx_9}rqW:6?Й-EF9"Q\O-Hrl2`d!3@++8N * @'Y!k',_xsN`7횄cEɰ z "Ņ XNFIq&xc4^G $ZpT*U2(k]~􉫘/[\SO%mR \YuP0f4_#tI\IJƤ,WgF~q^#V5?BM#!^DГ"p (#2:L/6qō$hA.2 E9Q !W Zye"}iu։z_@|g./̷Vd!Q?(t! 8 jY` E',ѧ/37_u.4#OAߌ1̆"PB]4*#(p1L@W9clj>44Z<}F<_ƭ5cnvݵ [FKOԴҤINCzB=^JIfiԑ5B (._?ᄉG#L,`梻G)0`EەpKDYA b OjE/1]r*c"رtKm& X](CpCd,ܶ1m"Ze\|Y 2op0pFE@{[~)"7J×}d-@=r#;ﺢW;<3`b j(J7MERzhG9qTrˤJn gf{,X  ujvRU"hf#b+#1 plLD1{2DvDt S\|[ "%MD/ v cqQ_ Pը0rޚF'JA+j&bey3UxA' H"ۤzwwUKH7}䐪HKI &YI@}l8O}:7&VcMT:/<6V+992+zoP\"Ug[(UˠLVtAUo;qed NBsP"4&1hptr@i,k1ǁp$(~#k F ݙ6g.x )u'~eQ:p9U\bz}q@AtGA2 6I;O-1WzBB3WJp# \P,NK-x!TI[@ B Fm(*>7bKLB`Q bp(5|8Xk$!""'si*y(P;*X!wĉUxɈA1C PX Qhjtͥ;,ўR"9PA-771kJёdKD$n_-kR|f* ^"Wտ*]ՌHWXJ`O%i:(X 9BU&5܀y-C6;L"QNy^FMHeٕ`LXP.ϧ{\\\E2! M.Ae"bD%Igd=9UG"> znE)8brM\\afH9GEG'SI5a4b Nr?r"8KI8쎍@{$[ xl]L#$MH}\2I$lU?Q"8 ir T!u2{7ĕe))uomp;M 9|Vr=gB9~ zL҆LxFs<5h*)O JAH̩I(%j 0%ru8Ĥ>Ux0e"r5Z8 e<$ru119Ƌa4O=1$m 8$MicSMPj/%{N)B8rqwH0 7:Ԓ%xfBL KCUNW"Jds5v|`RZ=ՠNm橼'uf*䪶a]m  QQaA*QbBM 0F% ';X鈿t>P N=7-rqI1ohE.$C"!"X5tRVXg,KkRDB%֒<r>xUmXXkȕzBI= G@g5 {o=ö̽  =rf$hׯpfrnSBAv?/Qi&J9ɲsCjgsM-0 r4@GHe* OUMV@Tk~O(hmǐ>\a<D9e̼zsrL6 rutR2LOIzy*r3|X,&J *fΜ{g Li͠`|B <@ۉM..y r:)FpkڍY:9ĈT KQV]zEz]$cwIЊVN\թ6),F@!;㶏K]ݜt,%GQXVy,7\q(rEdhʚ;ADUQ %{,$6_Ƽn|T8r^r5*bXòF '͍~ci!!قGQ,Q  />l.˦l>l@Iw]{޶M&,*B&YU#v#@FYeN2L6,:x&@M'@.)u۫|3sdi >4Hy};ݛ\2[bVH~'&!b8Hʑw^֊RZ bVmz,h܄!M9Osk[2,,@:-$?bwvokeH vZFk1(K pZX2d6𻗯 ZLg0}mxn"_3NlIsƣx슙=p֜Ơ-ںvnp{mnB$Ft̖3:RV%[Y9)#2IdT1:_}P\L-zO'5ä&A] Vdn?|;Ikiؙlᙤ (,n2^w;׸ @ I~ցUYƂ)lRA, 3|]YpjĻOrߒm@MVsnuH=)S8cIzҥ'gWf 'e7 @b4k\->|,V H9C"IܒrRsΙ, FRE??W("T39ʱͷpzXO| }R)8=Q ELj09ϫzK ,OӬCڹBWiM $:+8V.sck BTa1ZA8W*gC(!=<DmOc"c .sz3K5obww\{wI ð94&{坭+W,hv.=@ʼpk3;ͯfӬ& mػ Wcb9V %d ,1.*XΡe(-\ۧld/Z hNL-޾춮up]"@^v8'vbE"d// :p G s`YYrl2o,l93klI(!Xk~Y; s¾v;ʲ>$,2nkgu3!$e.?;ɽ[瞻[;A4!'d;cmr}4}jkv|:]<՘[Rc h`;{.d01+9Z"VV DCĶ, ;±M 9f]3oB#3i4Ӵl6 $jrg1Z}Hp, YCWZYj1"s9?EX9RSu>Rcwڷ.aS_eL<N+J _{\7 %ry{$5m!F`vM!Ǔ0X)[]]]{N's\߷θzeț5kv.;E,YdL+hկlѼq>%$/ _ލw !uۥHdX9A#bg.vO>NzL(y>^~s+fvNovpp~'}x4%&g r]MsUBN`\\v1$UI1Nٶ[ٜ/g§拵|emħ5tͽ"޹%> BwXݖ}9☘76@e8:#;ZkյLC.I eĢyw7ƒug&|\7~xXmg.>׾[ӵ'mx#˭݋ֻM t(&>gb/FAϒeil>d"ɑbkʀpeek6eee}m}kPg&ëͷ/klI<[0;A ɪ=^KʀS`x)@hb"]\Qs.}Wnh<I!l:,N<'|}˟wcoHȕ>|gNm6L7A:Fc(ܻ8 \v\E#D/$ڲGdH",0 PLNL q3mOWV֧bsmԪp<$pVH@ \Jm],q|ۦQK/y<2ݶbƙnmpao+}p%LOH ~2hoe[7$l陵A|βBAUz@X\r5]ֶ&;{۞.T[>ؚG? PBp|rrx;UJLX=S$Ip${ 777ܾ}{6;{ Rw鮾;E&P&kj\`n(.e|ts?\)Zy Ĩevey=kuQCRSac ʲR\B*Px\iHͶl}ؘml'yr62(|t)h`[4(uJ2MPjIE$JZ᛼p'scgeR82#"b PN?Ѱ?_/>&,;L6eWSW@xH]!Ul21ʁJIe`_do枕bwm'׶ϮgӶָ/=ݼt~GMG]ct_Ç\B 73NL Ihsj {}X3(noТK| JeqKGC»W/[oO %{G^Q~s|;yt)S [2Hrs#7R8:\!&nV6:5mqӏ j:M1QJe(QF$6+ɻG8Lbl=fH̊OǙ@|Y`(bg Ghlޯ+]yk2mH@F̅{=TcKaYL$8-™ q!be88|9B ^ `U2kRXգXfkյA*؞`>tWI@K7)p̓G>3/Zޥ`5vxa*P9p2Dԑu|rx@vYn(A# <?~c;M6;;ݼ\~eWLVEGj@}BKzϱ.7s#mX  i JAR.Fq9UK- v>q/x ڟGɍ d9%z‚S@3mvW3UˡRWBM]A2A[r Ȕczrp^L $ e5llmmmltX>>n:3g=݄œ0 0xG 4b&C✢T3uؖEOZ\4Zp:); d^vhTtxgΜrׯ^zƍj D/=i${. 1 wIFd}u OF ~ [ew|J7NlYztqIqf(W_)|:F Ȋ%|:L̏Io܇]%5%=0 E_s"sF,Hȧ.7ĨdoN8-7O JV7O|c.ym2  $BxJA TDV{(2EݥLuԫ؂Fr PLg!jИJN&FJz`AjksgqwdW_}ugggEJc83uGw^ۚ.W'=5V.h VEYoe OxX mk{L3ioA:ǙA!]Qvt牗wI9xO_nʟ7dj ˋP p| @)zoⱢڸl>{'} A_!#7@^ywWr:X KJRR$YdJtbXWD{{lq\wg[~G^Ut`XWyW8_SEj<% WPZc/'KIPU!@`@vFQ.=}Ɏh>*+r=&fB58:nS<6D~¼5e hr%1Ln ׋2o7X]\:v٧6wL 1z;_:3Vy,WiMW|%bwiPg -ĵ %1ɳ^$'.=:e,<22un~wPۃ%F; &f5-l1|V8Փ?B?#RfůOpN:$*qbsX"셵{k'\bwVwl;3\Lgw.?sa o杧_B20w;&}(:XڃMSKcn`@dēzvAZ mw1J2 p@9jB}[S3"u bp0_G&nJ"Lag%E\ }mr:<ȓ9aLnV?W-\/^CbIi}`6J81T2'kc1Zt29A0AGat# C_)HQ̽Lnom M 'Ι<с.B5gX}([WǦm~6%_]O_?s7v%SWoRP˦ɢ?d]{YiN<?omS~/!B JhqA|O:lPmX8SMU-C{W5;e.r Ff [JʤJ4y2ML6T=z{o̗_h$")}*_b&* m%,|ԧxdg4sf#mq_L0b?}~;+>zl,;I+~O=Y yKROs+P+xƹ∨'A^'MzqäBxzvԁ͛#򬆉GgW[5or:#z}y1B5;edb6Ra1 'ksڰo&c\ )ME<8xqn/c?vS_vw'>ztRpH= wg'n{{7^D8ϐyt2ԕNFȦ3`QVHT ̊h]|hTlf羚Yĉ֨bd&1b#ɓzoPh#Qԫ <"#*g;~Q 3;}hZ<Ȭ4ID?L߸~?xcﭵѕ:Vc,i,sӬt5@_ uXTD7hA9ђ(滦Z ׼穱\-y,v[wn3+`oQӗEV =j"!#hsa2Tف[ !>'4bRGl@|Y\hLnU.A߄;w}Msv=NhDCLnz1T~Xc_ /KGj$TZs͉ = aj5ZTu:*RJוbaN#Kurl)D9=K_'-; Gj MXK9Lq*'xV(/$`+/BY\`'ydm}}"5)dLd< k\'w&ytgjcy0 v)OaFum,45-+XVMr1` @ɋ)Od5,A/1LqF Ss O/Dq¾ǵ_\oz" b$)˺rLX˧=?7'JP%>:ʷ** dl㲼* PuA6$etҤ(9!2R :eb$ <\Eg(RGΓq2H Қx\%|Y͗FP΢bLwb]ʾKn]*ďLR s6'QQ3qnǡ)3 ?AKCB!+ĀQJU"zIﺪi^D.Y%JrzWr cl *V6wWj*Ev]M)HxRV y[AtCbL,|G7&lB:`F$#T-3: (B,TaЩ 2;%`\/sje2`}45զS$:$Dh8E|tW-ED < t%e !ה{;z˻P,cJQ=x§*PpUBB|ޢEG⯆kIhY,P2]##(Q''03 {a6f޲9IJ٧O4Az ޖ}ٟloM?rbm--l|1?pTǓ]R0I: 8%W )Ec3USIⷂ{x4VBA̗dB 57lO0Rr/!\a$5̝/'^*)ܕӰ tJ3c]MSV6g55};diEu?Ƈ5&zgcJ޴%-i)yH(@wJ+졔h$u dS LM2;z(8G39 cpo؎(CE7þd(4lQP=(<X-2]O1%?ٺW5;q.r6:009P#6偣UD16X(В CHmE#>ОSJ F1>KB] 5^3֒td foO|ET$&Qk ey3EQ[p9ʸR{)ӭz裸MR6})ӭӴ7~5(62x&0ӍOhXVX O81:?f3Z.@>_P.h}iU==q4Nlp EԖ1.TI&Vgm Ŧg~uE?1N6].Cg]8.aw`-/'U0(X!ߟ4cs6Y*jDʥ*1ps̅ :." Q SoC~ pͱ!B ƍlJ6fl ̆6OuԪ+HɆBӁabVWKR5;fF3z^jj0r  GD$O䎚퓏~~uR:AA*Y2Z˛d!`0˧Iy4)1 Ʒo9Epet*1Dit@\OeJޗOlXf|QZj}ٲ1R)(N,j`à#lQTfZ&C:16rQgG}FچXBľy`ͻ_S )u 85$ЄKLT}yeiC [6tfyuB|'zGtD]d\sl2*E IN`Q棳gJbC cQ^A[TX@ ]2" .jXJq!JC',P"А'A1n ڨ('a%[gdƀ|$$IGSid?/Be_/؞N»t8T1>Q5 j&*5=xhm~C> &k^1cM1SC Q+g:1Y+FX vה (&ta{~vɧ.;9lVܔ1si2L$Ib2Ss aO)}1,y\v 咒w!I5x>IBdsn36Ä/dsLJGHB]`ZrYA#KًEt,GI#ݗjW-ťe̱%63&l#T'[$bqvaʙuj,Pc ɩ2QNW 邉ЏtW)ќRX#lRFQyư!``=ɕo+&RYǓHHZmf_YO1q') vU$2RЈi׶f뻋l{j_Y]̥FF;{oMZfSF.Vk [>$yB alR3zʥa/7_<ʧٵ+B4::HP:3(T*@{f e %)e?:XL>j aX1ǣ:H1SIdq4hW͵gx+t6m6wܫ6oz7hCaM S0׋GLX"4h MU'UL^g)&H~[)pYb_o>K_jS~ *.{DR#{N!Q=G§@t̝NF%K5Pb6㌻O5z66嬚UĈ{˲Z)e.6g;CG7.|juf3l{b/%/n@C6GEZVƣCJ詫n?dI Nwtqf$PTwr߯N .(>Yӕdyq /&!DD=EZ@AkRZiSx1f7Y&ԃ7_$ƍNu6C|~RO>O|^^z(ђ$/D>SFѸhƧHssC Ǹ0o%YҜ.Zm[+yccH !vg>W2n.D(h .QZJp11c'gYf\JjI*3)N o:|KHsIc@&7r5P(?EWDG5CC 2AYSɄ f&JYyqî Jj^ -sx;{H1/?xerc3(\@ ǮGEfE0'YS"Iy sF<"pdR|G4}f.'%wKQ.>=TFd袵{iFqzDxݦK4tS2x!J @ƀ(AxI\|Z=FqL;FE,aSM\t7^[tq?t?SſejcҋCZaV(XΚ0UHh@t<^ &z1D,1!PyvIIM5ϕni&-6IݘK:稽\x'ϪHz2_pŒNE.0qřPoٞ6 {f@gnVv [=>^xvlzwO DIXmM==ə>K;pJQ H#dfģZ*,9Yk?>$yc2;̶]r:LF©=kT8#S U[z&mOƅ//E3EjX&d mn儛lUY7Ykg󽋚:Y_{xCZ&U.-@]Dȅ-z!Մ YD>BMR@s%T632t1;)kV+ Q|9f"aI%'xX;W#S]V{PyyVMG`SSnsZ:tj3l,:|֭j&OSx)"عwy(-D}_or7os-&H$KZFtDb{JȸA2/4ɢ] (رL8:$"\ز%j=](M3Ԡk (z]VV/Φ3w?'"?q8µ.0ȱ"Lku[ܷx0'O4-DjS ɕbf{pck#b&2Zb2WQd7Idž^ =Ҭ #:!̽)Θ'oMQVf `Ԥ.Ԁ~a /$fsMe1dHA Nhm (5ӏAlqrh Co= ]iXHtP`?! 5?C'F $.uJwJfP*ȴa޳C!^xs329އ iʁ2^AO e!d[\(BaHR)Ko'JB;ko-;Mg̱NG{\]mET?ƚsrB6εV"ٿbrHtdHRxK#" dxB$ђS$p-*2m{w!;,r'rB`t|ܝl_=``N g $犟"CC2YҍKDT\;| IlcBJ0H)_~eAT{~>^] IqO,'H(;i&G뤐aݶ=O-M*踄ZHOWA*0JBg?N|m>U<A;a!M",`z F~S̹>J8Lzfml&FvND7\-q M65Q1, $b%OȵH {TFL U>3ߩMAM3uW9xLSh0BM(sT ղ`jj p:gǝ~m%կvqI7}NAI Tc.w{%OlnXLX ̳6,n2$8&C&]|a6m_ a pJP>Fz\#eiODf0sgؐiH mDgH85IY%phg?OcQ'붔SPD D4Yl U@5!Yb`3g $ +Dĩ|p6wS~q^ftc[mp G^YA#mNԹ.hDA |B\/j^qw%a.uʽߚe$N)\ju8g`#6d1 o>Px6+6 "*35S}lAaxv8j-hpywGٖsħ$#4k?GAzsig6ּhEW(P*i9(^@&SOCگj8aIZx{#}OqwMg>x/oR# GY_QV vec1##܌4 Hv ^{r>y7.kA\ռ !3|.z?4,<Kσl,M%Xs+)奙8+ؕfߢF`"RB1G|ȵ+QK lԺ׺[BR6@,Vȩx@0wxD0&5141ŷl *v:ß`.F|q *<'~ݿeگ/Oe>^"3'25IZAf4J8 F Cuo(+\Q Yk]_6Yw<swVV+G[jhg"d "LIDh!*J'-CP5䃆2Z 5{jiM@7z ::h%HxD`ލ+/O0O7fӸBN*>(RtS0ˁ+Qŷ^|n 3|xM{B/aOb"ek6c8+=ԣ"sK&r{h堆 5cBi%:OA،yK_,+n ֕D[ɯ?4پi{|ԟk||twyts2[6. !y58C LKPR]ldA.;#9G5SNNRɤ_v"JDWҲԎ*͏A)ڗ(dJjNC7PB 4Zfը/zwO4{ҋ{o5]{u:qՙX6JO+yPs9&:%U tgƶI͆M@c'b?=3UyuWfq +K/;qDGs쨯K# -vͅKHs.n%-Ȏj09|@tS(FO}8 wW{kv7g|w%i4dΰ~5+ p=Mg/tlHDeaRf,@hONĶ8S|F,$ ᵷWmI +]@}]oN6͗j%#J;s[gg&hnͅ"CBm~g? |;/[5_ne6\fbE# mp':k\eV㭵,XRLrBJ~l۟,Hf>xs>.~#G94f&O!c9^F2@abY4#gn*{ ^~ %-w}_:1kos&KfFyY3iadx9~M_jQCr^%m+xkS!/6a 5CΥ\NNpG,]Ƒ|#!r=8HjJy?v&hb#F c16\JύWrcR K@&Md gł,:2^ځ P`%i`Z?:?SIK[,0*d6YGmCF(G>#$'^+Zqcѓ|ByL4^(ᵍde*=ĦUD&K ㋛.ܙ5g>n_׿Z_(@BEcax@je@[hnӶ)kiW&9f,₠;G|/. RX3+GsRb}Iɳe[X)z"'ی+1kNelXlҎRn{v̙uph@2{_xٿRic7. /7_knZn{SBͥBlnJ!rf51|zeրZcG^%CV-1K$ۢ;S*X{N,8j{iir%! e8VbS, tTTgc2O%kGjdg\L1b©&$l(cA > 9=:^G-D~ܭ]'?m< 'pG&C(fD1+QpU l0lk&Zc#шuߴ`3vbmƥWq Iz+ncϭ}PTR2 ӝq9]zD9laAt vjn?7 EM;d85nNT"C=ϔTP{" A M;ޥyXvӭ{K<9;xN2t{%ы@@Vt z H=]oW-ɳfƨ1-D,6lrP(c\@z;ןN r~w Lx!X?ȁޛ[k^GqdNT"c?nSnEIEaMHPpLy+5<^LaI bVO&ҹ0I)h1/>VT1'% #*j"]J-KA- j@Rt5Mj%El1'z{eGC;yğ[9%~mu/ڙ b}U'rY4JTIE66d`}<0C]L 1=,꓏bĉ& GV̾2E1fOSHrjOmU1HE):B 50(-M|X{}_ڕ0P±rë`N nkZ5>ŁmbE!5\<5 Zq=/6>}fh)2@&&α+jS)& 6_;f $guaTyr-L5*xQ=xtth1_/>wם9@w@έ)徜&tZʆ|<8*)t]j3ߚv\dZ %KqT0#U> EJSf6yH0XR1} Px0%|,ƪ^>in2.Wfqypk/?ܻqj:60f-"hMC:Vmu< bp~C'7ѩ;h滾pFM|%%Ț@=>];mCŸޅL5GH71!GHӴ\}jx~@|>mzky2Yq!~4tnDbXJL1Y~e6hէ]XQ l'S!-C_D/ﹼTaU{!"?4eR7m^GP` N>م q̺?cH2F{~Zaq\}|2/}fsad0PG!―\g\2b`utL HE%l6CƽcS CHb2aem1ݭo,,v;ѵw&n :^9k&bZjZ׫aMCqOG6[KMʮR_ GZ&5o kn& qA@N ţ }%bQ6 'BGqC0EH5a$!iPEV5ynWF"a~8ķ5{`)U&:eLle?io&:rַG(8a鱦_~,QlKC'p*L$JCi]BS_B1tziD"uMUYmn鰔Or 0F ^9 U3Cvo}s.|AnL̤SΪ3x jzH1d4 4,LM5 kIwwnOB}돺jȜ%YO]s!N˝j`SKid@aXV+)lQ̱ [}%B!){(@zfҞ7CR5f#bI-7Yw(]F (SfYG2r9]#w0ذr z(!{Y݆XiQ;ns޻IIry,l5d"%c Li%j9,`hm/G=.ۨIJ:x,C]Qs連wFˡ!Ti ꬺ8? SvcOAL+*5IY{tŌ PA 2V!/h59Ȩʬ}*}̸`&RON` o dGw9a: e$km.{[Z=Ij#A V!"b霨3NŹ! 2@my3PԛEZ?CԸҸIQ0?@E]"*Cwu1א>F9)@#h-3jN~hir0M?ɢrjؤdZ6@ d{%Gq`BoUNUc/u\ ʌlk͇r?iJ_9>֜~'YЄi P3FwSOz!6F 0q;[N ( mx9DR6BW!Nx; ^Ƴ @cA &>Z LjWRL~@FXeҠ$WAV)&`_d=3M~\*gZV6w'N>ɟ,$o!RIM6͇n-[ Q<ŧUulOT V_F[` 3 H_gU֬K@+C '#R528ɬiѷZqTZ)qECvыb |-h6'>l}O6ahNttO(t˭h4%Y9w>VHtr ~Fh3 13at4e~VYBD<, \ t 7j̜xosP),4;#OR0O47>qȸ)5~2^_B(.aVfa, HsKv%lҵdG=T5DZN/{tDN $IP;cJ=7ʬVEĽ'^3r'3C.,_|. xKwɝB+Ln_;ss~ڎq -~ sp/s' A d-"y F~ݫEڦ\CʜfHu)MU'  ђUm!lBZ6d'CM)1%8&(IKM@O/j{7b̤C?]n[KF1%;sz=F{}[rx/y㑮6R1i_O Y c{zI;ͳA3h53[ѤȀ~N{yP= t"78GѕA',$nD1~R p, eY =cY*l]}W66d8ðN;=1=Gʖbfc rkrYޕe8puBTJw?h'z:PLc H#;%x4Aajc^ͅGX1IX$P#pZl/xDrبx[upapv~gʩo|_Y8%] >D ë栻k\lq6L4̅&~3kjHꏚ tPZO)Ga00'V1Gs 2'|vliQ99ފj-Z䉼-3F&^Y-q-j@ʉ#¼u 7?ެ9\OGcWꩇ#m5H?d|lb38᛿t'/‰OO?W,ԡHڸƥY];MliPQӚ"$͵vaBg-)+౴ +5USN΅1N&x?[2"NBX{J@54o_Z{DŒw5X6anV +vQ] !J*>DZ|3yы/~3|z}OVX8ⴎr|?[ۘ63:Jǥ+rvҫ@|Yʡ 5d]H U-3L&i"IzLj^_-{ vf s;pfwNP~|h$0HO[+ui}bz)Q++G{ϯ-R,5A˘昳S +<wv5nGDK*W#ݥc2u!E @ǧx%S$o`u8ijx`C^ƈ+_>NQ3/ǚE9,\tSe:L9-_[^ܙdLN}ˣtU1ƒ}% jxY OP.2 1|f&q@_ @ώkL:@K㹔 aT-x&W5L(O,Wdam̟&I'd0PxЬߴq/ 5IL}\p^ Ju gym3;)r4qd$¤PW@7s[Q.՗xfs[ 1Ř̄ZbX-U{D 0EQ'9%ݶU0VXKfL]˯sO<+f>a$eŞ2Pot6Lm芋>o%_ibW*yOVIOiT$e {0twKGc؃/h1F`ȱ;iD nq!舐4\cu& ix)ݜ&1\8x~ ? :}k3ef]yЈ#aժ3p3N`m[ /f5X\KI*>GF22Z .իFzs-R^ |Ti3XdB0hbC:x&Igݎemд"uLrw@%#O߲yse<\,(зؕ-צo؛ 6QSѮJڕTyR'H2,=wR-Gs#y4*-1atRr a U a!'>?*Dra≣8e!B|/|_n9 тfsQaGTF KB:|ͭvK?%T(Wk5f뗹pcOd`S"!YmGj v=wN$؂c3V 66j9nZ{_3 t7PyQM߃׸ c^dMrZ҆G ׸^! %֧lضTo@sea;j6"q9:DM#Z%wt9!g=>{qy3wSY7g\r]~zt;dkp| j2-rz56U@ h>$K^&-ʹaXͪ]S%t5Vb@P2Xؙ=Ҕ/HcgϟBMT$|WU|~TtrxP?[ӳ+ζ+d2 UHӵJet>nʑv`@s '{B(یBgxG`B:K Ki촜XΚG C_t12^Er]eK)rs6X-΅g|]/^_n9+^VUG'߆p3"者X9[=Vc0/>RCB(_kʦe/+D# uaZk<`Z$׮[V__X}}y⎑HLbiw7Y1]{~_nƐ<H{fcn%s&Ry2!7WYfj#lu?̤Bg&Gi,jCi `7o9ȴ((&KQ{ vJ%|8j*Ѿxa`fI'|7i1㖯T{iH0|znzp;~Ѳ;12Nڃ~ʌ|Tt 8-7ЃW]%HqCErX\h_|/Gy4L@q';Au$iğ7e"x@8!'gu\uvՌQ x!f f* *s4!Zߘբ@/d4х06j.u8Ԇ}cPFXH C#)(q+5SkT\ǀq@X8ۍP4NEd|Ӭ%~WeEuQPDbήoT6^Osְ̭Z{_:J`.b5&@/[qhfAj1cXS̍r*<Q4R9gXڐG^^;s#R|"=fbvBr[zc̍g%=|&x#)CSH,+ANY}L:Gi%m WA&[Qeݓ ƻ7F`STi+ed# CD$4\^a Y1΁psP<3rT겏UASL|b6S~ij>-ICLWS5ڒMՉô'zpP Sآ?FuإmSaMƦJN ,/uz GeҎ(:|:r;ԏQ8?cFR՘2g}56U_ 4Z$YA3""5O8ɪcAY-'hDpVЪw@%Y.@AILT.q _|+DJDb6X!Rv=_c-;d9Ý箻_}I黎lq1-(F\]ۦ`ayN ";0,@kw}DyۖD(F{9$6掋O$YFJABA'6<K:64 :8K(RbR3M}"'́]Z9@i9m <s$LSUE/tpQ.Qn2\B[$4Dِh&梱;uL*[R `$/ǠVA6y]59u.hLX^LPmC`F )3:AdiH٪m ;HpIR$-XHb5a5"%A"?2E&XN*H+0۫ &Cqt~g؈pA0dZ19F ISFЖ@0a܄ED6[E+k}S8Icp;=DPDȔ_9xvmsns5GzfaGg@vJ(Z?)?R|$e; RoJO#?1tOHQ%"Qkӿk K~JÇZX'LFp5 D .NBytVA*i)~‰ ۮ ߽~C(eC΍I)$ ;Yo|4ThH"6Mԉg?v!B8s؃wn C45^0$3P_|Fn.Y)} māgϟYܳ_63MR٩K6L%ol5ݼdg8A~;=N}c-䙳v|V]6"%h}< vJU" = !nK玞=~Hhzŗ'eo=)Sڶs?骳y!&ϤټU SƵu",s6_<3i8f|'|<7WϞ`JIoi$i^"]Y"ng0En&3kcvyw'[Kmi?_BrW^;1c43{o9}ߺ9ŀRJM3@Y-Lq kc&hasy_޷wL)߭^Zk&xՇٺr]G"qluqu#3M:XTm^F|S!kK?o_ÁC,DBhc7~hi!VJ?r}7~zq~6Z4 ;td>mLYn^ (NQ^mY%q;v^^gmvωxmIvM-M-ٲ%[T#E fޙ ʲ(ΝsΑýbH**pWEbWK=/nDQ:KMc"KH `-]+VeDTEwuM]$E,c8{zW_xk$+'?C^ .JO=͘* \w @K6F 1%^yR^8עcO e(Չ óZsҷf Cx ސI3K=,QZDԺ|"½\߳Љ E c8z/0pAX'v FQ$c{C4 D/knXڴb.Ӈ~+`lZU{þuCW#c6Er)ixW^FR`Q@̋`fYo(-t<YQh#l rZz2o taŐNz +rhkJK4uZrq,_śŒP(\.ǘ̹)I7gj9%B)Fr12=;k*i%{:_}<0ǖdEXI`8h$0\`AdĂ0]=vzHy$}$x1Lih,GSīvf EER_3C8 [ AɐĶ ,% ŰAwɇ ½WbbOG%%SngKσyI [Ɲ]iu_ wA#!Y`?|Y+:}*?emQ>It }o!{^fqyli8+s~EqqXieFzit3w< p~JH薈Djl1lv$!8 GocVy5c4: ːİ'dR]Y>XҙH/pͷU Ю:_,+$WpWCW Ƥi04ǔNmo4]`ȚʟjSRP`I`0E,n1 ʹI[:xvfG)zOJȴ@powLyUXjGT"- 9ax6:qif K*='_,jKEq zg`Y-.O8)&C͒a5u:WHǝ"./`01?/KSԠk\VC>9|%I֩ \?U'j.;zQ9Qg ; _.U~83)9:h{@qE"O?BZ!T@a0VN8CO$C-wt}튝~ l%}DӋ%h- ]$x迼{)ܶM?[On_e5kOqxqT,B++2SM/DoC0tm-ea綊-v{4y RC 9$Qɿэӡ0RNue}`pv,J kʶ#= r{o@tDİG ,K꽮?]f1Kw@S p~_4^ߞo?=ot;=re*ͩH'ƞoV7O1%ZԀG@2(~8DŽEPuBhuO OWfU䈘^? $ #JY"/4dA9H:)X8G"0t'[3F&^Z a_aӻ4/Ǯّ{j>@غ-9Qj#U0 l2| b3qߝhֺܬϭ] zҒr~LA 8zztues5VYYs mlIF}:7 }BEܶ9ѠǢ%I,vk3͆h`.K*çlY3L M U`bQR爧^f5nҿx P}A/γs> ܻuv;@/ڮJ9o T,dABuFV/*qY6":P0d yـ*굏9^ol;9͙lȇԟ3lD˅0 p0,TUj_Rea0~}9zAySHOF_RV]E)+ UΆ]YYU)O߼ /h&Z. qm\W 5ӿFE_p8W?8dءa1c0: g'9l_Յx`Uퟷ0$ *H"<-I7k넋Dׂ YЪP4a%ZTO +.>tgYdsDޱX+WPD{t*y" 5 xEY08֕n˕WA?uY )hg*x쭦@ A{(F'8x0"OjyCAn>'Yw]heѶk5NW)Nc] R$x*R-'p~ݣ襎>f9Mpu %,N5zuy^PVɈp.8͢d@Vd.Xm1kOAGVU$>K驛6_922AiMv>hv<_v{?2+Y?+ӓЂ$k]F1&=6#I=M IkSo)F~PM2yxwuOb3upJvDXWiaiiLljKpd2YJ*a'W~frY<62ܿ}9U|΄$PFoYy"(aDR~5 qYM0pp.S$z 7%fGyIVu>.bήé v"7Y*pj=??rw'/M1݃ g$Ak Gw=@E+2ihXFfAs0|"pto(@Du7Ly|l Cyw[Q?=ym¥.,W-3pU|zǼ~^Zs4b$uD}:i̷/7XS/KKS~:tj}onmyX\,hm>/]"4NeL@Iڊ\? -%p+LM%B\k14C F2$HV}D.?]zƊ I3$H8Φ;[ ܽyM/p`pjqū'e~QǸ7*Ij[OUv4P)`7pqmV_c矹uQȎѧGSo)#4Z{'"8M"mEoXUkU+p$(VUie/_F7OpN"ݚrH5fu,gez#.ֶ0S^概,QFO v,.q  A$E-T`e^L3Kgq:33 ZŌE[aH"U1'||yMVȶUX\1м{DY28b^j}{+T<SKQUQW1l" aE+u'\Y3< ˬƔjq2ޣ7[ˊW7|W'ilt_v#`'f'')I[ s+*:\3(Z5h,bԦ OZs9c4h C qU+R.ܡnSMܙĩ p¹9*me!'b=* gxdPq.d8քg 0ͽ?2g#Fzc}lvQAyihr]z9"!^*3XӕPTvOVT3,@eUUT-] V} :CzBASŐ zJ&$jg 7/ې:4M[ne(܋]`'4\`ozl v\cNHOm:6joqlF87#ErGE~g$FU,)w6Ρוfh. 0)=֨g,p&UGk}znq}mW q1qaɵC qW\W^";xqUj|?7ms[aO[jiCO1)D9eq/e Z+b!vT( [ 3n.3Xd[X6m[jBJEb8 Ѵz^bD# ^Gbַ̩֗އ8*Kbb(.hb"ponyYZ7QD @g^9|Wu p ~ 4q ^i75cS^xd̬(12tŤ?-$G:! @%/iS>ݖ γW!*vOy.P3t,83?K)S8 3 ,΍{uW~Qߊ%΂-"0әUHKJ+mLޮ~u[kI%A"G;XHQPUW)r{]:Im22yMp/hJ&#,`${;Vup$IجϮ_Hڷ'Y"_T;}T\Nwł⬐cKR&TQA[Tz{']1 ֢e#q7X8XURZ^rwc1{3 7lDUKӒ )f 1[R~p*"Ø/ӦK3?K$\jI,EeYMZ)}7ǃᛠcdɵ;1ն2΂gy5ƊqS-A KlYVYRVj{"՟B+L'^ML= ";XyD %Z ƞ4F3)/Rm`0xê4Jʾ2Yb[^/bEȰ˫عkP 55U֑fp{GWfˎcuwu֢LF[ 37W*QT'U kaBvv̶oym݌[ \ZtNU'Ks"jn|~iU)FR?0οXWbd(,.qeR ,Z3V-XZq ء},ݴm(e(/lr=f}A{o!E)0 h5+RxL:p_=ϩCZeU#Wk ER΁h;$m(_{aIk$4j8"𧯫lj?v{n ZƝZF02?K]p Qgdmnԣ.&7SGS*ny޹ >m͂oԖ'A"0b p>B"F_ Vc- K/DF E-d^ݼwm{rQnd?Ԗa6543t~ytl2:mm{Oz:#xK5[brrSXQb1yYϴǽ97ܶQ2cǙїOc/L HԳe#XR8Gs zF$dŕ͐ci֞Rb`w>w}wIԺqAH@a#q A(*\Qfҥ%]3ql/< ▇:S(p;PQ ~run&*ȁ㸶)H506Gɮv~zDo,̓C{Jǘp]^V_ʡyP)n(0];cbjuJ$ a57gir-`ǿpU ϋ"e8{0Z <_h{{CjMz=qo؏}m޶"ťYR7{aWYv/@/:JPIXE[ &9(k@tet tXt Z{JŞS^ѱ:ɲɶsY5@Q>86Q}B-[qnxTڷ `/1F͹"Z&'$ֳwVXߟhC<ot͜Bu`&4TJSGxGƝc $Ya+8 K6Nt ^s9XUyK5uPmTkY‹fVI' (wH0<e'u˴!M8Xi=i:Qs\Ш`!Wm1|בl>#9]z zjSY 5 @CFjꃫ^{AB!~?OH'p\xآ<[#p7P剑 z@?M*Svk=* -J`E06ǧ 't \ɲV+ pQ\Hv w:U\zcv56R"h-:UZFJUMI & BMx8.x2UM05% UE3Bّ~(6л"5&Ӑ~*Zbg%h$i FXѹ[LD9̌`ggg;MY$[H#5[oV䂩q}T?#`ZotzjJ\"Qnw<̺V9-8{7_:iۚuA^$JkY>fNI4ΐ39ɕY +SLh?Kop`Jʦ*?Ab<uR8͐,I4BCޖEY5|ef$)J Aƛ9}0/[-`JN>8O7_.'l] K< I8Bã-l`GkV sZnIMKe;Y>M3c2QM3Yj8:?7 5Nlblٶ"ɻ:ϴDG~FHJ!h|lrȬOd}D=3~bHUJFo$$ 4 1NO4qX_*>$T7|~|=GLqOC>)G1W  7޽LB!7:k˫?IЛ?YBV#Ny`LhḢ NHP{͆r Z{u{DS#E#񥡆$2gv8';xچ~`jj'( `^Ҝ|1q zXKJӌ%!Y@?z9 $?OmiZ+ KWAI]k''[2<+-pRYaw--*󵔸IX lU-2u?X{X F2)=Iʥ8$3W}1 Z!H+fLր{n]?M<#$#ԧ"NNS'58ٮ]ux}g}6&U wq 89iIlϧ Rث|~reQZv;/ƚNq7cB< ƌ %{eOXXvBr^yM5 yL~LN$/H^6NbcxWM@dX0`Vgeu&WClSYW " ҨRUXT{)<ݵ˞T}î 6}nvrIc_摭?,ʬ ;H=_%)w>v33S@H8/` wZ &&'gBFy g\R~ c4éW;K1Eŀkoxtd|(:"@M߾;^Rnyn.ayi7{ڇGZ<761t4*wNήsL*)@ Ai"˺w_˺bC+⢀   $?ym$L3{ܛ|TY$U;WIUBx9iXxΞbU[&Ցt#2H˜tq`e\xۖfAs ܞ1/Δ x$!^ՋABO+'aǝUυ;ҶOqOyգvܱ-*;3E ae7ךsȱm_ɇ'yu2FZYUaB.̤--3m"/^tI\Qϙ+m-qr8 u+pسC=g_9IGޚfu߼LDZ3ccvW][o=tj=*[wzs9ݍ$U->QD꣱kl/njTƴ/D_p8ϊ"Pq\]Q .H6>l$3U5<90S!y'(cGu(tW,Bi"0?{f ]ϖ$Eg the0bq-劚-˜gxݱ!3iŽXsE}eeԸ_Լӟxc'L66oW P*=~’q=`t'JYJW fT "U7In{;@/6V`b־/ҵC USԐ*ck*>/<5yڶͮllXG%^xv4 w!Pi&v2iew]tHvEpeCx7z} K"r%@^20$'nh@!4p 8&xbD x&&KNz-k矟w̓^29_ x5yVZ >tՇ?2f/!a=i_o\TD9/8=۹ O0{] ~4iHbʯy4u5:;~|ӾK_Y&d̋*[g9Z 똸/8nik۰oތ-\ۢsϸhY`%2O<ܭ,\4XY+*2#G =7<۹$'%g f*u ZpIz8غ]45my#! e\+~Ag/r>"(gxzs3*\$":7ЋiMZ]+{/B N-7j yδ| q֭߼gZqaVcPS8t!3x^xfd wm$'Tq t֨[ eb҃/d{nHd@P^+.Oh○Oƒ DQ?rÎhcs-An `|閁$.LuW'3gp1<9!4ݦ̱~>uo_QړXA/Kr+~F_l  $,UpϰY}F@#O{dX5L9 2ĸ[Wk_~juCA- dS=T/aGlxi^-]g=vK2X(XFV`Kdu Ӣ@CDH&R)uI>^psQL_%ac\ǟ~=XOZO\>sչ?u 5 Y__zkݝ' TVˡ-DWOC] ;ʌx~:0'yM=/W+`Vq%qiiZ,JC ս$"\2.h/8Aʛa&/vvtC9=GMuw-\pz.EI޿ߍ?}g`a^{QQ=i*!RMJ'1ó$i;sAw"\ka$ؕeezgz;DJ\Vw5%? S4j./#߽m_'{ޠ? a$ypp;^4 ԫ +c2 d^LO{W&6Ev24( M7Y_W:8[pv/ 1GOY`FL4e~TAaoڲ塇ܾnjOze}]Q߄78i~?5'/iI%J_8χvL OcY}sF՟fiQ+kY`'3^Od2#wћ/^칬-\;2Z[>vƍ[ZBpū'?i8co?Ȣ o]a>X75^xA "BI|DO`+`ۜvu[y' C\Ê^ñ0|vaσضQ࣏?K]][2oM|EQjm;޾+\?˽JLR^2cЩܗBJpQ*y^9ÓzK%8edr TR.e8B WL\ȗ6 |9EG!1" ]qVu_|ɧZwZ yd*?>E9Lw (^z2 ydFV ٻ*7S#򲝏^xAb%KwZR V$[g6by((`|&%TcZ)4 m&dww?]h;ж/L.H^v_z‘07r/}+jkDWzȫ>2ް/r ^L/I^+ bݒ$CR~rL 8ݰ^Ȯr[:LQϿ}mݝZc RFWˆo]/i6ͯ]X/LAٌq9}Y_铐~mfFx*^?5*"{F: dҡ՚^B[|}Ȳ,Ierߌ|T#pLZ{QbG{ E#ѲD<%(g{ziʤu}xPCs3hQ0BK}x:C0l %h"cJRn$깡:zG^/C&6㗼]\}Q*E~:'O-o߹ĥ. 5^^p{Q$)Տ>؟`g_+-;[%EΤҺw+r~S[_=lxxٿ|f:ZbnGcByV\Dz?ѭ)JKI3"u_L ev4#Fg;{I^ς.@J΅(31#PyC|BI,l|1o{v/^{:Jf)e}=gQܵgW 3:wiyu= JM`2^˩ΊPMUIԊP]f/9Nxz mM;pm_)^a/^ydPiuXQih)F1e&bJ"4Y2)jfg AE*r$GUddvfc+iMO-HDzp b?a5kr' lSHT-|9Qlg/yH^AKj`~7]fAmxGsyܐ}C|fM3%x= Y Fv,Wt~xE7 _G6 )F] (93M Fc V(􊜤J~U e8 *b.fee&<_cˊ]l6;S1X\wf(7hzz}um`0]B$/Ml6f? )ܱPlB,&0F!ulis]tMJpz5'|=lv>?€n|Ks77_h~.a-1 ˽jbliqt2SԠiN8rGEQfW(p>t _ rPBxY`@b+J˚/M {@@t3~w3n$_+ΛR-d xeH\ڋl$HyÕeXQ4pvaYC :mie\hdkG#QDg.[3{Z9T{牗" uMs0̋rsgA}vڪށ 8RBA50PAUVYk%g>(eETXR`V% t}1ZnFe<̧x.ƥWvA- _v“]Za&k<,TRi,StoR%z. 1;kXpp= *T]DEYEiGcˌ?F-0`b&2R+By % BAeeKfW#O&Lrlα H Y.eQ ńYYvaZ!dd/J'y\`IxRfzP'ڿjmmm* B5BSGe 7vPq{G[Zr`2s|q\O |wo-?(zk[`%'c 4~P۴`KrCՎN't۱ʊJ+hϲl#,pL&UK0KL:`V=ѿ0S?T~UT"r+ M9|c4x V/۲)ogK KcI2@?*αڼiK4qm,Fh j4͞^` J۞iTapD:q:?yqRPTQV--Ň` B$"k TxayUtH 'r Yrh#轙T\ yADHL1s>doEٓ[oZ^9a𖮭,ti2 kYv$ ` cŒ]o[v?y%Kp\oaO lC/>:F?HO0l"B'pw˽SYD|0gV㽶/89oGEOkI Y IUEY8i*N.}v$O {gb9 _x@a OZqRG{~t7(Kй#WYe}[N9N; 0f|y]<&3iBOG#庩wv4㫖&d܂ &蘑sy,5B|\~'>`pd{nl4W_lmbj1rI8`Ӳ4Mgo㜤E&MhӚ<7ߗĄCPch+F94))y{~K?<ٓ.]lB$Dq (6N\I8`$ս{)Fq2ZUU%(<302:9 U d塊 ]ωDo߂.fkbT9 NI8~SFp4ӷ?X=TC>'ORg4nC$t%z*B&uV& / 9Hޙ쵘6he9K- qb)'ٖ֮}-UUUYYUuPcBHӚ ŊSG+n|%U*o8kD:q>үj sm2i!H%}6ji /<wͳт..=p.:hd_I4-Vt!S`(UlI` y<1vvzu^taa^BEii]oufDHGgI$}G/?^X{|T6^کe^4L tg;{A\]MݓGvFk~mg0fpq*PJ=Ivd`qo;{Lj%Qwٷ[ T2DOv<^̎g&CGBOmWO^WS6+fp%sv>LXGaq8 O'y=Oz_T\PSK7[B7t.[BhBrUej V|KaUaฑgX9g`"1l8apqzz{iE1`e%p8G_;"P*!X}/|y[b8~Qv"]N} ΞRdPb!qbzмbɬ6!Lҽ{&҇t~:UbJz Dҁ-g];]p㡄'@NQӓvZ/O<1$^2=y-0v$0(E+yP4k^[ϑ?L8^ZK +2.YG4t(Y٥Lbq.9*s-1[6Ɠd1H^޾PQQYu`21tH| L26ڶW;G,|߽K瞰d⳻׳=ɫ:/,i Bg@S8tT%YI! u'H CMhw*cҨ2!#o6EH>9$J@j  eO=1g}(32X4N_u{Gtb @/)>}Vz'yuԈsH^/KKGWf&yb/b# YYYU %TBcB2BR,kjjE!J{@bm NWC_BFwa{.s`t:AT*enFtUeŋ?q:(R`08d>nhqӊGI N 1Ro͒ly=V.lg/ӰGXrVi/8xN}e8RTi\9^|}$թp' 4BwI\Kp&.Y 41,hTȺd-u/=' ;Lg)JAQd_30\,dYaX=xk4M ~r,Xu߆p%.#e"?G ' +k&Ztj;$IӞ WT<63Ȓ|8^l1IgⱄiXeY\H䬭P$q}ܹmmm q$LQZ4A\q>g XRơ,ronqԩvKq:9M=RэngU˂suhw$@g2 P 3{v4-I^p$f~x)`ֵ5-nb7w`ŋD">xˡp{?9HEcbY,P3ieޔ瘁leG%#ts desm? 'ŤcD[~ʚ LISb.{3 #;x|N?᫺{ϡY8Kho* +T -6mxq5Tη,*I1>c0X 9j7<َoxfrZ/m_URp΋O OP|ݻD9TT|?v$^pf& eT*Mft¦j .\,)!Fqlټ{72Be;?Co.-^kV替/׵KL9)nֈ^q! ~>9m9v q!HEPo70Gpp*h ç:jyAyE 'q>nMad Hgb;qK}N nhnݷ7}Sg+ԇV.\ށVm1܈yIv$na%/<?mVN#KRzE)C1V6)Zh^# nR$ۉSr:keϵPB3O̥d>)IeAPy^hoKζ-Ħuv_鮴/x5dʵ~ſ]3ql((M@ګ ;$.t;oaGl;{ײM6(y{ϭئY4h\cZasx< )ZކzQ/q#@9܄zf͝g}_O 'ż{Oq,w~n.wrY+s zGt]n;ԆCOX *ݎQGqn)Ix:/3ָde`7lO/eUcYS#t4=(?x?k`pP|wI!{S1\U,VCBWccF<|a|ǎ96ՎE}EMz{.iJ rHN?ͫ[c`y9tvb;Q3\vmU꫊v6M e,5 Yo>}((bZƀR~xCζB!}X`ֽnAЏqp}ai W8vtT, lbKeu<a ~'Nj6cOp2n`'.l[zALzl>.u o0#tv4} ?z6fa[Kd'%+S7js 9TGcs wبUtʑY&vűy6 #d1{c 2\"#⇿~#9@Kh"S*T怏39$J!Y "2x혢b5yb2ee1bifnv"u`P :@&5/57ђH׍Fql=;˼^xfa9zu#7ѫ@bFG{ax3WRDH@%$Yӫ*ʾ}10bٸAzsRcga\OI$ಫa^4Nvn@U06WVR~&t|L> #Ӎ Z0X R}u@@eI79˄AKylop -%}B:GbJ/OH:sJùx@O^[6٘U'y g$U l)@•gj)@|Gr#]3lݺl]v @#! u$*4@`oo/j $I * y#v:C!i־F+ǘ,ʅR`:6V9+ko3za&EA `, *TkifYa +mZiV*eB܄lʖcᬁ팦S4~if"aVgs!1 fęmHTsM2G>?|J%QʢqdP]kOz 4p|Ξ ݣE[yn kˋ[@c ['k0Q}}a R8d )țhlQL?4=g8aa jaJY }^<1A,#$.VIbg|Am A ;#cH, $: K>ĭM+cX1:ϊ{i\k[Fw4[N='Djxaʅ'E*EQYdt<H$hob<𣓆ԛWE[M 77I^݁4>R ↺:?g54ۿo,Y# 1 Zaf:tdt***kkkðdmd2*jwwXvǴR)G7b\9WlajMۆc n&Mz`{"#,(p15!((r"ޏ?cջOY~9s&=JY̟l zu=йo@0ZynY3V,eÎ $zLݳ m$׎ģ C-/w$$OB eeepOۮҵ{p .pWUu"b_ D2[__s'. 1s|p7; V֍,X)P C].i_`eUEof<|i΀-f8Mv`;U4 4GלA1K_eez,*qG/BSUAkZnX#&1dk׷ĉЖ|~-"׍F =I^Sw!y)1>q1n#ee[n[Z @Rt$=R*oـ+vjZ*G,׭)cc߀iee@ $ȧ֏lUj GPE~a~`P[_TۨAB_bӶ5lEӬ6o!etك1c0n ji(16?pWwKjvlyBTK&p af cղq[א>V_޾w~ HΞwM BR6i@Iv*!~WM5Pe2D3^GP~":&IwkDIz03:v?" C|狚F bhO5>hDomN lx((>:"5la) ɴᶊװtZO:GqI݅͵ѿ;psK\\ +8\f8EJb^V\сaX4CAeoJ!+r̋nb >~ )3cvΞcjB>Lgʨ>xsw|WEM̥xǎ0%YBTUVn^6_}u'> T~3IޣE񴺦گX!$1ƛ`*;۸̾tr(TFd0VoeT2L" -~𑌰j:pca`.wѻvtʹ'7֞TPmIqDBRn$\ NM _ieBwtHtwW{'H^/ի12dk,+,GC/ǾF 7-OTVVBZjkkwxD&mkضud5k(7G=\,NX#U0lM['54W)528Mb1 _Dw*u'%|MUK杖us@ݦ$Hjy] AT٤F$ N8IF (mi-m^Io˰٭f<ٓ^xډ(S2x:+V,'3w9n˅uǚa*dY~m ۶m{'z[E eww݋ڢʊGDx1qbǗ/ 7)(~ DRy^fȀXQ#AJmI8eA PS3mikJ餦/l~CZ1tLK[v^x Y[ϐ4_,ֲl;\vZ[0Ǜvհ[Z[?G>w^Dro6`>\y7~ J\vIolcxjnSeg] E si8ldV}Hd'suG# Dl9= hmǓ΄o8|Ξ<)8SҁrOyEg ΤӉD5-2t~(2.ț 1TUU^F#4A_0- R[TasópLFˬܻ&7{=m'kVGx궸܃PH Bb!j|8&#Y ( #_lٲeٲeBQ NmQ7PR pLؚW_TDWxG0PƺhNEuqya2OS[K,} 6 '2zfߙ3GYÎ*MLS%E%/+[nV&R1O((.F7 [g%g;Ork<7x Grթ~ \Ft c>moE,eٖx̝Āꃡ( # Z4(Sis>ExH'ʾBH\+:Kϐ9S1mJ'ya/.I<}.GqBn߶cᢅ2B|ȎWM(]ws0 b vE'X, 8-_ a' vGdJ֋[v|uDbfF yaVX,o;{1ur|I^/<?4]ҶwCkN1?J;;;/ 9 ?@]w%O>$VP]9Q=|n$ ܸF1b?u/65RNpe[TraJGqn;{z=  @lGc{:7Lf4UCCCWPW, Pzzz> TXp!΁2Ba62~iPpBfZNJa& Ux T8g_αL"Ī!Ɣť2kp=Ւ&9j;{Ѕmx;Ms[8ڴҶr%Yϲ\1;fu3 i(l{wڊ-$/$a ܸa#4Ã6773~#$b 8.'n̲ʐ*%0C{ cCL=i$m[p.:[ Ȑ}7-z'|kSPD,{_>pKCCEf}嗣ǒKʢyL3N^ q Gp9EUc!)ܷ= GS2'9(ұ= 6E࢈}}׼9>$v ^[z8&90q[mM3 w̙3l]hR{6P]@]-^bU?2ٲ˫|!jޜxQՋ709x3H3<3p|U^SlՄ܈IBr)AYeQqOvw0~ ʗ Ӣ$)z䴫 ?1{$g\,Yo[q1n`i\={a{xQ9m<^3 -^0L JyږC426=qyGLUTS"1Jv$s0dU(9d57]]ZG"K1WM؅lt]w}#kwy"&SԾ}@b]ח/_ff)\v e-pe$_X c&=s$? vg0v+i[6>uGMű'";uGfϰ#eu'yY7K^/gHVd&{>~ŪӋ#QzyE9HIc%Y 3Ph{\#0v#.Qk+kkkcL6DQ*exlٶiկL2伓r`eUGno }W) ~1~+N -۱yïJXYlgOұVvX^p$!x9>p,Ѵd"*… xAhhcawu7 .]zJ0-``@bnlrCG #n`DǞ{ۉ\@a= MwL: x-R5gWvyΗ8AOHuQJv$/sKJz`}kM#qH 1kP۷X~ SH.˶,xΏ=تU`JH8UQc#r w~i#i { 0$yܶ+0(YswlCd+5L4 zpԜwtǍ';oǭ,Ӊ]}DTVΞ /<k3w4B\ aacdEp%VEQUv#kec5<+[8:*]߾0$209]-C̮`Hfe׸xv`31ݝ1b[w > 5HBO#b,g;eJ^_J^/֍t睟}%5cG 0.K /cB-5pI&9+L#q h.4@}ZRslNɤ z0{a5GJ-skfV^T㎣MOJ n-#Ξ܎Dž ONJٹԅg8QS߯4ֲ[7USM")ea)`˂ DDW;1BF )62؊KXDIBRRb={sw}}U쮪>osgS?[$ ^u,v]c[)իЕy)U%cwSp}Џw죿o<Y>6X):)5߳owɃ7?O.IxۘdKiU6 &S,oEcmvц6Mzqp4 &bWbJ%%H3fu eJ,erZ3^6/3qBrF2^.=ߏ%}{Ξ9EPr 4!Oµmmqsθ_¬=wJvMo?dpHw'A@tN5:%)<@cdHL4߻mN崂qHط \@7KI&x6m҆ErR**^r#_pP~3r_3䥬_3wƌ2:җ~]˲^}[ﹰ,"Z Pjt5*㡯ߩ'Җ]+"{WU)%S's#.=oo 줦x+K$p]4sK UuJ)8 a&@RDrcTX ID`ZЕ}m GmZjĸ5<.[g7;6&̒6%37x^^ ${^}n]^w.w *kⳮcp|Z5q+i|!Y{U?S񡳶ՕКe akș`})R7夹39H”T **Z5Z.@pI$ˉn{*륀t/d4@?ԪX,f> K[XYFhJA%=~_wuU3;ϒwX2g̘ ?xKUCk{Ý~C唙U.@^Ռ!> ð^5W6mz)s F#ʤq.G%808cpP(§+ op)%-F=]%B,u%*e) PBͷ/A]+R=~HHQ {JR%HE(A .9 L./^,qFlî+wɦ*o^t$Q&ۨ L҅wvZ][|#JLWzu} za9\Qٷ<n6u E&8&m'/wr0"e=9Џ|hZ{{$ g꽧}cJI^9X Dzz[;a5hss}"-XU!@6d YF B%7ɕeYRhʿj 5nqSu.-C&%dy)i-p6;\{ޯ5K3f[iյ(o?o3N_zV/v)v\psZڱ.\Ky;=߹wa˙RA^с['v<m,EeĻ>K>>HGEޣr4"_S%(a2/DBj<@aS:}{gK^u;cL7:z%5_C?;R o{=1M$9Kq o?:9%0l*i悋l.*\}sݹo~ǟ[ϝOs<§ X'(`%QZsn7S1ZpaTף%*5sIU̺XJ^,%ȽKߧ}UURaACRC/6Ŀt+)$yUyK8 A# >f̘ ,!}r??w;Nybkr u74V\%i VՀ5.jG=cK%Zdrcꦕ=uu4i1 d]VLfK6&`JJv)&뉠Kp@,)yLYe+K;&ȏ׿\rO^,2;0zy f̘qr=U3l l{Oe?7װ׽un{7nNU@A@W7AObg'J(/.0p9إoz{?5j2hD3FAC:q  WibddJQϰqdB;%#i]|Pd5՘r\^ @ҌΕPpg;cƌ,D0N~*@Rr6O-L ^_Z{{^8םs7?_]{dYފn :ں .\G,w~([X ,<,S{7pFZp| S55{!4[w 4Є Ƭ$Z~M#Z/IȤR|( 2hܫm$jūe HXư&$x8Hzhr )%Z267EAPUBr_ʍ yg̘}%7)-7W!e':?>?ӟڿ|u▮ ~W~ߺLs( ~p8z?qp[dQ8-5liT/re51Upy@8 tВRi$xlZDQ4M@I^M=u-`i}rW鷺ϥszE*yk-y<2@1cƌ!SC% %VӝR2̽&Ppv@(!wP1c_0fi$nZ˃zo4oAW"T\!ge:LPd Xk]r2vny˻}?rM/KNl $M h,-M]a)cʽGFS٭YteOJf^R_P8M7sjnф!:|O<{yg̘!aJn/ZmiXK—V}9 >Z 9ݣM)wZ!;eH-%@ZqTA_;W{?(w?7ٓS9%.xQ730C!MrI1cleUwڔ l6!䕤%p*4FUp[2.d {1t)R~;G,w"r0MoQhpH_Y4K3f7{?ED,/n|ayKR x>7>, $ptMAMI*5;i9X{׀;W|#o;_4BW bKKshDuGf^ ~+7>n>X[[&HFͲ|%/ñ.+pWʹF:`ÒS!G3(BJ! R)%  %Tv'LܤdזYQΘ1+ |9 R^n)_>jޯ.8 F˅ Yږ ՙЀ)C3\m;k?CXo F#SRU !1WlX,bjkwZr/ 6ci_8j,aP7.'bJ[M2&iZy~_Xع$}k3f`)ّx 7dKooũO?|g;cL3ƻI e\koz_9` b"mJ򒢜a/e*5T5 F@F!@%e)mg +ɨDi8DIƆ҇+KS :P eoQd3g[O&z/9-yRޯ\g1c l6! /$~Y @,N0!/XK*H#6.,V3@ _' (BxD18^5p F1o#-rPwz+(m$\l1_` DsڜG V3@)od%ic h9@E4Hp( R΋fv,y_f̘6Tl/Fz Xx}$/b !-5mR Ʉl204IJY"0qRpdʄR1(eHw,˖wm!bOwB{cZZ IcW2$x؁zNIr &! cD5+Tldbr43IAw'-eh_f̘CAS M7~;B%KG4|D | Y|ER#ő+u}( e|\ h4?Mm)d/Z`p]/B 6!em.v{[2~ T-H,Dd:/fcBBt 65! nY[*Aۨt?X+ʰ>f ع*e+3fmZ5ڐ_k3X0Tݎsh![!@K&* Ǻ, dؖUYQERi` yd܊ ۈ"6QФR҂'e'n|~/=5P JTŭ SPmBKL@+0@ܢ܋k-9S|RPuPr{KA׶1c׆Au7?W[n:I uxob $b[J`\M|2_u%&K@ӅMDi2:]{w<?HX]Fed$MN%5E&",P">1.mDc0;- !%o3f !{MWBMyԍZ^eHQ(FΨJlR7: &Ў$)gbMR`AR XlI0nu## , 3x[hw{w@\oKÇ>WZ{^ dAA2"b\]6/VO1eafA[SO4jtYջ5 rw 9hfH\PG_6f̘A8^1qS#]EWFo$\^Io#݌r S,&es6T;/mW|[U2%0nrEb H\&3fDb<~G4>xЧ8mVZS5^,d$Z -2$Zx >(3}vN ђew7hhYFwmb(+p+uI# w0e-IDӤ"`E)1 Jq^,]R*ݻrܘd(. >Z̘D{U/Ds;Wʰ.,+@L3}*k$OTnCtVK_Ǵ-B<2ބ J҅_@pjZ0RFA@b$%eggfi/?XQ[ylnQTHzb뤉Bƍx)3jH{kxW}Gh*Mrqq# %#0X "y3^l܈L /`@l14Jhij,%, U/Ի DY3,d撪;eDO-ɒE=νVҳNev\~ iryQևf&(QCBz*RJ2\3y 5/Rrj4 f{ճ56V^$,݁픻(9HU.Jek3f~j^~enk)@b7mHQ}S)B:$C&I+ TP%ItN&4&1Th`:},2B/_m\,*+GN[N%ݕR.c52 dHgLhj$ դV2a\5z$RDB͘JI|m0㺮(}}O$^v JceG}(67uhC%ǀAgWqWj$8A 8R["wd8ɓ/r:nŰDCQְ4ފѬwKIPyi%%k1:yѸ{9j`D3ߌV;Ѐf0cH,ig|8 :_N`e$o!BR3Y1uZ@ T2RffA#ÔrILbK&`;} ZLIS˸<~yp/%\3`AVk% `_իR0AG  Z Sآ_YS)%\|E$}yW71-p]&ȸa Wޯr_b _ >T .o/驖86ʧq&fAsmz0kvWwzHk M:shNd _~|$0;F7p &$B p %&Q m*t&@*g!0uC0#>Sxۺ d. 6%.s)bA3ft#&n,h| E )+L2#I N+R0H)HfX aL$~%em*H3Ty,>pZ)=`2dgd6yX-swj댯waKR4Ki1s8.k$qZDzFJ XC$ 0,SBu ^._$ll,2g@#6wX:3f\D9gV8e}.jYe>Ƨ&)]R1 DF.LKH(b"'@$doV9 Ѱ(w}ay`vV*eJ'p:u:>n P2Gi!S k` T"k( 2)lfs㍓U9&ģc)TPfuW-yQ1c&ڄi3 72|XDyWju$9[IH(ax =8ևȦU+-#)YZj6Cʠe2ٟ-#zY1/mh06|m:`nGLҙ0$Lg0c[B / u. 恂RJCvm2]N^Ƙikj`ƌ\ۃ9j2 e_iqH,Bp$XݟFmi4]+i0[3c嚷ԁXEPBǮ:}?9JLlkXhC죋;ߊ ک u >|Mw딷wdsd\Ú(T@*KeUv"QiY 0w օb20͗jY1>ԯb  Km=^U̘hgq-KݗqŚ+r-8+Yh0ШaJ%&(xS*$Bظ$PS`4ADQ`|b>(&i$hr{fQ7+TPqc.l!,&VVy,">; 4rvv bp9`z(:"%QS"D=6Sԉ' [>aɃ'ZYV$%[{rr'A;u|@i FEHH8 >G@#9dDRAqRf)= JQJ&N -J0]3fM}$Zό:@|u=(6kpRh 3 9-Q-@:b"w$iY״LL,Ku;;w;N h^,1,!ARZKO뵺#5px!ʚLaӆ-HJH:ϸ @wABĺhlle܄MA">^KfO\.XΘCZŌZ<WOJ.3j3w'!k+dyMzAæE9P(Ș#;0}- -E.*QcpȲpvik"6ÙxBaG>1mZ8 fh̕FV,NSw9y==L$#Ή}- LЦQ.p,BJ bw s\z_0.CǢN>\n?03&xMvlq#C.lM/Eh9!r:ype^\#Ĵ6VV ^@.Fr%KL+I 2x1$@퍏3𚆪@XʒSFB"p^jR䨜JR*%] Dh sH?Ws%uRW}|váJr4o_m`ڹ7M0Ai :۷sLYC"e$'}z\BQDŔj䒵I $&fƜ3|1Wz @ #TM B[ Z࿖K@TqX)XIgۻ-Zg'>9| *Y )-.o,:C?u| "P2ʒ~˼&01o1eZ1uQ^s~/_T5g.@}Q\0z !ȃ+ã+8G4TCtZĖW[4cBMh[Θ1UV%h MU,|D 9 Ml]ai=w.V)DK-/=+ֳB#p> KKhPh,vIiڂ퀅,-_ÈLYe ( 80rJ3%`H*$w!,#iCr`[3?f_ܞ3fB\`" ΜlIMaM],UWkd!-6ĶNCƟMI A:x8hv/%.Z-IJDuDar8Qրeэ0 {Ѱ둶NqVad`}yxQeFtK wK| j" ,X BRm, C2CD01`^5 3VWm:1cEBMGJx=JJ+,w[V |jGuvKgv.m?ϰ@Ȧμ۹$;E(Rajs ]*qM[svZx|uo *@[jiԜ&®Hu@.of ځ J4Ivƌ)x/1e @pf`\ 7#ǚ[ IƲ.Hٶ.s}cf{՟m=Z,pf5@Ab[$@JNbReo9˲4tEYށoxVu05 /\NZ_p_ǥЧ*(9FXJ@+!y'$  --Џpq6+gg̘p\^4 5fa(#W5U B &oggO&gަnř! iҾg?1</Wʚ()qcfb}B&/4#}c'kfpݨI>j8 z& ^I3fȄU\1J.r&7`5Ƨ2xAi̐$D]!E`M8r:wbo΃?7_'ߍ'OTLdC;w!yPM,`cv8i;Og֯ić{pp ^Lr!n$$VʐHKYaVVHӃ69XS%WB@0'B1cMFk_IEr7.bJ$PդJF((ͫ[BlˋdL#dΝ쳏{L`{ޯ>g>''wM@3*$o cU)3o+oqq[yu<'}2@'s/].a}AKk"H@: ۍ !U'Z4L2і*Yr=;uhe+s^N>/t3 'dmDquZ-'mxOޅ!%9_p (kH^Lh~qT `4#$I^wK"n5}ƌmb ,Ճ)T 4#@<Ŵ rBRj6M;iS8} <@% $lz=΂c AC}eF-DW/|KhË?y@$ud=#+sM9=aN\R=08=kte!x<⏿m|߄:Y')D//7"eA.K?Oɓ5:SttCYd 薂S{J>%[J-XoMTp~Zf>I /~_Wn4 0Ps}ʘ//eKŕ@oi)2kl5y ^__+@+@AJ/|U54K RqKZKsissN1yKs5/?+<5O (p^ ̌~o&nnn352Ȟsm)ߗ9Y,p >)p=^^=~EW Kd*6Snu-"R\ܜaNҼԕl^2WSRE%Ź0 e\2ŜtRslyÇ7sD?n$ fjk~kMi2/e%%.O4 }"Ng-kLCLsS1]1O0 AebrKRaɜ=-\Laˣq#QȌm$~ThO>1d9GR.|B*om/Qo/Q bn7?M"`Q%v7R8w^&"پ4BAz#2|k\2< E_ԏrZ"4-dNu -+|'=sy5'ר$TV ;0,&bɱȀM\^j%wf^+[REyZV"@@}H!B6l1]Ӑ˼x!\ah!t|1&}<~KH5|q "!3*þ vbt,nt.yӑeRd#P|S iu3:uR.+`uۛ=_ny'ol}\}~Q%2F0dA{q5}r@̰CX` A1?c %0== ?i1u'w;cBgk"a=6Ogmw6e=h1=s@ÔdKv}1#Lh=h) c"cו`.t 9IKlp3i>3""*CiqycKR|ɽYh[`wD D_ңBxuLt&}PSm^Gge*  dŸv6_h<-3S^f06'? }y'9 ~Dw6OpՌC.arw 2#;JB6 'Ud(P->)UңG> =2m`rafi6LIT?ǻ;c=N6X6(r2}jA{qg[Nr$SJؗ1ŏ ΂a `3@ÍKt̽7Z>,;O+QtƆl[tLzFO \JRY`usY[GEYVaC0%`8TL;3l 0. 1_ f IiJcbfr}ㄌ J8ޡI!Ntڋmԧg-(ެu^1g a-wTdc,Scf@CRuK$[Mְ {US.t5ۣ4?x0\ԡ:h2h c, e٘Ơij@$ c //+̘U仍M:޴\V Ǜ[h L6K2YyLClj&GD?P0,uB[}'ACGGn)>\gDL]#Pv r%dYioo^]c$PdAu u |D.7[71JyBNC̪P5u>omJx{: 9ND2{Gi][f36 T!&@I@݁ h b|L(@sl2o!u87[U fur\Zҗk$3qٶ6߆_5csyӸ(5tyW-@hAZSRf |iJV3 hdf` C94[ܢ7^ | "xƥڰ-JM\Q#_\DQ8ݠ}ùG)rDBVQRa%S gȯU Ϙ ]3RE}Q=a*>)xr$"4Wp 7%Mrσ miIVŏ . yCو!!dd.Ae޴N)%niܐ,B8 r?ɲ󄌬7Cxj rw`q~?üĵre* E28`?¨ )39ګpy,}2q(3<즁 HM̂"j9 @,ryrqa(@89$aP BTfvh)+lz;PU\nL͞f. `  Z~_d*gBnـ/BRn V =Št(S-:SX= 1UC3ތQ+Uv"F5WWu;fh+E &^.崴S$P,VGfK s3#qKN[o^ mL/(0Ot1\_xw#L`Gwf}}I=iiq-aΑ.NSs7Vu;Ն'z[t0d/$#4 i^DRFN2kr8f9]8}_P=>E_/^J# gW- (K|)MaUx"!^_'0œp0C\WfwCPηZͱ xM'O&twFWնf}M2ue# >¤deKP~x/C}RH+M,8LȲPhr韑Oi5OH^*~\_ d}ax[׶pMHpo7OϕVf'ݥRc&l+ڌ!~Xڂ釤K^1͏ly6*RW(_!J#,Ra8̓#3|eZsBf++.c (Kj0R⩓(0YGp{U k$"7^rI,!ګ8g% ;ΚQm\ޘ|Z{pn F>;"~8; Ѓpw{8C/]vD@ތdX ],'_ @@/"Y0a VE$E?b#/Cxiq1 0IaЩ`W~mـ4 c,ˀ'_oԗW=ݸ|e*!k}5`2FH %_ nyݟ/D,j@d)F`:{ }2Y Hk"'dpS,?SDisظ0b!aB@2T E 36+)c1>]~Q7 YxE(BR~A]eb#%wwVeJژZ;\ x ޿vP~ o $!pI'} I ,?Ѫ3ͪvS`gv'0i )^]AY.K(QEQ&@7Ѳm2yβ Rฐ1K>,Ι3*K:J1bU#cu l6mT" 2$+{]A &+ ;B_>߽s^PfډqԓGAZo=: },l]RFItB;^ƞ~@w'&|EM #T&zBsv#,!gzv|a%5rɃ)czAja)RF밿sA+bͤݣC6-dC |9 awKJmL^P]!* k<kh2N 'ҨA'_ӿk @,NTt#Uk`^ ;u8z $h`]\\9 ,ӳPn/d^o P?Se(?A2du ijlӕҸNB;Ї DCNC<*N5TIeTCX# al @Rڥ %cBHh6oc&hm@n B $3C$ J66&M'^\څ֘31yqX$D`wEJ:bԟ"4H[j2ρ ɕx+ @w A6 }Vp"Uq-q5Vdi  1GYAa.(|iBvrAB@qRKO|,2'a YN4 =iZׇlnV&SO21/3}RDkt,X|2[AN^> 6 xS'1M [ ;0@\e*ތɜ?FeRQd+ ۣ!m!z<Tq/H|pZip\ (j ͌13C ֽaX̳543&`&(@?o iDҾ `pφr cV>G@B[PM:2'Z˦´0\ZPtH' /[Jĵi1@\ qv]@ZީR 3?vBH3;]7A #u Xh^.!^ݽؔ6Ê]~ Vffs1JFxT zӄN8mhՃ voR/GlYwh̵1CVB_ l8T^^İhibFؠ-ʛdKAҟ2/d+Es~xq9!0|!dq=Ei! ؚ֓jZ)qâk0j&ί#6յLNW&u]xv GaWE1g=@5[F3 W&L@O ?bD="ۋᢳ2X|]ANA lF@c1nE0M*[7L 1 ![2%P5{:=,'ꫧg]of(+e}a)v犻a !*t2 x_  =rfm]-DzНѭ:@AV=;@+:BwHpǿ--!xdF+cGnI„.wPeT07&W`BO_ٞZfj̚F4^9c9AcV~s``E ./B}HBʜ͖ٛЬ}~-`٥3Ɵg ``43~9 3@SlRkd`@):xE*9js+lYaoIK(qD qZwdE݈W2}Y }Ls K+ʔI L 'CrlV5[qP]F>v P$-6~%a q67lhlgߠv˞eq?쇖n:UAvA5Hf@z8dPTUnv( QgSӽ{t1|17k Xn$١/ 4_$y)<: .HɲeA9ƣb?K=$kt=ۡj`(? ,^?D4,ɚCf7xniY'8Kg@,*l +@6nAz6h 幛5ewZnq"D_dcX39ϣe2,B 3IVOQdXYsڹ'K1@|>|LgH?IcDa2)GsqQըֿEo؛n!`c;bUavNL~m3'xZkPU7$@h> Gq1frmҖMZ vz骲 XDIu<R2ߏI ,L$dLPsɟ`&8fz/ˣb.5C']B-|܇WaLUl3>Tb:30n[ט nƇ^L0`:")lSsX&;&k0IP}_AW g>7Ȳ:=ўld%5'! +dBk^;܂5}6.a)>3n0QTAv$2V3Ʌ4L\9T`cGܤH$42ޥi3 |)a[hdÖdwtoY5Mkͤ&4>77h nal27$,`؛-/X?~u4Ć؉5 ijl5~C[! ;tFFcrlpulp @8r.LPt6&-K &wT73edc2C=Ѡ 'kkH KvYq|_{;?k;eeXR^AYm9bsh+w.Cc%` }ti`8 + [e'cB>{&ADZ44ǻ[,ދψh;)xȍ`S5q fIlo}!w׿ھԟCB;Wz?fMCr@hξ7 YAT2wE2=f\#V145L/ c>e]cY쀸h:Rn%eTo/Qm/QUfk|BA4Ӂ0|69 "ZddhM]AzD 7+jk"[4eBB4Po$j 9l@YUs6PSGz j6t8fp]Zk0YH YCi T̶֒ C&yC#r2H,qg<+\H}fdeL ` Al6 Y2ۏ3,kNcYz,ٜ(lC A(̤v;՚dٗc  yS?a?w~g~ͯ@]=3wm_Ai3[  )倹Jwӛ "I"{] @؀Ia4a}T. XۿbFh1{ ZM\evK%װ,MWb!;V􄊙՛u~Nz;zqT 1̀)C3 LT@bN`2z5ɴ -4B`BgQ]_?/KG,@Aؾjjwo SMm=̾g=-%[r6z n#,Ț{C P&ɥ7+Mؤ &5;W#a92X(O) E*`;p'ä*UaF$a3u$C43p@j,Unи: h(n`O71ORN}xH)a .~o@~WA'H=̕Y-[@>D{{!{/?W@$\B\@` ?#l`]C 2T5`ƨ__}0яzpœ(DyP gRL܋`gSaycy6= Tt&=@I(J^v2.4%R`1s;Q~;(՟,̡oHOZfҞfc?}7P޵&=Pmpx|@Polh.APm!.>ϣ߿@W[așm@[!+r'u@C 9 ˏ#<#i|r0q=ݎJ5c`!04CҌXb*OJ'K ^ +ڛ{@D0{<ܲ"d\.D`'`gY^Cs 1̪@,ė}{˂^%YY15q ;L?ryLY#7-=4 Wbo9"!4@#zyrTlch~J/$ ̮܉K\~kqOAsg#jH`^{hu_k}|<|oa\gG6ټǙ} ; .v7Ns6kQ, =1CKsJ 5z!CY|碴p$W̳YH1Іd8 |NATy?do $ +$6T6L76Dv<o~'_%5 ߷m`طn@Ze!3Ooz!߱3̽Jf ؕ5<L~aSnZi emE|7ߓm~L_/ )v3#:n)o sn7vKTzIsG}-:x@1m-F?}WPcɱsu-qypu??{ixC,]d l\,Ë5c4`*g'U<9S$P "*B桨DК͌p;Pa b8-/]]b',DUm}n/xJn@`(KW$P5폠޾} =@D.>8/9cFÖIf3bgVu0 0LW/?#MkcV΅,qJ1D1Qd#gGgL*/|q.?H Q{s D !LnePU6Ƈ;z@wj#iB;݃;@w`9,[13{^8'*##sjxqePcz`z%'Nfam#FCV\( c?Cͤ!tt mJe&)CþTy۝}<ؾ.Ef;$C`Ƅ +2pE >0{M&ڂ~HʄKuD::">pxi0onv)SSXbXLF׆ԥ6KLYFȓ sGqnFy|r'+i0:س-Yf`_ =8TaXB}mh{+A9P^}?y-}߃;3^~暙1^ᬨi1z|m\&<#8#ǵ0CLYbtBħQ%.$yLv<ԇ}#HCR1Tq]=rZlƁ3"Sl2Z"(- ~M?!K_ ?'ؙbQC]|r.!DD 2[ 9 ]  fxNq}lB?MT =/ !e1̬30-(#x f!ТvXCzČJ_S:S3̞M Sᝓ,Ș]Bz17khCwTCseQRZ^q2f6'=f ?]ڢP?Dװ߄h/P}ކ=P5@uy)׀ЇgGWXv Ɔ!Ž'vu'[M ?YJ{5C'GjBO+2'ĤXtʴ5 v3ل=pdrD'3A.o/)9LFfaZ@7lUP04GPr }9H{.{Ou%~=/4ok_D3z_f ̍'f;)n {S_i?-Zip! >l|0 ` c[pɴ,19=ΰʥa5 >dJ*}䥲Y T@ZvfϙR|9c[%\YMdNq/epW݀e=_~믚UgހC+އ~$ׁ$7.![\~x˂]=^ /`mOƵrJn%f c /k;U03bեxĴpIigaY̞wrٍkage5KR( |Oe6I6en6 ʰN sY1{nf 4ro~Y{7py`AHFW644}oz@0 yPl =ֆ=1Bڻ@8iT6fxb˄,m>/̰D,"Kft/7]˚pڤJ..baQd&1aޏ[-,A Ͳ`YCaeRP@i4qdW2ÝM. ~Z5™n 8 \[\bh֟-6`}M AmQ >>[L=9%{9DXeatvL4?47I¼bzN ׷ø_g$qe@Acͫd.[i+01Oȡ]H*FXn IDAT `Wg!dCtPaPz1 frpvsEv3Vw р!@j>WZv]!xz0{y wXAۥ D~M_ ((^;YN$b?` b?%.Ӈ-I+Net#-4Kt#e{R8xY!f1?C 6ϐ8 w> yZ9 7̇о< m<Gpop3A.֔-aef/ ef^WC10ZZl Cei8q S:%:.$)e!H/ 'Urq֖ek3ll:nb Lơʼ,J[Sw[p8L n<^2줊& jW[~/8 f73E*k@lt:A]@.dh~ ao0Ziw%6㦳 v8իCz2 f@ 8:j9(-gn1bsceYXy=C$$aZs`AE[.OwÃ;I #gfO{?YA+e wS.cb|gwS:ap p¼/)tag *U,qe<5mirK [ Zs3 rypo-q[6 "ȪA‡;B0a$$ a'W,PH BgߖfRFP\Uk["."6-C#0nb3h\/J5G ZI$ ZB6;UraݤJ.XE ;,Οţ6$CB4r7cI3Vݻ#+4 ReBV5zYA}#6Kn|iFgJ'zwTxZrq%8Y?휔ڮqc{㛝ZF ,[߾ Ȧk0;B=5Kb? .! 1lEXr)n-ҟ+-}o@3o(K9g,BJȞ^O& J$#0Sq,7$h0ȾHQe 0ȺYCh'0X.?yP4r YLBBnjv  (žD1.$s8_XRfR92RǢK0p#%+;&Z!Y4|u,Il6vFcBTŻ۟_4.zhVp*$\40L2brek tNJ@&2Nއ,0@Q5 ϣe2JQo̻Uo?.rοTe2[\1{iyWaڴReg 3d9c/([11cMh4EQՐujs_CvP}V [xBV(z? 0½.0ٴ00}% B dݢ\^lZnqV_XָHԐM,{Q\>w&+)?|̜) D_E6-O6d3HVnQcwL]&rE slZҔ:s5UI$aGW|)jFrF% G3X f_qj{@6-fڷUD@#>:jz`!ߪ58,SaqK ;\^=U0_8$s@ |l%8X  ':f8`b^$l hAwG;S/PPm.0ZcQ]jMR1MDžWfF.6kni@l=.E bSTw5fsyδI𞡬8g9H\CҒ;Cװm37_V lN֭o۴|PGvU!9K6Uuo em&TIjA/T:*BV &egAqͶ[d5kL)W=Jטj+!ءVKA+Uf.(?fsqs-TC@}6.,#qrkei\U}`zDe[fb d@!`R+3)!&iU!eƑdUk Қ˧!rdߡ Iٓmbfp@r1]?ضsp駹O3^[`[F+>*qx01SaĆMPEjȯ5gZ bNb1ЬiLdf89{RkhlXs {I*'F;7j/&>j L-ЏG^hB m [3;AHfBFcq(=֦15rE@<ȡY;U9TZLaMᆙv deezV>Y= a*< z{hiWKVhנj!Ig^hYPhLBg)&/ADjse `֘z;$ NBlSe-ʻ ' %fLosK] fdJh{兴;I䃩Ȭİ;,YIVz\,)%13TwL 0\eF.hHYo-v}j{uhm;;CQlw Xd_ȹY XDnF3ן-$wlZs9rm84vR/SƣW9\CL 1KYb-JP#M$Y2mZš{Ey+pu QCOOf,{L&#t$!-C~TA>,t9'<5* t8s) =th{L`5ҵ0u>S,SR"9!E6 DGCif!7>8i&ȶ`U|J961.if%ou w6X 션qø av'.&`iuέ̕-w)@ć,>+&tyր^2.2s~D(j"@V)r`"#:ƌ0nwknx5Wo.Cb ]PǣaY`3E-edGl1xB7ǡUcBC5Š+Y}3* oM8},H-4͗(0 0Tv MeD6jLȱLi n/3}3Jm2R/Az&YeI^ =c_;&]v \b l6nI|O5O3LdMߕzzT*cyUeP^ti\Z|7ӳSLIK+TXhtC+S&/"^ԽP"u NR@^ ";!03wP\Ycnʃl񰣺җDbi̯CŝsBe >p6:{  `s0[Ȫ B>{fӌ0ǚoӜc~5_/!plMu<d>"݅JMd:? dYC],\.e> 9l`W<䖭ci߬NXhC|Y&TWZz ,v{z4.T㡒Td0mRm^ZCk"9SmAp(P`k1WcB?{L0Hl_EY?b89YlM=>$e3'1Urp g:Z>qd;}!uS9mWKk=sm}Hpqg"%&Y\`fWL&80MKt)y}i,t,0ձTfV]j@1#?"1[IJ,| GG*3?BɇtM)9:d1/%.ܙRpat{\LGpsju{nws*~MhG$`W ^n̡ )?Ϙ~t/r&02$̄Y[nOaXn߽4&dF9f&4&ҲmޥoPN5)l9P9Ȇi }Mexi\+GVL+۬O-2LB~ôy}<. fr#Xu\'( g,s,K`BApv-&V뙉fꪲlJ)y)y鎷m?iD!,$2XM}#d玿>p oŤi/?^I\A iiktƘZEuF,!x;(9dص+*þ<Gt)fYKd x_];n̟NPqg|6-c<%O&"[&q kX5&1<<$- (bj!4G2nQ9.Sv^=a^[4cqqa >UO:$!$gIYA)mĢ<%8RfOwΫ88$!F+rdjMfÚJ?@K2탤ivw83$g$%@ ݍ<#p=DFdDdDfdVUЈ,wcM`jxɛ"oGeMLe(Y!9.g EGLYF;> ~ Eai2Ykp+Pe@U!=@nJh B S($ yy<C.;d#0YUAՋJݵ1%3pB6L87 Oؿ ): pDF=^vp ˾P;k-'+4%'͛ZSdb&y#$R}Ch N[wO.2@9zcybރ9jĶC$o*bҗHJ4UEWՃ[H1y( 9,N3 b^y|}Y@Ƞ{!d.OtUE(*ab/BuPB=Qϗ5, AHnc,O2FkZ!ZYxUe )%iZdw&rܑӋ;<6T$ }hiʥ :=@Hdо[LG:R@|͗a؞ 905t0)Y_=@;6>v֦Bx5MN_x% ɳSe&04 4)0Х#At"zmzYWȻȢa阆E\☝yؚQg|^pїjKrot4b\(+Z~XI@SJd]eiLįii\T2(7 GI,D'_-$65a÷ӊˆ,8CH.0#{e̗Ѧ/ƈ,^< {x%fKCcӁ1ic9BKN) Q&tӰE6[m8 w!NrG EЀZl̈́:G>R4m^~|CH/l%e<_>fQЋCgO(]1 @Š|P̗)4MZ&O6kzhaI$gd9Tp%ˎ1y&2'yŞp`xZ_&@kgΜZUZƙ3gw&8?tb9EGRa\}%sq_b4{ow ~+gNq x)9~G$;mv@x$ja5i}xx3a~IxB*2! xOޱV &ooc{1~ Еr!?$sJ+xwժr\X~:l`8r7?OP6nƵ|ǝ.z珟z~ GSdέd :rgfyCy6L!񌢱yՙI! '02`1}V|[<-cYXkmSyY(Y%c)AWLf9LAĉw?<}{6:6ǎ};5z~~=+1,(דyS ߩb8AxFOd8J$<\bڦD2c$zdFZ\$u#65p~PSJ| tmΝ;Br d`z"/r0MJ+|_|h(MeawgyV^Lsk'w&CB!iĢ[IdDژ!yO20gst03g BA@VZ\~f?){asX 9{-*^\yM&F?*;O^^FB ;J} wq?8H 6nqoa*Ogo{;h Oڞ]:?ǯ픨fMU YOlEœa z8aj%8CFO:MӲ,UE7~h&E+2XHAJ(`Y;wRy؞ҒLeO' żƼ#'Gw@.Bs{ ɓvdQS({=|W'YXz@ $Mhbt`px=( yE 5PV`~2d؟['b֓-E`xh%{uT* :|2;5F䀓-H/3P6k+e*[ܻwf- MW>>]@UP nev$Ke,MGnKk}< e5uŹDadje0'z̰:"([lQ!0s O5gL 'ZU6l5;diJdfup HHN.-^e~~j(9_|&~Ғ4tOt3-'Sb,a 6N+EA-(NSWQ X(GSUtUGTT!2=8NvE:tm 9>l:YY@X0sxG$y3q,:d&EmK۸6A('QT./׮,MyLWf[,`Z‰e\j!-2aJd I˚дAsЛ0V0?2[ܽs-fTE?zh%BSQt EPTEU@Uߊ U X%J. Ps=AR%;[M{lm#ZkA9iYd̷ym7cznLqBs]HH*\3l:z(9yT0GJul_[zZ?JeN-c,Ipˏln15wد}MXX\`iy7nWӫgwvėrqOj*({OE fhPjL%kS G8;N2Lx2ѡrI@G {K@5loAp zdY@OFxC&<08`.Iv[$hHN,o~ <VV<Dzlgc"(8@Y,e'ugS?GQ(•FUUn޾NR7}-Ԟ7'H>$6yR<|<<)\.1L1HyP2jJJRaaa;??ȉx󠝄&yw >1R^gQY6~l^hu}?wŦU@-yt!mG`plw 8|'}yߟ[w?} [$*+ܔ$e,{RF AFe%qϸxdUUQUMPTUziiAMZ6Bڶih"( ^Ti(Ң}qtCd{']'?mc2Cu=hnn ?B/Yyص("\ AtLuM7R/o.xc ,NvNIեdO%8=u]nfD,|\I ="A \)qUU 0u]70 Cc&R+ƎG?4M×ظrpT8rR [tpb62@vbRLLQ5Ӻr<ЁWR^avzaǶi4ZdmsPC $n^ Z*PѠjEޥ(8 13ò0JH88]qQ$;v^E:U:5ʼnS+xνôak'3F;N ҸzuB6(m/7-uc:ظ{凵gL:}uΟș;XPd㷒aoo ~qp\7trif(UMliZx7D+UUdߗ/]GܾvR98\do?V&J6 i S79֢L ny^8lm\F`xr 0* n20ߛO|Dd0=^:{Ys<6ytCc%yaK)QT 4MӂBEG5E ϞO'6Qxor;R2w|ΰScbOd.F_󑊪 P@khڛTTuh۴[mZ&mt-j|m UQP/yoSE(  D'ΜӵZ?wk<R,ÛUwreʓ`QǸ\)UGu6fFEƶm=FQU*SS5J*JreYkB`MOLT2XL%{mxKkӵFVI^^b:aP.*,д`_Ϧ\^V~񋏹uv762feFk09\qk<R(,E Ba}Δ}{&M$(?<{:PCd3BP(3)/2xD(np.*AH* TA}.r?s|f]sO 媡p#F!_ ADw <'6DTx1Ӳ KK{8#x7| XyAʓYY1' r, [=rzo@^ C>ҿC&Fi[@RNdQfzWܾt@%U¾d~ە)vza{]E #15wV;GC'ٮ? ;OfyDAh,=iRxwcS0 ݽTQ%VLW*L3y|G\~uN?t^E{81( \w&N J=LQr@ ^Qʺ*0~H F;Њs^#qtEm+jOV클z\vT=_i >|U|Na}}ELHuZwY\\DӵFI}oETU%yywwyΜ= ߼@Ā8}: bggxlmm0{l4>0L}m>DSTf2dln<0 f6֟S.֪ ;{QOKfffd4ZJ X*vlN<doloދ^ 7L`"\mdr{ˣ́Cqئx^k7+( VGa9y])IoDi[ty; ;USx|^N yRYQ^eQ7y:41j+Jߡas _穖ə gUktv4^gcm24[mYYYѨy7Q*m[ob&RKբnSTy!:4 .J:cPFӥZr54MGJIRi6Z\y wp]Í7U!ЮQo.͛PUF7M\ϥd~*fxCQ%҇7j:.>hvlܽmfϕH$woB()hԑRPop-TEAۥj {{unܼ Hv>n$B=Ӵx뺎yVfE2a KݦhR){a}f33h٤lDܫZEN-%\R{;?g_PJt"t8 d <!wG굫tl; nwLOMiwP5-ױ;j5T@ݢZҵh:k5{ AiVWWњ(L>Hx=\o<ސ oillTh[ToaF0xX^ɹ瘙fgwU(p.]C/EU.]ao@>e}c˗.![ɓ'ʥ`CJy]~U|{_V7y6׮_S9gB;}_W[:GmjpO?sK !姿̙_7f N81GGll>geeK@bwLfXZ^JUܼur̩SΜ98NMw%|k^{u=۝67o˔˕D^r\ jA<> ϝgzf&'ϵk;uY^^oه?GUT(G?Ӟ^v܄H9f"Vdyy͸y|;`yisR*I2iQ,J<[[&ak_咅illg+,ʥaPy z^gNi*NKٲ([%,q~qEQmrDTdYRr{hFA"wEA٨SKr=_G2% ]W{{t:Ԫ5.\8O\09t2!E2e a@ | \IDATʧkzEZG\*Ϟy*h%R"~M| P!%}v h"&%]Ez^C @ub&{$ðLtM4 ]oW'|“'Ow_s(=MPU7tUC7ޜ콳# eݵ󂷐滜:J_e6q;iʘȶp&PJn"$M$K0-q}oΞ/_*fgYX BRo0?Ou*4T*10S])HF9{qy'N- lQ[796D 4UΝTK)86Μg`&gΜE;vy ˧Na/;w8qrJsUAO Ƀvmͮpҫ(7d{k۷n3wlW.]DUͅ?pyJf0xSPX^>}ɝ۷@."é NӴʥ oRJާdZ?w?)A9pr$ӳ=>pff9utB瓧OHLK(Rl6u"R:%)BUX^^f$ }.o0M\'BVeie%xN|!yH ~B`sk:.?j/CBѪhV ov;ASV1`ɶmC|*I\ =ݥQTuC.Q0LUUtn5!VfpTTqt:t:/),2>NNyNVCӂVMnv]4MRz0nwvU.v TIT5(i6[={| ˢdZ蚆PVvcX"n@JNۦj N׎V4 !z[oz FwτV;;3ji(B86zN+?\09p%no3զjXLqhwZP.p}`n]il1==|~2ZӲl#}TIOJH_4JJ<[[e6;S4ATm#[系to]W3fTZ0|cww/S"T66֙a0$ſMא #nܼ@0{ErB6PR8Co4K\8w_=ܿϟɥ荢83=;U*4 ennb!Ǔ; lo~;8#QU˟?Fb=}\4M<8nHO6Vb08-?'mo]a:җhʳUN9'GP<'. ++./?\[o'.U-5.\LlH*/ĩ\_k[ J( >k8uf?07=o\I䩚ʽ{|R,\lvmW9y$K+u6y%BQX_c΅MGܱ`o RTw7 &(yq'ʇa!9rbPܹ$FWѴ\e^󫟱\jk|ɧ3ğ,B{<[[W}ν__EMc2.Ǽۢry_ =;|ŅE7|LjTk{)%A)fz`fC7X\\m(Ԧm틓ިiR*<[[CH(W*糽E4-ny92=5w[7p]'X(l}z.a033CI"+EO7ڢncY ,F/e)K'Or칞tGp؏'RJnݼ/=)Y%d-\eks_J2q=zn277iulnn:SZo?tx933,-ʱ|rG].׀5}M_ԣ/wev3IENDB`sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212054411677024425 xustar000000000000000030 mtime=1353847743.012423703 30 atime=1369573545.778174541 30 ctime=1369573578.242175282 sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/Makefile.am0000664000175000017500000000032712054411677024005 0ustar00hbonshbons00000000000000dist_pixmaps_DATA = \ side-splash.png \ user-icon-default.png \ tutorial-slide-1.png\ tutorial-slide-2.png \ about.png pixmapsdir = $(pkgdatadir)/pixmaps/ MAINTAINERCLEANFILES = \ Makefile.in sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/PaxHeaders.8596/tutorial-slide-2.png0000644000000000000000000000013212054411677026177 xustar000000000000000030 mtime=1353847743.056423701 30 atime=1369573475.782172945 30 ctime=1369573578.238175282 sparkleshare-1.1.0/SparkleShare/Common/Pixmaps/tutorial-slide-2.png0000664000175000017500000005714112054411677025565 0ustar00hbonshbons00000000000000PNG  IHDRD^(IDATx^ۏ}s@d6q8Bm6!E $xKR)oACPO? D D`xwmuwfvON{>9[Tw{G-SUU=3Non [uKyJvnFz>"[hNgqsrp^uz!A8A;9bCm(xBЧB<׈|l&fACj#2Dl)˨2Xf`*saՁoC~Cm?GGdufqVK)UfIdZ\&C`n6i 8Z )^[+@d522HFC1H@41I0 jT@ !.HkuijTʦL~%Yl@%DZC"fT["s]\:MY^&!]rӍLe%)Hjyo6ېji2Hk5Iи -T&MBi24Ew:3SSS٬ƶ C 2rv^18[0g>17f ɺ+s;]$93 u]sSSζZ$\Nc1gX``-n&G8EAɵՂPxpdu{&1Sfre4\.8SnWRv1.06bэ xˊjDY%__-MQ!CА$*L;b9_U"i+TF|&qc#^~E[HȆ22(VHc\vl`̴) Y+ ܢDT(Uϴ3R Ae-;h!G H|#O>RI#L*JSв&9I|:=S.E2)*6mU&lt%{(晙alM LBL[tZJcΰ/azɛ7cH_RO<= !s\w sBҌ0-2vB- *%qx/ޠML!nF=԰ʇe l }|FlȴPXBR C eMFOCDAYJKt]nLs-IӎC9qXMr1ne L풫B%LX˜ 6iX"4ޔDΙ81؂aPť%R#*(OMMp^/J30L0jca5@hM)D S@:F5Ú`]!6F!%d́16eX܎ xy@ Ƃ$˝\3@XhTjR]kcA~1c8G/K41Nk-P s;ShDZfs*/'ֵYzJ؜a^q]I||l#wzD ..535= <$G0bٝh$[LfD#;!1i8!ZiTI6wMjKee7ĤfP -1BRʳS/Z'cR;73K#c-ܺclx3lf\D*{l4̉ \4`İ9 j9Ib-8gfSXCTjH:ӞaеY5̽e%gd oēlZTG3>X&flAD,䇰)4 Ŏg?.3K%@m2I Ve}p0Ht4lrShJ$@E}6 3h01;2=Bkw:nO2Yp:<˦. ^tGϺ/y6ATcGCM.LM{vS,!KZGY/%ƖJ"ɺh" NlyXo޻?b$]nZ^ g`9xrA0U>n n<_Hrt8Dߵѣ[nT:t;^#e"AJו/ jl3O[Y(llɓz}ﭷ~ "nܸh4?wYM0pQ<_Q՘7p}a_6s3h5h fH4C&hx#9ؤ̇>`֭;v;oڷ۷!id^at̖dy ÚF&s8 0BwO>O?O=|ァ$?}<{o޷&arBy͖@-̒IU[|7.>{)E"8~x&7_+*͛=W&$m*ayJWcErPT0)uX^`:"SUާ|BHwzo{Vuza8x7ߜ#>G mg DJV$ˮ&M^l<ƫd G?v MrU;v,//Sv{eф*y7^{V~ lC9QHu  J2t1wСc5פI9N\޵{7uxHCe)2ɟ?,-!AN˜K0X\e0´kw~Ou:TPjj6O8qnL3j~~ `N4ɲ߁Dz<脒 c!a" ]sZ,=W3rTvSbXBa% <7^l jG'u7’!E)AJ,IvAry7/3_ 7}/ݼc8r^܅"ŨӦF|GfO2"x둌qt(DJf7ˆ[r 6ka Lⷶ_d}ճg#PB<+L&^Z 넫 Blɓ3PjK9/u=uq@3ca!3]r_{W<|r'/<qO/g-2 ɺpɈyw:p6^U<8s-Q94b|CYnOQţ)#l7yWUiUy?R"[5xXZL- =ɞ䌃ORDT=ݕRTHs_n'tʿ}~Zi c* `Q3"RGt0'cw&`?[a3ե¬d6tWL9bBwz T 5[#1<~Ǎ=X2c@` 0_Lr] b | 6!(GaS_?9G/lͰo4DW^vm-xE0?en~X3t}!/{yUHiDʢ,۰d0q0/%Apy8@~H Ix54iYP")"nwSww:TU7%|\F1`b? KfuXƺp-wYV^b`t\7 ĸ#i^HH/Zg9B@\'ݛ"2lh<({)%eN!ٳ{<{*o9_]QX5b'V`ev)b"W\rʡźbK8 5eIA-(LB%cru..(4js-8 a".l150 嶒Xyz0wzEsP%Eu4,يc0ER: e\S+5X7JaY>^6V؋B+Ey zZyx*afEB}UZ\qt#>vf511bއ;2C fnQ@NYq9%H9O*f]"Y@`hvYW^Cw]װk V\{lY.tQGU16vClE.n#HqT3?sCeOߚFݸyN/i(mP7'|Vr+y;%ueZKxSlQ-iEajhƕH-VܭUǿRo QIh5ACƭ6% 7ygĝcM0P@|k^lJ?6c 7dk𜡴<YyzanYU^|XPhU*ƔZ(JWCRseuMڳGs5bRg 5똅/)+eNpH\c30@8##߈tS&%`}.Xv\MD܁Y.9UM?vsYw*{OJuFohaVμXc]!+f!ve ?jL#5FloϞׯUxt<::55 _rbwsY8Xg6E [全\nK p cwsuŢ_ZIi ;?*=7^͐)ư.'gy!"]y|vo99;ʇه_b_Ƞƈ5ֆ@&di"뢐LwuKZ+Y'6f7MK\c[KB߾k֭;wGUDM1T]g8_ƖU9v7f7/ɱ {U9a#m4_[3Jt^;ud󁟎6E?l +T[qJ:$VeWʓP)h"#c+-Bh>/_l@T@  8jW1Q)&zwOO{≿tIZkMGiFb1VWVܾ]f1ZRrexh[@uff>,B^` CF_>0+oZP`$ӱ?.`CX=hEq'ĩt, 5{$m`yx" m2۠xxqeZ-ߴûh17MKZⰖd(E֛$D)`Bd Ï>hX,$LSOIIK / ձf ,. m 0Ock qr m2q 0+f:L\u•+p[no~i魳gNO kV2aK !m-۝agb޷9N<;/ p+ cL%!HX1zPeBu1o};sBŵګ}[rf: 4[O>C^f Xj[P}߭}},UGhHmmcfu0 b04[>Z^;?DZ:z q stb?T$:)!d8! ~$o={tAs.>?) PLՑ[ńm(9 sGj *ՙ?%Ô_CuTZ)FJ :2TƏ(SU-0#󨻸#.)€}Α#m+x : =9Y~CΒgmQW9^=c4`w0 [K7_GjL-ocߧv+\BAիc##1%o?sGGjܬ h(}BEu ƻ溣r}Yv9&0!NeА%Eָt?I3W )`am Kc~ Ӷl*DiW#D,{\t?Z Rl:-<':=4: S`pRxVl) W*_cYbAEzXK`,4gh|{:3X,bIH̷xy(gy18㶩k:lIh-ai ̝K=瑹f0 ta)%tݟL1+PÓxE>ͶCzx:Uչn T\=.'P+;YwSFE W]X|&Bh%EЊ-WT,Zgg4Șm۷ dI|2:rsÝ <(VWWD / y].кIlDC]q13ZG3Zwrɉ-hot 5Yn!mX*ҷ] pLJƘ "ц`#Xr@߱P{]2o9-k>ȭ@&fY4 =P8L lvMW^Pe~xM3Fu0q&VUUqU53UtyE5ǢS\d,[ϯ Qje.ZZ e`՞I҆;v Hի6N@Zcc!{߹uyj [;/RA~̰7y 7݊tG$pD6ND.O7r:hmwmM0 {qԮ/&;i7'钬h_,Me2?|MANq X/0T;i젛zތSr+Ņz:D(,N#XP3@k47hjϞ/._G/͵*W*9wEǖG޻};Bn!L= Qu`yEta-J;wPO;lu6K2fG mUI{5N,`  GӶ^kLC7CkXhiO١Kѵzb41kr)V6qDpjt|#AF&/ƫ%nZgK|Pkg`ןueΟ93`={ W74̇n޻{D M=nt]u $sK}ynW0}3{rZù<=,][ZpssnQy(= &D[e;Y(ZYݵ#_4a3\-,{ '"SLYs`eƭ\wJ"uJmoN }♅>$ JpOZX_<ϝ;C{IbkW/]a'_{ ع&]$ "=948_\yH/Zĕ=Eq`p1[0-oiMQG%baZ|-!FA@ȑ \ɖ#f<!TX,n ^):7cOK5i8;|UPM=0!oY'_y֬3`ӧg#&B/u$bvv:Ni%؂[-ëWoYA:O|a5$&|i)+ ٽ~l)P0^(E,z9W (M^T+:wKmm^QDd)X[0HxVsevbP/vp_-pӟIS>xg}`~AAԑsgկ<3"c˂4*0t#h4걦W,37lk6Z֝\Ypo6z n{kkT5n9)2(=z}6\0yWY;.yh0r,+hJWx?o: Z-`l-@M%uC>YR~ׯ]Ҙl/5:㹭>7t;dܬ١1{r&jJ cY`5Eڑd 'Sv/ \bF6Ũ*TTqIRdl#%3&҄`I-ƍWN@LXݕuO=̯`G- ެꑱ1x!r#+b艤_΋]"<s$ikӄ%"*+~UG@+yUh!M"W_'؁4 FltIJ؊N{AYgcmST'߼"c24w_(e> ?)A0JMU>qE8?\S{YI޸~ jpV*ES<4dh6rRN9{x׊=k\"sZA]> {KT%5g,ˉSʑ&Z`$`}7T00 幫ܩ`p(ZqCf7<*s EގhLQ5EVX, 1$tNUs-d+xY8". y䫯­-PlH;,)j(«"Ӟ C>ߋ[3Ecg<7m҈dYu7uB7Gޫ<"_,ڸ%܀bKj@_}ݕ?5pK0vc gk7!g }.*JGF/ЙT;fӵhOm.xN=裧OJ-^bG(BM1E:*v6RIT>lᖵ`ֺàl^KRð8M v=[ EcLށ\߫(,/^ *{phyūҘ+RQ?)Tǐy@O׌aӉ@'O?q90VCM2 W6m$Z axy{>3垒T+ZOD,ɒ/$#Sv$lCZV:7fsPzfdk'J!KJ(]N!^bU9+ϏYg9nOE^ x7{ De'swQ$6CnDVM{Zj Zk3\QV`",~iY Cow-)yJXs"SiS6(Ϳg7$Ój"`x\A;|SKȔtRћdbW#I:}Ro~X'i d>XnPTLkY,Y=%AMI\LasTnڒv;]r}93! ?bUTT Cܘ2XĈ!KEPVnU+y g%Y*8"L:p^S'{ڲ,+O=m;vp=b_ <||UoQuwG~ﻦkfA[Bd_ G(Vl{ ƒd7| t4W’6>j.πacO'Ҽ)`roaד(Qt?Ӎp![c ۀ8$IK)[e<- V<ODR2=ҙy k!ߓ(rK+%PK^[Z3`Q Zlx^e%ޚkQJ \}M BeENX $[)O7;_wa2 "*Ycr2"wO/c#୻g!P]lc/Z9 XOڛreeݤg2͓4d.Žֺ\Zl:\vHY8-**t(Y<):g;}dx i<&ʚV1;Lܹs?e55P|:K,Kg͢w Q{`:hU>7BV'EֻTBi)1^p69gʘłj޸x1$ϵZtۧ4:ºʀ9!U pSrrյuupgv0CuWWyӀ=775e K;1Nϓe` ٘%Lױm|buD%Ncu?}ᄏwzoo'@6 7Y+v-[}{Մ$f[ $:zcYks*}a:ra4Fpr6;fDJ.5h*@ A/[*ṶHo+]w2Ac3\K>Kim]mBZp'hYkP˞i-]_9>oq"G񪽩#[+Mxq:~ɎJA)BP0Wߧ37̟Ҫ,Vha W;U&L?`qB xg rJĺ*eO..\JEm>g۵ssϿSY;FU3*x~e%HF= -M]_J-Rpg4n KQs!-┡W^|yϞF5Oc^/IBk3lC6Ng){DׅDTO>.49t֪˗B:N]GQlJ1;{z%@+);9Ӌl?$؍ZJ8#-价ö6i1iiCJeh?șZq,i={?fgVi{Qq>ѲtKdF) aYQRS3O:ȉsɉ10]P]W̩@ix-Eޫą]4||؎dȠ]sa8z$2<ʙTDyg~ZugοZZ(K 7I}Ӈ:{~Ub39wlrG>hܹ3g*2+f);"ѯ3TǻtU-²1R`8+̜6f$<8 7`I"r̚*+F+F7)1vԙ17C$JO3sYOaËjli>b`oBʙRwn`^ a Swc̴a%F4Jn:؋icn;>ko@0g%;gL],H~/CĞs|5ߎM$΋ig5U?eqNg2(fۨ{]hA3EQ:bsM?Ϣ.D^SJJ9Xrf> fLŬa&$=rZ jP[He֬q}4= 3r$Uf[A")<_"Y؜pKᘑ`Fm1"ɍ0]˚TXdțU=v{nӿg~^ٞrAXP7'=3+@U ikF&1!CLΖ+x{G1{E88%L< GSoqUc8 b]_v#cz!RS1icܠB8Iض[O[9Zà]үQXu9YzD ͶÔtݭ?W0h2>ATArc^;텆䈘$+C)×.i͞;7m^.fIP8 BD9_M$qtO6QCjYcfʹ%d]x'JVIZW]󈩦ɝ4&>6ؾnihZ޿/Btdӑ`R>gOD$>!m-KJ ^@ހPv@W_DniFc,6.0CC?W_U Tno-MF(%\;`V] Fׇ2~)5a1& V(⊗t6UdNф!h1zW!L)H 2dle~ŤX: ctu]01o򔑹H xb["Bwu*0TwA %3R5Ca*L#Dݐy''Ňhx9*U(Q^sq-@ņq9`PY73lĺӦ}? 0 cޛ2rWR*QT߱3gNe2@!Ȯ>z~yy.Ͷ+t{\SfR k%_']_-])1bLlCH(ӭ 8g. ń~tB/sw# WdnlO*fD$Mzge]6ƅ@f=q''wq'%&N_ڂ݌3IMoB"m# kt<͘!M#. )WևR~ujos⊳ڎc `4ӔҪP*ު >@[EćJ+h(4@PIv>=i'̞̜^ݣ3{w3gːjA\0/2\炳m Kc D-԰P<)#j['qA)zB^rcamO|aづ2((7Քd1F,MҜ XWΞXtZD;4D=;(ߩ Rz @< BD \! x)T_xM5)QԐX"ARc#ޑ.# pJaӔ&` 1 ?}M7ca,D,. {)Jj)qfe h[#z鞞VDlNdd19s5MZ{ϦMG`zoZl*aV 4. JEtT9{YCccH"};\t!_#ݐ֨ qH TDelJ=26v wJ.37ŠUaڼe w7 `{M7a9ΗØQÇH&io*)'#bC_Q2p]dWT3W[}RGe<42֖$D^W_>0fM\0BO> xFՎ?ڿin'gn˸a\(;]oAjK*&h$;mKj3G9۔ MCFyž*^g_ZiC^|{O/Ͼ+'N4B{0ebBu Jܻ{=wމI뺺6 ۶&'}i WLSJ0I dpzPaS((l -:*}S6߰^6 |=a.2;;̙DZxMجdTqZ[?,kPq85;.ATp)\p͝wKo޼鷿9XF-ފLaܒ$fh!|!/ǵ/Kz/)ޯ,QW a%FR6}S[]]˫{< _Q6na- 5p%eҶ.TRFOO+h0`RlfT<{='~m׮}_zϿ{hG200pGWw7W^tkطP6;#kɧd':8+f}ippz4Ixc)׷*汦): ] {SL #Gy|.dry]Lf#G{>pzx0Aiz`Jh0x/1tIJR?΂^]9x_xᏫ׬!"N ( &q$$"Tfi١c ]Q;M&ff4x!}Jq=~Fo&FT`۷g}aV5$}dj14@aH]\Dao&p(uoM5 SNmG`+xeضԢenT"'>#UmݍNR 9m['3M̬.bXZ|zn <Ϋ~ɣ+N\z'zQZNf:EYXDE>:{`k`Εz8e*TGwtLcSSP-13Պerq:M^ ޲dZs\e-gn`yKe-Me 1bX6ڟ#L^ryep4NDcczz:; :)XTtl X)o SE>ݜG5~ (hH D\ulq,+ҙEC^<`6%)<:b|rn**9s:T\`pwD1u)YDÆON&q|Hٓum@k:;){]qk%d[3a+kpe-:}[W r CC&&uuץ-* >NlhQd;U4.gۣ/\xhU6!*+QDѿ-ݝ$HIbDP%ZV1aoeZ^sDaqUəSgKͭH/[6s r""LY3שmN"7ԑL#w/pY<7ߔd$~4`4܊(kC퓳{Aj>a:\\ ۂ(,Xv݇^j1&0 (Q+]\woo͚S`2@ S%ĄyZ$  Wظ~,vhѴOLOlkȠM1 ھ s]F2G쵲 ێ;`anܹ3+;Z[//Tw 9n '׊I>_k](u-EŏLڂo`9ghrkg3c?7b:fN"í5m@z!&0)_|1/ eM[HA˼݋+˅J i;=&\KLm=mArʁ12!#p%spml. x < ^ 3mMA&b/h.$g ν)8*e09>̊]nU2b Z`Go2#C5{[/NX:YI,hDE+tc?*rRPI.Y3 ̃sU- ?_t~QVYb~$,y2hE8:_4vƍ{9ɛbs8[e]"0a4mH̜e&H TNn?}mrZ[Bc&錎]MAT Yˍ DE6딁YS.X&5m8 бoմА#V΢3JŞ"esױ!'+ءհ4_c3,?[]Ag_aS1XhYoQhNݘϯ?ob,g_@OPH^]^2-Jc~qKG>Ag,^r4rL\5.HMZY d&r_3sl^΃ aq$a^i,Y:235F܀$USisёrk gcf ZMqf:%0<D2>̃d[~V Tpi],&Ha}I})=,I9Q4S7!M5H6<#<9T%e l ͠253Xu $d$;0JG$XI=zŏcz2h,[>MxTnH؊)Tcv=eI(] \GZ%! y Td7qV!bxpN1aCB?  Z&RTJ%0k{rV&g4.ɢEFgr־ZFVв[dv[Q9h/% [I K#3$ nkTNp% =b7VRg<8NWIA{uc-7KjPk̬|VI\e38Uy->)Zqbe=a]X 3ADpx qذ@}nb , x|ɶ>] 4 r$<=0|c!nM@z{7_/&R=};^y`{mfYBh?QmeLM`}ƽ+%bqsͳMLDDJ|~leV:=u,?Φ_^}8p-{~#Ɨ޺Lفc_!_h clbUcEzݠ8X"0 itG)?^ m2y'F!ߙCU!UH=Dq,q0OlƾjT7.>#G@~iD4 7zTdS5z00؇ҿ\RZqߝMG8t{-RRv|~)eDc k[ yh9i9hi>t)~.Jޗ;i̬1- i 1GѓeĨNK.2afF?:3 15Jpy(2kŲvUAO@SXZZR% l˶%tiۡdgG?O@c֐ M]JAjjH:XPJE4.`:8"vtᨍ?68aǮ訖ĤwIɉ!ߵ;_Hz2'Kg  IENDB`sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/own-server.xml0000644000000000000000000000013212053415662025217 xustar000000000000000030 mtime=1353587634.748507774 30 atime=1369573475.718172943 30 ctime=1369573578.174175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/own-server.xml0000664000175000017500000000071612053415662024601 0ustar00hbonshbons00000000000000 On my own server Everything under my control own-server.png Git
ssh://[user@]hostname[:port]
/path/to/project
sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/planio.png0000644000000000000000000000013212117357047024361 xustar000000000000000030 mtime=1363009063.571253412 30 atime=1369573475.742172944 30 ctime=1369573578.186175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/planio.png0000664000175000017500000000624012117357047023741 0ustar00hbonshbons00000000000000PNG  IHDRw=iCCPICC Profile(TkA6n"Zkx"IYhE6bk Ed3In6&*Ezd/JZE(ޫ(b-nL~7}ov r4 Ril|Bj A4%UN$As{z[V{wwҶ@G*q Y<ߡ)t9Nyx+=Y"|@5-MS%@H8qR>׋infObN~N>! ?F?aĆ=5`5_M'Tq. VJp8dasZHOLn}&wVQygE0  HPEaP@<14r?#{2u$jtbDA{6=Q<("qCA*Oy\V;噹sM^|vWGyz?W15s-_̗)UKuZ17ߟl;=..s7VgjHUO^gc)1&v!.K `m)m$``/]?[xF QT*d4o(/lșmSqens}nk~8X<R5 vz)Ӗ9R,bRPCRR%eKUbvؙn9BħJeRR~NցoEt pHYs  iTXtXML:com.adobe.xmp 1 5 72 1 72 24 1 24 2013-01-28T15:01:42 Pixelmator 2.1.4 OnIDATH V[h\E9gwSExyxIsMLT ԗ bU""%jߴHAhHS/E`1&-T>%5{ɞsglv&q`gg|7K̬Ks"2Yiu OwRDZ+Uu auvhiJH;,UBd mt$Nv(RۻnY>aO00N6t1LpXf(@@O0$+;g{KSjY Vm`~ %Ysu)·Kӕx -8NX+P/aZ8l)OhiGoX0îcctQ\\@Se|)y1MG+mOAMq[$m@]8Wh?(Z.h&y^sŸCeZ,Z>EB#2<|˾>w$hWˎoeBHdNvɺ Tjt?2.&pe pjIENDB`sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/bitbucket.xml0000644000000000000000000000013112053415662025063 xustar000000000000000030 mtime=1353587634.748507774 30 atime=1369573475.710172943 29 ctime=1369573578.16617528 sparkleshare-1.1.0/SparkleShare/Common/Plugins/bitbucket.xml0000664000175000017500000000111612053415662024441 0ustar00hbonshbons00000000000000 Bitbucket Free code hosting for Git and Mercurial bitbucket.png Git 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
ssh://git@bitbucket.org/
/username/project True
sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/gitorious.png0000644000000000000000000000013212054411677025123 xustar000000000000000030 mtime=1353847743.056423701 30 atime=1369573475.718172943 30 ctime=1369573578.182175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/gitorious.png0000664000175000017500000000232612054411677024504 0ustar00hbonshbons00000000000000PNG  IHDRw=IDATxڥ Lu'+h1V =,rLVXbM0VF)p,H(`mh"*$@"&B80y=!Aa}ߞg={?`޵R^>"\dʕmP-I||v"?pR%jRh)kmEoqVN$u$Y%v{bcb9RSpF%]+1Kdg[[ cf&F3 /D V%||Jy1RӦ:0uD}Qڳ-| aph4\s7d9tJ08>DiPBi||v D WL:ؾqWZd4q͐ۇЌ86}:̥Bհh:ZKGŠn)~ @sav8-ߗa*6mw!yNk4k%}7`tc*&f q xv%ج`^2'`dFa0شZ8 P]@Lzk.wW5 ȋARb}kfLnS0^hd21cU6$k L+0H gjPݞnp$;*WuU.L$Y IKX^L55pZiXN砛˘?jg\@ IӘ+`>9eW'^wN݇vXG6ÞY, SQZx. jMw? 2D~(¹T\It0;诿a LcLߍz%dפ?ldsZLBFX^]{\8#wæ"?+@)`:7[RT!}C]&*dzR*t6\!J4>?KC:/1^z>ECS)>V'*K.ɄC\#J<LB*UxԬr3W^PÕpm:%At5ɧ%ybIZ…K.]* &}L ,**'BKN39+Q~ _ t &r5> -/_.r7^/_fr"3IENDB`sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212117357047024425 xustar000000000000000030 mtime=1363009063.571253412 30 atime=1369573545.726174541 30 ctime=1369573578.190175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/Makefile.am0000664000175000017500000000047612117357047024012 0ustar00hbonshbons00000000000000dist_plugins_DATA = \ bitbucket.xml \ github.xml \ gitorious.xml \ ssnet.xml \ own-server.xml \ planio.xml \ github.png \ gitorious.png \ bitbucket.png \ ssnet.png \ planio.png \ own-server.png pluginsdir = $(pkgdatadir)/plugins/ MAINTAINERCLEANFILES = \ Makefile.in sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/planio.xml0000644000000000000000000000013212117357047024375 xustar000000000000000030 mtime=1363009063.571253412 30 atime=1369573475.718172943 30 ctime=1369573578.178175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/planio.xml0000664000175000017500000000110012117357047023743 0ustar00hbonshbons00000000000000 Planio 500MB of unlimited free hosted Git repos & project management planio.png Git 77:d1:54:d7:33:7e:38:43:40:70:ca:2d:3a:24:05:22
ssh://git@[account].plan.io
/[account]-[project].git
sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/ssnet.png0000644000000000000000000000013212054411677024233 xustar000000000000000030 mtime=1353847743.060423701 30 atime=1369573475.734172943 30 ctime=1369573578.186175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/ssnet.png0000664000175000017500000000263612054411677023620 0ustar00hbonshbons00000000000000PNG  IHDRw=eIDATx^e]lW33뙝YIc6?nPT ATrB .BT (EjAU%DT8M,$jٙ9^~f~|̧Ohy3ż+u'Q<ւM Fja"l"!A/Qx߶.NTS*5l%%IE¢f<7lD}^<Og׺!!:Z˸A@? MlAex!`W{ o:ȡjS,D1i./3x^@"v7FX>?RHI,yrGIr.jƈlA \6LR&@F1n㗌~sleT"e+lG+I5r5TbAΑbM=]"}Yr9;?G?m:$(Xa ۑi4͈.U lkݠ}Եw` , _~EuOi}|] J D2> s+쀱_B02Mj3"*8RX#+MyYZ6C^8b̓+NpՓ\x z (aA vwewMhP$WWjhm,s瘨,)&| ֕}XB5;V8zZ6Gج` xa5=, - 5,W<(gZ[NP*zXTp;ϳ\wY<_*?<=t3X {tnKV7Vo!6 7/'[s؏Ύ\i|xxǾC~lPaqPYFYZLIi'Ghyg,ǝƑ,Jl5.b EiEBxW{$'c~k 7IENDB`sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/ssnet.xml0000644000000000000000000000013212053415662024244 xustar000000000000000030 mtime=1353587634.748507774 30 atime=1369573475.718172943 30 ctime=1369573578.174175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/ssnet.xml0000664000175000017500000000074312053415662023626 0ustar00hbonshbons00000000000000 SparkleShare.Net The easiest way to share projects with SparkleShare ssnet.png Git
ssh://storage@sparkleshare.net/
/username/project
sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/github.png0000644000000000000000000000013212054411677024361 xustar000000000000000030 mtime=1353847743.056423701 30 atime=1369573475.718172943 30 ctime=1369573578.178175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/github.png0000664000175000017500000000305212054411677023737 0ustar00hbonshbons00000000000000PNG  IHDRw=IDATxڝUiLTWV,00)S4Ep*B]bX6&[eQ[K[7"ZSŶZ azޥZ&}ɗw9߹n! r ```>k/'npBۃQZRٜ% '4Ev'Nq%<e G(x JqzK11 zclZw,iH"[sRRmԄ:yHrOAD$&υwT>ab[}0vg)q20;#ҐI\/ia5<]uti K'N4ܱYӡ5@A!X6(&&.w=3Ԣj MPB,٬O#gZ 8X/#S!Py @TF#AM0MP4ԯ}6I@MyJw8́'!T@Avt:c r/s^n}MTaNod~o ؏EБs63glTsubqDهHqgxs5A% ټt6|lGˁRvB-p2z6:z~=h=X(-g"J Z|'(@N2͜G=xxw*GpzAk~k.C7$I7Ƿ_wM5GP_U ˁ]*I4fƪqg6փ6,***Ҫgi_{P3g&W~e)w *cMc#3ߌB)WԼRs޴^F' PyHϛŜgLF^@*LجiM%, HO[kW5Jc[+ F٣uf`ןF8:s:ƹy8srpqtG5D\m]b8/2)Ew%i!PEx9ΠVi8RpԢgc.6Ȓ">*R_%5X4R=|Ń_@#'C-V\Ih^]DNQY~Y uPwM5cdȻhtgS1e9$)g ˧0b#EIENDB`sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/bitbucket.png0000644000000000000000000000013212054411677025053 xustar000000000000000030 mtime=1353847743.056423701 30 atime=1369573475.722172943 30 ctime=1369573578.182175281 sparkleshare-1.1.0/SparkleShare/Common/Plugins/bitbucket.png0000664000175000017500000000226212054411677024433 0ustar00hbonshbons00000000000000PNG  IHDRw=yIDATx^kǿgvgw6ɦjZ 7G7T^Bŋ^^H/DJׂQЋ7b[B_LӤaMMy{<,Cl윅93p?kL&b&B&*"sMꌡ5Az0`agMLh$l kgNBtYݝ|!ggrvv6#CKxhE6`,ZN-=1ScyJj\/p}Q6"PpROo@?*1jۜ(:cdjHpCxٗWc0l 2Ģ |tcVށm;#=ջLJJ@zZP#rƓ]Eh h"S D !T4$B~F ҕ@P"*Q򛛺RryMR^%0z!fS-A!0"0R),{P؆~a/ν3^S}cN 6`__P<ٿ9D&&҂;wVRքvwpW롿,>\©/E ?vJrgjJp~⤴-5?lӃ]0f1sG;2EB6}EyCQbZE4"IB0++UV_kDv<]D4ʖ(K.eeX;bemŠ5%[QKMU%Lbdsy"rqk}n" \(E,Lv.0˂'ϭ2Rd3f:O ܿI6%pzUg?}@6jW'߽1=}퇟.]nJDS"wZfҕٿtmz/g_Xz{F  \Gp&%ҺiuU/ȫw7/XK(-ɚ&+%c&- O4& 5%NAIENDB`sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/gitorious.xml0000644000000000000000000000013112053415662025133 xustar000000000000000030 mtime=1353587634.748507774 30 atime=1369573475.718172943 29 ctime=1369573578.17017528 sparkleshare-1.1.0/SparkleShare/Common/Plugins/gitorious.xml0000664000175000017500000000106612053415662024515 0ustar00hbonshbons00000000000000 Gitorious Open source infrastructure for hosting open source projects gitorious.png Git 7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d
ssh://git@gitorious.org/
/project/repository
sparkleshare-1.1.0/SparkleShare/Common/Plugins/PaxHeaders.8596/github.xml0000644000000000000000000000013112053415662024371 xustar000000000000000030 mtime=1353587634.748507774 30 atime=1369573475.718172943 29 ctime=1369573578.17017528 sparkleshare-1.1.0/SparkleShare/Common/Plugins/github.xml0000664000175000017500000000103012053415662023742 0ustar00hbonshbons00000000000000 Github Collaborate on projects hosted on Github github.png Git 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
ssh://git@github.com/
/username/project
sparkleshare-1.1.0/SparkleShare/Common/PaxHeaders.8596/HTML0000644000000000000000000000013012150404312021416 xustar000000000000000029 mtime=1369573578.13017528 30 atime=1369573578.250175283 29 ctime=1369573578.13017528 sparkleshare-1.1.0/SparkleShare/Common/HTML/0000755000000000000000000000000012150404312020543 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/Common/HTML/PaxHeaders.8596/jquery.js0000644000000000000000000000013212013750144023357 xustar000000000000000030 mtime=1345310820.338218931 30 atime=1369573475.674172942 30 ctime=1369573578.126175279 sparkleshare-1.1.0/SparkleShare/Common/HTML/jquery.js0000775000175000017500000026231612013750144022752 0ustar00hbonshbons00000000000000/*! * jQuery JavaScript Library v1.6.1 * http://jquery.com/ * * Copyright 2011, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date: Thu May 12 15:04:36 2011 -0400 */ (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem )});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument|| b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); sparkleshare-1.1.0/SparkleShare/Common/HTML/PaxHeaders.8596/event-entry.html0000644000000000000000000000013212117360550024653 xustar000000000000000030 mtime=1363009896.079272408 30 atime=1369573475.654172942 30 ctime=1369573578.122175279 sparkleshare-1.1.0/SparkleShare/Common/HTML/event-entry.html0000775000175000017500000000100312117360550024226 0ustar00hbonshbons00000000000000
Show all
sparkleshare-1.1.0/SparkleShare/Common/HTML/PaxHeaders.8596/Makefile.in0000644000000000000000000000013012117356351023554 xustar000000000000000029 mtime=1363008745.29924615 30 atime=1369573545.666174539 29 ctime=1369573578.13017528 sparkleshare-1.1.0/SparkleShare/Common/HTML/Makefile.in0000664000175000017500000003066612117356351023147 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = SparkleShare/Common/HTML DIST_COMMON = $(dist_html_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(htmldir)" DATA = $(dist_html_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = $(pkgdatadir)/html/ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_html_DATA = \ day-entry.html \ event-entry.html \ event-log.html \ jquery.js MAINTAINERCLEANFILES = \ Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Common/HTML/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Common/HTML/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_htmlDATA: $(dist_html_DATA) @$(NORMAL_INSTALL) test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)" @list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done uninstall-dist_htmlDATA: @$(NORMAL_UNINSTALL) @list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(htmldir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(htmldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_htmlDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_htmlDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_htmlDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-dist_htmlDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Common/HTML/PaxHeaders.8596/day-entry.html0000644000000000000000000000013012037107461024306 xustar000000000000000029 mtime=1350340401.04202988 30 atime=1369573475.646172941 29 ctime=1369573578.11817528 sparkleshare-1.1.0/SparkleShare/Common/HTML/day-entry.html0000775000175000017500000000024712037107461023674 0ustar00hbonshbons00000000000000
sparkleshare-1.1.0/SparkleShare/Common/HTML/PaxHeaders.8596/event-log.html0000644000000000000000000000013212117360550024273 xustar000000000000000030 mtime=1363009896.079272408 30 atime=1369573475.662172941 30 ctime=1369573578.122175279 sparkleshare-1.1.0/SparkleShare/Common/HTML/event-log.html0000775000175000017500000001461212117360550023660 0ustar00hbonshbons00000000000000 SparkleShare Event Log sparkleshare-1.1.0/SparkleShare/Common/HTML/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212013750144023536 xustar000000000000000030 mtime=1345310820.338218931 30 atime=1369573545.654174539 30 ctime=1369573578.126175279 sparkleshare-1.1.0/SparkleShare/Common/HTML/Makefile.am0000775000175000017500000000023412013750144023116 0ustar00hbonshbons00000000000000dist_html_DATA = \ day-entry.html \ event-entry.html \ event-log.html \ jquery.js htmldir = $(pkgdatadir)/html/ MAINTAINERCLEANFILES = \ Makefile.in sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleStatusIconController.cs0000644000000000000000000000013212150404106025513 xustar000000000000000030 mtime=1369573446.190172269 30 atime=1369573446.206172269 30 ctime=1369573577.742175271 sparkleshare-1.1.0/SparkleShare/SparkleStatusIconController.cs0000775000175000017500000002324712150404106025104 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.Threading; using SparkleLib; namespace SparkleShare { public enum IconState { Idle, SyncingUp, SyncingDown, Syncing, Error } public class SparkleStatusIconController { public event UpdateIconEventHandler UpdateIconEvent = delegate { }; public delegate void UpdateIconEventHandler (IconState state); public event UpdateMenuEventHandler UpdateMenuEvent = delegate { }; public delegate void UpdateMenuEventHandler (IconState state); public event UpdateStatusItemEventHandler UpdateStatusItemEvent = delegate { }; public delegate void UpdateStatusItemEventHandler (string state_text); public event UpdateQuitItemEventHandler UpdateQuitItemEvent = delegate { }; public delegate void UpdateQuitItemEventHandler (bool quit_item_enabled); public IconState CurrentState = IconState.Idle; public string StateText = "Welcome to SparkleShare!"; public string [] Folders = new string [0]; public string [] FolderErrors = new string [0]; public string FolderSize { get { double size = 0; foreach (SparkleRepoBase repo in Program.Controller.Repositories) size += repo.Size; if (size == 0) return ""; else return "— " + size.ToSize (); } } public int ProgressPercentage { get { return (int) Program.Controller.ProgressPercentage; } } public string ProgressSpeed { get { string progress_speed = ""; if (Program.Controller.ProgressSpeedDown == 0 && Program.Controller.ProgressSpeedUp > 0) { progress_speed = Program.Controller.ProgressSpeedUp.ToSize () + "/s "; } else if (Program.Controller.ProgressSpeedUp == 0 && Program.Controller.ProgressSpeedDown > 0) { progress_speed = Program.Controller.ProgressSpeedDown.ToSize () + "/s "; } else if (Program.Controller.ProgressSpeedUp > 0 && Program.Controller.ProgressSpeedDown > 0) { progress_speed = "Up: " + Program.Controller.ProgressSpeedUp.ToSize () + "/s " + "Down: " + Program.Controller.ProgressSpeedDown.ToSize () + "/s"; } return progress_speed; } } public bool RecentEventsItemEnabled { get { return (Program.Controller.Repositories.Length > 0); } } public bool LinkCodeItemEnabled { get { return !string.IsNullOrEmpty (Program.Controller.CurrentUser.PublicKey); } } public bool QuitItemEnabled { get { return (CurrentState == IconState.Idle || CurrentState == IconState.Error); } } public SparkleStatusIconController () { UpdateFolders (); Program.Controller.FolderListChanged += delegate { if (CurrentState != IconState.Error) { CurrentState = IconState.Idle; if (Folders.Length == 0) StateText = "Welcome to SparkleShare!"; else StateText = "Projects up to date " + FolderSize; } UpdateFolders (); UpdateStatusItemEvent (StateText); UpdateMenuEvent (CurrentState); }; Program.Controller.OnIdle += delegate { if (CurrentState != IconState.Error) { CurrentState = IconState.Idle; if (Folders.Length == 0) StateText = "Welcome to SparkleShare!"; else StateText = "Projects up to date " + FolderSize; } UpdateFolders (); UpdateIconEvent (CurrentState); UpdateStatusItemEvent (StateText); UpdateMenuEvent (CurrentState); }; Program.Controller.OnSyncing += delegate { int repos_syncing_up = 0; int repos_syncing_down = 0; foreach (SparkleRepoBase repo in Program.Controller.Repositories) { if (repo.Status == SyncStatus.SyncUp) repos_syncing_up++; if (repo.Status == SyncStatus.SyncDown) repos_syncing_down++; } if (repos_syncing_up > 0 && repos_syncing_down > 0) { CurrentState = IconState.Syncing; StateText = "Syncing changes…"; } else if (repos_syncing_down == 0) { CurrentState = IconState.SyncingUp; StateText = "Sending changes…"; } else { CurrentState = IconState.SyncingDown; StateText = "Receiving changes…"; } if (ProgressPercentage > 0) StateText += " " + ProgressPercentage + "% " + ProgressSpeed; UpdateIconEvent (CurrentState); UpdateStatusItemEvent (StateText); UpdateQuitItemEvent (QuitItemEnabled); }; Program.Controller.OnError += delegate { CurrentState = IconState.Error; StateText = "Failed to send some changes"; UpdateFolders (); UpdateIconEvent (CurrentState); UpdateStatusItemEvent (StateText); UpdateMenuEvent (CurrentState); }; } public void SubfolderClicked (string subfolder) { Program.Controller.OpenSparkleShareFolder (subfolder); } public void TryAgainClicked (string subfolder) { foreach (SparkleRepoBase repo in Program.Controller.Repositories) if (repo.Name.Equals (subfolder)) new Thread (() => repo.ForceRetry ()).Start (); } public EventHandler OpenFolderDelegate (string subfolder) { return delegate { SubfolderClicked (subfolder); }; } public EventHandler TryAgainDelegate (string subfolder) { return delegate { TryAgainClicked (subfolder); }; } public void RecentEventsClicked () { new Thread (() => { while (!Program.Controller.RepositoriesLoaded) Thread.Sleep (100); Program.Controller.ShowEventLogWindow (); }).Start (); } public void AddHostedProjectClicked () { new Thread (() => Program.Controller.ShowSetupWindow (PageType.Add)).Start (); } public void CopyToClipboardClicked () { Program.Controller.CopyToClipboard (Program.Controller.CurrentUser.PublicKey); } public void AboutClicked () { Program.Controller.ShowAboutWindow (); } public void QuitClicked () { Program.Controller.Quit (); } private Object folders_lock = new Object (); private void UpdateFolders () { lock (this.folders_lock) { List folders = new List (); List folder_errors = new List (); foreach (SparkleRepoBase repo in Program.Controller.Repositories) { folders.Add (repo.Name); if (repo.Error == ErrorStatus.HostUnreachable) { folder_errors.Add ("Can't reach the host"); } else if (repo.Error == ErrorStatus.HostIdentityChanged) { folder_errors.Add ("The host's identity has changed"); } else if (repo.Error == ErrorStatus.AuthenticationFailed) { folder_errors.Add ("Authentication failed"); } else if (repo.Error == ErrorStatus.DiskSpaceExceeded) { folder_errors.Add ("Host is out of disk space"); } else if (repo.Error == ErrorStatus.UnreadableFiles) { folder_errors.Add ("Some local files are unreadable or in use"); } else if (repo.Error == ErrorStatus.NotFound) { folder_errors.Add ("Project doesn't exist on host"); } else { folder_errors.Add (""); } } Folders = folders.ToArray (); FolderErrors = folder_errors.ToArray (); } } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleAboutController.cs0000644000000000000000000000013112075244311024476 xustar000000000000000030 mtime=1358252233.861936211 29 atime=1369573462.85417265 30 ctime=1369573577.722175271 sparkleshare-1.1.0/SparkleShare/SparkleAboutController.cs0000775000175000017500000000603712075244311024066 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Net; using System.Threading; namespace SparkleShare { public class SparkleAboutController { public event Action ShowWindowEvent = delegate { }; public event Action HideWindowEvent = delegate { }; public event UpdateLabelEventDelegate UpdateLabelEvent = delegate { }; public delegate void UpdateLabelEventDelegate (string text); public readonly string WebsiteLinkAddress = "http://www.sparkleshare.org/"; public readonly string CreditsLinkAddress = "http://www.github.com/hbons/SparkleShare/tree/master/legal/AUTHORS"; public readonly string ReportProblemLinkAddress = "http://www.github.com/hbons/SparkleShare/issues"; public readonly string DebugLogLinkAddress = "file://" + Program.Controller.ConfigPath; public string RunningVersion { get { string version = SparkleLib.SparkleBackend.Version; if (version.EndsWith (".0")) version = version.Substring (0, version.Length - 2); return version; } } public SparkleAboutController () { Program.Controller.ShowAboutWindowEvent += delegate { ShowWindowEvent (); new Thread (() => CheckForNewVersion ()).Start (); }; } public void WindowClosed () { HideWindowEvent (); } private void CheckForNewVersion () { UpdateLabelEvent ("Checking for updates..."); Thread.Sleep (500); WebClient web_client = new WebClient (); Uri uri = new Uri ("http://www.sparkleshare.org/version"); try { string latest_version = web_client.DownloadString (uri).Trim (); if (new Version (latest_version) > new Version (RunningVersion)) UpdateLabelEvent ("A newer version (" + latest_version + ") is available!"); else UpdateLabelEvent ("You are running the latest version."); } catch { UpdateLabelEvent ("Version check failed."); } } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/Program.cs0000644000000000000000000000013212041512304021437 xustar000000000000000030 mtime=1350997188.529978279 30 atime=1369573462.794172647 30 ctime=1369573577.722175271 sparkleshare-1.1.0/SparkleShare/Program.cs0000664000175000017500000000602212041512304021015 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Threading; using SparkleLib; namespace SparkleShare { // This is SparkleShare! public class Program { public static SparkleController Controller; public static SparkleUI UI; private static Mutex program_mutex = new Mutex (false, "SparkleShare"); #if !__MonoCS__ [STAThread] #endif public static void Main (string [] args) { if (args.Length != 0 && !args [0].Equals ("start") && SparkleBackend.Platform != PlatformID.MacOSX && SparkleBackend.Platform != PlatformID.Win32NT) { string n = Environment.NewLine; Console.WriteLine (n + "SparkleShare is a collaboration and sharing tool that is" + n + "designed to keep things simple and to stay out of your way." + n + n + "Version: " + SparkleLib.SparkleBackend.Version + n + "Copyright (C) 2010 Hylke Bons" + n + "This program comes with ABSOLUTELY NO WARRANTY." + n + n + "This is free software, and you are welcome to redistribute it" + n + "under certain conditions. Please read the GNU GPLv3 for details." + n + n + "Usage: sparkleshare [start|stop|restart]"); Environment.Exit (-1); } // Only allow one instance of SparkleShare (on Windows) if (!program_mutex.WaitOne (0, false)) { Console.WriteLine ("SparkleShare is already running."); Environment.Exit (-1); } try { Controller = new SparkleController (); Controller.Initialize (); UI = new SparkleUI (); UI.Run (); } catch (Exception e) { SparkleLogger.WriteCrashReport (e); Environment.Exit (-1); } #if !__MonoCS__ // Suppress assertion messages in debug mode GC.Collect (GC.MaxGeneration, GCCollectionMode.Forced); GC.WaitForPendingFinalizers (); #endif } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleSetupController.cs0000644000000000000000000000013212150404106024517 xustar000000000000000030 mtime=1369573446.190172269 30 atime=1369573446.206172269 30 ctime=1369573577.738175271 sparkleshare-1.1.0/SparkleShare/SparkleSetupController.cs0000775000175000017500000005155412150404106024112 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; using System.Threading; using SparkleLib; namespace SparkleShare { public enum PageType { None, Setup, Add, Invite, Syncing, Error, Finished, Tutorial, CryptoSetup, CryptoPassword } public enum FieldState { Enabled, Disabled } public class SparkleSetupController { public event Action ShowWindowEvent = delegate { }; public event Action HideWindowEvent = delegate { }; public event ChangePageEventHandler ChangePageEvent = delegate { }; public delegate void ChangePageEventHandler (PageType page, string [] warnings); public event UpdateProgressBarEventHandler UpdateProgressBarEvent = delegate { }; public delegate void UpdateProgressBarEventHandler (double percentage); public event UpdateSetupContinueButtonEventHandler UpdateSetupContinueButtonEvent = delegate { }; public delegate void UpdateSetupContinueButtonEventHandler (bool button_enabled); public event UpdateCryptoSetupContinueButtonEventHandler UpdateCryptoSetupContinueButtonEvent = delegate { }; public delegate void UpdateCryptoSetupContinueButtonEventHandler (bool button_enabled); public event UpdateCryptoPasswordContinueButtonEventHandler UpdateCryptoPasswordContinueButtonEvent = delegate { }; public delegate void UpdateCryptoPasswordContinueButtonEventHandler (bool button_enabled); public event UpdateAddProjectButtonEventHandler UpdateAddProjectButtonEvent = delegate { }; public delegate void UpdateAddProjectButtonEventHandler (bool button_enabled); public event ChangeAddressFieldEventHandler ChangeAddressFieldEvent = delegate { }; public delegate void ChangeAddressFieldEventHandler (string text, string example_text, FieldState state); public event ChangePathFieldEventHandler ChangePathFieldEvent = delegate { }; public delegate void ChangePathFieldEventHandler (string text, string example_text, FieldState state); public readonly List Plugins = new List (); public SparklePlugin SelectedPlugin; public bool WindowIsOpen { get; private set; } public SparkleInvite PendingInvite { get; private set; } public int TutorialPageNumber { get; private set; } public string PreviousUrl { get; private set; } public string PreviousAddress { get; private set; } public string PreviousPath { get; private set; } public string SyncingFolder { get; private set; } public double ProgressBarPercentage { get; private set; } public int SelectedPluginIndex { get { return Plugins.IndexOf (SelectedPlugin); } } public bool FetchPriorHistory { get { return this.fetch_prior_history; } } private PageType current_page; private string saved_address = ""; private string saved_remote_path = ""; private bool create_startup_item = true; private bool fetch_prior_history = false; public SparkleSetupController () { ChangePageEvent += delegate (PageType page_type, string [] warnings) { this.current_page = page_type; }; TutorialPageNumber = 0; PreviousAddress = ""; PreviousPath = ""; PreviousUrl = ""; SyncingFolder = ""; string local_plugins_path = SparklePlugin.LocalPluginsPath; int local_plugins_count = 0; // Import all of the plugins if (Directory.Exists (local_plugins_path)) // Local plugins go first... foreach (string xml_file_path in Directory.GetFiles (local_plugins_path, "*.xml")) { Plugins.Add (new SparklePlugin (xml_file_path)); local_plugins_count++; } // ...system plugins after that... if (Directory.Exists (Program.Controller.PluginsPath)) { foreach (string xml_file_path in Directory.GetFiles (Program.Controller.PluginsPath, "*.xml")) { // ...and "Own server" at the very top if (xml_file_path.EndsWith ("own-server.xml")) { Plugins.Insert (0, new SparklePlugin (xml_file_path)); } else if (xml_file_path.EndsWith ("ssnet.xml")) { // Plugins.Insert ((local_plugins_count + 1), new SparklePlugin (xml_file_path)); // TODO: Skip this plugin for now } else { Plugins.Add (new SparklePlugin (xml_file_path)); } } } SelectedPlugin = Plugins [0]; Program.Controller.InviteReceived += delegate (SparkleInvite invite) { PendingInvite = invite; ChangePageEvent (PageType.Invite, null); ShowWindowEvent (); }; Program.Controller.ShowSetupWindowEvent += delegate (PageType page_type) { if (page_type == PageType.CryptoSetup || page_type == PageType.CryptoPassword) { ChangePageEvent (page_type, null); return; } if (PendingInvite != null) { WindowIsOpen = true; ShowWindowEvent (); return; } if (this.current_page == PageType.Syncing || this.current_page == PageType.Finished || this.current_page == PageType.CryptoSetup || this.current_page == PageType.CryptoPassword) { ShowWindowEvent (); return; } if (page_type == PageType.Add) { if (WindowIsOpen) { if (this.current_page == PageType.Error || this.current_page == PageType.Finished || this.current_page == PageType.None) { ChangePageEvent (PageType.Add, null); } ShowWindowEvent (); } else if (!Program.Controller.FirstRun && TutorialPageNumber == 0) { WindowIsOpen = true; ChangePageEvent (PageType.Add, null); ShowWindowEvent (); } return; } WindowIsOpen = true; ChangePageEvent (page_type, null); ShowWindowEvent (); }; } public void PageCancelled () { PendingInvite = null; SelectedPlugin = Plugins [0]; PreviousAddress = ""; PreviousPath = ""; PreviousUrl = ""; this.fetch_prior_history = false; WindowIsOpen = false; HideWindowEvent (); } public void CheckSetupPage (string full_name, string email) { full_name = full_name.Trim (); email = email.Trim (); bool fields_valid = (!string.IsNullOrEmpty (full_name) && IsValidEmail (email)); UpdateSetupContinueButtonEvent (fields_valid); } public void SetupPageCancelled () { Program.Controller.Quit (); } public void SetupPageCompleted (string full_name, string email) { Program.Controller.CurrentUser = new SparkleUser (full_name, email); new Thread (() => { string link_code_file_path = Path.Combine (Program.Controller.FoldersPath, "Your link code.txt"); if (File.Exists (link_code_file_path)) { string name = Program.Controller.CurrentUser.Name.Split (" ".ToCharArray ()) [0]; if (name.EndsWith ("s")) name += "'"; else name += "'s"; string new_file_path = Path.Combine (Program.Controller.FoldersPath, name + " link code.txt"); if (File.Exists (new_file_path)) File.Delete (new_file_path); File.Move (link_code_file_path, new_file_path); } }).Start (); TutorialPageNumber = 1; ChangePageEvent (PageType.Tutorial, null); } public void TutorialSkipped () { TutorialPageNumber = 4; ChangePageEvent (PageType.Tutorial, null); } public void HistoryItemChanged (bool fetch_prior_history) { this.fetch_prior_history = fetch_prior_history; } public void TutorialPageCompleted () { TutorialPageNumber++; if (TutorialPageNumber == 5) { TutorialPageNumber = 0; WindowIsOpen = false; HideWindowEvent (); if (this.create_startup_item) new Thread (() => Program.Controller.CreateStartupItem ()).Start (); } else { ChangePageEvent (PageType.Tutorial, null); } } public void SelectedPluginChanged (int plugin_index) { SelectedPlugin = Plugins [plugin_index]; if (SelectedPlugin.Address != null) { ChangeAddressFieldEvent (SelectedPlugin.Address, "", FieldState.Disabled); } else if (SelectedPlugin.AddressExample != null) { ChangeAddressFieldEvent (this.saved_address, SelectedPlugin.AddressExample, FieldState.Enabled); } else { ChangeAddressFieldEvent (this.saved_address, "", FieldState.Enabled); } if (SelectedPlugin.Path != null) { ChangePathFieldEvent (SelectedPlugin.Path, "", FieldState.Disabled); } else if (SelectedPlugin.PathExample != null) { ChangePathFieldEvent (this.saved_remote_path, SelectedPlugin.PathExample, FieldState.Enabled); } else { ChangePathFieldEvent (this.saved_remote_path, "", FieldState.Enabled); } } public void StartupItemChanged (bool create_startup_item) { this.create_startup_item = create_startup_item; } public void CheckAddPage (string address, string remote_path, int selected_plugin) { address = address.Trim (); remote_path = remote_path.Trim (); if (selected_plugin == 0) this.saved_address = address; this.saved_remote_path = remote_path; bool fields_valid = (!string.IsNullOrEmpty (address) && !string.IsNullOrEmpty (remote_path) && !remote_path.Contains ("\"")); UpdateAddProjectButtonEvent (fields_valid); } public void AddPageCompleted (string address, string remote_path) { SyncingFolder = Path.GetFileName (remote_path); if (remote_path.EndsWith (".git")) SyncingFolder = remote_path.Substring (0, remote_path.Length - 4); SyncingFolder = SyncingFolder.Replace ("-crypto", ""); SyncingFolder = SyncingFolder.Replace ("_", " "); ProgressBarPercentage = 1.0; ChangePageEvent (PageType.Syncing, null); address = Uri.EscapeUriString (address.Trim ()); remote_path = remote_path.Trim (); remote_path = remote_path.TrimEnd ("/".ToCharArray ()); if (SelectedPlugin.PathUsesLowerCase) remote_path = remote_path.ToLower (); PreviousAddress = address; PreviousPath = remote_path; Program.Controller.FolderFetched += AddPageFetchedDelegate; Program.Controller.FolderFetchError += AddPageFetchErrorDelegate; Program.Controller.FolderFetching += SyncingPageFetchingDelegate; SparkleFetcherInfo info = new SparkleFetcherInfo { Address = address, Fingerprint = SelectedPlugin.Fingerprint, RemotePath = remote_path, FetchPriorHistory = this.fetch_prior_history, AnnouncementsUrl = SelectedPlugin.AnnouncementsUrl }; new Thread (() => { Program.Controller.StartFetcher (info); }).Start (); } // The following private methods are // delegates used by the previous method private void AddPageFetchedDelegate (string remote_url, string [] warnings) { SyncingFolder = ""; // Create a local plugin for succesfully added projects, so // so the user can easily use the same host again if (SelectedPluginIndex == 0) { SparklePlugin new_plugin; Uri uri = new Uri (remote_url); try { string address = remote_url.Replace (uri.AbsolutePath, ""); new_plugin = SparklePlugin.Create (uri.Host, address, address, "", "", "/path/to/project"); if (new_plugin != null) { Plugins.Insert (1, new_plugin); SparkleLogger.LogInfo ("Controller", "Added plugin for " + uri.Host); } } catch { SparkleLogger.LogInfo ("Controller", "Failed adding plugin for " + uri.Host); } } ChangePageEvent (PageType.Finished, warnings); Program.Controller.FolderFetched -= AddPageFetchedDelegate; Program.Controller.FolderFetchError -= AddPageFetchErrorDelegate; Program.Controller.FolderFetching -= SyncingPageFetchingDelegate; } private void AddPageFetchErrorDelegate (string remote_url, string [] errors) { SyncingFolder = ""; PreviousUrl = remote_url; ChangePageEvent (PageType.Error, errors); Program.Controller.FolderFetched -= AddPageFetchedDelegate; Program.Controller.FolderFetchError -= AddPageFetchErrorDelegate; Program.Controller.FolderFetching -= SyncingPageFetchingDelegate; } private void SyncingPageFetchingDelegate (double percentage) { ProgressBarPercentage = percentage; UpdateProgressBarEvent (ProgressBarPercentage); } public void InvitePageCompleted () { SyncingFolder = Path.GetFileName (PendingInvite.RemotePath); if (PendingInvite.RemotePath.EndsWith (".git")) SyncingFolder = PendingInvite.RemotePath.Substring (0, PendingInvite.RemotePath.Length - 4); SyncingFolder = SyncingFolder.Replace ("-crypto", ""); SyncingFolder = SyncingFolder.Replace ("_", " "); PreviousAddress = PendingInvite.Address; PreviousPath = PendingInvite.RemotePath; ChangePageEvent (PageType.Syncing, null); new Thread (() => { if (!PendingInvite.Accept (Program.Controller.CurrentUser.PublicKey)) { PreviousUrl = PendingInvite.Address + PendingInvite.RemotePath.TrimStart ("/".ToCharArray ()); ChangePageEvent (PageType.Error, new string [] { "error: Failed to upload the public key" }); return; } Program.Controller.FolderFetched += InvitePageFetchedDelegate; Program.Controller.FolderFetchError += InvitePageFetchErrorDelegate; Program.Controller.FolderFetching += SyncingPageFetchingDelegate; SparkleFetcherInfo info = new SparkleFetcherInfo { Address = PendingInvite.Address, Fingerprint = PendingInvite.Fingerprint, RemotePath = PendingInvite.RemotePath, FetchPriorHistory = false, // TODO: checkbox on invite page AnnouncementsUrl = PendingInvite.AnnouncementsUrl }; Program.Controller.StartFetcher (info); }).Start (); } // The following private methods are // delegates used by the previous method private void InvitePageFetchedDelegate (string remote_url, string [] warnings) { SyncingFolder = ""; PendingInvite = null; ChangePageEvent (PageType.Finished, warnings); Program.Controller.FolderFetched -= AddPageFetchedDelegate; Program.Controller.FolderFetchError -= AddPageFetchErrorDelegate; Program.Controller.FolderFetching -= SyncingPageFetchingDelegate; } private void InvitePageFetchErrorDelegate (string remote_url, string [] errors) { SyncingFolder = ""; PreviousUrl = remote_url; ChangePageEvent (PageType.Error, errors); Program.Controller.FolderFetched -= AddPageFetchedDelegate; Program.Controller.FolderFetchError -= AddPageFetchErrorDelegate; Program.Controller.FolderFetching -= SyncingPageFetchingDelegate; } public void SyncingCancelled () { Program.Controller.StopFetcher (); if (PendingInvite != null) ChangePageEvent (PageType.Invite, null); else ChangePageEvent (PageType.Add, null); } public void ErrorPageCompleted () { if (PendingInvite != null) ChangePageEvent (PageType.Invite, null); else ChangePageEvent (PageType.Add, null); } public void CheckCryptoSetupPage (string password) { bool is_valid_password = (password.Length > 0 && !password.StartsWith (" ") && !password.EndsWith (" ")); UpdateCryptoSetupContinueButtonEvent (is_valid_password); } public void CheckCryptoPasswordPage (string password) { bool is_password_correct = Program.Controller.CheckPassword (password); UpdateCryptoPasswordContinueButtonEvent (is_password_correct); } public void CryptoPageCancelled () { SyncingCancelled (); } public void CryptoSetupPageCompleted (string password) { CryptoPasswordPageCompleted (password); } public void CryptoPasswordPageCompleted (string password) { ProgressBarPercentage = 100.0; ChangePageEvent (PageType.Syncing, null); new Thread (() => { Thread.Sleep (1000); Program.Controller.FinishFetcher (password); }).Start (); } public void CopyToClipboardClicked () { Program.Controller.CopyToClipboard (Program.Controller.CurrentUser.PublicKey); } public void ShowFilesClicked () { string folder_name = Path.GetFileName (PreviousPath); folder_name = folder_name.Replace ("_", " "); if (PreviousPath.EndsWith ("-crypto")) folder_name = folder_name.Replace ("-crypto", ""); if (PreviousPath.EndsWith ("-crypto.git")) folder_name = folder_name.Replace ("-crypto.git", ""); Program.Controller.OpenSparkleShareFolder (folder_name); FinishPageCompleted (); } public void FinishPageCompleted () { SelectedPlugin = Plugins [0]; PreviousUrl = ""; PreviousAddress = ""; PreviousPath = ""; this.fetch_prior_history = false; this.current_page = PageType.None; HideWindowEvent (); } private bool IsValidEmail (string email) { return new Regex (@"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", RegexOptions.IgnoreCase).IsMatch (email); } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleKeys.cs0000644000000000000000000000013212150404106022266 xustar000000000000000030 mtime=1369573446.190172269 30 atime=1369573446.206172269 30 ctime=1369573577.734175271 sparkleshare-1.1.0/SparkleShare/SparkleKeys.cs0000664000175000017500000000740612150404106021653 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Diagnostics; using System.IO; using SparkleLib; namespace SparkleShare { public static class SparkleKeys { public static string [] GenerateKeyPair (string output_path, string key_name) { key_name += ".key"; string key_file_path = Path.Combine (output_path, key_name); if (File.Exists (key_file_path)) { SparkleLogger.LogInfo ("Auth", "A key pair exists ('" + key_name + "'), leaving it untouched"); return new string [] { key_file_path, key_file_path + ".pub" }; } string computer_name = System.Net.Dns.GetHostName (); if (computer_name.EndsWith (".local")) computer_name = computer_name.Substring (0, computer_name.Length - 6); string arguments = "-t rsa " + // crypto type "-P \"\" " + // empty password "-C \"" + computer_name + "\" " + // key comment "-f \"" + key_name + "\""; // file name SparkleKeyProcess process = new SparkleKeyProcess ("ssh-keygen", arguments); process.StartInfo.WorkingDirectory = output_path; process.Start (); process.WaitForExit (); if (process.ExitCode == 0) SparkleLogger.LogInfo ("Auth", "Created keypair '" + key_file_path + "'"); else SparkleLogger.LogInfo ("Auth", "Could not create key pair '" + key_file_path + "'"); return new string [] { key_file_path, key_file_path + ".pub" }; } public static void ImportPrivateKey (string key_file_path) { SparkleKeyProcess process = new SparkleKeyProcess ("ssh-add", "\"" + key_file_path + "\""); process.Start (); process.WaitForExit (); if (process.ExitCode == 0) SparkleLogger.LogInfo ("Auth", "Imported key '" + key_file_path + "'"); else SparkleLogger.LogInfo ("Auth", "Could not import key '" + key_file_path + "', " + process.StandardError.ReadToEnd ()); } public static void ListPrivateKeys () { SparkleKeyProcess process = new SparkleKeyProcess ("ssh-add", "-l"); process.Start (); string keys_in_use = process.StandardOutput.ReadToEnd (); process.WaitForExit (); SparkleLogger.LogInfo ("Auth", "The following keys may be used:\n" + keys_in_use.Trim ()); } private class SparkleKeyProcess : Process { public SparkleKeyProcess (string command, string arguments) : base () { StartInfo.FileName = command; StartInfo.Arguments = arguments; StartInfo.UseShellExecute = false; StartInfo.RedirectStandardOutput = true; StartInfo.RedirectStandardError = true; StartInfo.CreateNoWindow = true; } } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleBubblesController.cs0000644000000000000000000000013112056436504025010 xustar000000000000000030 mtime=1354382660.703142413 30 atime=1369573462.870172648 29 ctime=1369573577.72617527 sparkleshare-1.1.0/SparkleShare/SparkleBubblesController.cs0000775000175000017500000000415512056436504024377 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Text; using SparkleLib; namespace SparkleShare { public class SparkleBubblesController { public event ShowBubbleEventHandler ShowBubbleEvent = delegate { }; public delegate void ShowBubbleEventHandler (string title, string subtext, string image_path); public SparkleBubblesController () { Program.Controller.AlertNotificationRaised += delegate (string title, string message) { ShowBubble (title, message, null); }; Program.Controller.NotificationRaised += delegate (SparkleChangeSet change_set) { ShowBubble (change_set.User.Name, change_set.ToMessage (), Program.Controller.GetAvatar (change_set.User.Email, 48)); }; } public void ShowBubble (string title, string subtext, string image_path) { byte [] title_bytes = Encoding.Default.GetBytes (title); byte [] subtext_bytes = Encoding.Default.GetBytes (subtext); title = Encoding.UTF8.GetString (title_bytes); subtext = Encoding.UTF8.GetString (subtext_bytes); ShowBubbleEvent (title, subtext, image_path); } public void BubbleClicked () { Program.Controller.ShowEventLogWindow (); } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleInvite.cs0000644000000000000000000000013212150404106022611 xustar000000000000000030 mtime=1369573446.190172269 30 atime=1369573446.206172269 30 ctime=1369573577.734175271 sparkleshare-1.1.0/SparkleShare/SparkleInvite.cs0000664000175000017500000000753612150404106022202 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com) // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see (http://www.gnu.org/licenses/). using System; using System.IO; using System.Net; using System.Text; using System.Web; using System.Xml; using SparkleLib; namespace SparkleShare { public class SparkleInvite : XmlDocument { public string Address { get; private set; } public string RemotePath { get; private set; } public string Fingerprint { get; private set; } public string AcceptUrl { get; private set; } public string AnnouncementsUrl { get; private set; } public bool IsValid { get { return (!string.IsNullOrEmpty (Address) && !string.IsNullOrEmpty (RemotePath)); } } public SparkleInvite (string xml_file_path) : base () { try { Load (xml_file_path); } catch (XmlException e) { SparkleLogger.LogInfo ("Invite", "Error parsing XML", e); return; } Address = ReadField ("address"); RemotePath = ReadField ("remote_path"); AcceptUrl = ReadField ("accept_url"); AnnouncementsUrl = ReadField ("announcements_url"); Fingerprint = ReadField ("fingerprint"); } public bool Accept (string public_key) { ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; if (string.IsNullOrEmpty (AcceptUrl)) return true; string post_data = "public_key=" + HttpUtility.UrlEncode (public_key); byte [] post_bytes = Encoding.UTF8.GetBytes (post_data); WebRequest request = WebRequest.Create (AcceptUrl); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = post_bytes.Length; Stream data_stream = request.GetRequestStream (); data_stream.Write (post_bytes, 0, post_bytes.Length); data_stream.Close (); HttpWebResponse response = null; try { response = (HttpWebResponse) request.GetResponse (); response.Close (); } catch (WebException e) { SparkleLogger.LogInfo ("Invite", "Failed uploading public key to " + AcceptUrl + "", e); return false; } if (response != null && response.StatusCode == HttpStatusCode.OK) { SparkleLogger.LogInfo ("Invite", "Uploaded public key to " + AcceptUrl); return true; } return false; } private string ReadField (string name) { try { XmlNode node = SelectSingleNode ("/sparkleshare/invite/" + name + "/text()"); if (node != null) return node.Value; else return ""; } catch (XmlException e) { SparkleLogger.LogInfo ("Invite", "Error reading field '" + name + "'", e); return ""; } } } }sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212024723511021542 xustar000000000000000030 mtime=1347659593.675446303 30 atime=1369573545.118174527 30 ctime=1369573577.646175269 sparkleshare-1.1.0/SparkleShare/Makefile.am0000775000175000017500000000003212024723511021116 0ustar00hbonshbons00000000000000SUBDIRS = Linux \ Common sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleExtensions.cs0000644000000000000000000000013012013750144023514 xustar000000000000000030 mtime=1345310820.398218932 29 atime=1369573462.89417265 29 ctime=1369573577.73017527 sparkleshare-1.1.0/SparkleShare/SparkleExtensions.cs0000664000175000017500000000215212013750144023074 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com) // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see (http://www.gnu.org/licenses/). using System; using System.IO; namespace SparkleShare { public static class Extensions { public static string Combine (this string [] parts) { string new_path = ""; foreach (string part in parts) new_path = Path.Combine (new_path, part); return new_path; } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/Linux0000644000000000000000000000013212150404311020522 xustar000000000000000030 mtime=1369573577.766175272 30 atime=1369573578.250175283 30 ctime=1369573577.766175272 sparkleshare-1.1.0/SparkleShare/Linux/0000755000000000000000000000000012150404311017645 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleController.cs0000644000000000000000000000013112117357047024612 xustar000000000000000030 mtime=1363009063.571253412 29 atime=1369573462.90617265 30 ctime=1369573577.746175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleController.cs0000775000175000017500000001647612117357047024212 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Diagnostics; using System.IO; using Gtk; using Mono.Unix.Native; using SparkleLib; namespace SparkleShare { public class SparkleController : SparkleControllerBase { public SparkleController () : base () { } public override string PluginsPath { get { return new string [] { Defines.INSTALL_DIR, "plugins" }.Combine (); } } // Creates a .desktop entry in autostart folder to // start SparkleShare automatically at login public override void CreateStartupItem () { string autostart_path = Path.Combine ( Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "autostart"); string desktopfile_path = Path.Combine (autostart_path, "sparkleshare.desktop"); if (!Directory.Exists (autostart_path)) Directory.CreateDirectory (autostart_path); if (!File.Exists (desktopfile_path)) { try { File.WriteAllText (desktopfile_path, "[Desktop Entry]\n" + "Type=Application\n" + "Name=SparkleShare\n" + "Exec=sparkleshare start\n" + "Icon=folder-sparkleshare\n" + "Terminal=false\n" + "X-GNOME-Autostart-enabled=true\n" + "Categories=Network"); SparkleLogger.LogInfo ("Controller", "Added SparkleShare to login items"); } catch (Exception e) { SparkleLogger.LogInfo ("Controller", "Failed adding SparkleShare to login items: " + e.Message); } } } public override void InstallProtocolHandler () { // sparkleshare-invite-opener.desktop launches the handler on newer // systems (like GNOME 3) that implement the last freedesktop.org specs. // For GNOME 2 however we need to tell gconf about the protocol manually try { // Add the handler to gconf... Process process = new Process (); process.StartInfo.FileName = "gconftool-2"; process.StartInfo.Arguments = "-s /desktop/gnome/url-handlers/sparkleshare/command 'sparkleshare open %s' --type String"; process.Start (); process.WaitForExit (); // ...and enable it process.StartInfo.Arguments = "-s /desktop/gnome/url-handlers/sparkleshare/enabled --type Boolean true"; process.Start (); process.WaitForExit (); } catch { // Pity... } } // Adds the SparkleShare folder to the user's // list of bookmarked places public override void AddToBookmarks () { string bookmarks_file_path = Path.Combine (SparkleConfig.DefaultConfig.HomePath, ".gtk-bookmarks"); string sparkleshare_bookmark = "file://" + FoldersPath + " SparkleShare"; if (File.Exists (bookmarks_file_path)) { string bookmarks = File.ReadAllText (bookmarks_file_path); if (!bookmarks.Contains (sparkleshare_bookmark)) File.AppendAllText (bookmarks_file_path, "file://" + FoldersPath + " SparkleShare"); } else { File.WriteAllText (bookmarks_file_path, "file://" + FoldersPath + " SparkleShare"); } } // Creates the SparkleShare folder in the user's home folder public override bool CreateSparkleShareFolder () { bool folder_created = false; if (!Directory.Exists (SparkleConfig.DefaultConfig.FoldersPath)) { Directory.CreateDirectory (SparkleConfig.DefaultConfig.FoldersPath); Syscall.chmod (SparkleConfig.DefaultConfig.FoldersPath, (FilePermissions) 448); // 448 -> 700 SparkleLogger.LogInfo ("Controller", "Created '" + SparkleConfig.DefaultConfig.FoldersPath + "'"); folder_created = true; } string gvfs_command_path = new string [] { Path.VolumeSeparatorChar.ToString (), "usr", "bin", "gvfs-set-attribute" }.Combine (); // Add a special icon to the SparkleShare folder if (File.Exists (gvfs_command_path)) { Process process = new Process (); process.StartInfo.FileName = "gvfs-set-attribute"; // Give the SparkleShare folder an icon name, so that it scales process.StartInfo.Arguments = SparkleConfig.DefaultConfig.FoldersPath + " metadata::custom-icon-name 'sparkleshare'"; process.Start (); process.WaitForExit (); } return folder_created; } public override string EventLogHTML { get { string html_path = new string [] { Defines.INSTALL_DIR, "html", "event-log.html" }.Combine (); string jquery_file_path = new string [] { Defines.INSTALL_DIR, "html", "jquery.js" }.Combine (); string html = File.ReadAllText (html_path); string jquery = File.ReadAllText (jquery_file_path); return html.Replace ("", jquery); } } public override string DayEntryHTML { get { string path = new string [] { Defines.INSTALL_DIR, "html", "day-entry.html" }.Combine (); return File.ReadAllText (path); } } public override string EventEntryHTML { get { string path = new string [] { Defines.INSTALL_DIR, "html", "event-entry.html" }.Combine (); return File.ReadAllText (path); } } public override void OpenFolder (string path) { OpenFile (path); } public override void OpenFile (string path) { Process process = new Process (); process.StartInfo.FileName = "xdg-open"; process.StartInfo.Arguments = "\"" + path + "\""; process.Start (); } public override void CopyToClipboard (string text) { Clipboard clipboard = Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); clipboard.Text = text; } public override void OpenWebsite (string url) { OpenFile (url); } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/Makefile.in0000644000000000000000000000013112150404126022647 xustar000000000000000030 mtime=1369573462.502172642 30 atime=1369573462.562172643 29 ctime=1369573577.71417527 sparkleshare-1.1.0/SparkleShare/Linux/Makefile.in0000644000000000000000000006715412150404126021733 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(dist_Applications_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/sparkleshare.in \ $(top_srcdir)/build/build.environment.mk \ $(top_srcdir)/build/build.mk \ $(top_srcdir)/build/build.rules.mk subdir = SparkleShare/Linux ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = sparkleshare CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(moduledir)" \ "$(DESTDIR)$(Applicationsdir)" SCRIPTS = $(bin_SCRIPTS) $(module_SCRIPTS) DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive DATA = $(dist_Applications_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = Pixmaps ASSEMBLY = SparkleShare TARGET = exe @ENABLE_TESTS_TRUE@LINK = " $(NUNIT_LIBS)" LINK = $(REF_SPARKLESHARE) $(NOTIFY_SHARP_LIBS) $(WEBKIT_SHARP_LIBS) @HAVE_APP_INDICATOR_TRUE@BUILD_DEFINES = "-define:HAVE_APP_INDICATOR" SOURCES = \ ../Program.cs \ ../SparkleAboutController.cs \ ../SparkleBubblesController.cs \ ../SparkleControllerBase.cs \ ../SparkleEventLogController.cs \ ../SparkleExtensions.cs \ ../SparkleInvite.cs \ ../SparkleKeys.cs \ ../SparklePlugin.cs \ ../SparkleSetupController.cs \ ../SparkleStatusIconController.cs \ SparkleAbout.cs \ SparkleBubbles.cs \ SparkleController.cs \ SparkleEventLog.cs \ SparkleSetup.cs \ SparkleSetupWindow.cs \ SparkleSpinner.cs \ SparkleStatusIcon.cs \ SparkleUI.cs \ SparkleUIHelpers.cs # Initializers MONO_BASE_PATH = # Install Paths DEFAULT_INSTALL_DIR = $(pkglibdir) DIR_BIN = $(top_builddir)/bin # External libraries to link against, generated from configure LINK_SYSTEM = -r:System LINK_SYSTEM_WEB = -r:System.Web LINK_MONO_POSIX = -r:Mono.Posix LINK_GLIB = $(GLIBSHARP_LIBS) LINK_GTK = $(GTKSHARP_LIBS) LINK_GNOME = $(GNOME_SHARP_LIBS) LINK_DBUS = $(NDESK_DBUS_LIBS) $(NDESK_DBUS_GLIB_LIBS) LINK_DBUS_NO_GLIB = $(NDESK_DBUS_LIBS) LINK_APP_INDICATOR = $(APP_INDICATOR_LIBS) REF_NOTIFY_SHARP = $(LINK_SYSTEM) $(LINK_DBUS) $(GTKSHARP_LIBS) $(GLIBSHARP_LIBS) LINK_NOTIFY_SHARP = -r:$(DIR_BIN)/NotifySharp.dll LINK_NOTIFY_SHARP_DEPS = $(REF_NOTIFY_SHARP) $(LINK_NOTIFY_SHARP) REF_SPARKLELIB = $(LINK_SYSTEM) $(LINK_MONO_POSIX) LINK_SPARKLELIB = -r:$(DIR_BIN)/SparkleLib.dll LINK_SPARKLELIB_DEPS = $(REF_SPARKLELIB) $(LINK_SPARKLELIB) REF_SPARKLESHARE = $(LINK_SYSTEM_WEB) $(LINK_DBUS) $(LINK_GTK) $(LINK_SPARKLELIB_DEPS) $(LINK_APP_INDICATOR) # Cute hack to replace a space with something colon := : empty := space := $(empty) $(empty) # Build path to allow running uninstalled RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH)) UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE) # Since all other attempts failed, we currently go this way: # This code adds the file specified in ASSEMBLY_INFO_SOURCE to SOURCES_BUILD. ASSEMBLY_INFO_SOURCE_REAL = \ $(addprefix $(srcdir)/, $(ASSEMBLY_INFO_SOURCE)) SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES)) \ $(ASSEMBLY_INFO_SOURCE_REAL) RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES)) RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \ -resource:$(resource),$(notdir $(resource))) ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET))) ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION) INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR))) @ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS" @ENABLE_ATK_TRUE@ENABLE_ATK_FLAG = "-define:ENABLE_ATK" FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE)) DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/') OUTPUT_FILES = \ $(ASSEMBLY_FILE) \ $(ASSEMBLY_FILE).mdb moduledir = $(INSTALL_DIR_RESOLVED) module_SCRIPTS = $(OUTPUT_FILES) EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) CLEANFILES = $(OUTPUT_FILES) $(ASSEMBLY_FILE).config DISTCLEANFILES = *.pidb MAINTAINERCLEANFILES = Makefile.in bin_SCRIPTS = sparkleshare Applicationsdir = $(datadir)/applications dist_Applications_DATA = sparkleshare.desktop \ sparkleshare-invite-opener.desktop all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Linux/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Linux/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): sparkleshare: $(top_builddir)/config.status $(srcdir)/sparkleshare.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) install-moduleSCRIPTS: $(module_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \ } \ ; done uninstall-moduleSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_ApplicationsDATA: $(dist_Applications_DATA) @$(NORMAL_INSTALL) test -z "$(Applicationsdir)" || $(MKDIR_P) "$(DESTDIR)$(Applicationsdir)" @list='$(dist_Applications_DATA)'; test -n "$(Applicationsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(Applicationsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(Applicationsdir)" || exit $$?; \ done uninstall-dist_ApplicationsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_Applications_DATA)'; test -n "$(Applicationsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(Applicationsdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(Applicationsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dist_ApplicationsDATA install-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-dist_ApplicationsDATA \ uninstall-moduleSCRIPTS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-data-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binSCRIPTS \ install-data install-data-am install-data-hook \ install-dist_ApplicationsDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-moduleSCRIPTS \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binSCRIPTS uninstall-dist_ApplicationsDATA \ uninstall-moduleSCRIPTS all: $(ASSEMBLY_FILE) run: @pushd $(top_builddir); \ make run; \ popd; # uncommented for now. # tests are currently excuted from Makefile in $(top_builddir) #test: # @pushd $(top_builddir)/tests; \ # make $(ASSEMBLY); \ # popd; build-debug: @echo $(DEP_LINK) $(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE) $(ASSEMBLY_FILE): $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(DEP_LINK) @mkdir -p $(top_builddir)/bin $(MCS) \ $(GMCS_FLAGS) \ $(ASSEMBLY_BUILD_FLAGS) \ -codepage:utf8 \ -nowarn:0278 -nowarn:0078 $$warn \ -define:HAVE_GTK_2_10 -define:NET_2_0 \ -debug -target:$(TARGET) -out:$@ \ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD) @if [ -e $(srcdir)/$(notdir $@.config) ]; then \ cp $(srcdir)/$(notdir $@.config) $(top_builddir)/bin; \ fi; @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \ fi; install-data-hook: test -f $(datadir)/applications/defaults.list && \ test -z $(DESTDIR) && update-desktop-database $(datadir)/applications || : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleUIHelpers.cs0000644000000000000000000000013112117357047024327 xustar000000000000000030 mtime=1363009063.571253412 29 atime=1369573462.93817265 30 ctime=1369573577.762175272 sparkleshare-1.1.0/SparkleShare/Linux/SparkleUIHelpers.cs0000775000175000017500000000514212117357047023713 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.IO; using Gtk; namespace SparkleShare { public static class SparkleUIHelpers { public static Gdk.Pixbuf GetIcon (string name, int size) { IconTheme icon_theme = new IconTheme (); // foreach (string search_path in IconTheme.Default.SearchPath) // icon_theme.AppendSearchPath (search_path); // FIXME: Temporary workaround for a bug in IconTheme.SearchPath in Gtk# on 64-bit systems // https://github.com/mono/gtk-sharp/commit/9c54fd5ae77f63d11fdc6873a3cb90691990e37f icon_theme.AppendSearchPath ("/usr/share/icons"); icon_theme.AppendSearchPath ("/usr/local/share/icons"); icon_theme.AppendSearchPath ("/opt/local/share/icons"); icon_theme.AppendSearchPath (Path.Combine (SparkleUI.AssetsPath, "icons")); try { return icon_theme.LoadIcon (name, size, IconLookupFlags.GenericFallback); } catch { try { return icon_theme.LoadIcon ("gtk-missing-image", size, IconLookupFlags.GenericFallback); } catch { return null; } } } public static Image GetImage (string name) { string image_path = new string [] { SparkleUI.AssetsPath, "pixmaps", name }.Combine (); return new Image (image_path); } // Converts a Gdk RGB color to a hex value. // Example: from "rgb:0,0,0" to "#000000" public static string GdkColorToHex (Gdk.Color color) { return String.Format ("#{0:X2}{1:X2}{2:X2}", (int) Math.Truncate (color.Red / 256.00), (int) Math.Truncate (color.Green / 256.00), (int) Math.Truncate (color.Blue / 256.00)); } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleSetup.cs0000644000000000000000000000013212117360550023561 xustar000000000000000030 mtime=1363009896.079272408 30 atime=1369573462.914172651 30 ctime=1369573577.750175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleSetup.cs0000775000175000017500000007206312117360550023152 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General private License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program 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 private License for more details. // // You should have received a copy of the GNU General private License // along with this program. If not, see . using System; using System.IO; using Gtk; using Mono.Unix; namespace SparkleShare { public class SparkleSetup : SparkleSetupWindow { public SparkleSetupController Controller = new SparkleSetupController (); public SparkleSetup () : base () { Controller.HideWindowEvent += delegate { Application.Invoke (delegate { HideAll (); }); }; Controller.ShowWindowEvent += delegate { Application.Invoke (delegate { ShowAll (); Present (); }); }; Controller.ChangePageEvent += delegate (PageType type, string [] warnings) { Application.Invoke (delegate { Reset (); ShowPage (type, warnings); ShowAll (); }); }; } public void ShowPage (PageType type, string [] warnings) { if (type == PageType.Setup) { Header = "Welcome to SparkleShare!"; Description = "First off, what's your name and email?\nThis information is only visible to team members."; Table table = new Table (2, 3, true) { RowSpacing = 6, ColumnSpacing = 6 }; Label name_label = new Label ("" + "Full Name:" + "") { UseMarkup = true, Xalign = 1 }; Entry name_entry = new Entry () { Xalign = 0, ActivatesDefault = true }; UnixUserInfo user_info = UnixUserInfo.GetRealUser (); if (user_info != null && user_info.RealName != null) name_entry.Text = user_info.RealName.TrimEnd (",".ToCharArray ()); Entry email_entry = new Entry () { Xalign = 0, ActivatesDefault = true }; Label email_label = new Label ("" + "Email:" + "") { UseMarkup = true, Xalign = 1 }; table.Attach (name_label, 0, 1, 0, 1); table.Attach (name_entry, 1, 2, 0, 1); table.Attach (email_label, 0, 1, 1, 2); table.Attach (email_entry, 1, 2, 1, 2); VBox wrapper = new VBox (false, 9); wrapper.PackStart (table, true, false, 0); Button cancel_button = new Button ("Cancel"); Button continue_button = new Button ("Continue") { Sensitive = false }; Controller.UpdateSetupContinueButtonEvent += delegate (bool button_enabled) { Application.Invoke (delegate { continue_button.Sensitive = button_enabled; }); }; name_entry.Changed += delegate { Controller.CheckSetupPage (name_entry.Text, email_entry.Text); }; email_entry.Changed += delegate { Controller.CheckSetupPage (name_entry.Text, email_entry.Text); }; cancel_button.Clicked += delegate { Controller.SetupPageCancelled (); }; continue_button.Clicked += delegate { Controller.SetupPageCompleted (name_entry.Text, email_entry.Text); }; AddButton (cancel_button); AddButton (continue_button); Add (wrapper); Controller.CheckSetupPage (name_entry.Text, email_entry.Text); } if (type == PageType.Add) { Header = "Where's your project hosted?"; VBox layout_vertical = new VBox (false, 12); HBox layout_fields = new HBox (true, 12); VBox layout_address = new VBox (true, 0); VBox layout_path = new VBox (true, 0); ListStore store = new ListStore (typeof (Gdk.Pixbuf), typeof (string), typeof (SparklePlugin)); SparkleTreeView tree = new SparkleTreeView (store) { HeadersVisible = false }; ScrolledWindow scrolled_window = new ScrolledWindow (); scrolled_window.AddWithViewport (tree); // Icon column tree.AppendColumn ("Icon", new Gtk.CellRendererPixbuf (), "pixbuf", 0); tree.Columns [0].Cells [0].Xpad = 6; // Service column TreeViewColumn service_column = new TreeViewColumn () { Title = "Service" }; CellRendererText service_cell = new CellRendererText () { Ypad = 4 }; service_column.PackStart (service_cell, true); service_column.SetCellDataFunc (service_cell, new TreeCellDataFunc (RenderServiceColumn)); foreach (SparklePlugin plugin in Controller.Plugins) { store.AppendValues (new Gdk.Pixbuf (plugin.ImagePath), "" + plugin.Name + "\n" + "" + plugin.Description + "" + "", plugin); } tree.AppendColumn (service_column); Entry address_entry = new Entry () { Text = Controller.PreviousAddress, Sensitive = (Controller.SelectedPlugin.Address == null), ActivatesDefault = true }; Entry path_entry = new Entry () { Text = Controller.PreviousPath, Sensitive = (Controller.SelectedPlugin.Path == null), ActivatesDefault = true }; Label address_example = new Label () { Xalign = 0, UseMarkup = true, Markup = "" + Controller.SelectedPlugin.AddressExample + "" }; Label path_example = new Label () { Xalign = 0, UseMarkup = true, Markup = "" + Controller.SelectedPlugin.PathExample + "" }; // Select the first plugin by default TreeSelection default_selection = tree.Selection; TreePath default_path = new TreePath ("0"); default_selection.SelectPath (default_path); Controller.SelectedPluginChanged (0); Controller.ChangeAddressFieldEvent += delegate (string text, string example_text, FieldState state) { Application.Invoke (delegate { address_entry.Text = text; address_entry.Sensitive = (state == FieldState.Enabled); address_example.Markup = "" + example_text + ""; }); }; Controller.ChangePathFieldEvent += delegate (string text, string example_text, FieldState state) { Application.Invoke (delegate { path_entry.Text = text; path_entry.Sensitive = (state == FieldState.Enabled); path_example.Markup = "" + example_text + ""; }); }; Controller.CheckAddPage (address_entry.Text, path_entry.Text, 1); // Update the address field text when the selection changes tree.CursorChanged += delegate (object sender, EventArgs e) { Controller.SelectedPluginChanged (tree.SelectedRow); // TODO: Scroll to selected row when using arrow keys }; tree.Model.Foreach (new TreeModelForeachFunc (delegate (TreeModel model, TreePath path, TreeIter iter) { string address; try { address = (model.GetValue (iter, 2) as SparklePlugin).Address; } catch (NullReferenceException) { address = ""; } if (!string.IsNullOrEmpty (address) && address.Equals (Controller.PreviousAddress)) { tree.SetCursor (path, service_column, false); SparklePlugin plugin = (SparklePlugin) model.GetValue (iter, 2); if (plugin.Address != null) { address_entry.Sensitive = false;} if (plugin.Path != null) path_entry.Sensitive = false; // TODO: Scroll to the selection return true; } else { return false; } })); address_entry.Changed += delegate { Controller.CheckAddPage (address_entry.Text, path_entry.Text, tree.SelectedRow); }; layout_address.PackStart (new Label () { Markup = "" + "Address:" + "", Xalign = 0 }, true, true, 0); layout_address.PackStart (address_entry, false, false, 0); layout_address.PackStart (address_example, false, false, 0); path_entry.Changed += delegate { Controller.CheckAddPage (address_entry.Text, path_entry.Text, tree.SelectedRow); }; layout_path.PackStart (new Label () { Markup = "" + "Remote Path:" + "", Xalign = 0 }, true, true, 0); layout_path.PackStart (path_entry, false, false, 0); layout_path.PackStart (path_example, false, false, 0); layout_fields.PackStart (layout_address); layout_fields.PackStart (layout_path); layout_vertical.PackStart (new Label (""), false, false, 0); layout_vertical.PackStart (scrolled_window, true, true, 0); layout_vertical.PackStart (layout_fields, false, false, 0); Add (layout_vertical); Button cancel_button = new Button ("Cancel"); Button add_button = new Button ("Add") { Sensitive = false }; cancel_button.Clicked += delegate { Controller.PageCancelled (); }; add_button.Clicked += delegate { Controller.AddPageCompleted (address_entry.Text, path_entry.Text); }; Controller.UpdateAddProjectButtonEvent += delegate (bool button_enabled) { Application.Invoke (delegate { add_button.Sensitive = button_enabled; }); }; CheckButton check_button = new CheckButton ("Fetch prior history") { Active = false }; check_button.Toggled += delegate { Controller.HistoryItemChanged (check_button.Active); }; AddOption (check_button); AddButton (cancel_button); AddButton (add_button); Controller.CheckAddPage (address_entry.Text, path_entry.Text, 1); } if (type == PageType.Invite) { Header = "You've received an invite!"; Description = "Do you want to add this project to SparkleShare?"; Table table = new Table (2, 3, true) { RowSpacing = 6, ColumnSpacing = 6 }; Label address_label = new Label ("Address:") { Xalign = 1 }; Label path_label = new Label ("Remote Path:") { Xalign = 1 }; Label address_value = new Label ("" + Controller.PendingInvite.Address + "") { UseMarkup = true, Xalign = 0 }; Label path_value = new Label ("" + Controller.PendingInvite.RemotePath + "") { UseMarkup = true, Xalign = 0 }; table.Attach (address_label, 0, 1, 0, 1); table.Attach (address_value, 1, 2, 0, 1); table.Attach (path_label, 0, 1, 1, 2); table.Attach (path_value, 1, 2, 1, 2); VBox wrapper = new VBox (false, 9); wrapper.PackStart (table, true, false, 0); Button cancel_button = new Button ("Cancel"); Button add_button = new Button ("Add"); cancel_button.Clicked += delegate { Controller.PageCancelled (); }; add_button.Clicked += delegate { Controller.InvitePageCompleted (); }; AddButton (cancel_button); AddButton (add_button); Add (wrapper); } if (type == PageType.Syncing) { Header = String.Format ("Adding project ‘{0}’…", Controller.SyncingFolder); Description = "This may take a while for large projects.\nIsn't it coffee-o'clock?"; ProgressBar progress_bar = new ProgressBar (); progress_bar.Fraction = Controller.ProgressBarPercentage / 100; Button cancel_button = new Button () { Label = "Cancel" }; Button finish_button = new Button ("Finish") { Sensitive = false }; Controller.UpdateProgressBarEvent += delegate (double percentage) { Application.Invoke (delegate { progress_bar.Fraction = percentage / 100; }); }; cancel_button.Clicked += delegate { Controller.SyncingCancelled (); }; VBox bar_wrapper = new VBox (false, 0); bar_wrapper.PackStart (progress_bar, false, false, 21); Add (bar_wrapper); AddButton (cancel_button); AddButton (finish_button); } if (type == PageType.Error) { Header = "Oops! Something went wrong" + "…"; VBox points = new VBox (false, 0); Image list_point_one = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)); Image list_point_two = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)); Image list_point_three = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)); Label label_one = new Label () { Markup = "" + Controller.PreviousUrl + " is the address we've compiled. " + "Does this look alright?", Wrap = true, Xalign = 0 }; Label label_two = new Label () { Text = "Do you have access rights to this remote project?", Wrap = true, Xalign = 0 }; points.PackStart (new Label ("Please check the following:") { Xalign = 0 }, false, false, 6); HBox point_one = new HBox (false, 0); point_one.PackStart (list_point_one, false, false, 0); point_one.PackStart (label_one, true, true, 12); points.PackStart (point_one, false, false, 12); HBox point_two = new HBox (false, 0); point_two.PackStart (list_point_two, false, false, 0); point_two.PackStart (label_two, true, true, 12); points.PackStart (point_two, false, false, 12); if (warnings.Length > 0) { string warnings_markup = ""; foreach (string warning in warnings) warnings_markup += "\n" + warning + ""; Label label_three = new Label () { Markup = "Here's the raw error message:" + warnings_markup, Wrap = true, Xalign = 0 }; HBox point_three = new HBox (false, 0); point_three.PackStart (list_point_three, false, false, 0); point_three.PackStart (label_three, true, true, 12); points.PackStart (point_three, false, false, 12); } points.PackStart (new Label (""), true, true, 0); Button cancel_button = new Button ("Cancel"); Button try_again_button = new Button ("Try Again…") { Sensitive = true }; cancel_button.Clicked += delegate { Controller.PageCancelled (); }; try_again_button.Clicked += delegate { Controller.ErrorPageCompleted (); }; AddButton (cancel_button); AddButton (try_again_button); Add (points); } if (type == PageType.CryptoSetup || type == PageType.CryptoPassword) { if (type == PageType.CryptoSetup) { Header = "Set up file encryption"; Description = "Please a provide a strong password that you don't use elsewhere below:"; } else { Header = "This project contains encrypted files"; Description = "Please enter the password to see their contents."; } Label password_label = new Label ("" + "Password:" + "") { UseMarkup = true, Xalign = 1 }; Entry password_entry = new Entry () { Xalign = 0, Visibility = false, ActivatesDefault = true }; CheckButton show_password_check_button = new CheckButton ("Show password") { Active = false, Xalign = 0, }; Table table = new Table (2, 3, true) { RowSpacing = 6, ColumnSpacing = 6 }; table.Attach (password_label, 0, 1, 0, 1); table.Attach (password_entry, 1, 2, 0, 1); table.Attach (show_password_check_button, 1, 2, 1, 2); VBox wrapper = new VBox (false, 9); wrapper.PackStart (table, true, false, 0); Image warning_image = new Image ( SparkleUIHelpers.GetIcon ("dialog-information", 24)); Label warning_label = new Label () { Xalign = 0, Wrap = true, Text = "This password can't be changed later, and your files can't be recovered if it's forgotten." }; HBox warning_layout = new HBox (false, 0); warning_layout.PackStart (warning_image, false, false, 15); warning_layout.PackStart (warning_label, true, true, 0); VBox warning_wrapper = new VBox (false, 0); warning_wrapper.PackStart (warning_layout, false, false, 15); if (type == PageType.CryptoSetup) wrapper.PackStart (warning_wrapper, false, false, 0); Button cancel_button = new Button ("Cancel"); Button continue_button = new Button ("Continue") { Sensitive = false }; Controller.UpdateCryptoSetupContinueButtonEvent += delegate (bool button_enabled) { Application.Invoke (delegate { continue_button.Sensitive = button_enabled; }); }; Controller.UpdateCryptoPasswordContinueButtonEvent += delegate (bool button_enabled) { Application.Invoke (delegate { continue_button.Sensitive = button_enabled; }); }; show_password_check_button.Toggled += delegate { password_entry.Visibility = !password_entry.Visibility; }; password_entry.Changed += delegate { if (type == PageType.CryptoSetup) Controller.CheckCryptoSetupPage (password_entry.Text); else Controller.CheckCryptoPasswordPage (password_entry.Text); }; cancel_button.Clicked += delegate { Controller.CryptoPageCancelled (); }; continue_button.Clicked += delegate { if (type == PageType.CryptoSetup) Controller.CryptoSetupPageCompleted (password_entry.Text); else Controller.CryptoPasswordPageCompleted (password_entry.Text); }; Add (wrapper); AddButton (cancel_button); AddButton (continue_button); } if (type == PageType.Finished) { Header = "Your shared project is ready!"; Description = "You can find it in your SparkleShare folder"; UrgencyHint = true; Button show_files_button = new Button ("Show Files…"); Button finish_button = new Button ("Finish"); show_files_button.Clicked += delegate { Controller.ShowFilesClicked (); }; finish_button.Clicked += delegate { Controller.FinishPageCompleted (); }; if (warnings.Length > 0) { Image warning_image = new Image (SparkleUIHelpers.GetIcon ("dialog-information", 24)); Label warning_label = new Label (warnings [0]) { Xalign = 0, Wrap = true }; HBox warning_layout = new HBox (false, 0); warning_layout.PackStart (warning_image, false, false, 15); warning_layout.PackStart (warning_label, true, true, 0); VBox warning_wrapper = new VBox (false, 0); warning_wrapper.PackStart (warning_layout, false, false, 0); Add (warning_wrapper); } else { Add (null); } AddButton (show_files_button); AddButton (finish_button); } if (type == PageType.Tutorial) { switch (Controller.TutorialPageNumber) { case 1: { Header = "What's happening next?"; Description = "SparkleShare creates a special folder on your computer " + "that will keep track of your projects."; Button skip_tutorial_button = new Button ("Skip Tutorial"); Button continue_button = new Button ("Continue"); skip_tutorial_button.Clicked += delegate { Controller.TutorialSkipped (); }; continue_button.Clicked += delegate { Controller.TutorialPageCompleted (); }; AddButton (skip_tutorial_button); AddButton (continue_button); break; } case 2: { Header = "Sharing files with others"; Description = "All files added to your project folders are synced automatically with " + "the host and your team members."; Button continue_button = new Button ("Continue"); continue_button.Clicked += delegate { Controller.TutorialPageCompleted (); }; AddButton (continue_button); break; } case 3: { Header = "The status icon helps you"; Description = "It shows the syncing progress, provides easy access to " + "your projects and let's you view recent changes."; Button continue_button = new Button ("Continue"); continue_button.Clicked += delegate { Controller.TutorialPageCompleted (); }; AddButton (continue_button); break; } case 4: { Header = "Here's your unique client ID"; Description = "You'll need it whenever you want to link this computer to a host. " + "You can also find it in the status icon menu."; Button finish_button = new Button ("Finish"); VBox layout_vertical = new VBox (false, 0) { BorderWidth = 48 }; HBox layout_horizontal = new HBox (false, 6); Entry link_code_entry = new Entry () { Text = Program.Controller.CurrentUser.PublicKey, Sensitive = false }; Button copy_button = new Button (" Copy "); CheckButton check_button = new CheckButton ("Add SparkleShare to startup items"); check_button.Active = true; copy_button.Clicked += delegate { Controller.CopyToClipboardClicked (); }; check_button.Toggled += delegate { Controller.StartupItemChanged (check_button.Active); }; finish_button.Clicked += delegate { Controller.TutorialPageCompleted (); }; layout_horizontal.PackStart (link_code_entry, true, true, 0); layout_horizontal.PackStart (copy_button, false, false, 0); layout_vertical.PackStart (new Label (""), true, true, 0); layout_vertical.PackStart (layout_horizontal, false, false, 0); layout_vertical.PackStart (new Label (""), true, true, 18); Add (layout_vertical); AddOption (check_button); AddButton (finish_button); break; } } if (Controller.TutorialPageNumber < 4) { Image slide = SparkleUIHelpers.GetImage ("tutorial-slide-" + Controller.TutorialPageNumber + ".png"); Add (slide); } } } private void RenderServiceColumn (TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { string markup = (string) model.GetValue (iter, 1); TreeSelection selection = (column.TreeView as TreeView).Selection; if (selection.IterIsSelected (iter)) { if (column.TreeView.HasFocus) markup = markup.Replace (SecondaryTextColor, SecondaryTextColorSelected); else markup = markup.Replace (SecondaryTextColorSelected, SecondaryTextColor); } else { markup = markup.Replace (SecondaryTextColorSelected, SecondaryTextColor); } (cell as CellRendererText).Markup = markup; } private class SparkleTreeView : TreeView { public int SelectedRow { get { TreeIter iter; TreeModel model; Selection.GetSelected (out model, out iter); return int.Parse (model.GetPath (iter).ToString ()); } } public SparkleTreeView (ListStore store) : base (store) { } } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleSetupWindow.cs0000644000000000000000000000013212075245716024762 xustar000000000000000030 mtime=1358253006.673953845 30 atime=1369573462.918172651 30 ctime=1369573577.754175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleSetupWindow.cs0000775000175000017500000001512512075245716024347 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Text.RegularExpressions; using System.Timers; using Gtk; using Mono.Unix; namespace SparkleShare { public class SparkleSetupWindow : Window { // TODO: caps private HBox HBox; private VBox VBox; private VBox Wrapper; private VBox OptionArea; private HBox Buttons; public string Header; public string Description; public string SecondaryTextColor; public string SecondaryTextColorSelected; public Container Content; public SparkleSetupWindow () : base ("") { Title = Catalog.GetString ("SparkleShare Setup"); BorderWidth = 0; IconName = "folder-sparkleshare"; Resizable = false; WindowPosition = WindowPosition.Center; Deletable = false; TypeHint = Gdk.WindowTypeHint.Dialog; DeleteEvent += delegate (object sender, DeleteEventArgs args) { args.RetVal = true; }; SecondaryTextColor = SparkleUIHelpers.GdkColorToHex (Style.Foreground (StateType.Insensitive)); SecondaryTextColorSelected = SparkleUIHelpers.GdkColorToHex ( MixColors ( new TreeView ().Style.Foreground (StateType.Selected), new TreeView ().Style.Background (StateType.Selected), 0.15 ) ); SetSizeRequest (680, 400); HBox = new HBox (false, 0); VBox = new VBox (false, 0); Wrapper = new VBox (false, 0) { BorderWidth = 0 }; OptionArea = new VBox (false, 0) { BorderWidth = 0 }; Buttons = CreateButtonBox (); HBox layout_horizontal = new HBox (false , 0) { BorderWidth = 0 }; layout_horizontal.PackStart (OptionArea, true, true, 0); layout_horizontal.PackStart (Buttons, false, false, 0); VBox.PackStart (Wrapper, true, true, 0); VBox.PackStart (layout_horizontal, false, false, 15); EventBox box = new EventBox (); Gdk.Color bg_color = new Gdk.Color (); Gdk.Color.Parse ("#000", ref bg_color); box.ModifyBg (StateType.Normal, bg_color); Image side_splash = SparkleUIHelpers.GetImage ("side-splash.png"); side_splash.Yalign = 1; box.Add (side_splash); HBox.PackStart (box, false, false, 0); HBox.PackStart (VBox, true, true, 30); base.Add (HBox); } private HBox CreateButtonBox () { return new HBox () { BorderWidth = 0, //Layout = ButtonBoxStyle.End, Homogeneous = false, Spacing = 6 }; } public void AddButton (Button button) { (button.Child as Label).Xpad = 15; Buttons.Add (button); } public void AddOption (Widget widget) { OptionArea.Add (widget); } new public void Add (Widget widget) { Label header = new Label ("" + Header + "") { UseMarkup = true, Xalign = 0, }; VBox layout_vertical = new VBox (false, 0); layout_vertical.PackStart (new Label (""), false, false, 6); layout_vertical.PackStart (header, false, false, 0); if (!string.IsNullOrEmpty (Description)) { Label description = new Label (Description) { Xalign = 0, LineWrap = true, LineWrapMode = Pango.WrapMode.WordChar }; layout_vertical.PackStart (description, false, false, 21); } if (widget != null) layout_vertical.PackStart (widget, true, true, 0); Wrapper.PackStart (layout_vertical, true, true, 0); ShowAll (); } public void Reset () { Header = ""; Description = ""; if (OptionArea.Children.Length > 0) OptionArea.Remove (OptionArea.Children [0]); if (Wrapper.Children.Length > 0) Wrapper.Remove (Wrapper.Children [0]); foreach (Button button in Buttons) Buttons.Remove (button); ShowAll (); } new public void ShowAll () { if (Buttons.Children.Length > 0) { Button default_button = (Button) Buttons.Children [Buttons.Children.Length - 1]; default_button.CanDefault = true; Default = default_button; } Present (); base.ShowAll (); } private Gdk.Color MixColors (Gdk.Color first_color, Gdk.Color second_color, double ratio) { return new Gdk.Color ( Convert.ToByte ((255 * (Math.Min (65535, first_color.Red * (1.0 - ratio) + second_color.Red * ratio))) / 65535), Convert.ToByte ((255 * (Math.Min (65535, first_color.Green * (1.0 - ratio) + second_color.Green * ratio))) / 65535), Convert.ToByte ((255 * (Math.Min (65535, first_color.Blue * (1.0 - ratio) + second_color.Blue * ratio))) / 65535) ); } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleUI.cs0000644000000000000000000000013112013750144022772 xustar000000000000000030 mtime=1345310820.386218932 29 atime=1369573462.93817265 30 ctime=1369573577.758175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleUI.cs0000664000175000017500000000314012013750144022347 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using Gtk; using SparkleLib; namespace SparkleShare { public class SparkleUI { public SparkleStatusIcon StatusIcon; public SparkleEventLog EventLog; public SparkleBubbles Bubbles; public SparkleSetup Setup; public SparkleAbout About; public static string AssetsPath = Defines.INSTALL_DIR; public SparkleUI () { Application.Init (); Setup = new SparkleSetup (); EventLog = new SparkleEventLog (); About = new SparkleAbout (); Bubbles = new SparkleBubbles (); StatusIcon = new SparkleStatusIcon (); Program.Controller.UIHasLoaded (); } // Runs the application public void Run () { Application.Run (); } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleBubbles.cs0000644000000000000000000000013112075245462024045 xustar000000000000000030 mtime=1358252850.957950292 29 atime=1369573462.90617265 30 ctime=1369573577.746175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleBubbles.cs0000775000175000017500000000425312075245462023433 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using Gtk; using Notifications; namespace SparkleShare { public class SparkleBubbles { public SparkleBubblesController Controller = new SparkleBubblesController (); public SparkleBubbles () { Controller.ShowBubbleEvent += delegate (string title, string subtext, string image_path) { if (!Program.Controller.NotificationsEnabled) return; try { Notification notification = new Notification () { Summary = title, Body = subtext, Timeout = 5 * 1000, Urgency = Urgency.Low }; if (image_path != null) notification.Icon = new Gdk.Pixbuf (image_path); else notification.IconName = "folder-sparkleshare"; notification.Closed += delegate (object o, EventArgs args) { if ((args as CloseArgs).Reason == CloseReason.User) Controller.BubbleClicked (); }; notification.Show (); } catch (Exception) { // Ignore exceptions thrown by libnotify, // they're not important enough to crash } }; } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/sparkleshare-invite-opener.desktop0000644000000000000000000000013112150404106027441 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 29 ctime=1369573577.71017527 sparkleshare-1.1.0/SparkleShare/Linux/sparkleshare-invite-opener.desktop0000664000175000017500000000027212150404106027021 0ustar00hbonshbons00000000000000[Desktop Entry] Type=Application Name=SparkleShareInviteOpener Exec=sparkleshare open %U Terminal=false MimeType=application/x-sparkleshare;x-scheme-handler/sparkleshare; NoDisplay=true sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/Pixmaps0000644000000000000000000000013212150404311022143 xustar000000000000000030 mtime=1369573577.814175272 30 atime=1369573578.250175283 30 ctime=1369573577.814175272 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/0000755000000000000000000000000012150404311021266 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212117356351024302 xustar000000000000000030 mtime=1363008745.475246154 30 atime=1369573545.290174531 30 ctime=1369573577.810175273 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/Makefile.in0000664000175000017500000004710612117356351023670 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = SparkleShare/Linux/Pixmaps DIST_COMMON = $(dist_pixmaps_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pixmapsdir)" DATA = $(dist_pixmaps_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = icons dist_pixmaps_DATA = \ tutorial-slide-3.png pixmapsdir = $(pkgdatadir)/pixmaps/ MAINTAINERCLEANFILES = \ Makefile.in all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Linux/Pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Linux/Pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_pixmapsDATA: $(dist_pixmaps_DATA) @$(NORMAL_INSTALL) test -z "$(pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" @list='$(dist_pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapsdir)" || exit $$?; \ done uninstall-dist_pixmapsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pixmapsdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pixmapsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dist_pixmapsDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_pixmapsDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dist_pixmapsDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-dist_pixmapsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/PaxHeaders.8596/tutorial-slide-3.png0000644000000000000000000000013112056441160026036 xustar000000000000000029 mtime=1354383984.75512185 30 atime=1369573475.434172936 30 ctime=1369573577.806175273 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/tutorial-slide-3.png0000775000175000017500000013203512056441160025424 0ustar00hbonshbons00000000000000PNG  IHDRDsRGBbKGD pHYs  tIME .뤭 IDATxyWU.SSzLL$0d@+pQD/qDHDT*(\Tq xQ.H2L;]{?{ΩNwL/UwX{yֳSOl+ʶlCl+*}XV!}>_5+Gee[Vye[Vme3C+Gce[V^Vme[V"@J@<Bcܽm{ιEh4_~u<4s9Oާa0X\62q>[nfqx1G/)>/M/C[6oƍvZ f* \zCC?w;j ݲ]W^~7SO9<ؾc'j|˭xSOׯjiwp-7'̖ل¶m`x ݸ'x\}5];wOb F]5?ދmĺV/~Xv ^S/suU8Qغu3s q<† e&t ۶mw1;;,{ χ| "ڽ֮ƹg3<o߿qN;Tl޴{^k]܆']{;k5z O=oYxנ 5vl~Tb>w3 1e_5x3_*}?/|Mi@Gf pºuqÆ֟gff(^kfv;\\K׼sD+ލ\x>Z5iF\MssMɽKZƛeq?7݊N:迿_p=߆WG?g</w\?w;?8T f*ݳێ<@6;;-[6c֭8qܱ[p܎mރ5Kċ۾xKq{yO~26ٽ'^& ?sNr)ظiv޹C'ໞ<[s%h~z_ct~Y/~w~jG3p1ǝt: Xr@\a|˷:ppO+zxxs3No29gW_}-.qހGq_{VY5k33^3?<tzx%"{ބ\8 lzkGއg " kķ6nę>g~Ywum80wgx~9ظqpwn|Ozjb=ذ~|-El\ ݩW݉]o9d{_W+7@"|qi:H=[Go|v;p_~ą}̣kFZ?Lzڟ^?1~ox^k8.Ǯ={Z$ۺup}qͷ n}VXw:="h4Ğpcصpg᧏;cO~^'< ꪫ| O9Ix#n dž 13x?{< ?%{ض ܹxz`ͮ;qoM8ffq /@=d'nƷnO ={ßT#p'wa( :ٹs.|?cj^xފuǬkl{7+^R{٭`~?.xëp39>"N73~Xf/󞄓N<طo_@D}߲ "سg7u] ̮^c֭֭[pq077[o {ƍ7~^ąo~#֮Y(¹[S׿~-.7 / jw|xk^Ǜl1L|ɴH~?q7ڏ^[A\{uߍnWZܻw/nw{Ǔ8qqǡ#ؾ ^w0q=O޽{=b2}`f6|׹0 ?Kڗvͭ†8~e\~]0 G{?t6~{pm۾~2>_{W-- P|I8Op]wr3{p-]OqEozC|׽ 뗽-=֋ވ vտ\3 /5;L2#,$5>Gk׮_N<\z^_xݫq}.:NTñ[oy6gܳ^ovޙ^A 7ޘXE׋G㎻EҾm߾^`X|gTq𡗝~-+5j0~7~NY7ƭa$vmAr { `+;ر V\anph ̢e>ZJfe뾁r'=]HY}ZlmJ$ko_xc3QrT}ox ) .ٹk'{_i&lz9{ݙ/?DM'/9}|jld> X*ssg^\P5>?ŘrEؿËǧzY{L"VFѢmlç}O"o;o3v϶m򳨪 A =?q>U_YƧ?|cY0n6|ϱizOpᒎ`ѭqҋOW~/+_ŪUo>~fOCx̌)Vx9 ׾ r οBڵ 7og[n ۷oH݃̄[o w^O굷z~vcbaUSawGk֬ۿ `1Kx~v^W{o}o_`P_7 ?贲=_{'SXyu8u6XmpaժYq#q֭c.<n2 ȇ!+Cj۳'``ؾsp7Hlwzye{o9f/}DX!l+C|"YVmekGv`XIREf" '}_ % j5bJ˻CܙI,M h)vZ+xL.gGfOuozP$GO`30a$&!Q^̝~96YC5x&_O~L=+)S}ag;30Eb&E G#|Ge@WDv"6 v(=QE dU',h K:yx0^D9 2MTߐdUGO0jxxm<1PtʀXPFx'&!5 (|: 6e 8}dڃ'=AK@\}H+4`i `Aҥ"Pɗ&MdazSx-^Dp wzrAomb3 'ASEрHx;<Ұds~DbIȴ%ǕDŧ D[H.ޚ@Ga&A-!8j 5k A3xF6,pґLGc5J+aDhǁL:5-tޥU%-aitW\ 1"g8ĬR0d.ƍMj38C0τ!#ABvHA05c>^8%\bJ ?>8cbg2 =דŽ(yJHA; E@EPyb DF`#`iN._ *# ;(y ڥORNIj!08QH2&(D-lȇ8#"ʹ`N1?W0A^n2Đ#Z@|8#v \JA2`^?k^Bc9(0)\ " ZR@B7}0D//c󦾧D}[Qg@ӖؠY G%ǁl@.9A '.fC4 fHR@\'ȴ|9~VcW0?lH_";R`fp h'z뾺t2E^<0aMxw#-)fy#y#в7丒c{ }6ĸ:ctk2o\y$c#6u .|9"TLʔʑb}8dsT"H&Xbku, P~3b@8 *fT.V@\e&)!@gGeT\r˜ 0iq<%C]r BEDjIRELq` 0"SɄXP 2F"R8.„ړaYFRf0$#ԸeHVb`=-MO|J9(|D Hl_P`r+8Ӥ>>+_I\(}])6`N0P@0 *&&OfGp8q!XRG@?g͌X\LdjR)Pg }x3<X,\IMA?e+EX5dF^*! HS}zC2DHAA߭A$XzF" p1;Y" jDݷbf]$T6IGBxx?эAۓ BfH''Z#%*T=kI@}hm]i񁏎6W?qB˃pOCID4 $"%ta/6ѥ582ahvDpB6q[Џ$ƙPJR ' %dWr&f֖)S_DhV(~^=D ]4#u.Zu%m2T,3T\%%~ӑ5eG>!J`h<]CvrZQFGN+X mI xͮ36N^5d@dUyCrjj!aR(]'7NvUd+B.z_ R'(blHgS:TvĈ&[d&88AAc&J7we(1v-g! "wfZ7/ڇ#1 H+L1=[-6*i6 +;8:Zo+e>t54$AnBȧ(iDD8AXM+Zo(GunNP{jHZ 8)؅`q?Z`CۍAx$H ,CuZ ^j,v%(HҁJɺ`+$]&-SҸbZ~js'D&ޡxX nO% Ml9(!Y~!JA.CIU,oVYL`Ԛpd"B*bVM΢GLZb3WSfC Κ(t#68d3rgHTjԼ9+n +w{*%"^39K[rW>ܬKN2ikjYPmT k2e`ěo&+)SbO_eq0A9#Z75 bNDu1;[ R\1c%^ ppT0" e6 2ƔK8z=GdtQK3$* F#Ҝ$ ci lr٨R(8CDGؔXz8h:be8Vv82xbR 1(ܦ-A#h81CLϚA3( 5p=̵D-d}dH#Eɒ3Kuz|}~DԨ!me :A 2C,r̐Q'tf rAM *>i1DD14D7u- cr"u:S F)4bQi+ibtjƜHU9 yXz[<";a?^YmX*PZ]q9TDTq`gqEg6R[^,B?1 %(3`jhOn*AyY Ť*új(+nSZ$,ف\ ]`YzR23Am[y7e`(Hn"3eS;܂ciMwPf(^E?DXKf'0I`ֈc)j W,"vnq-"Y~tGp\I8zd&R۸:_*?@f(dfm{Pqb)gV/5C.4%<(-۱AdAn.{401{d{%^+ $"DnbpFI_IkPًa0Șr1XqG_S Lz?؉&HtHk[uv6cCV<*zq3fH!6`Τ+դ1s•Y21)V)I.b:@V֔cj8}"*5_YxE(SJ\"[5mA7br4;N-8w$kSRVea97!25-m4F[E'LSKq$2=ܹB9:F[kIQݞhfz4TkiCJ0;Ѣ>y(.ˣsŹ2^w1@|[./fp½ZT CIꮇڅ06!ERGb2"k OT;NwƮ6}/c$B&oXg|\bP܃ z;FoADKH P<5| óET>0V4^uw;R\xjF(̉=]w, Ņ@/>6S`+ lG#,{+  ) "-Il ATRjt% Nc6|0Zyr4e7J [WF5f+iØ+NL2$=5t,ƌK\S \GlT3H$:;UKJ.4ncs4fiՂ,#Fs(@AI=Fi9+  vvHmZ~3\5 hL3sQQq*žY0ja05LNςY!xf9pP@OLX%z1 U:ʮBiXHjmHb]w1{ %i.9Jf'gZDS78U;bT01`@Ȅ B `$|< =.++ǚBP9 dsi tleV ڂf\^K8>je'f)/iXTRA Mn+=Jv$g?n~QI(ݼ -.*Pڡ\@?ǩ5z4/7z!,O,|0,4Eqߜ'T<,]|ʋ,VXdpt449+,&#.z2DCAhLKT7;aj":*i+zC^dhˌlEW +|KF/XvphS7eS%P 5y$jtX EEgD ̊EFUq&-Rԟ٧9ѺZ| v61}˱.%3Tא 2M slu,!65&ZOw]K .bQL^ PZd/$,)DAM,P3ǒ-<@ aE ]-DL(ĨQ+BW^$Nr %)\xFK;{E<1ӔMQF7^Z6K6K1)@Fb HPX;&لUbө6'u 3d\夽U^,PQBwOW帮J+`m&nb`s6Py=cVQ'L.zx&Ø.&C qTKhܯMK1.z@Kܒt렋_45 ;Lutœ3u\&C ƥ9XWPC"ԮSksy@rE,v2u>,QVo2/,T[XLJ og8KF j4ֹ'9+ bJ治S}2{jɒ#6(6 (e59ςˌr 1(} ƌ$N-jeQbٲ.6P3B1KSJfFʊƩzHRD y],]iW68yH?0qxaWK% 1FAm/^Ī~3"ņ7OUD6P0Q~˲w=>goדnv˫ b;è.1RLe;S15ejL~/ ZR8u րH1(cfV7dG ǔ3>*]MϱI1s y4ۭ*i6v 4iFj,=Dj#"@̘W. eR̓}$I8e· D0T$3rQ{D L6L3S*<:lXLbg[WإzVr6ٔM4<ިd,aR$%hV=fi}i|Em߭c#dq>`vmշ0ώbD `=Ħ5O%u  =.(Bh !bLq%ΊOtڒUr4*MbdFA wGOG7MP:GD1vW`:޸GNG e[GyvqN2HhSEJJ2+}THyhs;UN萩`x"8TK*z@kZk}lQsD@N y긪5ĦK_@=ˌ8# 0ITI3cQH]uT֓܁8{s=b+d6HBat]T8q|>nIz3+~_`}6(5$f̓lG vv n0Ž2z(B^d`mqYqmPN]TrNRDq\@ü9v(֣'TM0_bfsbvX<(&q+&t/ ̦Ƣ0P.w# Sd_)?-x^uz~O3uʩ:>ŲMf8fu}ϦƮP3CXSr!3+ pɠt{TqeSv6=t:lؖrƉL|n:P@N`ɔ6ndksMRz'0^y8V HދagJ9|$&(G9\hA2e7 3q[8CI ]Ywa1a.[ M C$!uSTFQq Ef09 2bfTWuswǙ9ur$8a gFɒ5hYibBU4<ԗ73.Ovc G1KT)+mb1 ϛi>ߙz09ݬ-CIE/|M*<˨@ cBf0ςZa („qpEi63^*lddnsLHh@50^{&Xp0&8Q;᎑xXwn̝)Zy5ćFxѩ 0j62#h6Yuޭ6W4€SW$|09f;/aq&74k"@ΰ9ՇBEm"QalJ|dYG/SŸ*v,F}rgn(L29"qS3LٔLokY*Esx EW0i% C9(nh?fBgDE#%?$,M90f 4m, &, ImG{1úĽwf(`EcE4C9kX8 ;8-` 0BńJ:_qƳ-*m>ٟziY0t4 @,)3{;Lc>6d 8.7ufrJcB($4Ʌ̦ TgLh3 qf ҩT@PY}#J)Yh'^ˈeѨV IDATv>uz[VTILU޸bfdA/692%RKiߖsƯ'k1%MH*yC&6mdY Q(5}첳Xg7ղ(}Nnu/P.|8wc$K7724Hąo iHK].=LpPԒ<7.n70qH Qj* :I7"Eg'Y2ވb\pA-m#Ҋ&T/[.ټ|qd6- Bl,F/ȃa|=m`bel4M!_'O͂bMfH^m<_! ܓa] `f',JƖ͂>4!5AAn]K7N\i4׾bVk(5%Łdf*k8O2iGr;`pVp2n?Jt9N&}I^%ג1<;Փ{pbb`E# 3U4pJd!`6/px~aFK(Kr^*J?SLӘ H'w؎Rϓ =d>3,e,d ?I3H,f!k#sl0uwlMw@Z3U==61)̂fF!o]oYn*Soxӂ{SQ!_ c 3i :E-7b0 2Ŋ5{ @ Y"tE2Վ?åZ@3F XK.)Fs s˖nr3eY J_(fOZN"&,VL%yt&݈' P 0b_F@6#I<c'(%6;ro3sx]V̲ښSeXeG)dG5(3Vtx? ̄RQ I@pJcP Hb /Xq\t1H(HTiޘ@;7a dԱ>S~T:PKbƽg'\ZC2,7T XRPPs uScXLoE0Wm3az?fն?d1*0>6-i.Gm2g S&A#5J[kHrlƔ*t\<7G W{]/#0J%N8ARDeD؇jI2-L2yLLc"H3%1D0Yi0,猍6&0|EX~^f.[hCG?*$H->[9`uq%bH2Y%Sbf T:cHa$:cj%YHAz "j7>: ijHxaRFId83 (-: /$zMUMw{{l$C d T8grJа2(P*b >a`h/3/8` QNmN>!&T0IÁRpu+fk3ܲ3`C Wy^a-axL蝛wc[:eL1.YQˑac"WXK" ^XIb;9(dn@0ltX@<9k% R<$K}#mV&ۮp*3D` %k Ѵ9RsU3?YuET*LFO'%\c6;y"^H2H\WfRiQ]* `%9H/Vq9xb" ^ON5j|>HH@AAlp0ysUsgA/i^.A2@%,S4}c1`zvP\BTL+ML48hq]dkjI_ZL9 Sa! Vll^X$B뮌K_펝%IowQ#b`])/\;/`4A⋅ǒۆƠ1U8Rc(R)l!z33bpdMŹ4_ 1{2UY5u`,ՋY¼E-:SXG^P-^ Q 6fTC[#9,Ttiu/37lᩝ.Т"FjuVnTCbGfXaEi$ BMBfF+2q45ǏRUiT=lF{hv+skN18m`Oڠsl0O.Jhch `ĒFRCB̢l8 E{%05**ɸ" br+%7M5oJ/7 LGC1zw?oz oMΫiXSdY.R {Y۞ڪFv˶- qTЗ!v1 )3D{R|J v58c惸?ډh0G@NRZ e+UP5Ɉx$[o(ܚS8DK?ߑ!*Vy~ulKHbG t2 |S9px]T+$0J8I[JOC|B%wHK  L\s+(:X'n8uc<ǎ]$H&U:ۙMGQ &~U uo:+ii|1}ڶ-pT,8Dh4ڝ'f.;i|ϥRw0Dai[ ( 4} ;c2A!vgbTDTRH"7P9.磶e 9K=pHEmKBCvacؑv!he;iԊ|aՀx-bodںqdS`91фʧPM^O+iX )#Lk6K#mS,6L VeNvcN%ubyM2`aKn:5%ƥa,C z/3ZH; AVZ…&}Hk_HﱦeZs5D#En Y93&"32 Ā8RO]ty"]bvje,ޒ?ق:#ՑX$؁' Ǖ%3?{pq3[hjE{sts>:L# $ExZPe| MIJqfΨr_vz &Y#Xݵ-{@1ܪF7 ;!B˚ AF!^VtbM42VyWV%ɩWt63NKٟ=Y1˔-SbE)Z\ Dy%C,dIU)<f'=N ",[zĽS!cp3ʅt% >+gwvwg9-f3 0>ԕq6 "TXR:-ԩ ^s=V0u 5|=^u:`wb͙MͩN1c7yH}Rur FC_oMaC `v}UY6:CpAix2}Z)(^&Cz QtL3HqH.T'gW6O&˥S2ڗ3!pOFnVW,O-vGNV/vQʳLL|U < >5cD#TpQ &3N@%^p1aI lnLrOe &Ja-)5j@Pk7 (TDыvV_Ēt%.0fuQkjZnFdVdcPB#P"c@Y eāA a`5; pq:GWb5;μoIF>!,-:n.߯ЦvlN}҅t \RGS4\b_dpD1:(h|ϭY7Y(!` )ZD oDO1Cy.">g^`K hFt X +*8`4IBŒ0i;cŷt>L T-G%a*FfH1g'nkY"J{/;IҀ}0:@,n"fƆby:~OjD1jKEXbWs8&pIYԾRS'nRbwiYfs)eW@}=RdgNsXYo{_IiMErVAc40AɵIvN ],g{5!36Qѕ==Αm6$.hOyT!5jXM0h؃ ,B+N}Н]1۪kvPW,\i7T:~hTWlx'dMҍU3/bkYk~ÞOcOVj71@T+M5R؁:êMh8tqa؁W}(w}>(0 6zNZy-C* nUF0h>` V0w 1zR:]~6!ל3KK/-yqRwevgS*j!~RwnO6C6>&@uwW{*GpVI:PhvD8bRIf`J9 u (&{;,9ZPj6u3]OF嵣J2eQD+.]:Z~WHX!TCa  DXD;u`"KaeP.Ǿe`g< ˔!ms;U8JsFH]q$&"T:{ ۙi|XJ=%f cT7˒ȵ/ a_Y2馸!Qꃑ'2& wE+`çdou2:rD6eqySC'=SEncmJ#Y%!/#p1FUc7͵%}PoE8v'w* QJЯ4$<9hv6W;{s D`i7;mXZJNQ9fyhd ;JhPm*`?/kl7P^Ilߨ*2Z7PinդeFHnqf&@t#B e.#RGN{!*Cruf(Cd Zo6|R}GfJ-=E&cx>4]p2Z__`# \tct ޴hmA~W߬'jbE6}EpHskgmC%_ýc4:Eiu +OjU3ȬN)i4 n>P"בmQa>\p؂8fFsxlKS\&(VKOJiGIg4Ȓ8oL^`nJۮq nFO9^ 38h&[+.Uzīd=V̥ߡ}Cz7zGV8DotЁj%4K \˻hK\_{sJAGEZ^sR \#j+3BYmX9͝g/"rժ1Ҭ?"~ة]b-mNgbi <Fݬ_'g'=bzʸ;{yG9:Ygl£`{u6]Q٥!D<Q?/@E~κ*c9AK~.&C6ln6 q>SXt~HK]%8;l3"Q;nV)4=SFZQ,P*hw7kO꟫Dj5o _G2Ҁxڈ93Î-Zݥw1M39H Nj/hCuuN{*Hk$yI-4*{*Un]?zﰾoއAP:ᴁugӊb}!zStH/vƱjm 0- ,e\4j`ClzRjQ8U,(nXgsi`:V#A9y=yw0q+;QIB<{YWDKCueS KsX)4\ MCu+,o vwS "54\}4ƍFd_OS.&v R̈<árgՅpDXgЯI59[:5[UƟkckV%^_CbG! ;δẻ1X55prx-*+O"i*5r7 ,tUDO6>_kUU7ZD47]nFEU[nv̘C)%Ό#")ɺp7j*Z#esD Xw6k3{yH IDATg?ʑS.V< GjWfw{4Pmyohi^ھ"ԗ^3?/wS:z7x.؂@:hS׳a?SgP֏[h[)Cu83Pć.s è^֜Ky:N!K\辞3|>wOswq 4O-jacR"Vc+$]gm3"nm wi7p#Ŷ0 nanjj-E)AWQ\7R}b靟(V )lcrv3mYs$q_oxKMo8=4UlĈLPAhI#sĈ贏6/㦒AG&UԑE5f[)7Rc8VNB k2_ b$zlRqp{`L\w?`0@E+=MM_|&z5)K׶~";R֌>W!fM9 p)Oxq;qGHk*k4 ֯W4'C}5C]A|5S"% )>_=$J"ۙ.)s(҂gvàj*˻1 a1Rẵu _Cne χ~_wNɈ|C]5`כA}}D}\e{-­~݊kP>ZCudRe%UeR9+(]gJM3Wn7P!}! Cڸtxj߯mѴ܈Gtk%(zR } a{>urFܯ\R ^=zឤl1f7 Rł]T~Yq\Na[%p<КiT禾<2j5BN:Tq|ERM] 1PR,ۓB&ߏ\_O|%5pMSWG9OC=։c=/! &Y;˗"z{ 50&jO0F5Yy=Z^S_1=ҩH9{d ~^ÝgЧQțBӆ*ˠ 88־K`y~vK[34@SAPUv ڬlT}4n`IX'Xf! ģ2,YX47×\|6AŮ"[*UZ1i{rRU6a$O6tmzO ,ءkw)*{ӓAҞsGNOe+IkG[zEv`J7rX/n׎̱~GV#2[L &cMX%D!M)xUҴ0"p`SCJs+LM b#'yRjfjm.cB=a3i[T%_/|)ͥ6IٟgՔQw*gϽHfQ$[5kFفBܵ+hdYt1\2;U#NCcݪ~2H驔Ɉ,s氃X;Jk7?Yt`. ۸9k{MY_.ؐ `%y1e l܅ nb|-G*PjݳxUPj%:T'I:>ڻVO7l^BwrYQԩ)SiAW@JJ$nvݿޢ6&f"뺹DGq:Kf;>pWPt&~ɔ 쏽w;1͟_yٲlג-(sPÜ} )5`@s*aX#ѵ͢'”1?gAyzY>=Sg5\7dE~RNKY|h^obY#%Y /Ls+b#Mr/lsuTk$iAj)X;z_@4yAi0ݍXL1[>oB+z (ZU\,#Ro-"vBe=1 Y8e[m'ӒA6Pz)P3X۟"lh:Bo  6S~ܺ2Wqqp/28-wר&Cg$nk<` Llp&sf)aKO d]k]5Zu/;'3OϷ ?.r[(SwÖ&WJM\8+ɒ#&cwoC D^W5oDkfnOyg;k1A>ƥ|s߆efrw-PBяFMfs7]Dy+wX Dn*: ~v#މӜqYuqorqp9=65S$H*]ܩCK8-nskY$u<ɯ&prH >VGDBA 9}} sdtdi^5}^%p٭e S?w*[ۯ5m[AJ̖oa;b`n- "2$|*Pc;fO6&A~w9˞De4sIQזCǘ742(LyϦގpEr[ 2Oʇϟ'1pXAXQ9|+`B`j[ceGgB3' a?YQOES\LPXiQْSJMʄ۵ vj]IgŎ@_ |iE_|'P_,:3R䧊/;?. pC$v0%ܯ| ޟXH3#6̠7sԫ/|[E<{ @^\c i3rs/\Vkou; b|~Pb:GrƐ{iٝz2̮퓸yX^ØdU9;Ā:]WiW7>S IŰXCcsAcGß.{]ޯUJ+^^!-^r ^|:84l4As޴dV @4Q"D:jbqc@VO36mXN|@CG4)Ëi8}tVBnw3αhu@[XTtn\k}d'a^M{gȜNm8<]a[y"isxܨnz躾uqJT]AfΏ:B}-U%*k'W7p6赻iR5ghaXNh]n* npwT?:96b7 ::ȝ:EFsF^r (Eut"UyCf WDž|@ HX1C@~tuY8$ͥ8i4"^YJGe-t0`8OVF圯ݵY_dzuk~oX pθRQޝ|B{eIũᖊhu9 |Fˁ@:,w:/@ۡ2>ku}ؼP5gwY;`u "PMOZnfh+$t0}wc|a&m 3<+: |V㻑}oj3 aYlj KlS1Tٻgϼz/ t=Qa*z(vFliA n7>&C`OIC> +O (S-ЫM7}x|\PvG /X@gЁ.86Wzx<@sGz1wȧsM;m00M{}auc`uu.Zx1hHxo;]q Dvt,L\L0"5!&9hL@4˲a?ϮIG|v#s"{͹G>Aa:`S̟.'VR'}6HXÇھ4:v݌m'CL=dj*S!ٽ/ܼ_D J9/RyDybl 8rg6sۭϠ&a@Ύ A?~*3<@6 Ёp "yE#soFmӿۍzCG#DJ صkCiq&-; dQ>wÇQ\JBZa9S%Rsnbr1.*Aݾ kح+"2ok1`U_~x p}J)͆pyu\N;ﺱ?\Wyc2TS#2 +Gh˘:c:Yo/x\0uz^Sِzʈ'kH{/5{tpG;J yQ3xf# 2^qw:>va~JbL.qL_$XFzt'm,ji( o;.B:,{6F;kFҦׅtء§GBVX%䪨%.bE%Ues3 ~zZKlyGٶqELiA%>ϐnwq"}Բ*m{_Dm9<$9(Aw-i8xmuΪNNܙqpG%YTCHCFXBͰjl9N(%G&.ȾC ^t4<=j,(; u9uFGKk[LgNo "e\x'!uºhW/̽`{Wm-3)E[??Gr9ݍoZ-xCnb`;T d2PeP ~zdtHgmHszMA҆We]_#V~A􆔚̗x[V4.w *b[5>NE,2y7"YfbMz}\rNkXJ[tD; S0^$R=E/>^vN|~OA@u*tP݂AVV$xp{mE]~׸{N""(LsT?>ϷnK8\. }˜W/W寪@vt4"\O3r78֛=c_V`Ps(^bOJu܁_s1/ϒ4Jѷ/~tfU,R۪%lwkM5Y#,xQ~ݹe ܩ8o!A텺ӊRE|㣲`4nާ+uбDT4)FAm~9R: Cxc'`at-hWQzEip6MWCXF+E=Ct$R(#e[׺?㖴{7=W dWrӤ k,u}7Rԡ:ܴŔ^Fiv.|Lu$Isa^Rv,u(mN9 SA) Omh5SS#a5{NQ/]L(_fu%;nhDKD7 |,k{V] cxkAeM)M }!<*dDF*k!BV8nם%q_*RhRm0U6sAj܀խt`SA^re9(%Hdnjd"GFxGACKA#{pf[4jJpYwȐ%S C{ϧU X^iF(oϫ52^2z+;yoy]iF{譹c_K:MqIXHҝ IDAT_ls%2`_!O\:8G2F]3Q*rl( ۔(l(r&xR3`2u' sY#v,!KdcvFvcG#*:1Z|G65ܽܵ+/*~1:I}CW IχY2weUd_}+f۷xKfN,9e] j帔†O!Et ΢{E3sV޶Ȯzk9deΒasHn&kU!fV%tnkWZnf4yN.GF.~9,?Mɓ-qz-x"#lծNk_k.TN{(Ⱦ}!y:O;r=6rb`p9zv@Zt=vcnv^rhqE^는F)q$،IpNܜ~zڍMBQr~Yzh&>*$v-ؗ.U nh\v*tfŃ|+aq+di8Hx]Ÿ.8"*eBө̑+=ӗb,퐗ï89r3(cy͐3TGAd"*(udWw a[!R{$ k@513)@9~1(/вL7H@CrH^x*HTZ ZE/*׻ pUb-EO ^y7< .u <%Z2]aNhi4낀 \`Z`qE(H.6~wvA9Hr^N)m̎C]؃l}^Y NXcF:~Q6w] [=ŒwWb_MzCz~e S7+N^x*}qH08=$!+ڊzLAR-.`:iW K =_Ek\iz&NڊV8JuNJ#S cRQn'=<g> L3(AH9A%1t1e;x"[bƐCZJ:D?HNYystϑ_ a:]RthI #3t_@?U.yq1SVE+@j7Еw=iy l,ZQ.m'O{NEsQݣ |1dg{^j QlpX͝X*O > h8Z=d(ss76g]wS5RFEX;xC~@ml@c)|Ef^=XoHz~P~׍ h ޵[n!&Cx7?jD< W jLB]W꽉VTQ bE@Uťڐ"j+jom z#8Q7F/1苮ԝP_ș]L߁O,gsjyZsup(DҹAu5]aK@EP:Jgmah)>Q3 ~^͏]W`eqM;P e؁ \},W"S^:R,i]tkvXV^^GB5Ma9rbB68O:xtprmq) Kv^ H"`h"v4`#Q_rgd5Yz7ICA%p2{@"Ƒ~cN.+Ck+މz|6 @fuK?sfKbB3 q\ Jּ/fshD'M )BA%_> W?|0ӵӎzpJͽeC׼-7֭ =XZ:

,ĺ\v3glvū "̢ī[ Q(Q`Pn.+3\^kDnwuޠs496Oz6TNAv\'Z~=TGw 3 uNJsuCFD)".*Vr*CbtqƂe{.()hr ƣ K83*ݒ5Iveh~T؉vOCqKZAoK{~Ey,;wtkH!7qI 8#@0?w2|_]T=%'ETHU#u+PWQ\$ _J0ppQT׃B>^mK[eyLaBG<ؼݍGmo[Dm >;:g~̠Nki̋a)6?h{T 6a T;xxDA+8`y0!mx#sZCܯ~PRnJQzin- ,[/AΥ6`=ߌm,u c�s,:^ hs߷[|(794XNk|@{1ewYBY$;"eMؓM,u|9s}'}D;VY~&V&#Hݩģ M%y~"Α4v;e}PZCMD9Ɨg{X+Lh6hu Qn%:@YeAϺEm_Lk#aeG9#4@ā·GK:Z?&(Ph =NF )sў9ox"gi\}S^4c 1#eH Jr]qe쨗hT'듰cvnx_XG^3wt{.r Vt_<7~1|Z)"I:Įil!y*6_ȞͬV!VNQmSE-qAHńP_5.LgެxG[] `HH3.ʓG}HT"3l]H&rʧީA" }H0gnWĝ#2$.7sn-|?;h:Qmt&1.9v3ȉ8i\\/7n;52N\fIiE`KOsjmF>"+#t1١h|$:v\ *^bvQPV1U81HW#8F r=vIa)uf6ݳ#*VNaRUiSkgK~ ?A(-^iuѺ8%Xj=nm y}+Eetw^tar*PqF4 n 5Z\X$Yړw.+2"};m'(8I&غH("L_Y=vWFkJہrΨO:DnSpr m:ёO\X5ƞ`kvJ*B6wc7#߇m,ŃIȇϪc}u)d1]:S+Ŵj5na/&)В \Ȃ5wm;\jT9jc܇"a1yq7sPE.D?B.Q;g'm(I[}by]aߙ+S#,.tG[TOV`\zV>o6K\}6k){{k@ >U-cв,hS݊z'gBh77ms#ifV9E[~=wy"A-t P-q=٭$g`q dR @uDDuߣ=&H.juJouOg c sw+Z濾 f5)|W۟&v`{SFxuV!lk1 ;+<;'oV1iW} Zvl.J{p8϶ہbm_%tD͉f1bӔGƸ`G`C;_CCE ET -pN)!'-tr㍳>4vuj/- OIq3-XJFcxnoȹ""0m rc>N$ot3gʴevy}MO;Z0řJb&=~U{8lGx.WGňrQ(綽 %#wlFcCj=c1g"q>evM@~b]hz||$- <ԋ{ xTZ[c NL˴ujOeu* #pauA=N6-o>_=3om~Jy1Ľ]r͢j^rŕ{'UHC#:k]v]y[$!=dj.w#~%ei˩= }WaIDATyk>ؐuu h}n9M=>;D a1=ܟk=ne?t2;CzjF'ԝ?Z}m큩b'M:zgY+5V Zg"rt޺E}xj5S9S@W!=C=/.=>_>?Vq<͆ 㡳 ˝n6}g==pvJNO܍J˃m)rZfqf+b@5g_1|7HCoUg^-1lImI~Aã%ʿkM`+>4_̜@h9\ĢpG/P%9MsqYNb-k*T$`-uJ؀2x,c=(1{Eq@̦eYs|NCpAG=WL"Ի2y=>t&9}1ZY!? &odsdj[U4$t[}"M4o; "ONҊxpDyP 4wF;Ȣ :|҈5JmG8EacqdzyEAgk+we 4ZE,J%I_|Qe_V 񼁗f̐<"w&n3Vk5ʕR5vh5˹Eg;q;dEv’9PiOχ%A}='kհG`hm,;drvH؛H4WLa;s,Z (B)ebo*J`?ܮuNCctKȲ٭z֊8)gIv3L`zqlLъTL)^^C,\|] #[A|QY\BL Hё R\ʾ8Yؼ'u -0]4\L[]z*rI9z~Dceg*u4N]"h4{XZ6e"7=ǫ,}N#rqeR+o_I\_W5fB뇈ꓻFϵc$8 &ǯgGV\L|b(|PTb0SܾU#nTfPA)K7r񹰅FG7o AH[%Ɓ]p}doM2p4O⏓p뺿nE_Jm~ nqo ~PQ7p-E4) yc=6vFX/P_܇F ly8]R8/;K~somޡ6̡h8DϪ{p6HwTcOk1B@k!mP_ o*$dFX2<3&S5yu>R#ӷq[,V_4xݙ;4R= *\D#_ֶxg7#J~p(ߣg1+gm kAi+ rZ.D]$bko4b(a nOSm8Y0f\r;Lq"Xĸ uWzx.-BJ`~ {^E6/8wƶu \Dq23z8VAp~vDZ3ÉrQg){h3scP BbՖ'Mdl.& 5MM m@NW]\x\3vwͲ;piug;jUt,"en kkũ46 |1:P-M\{?ӆ|2sd+O5ȏ/ې7!iK {p&n7n^f((P}~7X`I,c-"/I}ATꦁoE&mRj0 ~k3LN;*ƝȬ!~7`/BMdqs{~ԼeP%&a=uʞ,x-F-ym9=I"QyC{4 @i ز D"?.|ŊEⶻw)2ռT$ I¨:?n.4 ɻf@D1ёHh.ҍo=cIbO,+@wivw:Usd " RnIט0b *A҂FGK-5FU-[6 zv/XQ,9ˎC&KK8>»1+F!Q:nެɲG6 aߥfPֺGӺOϹtuA{OL]{K=,YVCm؅@%b&VsfHg%Xgiu 3(çp谞99I}'ێ7_j[` ʮPu_8;\(f@8qR&)2EUd}Aυ^/1xIj=reTxʔ_9:g{G{+@4]|'~F`JVj$'wEEpQpSqVaUcumblFMIv?Q;tbq(]+nAQ8h:HO1npo(]v]&Q*gCv:Pm;D/Ns^#?pI~Xs"o`ap]lPh RI$ao8Mgҋ x繷iMΦ;:;'Ds&>SR^-4* IO26>u-34٭gQ"V&ƺI^Z'ȺO4wy "`Ht$F,4BpEpx6nQ%Oo 79v6$^9K[hkR?ܐ^}ڔ_8;)@ڡ̮j |JӼ+P5TݭS4ѓ!F\f * ηtc2#U̱0][#9Qo X!qbva ̴U,&N(]CJi]w$ְƽ!c>i%=ieZӨ1+'_@7dyetb5fUK2vmJn-*9^č^bֈ$o0(w̪ׅbu&jq\eTvBW-j} |??kM\7PzId{i=uVneicj觸P..HP8'ޅ{ן*(i8L!(WG3_ M*$VnY ++!6ī]fؤjJ[X\#sȤSy #RS {b1P/emﱚY$Ba?NWEA{*s 6LC@3~:|fQX/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive uninstall-am .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-hook install-data-local: @-$(install_icon_exec) -i -b "$(system_themedir)" $(system_theme_icons) @-$(install_icon_exec) -i -b "$(app_themedir)" $(app_theme_icons) uninstall-hook: @-$(install_icon_exec) -u -b "$(system_themedir)" $(system_theme_icons) @-$(install_icon_exec) -u -b "$(app_themedir)" $(app_theme_icons) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/document-moved-12.png0000644000000000000000000000013212013752533027221 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573475.034172928 30 ctime=1369573577.866175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/document-moved-12.png0000775000175000017500000000067512013752533026612 0ustar00hbonshbons00000000000000PNG  IHDR k=IDATxڍ+qǟ94 ˦ ZMi6 9Ȓj7rpnPyZR޵>}{!^O8b`BTH0auL3F9r%7 4SP֮OsR ;5NԂP9T]P&Km}ݤq&wa:sU)|N#۶ Ť*]`\oy _4ޓ*f!͇1TzΠ W >|WrY$b)CS?9,"=IENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/sparkleshare-16.png0000644000000000000000000000013212013752533026763 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573469.082172791 30 ctime=1369573577.882175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/sparkleshare-16.png0000775000175000017500000000126112013752533026344 0ustar00hbonshbons00000000000000PNG  IHDRaxIDAT8Okq?ߗ{ayeoc^ 'L $bE(r gP+Z4f@/%"T{h}Tɉ~?\P`uݎ ăw 8oqc 6uX"AACJ㖍 C&(}BfŠBD|:z8.6RX]G& 7l?E0s6R^b<{ I&v`c!=jN$Pi5t_?Ff'##(<ȃ2L{SAOmg1`j4D4`wW`y}YOe>5lffq޿,BM@Qd LaFeic3Yy0ۘ/@>n¯ k.2S*W3(*>%Nt` ^wb3"e 7  DSڏGjTBq y}j7Z"gҢ-AO|3uַ[ΪH+!34ǧ7QQE*y3]mg9@XD#U&fȱ@`p]/rIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/sparkleshare-32.png0000644000000000000000000000013212013752533026761 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573469.126172792 30 ctime=1369573577.890175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/sparkleshare-32.png0000775000175000017500000000237212013752533026346 0ustar00hbonshbons00000000000000PNG  IHDR szzIDATx^]l3ں-Hi,4EVJAD  D7ީz?+R@1%acSHC -vw}EdRd6g2yÿ֚;F schkMu׿@b@H\=S?ڶN6-&l:UJTiA|D ]h4o@4mE~3d:4F]Ķ'8 AGl?Q >Xi:q!f .fșRǵjL<\FA\n.GbL ꀊAn|֭o+('sGhٿ:y/ˆ ΤdE=EyM8toRSv#6-B;:8Ĵ0k_\(ΡQ=)bf&`:ø5O5e scۉ\ &3EU`mE˟ 6=f&5Հ2|`YG # HÌ dm'\ *VatV.8ŴPjF,&VGHnq| Z?E p#> 1> =AF%?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d IDATx^wtTU߼L&L2$ɴ$aA@B3 HԠ "V@Ei +Ri*PLv0R],Hѽmd^w3w^~NY1IM&i$Nh 騑$Q Wl  Ea~s:\۪570%fP?c*Wss28nV'@8)\ !Hg?: `3j?xz#ᨥyP*Fի^gKI#IsPvXZrOo& f3,xB?Is۩ HDn 8Vyy囪`0cy+`nx! Msv̼.FL̇g_mD}a1ң~lQ+x]zLꞿ.ɡZ\:2S"Fuf 6^F׍* 6O!aR'&@b5yLAC18jk+1ic` [E̴U4kD(AaijJTfIhUb5j<*&x9i(aoF{@iƄbLUյ}DJ@SU}iUu?qs윰<mnc]-TV,p J1G<;~2$6R5$Az1Aɯ"%$!)dT)9¨H>ŨkD1DC& ᐈQ=YKH "O: U굀kB<=F4k`D &ДիacQm .&=h!1ޒR@VNufXAG_a aLE8BF 1 WB=f/gTwE3jF;4zt&H&UOVP֞o(@nFE%.h#-\Nۺ" בpTrFEѳs{\3QGP-ACըj*WTT.aH A G7΀kNͬWOYWW8Ϗ mõ]z SN]ѡٴfhmLwص^WUkS3@u\mO 9i=v _=--[|Mپcj%_^Z4.04y$MU*SoWWI!AAWkOL覴$ԔE.?'h<A#h m&hT#/뱮)mV\s \gr\w66^zS5;On4}5>QICDӒ}03 -a򩶕xjtb_`zpa=nڵ \C]y6t;RJRYE]P굀ŻG@$FR;QfXItPTMpTI҈!IWtSo45~IL7S؅DubI#Ҧ#¨ FQP0tSs0<†<*`(5+R[Ufq a_\ uoora7`Sy(\(5ʏ7h8:=h͌~ui KT0TѪZUJTcE݌i$=AGi9jR4} 9c~~ySsٳScIܘ*]b=Ợ)b5F\W=f UiIb:cJ?@ pCcQӷhH*j n6c=N7Xynd\c}m6K ߜ&? [QB7ZCgg4 ҝˠbfcQ7Bå̇`ɒ)15٣jyxVFaVY ^:۞bi>VNfPѶ]acjs3 aR-'N NCrY%Y\E\d2@}N~dZu`@ܔ5 `8 Y ,G d[I곐^8,õC\ˏQ7)q nyV"&iÍ$Bvt;=6ac&, Uyӊ~).qUO*IG %PjL>UԢ@+ wSZ#XIS#t;M”囤K`T|(KkmiOZŌe5f\] :ԣT+@ ƻ>wHF:Oyu|rh㴾{|5oؼmVgR/qMopGUq6Wmuy .qΛqU[{uuQEPn4 ytzywt• K{/35ńmS$ءW!: livni":խ]le Fs甁6TU0S!X,U:@nWΫY뷷kr {^ 6TUw^ xJiT OA Hkƻp/ZHj3T t ?3hjIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/ubuntu-mono-light0000644000000000000000000000013212150404311026653 xustar000000000000000030 mtime=1369573577.986175277 30 atime=1369573578.250175283 30 ctime=1369573577.986175277 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/0000755000000000000000000000000012150404311025776 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212117356351031012 xustar000000000000000030 mtime=1363008745.627246158 30 atime=1369573545.498174535 30 ctime=1369573577.978175276 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile.in0000664000175000017500000002607512117356351030402 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ light_theme = ubuntu-mono-light light_themedir = /usr/share/icons/$(light_theme) light_theme_icons = \ status,process-syncing-idle-24.png \ status,process-syncing-up-24.png \ status,process-syncing-down-24.png \ status,process-syncing-24.png \ status,process-syncing-error-24.png install_icon_exec = $(top_srcdir)/build/icon-theme-installer \ -t "$(light_theme)" \ -s "$(srcdir)" \ -d "x$(DESTDIR)" \ -m "$(mkinstalldirs)" \ -x "$(INSTALL_DATA)" MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(wildcard *.png *.svg) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-hook install-data-local: @-$(install_icon_exec) -i -b "$(light_themedir)" $(light_theme_icons) uninstall-hook: @-$(install_icon_exec) -u -b "$(light_themedir)" $(light_theme_icons) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/PaxHeaders.8596/process-syncin0000644000000000000000000000013112025046277031647 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.774172762 30 ctime=1369573577.982175277 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-error-24.png0000664000175000017500000000105412025046277033532 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDAT8AJ1E_U9;O29*N#" u'p5@SnFI3#lcހ;Np>,7`8ss 9 f鵔u7#1jui}0* 5|۶kU .(tb9E\>fZUDUJqr['uAKYl1uIlIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/PaxHeaders.8596/process-syncin0000644000000000000000000000013112025046277031647 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.762172762 30 ctime=1369573577.978175276 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-24.png0000664000175000017500000000107512025046277032406 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDAT8MJA70+.5rq# A@4pNpJo yj;)pefQ3cO7;7scfa2?H?wՈ}]OE-B8 w](8aޏum7f&w_GRJi%z2 -@EMn ϒn3JR[oZ[IZVrrQ"9IENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/PaxHeaders.8596/process-syncin0000644000000000000000000000013012025046277031646 xustar000000000000000029 mtime=1347701951.51015739 29 atime=1369573467.73017276 30 ctime=1369573577.986175277 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-idle-24.png0000664000175000017500000000126412025046277033321 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZiIDAT81kTQ bJPE"[A0`@lElAR bl1 iRŠHFV!wXۇ4r̙s*"9+.pӂjrޛk8lZ& ~ǖhjࠁgRL&bwKj'sf^ޢeYJٗ86h z^*l+~@Ref{iy$̞/EcNDOK]"WlofN箙J:;Ŝ} 8 r 87]HPRJ$qRD|/XD]ȃ`뽜}v4}m0P<$v:Pq d~!zIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/PaxHeaders.8596/process-syncin0000644000000000000000000000013112025046277031647 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.750172761 30 ctime=1369573577.982175277 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-down-24.png0000664000175000017500000000110612025046277033346 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDAT8J1.L9 VS[Yb־)nak'XXD6++iBrrbfm{ \zT<6 5MȬAV2=xU im+}Ho*Q&ӻ%cfv!bf' 7뺮>]U S s,GfvKzѽ^[EqLND€ p fDxȄt⦅-1;k KL7nIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212024723511030772 xustar000000000000000030 mtime=1347659593.667446302 30 atime=1369573545.498174535 30 ctime=1369573577.974175276 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile.am0000664000175000017500000000130712024723511030351 0ustar00hbonshbons00000000000000light_theme = ubuntu-mono-light light_themedir = /usr/share/icons/$(light_theme) light_theme_icons = \ status,process-syncing-idle-24.png \ status,process-syncing-up-24.png \ status,process-syncing-down-24.png \ status,process-syncing-24.png \ status,process-syncing-error-24.png install_icon_exec = $(top_srcdir)/build/icon-theme-installer \ -t "$(light_theme)" \ -s "$(srcdir)" \ -d "x$(DESTDIR)" \ -m "$(mkinstalldirs)" \ -x "$(INSTALL_DATA)" install-data-local: @-$(install_icon_exec) -i -b "$(light_themedir)" $(light_theme_icons) uninstall-hook: @-$(install_icon_exec) -u -b "$(light_themedir)" $(light_theme_icons) MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(wildcard *.png *.svg) sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/PaxHeaders.8596/process-syncin0000644000000000000000000000013112025046277031647 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.738172761 30 ctime=1369573577.986175277 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/process-syncing-up-24.png0000664000175000017500000000111612025046277033024 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDAT8J@; S >)}N| A`aD ZhNÎɉl67??*#d{`9HD< \cvc'hQO/ι4F2X6 =K*{1Mif/˲mvK oú?x`JqUU?,zҷB̙sn뺏޷² ?1x)I9jdI""g o4=U]woY]͢CIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/process-syncing-error-24.png0000644000000000000000000000013212013752533030553 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573469.214172794 30 ctime=1369573577.874175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/process-syncing-error-24.png0000775000175000017500000000177112013752533030142 0ustar00hbonshbons00000000000000PNG  IHDRw=IDATx^ՓohUu?ܻ^uj9Sg[(ahQ 3Lɠ6TQ/L`FX Mgtݹ{9$r ԋ>Q2>X L_;%P'hb7s W,'". =PaOS/*p}p']s]2Y.a976<:(.U#Aj5%&lOYjAE7rowͼ PjvPBak~X|:ҋk;{(~15b!g=n1PWhO8m0KqC^!x~gA"1rL2Lb-? NO @#[ŵEHIB/8XㄮbZ6sgӧLg~r%/-aciEJ&2`^ʝ)TE;D.nof.0v{Bq/27;vg&0@V eK؎gD[@@P%ʌ0ssˡG_PWѡ+@iZ?{ ()c.gadݻ&.g);b ۺ1ush8 Hy/qIzz2-~  }Ź939Q[QQ jpBQ/ fH>ʍ[,sdǙjkCc$ɦ`L?*6$v__)J6dv&RG fr[^PA|Oכ6ah(ZN BUdG=^SHAP,K7úlLV$ERt pCT1@  B&q 6/(-]/lJIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/sparkleshare-48.png0000644000000000000000000000013212013752533026770 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573469.138172793 30 ctime=1369573577.890175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/sparkleshare-48.png0000775000175000017500000000420612013752533026353 0ustar00hbonshbons00000000000000PNG  IHDR00WMIDATx^[lz6㸵Cn$MLI*@U)U*ʥ *}@Bj_*DՖ"RTTBmyrK (~ql'^fSwh%ROu7]y?cdT%wʣ#En{Ts存V'k[& "zp%ɻY0g學Yhj+0mcRPI.rpM|1aX-2ԅ״bW}㏑ gX$VWBdžE0;;&/PӶB] XCl-*^po r;-1TB;AJY  /Q^ACmۻ鸚JS$F&&N >w7L,?b^ef(7#& /l~S/?NW?d DūmB w0#bPa!(@UN (31>|{_#BgkIhN*_5&uIo!Mݽ'28qE1bKU㈸e&QNzobuߡsE/Ǡ0t`Ig"ȼE1^|aFEQ Ux`}f"Y0+aɗ7㶯Źؽr, UCzrg9&6  J@DUBеoE+1~@o Z?Ej6.JG (6|q2GYƆWN$n1;h4 HY 4s{E¶sY"I DǪ7>g3OD .`ټ&;yDBQ.A$Ӊ*XDyCB> {Z?6s*ʥ`o+`pXs@;YĂ?g8&$ < 8\@(:E&!\T2 ?H>/c"~usB V}?`xR_*!dK@}k/p4"=Q{Ϋ?7+2~h hF;˝FD[׎$3Xg΄͡6;O*H'ZS.`h9;w=hM hy{5S'ҵlڏ7cG&K4U"b:[?X@Kn{ ۋ^@/nFK-aց%6n~R1C7.8jX @$*cnq w*x޸ftJ$X঻0na: CƉw܄lN!%K GlH`|Om 7@t'=x' ?S4ՠ*m/B.@HXI ΎOanH"`|0x ;C/B`ABn:%3jBW6p%?CߣɁ1ĊgtM/i g"kqPqP U-De%důĉykN8L5/Yˆb>qE1肴q~!*"8nc I0ǻ/}>H=╦zS &1w|i݈ }PURXU 6l!yD32Y?DoA:v_ϗ޻8=~.o=~oz(ի.4}]8b̊x]wo=eNx ]_${7-}8qcL<_euʾh7w!Uĸ׶@iq˙WeXuC9t#g'~qmn1J GRg쐸37f1 bÖ=0lRv11ώMm斝;йKs>6NڎId&ȿq싗2VĀ*j2qk5vf+/A=))pQwOо 8IÊoD[R z"6?$H*Id-S]d"1~̅aos{hNA@fxIй^`n b߮'UɢSӄp>Orn?Jb VnU${q]<b'Bvl!;DͻA/wg{=\p8گ`ύS$6 ~W$ vVŹjCXPCO1z6 ;ئ`s$&$"Rj tn^x -L TbQyk-.թgcoUyfifgf @0LRUCg+⹑RWᴭ[nI9FS9L<7㶶`i~tSr_PubNpԽaͩb!2:toہ5L o0h,JwG>z<L kЦkx% 9VIfwNM2R,Z.CFVc;:^gL}XFK3u:ysX<ӎفǰ~vѰT,VN,n:̟?| (Vw@pMG^*/&1'ݖywnJ90*\3>T2;zr 0!"{[ҩDO"DbX$])UrJJP&ymr|YOCյ\&ӆ7)IENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/sparkleshare-256.png0000644000000000000000000000013212013752533027051 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573469.118172793 30 ctime=1369573577.886175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/sparkleshare-256.png0000775000175000017500000013512512013752533026441 0ustar00hbonshbons00000000000000PNG  IHDR\rfIDATx^ԱkM!2Oe @ @>][^W>%3O:i̵JIjl DMD VJCч(>H[-E B%Em. $ M:idf2KgQ8as^{{궰-1pdrUgEKZ0Gi = 2Gu( AODV%CƅQƧy'?yv%҆P,6* NFY>OKexilϹɧO>}uР ;s=itG'HHc@H 0 m"8"3+)Ä֗/+.ۣU1(DFs I٨<<70m\YSg6|Xmh(}}{/`m@9h`'5RHj?vI'CJĕu) i,[bՆ e #cWƹ?"Ǘ?sgР 6:4".7Q$'D.ĺ a:8Y<+0K,dB\TqSANYcCQ#{&JtNG Sv'šuнgZk&gN8A_:~#V 4 S3ŹߡպEȬf\(0D^a9T$ r@Dio )()@dsӫyD.UVF8SȺ$'roAs-W~.} t q<0=(G^|q4h]@;JPJ7j>AUkUAKU1bQbK?aL*{!,ydI>|yK:`wPĔ+Upێ"n0_z#w/ mMk: PFv B,,C ͞XDI!E1o )I`2IT =Dtc\]N,%BhpϢiz{cl''>UX^z<J=/Sr W$ s:e Nxiؕ!ȯƑ0S/TowI̭SA"o`ϣ7nžSOٹ+ DH'YDn! |N[]1DK%݌6T>Wd2Ub|}Uu3h@qt+z;>^8vpFd4h@#$]oQB!޾U3KllU#)e^wnC@dWjlBе#Y“vٜW)*Rߏ:126/aƫ<ɉ f=cXhДGPD6=/Q; 91EOh. AfmC4#zxD#Hk#(Umcݣ>F N0 ]d'λ 'Sކ,7&"v# .,^Vd)I镨}mH\<ͻЛZ>3 V 4 \}*KWՅ5}[CQb4߬f(H~+FXqn[kp! e@&2KW9DgY}/Q'k/'mih;1zX~&<l܂~FSvO ET9< >_eBI -_ITyXkTg1lTY1@0d%u(2+D)*[/c>=scFF8Ql̿WƼ^'tx(֖-k.^*S o<GV:)iULQZy ΅ )|'Rz?i#Zh".㸫v9zw `όx̜st!̓+Y\&Ft&`x)/n`(iA7j~ȹRQ2Ң9"~ u{?{l۶bcӉ{ݗ%!-, ӘІ4 PiKjrru]]`F D=@YO z9ݜO{90W_ޜۗjuys8ŸWNl>q\ hٿo,&,bƨ'On@-: x {_MDzڴt)XG2!d#+:J/pU}?z+?ʓ]pEڇfJ=QB#n5Hg7IK7x.i{K=Z=t]ᶶ9Y)^7SkJ.#SN03 MvCþ<:ͬRbq;/?O{'M!b"bOņ&wR}}䄱Ϟg9Yh|id:@)@p"%u 9JrOO|DZ -/_.<8y=mwgSk0A) ET>79RZYu}fCٙ`YBS8%q/ f`JM3w@[M$ ]哿_N){&]ܜcPcM:<9&w[#MI8"޽!ޯw dz1*'Vb[]3Y9{`a*=d d OAā9߂-bF7w^xRA$nT9)Ox?a Z-م6y٦?r7[)U-hԵtAIEFq.6c/RD̻z#VKgS3ޕc= W}0|@'}[c rbs0.8QOޜS[ׯУuP&DI95I8St4 $5a-{r!ij'm9a1'Zi h?oCrSqP[1h}mm+=82e re;;5S7{`[dcn~`h$^kHjӸTKo%6+2uxwwn9պr9G9u8]<q:zl9 uEELk ":zGt.ӏ~"ׯ=f6&|OU6Jݚ jÍ7VXei $Z̷dsX"ߺ$m]%YDY6v=Be]~0H=ւq4N0"UJF$بk*A7JO.Պӵcݟ~l%JIoݦ`osqMJW63˄Emn:q8 ) elPRhH̕Mo']sPzri4X|W7T龆dkj,n^)D$4qNak.vL)ΧD/Udm.\hY=s9y)1.=~MC/׎\ g 87@P_7rm:[S6"B]S)\XF-κˑE6ʦ{e-h\TE]geeG6"dv5&Ogc;S\CZ0SZW}5u];V`~_8g_TV݅%Qvaj`,:yřL bBKp]OUF5n8~OՐ&>ޡP5u7IDaW{ʺoXhX"x5ދ6fRv(%8FvB&&8ݻ6kbх%IhAVDi&vV1S6[Z'T"AXDxmXo8]SF 2iK'`La  }^73ukgMzS]#ǯ 3S'zطꉿ@ ^ޏ5 ԃ/يϟup1VW̢d;?_w{}n>i+ݾͬBk7C7w:e¹ڱcnv (g^9?/aHGOpp3-bO\j=89ʺJu({Uk k0 ZXCxqן߆r+&jクQ7=}:1^WpF9y#[BD<ژXuowJmmEFa}Xр} #hB $ښgb3|8C/??7 !9M1-}Ȉ%/}v "EF'4WJÙ# 8S{kEHk/kO+vu]_/KGxm_͇](K,p&^'|\;箿9:c>sgB#sPhR>4Ҥ}u%aйr"u ͺr߿{Օt׾ܜg{=ǨsxAJGǵ)AZi[O7?Og/ N44L'QU*hPC[䂾=6X@a1÷ 1`_bcL|$׊]Mح "\rwߋwpACOiJAo>w7,x*d$t ΀>7TqZttekZf۵$`֜cR9Tf8] hb:l<Rٻ;`I܊|_iȔ$pwּKN$H6:MwukqA>XYH L`$#eFrՖ°uL㬥_8y^9;~_{,a1;Ѝʌ>J 2j'|8ƒ=Vى%`:3N!/қ5;lNmI +nn2Ҭ˓Ą2/ |U(̩sh2*zt>l3o}xsx$.)LƸ3\M8Lu?hhӀky^gq׵83`hoL9`d%"eLx ;a܋cu[ƫ[x'EAJwF;/.wf9YރF<9w.Vj"S|Զ|Gg %/"Uitg utC-= 'EΒ:Z\͡y9ʰPL(XW4Ɗ!gPC7.Lcp* wxȆFje[?)#0]eq0.A*M S?wEȾPJc_>}þ&;b{2N~/v}a߁kx0P%T YpbǪ A1WaJ"=ׅͥ+a;DI1aH njg,T1#ca+r 9/Rpр qga^6!CtyF;bB[';8;\w^`4pZE5uz1ZHg!| o8>0؄6.si>8Ķq]L0^)nb4~r-jϙ3but$#tz|I:ƕ۔1)"JFn'uԵ3 MP[jF/`el*ouh%3rBxp䤉N@xØ䞶7H>e<Wƍ=r >(ORC #Ȅxm֗,EEX\amʒ@6>k$4'eM7l/S1?GkDq:ðQ*g'R ǪAa=*1f#u/;(DWYh We&ıXgRֱp(5k5VYՖ|w0\ނ˯}R㻞 g=@Ӟ=x1 v*O1j^,IqJV4tG=s3ddj(Px^ϡՄ󞶚Dsu=E6sKeFr) %.2\z&|}h稝fN}( M /HINj͗RCCmʏsBN?QdGQPyjd#iG`2ֵcEna[㵫OK oo`EB'kg鱨=2bA*9=:M *MC[eH7л9D.KK;Ao3{# 1ژ]MU唹ݬswvHٵ -ݸ 爑,ݳSWY-I6KF)դl]t`O ڰ&CЇjК꺎4֒Do:m05c:BQZWF Mvhvkþc&;n/Wq/ q:_OeO~l}&ל |JK$ra|^,O(#hڙÊP|ιO^x\ئC88MāĸWCl(2K,ܻZBuBQuM)Dr OPR԰2KKexJ&z+)E6dt9LXNblGAVv<^ ) .5IS'@c<Ĝxy @J*A?̑hn9jm20o p|sC-_q_#s-mxA_ }S^0|X΍chќgDr1D]8y6!ɖy"{Mh䞖-_=R 3xS ~u#_x|:+1c_inǮw4,{Ϲg{BQ-=I5h[2ni !Hn'9dDlQu=>2Z W,8p;~Gb{;Z؂x$-Dx~e*ZռUgɣP(.!ΖxzLsG#q0ż_IK@,r@˶- #XwIM`/ު]Z}?߄s8@!݊ݺŞ+{U`jube9Qe+gWw/d4̱Fպ 4蹞=~ p,8}v|1 <8忆a+"ԄbDO0ҁA<Y/ ֝˗eP@96QyJ|?.-K7ych]{G bbQ꤆WW)189:u.u|fcޓ ;!;@=ܸ|W/z~>򃚜ԯroz&6؃3-N(NWq8(9Qo)%5RԪhiM94`@[p̜:'! 7o.y6evTn7Ƃq sXq2&G[v#Ux\} ও;EXm,e Yϕst/١@Aj3DwוզeyAx KvXRWw[?>9>IGǗdJ[΃-8̀BWa1BiS,ʃ8qrrgWߎٟK@hdnwjKݜ]L6#sZ.0['j iN}uF%T/ p9mW#ȋB^<9,'4xVw4mc߅RrRB2Ǭl332,ߴbp>Ŀxok[pu0b1z1EM,||Z*{ѻE/˂fR6/~&vHAhoX40BY8+$T铽hmC]7-_!5YĒ^w̷ϔTf;aeC-梴Z.~}/ i9z5.͓W2%61D[ES-DqdNliYeKXʖ"vuVZG\PW$\'}뻿#wpt}%S^e`F m5aBWK>(lut 3ޭHwGsh/~ Y|>I =c#u &PpYCn`ilwr~XhnEF9뮛+u(RmfI 1:P- I `Ishs;tA63 !t;/5󘼌835ĸ,1djS)sFfxr 'h)oG1؎gzWn?{`}?m7LSOqɨ'ZD3jutgyؗN=>Zq4VAɓ,50☉Rdw"1 +0_ ~N,q7deo;@jcBo`JoC*^t 8(D_h +.'Ɔ͒Q d <y#:8;au c,!q`&g S^qO\S.E3,(wwhۭd{80!b{ Hoj}۷mW~ɫYԮkf.9I˽܆V{Ri4&i犰D.]\mg_+UQ*¨POJZmw~c{\/wnlNs}tw:| D7QsيS6Rg8Pu,& W;+/Ƚ/6鳜%\dEiЄo_>fb-cLUӤ4'G9@*1rtp 9Tt~,I g ;& ?PWkޑ a+~v9&~Ύ2n:%۔˱: ǒ ze9D[#AEDQj r21,۫x3U7u]T/xB2tx\ЊޙCfy& Ƽn g_=Rw۲ Sza #ym#s>tet[IRlSk̤ Dӽ)g5)S)6-?CXMX;7#AuwoYv^1ed $KE׳d€ٌ8RbEo ޑQ@j ݡRY$65='TzOr\3@U75: S~sHLT."PZZ#~TEVʳo2dKL!FlK 2dD1ׂw)II{ 6@uf4"Xl(Eƪ:EŚm/U2G)U4o? ^5.{ sL?O! ȀȶF%X/) w|3ҵ+xF=||'~}HֲQ 8֥FLBgV!8ZURJUkJH:Ww2Jm+Rqm ncPheJ5`]YGf~jժgwi48#U!V{*>۹fՠ JꞜ &WqBM{(2pخ!xmo@1i'd2n'0e߰z;$PJ[?Ǘ82v"s\NCyoEzKZt;pp!/C}o7z181)J s` m)h, %9M& ~AS6 0)DWbƓhSIŘ+\Jd#u"I+'PX3JToI4XG^ @ )h ~YWLD~Ko eX_i Jv{L`1/nEo}6ڢ7i nwUew;'I*.+_6 -sY(5)t@+WuكЬDqY[I)4 j#F"}$9Fc7 lֆc&<n(Bɒ9* S;#0'=SB*$Vx>[d {܇u𞌰䳂sd{j)G< tl /ԍ7V9mxzWp&}˸^ӥG@َ6ۡeThtQF'J+IS^]^4JW.CӸoېgc榤 s 0, dƵH0Pt0e8Lj!I;5cYA/l9LjP:4+ܼYY= ['HF~h,˿*s~ ck) Pp?: 'ke}A+oA^"dX1_O-`Gk!ogg^ cۻ.$aYCC.j )b|}' $?βZ.z7oDzYBox%o+i#S[ <_XVmԉ]f&d/nIjL_iBw;ˈmWM']B"'SN?t Owq,CU#|q&wA zL-p -c/3:|ë)/:Wn sFH ))k% in\ulQl5(QCtlJ{^˾nMRǖT<<_? NSRndxx%Mv#uH`4玉ʨDvcEUY c[FhqNsk ڴ߻ +Jv <} 8U MS+ ((C,g?zvWF>EZI6,Aл{}q< fYHzRk`g5 >]7$㚂Ƌ"+<~]#Gnj^:Uܕ1`n;3ȧK߶o\'LݛEBu@%rRf☳4]]׮J"9*AI!Cih%f|h;'mRd{* -mi$ҵ'r oNmŏq_\RJr(0@*tB9JK@x(yFDr-.W.hzF\J1c$.XEU ѿ+щ5umܛ\ `y]P7狌Bк(zMʳH*TRS<@o#F A6%^F'?w,=SX= 0D8c>Kimwy G91vYKSWr<;,-&7>W> `oa[_nA F w,~ 9NBDQuHٛSGC^&aϱ$(T B p%aF#;|}F@9%iI( i,D b~wnGW*4tNDpmHݹS R ٴv6R3e4\tuYZ.pTx@(2P 0:gV #'%|ޏl"٧\{ /~qzvzE=#uX`"ߐG;A]64j0g&XxcDK4cBqqBۙbHt4a#fUVc3$,G'A#T8g:/#Un͜uAz%]42 ݧ4\mKɝMu-&";5EḨ%44HN[& &h-YMaژ$}U%WIدۅӺu1HdT#^J&E>6i`gCf j@sچw) )׵0 ҺtfE ffQ{@oC~Z?P.UaD,b)\\ipY%rX/!ʦvژJ<.4# Rs"݊ )TG4 p+Vތ(EysuyR;w:Ôv (Qydv}} ۲>N\V}.6Ŀ>VIUo@g+Ղ z9?e6:Ք^^F7R滜Ǟeva`3%_K J>tA{)Ɠ5WC"zʺ !d8$WyW.[<@bee+w!@YmrF`aA.,3mI"=3;5H(x7갎ĬjdJq~Lrҕ 5z>ct52B " ()]T]Ebnlpgy e)mF܃?g?XwwvʁCeMJ$3&770uzah)Hǐjkb=Popϡpt?Ej+z!MWԞA}WH2 _P bL,k4t e 1'%EGpH$,THx6z55lT{a@1֖[Ȯ-2T%xAJu}cHXgc ZWJ ,~a“s c&fu :t;"`y8sV0_1q'H)56a:袚8tEVcHZ/$3HI$n=r'?U{SG4 ! L-˸QUepk L:-0 )iyA-UaFDEr?[j A-fa+(#=^mgΓk 262MHHo~ g#b{ÒRJDS+c:;gjE fv!䩰4x6~+(Z' Fzp_D ` >rbSXツe+ O=a2 ۡ+endd$fd7db 1g1Q qѻ*zczʂ0@&D~eM@"\.u@g]DzV,)@*:˞H5WG^ȸZgJ8*@KiFA } (M9sҫuܑ8S7J:@%bdF0';K{ݟJ@>MOF= 7J1MN?u`aPβ |(UAtB`^h3liwbU$kD ;@}Oả%/|b~+`#ZP"@8 o:3zْP Xj" /w&>sшE ; *!CEH,T:>ԎW`+0ܗR XbvR&IZ[fKьH@FI`^EDJwv]Bck{.&&IADž(缄k, h;;Naf!1O@H'w\XVy}̼slw 1-kϹZ\U>0ޖnDILꩨI3 =lX(~85qg׀<֜8kaVp繀 ?ȡK"(I(}40I候(XkXgq|pxNDC&\mweI͓,630F)1.shiSQQ&F OɈY8ӕٸB4ZhFk~E.- קˠN؎Fv]PDy 6(UC鬕`J* ;Ì0{ π̖Du_V d;Ta~'}685㷒oyKG7b2[A\'w "FF|-F~w@4j?-&~Y3f8$DEC"΢Pw6SĹӵ-ZF%R KQ었k%Oj\ x~'P_ɜ0P}`<"ʹM3g[zËf+?<2R,)aQHT nE"/WY"얔t"ЩY"mpuLXnl{>8 { + Y5}ɼ<5;愃ӫOamu, Ծ!0y3ZraFDz0,"\0T%H]E9-%qƾМbf5Ɓa,ڥ y([@Hu.ArzɨܘjL:J852. b;F|Hbrq<ީ-wF SbE4QA4q%$!VUt RlsJaˏ|5w"$38}M_vsIoBzK}a\a+Z3E#FyO-g8DyN>`s4[Ϡ}QKz>R3ѝi%@=O9b~&^KV9(ʕJN|n5}E⠍KcOduTh%F0dV\%2y3, FTݍiЎ0Myr{]qWYv@װoE~+=sD2dR?h =3Πۀy}uƶ}\<3BDvHe D^n_О$6i w=F=Zp#9MKdNIY^ο3,1sP:/o39:0ʃ%m|a]PZSvŠ,b'K$綈shf/ϯ*`E3^(+DqjeܢS*:Yh/=图c;דߋ'W!biQ?ׯCo0aXҩoY!8Ò*מsFHxOۄBK@~;% x^ Gg*L&+@$(K!pXF/ Rm_"~3ww٘ȣ9 '-\86oK_,8xTB(IT"5]ڡaIlkʇŘUgg@W7'^j %r3 u?ae,/ztΙ>뵧 Vt[+R^c| 3}5 ~{~o.y1zX}g~ }'+y!qYVǂVY9C*;ӏB{UxAgiyq(0lMUT$%!3,-n|q$$z%$YK%'Ȑ$Q)< ,Ϊc (D>zj6~\Jڸ~q/pZ,}L Ubzr?2u7A`5\GՠT=8Cj7VruvPJ7_׺%Jkz=&3@ѓ >xS$y(;GC $IQPaґU wzFLaCf\+KUm@HjYBmIM@\yg.+]x]e\kͭlBQ=-&v$/m~UD?S?D?a,#0#c Bg ɠ ĸYzL'0+T⥞ " G78~2Bhj򱚲tBO58Έ\\roބֹW~ L 8\gw{3ڵQR.P.@j|A/S={gW]C*q9ݙD6 w*c_PbUu|^tEYm3w(Y7`=OP}e}7{tɜ<~g??p$ad\ER@+}Ի.Rp?ǿ4D\#53OtWwֻaT }nN%~ ?[ͬ{ Wnhcu7qD˓$5@hԊm9VG*9 ٭H38.J6` @OֵrJ0 TY$`5d*b:*rf&6,CTApSiBK8:Ɇ< 9Ov7'Fr!sg~ ׮,C;bۏI+e)2G:ptg ABYpx^}RC/ K8KHt[Zx9 T~O/^ ;R%~N`2FFT(+Ub8zI Vv{Һ$Xr9 0р6tV#l ! ^* z C흜]cy&3А\ʛV -%PTё[#cČ.ENb0v`%b/}8{Sc Xtyc޼Ly߸ۂ-._[3tqqM35R+HU1vSt=xmuSUYW6\G$~S[P.=iPo?,[68r?W+=a=&SR&S{PG! _h9cH6פUu1 yH5$WD"DsFZc@]¿sXeGR<7"3NYl4T< 5^+P,ZJ3TX1 H6H”zr`Z{ 叡nA|Gp쳃f&r2i2i&~; ({v{w VA߿UfQbd[{ (Dh{maSWunRk#`'L'n@Y(5{CR`x7dF^b= !}?Y(gI4$5Jx\1mrYkRhCǻ2:zf%*;t Hp2觷$akw8jfLHb vVޟ itމ"es_969ڳ ]QʢX0\S%&Ned% o  `\g@YsmM}CZN]d# *\}! {,J Bo$y:yp Ut5kw ڌXw~IOXAC 5CɬcPC, !'3ᘡ|B Xl2Y3cG~wY2#0C& ; O }{)sYyyJANъAcI=QǓi\HZ)է۝y.= |Gwȅ)IX5 X E^MG$FnTDNGi.fyRv־jD>ZjNy M<- D|*S0:G˯$pwh3b摌<\S[12.@PRqZeLu\wZ} @͊sM!zro7&tlgD['4n߉%m/ayϢ? ;,?Y)RWIW$өz]bK v,r-).D Ã^Dp%bmϐۘP1mć,!ߌZ9'*W>),wM&P U~Bْq1S$aSyľXEdtRLȉcæ7DW~̛=0NuR:AoOC߄;,90lΤ; N (8&Kf҇ ?84?'3wpktţ2P~!. )9zvecFC&-!fI``cy ~D鯳#E*R34YC4DT/PH6+]VvcY鿵rrNg.NvPk= %{xi V+ryia ВoPk 6כr2BL1В|-W<) vR(̪7 Q}<*CnKt 7"([z8 90K\5\ؿ5򷳱Mvu% IOvpr@ :5\%0M֙|= Vd^/@%CVYd*~ӜJ }|h.뤖5 <U17VH VA=crv>9daa,KÍk _w|k@K?/=Iۑ'!Y* 3&U~LócB4mo{( /$4LirpLe91yAgҴc}Ϭ7oq?+;J 4\2 cI(`}1RQYڻE[Mɰ.~!4yJٵ @1B)*pJMQtDuB8w|.`]Ն'IZ0@ʢ>9_Xms`9$߱nWҧ~O= <.fw}G>`kO >)l(~7lh?>Ql)4R"SYhl%l2}+WtN6lc]SH1b^B\tHמ&|mZְsxgʥNʵjL|A!_1:u$1&ԮhGFVmfϲɅAա{ɮd|?.(9 xS!&1r.Hn ~>sq5#;!ͬ+grԑ)~ ]9,yg7V.Np"f!tm`Tn 粽Klsr`~~)ZlR;Y;s薫;$ 2:JD~x5eTh0ԅ&i! PNW(v?uhf@5T׆-|,<0?:$Tz Fg,t T?4ʠo22TY4*pm9O m/#]ҕD16ȿ{3xgy\\z7&=8Quh# 5)B;To1؆]nRZܷs|IruclR J䫮:q/mo~j 4(ʅ2\SdÔ'ITQ FK$lb;<D#F*"\%eܺ>~OL&&w-\trxÏ_>yp㋿QɽB7W@:hQ[d&|v}_VraL"\rl$ 'ޏ.bm9 mm(4ƻfU": ̳ʇ ߏN'Gڴ@֐Z4`TN?O \qۣ;en{nn֣;Ҋ05邢{R7 O8**h|}*7&aMp%$cpoÖ{_[p/݂S|bs__OQP&4EI)7OUaǬ6B CdcEaSe^ˌ RWY]c0%AfRb$k^ 18eDF XQ^ 0 F.J|o/wOm?$@dA7@-݉IR] }3T*G }忏| om#^`L~K~!Y3m: V $ĖPVO_5jX6*O?ݫP߰kqZN4:TPOTX]*\ڊ]̌`icn rxpI[,>O^^.=i=GI_|ԗXob#<;K3 e2Τu!}H4b ګXTa3-a!qۘRcrWV)ePN"#%lkj޻N?EUd$KV6(ܰK yP@ IF7_ƫ󥾌bB$#_?wD%]vOghƷ6jpVEQzˉߓ[)N;R\?c3%ݓC7GBWl7,{z+jVϷ8R&WWt-3x}1,ڰ5à1{8^$1١-H2%D֒zO&n/hw[eHbS?:շ`?S_%5 sh36E ؛e-v#tyVBDR 3ET7s֩ԞFH>Z^e*&z6grF«䍇mNl66sKm]&S[fvcCTUszݝ'm\ 0E.ӂWJ\f02ۋ(?^X53ݴ= Z.c`""h.TeE-6"߇G3\n1ge6Wt*U~ 58"KA_>>|Nd \ XXD\1rUtչ!ْb ܙ^ߚ\;ޏB.lpoD:y3zzhƧh*s'FRSJ*R6%(o˼hv‚D:WlN^~.'6{%WblRZ:h@(;pu"愳y)wg?_5C舦?j"Xē%O v8oV^SHW5{;_Dz,IJ1 68A)i;%s΀$Nk nld nTB-WM6̭#&eFZ.mj™XX3$:W=.ȐLEİ_tZCh8G=''seUaO'>TSeg7.FK=*ו5h1GDu"f\W{zg\y(ߵY_Tp eѸu{Jrq4RF[7(ce7 = B'%7%6i',Un6ߦECAf[Ifxܢ~s4eW6?;[Xnq|Csl6Fo;UP+߮qmÁ:K˲2 7*/HxWdB6X)޽b|R )ܕ8iܳ/u%Ϗw k]G_L~ygq1 o7gN{Ųĕj<28PBbBiVi/ ߃dg#!-揉]"$ Eݾ=pX=mxA-eaah1GHWyJB!#<.2^:RGlQ[gF)CmJ4.RA=*G9U;gS8Rd_ /g ^{'`f9E) 짂v/+,;@PaVSŔ0j,w(‹XQE.2!囵&&ǒgCa Evj=)C^6eOvw8OXwX訪O7]lδl~kǺٛK:doՇE7["hu"w| Fdnf/JPL<㚅}#چ*hAnWl|#5T9m\,%[HWխyYmV%ުA`<tA@ۧ>(t섳6Vb wONmf} y~S'~!#o\^Qo#ld1J7NM0NZEhD|3'^uqm#Ÿ=I"&@Tz}2yRg+x-/XO5XRq2*56f&JNjV,wb&4k66CTE_@]@ȉU\B\lz[gUo]̲M99c/G(3Se)N қ:Jr6LݦwƼVcĽj[Av|~ ޽ Vkkⅸ?Pz5h<##Z7H1`15ˌrބb;269 !!%MY ~6h誕,QH"6SkilNEXN >C^3'c섓X~FO.@0,񇕖y.\NOsUF8:ƿYvdâݕbzm1L v*>&mwxW~ؿ\)/(KW]qڬ9GlXmAC[ 4`='F}&d_G I}G܁c&zI|L~&$.f5`Ʋs @y,l]8g{RVm`32μ!ם@1I_cS6u(؃?6Z='$]윅=A$Vvn 6yGRD9[gۢV$9һ 09 x T8 zpXi3Dj[$†w4@@m YBZ Bo9Ck I@-dh v9`0 Ec%ts4ru'Ud-s\# i)?emSNƺ;_,sQ8ьǻ{rʆhUo:X2SddȪ4" #=.{vb҅m `P'H| ҵw^E ƒl”M wcJ$0 7c[-"VX6)Ҍ05zd@LܻBUB ]9'lLTuҚ SB= %ѸϲEQfp*:Qi_*C|0,?~v:/AAM*9In@Dajx;yQRwEݰM\xurn|zb"89Z>AlcƢbhL~,G>()nc 4^ >Bx}gaw6WBX)6ä>0XnU^Pr; XLkw7)"t q<"ÍhXM9ׂ;+LYq 0&8y}Ԯjь#AQ}m`z䇿_K?^^O^uU 5d8XܼZL'KZ &s jM]@Fs6;W^q3#s6_R7駗O*R,+3 2L;K90i"컞x칏`{t0G^z }_hҧsܢs?(nz8Lwp9b Q口R3t\;t@lBȠAh]"ѕ "$CB02WqJs,HvjLD <ס2VN$0W_@SºBIlgr :tu4υ(sR(=sr3iHuyHiT}Hdm?=_7KO"=Z5|}w+E#zp5KIy_/+?T$0fh \o%C?`J2מjgv|kUBio[%;Gez$y,Zϱ[ w2 043Aq/H.@@ J,kAk A!LgHhE(1-N<|–*6*ftOS>vKu6b fo}_n?!y#onŸxwZ\0Y,a2W"4y \& ˆƐfz W ;,}&uaјl6$G,6N,ޛ^05L:I&g-bdD]'`LG!!JW2gPfC,U1 [k̼”7^w=+X.9VUm`fc8o4G p; >/QLN9dTZpxiîbVQ[$O45Љ+ \\ 8P9)e@g yF&ʟxgWv>t.(sg-כMxnxmI"^6uM (2_S!~"k30s$Qe 5 Qe\Mp*!2ƾ~WawYes@ ;O2oϾ/b[?Gq,W7.5$s:n?}xW'*CK^ Wj!F9eͰuk[ ,8M<,?y2X,ﭱO|I[Ih [5VQbnaf\oEQZXǡ㉺TiU+4ʢ 3+UˬX*=̆:b* 0& x3?c9?Ӟ1{LxX^/ =eʹ4zC)a X}ES[Ϗsn=vyO 2 6Ύwm"})D(/Q%xNCC1zBu LéagX`Pm{q"؂*}<+9\u*)h\ّӺ\gmk 1xm uBP_k(' [˂8sW~Oz%h5`{џs?7n7,cCmb1-_HDUOP_)GՏ՟c}YV}E#8+=ϱJpoBFO'83}e|@oJޡ4(N.Z@VdMiumq>QuBt? Ε,v'w/EXة :-k|VG9 '/vy#/<}~fHc7ܓp Ya$ qo~AiuU\=z?gaFK!\W?s?=xݏXt/H |lK߄mɺ C_ˊ˗Nq?3Xo3$8T{ ?$qۡfd,BBX⼉$x)e]]@!2ew9Ѱ~B)I)EऔS9"IG:% )=%dHj9t-v:ȉ .qѭ4PR=%% )!#)yDGbӄ{'L[ ,ʺߩPR%(r <|ǿ䝸'_pڭQ'J*/GoğX9otݪn/2Nq)*__Yܽ8Y<= P_}E,x-b (%=R3!$ CIv-vLQB˓j04yEZق 4\tLwcv=L+%'=AkHD/ٓ[1g(Rrt"å2$f%[A-;gipW-ƹ,(-Ռ"eyd3ҌE|OU*>vJOЈ)e <re6)q&eD(k(&-z8X&44UPdLTg<0ykw|Gooj_2Gц(zDiF޶9⠞0v:\+zth>nk8! vMI{)\=axn%UCޠ{[D%syXE^!' .b %K<iAV4}N`qۛs@0p[jjS"abBH <.3U 6Wv2׀'Ͽ鍀‡M(DEQu'*s1 hVq*Ss'r)uHgL.*߾ڳI,#e)q}Y`chKD\Đ Kd_6MAZz"HFqө2X٦W1k[)Ǡ#J?3-.J /qQ uN'9Ovv$=+Pe:] R ܙSU.:j/ q5R.B08O'm-&l>٢b#BG:l^2q2ip s,Q̣E!fZjd8>a]D^PbOLQ0;ܢK0DUjp TT%XBի1l|L Q[ux{u%  dh)ovUəbHfz/fόmFWcm Wg@RNlOƷ엽Zm.^( ̆< 5] ZN|8{ˀ֥}" &WIб B#}!HG v{¨Be٢}liaW0 ϒ;cIG4is9OD:1e*aķebm}WLE6 [y%Z˒]GI3Ҳ8LC}YJ~4(B0ky\G*ɉi9M m,떞X .ZC:nbbd'y^) H=KBRY$rO(ߧ*`'\:PN RQeQb}-ܱ<"S V ?#^{G!zu*^@A$˾8L&%#V-+<˳rJtb{$q*Em&m]}b oٕzV\Λ(-,9aD{N*Q rzR}_zgBBCڱvxAT~$Wxd'N9ssS6ĔZPL-! |fN j8DtPq.#c該Q)1&$D#-gSL4N1{v`cUK%ɝ6s\uWHg ~!?M3dt'%@ѯE3|x=@Y4 7,aۨk "gSfhod ((D50M$dد$*M\ 5>Ovj54Ԋ0|!ZH:"R B#mTkom(j4BibZ]fq"}CEj# Yoi|F8NRJ&vet^NypĔ XۊҕNlYps ۯ8O μCmxm%*/Mtj_/~Ż}+r km̞uQttٚz E_i֫9ǺX7`xg hӔwrVnr?_*xҹ21C[m tNvh\m%1* XLJǧ(Z@RBl{PMV0Œկ* zW9T(/qRr#:hMLs=6ٷϼp?c/NV'_t.v]~mF I4p uƖ!^& I0޳#F>@9?RѤwF.`-lהI>^>A071(xG6ַo1L:[1ȑtPSOb[zpSVvN)y9GAˉD"9њgl54P-%Ɔ);g߱plǪrj|*kRKTw%%@wcйx?dc(Ν\wM.$&6-3}t|gީ<\ ('x+ۜK %kJk"򄑚IX]푔!;ϭO_\Vx2뻾+ :~|Lo</~h2-7ef䃝js2pV?X7hDx(+r2:8T9aQncۅu'pOyR;:.)lā:1Zz71Lo1֠> @C2Rߗ QyF$I/I8oSXLl)㩋m, '~BIǽjxՄ/oA/27Ŀؕ+W6K_ pl0Fg.εGpXWyyҡx{N[oVNNr A=aHBpꁉL^m" f'P7C Z?rvYz2{kÐ'æ}=<D)$n6~{/=olU|=Il6C+t./3y>Lɍ1ρaKpYSybwB+' 0wڴdy&bnC2&f(Obq. LaYfr-b jH@(YArB߉1G"E0W :m{ 9@6Zq6Km}qNnS?NMGrakj1}~14畧ݷĉ(wsIqOp>h=% j8q"ZtۖjxVO|}?$3!po/yo >>X~7; O^YqvТl|V[3ʜ&eT) s)QY]ˤ*D ]acM# ̡da#RB U`t4qI86xEL 5qc'H\s@ha"a7rn0䉰׌L ueKc*lH]뙃X$FPlRhM± 3CܶNWĮ`>{'}~+o{k* eՃۨϓvҖ$(8=sJ'xUyf+/܀[ Yc g`Gp>O4 G3"s0 VxHwA,@8 Ed>P{A58ݾ"4:jrk+Q& U1njg OR6k[{ j!^ZM/jRw=UWܼ t<4tk9r5'TSV]"$'ԚEDiY5z9z2$ M,x|X>.͕ey%p@Ҥ*%1(v\V).˭zpZۀ*zl՘y@XE؏5KOcڡ.%9 ]$8v#e;lEɮս1ϰ;NW|?ٌ׾>8p`UD@kWl^G^5-G\w=^~قx}'r=㺷Z0I卻' `&"O]eCR4緒VmhfDKl&bY lS=kVc@&0`x1ߕrQ {[g<"V;~C,_ \AN0}tO@pv2c/k|jEX&TU!&$| y>2$ +*pn*>ŧ׏}ߏs>s2i!yϟ+Wۧ#{\6l,7%,kxx2bƄ"N1‡g[M"yeE\]19TT+uZ`FN6w'}s*l whP7`z?.aNYI-;gz 86=4 ETư3`Iowb;QC+ȵ9~>nMPl?xBR ]3^8k쭌?=}x5U8>>w]-\JwRn$|LvŜ[K||$e=s&œ_siy;(枋9l U zK8s?CO_a j:6 Y? t)ss{.mEkOgn_w( o[mnWۈ(8 E0XB~ܫMb.=0\sAn3'5oƭx!{k˼_s 2^_sDɤ.E>vBy) a9ۺckj(`\͛R=_q A?Cb^BPz\_{`l"6{Bpcl5YFqǂhbMh("L!-o(#`΃~^2@ P(@ P(@ P(@ P(@V~E @phȂ8A)۫Md!O{V@fj9,tۉX;qσ\Ӆ}c<ȁBp-NK)_]H?߅>шXqj)D3"/ǎݳ}t-vV1ȴx<1uTo'b[h zj9dΘO Ks-*](7E$݉^T@h""NBFh+3M Z mX4eIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/gnome0000644000000000000000000000013212150404312024364 xustar000000000000000030 mtime=1369573578.030175278 30 atime=1369573578.250175283 30 ctime=1369573578.030175278 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/gnome/0000755000000000000000000000000012150404312023507 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/gnome/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212117356351026522 xustar000000000000000030 mtime=1363008745.551246156 30 atime=1369573545.554174537 30 ctime=1369573578.026175278 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/gnome/Makefile.in0000664000175000017500000002556312117356351026113 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = SparkleShare/Linux/Pixmaps/icons/gnome DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ gnome_theme = gnome gnome_themedir = /usr/share/icons/$(gnome_theme) gnome_theme_icons = apps,sparkleshare-symbolic.svg install_icon_exec = $(top_srcdir)/build/icon-theme-installer \ -t "$(gnome_theme)" \ -s "$(srcdir)" \ -d "x$(DESTDIR)" \ -m "$(mkinstalldirs)" \ -x "$(INSTALL_DATA)" MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(wildcard *.png *.svg) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Linux/Pixmaps/icons/gnome/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Linux/Pixmaps/icons/gnome/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-hook install-data-local: @-$(install_icon_exec) -i -b "$(gnome_themedir)" $(gnome_theme_icons) uninstall-hook: @-$(install_icon_exec) -u -b "$(gnome_themedir)" $(gnome_theme_icons) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/gnome/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212037107461026506 xustar000000000000000030 mtime=1350340401.070029879 30 atime=1369573545.550174537 30 ctime=1369573578.026175278 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/gnome/Makefile.am0000664000175000017500000000104212037107461026061 0ustar00hbonshbons00000000000000gnome_theme = gnome gnome_themedir = /usr/share/icons/$(gnome_theme) gnome_theme_icons = apps,sparkleshare-symbolic.svg install_icon_exec = $(top_srcdir)/build/icon-theme-installer \ -t "$(gnome_theme)" \ -s "$(srcdir)" \ -d "x$(DESTDIR)" \ -m "$(mkinstalldirs)" \ -x "$(INSTALL_DATA)" install-data-local: @-$(install_icon_exec) -i -b "$(gnome_themedir)" $(gnome_theme_icons) uninstall-hook: @-$(install_icon_exec) -u -b "$(gnome_themedir)" $(gnome_theme_icons) MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(wildcard *.png *.svg) sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/gnome/PaxHeaders.8596/sparkleshare-symbolic.svg0000644000000000000000000000013212037107461031476 xustar000000000000000030 mtime=1350340401.070029879 30 atime=1369573467.962172766 30 ctime=1369573578.030175278 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/gnome/sparkleshare-symbolic.svg0000664000175000017500000000434512037107461031062 0ustar00hbonshbons00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/sparkleshare-22.png0000644000000000000000000000013212013752533026760 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573469.094172792 30 ctime=1369573577.882175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/sparkleshare-22.png0000775000175000017500000000163612013752533026347 0ustar00hbonshbons00000000000000PNG  IHDRĴl;eIDAT8˵]hUlv7ُ|)DZ֘-Vт~<" "| xQ }KB1M,vivd4{|$$ýsfp+B*L.7]AG%b9_jŊs瓮#` 5,,\,yXwc-4vpmɱ#NՓ괤v kWJCu)ʉa.b&6ր :^ʉI9 4Ǚ{h{0 ӓu (&}{_W? @C\M:JW:R(T4sfY Yۡy01Q$$s6X9 ն vRB|XB&րUl.U*H<ҫ)]O1~'ѹ0$@ْ!rz֙)֡"u֑REr_ұMLĵѹk:ꀷ%K)?VJ.`~{F@ Mb"?NQAH%\ނ_Lh.|;߾fs{3l"d>廠 4]fbT@-?が bIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/process-syncing-down-24.png0000644000000000000000000000013212037107461030371 xustar000000000000000030 mtime=1350340401.070029879 30 atime=1369573469.194172794 30 ctime=1369573577.870175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-24.png0000664000175000017500000000140012037107461027742 0ustar00hbonshbons00000000000000PNG  IHDRw=IDATHǵIkQݳd=$!QQhDċ ' E z0zQMI` 411d2lNO\b _W_UUe%a[ts"EEEjӊ=] ,IGWy`fr9;_eoi\azƪ7PldmgRjV }CĪɦ LWe.F8&x tLjOX)sBRhm@`'tfUNCClgU@ Zt&ûgk2xsBRIďuhصk*0}B8F򌡦1HTѩA'yS`KEL@`AU{ю|HN1tE$kIUED!rD<2óoƲҿ-?JɝWOIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/document-added-12.png0000644000000000000000000000013212037107461027150 xustar000000000000000030 mtime=1350340401.070029879 30 atime=1369573474.958172925 30 ctime=1369573577.858175273 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/document-added-12.png0000775000175000017500000000030112037107461026523 0ustar00hbonshbons00000000000000PNG  IHDR [A*PLTEB~BI>{=yim!@WYYadNchItRNSak8IDAT[c``qd)`*A:2x=Q}w g9A*O|ڳg]LdDD<ODH G=۳g+bz o>kc>5d %"p)?8[;a7׺&,"@XlƹHF*"DOFs*@GˌbD#2߿- [=JIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/ubuntu-mono-dark0000644000000000000000000000013212150404311026465 xustar000000000000000030 mtime=1369573577.938175276 30 atime=1369573578.250175283 30 ctime=1369573577.938175276 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/0000755000000000000000000000000012150404311025610 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212117356351030624 xustar000000000000000030 mtime=1363008745.591246156 30 atime=1369573545.446174534 30 ctime=1369573577.930175275 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile.in0000664000175000017500000002606012117356351030206 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dark_theme = ubuntu-mono-dark dark_themedir = /usr/share/icons/$(dark_theme) dark_theme_icons = \ status,process-syncing-idle-24.png \ status,process-syncing-up-24.png \ status,process-syncing-down-24.png \ status,process-syncing-24.png \ status,process-syncing-error-24.png install_icon_exec = $(top_srcdir)/build/icon-theme-installer \ -t "$(dark_theme)" \ -s "$(srcdir)" \ -d "x$(DESTDIR)" \ -m "$(mkinstalldirs)" \ -x "$(INSTALL_DATA)" MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(wildcard *.png *.svg) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-hook install-data-local: @-$(install_icon_exec) -i -b "$(dark_themedir)" $(dark_theme_icons) uninstall-hook: @-$(install_icon_exec) -u -b "$(dark_themedir)" $(dark_theme_icons) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/PaxHeaders.8596/process-syncing0000644000000000000000000000013112025046277031630 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.502172756 30 ctime=1369573577.934175275 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-error-24.png0000664000175000017500000000110012025046277033334 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDAT8JPEϼƖI@' E ~R݊-b"vaCw]X$̓wgK2~iY pY]/cIJQ(O}'e/J2j>8C[gs.ߠu_of|$\\( %I>$h4t5O+'Ѳ#`xޘ{w QZGbIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/PaxHeaders.8596/process-syncing0000644000000000000000000000013112025046277031630 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.490172755 30 ctime=1369573577.930175275 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-24.png0000664000175000017500000000113312025046277032213 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDAT8MJPq 6b8rnb))c "5ǁM發{Ϲgf!Nt8`0||$`d hm)Ϛ(NAux՛pnt3]7Mlj<#*}PUvzTA2 (Eqbp]a^pZF$KUӗag+^Kɓ,t^Szs. s>sQCI6ob3ǏIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/PaxHeaders.8596/process-syncing0000644000000000000000000000013112025046277031630 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.454172755 30 ctime=1369573577.938175276 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-idle-24.png0000664000175000017500000000130712025046277033131 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^Z|IDAT81kQ\ce@b璼஠8v{;!!DJg)X ogca2 E0!yB79̓{޽$Q+`rt;Q# \O^v`Cz\}Jfu-GuZckyHU}gIMOt7H91/ b{MJt:lsꭰIN]BDWX?dk9u x,!=* s'p>yHg[wczt ~wcp|ןnV3n.RfZɼo'si|W 4osyH+\^xcx_ ֜bIg c5sIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/PaxHeaders.8596/process-syncing0000644000000000000000000000013112025046277031630 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.478172755 30 ctime=1369573577.934175275 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-down-24.png0000664000175000017500000000112712025046277033163 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^Z IDAT8JAY"EOk7KKUZ2)Al-4jcxg03*I' (Ad&i `$TZ!@9m-}}yopr}@ש8~nW;==pz̵ͨ6xB7`.VІ1*Ep ;\IENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212024723511030604 xustar000000000000000030 mtime=1347659593.667446302 30 atime=1369573545.442174534 30 ctime=1369573577.926175275 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile.am0000664000175000017500000000127512024723511030167 0ustar00hbonshbons00000000000000dark_theme = ubuntu-mono-dark dark_themedir = /usr/share/icons/$(dark_theme) dark_theme_icons = \ status,process-syncing-idle-24.png \ status,process-syncing-up-24.png \ status,process-syncing-down-24.png \ status,process-syncing-24.png \ status,process-syncing-error-24.png install_icon_exec = $(top_srcdir)/build/icon-theme-installer \ -t "$(dark_theme)" \ -s "$(srcdir)" \ -d "x$(DESTDIR)" \ -m "$(mkinstalldirs)" \ -x "$(INSTALL_DATA)" install-data-local: @-$(install_icon_exec) -i -b "$(dark_themedir)" $(dark_theme_icons) uninstall-hook: @-$(install_icon_exec) -u -b "$(dark_themedir)" $(dark_theme_icons) MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(wildcard *.png *.svg) sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/PaxHeaders.8596/process-syncing0000644000000000000000000000013112025046277031630 xustar000000000000000029 mtime=1347701951.51015739 30 atime=1369573467.466172754 30 ctime=1369573577.938175276 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/process-syncing-up-24.png0000664000175000017500000000113512025046277032637 0ustar00hbonshbons00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDAT8=JQ"f,t0h\[Xgb'n%2 "X8α`Hfy{3I<[B'qbge# t8 Nk0I;P̩Is9|-n'=_Sę"۫Aa;z .o}N赀U*AnE4`v hg! ~9q$o<@7T hONPIvSɎهҒc4{d?IENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/process-syncing-up-48.png0000644000000000000000000000013212117357047030062 xustar000000000000000030 mtime=1363009063.571253412 30 atime=1369573469.254172796 30 ctime=1369573577.878175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/process-syncing-up-48.png0000664000175000017500000000370712117357047027447 0ustar00hbonshbons00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^Z|IDAThMl$GzؘݰE bd  Gž!!!.7$8BH-(| !!8h Uz^/lvmd3xqڞM5UU_ェW-ʽ v 0,yt^~e 5]lx΋;c،yoZ}ʕKK/GŧD.󣁖;B0=M vEPlqX:/}9}zPre&C#r >};W [|>F|΂Mp1$bpi=^^(p qI"=ǟn@rOQzGPfx$ޥ?mM(OV"vAg~^aREz7əIN,0oQ\86ݛ@ycOmDZ3ںLVYƯrl#dl&g)O|wGP@JSE S0'K#등&n7& -wp3B&G414=9*IFus,_c ~p2_Z⧀p3]RGk|3CM8Q4.D$^u66ks!'wA GS`|pUVp(Th%(!EȗpJ璾K| 4Šac{#*"6|˯S=.+e>}G DU*ExU ւw=߿< gv&wpb:"d^lQ76D d_߿MD ;&$B= 9L x1b- IZwMUԻ&#ٍ 0b0ß'M wK24{k@ :qpW 3dp/c'M!>zŤQ8꽌ڒUo׸C/EK*S$^ ?cĤfbv{Rho9m;WjMW߯fiV^#^$0VY0%H^϶[M5}CZe:sm&rnSR:cm%[mT*ilt6PC:3q?iP++J+ e[Fo'WVef+wVw9\G/J;FxwgP+"߇YLak3ZVܵ1jˠ޻}[yx|;G8B :<@jZkMs/(/N{*/?]Է{.|Z59lYTxg [Wj8OCn'\=8EV^ لD]~~?)<`KKk@Xh x60iQ!||p_OgNzJ7(SktsĜe:;B|"^:,:a8&-C{;u_]:)67ޭ[ȕR)z1VĽEva] bݻ~?bQ*+QtnhsKY۪ebE0P\vģ.kFLLI4.槿ٷݽp-`UYB!kw@fl: 6KXzb3Tĭ!6,h&ө~˗Mz_2MH@Igv6oFr% W3Mߌ+/OYDIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/document-deleted-12.png0000644000000000000000000000013212013752533027515 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573475.010172927 30 ctime=1369573577.862175273 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/document-deleted-12.png0000775000175000017500000000016512013752533027100 0ustar00hbonshbons00000000000000PNG  IHDR &ފ~L]l,XD^S/~ @3dR㧁IENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/list-point-16.png0000644000000000000000000000013212013752533026401 xustar000000000000000030 mtime=1345312091.294247931 30 atime=1369573475.074172928 30 ctime=1369573577.866175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/list-point-16.png0000775000175000017500000000107712013752533025767 0ustar00hbonshbons00000000000000PNG  IHDRaIDATxڥKSqǽ8eM.("bGE2/4Ř%5:dLU2\vV+6r"%Q83ط Cy$D?RUQ'ҎR5œx=&~_ac aHIFf ^@#>Mu1át>J)Hq/ |В_>UA7sR1Sg2`G*aTK㙯F #86vqf<pF84lP4B36O hC+eu€*ӹ(ww;ւ/E *>z@CǠtD+r![pKF9r[>t(GMD[`luVq@k84ь1WC?tPko#*'\FcE#:*zeC1&M?7r@3/7qxIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/process-syncing-down-48.png0000644000000000000000000000013212117357047030405 xustar000000000000000030 mtime=1363009063.571253412 30 atime=1369573469.266172796 30 ctime=1369573577.874175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/process-syncing-down-48.png0000664000175000017500000000374412117357047027773 0ustar00hbonshbons00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDATh]hgZ,BCDkؔ` !ICHR(!}CCkKiiPڒ~PBB\9A!ܘVȪy׻jgӇY%G̹?s=#QUd87km̞_"| pwYV5j;3b}ˎevI&Q+W7gkcOn'r|SN%wt7\xg9 Ydֵ9BX_‘N\ߐ ~$Pv cUg^8;cJ^uwl|LRvp(IJv$¶m{l}ix77ԡ$#Nlv.k'&i5sڹd7`EYIENDB`sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/PaxHeaders.8596/process-syncing-48.png0000644000000000000000000000013212117357047027440 xustar000000000000000030 mtime=1363009063.571253412 30 atime=1369573469.282172796 30 ctime=1369573577.870175274 sparkleshare-1.1.0/SparkleShare/Linux/Pixmaps/icons/process-syncing-48.png0000664000175000017500000000404112117357047027015 0ustar00hbonshbons00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<#tEXtAuthorHylke Bons, Lapo Calamandrei3w7/tEXtDescriptionDerived from Jakub Steiner's design~%#RtEXtCopyrightCC Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/^ZIDATh]lWg#vl)DM |*@ T$^!$@U(T!!!S -.Eچ1Nu{x3sav3KH̽?{7\hv^!<=wAӿ_^ Yx#|LtocTJfbwد9f>-zt Z*d7ܳqZOOQ)$U >26?#O~Jxq!h{O4ʶ,p8):8q|}ulݿѯ&VPeG J_mY`Oz yI\\,6fg|hs{gQ*t7H7}sV Xu,b Z]G=B 1ַP^⭃0{\I&P| h&A5x?Ի_y.?@\ .B\M5!j#I=bΟ-> *`GH - {?tS@.WjDtV@)㎻6.eD: 6 2 |FN*oj}ۀ 3u#{ X}GHe @KJS؅fo{U!9r$ {div6#<Z'&A ^yeƁɁHn7+ C˗VC^|ʁ:g彠V&Ja~X`}#b&,pn4#!dXc6y$0r0J*6F$؝:a-,H 9 yii;jRQ\=wO$4Mn^V~rƕ*2xHݙxC[Zɶ&QHLo^׸^ml^0dR"`6rrCdi-<${ JT/J R9ts~PA&r3ivCJN&:d`/믭Ƴ@ "!mp&痏jqFRsmeViuJ#,+xq-~ K^`-\Pb_yU$ xqOBx#,K@5swHx " TTiV_3UU u I3)IENDB`sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/Makefile.am0000644000000000000000000000013012037107461022643 xustar000000000000000030 mtime=1350340401.070029879 29 atime=1369573462.44217264 29 ctime=1369573577.71417527 sparkleshare-1.1.0/SparkleShare/Linux/Makefile.am0000664000175000017500000000206512037107461022226 0ustar00hbonshbons00000000000000SUBDIRS = Pixmaps ASSEMBLY = SparkleShare TARGET = exe LINK = $(REF_SPARKLESHARE) $(NOTIFY_SHARP_LIBS) $(WEBKIT_SHARP_LIBS) if HAVE_APP_INDICATOR BUILD_DEFINES="-define:HAVE_APP_INDICATOR" endif SOURCES = \ ../Program.cs \ ../SparkleAboutController.cs \ ../SparkleBubblesController.cs \ ../SparkleControllerBase.cs \ ../SparkleEventLogController.cs \ ../SparkleExtensions.cs \ ../SparkleInvite.cs \ ../SparkleKeys.cs \ ../SparklePlugin.cs \ ../SparkleSetupController.cs \ ../SparkleStatusIconController.cs \ SparkleAbout.cs \ SparkleBubbles.cs \ SparkleController.cs \ SparkleEventLog.cs \ SparkleSetup.cs \ SparkleSetupWindow.cs \ SparkleSpinner.cs \ SparkleStatusIcon.cs \ SparkleUI.cs \ SparkleUIHelpers.cs include $(top_srcdir)/build/build.mk bin_SCRIPTS = sparkleshare Applicationsdir = $(datadir)/applications dist_Applications_DATA = sparkleshare.desktop \ sparkleshare-invite-opener.desktop install-data-hook: test -f $(datadir)/applications/defaults.list && \ test -z $(DESTDIR) && update-desktop-database $(datadir)/applications || : sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleSpinner.cs0000644000000000000000000000013212037107461024100 xustar000000000000000030 mtime=1350340401.070029879 30 atime=1369573462.922172651 30 ctime=1369573577.754175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleSpinner.cs0000775000175000017500000000463012037107461023464 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System.Timers; using Gtk; namespace SparkleShare { // This is a close implementation of GtkSpinner public class SparkleSpinner : Image { private Timer timer; public SparkleSpinner (int size) : base () { int current_frame = 0; Gdk.Pixbuf spinner_gallery = SparkleUIHelpers.GetIcon ("process-working", size); int frames_in_width = spinner_gallery.Width / size; int frames_in_height = spinner_gallery.Height / size; int frame_count = (frames_in_width * frames_in_height) - 1; Gdk.Pixbuf [] frames = new Gdk.Pixbuf [frame_count]; int i = 0; for (int y = 0; y < frames_in_height; y++) { for (int x = 0; x < frames_in_width; x++) { if (!(y == 0 && x == 0)) { frames [i] = new Gdk.Pixbuf (spinner_gallery, x * size, y * size, size, size); i++; } } } timer = new Timer () { Interval = 600 / frame_count }; timer.Elapsed += delegate { if (current_frame < frame_count - 1) current_frame++; else current_frame = 0; Application.Invoke (delegate { Pixbuf = frames [current_frame]; }); }; } public void Start () { timer.Start (); } public void Stop () { timer.Stop (); } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/sparkleshare.in0000644000000000000000000000013212150404106023615 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 30 ctime=1369573577.718175271 sparkleshare-1.1.0/SparkleShare/Linux/sparkleshare.in0000775000175000017500000000320212150404106023173 0ustar00hbonshbons00000000000000#!/usr/bin/env bash if [[ $UID -eq 0 ]]; then echo "SparkleShare can't be run as root. Things would go utterly wrong." exit 1 fi if [ "$XDG_RUNTIME_DIR" ]; then pidfile=${XDG_RUNTIME_DIR}/sparkleshare.pid else pidfile=~/.sparkleshare-$(hostname)-${USER}.pid fi start() { if [ -e "${pidfile}" ]; then sparklepid=`cat ${pidfile}` if [ -n "`ps -p ${sparklepid} | grep ${sparklepid}`" ]; then echo "SparkleShare is already running." exit 0 else echo "Stale SparkleShare PID file found, starting a new instance..." rm -f $pidfile fi fi echo -n "Starting SparkleShare... " if [ -n "${SSH_AGENT_PID}" -o -n "${SSH_AUTH_SOCK}" ] ; then mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe" $2 & else ssh-agent mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe" $2 & fi ( umask 066; echo $! > ${pidfile} ) echo "Done." } stop() { if [ -e "${pidfile}" ]; then sparklepid=`cat ${pidfile}` if [ -n "`ps -p ${sparklepid} | grep ${sparklepid}`" ]; then echo -n "Stopping SparkleShare... " kill ${sparklepid} rm -f ${pidfile} echo "Done." else echo "SparkleShare is not running, removing stale PID file..." rm -f ${pidfile} fi else echo "SparkleShare is not running." fi } case $1 in start|--start) start ;; stop|--stop) stop ;; restart|--restart) stop start ;; open|--open) invite=`date -u +%N` open=`echo $2 | sed s/sparkleshare:\/\/addProject//` curl --insecure --output ~/SparkleShare/$invite.xml $open ;; *) mono "@expanded_libdir@/@PACKAGE@/SparkleShare.exe" --help ;; esac sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleAbout.cs0000644000000000000000000000013212150404106023524 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 30 ctime=1369573577.742175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleAbout.cs0000775000175000017500000001456112150404106023114 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com) // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see (http://www.gnu.org/licenses/). using System; using System.Diagnostics; using Gtk; using Mono.Unix; namespace SparkleShare { public class SparkleAbout : Window { public SparkleAboutController Controller = new SparkleAboutController (); private Label updates; public SparkleAbout () : base ("") { DefaultSize = new Gdk.Size (600, 260); Resizable = false; BorderWidth = 0; IconName = "folder-sparkleshare"; WindowPosition = WindowPosition.Center; Title = "About SparkleShare"; AppPaintable = true; string image_path = new string [] { SparkleUI.AssetsPath, "pixmaps", "about.png" }.Combine (); Realize (); Gdk.Pixbuf buf = new Gdk.Pixbuf (image_path); Gdk.Pixmap map, map2; buf.RenderPixmapAndMask (out map, out map2, 255); GdkWindow.SetBackPixmap (map, false); CreateAbout (); DeleteEvent += delegate (object o, DeleteEventArgs args) { Controller.WindowClosed (); args.RetVal = true; }; KeyPressEvent += delegate (object o, KeyPressEventArgs args) { if (args.Event.Key == Gdk.Key.Escape || (args.Event.State == Gdk.ModifierType.ControlMask && args.Event.Key == Gdk.Key.w)) { Controller.WindowClosed (); } }; Controller.HideWindowEvent += delegate { Application.Invoke (delegate { HideAll (); }); }; Controller.ShowWindowEvent += delegate { Application.Invoke (delegate { ShowAll (); Present (); }); }; Controller.UpdateLabelEvent += delegate (string text) { Application.Invoke (delegate { this.updates.Markup = String.Format ("{0}", text); this.updates.ShowAll (); }); }; } private void CreateAbout () { Label version = new Label () { Markup = string.Format ("version {0}", Controller.RunningVersion), Xalign = 0, Xpad = 300 }; this.updates = new Label () { Markup = "Checking for updates...", Xalign = 0, Xpad = 300 }; Label copyright = new Label () { Markup = "" + "Copyright © 2010–" + DateTime.Now.Year + " " + "Hylke Bons and others." + "", Xalign = 0, Xpad = 300 }; Label license = new Label () { LineWrap = true, LineWrapMode = Pango.WrapMode.Word, Markup = "" + "SparkleShare is Open Source software. You are free to use, modify, " + "and redistribute it under the GNU General Public License version 3 or later." + "", WidthRequest = 330, Wrap = true, Xalign = 0, Xpad = 300, }; VBox layout_vertical = new VBox (false, 0) { BorderWidth = 0, HeightRequest = 260, WidthRequest = 640 }; HBox links_layout = new HBox (false, 6); SparkleLink website_link = new SparkleLink ("Website", Controller.WebsiteLinkAddress); SparkleLink credits_link = new SparkleLink ("Credits", Controller.CreditsLinkAddress); SparkleLink report_problem_link = new SparkleLink ("Report a problem", Controller.ReportProblemLinkAddress); SparkleLink debug_log_link = new SparkleLink ("Debug log", Controller.DebugLogLinkAddress); links_layout.PackStart (new Label (""), false, false, 143); links_layout.PackStart (website_link, false, false, 9); links_layout.PackStart (credits_link, false, false, 9); links_layout.PackStart (report_problem_link, false, false, 9); links_layout.PackStart (debug_log_link, false, false, 9); layout_vertical.PackStart (new Label (""), false, false, 42); layout_vertical.PackStart (version, false, false, 0); layout_vertical.PackStart (this.updates, false, false, 0); layout_vertical.PackStart (copyright, false, false, 9); layout_vertical.PackStart (license, false, false, 0); layout_vertical.PackStart (links_layout, false, false, 12); Add (layout_vertical); } } public class SparkleLink : EventBox { public SparkleLink (string text, string url) { VisibleWindow = false; Label label = new Label () { Markup = "" + text + "" }; EnterNotifyEvent += delegate { GdkWindow.Cursor = new Gdk.Cursor (Gdk.CursorType.Hand1); }; LeaveNotifyEvent += delegate { GdkWindow.Cursor = new Gdk.Cursor (Gdk.CursorType.Arrow); }; ButtonPressEvent += delegate { Program.Controller.OpenWebsite (url); }; Add (label); } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleStatusIcon.cs0000644000000000000000000000013212117360553024560 xustar000000000000000030 mtime=1363009899.475272485 30 atime=1369573462.930172651 30 ctime=1369573577.758175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleStatusIcon.cs0000664000175000017500000002513012117360553024137 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using Gtk; #if HAVE_APP_INDICATOR using AppIndicator; #endif namespace SparkleShare { public class SparkleStatusIcon { public SparkleStatusIconController Controller = new SparkleStatusIconController (); private Menu menu; private MenuItem recent_events_item; private MenuItem quit_item; private MenuItem state_item; #if HAVE_APP_INDICATOR private ApplicationIndicator indicator; #else private StatusIcon status_icon; #endif public SparkleStatusIcon () { #if HAVE_APP_INDICATOR this.indicator = new ApplicationIndicator ("sparkleshare", "sparkleshare", Category.ApplicationStatus); this.indicator.IconName = "process-syncing-idle"; this.indicator.Status = Status.Active; #else this.status_icon = new StatusIcon (); this.status_icon.IconName = "sparkleshare"; this.status_icon.Activate += ShowMenu; // Primary mouse button click this.status_icon.PopupMenu += ShowMenu; // Secondary mouse button click #endif CreateMenu (); Controller.UpdateIconEvent += delegate (IconState state) { Application.Invoke (delegate { switch (state) { case IconState.Idle: { #if HAVE_APP_INDICATOR this.indicator.IconName = "process-syncing-idle"; #else this.status_icon.IconName = "sparkleshare"; #endif break; } case IconState.SyncingUp: { #if HAVE_APP_INDICATOR this.indicator.IconName = "process-syncing-up"; #else this.status_icon.IconName = "process-syncing-up"; #endif break; } case IconState.SyncingDown: { #if HAVE_APP_INDICATOR this.indicator.IconName = "process-syncing-down"; #else this.status_icon.IconName = "process-syncing-down"; #endif break; } case IconState.Syncing: { #if HAVE_APP_INDICATOR this.indicator.IconName = "process-syncing"; #else this.status_icon.IconName = "process-syncing"; #endif break; } case IconState.Error: { #if HAVE_APP_INDICATOR this.indicator.IconName = "process-syncing-error"; #else this.status_icon.IconName = "process-syncing-error"; #endif break; } } #if HAVE_APP_INDICATOR // Force update of the status icon this.indicator.Status = Status.Attention; this.indicator.Status = Status.Active; #endif }); }; Controller.UpdateStatusItemEvent += delegate (string state_text) { Application.Invoke (delegate { (this.state_item.Child as Label).Text = state_text; this.state_item.ShowAll (); }); }; Controller.UpdateQuitItemEvent += delegate (bool item_enabled) { Application.Invoke (delegate { this.quit_item.Sensitive = item_enabled; this.quit_item.ShowAll (); }); }; Controller.UpdateMenuEvent += delegate (IconState state) { Application.Invoke (delegate { CreateMenu (); }); }; } public void CreateMenu () { this.menu = new Menu (); this.state_item = new MenuItem (Controller.StateText) { Sensitive = false }; ImageMenuItem folder_item = new SparkleMenuItem ("SparkleShare"); folder_item.Image = new Image (SparkleUIHelpers.GetIcon ("sparkleshare", 16)); this.menu.Add (this.state_item); this.menu.Add (new SeparatorMenuItem ()); this.menu.Add (folder_item); if (Program.Controller.Folders.Count > 0) { int i = 0; foreach (string folder_name in Controller.Folders) { ImageMenuItem item = new SparkleMenuItem (folder_name); Gdk.Pixbuf folder_icon; if (!string.IsNullOrEmpty (Controller.FolderErrors [i])) { folder_icon = IconTheme.Default.LoadIcon ("dialog-warning", 16, IconLookupFlags.GenericFallback); item.Submenu = new Menu (); MenuItem error_item = new MenuItem (Controller.FolderErrors [i]) { Sensitive = false }; MenuItem try_again_item = new MenuItem ("Try Again"); try_again_item.Activated += Controller.TryAgainDelegate (folder_name); (item.Submenu as Menu).Add (error_item); (item.Submenu as Menu).Add (new SeparatorMenuItem ()); (item.Submenu as Menu).Add (try_again_item); } else { folder_icon = IconTheme.Default.LoadIcon ("folder", 16, IconLookupFlags.GenericFallback); item.Activated += Controller.OpenFolderDelegate (folder_name); } (item.Child as Label).UseUnderline = false; item.Image = new Image (folder_icon); this.menu.Add (item); i++; } } this.recent_events_item = new MenuItem ("Recent Changes…"); this.recent_events_item.Sensitive = Controller.RecentEventsItemEnabled; this.quit_item = new MenuItem ("Quit") { Sensitive = Controller.QuitItemEnabled }; MenuItem add_item = new MenuItem ("Add Hosted Project…"); MenuItem notify_item; if (Program.Controller.NotificationsEnabled) notify_item = new MenuItem ("Turn Notifications Off"); else notify_item = new MenuItem ("Turn Notifications On"); notify_item.Activated += delegate { Program.Controller.ToggleNotifications (); Application.Invoke (delegate { if (Program.Controller.NotificationsEnabled) (notify_item.Child as Label).Text = "Turn Notifications Off"; else (notify_item.Child as Label).Text = "Turn Notifications On"; }); }; MenuItem link_code_item = new MenuItem ("Client ID"); if (Controller.LinkCodeItemEnabled) { link_code_item.Submenu = new Menu (); string link_code = Program.Controller.CurrentUser.PublicKey.Substring (0, 20) + "..."; MenuItem code_item = new MenuItem (link_code) { Sensitive = false }; MenuItem copy_item = new MenuItem ("Copy to Clipboard"); copy_item.Activated += delegate { Controller.CopyToClipboardClicked (); }; (link_code_item.Submenu as Menu).Add (code_item); (link_code_item.Submenu as Menu).Add (new SeparatorMenuItem ()); (link_code_item.Submenu as Menu).Add (copy_item); } MenuItem about_item = new MenuItem ("About SparkleShare"); about_item.Activated += delegate { Controller.AboutClicked (); }; add_item.Activated += delegate { Controller.AddHostedProjectClicked (); }; this.recent_events_item.Activated += delegate { Controller.RecentEventsClicked (); }; this.quit_item.Activated += delegate { Controller.QuitClicked (); }; folder_item.Submenu = new Menu (); (folder_item.Submenu as Menu).Add (this.recent_events_item); (folder_item.Submenu as Menu).Add (add_item); (folder_item.Submenu as Menu).Add (new SeparatorMenuItem ()); (folder_item.Submenu as Menu).Add (notify_item); (folder_item.Submenu as Menu).Add (new SeparatorMenuItem ()); (folder_item.Submenu as Menu).Add (link_code_item); (folder_item.Submenu as Menu).Add (new SeparatorMenuItem ()); (folder_item.Submenu as Menu).Add (about_item); this.menu.Add (new SeparatorMenuItem ()); this.menu.Add (this.quit_item); this.menu.ShowAll (); #if HAVE_APP_INDICATOR this.indicator.Menu = this.menu; #endif } #if !HAVE_APP_INDICATOR // Makes the menu visible private void ShowMenu (object o, EventArgs args) { this.menu.Popup (null, null, SetPosition, 0, Global.CurrentEventTime); } // Makes sure the menu pops up in the right position private void SetPosition (Menu menu, out int x, out int y, out bool push_in) { StatusIcon.PositionMenu (menu, out x, out y, out push_in, this.status_icon.Handle); } #endif } public class SparkleMenuItem : ImageMenuItem { public SparkleMenuItem (string text) : base (text) { SetProperty ("always-show-image", new GLib.Value (true)); } } } sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/sparkleshare.desktop0000644000000000000000000000013112013771110024657 xustar000000000000000030 mtime=1345319496.258416894 30 atime=1369573475.530172938 29 ctime=1369573577.71017527 sparkleshare-1.1.0/SparkleShare/Linux/sparkleshare.desktop0000775000175000017500000000023712013771110024243 0ustar00hbonshbons00000000000000[Desktop Entry] Type=Application Name=SparkleShare Exec=sparkleshare start Icon=sparkleshare Terminal=false X-GNOME-Autostart-enabled=true Categories=Network; sparkleshare-1.1.0/SparkleShare/Linux/PaxHeaders.8596/SparkleEventLog.cs0000644000000000000000000000013212150404106024175 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 30 ctime=1369573577.750175271 sparkleshare-1.1.0/SparkleShare/Linux/SparkleEventLog.cs0000775000175000017500000002712012150404106023560 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.Threading; using Gtk; using Mono.Unix; using WebKit; using IO = System.IO; namespace SparkleShare { public class SparkleEventLog : Window { public SparkleEventLogController Controller = new SparkleEventLogController (); private Label size_label; private Label history_label; private HBox layout_horizontal; private ComboBox combo_box; private HBox combo_box_wrapper; private EventBox content_wrapper; private ScrolledWindow scrolled_window; private WebView web_view; private SparkleSpinner spinner; public SparkleEventLog () : base ("") { SetSizeRequest (480, (int) (Gdk.Screen.Default.Height * 0.8)); int x = (int) (Gdk.Screen.Default.Width * 0.61); int y = (int) (Gdk.Screen.Default.Height * 0.5 - (HeightRequest * 0.5)); Move (x, y); Resizable = true; BorderWidth = 0; Title = "Recent Changes"; IconName = "folder-sparkleshare"; DeleteEvent += delegate (object o, DeleteEventArgs args) { Controller.WindowClosed (); args.RetVal = true; }; KeyPressEvent += delegate (object o, KeyPressEventArgs args) { if (args.Event.Key == Gdk.Key.Escape || (args.Event.State == Gdk.ModifierType.ControlMask && args.Event.Key == Gdk.Key.w)) { Controller.WindowClosed (); } }; this.size_label = new Label () { Markup = "Size: …", Xalign = 0 }; this.history_label = new Label () { Markup = "History: …", Xalign = 0 }; HBox layout_sizes = new HBox (false, 12); layout_sizes.Add (this.size_label); layout_sizes.Add (this.history_label); VBox layout_vertical = new VBox (false, 0); this.spinner = new SparkleSpinner (22); this.content_wrapper = new EventBox (); this.scrolled_window = new ScrolledWindow (); Gdk.Color white = new Gdk.Color(); Gdk.Color.Parse ("white", ref white); this.content_wrapper.ModifyBg (StateType.Normal, white); this.web_view = new WebView () { Editable = false }; this.web_view.NavigationRequested += WebViewNavigationRequested; this.scrolled_window.Add (this.web_view); this.content_wrapper.Add (this.spinner); this.spinner.Start (); this.layout_horizontal = new HBox (true, 0); this.layout_horizontal.PackStart (layout_sizes, true, true, 12); layout_vertical.PackStart (this.layout_horizontal, false, false, 0); layout_vertical.PackStart (this.content_wrapper, true, true, 0); Add (layout_vertical); Controller.HideWindowEvent += delegate { Application.Invoke (delegate { HideAll (); if (this.content_wrapper.Child != null) this.content_wrapper.Remove (this.content_wrapper.Child); }); }; Controller.ShowWindowEvent += delegate { Application.Invoke (delegate { ShowAll (); Present (); }); }; Controller.ShowSaveDialogEvent += delegate (string file_name, string target_folder_path) { Application.Invoke (delegate { FileChooserDialog dialog = new FileChooserDialog ("Restore from History", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Ok); dialog.CurrentName = file_name; dialog.SetCurrentFolder (target_folder_path); if (dialog.Run () == (int) ResponseType.Ok) Controller.SaveDialogCompleted (dialog.Filename); else Controller.SaveDialogCancelled (); dialog.Destroy (); }); }; Controller.UpdateChooserEvent += delegate (string [] folders) { Application.Invoke (delegate { UpdateChooser (folders); }); }; Controller.UpdateChooserEnablementEvent += delegate (bool enabled) { Application.Invoke (delegate { this.combo_box.Sensitive = enabled; }); }; Controller.UpdateContentEvent += delegate (string html) { Application.Invoke (delegate { UpdateContent (html); }); }; Controller.ContentLoadingEvent += delegate { Application.Invoke (delegate { if (this.content_wrapper.Child != null) this.content_wrapper.Remove (this.content_wrapper.Child); this.content_wrapper.Add (this.spinner); this.spinner.Start (); this.content_wrapper.ShowAll (); }); }; Controller.UpdateSizeInfoEvent += delegate (string size, string history_size) { Application.Invoke (delegate { this.size_label.Markup = "Size: " + size; this.history_label.Markup = "History: " + history_size; this.size_label.ShowAll (); this.history_label.ShowAll (); }); }; } private void WebViewNavigationRequested (object o, WebKit.NavigationRequestedArgs args) { Controller.LinkClicked (args.Request.Uri); // Don't follow HREFs (as this would cause a page refresh) if (!args.Request.Uri.Equals ("file:")) args.RetVal = 1; } public void UpdateChooser (string [] folders) { if (folders == null) folders = Controller.Folders; if (this.combo_box_wrapper != null && this.combo_box_wrapper.Parent != null) { this.layout_horizontal.Remove (this.combo_box_wrapper); this.combo_box_wrapper.Remove (this.combo_box); } this.combo_box_wrapper = new HBox (false, 0); this.combo_box = new ComboBox (); CellRendererText cell = new CellRendererText(); this.combo_box.PackStart (cell, false); this.combo_box.AddAttribute (cell, "text", 0); ListStore store = new ListStore (typeof (string)); store.AppendValues ("Summary"); store.AppendValues ("---"); this.combo_box.Model = store; this.combo_box.Active = 0; int row = 2; foreach (string folder in folders) { store.AppendValues (folder); if (folder.Equals (Controller.SelectedFolder)) this.combo_box.Active = row; row++; } this.combo_box.RowSeparatorFunc = delegate (TreeModel model, TreeIter iter) { string item = (string) this.combo_box.Model.GetValue (iter, 0); return (item == "---"); }; this.combo_box.Changed += delegate { TreeIter iter; this.combo_box.GetActiveIter (out iter); string selection = (string) this.combo_box.Model.GetValue (iter, 0); TreePath path = this.combo_box.Model.GetPath (iter); if (path.Indices [0] == 0) Controller.SelectedFolder = null; else Controller.SelectedFolder = selection; }; this.combo_box_wrapper.PackStart (new Label (" "), false, false, 9); this.combo_box_wrapper.PackStart (this.combo_box, true, true, 0); this.layout_horizontal.BorderWidth = 9; this.layout_horizontal.PackStart (this.combo_box_wrapper, true, true, 0); this.layout_horizontal.ShowAll (); } public void UpdateContent (string html) { string pixmaps_path = IO.Path.Combine (SparkleUI.AssetsPath, "pixmaps"); string icons_path = new string [] {SparkleUI.AssetsPath, "icons", "hicolor", "12x12", "status"}.Combine (); html = html.Replace ("", (double) (Style.FontDescription.Size / 1024 + 3) + "px"); html = html.Replace ("", (Style.FontDescription.Size / 1024 + 3) + "px"); html = html.Replace ("", "#0085cf"); html = html.Replace ("", "#009ff8"); html = html.Replace ("", "\"" + Style.FontDescription.Family + "\""); html = html.Replace ("", SparkleUIHelpers.GdkColorToHex (Style.Foreground (StateType.Normal))); html = html.Replace ("", SparkleUIHelpers.GdkColorToHex (new TreeView ().Style.Base (StateType.Normal))); html = html.Replace ("", SparkleUIHelpers.GdkColorToHex (Style.Background (StateType.Normal))); html = html.Replace ("", SparkleUIHelpers.GdkColorToHex (Style.Foreground (StateType.Insensitive))); html = html.Replace ("", SparkleUIHelpers.GdkColorToHex (Style.Foreground (StateType.Insensitive))); html = html.Replace ("", "85%"); html = html.Replace ("", pixmaps_path); html = html.Replace ("", "file://" + IO.Path.Combine (icons_path, "document-added.png")); html = html.Replace ("", "file://" + IO.Path.Combine (icons_path, "document-edited.png")); html = html.Replace ("", "file://" + IO.Path.Combine (icons_path, "document-deleted.png")); html = html.Replace ("", "file://" + IO.Path.Combine (icons_path, "document-moved.png")); this.spinner.Stop (); this.web_view.NavigationRequested -= WebViewNavigationRequested; this.web_view.LoadHtmlString (html, "file://"); this.web_view.NavigationRequested += WebViewNavigationRequested; this.content_wrapper.Remove (this.content_wrapper.Child); this.content_wrapper.Add (this.scrolled_window); this.content_wrapper.ShowAll (); } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleEventLogController.cs0000644000000000000000000000013012117360550025147 xustar000000000000000030 mtime=1363009896.083272408 29 atime=1369573462.89017265 29 ctime=1369573577.73017527 sparkleshare-1.1.0/SparkleShare/SparkleEventLogController.cs0000775000175000017500000006071012117360550024536 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Threading; using SparkleLib; namespace SparkleShare { public class SparkleEventLogController { public event Action ShowWindowEvent = delegate { }; public event Action HideWindowEvent = delegate { }; public event Action ContentLoadingEvent = delegate { }; public event UpdateContentEventEventHandler UpdateContentEvent = delegate { }; public delegate void UpdateContentEventEventHandler (string html); public event UpdateChooserEventHandler UpdateChooserEvent = delegate { }; public delegate void UpdateChooserEventHandler (string [] folders); public event UpdateChooserEnablementEventHandler UpdateChooserEnablementEvent = delegate { }; public delegate void UpdateChooserEnablementEventHandler (bool enabled); public event UpdateSizeInfoEventHandler UpdateSizeInfoEvent = delegate { }; public delegate void UpdateSizeInfoEventHandler (string size, string history_size); public event ShowSaveDialogEventHandler ShowSaveDialogEvent = delegate { }; public delegate void ShowSaveDialogEventHandler (string file_name, string target_folder_path); private string selected_folder; private RevisionInfo restore_revision_info; private bool history_view_active; public bool WindowIsOpen { get; private set; } public string SelectedFolder { get { return this.selected_folder; } set { this.selected_folder = value; ContentLoadingEvent (); UpdateSizeInfoEvent ("…", "…"); new Thread (() => { SparkleDelay delay = new SparkleDelay (); string html = HTML; delay.Stop (); if (!string.IsNullOrEmpty (html)) UpdateContentEvent (html); UpdateSizeInfoEvent (Size, HistorySize); }).Start (); } } public string HTML { get { List change_sets = GetLog (this.selected_folder); string html = GetHTMLLog (change_sets); return html; } } public string [] Folders { get { return Program.Controller.Folders.ToArray (); } } public string Size { get { double size = 0; foreach (SparkleRepoBase repo in Program.Controller.Repositories) { if (this.selected_folder == null) { size += repo.Size; } else if (this.selected_folder.Equals (repo.Name)) { if (repo.Size == 0) return "???"; else return repo.Size.ToSize (); } } if (size == 0) return "???"; else return size.ToSize (); } } public string HistorySize { get { double size = 0; foreach (SparkleRepoBase repo in Program.Controller.Repositories) { if (this.selected_folder == null) { size += repo.HistorySize; } else if (this.selected_folder.Equals (repo.Name)) { if (repo.HistorySize == 0) return "???"; else return repo.HistorySize.ToSize (); } } if (size == 0) return "???"; else return size.ToSize (); } } public SparkleEventLogController () { Program.Controller.ShowEventLogWindowEvent += delegate { if (!WindowIsOpen) { ContentLoadingEvent (); UpdateSizeInfoEvent ("…", "…"); if (this.selected_folder == null) { new Thread (() => { SparkleDelay delay = new SparkleDelay (); string html = HTML; delay.Stop (); UpdateChooserEvent (Folders); UpdateChooserEnablementEvent (true); if (!string.IsNullOrEmpty (html)) UpdateContentEvent (html); UpdateSizeInfoEvent (Size, HistorySize); }).Start (); } } WindowIsOpen = true; ShowWindowEvent (); }; Program.Controller.OnIdle += delegate { if (this.history_view_active) return; ContentLoadingEvent (); UpdateSizeInfoEvent ("…", "…"); SparkleDelay delay = new SparkleDelay (); string html = HTML; delay.Stop (); if (!string.IsNullOrEmpty (html)) UpdateContentEvent (html); UpdateSizeInfoEvent (Size, HistorySize); }; Program.Controller.FolderListChanged += delegate { if (this.selected_folder != null && !Program.Controller.Folders.Contains (this.selected_folder)) this.selected_folder = null; UpdateChooserEvent (Folders); UpdateSizeInfoEvent (Size, HistorySize); }; } public void WindowClosed () { WindowIsOpen = false; HideWindowEvent (); this.selected_folder = null; } public void LinkClicked (string url) { if (url.StartsWith ("about:") || string.IsNullOrEmpty (url)) return; url = url.Replace ("%20", " "); if (url.StartsWith ("http")) { Program.Controller.OpenWebsite (url); } else if (url.StartsWith ("restore://") && this.restore_revision_info == null) { Regex regex = new Regex ("restore://(.+)/([a-f0-9]+)/(.+)/(.{3} [0-9]+ [0-9]+h[0-9]+)/(.+)"); Match match = regex.Match (url); if (match.Success) { string author_name = match.Groups [3].Value; string timestamp = match.Groups [4].Value; this.restore_revision_info = new RevisionInfo () { Folder = new SparkleFolder (match.Groups [1].Value), Revision = match.Groups [2].Value, FilePath = match.Groups [5].Value }; string file_name = Path.GetFileNameWithoutExtension (this.restore_revision_info.FilePath) + " (" + author_name + " " + timestamp + ")" + Path.GetExtension (this.restore_revision_info.FilePath); string target_folder_path = Path.Combine (this.restore_revision_info.Folder.FullPath, Path.GetDirectoryName (this.restore_revision_info.FilePath)); ShowSaveDialogEvent (file_name, target_folder_path); } } else if (url.StartsWith ("back://")) { this.history_view_active = false; SelectedFolder = this.selected_folder; // TODO: Return to the same position on the page UpdateChooserEnablementEvent (true); } else if (url.StartsWith ("history://")) { this.history_view_active = true; ContentLoadingEvent (); UpdateSizeInfoEvent ("…", "…"); UpdateChooserEnablementEvent (false); string folder = url.Replace ("history://", "").Split ("/".ToCharArray ()) [0]; string file_path = url.Replace ("history://" + folder + "/", ""); byte [] file_path_bytes = Encoding.Default.GetBytes (file_path); file_path = Encoding.UTF8.GetString (file_path_bytes); foreach (SparkleRepoBase repo in Program.Controller.Repositories) { if (!repo.Name.Equals (folder)) continue; new Thread (() => { SparkleDelay delay = new SparkleDelay (); List change_sets = repo.GetChangeSets (file_path); string html = GetHistoryHTMLLog (change_sets, file_path); delay.Stop (); if (!string.IsNullOrEmpty (html)) UpdateContentEvent (html); }).Start (); break; } } else { Program.Controller.OpenFile (url); } } public void SaveDialogCompleted (string target_file_path) { foreach (SparkleRepoBase repo in Program.Controller.Repositories) { if (repo.Name.Equals (this.restore_revision_info.Folder.Name)) { repo.RestoreFile (this.restore_revision_info.FilePath, this.restore_revision_info.Revision, target_file_path); break; } } this.restore_revision_info = null; Program.Controller.OpenFolder (Path.GetDirectoryName (target_file_path)); } public void SaveDialogCancelled () { this.restore_revision_info = null; } private List GetLog () { List list = new List (); foreach (SparkleRepoBase repo in Program.Controller.Repositories) { List change_sets = repo.ChangeSets; if (change_sets != null) list.AddRange (change_sets); else SparkleLogger.LogInfo ("Log", "Could not create log for " + repo.Name); } list.Sort ((x, y) => (x.Timestamp.CompareTo (y.Timestamp))); list.Reverse (); if (list.Count > 100) return list.GetRange (0, 100); else return list.GetRange (0, list.Count); } private List GetLog (string name) { if (name == null) return GetLog (); foreach (SparkleRepoBase repo in Program.Controller.Repositories) { if (repo.Name.Equals (name)) { List change_sets = repo.ChangeSets; if (change_sets != null) return change_sets; else break; } } return new List (); } public string GetHistoryHTMLLog (List change_sets, string file_path) { string html = "

" + "« Back  |  "; if (change_sets.Count > 1) html += "Revisions for “"; else html += "No revisions for “"; html += Path.GetFileName (file_path) + "”"; html += "
"; int count = 0; foreach (SparkleChangeSet change_set in change_sets) { count++; if (count == 1) continue; string change_set_avatar = Program.Controller.GetAvatar (change_set.User.Email, 24); if (change_set_avatar != null) change_set_avatar = "file://" + change_set_avatar.Replace ("\\", "/"); else change_set_avatar = "file:///user-icon-default.png"; html += "" + "" + "" + "" + "" + "" + ""; count++; } html += "
" + change_set.User.Name + "" + change_set.Timestamp.ToString ("d MMM yyyy", CultureInfo.InvariantCulture) + "" + change_set.Timestamp.ToString ("HH:mm") + "" + "Restore…" + "
"; html = Program.Controller.EventLogHTML.Replace ("", html); return html.Replace ("", "100000000"); } public string GetHTMLLog (List change_sets) { if (change_sets == null || change_sets.Count == 0) return Program.Controller.EventLogHTML.Replace ("", "
This project does not keep a history.
"); List activity_days = new List (); change_sets.Sort ((x, y) => (x.Timestamp.CompareTo (y.Timestamp))); change_sets.Reverse (); foreach (SparkleChangeSet change_set in change_sets) { bool change_set_inserted = false; foreach (ActivityDay stored_activity_day in activity_days) { if (stored_activity_day.Date.Year == change_set.Timestamp.Year && stored_activity_day.Date.Month == change_set.Timestamp.Month && stored_activity_day.Date.Day == change_set.Timestamp.Day) { stored_activity_day.Add (change_set); change_set_inserted = true; break; } } if (!change_set_inserted) { ActivityDay activity_day = new ActivityDay (change_set.Timestamp); activity_day.Add (change_set); activity_days.Add (activity_day); } } string event_log_html = Program.Controller.EventLogHTML; string day_entry_html = Program.Controller.DayEntryHTML; string event_entry_html = Program.Controller.EventEntryHTML; string event_log = ""; foreach (ActivityDay activity_day in activity_days) { string event_entries = ""; foreach (SparkleChangeSet change_set in activity_day) { string event_entry = "
"; foreach (SparkleChange change in change_set.Changes) { if (change.Type != SparkleChangeType.Moved) { event_entry += "
"; if (!change.IsFolder) { event_entry += "" + change.Timestamp.ToString ("HH:mm") + "  "; } else { event_entry += "" + change.Timestamp.ToString ("HH:mm") + "  "; } event_entry += FormatBreadCrumbs (change_set.Folder.FullPath, change.Path); event_entry += "
"; } else { event_entry += "
"; event_entry += "" + change.Timestamp.ToString ("HH:mm") +"  "; event_entry += FormatBreadCrumbs (change_set.Folder.FullPath, change.Path); event_entry += "
"; event_entry += "" + change.Timestamp.ToString ("HH:mm") +"  "; event_entry += FormatBreadCrumbs (change_set.Folder.FullPath, change.MovedToPath); event_entry += "
"; } } string change_set_avatar = Program.Controller.GetAvatar (change_set.User.Email, 48); if (change_set_avatar != null) change_set_avatar = "file://" + change_set_avatar.Replace ("\\", "/"); else change_set_avatar = "file:///user-icon-default.png"; event_entry += "
"; string timestamp = change_set.Timestamp.ToString ("H:mm"); if (!change_set.FirstTimestamp.Equals (new DateTime ()) && !change_set.Timestamp.ToString ("H:mm").Equals (change_set.FirstTimestamp.ToString ("H:mm"))) { timestamp = change_set.FirstTimestamp.ToString ("H:mm") + " – " + timestamp; } event_entries += event_entry_html.Replace ("", event_entry) .Replace ("", change_set.User.Name) .Replace ("", change_set.User.Email) .Replace ("", change_set_avatar) .Replace ("", change_set.RemoteUrl.ToString ()) .Replace ("", change_set.Revision); if (this.selected_folder == null) { event_entries = event_entries.Replace ("", " @ " + change_set.Folder.Name); event_entries = event_entries.Replace ("", change_set.Folder.FullPath); } } string day_entry = ""; DateTime today = DateTime.Now; DateTime yesterday = DateTime.Now.AddDays (-1); if (today.Day == activity_day.Date.Day && today.Month == activity_day.Date.Month && today.Year == activity_day.Date.Year) { day_entry = day_entry_html.Replace ("", "" + "Today" + ""); } else if (yesterday.Day == activity_day.Date.Day && yesterday.Month == activity_day.Date.Month && yesterday.Year == activity_day.Date.Year) { day_entry = day_entry_html.Replace ("", "" + "Yesterday" + ""); } else { if (activity_day.Date.Year != DateTime.Now.Year) { day_entry = day_entry_html.Replace ("", activity_day.Date.ToString ("dddd, MMMM d, yyyy", CultureInfo.InvariantCulture)); } else { day_entry = day_entry_html.Replace ("", activity_day.Date.ToString ("dddd, MMMM d", CultureInfo.InvariantCulture)); } } event_log += day_entry.Replace ("", event_entries); } int midnight = (int) (DateTime.Today.AddDays (1) - new DateTime (1970, 1, 1)).TotalSeconds; string html = event_log_html.Replace ("", event_log); html = html.Replace ("", midnight.ToString ()); return html; } private string FormatBreadCrumbs (string path_root, string path) { byte [] path_root_bytes = Encoding.Default.GetBytes (path_root); byte [] path_bytes = Encoding.Default.GetBytes (path); path_root = Encoding.UTF8.GetString (path_root_bytes); path = Encoding.UTF8.GetString (path_bytes); path_root = path_root.Replace ("/", Path.DirectorySeparatorChar.ToString ()); path = path.Replace ("/", Path.DirectorySeparatorChar.ToString ()); string new_path_root = path_root; string [] crumbs = path.Split (Path.DirectorySeparatorChar); string link = ""; bool previous_was_folder = false; int i = 0; foreach (string crumb in crumbs) { if (string.IsNullOrEmpty (crumb)) continue; string crumb_path = SafeCombine (new_path_root, crumb); if (Directory.Exists (crumb_path)) { link += "" + crumb + Path.DirectorySeparatorChar + ""; previous_was_folder = true; } else if (File.Exists (crumb_path)) { link += "" + crumb + ""; previous_was_folder = false; } else { if (i > 0 && !previous_was_folder) link += Path.DirectorySeparatorChar; link += crumb; previous_was_folder = false; } new_path_root = SafeCombine (new_path_root, crumb); i++; } return link; } private string SafeCombine (string path1, string path2) { string result = path1; if (!result.EndsWith (Path.DirectorySeparatorChar.ToString ())) result += Path.DirectorySeparatorChar; if (path2.StartsWith (Path.DirectorySeparatorChar.ToString ())) path2 = path2.Substring (1); return result + path2; } // All change sets that happened on a day private class ActivityDay : List { public DateTime Date; public ActivityDay (DateTime date_time) { Date = new DateTime (date_time.Year, date_time.Month, date_time.Day); } } private class RevisionInfo { public SparkleFolder Folder; public string FilePath; public string Revision; } private class SparkleDelay : Stopwatch { public SparkleDelay () : base () { Start (); } new public void Stop () { base.Stop (); if (ElapsedMilliseconds < 500) Thread.Sleep (500 - (int) ElapsedMilliseconds); } } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparkleControllerBase.cs0000644000000000000000000000013112150404106024270 xustar000000000000000030 mtime=1369573446.190172269 30 atime=1369573446.206172269 29 ctime=1369573577.72617527 sparkleshare-1.1.0/SparkleShare/SparkleControllerBase.cs0000664000175000017500000007022212150404106023652 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Threading; using SparkleLib; namespace SparkleShare { public abstract class SparkleControllerBase { public SparkleRepoBase [] Repositories { get { lock (this.repo_lock) return this.repositories.GetRange (0, this.repositories.Count).ToArray (); } } public bool RepositoriesLoaded { get; private set;} public string FoldersPath { get; private set; } public double ProgressPercentage = 0.0; public double ProgressSpeedUp = 0.0; public double ProgressSpeedDown = 0.0; public event ShowSetupWindowEventHandler ShowSetupWindowEvent = delegate { }; public delegate void ShowSetupWindowEventHandler (PageType page_type); public event Action ShowAboutWindowEvent = delegate { }; public event Action ShowEventLogWindowEvent = delegate { }; public event FolderFetchedEventHandler FolderFetched = delegate { }; public delegate void FolderFetchedEventHandler (string remote_url, string [] warnings); public event FolderFetchErrorHandler FolderFetchError = delegate { }; public delegate void FolderFetchErrorHandler (string remote_url, string [] errors); public event FolderFetchingHandler FolderFetching = delegate { }; public delegate void FolderFetchingHandler (double percentage); public event Action FolderListChanged = delegate { }; public event Action OnIdle = delegate { }; public event Action OnSyncing = delegate { }; public event Action OnError = delegate { }; public event InviteReceivedHandler InviteReceived = delegate { }; public delegate void InviteReceivedHandler (SparkleInvite invite); public event NotificationRaisedEventHandler NotificationRaised = delegate { }; public delegate void NotificationRaisedEventHandler (SparkleChangeSet change_set); public event AlertNotificationRaisedEventHandler AlertNotificationRaised = delegate { }; public delegate void AlertNotificationRaisedEventHandler (string title, string message); public bool FirstRun { get { return this.config.User.Email.Equals ("Unknown"); } } public List Folders { get { List folders = this.config.Folders; return folders; } } public string ConfigPath { get { return this.config.LogFilePath; } } public SparkleUser CurrentUser { get { return this.config.User; } set { this.config.User = value; } } public bool NotificationsEnabled { get { string notifications_enabled = this.config.GetConfigOption ("notifications"); if (string.IsNullOrEmpty (notifications_enabled)) { this.config.SetConfigOption ("notifications", bool.TrueString); return true; } else { return notifications_enabled.Equals (bool.TrueString); } } } // Path where the plugins are kept public abstract string PluginsPath { get; } // Enables SparkleShare to start automatically at login public abstract void CreateStartupItem (); // Installs the sparkleshare:// protocol handler public abstract void InstallProtocolHandler (); // Adds the SparkleShare folder to the user's // list of bookmarked places public abstract void AddToBookmarks (); // Creates the SparkleShare folder in the user's home folder public abstract bool CreateSparkleShareFolder (); // Opens the SparkleShare folder or an (optional) subfolder public abstract void OpenFolder (string path); // Opens a file with the appropriate application public abstract void OpenFile (string path); // Opens a file with the appropriate application public abstract void OpenWebsite (string url); // Copies text to the clipboard public abstract void CopyToClipboard (string text); public abstract string EventLogHTML { get; } public abstract string DayEntryHTML { get; } public abstract string EventEntryHTML { get; } private SparkleConfig config; private SparkleFetcherBase fetcher; private FileSystemWatcher watcher; private Object repo_lock = new Object (); private Object check_repos_lock = new Object (); private List skipped_avatars = new List (); private List repositories = new List (); private bool lost_folders_path = false; public SparkleControllerBase () { string app_data_path = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData); string config_path = Path.Combine (app_data_path, "sparkleshare"); this.config = new SparkleConfig (config_path, "config.xml"); SparkleConfig.DefaultConfig = this.config; FoldersPath = this.config.FoldersPath; } public virtual void Initialize () { SparklePlugin.PluginsPath = PluginsPath; InstallProtocolHandler (); try { // Create the SparkleShare folder and add it to the bookmarks if (CreateSparkleShareFolder ()) AddToBookmarks (); } catch (DirectoryNotFoundException) { this.lost_folders_path = true; } if (FirstRun) { this.config.SetConfigOption ("notifications", bool.TrueString); } else { string keys_path = Path.GetDirectoryName (this.config.FullPath); string key_file_path = ""; foreach (string file_path in Directory.GetFiles (keys_path)) { string file_name = Path.GetFileName(file_path); if (file_name.EndsWith (".key")) { key_file_path = Path.Combine (keys_path, file_name); // Replace spaces with underscores in old keys if (file_name.Contains (" ")) { string new_file_name = file_name.Replace (" ", "_"); File.Move (key_file_path, Path.Combine (keys_path, new_file_name)); File.Move (key_file_path + ".pub", Path.Combine (keys_path, new_file_name + ".pub")); key_file_path = Path.Combine (keys_path, new_file_name); } SparkleKeys.ImportPrivateKey (key_file_path); break; } } CurrentUser.PublicKey = File.ReadAllText (key_file_path + ".pub"); SparkleKeys.ListPrivateKeys (); } // Watch the SparkleShare folder this.watcher = new FileSystemWatcher () { Filter = "*", IncludeSubdirectories = false, Path = FoldersPath }; watcher.Created += OnFolderActivity; // FIXME watcher.Deleted += OnFolderActivity; // FIXME watcher.Renamed += OnFolderActivity; watcher.EnableRaisingEvents = true; } public void UIHasLoaded () { if (this.lost_folders_path) { Program.UI.Bubbles.Controller.ShowBubble ("Where's your SparkleShare folder?", "Did you put it on a detached drive?", null); Environment.Exit (-1); } if (FirstRun) { ShowSetupWindow (PageType.Setup); new Thread (() => { string keys_path = Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath); string key_file_name = DateTime.Now.ToString ("yyyy-MM-dd_HH\\hmm"); string [] key_pair = SparkleKeys.GenerateKeyPair (keys_path, key_file_name); SparkleKeys.ImportPrivateKey (key_pair [0]); CurrentUser.PublicKey = File.ReadAllText (key_pair [1]); FolderListChanged (); // FIXME: Hacky way to update status icon menu to show the key }).Start (); } else { new Thread (() => { CheckRepositories (); RepositoriesLoaded = true; UpdateState (); }).Start (); } } public void ShowSetupWindow (PageType page_type) { ShowSetupWindowEvent (page_type); } public void ShowAboutWindow () { ShowAboutWindowEvent (); } public void ShowEventLogWindow () { ShowEventLogWindowEvent (); } public void OpenSparkleShareFolder () { OpenFolder (this.config.FoldersPath); } public void OpenSparkleShareFolder (string name) { OpenFolder (new SparkleFolder (name).FullPath); } public void ToggleNotifications () { bool notifications_enabled = this.config.GetConfigOption ("notifications").Equals (bool.TrueString); this.config.SetConfigOption ("notifications", (!notifications_enabled).ToString ()); } private void CheckRepositories () { lock (this.check_repos_lock) { string path = this.config.FoldersPath; // Detect any renames foreach (string folder_path in Directory.GetDirectories (path)) { string folder_name = Path.GetFileName (folder_path); if (folder_name.Equals (".tmp")) continue; if (this.config.GetIdentifierForFolder (folder_name) == null) { string identifier_file_path = Path.Combine (folder_path, ".sparkleshare"); if (!File.Exists (identifier_file_path)) continue; string identifier = File.ReadAllText (identifier_file_path).Trim (); if (this.config.IdentifierExists (identifier)) { RemoveRepository (folder_path); this.config.RenameFolder (identifier, folder_name); string new_folder_path = Path.Combine (path, folder_name); AddRepository (new_folder_path); SparkleLogger.LogInfo ("Controller", "Renamed folder with identifier " + identifier + " to '" + folder_name + "'"); } } } // Remove any deleted folders foreach (string folder_name in this.config.Folders) { string folder_path = new SparkleFolder (folder_name).FullPath; if (!Directory.Exists (folder_path)) { this.config.RemoveFolder (folder_name); RemoveRepository (folder_path); SparkleLogger.LogInfo ("Controller", "Removed folder '" + folder_name + "' from config"); } else { AddRepository (folder_path); } } // Remove any duplicate folders string previous_name = ""; foreach (string folder_name in this.config.Folders) { if (!string.IsNullOrEmpty (previous_name) && folder_name.Equals (previous_name)) this.config.RemoveFolder (folder_name); else previous_name = folder_name; } FolderListChanged (); } } private void AddRepository (string folder_path) { SparkleRepoBase repo = null; string folder_name = Path.GetFileName (folder_path); string backend = this.config.GetBackendForFolder (folder_name); try { repo = (SparkleRepoBase) Activator.CreateInstance ( Type.GetType ("SparkleLib." + backend + ".SparkleRepo, SparkleLib." + backend), new object [] { folder_path, this.config }); } catch (Exception e) { SparkleLogger.LogInfo ("Controller", "Failed to load backend '" + backend + "' for '" + folder_name + "': ", e); return; } repo.ChangesDetected += delegate { UpdateState (); }; repo.SyncStatusChanged += delegate (SyncStatus status) { if (status == SyncStatus.Idle) { ProgressPercentage = 0.0; ProgressSpeedUp = 0.0; ProgressSpeedDown = 0.0; } UpdateState (); }; repo.ProgressChanged += delegate { ProgressPercentage = 0.0; ProgressSpeedUp = 0.0; ProgressSpeedDown = 0.0; double percentage = 0.0; int repo_count = 0; foreach (SparkleRepoBase rep in Repositories) { if (rep.ProgressPercentage > 0) { percentage += rep.ProgressPercentage; repo_count++; } if (rep.Status == SyncStatus.SyncUp) ProgressSpeedUp += rep.ProgressSpeed; if (rep.Status == SyncStatus.SyncDown) ProgressSpeedDown += rep.ProgressSpeed; } if (repo_count > 0) ProgressPercentage = percentage / repo_count; UpdateState (); }; repo.NewChangeSet += delegate (SparkleChangeSet change_set) { NotificationRaised (change_set); }; repo.ConflictResolved += delegate { AlertNotificationRaised ("Conflict happened", "Don't worry, we've made a copy of each conflicting file."); }; this.repositories.Add (repo); repo.Initialize (); } private void RemoveRepository (string folder_path) { foreach (SparkleRepoBase repo in this.repositories) { if (repo.LocalPath.Equals (folder_path)) { this.repositories.Remove (repo); repo.Dispose (); return; } } } private void OnFolderActivity (object o, FileSystemEventArgs args) { if (args != null && args.FullPath.EndsWith (".xml") && args.ChangeType == WatcherChangeTypes.Created) { HandleInvite (args); return; }/* else { FIXME: on the fly folder removal doesn't always work. disabling for now Thread.Sleep (1000); if (Directory.Exists (args.FullPath) && args.ChangeType == WatcherChangeTypes.Created) return; CheckRepositories (); }*/ } private void HandleInvite (FileSystemEventArgs args) { if (this.fetcher != null && this.fetcher.IsActive) { AlertNotificationRaised ("SparkleShare Setup seems busy", "Please wait for it to finish"); } else { SparkleInvite invite = new SparkleInvite (args.FullPath); // It may be that the invite we received a path to isn't // fully downloaded yet, so we try to read it several times int tries = 0; while (!invite.IsValid) { Thread.Sleep (100); invite = new SparkleInvite (args.FullPath); tries++; if (tries > 10) { AlertNotificationRaised ("Oh noes!", "This invite seems screwed up..."); break; } } if (invite.IsValid) InviteReceived (invite); File.Delete (args.FullPath); } } // Fires events for the current syncing state private void UpdateState () { bool has_unsynced_repos = false; foreach (SparkleRepoBase repo in Repositories) { if (repo.Status == SyncStatus.SyncDown || repo.Status == SyncStatus.SyncUp || repo.IsBuffering) { OnSyncing (); return; } else if (repo.HasUnsyncedChanges) { has_unsynced_repos = true; } } if (has_unsynced_repos) OnError (); else OnIdle (); } public void StartFetcher (SparkleFetcherInfo info) { string tmp_path = this.config.TmpPath; if (!Directory.Exists (tmp_path)) { Directory.CreateDirectory (tmp_path); File.SetAttributes (tmp_path, File.GetAttributes (tmp_path) | FileAttributes.Hidden); } string canonical_name = Path.GetFileName (info.RemotePath); string backend = SparkleFetcherBase.GetBackend (info.Address); info.TargetDirectory = Path.Combine (tmp_path, canonical_name); try { this.fetcher = (SparkleFetcherBase) Activator.CreateInstance ( Type.GetType ("SparkleLib." + backend + ".SparkleFetcher, SparkleLib." + backend), info); } catch (Exception e) { SparkleLogger.LogInfo ("Controller", "Failed to load '" + backend + "' backend for '" + canonical_name + "' " + e.Message); FolderFetchError (Path.Combine (info.Address, info.RemotePath).Replace (@"\", "/"), new string [] {"Failed to load \"" + backend + "\" backend for \"" + canonical_name + "\""}); return; } this.fetcher.Finished += delegate (bool repo_is_encrypted, bool repo_is_empty, string [] warnings) { if (repo_is_encrypted && repo_is_empty) { ShowSetupWindowEvent (PageType.CryptoSetup); } else if (repo_is_encrypted) { ShowSetupWindowEvent (PageType.CryptoPassword); } else { FinishFetcher (); } }; this.fetcher.Failed += delegate { FolderFetchError (this.fetcher.RemoteUrl.ToString (), this.fetcher.Errors); StopFetcher (); }; this.fetcher.ProgressChanged += delegate (double percentage) { FolderFetching (percentage); }; this.fetcher.Start (); } public void StopFetcher () { this.fetcher.Stop (); if (Directory.Exists (this.fetcher.TargetFolder)) { try { Directory.Delete (this.fetcher.TargetFolder, true /* Recursive */ ); SparkleLogger.LogInfo ("Controller", "Deleted '" + this.fetcher.TargetFolder + "'"); } catch (Exception e) { SparkleLogger.LogInfo ("Controller", "Failed to delete '" + this.fetcher.TargetFolder + "'", e); } } this.fetcher.Dispose (); this.fetcher = null; this.watcher.EnableRaisingEvents = true; } public bool CheckPassword (string password) { return this.fetcher.IsFetchedRepoPasswordCorrect (password); } public void FinishFetcher (string password) { this.fetcher.EnableFetchedRepoCrypto (password); FinishFetcher (); } public void FinishFetcher () { this.watcher.EnableRaisingEvents = false; this.fetcher.Complete (); string canonical_name = Path.GetFileName (this.fetcher.RemoteUrl.AbsolutePath); if (canonical_name.EndsWith (".git")) canonical_name = canonical_name.Replace (".git", ""); canonical_name = canonical_name.Replace ("-crypto", ""); canonical_name = canonical_name.Replace ("_", " "); canonical_name = canonical_name.Replace ("%20", " "); bool target_folder_exists = Directory.Exists ( Path.Combine (this.config.FoldersPath, canonical_name)); // Add a numbered suffix to the name if a folder with the same name // already exists. Example: "Folder (2)" int suffix = 1; while (target_folder_exists) { suffix++; target_folder_exists = Directory.Exists ( Path.Combine (this.config.FoldersPath, canonical_name + " (" + suffix + ")")); } string target_folder_name = canonical_name; if (suffix > 1) target_folder_name += " (" + suffix + ")"; string target_folder_path = Path.Combine (this.config.FoldersPath, target_folder_name); try { Directory.Move (this.fetcher.TargetFolder, target_folder_path); } catch (Exception e) { SparkleLogger.LogInfo ("Controller", "Error moving directory, trying again...", e); try { ClearDirectoryAttributes (this.fetcher.TargetFolder); Directory.Move (this.fetcher.TargetFolder, target_folder_path); } catch (Exception x) { SparkleLogger.LogInfo ("Controller", "Error moving directory", x); this.fetcher.Dispose (); this.fetcher = null; this.watcher.EnableRaisingEvents = true; return; } } string backend = SparkleFetcherBase.GetBackend (this.fetcher.RemoteUrl.ToString ()); this.config.AddFolder (target_folder_name, this.fetcher.Identifier, this.fetcher.RemoteUrl.ToString (), backend); if (this.fetcher.OriginalFetcherInfo.AnnouncementsUrl != null) { this.config.SetFolderOptionalAttribute (target_folder_name, "announcements_url", this.fetcher.OriginalFetcherInfo.AnnouncementsUrl); } RepositoriesLoaded = true; FolderFetched (this.fetcher.RemoteUrl.ToString (), this.fetcher.Warnings.ToArray ()); AddRepository (target_folder_path); FolderListChanged (); this.fetcher.Dispose (); this.fetcher = null; this.watcher.EnableRaisingEvents = true; } public string GetAvatar (string email, int size) { ServicePointManager.ServerCertificateValidationCallback = GetAvatarValidationCallBack; string fetch_avatars_option = this.config.GetConfigOption ("fetch_avatars"); if (fetch_avatars_option != null && fetch_avatars_option.Equals (bool.FalseString)) return null; email = email.ToLower (); if (this.skipped_avatars.Contains (email)) return null; string avatars_path = new string [] { Path.GetDirectoryName (this.config.FullPath), "avatars", size + "x" + size }.Combine (); string avatar_file_path = Path.Combine (avatars_path, email.MD5 () + ".png"); if (File.Exists (avatar_file_path)) { if (new FileInfo (avatar_file_path).CreationTime < DateTime.Now.AddDays (-1)) File.Delete (avatar_file_path); else return avatar_file_path; } WebClient client = new WebClient (); string url = "https://gravatar.com/avatar/" + email.MD5 () + ".png?s=" + size + "&d=404"; try { byte [] buffer = client.DownloadData (url); if (buffer.Length > 255) { if (!Directory.Exists (avatars_path)) { Directory.CreateDirectory (avatars_path); SparkleLogger.LogInfo ("Controller", "Created '" + avatars_path + "'"); } File.WriteAllBytes (avatar_file_path, buffer); SparkleLogger.LogInfo ("Controller", "Fetched " + size + "x" + size + " avatar for " + email); return avatar_file_path; } else { return null; } } catch (Exception e) { SparkleLogger.LogInfo ("Controller", "Error fetching avatar for " + email, e); skipped_avatars.Add (email); return null; } } public virtual void Quit () { foreach (SparkleRepoBase repo in Repositories) repo.Dispose (); Environment.Exit (0); } private bool GetAvatarValidationCallBack (Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { X509Certificate2 certificate2 = new X509Certificate2 (certificate.GetRawCertData ()); // On some systems (mostly Linux) we can't assume the needed certificates are // available, so we have to check the certificate's SHA-1 fingerprint manually. // // Obtained from https://www.gravatar.com/ on Aug 18 2012 and expires on Oct 24 2015. string gravatar_cert_fingerprint = "217ACB08C0A1ACC23A21B6ECDE82CD45E14DEC19"; if (!certificate2.Thumbprint.Equals (gravatar_cert_fingerprint)) { SparkleLogger.LogInfo ("Controller", "Invalid certificate for https://www.gravatar.com/"); return false; } return true; } private void ClearDirectoryAttributes (string path) { if (!Directory.Exists (path)) return; string [] folders = Directory.GetDirectories (path); foreach (string folder in folders) ClearDirectoryAttributes (folder); string [] files = Directory.GetFiles(path); foreach (string file in files) if (!IsSymlink (file)) File.SetAttributes (file, FileAttributes.Normal); } private bool IsSymlink (string file) { FileAttributes attributes = File.GetAttributes (file); return ((attributes & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint); } } } sparkleshare-1.1.0/SparkleShare/PaxHeaders.8596/SparklePlugin.cs0000644000000000000000000000013212056713716022630 xustar000000000000000030 mtime=1354471374.983127314 30 atime=1369573462.898172651 30 ctime=1369573577.738175271 sparkleshare-1.1.0/SparkleShare/SparklePlugin.cs0000664000175000017500000001137512056713716022215 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com) // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see (http://www.gnu.org/licenses/). using System; using System.Xml; using IO = System.IO; namespace SparkleShare { public class SparklePlugin : XmlDocument { public static string PluginsPath = ""; public static string LocalPluginsPath = IO.Path.Combine ( Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "sparkleshare", "plugins"); new public string Name { get { return GetValue ("info", "name"); } } public string Description { get { return GetValue ("info", "description"); } } public string Backend { get { return GetValue ("info", "backend"); } } public string Fingerprint { get { return GetValue ("info", "fingerprint"); } } public string AnnouncementsUrl { get { return GetValue ("info", "announcements_url"); } } public string Address { get { return GetValue ("address", "value"); } } public string AddressExample { get { return GetValue ("address", "example"); } } public string Path { get { return GetValue ("path", "value"); } } public string PathExample { get { return GetValue ("path", "example"); } } public string ImagePath { get { string image_file_name = GetValue ("info", "icon"); string image_path = IO.Path.Combine (this.plugin_directory, image_file_name); if (IO.File.Exists (image_path)) return image_path; else return IO.Path.Combine (PluginsPath, image_file_name); } } public bool PathUsesLowerCase { get { string uses_lower_case = GetValue ("path", "uses_lower_case"); if (!string.IsNullOrEmpty (uses_lower_case)) return uses_lower_case.Equals (bool.TrueString); else return false; } } private string plugin_directory; public SparklePlugin (string plugin_path) { this.plugin_directory = System.IO.Path.GetDirectoryName (plugin_path); Load (plugin_path); } public static SparklePlugin Create (string name, string description, string address_value, string address_example, string path_value, string path_example) { string plugin_path = System.IO.Path.Combine (LocalPluginsPath, name + ".xml"); if (IO.File.Exists (plugin_path)) return null; string plugin_xml = "" + "" + " " + " " + " " + name + "" + " " + description + "" + " own-server.png" + " " + "
" + " " + address_value + "" + " " + address_example + "" + "
" + " " + " " + path_value + "" + " " + path_example + "" + " " + "
" + "
"; plugin_xml = plugin_xml.Replace ("", ""); plugin_xml = plugin_xml.Replace ("", ""); if (!IO.Directory.Exists (LocalPluginsPath)) IO.Directory.CreateDirectory (LocalPluginsPath); IO.File.WriteAllText (plugin_path, plugin_xml); return new SparklePlugin (plugin_path); } private string GetValue (string a, string b) { XmlNode node = SelectSingleNode ("/sparkleshare/plugin/" + a + "/" + b + "/text()"); if (node != null && !string.IsNullOrEmpty (node.Value)) return node.Value; else return null; } } }sparkleshare-1.1.0/PaxHeaders.8596/ltmain.sh0000644000000000000000000000013212117356347016756 xustar000000000000000030 mtime=1363008743.611246112 30 atime=1369573544.762174519 30 ctime=1369573577.322175261 sparkleshare-1.1.0/ltmain.sh0000644000175000017500000105204012117356347016334 0ustar00hbonshbons00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1ubuntu1" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 sparkleshare-1.1.0/PaxHeaders.8596/build0000644000000000000000000000013212150404311016136 xustar000000000000000030 mtime=1369573577.510175265 30 atime=1369573578.250175283 30 ctime=1369573577.510175265 sparkleshare-1.1.0/build/0000755000000000000000000000000012150404311015261 5ustar00rootroot00000000000000sparkleshare-1.1.0/build/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212117356351020275 xustar000000000000000030 mtime=1363008745.691246159 30 atime=1369573544.850174521 30 ctime=1369573577.382175262 sparkleshare-1.1.0/build/Makefile.in0000664000175000017500000004242412117356351017661 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = build DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = m4 EXTRA_DIST = \ icon-theme-installer MAINTAINERCLEANFILES = Makefile.in all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign build/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/build/PaxHeaders.8596/build.mk0000644000000000000000000000013212013750144017651 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573449.146172336 30 ctime=1369573577.506175266 sparkleshare-1.1.0/build/build.mk0000775000175000017500000000013512013750144017231 0ustar00hbonshbons00000000000000include $(top_srcdir)/build/build.environment.mk include $(top_srcdir)/build/build.rules.mk sparkleshare-1.1.0/build/PaxHeaders.8596/build.rules.mk0000644000000000000000000000013212042724416021007 xustar000000000000000030 mtime=1351330062.667410236 30 atime=1369573449.150172337 30 ctime=1369573577.510175265 sparkleshare-1.1.0/build/build.rules.mk0000775000175000017500000000447412042724416020401 0ustar00hbonshbons00000000000000UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE) # Since all other attempts failed, we currently go this way: # This code adds the file specified in ASSEMBLY_INFO_SOURCE to SOURCES_BUILD. ASSEMBLY_INFO_SOURCE_REAL = \ $(addprefix $(srcdir)/, $(ASSEMBLY_INFO_SOURCE)) SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES)) SOURCES_BUILD += $(ASSEMBLY_INFO_SOURCE_REAL) RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES)) RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \ -resource:$(resource),$(notdir $(resource))) ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET))) ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION) INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR))) if ENABLE_TESTS LINK = " $(NUNIT_LIBS)" ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS" endif if ENABLE_ATK ENABLE_ATK_FLAG = "-define:ENABLE_ATK" endif FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE)) DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/') OUTPUT_FILES = \ $(ASSEMBLY_FILE) \ $(ASSEMBLY_FILE).mdb moduledir = $(INSTALL_DIR_RESOLVED) module_SCRIPTS = $(OUTPUT_FILES) all: $(ASSEMBLY_FILE) run: @pushd $(top_builddir); \ make run; \ popd; # uncommented for now. # tests are currently excuted from Makefile in $(top_builddir) #test: # @pushd $(top_builddir)/tests; \ # make $(ASSEMBLY); \ # popd; build-debug: @echo $(DEP_LINK) $(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE) $(ASSEMBLY_FILE): $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(DEP_LINK) @mkdir -p $(top_builddir)/bin $(MCS) \ $(GMCS_FLAGS) \ $(ASSEMBLY_BUILD_FLAGS) \ -codepage:utf8 \ -nowarn:0278 -nowarn:0078 $$warn \ -define:HAVE_GTK_2_10 -define:NET_2_0 \ -debug -target:$(TARGET) -out:$@ \ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD) @if [ -e $(srcdir)/$(notdir $@.config) ]; then \ cp $(srcdir)/$(notdir $@.config) $(top_builddir)/bin; \ fi; @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \ fi; EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) CLEANFILES = $(OUTPUT_FILES) $(ASSEMBLY_FILE).config DISTCLEANFILES = *.pidb MAINTAINERCLEANFILES = Makefile.in sparkleshare-1.1.0/build/PaxHeaders.8596/Makefile.am0000644000000000000000000000013112013750144020254 xustar000000000000000030 mtime=1345310820.402218933 29 atime=1369573544.84217452 30 ctime=1369573577.382175262 sparkleshare-1.1.0/build/Makefile.am0000775000175000017500000000012712013750144017636 0ustar00hbonshbons00000000000000SUBDIRS = m4 EXTRA_DIST = \ icon-theme-installer MAINTAINERCLEANFILES = Makefile.in sparkleshare-1.1.0/build/PaxHeaders.8596/build.environment.mk0000644000000000000000000000013212150404106022210 xustar000000000000000030 mtime=1369573446.190172269 30 atime=1369573446.206172269 30 ctime=1369573577.506175266 sparkleshare-1.1.0/build/build.environment.mk0000775000175000017500000000220412150404106021567 0ustar00hbonshbons00000000000000# Initializers MONO_BASE_PATH = # Install Paths DEFAULT_INSTALL_DIR = $(pkglibdir) DIR_BIN = $(top_builddir)/bin # External libraries to link against, generated from configure LINK_SYSTEM = -r:System LINK_SYSTEM_WEB = -r:System.Web LINK_MONO_POSIX = -r:Mono.Posix LINK_GLIB = $(GLIBSHARP_LIBS) LINK_GTK = $(GTKSHARP_LIBS) LINK_GNOME = $(GNOME_SHARP_LIBS) LINK_DBUS = $(NDESK_DBUS_LIBS) $(NDESK_DBUS_GLIB_LIBS) LINK_DBUS_NO_GLIB = $(NDESK_DBUS_LIBS) LINK_APP_INDICATOR = $(APP_INDICATOR_LIBS) REF_NOTIFY_SHARP = $(LINK_SYSTEM) $(LINK_DBUS) $(GTKSHARP_LIBS) $(GLIBSHARP_LIBS) LINK_NOTIFY_SHARP = -r:$(DIR_BIN)/NotifySharp.dll LINK_NOTIFY_SHARP_DEPS = $(REF_NOTIFY_SHARP) $(LINK_NOTIFY_SHARP) REF_SPARKLELIB = $(LINK_SYSTEM) $(LINK_MONO_POSIX) LINK_SPARKLELIB = -r:$(DIR_BIN)/SparkleLib.dll LINK_SPARKLELIB_DEPS = $(REF_SPARKLELIB) $(LINK_SPARKLELIB) REF_SPARKLESHARE = $(LINK_SYSTEM_WEB) $(LINK_DBUS) $(LINK_GTK) $(LINK_SPARKLELIB_DEPS) $(LINK_APP_INDICATOR) # Cute hack to replace a space with something colon:= : empty:= space:= $(empty) $(empty) # Build path to allow running uninstalled RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH)) sparkleshare-1.1.0/build/PaxHeaders.8596/m40000644000000000000000000000013212150404311016456 xustar000000000000000030 mtime=1369573577.438175264 30 atime=1369573578.250175283 30 ctime=1369573577.438175264 sparkleshare-1.1.0/build/m4/0000755000000000000000000000000012150404311015601 5ustar00rootroot00000000000000sparkleshare-1.1.0/build/m4/PaxHeaders.8596/Makefile.in0000644000000000000000000000013112117356351020614 xustar000000000000000029 mtime=1363008745.71924616 30 atime=1369573544.902174521 30 ctime=1369573577.438175264 sparkleshare-1.1.0/build/m4/Makefile.in0000664000175000017500000002437512117356351020206 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = build/m4 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = \ $(srcdir)/sparkleshare/*.m4 \ $(srcdir)/shamrock/*.m4 \ $(srcdir)/shave/*.m4 MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign build/m4/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/build/m4/PaxHeaders.8596/sparkleshare0000644000000000000000000000013212150404311021142 xustar000000000000000030 mtime=1369573577.302175261 30 atime=1369573578.250175283 30 ctime=1369573577.302175261 sparkleshare-1.1.0/build/m4/sparkleshare/0000755000000000000000000000000012150404311020265 5ustar00rootroot00000000000000sparkleshare-1.1.0/build/m4/sparkleshare/PaxHeaders.8596/gtk-sharp.m40000644000000000000000000000013212042724413023371 xustar000000000000000030 mtime=1351330059.455410163 30 atime=1369573544.690174517 30 ctime=1369573577.298175261 sparkleshare-1.1.0/build/m4/sparkleshare/gtk-sharp.m40000775000175000017500000000120512042724413022750 0ustar00hbonshbons00000000000000AC_DEFUN([SPARKLESHARE_CHECK_GTK_SHARP], [ GTKSHARP_REQUIRED=2.12.2 PKG_CHECK_MODULES(GTKSHARP, gtk-sharp-2.0 >= $GTKSHARP_REQUIRED) AC_SUBST(GTKSHARP_LIBS) PKG_CHECK_MODULES(GLIBSHARP, glib-sharp-2.0 >= $GTKSHARP_REQUIRED) AC_SUBST(GLIBSHARP_LIBS) PKG_CHECK_MODULES(GLIBSHARP_2_12_7, glib-sharp-2.0 >= 2.12.7, HAVE_GLIBSHARP_2_12_7=yes, HAVE_GLIBSHARP_2_12_7=no) AM_CONDITIONAL(HAVE_GLIBSHARP_2_12_7, [test "$HAVE_GLIBSHARP_2_12_7" = "yes"]) PKG_CHECK_MODULES(GTKSHARP_A11Y, gtk-sharp-2.0 >= 2.12.10, gtksharp_with_a11y=yes, gtksharp_with_a11y=no) AM_CONDITIONAL(ENABLE_ATK, test "x$gtksharp_with_a11y" = "xyes") ]) sparkleshare-1.1.0/build/m4/sparkleshare/PaxHeaders.8596/notify-sharp.m40000644000000000000000000000013212013750144024112 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.690174517 30 ctime=1369573577.302175261 sparkleshare-1.1.0/build/m4/sparkleshare/notify-sharp.m40000775000175000017500000000052712013750144023477 0ustar00hbonshbons00000000000000AC_DEFUN([SPARKLESHARE_CHECK_NOTIFY_SHARP], [ PKG_CHECK_MODULES(NOTIFY_SHARP, notify-sharp, have_notify_sharp=yes, have_notify_sharp=no) if test "x$have_notify_sharp" = "xyes"; then AC_SUBST(NOTIFY_SHARP_LIBS) AM_CONDITIONAL(EXTERNAL_NOTIFY_SHARP, true) else AM_CONDITIONAL(EXTERNAL_NOTIFY_SHARP, false) AC_MSG_RESULT([no]) fi ]) sparkleshare-1.1.0/build/m4/PaxHeaders.8596/shamrock0000644000000000000000000000013212150404311020265 xustar000000000000000030 mtime=1369573577.446175264 30 atime=1369573578.250175283 30 ctime=1369573577.446175264 sparkleshare-1.1.0/build/m4/shamrock/0000755000000000000000000000000012150404311017410 5ustar00rootroot00000000000000sparkleshare-1.1.0/build/m4/shamrock/PaxHeaders.8596/nunit.m40000644000000000000000000000013112013750144021746 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.678174517 29 ctime=1369573577.29417526 sparkleshare-1.1.0/build/m4/shamrock/nunit.m40000775000175000017500000000141512013750144021331 0ustar00hbonshbons00000000000000AC_DEFUN([SHAMROCK_CHECK_NUNIT], [ NUNIT_REQUIRED=2.4.7 AC_ARG_ENABLE(tests, AC_HELP_STRING([--enable-tests], [Enable NUnit tests]), enable_tests=$enableval, enable_tests="no") if test "x$enable_tests" = "xno"; then do_tests=no AM_CONDITIONAL(ENABLE_TESTS, false) else PKG_CHECK_MODULES(NUNIT, nunit >= $NUNIT_REQUIRED, do_tests="yes", do_tests="no") AC_SUBST(NUNIT_LIBS) AM_CONDITIONAL(ENABLE_TESTS, test "x$do_tests" = "xyes") if test "x$do_tests" = "xno"; then PKG_CHECK_MODULES(NUNIT, mono-nunit >= 2.4, do_tests="yes", do_tests="no") AC_SUBST(NUNIT_LIBS) AM_CONDITIONAL(ENABLE_TESTS, test "x$do_tests" = "xyes") if test "x$do_tests" = "xno"; then AC_MSG_WARN([Could not find nunit: tests will not be available]) fi fi fi ]) sparkleshare-1.1.0/build/m4/shamrock/PaxHeaders.8596/gnome-doc.m40000644000000000000000000000013212013750144022462 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.906174521 30 ctime=1369573577.438175264 sparkleshare-1.1.0/build/m4/shamrock/gnome-doc.m40000775000175000017500000000154412013750144022047 0ustar00hbonshbons00000000000000AC_DEFUN([SHAMROCK_CHECK_GNOME_DOC_UTILS], [ AC_ARG_ENABLE([user-help], AC_HELP_STRING([--enable-user-help], [Enable building the user-help [[default=auto]]]),, enable_user_help=auto) if test "x$enable_user_help" = "xauto"; then PKG_CHECK_MODULES(GNOME_DOC_UTILS, gnome-doc-utils, enable_user_help=yes, enable_user_help=no) elif test "x$enable_user_help" = "xyes"; then PKG_CHECK_MODULES(GNOME_DOC_UTILS, gnome-doc-utils) fi # GNOME_DOC_INIT sets ENABLE_SK, but if we have disabled # user docs, then this needs to be defined manually. AM_CONDITIONAL(ENABLE_SK, false) if test "x$enable_user_help" = "xyes"; then GNOME_DOC_INIT([$1], enable_user_help=yes, enable_user_help=no) fi AM_CONDITIONAL(HAVE_GNOME_DOC_UTILS, test "x$enable_user_help" = "xyes") ]) sparkleshare-1.1.0/build/m4/shamrock/PaxHeaders.8596/expansions.m40000644000000000000000000000013112013750144023000 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.674174517 29 ctime=1369573577.29417526 sparkleshare-1.1.0/build/m4/shamrock/expansions.m40000775000175000017500000000146612013750144022371 0ustar00hbonshbons00000000000000AC_DEFUN([SHAMROCK_EXPAND_LIBDIR], [ expanded_libdir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $libdir )` AC_SUBST(expanded_libdir) ]) AC_DEFUN([SHAMROCK_EXPAND_BINDIR], [ expanded_bindir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $bindir )` AC_SUBST(expanded_bindir) ]) AC_DEFUN([SHAMROCK_EXPAND_DATADIR], [ case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac expanded_datadir=`(eval echo $datadir)` expanded_datadir=`(eval echo $expanded_datadir)` AC_SUBST(expanded_datadir) ]) sparkleshare-1.1.0/build/m4/shamrock/PaxHeaders.8596/programs.m40000644000000000000000000000013212013750144022444 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.678174517 30 ctime=1369573577.298175261 sparkleshare-1.1.0/build/m4/shamrock/programs.m40000775000175000017500000000036112013750144022025 0ustar00hbonshbons00000000000000AC_DEFUN([SHAMROCK_FIND_PROGRAM], [ AC_PATH_PROG($1, $2, $3) AC_SUBST($1) ]) AC_DEFUN([SHAMROCK_FIND_PROGRAM_OR_BAIL], [ SHAMROCK_FIND_PROGRAM($1, $2, no) if test "x$$1" = "xno"; then AC_MSG_ERROR([You need to install '$2']) fi ]) sparkleshare-1.1.0/build/m4/shamrock/PaxHeaders.8596/util.m40000644000000000000000000000013212013750144021567 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.910174522 30 ctime=1369573577.446175264 sparkleshare-1.1.0/build/m4/shamrock/util.m40000775000175000017500000000024312013750144021147 0ustar00hbonshbons00000000000000AC_DEFUN([SHAMROCK_CONCAT], [ $1="$$1 $$2" ]) AC_DEFUN([SHAMROCK_CONCAT_MODULE], [ SHAMROCK_CONCAT($1_CFLAGS, $2_CFLAGS) SHAMROCK_CONCAT($1_LIBS, $2_LIBS) ]) sparkleshare-1.1.0/build/m4/shamrock/PaxHeaders.8596/mono.m40000644000000000000000000000013112013750144021561 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.674174517 29 ctime=1369573577.29417526 sparkleshare-1.1.0/build/m4/shamrock/mono.m40000775000175000017500000000371612013750144021152 0ustar00hbonshbons00000000000000AC_DEFUN([SHAMROCK_FIND_MONO_1_0_COMPILER], [ SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, mcs) ]) AC_DEFUN([SHAMROCK_FIND_MONO_2_0_COMPILER], [ SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, gmcs) ]) AC_DEFUN([SHAMROCK_FIND_MONO_4_0_COMPILER], [ SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, dmcs) ]) AC_DEFUN([SHAMROCK_FIND_MONO_RUNTIME], [ SHAMROCK_FIND_PROGRAM_OR_BAIL(MONO, mono) ]) AC_DEFUN([_SHAMROCK_CHECK_MONO_MODULE], [ PKG_CHECK_MODULES(MONO_MODULE, $1 >= $2) ]) AC_DEFUN([SHAMROCK_CHECK_MONO_MODULE], [ _SHAMROCK_CHECK_MONO_MODULE(mono, $1) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_MODULE], [ _SHAMROCK_CHECK_MONO_MODULE(mono-2, $1) ]) AC_DEFUN([_SHAMROCK_CHECK_MONO_MODULE_NOBAIL], [ PKG_CHECK_MODULES(MONO_MODULE, $2 >= $1, HAVE_MONO_MODULE=yes, HAVE_MONO_MODULE=no) AC_SUBST(HAVE_MONO_MODULE) ]) AC_DEFUN([SHAMROCK_CHECK_MONO_MODULE_NOBAIL], [ _SHAMROCK_CHECK_MONO_MODULE_NOBAIL(mono, $1) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_MODULE_NOBAIL], [ _SHAMROCK_CHECK_MONO_MODULE_NOBAIL(mono-2, $1) ]) AC_DEFUN([_SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES], [ for asm in $(echo "$*" | cut -d, -f3- | sed 's/\,/ /g') do AC_MSG_CHECKING([for Mono $2 GAC for $asm.dll]) if test \ -e "$($PKG_CONFIG --variable=libdir $1)/mono/$2/$asm.dll" -o \ -e "$($PKG_CONFIG --variable=prefix $1)/lib/mono/$2/$asm.dll"; \ then \ AC_MSG_RESULT([found]) else AC_MSG_RESULT([not found]) AC_MSG_ERROR([missing required Mono $2 assembly: $asm.dll]) fi done ]) AC_DEFUN([SHAMROCK_CHECK_MONO_1_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono, 1.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono, 2.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_2_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono-2, 2.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO_4_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono, 4.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_4_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono-2, 4.0, $*) ]) sparkleshare-1.1.0/build/m4/shamrock/PaxHeaders.8596/monodoc.m40000644000000000000000000000013212013750144022250 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.910174522 30 ctime=1369573577.442175264 sparkleshare-1.1.0/build/m4/shamrock/monodoc.m40000775000175000017500000000146512013750144021637 0ustar00hbonshbons00000000000000AC_DEFUN([SHAMROCK_CHECK_MONODOC], [ AC_ARG_ENABLE(docs, AC_HELP_STRING([--disable-docs], [Do not build documentation]), , enable_docs=yes) if test "x$enable_docs" = "xyes"; then AC_PATH_PROG(MONODOCER, monodocer, no) if test "x$MONODOCER" = "xno"; then AC_MSG_ERROR([You need to install monodoc, or pass --disable-docs to configure to skip documentation installation]) fi AC_PATH_PROG(MDASSEMBLER, mdassembler, no) if test "x$MDASSEMBLER" = "xno"; then AC_MSG_ERROR([You need to install mdassembler, or pass --disable-docs to configure to skip documentation installation]) fi DOCDIR=`$PKG_CONFIG monodoc --variable=sourcesdir` AC_SUBST(DOCDIR) AM_CONDITIONAL(BUILD_DOCS, true) else AC_MSG_NOTICE([not building ${PACKAGE} API documentation]) AM_CONDITIONAL(BUILD_DOCS, false) fi ]) sparkleshare-1.1.0/build/m4/shamrock/PaxHeaders.8596/i18n.m40000644000000000000000000000013212013750144021371 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.906174521 30 ctime=1369573577.442175264 sparkleshare-1.1.0/build/m4/shamrock/i18n.m40000775000175000017500000000053612013750144020756 0ustar00hbonshbons00000000000000AC_DEFUN([SHAMROCK_CONFIGURE_I18N], [ ALL_LINGUAS=`grep -v '^#' $srcdir/po/LINGUAS | $SED ':a;N;$!ba;s/\n/ /g; s/[ ]+/ /g' | xargs` GETTEXT_PACKAGE=$1 AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext Package]) AM_GLIB_GNU_GETTEXT AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS']) ]) sparkleshare-1.1.0/build/m4/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212013750144020575 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.898174522 30 ctime=1369573577.434175264 sparkleshare-1.1.0/build/m4/Makefile.am0000775000175000017500000000020512013750144020153 0ustar00hbonshbons00000000000000EXTRA_DIST = \ $(srcdir)/sparkleshare/*.m4 \ $(srcdir)/shamrock/*.m4 \ $(srcdir)/shave/*.m4 MAINTAINERCLEANFILES = Makefile.in sparkleshare-1.1.0/build/m4/PaxHeaders.8596/shave0000644000000000000000000000013212150404311017564 xustar000000000000000030 mtime=1369573577.314175261 30 atime=1369573578.250175283 30 ctime=1369573577.314175261 sparkleshare-1.1.0/build/m4/shave/0000755000000000000000000000000012150404311016707 5ustar00rootroot00000000000000sparkleshare-1.1.0/build/m4/shave/PaxHeaders.8596/shave.m40000644000000000000000000000013112013750144021216 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.670174516 29 ctime=1369573577.29017526 sparkleshare-1.1.0/build/m4/shave/shave.m40000775000175000017500000000661312013750144020606 0ustar00hbonshbons00000000000000dnl Make automake/libtool output more friendly to humans dnl dnl Copyright (c) 2009, Damien Lespiau dnl dnl Permission is hereby granted, free of charge, to any person dnl obtaining a copy of this software and associated documentation dnl files (the "Software"), to deal in the Software without dnl restriction, including without limitation the rights to use, dnl copy, modify, merge, publish, distribute, sublicense, and/or sell dnl copies of the Software, and to permit persons to whom the dnl Software is furnished to do so, subject to the following dnl conditions: dnl dnl The above copyright notice and this permission notice shall be dnl included in all copies or substantial portions of the Software. dnl dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, dnl EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES dnl OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND dnl NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT dnl HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, dnl WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR dnl OTHER DEALINGS IN THE SOFTWARE. dnl dnl SHAVE_INIT([shavedir],[default_mode]) dnl dnl shavedir: the directory where the shave scripts are, it defaults to dnl $(top_builddir) dnl default_mode: (enable|disable) default shave mode. This parameter dnl controls shave's behaviour when no option has been dnl given to configure. It defaults to disable. dnl dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrites CC and dnl LIBTOOL, you don't want the configure tests to have these variables dnl re-defined. dnl * This macro requires GNU make's -s option. AC_DEFUN([_SHAVE_ARG_ENABLE], [ AC_ARG_ENABLE([shave], AS_HELP_STRING( [--enable-shave], [use shave to make the build pretty [[default=$1]]]),, [enable_shave=$1] ) ]) AC_DEFUN([SHAVE_INIT], [ dnl you can tweak the default value of enable_shave m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)]) if test x"$enable_shave" = xyes; then dnl where can we find the shave scripts? m4_if([$1],, [shavedir="$ac_pwd"], [shavedir="$ac_pwd/$1"]) AC_SUBST(shavedir) dnl make is now quiet AC_SUBST([MAKEFLAGS], [-s]) AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`']) dnl we need sed AC_CHECK_PROG(SED,sed,sed,false) dnl substitute libtool SHAVE_SAVED_LIBTOOL=$LIBTOOL LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'" AC_SUBST(LIBTOOL) dnl substitute cc/cxx SHAVE_SAVED_CC=$CC SHAVE_SAVED_CXX=$CXX SHAVE_SAVED_FC=$FC SHAVE_SAVED_F77=$F77 SHAVE_SAVED_OBJC=$OBJC SHAVE_SAVED_MCS=$MCS CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}" CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}" FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}" F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}" OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}" MCS="${SHELL} ${shavedir}/shave mcs ${SHAVE_SAVED_MCS}" AC_SUBST(CC) AC_SUBST(CXX) AC_SUBST(FC) AC_SUBST(F77) AC_SUBST(OBJC) AC_SUBST(MCS) V=@ else V=1 fi Q='$(V:1=)' AC_SUBST(V) AC_SUBST(Q) ]) sparkleshare-1.1.0/build/m4/shave/PaxHeaders.8596/shave.in0000644000000000000000000000013212013750144021305 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.726174517 30 ctime=1369573577.314175261 sparkleshare-1.1.0/build/m4/shave/shave.in0000775000175000017500000000463412013750144020675 0ustar00hbonshbons00000000000000#!/bin/sh # # Copyright (c) 2009, Damien Lespiau # # 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. # we need sed SED=@SED@ if test -z "$SED" ; then SED=sed fi lt_unmangle () { last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` } # the tool to wrap (cc, cxx, ar, ranlib, ..) tool="$1" shift # the reel tool (to call) REEL_TOOL="$1" shift pass_through=0 preserved_args= while test "$#" -gt 0; do opt="$1" shift case $opt in --shave-mode=*) mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` ;; -o) lt_output="$1" preserved_args="$preserved_args $opt" ;; -out:*|/out:*) lt_output="${opt#*:}" preserved_args="$preserved_args $opt" ;; *) preserved_args="$preserved_args $opt" ;; esac done # mode=link is handled in the libtool wrapper case "$mode,$tool" in link,*) pass_through=1 ;; *,cxx) Q=" CXX " ;; *,cc) Q=" CC " ;; *,fc) Q=" FC " ;; *,f77) Q=" F77 " ;; *,objc) Q=" OBJC " ;; *,mcs) Q=" MCS " ;; *,*) # should not happen Q=" CC " ;; esac lt_unmangle "$lt_output" output=$last_result if test -z $V; then if test $pass_through -eq 0; then echo "$Q$output" fi $REEL_TOOL $preserved_args else echo $REEL_TOOL $preserved_args $REEL_TOOL $preserved_args fi sparkleshare-1.1.0/build/m4/shave/PaxHeaders.8596/shave-libtool.in0000644000000000000000000000013212013750144022747 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573544.726174517 30 ctime=1369573577.310175261 sparkleshare-1.1.0/build/m4/shave/shave-libtool.in0000775000175000017500000000571612013750144022341 0ustar00hbonshbons00000000000000#!/bin/sh # # Copyright (c) 2009, Damien Lespiau # # 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. # we need sed SED=@SED@ if test -z "$SED" ; then SED=sed fi lt_unmangle () { last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` } # the real libtool to use LIBTOOL="$1" shift # if 1, don't print anything, the underlaying wrapper will do it pass_though=0 # scan the arguments, keep the right ones for libtool, and discover the mode preserved_args= # have we seen the --tag option of libtool in the command line ? tag_seen=0 while test "$#" -gt 0; do opt="$1" shift case $opt in --mode=*) mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` preserved_args="$preserved_args $opt" ;; -o) lt_output="$1" preserved_args="$preserved_args $opt" ;; --tag=*) tag_seen=1 preserved_args="$preserved_args $opt" ;; *) preserved_args="$preserved_args $opt" ;; esac done case "$mode" in compile) # shave will be called and print the actual CC/CXX/LINK line preserved_args="$preserved_args --shave-mode=$mode" pass_though=1 ;; link) preserved_args="$preserved_args --shave-mode=$mode" Q=" LINK " ;; *) # let's u # echo "*** libtool: Unimplemented mode: $mode, fill a bug report" ;; esac lt_unmangle "$lt_output" output=$last_result # automake does not add a --tag switch to its libtool invocation when # assembling a .s file and rely on libtool to infer the right action based # on the compiler name. As shave is using CC to hook a wrapper, libtool gets # confused. Let's detect these cases and add a --tag=CC option. tag="" if test $tag_seen -eq 0 -a x"$mode" = xcompile; then tag="--tag=CC" fi if test -z $V; then if test $pass_though -eq 0; then echo "$Q$output" fi $LIBTOOL --silent $tag $preserved_args else echo $LIBTOOL $tag $preserved_args $LIBTOOL $tag $preserved_args fi sparkleshare-1.1.0/build/PaxHeaders.8596/icon-theme-installer0000644000000000000000000000013212013750144022167 xustar000000000000000030 mtime=1345310820.402218933 30 atime=1369573467.402172753 30 ctime=1369573577.386175263 sparkleshare-1.1.0/build/icon-theme-installer0000775000175000017500000001275012013750144021555 0ustar00hbonshbons00000000000000#!/usr/bin/env bash # icon-theme-installer # Copyright (C) 2006 Novell, Inc. # Written by Aaron Bockover # Licensed under the MIT/X11 license # # This script is meant to be invoked from within a Makefile/Makefile.am # in the install-data-local and uninstall-data sections. It handles the # task of properly installing icons into the icon theme. It requires a # few arguments to set up its environment, and a list of files to be # installed. The format of the file list is critical: # # , # # apps,music-player-banshee.svg # apps,music-player-banshee-16.png # apps,music-player-banshee-22.png # # is the icon theme category, for instance, apps, devices, # actions, emblems... # # must have a basename in the form of: # # proper-theme-name[-]. # # Where should be either nothing, which will default to scalable # or \-[0-9]{2}, which will expand to x. For example: # # music-player-banshee-16.png # # The here is -16 and will expand to 16x16 per the icon theme spec # # What follows is an example Makefile.am for icon theme installation: # # --------------- # theme=hicolor # themedir=$(datadir)/icons/$(theme) # theme_icons = \ # apps,music-player-banshee.svg \ # apps,music-player-banshee-16.png \ # apps,music-player-banshee-22.png \ # apps,music-player-banshee-24.png \ # apps,music-player-banshee-32.png # # install_icon_exec = $(top_srcdir)/build/icon-theme-installer -t $(theme) -s $(srcdir) -d "x$(DESTDIR)" -b $(themedir) -m "$(mkinstalldirs)" -x "$(INSTALL_DATA)" # install-data-local: # $(install_icon_exec) -i $(theme_icons) # # uninstall-hook: # $(install_icon_exec) -u $(theme_icons) # # MAINTAINERCLEANFILES = Makefile.in # EXTRA_DIST = $(wildcard *.svg *.png) # --------------- # # Arguments to this program: # # -i : Install # -u : Uninstall # -t : Theme name (hicolor) # -d : Theme installation dest directory [x$(DESTDIR)] - Always prefix # this argument with x; it will be stripped but will act as a # placeholder for zero $DESTDIRs (only set by packagers) # -b : Theme installation directory [$(hicolordir)] # -s : Source directory [$(srcdir)] # -m : Command to exec for directory creation [$(mkinstalldirs)] # -x : Command to exec for single file installation [$(INSTALL_DATA)] # : All remainging should be category,filename pairs while getopts "iut:b:d:s:m:x:" flag; do case "$flag" in i) INSTALL=yes ;; u) UNINSTALL=yes ;; t) THEME_NAME=$OPTARG ;; d) INSTALL_DEST_DIR=${OPTARG##x} ;; b) INSTALL_BASE_DIR=$OPTARG ;; s) SRC_DIR=$OPTARG ;; m) MKINSTALLDIRS_EXEC=$OPTARG ;; x) INSTALL_DATA_EXEC=$OPTARG ;; esac done shift $(($OPTIND - 1)) if test "x$INSTALL" = "xyes" -a "x$UNINSTALL" = "xyes"; then echo "Cannot pass both -i and -u" exit 1 elif test "x$INSTALL" = "x" -a "x$UNINSTALL" = "x"; then echo "Must path either -i or -u" exit 1 fi if test -z "$THEME_NAME"; then echo "Theme name required (-t hicolor)" exit 1 fi if test -z "$INSTALL_BASE_DIR"; then echo "Base theme directory required [-b \$(hicolordir)]" exit 1 fi if test ! -x $(echo "$MKINSTALLDIRS_EXEC" | cut -f1 -d' '); then echo "Cannot find '$MKINSTALLDIRS_EXEC'; You probably want to pass -m \$(mkinstalldirs)" exit 1 fi if test ! -x $(echo "$INSTALL_DATA_EXEC" | cut -f1 -d' '); then echo "Cannot find '$INSTALL_DATA_EXEC'; You probably want to pass -x \$(INSTALL_DATA)" exit 1 fi if test -z "$SRC_DIR"; then SRC_DIR=. fi for icon in $@; do size=$(echo $icon | sed s/[^0-9]*//g) category=$(echo $icon | cut -d, -f1) build_name=$(echo $icon | cut -d, -f2) install_name=$(echo $build_name | sed "s/[0-9]//g; s/-\././") install_name=$(basename $install_name) if test -z $size; then size=scalable; if [[ "${INSTALL_BASE_DIR}" == *ubuntu-mono-* ]]; then install_dir=${INSTALL_DEST_DIR}${INSTALL_BASE_DIR}/$category/$size else install_dir=${INSTALL_DEST_DIR}${INSTALL_BASE_DIR}/$size/$category fi else if [[ "${INSTALL_BASE_DIR}" == *ubuntu-mono-* ]]; then install_dir=${INSTALL_DEST_DIR}${INSTALL_BASE_DIR}/$category/$size else size=${size}x${size}; install_dir=${INSTALL_DEST_DIR}${INSTALL_BASE_DIR}/$size/$category fi fi install_path=$install_dir/$install_name if test "x$INSTALL" = "xyes"; then echo "Installing $size $install_name into $THEME_NAME icon theme" $($MKINSTALLDIRS_EXEC $install_dir) || { echo "Failed to create directory $install_dir" exit 1 } $($INSTALL_DATA_EXEC $SRC_DIR/$build_name $install_path) || { echo "Failed to install $SRC_DIR/$build_name into $install_path" exit 1 } if test ! -e $install_path; then echo "Failed to install $SRC_DIR/$build_name into $install_path" exit 1 fi else if test -e $install_path; then echo "Removing $size $install_name from $THEME_NAME icon theme" rm $install_path || { echo "Failed to remove $install_path" exit 1 } fi fi done gtk_update_icon_cache_bin="$((which gtk-update-icon-cache || echo /opt/gnome/bin/gtk-update-icon-cache)2>/dev/null)" gtk_update_icon_cache="$gtk_update_icon_cache_bin -f -t $INSTALL_BASE_DIR" if test -z "$INSTALL_DEST_DIR"; then if test -x $gtk_update_icon_cache_bin; then echo "Updating GTK icon cache" $gtk_update_icon_cache else echo "*** Icon cache not updated. Could not execute $gtk_update_icon_cache_bin" fi else echo "*** Icon cache not updated. After (un)install, run this:" echo "*** $gtk_update_icon_cache" fi sparkleshare-1.1.0/PaxHeaders.8596/install-sh0000644000000000000000000000013212117356351017132 xustar000000000000000030 mtime=1363008745.111246145 30 atime=1369573467.430172754 30 ctime=1369573577.322175261 sparkleshare-1.1.0/install-sh0000755000175000017500000003325612117356351016522 0ustar00hbonshbons00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 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 CONNEC- # TION 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 deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sparkleshare-1.1.0/PaxHeaders.8596/config.sub0000644000000000000000000000013112117356351017110 xustar000000000000000029 mtime=1363008745.75124616 30 atime=1369573544.754174518 30 ctime=1369573577.318175261 sparkleshare-1.1.0/config.sub0000755000175000017500000010517612117356351016502 0ustar00hbonshbons00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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 of the License, or # (at your option) any later version. # # This program 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 program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: sparkleshare-1.1.0/PaxHeaders.8596/config.guess0000644000000000000000000000013112117356351017445 xustar000000000000000029 mtime=1363008745.74724616 30 atime=1369573544.750174518 30 ctime=1369573577.318175261 sparkleshare-1.1.0/config.guess0000755000175000017500000012743212117356351017036 0ustar00hbonshbons00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file 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 of the License, or # (at your option) any later version. # # This program 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 program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: sparkleshare-1.1.0/PaxHeaders.8596/README.md0000644000000000000000000000013112037107461016404 xustar000000000000000029 mtime=1350340401.03802988 30 atime=1369573544.770174518 30 ctime=1369573577.330175262 sparkleshare-1.1.0/README.md0000664000175000017500000000313312037107461015763 0ustar00hbonshbons00000000000000## SparkleShare SparkleShare is an Open Source collaboration and sharing tool that is designed to keep things simple and to stay out of your way. It allows you to instantly sync with [Git](http://www.git-scm.org/) repositories and is available for Linux distributions, Mac and Windows. ### Resources | | | |-------------------:|:--------------------------------------------------| | **Website**: | http://www.sparkleshare.org/ | | **Twitter**: | https://www.twitter.com/SparkleShare | | **Development**: | https://github.com/hbons/SparkleShare | | **IRC channel**: | #sparkleshare on irc.gnome.org | ### License SparkleShare is Open Source software and licensed under the `GNU General Public License version 3 or later`. You are welcome to change and redistribute it under certain conditions.For more information see the `legal/License.txt` file. ### Setting up a host You can use any host that runs Git. For a simple setup script, check out [Dazzle](https://github.com/hbons/Dazzle). If you need to manage a lot of projects and/or users it may be worth looking at [Gitlab](http://www.gitlabhq.com). ### Building... [...on Linux distributions](https://github.com/hbons/SparkleShare/blob/master/SparkleShare/Linux/README.md) [...on Mac](https://github.com/hbons/SparkleShare/blob/master/SparkleShare/Mac/README.md) [...on Windows](https://github.com/hbons/SparkleShare/blob/master/SparkleShare/Windows/README.md) ### Finally... Have fun, make awesome. :) sparkleshare-1.1.0/PaxHeaders.8596/configure.ac0000644000000000000000000000013212075245462017422 xustar000000000000000030 mtime=1358252850.957950292 30 atime=1369573544.702174517 30 ctime=1369573577.302175261 sparkleshare-1.1.0/configure.ac0000775000175000017500000001031512075245462017003 0ustar00hbonshbons00000000000000dnl Process this file with autoconf to produce a configure script. m4_define([sparkleshare_version], [1.1.0]) AC_PREREQ([2.54]) AC_INIT([SparkleShare], sparkleshare_version) AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-zip foreign tar-pax]) AM_MAINTAINER_MODE dnl Export Version Info AC_SUBST([ASM_VERSION], [sparkleshare_version]) dnl pkg-config AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test "x$PKG_CONFIG" = "xno"; then AC_MSG_ERROR([You need to install pkg-config]) fi AC_SUBST([ACLOCAL_AMFLAGS], ["-I build/m4/sparkleshare -I build/m4/shamrock -I build/m4/shave \${ACLOCAL_FLAGS}"]) SHAMROCK_EXPAND_LIBDIR SHAMROCK_EXPAND_BINDIR SHAMROCK_EXPAND_DATADIR AC_PROG_INSTALL dnl Mono and gmcs SHAMROCK_CHECK_MONO_MODULE(2.8) SHAMROCK_FIND_MONO_RUNTIME PKG_CHECK_EXISTS([mono >= 2.8], [SHAMROCK_FIND_MONO_4_0_COMPILER SHAMROCK_CHECK_MONO_4_0_GAC_ASSEMBLIES([ System System.Security Mono.Posix ])] ) SPARKLESHARE_CHECK_NOTIFY_SHARP AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Use 'DEBUG' Configuration [default=YES]]), enable_debug=yes, enable_debug=no) AM_CONDITIONAL(ENABLE_DEBUG, test x$enable_debug = xyes) if test "x$enable_debug" = "xyes" ; then CONFIG_REQUESTED="yes" fi AC_ARG_ENABLE(release, AC_HELP_STRING([--enable-release], [Use 'RELEASE' Configuration [default=NO]]), enable_release=yes, enable_release=no) AM_CONDITIONAL(ENABLE_RELEASE, test x$enable_release = xyes) if test "x$enable_release" = "xyes" ; then CONFIG_REQUESTED="yes" fi if test -z "$CONFIG_REQUESTED" ; then AM_CONDITIONAL(ENABLE_DEBUG, true) enable_debug=yes fi dnl package checks, common for all configs #PKG_CHECK_MODULES([NDESK_DBUS], [ndesk-dbus-1.0]) #AC_SUBST(NDESK_DBUS_LIBS) #PKG_CHECK_MODULES([NDESK_DBUS_GLIB], [ndesk-dbus-glib-1.0]) #AC_SUBST(NDESK_DBUS_GLIB_LIBS) SPARKLESHARE_CHECK_GTK_SHARP AC_ARG_ENABLE(appindicator, AS_HELP_STRING([--enable-appindicator[=@<:@no/auto/yes@:>@]],[Build support for application indicators ]), [enable_appindicator=$enableval], [enable_appindicator="auto"]) OSNAME=`uname -s` if test "$OSNAME" = "Linux" ; then dnl check for webkit-sharp PKG_CHECK_MODULES(WEBKIT_SHARP, webkit-sharp-1.0, have_webkit_sharp=yes, have_webkit_sharp=no) if test "x$have_webkit_sharp" = "xno" ; then AC_ERROR("webkit-sharp is a required dependency: you need to install the appropriate devel package before you can compile") fi AC_SUBST(WEBKIT_SHARP_LIBS) dnl check for notify-sharp PKG_CHECK_MODULES(NOTIFY_SHARP, notify-sharp, have_notify_sharp=yes, have_notify_sharp=no) if test "x$have_notify_sharp" = "xno" ; then AC_ERROR("notify-sharp is a required dependency: you need to install the appropriate devel package before you can compile") fi AC_SUBST(NOTIFY_SHARP_LIBS) APPINDICATOR_REQUIRED=0.0.7 if test x$enable_appindicator = xauto ; then PKG_CHECK_EXISTS([appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED], enable_appindicator="yes", enable_appindicator="no") fi if test x$enable_appindicator = xyes ; then PKG_CHECK_EXISTS([appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED],, AC_MSG_ERROR([appindicator-sharp-0.1 is not installed])) PKG_CHECK_MODULES(APP_INDICATOR, appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED) AC_SUBST(APP_INDICATOR_CFLAGS) AC_SUBST(APP_INDICATOR_LIBS) AC_DEFINE(HAVE_APP_INDICATOR, 1, [Have AppIndicator]) fi GUISUBDIRS=SparkleShare else GUISUBDIRS= fi AM_CONDITIONAL(HAVE_APP_INDICATOR, test x"$enable_appindicator" = xyes) AC_SUBST([GUISUBDIRS]) SHAMROCK_CHECK_NUNIT SHAVE_INIT([build/m4/shave], [enable]) AC_OUTPUT([ build/Makefile build/m4/Makefile build/m4/shave/shave build/m4/shave/shave-libtool SparkleLib/Defines.cs SparkleLib/Makefile SparkleLib/Git/Makefile SparkleShare/Common/Makefile SparkleShare/Common/HTML/Makefile SparkleShare/Common/Plugins/Makefile SparkleShare/Common/Pixmaps/Makefile SparkleShare/Linux/Makefile SparkleShare/Linux/Pixmaps/Makefile SparkleShare/Linux/Pixmaps/icons/Makefile SparkleShare/Linux/Pixmaps/icons/gnome/Makefile SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile SparkleShare/Linux/sparkleshare SparkleShare/Makefile Makefile ]) echo " SparkleShare ${VERSION} Configuration: Prefix : ${prefix} " sparkleshare-1.1.0/PaxHeaders.8596/Makefile.am0000644000000000000000000000013112037107461017161 xustar000000000000000029 mtime=1350340401.03802988 30 atime=1369573544.718174518 30 ctime=1369573577.306175261 sparkleshare-1.1.0/Makefile.am0000775000175000017500000000060512037107461016544 0ustar00hbonshbons00000000000000basedirs = build SparkleLib SparkleLib/Git SUBDIRS = $(basedirs) $(GUISUBDIRS) DIST_SUBDIRS = $(basedirs) SparkleShare EXTRA_DIST = \ News.txt \ README.md \ legal/License.txt \ legal/Trademark.txt \ legal/Authors.txt DISTCLEANFILES = \ intltool-extract \ intltool-merge \ intltool-update \ gnome-doc-utils.make clean-local: rm -rf $(top_builddir)/bin sparkleshare-1.1.0/PaxHeaders.8596/legal0000644000000000000000000000013212150404311016123 xustar000000000000000030 mtime=1369573577.334175261 30 atime=1369573578.250175283 30 ctime=1369573577.334175261 sparkleshare-1.1.0/legal/0000755000000000000000000000000012150404311015246 5ustar00rootroot00000000000000sparkleshare-1.1.0/legal/PaxHeaders.8596/Trademark.txt0000644000000000000000000000013112037107461020664 xustar000000000000000029 mtime=1350340401.07802988 30 atime=1369573544.786174519 30 ctime=1369573577.334175261 sparkleshare-1.1.0/legal/Trademark.txt0000664000175000017500000000404712037107461020250 0ustar00hbonshbons00000000000000We at SparkleShare love it when people talk about SparkleShare, build businesses around SparkleShare and produce products that make life better for SparkleShare users and developers. We do, however, have a trademark, which we are obliged to protect. The trademark gives us the exclusive right to use the term to promote websites, services, businesses and products. Although those rights are exclusively ours, we are happy to give people permission to use the term under most circumstances. The following is a general policy that tells you when you can refer to the SparkleShare name and logo without need of any specific permission from SparkleShare: First, you must make clear that you are not SparkleShare and that you do not represent SparkleShare. A simple disclaimer on your home page is an excellent way of doing that. Second, you may not incorporate the SparkleShare name or logo into the name or logo of your website, product, business or service. Third, you may use the SparkleShare name (but not the SparkleShare logo) only in descriptions of your website, product, business or service to provide accurate information to the public about yourself. Fourth, you may not use the SparkleShare graphical logo. If you would like to use the SparkleShare name or logo for any other use, please contact us and we’ll discuss a way to make that happen. We don’t have strong objections to people using the name for their websites and businesses, but we do need the chance to review such use. Generally, we approve your use if you agree to a few things, mainly: (1) our rights to the SparkleShare trademark are valid and superior to yours and (2) you’ll take appropriate steps to make sure people don’t confuse your website for ours. In other words, it’s not a big deal, and a short conversation (usually done via email) should clear everything up in short order. If you currently have a website that is using the SparkleShare name and you have not gotten permission from us, don’t panic. Let us know, and we’ll work it out, as described above. sparkleshare-1.1.0/legal/PaxHeaders.8596/License.txt0000644000000000000000000000013112037107461020334 xustar000000000000000029 mtime=1350340401.07802988 30 atime=1369573544.778174519 30 ctime=1369573577.330175262 sparkleshare-1.1.0/legal/License.txt0000775000175000017500000007733012037107461017730 0ustar00hbonshbons00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, 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 them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If 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 convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS sparkleshare-1.1.0/legal/PaxHeaders.8596/Authors.txt0000644000000000000000000000013112037107461020377 xustar000000000000000029 mtime=1350340401.07802988 30 atime=1369573544.790174519 30 ctime=1369573577.334175261 sparkleshare-1.1.0/legal/Authors.txt0000775000175000017500000000270212037107461017762 0ustar00hbonshbons00000000000000Points of contact: Maintainer: Hylke Bons Marketing: Alexandre Saiz Verdaguer Translations: Łukasz Jernaś Code: Alejandro Serrano Alexandre Saiz Verdaguer Alex Hudson Benjamin Podszun Bertrand Lorentz Chris Magee Gabriel Burt Garrett LeSage Hylke Bons Kristi Tsukida Konstantinos Vaggelakos Lars Falk-Petersen Luis Cordova Łukasz Jernaś Michael Monreal Nick Richards Oleg Khlystov Paul Cutler Philipp Gildein Ruben Vermeersch Sandy Armstrong Shish Simon Pither Steven Harms Sven Mueller Travis Glenn Hansen Vincent Untz Will Thompson Artwork: Andreas Nilsson Jakub Steiner Hylke Bons Lapo Calamandrei Thanks very much! sparkleshare-1.1.0/PaxHeaders.8596/SparkleLib0000644000000000000000000000013212150404311017067 xustar000000000000000030 mtime=1369573577.538175266 30 atime=1369573578.250175283 30 ctime=1369573577.538175266 sparkleshare-1.1.0/SparkleLib/0000755000000000000000000000000012150404311016212 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/Makefile.in0000644000000000000000000000013112150404111021206 xustar000000000000000030 mtime=1369573449.194172338 29 atime=1369573449.28617234 30 ctime=1369573577.502175266 sparkleshare-1.1.0/SparkleLib/Makefile.in0000664000175000017500000004327212150404111020575 0ustar00hbonshbons00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Defines.cs.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/build/build.environment.mk \ $(top_srcdir)/build/build.mk \ $(top_srcdir)/build/build.rules.mk subdir = SparkleLib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = Defines.cs CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(moduledir)" SCRIPTS = $(module_SCRIPTS) DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ASSEMBLY = SparkleLib TARGET = library ASSEMBLY_INFO_SOURCE = Defines.cs SOURCES = \ Defines.cs \ SparkleBackend.cs \ SparkleConfig.cs \ SparkleExtensions.cs \ SparkleFetcherBase.cs \ SparkleFetcherSSH.cs \ SparkleListenerBase.cs \ SparkleListenerFactory.cs \ SparkleListenerTcp.cs \ SparkleLogger.cs \ SparkleRepoBase.cs \ SparkleUser.cs \ SparkleWatcher.cs \ SparkleWrappers.cs # Initializers MONO_BASE_PATH = # Install Paths DEFAULT_INSTALL_DIR = $(pkglibdir) DIR_BIN = $(top_builddir)/bin # External libraries to link against, generated from configure LINK_SYSTEM = -r:System LINK_SYSTEM_WEB = -r:System.Web LINK_MONO_POSIX = -r:Mono.Posix LINK_GLIB = $(GLIBSHARP_LIBS) LINK_GTK = $(GTKSHARP_LIBS) LINK_GNOME = $(GNOME_SHARP_LIBS) LINK_DBUS = $(NDESK_DBUS_LIBS) $(NDESK_DBUS_GLIB_LIBS) LINK_DBUS_NO_GLIB = $(NDESK_DBUS_LIBS) LINK_APP_INDICATOR = $(APP_INDICATOR_LIBS) REF_NOTIFY_SHARP = $(LINK_SYSTEM) $(LINK_DBUS) $(GTKSHARP_LIBS) $(GLIBSHARP_LIBS) LINK_NOTIFY_SHARP = -r:$(DIR_BIN)/NotifySharp.dll LINK_NOTIFY_SHARP_DEPS = $(REF_NOTIFY_SHARP) $(LINK_NOTIFY_SHARP) REF_SPARKLELIB = $(LINK_SYSTEM) $(LINK_MONO_POSIX) LINK_SPARKLELIB = -r:$(DIR_BIN)/SparkleLib.dll LINK_SPARKLELIB_DEPS = $(REF_SPARKLELIB) $(LINK_SPARKLELIB) REF_SPARKLESHARE = $(LINK_SYSTEM_WEB) $(LINK_DBUS) $(LINK_GTK) $(LINK_SPARKLELIB_DEPS) $(LINK_APP_INDICATOR) # Cute hack to replace a space with something colon := : empty := space := $(empty) $(empty) # Build path to allow running uninstalled RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH)) UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE) # Since all other attempts failed, we currently go this way: # This code adds the file specified in ASSEMBLY_INFO_SOURCE to SOURCES_BUILD. ASSEMBLY_INFO_SOURCE_REAL = \ $(addprefix $(srcdir)/, $(ASSEMBLY_INFO_SOURCE)) SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES)) \ $(ASSEMBLY_INFO_SOURCE_REAL) RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES)) RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \ -resource:$(resource),$(notdir $(resource))) ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET))) ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION) INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR))) @ENABLE_TESTS_TRUE@LINK = " $(NUNIT_LIBS)" @ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS" @ENABLE_ATK_TRUE@ENABLE_ATK_FLAG = "-define:ENABLE_ATK" FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE)) DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/') OUTPUT_FILES = \ $(ASSEMBLY_FILE) \ $(ASSEMBLY_FILE).mdb moduledir = $(INSTALL_DIR_RESOLVED) module_SCRIPTS = $(OUTPUT_FILES) EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) CLEANFILES = $(OUTPUT_FILES) $(ASSEMBLY_FILE).config DISTCLEANFILES = *.pidb MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleLib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleLib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): Defines.cs: $(top_builddir)/config.status $(srcdir)/Defines.cs.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-moduleSCRIPTS: $(module_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \ } \ ; done uninstall-moduleSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-hook install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleSCRIPTS install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-moduleSCRIPTS install-data-hook: for ASM in $(EXTRA_BUNDLE); do \ $(INSTALL) -m 0755 $$ASM $(DESTDIR)$(moduledir); \ done; uninstall-hook: for ASM in $(EXTRA_BUNDLE); do \ rm -f $(DESTDIR)$(moduledir)/`basename $$ASM`; \ done; all: $(ASSEMBLY_FILE) run: @pushd $(top_builddir); \ make run; \ popd; # uncommented for now. # tests are currently excuted from Makefile in $(top_builddir) #test: # @pushd $(top_builddir)/tests; \ # make $(ASSEMBLY); \ # popd; build-debug: @echo $(DEP_LINK) $(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE) $(ASSEMBLY_FILE): $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(DEP_LINK) @mkdir -p $(top_builddir)/bin $(MCS) \ $(GMCS_FLAGS) \ $(ASSEMBLY_BUILD_FLAGS) \ -codepage:utf8 \ -nowarn:0278 -nowarn:0078 $$warn \ -define:HAVE_GTK_2_10 -define:NET_2_0 \ -debug -target:$(TARGET) -out:$@ \ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD) @if [ -e $(srcdir)/$(notdir $@.config) ]; then \ cp $(srcdir)/$(notdir $@.config) $(top_builddir)/bin; \ fi; @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \ fi; # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleListenerFactory.cs0000644000000000000000000000013212024723511024140 xustar000000000000000030 mtime=1347659593.631446302 30 atime=1369573449.582172345 30 ctime=1369573577.526175266 sparkleshare-1.1.0/SparkleLib/SparkleListenerFactory.cs0000664000175000017500000000553112024723511023522 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; namespace SparkleLib { public static class SparkleListenerFactory { private static List listeners = new List (); public static SparkleListenerBase CreateListener (string folder_name, string folder_identifier) { // Check if the user wants to use a global custom notification service string uri = SparkleConfig.DefaultConfig.GetConfigOption ("announcements_url"); // Check if the user wants a use a custom notification service for this folder if (string.IsNullOrEmpty (uri)) uri = SparkleConfig.DefaultConfig.GetFolderOptionalAttribute (folder_name, "announcements_url"); // This is SparkleShare's centralized notification service. // It communicates "It's time to sync!" signals between clients. // // Please see the SparkleShare wiki if you wish to run // your own service instead if (string.IsNullOrEmpty (uri)) uri = "tcp://notifications.sparkleshare.org:443"; Uri announce_uri = new Uri (uri); // Use only one listener per notification service to keep // the number of connections as low as possible foreach (SparkleListenerBase listener in listeners) { if (listener.Server.Equals (announce_uri)) { SparkleLogger.LogInfo ("ListenerFactory", "Refered to existing listener for " + announce_uri); // We already seem to have a listener for this server, // refer to the existing one instead listener.AlsoListenTo (folder_identifier); return (SparkleListenerBase) listener; } } listeners.Add (new SparkleListenerTcp (announce_uri, folder_identifier)); SparkleLogger.LogInfo ("ListenerFactory", "Issued new listener for " + announce_uri); return (SparkleListenerBase) listeners [listeners.Count - 1]; } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleFetcherSSH.cs0000644000000000000000000000013212150404106022755 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 30 ctime=1369573577.522175266 sparkleshare-1.1.0/SparkleLib/SparkleFetcherSSH.cs0000664000175000017500000001351212150404106022335 0ustar00hbonshbons00000000000000using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Security.Cryptography; using System.Threading; namespace SparkleLib { public abstract class SparkleFetcherSSH : SparkleFetcherBase { public SparkleFetcherSSH (SparkleFetcherInfo info) : base (info) { } public override bool Fetch () { if (RemoteUrl.Host.EndsWith(".onion")) { // Tor has special domain names called ".onion addresses". They can only be // resolved by using a proxy via tor. While the rest of the openssh suite // fully supports proxying, ssh-keyscan does not, so we can't use it for .onion SparkleLogger.LogInfo ("Auth", "using tor .onion address skipping ssh-keyscan"); } else if (!RemoteUrl.Scheme.StartsWith ("http")) { string host_key = FetchHostKey (); if (string.IsNullOrEmpty (RemoteUrl.Host) || host_key == null) { SparkleLogger.LogInfo ("Auth", "Could not fetch host key"); this.errors.Add ("error: Could not fetch host key"); return false; } bool warn = true; if (RequiredFingerprint != null) { string host_fingerprint = DeriveFingerprint (host_key); if (host_fingerprint == null || !RequiredFingerprint.Equals (host_fingerprint)) { SparkleLogger.LogInfo ("Auth", "Fingerprint doesn't match"); this.errors.Add ("error: Host fingerprint doesn't match"); return false; } warn = false; SparkleLogger.LogInfo ("Auth", "Fingerprint matches"); } else { SparkleLogger.LogInfo ("Auth", "Skipping fingerprint check"); } AcceptHostKey (host_key, warn); } return true; } private string FetchHostKey () { SparkleLogger.LogInfo ("Auth", "Fetching host key for " + RemoteUrl.Host); Process process = new Process (); process.StartInfo.FileName = "ssh-keyscan"; process.StartInfo.WorkingDirectory = SparkleConfig.DefaultConfig.TmpPath; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.CreateNoWindow = true; process.EnableRaisingEvents = true; string [] key_types = {"rsa", "dsa", "ecdsa"}; foreach (string key_type in key_types) { if (RemoteUrl.Port < 1) process.StartInfo.Arguments = "-t " + key_type + " -p 22 " + RemoteUrl.Host; else process.StartInfo.Arguments = "-t " + key_type + " -p " + RemoteUrl.Port + " " + RemoteUrl.Host; SparkleLogger.LogInfo ("Cmd", process.StartInfo.FileName + " " + process.StartInfo.Arguments); process.Start (); string host_key = process.StandardOutput.ReadToEnd ().Trim (); process.WaitForExit (); if (process.ExitCode == 0 && !string.IsNullOrWhiteSpace (host_key)) return host_key; } return null; } private string DeriveFingerprint (string public_key) { try { MD5 md5 = new MD5CryptoServiceProvider (); string key = public_key.Split (" ".ToCharArray ()) [2]; byte [] b64_bytes = Convert.FromBase64String (key); byte [] md5_bytes = md5.ComputeHash (b64_bytes); string fingerprint = BitConverter.ToString (md5_bytes); return fingerprint.ToLower ().Replace ("-", ":"); } catch (Exception e) { SparkleLogger.LogInfo ("Fetcher", "Failed creating fingerprint: " + e.Message + " " + e.StackTrace); return null; } } private void AcceptHostKey (string host_key, bool warn) { string ssh_config_path = Path.Combine (SparkleConfig.DefaultConfig.HomePath, ".ssh"); string known_hosts_file_path = Path.Combine (ssh_config_path, "known_hosts"); if (!File.Exists (known_hosts_file_path)) { if (!Directory.Exists (ssh_config_path)) Directory.CreateDirectory (ssh_config_path); File.Create (known_hosts_file_path).Close (); } string host = RemoteUrl.Host; string known_hosts = File.ReadAllText (known_hosts_file_path); string [] known_hosts_lines = File.ReadAllLines (known_hosts_file_path); foreach (string line in known_hosts_lines) { if (line.StartsWith (host + " ")) return; } if (known_hosts.EndsWith ("\n")) File.AppendAllText (known_hosts_file_path, host_key + "\n"); else File.AppendAllText (known_hosts_file_path, "\n" + host_key + "\n"); SparkleLogger.LogInfo ("Auth", "Accepted host key for " + host); if (warn) this.warnings.Add ("The following host key has been accepted:\n" + DeriveFingerprint (host_key)); } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleConfig.cs0000644000000000000000000000013212075244311022232 xustar000000000000000030 mtime=1358252233.857936211 30 atime=1369573449.538172345 30 ctime=1369573577.514175265 sparkleshare-1.1.0/SparkleLib/SparkleConfig.cs0000775000175000017500000002560512075244311021623 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.IO; using System.Collections.Generic; using System.Xml; namespace SparkleLib { public class SparkleConfig : XmlDocument { public static SparkleConfig DefaultConfig; public static bool DebugMode = true; public string FullPath; public string TmpPath; public string LogFilePath; public string HomePath { get { if (SparkleBackend.Platform == PlatformID.Win32NT) return Environment.GetFolderPath (Environment.SpecialFolder.UserProfile); else return Environment.GetFolderPath (Environment.SpecialFolder.Personal); } } public string FoldersPath { get { if (GetConfigOption ("folders_path") != null) return GetConfigOption ("folders_path"); else return Path.Combine (HomePath, "SparkleShare"); } } public SparkleConfig (string config_path, string config_file_name) { FullPath = Path.Combine (config_path, config_file_name); LogFilePath = Path.Combine (config_path, "debug_log.txt"); if (File.Exists (LogFilePath)) { try { File.Delete (LogFilePath); } catch (Exception) { // Don't delete the debug.log if, for example, 'tail' is reading it } } if (!Directory.Exists (config_path)) Directory.CreateDirectory (config_path); try { Load (FullPath); } catch (TypeInitializationException) { CreateInitialConfig (); } catch (FileNotFoundException) { CreateInitialConfig (); } catch (XmlException) { FileInfo file = new FileInfo (FullPath); if (file.Length == 0) { File.Delete (FullPath); CreateInitialConfig (); } else { throw new XmlException (FullPath + " does not contain a valid config XML structure."); } } finally { Load (FullPath); TmpPath = Path.Combine (FoldersPath, ".tmp"); Directory.CreateDirectory (TmpPath); } } private void CreateInitialConfig () { string user_name = "Unknown"; if (SparkleBackend.Platform == PlatformID.Unix || SparkleBackend.Platform == PlatformID.MacOSX) { user_name = Environment.UserName; if (string.IsNullOrEmpty (user_name)) user_name = ""; else user_name = user_name.TrimEnd (",".ToCharArray ()); } else { user_name = Environment.UserName; } if (string.IsNullOrEmpty (user_name)) user_name = "Unknown"; string n = Environment.NewLine; File.WriteAllText (FullPath, "" + n + "" + n + " " + n + " " + user_name + "" + n + " Unknown" + n + " " + n + ""); } public SparkleUser User { get { XmlNode name_node = SelectSingleNode ("/sparkleshare/user/name/text()"); XmlNode email_node = SelectSingleNode ("/sparkleshare/user/email/text()"); string user_name = name_node.Value; string user_email = email_node.Value; SparkleUser user = new SparkleUser (user_name, user_email); string [] private_key_file_paths = Directory.GetFiles (Path.GetDirectoryName (FullPath), "*.key"); if (private_key_file_paths.Length > 0) { user.PrivateKey = File.ReadAllText (private_key_file_paths [0]); user.PrivateKeyFilePath = private_key_file_paths [0]; user.PublicKey = File.ReadAllText (private_key_file_paths [0] + ".pub"); user.PublicKeyFilePath = private_key_file_paths [0] + ".pub"; } return user; } set { SparkleUser user = (SparkleUser) value; XmlNode name_node = SelectSingleNode ("/sparkleshare/user/name/text()"); XmlNode email_node = SelectSingleNode ("/sparkleshare/user/email/text()"); name_node.InnerText = user.Name; email_node.InnerText = user.Email; Save (); } } public List Folders { get { List folders = new List (); foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) folders.Add (node_folder ["name"].InnerText); folders.Sort (); return folders; } } public void AddFolder (string name, string identifier, string url, string backend) { XmlNode node_name = CreateElement ("name"); XmlNode node_identifier = CreateElement ("identifier"); XmlNode node_url = CreateElement ("url"); XmlNode node_backend = CreateElement ("backend"); node_name.InnerText = name; node_identifier.InnerText = identifier; node_url.InnerText = url; node_backend.InnerText = backend; XmlNode node_folder = CreateNode (XmlNodeType.Element, "folder", null); node_folder.AppendChild (node_name); node_folder.AppendChild (node_identifier); node_folder.AppendChild (node_url); node_folder.AppendChild (node_backend); XmlNode node_root = SelectSingleNode ("/sparkleshare"); node_root.AppendChild (node_folder); Save (); } public void RemoveFolder (string name) { foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) { if (node_folder ["name"].InnerText.Equals (name)) SelectSingleNode ("/sparkleshare").RemoveChild (node_folder); } Save (); } public void RenameFolder (string identifier, string name) { XmlNode node_folder = SelectSingleNode ( string.Format ("/sparkleshare/folder[identifier=\"{0}\"]", identifier)); node_folder ["name"].InnerText = name; Save (); } public string GetBackendForFolder (string name) { return GetFolderValue (name, "backend"); } public string GetIdentifierForFolder (string name) { return GetFolderValue (name, "identifier"); } public string GetUrlForFolder (string name) { return GetFolderValue (name, "url"); } public bool IdentifierExists (string identifier) { if (identifier == null) throw new ArgumentNullException (); foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) { XmlElement folder_id = node_folder ["identifier"]; if (folder_id != null && identifier.Equals (folder_id.InnerText)) return true; } return false; } public bool SetFolderOptionalAttribute (string folder_name, string key, string value) { XmlNode folder = GetFolder (folder_name); if (folder == null) return false; if (folder [key] != null) { folder [key].InnerText = value; } else { XmlNode new_node = CreateElement (key); new_node.InnerText = value; folder.AppendChild (new_node); } Save (); return true; } public string GetFolderOptionalAttribute (string folder_name, string key) { XmlNode folder = GetFolder (folder_name); if (folder != null) { if (folder [key] != null) return folder [key].InnerText; else return null; } else { return null; } } public string GetConfigOption (string name) { XmlNode node = SelectSingleNode ("/sparkleshare/" + name); if (node != null) return node.InnerText; else return null; } public void SetConfigOption (string name, string content) { XmlNode node = SelectSingleNode ("/sparkleshare/" + name); if (node != null) { node.InnerText = content; } else { node = CreateElement (name); node.InnerText = content; XmlNode node_root = SelectSingleNode ("/sparkleshare"); node_root.AppendChild (node); } Save (); SparkleLogger.LogInfo ("Config", "Updated option " + name + ":" + content); } private XmlNode GetFolder (string name) { return SelectSingleNode (string.Format ("/sparkleshare/folder[name=\"{0}\"]", name)); } private string GetFolderValue (string name, string key) { XmlNode folder = GetFolder(name); if ((folder != null) && (folder [key] != null)) return folder [key].InnerText; else return null; } private void Save () { if (!File.Exists (FullPath)) throw new FileNotFoundException (FullPath + " does not exist"); Save (FullPath); SparkleLogger.LogInfo ("Config", "Wrote to '" + FullPath + "'"); } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/Defines.cs0000644000000000000000000000013112150404106021051 xustar000000000000000030 mtime=1369573446.186172269 29 atime=1369573446.20217227 30 ctime=1369573577.510175265 sparkleshare-1.1.0/SparkleLib/Defines.cs0000664000175000017500000000224512150404106020433 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Reflection; [assembly:AssemblyTitle ("SparkleLib")] [assembly:AssemblyVersion ("1.1.0")] [assembly:AssemblyCopyright ("Copyright (c) 2010 Hylke Bons and others")] [assembly:AssemblyTrademark ("SparkleShare is a trademark of SparkleShare Ltd.")] namespace SparkleLib { public class Defines { public const string INSTALL_DIR = "/usr/local/share/sparkleshare"; } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleWatcher.cs0000644000000000000000000000013212013750144022420 xustar000000000000000030 mtime=1345310820.338218931 30 atime=1369573449.606172347 30 ctime=1369573577.534175266 sparkleshare-1.1.0/SparkleLib/SparkleWatcher.cs0000775000175000017500000000346112013750144022005 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.IO; namespace SparkleLib { public class SparkleWatcher : FileSystemWatcher { public event ChangeEventEventHandler ChangeEvent = delegate { }; public delegate void ChangeEventEventHandler (FileSystemEventArgs args); private Object thread_lock = new Object (); public SparkleWatcher (string path) : base (path) { IncludeSubdirectories = true; EnableRaisingEvents = true; Filter = "*"; Changed += OnChanged; Created += OnChanged; Deleted += OnChanged; Renamed += OnChanged; } private void OnChanged (object sender, FileSystemEventArgs args) { ChangeEvent (args); } public void Enable () { lock (this.thread_lock) EnableRaisingEvents = true; } public void Disable () { lock (this.thread_lock) EnableRaisingEvents = false; } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleUser.cs0000644000000000000000000000013212075244311021743 xustar000000000000000030 mtime=1358252233.857936211 30 atime=1369573449.606172347 30 ctime=1369573577.534175266 sparkleshare-1.1.0/SparkleLib/SparkleUser.cs0000664000175000017500000000230012075244311021314 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; namespace SparkleLib { public class SparkleUser { public readonly string Name; public readonly string Email; public string PrivateKey; public string PrivateKeyFilePath; public string PublicKey; public string PublicKeyFilePath; public SparkleUser (string name, string email) { Name = name; Email = email; } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleBackend.cs0000644000000000000000000000013212013750144022352 xustar000000000000000030 mtime=1345310820.334218931 30 atime=1369573449.530172344 30 ctime=1369573577.514175265 sparkleshare-1.1.0/SparkleLib/SparkleBackend.cs0000775000175000017500000000371112013750144021735 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Reflection; using System.Runtime.InteropServices; namespace SparkleLib { public static class SparkleBackend { public static string Version { get { string version = "" + Assembly.GetExecutingAssembly ().GetName ().Version; return version.Substring (0, version.Length - 2); } } // This fixes the PlatformID enumeration for MacOSX in Environment.OSVersion.Platform, // which is intentionally broken in Mono for historical reasons public static PlatformID Platform { get { IntPtr buf = IntPtr.Zero; try { buf = Marshal.AllocHGlobal (8192); if (uname (buf) == 0 && Marshal.PtrToStringAnsi (buf) == "Darwin") return PlatformID.MacOSX; } catch { } finally { if (buf != IntPtr.Zero) Marshal.FreeHGlobal (buf); } return Environment.OSVersion.Platform; } } [DllImport ("libc")] private static extern int uname (IntPtr buf); } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212150404106021202 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 30 ctime=1369573577.502175266 sparkleshare-1.1.0/SparkleLib/Makefile.am0000775000175000017500000000122312150404106020561 0ustar00hbonshbons00000000000000ASSEMBLY = SparkleLib TARGET = library ASSEMBLY_INFO_SOURCE = Defines.cs SOURCES = \ Defines.cs \ SparkleBackend.cs \ SparkleConfig.cs \ SparkleExtensions.cs \ SparkleFetcherBase.cs \ SparkleFetcherSSH.cs \ SparkleListenerBase.cs \ SparkleListenerFactory.cs \ SparkleListenerTcp.cs \ SparkleLogger.cs \ SparkleRepoBase.cs \ SparkleUser.cs \ SparkleWatcher.cs \ SparkleWrappers.cs install-data-hook: for ASM in $(EXTRA_BUNDLE); do \ $(INSTALL) -m 0755 $$ASM $(DESTDIR)$(moduledir); \ done; uninstall-hook: for ASM in $(EXTRA_BUNDLE); do \ rm -f $(DESTDIR)$(moduledir)/`basename $$ASM`; \ done; include $(top_srcdir)/build/build.mk sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleExtensions.cs0000644000000000000000000000013212075245462023174 xustar000000000000000030 mtime=1358252850.957950292 30 atime=1369573449.562172345 30 ctime=1369573577.518175266 sparkleshare-1.1.0/SparkleLib/SparkleExtensions.cs0000775000175000017500000000552012075245462022557 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com) // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see (http://www.gnu.org/licenses/). using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace SparkleLib { public static class Extensions { public static string Combine (this string [] parts) { string new_path = ""; foreach (string part in parts) new_path = Path.Combine (new_path, part); return new_path; } public static string SHA1 (this string s) { SHA1 sha1 = new SHA1CryptoServiceProvider (); byte [] bytes = ASCIIEncoding.Default.GetBytes (s); byte [] sha1_bytes = sha1.ComputeHash (bytes); return BitConverter.ToString (sha1_bytes).ToLower ().Replace ("-", ""); } public static string MD5 (this string s) { MD5 md5 = new MD5CryptoServiceProvider (); byte [] bytes = ASCIIEncoding.Default.GetBytes (s); byte [] md5_bytes = md5.ComputeHash (bytes); return BitConverter.ToString (md5_bytes).ToLower ().Replace ("-", ""); } // Format a file size nicely with small caps. // Example: 1048576 becomes "1 ᴍʙ" public static string ToSize (this double byte_count) { if (byte_count >= 1099511627776) return String.Format ("{0:##.##} ᴛʙ", Math.Round (byte_count / 1099511627776, 1)); else if (byte_count >= 1073741824) return String.Format ("{0:##.##} ɢʙ", Math.Round (byte_count / 1073741824, 1)); else if (byte_count >= 1048576) return String.Format ("{0:##.##} ᴍʙ", Math.Round (byte_count / 1048576, 0)); else if (byte_count >= 1024) return String.Format ("{0:##.##} ᴋʙ", Math.Round (byte_count / 1024, 0)); else return byte_count.ToString () + " ʙ"; } public static bool IsSymlink (this FileSystemInfo file) { return ((file.Attributes & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint); } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleRepoBase.cs0000644000000000000000000000013212150404106022517 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 30 ctime=1369573577.530175266 sparkleshare-1.1.0/SparkleLib/SparkleRepoBase.cs0000775000175000017500000004061412150404106022105 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.IO; using System.Threading; using Timers = System.Timers; namespace SparkleLib { public enum SyncStatus { Idle, SyncUp, SyncDown, Error } public enum ErrorStatus { None, HostUnreachable, HostIdentityChanged, AuthenticationFailed, DiskSpaceExceeded, UnreadableFiles, NotFound } public abstract class SparkleRepoBase { public abstract bool SyncUp (); public abstract bool SyncDown (); public abstract void RestoreFile (string path, string revision, string target_file_path); public abstract bool HasUnsyncedChanges { get; set; } public abstract bool HasLocalChanges { get; } public abstract bool HasRemoteChanges { get; } public abstract string CurrentRevision { get; } public abstract double Size { get; } public abstract double HistorySize { get; } public abstract List ExcludePaths { get; } public abstract List GetChangeSets (); public abstract List GetChangeSets (string path); public static bool UseCustomWatcher = false; public event SyncStatusChangedEventHandler SyncStatusChanged = delegate { }; public delegate void SyncStatusChangedEventHandler (SyncStatus new_status); public event ProgressChangedEventHandler ProgressChanged = delegate { }; public delegate void ProgressChangedEventHandler (); public event NewChangeSetEventHandler NewChangeSet = delegate { }; public delegate void NewChangeSetEventHandler (SparkleChangeSet change_set); public event Action ConflictResolved = delegate { }; public event Action ChangesDetected = delegate { }; public readonly string LocalPath; public readonly string Name; public readonly Uri RemoteUrl; public List ChangeSets { get; protected set; } public SyncStatus Status { get; private set; } public ErrorStatus Error { get; protected set; } public bool IsBuffering { get; private set; } public double ProgressPercentage { get; private set; } public double ProgressSpeed { get; private set; } public virtual string Identifier { get { if (this.identifier != null) return this.identifier; string id_path = Path.Combine (LocalPath, ".sparkleshare"); if (File.Exists (id_path)) this.identifier = File.ReadAllText (id_path).Trim (); if (!string.IsNullOrEmpty (this.identifier)) { return this.identifier; } else { string config_identifier = this.local_config.GetIdentifierForFolder (Name); if (!string.IsNullOrEmpty (config_identifier)) this.identifier = config_identifier; else this.identifier = SparkleFetcherBase.CreateIdentifier (); File.WriteAllText (id_path, this.identifier); File.SetAttributes (id_path, FileAttributes.Hidden); SparkleLogger.LogInfo ("Local", Name + " | Assigned identifier: " + this.identifier); return this.identifier; } } } protected SparkleConfig local_config; private string identifier; private SparkleListenerBase listener; private SparkleWatcher watcher; private TimeSpan poll_interval = PollInterval.Short; private DateTime last_poll = DateTime.Now; private DateTime progress_last_change = DateTime.Now; private Timers.Timer remote_timer = new Timers.Timer () { Interval = 5000 }; private bool is_syncing { get { return (Status == SyncStatus.SyncUp || Status == SyncStatus.SyncDown || IsBuffering); } } private static class PollInterval { public static readonly TimeSpan Short = new TimeSpan (0, 0, 5, 0); public static readonly TimeSpan Long = new TimeSpan (0, 0, 15, 0); } public SparkleRepoBase (string path, SparkleConfig config) { SparkleLogger.LogInfo (path, "Initializing..."); Status = SyncStatus.Idle; Error = ErrorStatus.None; this.local_config = config; LocalPath = path; Name = Path.GetFileName (LocalPath); RemoteUrl = new Uri (this.local_config.GetUrlForFolder (Name)); IsBuffering = false; this.identifier = Identifier; ChangeSets = GetChangeSets (); string identifier_file_path = Path.Combine (LocalPath, ".sparkleshare"); File.SetAttributes (identifier_file_path, FileAttributes.Hidden); SyncStatusChanged += delegate (SyncStatus status) { Status = status; }; if (!UseCustomWatcher) this.watcher = new SparkleWatcher (LocalPath); new Thread (() => CreateListener ()).Start (); this.remote_timer.Elapsed += delegate { if (this.is_syncing || IsBuffering) return; int time_comparison = DateTime.Compare (this.last_poll, DateTime.Now.Subtract (this.poll_interval)); if (time_comparison < 0) { if (HasUnsyncedChanges && !this.is_syncing) SyncUpBase (); this.last_poll = DateTime.Now; if (HasRemoteChanges && !this.is_syncing) SyncDownBase (); if (this.listener.IsConnected) this.poll_interval = PollInterval.Long; } // In the unlikely case that we haven't synced up our // changes or the server was down, sync up again if (HasUnsyncedChanges && !this.is_syncing && Error == ErrorStatus.None) SyncUpBase (); }; } public void Initialize () { // Sync up everything that changed since we've been offline new Thread (() => { if (HasRemoteChanges) SyncDownBase (); if (HasUnsyncedChanges || HasLocalChanges) { do { SyncUpBase (); } while (HasLocalChanges); } if (!UseCustomWatcher) this.watcher.ChangeEvent += OnFileActivity; this.remote_timer.Start (); }).Start (); } private Object buffer_lock = new Object (); public void OnFileActivity (FileSystemEventArgs args) { if (IsBuffering || this.is_syncing) return; if (args != null) { foreach (string exclude_path in ExcludePaths) { if (args.FullPath.Contains (Path.DirectorySeparatorChar + exclude_path)) return; } } lock (this.buffer_lock) { if (IsBuffering || this.is_syncing || !HasLocalChanges) return; IsBuffering = true; } ChangesDetected (); if (!UseCustomWatcher) this.watcher.Disable (); SparkleLogger.LogInfo ("Local", Name + " | Activity detected, waiting for it to settle..."); List size_buffer = new List (); DirectoryInfo info = new DirectoryInfo (LocalPath); do { if (size_buffer.Count >= 4) size_buffer.RemoveAt (0); size_buffer.Add (CalculateSize (info)); if (size_buffer.Count >= 4 && size_buffer [0].Equals (size_buffer [1]) && size_buffer [1].Equals (size_buffer [2]) && size_buffer [2].Equals (size_buffer [3])) { SparkleLogger.LogInfo ("Local", Name + " | Activity has settled"); IsBuffering = false; if (HasLocalChanges) { do { SyncUpBase (); if (Error == ErrorStatus.UnreadableFiles) return; } while (HasLocalChanges); } else { SyncStatusChanged (SyncStatus.Idle); } } else { Thread.Sleep (500); } } while (IsBuffering); if (!UseCustomWatcher) this.watcher.Enable (); } public void ForceRetry () { if (Error == ErrorStatus.None || this.is_syncing) return; SyncUpBase (); } protected void OnConflictResolved () { ConflictResolved (); } protected void OnProgressChanged (double progress_percentage, double progress_speed) { if (progress_percentage < 1) return; // Only trigger the ProgressChanged event once per second if (DateTime.Compare (this.progress_last_change, DateTime.Now.Subtract (new TimeSpan (0, 0, 0, 1))) >= 0) return; if (progress_percentage == 100.0) progress_percentage = 99.0; ProgressPercentage = progress_percentage; ProgressSpeed = progress_speed; this.progress_last_change = DateTime.Now; ProgressChanged (); } private void SyncUpBase () { if (!UseCustomWatcher) this.watcher.Disable (); SparkleLogger.LogInfo ("SyncUp", Name + " | Initiated"); HasUnsyncedChanges = true; SyncStatusChanged (SyncStatus.SyncUp); if (SyncUp ()) { SparkleLogger.LogInfo ("SyncUp", Name + " | Done"); ChangeSets = GetChangeSets (); HasUnsyncedChanges = false; this.poll_interval = PollInterval.Long; SyncStatusChanged (SyncStatus.Idle); this.listener.Announce (new SparkleAnnouncement (Identifier, CurrentRevision)); } else { SparkleLogger.LogInfo ("SyncUp", Name + " | Error"); SyncDownBase (); if (!UseCustomWatcher) this.watcher.Disable (); if (Error == ErrorStatus.None && SyncUp ()) { HasUnsyncedChanges = false; this.listener.Announce (new SparkleAnnouncement (Identifier, CurrentRevision)); SyncStatusChanged (SyncStatus.Idle); } else { this.poll_interval = PollInterval.Short; SyncStatusChanged (SyncStatus.Error); } } ProgressPercentage = 0.0; ProgressSpeed = 0.0; if (!UseCustomWatcher) this.watcher.Enable (); } private void SyncDownBase () { if (!UseCustomWatcher) this.watcher.Disable (); SparkleLogger.LogInfo ("SyncDown", Name + " | Initiated"); SyncStatusChanged (SyncStatus.SyncDown); string pre_sync_revision = CurrentRevision; if (SyncDown ()) { SparkleLogger.LogInfo ("SyncDown", Name + " | Done"); Error = ErrorStatus.None; string identifier_file_path = Path.Combine (LocalPath, ".sparkleshare"); File.SetAttributes (identifier_file_path, FileAttributes.Hidden); ChangeSets = GetChangeSets (); if (!pre_sync_revision.Equals (CurrentRevision) && ChangeSets != null && ChangeSets.Count > 0 && !ChangeSets [0].User.Name.Equals (this.local_config.User.Name)) { bool emit_change_event = true; foreach (SparkleChange change in ChangeSets [0].Changes) { if (change.Path.EndsWith (".sparkleshare")) { emit_change_event = false; break; } } if (emit_change_event) NewChangeSet (ChangeSets [0]); } // There could be changes from a resolved // conflict. Tries only once, then lets // the timer try again periodically if (HasUnsyncedChanges) { SyncStatusChanged (SyncStatus.SyncUp); if (SyncUp ()) HasUnsyncedChanges = false; } SyncStatusChanged (SyncStatus.Idle); } else { SparkleLogger.LogInfo ("SyncDown", Name + " | Error"); ChangeSets = GetChangeSets (); SyncStatusChanged (SyncStatus.Error); } ProgressPercentage = 0.0; ProgressSpeed = 0.0; SyncStatusChanged (SyncStatus.Idle); if (!UseCustomWatcher) this.watcher.Enable (); } private void CreateListener () { this.listener = SparkleListenerFactory.CreateListener (Name, Identifier); if (this.listener.IsConnected) this.poll_interval = PollInterval.Long; this.listener.Disconnected += ListenerDisconnectedDelegate; this.listener.AnnouncementReceived += ListenerAnnouncementReceivedDelegate; if (!this.listener.IsConnected && !this.listener.IsConnecting) this.listener.Connect (); } private void ListenerDisconnectedDelegate () { this.poll_interval = PollInterval.Short; SparkleLogger.LogInfo (Name, "Falling back to regular polling"); } private void ListenerAnnouncementReceivedDelegate (SparkleAnnouncement announcement) { string identifier = Identifier; if (!announcement.FolderIdentifier.Equals (identifier)) return; if (!announcement.Message.Equals (CurrentRevision)) { while (this.is_syncing) Thread.Sleep (100); SparkleLogger.LogInfo (Name, "Syncing due to announcement"); SyncDownBase (); } } // Recursively gets a folder's size in bytes private long CalculateSize (DirectoryInfo parent) { if (ExcludePaths.Contains (parent.Name)) return 0; long size = 0; try { foreach (DirectoryInfo directory in parent.GetDirectories ()) size += CalculateSize (directory); foreach (FileInfo file in parent.GetFiles ()) size += file.Length; } catch (Exception e) { SparkleLogger.LogInfo ("Local", "Error calculating directory size", e); } return size; } public void Dispose () { this.remote_timer.Stop (); this.remote_timer.Dispose (); this.listener.Disconnected -= ListenerDisconnectedDelegate; this.listener.AnnouncementReceived -= ListenerAnnouncementReceivedDelegate; if (!UseCustomWatcher) this.watcher.Dispose (); } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleListenerBase.cs0000644000000000000000000000013212024723511023403 xustar000000000000000030 mtime=1347659593.631446302 30 atime=1369573449.574172347 30 ctime=1369573577.522175266 sparkleshare-1.1.0/SparkleLib/SparkleListenerBase.cs0000775000175000017500000001557012024723511022774 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.Timers; namespace SparkleLib { // A persistent connection to the server that // listens for change notifications public abstract class SparkleListenerBase { public event Action Connected = delegate { }; public event Action Disconnected = delegate { }; public event AnnouncementReceivedEventHandler AnnouncementReceived = delegate { }; public delegate void AnnouncementReceivedEventHandler (SparkleAnnouncement announcement); public readonly Uri Server; public abstract void Connect (); public abstract bool IsConnected { get; } public abstract bool IsConnecting { get; } protected abstract void AnnounceInternal (SparkleAnnouncement announcent); protected abstract void AlsoListenToInternal (string folder_identifier); protected List channels = new List (); private int max_recent_announcements = 10; private Dictionary> recent_announcements = new Dictionary> (); private Dictionary queue_up = new Dictionary (); private Timer reconnect_timer = new Timer { Interval = 60 * 1000, Enabled = true }; public SparkleListenerBase (Uri server, string folder_identifier) { Server = server; this.channels.Add (folder_identifier); this.reconnect_timer.Elapsed += delegate { if (!IsConnected && !IsConnecting) Reconnect (); }; this.reconnect_timer.Start (); } public void Announce (SparkleAnnouncement announcement) { if (!IsRecentAnnouncement (announcement)) { if (IsConnected) { SparkleLogger.LogInfo ("Listener", "Announcing message " + announcement.Message + " to " + announcement.FolderIdentifier + " on " + Server); AnnounceInternal (announcement); AddRecentAnnouncement (announcement); } else { SparkleLogger.LogInfo ("Listener", "Can't send message to " + Server + ". Queuing message"); this.queue_up [announcement.FolderIdentifier] = announcement; } } else { SparkleLogger.LogInfo ("Listener", "Already processed message " + announcement.Message + " to " + announcement.FolderIdentifier + " from " + Server); } } public void AlsoListenTo (string channel) { if (!this.channels.Contains (channel)) this.channels.Add (channel); if (IsConnected) { SparkleLogger.LogInfo ("Listener", "Subscribing to channel " + channel + " on " + Server); AlsoListenToInternal (channel); } } public void Reconnect () { SparkleLogger.LogInfo ("Listener", "Trying to reconnect to " + Server); Connect (); } public void OnConnected () { foreach (string channel in this.channels.GetRange (0, this.channels.Count)) { SparkleLogger.LogInfo ("Listener", "Subscribing to channel " + channel + " on " + Server); AlsoListenToInternal (channel); } SparkleLogger.LogInfo ("Listener", "Listening for announcements on " + Server); Connected (); if (this.queue_up.Count > 0) { SparkleLogger.LogInfo ("Listener", "Delivering " + this.queue_up.Count + " queued messages..."); foreach (KeyValuePair item in this.queue_up) { SparkleAnnouncement announcement = item.Value; Announce (announcement); } } } public void OnDisconnected (string message) { SparkleLogger.LogInfo ("Listener", "Disconnected from " + Server + ": " + message); Disconnected (); } public void OnAnnouncement (SparkleAnnouncement announcement) { SparkleLogger.LogInfo ("Listener", "Got message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + Server); if (IsRecentAnnouncement (announcement)) return; AddRecentAnnouncement (announcement); AnnouncementReceived (announcement); } public virtual void Dispose () { this.reconnect_timer.Dispose (); } private bool IsRecentAnnouncement (SparkleAnnouncement announcement) { if (!this.recent_announcements.ContainsKey (announcement.FolderIdentifier)) { return false; } else { foreach (SparkleAnnouncement recent_announcement in GetRecentAnnouncements (announcement.FolderIdentifier)) { if (recent_announcement.Message.Equals (announcement.Message)) return true; } return false; } } private List GetRecentAnnouncements (string folder_identifier) { if (!this.recent_announcements.ContainsKey (folder_identifier)) this.recent_announcements [folder_identifier] = new List (); return this.recent_announcements [folder_identifier]; } private void AddRecentAnnouncement (SparkleAnnouncement announcement) { List recent_announcements = GetRecentAnnouncements (announcement.FolderIdentifier); if (!IsRecentAnnouncement (announcement)) recent_announcements.Add (announcement); if (recent_announcements.Count > this.max_recent_announcements) recent_announcements.RemoveRange (0, recent_announcements.Count - this.max_recent_announcements); } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/Defines.cs.in0000644000000000000000000000013212013750144021463 xustar000000000000000030 mtime=1345310820.330218931 30 atime=1369573544.958174523 30 ctime=1369573577.498175265 sparkleshare-1.1.0/SparkleLib/Defines.cs.in0000775000175000017500000000225312013750144021046 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Reflection; [assembly:AssemblyTitle ("SparkleLib")] [assembly:AssemblyVersion ("@VERSION@")] [assembly:AssemblyCopyright ("Copyright (c) 2010 Hylke Bons and others")] [assembly:AssemblyTrademark ("SparkleShare is a trademark of SparkleShare Ltd.")] namespace SparkleLib { public class Defines { public const string INSTALL_DIR = "@expanded_datadir@/sparkleshare"; } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleFetcherBase.cs0000644000000000000000000000013212150404106023172 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 30 ctime=1369573577.518175266 sparkleshare-1.1.0/SparkleLib/SparkleFetcherBase.cs0000775000175000017500000002106112150404106022553 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Security.Cryptography; using System.Threading; namespace SparkleLib { public class SparkleFetcherInfo { public string Address; public string Fingerprint; public string RemotePath; public string TargetDirectory; public string AnnouncementsUrl; public bool FetchPriorHistory; } public abstract class SparkleFetcherBase { public event Action Started = delegate { }; public event Action Failed = delegate { }; public event FinishedEventHandler Finished = delegate { }; public delegate void FinishedEventHandler (bool repo_is_encrypted, bool repo_is_empty, string [] warnings); public event ProgressChangedEventHandler ProgressChanged = delegate { }; public delegate void ProgressChangedEventHandler (double percentage); public abstract bool Fetch (); public abstract void Stop (); public abstract bool IsFetchedRepoEmpty { get; } public abstract bool IsFetchedRepoPasswordCorrect (string password); public abstract void EnableFetchedRepoCrypto (string password); public Uri RemoteUrl { get; protected set; } public string RequiredFingerprint { get; protected set; } public readonly bool FetchPriorHistory = false; public string TargetFolder { get; protected set; } public bool IsActive { get; private set; } public string Identifier; public SparkleFetcherInfo OriginalFetcherInfo; public string [] Warnings { get { return this.warnings.ToArray (); } } public string [] Errors { get { return this.errors.ToArray (); } } protected List warnings = new List (); protected List errors = new List (); protected string [] ExcludeRules = new string [] { "*.autosave", // Various autosaving apps "*~", // gedit and emacs ".~lock.*", // LibreOffice "*.part", "*.crdownload", // Firefox and Chromium temporary download files ".*.sw[a-z]", "*.un~", "*.swp", "*.swo", // vi(m) ".directory", // KDE ".DS_Store", "Icon\r", "._*", ".Spotlight-V100", ".Trashes", // Mac OS X "*(Autosaved).graffle", // Omnigraffle "Thumbs.db", "Desktop.ini", // Windows "~*.tmp", "~*.TMP", "*~*.tmp", "*~*.TMP", // MS Office "~*.ppt", "~*.PPT", "~*.pptx", "~*.PPTX", "~*.xls", "~*.XLS", "~*.xlsx", "~*.XLSX", "~*.doc", "~*.DOC", "~*.docx", "~*.DOCX", "*/CVS/*", ".cvsignore", "*/.cvsignore", // CVS "/.svn/*", "*/.svn/*", // Subversion "/.hg/*", "*/.hg/*", "*/.hgignore", // Mercurial "/.bzr/*", "*/.bzr/*", "*/.bzrignore", // Bazaar "*<*", "*>*", "*:*", "*\"*", "*|*", "*\\?*", "*\\**", "*\\\\*" // Not allowed on Windows systems, // see (http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx) }; private Thread thread; public SparkleFetcherBase (SparkleFetcherInfo info) { OriginalFetcherInfo = info; RequiredFingerprint = info.Fingerprint; FetchPriorHistory = info.FetchPriorHistory; string remote_path = info.RemotePath.Trim ("/".ToCharArray ()); string address = info.Address; if (address.EndsWith ("/")) address = address.Substring (0, address.Length - 1); if (!remote_path.StartsWith ("/")) remote_path = "/" + remote_path; if (!address.Contains ("://")) address = "ssh://" + address; TargetFolder = info.TargetDirectory; RemoteUrl = new Uri (address + remote_path); IsActive = false; } public void Start () { IsActive = true; Started (); SparkleLogger.LogInfo ("Fetcher", TargetFolder + " | Fetching folder: " + RemoteUrl); if (Directory.Exists (TargetFolder)) Directory.Delete (TargetFolder, true); this.thread = new Thread (() => { if (Fetch ()) { Thread.Sleep (500); SparkleLogger.LogInfo ("Fetcher", "Finished"); IsActive = false; bool repo_is_encrypted = (RemoteUrl.AbsolutePath.Contains ("-crypto") || RemoteUrl.Host.Equals ("sparkleshare.net")); Finished (repo_is_encrypted, IsFetchedRepoEmpty, Warnings); } else { Thread.Sleep (500); SparkleLogger.LogInfo ("Fetcher", "Failed"); IsActive = false; Failed (); } }); this.thread.Start (); } public virtual void Complete () { string identifier_path = Path.Combine (TargetFolder, ".sparkleshare"); if (File.Exists (identifier_path)) { Identifier = File.ReadAllText (identifier_path).Trim (); } else { Identifier = CreateIdentifier (); File.WriteAllText (identifier_path, Identifier); CreateInitialChangeSet (); } File.SetAttributes (identifier_path, FileAttributes.Hidden); } // Create an initial change set when the // user has fetched an empty remote folder private void CreateInitialChangeSet () { string file_path = Path.Combine (TargetFolder, "SparkleShare.txt"); string n = Environment.NewLine; UriBuilder uri_builder = new UriBuilder (RemoteUrl); if (RemoteUrl.Scheme.Contains ("http")) { uri_builder.UserName = ""; uri_builder.Password = ""; } string text = "Congratulations, you've successfully created a SparkleShare repository!" + n + n + "Any files you add or change in this folder will be automatically synced to " + n + uri_builder.ToString () + " and everyone connected to it." + n + n + "SparkleShare is an Open Source software program that helps people collaborate and " + n + "share files. If you like what we do, consider buying us a beer: http://www.sparkleshare.org/" + n + n + "Have fun! :)" + n; if (RemoteUrl.AbsolutePath.Contains ("-crypto") || RemoteUrl.Host.Equals ("sparkleshare.net")) text = text.Replace ("a SparkleShare repository", "an encrypted SparkleShare repository"); File.WriteAllText (file_path, text); } public static string CreateIdentifier () { return Path.GetRandomFileName ().SHA1 (); } public void Dispose () { if (this.thread != null) this.thread.Abort (); } protected void OnProgressChanged (double percentage) { ProgressChanged (percentage); } protected string GenerateCryptoSalt () { string salt = Path.GetRandomFileName ().SHA1 (); return salt.Substring (0, 16); } public static string GetBackend (string address) { if (address.StartsWith ("ssh+")) { string backend = address.Substring (0, address.IndexOf ("://")); backend = backend.Substring (4); return char.ToUpper (backend [0]) + backend.Substring (1); } else { return "Git"; } } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleLogger.cs0000644000000000000000000000013212053415662022251 xustar000000000000000030 mtime=1353587634.748507774 30 atime=1369573449.598172348 30 ctime=1369573577.530175266 sparkleshare-1.1.0/SparkleLib/SparkleLogger.cs0000775000175000017500000001012212053415662021626 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.IO; namespace SparkleLib { public static class SparkleLogger { private static Object debug_lock = new Object (); private static int log_size = 0; public static void LogInfo (string type, string message) { LogInfo (type, message, null); } public static void LogInfo (string type, string message, Exception exception) { string timestamp = DateTime.Now.ToString ("HH:mm:ss"); string line = timestamp + " | " + type + " | " + message; if (exception != null) line += ": " + exception.Message + " " + exception.StackTrace; if (SparkleConfig.DebugMode) Console.WriteLine (line); lock (debug_lock) { // Don't let the log get bigger than 1000 lines if (log_size >= 1000) { File.WriteAllText (SparkleConfig.DefaultConfig.LogFilePath, line + Environment.NewLine); log_size = 0; } else { File.AppendAllText (SparkleConfig.DefaultConfig.LogFilePath, line + Environment.NewLine); log_size++; } } } public static void WriteCrashReport (Exception e) { string home_path = Environment.GetFolderPath (Environment.SpecialFolder.Personal); if (SparkleBackend.Platform == PlatformID.Win32NT) home_path = Environment.GetFolderPath (Environment.SpecialFolder.UserProfile); string crash_report_file_path = new string [] { home_path, "SparkleShare", "crash_report.txt" }.Combine (); string n = Environment.NewLine; string crash_report = "Oops! SparkleShare has crashed... :(" + n + n + "If you want to help fix this crash, please report it at " + n + "https://github.com/hbons/SparkleShare/issues and include the lines below." + n + n + "Remove any sensitive information like file names, IP addresses, domain names, etc. if needed." + n + n + "------" + n + n + "SparkleShare version: " + SparkleLib.SparkleBackend.Version + n + "Operating system: " + SparkleLib.SparkleBackend.Platform + " " + Environment.OSVersion + n; crash_report += e.GetType () + ": " + e.Message + n + e.StackTrace + n; if (e.InnerException != null) crash_report += n + e.InnerException.Message + n + e.InnerException.StackTrace + n; if (SparkleConfig.DefaultConfig != null && File.Exists (SparkleConfig.DefaultConfig.LogFilePath)) { string debug_log = File.ReadAllText (SparkleConfig.DefaultConfig.LogFilePath); string [] debug_lines = debug_log.Split (Environment.NewLine.ToCharArray ()); int line_count = 50; if (debug_lines.Length > line_count) { crash_report += string.Join (Environment.NewLine, debug_lines, (debug_lines.Length - line_count), line_count) + n; } else { crash_report += debug_log + n; } } File.WriteAllText (crash_report_file_path, crash_report); } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleWrappers.cs0000644000000000000000000000013212117355270022634 xustar000000000000000030 mtime=1363008184.687233359 30 atime=1369573449.610172347 30 ctime=1369573577.538175266 sparkleshare-1.1.0/SparkleLib/SparkleWrappers.cs0000664000175000017500000000577512117355270022230 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.IO; using System.Collections.Generic; namespace SparkleLib { public enum SparkleChangeType { Added, Edited, Deleted, Moved } public class SparkleChangeSet { public SparkleUser User = new SparkleUser ("Unknown", "Unknown"); public SparkleFolder Folder; public string Revision; public DateTime Timestamp; public DateTime FirstTimestamp; public Uri RemoteUrl; public List Changes = new List (); public string ToMessage () { string message = "added ‘{0}’"; switch (Changes [0].Type) { case SparkleChangeType.Edited: message = "edited ‘{0}’"; break; case SparkleChangeType.Deleted: message = "deleted ‘{0}’"; break; case SparkleChangeType.Moved: message = "moved ‘{0}’"; break; } if (Changes.Count > 0) return string.Format (message, Changes [0].Path); else return "did something magical"; } } public class SparkleChange { public SparkleChangeType Type; public DateTime Timestamp; public bool IsFolder = false; public string Path; public string MovedToPath; } public class SparkleFolder { public string Name; public Uri RemoteAddress; public string FullPath { get { string custom_path = SparkleConfig.DefaultConfig.GetFolderOptionalAttribute (Name, "path"); if (custom_path != null) return Path.Combine (custom_path, Name); else return Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, Name); } } public SparkleFolder (string name) { Name = name; } } public class SparkleAnnouncement { public readonly string FolderIdentifier; public readonly string Message; public SparkleAnnouncement (string folder_identifier, string message) { FolderIdentifier = folder_identifier; Message = message; } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/SparkleListenerTcp.cs0000644000000000000000000000013212024723511023257 xustar000000000000000030 mtime=1347659593.631446302 30 atime=1369573449.590172346 30 ctime=1369573577.526175266 sparkleshare-1.1.0/SparkleLib/SparkleListenerTcp.cs0000775000175000017500000002052512024723511022644 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Net.Sockets; using System.Text; using System.Threading; namespace SparkleLib { public class SparkleListenerTcp : SparkleListenerBase { private Socket socket; private Thread thread; private bool is_connected = false; private bool is_connecting = false; private DateTime last_ping = DateTime.Now; public SparkleListenerTcp (Uri server, string folder_identifier) : base (server, folder_identifier) { } public override bool IsConnected { get { return this.is_connected; } } public override bool IsConnecting { get { return this.is_connecting; } } // Starts a new thread and listens to the channel public override void Connect () { this.is_connecting = true; this.thread = new Thread (() => { int port = Server.Port; if (port < 0) port = 443; try { this.socket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) { ReceiveTimeout = 5 * 1000, SendTimeout = 5 * 1000 }; // Try to connect to the server this.socket.Connect (Server.Host, port); this.is_connecting = false; this.is_connected = true; OnConnected (); } catch (SocketException e) { this.is_connected = false; this.is_connecting = false; if (this.socket != null) this.socket.Close (); OnDisconnected (e.Message); return; } byte [] bytes = new byte [4096]; int bytes_read = 0; this.last_ping = DateTime.Now; // Wait for messages while (this.is_connected) { try { // This blocks the thread int i = 0; int timeout = 300; while (this.socket.Available < 1) { try { // We've timed out, let's ping the server to // see if the connection is still up if (i == timeout) { SparkleLogger.LogInfo ("ListenerTcp", "Pinging " + Server); byte [] ping_bytes = Encoding.UTF8.GetBytes ("ping\n"); byte [] pong_bytes = new byte [4096]; this.socket.Send (ping_bytes); if (this.socket.Receive (pong_bytes) < 1) // 10057 means "Socket is not connected" throw new SocketException (10057); SparkleLogger.LogInfo ("ListenerTcp", "Received pong from " + Server); i = 0; this.last_ping = DateTime.Now; } else { // Check when the last ping occured. If it's // significantly longer than our regular interval the // system likely woke up from sleep and we want to // simulate a disconnect int sleepiness = DateTime.Compare ( this.last_ping.AddMilliseconds (timeout * 1000 * 1.2), DateTime.Now ); if (sleepiness <= 0) { SparkleLogger.LogInfo ("ListenerTcp", "System woke up from sleep"); // 10057 means "Socket is not connected" throw new SocketException (10057); } } // The ping failed: disconnect completely } catch (SocketException e) { this.is_connected = false; this.is_connecting = false; if (this.socket != null) { this.socket.Close (); this.socket = null; } OnDisconnected ("Ping timeout: " + e.Message); return; } Thread.Sleep (1000); i++; } } catch (Exception) { return; } if (this.socket.Available > 0) bytes_read = this.socket.Receive (bytes); // Parse the received message if (bytes_read > 0) { string received = Encoding.UTF8.GetString (bytes); string line = received.Substring (0, received.IndexOf ("\n")); if (!line.Contains ("!")) continue; string folder_identifier = line.Substring (0, line.IndexOf ("!")); string message = CleanMessage (line.Substring (line.IndexOf ("!") + 1)); // We have a message! if (!folder_identifier.Equals ("debug") && !String.IsNullOrEmpty (message)) OnAnnouncement (new SparkleAnnouncement (folder_identifier, message)); } } }); this.thread.Start (); } protected override void AlsoListenToInternal (string folder_identifier) { string to_send = "subscribe " + folder_identifier + "\n"; try { this.socket.Send (Encoding.UTF8.GetBytes (to_send)); this.last_ping = DateTime.Now; } catch (Exception e) { this.is_connected = false; this.is_connecting = false; OnDisconnected (e.Message); } } protected override void AnnounceInternal (SparkleAnnouncement announcement) { string to_send = "announce " + announcement.FolderIdentifier + " " + announcement.Message + "\n"; try { if (this.socket != null) this.socket.Send (Encoding.UTF8.GetBytes (to_send)); this.last_ping = DateTime.Now; } catch (Exception e) { this.is_connected = false; this.is_connecting = false; OnDisconnected (e.Message); } } public override void Dispose () { this.thread.Abort (); this.thread.Join (); if (this.socket != null) this.socket.Close (); base.Dispose (); } private string CleanMessage (string message) { message = message.Replace ("\n", ""); message = message.Replace ("\0", ""); return message.Trim (); } } } sparkleshare-1.1.0/SparkleLib/PaxHeaders.8596/Git0000644000000000000000000000013212150404311017612 xustar000000000000000030 mtime=1369573577.610175268 30 atime=1369573578.250175283 30 ctime=1369573577.610175268 sparkleshare-1.1.0/SparkleLib/Git/0000755000000000000000000000000012150404311016735 5ustar00rootroot00000000000000sparkleshare-1.1.0/SparkleLib/Git/PaxHeaders.8596/Makefile.in0000644000000000000000000000013212150404125021737 xustar000000000000000030 mtime=1369573461.418172616 30 atime=1369573461.478172618 30 ctime=1369573577.602175267 sparkleshare-1.1.0/SparkleLib/Git/Makefile.in0000644000000000000000000004252612150404125021016 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/build/build.environment.mk \ $(top_srcdir)/build/build.mk \ $(top_srcdir)/build/build.rules.mk subdir = SparkleLib/Git ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \ $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/build/m4/sparkleshare/gtk-sharp.m4 \ $(top_srcdir)/build/m4/sparkleshare/notify-sharp.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(moduledir)" SCRIPTS = $(module_SCRIPTS) DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ AMTAR = @AMTAR@ AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_INDICATOR_CFLAGS = @APP_INDICATOR_CFLAGS@ APP_INDICATOR_LIBS = @APP_INDICATOR_LIBS@ ASM_VERSION = @ASM_VERSION@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ F77 = @F77@ FC = @FC@ GLIBSHARP_2_12_7_CFLAGS = @GLIBSHARP_2_12_7_CFLAGS@ GLIBSHARP_2_12_7_LIBS = @GLIBSHARP_2_12_7_LIBS@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GTKSHARP_A11Y_CFLAGS = @GTKSHARP_A11Y_CFLAGS@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ GUISUBDIRS = @GUISUBDIRS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ NOTIFY_SHARP_CFLAGS = @NOTIFY_SHARP_CFLAGS@ NOTIFY_SHARP_LIBS = @NOTIFY_SHARP_LIBS@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJC = @OBJC@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ Q = @Q@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ V = @V@ VERSION = @VERSION@ WEBKIT_SHARP_CFLAGS = @WEBKIT_SHARP_CFLAGS@ WEBKIT_SHARP_LIBS = @WEBKIT_SHARP_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ shavedir = @shavedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ASSEMBLY = SparkleLib.Git TARGET = library ASSEMBLY_INFO_SOURCE = ../Defines.cs @ENABLE_TESTS_TRUE@LINK = " $(NUNIT_LIBS)" LINK = -r:$(DIR_BIN)/SparkleLib.dll SOURCES = \ SparkleGit.cs \ SparkleFetcherGit.cs \ SparkleRepoGit.cs # Initializers MONO_BASE_PATH = # Install Paths DEFAULT_INSTALL_DIR = $(pkglibdir) DIR_BIN = $(top_builddir)/bin # External libraries to link against, generated from configure LINK_SYSTEM = -r:System LINK_SYSTEM_WEB = -r:System.Web LINK_MONO_POSIX = -r:Mono.Posix LINK_GLIB = $(GLIBSHARP_LIBS) LINK_GTK = $(GTKSHARP_LIBS) LINK_GNOME = $(GNOME_SHARP_LIBS) LINK_DBUS = $(NDESK_DBUS_LIBS) $(NDESK_DBUS_GLIB_LIBS) LINK_DBUS_NO_GLIB = $(NDESK_DBUS_LIBS) LINK_APP_INDICATOR = $(APP_INDICATOR_LIBS) REF_NOTIFY_SHARP = $(LINK_SYSTEM) $(LINK_DBUS) $(GTKSHARP_LIBS) $(GLIBSHARP_LIBS) LINK_NOTIFY_SHARP = -r:$(DIR_BIN)/NotifySharp.dll LINK_NOTIFY_SHARP_DEPS = $(REF_NOTIFY_SHARP) $(LINK_NOTIFY_SHARP) REF_SPARKLELIB = $(LINK_SYSTEM) $(LINK_MONO_POSIX) LINK_SPARKLELIB = -r:$(DIR_BIN)/SparkleLib.dll LINK_SPARKLELIB_DEPS = $(REF_SPARKLELIB) $(LINK_SPARKLELIB) REF_SPARKLESHARE = $(LINK_SYSTEM_WEB) $(LINK_DBUS) $(LINK_GTK) $(LINK_SPARKLELIB_DEPS) $(LINK_APP_INDICATOR) # Cute hack to replace a space with something colon := : empty := space := $(empty) $(empty) # Build path to allow running uninstalled RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH)) UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE) # Since all other attempts failed, we currently go this way: # This code adds the file specified in ASSEMBLY_INFO_SOURCE to SOURCES_BUILD. ASSEMBLY_INFO_SOURCE_REAL = \ $(addprefix $(srcdir)/, $(ASSEMBLY_INFO_SOURCE)) SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES)) \ $(ASSEMBLY_INFO_SOURCE_REAL) RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES)) RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \ -resource:$(resource),$(notdir $(resource))) ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET))) ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION) INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR))) @ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS" @ENABLE_ATK_TRUE@ENABLE_ATK_FLAG = "-define:ENABLE_ATK" FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE)) DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/') OUTPUT_FILES = \ $(ASSEMBLY_FILE) \ $(ASSEMBLY_FILE).mdb moduledir = $(INSTALL_DIR_RESOLVED) module_SCRIPTS = $(OUTPUT_FILES) EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) CLEANFILES = $(OUTPUT_FILES) $(ASSEMBLY_FILE).config DISTCLEANFILES = *.pidb MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SparkleLib/Git/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SparkleLib/Git/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleSCRIPTS: $(module_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \ } \ ; done uninstall-moduleSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-hook install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleSCRIPTS install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-moduleSCRIPTS install-data-hook: for ASM in $(EXTRA_BUNDLE); do \ $(INSTALL) -m 0755 $$ASM $(DESTDIR)$(moduledir); \ done; uninstall-hook: for ASM in $(EXTRA_BUNDLE); do \ rm -f $(DESTDIR)$(moduledir)/`basename $$ASM`; \ done; all: $(ASSEMBLY_FILE) run: @pushd $(top_builddir); \ make run; \ popd; # uncommented for now. # tests are currently excuted from Makefile in $(top_builddir) #test: # @pushd $(top_builddir)/tests; \ # make $(ASSEMBLY); \ # popd; build-debug: @echo $(DEP_LINK) $(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE) $(ASSEMBLY_FILE): $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(DEP_LINK) @mkdir -p $(top_builddir)/bin $(MCS) \ $(GMCS_FLAGS) \ $(ASSEMBLY_BUILD_FLAGS) \ -codepage:utf8 \ -nowarn:0278 -nowarn:0078 $$warn \ -define:HAVE_GTK_2_10 -define:NET_2_0 \ -debug -target:$(TARGET) -out:$@ \ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD) @if [ -e $(srcdir)/$(notdir $@.config) ]; then \ cp $(srcdir)/$(notdir $@.config) $(top_builddir)/bin; \ fi; @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \ fi; # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: sparkleshare-1.1.0/SparkleLib/Git/PaxHeaders.8596/SparkleRepoGit.cs0000644000000000000000000000013212150404106023113 xustar000000000000000030 mtime=1369573446.186172269 30 atime=1369573446.206172269 30 ctime=1369573577.610175268 sparkleshare-1.1.0/SparkleLib/Git/SparkleRepoGit.cs0000664000175000017500000012574412150404106022506 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Threading; using SparkleLib; namespace SparkleLib.Git { public class SparkleRepo : SparkleRepoBase { private bool user_is_set; private bool use_git_bin; private bool is_encrypted; private string cached_branch; private Regex progress_regex = new Regex (@"([0-9]+)%", RegexOptions.Compiled); private Regex speed_regex = new Regex (@"([0-9\.]+) ([KM])iB/s", RegexOptions.Compiled); private Regex log_regex = new Regex (@"commit ([a-z0-9]{40})\n" + "Author: (.+) <(.+)>\n" + "*" + "Date: ([0-9]{4})-([0-9]{2})-([0-9]{2}) " + "([0-9]{2}):([0-9]{2}):([0-9]{2}) (.[0-9]{4})\n" + "*", RegexOptions.Compiled); private string branch { get { if (!string.IsNullOrEmpty (this.cached_branch)) return this.cached_branch; string rebase_apply_path = new string [] { LocalPath, ".git", "rebase-apply" }.Combine (); while (Directory.Exists (rebase_apply_path) && HasLocalChanges) { try { ResolveConflict (); } catch (IOException e) { SparkleLogger.LogInfo ("Git", Name + " | Failed to resolve conflict, trying again...", e); } } SparkleGit git = new SparkleGit (LocalPath, "rev-parse --abbrev-ref HEAD"); this.cached_branch = git.StartAndReadStandardOutput (); return this.cached_branch; } } public SparkleRepo (string path, SparkleConfig config) : base (path, config) { SparkleGit git = new SparkleGit (LocalPath, "config core.ignorecase false"); git.StartAndWaitForExit (); // Check if we should use git-bin git = new SparkleGit (LocalPath, "config --get filter.bin.clean"); git.StartAndWaitForExit (); this.use_git_bin = (git.ExitCode == 0); if (this.use_git_bin) ConfigureGitBin (); git = new SparkleGit (LocalPath, "config remote.origin.url \"" + RemoteUrl + "\""); git.StartAndWaitForExit (); string password_file_path = Path.Combine (LocalPath, ".git", "password"); if (File.Exists (password_file_path)) this.is_encrypted = true; } private void ConfigureGitBin () { SparkleGit git = new SparkleGit (LocalPath, "config filter.bin.clean \"git bin clean %f\""); git.StartAndWaitForExit (); git = new SparkleGit (LocalPath, "config filter.bin.smudge \"git bin smudge\""); git.StartAndWaitForExit (); git = new SparkleGit (LocalPath, "config git-bin.sftpUrl \"" + RemoteUrl + "\""); git.StartAndWaitForExit (); git = new SparkleGit (LocalPath, "config git-bin.sftpPrivateKeyFile \"" + base.local_config.User.PrivateKeyFilePath + "\""); git.StartAndWaitForExit (); } public override List ExcludePaths { get { List rules = new List (); rules.Add (".git"); return rules; } } public override double Size { get { string file_path = new string [] { LocalPath, ".git", "repo_size" }.Combine (); try { string size = File.ReadAllText (file_path); return double.Parse (size); } catch { return 0; } } } public override double HistorySize { get { string file_path = new string [] { LocalPath, ".git", "repo_history_size" }.Combine (); try { string size = File.ReadAllText (file_path); return double.Parse (size); } catch { return 0; } } } private void UpdateSizes () { double size = CalculateSizes (new DirectoryInfo (LocalPath)); double history_size = CalculateSizes (new DirectoryInfo (Path.Combine (LocalPath, ".git"))); string size_file_path = new string [] { LocalPath, ".git", "repo_size" }.Combine (); string history_size_file_path = new string [] { LocalPath, ".git", "repo_history_size" }.Combine (); File.WriteAllText (size_file_path, size.ToString ()); File.WriteAllText (history_size_file_path, history_size.ToString ()); } public override string CurrentRevision { get { SparkleGit git = new SparkleGit (LocalPath, "rev-parse HEAD"); string output = git.StartAndReadStandardOutput (); if (git.ExitCode == 0) return output; else return null; } } public override bool HasRemoteChanges { get { SparkleLogger.LogInfo ("Git", Name + " | Checking for remote changes..."); string current_revision = CurrentRevision; SparkleGit git = new SparkleGit (LocalPath, "ls-remote --heads --exit-code \"" + RemoteUrl + "\" " + this.branch); string output = git.StartAndReadStandardOutput (); if (git.ExitCode != 0) return false; string remote_revision = "" + output.Substring (0, 40); if (!remote_revision.Equals (current_revision)) { git = new SparkleGit (LocalPath, "merge-base " + remote_revision + " master"); git.StartAndWaitForExit (); if (git.ExitCode != 0) { SparkleLogger.LogInfo ("Git", Name + " | Remote changes found, local: " + current_revision + ", remote: " + remote_revision); Error = ErrorStatus.None; return true; } else { SparkleLogger.LogInfo ("Git", Name + " | Remote " + remote_revision + " is already in our history"); return false; } } SparkleLogger.LogInfo ("Git", Name + " | No remote changes, local+remote: " + current_revision); return false; } } public override bool SyncUp () { if (!Add ()) { Error = ErrorStatus.UnreadableFiles; return false; } string message = FormatCommitMessage (); if (message != null) Commit (message); if (this.use_git_bin) { SparkleGitBin git_bin = new SparkleGitBin (LocalPath, "push"); git_bin.StartAndWaitForExit (); // TODO: Progress } SparkleGit git = new SparkleGit (LocalPath, "push --progress \"" + RemoteUrl + "\" " + this.branch); git.StartInfo.RedirectStandardError = true; git.Start (); double percentage = 1.0; while (!git.StandardError.EndOfStream) { string line = git.StandardError.ReadLine (); Match match = this.progress_regex.Match (line); double speed = 0.0; double number = 0.0; if (match.Success) { try { number = double.Parse (match.Groups [1].Value, new CultureInfo ("en-US")); } catch (FormatException) { SparkleLogger.LogInfo ("Git", "Error parsing progress: \"" + match.Groups [1] + "\""); } // The pushing progress consists of two stages: the "Compressing // objects" stage which we count as 20% of the total progress, and // the "Writing objects" stage which we count as the last 80% if (line.StartsWith ("Compressing")) { // "Compressing objects" stage number = (number / 100 * 20); } else { // "Writing objects" stage number = (number / 100 * 80 + 20); Match speed_match = this.speed_regex.Match (line); if (speed_match.Success) { try { speed = double.Parse (speed_match.Groups [1].Value, new CultureInfo ("en-US")) * 1024; } catch (FormatException) { SparkleLogger.LogInfo ("Git", "Error parsing speed: \"" + speed_match.Groups [1] + "\""); } if (speed_match.Groups [2].Value.Equals ("M")) speed = speed * 1024; } } } else { SparkleLogger.LogInfo ("Git", Name + " | " + line); if (FindError (line)) return false; } if (number >= percentage) { percentage = number; base.OnProgressChanged (percentage, speed); } } git.WaitForExit (); UpdateSizes (); if (git.ExitCode == 0) { ClearCache (); string salt_file_path = new string [] { LocalPath, ".git", "salt" }.Combine (); // If the repo is encrypted, create a branch to // store the salt in and push it to the host if (File.Exists (salt_file_path)) { string salt = File.ReadAllText (salt_file_path).Trim (); SparkleGit git_salt = new SparkleGit (LocalPath, "branch salt-" + salt); git_salt.StartAndWaitForExit (); git_salt = new SparkleGit (LocalPath, "push origin salt-" + salt); git_salt.StartAndWaitForExit (); File.Delete (salt_file_path); } return true; } else { Error = ErrorStatus.HostUnreachable; return false; } } public override bool SyncDown () { SparkleGit git = new SparkleGit (LocalPath, "fetch --progress \"" + RemoteUrl + "\" " + this.branch); git.StartInfo.RedirectStandardError = true; git.Start (); double percentage = 1.0; while (!git.StandardError.EndOfStream) { string line = git.StandardError.ReadLine (); Match match = this.progress_regex.Match (line); double speed = 0.0; double number = 0.0; if (match.Success) { try { number = double.Parse (match.Groups [1].Value, new CultureInfo ("en-US")); } catch (FormatException) { SparkleLogger.LogInfo ("Git", "Error parsing progress: \"" + match.Groups [1] + "\""); } // The fetching progress consists of two stages: the "Compressing // objects" stage which we count as 20% of the total progress, and // the "Receiving objects" stage which we count as the last 80% if (line.StartsWith ("Compressing")) { // "Compressing objects" stage number = (number / 100 * 20); } else { // "Writing objects" stage number = (number / 100 * 80 + 20); Match speed_match = this.speed_regex.Match (line); if (speed_match.Success) { try { speed = double.Parse (speed_match.Groups [1].Value, new CultureInfo ("en-US")) * 1024; } catch (FormatException) { SparkleLogger.LogInfo ("Git", "Error parsing speed: \"" + speed_match.Groups [1] + "\""); } if (speed_match.Groups [2].Value.Equals ("M")) speed = speed * 1024; } } } else { SparkleLogger.LogInfo ("Git", Name + " | " + line); if (FindError (line)) return false; } if (number >= percentage) { percentage = number; base.OnProgressChanged (percentage, speed); } } git.WaitForExit (); UpdateSizes (); if (git.ExitCode == 0) { if (Rebase ()) { ClearCache (); return true; } else { return false; } } else { Error = ErrorStatus.HostUnreachable; return false; } } public override bool HasLocalChanges { get { PrepareDirectories (LocalPath); SparkleGit git = new SparkleGit (LocalPath, "status --porcelain"); string output = git.StartAndReadStandardOutput (); return !string.IsNullOrEmpty (output); } } public override bool HasUnsyncedChanges { get { string unsynced_file_path = new string [] { LocalPath, ".git", "has_unsynced_changes" }.Combine (); return File.Exists (unsynced_file_path); } set { string unsynced_file_path = new string [] { LocalPath, ".git", "has_unsynced_changes" }.Combine (); if (value) File.WriteAllText (unsynced_file_path, ""); else File.Delete (unsynced_file_path); } } // Stages the made changes private bool Add () { SparkleGit git = new SparkleGit (LocalPath, "add --all"); git.StartAndWaitForExit (); return (git.ExitCode == 0); } // Commits the made changes private void Commit (string message) { SparkleGit git; if (!this.user_is_set) { git = new SparkleGit (LocalPath, "config user.name \"" + base.local_config.User.Name + "\""); git.StartAndWaitForExit (); git = new SparkleGit (LocalPath, "config user.email \"" + base.local_config.User.Email + "\""); git.StartAndWaitForExit (); this.user_is_set = true; } git = new SparkleGit (LocalPath, "commit --all --message=\"" + message + "\" " + "--author=\"" + base.local_config.User.Name + " <" + base.local_config.User.Email + ">\""); git.StartAndReadStandardOutput (); } // Merges the fetched changes private bool Rebase () { string message = FormatCommitMessage (); if (message != null) { Add (); Commit (message); } SparkleGit git; string rebase_apply_path = new string [] { LocalPath, ".git", "rebase-apply" }.Combine (); // Stop if we're already in a rebase because something went wrong if (Directory.Exists (rebase_apply_path)) { git = new SparkleGit (LocalPath, "rebase --abort"); git.StartAndWaitForExit (); return false; } // Temporarily change the ignorecase setting to true to avoid // conflicts in file names due to letter case changes git = new SparkleGit (LocalPath, "config core.ignorecase true"); git.StartAndWaitForExit (); git = new SparkleGit (LocalPath, "rebase FETCH_HEAD"); git.StartInfo.RedirectStandardOutput = false; string error_output = git.StartAndReadStandardError (); if (git.ExitCode != 0) { // Stop when we can't rebase due to locked local files // error: cannot stat 'filename': Permission denied if (error_output.Contains ("error: cannot stat")) { Error = ErrorStatus.UnreadableFiles; SparkleLogger.LogInfo ("Git", Name + " | Error status changed to " + Error); git = new SparkleGit (LocalPath, "rebase --abort"); git.StartAndWaitForExit (); git = new SparkleGit (LocalPath, "config core.ignorecase false"); git.StartAndWaitForExit (); return false; } else { SparkleLogger.LogInfo ("Git", Name + " | Conflict detected, trying to get out..."); while (Directory.Exists (rebase_apply_path) && HasLocalChanges) { try { ResolveConflict (); } catch (IOException e) { SparkleLogger.LogInfo ("Git", Name + " | Failed to resolve conflict, trying again...", e); } } SparkleLogger.LogInfo ("Git", Name + " | Conflict resolved"); OnConflictResolved (); } } git = new SparkleGit (LocalPath, "config core.ignorecase false"); git.StartAndWaitForExit (); return true; } private void ResolveConflict () { // This is a list of conflict status codes that Git uses, their // meaning, and how SparkleShare should handle them. // // DD unmerged, both deleted -> Do nothing // AU unmerged, added by us -> Use server's, save ours as a timestamped copy // UD unmerged, deleted by them -> Use ours // UA unmerged, added by them -> Use server's, save ours as a timestamped copy // DU unmerged, deleted by us -> Use server's // AA unmerged, both added -> Use server's, save ours as a timestamped copy // UU unmerged, both modified -> Use server's, save ours as a timestamped copy // ?? unmerged, new files -> Stage the new files // // Note that a rebase merge works by replaying each commit from the working branch on // top of the upstream branch. Because of this, when a merge conflict happens the // side reported as 'ours' is the so-far rebased series, starting with upstream, // and 'theirs' is the working branch. In other words, the sides are swapped. // // So: 'ours' means the 'server's version' and 'theirs' means the 'local version' after this comment SparkleGit git_status = new SparkleGit (LocalPath, "status --porcelain"); string output = git_status.StartAndReadStandardOutput (); string [] lines = output.Split ("\n".ToCharArray ()); bool changes_added = false; foreach (string line in lines) { string conflicting_path = line.Substring (3); conflicting_path = EnsureSpecialCharacters (conflicting_path); conflicting_path = conflicting_path.Replace ("\"", "\\\""); SparkleLogger.LogInfo ("Git", Name + " | Conflict type: " + line); // Ignore conflicts in the .sparkleshare file and use the local version if (conflicting_path.EndsWith (".sparkleshare") || conflicting_path.EndsWith (".empty")) { // Recover local version SparkleGit git_theirs = new SparkleGit (LocalPath, "checkout --theirs \"" + conflicting_path + "\""); git_theirs.StartAndWaitForExit (); File.SetAttributes (Path.Combine (LocalPath, conflicting_path), FileAttributes.Hidden); changes_added = true; continue; } // Both the local and server version have been modified if (line.StartsWith ("UU") || line.StartsWith ("AA") || line.StartsWith ("AU") || line.StartsWith ("UA")) { // Recover local version SparkleGit git_theirs = new SparkleGit (LocalPath, "checkout --theirs \"" + conflicting_path + "\""); git_theirs.StartAndWaitForExit (); // Append a timestamp to local version. // Windows doesn't allow colons in the file name, so // we use "h" between the hours and minutes instead. string timestamp = DateTime.Now.ToString ("MMM d H\\hmm"); string their_path = Path.GetFileNameWithoutExtension (conflicting_path) + " (" + base.local_config.User.Name + ", " + timestamp + ")" + Path.GetExtension (conflicting_path); string abs_conflicting_path = Path.Combine (LocalPath, conflicting_path); string abs_their_path = Path.Combine (LocalPath, their_path); File.Move (abs_conflicting_path, abs_their_path); // Recover server version SparkleGit git_ours = new SparkleGit (LocalPath, "checkout --ours \"" + conflicting_path + "\""); git_ours.StartAndWaitForExit (); changes_added = true; // The local version has been modified, but the server version was removed } else if (line.StartsWith ("DU")) { // The modified local version is already in the checkout, so it just needs to be added. // We need to specifically mention the file, so we can't reuse the Add () method SparkleGit git_add = new SparkleGit (LocalPath, "add \"" + conflicting_path + "\""); git_add.StartAndWaitForExit (); changes_added = true; } } Add (); SparkleGit git; if (changes_added) git = new SparkleGit (LocalPath, "rebase --continue"); else git = new SparkleGit (LocalPath, "rebase --skip"); git.StartInfo.RedirectStandardOutput = false; git.StartAndWaitForExit (); } public override void RestoreFile (string path, string revision, string target_file_path) { if (path == null) throw new ArgumentNullException ("path"); if (revision == null) throw new ArgumentNullException ("revision"); SparkleLogger.LogInfo ("Git", Name + " | Restoring \"" + path + "\" (revision " + revision + ")"); // git-show doesn't decrypt objects, so we can't use it to retrieve // files from the index. This is a suboptimal workaround but it does the job if (this.is_encrypted) { // Restore the older file... SparkleGit git = new SparkleGit (LocalPath, "checkout " + revision + " \"" + path + "\""); git.StartAndWaitForExit (); string local_file_path = Path.Combine (LocalPath, path); // ...move it... try { File.Move (local_file_path, target_file_path); } catch { SparkleLogger.LogInfo ("Git", Name + " | Could not move \"" + local_file_path + "\" to \"" + target_file_path + "\""); } // ...and restore the most recent revision git = new SparkleGit (LocalPath, "checkout " + CurrentRevision + " \"" + path + "\""); git.StartAndWaitForExit (); // The correct way } else { path = path.Replace ("\"", "\\\""); SparkleGit git = new SparkleGit (LocalPath, "show " + revision + ":\"" + path + "\""); git.Start (); FileStream stream = File.OpenWrite (target_file_path); git.StandardOutput.BaseStream.CopyTo (stream); stream.Close (); git.WaitForExit (); } if (target_file_path.StartsWith (LocalPath)) new Thread (() => OnFileActivity (null)).Start (); } public override List GetChangeSets (string path) { return GetChangeSetsInternal (path); } public override List GetChangeSets () { return GetChangeSetsInternal (null); } private bool FindError (string line) { Error = ErrorStatus.None; if (line.Contains ("WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!") || line.Contains ("WARNING: POSSIBLE DNS SPOOFING DETECTED!")) { Error = ErrorStatus.HostIdentityChanged; } else if (line.StartsWith ("Permission denied") || line.StartsWith ("ssh_exchange_identification: Connection closed by remote host")) { Error = ErrorStatus.AuthenticationFailed; } else if (line.StartsWith ("error: Disk space exceeded")) { Error = ErrorStatus.DiskSpaceExceeded; } else if (line.EndsWith ("does not appear to be a git repository")) { Error = ErrorStatus.NotFound; } if (Error != ErrorStatus.None) { SparkleLogger.LogInfo ("Git", Name + " | Error status changed to " + Error); return true; } else { return false; } } private List GetChangeSetsInternal (string path) { List change_sets = new List (); SparkleGit git; if (path == null) { git = new SparkleGit (LocalPath, "log --since=1.month --raw --find-renames --date=iso " + "--format=medium --no-color --no-merges"); } else { path = path.Replace ("\\", "/"); git = new SparkleGit (LocalPath, "log --raw --find-renames --date=iso " + "--format=medium --no-color --no-merges -- \"" + path + "\""); } string output = git.StartAndReadStandardOutput (); if (path == null && string.IsNullOrWhiteSpace (output)) { git = new SparkleGit (LocalPath, "log -n 75 --raw --find-renames --date=iso " + "--format=medium --no-color --no-merges"); output = git.StartAndReadStandardOutput (); } string [] lines = output.Split ("\n".ToCharArray ()); List entries = new List (); int line_number = 0; bool first_pass = true; string entry = "", last_entry = ""; foreach (string line in lines) { if (line.StartsWith ("commit") && !first_pass) { entries.Add (entry); entry = ""; line_number = 0; } else { first_pass = false; } // Only parse 250 files to prevent memory issues if (line_number < 254) { entry += line + "\n"; line_number++; } last_entry = entry; } entries.Add (last_entry); foreach (string log_entry in entries) { Match match = this.log_regex.Match (log_entry); if (match.Success) { SparkleChangeSet change_set = new SparkleChangeSet (); change_set.Folder = new SparkleFolder (Name); change_set.Revision = match.Groups [1].Value; change_set.User = new SparkleUser (match.Groups [2].Value, match.Groups [3].Value); change_set.RemoteUrl = RemoteUrl; change_set.Timestamp = new DateTime (int.Parse (match.Groups [4].Value), int.Parse (match.Groups [5].Value), int.Parse (match.Groups [6].Value), int.Parse (match.Groups [7].Value), int.Parse (match.Groups [8].Value), int.Parse (match.Groups [9].Value)); string time_zone = match.Groups [10].Value; int our_offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours; int their_offset = int.Parse (time_zone.Substring (0, 3)); change_set.Timestamp = change_set.Timestamp.AddHours (their_offset * -1); change_set.Timestamp = change_set.Timestamp.AddHours (our_offset); string [] entry_lines = log_entry.Split ("\n".ToCharArray ()); foreach (string entry_line in entry_lines) { if (entry_line.StartsWith (":")) { if (entry_line.Contains ("\\177")) continue; string type_letter = entry_line [37].ToString (); string file_path = entry_line.Substring (39); bool change_is_folder = false; if (file_path.Equals (".sparkleshare")) continue; if (file_path.EndsWith (".empty")) { file_path = file_path.Substring (0, file_path.Length - ".empty".Length); change_is_folder = true; } file_path = EnsureSpecialCharacters (file_path); file_path = file_path.Replace ("\\\"", "\""); if (type_letter.Equals ("R")) { int tab_pos = entry_line.LastIndexOf ("\t"); file_path = entry_line.Substring (42, tab_pos - 42); string to_file_path = entry_line.Substring (tab_pos + 1); file_path = EnsureSpecialCharacters (file_path); to_file_path = EnsureSpecialCharacters (to_file_path); file_path = file_path.Replace ("\\\"", "\""); to_file_path = to_file_path.Replace ("\\\"", "\""); if (file_path.EndsWith (".empty")) { file_path = file_path.Substring (0, file_path.Length - 6); change_is_folder = true; } if (to_file_path.EndsWith (".empty")) { to_file_path = to_file_path.Substring (0, to_file_path.Length - 6); change_is_folder = true; } change_set.Changes.Add ( new SparkleChange () { Path = file_path, IsFolder = change_is_folder, MovedToPath = to_file_path, Timestamp = change_set.Timestamp, Type = SparkleChangeType.Moved } ); } else { SparkleChangeType change_type = SparkleChangeType.Added; if (type_letter.Equals ("M")) { change_type = SparkleChangeType.Edited; } else if (type_letter.Equals ("D")) { change_type = SparkleChangeType.Deleted; } change_set.Changes.Add ( new SparkleChange () { Path = file_path, IsFolder = change_is_folder, Timestamp = change_set.Timestamp, Type = change_type } ); } } } if (change_sets.Count > 0 && path == null) { SparkleChangeSet last_change_set = change_sets [change_sets.Count - 1]; if (change_set.Timestamp.Year == last_change_set.Timestamp.Year && change_set.Timestamp.Month == last_change_set.Timestamp.Month && change_set.Timestamp.Day == last_change_set.Timestamp.Day && change_set.User.Name.Equals (last_change_set.User.Name)) { last_change_set.Changes.AddRange (change_set.Changes); if (DateTime.Compare (last_change_set.Timestamp, change_set.Timestamp) < 1) { last_change_set.FirstTimestamp = last_change_set.Timestamp; last_change_set.Timestamp = change_set.Timestamp; last_change_set.Revision = change_set.Revision; } else { last_change_set.FirstTimestamp = change_set.Timestamp; } } else { change_sets.Add (change_set); } } else { if (path != null) { List changes_to_skip = new List (); foreach (SparkleChange change in change_set.Changes) { if ((change.Type == SparkleChangeType.Deleted || change.Type == SparkleChangeType.Moved) && change.Path.Equals (path)) { changes_to_skip.Add (change); } } foreach (SparkleChange change_to_skip in changes_to_skip) change_set.Changes.Remove (change_to_skip); } change_sets.Add (change_set); } } } return change_sets; } private string EnsureSpecialCharacters (string path) { // The path is quoted if it contains special characters if (path.StartsWith ("\"")) path = ResolveSpecialChars (path.Substring (1, path.Length - 2)); return path; } private string ResolveSpecialChars (string s) { StringBuilder builder = new StringBuilder (s.Length); List codes = new List (); for (int i = 0; i < s.Length; i++) { while (s [i] == '\\' && s.Length - i > 3 && char.IsNumber (s [i + 1]) && char.IsNumber (s [i + 2]) && char.IsNumber (s [i + 3])) { codes.Add (Convert.ToByte (s.Substring (i + 1, 3), 8)); i += 4; } if (codes.Count > 0) { builder.Append (Encoding.UTF8.GetString (codes.ToArray ())); codes.Clear (); } builder.Append (s [i]); } return builder.ToString (); } private void ClearCache () { if (!this.use_git_bin) return; SparkleGitBin git_bin = new SparkleGitBin (LocalPath, "clear -f"); git_bin.StartAndWaitForExit (); } // Git doesn't track empty directories, so this method // fills them all with a hidden empty file. // // It also prevents git repositories from becoming // git submodules by renaming the .git/HEAD file private void PrepareDirectories (string path) { try { foreach (string child_path in Directory.GetDirectories (path)) { if (IsSymlink (child_path)) continue; if (child_path.EndsWith (".git")) { if (child_path.Equals (Path.Combine (LocalPath, ".git"))) continue; string HEAD_file_path = Path.Combine (child_path, "HEAD"); if (File.Exists (HEAD_file_path)) { File.Move (HEAD_file_path, HEAD_file_path + ".backup"); SparkleLogger.LogInfo ("Git", Name + " | Renamed " + HEAD_file_path); } continue; } PrepareDirectories (child_path); } if (Directory.GetFiles (path).Length == 0 && Directory.GetDirectories (path).Length == 0 && !path.Equals (LocalPath)) { if (!File.Exists (Path.Combine (path, ".empty"))) { try { File.WriteAllText (Path.Combine (path, ".empty"), "I'm a folder!"); File.SetAttributes (Path.Combine (path, ".empty"), FileAttributes.Hidden); } catch { SparkleLogger.LogInfo ("Git", Name + " | Failed adding empty folder " + path); } } } } catch (IOException e) { SparkleLogger.LogInfo ("Git", "Failed preparing directory", e); } } // Creates a pretty commit message based on what has changed private string FormatCommitMessage () { int count = 0; string message = ""; SparkleGit git_status = new SparkleGit (LocalPath, "status --porcelain"); git_status.Start (); while (!git_status.StandardOutput.EndOfStream) { string line = git_status.StandardOutput.ReadLine (); line = line.Trim (); if (line.EndsWith (".empty") || line.EndsWith (".empty\"")) line = line.Replace (".empty", ""); if (line.StartsWith ("R")) { string path = line.Substring (3, line.IndexOf (" -> ") - 3).Trim ("\"".ToCharArray ()); string moved_to_path = line.Substring (line.IndexOf (" -> ") + 4).Trim ("\"".ToCharArray ()); message += "< ‘" + EnsureSpecialCharacters (path) + "’\n"; message += "> ‘" + EnsureSpecialCharacters (moved_to_path) + "’\n"; } else { if (line.StartsWith ("M")) { message += "/"; } else if (line.StartsWith ("D")) { message += "-"; } else { message += "+"; } string path = line.Substring (3).Trim ("\"".ToCharArray ()); message += " ‘" + EnsureSpecialCharacters (path) + "’\n"; } count++; if (count == 10) { message += "...\n"; break; } } git_status.StandardOutput.ReadToEnd (); git_status.WaitForExit (); if (string.IsNullOrWhiteSpace (message)) return null; else return message; } // Recursively gets a folder's size in bytes private long CalculateSizes (DirectoryInfo parent) { long size = 0; try { foreach (DirectoryInfo directory in parent.GetDirectories ()) { if (directory.IsSymlink () || directory.Name.Equals (".git") || directory.Name.Equals ("rebase-apply")) { continue; } size += CalculateSizes (directory); } } catch (Exception e) { SparkleLogger.LogInfo ("Local", "Error calculating directory size", e); } try { foreach (FileInfo file in parent.GetFiles ()) { if (file.IsSymlink ()) continue; if (file.Name.Equals (".empty")) File.SetAttributes (file.FullName, FileAttributes.Hidden); else size += file.Length; } } catch (Exception e) { SparkleLogger.LogInfo ("Local", "Error calculating file size", e); } return size; } private bool IsSymlink (string file) { FileAttributes attributes = File.GetAttributes (file); return ((attributes & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint); } } } sparkleshare-1.1.0/SparkleLib/Git/PaxHeaders.8596/Makefile.am0000644000000000000000000000013212013750144021731 xustar000000000000000030 mtime=1345310820.330218931 30 atime=1369573461.378172616 30 ctime=1369573577.602175267 sparkleshare-1.1.0/SparkleLib/Git/Makefile.am0000775000175000017500000000070612013750144021315 0ustar00hbonshbons00000000000000ASSEMBLY = SparkleLib.Git TARGET = library ASSEMBLY_INFO_SOURCE = ../Defines.cs LINK = -r:$(DIR_BIN)/SparkleLib.dll SOURCES = \ SparkleGit.cs \ SparkleFetcherGit.cs \ SparkleRepoGit.cs install-data-hook: for ASM in $(EXTRA_BUNDLE); do \ $(INSTALL) -m 0755 $$ASM $(DESTDIR)$(moduledir); \ done; uninstall-hook: for ASM in $(EXTRA_BUNDLE); do \ rm -f $(DESTDIR)$(moduledir)/`basename $$ASM`; \ done; include $(top_srcdir)/build/build.mk sparkleshare-1.1.0/SparkleLib/Git/PaxHeaders.8596/SparkleFetcherGit.cs0000644000000000000000000000013112150404106023565 xustar000000000000000030 mtime=1369573446.186172269 29 atime=1369573446.20217227 30 ctime=1369573577.606175268 sparkleshare-1.1.0/SparkleLib/Git/SparkleFetcherGit.cs0000775000175000017500000003515412150404106023157 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.Diagnostics; using System.Globalization; using System.IO; using System.Text.RegularExpressions; using System.Threading; using SparkleLib; namespace SparkleLib.Git { public class SparkleFetcher : SparkleFetcherSSH { private SparkleGit git; private bool use_git_bin; private string cached_salt; private string crypto_salt { get { if (!string.IsNullOrEmpty (this.cached_salt)) return this.cached_salt; // Check if the repo's salt is stored in a branch... SparkleGit git = new SparkleGit (TargetFolder, "ls-remote --heads"); string branches = git.StartAndReadStandardOutput (); Regex salt_regex = new Regex ("refs/heads/salt-([0-9a-f]+)"); Match salt_match = salt_regex.Match (branches); if (salt_match.Success) this.cached_salt = salt_match.Groups [1].Value; // ...if not, create a new salt for the repo if (string.IsNullOrEmpty (this.cached_salt)) { this.cached_salt = GenerateCryptoSalt (); string salt_file_path = new string [] { TargetFolder, ".git", "salt" }.Combine (); // Temporarily store the salt in a file, so the Repo object can // push it to a branch on the host later File.WriteAllText (salt_file_path, this.cached_salt); } return this.cached_salt; } } public SparkleFetcher (SparkleFetcherInfo info) : base (info) { if (RemoteUrl.ToString ().StartsWith ("ssh+")) RemoteUrl = new Uri ("ssh" + RemoteUrl.ToString ().Substring (RemoteUrl.ToString ().IndexOf ("://"))); Uri uri = RemoteUrl; if (!uri.Scheme.Equals ("ssh") && !uri.Scheme.Equals ("https") && !uri.Scheme.Equals ("http") && !uri.Scheme.Equals ("git")) { uri = new Uri ("ssh://" + uri); } if (uri.Host.Equals ("gitorious.org") && !uri.Scheme.StartsWith ("http")) { if (!uri.AbsolutePath.Equals ("/") && !uri.AbsolutePath.EndsWith (".git")) { uri = new Uri ("ssh://git@gitorious.org" + uri.AbsolutePath + ".git"); } else { uri = new Uri ("ssh://git@gitorious.org" + uri.AbsolutePath); } } else if (uri.Host.Equals ("github.com") && !uri.Scheme.StartsWith ("http")) { uri = new Uri ("ssh://git@github.com" + uri.AbsolutePath); } else if (uri.Host.Equals ("bitbucket.org") && !uri.Scheme.StartsWith ("http")) { // Nothing really } else { if (string.IsNullOrEmpty (uri.UserInfo) && !uri.Scheme.StartsWith ("http")) { if (uri.Port == -1) uri = new Uri (uri.Scheme + "://storage@" + uri.Host + uri.AbsolutePath); else uri = new Uri (uri.Scheme + "://storage@" + uri.Host + ":" + uri.Port + uri.AbsolutePath); } this.use_git_bin = false; // TODO } RemoteUrl = uri; } public override bool Fetch () { if (!base.Fetch ()) return false; if (FetchPriorHistory) { this.git = new SparkleGit (SparkleConfig.DefaultConfig.TmpPath, "clone --progress --no-checkout \"" + RemoteUrl + "\" \"" + TargetFolder + "\""); } else { this.git = new SparkleGit (SparkleConfig.DefaultConfig.TmpPath, "clone --progress --no-checkout --depth=1 \"" + RemoteUrl + "\" \"" + TargetFolder + "\""); } this.git.StartInfo.RedirectStandardError = true; this.git.Start (); double percentage = 1.0; Regex progress_regex = new Regex (@"([0-9]+)%", RegexOptions.Compiled); DateTime last_change = DateTime.Now; TimeSpan change_interval = new TimeSpan (0, 0, 0, 1); while (!this.git.StandardError.EndOfStream) { string line = this.git.StandardError.ReadLine (); Match match = progress_regex.Match (line); double number = 0.0; if (match.Success) { number = double.Parse (match.Groups [1].Value, new CultureInfo ("en-US")); // The cloning progress consists of two stages: the "Compressing // objects" stage which we count as 20% of the total progress, and // the "Receiving objects" stage which we count as the last 80% if (line.Contains ("|")) number = (number / 100 * 80 + 20); // "Receiving objects" stage else number = (number / 100 * 20); // "Compressing objects" stage } else { SparkleLogger.LogInfo ("Fetcher", line); line = line.Trim (new char [] {' ', '@'}); if (line.StartsWith ("fatal:", StringComparison.InvariantCultureIgnoreCase) || line.StartsWith ("error:", StringComparison.InvariantCultureIgnoreCase)) { base.errors.Add (line); } else if (line.StartsWith ("WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!")) { base.errors.Add ("warning: Remote host identification has changed!"); } else if (line.StartsWith ("WARNING: POSSIBLE DNS SPOOFING DETECTED!")) { base.errors.Add ("warning: Possible DNS spoofing detected!"); } } if (number >= percentage) { percentage = number; if (DateTime.Compare (last_change, DateTime.Now.Subtract (change_interval)) < 0) { base.OnProgressChanged (percentage); last_change = DateTime.Now; } } } this.git.WaitForExit (); if (this.git.ExitCode == 0) { while (percentage < 100) { percentage += 25; if (percentage >= 100) break; Thread.Sleep (500); base.OnProgressChanged (percentage); } base.OnProgressChanged (100); InstallConfiguration (); InstallExcludeRules (); InstallAttributeRules (); return true; } else { return false; } } public override bool IsFetchedRepoEmpty { get { SparkleGit git = new SparkleGit (TargetFolder, "rev-parse HEAD"); git.StartAndWaitForExit (); return (git.ExitCode != 0); } } public override void EnableFetchedRepoCrypto (string password) { // Define the crypto filter in the config string repo_config_file_path = new string [] { TargetFolder, ".git", "config" }.Combine (); string config = File.ReadAllText (repo_config_file_path); string n = Environment.NewLine; string salt = this.crypto_salt; config += "[filter \"crypto\"]" + n + "\tsmudge = openssl enc -d -aes-256-cbc -base64 -S " + salt + " -pass file:.git/password" + n + "\tclean = openssl enc -e -aes-256-cbc -base64 -S " + salt + " -pass file:.git/password" + n; File.WriteAllText (repo_config_file_path, config); // Pass all files through the crypto filter string git_attributes_file_path = new string [] { TargetFolder, ".git", "info", "attributes" }.Combine (); File.AppendAllText (git_attributes_file_path, "\n* filter=crypto"); // Store the password string password_file_path = new string [] { TargetFolder, ".git", "password" }.Combine (); File.WriteAllText (password_file_path, password.Trim ()); } public override bool IsFetchedRepoPasswordCorrect (string password) { string password_check_file_path = Path.Combine (TargetFolder, ".sparkleshare"); if (!File.Exists (password_check_file_path)) { SparkleGit git = new SparkleGit (TargetFolder, "show HEAD:.sparkleshare"); string output = git.StartAndReadStandardOutput (); if (git.ExitCode == 0) File.WriteAllText (password_check_file_path, output); else return false; } Process process = new Process () { EnableRaisingEvents = true }; process.StartInfo.WorkingDirectory = TargetFolder; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.CreateNoWindow = true; process.StartInfo.FileName = "openssl"; process.StartInfo.Arguments = "enc -d -aes-256-cbc -base64 -S " + this.crypto_salt + " -pass pass:\"" + password + "\" -in " + password_check_file_path; process.Start (); process.WaitForExit (); if (process.ExitCode == 0) { File.Delete (password_check_file_path); return true; } else { return false; } } public override void Stop () { try { if (this.git != null) { this.git.Close (); this.git.Kill (); this.git.Dispose (); } } catch (Exception e) { SparkleLogger.LogInfo ("Fetcher", "Failed to dispose properly", e); } } public override void Complete () { if (!IsFetchedRepoEmpty) { SparkleGit git = new SparkleGit (TargetFolder, "checkout --quiet HEAD"); git.StartAndWaitForExit (); } base.Complete (); } private void InstallConfiguration () { string [] settings = new string [] { "core.quotepath false", // Don't quote "unusual" characters in path names "core.ignorecase false", // Be case sensitive explicitly to work on Mac "core.filemode false", // Ignore permission changes "core.autocrlf false", // Don't change file line endings "core.precomposeunicode true", // Use the same Unicode form on all filesystems "core.safecrlf false", "core.exludesfile \"\"", "core.packedGitLimit 128m", // Some memory limiting options "core.packedGitWindowSize 128m", "pack.deltaCacheSize 128m", "pack.packSizeLimit 128m", "pack.windowMemory 128m", "push.default matching" }; foreach (string setting in settings) { SparkleGit git_config = new SparkleGit (TargetFolder, "config " + setting); git_config.StartAndWaitForExit (); } if (this.use_git_bin) InstallGitBinConfiguration (); } public void InstallGitBinConfiguration () { string [] settings = new string [] { "core.bigFileThreshold 1024g", "filter.bin.clean \"git bin clean %f\"", "filter.bin.smudge \"git bin smudge\"" }; foreach (string setting in settings) { SparkleGit git_config = new SparkleGit (TargetFolder, "config " + setting); git_config.StartAndWaitForExit (); } } // Add a .gitignore file to the repo private void InstallExcludeRules () { string git_info_path = new string [] { TargetFolder, ".git", "info" }.Combine (); if (!Directory.Exists (git_info_path)) Directory.CreateDirectory (git_info_path); string exclude_rules = string.Join (Environment.NewLine, ExcludeRules); string exclude_rules_file_path = new string [] { git_info_path, "exclude" }.Combine (); File.WriteAllText (exclude_rules_file_path, exclude_rules); } private void InstallAttributeRules () { string attribute_rules_file_path = new string [] { TargetFolder, ".git", "info", "attributes" }.Combine (); TextWriter writer = new StreamWriter (attribute_rules_file_path); if (this.use_git_bin) { writer.WriteLine ("* filter=bin binary"); } else { // Compile a list of files we don't want Git to compress. // Not compressing already compressed files decreases memory usage and increases speed string [] extensions = new string [] { "jpg", "jpeg", "png", "tiff", "gif", // Images "flac", "mp3", "ogg", "oga", // Audio "avi", "mov", "mpg", "mpeg", "mkv", "ogv", "ogx", "webm", // Video "zip", "gz", "bz", "bz2", "rpm", "deb", "tgz", "rar", "ace", "7z", "pak", "tc", "iso", ".dmg" // Archives }; foreach (string extension in extensions) { writer.WriteLine ("*." + extension + " -delta"); writer.WriteLine ("*." + extension.ToUpper () + " -delta"); } writer.WriteLine ("*.txt text"); writer.WriteLine ("*.TXT text"); } writer.Close (); } } } sparkleshare-1.1.0/SparkleLib/Git/PaxHeaders.8596/SparkleGit.cs0000644000000000000000000000013212117357047022303 xustar000000000000000030 mtime=1363009063.559253412 30 atime=1369573461.586172621 30 ctime=1369573577.606175268 sparkleshare-1.1.0/SparkleLib/Git/SparkleGit.cs0000664000175000017500000001124212117357047021661 0ustar00hbonshbons00000000000000// SparkleShare, a collaboration and sharing tool. // Copyright (C) 2010 Hylke Bons // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 program. If not, see . using System; using System.IO; using System.Diagnostics; using SparkleLib; namespace SparkleLib.Git { public abstract class SparkleProcess : Process { public SparkleProcess (string path, string args) : base () { StartInfo.FileName = path; StartInfo.Arguments = args; } new public void Start () { SparkleLogger.LogInfo ("Cmd | " + System.IO.Path.GetFileName (StartInfo.WorkingDirectory), System.IO.Path.GetFileName (StartInfo.FileName) + " " + StartInfo.Arguments); try { base.Start (); } catch (Exception e) { SparkleLogger.LogInfo ("Cmd", "Couldn't execute command: " + e.Message); Environment.Exit (-1); } } public void StartAndWaitForExit () { Start (); WaitForExit (); } public string StartAndReadStandardOutput () { Start (); // Reading the standard output HAS to go before // WaitForExit, or it will hang forever on output > 4096 bytes string output = StandardOutput.ReadToEnd (); WaitForExit (); return output.TrimEnd (); } public string StartAndReadStandardError () { StartInfo.RedirectStandardError = true; Start (); // Reading the standard output HAS to go before // WaitForExit, or it will hang forever on output > 4096 bytes string output = StandardError.ReadToEnd (); WaitForExit (); return output.TrimEnd (); } protected string LocateCommand (string name) { string [] possible_command_paths = new string [] { Defines.INSTALL_DIR + "/bin/" + name, "/usr/bin/" + name, "/usr/local/bin/" + name, "/opt/local/bin/" + name }; foreach (string path in possible_command_paths) { if (File.Exists (path)) return path; } return name; } } public class SparkleGit : SparkleProcess { public static string ExecPath; public static string GitPath; public SparkleGit (string path, string args) : base (path, args) { if (string.IsNullOrEmpty (GitPath)) GitPath = LocateCommand ("git"); EnableRaisingEvents = true; StartInfo.FileName = GitPath; StartInfo.RedirectStandardOutput = true; StartInfo.UseShellExecute = false; StartInfo.WorkingDirectory = path; StartInfo.CreateNoWindow = true; if (StartInfo.EnvironmentVariables.ContainsKey ("LANG")) StartInfo.EnvironmentVariables ["LANG"] = "en_US"; else StartInfo.EnvironmentVariables.Add ("LANG", "en_US"); if (string.IsNullOrEmpty (ExecPath)) StartInfo.Arguments = args; else StartInfo.Arguments = "--exec-path=\"" + ExecPath + "\" " + args; } } public class SparkleGitBin : SparkleProcess { public static string GitBinPath; public SparkleGitBin (string path, string args) : base (path, args) { if (string.IsNullOrEmpty (GitBinPath)) GitBinPath = LocateCommand ("git-bin"); EnableRaisingEvents = true; StartInfo.FileName = GitBinPath; StartInfo.RedirectStandardOutput = true; StartInfo.UseShellExecute = false; StartInfo.WorkingDirectory = path; StartInfo.CreateNoWindow = true; StartInfo.Arguments = args; } } } sparkleshare-1.1.0/PaxHeaders.8596/News.txt0000644000000000000000000000013112150404106016572 xustar000000000000000030 mtime=1369573446.186172269 29 atime=1369573446.20217227 30 ctime=1369573577.326175262 sparkleshare-1.1.0/News.txt0000775000175000017500000003051112150404106016154 0ustar00hbonshbons000000000000001.1.0 for Linux, Mac and Windows (Sun 26 May 2013): Hylke: - Fixed retina Mac support by Aaron Bockover - Don't sync files with names that are problematic on Windows - Show Client ID (link code) in the status icon menu - Don't show notifications for changes that you made yourself - Use large message tray icon on GNOME 3 - Added a plugin for plan.io - Work with host keys other than just RSA - "%20" and "_" in project names become spaces in folder names - Stricter permissions on the SparkleShare folder on Unix systems - Open folders in the event log by clicking project names - Allow spaces in passwords - Change invite scheme to sparkleshare://addProject/$URL - Many other bug fixes and tweaks 1.0.0 for Linux, Mac and Windows (Sun Dec 9 2012): Hylke: - Rebrand 0.9.10 with some minor changes to 1.0.0 0.9.10 for Linux, Mac and Windows (Fri Dec 7 2012): Hylke: - Fix folders not opening from statusicon menu on Windows - Fix freeze on Mac when retrying a failed add a project attempt - Fix a freeze on Mac when updating the status icon when the menu is open 0.9.9 for Linux, Mac and Windows (Mon Dec 3 2012): Hylke: - Add high resolution images for retina displays on macs - Put uncommonly used menu items in a submenu in the statusicon - Fix an issue connecting to encrypted projects - New tutorial slides - Detect more types of sync errors - Various small fixes and cleanups 0.9.8 for Linux, Mac and Windows (Sun Nov 18 2012): Hylke: - Show both the cumulative upload and download speeds when multiple projects are syncing at the same time - Defer receiving changes when affected files are locked and show a warning in the statusicon (mostly affects Windows) - Fix an issue where changing the case of a file name that will be synced to Windows or Mac would result in a no longer syncable project - Add a "Try Again" action underneath every error reported in the statusicon to force a retry - Always sync to the default git branch even when it's not named "master" (e.g. "gh-pages") - Fix unicode characters displaying weirdly in the event log 0.9.7 for Linux, Mac and Windows (Sat Nov 10 2012): Hylke: - Remove Growl and use native OS X notifications - Treat underscores in project names as spaces for the folder names - Allow periods "." in project names - Depend on git >= 1.7.12 - Fix Mac unicode compatibility (could cause duplicate files or folders between different platforms) 0.9.6 for Linux, Mac and Windows (Sat Oct 27 2012): Hylke: - Show link code and Copy button on last tutorial page - Fix crash when the SparkleShare folder is on an unmounted drive - Fix crash of the event log on Windows - Keep Continue button in the same place on each tutorial page - Remove dock icon badging on Mac now that Mountain Lion has a notification queue 0.9.5 for Linux, Mac and Windows (Sun Oct 21 2012): Hylke: - Fix "Show all" link not working in event log - Fix wrong version number in the Windows about dialog - Fix some problems with encrypted projects - Fix .sparkleshare file not always being hidden on Windows - Fix "Open files" button when an encrypted project has been added - Fix a crash of the event log on Windows 0.9.4 for Linux, Mac and Windows (Fri Oct 19 2012): Hylke: - Remove Nautilus extension - Restore previous revisions of files from the event log - Fix Mac file system watcher not always triggering - Add symbolic icon for GNOME 3 (by Lapo) - New Bitbucket and default user icon - For encrypted projects, use a different salt for each project 0.9.3 for Linux, Mac and Windows (Mon Oct 1 2012): Hylke: - Fix endless loop when adding empty folders - Fix freeze when adding lots of files - Fix using hosts with a non-standard SSH port - Fix receiving of notification service message after the first one - New non-animating status icons - More descriptive error reporting in the status icon - Add link to debug log in the about dialog - Use port 443 on the notification service to work better in restricted networks 0.9.2 for Linux, Mac and Windows (Wed Aug 29 2012): Hylke: - This release fixes a crash that can happen after adding a new project as well ssh-agent sometimes not starting on Windows 0.9.1 for Linux, Mac and Windows (Mon Aug 27 2012): Hylke: - Use HTTPS to fetch gravatars - Website links in the about dialog - Scalable custom folder icon in Nautilus 3.x - Default host user is now "storage" instead of "git" - Create crash reports in ~/SparkleShare when things go wrong - New Windows folder icons - Project folders can now be renamed in the file manager - Resizable event log on Mac - Fix some bugs in conflict resolution mechanism 0.9.0 for Linux, Mac and Windows (Wed Jun 27 2012): Hylke: - Experimental client side encryption using OpenSSL's AES - Allow setting custom paths in config.xml - Ship host keys of default plugins and verify on project add - Don't touch the user's ~/.ssh/config to configure SSH - Make fetching remote project's history optional - Cached logs for faster event log loading/switching - Sort event log file entries by time - Change default notification service to use port 80 - Show backend error message(s) when on failed project add - Update Growl framework to version 1.3.1: A separate Growl is no longer needed and ready for Mountain Lion's notifications - Monochrome appindicator icons on Ubuntu Travis: - Rewrote the notification service, now more robust and reliable 0.8.4 for Linux, Mac and Windows (Sun Mar 18 2012): Hylke: - Show initial sync progress in taskbar item on Windows 7 - Fix "Add" item being disabled on first run - Fix some crashes in notfication mechanism - Use ~/SparkleShare instead of ~/My Documents/SparkleShare on Windows - Add option to add SparkleShare to startup items on Windows - Add SparkleShare to Explorer sidebar - Report whether we're sending or receiving (or both) in the status icon - Fix some cases where SparkleShare would incorrectly say "not synced" - Some UI changes on Windows to comply with the Windows HIG 0.8.3 for Linux, Mac and Windows (Sun Mar 11 2012): Hylke: - Windows version implemented with WPF - Invites feature: link to a host with one click - Implement sparklshare:// protocol handlers for invites - "Add SparkleShare to login items" checkbox on the last tutorial page - Text entries aren't being reset when selecting plugins in the setup dialog - A variety of new default avatars (GNOME style) - More useful hints below the entries in the setup dialog - Breadcrumbs for paths in the event log: directories can be clicked - Allow backends to be in separate binaries (by Shish) - If the dock icon is visible and has a count badge, open event log on click - Add previously successfully used hosts as plugins 0.8.2 for Linux and Mac (Sat Feb 11 2012): Hylke: - Use the more reliable and less resource intensive FSEvents on Mac. - Improvements to the reconnect mechanism of the notification system 0.8.1 for Linux and Mac (Sun Jan 29 2012): Hylke: - Disable the Quit menu item when a sync is going on - Show remote url when hovering project names in the log - Fix the event log on Linux - Allow server ports to be specified once again - Open Folder button after setup now takes you to SparkleShare/subfolder - Close event log on Cmd+W on Mac 0.8.0 for Linux and Mac (Sun Jan 22 2012): Hylke: - Show syncing progress in the status icon - Hide dock icon on Mac until you open a window - Update dates in the event log after midnight - Don't let git compress already compressed files (.jpg .ogg .zip, etc.) - Limit git's memory usage - Ignore history of any added git/hg/bzr repositories, just add the files - Spin status icon on syncing changes made before startup 0.6.0 for Linux and Mac (Sun Dec 25 2011): Hylke: - Several fixes for annoying bugs and crashes - Fix freeze on quit on Mac - Show project and history size in the event log 0.4.2 for Linux and Mac (Fri Dec 2 2011): Hylke: - Fix crash trying to add a project 0.4.1 for Linux and Mac (Tue Nov 29 2011): Hylke: Just some small tweaks and fixes: - Bundle git with the Mac application - Warn about potential global gitignore files - Remove SmartIrc4Net - Build system fixes - Code cleanups 0.4.0 for Linux and Mac (Sun Nov 12 2011): Hylke: It has been a while since the last release. Since so many things changed, and it being (softly) incompatible with 0.2, I decided to call it 0.4. Here are the most important improvements: - Support OS X Lion - Revamped "Add Hosted Project..." dialog - First run tutorial - Clicking notifications opens the event log - Support for organisation/host plugins - Adding empty folders now works - More useful error reporting - Progress bar on the initial sync, and a button to cancel - Replace IRC by a custom protocol as the default notification system - Many many fixes for crashes and bugs Travis: - Nautilus 3.x plugin - Bugfixes 0.2.5 for Linux and Mac (Mon Jul 25 2011): Hylke: Reimplement notes to be less buggy and backend independent. Polish about dialog and event log html. Fix a bug where large collections of files weren't being synced when adding them at the same time. The event log now collapses huge change sets and squashes events together by day when they are on the same day and in the same folder. Add a controller per UI component to make the Windows verion easier to implement. 0.2.4 for Linux and Mac (Wed Jun 29, 2011): Hylke: Fix crash when setting up with an empty Git repository. 0.2.3 for Linux and Mac (Tue Jun 28, 2011): Hylke: Add the ability to add notes in the event logs. Fix some quirks in the webkit view on Linux. Redid gravatar fetching parts to be more efficient. Remove headless feature. Fix some small bugs and crashes. SparkleShare will now also try to use your existing SSH keypair. Required Git version is now 1.7.1 or later. 0.2.2 for Linux and Mac (Tue Jun 14, 2011): Hylke: Fix crash on first run when ~/.ssh doesn't exist. Sync algorithm tweaks. New global event log. Ubuntu integration with libappindicator. Poll sometimes even when using the notification service. 0.2.1 for Linux and Mac (Wed Jun 8, 2011): Hylke: Fix bug where host names with a "-" in them weren't accepted. Fix crash that happens when the user doesn't have their "Real Name" set in the OS and a race condition connecting to the announcements server. 0.2 for Linux and Mac (Mon Jun 6, 2011): Hylke: Removed the dependancy on GitSharp. File rename detection support in the event logs. Fixed all crashes reported in RC1 and improved sync algorithm. Redid collision detection and conflict resolving (use a copy of each version). Improved about dialogs with version checking. Pluggable backend (experimental Mercurial support). Added support for Growl to show notifications on Mac. 0.2-rc1 for Linux and Mac (Sun Mar 20, 2011): Hylke: A lot of fixes and optimisations across the backend. Less memory usage, less crashes. Instant notifications of new changes instead of polling. Refreshed event log HTML theme. Keeping logs in memory for faster reopening and loads more goodness. 0.2-beta2 for Mac (Sat Feb 12, 2011): Hylke: Mac version! Massive restructure of the code to an MVC-like model to make building different front-ends easier. Ported the event logs to Webkit, so users can style it to their liking. It also reduces the amount of UI-porting that needs to be done between toolkits. 0.2-beta1 (Sun Sep 5, 2010): Hylke: Aside from the usual bug fixes and behind the scenes work I mainly added features that increase productivity in the event logs. Not only does it look a lot prettier, each entry in an event log now has a clickable link for easy access to files. It refreshes automatically on new events as well. The Nautilus plugin now has the "Copy Web Link" context menu item, which makes sharing links a whole lot easier.